Re: [PATCH 4/5] drivers: net: usb: rtl8150: bug fixing and cleanup

From: Petko Manolov
Date: Sun May 19 2013 - 04:53:42 EST


On Sat, 18 May 2013, Francois Romieu wrote:

> Petko Manolov <petkan@xxxxxxxxxxxxx> :
> [...]
> > static int set_registers(rtl8150_t * dev, u16 indx, u16 size, void *data)
> > {
> > - return usb_control_msg(dev->udev, usb_sndctrlpipe(dev->udev, 0),
> > - RTL8150_REQ_SET_REGS, RTL8150_REQT_WRITE,
> > - indx, 0, data, size, 500);
> > + int res;
> > +
> > + res = usb_control_msg(dev->udev, usb_sndctrlpipe(dev->udev, 0),
> > + RTL8150_REQ_SET_REGS, RTL8150_REQT_WRITE,
> > + indx, 0, data, size, 500);
> > + if (res < 0)
> > + dev_dbg(&dev->udev->dev, "%s returned %d\n", __func__, res);
> > + return res;
>
> You may move it into a separate patch. It is completely unrelated to the
> ctrl_urb changes.

The change is so trivial i thought i can smuggle it unnoticed. :-)

> [...]
> > +static int async_set_registers(rtl8150_t *dev, u16 indx, u16 size, u16 reg)
> > {
>
> [...]
> > + usb_fill_control_urb(async_urb, dev->udev,
> > + usb_sndctrlpipe(dev->udev, 0), (void *) &req->dr,
>
> Useless void * cast.

Wrong. The compiler actually moans quite a lot:

/usr/src/git/rtl8150/rtl8150.c: In function ʽasync_set_registersʼ:
/usr/src/git/rtl8150/rtl8150.c:92:9: warning: passing argument 4 of ʽusb_fill_control_urbʼ from incompatible pointer type [enabled by default]
In file included from /usr/src/git/rtl8150/rtl8150.c:17:0:
include/linux/usb.h:1440:20: note: expected ʽunsigned char *ʼ but argument is of type ʽstruct usb_ctrlrequest *ʼ