mana_gd_write_client_oob() in gdma_main.c, I see that the original code used: -> ptr = wqe_ptr + sizeof(header);
However, since header is a pointer to struct gdma_wqe, would not this expression evaluate to the size of the pointer itself (typically 8 bytes on 64-bit systems) rather than the actual size of the structure? Should it be the correct expression -> ptr = wqe_ptr + sizeof(*header); to accurately skip over the size of the structure that header points to? Even though sizeof(header) and sizeof(*header) may both return 8 in this case by coincidence. but that seems unintentional or potentially misleading. Apologies if I misunderstood that context. Thanks, Alok --- drivers/net/ethernet/microsoft/mana/gdma_main.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/microsoft/mana/gdma_main.c b/drivers/net/ethernet/microsoft/mana/gdma_main.c index 3504507477c60..df4ee8c23bcbb 100644 --- a/drivers/net/ethernet/microsoft/mana/gdma_main.c +++ b/drivers/net/ethernet/microsoft/mana/gdma_main.c @@ -1086,7 +1086,7 @@ static u32 mana_gd_write_client_oob(const struct gdma_wqe_request *wqe_req, * to one Basic Unit (i.e. 32 bytes), so the pointer can't go beyond * the queue memory buffer boundary. */ - ptr = wqe_ptr + sizeof(header); + ptr = wqe_ptr + sizeof(*header); if (wqe_req->inline_oob_data && wqe_req->inline_oob_size > 0) { memcpy(ptr, wqe_req->inline_oob_data, wqe_req->inline_oob_size); @@ -1096,7 +1096,7 @@ static u32 mana_gd_write_client_oob(const struct gdma_wqe_request *wqe_req, client_oob_size - wqe_req->inline_oob_size); } - return sizeof(header) + client_oob_size; + return sizeof(*header) + client_oob_size; } static void mana_gd_write_sgl(struct gdma_queue *wq, u8 *wqe_ptr, -- 2.46.0