On Thu, 21 Aug 2014 00:59:11 +0200 Hans Verkuil <hverkuil@xxxxxxxxx> wrote: > From: Hans Verkuil <hans.verkuil@xxxxxxxxx> > > drivers/media/usb/gspca/kinect.c:151:19: warning: incorrect type in assignment (different base types) > drivers/media/usb/gspca/kinect.c:152:19: warning: incorrect type in assignment (different base types) > drivers/media/usb/gspca/kinect.c:153:19: warning: incorrect type in assignment (different base types) > drivers/media/usb/gspca/kinect.c:191:13: warning: restricted __le16 degrades to integer > drivers/media/usb/gspca/kinect.c:217:16: warning: incorrect type in assignment (different base types) > drivers/media/usb/gspca/kinect.c:218:16: warning: incorrect type in assignment (different base types) > > Note that this fixes a real bug where cpu_to_le16 was used instead of the correct > le16_to_cpu. Right. A little background on why I overlooked the issue: libfreenect —which is where the code originally comes from— uses the _same_ function for cpu_to_* and *_to_cpu conversions, and this is practically OK on common architectures even though it is not semantically correct. Thanks for the fix. > > Signed-off-by: Hans Verkuil <hans.verkuil@xxxxxxxxx> Acked-by: Antonio Ospite <ao2@xxxxxx> > --- > drivers/media/usb/gspca/kinect.c | 12 ++++++------ > 1 file changed, 6 insertions(+), 6 deletions(-) > > diff --git a/drivers/media/usb/gspca/kinect.c b/drivers/media/usb/gspca/kinect.c > index 45bc1f5..3cb30a3 100644 > --- a/drivers/media/usb/gspca/kinect.c > +++ b/drivers/media/usb/gspca/kinect.c > @@ -51,9 +51,9 @@ struct pkt_hdr { > > struct cam_hdr { > uint8_t magic[2]; > - uint16_t len; > - uint16_t cmd; > - uint16_t tag; > + __le16 len; > + __le16 cmd; > + __le16 tag; > }; > > /* specific webcam descriptor */ > @@ -188,9 +188,9 @@ static int send_cmd(struct gspca_dev *gspca_dev, uint16_t cmd, void *cmdbuf, > rhdr->tag, chdr->tag); > return -1; > } > - if (cpu_to_le16(rhdr->len) != (actual_len/2)) { > + if (le16_to_cpu(rhdr->len) != (actual_len/2)) { > pr_err("send_cmd: Bad len %04x != %04x\n", > - cpu_to_le16(rhdr->len), (int)(actual_len/2)); > + le16_to_cpu(rhdr->len), (int)(actual_len/2)); > return -1; > } > > @@ -211,7 +211,7 @@ static int write_register(struct gspca_dev *gspca_dev, uint16_t reg, > uint16_t data) > { > uint16_t reply[2]; > - uint16_t cmd[2]; > + __le16 cmd[2]; > int res; > > cmd[0] = cpu_to_le16(reg); > -- > 2.1.0.rc1 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-media" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html > -- Antonio Ospite http://ao2.it A: Because it messes up the order in which people normally read text. See http://en.wikipedia.org/wiki/Posting_style Q: Why is top-posting such a bad thing? -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html