net: lan966x: Fix sleep in atomic context when injecting frames
On lan966x, when injecting a frame it was polling the register
QS_INJ_STATUS to see if it can continue with the injection of the frame.
The problem was that it was using readx_poll_timeout which could sleep
in atomic context.
This patch fixes this issue by using readx_poll_timeout_atomic.
Fixes: d28d6d2e37
("net: lan966x: add port module support")
Signed-off-by: Horatiu Vultur <horatiu.vultur@microchip.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
8199d0c6ad
commit
b6ab149654
|
@ -182,7 +182,7 @@ static int lan966x_port_inj_ready(struct lan966x *lan966x, u8 grp)
|
||||||
{
|
{
|
||||||
u32 val;
|
u32 val;
|
||||||
|
|
||||||
return readx_poll_timeout(lan966x_port_inj_status, lan966x, val,
|
return readx_poll_timeout_atomic(lan966x_port_inj_status, lan966x, val,
|
||||||
QS_INJ_STATUS_FIFO_RDY_GET(val) & BIT(grp),
|
QS_INJ_STATUS_FIFO_RDY_GET(val) & BIT(grp),
|
||||||
READL_SLEEP_US, READL_TIMEOUT_US);
|
READL_SLEEP_US, READL_TIMEOUT_US);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue