Linux v3.8-rc5-150-g6abb7c2
This commit is contained in:
		
							parent
							
								
									655567cad9
								
							
						
					
					
						commit
						1a1f3b0695
					
				| @ -1,55 +0,0 @@ | ||||
| diff --git a/drivers/mfd/vexpress-config.c b/drivers/mfd/vexpress-config.c
 | ||||
| index fae15d8..82fed98 100644
 | ||||
| --- a/drivers/mfd/vexpress-config.c
 | ||||
| +++ b/drivers/mfd/vexpress-config.c
 | ||||
| @@ -67,6 +67,7 @@  struct vexpress_config_bridge *vexpress_config_bridge_register(
 | ||||
|   | ||||
|  	return bridge; | ||||
|  } | ||||
| +EXPORT_SYMBOL(vexpress_config_bridge_register);
 | ||||
|   | ||||
|  void vexpress_config_bridge_unregister(struct vexpress_config_bridge *bridge) | ||||
|  { | ||||
| @@ -83,6 +84,7 @@  void vexpress_config_bridge_unregister(struct vexpress_config_bridge *bridge)
 | ||||
|  	while (!list_empty(&__bridge.transactions)) | ||||
|  		cpu_relax(); | ||||
|  } | ||||
| +EXPOPORT_SYMBOL(vexpress_config_bridge_unregister);
 | ||||
|   | ||||
|   | ||||
|  struct vexpress_config_func { | ||||
| @@ -142,6 +144,7 @@  struct vexpress_config_func *__vexpress_config_func_get(struct device *dev,
 | ||||
|   | ||||
|  	return func; | ||||
|  } | ||||
| +EXPORT_SYMBOL(__vexpress_config_func_get);
 | ||||
|   | ||||
|  void vexpress_config_func_put(struct vexpress_config_func *func) | ||||
|  { | ||||
| @@ -149,7 +152,7 @@  void vexpress_config_func_put(struct vexpress_config_func *func)
 | ||||
|  	of_node_put(func->bridge->node); | ||||
|  	kfree(func); | ||||
|  } | ||||
| -
 | ||||
| +EXPORT_SYMBOL(vexpress_config_func_put);
 | ||||
|   | ||||
|  struct vexpress_config_trans { | ||||
|  	struct vexpress_config_func *func; | ||||
| @@ -229,6 +232,7 @@  void vexpress_config_complete(struct vexpress_config_bridge *bridge,
 | ||||
|   | ||||
|  	complete(&trans->completion); | ||||
|  } | ||||
| +EXPORT_SYMBOL(vexpress_config_complete);
 | ||||
|   | ||||
|  int vexpress_config_wait(struct vexpress_config_trans *trans) | ||||
|  { | ||||
| @@ -236,7 +240,7 @@  int vexpress_config_wait(struct vexpress_config_trans *trans)
 | ||||
|   | ||||
|  	return trans->status; | ||||
|  } | ||||
| -
 | ||||
| +EXPORT_SYMBOL(vexpress_config_wait);
 | ||||
|   | ||||
|  int vexpress_config_read(struct vexpress_config_func *func, int offset, | ||||
|  		u32 *data) | ||||
| 
 | ||||
| @ -1,104 +0,0 @@ | ||||
| From 658f1bd2dd632209df00ec66349e15941ffdd83b Mon Sep 17 00:00:00 2001 | ||||
| From: Stanislaw Gruszka <sgruszka@redhat.com> | ||||
| Date: Wed, 16 Jan 2013 10:28:09 +0000 | ||||
| Subject: [PATCH 3.8] iwlegacy: fix IBSS cleanup | ||||
| 
 | ||||
| We do not correctly change interface type when switching from | ||||
| IBSS mode to STA mode, that results in microcode errors.  | ||||
| 
 | ||||
| Resolves: | ||||
| https://bugzilla.redhat.com/show_bug.cgi?id=886946 | ||||
| 
 | ||||
| Reported-by: Jaroslav Skarvada <jskarvad@redhat.com> | ||||
| Cc: stable@vger.kernel.org | ||||
| Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com> | ||||
| ---
 | ||||
|  drivers/net/wireless/iwlegacy/common.c | 35 ++++++++++++++-------------------- | ||||
|  1 file changed, 14 insertions(+), 21 deletions(-) | ||||
| 
 | ||||
| diff --git a/drivers/net/wireless/iwlegacy/common.c b/drivers/net/wireless/iwlegacy/common.c
 | ||||
| index 7e16d10..90b8970 100644
 | ||||
| --- a/drivers/net/wireless/iwlegacy/common.c
 | ||||
| +++ b/drivers/net/wireless/iwlegacy/common.c
 | ||||
| @@ -3958,17 +3958,21 @@ il_connection_init_rx_config(struct il_priv *il)
 | ||||
|   | ||||
|  	memset(&il->staging, 0, sizeof(il->staging)); | ||||
|   | ||||
| -	if (!il->vif) {
 | ||||
| +	switch (il->iw_mode) {
 | ||||
| +	case NL80211_IFTYPE_UNSPECIFIED:
 | ||||
|  		il->staging.dev_type = RXON_DEV_TYPE_ESS; | ||||
| -	} else if (il->vif->type == NL80211_IFTYPE_STATION) {
 | ||||
| +		break;
 | ||||
| +	case NL80211_IFTYPE_STATION:
 | ||||
|  		il->staging.dev_type = RXON_DEV_TYPE_ESS; | ||||
|  		il->staging.filter_flags = RXON_FILTER_ACCEPT_GRP_MSK; | ||||
| -	} else if (il->vif->type == NL80211_IFTYPE_ADHOC) {
 | ||||
| +		break;
 | ||||
| +	case NL80211_IFTYPE_ADHOC:
 | ||||
|  		il->staging.dev_type = RXON_DEV_TYPE_IBSS; | ||||
|  		il->staging.flags = RXON_FLG_SHORT_PREAMBLE_MSK; | ||||
|  		il->staging.filter_flags = | ||||
|  		    RXON_FILTER_BCON_AWARE_MSK | RXON_FILTER_ACCEPT_GRP_MSK; | ||||
| -	} else {
 | ||||
| +		break;
 | ||||
| +	default:
 | ||||
|  		IL_ERR("Unsupported interface type %d\n", il->vif->type); | ||||
|  		return; | ||||
|  	} | ||||
| @@ -4550,8 +4554,7 @@ out:
 | ||||
|  EXPORT_SYMBOL(il_mac_add_interface); | ||||
|   | ||||
|  static void | ||||
| -il_teardown_interface(struct il_priv *il, struct ieee80211_vif *vif,
 | ||||
| -		      bool mode_change)
 | ||||
| +il_teardown_interface(struct il_priv *il, struct ieee80211_vif *vif)
 | ||||
|  { | ||||
|  	lockdep_assert_held(&il->mutex); | ||||
|   | ||||
| @@ -4560,9 +4563,7 @@ il_teardown_interface(struct il_priv *il, struct ieee80211_vif *vif,
 | ||||
|  		il_force_scan_end(il); | ||||
|  	} | ||||
|   | ||||
| -	if (!mode_change)
 | ||||
| -		il_set_mode(il);
 | ||||
| -
 | ||||
| +	il_set_mode(il);
 | ||||
|  } | ||||
|   | ||||
|  void | ||||
| @@ -4575,8 +4576,8 @@ il_mac_remove_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif)
 | ||||
|   | ||||
|  	WARN_ON(il->vif != vif); | ||||
|  	il->vif = NULL; | ||||
| -
 | ||||
| -	il_teardown_interface(il, vif, false);
 | ||||
| +	il->iw_mode = NL80211_IFTYPE_UNSPECIFIED;
 | ||||
| +	il_teardown_interface(il, vif);
 | ||||
|  	memset(il->bssid, 0, ETH_ALEN); | ||||
|   | ||||
|  	D_MAC80211("leave\n"); | ||||
| @@ -4685,18 +4686,10 @@ il_mac_change_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
 | ||||
|  	} | ||||
|   | ||||
|  	/* success */ | ||||
| -	il_teardown_interface(il, vif, true);
 | ||||
|  	vif->type = newtype; | ||||
|  	vif->p2p = false; | ||||
| -	err = il_set_mode(il);
 | ||||
| -	WARN_ON(err);
 | ||||
| -	/*
 | ||||
| -	 * We've switched internally, but submitting to the
 | ||||
| -	 * device may have failed for some reason. Mask this
 | ||||
| -	 * error, because otherwise mac80211 will not switch
 | ||||
| -	 * (and set the interface type back) and we'll be
 | ||||
| -	 * out of sync with it.
 | ||||
| -	 */
 | ||||
| +	il->iw_mode = newtype;
 | ||||
| +	il_teardown_interface(il, vif);
 | ||||
|  	err = 0; | ||||
|   | ||||
|  out: | ||||
| -- 
 | ||||
| 1.8.0.2 | ||||
| 
 | ||||
| @ -1,50 +0,0 @@ | ||||
| From c3e5d7181afb66657393066bccce0956fab09ab3 Mon Sep 17 00:00:00 2001 | ||||
| From: Emmanuel Grumbach <emmanuel.grumbach@intel.com> | ||||
| Date: Wed, 9 Jan 2013 10:20:36 +0200 | ||||
| Subject: [PATCH] iwlwifi: audit single frames from AGG queue in RS | ||||
| 
 | ||||
| The rate scaling won't treat the information in a frame | ||||
| with IEEE80211_TX_CTL_AMPDU set if IEEE80211_TX_STAT_AMPDU | ||||
| is cleared. But all the frames coming from an AGG tx queue | ||||
| have IEEE80211_TX_CTL_AMPDU set, and IEEE80211_TX_STAT_AMPDU | ||||
| is set only if the frame was sent in an AMPDU. | ||||
| This means that all the data in frames in AGG tx queues that | ||||
| aren't sent as an AMPDU is thrown away. | ||||
| This is even more harmful when in bad link conditions, the | ||||
| frames are sent in an AMPDU and then finally sent as single | ||||
| frame. So a lot of failures weren't reported and the rate | ||||
| scaling got stuck in high rates leading to very poor | ||||
| connectivity. | ||||
| 
 | ||||
| Fix that by clearing IEEE80211_TX_CTL_AMPDU when the frame | ||||
| isn't part of an AMPDU. | ||||
| 
 | ||||
| This bug was introduced by | ||||
| 
 | ||||
| 2eb81a40aa521035ff9c8c8309e482dff523f8c9 | ||||
| iwlwifi: don't clear CTL_AMPDU on frame status | ||||
| 
 | ||||
| This fix basically reverts the aforementioned commit. | ||||
| 
 | ||||
| Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> | ||||
| Signed-off-by: Johannes Berg <johannes.berg@intel.com> | ||||
| ---
 | ||||
|  drivers/net/wireless/iwlwifi/dvm/tx.c |    2 ++ | ||||
|  1 files changed, 2 insertions(+), 0 deletions(-) | ||||
| 
 | ||||
| diff --git a/drivers/net/wireless/iwlwifi/dvm/tx.c b/drivers/net/wireless/iwlwifi/dvm/tx.c
 | ||||
| index a790599..31534f7 100644
 | ||||
| --- a/drivers/net/wireless/iwlwifi/dvm/tx.c
 | ||||
| +++ b/drivers/net/wireless/iwlwifi/dvm/tx.c
 | ||||
| @@ -1079,6 +1079,8 @@ static void iwlagn_set_tx_status(struct iwl_priv *priv,
 | ||||
|  { | ||||
|  	u16 status = le16_to_cpu(tx_resp->status.status); | ||||
|   | ||||
| +	info->flags &= ~IEEE80211_TX_CTL_AMPDU;
 | ||||
| +
 | ||||
|  	info->status.rates[0].count = tx_resp->failure_frame + 1; | ||||
|  	info->flags |= iwl_tx_status_to_mac80211(status); | ||||
|  	iwlagn_hwrate_to_tx_control(priv, le32_to_cpu(tx_resp->rate_n_flags), | ||||
| -- 
 | ||||
| 1.7.6.5 | ||||
| 
 | ||||
							
								
								
									
										18
									
								
								kernel.spec
									
									
									
									
									
								
							
							
						
						
									
										18
									
								
								kernel.spec
									
									
									
									
									
								
							| @ -62,7 +62,7 @@ Summary: The Linux kernel | ||||
| # For non-released -rc kernels, this will be appended after the rcX and | ||||
| # gitX tags, so a 3 here would become part of release "0.rcX.gitX.3" | ||||
| # | ||||
| %global baserelease 2 | ||||
| %global baserelease 1 | ||||
| %global fedora_build %{baserelease} | ||||
| 
 | ||||
| # base_sublevel is the kernel version we're starting with and patching | ||||
| @ -95,7 +95,7 @@ Summary: The Linux kernel | ||||
| # The rc snapshot level | ||||
| %define rcrev 5 | ||||
| # The git snapshot level | ||||
| %define gitrev 0 | ||||
| %define gitrev 1 | ||||
| # Set rpm version accordingly | ||||
| %define rpmversion 3.%{upstream_sublevel}.0 | ||||
| %endif | ||||
| @ -729,8 +729,6 @@ Patch21004: arm-tegra-nvec-kconfig.patch | ||||
| Patch21005: arm-tegra-usb-no-reset-linux33.patch | ||||
| 
 | ||||
| # versatile | ||||
| # https://patchwork-mail.kernel.org/patch/1937321/ | ||||
| Patch21006: arm-vexpress-exports.patch | ||||
| 
 | ||||
| #rhbz 754518 | ||||
| Patch21235: scsi-sd_revalidate_disk-prevent-NULL-ptr-deref.patch | ||||
| @ -746,11 +744,7 @@ Patch22070: irqnr-build.patch | ||||
| #rhbz 859485 | ||||
| Patch21226: vt-Drop-K_OFF-for-VC_MUTE.patch | ||||
| 
 | ||||
| #rhbz 886946 | ||||
| Patch21227: iwlegacy-fix-IBSS-cleanup.patch | ||||
| 
 | ||||
| #rhbz 863424 | ||||
| Patch21228: iwlwifi-audit-single-frames-from-AGG-queue-in-RS.patch | ||||
| Patch21229: Revert-iwlwifi-fix-the-reclaimed-packet-tracking-upon.patch | ||||
| 
 | ||||
| #rhbz 799564 | ||||
| @ -1321,7 +1315,6 @@ ApplyPatch arm-allnoconfig-error-__LINUX_ARM_ARCH__-undeclared.patch | ||||
| ApplyPatch arm-tegra-usb-no-reset-linux33.patch | ||||
| ApplyPatch arm-omap-fixdrm.patch | ||||
| ApplyPatch arm-imx-fixdrm.patch | ||||
| ApplyPatch arm-vexpress-exports.patch | ||||
| 
 | ||||
| # | ||||
| # bugfixes to drivers and filesystems | ||||
| @ -1448,11 +1441,7 @@ ApplyPatch irqnr-build.patch | ||||
| #rhbz 859485 | ||||
| ApplyPatch vt-Drop-K_OFF-for-VC_MUTE.patch | ||||
| 
 | ||||
| #rhbz 886946 | ||||
| ApplyPatch iwlegacy-fix-IBSS-cleanup.patch | ||||
| 
 | ||||
| #rhbz 863424 | ||||
| ApplyPatch iwlwifi-audit-single-frames-from-AGG-queue-in-RS.patch | ||||
| ApplyPatch Revert-iwlwifi-fix-the-reclaimed-packet-tracking-upon.patch | ||||
| 
 | ||||
| #rhbz 799564 | ||||
| @ -2314,6 +2303,9 @@ fi | ||||
| #                 ||----w | | ||||
| #                 ||     || | ||||
| %changelog | ||||
| * Tue Jan 29 2013 Josh Boyer <jwboyer@redhat.com> - 3.8.0-0.rc5.git1.1 | ||||
| - Linux v3.8-rc5-150-g6abb7c2 | ||||
| 
 | ||||
| * Tue Jan 29 2013 Josh Boyer <jwboyer@redhat.com> | ||||
| - Backport driver for Cypress PS/2 trackpad (rhbz 799564) | ||||
| 
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user