iwm: revert r293178
This optimization is not proper (and causes kernel panic), since driver checks fw_status to optimize away parsing stage if it was already done. Reported by: dchagin
This commit is contained in:
parent
43d53dba8f
commit
430384523d
@ -2041,7 +2041,6 @@ iwm_mvm_load_ucode_wait_alive(struct iwm_softc *sc,
|
||||
|
||||
sc->sc_uc_current = ucode_type;
|
||||
error = iwm_start_fw(sc, ucode_type);
|
||||
iwm_fw_info_free(&sc->sc_fw);
|
||||
if (error) {
|
||||
sc->sc_uc_current = old_type;
|
||||
return error;
|
||||
@ -4937,6 +4936,7 @@ iwm_suspend(device_t dev)
|
||||
static int
|
||||
iwm_detach_local(struct iwm_softc *sc, int do_net80211)
|
||||
{
|
||||
struct iwm_fw_info *fw = &sc->sc_fw;
|
||||
device_t dev = sc->sc_dev;
|
||||
int i;
|
||||
|
||||
@ -4953,6 +4953,10 @@ iwm_detach_local(struct iwm_softc *sc, int do_net80211)
|
||||
for (i = 0; i < nitems(sc->txq); i++)
|
||||
iwm_free_tx_ring(sc, &sc->txq[i]);
|
||||
|
||||
/* Free firmware */
|
||||
if (fw->fw_fp != NULL)
|
||||
iwm_fw_info_free(fw);
|
||||
|
||||
/* Free scheduler */
|
||||
iwm_free_sched(sc);
|
||||
if (sc->ict_dma.vaddr != NULL)
|
||||
|
Loading…
x
Reference in New Issue
Block a user