Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d27ea5e9 authored by Oliver Neukum's avatar Oliver Neukum Committed by Greg Kroah-Hartman
Browse files

USB: sisusbvga: fix oops in error path of sisusb_probe



commit 9a5729f68d3a82786aea110b1bfe610be318f80a upstream.

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: default avataroliver Neukum <oneukum@suse.com>
Reported-by: default avatar <syzbot+a0cbdbd6d169020c8959@syzkaller.appspotmail.com>
Fixes: 7b5cd5fe ("USB: SisUSB2VGA: Convert printk to dev_* macros")
Cc: stable <stable@vger.kernel.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent a43bb9e8
Loading
Loading
Loading
Loading
+8 −7
Original line number Diff line number Diff line
@@ -3029,6 +3029,13 @@ static int sisusb_probe(struct usb_interface *intf,

	mutex_init(&(sisusb->lock));

	sisusb->sisusb_dev = dev;
	sisusb->vrambase   = SISUSB_PCI_MEMBASE;
	sisusb->mmiobase   = SISUSB_PCI_MMIOBASE;
	sisusb->mmiosize   = SISUSB_PCI_MMIOSIZE;
	sisusb->ioportbase = SISUSB_PCI_IOPORTBASE;
	/* Everything else is zero */

	/* Register device */
	retval = usb_register_dev(intf, &usb_sisusb_class);
	if (retval) {
@@ -3039,13 +3046,7 @@ static int sisusb_probe(struct usb_interface *intf,
		goto error_1;
	}

	sisusb->sisusb_dev = dev;
	sisusb->minor = intf->minor;
	sisusb->vrambase   = SISUSB_PCI_MEMBASE;
	sisusb->mmiobase   = SISUSB_PCI_MMIOBASE;
	sisusb->mmiosize   = SISUSB_PCI_MMIOSIZE;
	sisusb->ioportbase = SISUSB_PCI_IOPORTBASE;
	/* Everything else is zero */

	/* Allocate buffers */
	sisusb->ibufsize = SISUSB_IBUF_SIZE;