[ This had the wrong mailing list in Cc, adding back linux-wireless ] Pavel Skripkin <paskripkin@xxxxxxxxx> writes: > Hi Hillf, > > On 5/22/22 07:15, Hillf Danton wrote: >> >> In the call chain below >> >> ath9k_hif_usb_firmware_cb() >> ath9k_htc_hw_alloc() >> ath9k_hif_usb_dev_init() >> ret = ath9k_htc_hw_init() >> ath9k_htc_probe_device() >> htc_handle->drv_priv = priv; >> ret = ath9k_htc_wait_for_target(priv); >> if (ret) >> goto err_free; >> if (ret) >> goto err_htc_hw_init; >> >> err_free: >> ieee80211_free_hw(hw); >> >> >> err_htc_hw_init: >> ath9k_hif_usb_dev_deinit(hif_dev); >> ath9k_hif_usb_dealloc_urbs() >> err_dev_init: >> ath9k_htc_hw_free(hif_dev->htc_handle); >> err_dev_alloc: >> release_firmware(fw); >> err_fw: >> ath9k_hif_usb_firmware_fail(hif_dev); >> >> >> hw should survive deallocating urbs, and changes should be added instead to >> the rollback in ath9k_htc_probe_device() by deferring cleanup of hw to its >> callsite in addition to urbs. >> > > Don't get it, sorry. I am not changing the life time of `hw`, I am just > deferring htc_handle->drv_priv initialization. > > > > > With regards, > Pavel Skripkin