mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-01-23 06:19:23 +07:00
ath9k: Fix panic on driver load
The device has to be marked as invalid before registering the ISR. HW initialization takes place after the ISR has been registered, and the invalid flag is eventually cleared in the ->stop() callback. Reported-by: Pavel Roskin <proski@gnu.org> Signed-off-by: Sujith <Sujith.Manoharan@atheros.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
2f1f00fc9b
commit
5e4ea1f0ed
@ -121,6 +121,9 @@ static int ath_ahb_probe(struct platform_device *pdev)
|
||||
sc->mem = mem;
|
||||
sc->irq = irq;
|
||||
|
||||
/* Will be cleared in ath9k_start() */
|
||||
sc->sc_flags |= SC_OP_INVALID;
|
||||
|
||||
ret = request_irq(irq, ath_isr, IRQF_SHARED, "ath9k", sc);
|
||||
if (ret) {
|
||||
dev_err(&pdev->dev, "request_irq failed\n");
|
||||
|
@ -534,8 +534,6 @@ static int ath9k_init_softc(u16 devid, struct ath_softc *sc, u16 subsysid,
|
||||
int ret = 0, i;
|
||||
int csz = 0;
|
||||
|
||||
sc->sc_flags |= SC_OP_INVALID;
|
||||
|
||||
ah = kzalloc(sizeof(struct ath_hw), GFP_KERNEL);
|
||||
if (!ah)
|
||||
return -ENOMEM;
|
||||
|
@ -198,6 +198,9 @@ static int ath_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id)
|
||||
sc->dev = &pdev->dev;
|
||||
sc->mem = mem;
|
||||
|
||||
/* Will be cleared in ath9k_start() */
|
||||
sc->sc_flags |= SC_OP_INVALID;
|
||||
|
||||
ret = request_irq(pdev->irq, ath_isr, IRQF_SHARED, "ath9k", sc);
|
||||
if (ret) {
|
||||
dev_err(&pdev->dev, "request_irq failed\n");
|
||||
|
Loading…
Reference in New Issue
Block a user