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

Commit 6e266610 authored by Jia-Ju Bai's avatar Jia-Ju Bai Committed by David S. Miller
Browse files

hippi: Fix a Fix a possible sleep-in-atomic bug in rr_close



The driver may sleep under a spinlock.
The function call path is:
rr_close (acquire the spinlock)
  free_irq --> may sleep

To fix it, free_irq is moved to the place without holding the spinlock.

This bug is found by my static analysis tool(DSAC) and checked by my code review.

Signed-off-by: default avatarJia-Ju Bai <baijiaju1990@163.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent d6da8381
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -1379,8 +1379,8 @@ static int rr_close(struct net_device *dev)
			    rrpriv->info_dma);
	rrpriv->info = NULL;

	free_irq(pdev->irq, dev);
	spin_unlock_irqrestore(&rrpriv->lock, flags);
	free_irq(pdev->irq, dev);

	return 0;
}