Re: [PATCH v2] scsi: arm: Convert acornscsi-io.S to C
From: Breno Rodrigues Alves
Date: Thu Oct 22 2026 - 17:04:27 EST
Hi Bart,
> Shouldn't this "while" be changed into "if"?
Yes. After the preceding while (length >= 4) loop, length is in
{0, 1, 2, 3}, so the trailing loop runs at most once. The same
applies to the corresponding loop in __acornscsi_in(); both are now
'if' in v4.
> The above code can be simplified as shown below, isn't it?
>
> void __iomem *cp = (void __iomem *)card;
>
> writeb(buf[0], cp);
> writeb(buf[1], cp + 1);
Agreed. v4 drops get_unaligned_le16() in __acornscsi_out() and
writes the two bytes directly. Note that __acornscsi_in() still
needs put_unaligned_le16() because the bytes come from the low
half of the 32-bit card word and buf may be unaligned.
> Isn't the above (void __iomem *) cast superfluous?
Yes. u32 __iomem * converts implicitly to void __iomem *. Removed
in v4. The cast on the earlier 'cp' variable is kept because cp is
used for byte-level pointer arithmetic (cp + 1 must advance one
byte, not one 32-bit word).
v4 follows.