Netdev List
 help / color / mirror / Atom feed
* Re: [patch 02/18] sundance: PHY address form 0, only for device I D 0x0200 (IP100A) (20070605)
From: Jeff Garzik @ 2007-09-03 10:42 UTC (permalink / raw)
  To: 黃建興-Jesse; +Cc: akpm, netdev
In-Reply-To: <AA68EB0EBA29BA40A06B700C33343EEF018686BB@fileserver.icplus.com.tw>

黃建興-Jesse wrote:
> +++ a/drivers/net/sundance.c
> @@ -559,7 +559,11 @@ static int __devinit sundance_probe1 (st
>          * It seems some phys doesn't deal well with address 0 being 
> accessed
>          * first, so leave address zero to the end of the loop (32 & 31).
>          */
> -       for (phy = 1; phy <= 32 && phy_idx < MII_CNT; phy++) {
> +       if (sundance_pci_tbl[np->chip_id].device == 0x0200)
> +               phy = 0;
> +       else
> +               phy = 1;
> +       for (; phy <= 32 && phy_idx < MII_CNT; phy++) {


As I noted in the last email, this patch still has a bug:

In the above loop code being modified, you need to change two things:

1) Initial loop value
2) Loop terminating condition

Your patch only performs change #1.

	Jeff



^ permalink raw reply

* [PATCH] NET: Officially deprecate "ether=" and schedule for removal.
From: Robert P. J. Day @ 2007-09-03 11:30 UTC (permalink / raw)
  To: netdev; +Cc: Geert Uytterhoeven


Officially deprecate the boot-time "ether=" option in favour of
"netdev=", update the documentation accordingly in various places, and
schedule removal for September of 2008.

Signed-off-by: Robert P. J. Day <rpjday@mindspring.com>

---

  i realize that some people have strong feelings about removing
options because of backward compatibility, so i'm easy regarding this
submission.  i just had the patch lying around so i figured i'd send
it on and someone higher up the food chain can make the call one way
or the other.

  compile and boot-time tested on i386 with "make defconfig".


 Documentation/feature-removal-schedule.txt |    6 ++++++
 Documentation/kernel-parameters.txt        |    2 ++
 Documentation/m68k/kernel-options.txt      |    6 +++++-
 Documentation/networking/3c505.txt         |    3 ++-
 drivers/net/3c59x.c                        |    3 ++-
 drivers/net/atp.c                          |    2 +-
 drivers/net/es3210.c                       |    5 +++++
 net/ethernet/eth.c                         |   13 ++++++++++++-
 8 files changed, 35 insertions(+), 5 deletions(-)

diff --git a/Documentation/feature-removal-schedule.txt b/Documentation/feature-removal-schedule.txt
index b9a3fdc..656a71a 100644
--- a/Documentation/feature-removal-schedule.txt
+++ b/Documentation/feature-removal-schedule.txt
@@ -298,3 +298,9 @@ Why:	All mthca hardware also supports MSI-X, which provides
 Who:	Roland Dreier <rolandd@cisco.com>

 ---------------------------
+
+What:	"ether=" boot-time option
+When:	September 2008
+Why:	Obsoleted by newer and equivalent "netdev=" option.
+Who:	Robert P. J. Day <rpjday@mindspring.com> or whoever else wants to
+	do it when the time comes.
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
index b41cde3..47a9cf1 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -621,6 +621,8 @@ and is between 256 and 4096 characters. It is defined in the file
 	ether=		[HW,NET] Ethernet cards parameters
 			This option is obsoleted by the "netdev=" option, which
 			has equivalent usage. See its documentation for details.
+			"ether=" has been scheduled for removal -- see the file
+			Documentation/feature-removal-schedule.txt.

 	eurwdt=		[HW,WDT] Eurotech CPU-1220/1410 onboard watchdog.
 			Format: <io>[,<irq>]
diff --git a/Documentation/m68k/kernel-options.txt b/Documentation/m68k/kernel-options.txt
index 59108ce..3ec32d2 100644
--- a/Documentation/m68k/kernel-options.txt
+++ b/Documentation/m68k/kernel-options.txt
@@ -218,7 +218,7 @@ drive (with "root=").
 3) General Device Options (Amiga and Atari)
 ===========================================

-3.1) ether=
+3.1) ether=  [Equivalently, netdev=]
 -----------

 Syntax: ether=[<irq>[,<base_addr>[,<mem_start>[,<mem_end>]]]],<dev-name>
@@ -233,6 +233,10 @@ Linux/m68k (ariadne, a2065, hydra) don't use them because Zorro boards
 are really Plug-'n-Play, so the "ether=" option is useless altogether
 for Linux/m68k.

+  NOTE:  The "ether=" option is deprecated in favour of the newer
+"netdev=" option.  "ether=" has been scheduled for removal -- see the
+file Documentation/feature-removal-schedule.txt for details.
+

 3.2) hd=
 --------
diff --git a/Documentation/networking/3c505.txt b/Documentation/networking/3c505.txt
index b9d5b72..d79d31d 100644
--- a/Documentation/networking/3c505.txt
+++ b/Documentation/networking/3c505.txt
@@ -5,7 +5,8 @@ The default DMA channel is 6; this is _not_ autoprobed, so you must
 make sure you configure it correctly.  If loading the driver as a
 module, you can do this with "modprobe 3c505 dma=n".  If the driver is
 linked statically into the kernel, you must either use an "ether="
-statement on the command line, or change the definition of ELP_DMA in 3c505.h.
+(or equivalent and preferred "netdev=") statement on the command line,
+or change the definition of ELP_DMA in 3c505.h.

 The driver will warn you if it has to fall back on the compiled in
 default DMA channel.
diff --git a/drivers/net/3c59x.c b/drivers/net/3c59x.c
index a8c0f43..0ae3561 100644
--- a/drivers/net/3c59x.c
+++ b/drivers/net/3c59x.c
@@ -1043,7 +1043,8 @@ static int __devinit vortex_probe1(struct device *gendev,
 	if (dev->mem_start) {
 		/*
 		 * The 'options' param is passed in as the third arg to the
-		 * LILO 'ether=' argument for non-modular use
+		 * LILO 'ether=' (or equivalent and preferred 'netdev=') argument
+		 * for non-modular use
 		 */
 		option = dev->mem_start;
 	}
diff --git a/drivers/net/atp.c b/drivers/net/atp.c
index 82d78ff..d9cd8bb 100644
--- a/drivers/net/atp.c
+++ b/drivers/net/atp.c
@@ -114,7 +114,7 @@ static int xcvr[NUM_UNITS]; 			/* The data transfer mode. */

 	The data transfer mode is stored in the 'dev->if_port' field.  Its default
 	value is '4'.  It may be overridden at boot-time using the third parameter
-	to the "ether=..." initialization.
+	to the "ether=..." (or equivalent and preferred "netdev=...") initialization.

 	The header file <atp.h> provides inline functions that encapsulate the
 	register and data access methods.  These functions are hand-tuned to
diff --git a/drivers/net/es3210.c b/drivers/net/es3210.c
index 822e5bf..fdfbd59 100644
--- a/drivers/net/es3210.c
+++ b/drivers/net/es3210.c
@@ -40,6 +40,11 @@
 	   these registers is disabled there. In the meantime, boot with:
 	   ether=<IRQ>,0,0x<shared_mem_addr>,eth0 to override the IRQ and
 	   shared memory detection. (The i/o port detection is okay.)
+
+	   NOTE:  The "ether=" option has been deprecated in favour of the
+	   newer and equivalent "netdev=" option, and has been scheduled for
+	   removal.  See Documentation/feature-removal-schedule.txt for
+	   details.

 	2) Module support currently untested. Probably works though.

diff --git a/net/ethernet/eth.c b/net/ethernet/eth.c
index 12c7657..45a3e9c 100644
--- a/net/ethernet/eth.c
+++ b/net/ethernet/eth.c
@@ -31,6 +31,8 @@
  *				  older network drivers and IFF_ALLMULTI.
  *	Christer Weinigel	: Better rebuild header message.
  *             Andrew Morton    : 26Feb01: kill ether_setup() - use netdev_boot_setup().
+ *             Robert P. J. Day : Add ether_boot_setup() to allow deprecation warning
+				  for "ether=" boot-time option.
  *
  *		This program is free software; you can redistribute it and/or
  *		modify it under the terms of the GNU General Public License
@@ -60,7 +62,16 @@
 #include <asm/uaccess.h>
 #include <asm/system.h>

-__setup("ether=", netdev_boot_setup);
+static int __init
+ether_boot_setup(char *str)
+{
+	printk(KERN_NOTICE "The 'ether' option is deprecated and "
+		"is scheduled for removal in late 2008\n");
+	printk(KERN_NOTICE "Use 'netdev=<value>' instead\n");
+	return netdev_boot_setup(str);
+}
+
+__setup("ether=", ether_boot_setup);

 /**
  * eth_header - create the Ethernet header




-- 
========================================================================
Robert P. J. Day
Linux Consulting, Training and Annoying Kernel Pedantry
Waterloo, Ontario, CANADA

http://crashcourse.ca
========================================================================

^ permalink raw reply related

* Re: zd1211rw regression, device does not enumerate
From: Oliver Neukum @ 2007-09-03 11:48 UTC (permalink / raw)
  To: Daniel Drake; +Cc: netdev, linux-usb-devel, John W.Linville, Michal Piotrowski
In-Reply-To: <46D8DAB1.3090503@gentoo.org>

Am Samstag 01 September 2007 schrieb Daniel Drake:
> Oliver Neukum wrote:
> > after bisection it boils down to this patch:
> > 
> > oliver@oenone:/home/olli2/Trees/linux-2.6> git bisect bad
> > 74553aedd46b3a2cae986f909cf2a3f99369decc is first bad commit
> > commit 74553aedd46b3a2cae986f909cf2a3f99369decc
> > Author: Daniel Drake <dsd@gentoo.org>
> > Date:   Sun Jul 1 18:22:32 2007 +0100
> > 
> >     [PATCH] zd1211rw: Defer firmware load until first ifup
> > 
> > that plugging in my device I get an error:
> > Aug 16 13:17:11 oenone kernel: zd1211rw 3-4.3:1.0: zd1211b chip 0ace:1215 v4810 high 00-02-72 AL2230_RF pa0 g--NS
> > Aug 16 13:17:12 oenone ifup: Cannot enable interface eth2.
> 
> Can you enable CONFIG_ZD1211RW_DEBUG and post new logs?

No problem:

Sep  3 13:39:48 oenone kernel: hub 3-4:1.0: state 7 ports 7 chg 0000 evt 0008
Sep  3 13:39:48 oenone kernel: hub 3-4:1.0: port 3, status 0101, change 0001, 12 Mb/s
Sep  3 13:39:48 oenone kernel: hub 3-4:1.0: debounce: port 3: total 100ms stable 100ms status 0x101
Sep  3 13:39:48 oenone kernel: usb 3-4.3: new high speed USB device using ehci_hcd and address 8
Sep  3 13:39:48 oenone kernel: usb 3-4.3: default language 0x0409
Sep  3 13:39:48 oenone kernel: usb 3-4.3: new device strings: Mfr=16, Product=32, SerialNumber=0
Sep  3 13:39:48 oenone kernel: usb 3-4.3: Product: USB2.0 WLAN
Sep  3 13:39:48 oenone kernel: usb 3-4.3: Manufacturer: ZyDAS
Sep  3 13:39:48 oenone kernel: usb 3-4.3: uevent
Sep  3 13:39:48 oenone kernel: usb 3-4.3: usb_probe_device
Sep  3 13:39:48 oenone kernel: usb 3-4.3: configuration #1 chosen from 1 choice
Sep  3 13:39:48 oenone kernel: usb 3-4.3: adding 3-4.3:1.0 (config #1, interface 0)
Sep  3 13:39:48 oenone kernel: usb 3-4.3:1.0: uevent
Sep  3 13:39:48 oenone kernel: usb 3-4.3:1.0: uevent
Sep  3 13:39:48 oenone kernel: drivers/usb/core/inode.c: creating file '008'
Sep  3 13:39:48 oenone kernel: hub 3-4:1.0: state 7 ports 7 chg 0000 evt 0008
Sep  3 13:39:49 oenone kernel: ieee80211_crypt: registered algorithm 'NULL'
Sep  3 13:39:49 oenone kernel: ieee80211: 802.11 data/management/control stack, git-1.1.13
Sep  3 13:39:49 oenone kernel: ieee80211: Copyright (C) 2004-2005 Intel Corporation <jketreno@linux.intel.com>
Sep  3 13:39:49 oenone kernel: zd1211rw usb_init()
Sep  3 13:39:49 oenone kernel: zd1211rw 3-4.3:1.0: usb_probe_interface
Sep  3 13:39:49 oenone kernel: zd1211rw 3-4.3:1.0: usb_probe_interface - got id
Sep  3 13:39:49 oenone kernel: usb 3-4.3: print_id() 0ace:1215 v4810 high
Sep  3 13:39:49 oenone kernel: usb 3-4.3: reset high speed USB device using ehci_hcd and address 8
Sep  3 13:39:49 oenone kernel: usb_endpoint usbdev3.8_ep01: ep_device_release called for usbdev3.8_ep01
Sep  3 13:39:49 oenone kernel: usb_endpoint usbdev3.8_ep82: ep_device_release called for usbdev3.8_ep82
Sep  3 13:39:49 oenone kernel: usb_endpoint usbdev3.8_ep83: ep_device_release called for usbdev3.8_ep83
Sep  3 13:39:49 oenone kernel: usb_endpoint usbdev3.8_ep04: ep_device_release called for usbdev3.8_ep04
Sep  3 13:39:49 oenone kernel: zd1211rw 3-4.3:1.0: zd_netdev_alloc() netdev->flags 0x1002
Sep  3 13:39:49 oenone kernel: zd1211rw 3-4.3:1.0: zd_netdev_alloc() netdev->features 0x00000000
Sep  3 13:39:49 oenone kernel: zd1211rw 3-4.3:1.0: zd_chip_read_mac_addr_fw() 
Sep  3 13:39:49 oenone kernel: zd1211rw 3-4.3:1.0: probe() successful
Sep  3 13:39:49 oenone kernel: zd1211rw 3-4.3:1.0: eth1
Sep  3 13:39:49 oenone kernel: usbcore: registered new interface driver zd1211rw
Sep  3 13:39:49 oenone kernel: zd1211rw initialized
Sep  3 13:39:49 oenone ifup:     eth1      
Sep  3 13:39:49 oenone ifup-wireless:     eth1      warning: using NO encryption
Sep  3 13:39:49 oenone ifup-wireless: command 'iwconfig eth1 nick oenone' returned
Sep  3 13:39:49 oenone ifup-wireless:  Error for wireless request "Set Nickname" (8B1C) :
Sep  3 13:39:49 oenone ifup-wireless:     SET failed on device eth1 ; Operation not supported.
Sep  3 13:39:49 oenone kernel: zd1211rw 3-4.3:1.0: set_security() 
Sep  3 13:39:49 oenone kernel: zd1211rw 3-4.3:1.0: set_security()    .level = 0
Sep  3 13:39:49 oenone kernel: zd1211rw 3-4.3:1.0: set_security()    .enabled = 0
Sep  3 13:39:49 oenone kernel: zd1211rw 3-4.3:1.0: set_security()    .encrypt = 0
Sep  3 13:39:49 oenone kernel: SoftMAC: Associate: Scanning for networks first.
Sep  3 13:39:49 oenone kernel: SoftMAC: Associate: failed to initiate scan. Is device up?
Sep  3 13:39:49 oenone kernel: zd1211rw 3-4.3:1.0: zd_usb_init_hw() 
Sep  3 13:39:49 oenone kernel: usb 3-4.3: request_fw_file() fw name zd1211/zd1211b_ub
Sep  3 13:39:49 oenone kernel: usb 3-4.3: upload_firmware() firmware device id 0x4810 is equal to the actual device id
Sep  3 13:39:49 oenone kernel: usb 3-4.3: request_fw_file() fw name zd1211/zd1211b_uphr
Sep  3 13:39:49 oenone kernel: usb 3-4.3: upload_code() transfer size 4096
Sep  3 13:39:49 oenone kernel: usb 3-4.3: upload_code() transfer size 1024
Sep  3 13:39:49 oenone kernel: usb 3-4.3: upload_code() firmware confirm return value 0x01
Sep  3 13:39:49 oenone kernel: usb_endpoint usbdev3.8_ep01: ep_device_release called for usbdev3.8_ep01
Sep  3 13:39:49 oenone kernel: usb_endpoint usbdev3.8_ep82: ep_device_release called for usbdev3.8_ep82
Sep  3 13:39:49 oenone kernel: usb_endpoint usbdev3.8_ep83: ep_device_release called for usbdev3.8_ep83
Sep  3 13:39:49 oenone kernel: usb_endpoint usbdev3.8_ep04: ep_device_release called for usbdev3.8_ep04
Sep  3 13:39:49 oenone kernel: zd1211rw 3-4.3:1.0: zd_usb_enable_int() 
Sep  3 13:39:49 oenone kernel: zd1211rw 3-4.3:1.0: zd_usb_enable_int() submit urb ffff810086bea880
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh1-0001/ffff81000069e780 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: zd1211rw 3-4.3:1.0: zd_chip_init_hw() 
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: zd1211rw 3-4.3:1.0: dump_cr() CR_AFTER_PNP 0x00000000
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: zd1211rw 3-4.3:1.0: dump_cr() CR_GPI_EN 0x00000000
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: zd1211rw 3-4.3:1.0: dump_cr() CR_INTERRUPT 0x00000000
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: zd1211rw 3-4.3:1.0: read_fw_regs_offset() fw_regs_base: 0xf7f1
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: zd1211rw 3-4.3:1.0: read_pod() E2P_POD 0x80000584
Sep  3 13:39:49 oenone kernel: zd1211rw 3-4.3:1.0: read_pod() RF AL2230_RF 0x4 PA type 0x0 patch CCK 1 patch CR157 0 patch 6M 0 new PHY 1 link LED2 tx led 1
Sep  3 13:39:49 oenone kernel: zd1211rw 3-4.3:1.0: hw_init() 
Sep  3 13:39:49 oenone kernel: zd1211rw 3-4.3:1.0: zd1211b_hw_reset_phy() 
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: zd1211rw 3-4.3:1.0: zd_chip_lock_phy_regs() CR_REG1: 0x00 -> 0x00
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: zd1211rw 3-4.3:1.0: zd_chip_unlock_phy_regs() CR_REG1: 0x00 -> 0x80
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: zd1211rw 3-4.3:1.0: zd1211b_hw_init_hmac() 
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: zd1211rw 3-4.3:1.0: get_aw_pt_bi() aw 0 pt 0 bi 0
Sep  3 13:39:49 oenone kernel: zd1211rw 3-4.3:1.0: set_aw_pt_bi() aw 0 pt 99 bi 100
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: zd1211rw 3-4.3:1.0: zd_chip_lock_phy_regs() CR_REG1: 0xa0 -> 0x20
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: zd1211rw 3-4.3:1.0: zd_usb_rfwrite() value 0x0241000 bits 24
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: zd1211rw 3-4.3:1.0: zd_chip_unlock_phy_regs() CR_REG1: 0x20 -> 0xa0
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: zd1211rw 3-4.3:1.0: firmware version 4725
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: zd1211rw 3-4.3:1.0: dump_fw_registers() FW_FIRMWARE_VER 0x4725
Sep  3 13:39:49 oenone kernel: zd1211rw 3-4.3:1.0: dump_fw_registers() FW_USB_SPEED 0x0001
Sep  3 13:39:49 oenone kernel: zd1211rw 3-4.3:1.0: dump_fw_registers() FW_FIX_TX_RATE 0x0000
Sep  3 13:39:49 oenone kernel: zd1211rw 3-4.3:1.0: dump_fw_registers() FW_LINK_STATUS 0x0000
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: zd1211rw 3-4.3:1.0: dump_cr() CR_AFTER_PNP 0x00000001
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: zd1211rw 3-4.3:1.0: dump_cr() CR_GPI_EN 0x00000000
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: zd1211rw 3-4.3:1.0: dump_cr() CR_INTERRUPT 0x00000000
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: zd1211rw 3-4.3:1.0: zd1211b chip 0ace:1215 v4810 high 00-02-72 AL2230_RF pa0 g--NS
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: zd1211rw 3-4.3:1.0: zd_read_regdomain() regdomain: 0x30
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: zd1211rw 3-4.3:1.0: regdomain 0x30
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh1-0001/ffff81000069e780 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: zd1211rw 3-4.3:1.0: zd_usb_disable_int() urb ffff810086bea880 killed
Sep  3 13:39:49 oenone kernel: zd1211rw 3-4.3:1.0: zd_usb_enable_int() 
Sep  3 13:39:49 oenone kernel: zd1211rw 3-4.3:1.0: zd_usb_enable_int() submit urb ffff810086bea880
Sep  3 13:39:49 oenone kernel: ehci_hcd 0000:00:02.2: reused qh ffff81000069e780 schedule
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh1-0001/ffff81000069e780 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: zd1211rw 3-4.3:1.0: zd_write_mac_addr() mac addr 00:02:72:5d:a5:16
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: zd1211rw 3-4.3:1.0: zd_chip_set_basic_rates_locked() ff0f
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:51 oenone kernel: zd1211rw 3-4.3:1.0: zd_usb_ioread16v() read timed out
Sep  3 13:39:51 oenone kernel: zd1211rw 3-4.3:1.0: zd_ioread32v_locked() error: zd_ioread16v_locked. Error number -110
Sep  3 13:39:51 oenone kernel: zd1211rw 3-4.3:1.0: error ioread32(CR_REG1): -110
Sep  3 13:39:51 oenone kernel: usb 3-4.3: unlink qh1-0001/ffff81000069e780 start 0 [2/0 us]
Sep  3 13:39:51 oenone kernel: zd1211rw 3-4.3:1.0: zd_usb_disable_int() urb ffff810086bea880 killed
Sep  3 13:39:51 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:39:51 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 0
Sep  3 13:39:51 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:39:51 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 0
Sep  3 13:39:51 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:39:51 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 0
Sep  3 13:39:52 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:39:52 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 0
Sep  3 13:39:53 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:39:53 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 0
Sep  3 13:39:54 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:39:54 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 0
Sep  3 13:39:55 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:39:55 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 0
Sep  3 13:39:56 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:39:56 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 0
Sep  3 13:39:56 oenone ifup-dhcp: Starting DHCP Client Daemon on eth1... 
Sep  3 13:39:56 oenone ifup-dhcp: . 
Sep  3 13:39:56 oenone kernel: NET: Registered protocol family 17
Sep  3 13:39:56 oenone kernel: zd1211rw 3-4.3:1.0: zd_usb_enable_int() 
Sep  3 13:39:56 oenone kernel: zd1211rw 3-4.3:1.0: zd_usb_enable_int() submit urb ffff81009246c0c0
Sep  3 13:39:56 oenone kernel: ehci_hcd 0000:00:02.2: reused qh ffff81000069e780 schedule
Sep  3 13:39:56 oenone kernel: usb 3-4.3: link qh1-0001/ffff81000069e780 start 0 [2/0 us]
Sep  3 13:39:56 oenone kernel: zd1211rw 3-4.3:1.0: zd_write_mac_addr() mac addr 00:02:72:5d:a5:16
Sep  3 13:39:56 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:56 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:56 oenone kernel: zd1211rw 3-4.3:1.0: zd_chip_set_basic_rates_locked() ff0f
Sep  3 13:39:56 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:56 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:56 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:56 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:56 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:56 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:56 oenone kernel: zd1211rw 3-4.3:1.0: zd_chip_lock_phy_regs() CR_REG1: 0xa0 -> 0x20
Sep  3 13:39:56 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:56 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:56 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:56 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:56 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:56 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:56 oenone kernel: zd1211rw 3-4.3:1.0: zd_chip_unlock_phy_regs() CR_REG1: 0x20 -> 0xa0
Sep  3 13:39:56 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:56 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:56 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:56 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:56 oenone kernel: zd1211rw 3-4.3:1.0: zd_chip_lock_phy_regs() CR_REG1: 0xa0 -> 0x20
Sep  3 13:39:56 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:56 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:56 oenone kernel: zd1211rw 3-4.3:1.0: zd_rf_set_channel() channel: 1
Sep  3 13:39:56 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:56 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:56 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:56 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:56 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:56 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:56 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:56 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:56 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:56 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:56 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:56 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:56 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:56 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:56 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:56 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:56 oenone kernel: zd1211rw 3-4.3:1.0: update_pwr_int() channel 1 pwr_int 0x60
Sep  3 13:39:56 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:56 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:56 oenone kernel: zd1211rw 3-4.3:1.0: update_ofdm_cal() channel 1 ofdm_cal 36M 0x7c 48M 0x70 54M 0x63
Sep  3 13:39:56 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:56 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:56 oenone kernel: zd1211rw 3-4.3:1.0: update_pwr_cal() channel 1 pwr_cal 0x94
Sep  3 13:39:56 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:56 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:56 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:56 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:56 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:56 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:56 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:56 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:56 oenone kernel: zd1211rw 3-4.3:1.0: patch_cck_gain() patching value 1c
Sep  3 13:39:56 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:56 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:56 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:56 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:56 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:56 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:56 oenone kernel: zd1211rw 3-4.3:1.0: zd_chip_unlock_phy_regs() CR_REG1: 0x20 -> 0xa0
Sep  3 13:39:56 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:56 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:56 oenone kernel: zd1211rw 3-4.3:1.0: zd_usb_enable_rx() 
Sep  3 13:39:56 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:56 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:56 oenone kernel: zd1211rw 3-4.3:1.0: housekeeping_enable() 
Sep  3 13:39:56 oenone kernel: zd1211rw 3-4.3:1.0: bssinfo_change() changes: 7
Sep  3 13:39:56 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_set_multicast_list() mc addr 01:00:5e:00:00:01
Sep  3 13:39:56 oenone syslog-ng[2393]: last message repeated 2 times
Sep  3 13:39:56 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:56 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:56 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:56 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:56 oenone kernel: zd1211rw 3-4.3:1.0: zd_chip_set_rts_cts_rate_locked() rts_rate=0 preamble=0
Sep  3 13:39:56 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:56 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:56 oenone kernel: zd1211rw 3-4.3:1.0: zd_chip_set_basic_rates_locked() ff0f
Sep  3 13:39:56 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:56 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:56 oenone kernel: zd1211rw 3-4.3:1.0: zd_chip_set_multicast_hash() hash l 0x00000001 h 0x80000000
Sep  3 13:39:56 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:56 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:57 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:39:57 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:39:57 oenone ifup-dhcp: . 
Sep  3 13:39:57 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:57 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:57 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:57 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:58 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:39:58 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:39:58 oenone ifup-dhcp: . 
Sep  3 13:39:58 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:58 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:58 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:58 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:59 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:39:59 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:39:59 oenone ifup-dhcp: . 
Sep  3 13:39:59 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:39:59 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:00 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:40:00 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:40:00 oenone ifup-dhcp: . 
Sep  3 13:40:00 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:00 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:00 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:00 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:01 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:40:01 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:40:01 oenone ifup-dhcp: no IP address yet... backgrounding. 
Sep  3 13:40:01 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:01 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:01 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:01 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:02 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:40:02 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:40:02 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:02 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:03 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:40:03 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:40:03 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:03 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:03 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:03 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:04 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:40:04 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:40:04 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:04 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:04 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:04 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:05 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:40:05 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:40:05 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:05 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:06 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:40:06 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:40:06 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:06 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:06 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:06 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:07 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:40:07 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:40:07 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:07 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:07 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:07 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:08 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:40:08 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:40:08 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:08 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:09 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:40:09 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:40:09 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:09 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:09 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:09 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:10 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:40:10 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:40:10 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:10 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:10 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:10 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:11 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:40:11 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:40:11 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:11 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:12 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:40:12 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:40:12 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:12 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:12 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:12 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:13 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:40:13 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:40:13 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:13 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:13 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:13 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:14 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:40:14 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:40:14 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:14 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:15 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:40:15 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:40:15 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:15 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:15 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:15 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:16 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:40:16 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:40:16 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:16 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:16 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:16 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:17 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:40:17 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:40:17 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:17 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:18 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:40:18 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:40:18 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:18 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:18 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:18 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:19 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:40:19 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:40:19 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:19 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:19 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:19 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:20 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:40:20 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:40:20 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:20 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:21 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:40:21 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:40:21 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:21 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:21 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:21 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:22 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:40:22 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:40:22 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:22 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:22 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:22 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:23 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:40:23 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:40:23 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:23 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:24 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:40:24 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:40:24 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:24 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:24 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:24 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:25 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:40:25 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:40:25 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:25 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:25 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:25 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:26 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:40:26 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:40:26 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:26 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:27 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:40:27 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:40:27 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:27 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:27 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:27 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:28 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:40:28 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:40:28 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:28 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:28 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:28 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:29 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:40:29 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:40:29 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:29 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:30 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:40:30 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:40:30 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:30 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:30 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:30 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:31 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:40:31 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:40:31 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:31 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:31 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:31 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:32 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:40:32 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:40:32 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:32 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:33 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:40:33 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:40:33 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:33 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:33 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:33 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:34 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:40:34 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:40:34 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:34 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:34 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:34 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:35 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:40:35 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:40:35 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:35 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:36 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:40:36 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:40:36 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:36 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:36 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:36 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:37 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:40:37 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:40:37 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:37 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:37 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:37 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:38 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:40:38 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:40:38 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:38 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:39 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:40:39 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:40:39 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:39 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:39 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:39 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:40 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:40:40 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:40:40 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:40 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:40 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:40 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:41 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:40:41 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:40:41 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:41 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:42 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:40:42 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:40:42 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:42 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:42 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:42 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:43 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:40:43 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:40:43 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:43 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:43 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:43 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:44 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:40:44 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:40:44 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:44 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:45 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:40:45 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:40:45 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:45 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:45 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:45 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:46 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:40:46 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:40:46 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:46 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:46 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:46 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:47 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:40:47 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:40:47 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:47 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:48 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:40:48 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:40:48 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:48 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:48 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:48 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:49 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:40:49 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:40:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:50 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:40:50 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:40:50 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:50 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:51 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:40:51 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:40:51 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:51 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:51 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:51 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:52 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:40:52 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:40:52 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:52 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:52 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:52 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:53 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:40:53 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:40:53 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:53 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:54 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:40:54 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:40:54 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:54 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:54 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:54 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:55 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:40:55 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:40:55 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:55 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:55 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:55 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:56 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:40:56 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:40:56 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:56 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:57 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:40:57 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:40:57 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:57 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:57 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:57 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:58 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:40:58 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:40:58 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:58 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:58 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:58 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:59 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:40:59 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:40:59 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:40:59 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:00 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:41:00 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:41:00 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:00 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:00 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:00 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:01 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:41:01 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:41:01 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:01 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:01 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:01 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:02 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:41:02 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:41:02 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:02 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:03 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:41:03 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:41:03 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:03 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:03 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:03 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:04 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:41:04 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:41:04 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:04 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:04 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:04 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:05 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:41:05 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:41:05 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:05 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:06 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:41:06 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:41:06 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:06 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:06 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:06 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:07 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:41:07 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:41:07 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:07 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:07 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:07 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:08 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:41:08 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:41:08 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:08 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:09 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:41:09 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:41:09 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:09 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:09 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:09 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:10 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:41:10 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:41:10 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:10 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:10 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:10 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:11 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:41:11 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:41:11 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:11 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:12 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:41:12 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:41:12 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:12 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:12 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:12 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:13 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:41:13 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:41:13 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:13 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:13 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:13 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:14 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:41:14 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:41:14 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:14 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:15 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:41:15 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:41:15 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:15 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:15 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:15 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:16 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:41:16 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:41:16 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:16 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:16 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:16 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:17 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:41:17 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:41:17 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:17 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:18 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:41:18 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:41:18 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:18 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:18 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:18 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:19 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:41:19 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:41:19 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:19 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:19 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:19 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:20 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:41:20 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:41:20 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:20 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:21 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:41:21 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:41:21 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:21 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:21 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:21 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:22 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:41:22 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:41:22 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:22 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:22 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:22 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:23 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:41:23 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:41:23 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:23 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:24 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:41:24 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:41:24 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:24 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:24 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:24 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:25 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:41:25 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:41:25 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:25 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:25 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:25 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:26 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:41:26 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:41:26 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:26 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:27 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:41:27 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:41:27 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:27 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:27 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:27 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:28 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:41:28 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:41:28 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:28 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:28 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:28 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:29 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:41:29 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:41:29 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:29 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:30 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:41:30 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:41:30 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:30 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:30 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:30 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:31 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:41:31 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:41:31 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:31 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:31 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:31 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:32 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:41:32 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:41:32 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:32 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:33 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:41:33 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:41:33 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:33 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:33 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:33 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:34 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:41:34 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:41:34 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:34 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:34 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:34 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:35 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:41:35 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:41:35 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:35 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:36 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:41:36 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:41:36 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:36 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:36 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:36 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:37 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:41:37 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:41:37 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:37 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:37 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:37 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:38 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:41:38 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:41:38 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:38 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:39 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:41:39 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:41:39 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:39 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:39 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:39 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:40 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:41:40 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:41:40 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:40 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:40 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:40 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:41 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:41:41 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:41:41 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:41 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:42 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:41:42 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:41:42 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:42 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:42 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:42 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:43 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:41:43 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:41:43 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:43 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:43 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:43 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:44 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:41:44 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:41:44 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:44 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:45 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:41:45 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:41:45 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:45 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:45 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:45 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:46 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:41:46 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:41:46 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:46 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:46 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:46 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:47 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:41:47 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:41:47 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:47 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:48 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:41:48 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:41:48 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:48 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:48 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:48 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:49 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:41:49 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:41:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:49 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:49 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:50 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:41:50 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:41:50 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:50 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:51 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:41:51 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:41:51 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:51 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:51 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:51 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:52 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:41:52 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:41:52 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:52 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:52 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:52 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:53 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:41:53 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:41:53 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:53 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:54 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:41:54 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:41:54 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:54 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:54 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:54 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:55 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:41:55 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:41:55 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:55 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:55 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:55 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:56 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:41:56 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:41:56 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:56 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:57 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:41:57 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:41:57 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:57 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:57 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:57 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:58 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:41:58 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:41:58 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:58 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:58 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:58 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:59 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:41:59 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:41:59 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:41:59 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:00 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:42:00 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:42:00 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:00 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:00 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:00 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:01 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:42:01 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:42:01 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:01 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:01 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:01 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:02 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:42:02 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:42:02 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:02 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:03 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:42:03 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:42:03 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:03 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:03 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:03 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:04 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:42:04 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:42:04 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:04 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:04 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:04 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:05 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:42:05 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:42:05 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:05 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:06 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:42:06 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:42:06 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:06 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:06 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:06 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:07 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:42:07 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:42:07 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:07 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:07 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:07 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:08 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:42:08 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:42:08 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:08 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:09 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:42:09 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:42:09 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:09 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:09 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:09 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:10 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:42:10 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:42:10 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:10 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:10 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:10 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:11 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:42:11 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:42:11 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:11 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:12 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:42:12 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:42:12 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:12 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:12 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:12 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:13 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:42:13 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:42:13 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:13 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:13 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:13 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:14 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:42:14 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:42:14 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:14 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:15 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:42:15 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:42:15 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:15 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:15 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:15 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:16 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:42:16 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:42:16 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:16 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:16 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:16 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:17 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:42:17 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:42:17 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:17 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:18 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:42:18 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:42:18 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:18 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:18 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:18 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:19 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:42:19 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:42:19 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:19 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:19 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:19 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:20 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:42:20 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:42:20 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:20 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:21 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:42:21 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:42:21 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:21 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:21 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:21 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:22 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:42:22 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:42:22 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:22 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:22 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:22 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:23 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:42:23 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:42:23 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:23 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:24 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:42:24 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:42:24 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:24 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:24 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:24 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:25 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:42:25 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:42:25 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:25 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:25 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:25 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:26 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:42:26 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:42:26 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:26 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:27 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:42:27 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:42:27 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:27 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:27 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:27 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:28 oenone kernel: zd1211rw 3-4.3:1.0: iw_get_range() 
Sep  3 13:42:28 oenone kernel: zd1211rw 3-4.3:1.0: zd_mac_get_channel() channel 1
Sep  3 13:42:28 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:28 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:28 oenone kernel: usb 3-4.3: link qh0-00ff/ffff81000069e820 start 0 [2/0 us]
Sep  3 13:42:28 oenone kernel: usb 3-4.3: unlink qh0-00ff/ffff81000069e820 start 0 [2/0 us]


^ permalink raw reply

* Re: zd1211rw regression, device does not enumerate
From: Oliver Neukum @ 2007-09-03 12:00 UTC (permalink / raw)
  To: Daniel Drake; +Cc: netdev, linux-usb-devel, John W.Linville, Michal Piotrowski
In-Reply-To: <46D8DAB1.3090503@gentoo.org>

Am Samstag 01 September 2007 schrieb Daniel Drake:
> Would also be nice to have a bug on the kernel bugzilla to track this.

#8972 on bugzilla.kernel.org

	Regards
		Oliver


^ permalink raw reply

* Re: 82557/8/9 Ethernet Pro 100 interrupt mitigation support
From: John Sigler @ 2007-09-03 13:09 UTC (permalink / raw)
  To: John Sigler; +Cc: netdev, linux-net, linux.nics, e1000-devel
In-Reply-To: <46DBE393.30300@free.fr>

John Sigler wrote:

> I have several systems with three integrated Intel 82559 (I *think*).
> 
> Does someone know if these boards support hardware interrupt mitigation?
> I.e. is it possible to configure them to raise an IRQ only if their
> hardware buffer is full OR if some given time (say 1 ms) has passed and
> packets are available in their hardware buffer.
> 
> I've been using the eepro100 driver up to now, but I'm about to try the
> e100 driver. Would I have to use NAPI? Or is this an orthogonal feature?
> 
> 00:08.0 Ethernet controller: Intel Corporation 82557/8/9 Ethernet Pro 100 (rev 08)
> 	Subsystem: Intel Corporation EtherExpress PRO/100B (TX)
> 	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
> 	Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
> 	Latency: 32 (2000ns min, 14000ns max), Cache Line Size: 32 bytes
> 	Interrupt: pin A routed to IRQ 10
> 	Region 0: Memory at e6400000 (32-bit, non-prefetchable) [size=4K]
> 	Region 1: I/O ports at d800 [size=64]
> 	Region 2: Memory at e6100000 (32-bit, non-prefetchable) [size=1M]
> 	Capabilities: [dc] Power Management version 2
> 		Flags: PMEClk- DSI+ D1+ D2+ AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
> 		Status: D0 PME-Enable- DSel=0 DScale=2 PME-
> 
> 00:09.0 Ethernet controller: Intel Corporation 82557/8/9 Ethernet Pro 100 (rev 08)
> 	Subsystem: Intel Corporation EtherExpress PRO/100B (TX)
> 	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
> 	Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
> 	Latency: 32 (2000ns min, 14000ns max), Cache Line Size: 32 bytes
> 	Interrupt: pin A routed to IRQ 11
> 	Region 0: Memory at e6403000 (32-bit, non-prefetchable) [size=4K]
> 	Region 1: I/O ports at dc00 [size=64]
> 	Region 2: Memory at e6200000 (32-bit, non-prefetchable) [size=1M]
> 	Capabilities: [dc] Power Management version 2
> 		Flags: PMEClk- DSI+ D1+ D2+ AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
> 		Status: D0 PME-Enable- DSel=0 DScale=2 PME-
> 
> 00:0a.0 Ethernet controller: Intel Corporation 82557/8/9 Ethernet Pro 100 (rev 08)
> 	Subsystem: Intel Corporation EtherExpress PRO/100B (TX)
> 	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
> 	Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
> 	Latency: 32 (2000ns min, 14000ns max), Cache Line Size: 32 bytes
> 	Interrupt: pin A routed to IRQ 12
> 	Region 0: Memory at e6402000 (32-bit, non-prefetchable) [size=4K]
> 	Region 1: I/O ports at e000 [size=64]
> 	Region 2: Memory at e6000000 (32-bit, non-prefetchable) [size=1M]
> 	Capabilities: [dc] Power Management version 2
> 		Flags: PMEClk- DSI+ D1+ D2+ AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
> 		Status: D0 PME-Enable- DSel=0 DScale=2 PME-

Here is Intel's page for the 82559:
http://www.intel.com/design/network/products/lan/controllers/82559.htm

The "82559ER Fast Ethernet PCI Controller" data sheet mentions a 3 KB 
receive FIFO. I suppose that's too small to aggregate several frames?

The "8255x Controller Family Open Source Software Developer Manual" 
mentions the features supported by the 82559. I don't see anything 
related to interrupt mitigation support.

Does NAPI work well when there is no hardware interrupt mitigation support?

Regards.

^ permalink raw reply

* Re: 82557/8/9 Ethernet Pro 100 interrupt mitigation support
From: James Chapman @ 2007-09-03 13:33 UTC (permalink / raw)
  To: John Sigler; +Cc: netdev, linux-net
In-Reply-To: <46DBE393.30300@free.fr>

John Sigler wrote:
> 
> Hello everyone,
> 
> I have several systems with three integrated Intel 82559 (I *think*).
> 
> Does someone know if these boards support hardware interrupt mitigation?

82558/9 hardware does, sort of. But the e100 driver doesn't use it 
because it uses NAPI to minimize rx & tx interrupts.

> I.e. is it possible to configure them to raise an IRQ only if their
> hardware buffer is full OR if some given time (say 1 ms) has passed and
> packets are available in their hardware buffer.
> 
> I've been using the eepro100 driver up to now, but I'm about to try the
> e100 driver. Would I have to use NAPI? Or is this an orthogonal feature?

Use NAPI. The e100 driver has been NAPI-only for a while.

-- 
James Chapman
Katalix Systems Ltd
http://www.katalix.com
Catalysts for your Embedded Linux software development



^ permalink raw reply

* [PATCH] fix net_device leak in vlan
From: Al Viro @ 2007-09-03 13:35 UTC (permalink / raw)
  To: davem; +Cc: Patrick McHardy, netdev

In "[VLAN]: Move device registation to seperate function" (commit
e89fe42cd03c8fd3686df82d8390a235717a66de), a pile of code got moved
to register_vlan_dev(), including grabbing a reference to underlying
device.  However, original dev_hold() had been left behind, so we
leak a reference to net_device now...

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
---
diff --git a/net/8021q/vlan.c b/net/8021q/vlan.c
index 1583c5e..2a54691 100644
--- a/net/8021q/vlan.c
+++ b/net/8021q/vlan.c
@@ -562,8 +562,6 @@ static int register_vlan_device(struct net_device *real_dev,
 	if (err < 0)
 		goto out_free_newdev;
 
-	/* Account for reference in struct vlan_dev_info */
-	dev_hold(real_dev);
 #ifdef VLAN_DEBUG
 	printk(VLAN_DBG "Allocated new device successfully, returning.\n");
 #endif

^ permalink raw reply related

* Re: [PATCH 2/2]: [NET_SCHED]: Making rate table lookups more flexible.
From: Jesper Dangaard Brouer @ 2007-09-03 14:19 UTC (permalink / raw)
  To: Patrick McHardy; +Cc: Jesper Dangaard Brouer, netdev@vger.kernel.org
In-Reply-To: <46DB2846.2030400@trash.net>

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


On Sun, 2007-09-02 at 23:16 +0200, Patrick McHardy wrote:
> Jesper Dangaard Brouer wrote:
> > On Sun, 2 Sep 2007, Patrick McHardy wrote:
> >>
> >
> > Lets focus on the general case, where the functionality actually is 
> > needed right away.
> >
> > In the general case:
> >
> > - The rate table needs to be aligned (cell_align=-1).
> >   (currently, we miscalculates up to 7 bytes on every lookup)
> 
> We will always do that, thats a consequence of storing the
> transmission times for multiples of 8b.

The issue is that we use the lower boundary for calculating the transmit
cost. Thus, a 15 bytes packet only have a transmit cost of 8 bytes.

> > - The existing tc overhead calc can be made more accurate.
> >   (by adding overhead before doing the lookup, instead of the
> >    current solution where the rate table is modified with its
> >    limited resolution)
> 
> Please demonstrate this with patches (one for the overhead
> calculation, one for the cell_align thing), then we can
> continue this discussion.

I have attached a patch for the overhead calculation.

I'll look into the "the cell_align thing" tomorrow.

-- 
Med venlig hilsen / Best regards
  Jesper Brouer
  ComX Networks A/S
  Linux Network developer
  Cand. Scient Datalog / MSc.
  Author of http://adsl-optimizer.dk

[-- Attachment #2: pkt_sched.h.patch --]
[-- Type: text/x-patch, Size: 721 bytes --]

commit a29d43b78d5ddb20a808d9270c2de358556ba5ee
Author: Jesper Dangaard Brouer <hawk@comx.dk>
Date:   Mon Sep 3 14:35:19 2007 +0200

    [IPROUTE2]: Update pkt_sched.h
    
    In struct tc_ratespec, replace 'addend', with 'cell_align' and 'overhead'.
    
    Signed-off-by: Jesper Dangaard Brouer <hawk@comx.dk>

diff --git a/include/linux/pkt_sched.h b/include/linux/pkt_sched.h
index 268c515..a127d63 100644
--- a/include/linux/pkt_sched.h
+++ b/include/linux/pkt_sched.h
@@ -78,7 +78,8 @@ struct tc_ratespec
 	unsigned char	cell_log;
 	unsigned char	__reserved;
 	unsigned short	feature;
-	short		addend;
+	char		cell_align;
+	unsigned char	overhead;
 	unsigned short	mpu;
 	__u32		rate;
 };

[-- Attachment #3: overhead_to_kernel.patch --]
[-- Type: text/x-patch, Size: 1754 bytes --]

commit 1e89442468dca983e0e3d24b89093370896f2d6a
Author: Jesper Dangaard Brouer <hawk@comx.dk>
Date:   Mon Sep 3 15:49:41 2007 +0200

    [IPROUTE2]: Overhead calculation is now done in the kernel.
    
    The only current user is HTB. HTB overhead argument is now
    passed on the kernel (in the struct tc_ratespec).
    
    Signed-off-by: Jesper Dangaard Brouer <hawk@comx.dk>

diff --git a/tc/q_htb.c b/tc/q_htb.c
index 53e3f78..b579ebe 100644
--- a/tc/q_htb.c
+++ b/tc/q_htb.c
@@ -206,9 +206,11 @@ static int htb_parse_class_opt(struct qdisc_util *qu, int argc, char **argv, str
 	if (!buffer) buffer = opt.rate.rate / get_hz() + mtu;
 	if (!cbuffer) cbuffer = opt.ceil.rate / get_hz() + mtu;
 
-/* encode overhead and mpu, 8 bits each, into lower 16 bits */
-	mpu = (unsigned)mpu8 | (unsigned)overhead << 8;
-	opt.ceil.mpu = mpu; opt.rate.mpu = mpu;
+	opt.ceil.overhead = overhead;
+	opt.rate.overhead = overhead;
+
+	opt.ceil.mpu = mpu;
+	opt.rate.mpu = mpu;
 
 	if ((cell_log = tc_calc_rtable(opt.rate.rate, rtab, cell_log, mtu, mpu)) < 0) {
 		fprintf(stderr, "htb: failed to calculate rate table.\n");
diff --git a/tc/tc_core.c b/tc/tc_core.c
index 58155fb..1ab0ba0 100644
--- a/tc/tc_core.c
+++ b/tc/tc_core.c
@@ -73,8 +73,6 @@ int tc_calc_rtable(unsigned bps, __u32 *rtab, int cell_log, unsigned mtu,
 		   unsigned mpu)
 {
 	int i;
-	unsigned overhead = (mpu >> 8) & 0xFF;
-	mpu = mpu & 0xFF;
 
 	if (mtu == 0)
 		mtu = 2047;
@@ -86,8 +84,6 @@ int tc_calc_rtable(unsigned bps, __u32 *rtab, int cell_log, unsigned mtu,
 	}
 	for (i=0; i<256; i++) {
 		unsigned sz = (i<<cell_log);
-		if (overhead)
-			sz += overhead;
 		if (sz < mpu)
 			sz = mpu;
 		rtab[i] = tc_calc_xmittime(bps, sz);

^ permalink raw reply related

* Re: [PATCH] fix net_device leak in vlan
From: Patrick McHardy @ 2007-09-03 14:23 UTC (permalink / raw)
  To: Al Viro; +Cc: davem, netdev
In-Reply-To: <20070903133520.GV21089@ftp.linux.org.uk>

Al Viro wrote:
> In "[VLAN]: Move device registation to seperate function" (commit
> e89fe42cd03c8fd3686df82d8390a235717a66de), a pile of code got moved
> to register_vlan_dev(), including grabbing a reference to underlying
> device.  However, original dev_hold() had been left behind, so we
> leak a reference to net_device now...


Looks good, thanks for catching this.

^ permalink raw reply

* Re: [RFC PATCH v0.2] net driver: mpc52xx fec
From: Grant Likely @ 2007-09-03 15:57 UTC (permalink / raw)
  To: Domen Puncer; +Cc: netdev, linuxppc-embedded
In-Reply-To: <20070902074143.GB2642@nd47.coderock.org>

On 9/2/07, Domen Puncer <domen@coderock.org> wrote:
> Hi!
>
> new in this version:
> - fixed stuff that was commented on.
> - added 7-wire support (compile at least, if someone has the hardware,
>         please test!)
> - ethtool support

Thanks for this work Domen, comments below...

This is a large patch, and it should be broken up into logical
changes.  ie. split into dts changes, bestcomm changes, fec driver and
mdio driver.  Easier to review that way.  The bestcomm and dts changes
don't need to go to the netdev list.

> --- /dev/null
> +++ linux.git/drivers/net/fec_mpc52xx/Kconfig
> @@ -0,0 +1,25 @@
> +menu "MPC5200 Networking Options"
> +       depends PPC_MPC52xx && NET_ETHERNET
> +
> +config FEC_MPC52xx
> +       tristate "FEC Ethernet"
> +       depends on NET_ETHERNET
> +       select PPC_BESTCOMM
> +       select PPC_BESTCOMM_FEC
> +       select CRC32
> +       ---help---
> +         This option enables support for the MPC5200's on-chip
> +         Fast Ethernet Controller
> +
> +config FEC_MPC52xx_MDIO
> +       bool "Use external Ethernet MII PHY"
> +       depends on FEC_MPC52xx
> +       select PHYLIB
> +       default y
> +       ---help---
> +         The MPC5200's FEC can connect to the Ethernet either with
> +         an external MII PHY chip or 10 Mbps 7-wire interface
> +         (Motorola? industry standard).
> +         If your board uses an external PHY, say y, else n.

This option should change.  Either build the MDIO driver into the FEC
driver unconditionally and drop this option, or make the MDIO driver
independent from the FEC driver (it does use the MDIO bus
infrastructure after all).  Either way the FEC driver should detect
the phy type at runtime (possibly based on the presence/absence of a
phy-handle property) instead of being hard compiled.  5200 support is
now multiplatform after all.

If you drop the MDIO config option, then I'd also consider eliminating
driver/net/fec_mpc52xx/Kconfig entirely and rolling the single
MPC52xx_FEC option into drivers/net/Kconfig.

> +
> +endmenu
> Index: linux.git/drivers/net/fec_mpc52xx/Makefile
> ===================================================================
> --- /dev/null
> +++ linux.git/drivers/net/fec_mpc52xx/Makefile
> @@ -0,0 +1,7 @@
> +obj-$(CONFIG_FEC_MPC52xx) += fec_mpc52xx.o
> +
> +fec_mpc52xx-objs := fec.o
> +
> +ifeq ($(CONFIG_FEC_MPC52xx_MDIO),y)
> +fec_mpc52xx-objs += fec_phy.o
> +endif

Hmm, is the phy driver separate or not?  You've got the logic in place
to probe MDIO separately from the FEC driver, yet they are linked as a
single driver.

> Index: linux.git/drivers/net/fec_mpc52xx/fec.c
> ===================================================================
> --- /dev/null
> +++ linux.git/drivers/net/fec_mpc52xx/fec.c
> @@ -0,0 +1,1127 @@
> +/*
> + * drivers/drivers/net/fec_mpc52xx/fec.c
> + *
> + * Driver for the MPC5200 Fast Ethernet Controller
> + *
> + * Originally written by Dale Farnsworth <dfarnsworth@mvista.com> and
> + * now maintained by Sylvain Munaut <tnt@246tNt.com>
> + *
> + * Copyright (C) 2007  Domen Puncer, Telargo, Inc.
> + * Copyright (C) 2007  Sylvain Munaut <tnt@246tNt.com>
> + * Copyright (C) 2003-2004  MontaVista, Software, Inc.
> + *
> + * This file is licensed under the terms of the GNU General Public License
> + * version 2. This program is licensed "as is" without any warranty of any
> + * kind, whether express or implied.
> + *
> + */
> +
> +#include <linux/module.h>
> +
> +#include <linux/kernel.h>
> +#include <linux/types.h>
> +#include <linux/spinlock.h>
> +#include <linux/errno.h>
> +#include <linux/init.h>
> +#include <linux/crc32.h>
> +#include <linux/hardirq.h>
> +#include <linux/delay.h>
> +
> +#include <linux/netdevice.h>
> +#include <linux/etherdevice.h>
> +#include <linux/ethtool.h>
> +#include <linux/skbuff.h>
> +
> +#include <asm/of_device.h>
> +#include <asm/of_platform.h>
> +#include <asm/io.h>
> +#include <asm/delay.h>
> +#include <asm/mpc52xx.h>
> +
> +#include <sysdev/bestcomm/bestcomm.h>
> +#include <sysdev/bestcomm/fec.h>
> +
> +#include "fec.h"
> +
> +#define DRIVER_NAME "mpc52xx-fec"
> +
> +static irqreturn_t fec_interrupt(int, void *);
> +static irqreturn_t fec_rx_interrupt(int, void *);
> +static irqreturn_t fec_tx_interrupt(int, void *);
> +static struct net_device_stats *fec_get_stats(struct net_device *);
> +static void fec_set_multicast_list(struct net_device *dev);
> +static void fec_hw_init(struct net_device *dev);
> +static void fec_stop(struct net_device *dev);
> +static void fec_start(struct net_device *dev);
> +static void fec_reset(struct net_device *dev);

Nit: Are all these forward decls needed?

> +
> +static u8 mpc52xx_fec_mac_addr[6];

Why isn't this part of struct fec_priv?

> +static const u8 null_mac[6];

null_mac?!?  Just for comparing a mac addr against 0?

<snip>

> +#ifdef CONFIG_FEC_MPC52xx_MDIO

Once again; don't make this a conditional compile; detect at runtime.

<snip>

> +static void __init fec_str2mac(char *str, unsigned char *mac)
> +{
> +       int i;
> +       u64 val64;
> +
> +       val64 = simple_strtoull(str, NULL, 16);
> +
> +       for (i = 0; i < 6; i++)
> +               mac[5-i] = val64 >> (i*8);
> +}
> +
> +static int __init mpc52xx_fec_mac_setup(char *mac_address)
> +{
> +       fec_str2mac(mac_address, mpc52xx_fec_mac_addr);
> +       return 0;
> +}

fec_str2mac is called in *1* place.  I'd roll it into mpc52xx_fec_mac_setup.

> +
> +__setup("mpc52xx-mac=", mpc52xx_fec_mac_setup);
> +



-- 
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.
grant.likely@secretlab.ca
(403) 399-0195

^ permalink raw reply

* Re: [RFC PATCH v0.2] net driver: mpc52xx fec
From: Jon Smirl @ 2007-09-03 16:09 UTC (permalink / raw)
  To: Grant Likely; +Cc: Domen Puncer, netdev, linuxppc-embedded
In-Reply-To: <fa686aa40709030857j6c36c87ek60215f812864ee0f@mail.gmail.com>

On 9/3/07, Grant Likely <grant.likely@secretlab.ca> wrote:
> On 9/2/07, Domen Puncer <domen@coderock.org> wrote:
> > Hi!
> >
> > new in this version:
> > - fixed stuff that was commented on.
> > - added 7-wire support (compile at least, if someone has the hardware,
> >         please test!)
> > - ethtool support
>
> Thanks for this work Domen, comments below...
>
> This is a large patch, and it should be broken up into logical
> changes.  ie. split into dts changes, bestcomm changes, fec driver and
> mdio driver.  Easier to review that way.  The bestcomm and dts changes
> don't need to go to the netdev list.

A similar patch that is already broken up is available for Efika.
http://dev.gentoo.org/~nixnut/efika/efika-patches-2.6.22.tar.bz2

-- 
Jon Smirl
jonsmirl@gmail.com

^ permalink raw reply

* Re: [RFC PATCH v0.2] net driver: mpc52xx fec
From: Grant Likely @ 2007-09-03 16:41 UTC (permalink / raw)
  To: Jon Smirl; +Cc: Domen Puncer, netdev, linuxppc-embedded
In-Reply-To: <9e4733910709030909j50710faaw96c95cb369a810b3@mail.gmail.com>

On 9/3/07, Jon Smirl <jonsmirl@gmail.com> wrote:
> On 9/3/07, Grant Likely <grant.likely@secretlab.ca> wrote:
> > On 9/2/07, Domen Puncer <domen@coderock.org> wrote:
> > > Hi!
> > >
> > > new in this version:
> > > - fixed stuff that was commented on.
> > > - added 7-wire support (compile at least, if someone has the hardware,
> > >         please test!)
> > > - ethtool support
> >
> > Thanks for this work Domen, comments below...
> >
> > This is a large patch, and it should be broken up into logical
> > changes.  ie. split into dts changes, bestcomm changes, fec driver and
> > mdio driver.  Easier to review that way.  The bestcomm and dts changes
> > don't need to go to the netdev list.
>
> A similar patch that is already broken up is available for Efika.
> http://dev.gentoo.org/~nixnut/efika/efika-patches-2.6.22.tar.bz2

No.  That series is Sylvain's full patchset including the old FEC
driver.  Domen's patch is a reworked FEC driver, and it only replaces
patch 0008 from that series.  However, this patch should be split up
further because it makes changes to both the device tree and the
bestcomm code.

Cheers,
g.

-- 
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.
grant.likely@secretlab.ca
(403) 399-0195

^ permalink raw reply

* Fw: [Bug 8975] New: Broadcasting fails when default gateway can't be reached.
From: Stephen Hemminger @ 2007-09-03 16:59 UTC (permalink / raw)
  To: netdev

This looks like another manifestation of the Linux arp differences
from end user expectation.

Begin forwarded message:

Date: Mon,  3 Sep 2007 08:19:26 -0700 (PDT)
From: bugme-daemon@bugzilla.kernel.org
To: shemminger@linux-foundation.org
Subject: [Bug 8975] New: Broadcasting fails when default gateway can't be reached.


http://bugzilla.kernel.org/show_bug.cgi?id=8975

           Summary: Broadcasting fails when default gateway can't be
                    reached.
           Product: Networking
           Version: 2.5
     KernelVersion: 2.6.22
          Platform: All
        OS/Version: Linux
              Tree: Mainline
            Status: NEW
          Severity: normal
          Priority: P1
         Component: IPV4
        AssignedTo: shemminger@osdl.org
        ReportedBy: enrique.arizonbenito@gmail.com


Most recent kernel where this bug did not occur: N/A (I tried with 2.6.18-4 and
2.6.22
Distribution: - Debian 4.0 2.6.18-4 kernel & custom-kernel 2.6.22 from Mainline
-

Hardware Environment:

serv#lspci
00:00.0 Host bridge: VIA Technologies, Inc. VT82C693A/694x [Apollo PRO133x]
(rev 44)
00:01.0 PCI bridge: VIA Technologies, Inc. VT82C598/694x [Apollo MVP3/Pro133x
AGP]
00:07.0 ISA bridge: VIA Technologies, Inc. VT82C596 ISA [Mobile South] (rev 23)
00:07.1 IDE interface: VIA Technologies, Inc.
VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (rev 10)
00:07.3 Host bridge: VIA Technologies, Inc. VT82C596 Power Management (rev 30)
00:09.0 Ethernet controller: Realtek Semiconductor Co., Ltd.
RTL-8139/8139C/8139C+ (rev 10)
01:00.0 VGA compatible controller: ATI Technologies Inc Rage 128 RL/VR AGP


serv:~# lsmod 
Module                  Size  Used by
ipv6                  213856  14 
ipt_MASQUERADE          3584  1 
iptable_nat             7044  1 
ip_nat                 16428  2 ipt_MASQUERADE,iptable_nat
ip_conntrack           47156  3 ipt_MASQUERADE,iptable_nat,ip_nat
nfnetlink               6680  2 ip_nat,ip_conntrack
ip_tables              12104  1 iptable_nat
x_tables               12932  3 ipt_MASQUERADE,iptable_nat,ip_tables
dm_snapshot            15644  0 
dm_mirror              18000  0 
dm_mod                 48952  2 dm_snapshot,dm_mirror
loop                   14216  0 
serio_raw               6532  0 
floppy                 52004  0 
i2c_viapro              8340  0 
i2c_core               19472  1 i2c_viapro
psmouse                34568  0 
rtc                    11572  0 
via_agp                 9728  1 
agpgart                29360  1 via_agp
shpchp                 32796  0 
pci_hotplug            28088  1 shpchp
pcspkr                  2816  0 
evdev                   9088  0 
ext3                  116488  2 
jbd                    47272  1 ext3
ide_disk               14848  4 
via82cxxx               8452  0 [permanent]
generic                 5508  0 [permanent]
ide_core              107760  3 ide_disk,via82cxxx,generic
8139cp                 20736  0 
8139too                24192  0 
mii                     5376  2 8139cp,8139too
processor              23724  0 


serv:~# cat /proc/interrupts 
           CPU0       
  0:     798632          XT-PIC  timer
  1:         38          XT-PIC  i8042
  2:          0          XT-PIC  cascade
  6:          2          XT-PIC  floppy
  8:          1          XT-PIC  rtc
 10:     228692          XT-PIC  eth0
 14:      11482          XT-PIC  ide0
NMI:          0 
LOC:          0 
ERR:          0
MIS:          0



Software Environment:
serv:~# ifconfig 
eth0      Link encap:Ethernet  HWaddr 00:C0:26:A0:C6:99  
          inet addr:192.168.0.10  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::2c0:26ff:fea0:c699/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:62020 errors:0 dropped:0 overruns:0 frame:0
          TX packets:174169 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:10881985 (10.3 MiB)  TX bytes:204869648 (195.3 MiB)
          Interrupt:10 Base address:0xe800 

eth0:1    Link encap:Ethernet  HWaddr 00:C0:26:A0:C6:99  
          inet addr:192.168.10.1  Bcast:192.168.10.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Interrupt:10 Base address:0xe800 

serv:~# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.10.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0
0.0.0.0         192.168.0.1     0.0.0.0         UG    0      0        0 eth0

Problem Description:
 Broadcasting fail in next "unusual" cases:
 - default route points to any gateway (192.168.0.1).
 - The physical ethernet connection to the gateway is broke so ARP doesn't
work.

Steps to reproduce:

  Case 1: Router is connected:

  Client -------  switch -------- router
                     |
                     |
                   Server

  Case 2: Router is diconnected:

  Client -------  switch          router
                     |
                     |
                   Server

 - I setup a DHCP server and a client machine tries to get an IP setup from it.
 - The client and the server always have a correct physical connection.
 - With the physical connection working fine (wire connected) everything works
fine.
 - When the router get disconnected next happen:

   The Client never receives the broadcast data with the IP setup.

   Still, using tcpdump I can see the server trying to broadcast the data
through physical interface eth0 -but such data never goes out the wire since
the client hangs for ever).

   tcpdump also shows the server is trying to solve the ARP entry for the
router IP.

   When I delete the default gateway (route del -net 0.0.0.0) everything works
fine again.


   (Without the eth0:1 alias the behaviour is similar)

 Regards,

 Enrique


-- 
Configure bugmail: http://bugzilla.kernel.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.

^ permalink raw reply

* Ath5k panic fix
From: Krzysztof Halasa @ 2007-09-03 18:35 UTC (permalink / raw)
  To: Jiri Slaby; +Cc: John W. Linville, Andrew Morton, linux-kernel, netdev

Ath5k panics on ath_open() because sc->pdev is never set, fixed.

Signed-off-by: Krzysztof Halasa <khc@pm.waw.pl>

--- a/drivers/net/wireless/ath5k_base.c
+++ b/drivers/net/wireless/ath5k_base.c
@@ -2295,6 +2295,7 @@ static int __devinit ath_pci_probe(struct pci_dev *pdev,
 	hw->max_rssi = 127; /* FIXME: get a real value for this. */
 	sc = hw->priv;
 	sc->hw = hw;
+	sc->pdev = pdev;
 
 	/*
 	 * Mark the device as detached to avoid processing

^ permalink raw reply

* Re: r8169: jumbo frames
From: Francois Romieu @ 2007-09-03 20:57 UTC (permalink / raw)
  To: Shane; +Cc: netdev
In-Reply-To: <20070902165904.GA11650@csy.ca>

Shane <shane@csy.ca> :
[...]
> Just wanted to report that when setting a mtu of 4074, I'm
> getting slow Samba performance with an r8169 based NIC even
> with the fix for this posted here applied.  all dmesg shows
> is:
> NETDEV WATCHDOG: eth0: transmit timed out

It is a bit terse:
- which kernel ?
- which fix exactly (Message-Id or URL) ? The one I sent the
  29 of 08/2007 or something else ?
- which chipset (lspci -vvx) ?

Fwiw, I have rediffed the patchkit against 2.6.23-rc5. See:
http://www.fr.zoreil.com/people/francois/misc/20070903-2.6.23-rc5-r8169-test.patch
or:
http://www.fr.zoreil.com/linux/kernel/2.6.x/2.6.23-rc5/r8169-20070903/

If you have not done so already, I would appreciate that you try
to reproduce the problem with a 1500 bytes MTU with/without the
aforementioned patch.

> The mtu value is due to Windows workstations which support
> this value and 9k MTU but the r8169 doesn't appear to like
> 9k although that's where I'd like it to be on this network.

The 8169 will not fly above 7200, be it on Linux or Windows. :o/

-- 
Ueimor

^ permalink raw reply

* Re: r8169: slow samba performance
From: Francois Romieu @ 2007-09-03 21:03 UTC (permalink / raw)
  To: john; +Cc: Bruce Cole, netdev
In-Reply-To: <Pine.SOC.4.64.0708271631330.871@katana>

john@BlueSkyTours.com <john@BlueSkyTours.com> :
[...]
> I have had abysmal performance trying to remotely run X apps via ssh on a
> computer with a RTL8111 NIC.  Saw this message and decided to give this
> patch a try --- success!  Much, much better.

Can you give a try to:

http://www.fr.zoreil.com/people/francois/misc/20070903-2.6.23-rc5-r8169-test.patch

or just patches #0001 + #0002 at:

http://www.fr.zoreil.com/linux/kernel/2.6.x/2.6.23-rc5/r8169-20070903/


-- 
Ueimor

^ permalink raw reply

* [PATCH -mm 1/2] 3c59x: Fix uninitialized variable bug
From: Satyam Sharma @ 2007-09-03 22:15 UTC (permalink / raw)
  To: Steffen Klassert
  Cc: Linux Kernel Mailing List, Linux Netdev Mailing List, Jeff Garzik


drivers/net/3c59x.c: In function 'vortex_up':
drivers/net/3c59x.c:1495: warning: 'err' may be used uninitialized in this function

is a genuine bug. The function returns an uninitialized value of 'err'
back to the caller, which expects it to be 0 for success cases. Let's
fix this by explicitly initializing 'err' to zero.

Signed-off-by: Satyam Sharma <satyam@infradead.org>

---

 drivers/net/3c59x.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

--- linux-2.6.23-rc4-mm1/drivers/net/3c59x.c~fix	2007-09-04 03:29:40.000000000 +0530
+++ linux-2.6.23-rc4-mm1/drivers/net/3c59x.c	2007-09-04 03:30:08.000000000 +0530
@@ -1492,7 +1492,8 @@ vortex_up(struct net_device *dev)
 	struct vortex_private *vp = netdev_priv(dev);
 	void __iomem *ioaddr = vp->ioaddr;
 	unsigned int config;
-	int i, mii_reg1, mii_reg5, err;
+	int i, mii_reg1, mii_reg5;
+	int err = 0;
 
 	if (VORTEX_PCI(vp)) {
 		pci_set_power_state(VORTEX_PCI(vp), PCI_D0);	/* Go active */

^ permalink raw reply

* [PATCH -mm 2/2] 3c59x MAINTAINERS
From: Satyam Sharma @ 2007-09-03 22:22 UTC (permalink / raw)
  To: Steffen Klassert
  Cc: Linux Kernel Mailing List, Linux Netdev Mailing List, Jeff Garzik
In-Reply-To: <alpine.LFD.0.999.0709040340250.8504@enigma.security.iitk.ac.in>

Remove duplicate entry for the same driver.

Signed-off-by: Satyam Sharma <satyam@infradead.org>

---

 MAINTAINERS |    6 ------
 1 file changed, 6 deletions(-)

--- linux-2.6.23-rc4-mm1/MAINTAINERS~fix	2007-09-04 03:49:16.000000000 +0530
+++ linux-2.6.23-rc4-mm1/MAINTAINERS	2007-09-04 03:49:28.000000000 +0530
@@ -104,12 +104,6 @@ M:	klassert@mathematik.tu-chemnitz.de
 L:	netdev@vger.kernel.org
 S:	Maintained
 
-3C59X NETWORK DRIVER
-P:	Steffen Klassert
-M:	klassert@mathematik.tu-chemnitz.de
-L:	netdev@vger.kernel.org
-S:	Maintained
-
 3CR990 NETWORK DRIVER
 P:	David Dillow
 M:	dave@thedillows.org

^ permalink raw reply

* Re: some weird corruption in net-2.6.24
From: Herbert Xu @ 2007-09-03 23:05 UTC (permalink / raw)
  To: Thomas Graf; +Cc: davem, netdev
In-Reply-To: <20070903095719.GE18480@postel.suug.ch>

Thomas Graf <tgraf@suug.ch> wrote:
> 
> I've been trying to reproduce this, what happens on my system
> is that when the ISAKMP SA lifetime is exceeded the rekeying
> fails and my connection dies. I can reproduce this back to
> 2.6.22 and it doesn't seem related to my recent xfrm_user work.
> It looks like this behaviour is hiding the bug you are seeing.

Could you try extending the ISAKMP SA life time so that it is
longer than the IPSec SA life time?

Cheers,
-- 
Visit Openswan at http://www.openswan.org/
Email: Herbert Xu ~{PmV>HI~} <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt

^ permalink raw reply

* [patch] sunrpc: fix printk argument in svc_tcp_accept
From: Wolfgang Walter @ 2007-09-04  0:05 UTC (permalink / raw)
  To: netdev

Hello,

in 2.6.22.6, net/sunrpc/svcsock.c

random characters are printed by svc_tcp_accept:

	lockd: last TCP connect from <some random chars>

because buf is used unitialized:

printk(KERN_NOTICE
	"%s: last TCP connect from %s\n",
	serv->sv_name, buf);


Probably it should be

printk(KERN_NOTICE
	"%s: last TCP connect from %s\n",
	serv->sv_name, __svc_print_addr(sin, buf, sizeof(buf)));



Signed-off-by: Wolfgang Walter <wolfgang.walter@studentenwerk.mhn.de>

################
--- linux-2.6.22.6/net/sunrpc/svcsock.c	2007-08-27 18:10:14.000000000 +0200
+++ linux-2.6.22.6w/net/sunrpc/svcsock.c	2007-09-03 18:27:30.000000000 +0200
@@ -1090,7 +1090,7 @@
 						   serv->sv_name);
 				printk(KERN_NOTICE
 				       "%s: last TCP connect from %s\n",
-				       serv->sv_name, buf);
+				       serv->sv_name, __svc_print_addr(sin, buf, sizeof(buf)));
 			}
 			/*
 			 * Always select the oldest socket. It's not fair,

################

Regards,
-- 
Wolfgang Walter
Studentenwerk München
Anstalt des öffentlichen Rechts

^ permalink raw reply

* [PATCH] [sis900] convert to NAPI, WAS Re: pktgen terminating condition
From: Mandeep Singh Baines @ 2007-09-04  3:20 UTC (permalink / raw)
  To: Daniele Venzano
  Cc: hadi, Mandeep Baines, davem, rick.jones2, msb, netdev, grundler,
	robert.olsson, jeff, nhorman
In-Reply-To: <1188643644-77674666b52f8e4df330ca0982689109@brownhat.org>

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

Hi Daniele,

Attached is a patch for converting the sis900 driver to NAPI. Please take a
look at let me know what you think. I'm not 100% sure if I'm handling the 
rotting packet issue correctly or that I have the locking right in tx_timeout.
These might be areas to look at closely.

I didn't see much saving in interrupts on my machine (too fast, I guess). But
I still think its beneficial: pushing work out of the interrupt handler into
a bottom half is a good thing and we no longer need to disable interrupts 
in start_xmit. 

I did see a significant boost to tx performance by optimizing start_xmit: more
than double pps in pktgen.

I'm also attaching some test results for various iterations of development.

Regards,
Mandeep

Daniele Venzano (venza@brownhat.org) wrote:
> ----- Message d'origine -----
> De: jamal <hadi@cyberus.ca>
> Date: Fri, 31 Aug 2007 09:50:03 -0400
> Sujet: Re: Re: pktgen terminating condition
> 
> >I dont know if you followed the discussion - by defering the freeing of
> >skbs, you will be slowing down socket apps sending from the local
> >machine. It may be ok if the socket buffers were huge, but that comes at
> >the cost of system memory (which may not be a big deal)
> >Do you by any chance recall why you used the idle interupt instead of
> >txok to kick the prunning of tx descriptors?
> 
> That should be asked to the original author of the driver, that I wasn't able to contact when I took over the maintainership several years ago.
> I think that since this chip is usually used on cheap/low performance (relatively speaking) devices it was felt that generating an interrupt for each transmitted packet was going to affect the performance of the system too much. At the start, if I remember correctly, this was a chip thought for consumer use, where transmissions won't happen continuously for long periods of time. Then the sis900 started to get used everywhere, from embedded systems to (cheap) server motherboards and the usage scenario changed.
> 
> 
> --
> Daniele Venzano
> venza@brownhat.org

[-- Attachment #2: sis900_testing.txt --]
[-- Type: text/plain, Size: 1296 bytes --]

Tested using pktgen.

cpuinfo:
processor       : 0
vendor_id       : AuthenticAMD
cpu family      : 6
model           : 8
model name      : AMD Geode NX
stepping        : 1
cpu MHz         : 1397.641
cache size      : 256 KB
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 1
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 mmx fxsr sse syscall mp mmxext 3dnowext 3dnow ts fid vid
bogomips        : 2796.00
clflush size    : 32

meminfo:
MemTotal:       907092 kB


Results in pps. Sending 400000 60-byte packets.
Other than Iteration 5 and 6, there is 1 interrupt per packet.

Iteration 0 (replace TxIDLE with TxOK):
62222, 62052, 62335

Iteration 1 (optimize sis900_start_xmit):
148815, 148815, 148829

Iteration 2 (convert Rx to NAPI):
148669, 148635, 148677

Iteration 3 (remove tx_full dev state variable):
148677, 148528, 148532

Iteration 4 (optimize finish_xmit):
148677, 148676, 148689

Iteration 5 (move tx completion code into NAPI poll):
147751, 147658, 147809
Interrupts:
359270, 360747, 358010

Iteration 6 (cleanup + rotting packet handling + rx optimization):
148652, 148680, 148681
Interrupts:
399927, 399841, 399835


[-- Attachment #3: sis900_napi.patch --]
[-- Type: text/plain, Size: 19790 bytes --]

diff --git a/drivers/net/sis900.c b/drivers/net/sis900.c
index 7c6e480..862e15a 100644
--- a/drivers/net/sis900.c
+++ b/drivers/net/sis900.c
@@ -185,7 +185,6 @@ struct sis900_private {
 	dma_addr_t tx_ring_dma;
 	dma_addr_t rx_ring_dma;
 
-	unsigned int tx_full; /* The Tx queue is full. */
 	u8 host_bridge_rev;
 	u8 chipset_rev;
 };
@@ -202,8 +201,10 @@ MODULE_PARM_DESC(max_interrupt_work, "SiS 900/7016 maximum events handled per in
 MODULE_PARM_DESC(sis900_debug, "SiS 900/7016 bitmapped debugging message level");
 
 #ifdef CONFIG_NET_POLL_CONTROLLER
-static void sis900_poll(struct net_device *dev);
+static void sis900_poll_controller(struct net_device *dev);
 #endif
+
+static int sis900_poll(struct net_device *dev, int *budget);
 static int sis900_open(struct net_device *net_dev);
 static int sis900_mii_probe (struct net_device * net_dev);
 static void sis900_init_rxfilter (struct net_device * net_dev);
@@ -216,8 +217,8 @@ static void sis900_tx_timeout(struct net_device *net_dev);
 static void sis900_init_tx_ring(struct net_device *net_dev);
 static void sis900_init_rx_ring(struct net_device *net_dev);
 static int sis900_start_xmit(struct sk_buff *skb, struct net_device *net_dev);
-static int sis900_rx(struct net_device *net_dev);
-static void sis900_finish_xmit (struct net_device *net_dev);
+static int sis900_rx(struct net_device *net_dev, int limit);
+static int sis900_finish_xmit (struct net_device *net_dev);
 static irqreturn_t sis900_interrupt(int irq, void *dev_instance);
 static int sis900_close(struct net_device *net_dev);
 static int mii_ioctl(struct net_device *net_dev, struct ifreq *rq, int cmd);
@@ -474,9 +475,11 @@ static int __devinit sis900_probe(struct pci_dev *pci_dev,
 	net_dev->tx_timeout = sis900_tx_timeout;
 	net_dev->watchdog_timeo = TX_TIMEOUT;
 	net_dev->ethtool_ops = &sis900_ethtool_ops;
+	net_dev->poll = &sis900_poll;
+	net_dev->weight = 64;
 
 #ifdef CONFIG_NET_POLL_CONTROLLER
-        net_dev->poll_controller = &sis900_poll;
+        net_dev->poll_controller = &sis900_poll_controller;
 #endif
 
 	if (sis900_debug > 0)
@@ -979,13 +982,44 @@ static u16 sis900_reset_phy(struct net_device *net_dev, int phy_addr)
 	return status;
 }
 
+static int sis900_poll(struct net_device *dev, int *budget)
+{
+	struct sis900_private *sis_priv = dev->priv;
+	long ioaddr = dev->base_addr;
+	int limit = min_t(int, dev->quota, *budget);
+	int rx_work_done;
+	int tx_work_done;
+
+	/* run TX completion thread */
+	spin_lock(sis_priv->lock);
+	tx_work_done = sis900_finish_xmit(dev);
+	spin_unlock(sis_priv->lock);
+
+	/* run RX thread */
+	rx_work_done = sis900_rx(dev, limit);
+	*budget -= rx_work_done;
+	dev->quota -= rx_work_done;
+
+	/* re-enable interrupts if no work done */
+	if (rx_work_done + tx_work_done == 0) {
+		netif_rx_complete(dev);
+		/* Enable all known interrupts. */
+		outl((RxSOVR|RxORN|RxERR|RxOK|TxURN|TxERR|TxOK), ioaddr + imr);
+		/* Handle rotting packet */
+		sis900_rx(dev, NUM_RX_DESC);
+		return 0;
+	}
+
+	return 1;
+}
+
 #ifdef CONFIG_NET_POLL_CONTROLLER
 /*
  * Polling 'interrupt' - used by things like netconsole to send skbs
  * without having to re-enable interrupts. It's not called while
  * the interrupt routine is executing.
 */
-static void sis900_poll(struct net_device *dev)
+static void sis900_poll_controller(struct net_device *dev)
 {
 	disable_irq(dev->irq);
 	sis900_interrupt(dev->irq, dev);
@@ -1032,7 +1066,7 @@ sis900_open(struct net_device *net_dev)
 	sis900_set_mode(ioaddr, HW_SPEED_10_MBPS, FDX_CAPABLE_HALF_SELECTED);
 
 	/* Enable all known interrupts by setting the interrupt mask. */
-	outl((RxSOVR|RxORN|RxERR|RxOK|TxURN|TxERR|TxIDLE), ioaddr + imr);
+	outl((RxSOVR|RxORN|RxERR|RxOK|TxURN|TxERR|TxOK), ioaddr + imr);
 	outl(RxENA | inl(ioaddr + cr), ioaddr + cr);
 	outl(IE, ioaddr + ier);
 
@@ -1102,7 +1136,6 @@ sis900_init_tx_ring(struct net_device *net_dev)
 	long ioaddr = net_dev->base_addr;
 	int i;
 
-	sis_priv->tx_full = 0;
 	sis_priv->dirty_tx = sis_priv->cur_tx = 0;
 
 	for (i = 0; i < NUM_TX_DESC; i++) {
@@ -1517,7 +1550,6 @@ static void sis900_tx_timeout(struct net_device *net_dev)
 {
 	struct sis900_private *sis_priv = net_dev->priv;
 	long ioaddr = net_dev->base_addr;
-	unsigned long flags;
 	int i;
 
 	if(netif_msg_tx_err(sis_priv))
@@ -1527,8 +1559,8 @@ static void sis900_tx_timeout(struct net_device *net_dev)
 	/* Disable interrupts by clearing the interrupt mask. */
 	outl(0x0000, ioaddr + imr);
 
-	/* use spinlock to prevent interrupt handler accessing buffer ring */
-	spin_lock_irqsave(&sis_priv->lock, flags);
+	/* use spinlock to prevent bh from accessing buffer ring */
+	spin_lock_bh(&sis_priv->lock);
 
 	/* discard unsent packets */
 	sis_priv->dirty_tx = sis_priv->cur_tx = 0;
@@ -1546,10 +1578,9 @@ static void sis900_tx_timeout(struct net_device *net_dev)
 			sis_priv->stats.tx_dropped++;
 		}
 	}
-	sis_priv->tx_full = 0;
 	netif_wake_queue(net_dev);
 
-	spin_unlock_irqrestore(&sis_priv->lock, flags);
+	spin_unlock_bh(&sis_priv->lock);
 
 	net_dev->trans_start = jiffies;
 
@@ -1557,7 +1588,7 @@ static void sis900_tx_timeout(struct net_device *net_dev)
 	outl(sis_priv->tx_ring_dma, ioaddr + txdp);
 
 	/* Enable all known interrupts by setting the interrupt mask. */
-	outl((RxSOVR|RxORN|RxERR|RxOK|TxURN|TxERR|TxIDLE), ioaddr + imr);
+	outl((RxSOVR|RxORN|RxERR|RxOK|TxURN|TxERR|TxOK), ioaddr + imr);
 	return;
 }
 
@@ -1574,52 +1605,27 @@ static void sis900_tx_timeout(struct net_device *net_dev)
 static int
 sis900_start_xmit(struct sk_buff *skb, struct net_device *net_dev)
 {
-	struct sis900_private *sis_priv = net_dev->priv;
 	long ioaddr = net_dev->base_addr;
-	unsigned int  entry;
-	unsigned long flags;
-	unsigned int  index_cur_tx, index_dirty_tx;
-	unsigned int  count_dirty_tx;
+	struct sis900_private *sis_priv = net_dev->priv;
+        unsigned int entry;
 
-	/* Don't transmit data before the complete of auto-negotiation */
-	if(!sis_priv->autong_complete){
+	/* Don't transmit data before auto-negotiation is complete */
+	if(unlikely(!sis_priv->autong_complete)){
 		netif_stop_queue(net_dev);
 		return 1;
 	}
 
-	spin_lock_irqsave(&sis_priv->lock, flags);
-
-	/* Calculate the next Tx descriptor entry. */
-	entry = sis_priv->cur_tx % NUM_TX_DESC;
+	/* Set the Tx descriptor and enable Transmit State Machine */
+        entry = sis_priv->cur_tx++ % NUM_TX_DESC;
 	sis_priv->tx_skbuff[entry] = skb;
-
-	/* set the transmit buffer descriptor and enable Transmit State Machine */
 	sis_priv->tx_ring[entry].bufptr = pci_map_single(sis_priv->pci_dev,
 		skb->data, skb->len, PCI_DMA_TODEVICE);
 	sis_priv->tx_ring[entry].cmdsts = (OWN | skb->len);
 	outl(TxENA | inl(ioaddr + cr), ioaddr + cr);
 
-	sis_priv->cur_tx ++;
-	index_cur_tx = sis_priv->cur_tx;
-	index_dirty_tx = sis_priv->dirty_tx;
-
-	for (count_dirty_tx = 0; index_cur_tx != index_dirty_tx; index_dirty_tx++)
-		count_dirty_tx ++;
-
-	if (index_cur_tx == index_dirty_tx) {
-		/* dirty_tx is met in the cycle of cur_tx, buffer full */
-		sis_priv->tx_full = 1;
-		netif_stop_queue(net_dev);
-	} else if (count_dirty_tx < NUM_TX_DESC) {
-		/* Typical path, tell upper layer that more transmission is possible */
-		netif_start_queue(net_dev);
-	} else {
-		/* buffer full, tell upper layer no more transmission */
-		sis_priv->tx_full = 1;
+        /* If Tx ring is full, tell upper layer no more transmission */
+	if (unlikely(sis_priv->cur_tx - sis_priv->dirty_tx >= NUM_TX_DESC))
 		netif_stop_queue(net_dev);
-	}
-
-	spin_unlock_irqrestore(&sis_priv->lock, flags);
 
 	net_dev->trans_start = jiffies;
 
@@ -1650,32 +1656,27 @@ static irqreturn_t sis900_interrupt(int irq, void *dev_instance)
 	u32 status;
 	unsigned int handled = 0;
 
-	spin_lock (&sis_priv->lock);
-
-	do {
-		status = inl(ioaddr + isr);
-
-		if ((status & (HIBERR|TxURN|TxERR|TxIDLE|RxORN|RxERR|RxOK)) == 0)
-			/* nothing intresting happened */
-			break;
+	while ((status = inl(ioaddr + isr))) {
 		handled = 1;
 
-		/* why dow't we break after Tx/Rx case ?? keyword: full-duplex */
-		if (status & (RxORN | RxERR | RxOK))
-			/* Rx interrupt */
-			sis900_rx(net_dev);
+		/* why don't we break after Tx/Rx case ?? 
+		 * keyword: full-duplex 
+		 */
 
-		if (status & (TxURN | TxERR | TxIDLE))
-			/* Tx interrupt */
-			sis900_finish_xmit(net_dev);
+		/* Rx interrupt */
+                if (status & (TxURN|TxERR|TxOK|RxORN|RxERR|RxOK)) {
+			/* Disable all interrupts. */
+			outl(0, ioaddr + imr);
+			netif_rx_schedule(net_dev);
+		}
 
 		/* something strange happened !!! */
-		if (status & HIBERR) {
+		if (status & HIBERR)
 			if(netif_msg_intr(sis_priv))
 				printk(KERN_INFO "%s: Abnormal interrupt,"
-					"status %#8.8x.\n", net_dev->name, status);
-			break;
-		}
+					"status %#8.8x.\n", 
+					net_dev->name, status);
+
 		if (--boguscnt < 0) {
 			if(netif_msg_intr(sis_priv))
 				printk(KERN_INFO "%s: Too much work at interrupt, "
@@ -1683,14 +1684,13 @@ static irqreturn_t sis900_interrupt(int irq, void *dev_instance)
 					net_dev->name, status);
 			break;
 		}
-	} while (1);
+	}
 
 	if(netif_msg_intr(sis_priv))
 		printk(KERN_DEBUG "%s: exiting interrupt, "
 		       "interrupt status = 0x%#8.8x.\n",
 		       net_dev->name, inl(ioaddr + isr));
 
-	spin_unlock (&sis_priv->lock);
 	return IRQ_RETVAL(handled);
 }
 
@@ -1704,25 +1704,29 @@ static irqreturn_t sis900_interrupt(int irq, void *dev_instance)
  *	don't do "too much" work here
  */
 
-static int sis900_rx(struct net_device *net_dev)
+static int sis900_rx(struct net_device *net_dev, int limit)
 {
 	struct sis900_private *sis_priv = net_dev->priv;
+	struct net_device_stats *stats = &sis_priv->stats;
 	long ioaddr = net_dev->base_addr;
-	unsigned int entry = sis_priv->cur_rx % NUM_RX_DESC;
-	u32 rx_status = sis_priv->rx_ring[entry].cmdsts;
-	int rx_work_limit;
+	int cur_rx = sis_priv->cur_rx;
+	int dirty_rx, orig_dirty_rx = sis_priv->dirty_rx;
+	int count;
 
 	if (netif_msg_rx_status(sis_priv))
-		printk(KERN_DEBUG "sis900_rx, cur_rx:%4.4d, dirty_rx:%4.4d "
-		       "status:0x%8.8x\n",
-		       sis_priv->cur_rx, sis_priv->dirty_rx, rx_status);
-	rx_work_limit = sis_priv->dirty_rx + NUM_RX_DESC - sis_priv->cur_rx;
+		printk(KERN_DEBUG "sis900_rx, cur_rx:%4.4d, dirty_rx:%4.4d\n",
+		       cur_rx, orig_dirty_rx);
 
-	while (rx_status & OWN) {
+	for (count = 0; count < limit; cur_rx++, count++) {
+		unsigned int entry;
+		u32 rx_status;
 		unsigned int rx_size;
 		unsigned int data_size;
 
-		if (--rx_work_limit < 0)
+		entry = cur_rx % NUM_RX_DESC;
+		rx_status = sis_priv->rx_ring[entry].cmdsts;
+
+		if ((rx_status & OWN) == 0)
 			break;
 
 		data_size = rx_status & DSIZE;
@@ -1735,113 +1739,71 @@ static int sis900_rx(struct net_device *net_dev)
 #endif
 
 		if (rx_status & (ABORT|OVERRUN|TOOLONG|RUNT|RXISERR|CRCERR|FAERR)) {
-			/* corrupted packet received */
-			if (netif_msg_rx_err(sis_priv))
-				printk(KERN_DEBUG "%s: Corrupted packet "
-				       "received, buffer status = 0x%8.8x/%d.\n",
-				       net_dev->name, rx_status, data_size);
-			sis_priv->stats.rx_errors++;
+			pci_unmap_single(sis_priv->pci_dev,
+				sis_priv->rx_ring[entry].bufptr, RX_BUF_SIZE,
+				PCI_DMA_FROMDEVICE);
+			dev_kfree_skb(sis_priv->rx_skbuff[entry]);
+
+			stats->rx_errors++;
 			if (rx_status & OVERRUN)
-				sis_priv->stats.rx_over_errors++;
+				stats->rx_over_errors++;
 			if (rx_status & (TOOLONG|RUNT))
-				sis_priv->stats.rx_length_errors++;
+				stats->rx_length_errors++;
 			if (rx_status & (RXISERR | FAERR))
-				sis_priv->stats.rx_frame_errors++;
+				stats->rx_frame_errors++;
 			if (rx_status & CRCERR)
-				sis_priv->stats.rx_crc_errors++;
-			/* reset buffer descriptor state */
-			sis_priv->rx_ring[entry].cmdsts = RX_BUF_SIZE;
+				stats->rx_crc_errors++;
 		} else {
 			struct sk_buff * skb;
-			struct sk_buff * rx_skb;
 
 			pci_unmap_single(sis_priv->pci_dev,
 				sis_priv->rx_ring[entry].bufptr, RX_BUF_SIZE,
 				PCI_DMA_FROMDEVICE);
 
-			/* refill the Rx buffer, what if there is not enought
-			 * memory for new socket buffer ?? */
-			if ((skb = dev_alloc_skb(RX_BUF_SIZE)) == NULL) {
-				/*
-				 * Not enough memory to refill the buffer
-				 * so we need to recycle the old one so
-				 * as to avoid creating a memory hole
-				 * in the rx ring
-				 */
-				skb = sis_priv->rx_skbuff[entry];
-				sis_priv->stats.rx_dropped++;
-				goto refill_rx_ring;
-			}	
-
-			/* This situation should never happen, but due to
-			   some unknow bugs, it is possible that
-			   we are working on NULL sk_buff :-( */
-			if (sis_priv->rx_skbuff[entry] == NULL) {
-				if (netif_msg_rx_err(sis_priv))
-					printk(KERN_WARNING "%s: NULL pointer "
-					      "encountered in Rx ring\n"
-					      "cur_rx:%4.4d, dirty_rx:%4.4d\n",
-					      net_dev->name, sis_priv->cur_rx,
-					      sis_priv->dirty_rx);
-				break;
-			}
-
 			/* give the socket buffer to upper layers */
-			rx_skb = sis_priv->rx_skbuff[entry];
-			skb_put(rx_skb, rx_size);
-			rx_skb->protocol = eth_type_trans(rx_skb, net_dev);
-			netif_rx(rx_skb);
+			skb = sis_priv->rx_skbuff[entry];
+			skb_put(skb, rx_size);
+			skb->protocol = eth_type_trans(skb, net_dev);
+			netif_receive_skb(skb);
 
 			/* some network statistics */
 			if ((rx_status & BCAST) == MCAST)
-				sis_priv->stats.multicast++;
+				stats->multicast++;
 			net_dev->last_rx = jiffies;
-			sis_priv->stats.rx_bytes += rx_size;
-			sis_priv->stats.rx_packets++;
-			sis_priv->dirty_rx++;
-refill_rx_ring:
-			sis_priv->rx_skbuff[entry] = skb;
-			sis_priv->rx_ring[entry].cmdsts = RX_BUF_SIZE;
-                	sis_priv->rx_ring[entry].bufptr =
-				pci_map_single(sis_priv->pci_dev, skb->data,
-					RX_BUF_SIZE, PCI_DMA_FROMDEVICE);
+			stats->rx_bytes += rx_size;
+			stats->rx_packets++;
 		}
-		sis_priv->cur_rx++;
-		entry = sis_priv->cur_rx % NUM_RX_DESC;
-		rx_status = sis_priv->rx_ring[entry].cmdsts;
-	} // while
+	}
 
-	/* refill the Rx buffer, what if the rate of refilling is slower
-	 * than consuming ?? */
-	for (; sis_priv->cur_rx != sis_priv->dirty_rx; sis_priv->dirty_rx++) {
+	/* refill the Rx ring. */
+	for (dirty_rx = orig_dirty_rx; dirty_rx < cur_rx; dirty_rx++) {
 		struct sk_buff *skb;
+		unsigned int entry;
 
-		entry = sis_priv->dirty_rx % NUM_RX_DESC;
-
-		if (sis_priv->rx_skbuff[entry] == NULL) {
-			if ((skb = dev_alloc_skb(RX_BUF_SIZE)) == NULL) {
-				/* not enough memory for skbuff, this makes a
-				 * "hole" on the buffer ring, it is not clear
-				 * how the hardware will react to this kind
-				 * of degenerated buffer */
-				if (netif_msg_rx_err(sis_priv))
-					printk(KERN_INFO "%s: Memory squeeze,"
-						"deferring packet.\n",
-						net_dev->name);
-				sis_priv->stats.rx_dropped++;
-				break;
-			}
-			sis_priv->rx_skbuff[entry] = skb;
-			sis_priv->rx_ring[entry].cmdsts = RX_BUF_SIZE;
-                	sis_priv->rx_ring[entry].bufptr =
-				pci_map_single(sis_priv->pci_dev, skb->data,
-					RX_BUF_SIZE, PCI_DMA_FROMDEVICE);
+		if ((skb = dev_alloc_skb(RX_BUF_SIZE)) == NULL) {
+			if (netif_msg_rx_err(sis_priv))
+				printk(KERN_INFO "%s: Memory squeeze,"
+					"deferring packet.\n",
+					net_dev->name);
+			break;
 		}
+
+		entry = dirty_rx % NUM_RX_DESC;
+		sis_priv->rx_skbuff[entry] = skb;
+		sis_priv->rx_ring[entry].cmdsts = RX_BUF_SIZE;
+               	sis_priv->rx_ring[entry].bufptr =
+			pci_map_single(sis_priv->pci_dev, skb->data,
+				RX_BUF_SIZE, PCI_DMA_FROMDEVICE);
 	}
+
 	/* re-enable the potentially idle receive state matchine */
-	outl(RxENA | inl(ioaddr + cr), ioaddr + cr );
+	if (dirty_rx != orig_dirty_rx)
+		outl(RxENA | inl(ioaddr + cr), ioaddr + cr );
 
-	return 0;
+	sis_priv->dirty_rx = dirty_rx;
+	sis_priv->cur_rx = cur_rx;
+
+	return count;
 }
 
 /**
@@ -1854,24 +1816,28 @@ refill_rx_ring:
  *	don't do "too much" work here
  */
 
-static void sis900_finish_xmit (struct net_device *net_dev)
+static int sis900_finish_xmit (struct net_device *net_dev)
 {
 	struct sis900_private *sis_priv = net_dev->priv;
+	struct net_device_stats *stats = &sis_priv->stats;
+	int cur_tx = sis_priv->cur_tx;
+	int orig_dirty_tx = sis_priv->dirty_tx;
+	int dirty_tx;
 
-	for (; sis_priv->dirty_tx != sis_priv->cur_tx; sis_priv->dirty_tx++) {
+	for (dirty_tx = orig_dirty_tx; dirty_tx < cur_tx; dirty_tx++) {
 		struct sk_buff *skb;
 		unsigned int entry;
 		u32 tx_status;
 
-		entry = sis_priv->dirty_tx % NUM_TX_DESC;
+		entry = dirty_tx % NUM_TX_DESC;
 		tx_status = sis_priv->tx_ring[entry].cmdsts;
 
-		if (tx_status & OWN) {
-			/* The packet is not transmitted yet (owned by hardware) !
-			 * Note: the interrupt is generated only when Tx Machine
-			 * is idle, so this is an almost impossible case */
+		/* The packet is not transmitted yet (owned by hardware) !
+		 * Note: the interrupt is generated only when Tx Machine
+		 * is idle, so this is an almost impossible case 
+		 */
+		if (tx_status & OWN)
 			break;
-		}
 
 		if (tx_status & (ABORT | UNDERRUN | OWCOLL)) {
 			/* packet unsuccessfully transmitted */
@@ -1879,20 +1845,20 @@ static void sis900_finish_xmit (struct net_device *net_dev)
 				printk(KERN_DEBUG "%s: Transmit "
 				       "error, Tx status %8.8x.\n",
 				       net_dev->name, tx_status);
-			sis_priv->stats.tx_errors++;
+			stats->tx_errors++;
 			if (tx_status & UNDERRUN)
-				sis_priv->stats.tx_fifo_errors++;
+				stats->tx_fifo_errors++;
 			if (tx_status & ABORT)
-				sis_priv->stats.tx_aborted_errors++;
+				stats->tx_aborted_errors++;
 			if (tx_status & NOCARRIER)
-				sis_priv->stats.tx_carrier_errors++;
+				stats->tx_carrier_errors++;
 			if (tx_status & OWCOLL)
-				sis_priv->stats.tx_window_errors++;
+				stats->tx_window_errors++;
 		} else {
 			/* packet successfully transmitted */
-			sis_priv->stats.collisions += (tx_status & COLCNT) >> 16;
-			sis_priv->stats.tx_bytes += tx_status & DSIZE;
-			sis_priv->stats.tx_packets++;
+			stats->collisions += (tx_status & COLCNT) >> 16;
+			stats->tx_bytes += tx_status & DSIZE;
+			stats->tx_packets++;
 		}
 		/* Free the original skb. */
 		skb = sis_priv->tx_skbuff[entry];
@@ -1905,13 +1871,15 @@ static void sis900_finish_xmit (struct net_device *net_dev)
 		sis_priv->tx_ring[entry].cmdsts = 0;
 	}
 
-	if (sis_priv->tx_full && netif_queue_stopped(net_dev) &&
-	    sis_priv->cur_tx - sis_priv->dirty_tx < NUM_TX_DESC - 4) {
-		/* The ring is no longer full, clear tx_full and schedule
-		 * more transmission by netif_wake_queue(net_dev) */
-		sis_priv->tx_full = 0;
+	/* The ring is no longer full, schedule
+	 * more transmission by netif_wake_queue(net_dev) 
+	 */
+	if (netif_queue_stopped(net_dev) && (cur_tx - dirty_tx < NUM_TX_DESC))
 		netif_wake_queue (net_dev);
-	}
+
+	sis_priv->dirty_tx = dirty_tx;
+
+	return dirty_tx - orig_dirty_tx;
 }
 
 /**
@@ -2462,7 +2430,7 @@ static int sis900_resume(struct pci_dev *pci_dev)
 	sis900_set_mode(ioaddr, HW_SPEED_10_MBPS, FDX_CAPABLE_HALF_SELECTED);
 
 	/* Enable all known interrupts by setting the interrupt mask. */
-	outl((RxSOVR|RxORN|RxERR|RxOK|TxURN|TxERR|TxIDLE), ioaddr + imr);
+	outl((RxSOVR|RxORN|RxERR|RxOK|TxURN|TxERR|TxOK), ioaddr + imr);
 	outl(RxENA | inl(ioaddr + cr), ioaddr + cr);
 	outl(IE, ioaddr + ier);
 
diff --git a/drivers/net/sis900.h b/drivers/net/sis900.h
index 150511a..671af28 100644
--- a/drivers/net/sis900.h
+++ b/drivers/net/sis900.h
@@ -319,8 +319,8 @@ enum sis630_revision_id {
 #define TX_BUF_SIZE     (MAX_FRAME_SIZE+18)
 #define RX_BUF_SIZE     (MAX_FRAME_SIZE+18)
 
-#define NUM_TX_DESC     16      	/* Number of Tx descriptor registers. */
-#define NUM_RX_DESC     16       	/* Number of Rx descriptor registers. */
+#define NUM_TX_DESC     64    	/* Number of Tx descriptor registers. */
+#define NUM_RX_DESC     64    	/* Number of Rx descriptor registers. */
 #define TX_TOTAL_SIZE	NUM_TX_DESC*sizeof(BufferDesc)
 #define RX_TOTAL_SIZE	NUM_RX_DESC*sizeof(BufferDesc)
 

^ permalink raw reply related

* Re: [PATCH 1/2]: [NET_SCHED]: Make all rate based scheduler work with TSO.
From: Bill Fink @ 2007-09-04  3:34 UTC (permalink / raw)
  To: Jesper Dangaard Brouer
  Cc: Patrick McHardy, jdb, netdev@vger.kernel.org, David S. Miller
In-Reply-To: <Pine.LNX.4.61.0709012325080.29796@ask.diku.dk>

On Sat, 1 Sep 2007, Jesper Dangaard Brouer wrote:

> On Sat, 1 Sep 2007, Patrick McHardy wrote:
> 
> > Jesper Dangaard Brouer wrote:
> >> commit 6fdc0f061be94f5e297650961360fb7a9d1cc85d
> >> Author: Jesper Dangaard Brouer <hawk@comx.dk>
> >> Date:   Thu Aug 30 17:53:42 2007 +0200
> >> 
> >> [NET_SCHED]: Make all rate based scheduler work with TSO.
> >> 
> >> Change L2T (length to time) macros, in all rate based schedulers, to
> >> call a common function qdisc_l2t() that does the rate table lookup.
> >> This function handles if the packet size lookup is larger than the
> >> rate table, which often occurs with TSO enabled.
> >
> >
> > It still won't work properly with TSO (TBF for example already drops
> > oversized packets during ->enqueue), but its a good cleanup anyway.
> 
> Then lets call it a cleanup of the L2T macros.  In the next step we will 
> fix the different schedulers, to use the ability to lookup larger sized 
> packets. (I did notice the TBF scheduler would drop oversized packets).

Hmmm.  I guess this is also why TBF doesn't seem to work with 9000 byte
jumbo frames.

[root@lang4 ~]# tc qdisc add dev eth2 root tbf rate 2gbit buffer 5000000 limit 18000
[root@lang4 ~]# tc qdisc show                                                   qdisc pfifo_fast 0: dev eth0 root bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
qdisc tbf 8002: dev eth2 rate 2000Mbit burst 5000000b lat 4.3s

With 9000 byte jumbo frames:

[root@lang4 ~]# ./nuttcp-5.5.5 -w10m 192.168.88.14
    0.0000 MB /   5.00 sec =    0.0000 Mbps 0 %TX 0 %RX

But reducing the MSS to 1460 to emulate a standard 1500 byte Ethernet MTU:

[root@lang4 ~]# ./nuttcp-5.5.5 -M1460 -w10m 192.168.88.14
 2335.7048 MB /  10.05 sec = 1950.3419 Mbps 62 %TX 22 %RX

This is on a 2.6.20.7 kernel.

						-Bill

^ permalink raw reply

* af_packet: don't enable global timestamps
From: Stephen Hemminger @ 2007-09-04  5:35 UTC (permalink / raw)
  To: David S. Miller, Andi Kleen; +Cc: netdev

Andi mentioned he did something like this already, but never
submitted it.

The dhcp client application uses AF_PACKET with a packet filter to
receive data. The application doesn't even use timestamps, but because
the AF_PACKET API has timestamps, they get turned on globally which
causes an expensive time of day lookup for every packet received
on any system that uses the standard DHCP client.

The fix is to not enable the timestamp (but use if if available).
This causes the time lookup to only occur on those packets
that are destined for the AF_PACKET socket. 
The timestamping occurs after packet filtering
so all packets dropped by filtering to not cause a clock call.

The one downside of this a a few microseconds additional delay
added from the normal timestamping location (netif_rx) until the
receive callback in AF_PACKET. But since the offset is fairly consistent
it should not upset applications that do want really use timestamps,
like wireshark.

Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org>


--- a/net/packet/af_packet.c	2007-07-23 09:31:26.000000000 +0100
+++ b/net/packet/af_packet.c	2007-09-03 14:55:00.000000000 +0100
@@ -640,11 +640,10 @@ static int tpacket_rcv(struct sk_buff *s
 	h->tp_snaplen = snaplen;
 	h->tp_mac = macoff;
 	h->tp_net = netoff;
-	if (skb->tstamp.tv64 == 0) {
-		__net_timestamp(skb);
-		sock_enable_timestamp(sk);
-	}
-	tv = ktime_to_timeval(skb->tstamp);
+	if (skb->tstamp.tv64)
+		tv = ktime_to_timeval(skb->tstamp);
+	else
+		do_gettimeofday(&tv);
 	h->tp_sec = tv.tv_sec;
 	h->tp_usec = tv.tv_usec;
 

^ permalink raw reply

* Re: [PATCH -mm 2/2] 3c59x MAINTAINERS
From: Steffen Klassert @ 2007-09-04  7:55 UTC (permalink / raw)
  To: Satyam Sharma, Andrew Morton
  Cc: Linux Kernel Mailing List, Linux Netdev Mailing List, Jeff Garzik
In-Reply-To: <alpine.LFD.0.999.0709040351310.8504@enigma.security.iitk.ac.in>

On Tue, Sep 04, 2007 at 03:52:50AM +0530, Satyam Sharma wrote:
> Remove duplicate entry for the same driver.

This is -mm specific. Andrew did not remove the add-3c59x-maintainer
patch after pushing it to mainline. This can be fixed just by removing
the add-3c59x-maintainer patch from -mm. 


^ permalink raw reply

* Re: af_packet: don't enable global timestamps
From: Eric Dumazet @ 2007-09-04  7:59 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: David S. Miller, Andi Kleen, netdev
In-Reply-To: <20070904063525.060e7a77@oldman>

On Tue, 4 Sep 2007 06:35:25 +0100
Stephen Hemminger <shemminger@linux-foundation.org> wrote:

> Andi mentioned he did something like this already, but never
> submitted it.
> 
> The dhcp client application uses AF_PACKET with a packet filter to
> receive data. The application doesn't even use timestamps, but because
> the AF_PACKET API has timestamps, they get turned on globally which
> causes an expensive time of day lookup for every packet received
> on any system that uses the standard DHCP client.
> 
> The fix is to not enable the timestamp (but use if if available).
> This causes the time lookup to only occur on those packets
> that are destined for the AF_PACKET socket. 
> The timestamping occurs after packet filtering
> so all packets dropped by filtering to not cause a clock call.
> 
> The one downside of this a a few microseconds additional delay
> added from the normal timestamping location (netif_rx) until the
> receive callback in AF_PACKET. But since the offset is fairly consistent
> it should not upset applications that do want really use timestamps,
> like wireshark.

This patch seems the correct fix for this longstanding problem.

Please note that if wireshark/tcpdump processes really want precise timestamps, 
they still can ask this by using setsockopt(SO_TIMESTAMP or SO_TIMESTAMPNS) on their private socket.

(We already know that running a sniffer has a cost anyway)

> 
> Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org>
> 
> 
> --- a/net/packet/af_packet.c	2007-07-23 09:31:26.000000000 +0100
> +++ b/net/packet/af_packet.c	2007-09-03 14:55:00.000000000 +0100
> @@ -640,11 +640,10 @@ static int tpacket_rcv(struct sk_buff *s
>  	h->tp_snaplen = snaplen;
>  	h->tp_mac = macoff;
>  	h->tp_net = netoff;
> -	if (skb->tstamp.tv64 == 0) {
> -		__net_timestamp(skb);
> -		sock_enable_timestamp(sk);
> -	}
> -	tv = ktime_to_timeval(skb->tstamp);
> +	if (skb->tstamp.tv64)
> +		tv = ktime_to_timeval(skb->tstamp);
> +	else
> +		do_gettimeofday(&tv);
>  	h->tp_sec = tv.tv_sec;
>  	h->tp_usec = tv.tv_usec;
>  


^ permalink raw reply


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox