svn commit: r191825 - in head/sys/dev/usb: . net storage

Andrew Thompson thompsa at FreeBSD.org
Tue May 5 15:39:30 UTC 2009


Author: thompsa
Date: Tue May  5 15:39:29 2009
New Revision: 191825
URL: http://svn.freebsd.org/changeset/base/191825

Log:
  Remove USB shutdown methods from device drivers as its the host controllers
  responsibility to detach the bus.
  
  PR:		usb/133896
  Submitted by:	Hans Petter Selasky

Modified:
  head/sys/dev/usb/net/if_aue.c
  head/sys/dev/usb/net/if_axe.c
  head/sys/dev/usb/net/if_cdce.c
  head/sys/dev/usb/net/if_cue.c
  head/sys/dev/usb/net/if_kue.c
  head/sys/dev/usb/net/if_rue.c
  head/sys/dev/usb/net/if_udav.c
  head/sys/dev/usb/net/usb_ethernet.c
  head/sys/dev/usb/net/usb_ethernet.h
  head/sys/dev/usb/storage/ustorage_fs.c
  head/sys/dev/usb/usb_compat_linux.c
  head/sys/dev/usb/usb_hub.c

Modified: head/sys/dev/usb/net/if_aue.c
==============================================================================
--- head/sys/dev/usb/net/if_aue.c	Tue May  5 15:36:23 2009	(r191824)
+++ head/sys/dev/usb/net/if_aue.c	Tue May  5 15:39:29 2009	(r191825)
@@ -173,7 +173,6 @@ static const struct usb2_device_id aue_d
 static device_probe_t aue_probe;
 static device_attach_t aue_attach;
 static device_detach_t aue_detach;
-static device_shutdown_t aue_shutdown;
 static miibus_readreg_t aue_miibus_readreg;
 static miibus_writereg_t aue_miibus_writereg;
 static miibus_statchg_t aue_miibus_statchg;
@@ -239,7 +238,6 @@ static device_method_t aue_methods[] = {
 	DEVMETHOD(device_probe, aue_probe),
 	DEVMETHOD(device_attach, aue_attach),
 	DEVMETHOD(device_detach, aue_detach),
-	DEVMETHOD(device_shutdown, aue_shutdown),
 
 	/* bus interface */
 	DEVMETHOD(bus_print_child, bus_generic_print_child),
@@ -1038,17 +1036,3 @@ aue_stop(struct usb2_ether *ue)
 	aue_csr_write_1(sc, AUE_CTL1, 0);
 	aue_reset(sc);
 }
-
-/*
- * Stop all chip I/O so that the kernel's probe routines don't
- * get confused by errant DMAs when rebooting.
- */
-static int
-aue_shutdown(device_t dev)
-{
-	struct aue_softc *sc = device_get_softc(dev);
-
-	usb2_ether_ifshutdown(&sc->sc_ue);
-
-	return (0);
-}

Modified: head/sys/dev/usb/net/if_axe.c
==============================================================================
--- head/sys/dev/usb/net/if_axe.c	Tue May  5 15:36:23 2009	(r191824)
+++ head/sys/dev/usb/net/if_axe.c	Tue May  5 15:39:29 2009	(r191825)
@@ -151,7 +151,6 @@ static const struct usb2_device_id axe_d
 static device_probe_t axe_probe;
 static device_attach_t axe_attach;
 static device_detach_t axe_detach;
-static device_shutdown_t axe_shutdown;
 
 static usb2_callback_t axe_intr_callback;
 static usb2_callback_t axe_bulk_read_callback;
@@ -216,7 +215,6 @@ static device_method_t axe_methods[] = {
 	DEVMETHOD(device_probe, axe_probe),
 	DEVMETHOD(device_attach, axe_attach),
 	DEVMETHOD(device_detach, axe_detach),
-	DEVMETHOD(device_shutdown, axe_shutdown),
 
 	/* bus interface */
 	DEVMETHOD(bus_print_child, bus_generic_print_child),
@@ -1060,17 +1058,3 @@ axe_stop(struct usb2_ether *ue)
 
 	axe_reset(sc);
 }
-
-/*
- * Stop all chip I/O so that the kernel's probe routines don't
- * get confused by errant DMAs when rebooting.
- */
-static int
-axe_shutdown(device_t dev)
-{
-	struct axe_softc *sc = device_get_softc(dev);
-
-	usb2_ether_ifshutdown(&sc->sc_ue);
-
-	return (0);
-}

Modified: head/sys/dev/usb/net/if_cdce.c
==============================================================================
--- head/sys/dev/usb/net/if_cdce.c	Tue May  5 15:36:23 2009	(r191824)
+++ head/sys/dev/usb/net/if_cdce.c	Tue May  5 15:39:29 2009	(r191825)
@@ -67,7 +67,6 @@ __FBSDID("$FreeBSD$");
 static device_probe_t cdce_probe;
 static device_attach_t cdce_attach;
 static device_detach_t cdce_detach;
-static device_shutdown_t cdce_shutdown;
 static device_suspend_t cdce_suspend;
 static device_resume_t cdce_resume;
 static usb_handle_request_t cdce_handle_request;
@@ -157,7 +156,6 @@ static device_method_t cdce_methods[] = 
 	DEVMETHOD(device_detach, cdce_detach),
 	DEVMETHOD(device_suspend, cdce_suspend),
 	DEVMETHOD(device_resume, cdce_resume),
-	DEVMETHOD(device_shutdown, cdce_shutdown),
 
 	{0, 0}
 };
@@ -596,16 +594,6 @@ cdce_setpromisc(struct usb2_ether *ue)
 }
 
 static int
-cdce_shutdown(device_t dev)
-{
-	struct cdce_softc *sc = device_get_softc(dev);
-
-	usb2_ether_ifshutdown(&sc->sc_ue);
-
-	return (0);
-}
-
-static int
 cdce_suspend(device_t dev)
 {
 	device_printf(dev, "Suspending\n");

Modified: head/sys/dev/usb/net/if_cue.c
==============================================================================
--- head/sys/dev/usb/net/if_cue.c	Tue May  5 15:36:23 2009	(r191824)
+++ head/sys/dev/usb/net/if_cue.c	Tue May  5 15:39:29 2009	(r191825)
@@ -86,7 +86,6 @@ static const struct usb2_device_id cue_d
 static device_probe_t cue_probe;
 static device_attach_t cue_attach;
 static device_detach_t cue_detach;
-static device_shutdown_t cue_shutdown;
 
 static usb2_callback_t cue_bulk_read_callback;
 static usb2_callback_t cue_bulk_write_callback;
@@ -142,7 +141,6 @@ static device_method_t cue_methods[] = {
 	DEVMETHOD(device_probe, cue_probe),
 	DEVMETHOD(device_attach, cue_attach),
 	DEVMETHOD(device_detach, cue_detach),
-	DEVMETHOD(device_shutdown, cue_shutdown),
 
 	{0, 0}
 };
@@ -629,17 +627,3 @@ cue_stop(struct usb2_ether *ue)
 	cue_csr_write_1(sc, CUE_ETHCTL, 0);
 	cue_reset(sc);
 }
-
-/*
- * Stop all chip I/O so that the kernel's probe routines don't
- * get confused by errant DMAs when rebooting.
- */
-static int
-cue_shutdown(device_t dev)
-{
-	struct cue_softc *sc = device_get_softc(dev);
-
-	usb2_ether_ifshutdown(&sc->sc_ue);
-
-	return (0);
-}

Modified: head/sys/dev/usb/net/if_kue.c
==============================================================================
--- head/sys/dev/usb/net/if_kue.c	Tue May  5 15:36:23 2009	(r191824)
+++ head/sys/dev/usb/net/if_kue.c	Tue May  5 15:39:29 2009	(r191825)
@@ -129,7 +129,6 @@ static const struct usb2_device_id kue_d
 static device_probe_t kue_probe;
 static device_attach_t kue_attach;
 static device_detach_t kue_detach;
-static device_shutdown_t kue_shutdown;
 
 static usb2_callback_t kue_bulk_read_callback;
 static usb2_callback_t kue_bulk_write_callback;
@@ -185,7 +184,6 @@ static device_method_t kue_methods[] = {
 	DEVMETHOD(device_probe, kue_probe),
 	DEVMETHOD(device_attach, kue_attach),
 	DEVMETHOD(device_detach, kue_detach),
-	DEVMETHOD(device_shutdown, kue_shutdown),
 
 	{0, 0}
 };
@@ -688,17 +686,3 @@ kue_stop(struct usb2_ether *ue)
 	usb2_transfer_stop(sc->sc_xfer[KUE_BULK_DT_WR]);
 	usb2_transfer_stop(sc->sc_xfer[KUE_BULK_DT_RD]);
 }
-
-/*
- * Stop all chip I/O so that the kernel's probe routines don't
- * get confused by errant DMAs when rebooting.
- */
-static int
-kue_shutdown(device_t dev)
-{
-	struct kue_softc *sc = device_get_softc(dev);
-
-	usb2_ether_ifshutdown(&sc->sc_ue);
-
-	return (0);
-}

Modified: head/sys/dev/usb/net/if_rue.c
==============================================================================
--- head/sys/dev/usb/net/if_rue.c	Tue May  5 15:36:23 2009	(r191824)
+++ head/sys/dev/usb/net/if_rue.c	Tue May  5 15:39:29 2009	(r191825)
@@ -105,7 +105,6 @@ static const struct usb2_device_id rue_d
 static device_probe_t rue_probe;
 static device_attach_t rue_attach;
 static device_detach_t rue_detach;
-static device_shutdown_t rue_shutdown;
 
 static miibus_readreg_t rue_miibus_readreg;
 static miibus_writereg_t rue_miibus_writereg;
@@ -172,7 +171,6 @@ static device_method_t rue_methods[] = {
 	DEVMETHOD(device_probe, rue_probe),
 	DEVMETHOD(device_attach, rue_attach),
 	DEVMETHOD(device_detach, rue_detach),
-	DEVMETHOD(device_shutdown, rue_shutdown),
 
 	/* Bus interface */
 	DEVMETHOD(bus_print_child, bus_generic_print_child),
@@ -897,17 +895,3 @@ rue_stop(struct usb2_ether *ue)
 
 	rue_reset(sc);
 }
-
-/*
- * Stop all chip I/O so that the kernel's probe routines don't
- * get confused by errant DMAs when rebooting.
- */
-static int
-rue_shutdown(device_t dev)
-{
-	struct rue_softc *sc = device_get_softc(dev);
-
-	usb2_ether_ifshutdown(&sc->sc_ue);
-
-	return (0);
-}

Modified: head/sys/dev/usb/net/if_udav.c
==============================================================================
--- head/sys/dev/usb/net/if_udav.c	Tue May  5 15:36:23 2009	(r191824)
+++ head/sys/dev/usb/net/if_udav.c	Tue May  5 15:39:29 2009	(r191825)
@@ -69,7 +69,6 @@ __FBSDID("$FreeBSD$");
 static device_probe_t udav_probe;
 static device_attach_t udav_attach;
 static device_detach_t udav_detach;
-static device_shutdown_t udav_shutdown;
 
 static usb2_callback_t udav_bulk_write_callback;
 static usb2_callback_t udav_bulk_read_callback;
@@ -132,7 +131,6 @@ static device_method_t udav_methods[] = 
 	DEVMETHOD(device_probe, udav_probe),
 	DEVMETHOD(device_attach, udav_attach),
 	DEVMETHOD(device_detach, udav_detach),
-	DEVMETHOD(device_shutdown, udav_shutdown),
 
 	/* bus interface */
 	DEVMETHOD(bus_print_child, bus_generic_print_child),
@@ -840,17 +838,3 @@ udav_miibus_statchg(device_t dev)
 {
 	/* nothing to do */
 }
-
-/*
- * Stop all chip I/O so that the kernel's probe routines don't
- * get confused by errant DMAs when rebooting.
- */
-static int
-udav_shutdown(device_t dev)
-{
-	struct udav_softc *sc = device_get_softc(dev);
-
-	usb2_ether_ifshutdown(&sc->sc_ue);
-
-	return (0);
-}

Modified: head/sys/dev/usb/net/usb_ethernet.c
==============================================================================
--- head/sys/dev/usb/net/usb_ethernet.c	Tue May  5 15:36:23 2009	(r191824)
+++ head/sys/dev/usb/net/usb_ethernet.c	Tue May  5 15:39:29 2009	(r191825)
@@ -288,19 +288,6 @@ usb2_ether_ifdetach(struct usb2_ether *u
 	usb2_proc_free(&ue->ue_tq);
 }
 
-void
-usb2_ether_ifshutdown(struct usb2_ether *ue)
-{
-	struct ifnet *ifp = ue->ue_ifp;
-
-	UE_LOCK(ue);
-	if (ifp->if_drv_flags & IFF_DRV_RUNNING)
-		ue_queue_command(ue, ue_stop_task,
-		    &ue->ue_sync_task[0].hdr,
-		    &ue->ue_sync_task[1].hdr);
-	UE_UNLOCK(ue);
-}
-
 uint8_t
 usb2_ether_is_gone(struct usb2_ether *ue)
 {

Modified: head/sys/dev/usb/net/usb_ethernet.h
==============================================================================
--- head/sys/dev/usb/net/usb_ethernet.h	Tue May  5 15:36:23 2009	(r191824)
+++ head/sys/dev/usb/net/usb_ethernet.h	Tue May  5 15:39:29 2009	(r191825)
@@ -118,6 +118,5 @@ int		usb2_ether_rxbuf(struct usb2_ether 
 		    struct usb2_page_cache *, 
 		    unsigned int, unsigned int);
 void		usb2_ether_rxflush(struct usb2_ether *);
-void		usb2_ether_ifshutdown(struct usb2_ether *);
 uint8_t		usb2_ether_is_gone(struct usb2_ether *);
 #endif					/* _USB2_ETHERNET_H_ */

Modified: head/sys/dev/usb/storage/ustorage_fs.c
==============================================================================
--- head/sys/dev/usb/storage/ustorage_fs.c	Tue May  5 15:36:23 2009	(r191824)
+++ head/sys/dev/usb/storage/ustorage_fs.c	Tue May  5 15:39:29 2009	(r191825)
@@ -202,7 +202,6 @@ static device_attach_t ustorage_fs_attac
 static device_detach_t ustorage_fs_detach;
 static device_suspend_t ustorage_fs_suspend;
 static device_resume_t ustorage_fs_resume;
-static device_shutdown_t ustorage_fs_shutdown;
 static usb_handle_request_t ustorage_fs_handle_request;
 
 static usb2_callback_t ustorage_fs_t_bbb_command_callback;
@@ -239,7 +238,6 @@ static device_method_t ustorage_fs_metho
 	DEVMETHOD(device_detach, ustorage_fs_detach),
 	DEVMETHOD(device_suspend, ustorage_fs_suspend),
 	DEVMETHOD(device_resume, ustorage_fs_resume),
-	DEVMETHOD(device_shutdown, ustorage_fs_shutdown),
 
 	{0, 0}
 };
@@ -437,12 +435,6 @@ ustorage_fs_resume(device_t dev)
 	return (0);			/* success */
 }
 
-static int
-ustorage_fs_shutdown(device_t dev)
-{
-	return (0);			/* success */
-}
-
 /*
  * Generic functions to handle transfers
  */

Modified: head/sys/dev/usb/usb_compat_linux.c
==============================================================================
--- head/sys/dev/usb/usb_compat_linux.c	Tue May  5 15:36:23 2009	(r191824)
+++ head/sys/dev/usb/usb_compat_linux.c	Tue May  5 15:39:29 2009	(r191825)
@@ -59,7 +59,6 @@ static device_attach_t usb_linux_attach;
 static device_detach_t usb_linux_detach;
 static device_suspend_t usb_linux_suspend;
 static device_resume_t usb_linux_resume;
-static device_shutdown_t usb_linux_shutdown;
 
 static usb2_callback_t usb_linux_isoc_callback;
 static usb2_callback_t usb_linux_non_isoc_callback;
@@ -92,7 +91,6 @@ static device_method_t usb_linux_methods
 	DEVMETHOD(device_detach, usb_linux_detach),
 	DEVMETHOD(device_suspend, usb_linux_suspend),
 	DEVMETHOD(device_resume, usb_linux_resume),
-	DEVMETHOD(device_shutdown, usb_linux_shutdown),
 
 	{0, 0}
 };
@@ -360,23 +358,6 @@ usb_linux_resume(device_t dev)
 }
 
 /*------------------------------------------------------------------------*
- *	usb_linux_shutdown
- *
- * This function is the FreeBSD shutdown callback. Usually it does nothing.
- *------------------------------------------------------------------------*/
-static int
-usb_linux_shutdown(device_t dev)
-{
-	struct usb_linux_softc *sc = device_get_softc(dev);
-	struct usb_driver *udrv = usb_linux_get_usb_driver(sc);
-
-	if (udrv && udrv->shutdown) {
-		(udrv->shutdown) (sc->sc_ui);
-	}
-	return (0);
-}
-
-/*------------------------------------------------------------------------*
  * Linux emulation layer
  *------------------------------------------------------------------------*/
 

Modified: head/sys/dev/usb/usb_hub.c
==============================================================================
--- head/sys/dev/usb/usb_hub.c	Tue May  5 15:36:23 2009	(r191824)
+++ head/sys/dev/usb/usb_hub.c	Tue May  5 15:39:29 2009	(r191825)
@@ -132,7 +132,6 @@ static device_method_t uhub_methods[] = 
 
 	DEVMETHOD(device_suspend, uhub_suspend),
 	DEVMETHOD(device_resume, uhub_resume),
-	DEVMETHOD(device_shutdown, bus_generic_shutdown),
 
 	DEVMETHOD(bus_child_location_str, uhub_child_location_string),
 	DEVMETHOD(bus_child_pnpinfo_str, uhub_child_pnpinfo_string),


More information about the svn-src-all mailing list