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_SDIO=y | ||||
| CONFIG_B43_BCMA=y | ||||
| CONFIG_B43_BCMA_EXTRA=y | ||||
| CONFIG_B43_BCMA_PIO=y | ||||
| CONFIG_B43_DEBUG=y | ||||
| CONFIG_B43_PHY_LP=y | ||||
|  | ||||
							
								
								
									
										15
									
								
								kernel.spec
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								kernel.spec
									
									
									
									
									
								
							| @ -87,7 +87,7 @@ Summary: The Linux kernel | ||||
| # The rc snapshot level | ||||
| %define rcrev 1 | ||||
| # The git snapshot level | ||||
| %define gitrev 1 | ||||
| %define gitrev 2 | ||||
| # Set rpm version accordingly | ||||
| %define rpmversion 3.%{upstream_sublevel}.0 | ||||
| %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 | ||||
| Patch21074: KVM-x86-fix-missing-checks-in-syscall-emulation.patch | ||||
| 
 | ||||
| Patch21090: bcma-brcmsmac-compat.patch | ||||
| 
 | ||||
| Patch21091: kmemleak.patch | ||||
| 
 | ||||
| Patch21092: mac80211-fix-work-removal-on-deauth-request.patch | ||||
| 
 | ||||
| # compat-wireless patches | ||||
| Patch50000: compat-wireless-config-fixups.patch | ||||
| Patch50001: compat-wireless-pr_fmt-warning-avoidance.patch | ||||
| @ -1423,11 +1419,6 @@ ApplyPatch efi-dont-map-boot-services-on-32bit.patch | ||||
| # utrace. | ||||
| # 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 | ||||
| 
 | ||||
| #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 kmemleak.patch | ||||
| ApplyPatch mac80211-fix-work-removal-on-deauth-request.patch | ||||
| 
 | ||||
| # END OF PATCH APPLICATIONS | ||||
| 
 | ||||
| @ -2276,6 +2266,9 @@ fi | ||||
| #                 ||----w | | ||||
| #                 ||     || | ||||
| %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> | ||||
| - Re-enable the ARCMSR module (rhbz 784287) | ||||
| - 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 | ||||
| 2fed18362598429cc0669c01123290ff  compat-wireless-2012-01-09.tar.bz2 | ||||
| 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