mirror of https://gitee.com/openkylin/linux.git
net: mscc: ocelot: stop returning IRQ_NONE in ocelot_xtr_irq_handler
Since the xtr (extraction) IRQ of the ocelot switch is not shared, then if it fired, it means that some data must be present in the queues of the CPU port module. So simplify the code. Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com> Reviewed-by: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
140261925a
commit
f833ca293d
|
@ -604,10 +604,7 @@ static irqreturn_t ocelot_xtr_irq_handler(int irq, void *arg)
|
|||
int i = 0, grp = 0;
|
||||
int err = 0;
|
||||
|
||||
if (!(ocelot_read(ocelot, QS_XTR_DATA_PRESENT) & BIT(grp)))
|
||||
return IRQ_NONE;
|
||||
|
||||
do {
|
||||
while (ocelot_read(ocelot, QS_XTR_DATA_PRESENT) & BIT(grp)) {
|
||||
struct skb_shared_hwtstamps *shhwtstamps;
|
||||
struct ocelot_port_private *priv;
|
||||
struct ocelot_port *ocelot_port;
|
||||
|
@ -702,7 +699,7 @@ static irqreturn_t ocelot_xtr_irq_handler(int irq, void *arg)
|
|||
netif_rx(skb);
|
||||
dev->stats.rx_bytes += len;
|
||||
dev->stats.rx_packets++;
|
||||
} while (ocelot_read(ocelot, QS_XTR_DATA_PRESENT) & BIT(grp));
|
||||
}
|
||||
|
||||
if (err)
|
||||
while (ocelot_read(ocelot, QS_XTR_DATA_PRESENT) & BIT(grp))
|
||||
|
|
Loading…
Reference in New Issue