Ticket #14646: iwn.patch

File iwn.patch, 1.2 KB (added by hugeping, 21 months ago)

patch to fix race iwn_stop vs iwn_tx_done

  • src/add-ons/kernel/drivers/network/wlan/iprowifi3945/dev/wpi/if_wpi.c

    diff --git a/src/add-ons/kernel/drivers/network/wlan/iprowifi3945/dev/wpi/if_wpi.c b/src/add-ons/kernel/drivers/network/wlan/iprowifi3945/dev/wpi/if_wpi.c
    index 525b2e88b2..562c5c7c5b 100644
    a b wpi_intr(void *arg)  
    25362536    if (r1 == 0 && r2 == 0)
    25372537        goto done;  /* Interrupt not for us. */
    25382538#else
     2539    if (__predict_false(sc->sc_running == 0))
     2540        goto end;
    25392541    r1 = atomic_get((int32 *)&sc->sc_intr_status_1);
    25402542    r2 = atomic_get((int32 *)&sc->sc_intr_status_2);
    25412543#endif
  • src/add-ons/kernel/drivers/network/wlan/iprowifi4965/dev/iwn/if_iwn.c

    diff --git a/src/add-ons/kernel/drivers/network/wlan/iprowifi4965/dev/iwn/if_iwn.c b/src/add-ons/kernel/drivers/network/wlan/iprowifi4965/dev/iwn/if_iwn.c
    index 0ce78aa065..c6f8ce7d7d 100644
    a b iwn_intr(void *arg)  
    41164116        r2 = IWN_READ(sc, IWN_FH_INT);
    41174117    }
    41184118#else
     4119    if (__predict_false((sc->sc_flags & IWN_FLAG_RUNNING) == 0))
     4120        goto done;
    41194121    r1 = atomic_get((int32 *)&sc->sc_intr_status_1);
    41204122    r2 = atomic_get((int32 *)&sc->sc_intr_status_2);
    41214123#endif