Jiri Benc | 1 May 03:00
Picon

Re: "Stable" branch of mac80211

On Sun, 29 Apr 2007 19:48:55 +0200, Jiri Benc wrote:
> I've created a new 'stable' branch in my tree
> (git://git.kernel.org/pub/scm/linux/kernel/git/jbenc/mac80211.git). It
> contains patches that strip mac80211 down to a stable version. The purpose
> of this branch is to prepare mac80211 for vanilla inclusion.

And preliminary patches targeted for net-2.6 are in
http://kernel.org/pub/linux/kernel/people/jbenc/mac80211/

Please review and test (for testing purposes, a huge patch with all
mac80211 drivers currently in wireless-dev can be found at
http://kernel.org/pub/linux/kernel/people/jbenc/mac80211-test/drivers.patch).

Thanks,

 Jiri

--

-- 
Jiri Benc
SUSE Labs
Daniel Drake | 1 May 04:44
Picon
Favicon

[PATCH] zd1211rw-mac80211: fixed freeing skbs in interrupt context

From: Ulrich Kunitz <kune@...>

Some of the kfree_skb() calls could happen in irq context.
Changed all calls to dev_kfree_skb() in non-irq context and to
dev_kfree_skb_any() where an irq context might happen.

Signed-off-by: Ulrich Kunitz <kune@...>
Signed-off-by: Daniel Drake <dsd@...>
---
 drivers/net/wireless/mac80211/zd1211rw/zd_mac.c |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/net/wireless/mac80211/zd1211rw/zd_mac.c b/drivers/net/wireless/mac80211/zd1211rw/zd_mac.c
index cd5d17f..91b908a 100644
--- a/drivers/net/wireless/mac80211/zd1211rw/zd_mac.c
+++ b/drivers/net/wireless/mac80211/zd1211rw/zd_mac.c
@@ -160,7 +160,7 @@ static int zd_mac_stop(struct ieee80211_hw *dev)
 		struct ieee80211_tx_control *control =
 			*(struct ieee80211_tx_control **)skb->cb;
 		kfree(control);
-		kfree_skb(skb);
+		dev_kfree_skb(skb);
 	}

 	return 0;
@@ -319,7 +319,7 @@ static int zd_mac_tx(struct ieee80211_hw *dev, struct sk_buff *skb,
 		return r;

 	if (control->flags & IEEE80211_TXCTL_NO_ACK) {
-		kfree_skb(skb);
(Continue reading)

Daniel Drake | 1 May 05:01
Picon
Favicon

[PATCH] zd1211rw-mac80211: limit URB buffering in tx path

From: Ulrich Kunitz <kune <at> deine-taler.de>

The old code allowed unlimited buffing of tx frames in URBs
submitted for transfer to the device. This patch stops the
ieee80211_hw queue(s) if to many URBs are ready for submit to the
device. Actually the ZD1211 device supports currently only one
queue.

Signed-off-by: Ulrich Kunitz <kune <at> deine-taler.de>
Signed-off-by: Daniel Drake <dsd <at> gentoo.org>
---
 drivers/net/wireless/mac80211/zd1211rw/zd_chip.c |    6 +-
 drivers/net/wireless/mac80211/zd1211rw/zd_chip.h |    4 +-
 drivers/net/wireless/mac80211/zd1211rw/zd_mac.c  |  327 +++++++++++++++++-----
 drivers/net/wireless/mac80211/zd1211rw/zd_mac.h  |   23 ++
 drivers/net/wireless/mac80211/zd1211rw/zd_usb.c  |  173 +++++++++---
 drivers/net/wireless/mac80211/zd1211rw/zd_usb.h  |   30 ++-
 6 files changed, 450 insertions(+), 113 deletions(-)

diff --git a/drivers/net/wireless/mac80211/zd1211rw/zd_chip.c b/drivers/net/wireless/mac80211/zd1211rw/zd_chip.c
index d8bc0f1..fcf78ab 100644
--- a/drivers/net/wireless/mac80211/zd1211rw/zd_chip.c
+++ b/drivers/net/wireless/mac80211/zd1211rw/zd_chip.c
@@ -1606,20 +1606,22 @@ void zd_chip_disable_int(struct zd_chip *chip)
 	mutex_unlock(&chip->mutex);
 }

-int zd_chip_enable_rx(struct zd_chip *chip)
+int zd_chip_enable_rxtx(struct zd_chip *chip)
 {
(Continue reading)

Daniel Drake | 1 May 05:02
Picon
Favicon

[PATCH] zd1211rw-mac80211: remove static table from zd_mac.h

From: Ulrich Kunitz <kune@...>

The header zd_mac.h did contain static declaration of tables,
which are only used in zd_mac.c. These tables have been moved into
the C file itself.

Signed-off-by: Ulrich Kunitz <kune@...>
Signed-off-by: Daniel Drake <dsd@...>
---
 drivers/net/wireless/mac80211/zd1211rw/zd_mac.c |   74 +++++++++++++++++++++++
 drivers/net/wireless/mac80211/zd1211rw/zd_mac.h |   74 -----------------------
 2 files changed, 74 insertions(+), 74 deletions(-)

diff --git a/drivers/net/wireless/mac80211/zd1211rw/zd_mac.c b/drivers/net/wireless/mac80211/zd1211rw/zd_mac.c
index c3f8d30..6cc0b4d 100644
--- a/drivers/net/wireless/mac80211/zd1211rw/zd_mac.c
+++ b/drivers/net/wireless/mac80211/zd1211rw/zd_mac.c
@@ -28,6 +28,80 @@
 #include "zd_rf.h"
 #include "zd_util.h"

+/* TODO: remove this once we have a general modes/channels/rates filling func */
+static const struct ieee80211_rate zd_rates[] = {
+	{ .rate = 10,
+	  .val = ZD_CS_CCK | ZD_CS_CCK_RATE_1M,
+	  .flags = IEEE80211_RATE_CCK },
+	{ .rate = 20,
+	  .val = ZD_CS_CCK | ZD_CS_CCK_RATE_2M,
+	  .val2 = ZD_CS_CCK | ZD_CS_CCK_RATE_2M | ZD_CS_CCK_PREA_SHORT,
+	  .flags = IEEE80211_RATE_CCK_2 },
(Continue reading)

Daniel Drake | 1 May 05:02
Picon
Favicon

[PATCH] zd1211rw-mac80211: Added new USB id for Planex GW-US54ZGL

From: Ulrich Kunitz <kune@...>

Alan Tam <Tam at SiuLung dot com> asked for inclusion of this
device into the tree.

Signed-off-by: Ulrich Kunitz <kune@...>
Signed-off-by: Daniel Drake <dsd@...>
---
 drivers/net/wireless/mac80211/zd1211rw/zd_usb.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/drivers/net/wireless/mac80211/zd1211rw/zd_usb.c b/drivers/net/wireless/mac80211/zd1211rw/zd_usb.c
index 4212310..b22d908 100644
--- a/drivers/net/wireless/mac80211/zd1211rw/zd_usb.c
+++ b/drivers/net/wireless/mac80211/zd1211rw/zd_usb.c
@@ -65,6 +65,7 @@ static struct usb_device_id usb_ids[] = {
 	{ USB_DEVICE(0x0586, 0x3410), .driver_info = DEVICE_ZD1211B },
 	{ USB_DEVICE(0x0baf, 0x0121), .driver_info = DEVICE_ZD1211B },
 	{ USB_DEVICE(0x0586, 0x3412), .driver_info = DEVICE_ZD1211B },
+	{ USB_DEVICE(0x0053, 0x5301), .driver_info = DEVICE_ZD1211B },
 	/* "Driverless" devices that need ejecting */
 	{ USB_DEVICE(0x0ace, 0x2011), .driver_info = DEVICE_INSTALLER },
 	{}
--

-- 
1.5.1.2

Daniel Drake | 1 May 05:03
Picon
Favicon

[PATCH] zd1211rw-mac80211: Add ID for Sitecom WL-117

From: Matthew Davidson <mj.davidson <at> gmail.com>

This is another "driverless" device which first presents itself as a USB
CDROM drive. A separate patch has been submitted to make usb-storage
ignore that device, so that zd1211rw can eject it.

zd1211 chip 0df6:9075 v4916 full 00-0c-f6 AL2230_RF pa0 ----

Signed-off-by: Daniel Drake <dsd <at> gentoo.org>
---
 drivers/net/wireless/mac80211/zd1211rw/zd_usb.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/drivers/net/wireless/mac80211/zd1211rw/zd_usb.c b/drivers/net/wireless/mac80211/zd1211rw/zd_usb.c
index b22d908..35f4383 100644
--- a/drivers/net/wireless/mac80211/zd1211rw/zd_usb.c
+++ b/drivers/net/wireless/mac80211/zd1211rw/zd_usb.c
@@ -38,6 +38,7 @@ static struct usb_device_id usb_ids[] = {
 	{ USB_DEVICE(0x126f, 0xa006), .driver_info = DEVICE_ZD1211 },
 	{ USB_DEVICE(0x6891, 0xa727), .driver_info = DEVICE_ZD1211 },
 	{ USB_DEVICE(0x0df6, 0x9071), .driver_info = DEVICE_ZD1211 },
+	{ USB_DEVICE(0x0df6, 0x9075), .driver_info = DEVICE_ZD1211 },
 	{ USB_DEVICE(0x157e, 0x300b), .driver_info = DEVICE_ZD1211 },
 	{ USB_DEVICE(0x079b, 0x004a), .driver_info = DEVICE_ZD1211 },
 	{ USB_DEVICE(0x1740, 0x2000), .driver_info = DEVICE_ZD1211 },
@@ -68,6 +69,7 @@ static struct usb_device_id usb_ids[] = {
 	{ USB_DEVICE(0x0053, 0x5301), .driver_info = DEVICE_ZD1211B },
 	/* "Driverless" devices that need ejecting */
 	{ USB_DEVICE(0x0ace, 0x2011), .driver_info = DEVICE_INSTALLER },
+	{ USB_DEVICE(0x0ace, 0x20ff), .driver_info = DEVICE_INSTALLER },
(Continue reading)

Daniel Drake | 1 May 05:04
Picon
Favicon

[PATCH] zd1211rw-mac80211: Add ID for ZyXEL AG-225H v2

Tested by davo on IRC
zd1211b chip 0586:3413 v4810 full 00-13-49 AL7230B_RF pa0 -----

Signed-off-by: Daniel Drake <dsd <at> gentoo.org>
---
 drivers/net/wireless/mac80211/zd1211rw/zd_usb.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/drivers/net/wireless/mac80211/zd1211rw/zd_usb.c b/drivers/net/wireless/mac80211/zd1211rw/zd_usb.c
index 35f4383..e623043 100644
--- a/drivers/net/wireless/mac80211/zd1211rw/zd_usb.c
+++ b/drivers/net/wireless/mac80211/zd1211rw/zd_usb.c
@@ -66,6 +66,7 @@ static struct usb_device_id usb_ids[] = {
 	{ USB_DEVICE(0x0586, 0x3410), .driver_info = DEVICE_ZD1211B },
 	{ USB_DEVICE(0x0baf, 0x0121), .driver_info = DEVICE_ZD1211B },
 	{ USB_DEVICE(0x0586, 0x3412), .driver_info = DEVICE_ZD1211B },
+	{ USB_DEVICE(0x0586, 0x3413), .driver_info = DEVICE_ZD1211B },
 	{ USB_DEVICE(0x0053, 0x5301), .driver_info = DEVICE_ZD1211B },
 	/* "Driverless" devices that need ejecting */
 	{ USB_DEVICE(0x0ace, 0x2011), .driver_info = DEVICE_INSTALLER },
--

-- 
1.5.1.2

-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo <at> vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Jiri Benc | 1 May 12:34
Picon

Re: [PATCH] zd1211rw-mac80211: limit URB buffering in tx path

On Tue,  1 May 2007 04:01:00 +0100 (BST), Daniel Drake wrote:
> The old code allowed unlimited buffing of tx frames in URBs
> submitted for transfer to the device. This patch stops the
> ieee80211_hw queue(s) if to many URBs are ready for submit to the
> device. Actually the ZD1211 device supports currently only one
> queue.

This doesn't look correct to me. The limits should be per queue and you
should always stop queues selectively.

The ieee80211_stop_queues/ieee80211_wake_queues are for another purposes
and should be used only rarely - one example is Michael Buesch's comment
about a need to stop sending frames while tuning to a new channel in a
workqueue.

> +/**
> + * wake_queues - wakes all queues
> + * @hw: a &struct ieee80211_hw pointer
> + *
> + * Such a function is not provided by mac80211, so we have to provide them on
> + * our own.
> + */
> +static void wake_queues(struct ieee80211_hw *hw)

It is :-) Look for ieee80211_wake_queues. But as I said, you shouldn't need
that.

Thanks,

 Jiri
(Continue reading)

Jan Kiszka | 1 May 12:41
Picon

Re: d80211: How does TX flow control work?

Jan Kiszka wrote:
> Johannes Berg wrote:
>>> The actual problem was meanwhile identified: shorewall happened to
>>> overwrite the queueing discipline of wmaster0 with pfifo_fast. I found
>>> the magic knob to tell shorewall to no longer do this (at least until I
>>> want to manage traffic control that way...), but I still wonder if it is
>>> an acceptable situation. Currently, the user can intentionally or
>>> accidentally screw up the stack this way.
>> I don't seem to be able to do that:
>>
>> # tc qdisc change dev wmaster0 pfifo
>> RTNETLINK answers: Invalid argument
>>
>> # tc qdisc replace dev wmaster0 pfifo
>> RTNETLINK answers: Invalid argument
>>
>> what exactly does shorewall do?
>>
> 
> Don't recall... need to re-test... lacking time. :(
> 
> Just one note: I observed this on a 2.6.19 kernel - in case there is a
> difference to the latest.
> 

Now I came across this issue once again. It is still present, I just
observed it over the latest rt2x00 tree after updating shorewall and
forgetting to fix its config.

I redirected tc to some logging filter, and this is what shorewall does
(Continue reading)

Jiri Benc | 1 May 12:47
Picon

Re: d80211: How does TX flow control work?

On Tue, 01 May 2007 12:41:34 +0200, Jan Kiszka wrote:
> Now I came across this issue once again. It is still present, I just
> observed it over the latest rt2x00 tree after updating shorewall and
> forgetting to fix its config.
> 
> I redirected tc to some logging filter, and this is what shorewall does
> when "CLEAR_TC=Yes" is set in shorewall.conf:
> 
> ...
> tc qdisc del dev wmaster0 root
> tc qdisc del dev wmaster0 ingress
> tc qdisc del dev wlan0 root
> tc qdisc del dev wlan0 ingress

Could you retest with the latest wireless-dev? It should be fixed there.

Thanks,

 Jiri

--

-- 
Jiri Benc
SUSE Labs

Gmane