Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 46ad0222 authored by Karsten Graul's avatar Karsten Graul Committed by David S. Miller
Browse files

net/smc: fix use of variable in cleared area



Do not use pend->idx as index for the arrays because its value is
located in the cleared area. Use the existing local variable instead.
Without this fix the wrong area might be cleared.

Signed-off-by: default avatarKarsten Graul <kgraul@linux.ibm.com>
Signed-off-by: default avatarUrsula Braun <ubraun@linux.ibm.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent e5f3aa04
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -218,10 +218,10 @@ int smc_wr_tx_put_slot(struct smc_link *link,
		u32 idx = pend->idx;

		/* clear the full struct smc_wr_tx_pend including .priv */
		memset(&link->wr_tx_pends[pend->idx], 0,
		       sizeof(link->wr_tx_pends[pend->idx]));
		memset(&link->wr_tx_bufs[pend->idx], 0,
		       sizeof(link->wr_tx_bufs[pend->idx]));
		memset(&link->wr_tx_pends[idx], 0,
		       sizeof(link->wr_tx_pends[idx]));
		memset(&link->wr_tx_bufs[idx], 0,
		       sizeof(link->wr_tx_bufs[idx]));
		test_and_clear_bit(idx, link->wr_tx_mask);
		return 1;
	}