Hi Sebastian, On 29/07/11 19:05, Sebastian Andrzej Siewior wrote: > wMaxPacketSize is __le16 and should be accessed as such. Also fix the > wBytesPerInterval assignment while here. > > v2: also fix the wBytesPerInterval assigment, noticed by Matt Evans > > Signed-off-by: Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx> > --- > * Matt Evans | 2011-07-27 15:22:06 [+1000]: > >> Good find, actually I hadn't seen that. About 10 lines down there's a bad use >> of wBytesPerInterval (which is now correctly typed thanks to your April patch) >> but not written as LE: >> >> CHECK /home/matt/external-proj/usb-2.6/drivers/usb/core/config.c >> ... >> usb/drivers/usb/core/config.c:140:36: warning: incorrect type in assignment (different base types) >> usb/drivers/usb/core/config.c:140:36: expected restricted __le16 [usertype] wBytesPerInterval >> usb/drivers/usb/core/config.c:140:36: got int [signed] [assigned] max_tx >> >> Would you mind please fixing this while you're down there? > > Here it comes. For some reason my sparse does not say a word. Silly qu., but you're def. using C=2 CF="-D__CHECK_ENDIAN__" ? Seems odd if sparse isn't seeing this. :-/ > drivers/usb/core/config.c | 11 ++++++----- > 1 files changed, 6 insertions(+), 5 deletions(-) > > diff --git a/drivers/usb/core/config.c b/drivers/usb/core/config.c > index c962608..26678ca 100644 > --- a/drivers/usb/core/config.c > +++ b/drivers/usb/core/config.c > @@ -123,10 +123,11 @@ static void usb_parse_ss_endpoint_companion(struct device *ddev, int cfgno, > } > > if (usb_endpoint_xfer_isoc(&ep->desc)) > - max_tx = ep->desc.wMaxPacketSize * (desc->bMaxBurst + 1) * > - (desc->bmAttributes + 1); > + max_tx = (desc->bMaxBurst + 1) * (desc->bmAttributes + 1) * > + le16_to_cpu(ep->desc.wMaxPacketSize); > else if (usb_endpoint_xfer_int(&ep->desc)) > - max_tx = ep->desc.wMaxPacketSize * (desc->bMaxBurst + 1); > + max_tx = le16_to_cpu(ep->desc.wMaxPacketSize) * > + (desc->bMaxBurst + 1); > else > max_tx = 999999; > if (le16_to_cpu(desc->wBytesPerInterval) > max_tx) { > @@ -134,10 +135,10 @@ static void usb_parse_ss_endpoint_companion(struct device *ddev, int cfgno, > "config %d interface %d altsetting %d ep %d: " > "setting to %d\n", > usb_endpoint_xfer_isoc(&ep->desc) ? "Isoc" : "Int", > - desc->wBytesPerInterval, > + le16_to_cpu(desc->wBytesPerInterval), > cfgno, inum, asnum, ep->desc.bEndpointAddress, > max_tx); > - ep->ss_ep_comp.wBytesPerInterval = max_tx; > + ep->ss_ep_comp.wBytesPerInterval = cpu_to_le16(max_tx); > } > } Thanks! Acked-by: Matt Evans <matt@xxxxxxxxxx> Matt -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html