NetBSD Problem Report #43125

From gson@gson.org  Mon Apr  5 11:02:49 2010
Return-Path: <gson@gson.org>
Received: from mail.netbsd.org (mail.netbsd.org [204.152.190.11])
	by www.NetBSD.org (Postfix) with ESMTP id A44BB63B11D
	for <gnats-bugs@gnats.NetBSD.org>; Mon,  5 Apr 2010 11:02:49 +0000 (UTC)
Message-Id: <20100405110246.59E9C75EAD@guava.gson.org>
Date: Mon,  5 Apr 2010 14:02:46 +0300 (EEST)
From: gson@gson.org (Andreas Gustafsson)
Reply-To: gson@gson.org (Andreas Gustafsson)
To: gnats-bugs@gnats.NetBSD.org
Subject: zyd(4) crashes with Buffalo WLI-U2-KG54L
X-Send-Pr-Version: 3.95

>Number:         43125
>Category:       kern
>Synopsis:       zyd(4) crashes with Buffalo WLI-U2-KG54L
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    mlelstv
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Mon Apr 05 11:05:00 +0000 2010
>Closed-Date:    
>Last-Modified:  Wed Feb 02 20:30:02 +0000 2011
>Originator:     Andreas Gustafsson
>Release:        NetBSD-current as of roughly Feb 24, 2010
>Organization:
>Environment:
System: NetBSD
Architecture: i386
Machine: i386
>Description:

Connecting a Buffalo WLI-U2-KG54L USB WLAN dongle to a
NetBSD-current/i386 machine, it successfully attaches as "zyd0",
but attempting to ifconfig the interface consistently leads
to a kernel trap.  Even the command "ifconfig zyd0" (with no
further arguments) causes a crash.

Screenshot of trap message and backtrace:

   http://www.gson.org/netbsd/bugs/buffalo/backtrace.jpg

Photo of Buffalo WLI-U2-KG54L:

  http://www.gson.org/netbsd/bugs/buffalo/device.jpg

The screenshot is from a -current as of a couple of weeks ago,
but I have also reproduced the problem with a -current built
from 2010.04.04.23.38.55 sources.

>How-To-Repeat:

Connect a WLI-U2-KG54L.  Attempt to use it.

>Fix:

>Release-Note:

>Audit-Trail:

Responsible-Changed-From-To: kern-bug-people->mlelstv
Responsible-Changed-By: mlelstv@NetBSD.org
Responsible-Changed-When: Sun, 06 Jun 2010 15:20:38 +0000
Responsible-Changed-Why:
I can repeat the problem with a SMC USB2.0 WLAN and have a patch.


State-Changed-From-To: open->analyzed
State-Changed-By: mlelstv@NetBSD.org
State-Changed-When: Sun, 06 Jun 2010 15:20:38 +0000
State-Changed-Why:

zyd (and probably rum) do some magic to delay firmware installation
until the device is initialized. However, you can call ioctl which
then uses uninitialized data structures.



From: Izumi Tsutsui <tsutsui@ceres.dti.ne.jp>
To: gnats-bugs@NetBSD.org
Cc: mlelstv@NetBSD.org, kern-bug-people@NetBSD.org, netbsd-bugs@NetBSD.org,
        gnats-admin@NetBSD.org, mlelstv@NetBSD.org, gson@gson.org,
        tsutsui@ceres.dti.ne.jp
Subject: Re: kern/43125 (zyd(4) crashes with Buffalo WLI-U2-KG54L)
Date: Sun, 13 Jun 2010 12:31:25 +0900

 > Synopsis: zyd(4) crashes with Buffalo WLI-U2-KG54L

 > I can repeat the problem with a SMC USB2.0 WLAN and have a patch.

 Any progress on this?

 > State-Changed-From-To: open->analyzed
  :
 > zyd (and probably rum) do some magic to delay firmware installation
 > until the device is initialized. However, you can call ioctl which
 > then uses uninitialized data structures.

 FUKAUMI Naoki suggested on tech-kern@ to introduce aftermountroothook()
 to handle deferred initialization that should be done after mountroot():
 http://mail-index.NetBSD.org/tech-kern/2010/05/27/msg008261.html

 But as I wrote in the thread, I think it's rather better to handle
 such device initializations in the autoconf(9) layer as we do
 in config_interrupt(9) than adding a common hook because
 such MI hooks seem deprecated like shutdownhook_establish(9) etc.

 How about this patch that introduces config_mountroot(9)?
 (zyd diff is based on FUKAUMI-san's one)

 ---
 Index: dev/usb/if_zyd.c
 ===================================================================
 RCS file: /cvsroot/src/sys/dev/usb/if_zyd.c,v
 retrieving revision 1.25
 diff -u -r1.25 if_zyd.c
 --- dev/usb/if_zyd.c	5 Apr 2010 07:21:49 -0000	1.25
 +++ dev/usb/if_zyd.c	13 Jun 2010 03:00:12 -0000
 @@ -156,7 +156,7 @@
  CFATTACH_DECL_NEW(zyd, sizeof(struct zyd_softc), zyd_match,
      zyd_attach, zyd_detach, zyd_activate);

 -Static int	zyd_attachhook(void *);
 +Static void	zyd_attachhook(device_t);
  Static int	zyd_complete_attach(struct zyd_softc *);
  Static int	zyd_open_pipes(struct zyd_softc *);
  Static void	zyd_close_pipes(struct zyd_softc *);
 @@ -245,10 +245,10 @@
  	    UMATCH_VENDOR_PRODUCT : UMATCH_NONE;
  }

 -Static int
 -zyd_attachhook(void *xsc)
 +Static void
 +zyd_attachhook(device_t self)
  {
 -	struct zyd_softc *sc = xsc;
 +	struct zyd_softc *sc = device_private(self);
  	firmware_handle_t fwh;
  	const char *fwname;
  	u_char *fw;
 @@ -259,7 +259,7 @@
  	if ((error = firmware_open("zyd", fwname, &fwh)) != 0) {
  		aprint_error_dev(sc->sc_dev,
  		    "failed to open firmware %s (error=%d)\n", fwname, error);
 -		return error;
 +		return;
  	}
  	size = firmware_get_size(fwh);
  	fw = firmware_malloc(size);
 @@ -267,7 +267,7 @@
  		aprint_error_dev(sc->sc_dev,
  		    "failed to allocate firmware memory\n");
  		firmware_close(fwh);
 -		return ENOMEM;
 +		return;
  	}
  	error = firmware_read(fwh, 0, fw, size);
  	firmware_close(fwh);
 @@ -275,7 +275,7 @@
  		aprint_error_dev(sc->sc_dev,
  		    "failed to read firmware (error %d)\n", error);
  		firmware_free(fw, 0);
 -		return error;
 +		return;
  	}

  	error = zyd_loadfirmware(sc, fw, size);
 @@ -283,7 +283,7 @@
  		aprint_error_dev(sc->sc_dev,
  		    "could not load firmware (error=%d)\n", error);
  		firmware_free(fw, 0);
 -		return ENXIO;
 +		return;
  	}

  	firmware_free(fw, 0);
 @@ -292,7 +292,7 @@
  	/* complete the attach process */
  	if ((error = zyd_complete_attach(sc)) == 0)
  		sc->attached = 1;
 -	return error;
 +	return;
  }

  void
 @@ -334,13 +334,10 @@
  	IFQ_SET_READY(&ifp->if_snd);
  	memcpy(ifp->if_xname, device_xname(sc->sc_dev), IFNAMSIZ);

 -	if_attach(ifp);
 -	/* XXXX: alloc temporarily until the layer2 can be configured. */
 -	if_alloc_sadl(ifp);
 -
  	SIMPLEQ_INIT(&sc->sc_rqh);

 -	return;
 +	/* defer configrations after file system is ready to load firmware */
 +	config_mountroot(self, zyd_attachhook);
  }

  Static int
 @@ -424,7 +421,7 @@
  		    IEEE80211_CHAN_DYN | IEEE80211_CHAN_2GHZ;
  	}

 -	if_free_sadl(ifp);
 +	if_attach(ifp);
  	ieee80211_ifattach(ic);
  	ic->ic_node_alloc = zyd_node_alloc;
  	ic->ic_newassoc = zyd_newassoc;
 @@ -461,11 +458,8 @@
  	struct ifnet *ifp = &sc->sc_if;
  	int s;

 -	if (!sc->attached) {
 -		if_free_sadl(ifp);
 -		if_detach(ifp);
 +	if (!sc->attached)
  		return 0;
 -	}

  	s = splusb();

 @@ -2450,10 +2444,6 @@
  	struct ieee80211com *ic = &sc->sc_ic;
  	int i, error;

 -	if ((sc->sc_flags & ZD1211_FWLOADED) == 0)
 -		if ((error = zyd_attachhook(sc)) != 0)
 -			return error;
 -
  	zyd_stop(ifp, 0);

  	IEEE80211_ADDR_COPY(ic->ic_myaddr, CLLADDR(ifp->if_sadl));
 Index: kern/init_main.c
 ===================================================================
 RCS file: /cvsroot/src/sys/kern/init_main.c,v
 retrieving revision 1.420
 diff -u -r1.420 init_main.c
 --- kern/init_main.c	10 Jun 2010 20:54:53 -0000	1.420
 +++ kern/init_main.c	13 Jun 2010 03:00:12 -0000
 @@ -266,6 +266,7 @@
  static void start_init(void *);
  static void configure(void);
  static void configure2(void);
 +static void configure3(void);
  void main(void);

  /*
 @@ -626,6 +627,8 @@
  	} while (error != 0);
  	mountroothook_destroy();

 +	configure3();
 +
  	/*
  	 * Initialise the time-of-day clock, passing the time recorded
  	 * in the root filesystem (if any) for use by systems that
 @@ -783,6 +786,20 @@
  }

  static void
 +configure3(void)
 +{
 +
 +	/*
 +	 * Create threads to call back and finish configuration for
 +	 * devices that want the mounted root file system.
 +	 */
 +	config_create_mountrootthreads();
 +
 +	/* Get the threads going and into any sleeps before continuing. */
 +	yield();
 +}
 +
 +static void
  check_console(struct lwp *l)
  {
  	struct vnode *vp;
 Index: kern/subr_autoconf.c
 ===================================================================
 RCS file: /cvsroot/src/sys/kern/subr_autoconf.c,v
 retrieving revision 1.206
 diff -u -r1.206 subr_autoconf.c
 --- kern/subr_autoconf.c	30 Apr 2010 21:17:22 -0000	1.206
 +++ kern/subr_autoconf.c	13 Jun 2010 03:00:12 -0000
 @@ -200,6 +200,9 @@
  struct deferred_config_head interrupt_config_queue =
  	TAILQ_HEAD_INITIALIZER(interrupt_config_queue);
  int interrupt_config_threads = 8;
 +struct deferred_config_head mountroot_config_queue =
 +	TAILQ_HEAD_INITIALIZER(mountroot_config_queue);
 +int mountroot_config_threads = 2;

  static void config_process_deferred(struct deferred_config_head *, device_t);

 @@ -427,6 +430,7 @@
  {
  	config_process_deferred(&deferred_config_queue, dev);
  	config_process_deferred(&interrupt_config_queue, dev);
 +	config_process_deferred(&mountroot_config_queue, dev);
  }

  static void
 @@ -454,6 +458,30 @@
  	}
  }

 +static void
 +config_mountroot_thread(void *cookie)
 +{
 +	struct deferred_config *dc;
 +
 +	while ((dc = TAILQ_FIRST(&mountroot_config_queue)) != NULL) {
 +		TAILQ_REMOVE(&mountroot_config_queue, dc, dc_queue);
 +		(*dc->dc_func)(dc->dc_dev);
 +		kmem_free(dc, sizeof(*dc));
 +	}
 +	kthread_exit(0);
 +}
 +
 +void
 +config_create_mountrootthreads()
 +{
 +	int i;
 +
 +	for (i = 0; i < mountroot_config_threads; i++) {
 +		(void)kthread_create(PRI_NONE, 0, NULL,
 +		    config_mountroot_thread, NULL, NULL, "config");
 +	}
 +}
 +
  /*
   * Announce device attach/detach to userland listeners.
   */
 @@ -1848,6 +1876,39 @@
  }

  /*
 + * Defer some autoconfiguration for a device until after root file system
 + * is mounted (to load firmware etc).
 + */
 +void
 +config_mountroot(device_t dev, void (*func)(device_t))
 +{
 +	struct deferred_config *dc;
 +
 +	/*
 +	 * If root file system is mounted, callback now.
 +	 */
 +	if (rootvnode != NULL) {
 +		(*func)(dev);
 +		return;
 +	}
 +
 +#ifdef DIAGNOSTIC
 +	TAILQ_FOREACH(dc, &mountroot_config_queue, dc_queue) {
 +		if (dc->dc_dev == dev)
 +			panic("%s: deferred twice", __func__);
 +	}
 +#endif
 +
 +	dc = kmem_alloc(sizeof(*dc), KM_SLEEP);
 +	if (dc == NULL)
 +		panic("%s: unable to allocate callback", __func__);
 +
 +	dc->dc_dev = dev;
 +	dc->dc_func = func;
 +	TAILQ_INSERT_TAIL(&mountroot_config_queue, dc, dc_queue);
 +}
 +
 +/*
   * Process a deferred configuration queue.
   */
  static void
 Index: sys/device.h
 ===================================================================
 RCS file: /cvsroot/src/sys/sys/device.h,v
 retrieving revision 1.136
 diff -u -r1.136 device.h
 --- sys/device.h	25 Mar 2010 19:23:18 -0000	1.136
 +++ sys/device.h	13 Jun 2010 03:00:15 -0000
 @@ -479,9 +479,11 @@
  void	config_defer(device_t, void (*)(device_t));
  void	config_deferred(device_t);
  void	config_interrupts(device_t, void (*)(device_t));
 +void	config_mountroot(device_t, void (*)(device_t));
  void	config_pending_incr(void);
  void	config_pending_decr(void);
  void	config_create_interruptthreads(void);
 +void	config_create_mountrootthreads(void);

  int	config_finalize_register(device_t, int (*)(device_t));
  void	config_finalize(void);

 ---

 upgt(4) (which requires firmware to get MAC address) on hpcarm
 works fine with this patch.

 (though I wonder if we should avoid such copy-n-pasted code..)

 ---
 Izumi Tsutsui

From: Michael van Elst <mlelstv@serpens.de>
To: Izumi Tsutsui <tsutsui@ceres.dti.ne.jp>
Cc: gnats-bugs@NetBSD.org, mlelstv@NetBSD.org, kern-bug-people@NetBSD.org,
        netbsd-bugs@NetBSD.org, gnats-admin@NetBSD.org, gson@gson.org
Subject: Re: kern/43125 (zyd(4) crashes with Buffalo WLI-U2-KG54L)
Date: Sun, 13 Jun 2010 09:17:41 +0200

 On Sun, Jun 13, 2010 at 12:31:25PM +0900, Izumi Tsutsui wrote:
 > > Synopsis: zyd(4) crashes with Buffalo WLI-U2-KG54L
 > 
 > > I can repeat the problem with a SMC USB2.0 WLAN and have a patch.
 > 
 > Any progress on this?

 zyd loads the firmware when the interface is put in UP state, but
 you may call ioctl on the interface before this. The ioctl may end
 in net80211 code that relies on initialized hardware.

 So my patch just initializes the hardware on the first ioctl too.

 Unfortunately this doesn't make zyd work on my network, there
 seem to be other issues as I also see USB errors.

 My assumption was that the deferred initialization was to avoid
 consuming firmware ressources until the device is actually used
 and not about availability of the firmware. It also lets you
 load and unload the firmware by just putting the interface up
 and down.

 Moving initialization into a config_mountroot() looks interesting,
 but it looks a bit like it may only happen once and leaves out
 the possibility to reload the firmware. Or can you control this
 with drvctl?

 If drvctl lets you detach and rescan USB devices, then maybe
 a solution would be to not even attach the devices before the
 firmware is available but to defer all this to an rc script?


 Greetings,
 -- 
                                 Michael van Elst
 Internet: mlelstv@serpens.de
                                 "A potential Snark may lurk in every tree."

From: Izumi Tsutsui <tsutsui@ceres.dti.ne.jp>
To: mlelstv@serpens.de
Cc: gnats-bugs@NetBSD.org, mlelstv@NetBSD.org, kern-bug-people@NetBSD.org,
        netbsd-bugs@NetBSD.org, gnats-admin@NetBSD.org, gson@gson.org,
        tsutsui@ceres.dti.ne.jp
Subject: Re: kern/43125 (zyd(4) crashes with Buffalo WLI-U2-KG54L)
Date: Sun, 13 Jun 2010 18:47:27 +0900

 > My assumption was that the deferred initialization was to avoid
 > consuming firmware ressources until the device is actually used
 > and not about availability of the firmware. It also lets you
 > load and unload the firmware by just putting the interface up
 > and down.

 Hmm, probably we should ask a person who implemented it,
 but my assumption is that it was just a hack since
 we didn't have proper hooks to defer initialization
 after mountroot(9).

 > Moving initialization into a config_mountroot() looks interesting,
 > but it looks a bit like it may only happen once and leaves out
 > the possibility to reload the firmware. Or can you control this
 > with drvctl?
 > 
 > If drvctl lets you detach and rescan USB devices, then maybe
 > a solution would be to not even attach the devices before the
 > firmware is available but to defer all this to an rc script?

 IMO we should have firmware in root file system as kernel modules
 and we don't have to defer it to an rc script.

 Anyway, your suggestion looks beyond the scope of this PR.
 ---
 Izumi Tsutsui

From: Izumi Tsutsui <tsutsui@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc: 
Subject: PR/43125 CVS commit: src/sys
Date: Fri, 25 Jun 2010 15:10:43 +0000

 Module Name:	src
 Committed By:	tsutsui
 Date:		Fri Jun 25 15:10:43 UTC 2010

 Modified Files:
 	src/sys/kern: init_main.c subr_autoconf.c
 	src/sys/sys: device.h

 Log Message:
 Add config_mountroot(9), which defers device configuration
 after mountroot(), like config_interrupt(9) that defers
 configuration after interrupts are enabled.
 This will be used for devices that require firmware loaded
 from the root file system by firmload(9) to complete device
 initialization (getting MAC address etc).

 No objection on tech-kern@:
 http://mail-index.NetBSD.org/tech-kern/2010/06/18/msg008370.html
 and will also fix PR kern/43125.


 To generate a diff of this commit:
 cvs rdiff -u -r1.420 -r1.421 src/sys/kern/init_main.c
 cvs rdiff -u -r1.206 -r1.207 src/sys/kern/subr_autoconf.c
 cvs rdiff -u -r1.136 -r1.137 src/sys/sys/device.h

 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.

State-Changed-From-To: analyzed->feedback
State-Changed-By: tsutsui@NetBSD.org
State-Changed-When: Sat, 26 Jun 2010 01:13:25 +0900
State-Changed-Why:
config_mountroot(9) has been added, and zyd(4) with config_montroot(9)
patch works fine here. Could you also try it?


From: Izumi Tsutsui <tsutsui@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc: 
Subject: PR/43125 CVS commit: src/sys/dev/usb
Date: Sun, 4 Jul 2010 15:38:28 +0000

 Module Name:	src
 Committed By:	tsutsui
 Date:		Sun Jul  4 15:38:27 UTC 2010

 Modified Files:
 	src/sys/dev/usb: if_zyd.c

 Log Message:
 Make zyd(4) use config_mountroot(9) to complete device initialization
 (which requires firmload(9)) right after mountroot.

 Now it's attached on boot as following:
 ---
 uhub4 at usb4: vendor 0x1033 EHCI root hub, class 9/0, rev 2.00/1.00, addr 1
 uhub4: 5 ports with 5 removable, self powered
  :
 zyd0 at uhub4 port 4
 zyd0: PCI PCI GW-US54GXS, rev 2.00/48.10, addr 3
  :
 boot device: wd0
 root on wd0a dumps on wd0b
 root file system type: ffs
 zyd0: HMAC ZD1211B, FW 47.25, RF AL2230, PA 0, address 00:22:cf:xx:xx:xx
 zyd0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps
 zyd0: 11g rates: 1Mbps 2Mbps 5.5Mbps 11Mbps 6Mbps 9Mbps 12Mbps 18Mbps 24Mbps 36Mbps 48Mbps 54Mbps
  :
 ---

 Should close PR kern/43125, no particular objections in that PR.


 To generate a diff of this commit:
 cvs rdiff -u -r1.25 -r1.26 src/sys/dev/usb/if_zyd.c

 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.

From: Andreas Gustafsson <gson@gson.org>
To: gnats-bugs@NetBSD.org
Cc: mlelstv@NetBSD.org,
    netbsd-bugs@netbsd.org,
    gnats-admin@netbsd.org,
    tsutsui@NetBSD.org
Subject: Re: kern/43125 (zyd(4) crashes with Buffalo WLI-U2-KG54L)
Date: Mon, 2 Aug 2010 11:30:36 +0300

 tsutsui@NetBSD.org wrote:
 > Synopsis: zyd(4) crashes with Buffalo WLI-U2-KG54L
 > 
 > State-Changed-From-To: analyzed->feedback
 > State-Changed-By: tsutsui@NetBSD.org
 > State-Changed-When: Sat, 26 Jun 2010 01:13:25 +0900
 > State-Changed-Why:
 > config_mountroot(9) has been added, and zyd(4) with config_montroot(9)
 > patch works fine here. Could you also try it?

 I finally got around to trying it, using NetBSD-current as of source
 date 2010.08.01.12.42.45 and a GENERIC kernel.  When I connect the
 device, I now get the following kernel messages:

   zyd0: Buffalo USB2.0 WLAN, rev 2.00/48.10, addr 2
   zyd0: sorry, radio "PV2000" is not supported yet
   zyd0: could not attach RF

 and ifconfig now fails with "Device not configured" rather than a
 kernel panic.
 -- 
 Andreas Gustafsson, gson@gson.org

From: Andreas Gustafsson <gson@gson.org>
To: gnats-bugs@NetBSD.org
Cc: mlelstv@NetBSD.org,
    netbsd-bugs@netbsd.org,
    gnats-admin@netbsd.org,
    tsutsui@NetBSD.org
Subject: Re: kern/43125 (zyd(4) crashes with Buffalo WLI-U2-KG54L)
Date: Mon, 2 Aug 2010 13:09:08 +0300

 One more thing... When I unplug the Buffalo WLI-U2-KG54L after it has
 failed to attach with the message "zyd0: could not attach RF",
 the kernel panics with "fatal page fault in supervisor mode".
 The last line of output before the ddb prompt is:

   Stopped in pid 0.3 (system) at  netbsd:usb_transfer_complete+0x3f:       movb 0x211(%eax), %al

 -- 
 Andreas Gustafsson, gson@gson.org

From: Izumi Tsutsui <tsutsui@ceres.dti.ne.jp>
To: gson@gson.org
Cc: gnats-bugs@NetBSD.org, mlelstv@NetBSD.org, netbsd-bugs@NetBSD.org,
        gnats-admin@NetBSD.org, tsutsui@NetBSD.org, tsutsui@ceres.dti.ne.jp
Subject: Re: kern/43125 (zyd(4) crashes with Buffalo WLI-U2-KG54L)
Date: Tue, 3 Aug 2010 01:23:20 +0900

 >   zyd0: sorry, radio "PV2000" is not supported yet
 >   zyd0: could not attach RF

 It might be worth to pull related changes from OpenBSD:
 http://www.openbsd.org/cgi-bin/cvsweb/src/sys/dev/usb/if_zyd.c#rev1.75
 http://www.openbsd.org/cgi-bin/cvsweb/src/sys/dev/usb/if_zyd.c#rev1.76
 http://www.openbsd.org/cgi-bin/cvsweb/src/sys/dev/usb/if_zydreg.h#rev1.24

 ---
 Izumi Tsutsui

From: "Izumi Tsutsui" <tsutsui@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc: 
Subject: PR/43125 CVS commit: src/sys/dev/usb
Date: Sun, 16 Jan 2011 09:08:29 +0000

 Module Name:	src
 Committed By:	tsutsui
 Date:		Sun Jan 16 09:08:29 UTC 2011

 Modified Files:
 	src/sys/dev/usb: if_zyd.c if_zydreg.h

 Log Message:
 Pull AL2230S radio support for chips:
 >   zyd0: sorry, radio "PV2000" is not supported yet
 >   zyd0: could not attach RF
 mentioned in PR kern/43125. From (FreeBSD via) OpenBSD.

 Untested (no hardware here), but should not affect other chips.


 To generate a diff of this commit:
 cvs rdiff -u -r1.27 -r1.28 src/sys/dev/usb/if_zyd.c
 cvs rdiff -u -r1.5 -r1.6 src/sys/dev/usb/if_zydreg.h

 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.

State-Changed-From-To: feedback->open
State-Changed-By: dholland@NetBSD.org
State-Changed-When: Mon, 31 Jan 2011 04:53:02 +0000
State-Changed-Why:
Feedback was received in August...


State-Changed-From-To: open->feedback
State-Changed-By: dholland@NetBSD.org
State-Changed-When: Mon, 31 Jan 2011 04:53:44 +0000
State-Changed-Why:
...and a fix for that issue was committed a couple weeks ago. Give it another
try and hopefully we can close this one out completely.


From: Andreas Gustafsson <gson@gson.org>
To: gnats-bugs@NetBSD.org
Cc: mlelstv@NetBSD.org,
    netbsd-bugs@netbsd.org,
    gnats-admin@netbsd.org,
    dholland@NetBSD.org,
    tsutsui@netbsd.org
Subject: Re: kern/43125 (zyd(4) crashes with Buffalo WLI-U2-KG54L)
Date: Wed, 2 Feb 2011 13:43:28 +0200

 dholland@NetBSD.org wrote:
 > ...and a fix for that issue was committed a couple weeks ago. Give
 > it another try and hopefully we can close this one out completely.

 I just tried a kernel built from today's -current
 (2011.02.02.05.10.55), and I was now able to successfully configure
 the WLI-U2-KG54L with a WEP key, obtain an address with DHCP, and
 transfer some data using ssh.  Many thanks to tsutsui for the fix.
 -- 
 Andreas Gustafsson, gson@gson.org

State-Changed-From-To: feedback->closed
State-Changed-By: gson@NetBSD.org
State-Changed-When: Wed, 02 Feb 2011 11:45:31 +0000
State-Changed-Why:
Bug fixed.


State-Changed-From-To: closed->open
State-Changed-By: gson@NetBSD.org
State-Changed-When: Wed, 02 Feb 2011 11:49:13 +0000
State-Changed-Why:
Still broken after all.


From: Andreas Gustafsson <gson@gson.org>
To: gnats-bugs@NetBSD.org
Cc: mlelstv@NetBSD.org,
    netbsd-bugs@netbsd.org,
    gnats-admin@netbsd.org,
    dholland@NetBSD.org,
    tsutsui@netbsd.org
Subject: Re: kern/43125 (zyd(4) crashes with Buffalo WLI-U2-KG54L)
Date: Wed, 2 Feb 2011 13:57:14 +0200

 Regrettably, I have to retract my report of the Buffalo WLI-U2-KG54L
 working.  I have two almost identical-looking WLAN sticks, one older
 WLI-U2-KG54 (without the -L suffix) and the newer Buffalo WLI-U2-KG54L,
 and I accidentally tested the wrong one.  So, the WLI-U2-KG54
 works, but the WLI-U2-KG54L still doesn't.

 The current symptoms (with the 2011.02.02.05.10.55 kernel) are that
 setting a WEP key with ifconfig works, but when I run dhclient,
 the console starts logging the following message several times a
 second:

   zyd0: xfer too short (length = 8)

 An "ifconfig zyd0 down" stops the messages, and an "ifconfig zyd0 up"
 restarts them.
 -- 
 Andreas Gustafsson, gson@gson.org

From: Michael van Elst <mlelstv@serpens.de>
To: gnats-bugs@NetBSD.org
Cc: mlelstv@NetBSD.org, gnats-admin@NetBSD.org, netbsd-bugs@NetBSD.org,
        Andreas Gustafsson <gson@gson.org>
Subject: Re: kern/43125 (zyd(4) crashes with Buffalo WLI-U2-KG54L)
Date: Wed, 2 Feb 2011 21:25:09 +0100

 On Wed, Feb 02, 2011 at 12:55:03PM +0000, Andreas Gustafsson wrote:

 >  The current symptoms (with the 2011.02.02.05.10.55 kernel) are that
 >  setting a WEP key with ifconfig works, but when I run dhclient,
 >  the console starts logging the following message several times a
 >  second:
 >  
 >    zyd0: xfer too short (length = 8)

 Similar to the SMC device, it complains about too short
 transfers with (length = 22).

 -- 
                                 Michael van Elst
 Internet: mlelstv@serpens.de
                                 "A potential Snark may lurk in every tree."

>Unformatted:

NetBSD Home
NetBSD PR Database Search

(Contact us) $NetBSD: query-full-pr,v 1.39 2013/11/01 18:47:49 spz Exp $
$NetBSD: gnats_config.sh,v 1.8 2006/05/07 09:23:38 tsutsui Exp $
Copyright © 1994-2007 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.