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:
Pete Zaitcev 2008-11-13 21:31:21 -07:00 committed by Greg Kroah-Hartman
parent 5e5b0e5d6a
commit f150fa1afb
5 changed files with 12 additions and 14 deletions

View file

@ -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;
@ -2064,4 +2064,4 @@ void usb_mon_deregister (void)
}
EXPORT_SYMBOL_GPL (usb_mon_deregister);
#endif /* CONFIG_USB_MON */
#endif /* CONFIG_USB_MON || CONFIG_USB_MON_MODULE */

View file

@ -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 {
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,
int status) {}
#endif /* CONFIG_USB_MON */
#endif /* CONFIG_USB_MON || CONFIG_USB_MON_MODULE */
/*-------------------------------------------------------------------------*/

View file

@ -3,14 +3,13 @@
#
config USB_MON
bool "USB Monitor"
depends on USB!=n
default y
tristate "USB Monitor"
depends on USB
default y if USB=y
default m if USB=m
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.
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 unsure, say Y (if allowed), otherwise M.

View file

@ -4,5 +4,4 @@
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) += usbmon.o
obj-$(CONFIG_USB_MON) += usbmon.o

View file

@ -336,7 +336,7 @@ struct usb_bus {
#endif
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 */
int monitored; /* non-zero when monitored */
#endif