mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2024-12-29 09:13:38 +00:00
USB: make to_usb_driver() use container_of_const()
Turns out that we have some const pointers being passed to to_usb_driver() but were not catching this. Change the macro to properly propagate the const-ness of the pointer so that we will notice when we try to write to memory that we shouldn't be writing to. This requires fixing up the usb_match_dynamic_id() function as well, because it can handle a const * to struct usb_driver. Cc: Johan Hovold <johan@kernel.org> Cc: Alan Stern <stern@rowland.harvard.edu> Cc: Grant Grundler <grundler@chromium.org> Cc: Yajun Deng <yajun.deng@linux.dev> Cc: Oliver Neukum <oneukum@suse.com> Cc: Douglas Anderson <dianders@chromium.org> Cc: linux-usb@vger.kernel.org Link: https://lore.kernel.org/r/2024111339-shaky-goldsmith-b233@gregkh Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
81f5c72d04
commit
2f3aab7aec
@ -228,7 +228,7 @@ static void usb_free_dynids(struct usb_driver *usb_drv)
|
||||
}
|
||||
|
||||
static const struct usb_device_id *usb_match_dynamic_id(struct usb_interface *intf,
|
||||
struct usb_driver *drv)
|
||||
const struct usb_driver *drv)
|
||||
{
|
||||
struct usb_dynid *dynid;
|
||||
|
||||
@ -890,7 +890,7 @@ static int usb_device_match(struct device *dev, const struct device_driver *drv)
|
||||
|
||||
} else if (is_usb_interface(dev)) {
|
||||
struct usb_interface *intf;
|
||||
struct usb_driver *usb_drv;
|
||||
const struct usb_driver *usb_drv;
|
||||
const struct usb_device_id *id;
|
||||
|
||||
/* device drivers never match interfaces */
|
||||
|
@ -1243,7 +1243,7 @@ struct usb_driver {
|
||||
unsigned int disable_hub_initiated_lpm:1;
|
||||
unsigned int soft_unbind:1;
|
||||
};
|
||||
#define to_usb_driver(d) container_of(d, struct usb_driver, driver)
|
||||
#define to_usb_driver(d) container_of_const(d, struct usb_driver, driver)
|
||||
|
||||
/**
|
||||
* struct usb_device_driver - identifies USB device driver to usbcore
|
||||
|
Loading…
Reference in New Issue
Block a user