On 22 May 2014 18:42, Kalle Valo <kvalo@xxxxxxxxxxxxxxxx> wrote: > Michal Kazior <michal.kazior@xxxxxxxxx> writes: > >> If ath10k was built into the kernel it could stall >> booting for 120 seconds by default (60 seconds for >> each firmware API variant) waiting for firmware >> files before userspace was ready or filesystems >> mounted. >> >> Fix this by making the core registering >> asynchronous. >> >> This also shoves off about 1 second from boot time >> on most systems since the driver is now mostly >> initialized in a worker and modprobe takes very >> little time to complete. >> >> As a side effect there's no way to propagate >> registering errors to the pci subsystem but this >> probably isn't really necessary. >> >> Signed-off-by: Michal Kazior <michal.kazior@xxxxxxxxx> > > [...] > >> --- a/drivers/net/wireless/ath/ath10k/pci.c >> +++ b/drivers/net/wireless/ath/ath10k/pci.c >> @@ -2758,8 +2758,6 @@ static void ath10k_pci_remove(struct pci_dev *pdev) >> if (!ar_pci) >> return; >> >> - tasklet_kill(&ar_pci->msi_fw_err); > > Why this? That's not obvious to me. It might end up not being initialized: If you, say, quickly insert and eject a device you might not even initialize the tasklet (it's done elsewhere; I suppose we could move it too) before ath10k_pci_remove() is called. Also the tasklet is already killed elsewhere on the teardown code path. I'll split it into a separate patch that simply removes this line as it's meaningless to call it here in the first place. Michał -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html