forked from rpms/kernel
		
	Linux 3.3-rc1-git2 (upstream f8275f9694b8adf9f3498e747ea4c3e8b984499b)
This commit is contained in:
		
							parent
							
								
									d5f748edcb
								
							
						
					
					
						commit
						64d09e6b04
					
				| @ -1,36 +0,0 @@ | |||||||
| Simple patch to remove the overlap between the bcma (i.e. b43) driver |  | ||||||
| and the brcmsmac driver.  David Woodhouse <dwmw2@infradead.org> |  | ||||||
| confirmed that this patch restores functionality of bcm4331 devices. |  | ||||||
| 
 |  | ||||||
| -- John W. Linville <linville@redhat.com>
 |  | ||||||
| 
 |  | ||||||
| diff -up linux-3.1.x86_64/drivers/bcma/host_pci.c.orig linux-3.1.x86_64/drivers/bcma/host_pci.c
 |  | ||||||
| --- linux-3.1.x86_64/drivers/bcma/host_pci.c.orig	2011-11-10 11:41:26.829742757 -0500
 |  | ||||||
| +++ linux-3.1.x86_64/drivers/bcma/host_pci.c	2011-11-10 11:41:22.884792078 -0500
 |  | ||||||
| @@ -225,11 +225,13 @@ static void bcma_host_pci_remove(struct 
 |  | ||||||
|  } |  | ||||||
|   |  | ||||||
|  static DEFINE_PCI_DEVICE_TABLE(bcma_pci_bridge_tbl) = { |  | ||||||
| -	{ PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x0576) },
 |  | ||||||
|  	{ PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4331) }, |  | ||||||
| +#if 0 /* Not in Fedora... */
 |  | ||||||
| + 	{ PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x0576) },
 |  | ||||||
|  	{ PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4353) }, |  | ||||||
|  	{ PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4357) }, |  | ||||||
|  	{ PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4727) }, |  | ||||||
| +#endif
 |  | ||||||
|  	{ 0, }, |  | ||||||
|  }; |  | ||||||
|  MODULE_DEVICE_TABLE(pci, bcma_pci_bridge_tbl); |  | ||||||
| diff --git a/drivers/net/wireless/brcm80211/Kconfig b/drivers/net/wireless/brcm80211/Kconfig
 |  | ||||||
| index cd6375d..caa0302 100644
 |  | ||||||
| --- a/drivers/net/wireless/brcm80211/Kconfig
 |  | ||||||
| +++ b/drivers/net/wireless/brcm80211/Kconfig
 |  | ||||||
| @@ -4,7 +4,6 @@ config BRCMUTIL
 |  | ||||||
|  config BRCMSMAC |  | ||||||
|  	tristate "Broadcom IEEE802.11n PCIe SoftMAC WLAN driver" |  | ||||||
|  	depends on MAC80211 |  | ||||||
| -	depends on BCMA
 |  | ||||||
|  	select BRCMUTIL |  | ||||||
|  	select FW_LOADER |  | ||||||
|  	select CRC_CCITT |  | ||||||
| @ -1463,6 +1463,7 @@ CONFIG_B43=m | |||||||
| CONFIG_B43_PCMCIA=y | CONFIG_B43_PCMCIA=y | ||||||
| CONFIG_B43_SDIO=y | CONFIG_B43_SDIO=y | ||||||
| CONFIG_B43_BCMA=y | CONFIG_B43_BCMA=y | ||||||
|  | CONFIG_B43_BCMA_EXTRA=y | ||||||
| CONFIG_B43_BCMA_PIO=y | CONFIG_B43_BCMA_PIO=y | ||||||
| CONFIG_B43_DEBUG=y | CONFIG_B43_DEBUG=y | ||||||
| CONFIG_B43_PHY_LP=y | CONFIG_B43_PHY_LP=y | ||||||
|  | |||||||
							
								
								
									
										15
									
								
								kernel.spec
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								kernel.spec
									
									
									
									
									
								
							| @ -87,7 +87,7 @@ Summary: The Linux kernel | |||||||
| # The rc snapshot level | # The rc snapshot level | ||||||
| %define rcrev 1 | %define rcrev 1 | ||||||
| # The git snapshot level | # The git snapshot level | ||||||
| %define gitrev 1 | %define gitrev 2 | ||||||
| # Set rpm version accordingly | # Set rpm version accordingly | ||||||
| %define rpmversion 3.%{upstream_sublevel}.0 | %define rpmversion 3.%{upstream_sublevel}.0 | ||||||
| %endif | %endif | ||||||
| @ -736,12 +736,8 @@ Patch21070: ext4-Support-check-none-nocheck-mount-options.patch | |||||||
| Patch21073: KVM-x86-extend-struct-x86_emulate_ops-with-get_cpuid.patch | Patch21073: KVM-x86-extend-struct-x86_emulate_ops-with-get_cpuid.patch | ||||||
| Patch21074: KVM-x86-fix-missing-checks-in-syscall-emulation.patch | Patch21074: KVM-x86-fix-missing-checks-in-syscall-emulation.patch | ||||||
| 
 | 
 | ||||||
| Patch21090: bcma-brcmsmac-compat.patch |  | ||||||
| 
 |  | ||||||
| Patch21091: kmemleak.patch | Patch21091: kmemleak.patch | ||||||
| 
 | 
 | ||||||
| Patch21092: mac80211-fix-work-removal-on-deauth-request.patch |  | ||||||
| 
 |  | ||||||
| # compat-wireless patches | # compat-wireless patches | ||||||
| Patch50000: compat-wireless-config-fixups.patch | Patch50000: compat-wireless-config-fixups.patch | ||||||
| Patch50001: compat-wireless-pr_fmt-warning-avoidance.patch | Patch50001: compat-wireless-pr_fmt-warning-avoidance.patch | ||||||
| @ -1423,11 +1419,6 @@ ApplyPatch efi-dont-map-boot-services-on-32bit.patch | |||||||
| # utrace. | # utrace. | ||||||
| # pplyPatch utrace.patch | # pplyPatch utrace.patch | ||||||
| 
 | 
 | ||||||
| %if !%{with_backports} |  | ||||||
| # Remove overlap between bcma/b43 and brcmsmac and reenable bcm4331 |  | ||||||
| ApplyPatch bcma-brcmsmac-compat.patch |  | ||||||
| %endif |  | ||||||
| 
 |  | ||||||
| ApplyPatch ext4-Support-check-none-nocheck-mount-options.patch | ApplyPatch ext4-Support-check-none-nocheck-mount-options.patch | ||||||
| 
 | 
 | ||||||
| #rhbz 773392 | #rhbz 773392 | ||||||
| @ -1435,7 +1426,6 @@ ApplyPatch KVM-x86-extend-struct-x86_emulate_ops-with-get_cpuid.patch | |||||||
| ApplyPatch KVM-x86-fix-missing-checks-in-syscall-emulation.patch | ApplyPatch KVM-x86-fix-missing-checks-in-syscall-emulation.patch | ||||||
| 
 | 
 | ||||||
| ApplyPatch kmemleak.patch | ApplyPatch kmemleak.patch | ||||||
| ApplyPatch mac80211-fix-work-removal-on-deauth-request.patch |  | ||||||
| 
 | 
 | ||||||
| # END OF PATCH APPLICATIONS | # END OF PATCH APPLICATIONS | ||||||
| 
 | 
 | ||||||
| @ -2276,6 +2266,9 @@ fi | |||||||
| #                 ||----w | | #                 ||----w | | ||||||
| #                 ||     || | #                 ||     || | ||||||
| %changelog | %changelog | ||||||
|  | * Wed Jan 25 2012 Josh Boyer <jwboyer@redhat.com> - 3.3.0-0.rc1.git2.1 | ||||||
|  | - Linux 3.3-rc1-git2 (upstream f8275f9694b8adf9f3498e747ea4c3e8b984499b) | ||||||
|  | 
 | ||||||
| * Tue Jan 24 2012 Josh Boyer <jwboyer@redhat.com> | * Tue Jan 24 2012 Josh Boyer <jwboyer@redhat.com> | ||||||
| - Re-enable the ARCMSR module (rhbz 784287) | - Re-enable the ARCMSR module (rhbz 784287) | ||||||
| - Re-enable the LIRC_STAGING drivers (rhbz 784398) | - Re-enable the LIRC_STAGING drivers (rhbz 784398) | ||||||
|  | |||||||
| @ -1,154 +0,0 @@ | |||||||
| Path: news.gmane.org!not-for-mail |  | ||||||
| From: Johannes Berg <johannes-cdvu00un1VgdHxzADdlk8Q@public.gmane.org> |  | ||||||
| Newsgroups: gmane.linux.kernel.wireless.general |  | ||||||
| Subject: [PATCH 3.3] mac80211: fix work removal on deauth request |  | ||||||
| Date: Wed, 18 Jan 2012 14:10:25 +0100 |  | ||||||
| Lines: 107 |  | ||||||
| Approved: news@gmane.org |  | ||||||
| Message-ID: <1326892225.4778.5.camel@jlt3.sipsolutions.net> |  | ||||||
| NNTP-Posting-Host: lo.gmane.org |  | ||||||
| Mime-Version: 1.0 |  | ||||||
| Content-Type: text/plain; charset="UTF-8" |  | ||||||
| Content-Transfer-Encoding: 7bit |  | ||||||
| X-Trace: dough.gmane.org 1326892249 18013 80.91.229.12 (18 Jan 2012 13:10:49 GMT) |  | ||||||
| X-Complaints-To: usenet@dough.gmane.org |  | ||||||
| NNTP-Posting-Date: Wed, 18 Jan 2012 13:10:49 +0000 (UTC) |  | ||||||
| Cc: linux-wireless <linux-wireless-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>, |  | ||||||
| 	Pontus Fuchs <pontus.fuchs-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> |  | ||||||
| To: John Linville <linville-2XuSBdqkA4R54TAoqtyWWQ@public.gmane.org> |  | ||||||
| Original-X-From: linux-wireless-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Wed Jan 18 14:10:44 2012 |  | ||||||
| Return-path: <linux-wireless-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org> |  | ||||||
| Envelope-to: glkwg-linux-wireless-1dZseelyfdZg9hUCZPvPmw@public.gmane.org |  | ||||||
| Original-Received: from vger.kernel.org ([209.132.180.67]) |  | ||||||
| 	by lo.gmane.org with esmtp (Exim 4.69) |  | ||||||
| 	(envelope-from <linux-wireless-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>) |  | ||||||
| 	id 1RnVHo-00044l-Aq |  | ||||||
| 	for glkwg-linux-wireless-1dZseelyfdZg9hUCZPvPmw@public.gmane.org; Wed, 18 Jan 2012 14:10:44 +0100 |  | ||||||
| Original-Received: (majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org) by vger.kernel.org via listexpand |  | ||||||
| 	id S1757410Ab2ARNK3 (ORCPT |  | ||||||
| 	<rfc822;glkwg-linux-wireless@m.gmane.org>); |  | ||||||
| 	Wed, 18 Jan 2012 08:10:29 -0500 |  | ||||||
| Original-Received: from he.sipsolutions.net ([78.46.109.217]:45023 "EHLO |  | ||||||
| 	sipsolutions.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org |  | ||||||
| 	with ESMTP id S1754365Ab2ARNK2 (ORCPT |  | ||||||
| 	<rfc822;linux-wireless-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>); |  | ||||||
| 	Wed, 18 Jan 2012 08:10:28 -0500 |  | ||||||
| Original-Received: by sipsolutions.net with esmtpsa (TLS1.0:RSA_AES_256_CBC_SHA1:32) |  | ||||||
| 	(Exim 4.77) |  | ||||||
| 	(envelope-from <johannes-cdvu00un1VgdHxzADdlk8Q@public.gmane.org>) |  | ||||||
| 	id 1RnVHW-0004hf-Lx; Wed, 18 Jan 2012 14:10:26 +0100 |  | ||||||
| X-Mailer: Evolution 2.30.3  |  | ||||||
| Original-Sender: linux-wireless-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org |  | ||||||
| Precedence: bulk |  | ||||||
| List-ID: <linux-wireless.vger.kernel.org> |  | ||||||
| X-Mailing-List: linux-wireless-u79uwXL29TY76Z2rM5mHXA@public.gmane.org |  | ||||||
| Xref: news.gmane.org gmane.linux.kernel.wireless.general:84095 |  | ||||||
| Archived-At: <http://permalink.gmane.org/gmane.linux.kernel.wireless.general/84095> |  | ||||||
| 
 |  | ||||||
| From: Johannes Berg <johannes.berg-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org> |  | ||||||
| 
 |  | ||||||
| When deauth is requested while an auth or assoc |  | ||||||
| work item is in progress, we currently delete it |  | ||||||
| without regard for any state it might need to |  | ||||||
| clean up. Fix it by cleaning up for those items. |  | ||||||
| 
 |  | ||||||
| In the case Pontus found, the problem manifested |  | ||||||
| itself as such: |  | ||||||
| 
 |  | ||||||
| authenticate with 00:23:69:aa:dd:7b (try 1) |  | ||||||
| authenticated |  | ||||||
| failed to insert Dummy STA entry for the AP (error -17) |  | ||||||
| deauthenticating from 00:23:69:aa:dd:7b by local choice (reason=2) |  | ||||||
| 
 |  | ||||||
| It could also happen differently if the driver |  | ||||||
| uses the tx_sync callback. |  | ||||||
| 
 |  | ||||||
| We can't just call the ->done() method of the work |  | ||||||
| items because that will lock up due to the locking |  | ||||||
| in cfg80211. This fix isn't very clean, but that |  | ||||||
| seems acceptable since I have patches pending to |  | ||||||
| remove this code completely. |  | ||||||
| 
 |  | ||||||
| Cc: stable-u79uwXL29TY76Z2rM5mHXA@public.gmane.org |  | ||||||
| Reported-by: Pontus Fuchs <pontus.fuchs-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> |  | ||||||
| Tested-by: Pontus Fuchs <pontus.fuchs-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> |  | ||||||
| Signed-off-by: Johannes Berg <johannes.berg-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org> |  | ||||||
| ---
 |  | ||||||
|  net/mac80211/mlme.c |   38 +++++++++++++++++++++++++++----------- |  | ||||||
|  1 file changed, 27 insertions(+), 11 deletions(-) |  | ||||||
| 
 |  | ||||||
| --- a/net/mac80211/mlme.c	2012-01-18 14:04:33.000000000 +0100
 |  | ||||||
| +++ b/net/mac80211/mlme.c	2012-01-18 14:04:34.000000000 +0100
 |  | ||||||
| @@ -2750,7 +2750,6 @@ int ieee80211_mgd_deauth(struct ieee8021
 |  | ||||||
|  { |  | ||||||
|  	struct ieee80211_local *local = sdata->local; |  | ||||||
|  	struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; |  | ||||||
| -	struct ieee80211_work *wk;
 |  | ||||||
|  	u8 bssid[ETH_ALEN]; |  | ||||||
|  	bool assoc_bss = false; |  | ||||||
|   |  | ||||||
| @@ -2763,30 +2762,47 @@ int ieee80211_mgd_deauth(struct ieee8021
 |  | ||||||
|  		assoc_bss = true; |  | ||||||
|  	} else { |  | ||||||
|  		bool not_auth_yet = false; |  | ||||||
| +		struct ieee80211_work *tmp, *wk = NULL;
 |  | ||||||
|   |  | ||||||
|  		mutex_unlock(&ifmgd->mtx); |  | ||||||
|   |  | ||||||
|  		mutex_lock(&local->mtx); |  | ||||||
| -		list_for_each_entry(wk, &local->work_list, list) {
 |  | ||||||
| -			if (wk->sdata != sdata)
 |  | ||||||
| +		list_for_each_entry(tmp, &local->work_list, list) {
 |  | ||||||
| +			if (tmp->sdata != sdata)
 |  | ||||||
|  				continue; |  | ||||||
|   |  | ||||||
| -			if (wk->type != IEEE80211_WORK_DIRECT_PROBE &&
 |  | ||||||
| -			    wk->type != IEEE80211_WORK_AUTH &&
 |  | ||||||
| -			    wk->type != IEEE80211_WORK_ASSOC &&
 |  | ||||||
| -			    wk->type != IEEE80211_WORK_ASSOC_BEACON_WAIT)
 |  | ||||||
| +			if (tmp->type != IEEE80211_WORK_DIRECT_PROBE &&
 |  | ||||||
| +			    tmp->type != IEEE80211_WORK_AUTH &&
 |  | ||||||
| +			    tmp->type != IEEE80211_WORK_ASSOC &&
 |  | ||||||
| +			    tmp->type != IEEE80211_WORK_ASSOC_BEACON_WAIT)
 |  | ||||||
|  				continue; |  | ||||||
|   |  | ||||||
| -			if (memcmp(req->bss->bssid, wk->filter_ta, ETH_ALEN))
 |  | ||||||
| +			if (memcmp(req->bss->bssid, tmp->filter_ta, ETH_ALEN))
 |  | ||||||
|  				continue; |  | ||||||
|   |  | ||||||
| -			not_auth_yet = wk->type == IEEE80211_WORK_DIRECT_PROBE;
 |  | ||||||
| -			list_del_rcu(&wk->list);
 |  | ||||||
| -			free_work(wk);
 |  | ||||||
| +			not_auth_yet = tmp->type == IEEE80211_WORK_DIRECT_PROBE;
 |  | ||||||
| +			list_del_rcu(&tmp->list);
 |  | ||||||
| +			synchronize_rcu();
 |  | ||||||
| +			wk = tmp;
 |  | ||||||
|  			break; |  | ||||||
|  		} |  | ||||||
|  		mutex_unlock(&local->mtx); |  | ||||||
|   |  | ||||||
| +		if (wk && wk->type == IEEE80211_WORK_ASSOC) {
 |  | ||||||
| +			/* clean up dummy sta & TX sync */
 |  | ||||||
| +			sta_info_destroy_addr(wk->sdata, wk->filter_ta);
 |  | ||||||
| +			if (wk->assoc.synced)
 |  | ||||||
| +				drv_finish_tx_sync(local, wk->sdata,
 |  | ||||||
| +						   wk->filter_ta,
 |  | ||||||
| +						   IEEE80211_TX_SYNC_ASSOC);
 |  | ||||||
| +		} else if (wk && wk->type == IEEE80211_WORK_AUTH) {
 |  | ||||||
| +			if (wk->probe_auth.synced)
 |  | ||||||
| +				drv_finish_tx_sync(local, wk->sdata,
 |  | ||||||
| +						   wk->filter_ta,
 |  | ||||||
| +						   IEEE80211_TX_SYNC_AUTH);
 |  | ||||||
| +		}
 |  | ||||||
| +		kfree(wk);
 |  | ||||||
| +
 |  | ||||||
|  		/* |  | ||||||
|  		 * If somebody requests authentication and we haven't |  | ||||||
|  		 * sent out an auth frame yet there's no need to send |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| --
 |  | ||||||
| To unsubscribe from this list: send the line "unsubscribe linux-wireless" in |  | ||||||
| the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org |  | ||||||
| More majordomo info at  http://vger.kernel.org/majordomo-info.html |  | ||||||
| 
 |  | ||||||
							
								
								
									
										2
									
								
								sources
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								sources
									
									
									
									
									
								
							| @ -1,4 +1,4 @@ | |||||||
| 364066fa18767ec0ae5f4e4abcf9dc51  linux-3.2.tar.xz | 364066fa18767ec0ae5f4e4abcf9dc51  linux-3.2.tar.xz | ||||||
| 2fed18362598429cc0669c01123290ff  compat-wireless-2012-01-09.tar.bz2 | 2fed18362598429cc0669c01123290ff  compat-wireless-2012-01-09.tar.bz2 | ||||||
| 1c3dd34fa219420a4cbed1e573d253e7  patch-3.3-rc1.xz | 1c3dd34fa219420a4cbed1e573d253e7  patch-3.3-rc1.xz | ||||||
| a39992f85a392f3a3a515355ad68f889  patch-3.3-rc1-git1.xz | 6eb5ed992fdaf6a22f788531ed4f4683  patch-3.3-rc1-git2.xz | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user