From f217004a40c49e787372e798785aecb983828d35 Mon Sep 17 00:00:00 2001 From: Sergey Shtylyov Date: Mon, 7 Sep 2026 22:46:32 +0300 Subject: [PATCH] r8152: simplify loops in generic_ocp_{read,write}() In generic_ocp_{read,write}(), the *while* loops look very strange: the last iteration is implemented differently to the previous ones (doing some useless assignments before *break*) for no good reason. Merge the different iterations into one, using the local variables in the loop bodies... Found by a static analysis tool. Suggested-by: Michal Pecio Signed-off-by: Sergey Shtylyov Link: https://patch.msgid.link/863dac62-89ef-42d7-9108-d4a0600913a4@auroraos.dev Signed-off-by: Jakub Kicinski --- drivers/net/usb/r8152.c | 51 ++++++++++++----------------------------- 1 file changed, 15 insertions(+), 36 deletions(-) diff --git a/drivers/net/usb/r8152.c b/drivers/net/usb/r8152.c index f61686433031..af3d7dcb2f14 100644 --- a/drivers/net/usb/r8152.c +++ b/drivers/net/usb/r8152.c @@ -1432,24 +1432,15 @@ static int generic_ocp_read(struct r8152 *tp, u16 index, u16 size, return -EPERM; while (size) { - if (size > limit) { - ret = get_registers(tp, index, type, limit, data); - if (ret < 0) - break; + u16 n = min(size, limit); - index += limit; - data += limit; - size -= limit; - } else { - ret = get_registers(tp, index, type, size, data); - if (ret < 0) - break; - - index += size; - data += size; - size = 0; + ret = get_registers(tp, index, type, n, data); + if (ret < 0) break; - } + + index += n; + data += n; + size -= n; } if (ret == -ENODEV) @@ -1499,28 +1490,16 @@ static int generic_ocp_write(struct r8152 *tp, u16 index, u16 byteen, size -= 4; while (size) { - if (size > limit) { - ret = set_registers(tp, index, - type | BYTE_EN_DWORD, - limit, data); - if (ret < 0) - goto error1; + u16 n = min(size, limit); - index += limit; - data += limit; - size -= limit; - } else { - ret = set_registers(tp, index, - type | BYTE_EN_DWORD, - size, data); - if (ret < 0) - goto error1; + ret = set_registers(tp, index, type | BYTE_EN_DWORD, + n, data); + if (ret < 0) + goto error1; - index += size; - data += size; - size = 0; - break; - } + index += n; + data += n; + size -= n; } /* Set the last DWORD */