usb/125736: [ukbd] [hang] system hangs after AT keyboard detect
if ukbd loaded as a module
Daniel Gerzo
danger at FreeBSD.org
Sun Aug 8 13:10:11 UTC 2010
The following reply was made to PR usb/125736; it has been noted by GNATS.
From: Daniel Gerzo <danger at FreeBSD.org>
To: bug-followup at FreeBSD.org
Cc: hps at FreeBSD.org, admin at lissyara.su
Subject: Re: usb/125736: [ukbd] [hang] system hangs after AT keyboard detect if ukbd loaded as a module
Date: Sun, 8 Aug 2010 13:09:08 +0000
--X1bOJ3K7DJ5YkBrT
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Hello,
attached, I am sending patch which fixes other modules similarly.
--
Best regards,
Danile Gerzo
--X1bOJ3K7DJ5YkBrT
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment; filename="hps.diff"
Index: if_ndis/if_ndis_usb.c
===================================================================
--- if_ndis/if_ndis_usb.c (revision 211066)
+++ if_ndis/if_ndis_usb.c (working copy)
@@ -107,6 +107,7 @@
static devclass_t ndis_devclass;
DRIVER_MODULE(ndis, uhub, ndis_driver, ndis_devclass, ndisdrv_modevent, 0);
+MODULE_VERSION(ndis, 1);
static int
ndisusb_devcompare(interface_type bustype, struct ndis_usb_type *t, device_t dev)
Index: usb/serial/u3g.c
===================================================================
--- usb/serial/u3g.c (revision 211066)
+++ usb/serial/u3g.c (working copy)
@@ -178,6 +178,7 @@
DRIVER_MODULE(u3g, uhub, u3g_driver, u3g_devclass, u3g_driver_loaded, 0);
MODULE_DEPEND(u3g, ucom, 1, 1, 1);
MODULE_DEPEND(u3g, usb, 1, 1, 1);
+MODULE_VERSION(u3g, 1);
static const struct usb_device_id u3g_devs[] = {
#define U3G_DEV(v,p,i) { USB_VPI(USB_VENDOR_##v, USB_PRODUCT_##v##_##p, i) }
Index: usb/serial/ucycom.c
===================================================================
--- usb/serial/ucycom.c (revision 211066)
+++ usb/serial/ucycom.c (working copy)
@@ -176,6 +176,7 @@
DRIVER_MODULE(ucycom, uhub, ucycom_driver, ucycom_devclass, NULL, 0);
MODULE_DEPEND(ucycom, ucom, 1, 1, 1);
MODULE_DEPEND(ucycom, usb, 1, 1, 1);
+MODULE_VERSION(ucycom, 1);
/*
* Supported devices
Index: usb/serial/uark.c
===================================================================
--- usb/serial/uark.c (revision 211066)
+++ usb/serial/uark.c (working copy)
@@ -169,6 +169,7 @@
DRIVER_MODULE(uark, uhub, uark_driver, uark_devclass, NULL, 0);
MODULE_DEPEND(uark, ucom, 1, 1, 1);
MODULE_DEPEND(uark, usb, 1, 1, 1);
+MODULE_VERSION(uark, 1);
static const struct usb_device_id uark_devs[] = {
{USB_VPI(USB_VENDOR_ARKMICRO, USB_PRODUCT_ARKMICRO_ARK3116, 0)},
Index: usb/serial/ufoma.c
===================================================================
--- usb/serial/ufoma.c (revision 211066)
+++ usb/serial/ufoma.c (working copy)
@@ -326,6 +326,7 @@
DRIVER_MODULE(ufoma, uhub, ufoma_driver, ufoma_devclass, NULL, 0);
MODULE_DEPEND(ufoma, ucom, 1, 1, 1);
MODULE_DEPEND(ufoma, usb, 1, 1, 1);
+MODULE_VERSION(ufoma, 1);
static int
ufoma_probe(device_t dev)
Index: usb/serial/umct.c
===================================================================
--- usb/serial/umct.c (revision 211066)
+++ usb/serial/umct.c (working copy)
@@ -219,6 +219,7 @@
DRIVER_MODULE(umct, uhub, umct_driver, umct_devclass, NULL, 0);
MODULE_DEPEND(umct, ucom, 1, 1, 1);
MODULE_DEPEND(umct, usb, 1, 1, 1);
+MODULE_VERSION(umct, 1);
static int
umct_probe(device_t dev)
Index: usb/serial/uftdi.c
===================================================================
--- usb/serial/uftdi.c (revision 211066)
+++ usb/serial/uftdi.c (working copy)
@@ -205,6 +205,7 @@
DRIVER_MODULE(uftdi, uhub, uftdi_driver, uftdi_devclass, NULL, 0);
MODULE_DEPEND(uftdi, ucom, 1, 1, 1);
MODULE_DEPEND(uftdi, usb, 1, 1, 1);
+MODULE_VERSION(uftdi, 1);
static struct usb_device_id uftdi_devs[] = {
#define UFTDI_DEV(v,p,t) \
Index: usb/serial/uchcom.c
===================================================================
--- usb/serial/uchcom.c (revision 211066)
+++ usb/serial/uchcom.c (working copy)
@@ -855,3 +855,4 @@
DRIVER_MODULE(uchcom, uhub, uchcom_driver, uchcom_devclass, NULL, 0);
MODULE_DEPEND(uchcom, ucom, 1, 1, 1);
MODULE_DEPEND(uchcom, usb, 1, 1, 1);
+MODULE_VERSION(uchcom, 1);
Index: usb/serial/uipaq.c
===================================================================
--- usb/serial/uipaq.c (revision 211066)
+++ usb/serial/uipaq.c (working copy)
@@ -1085,6 +1085,7 @@
DRIVER_MODULE(uipaq, uhub, uipaq_driver, uipaq_devclass, NULL, 0);
MODULE_DEPEND(uipaq, ucom, 1, 1, 1);
MODULE_DEPEND(uipaq, usb, 1, 1, 1);
+MODULE_VERSION(uipaq, 1);
static int
uipaq_probe(device_t dev)
Index: usb/serial/ubser.c
===================================================================
--- usb/serial/ubser.c (revision 211066)
+++ usb/serial/ubser.c (working copy)
@@ -215,6 +215,7 @@
DRIVER_MODULE(ubser, uhub, ubser_driver, ubser_devclass, NULL, 0);
MODULE_DEPEND(ubser, ucom, 1, 1, 1);
MODULE_DEPEND(ubser, usb, 1, 1, 1);
+MODULE_VERSION(ubser, 1);
static int
ubser_probe(device_t dev)
Index: usb/serial/ugensa.c
===================================================================
--- usb/serial/ugensa.c (revision 211066)
+++ usb/serial/ugensa.c (working copy)
@@ -153,6 +153,7 @@
DRIVER_MODULE(ugensa, uhub, ugensa_driver, ugensa_devclass, NULL, 0);
MODULE_DEPEND(ugensa, ucom, 1, 1, 1);
MODULE_DEPEND(ugensa, usb, 1, 1, 1);
+MODULE_VERSION(ugensa, 1);
static const struct usb_device_id ugensa_devs[] = {
{USB_VPI(USB_VENDOR_AIRPRIME, USB_PRODUCT_AIRPRIME_PC5220, 0)},
Index: usb/serial/umoscom.c
===================================================================
--- usb/serial/umoscom.c (revision 211066)
+++ usb/serial/umoscom.c (working copy)
@@ -279,6 +279,7 @@
DRIVER_MODULE(umoscom, uhub, umoscom_driver, umoscom_devclass, NULL, 0);
MODULE_DEPEND(umoscom, ucom, 1, 1, 1);
MODULE_DEPEND(umoscom, usb, 1, 1, 1);
+MODULE_VERSION(umoscom, 1);
static const struct usb_device_id umoscom_devs[] = {
{USB_VPI(USB_VENDOR_MOSCHIP, USB_PRODUCT_MOSCHIP_MCS7703, 0)}
Index: usb/serial/ulpt.c
===================================================================
--- usb/serial/ulpt.c (revision 211066)
+++ usb/serial/ulpt.c (working copy)
@@ -745,3 +745,4 @@
DRIVER_MODULE(ulpt, uhub, ulpt_driver, ulpt_devclass, NULL, 0);
MODULE_DEPEND(ulpt, usb, 1, 1, 1);
MODULE_DEPEND(ulpt, ucom, 1, 1, 1);
+MODULE_VERSION(ulpt, 1);
Index: usb/serial/uvisor.c
===================================================================
--- usb/serial/uvisor.c (revision 211066)
+++ usb/serial/uvisor.c (working copy)
@@ -252,6 +252,7 @@
DRIVER_MODULE(uvisor, uhub, uvisor_driver, uvisor_devclass, NULL, 0);
MODULE_DEPEND(uvisor, ucom, 1, 1, 1);
MODULE_DEPEND(uvisor, usb, 1, 1, 1);
+MODULE_VERSION(uvisor, 1);
static const struct usb_device_id uvisor_devs[] = {
#define UVISOR_DEV(v,p,i) { USB_VPI(USB_VENDOR_##v, USB_PRODUCT_##v##_##p, i) }
Index: usb/serial/ubsa.c
===================================================================
--- usb/serial/ubsa.c (revision 211066)
+++ usb/serial/ubsa.c (working copy)
@@ -277,6 +277,7 @@
DRIVER_MODULE(ubsa, uhub, ubsa_driver, ubsa_devclass, NULL, 0);
MODULE_DEPEND(ubsa, ucom, 1, 1, 1);
MODULE_DEPEND(ubsa, usb, 1, 1, 1);
+MODULE_VERSION(ubsa, 1);
static int
ubsa_probe(device_t dev)
Index: usb/input/atp.c
===================================================================
--- usb/input/atp.c (revision 211066)
+++ usb/input/atp.c (working copy)
@@ -2222,3 +2222,4 @@
DRIVER_MODULE(atp, uhub, atp_driver, atp_devclass, NULL, 0);
MODULE_DEPEND(atp, usb, 1, 1, 1);
+MODULE_VErSION(atp, 1);
Index: usb/input/ums.c
===================================================================
--- usb/input/ums.c (revision 211066)
+++ usb/input/ums.c (working copy)
@@ -1010,3 +1010,4 @@
DRIVER_MODULE(ums, uhub, ums_driver, ums_devclass, NULL, 0);
MODULE_DEPEND(ums, usb, 1, 1, 1);
+MODULE_VERSION(ums, 1);
Index: usb/input/ukbd.c
===================================================================
--- usb/input/ukbd.c (revision 211066)
+++ usb/input/ukbd.c (working copy)
@@ -1887,3 +1887,4 @@
DRIVER_MODULE(ukbd, uhub, ukbd_driver, ukbd_devclass, ukbd_driver_load, 0);
MODULE_DEPEND(ukbd, usb, 1, 1, 1);
+MODULE_VERSION(ukbd, 1);
Index: usb/input/uep.c
===================================================================
--- usb/input/uep.c (revision 211066)
+++ usb/input/uep.c (working copy)
@@ -439,3 +439,4 @@
DRIVER_MODULE(uep, uhub, uep_driver, uep_devclass, NULL, NULL);
MODULE_DEPEND(uep, usb, 1, 1, 1);
+MODULE_VERSION(uep, 1);
Index: usb/input/uhid.c
===================================================================
--- usb/input/uhid.c (revision 211066)
+++ usb/input/uhid.c (working copy)
@@ -801,3 +801,4 @@
DRIVER_MODULE(uhid, uhub, uhid_driver, uhid_devclass, NULL, 0);
MODULE_DEPEND(uhid, usb, 1, 1, 1);
+MODULE_VERSION(uhid, 1);
Index: usb/storage/urio.c
===================================================================
--- usb/storage/urio.c (revision 211066)
+++ usb/storage/urio.c (working copy)
@@ -197,6 +197,7 @@
DRIVER_MODULE(urio, uhub, urio_driver, urio_devclass, NULL, 0);
MODULE_DEPEND(urio, usb, 1, 1, 1);
+MODULE_VERSION(urio, 1);
static int
urio_probe(device_t dev)
Index: usb/storage/umass.c
===================================================================
--- usb/storage/umass.c (revision 211066)
+++ usb/storage/umass.c (working copy)
@@ -715,6 +715,7 @@
DRIVER_MODULE(umass, uhub, umass_driver, umass_devclass, NULL, 0);
MODULE_DEPEND(umass, usb, 1, 1, 1);
MODULE_DEPEND(umass, cam, 1, 1, 1);
+MODULE_VERSION(umass, 1);
/*
* USB device probe/attach/detach
Index: usb/usb_hub.c
===================================================================
--- usb/usb_hub.c (revision 211066)
+++ usb/usb_hub.c (working copy)
@@ -170,6 +170,7 @@
DRIVER_MODULE(uhub, usbus, uhub_driver, uhub_devclass, 0, 0);
DRIVER_MODULE(uhub, uhub, uhub_driver, uhub_devclass, NULL, 0);
+MODULE_VERSION(uhub, 1);
static void
uhub_intr_callback(struct usb_xfer *xfer, usb_error_t error)
Index: usb/net/if_kue.c
===================================================================
--- usb/net/if_kue.c (revision 211066)
+++ usb/net/if_kue.c (working copy)
@@ -215,6 +215,7 @@
MODULE_DEPEND(kue, uether, 1, 1, 1);
MODULE_DEPEND(kue, usb, 1, 1, 1);
MODULE_DEPEND(kue, ether, 1, 1, 1);
+MODULE_VERSION(kue, 1);
static const struct usb_ether_methods kue_ue_methods = {
.ue_attach_post = kue_attach_post,
Index: usb/net/if_rue.c
===================================================================
--- usb/net/if_rue.c (revision 211066)
+++ usb/net/if_rue.c (working copy)
@@ -213,6 +213,7 @@
MODULE_DEPEND(rue, usb, 1, 1, 1);
MODULE_DEPEND(rue, ether, 1, 1, 1);
MODULE_DEPEND(rue, miibus, 1, 1, 1);
+MODULE_VERSION(rue, 1);
static const struct usb_ether_methods rue_ue_methods = {
.ue_attach_post = rue_attach_post,
Index: usb/net/if_udav.c
===================================================================
--- usb/net/if_udav.c (revision 211066)
+++ usb/net/if_udav.c (working copy)
@@ -172,6 +172,7 @@
MODULE_DEPEND(udav, usb, 1, 1, 1);
MODULE_DEPEND(udav, ether, 1, 1, 1);
MODULE_DEPEND(udav, miibus, 1, 1, 1);
+MODULE_VERSION(udav, 1);
static const struct usb_ether_methods udav_ue_methods = {
.ue_attach_post = udav_attach_post,
Index: usb/net/if_aue.c
===================================================================
--- usb/net/if_aue.c (revision 211066)
+++ usb/net/if_aue.c (working copy)
@@ -281,6 +281,7 @@
MODULE_DEPEND(aue, usb, 1, 1, 1);
MODULE_DEPEND(aue, ether, 1, 1, 1);
MODULE_DEPEND(aue, miibus, 1, 1, 1);
+MODULE_VERSION(aue, 1);
static const struct usb_ether_methods aue_ue_methods = {
.ue_attach_post = aue_attach_post,
Index: usb/net/if_cue.c
===================================================================
--- usb/net/if_cue.c (revision 211066)
+++ usb/net/if_cue.c (working copy)
@@ -173,6 +173,7 @@
MODULE_DEPEND(cue, uether, 1, 1, 1);
MODULE_DEPEND(cue, usb, 1, 1, 1);
MODULE_DEPEND(cue, ether, 1, 1, 1);
+MODULE_VERSION(cue, 1);
static const struct usb_ether_methods cue_ue_methods = {
.ue_attach_post = cue_attach_post,
Index: usb/net/if_axe.c
===================================================================
--- usb/net/if_axe.c (revision 211066)
+++ usb/net/if_axe.c (working copy)
@@ -256,6 +256,7 @@
MODULE_DEPEND(axe, usb, 1, 1, 1);
MODULE_DEPEND(axe, ether, 1, 1, 1);
MODULE_DEPEND(axe, miibus, 1, 1, 1);
+MODULE_VERSION(axe, 1);
static const struct usb_ether_methods axe_ue_methods = {
.ue_attach_post = axe_attach_post,
Index: usb/misc/ufm.c
===================================================================
--- usb/misc/ufm.c (revision 211066)
+++ usb/misc/ufm.c (working copy)
@@ -117,6 +117,7 @@
DRIVER_MODULE(ufm, uhub, ufm_driver, ufm_devclass, NULL, 0);
MODULE_DEPEND(ufm, usb, 1, 1, 1);
+MODULE_VERSION(ufm, 1);
static int
ufm_probe(device_t dev)
Index: usb/misc/udbp.c
===================================================================
--- usb/misc/udbp.c (revision 211066)
+++ usb/misc/udbp.c (working copy)
@@ -261,6 +261,7 @@
DRIVER_MODULE(udbp, uhub, udbp_driver, udbp_devclass, udbp_modload, 0);
MODULE_DEPEND(udbp, netgraph, NG_ABI_VERSION, NG_ABI_VERSION, NG_ABI_VERSION);
MODULE_DEPEND(udbp, usb, 1, 1, 1);
+MODULE_VERSION(udbp, 1);
static int
udbp_modload(module_t mod, int event, void *data)
Index: usb/usb_compat_linux.c
===================================================================
--- usb/usb_compat_linux.c (revision 211066)
+++ usb/usb_compat_linux.c (working copy)
@@ -122,6 +122,7 @@
static devclass_t usb_linux_devclass;
DRIVER_MODULE(usb_linux, uhub, usb_linux_driver, usb_linux_devclass, NULL, 0);
+MODULE_VERSION(usb_linux, 1);
/*------------------------------------------------------------------------*
* usb_linux_lookup_id
Index: usb/wlan/if_uath.c
===================================================================
--- usb/wlan/if_uath.c (revision 211066)
+++ usb/wlan/if_uath.c (working copy)
@@ -2892,3 +2892,4 @@
DRIVER_MODULE(uath, uhub, uath_driver, uath_devclass, NULL, 0);
MODULE_DEPEND(uath, wlan, 1, 1, 1);
MODULE_DEPEND(uath, usb, 1, 1, 1);
+MODULE_VERSION(uath, 1);
Index: usb/wlan/if_urtw.c
===================================================================
--- usb/wlan/if_urtw.c (revision 211066)
+++ usb/wlan/if_urtw.c (working copy)
@@ -4441,3 +4441,4 @@
DRIVER_MODULE(urtw, uhub, urtw_driver, urtw_devclass, NULL, 0);
MODULE_DEPEND(urtw, wlan, 1, 1, 1);
MODULE_DEPEND(urtw, usb, 1, 1, 1);
+MODULE_VERSION(urtw, 1);
Index: usb/wlan/if_rum.c
===================================================================
--- usb/wlan/if_rum.c (revision 211066)
+++ usb/wlan/if_rum.c (working copy)
@@ -139,9 +139,6 @@
#undef RUM_DEV
};
-MODULE_DEPEND(rum, wlan, 1, 1, 1);
-MODULE_DEPEND(rum, usb, 1, 1, 1);
-
static device_probe_t rum_match;
static device_attach_t rum_attach;
static device_detach_t rum_detach;
@@ -2359,3 +2356,6 @@
static devclass_t rum_devclass;
DRIVER_MODULE(rum, uhub, rum_driver, rum_devclass, NULL, 0);
+MODULE_DEPEND(rum, wlan, 1, 1, 1);
+MODULE_DEPEND(rum, usb, 1, 1, 1);
+MODULE_VERSION(rum, 1);
Index: usb/wlan/if_ural.c
===================================================================
--- usb/wlan/if_ural.c (revision 211066)
+++ usb/wlan/if_ural.c (working copy)
@@ -400,6 +400,7 @@
DRIVER_MODULE(ural, uhub, ural_driver, ural_devclass, NULL, 0);
MODULE_DEPEND(ural, usb, 1, 1, 1);
MODULE_DEPEND(ural, wlan, 1, 1, 1);
+MODULE_VERSION(ural, 1);
static int
ural_match(device_t self)
Index: usb/wlan/if_run.c
===================================================================
--- usb/wlan/if_run.c (revision 211066)
+++ usb/wlan/if_run.c (working copy)
@@ -294,10 +294,6 @@
#undef RUN_DEV
};
-MODULE_DEPEND(run, wlan, 1, 1, 1);
-MODULE_DEPEND(run, usb, 1, 1, 1);
-MODULE_DEPEND(run, firmware, 1, 1, 1);
-
static device_probe_t run_match;
static device_attach_t run_attach;
static device_detach_t run_detach;
@@ -4870,3 +4866,7 @@
static devclass_t run_devclass;
DRIVER_MODULE(run, uhub, run_driver, run_devclass, NULL, 0);
+MODULE_DEPEND(run, wlan, 1, 1, 1);
+MODULE_DEPEND(run, usb, 1, 1, 1);
+MODULE_DEPEND(run, firmware, 1, 1, 1);
+MODULE_VERSION(run, 1);
Index: usb/wlan/if_zyd.c
===================================================================
--- usb/wlan/if_zyd.c (revision 211066)
+++ usb/wlan/if_zyd.c (working copy)
@@ -2947,3 +2947,4 @@
DRIVER_MODULE(zyd, uhub, zyd_driver, zyd_devclass, NULL, 0);
MODULE_DEPEND(zyd, usb, 1, 1, 1);
MODULE_DEPEND(zyd, wlan, 1, 1, 1);
+MODULE_VERSION(zyd, 1);
--X1bOJ3K7DJ5YkBrT--
More information about the freebsd-usb
mailing list