Hi Robert, On Wed, Feb 23, 2011 at 09:17:41AM +0000, Robert Pearce wrote: > Hi Dmitry, > > On Wed, 23 Feb 2011 00:54:37 -0800 you wrote: > > > > which happens because port_array[] is u8 so after integer promotion > > the value is between 0 - 255 (no sign extension happens) but we > > compare it with -1. > > > > > > As far as I can see this is a real issue, still compiled only at this > > time. > > > <snip> > > */ > > if (xhci->port_array[i] != major_revision && > > - xhci->port_array[i] != (u8) -1) { > > + xhci->port_array[i] != XHCI_PORT_IGNORE) { > > if (xhci->port_array[i] == 0x03) > > xhci->num_usb3_ports--; > > else > > xhci->num_usb2_ports--; > > - xhci->port_array[i] = (u8) -1; > > + xhci->port_array[i] = XHCI_PORT_IGNORE; > > } > > I think you're misreading it. The lines you've replaced are comparing > against "(u8) -1", which is the value -1 but cast to a u8. The result > is the same 0xFF that you've replaced it with. > > Not that an explicit #define isn't better, but the patch should not be > described as fixing a bug when all it does is tidy up the code. Actually in the other chunk you removed there was a comparison with a naked -1 so the patch in fact does fix a problem. Thanks. -- Dmitry P.S. Please do reply-all on the kernel lists, in ensures quicker responses as not everyone subscribed everywhere. -- 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