diff options
author | Oliver Neukum <oneukum@suse.com> | 2019-05-09 08:41:50 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2019-05-21 04:08:56 -0400 |
commit | 9a5729f68d3a82786aea110b1bfe610be318f80a (patch) | |
tree | 464c00422a1f3ed1e261be91e8a33df3145b2cf6 /drivers/usb | |
parent | ea261113385ac0a71c2838185f39e8452d54b152 (diff) |
USB: sisusbvga: fix oops in error path of sisusb_probe
The pointer used to log a failure of usb_register_dev() must
be set before the error is logged.
v2: fix that minor is not available before registration
Signed-off-by: oliver Neukum <oneukum@suse.com>
Reported-by: syzbot+a0cbdbd6d169020c8959@syzkaller.appspotmail.com
Fixes: 7b5cd5fefbe02 ("USB: SisUSB2VGA: Convert printk to dev_* macros")
Cc: stable <stable@vger.kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/usb')
-rw-r--r-- | drivers/usb/misc/sisusbvga/sisusb.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/drivers/usb/misc/sisusbvga/sisusb.c b/drivers/usb/misc/sisusbvga/sisusb.c index 9560fde621ee..ea06f1fed6fa 100644 --- a/drivers/usb/misc/sisusbvga/sisusb.c +++ b/drivers/usb/misc/sisusbvga/sisusb.c | |||
@@ -3029,6 +3029,13 @@ static int sisusb_probe(struct usb_interface *intf, | |||
3029 | 3029 | ||
3030 | mutex_init(&(sisusb->lock)); | 3030 | mutex_init(&(sisusb->lock)); |
3031 | 3031 | ||
3032 | sisusb->sisusb_dev = dev; | ||
3033 | sisusb->vrambase = SISUSB_PCI_MEMBASE; | ||
3034 | sisusb->mmiobase = SISUSB_PCI_MMIOBASE; | ||
3035 | sisusb->mmiosize = SISUSB_PCI_MMIOSIZE; | ||
3036 | sisusb->ioportbase = SISUSB_PCI_IOPORTBASE; | ||
3037 | /* Everything else is zero */ | ||
3038 | |||
3032 | /* Register device */ | 3039 | /* Register device */ |
3033 | retval = usb_register_dev(intf, &usb_sisusb_class); | 3040 | retval = usb_register_dev(intf, &usb_sisusb_class); |
3034 | if (retval) { | 3041 | if (retval) { |
@@ -3039,13 +3046,7 @@ static int sisusb_probe(struct usb_interface *intf, | |||
3039 | goto error_1; | 3046 | goto error_1; |
3040 | } | 3047 | } |
3041 | 3048 | ||
3042 | sisusb->sisusb_dev = dev; | 3049 | sisusb->minor = intf->minor; |
3043 | sisusb->minor = intf->minor; | ||
3044 | sisusb->vrambase = SISUSB_PCI_MEMBASE; | ||
3045 | sisusb->mmiobase = SISUSB_PCI_MMIOBASE; | ||
3046 | sisusb->mmiosize = SISUSB_PCI_MMIOSIZE; | ||
3047 | sisusb->ioportbase = SISUSB_PCI_IOPORTBASE; | ||
3048 | /* Everything else is zero */ | ||
3049 | 3050 | ||
3050 | /* Allocate buffers */ | 3051 | /* Allocate buffers */ |
3051 | sisusb->ibufsize = SISUSB_IBUF_SIZE; | 3052 | sisusb->ibufsize = SISUSB_IBUF_SIZE; |