Commit f150fa1a authored by Pete Zaitcev's avatar Pete Zaitcev Committed by Greg Kroah-Hartman

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: default avatarPaul Bolle <pebolle@tiscali.nl>
Signed-off-by: default avatarPete Zaitcev <zaitcev@redhat.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 5e5b0e5d
...@@ -2028,7 +2028,7 @@ EXPORT_SYMBOL_GPL(usb_hcd_platform_shutdown); ...@@ -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) ...@@ -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) { } ...@@ -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, ...@@ -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 @@ ...@@ -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 @@ ...@@ -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 { ...@@ -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
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment