mirror of
https://github.com/torvalds/linux.git
synced 2024-12-28 22:02:28 +00:00
mrf24j40: Move INIT_COMPLETION() to before packet transmission
This avoids a race condition where complete(tx_complete) could be called before tx_complete is initialized. Signed-off-by: Alan Ott <alan@signal11.us> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
8cc27d174b
commit
9757f1d2e0
@ -344,6 +344,8 @@ static int mrf24j40_tx(struct ieee802154_dev *dev, struct sk_buff *skb)
|
||||
if (ret)
|
||||
goto err;
|
||||
|
||||
INIT_COMPLETION(devrec->tx_complete);
|
||||
|
||||
/* Set TXNTRIG bit of TXNCON to send packet */
|
||||
ret = read_short_reg(devrec, REG_TXNCON, &val);
|
||||
if (ret)
|
||||
@ -354,8 +356,6 @@ static int mrf24j40_tx(struct ieee802154_dev *dev, struct sk_buff *skb)
|
||||
val |= 0x4;
|
||||
write_short_reg(devrec, REG_TXNCON, val);
|
||||
|
||||
INIT_COMPLETION(devrec->tx_complete);
|
||||
|
||||
/* Wait for the device to send the TX complete interrupt. */
|
||||
ret = wait_for_completion_interruptible_timeout(
|
||||
&devrec->tx_complete,
|
||||
|
Loading…
Reference in New Issue
Block a user