On 09/08/2026 02:57, Jianhui Xu wrote:
Hi Birger,
I noticed what looks like a typo in the newly added `ax88179_read_cmd()`:
if (size == 2) {
u16 buf = 0;
ret = __ax88179_read_cmd(dev, cmd, value, index, size, &buf);
le16_to_cpus(&buf);
*((u16 *)data) = buf;
} else if (size == 2) {
u32 buf = 0;
ret = __ax88179_read_cmd(dev, cmd, value, index, size, &buf);
le32_to_cpus(&buf);
*((u32 *)data) = buf;
}
The second condition should presumably be:
The original implementation before this code was moved to `ax88179_lib.c`
also used `else if (4 == size)`.
As written, the `u32` branch is unreachable, so 4-byte reads fall through
to `__ax88179_read_cmd()` without the `le32_to_cpus()` conversion.
Thanks Jianhui for reporting this. Indeed, this was a typo introduced when
updating the coding style for the original driver function that was copied to the
new library file. checkpatch complained about the old style.
Will fix to read (size == 4) in v7.
Birger