patch "USB: sisusbvga: Change port variable from signed to unsigned" added to usb-linus
Subsystems (3)
This is a note to let you know that I've just added the patch titled
USB: sisusbvga: Change port variable from signed to unsigned
to my usb git tree which can be found at
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git
in the usb-linus branch.
The patch will show up in the next release of the linux-next tree (usually sometime within the next 24 hours during the week.)
The patch will hopefully also be merged in Linus's tree for the next -rc kernel release.
If you have any questions about this process, please let me know.
From 2df7405f79ce1674d73c2786fe1a8727c905d65b Mon Sep 17 00:00:00 2001
From: Changming Liu <[email protected]>
Date: Mon, 20 Apr 2020 23:41:25 -0400
Subject: USB: sisusbvga: Change port variable from signed to unsigned
Change a bunch of arguments of wrapper functions which pass signed integer to an unsigned integer which might cause undefined behaviors when sign integer overflow.
--- drivers/usb/misc/sisusbvga/sisusb.c | 20 ++++++++++---------- drivers/usb/misc/sisusbvga/sisusb_init.h | 14 +++++++------- 2 files changed, 17 insertions(+), 17 deletions(-)
drivers/usb/misc/sisusbvga/sisusb.c +10 -10
@@ -1199,18 +1199,18 @@ static int sisusb_read_mem_bulk(struct sisusb_usb_data *sisusb, u32 addr,/* High level: Gfx (indexed) register access */ #ifdef CONFIG_USB_SISUSBVGA_CON -int sisusb_setreg (struct sisusb_usb_data *sisusb,int port,u8 data) +int sisusb_setreg (struct sisusb_usb_data *sisusb,u32 port,u8 data) {return sisusb_write_memio_byte (sisusb,SISUSB_TYPE_IO , port, data); } -int sisusb_getreg (struct sisusb_usb_data *sisusb,int port,u8 *data) +int sisusb_getreg (struct sisusb_usb_data *sisusb,u32 port,u8 *data) {return sisusb_read_memio_byte (sisusb,SISUSB_TYPE_IO , port, data); }#endif -int sisusb_setidxreg (struct sisusb_usb_data *sisusb,int port, +int sisusb_setidxreg (struct sisusb_usb_data *sisusb,u32 port,u8 index,u8 data) {int ret;
@@ -1220,7 +1220,7 @@ int sisusb_setidxreg(struct sisusb_usb_data *sisusb, int port,return ret; } -int sisusb_getidxreg (struct sisusb_usb_data *sisusb,int port, +int sisusb_getidxreg (struct sisusb_usb_data *sisusb,u32 port,u8 index,u8 *data) {int ret;
@@ -1230,7 +1230,7 @@ int sisusb_getidxreg(struct sisusb_usb_data *sisusb, int port,return ret; } -int sisusb_setidxregandor (struct sisusb_usb_data *sisusb,int port,u8 idx, +int sisusb_setidxregandor (struct sisusb_usb_data *sisusb,u32 port,u8 idx,u8 myand,u8 myor) {int ret;
@@ -1245,7 +1245,7 @@ int sisusb_setidxregandor(struct sisusb_usb_data *sisusb, int port, u8 idx, }static int sisusb_setidxregmask (struct sisusb_usb_data *sisusb, -int port,u8 idx,u8 data,u8 mask) +u32 port,u8 idx,u8 data,u8 mask) {int ret;u8 tmp;
@@ -1258,13 +1258,13 @@ static int sisusb_setidxregmask(struct sisusb_usb_data *sisusb,return ret; } -int sisusb_setidxregor (struct sisusb_usb_data *sisusb,int port, +int sisusb_setidxregor (struct sisusb_usb_data *sisusb,u32 port,u8 index,u8 myor) {return sisusb_setidxregandor (sisusb, port, index,0xff , myor); } -int sisusb_setidxregand (struct sisusb_usb_data *sisusb,int port, +int sisusb_setidxregand (struct sisusb_usb_data *sisusb,u32 port,u8 idx,u8 myand) {return sisusb_setidxregandor (sisusb, port, idx, myand,0x00 );
@@ -2785,8 +2785,8 @@ static loff_t sisusb_lseek(struct file *file, loff_t offset, int orig)static int sisusb_handle_command (struct sisusb_usb_data *sisusb,struct sisusb_command *y,unsigned long arg) { -int retval, port, length; -u32 address; +int retval, length; +u32 port, address;/* All our commands require the device * to be initialized.
drivers/usb/misc/sisusbvga/sisusb_init.h +7 -7
@@ -812,17 +812,17 @@ static const struct SiS_VCLKData SiSUSB_VCLKData[] = {int SiSUSBSetMode (struct SiS_Private *SiS_Pr,unsigned short ModeNo);int SiSUSBSetVESAMode (struct SiS_Private *SiS_Pr,unsigned short VModeNo); -extern int sisusb_setreg (struct sisusb_usb_data *sisusb,int port,u8 data); -extern int sisusb_getreg (struct sisusb_usb_data *sisusb,int port,u8 * data); -extern int sisusb_setidxreg (struct sisusb_usb_data *sisusb,int port, +extern int sisusb_setreg (struct sisusb_usb_data *sisusb,u32 port,u8 data); +extern int sisusb_getreg (struct sisusb_usb_data *sisusb,u32 port,u8 * data); +extern int sisusb_setidxreg (struct sisusb_usb_data *sisusb,u32 port,u8 index,u8 data); -extern int sisusb_getidxreg (struct sisusb_usb_data *sisusb,int port, +extern int sisusb_getidxreg (struct sisusb_usb_data *sisusb,u32 port,u8 index,u8 * data); -extern int sisusb_setidxregandor (struct sisusb_usb_data *sisusb,int port, +extern int sisusb_setidxregandor (struct sisusb_usb_data *sisusb,u32 port,u8 idx,u8 myand,u8 myor); -extern int sisusb_setidxregor (struct sisusb_usb_data *sisusb,int port, +extern int sisusb_setidxregor (struct sisusb_usb_data *sisusb,u32 port,u8 index,u8 myor); -extern int sisusb_setidxregand (struct sisusb_usb_data *sisusb,int port, +extern int sisusb_setidxregand (struct sisusb_usb_data *sisusb,u32 port,u8 idx,u8 myand);void sisusb_delete (struct kref *kref);
Signature · 1 line
2.26.2