USB: Allow usbmon as a module even if usbcore is builtin
usbmon can only be built as a module if usbcore is a module too. Trivial changes to the relevant Kconfig and Makefile (and a few trivial changes elsewhere) allow usbmon to be built as a module even if usbcore is builtin. This is verified to work in all 9 permutations (3 correctly prohibited by Kconfig, 6 build a suitable result). Signed-off-by: Paul Bolle <pebolle@tiscali.nl> Signed-off-by: Pete Zaitcev <zaitcev@redhat.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
5e5b0e5d6a
commit
f150fa1afb
5 changed files with 12 additions and 14 deletions
|
@ -2028,7 +2028,7 @@ EXPORT_SYMBOL_GPL(usb_hcd_platform_shutdown);
|
||||||
|
|
||||||
/*-------------------------------------------------------------------------*/
|
/*-------------------------------------------------------------------------*/
|
||||||
|
|
||||||
#if defined(CONFIG_USB_MON)
|
#if defined(CONFIG_USB_MON) || defined(CONFIG_USB_MON_MODULE)
|
||||||
|
|
||||||
struct usb_mon_operations *mon_ops;
|
struct usb_mon_operations *mon_ops;
|
||||||
|
|
||||||
|
@ -2064,4 +2064,4 @@ void usb_mon_deregister (void)
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL (usb_mon_deregister);
|
EXPORT_SYMBOL_GPL (usb_mon_deregister);
|
||||||
|
|
||||||
#endif /* CONFIG_USB_MON */
|
#endif /* CONFIG_USB_MON || CONFIG_USB_MON_MODULE */
|
||||||
|
|
|
@ -421,7 +421,7 @@ static inline void usbfs_cleanup(void) { }
|
||||||
|
|
||||||
/*-------------------------------------------------------------------------*/
|
/*-------------------------------------------------------------------------*/
|
||||||
|
|
||||||
#if defined(CONFIG_USB_MON)
|
#if defined(CONFIG_USB_MON) || defined(CONFIG_USB_MON_MODULE)
|
||||||
|
|
||||||
struct usb_mon_operations {
|
struct usb_mon_operations {
|
||||||
void (*urb_submit)(struct usb_bus *bus, struct urb *urb);
|
void (*urb_submit)(struct usb_bus *bus, struct urb *urb);
|
||||||
|
@ -463,7 +463,7 @@ static inline void usbmon_urb_submit_error(struct usb_bus *bus, struct urb *urb,
|
||||||
static inline void usbmon_urb_complete(struct usb_bus *bus, struct urb *urb,
|
static inline void usbmon_urb_complete(struct usb_bus *bus, struct urb *urb,
|
||||||
int status) {}
|
int status) {}
|
||||||
|
|
||||||
#endif /* CONFIG_USB_MON */
|
#endif /* CONFIG_USB_MON || CONFIG_USB_MON_MODULE */
|
||||||
|
|
||||||
/*-------------------------------------------------------------------------*/
|
/*-------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
|
|
@ -3,14 +3,13 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
config USB_MON
|
config USB_MON
|
||||||
bool "USB Monitor"
|
tristate "USB Monitor"
|
||||||
depends on USB!=n
|
depends on USB
|
||||||
default y
|
default y if USB=y
|
||||||
|
default m if USB=m
|
||||||
help
|
help
|
||||||
If you say Y here, a component which captures the USB traffic
|
If you select this option, a component which captures the USB traffic
|
||||||
between peripheral-specific drivers and HC drivers will be built.
|
between peripheral-specific drivers and HC drivers will be built.
|
||||||
For more information, see <file:Documentation/usb/usbmon.txt>.
|
For more information, see <file:Documentation/usb/usbmon.txt>.
|
||||||
|
|
||||||
This is somewhat experimental at this time, but it should be safe.
|
If unsure, say Y (if allowed), otherwise M.
|
||||||
|
|
||||||
If unsure, say Y.
|
|
||||||
|
|
|
@ -4,5 +4,4 @@
|
||||||
|
|
||||||
usbmon-objs := mon_main.o mon_stat.o mon_text.o mon_bin.o mon_dma.o
|
usbmon-objs := mon_main.o mon_stat.o mon_text.o mon_bin.o mon_dma.o
|
||||||
|
|
||||||
# This does not use CONFIG_USB_MON because we want this to use a tristate.
|
obj-$(CONFIG_USB_MON) += usbmon.o
|
||||||
obj-$(CONFIG_USB) += usbmon.o
|
|
||||||
|
|
|
@ -336,7 +336,7 @@ struct usb_bus {
|
||||||
#endif
|
#endif
|
||||||
struct device *dev; /* device for this bus */
|
struct device *dev; /* device for this bus */
|
||||||
|
|
||||||
#if defined(CONFIG_USB_MON)
|
#if defined(CONFIG_USB_MON) || defined(CONFIG_USB_MON_MODULE)
|
||||||
struct mon_bus *mon_bus; /* non-null when associated */
|
struct mon_bus *mon_bus; /* non-null when associated */
|
||||||
int monitored; /* non-zero when monitored */
|
int monitored; /* non-zero when monitored */
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in a new issue