LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
* [PATCH] Fix the bcm43xx driver breakage in 2.6.24/25.
@ 2008-02-23 13:17 Alexey Zaytsev
  2008-02-23 16:20 ` Michael Buesch
                   ` (2 more replies)
  0 siblings, 3 replies; 11+ messages in thread
From: Alexey Zaytsev @ 2008-02-23 13:17 UTC (permalink / raw)
  To: Larry Finger
  Cc: Stefano Brivio, Jeff Garzik, Greg KH, Pekka Enberg, Ingo Molnar,
	Michael Buesch, linux-kernel

[-- Attachment #1: Type: text/plain, Size: 5851 bytes --]


[resent with lkml added to cc, sorry]

Hello, gentlemen.

Theese two patches fix a problem instroduced in Linux 2.6.24, and
still present in the current Linus' 2.6.25 tree.

The bcm43xx Wifi driver won't work any more, if the b44 Ethernet
driver is enabled. This happens because the b44 driver
needlessly enables the b43_pci_bridge code, which claims
the same pci ids as the bcm43xx driver. The b43_pci_bridge
code is needed for the b43{legacy} drivers, but for the
b44, only the "ssb pci core" is needed.

The first patch separates the ssb b43 pci bridge and the ssb pci
core config options and enables only the needed ones.

A similar patch was once sent to Michael Buesch, but he rejected
it, fearing that changing the config autoselects cold introduce
some unexpected bugs.
If you are intrested, a rather emotional thread may be found
e.g. here:
http://thread.gmane.org/gmane.linux.kernel/644266

That said, I believe the patch may introduce no more bugs,
but fixes a critical regression, which left some users
without a working wifi driver on the 2.6.24 kernel.

If you doubt its correctness, I may write a longer description
on the changes introduced, but I hope they should be obvoius.

This patch is againts the current Linus' tree. I'd like it
to be added to both 2.6.25 and the 2.6.24-stable trees.

The second patch disables the bcm43xx driver if it can't
work due to the b43/b43legacy drivers inclusion, so no
users should be confused.

PS: 
Sorry, I'm a bit tierd of trying to get git-send-patch to work
with the gmail smtp server, so the patches were went with
the thunderbird. If they end up being correpted, I've added
them as attachments.


-----

From: Alexey Zaytsev <alexey.zaytsev@gmail.com>
Date: Sat, 23 Feb 2008 12:59:26 +0300
Subject: [PATCH] Use a separate config option for the b43 pci to ssb bridge.

       The bridge code was unnecessary enabled by the b44
       driver, but it prevents the bcm43xx driver from
       being loaded, as the bridge claims the same pci ids.

       Now we enable the birdge only if the b43{legacy}
       drivers are selected.

Signed-off-by: Alexey Zaytsev <alexey.zaytsev@gmail.com>
---
 drivers/net/wireless/b43/Kconfig       |    1 +
 drivers/net/wireless/b43legacy/Kconfig |    1 +
 drivers/ssb/Kconfig                    |    5 +++++
 drivers/ssb/Makefile                   |    2 +-
 drivers/ssb/ssb_private.h              |    4 ++--
 5 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/drivers/net/wireless/b43/Kconfig b/drivers/net/wireless/b43/Kconfig
index 1a2141d..8bc4bc4 100644
--- a/drivers/net/wireless/b43/Kconfig
+++ b/drivers/net/wireless/b43/Kconfig
@@ -32,6 +32,7 @@ config B43_PCI_AUTOSELECT
 	bool
 	depends on B43 && SSB_PCIHOST_POSSIBLE
 	select SSB_PCIHOST
+	select SSB_B43_PCI_BRIDGE
 	default y
 
 # Auto-select SSB PCICORE driver, if possible
diff --git a/drivers/net/wireless/b43legacy/Kconfig b/drivers/net/wireless/b43legacy/Kconfig
index 6745579..13c65fa 100644
--- a/drivers/net/wireless/b43legacy/Kconfig
+++ b/drivers/net/wireless/b43legacy/Kconfig
@@ -25,6 +25,7 @@ config B43LEGACY_PCI_AUTOSELECT
 	bool
 	depends on B43LEGACY && SSB_PCIHOST_POSSIBLE
 	select SSB_PCIHOST
+	select SSB_B43_PCI_BRIDGE
 	default y
 
 # Auto-select SSB PCICORE driver, if possible
diff --git a/drivers/ssb/Kconfig b/drivers/ssb/Kconfig
index d976660..6f627f3 100644
--- a/drivers/ssb/Kconfig
+++ b/drivers/ssb/Kconfig
@@ -35,6 +35,11 @@ config SSB_PCIHOST
 
 	  If unsure, say Y
 
+config SSB_B43_PCI_BRIDGE
+	bool
+	depends on SSB_PCIHOST
+	default n
+
 config SSB_PCMCIAHOST_POSSIBLE
 	bool
 	depends on SSB && (PCMCIA = y || PCMCIA = SSB) && EXPERIMENTAL
diff --git a/drivers/ssb/Makefile b/drivers/ssb/Makefile
index 7be3975..1bf35f0 100644
--- a/drivers/ssb/Makefile
+++ b/drivers/ssb/Makefile
@@ -13,6 +13,6 @@ ssb-$(CONFIG_SSB_DRIVER_PCICORE)	+= driver_pcicore.o
 
 # b43 pci-ssb-bridge driver
 # Not strictly a part of SSB, but kept here for convenience
-ssb-$(CONFIG_SSB_PCIHOST)		+= b43_pci_bridge.o
+ssb-$(CONFIG_SSB_B43_PCI_BRIDGE)	+= b43_pci_bridge.o
 
 obj-$(CONFIG_SSB)			+= ssb.o
diff --git a/drivers/ssb/ssb_private.h b/drivers/ssb/ssb_private.h
index a789364..21eca2b 100644
--- a/drivers/ssb/ssb_private.h
+++ b/drivers/ssb/ssb_private.h
@@ -120,10 +120,10 @@ extern int ssb_devices_thaw(struct ssb_bus *bus);
 extern struct ssb_bus *ssb_pci_dev_to_bus(struct pci_dev *pdev);
 
 /* b43_pci_bridge.c */
-#ifdef CONFIG_SSB_PCIHOST
+#ifdef CONFIG_SSB_B43_PCI_BRIDGE
 extern int __init b43_pci_ssb_bridge_init(void);
 extern void __exit b43_pci_ssb_bridge_exit(void);
-#else /* CONFIG_SSB_PCIHOST */
+#else /* CONFIG_SSB_B43_PCI_BRIDGR */
 static inline int b43_pci_ssb_bridge_init(void)
 {
 	return 0;
-- 
1.5.2.GIT


From: Alexey Zaytsev <alexey.zaytsev@gmail.com>
Date: Sat, 23 Feb 2008 13:33:07 +0300
Subject: [PATCH] Don't build the bcm43xx driver if SSB is static and the b43 PCI-SSB bridge code is enabled.

This may happen e.g. when the ssb is statically enables by the b44 driver,
and the b43 pci-ssb bridge is enbled by the b43/b43legacy drivers, or the
b43/b43legacy drivers abe built statically.

Signed-off-by: Alexey Zaytsev <alexey.zaytsev@gmail.com>
---
 drivers/net/wireless/bcm43xx/Kconfig |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/net/wireless/bcm43xx/Kconfig b/drivers/net/wireless/bcm43xx/Kconfig
index 0159701..afb8f43 100644
--- a/drivers/net/wireless/bcm43xx/Kconfig
+++ b/drivers/net/wireless/bcm43xx/Kconfig
@@ -1,6 +1,6 @@
 config BCM43XX
 	tristate "Broadcom BCM43xx wireless support (DEPRECATED)"
-	depends on PCI && IEEE80211 && IEEE80211_SOFTMAC && WLAN_80211 && EXPERIMENTAL
+	depends on PCI && IEEE80211 && IEEE80211_SOFTMAC && WLAN_80211 && (!SSB_B43_PCI_BRIDGE || SSB != y) && EXPERIMENTAL
 	select WIRELESS_EXT
 	select FW_LOADER
 	select HW_RANDOM
-- 
1.5.2.GIT





[-- Attachment #2: 0001-Use-a-separate-config-option-for-the-b43-pci-to-ssb.patch --]
[-- Type: text/x-patch, Size: 3133 bytes --]

>From edddbb1a3fdd60eba64869a2866031817d183b7d Mon Sep 17 00:00:00 2001
From: Alexey Zaytsev <alexey.zaytsev@gmail.com>
Date: Sat, 23 Feb 2008 12:59:26 +0300
Subject: [PATCH] Use a separate config option for the b43 pci to ssb bridge.

       The bridge code was unnecessary enabled by the b44
       driver, but it prevents the bcm43xx driver from
       being loaded, as the bridge claims the same pci ids.

       Now we enable the birdge only if the b43{legacy}
       drivers are selected.

Signed-off-by: Alexey Zaytsev <alexey.zaytsev@gmail.com>
---
 drivers/net/wireless/b43/Kconfig       |    1 +
 drivers/net/wireless/b43legacy/Kconfig |    1 +
 drivers/ssb/Kconfig                    |    5 +++++
 drivers/ssb/Makefile                   |    2 +-
 drivers/ssb/ssb_private.h              |    4 ++--
 5 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/drivers/net/wireless/b43/Kconfig b/drivers/net/wireless/b43/Kconfig
index 1a2141d..8bc4bc4 100644
--- a/drivers/net/wireless/b43/Kconfig
+++ b/drivers/net/wireless/b43/Kconfig
@@ -32,6 +32,7 @@ config B43_PCI_AUTOSELECT
 	bool
 	depends on B43 && SSB_PCIHOST_POSSIBLE
 	select SSB_PCIHOST
+	select SSB_B43_PCI_BRIDGE
 	default y
 
 # Auto-select SSB PCICORE driver, if possible
diff --git a/drivers/net/wireless/b43legacy/Kconfig b/drivers/net/wireless/b43legacy/Kconfig
index 6745579..13c65fa 100644
--- a/drivers/net/wireless/b43legacy/Kconfig
+++ b/drivers/net/wireless/b43legacy/Kconfig
@@ -25,6 +25,7 @@ config B43LEGACY_PCI_AUTOSELECT
 	bool
 	depends on B43LEGACY && SSB_PCIHOST_POSSIBLE
 	select SSB_PCIHOST
+	select SSB_B43_PCI_BRIDGE
 	default y
 
 # Auto-select SSB PCICORE driver, if possible
diff --git a/drivers/ssb/Kconfig b/drivers/ssb/Kconfig
index d976660..6f627f3 100644
--- a/drivers/ssb/Kconfig
+++ b/drivers/ssb/Kconfig
@@ -35,6 +35,11 @@ config SSB_PCIHOST
 
 	  If unsure, say Y
 
+config SSB_B43_PCI_BRIDGE
+	bool
+	depends on SSB_PCIHOST
+	default n
+
 config SSB_PCMCIAHOST_POSSIBLE
 	bool
 	depends on SSB && (PCMCIA = y || PCMCIA = SSB) && EXPERIMENTAL
diff --git a/drivers/ssb/Makefile b/drivers/ssb/Makefile
index 7be3975..1bf35f0 100644
--- a/drivers/ssb/Makefile
+++ b/drivers/ssb/Makefile
@@ -13,6 +13,6 @@ ssb-$(CONFIG_SSB_DRIVER_PCICORE)	+= driver_pcicore.o
 
 # b43 pci-ssb-bridge driver
 # Not strictly a part of SSB, but kept here for convenience
-ssb-$(CONFIG_SSB_PCIHOST)		+= b43_pci_bridge.o
+ssb-$(CONFIG_SSB_B43_PCI_BRIDGE)	+= b43_pci_bridge.o
 
 obj-$(CONFIG_SSB)			+= ssb.o
diff --git a/drivers/ssb/ssb_private.h b/drivers/ssb/ssb_private.h
index a789364..21eca2b 100644
--- a/drivers/ssb/ssb_private.h
+++ b/drivers/ssb/ssb_private.h
@@ -120,10 +120,10 @@ extern int ssb_devices_thaw(struct ssb_bus *bus);
 extern struct ssb_bus *ssb_pci_dev_to_bus(struct pci_dev *pdev);
 
 /* b43_pci_bridge.c */
-#ifdef CONFIG_SSB_PCIHOST
+#ifdef CONFIG_SSB_B43_PCI_BRIDGE
 extern int __init b43_pci_ssb_bridge_init(void);
 extern void __exit b43_pci_ssb_bridge_exit(void);
-#else /* CONFIG_SSB_PCIHOST */
+#else /* CONFIG_SSB_B43_PCI_BRIDGR */
 static inline int b43_pci_ssb_bridge_init(void)
 {
 	return 0;
-- 
1.5.2.GIT



[-- Attachment #3: 0002-Don-t-build-the-bcm43xx-driver-if-SSB-is-static-and.patch --]
[-- Type: text/x-patch, Size: 1194 bytes --]

>From c62c389961166fc0813a54ee5ae0e2cc0d61cd0e Mon Sep 17 00:00:00 2001
From: Alexey Zaytsev <alexey.zaytsev@gmail.com>
Date: Sat, 23 Feb 2008 13:33:07 +0300
Subject: [PATCH] Don't build the bcm43xx driver if SSB is static and the b43 PCI-SSB bridge code is enabled.

This may happen e.g. when the ssb is statically enables by the b44 driver,
and the b43 pci-ssb bridge is enbled by the b43/b43legacy drivers, or the
b43/b43legacy drivers abe built statically.

Signed-off-by: Alexey Zaytsev <alexey.zaytsev@gmail.com>
---
 drivers/net/wireless/bcm43xx/Kconfig |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/net/wireless/bcm43xx/Kconfig b/drivers/net/wireless/bcm43xx/Kconfig
index 0159701..afb8f43 100644
--- a/drivers/net/wireless/bcm43xx/Kconfig
+++ b/drivers/net/wireless/bcm43xx/Kconfig
@@ -1,6 +1,6 @@
 config BCM43XX
 	tristate "Broadcom BCM43xx wireless support (DEPRECATED)"
-	depends on PCI && IEEE80211 && IEEE80211_SOFTMAC && WLAN_80211 && EXPERIMENTAL
+	depends on PCI && IEEE80211 && IEEE80211_SOFTMAC && WLAN_80211 && (!SSB_B43_PCI_BRIDGE || SSB != y) && EXPERIMENTAL
 	select WIRELESS_EXT
 	select FW_LOADER
 	select HW_RANDOM
-- 
1.5.2.GIT



^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] Fix the bcm43xx driver breakage in 2.6.24/25.
  2008-02-23 13:17 [PATCH] Fix the bcm43xx driver breakage in 2.6.24/25 Alexey Zaytsev
@ 2008-02-23 16:20 ` Michael Buesch
  2008-02-23 20:37   ` Alexey Zaytsev
  2008-02-24 16:26 ` Larry Finger
  2008-02-29  8:21 ` Andrew Morton
  2 siblings, 1 reply; 11+ messages in thread
From: Michael Buesch @ 2008-02-23 16:20 UTC (permalink / raw)
  To: Alexey Zaytsev
  Cc: Larry Finger, Stefano Brivio, Jeff Garzik, Greg KH, Pekka Enberg,
	Ingo Molnar, linux-kernel

On Saturday 23 February 2008 14:17:55 Alexey Zaytsev wrote:
> diff --git a/drivers/net/wireless/bcm43xx/Kconfig b/drivers/net/wireless/bcm43xx/Kconfig
> index 0159701..afb8f43 100644
> --- a/drivers/net/wireless/bcm43xx/Kconfig
> +++ b/drivers/net/wireless/bcm43xx/Kconfig
> @@ -1,6 +1,6 @@
>  config BCM43XX
>  	tristate "Broadcom BCM43xx wireless support (DEPRECATED)"
> -	depends on PCI && IEEE80211 && IEEE80211_SOFTMAC && WLAN_80211 && EXPERIMENTAL
> +	depends on PCI && IEEE80211 && IEEE80211_SOFTMAC && WLAN_80211 && (!SSB_B43_PCI_BRIDGE || SSB != y) && EXPERIMENTAL

so if SSB is m it will break module auto-loading, right?

-- 
Greetings Michael.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] Fix the bcm43xx driver breakage in 2.6.24/25.
  2008-02-23 16:20 ` Michael Buesch
@ 2008-02-23 20:37   ` Alexey Zaytsev
  0 siblings, 0 replies; 11+ messages in thread
From: Alexey Zaytsev @ 2008-02-23 20:37 UTC (permalink / raw)
  To: Michael Buesch
  Cc: Larry Finger, Stefano Brivio, Jeff Garzik, Greg KH, Pekka Enberg,
	Ingo Molnar, linux-kernel

On Sat, Feb 23, 2008 at 7:20 PM, Michael Buesch <mb@bu3sch.de> wrote:
> On Saturday 23 February 2008 14:17:55 Alexey Zaytsev wrote:
>  > diff --git a/drivers/net/wireless/bcm43xx/Kconfig b/drivers/net/wireless/bcm43xx/Kconfig
>  > index 0159701..afb8f43 100644
>  > --- a/drivers/net/wireless/bcm43xx/Kconfig
>  > +++ b/drivers/net/wireless/bcm43xx/Kconfig
>  > @@ -1,6 +1,6 @@
>  >  config BCM43XX
>  >       tristate "Broadcom BCM43xx wireless support (DEPRECATED)"
>  > -     depends on PCI && IEEE80211 && IEEE80211_SOFTMAC && WLAN_80211 && EXPERIMENTAL
>  > +     depends on PCI && IEEE80211 && IEEE80211_SOFTMAC && WLAN_80211 && (!SSB_B43_PCI_BRIDGE || SSB != y) && EXPERIMENTAL
>
>  so if SSB is m it will break module auto-loading, right?
>

Right.
If ssb == m, you can at least unload the ssb module manually, or
specify the right
module to load. In the first patch I sent to you, it was
"!SSB_B43_PCI_BRIDGE" instead of
"(!SSB_B43_PCI_BRIDGE || SSB != y)", but I thought that there is no reason to
completely hide the bcm43xx option if ssb is compiled as module.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] Fix the bcm43xx driver breakage in 2.6.24/25.
  2008-02-23 13:17 [PATCH] Fix the bcm43xx driver breakage in 2.6.24/25 Alexey Zaytsev
  2008-02-23 16:20 ` Michael Buesch
@ 2008-02-24 16:26 ` Larry Finger
  2008-02-27 20:15   ` John W. Linville
  2008-02-29  8:21 ` Andrew Morton
  2 siblings, 1 reply; 11+ messages in thread
From: Larry Finger @ 2008-02-24 16:26 UTC (permalink / raw)
  To: Alexey Zaytsev
  Cc: Stefano Brivio, Jeff Garzik, Greg KH, Pekka Enberg, Ingo Molnar,
	Michael Buesch, linux-kernel, John Linville

Alexey Zaytsev wrote:
> 
> [resent with lkml added to cc, sorry]
> 
> Hello, gentlemen.
> 
> Theese two patches fix a problem instroduced in Linux 2.6.24, and
> still present in the current Linus' 2.6.25 tree.
> 
> The bcm43xx Wifi driver won't work any more, if the b44 Ethernet
> driver is enabled. This happens because the b44 driver
> needlessly enables the b43_pci_bridge code, which claims
> the same pci ids as the bcm43xx driver. The b43_pci_bridge
> code is needed for the b43{legacy} drivers, but for the
> b44, only the "ssb pci core" is needed.
> 
> The first patch separates the ssb b43 pci bridge and the ssb pci
> core config options and enables only the needed ones.
> 
> A similar patch was once sent to Michael Buesch, but he rejected
> it, fearing that changing the config autoselects cold introduce
> some unexpected bugs.
> If you are intrested, a rather emotional thread may be found
> e.g. here:
> http://thread.gmane.org/gmane.linux.kernel/644266
> 
> That said, I believe the patch may introduce no more bugs,
> but fixes a critical regression, which left some users
> without a working wifi driver on the 2.6.24 kernel.
> 
> If you doubt its correctness, I may write a longer description
> on the changes introduced, but I hope they should be obvoius.
> 
> This patch is againts the current Linus' tree. I'd like it
> to be added to both 2.6.25 and the 2.6.24-stable trees.
> 
> The second patch disables the bcm43xx driver if it can't
> work due to the b43/b43legacy drivers inclusion, so no
> users should be confused.

I have reviewed the above patches and tested them with what I believe to be most combinations. 
Everything worked and corrected the unintended consequence of breaking bcm43xx when b44 is included. 
I agree that these patches belong in 2.6.25 and stable (2.6.24). Of course, the problem goes away in 
2.6.26.

ACKED-by: Larry.Finger@lwfinger.net

Larry


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] Fix the bcm43xx driver breakage in 2.6.24/25.
  2008-02-24 16:26 ` Larry Finger
@ 2008-02-27 20:15   ` John W. Linville
  2008-02-27 21:58     ` Michael Buesch
  0 siblings, 1 reply; 11+ messages in thread
From: John W. Linville @ 2008-02-27 20:15 UTC (permalink / raw)
  To: Larry Finger
  Cc: Alexey Zaytsev, Stefano Brivio, Jeff Garzik, Greg KH,
	Pekka Enberg, Ingo Molnar, Michael Buesch, linux-kernel

On Sun, Feb 24, 2008 at 09:26:34AM -0700, Larry Finger wrote:

> I have reviewed the above patches and tested them with what I believe to be 
> most combinations. Everything worked and corrected the unintended 
> consequence of breaking bcm43xx when b44 is included. I agree that these 
> patches belong in 2.6.25 and stable (2.6.24). Of course, the problem goes 
> away in 2.6.26.

I can't say I really like Alexey's patches, but I guess they are OK.
I think I like the "b43_pci_bridge as a module" option a little better,
but as Michael illustrated there are problems with that approach too.

I'll apply the patches.

John
-- 
John W. Linville
linville@tuxdriver.com

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] Fix the bcm43xx driver breakage in 2.6.24/25.
  2008-02-27 20:15   ` John W. Linville
@ 2008-02-27 21:58     ` Michael Buesch
  2008-02-28  1:15       ` John W. Linville
  0 siblings, 1 reply; 11+ messages in thread
From: Michael Buesch @ 2008-02-27 21:58 UTC (permalink / raw)
  To: John W. Linville
  Cc: Larry Finger, Alexey Zaytsev, Stefano Brivio, Jeff Garzik,
	Greg KH, Pekka Enberg, Ingo Molnar, linux-kernel

On Wednesday 27 February 2008 21:15:50 John W. Linville wrote:
> On Sun, Feb 24, 2008 at 09:26:34AM -0700, Larry Finger wrote:
> 
> > I have reviewed the above patches and tested them with what I believe to be 
> > most combinations. Everything worked and corrected the unintended 
> > consequence of breaking bcm43xx when b44 is included. I agree that these 
> > patches belong in 2.6.25 and stable (2.6.24). Of course, the problem goes 
> > away in 2.6.26.
> 
> I can't say I really like Alexey's patches, but I guess they are OK.
> I think I like the "b43_pci_bridge as a module" option a little better,
> but as Michael illustrated there are problems with that approach too.

Well, I do like  "b43_pci_bridge as a module" more than this inter-dependency
crap. Yeah, I don't like "b43_pci_bridge as a module" a lot, but certainly
more than Alexey's patch.

-- 
Greetings Michael.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] Fix the bcm43xx driver breakage in 2.6.24/25.
  2008-02-27 21:58     ` Michael Buesch
@ 2008-02-28  1:15       ` John W. Linville
  0 siblings, 0 replies; 11+ messages in thread
From: John W. Linville @ 2008-02-28  1:15 UTC (permalink / raw)
  To: Michael Buesch
  Cc: Larry Finger, Alexey Zaytsev, Stefano Brivio, Jeff Garzik,
	Greg KH, Pekka Enberg, Ingo Molnar, linux-kernel

On Wed, Feb 27, 2008 at 10:58:33PM +0100, Michael Buesch wrote:
> On Wednesday 27 February 2008 21:15:50 John W. Linville wrote:
> > On Sun, Feb 24, 2008 at 09:26:34AM -0700, Larry Finger wrote:
> > 
> > > I have reviewed the above patches and tested them with what I believe to be 
> > > most combinations. Everything worked and corrected the unintended 
> > > consequence of breaking bcm43xx when b44 is included. I agree that these 
> > > patches belong in 2.6.25 and stable (2.6.24). Of course, the problem goes 
> > > away in 2.6.26.
> > 
> > I can't say I really like Alexey's patches, but I guess they are OK.
> > I think I like the "b43_pci_bridge as a module" option a little better,
> > but as Michael illustrated there are problems with that approach too.
> 
> Well, I do like  "b43_pci_bridge as a module" more than this inter-dependency
> crap. Yeah, I don't like "b43_pci_bridge as a module" a lot, but certainly
> more than Alexey's patch.

Patches welcome... :-)

-- 
John W. Linville
linville@tuxdriver.com

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] Fix the bcm43xx driver breakage in 2.6.24/25.
  2008-02-23 13:17 [PATCH] Fix the bcm43xx driver breakage in 2.6.24/25 Alexey Zaytsev
  2008-02-23 16:20 ` Michael Buesch
  2008-02-24 16:26 ` Larry Finger
@ 2008-02-29  8:21 ` Andrew Morton
  2008-02-29 10:05   ` Michael Buesch
  2 siblings, 1 reply; 11+ messages in thread
From: Andrew Morton @ 2008-02-29  8:21 UTC (permalink / raw)
  To: Alexey Zaytsev
  Cc: Larry Finger, Stefano Brivio, Jeff Garzik, Greg KH, Pekka Enberg,
	Ingo Molnar, Michael Buesch, linux-kernel, linux-wireless

On Sat, 23 Feb 2008 16:17:55 +0300 Alexey Zaytsev <alexey.zaytsev@gmail.com> wrote:

> Theese two patches fix a problem instroduced in Linux 2.6.24, and
> still present in the current Linus' 2.6.25 tree.
> 
> The bcm43xx Wifi driver won't work any more, if the b44 Ethernet
> driver is enabled. This happens because the b44 driver
> needlessly enables the b43_pci_bridge code, which claims
> the same pci ids as the bcm43xx driver. The b43_pci_bridge
> code is needed for the b43{legacy} drivers, but for the
> b44, only the "ssb pci core" is needed.

Hate to stick my head into this beehive, but...

I have a patch queued (the-scheduled-bcm43xx-removal.patch) which 
will remove this driver from 2.6.26.

Is that bad?

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] Fix the bcm43xx driver breakage in 2.6.24/25.
  2008-02-29  8:21 ` Andrew Morton
@ 2008-02-29 10:05   ` Michael Buesch
  2008-02-29 20:54     ` Ingo Molnar
  0 siblings, 1 reply; 11+ messages in thread
From: Michael Buesch @ 2008-02-29 10:05 UTC (permalink / raw)
  To: Andrew Morton
  Cc: Alexey Zaytsev, Larry Finger, Stefano Brivio, Jeff Garzik,
	Greg KH, Pekka Enberg, Ingo Molnar, linux-kernel, linux-wireless

On Friday 29 February 2008 09:21:19 Andrew Morton wrote:
> On Sat, 23 Feb 2008 16:17:55 +0300 Alexey Zaytsev <alexey.zaytsev@gmail.com> wrote:
> 
> > Theese two patches fix a problem instroduced in Linux 2.6.24, and
> > still present in the current Linus' 2.6.25 tree.
> > 
> > The bcm43xx Wifi driver won't work any more, if the b44 Ethernet
> > driver is enabled. This happens because the b44 driver
> > needlessly enables the b43_pci_bridge code, which claims
> > the same pci ids as the bcm43xx driver. The b43_pci_bridge
> > code is needed for the b43{legacy} drivers, but for the
> > b44, only the "ssb pci core" is needed.
> 
> Hate to stick my head into this beehive, but...
> 
> I have a patch queued (the-scheduled-bcm43xx-removal.patch) which 
> will remove this driver from 2.6.26.
> 
> Is that bad?

Not at all. The b43 driver from 2.6.26 will work. So there's
no reason to keep bcm43xx.
Alexey just tested a patch that backports the fix to 2.6.24 and it
works fine.

-- 
Greetings Michael.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] Fix the bcm43xx driver breakage in 2.6.24/25.
  2008-02-29 10:05   ` Michael Buesch
@ 2008-02-29 20:54     ` Ingo Molnar
  2008-02-29 22:49       ` Michael Buesch
  0 siblings, 1 reply; 11+ messages in thread
From: Ingo Molnar @ 2008-02-29 20:54 UTC (permalink / raw)
  To: Michael Buesch
  Cc: Andrew Morton, Alexey Zaytsev, Larry Finger, Stefano Brivio,
	Jeff Garzik, Greg KH, Pekka Enberg, linux-kernel, linux-wireless


* Michael Buesch <mb@bu3sch.de> wrote:

> On Friday 29 February 2008 09:21:19 Andrew Morton wrote:
> > On Sat, 23 Feb 2008 16:17:55 +0300 Alexey Zaytsev <alexey.zaytsev@gmail.com> wrote:
> > 
> > > Theese two patches fix a problem instroduced in Linux 2.6.24, and
> > > still present in the current Linus' 2.6.25 tree.
> > > 
> > > The bcm43xx Wifi driver won't work any more, if the b44 Ethernet
> > > driver is enabled. This happens because the b44 driver
> > > needlessly enables the b43_pci_bridge code, which claims
> > > the same pci ids as the bcm43xx driver. The b43_pci_bridge
> > > code is needed for the b43{legacy} drivers, but for the
> > > b44, only the "ssb pci core" is needed.
> > 
> > Hate to stick my head into this beehive, but...
> > 
> > I have a patch queued (the-scheduled-bcm43xx-removal.patch) which 
> > will remove this driver from 2.6.26.
> > 
> > Is that bad?
> 
> Not at all. The b43 driver from 2.6.26 will work. So there's no reason 
> to keep bcm43xx. Alexey just tested a patch that backports the fix to 
> 2.6.24 and it works fine.

yeah, i'd support the removal of it too, if the transition is smooth and 
the regressions are resolved. And it should be smooth, as long as users 
are able to load the firmware blob, right? There's also an entry for it 
in Documentation/feature-removal-schedule.txt:

  What:   bcm43xx wireless network driver
  When:   2.6.26
  Files:  drivers/net/wireless/bcm43xx
  Why:    This driver's functionality has been replaced by the
          mac80211-based b43 and b43legacy drivers.
  Who:    John W. Linville <linville@tuxdriver.com>

	Ingo

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] Fix the bcm43xx driver breakage in 2.6.24/25.
  2008-02-29 20:54     ` Ingo Molnar
@ 2008-02-29 22:49       ` Michael Buesch
  0 siblings, 0 replies; 11+ messages in thread
From: Michael Buesch @ 2008-02-29 22:49 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: Andrew Morton, Alexey Zaytsev, Larry Finger, Stefano Brivio,
	Jeff Garzik, Greg KH, Pekka Enberg, linux-kernel, linux-wireless

On Friday 29 February 2008 21:54:00 Ingo Molnar wrote:
> 
> * Michael Buesch <mb@bu3sch.de> wrote:
> 
> > On Friday 29 February 2008 09:21:19 Andrew Morton wrote:
> > > On Sat, 23 Feb 2008 16:17:55 +0300 Alexey Zaytsev <alexey.zaytsev@gmail.com> wrote:
> > > 
> > > > Theese two patches fix a problem instroduced in Linux 2.6.24, and
> > > > still present in the current Linus' 2.6.25 tree.
> > > > 
> > > > The bcm43xx Wifi driver won't work any more, if the b44 Ethernet
> > > > driver is enabled. This happens because the b44 driver
> > > > needlessly enables the b43_pci_bridge code, which claims
> > > > the same pci ids as the bcm43xx driver. The b43_pci_bridge
> > > > code is needed for the b43{legacy} drivers, but for the
> > > > b44, only the "ssb pci core" is needed.
> > > 
> > > Hate to stick my head into this beehive, but...
> > > 
> > > I have a patch queued (the-scheduled-bcm43xx-removal.patch) which 
> > > will remove this driver from 2.6.26.
> > > 
> > > Is that bad?
> > 
> > Not at all. The b43 driver from 2.6.26 will work. So there's no reason 
> > to keep bcm43xx. Alexey just tested a patch that backports the fix to 
> > 2.6.24 and it works fine.
> 
> yeah, i'd support the removal of it too, if the transition is smooth and 
> the regressions are resolved. And it should be smooth, as long as users 
> are able to load the firmware blob, right? There's also an entry for it 

As far as I can see, yes. The b43 driver is pretty mature these days.
It does base on the codebase of the bcm43xx driver and the most intrusive
changes date back over a year ago. The driver got lots of testing in the
meantime.
I do own the most common device flavours (except the 4311. So if somebody
has one do donate.. :) ) and I don't see any regressions.

Most "regressions" come from people not installing the updated firmware.
But that's an issue we simply cannot solve in the driver.

Of course, as I always said, if some last-minute regression appears, we
will defer the bcm43xx removal. So I hope I'm not _really_ the worst
maintainer ever, although I try hard to, when it comes to patches I
really dislike. ;)

-- 
Greetings Michael.

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2008-02-29 22:51 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-02-23 13:17 [PATCH] Fix the bcm43xx driver breakage in 2.6.24/25 Alexey Zaytsev
2008-02-23 16:20 ` Michael Buesch
2008-02-23 20:37   ` Alexey Zaytsev
2008-02-24 16:26 ` Larry Finger
2008-02-27 20:15   ` John W. Linville
2008-02-27 21:58     ` Michael Buesch
2008-02-28  1:15       ` John W. Linville
2008-02-29  8:21 ` Andrew Morton
2008-02-29 10:05   ` Michael Buesch
2008-02-29 20:54     ` Ingo Molnar
2008-02-29 22:49       ` Michael Buesch

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).