On 29.08.23 20:49, Alan Stern wrote:
On Tue, Aug 29, 2023 at 08:14:05PM +0200, Oliver Neukum wrote:
Hi Alan,
as you did something on this driver, doesn't
this condition:
(status[0] & 0x80) ||
((status[0] & 0x1F) == 0x10) || ((status[1] & 0x01) == 0)
look odd to you? Especially the parentheses?
(The actual text in my copy of the file is:
Yes, I rearranged it by the parantheses.
if ((status[0] & 0x80) || ((status[0] & 0x1F) == 0x10)
|| ((status[1] & 0x01) == 0)) {
This probably doesn't affect your point...)
Certainly the layout is a little peculiar, and the extra parentheses
don't help any. But they don't really hurt, either, and the meaning is
clear. It doesn't look obviously wrong.
Ok, then this is just me. THe parantheses would make perfect sense
if the actual intent were:
(status[0] & 0x80) ||
((status[0] & 0x1F) == 0x10) && ((status[1] & 0x01) == 0)
Those two lines go back to the original version of the driver, added in
2005 by commit e80b0fade09e ("[PATCH] USB Storage: add alauda support"),
written by Daniel Drake and edited by Matt Dharm. So it's been around
for quite a while and there may not be many devices left that need this
driver.
Yes, I know. Hence my question.
Did you want to change it?
Nope. I just looked through the log and saw your patch for the
failure of the transfer and the subsequent test looked
messed up.
Regards
Oliver