On 7 August 2014 11:05, Michal Kazior <michal.kazior@xxxxxxxxx> wrote: > The copy engine structures are never changed until > driver unregisters the device so it is not > necessary to reset the device chip anymore when > stopping. > > This reduces driver register time approx. by 200ms. > > Signed-off-by: Michal Kazior <michal.kazior@xxxxxxxxx> > --- > drivers/net/wireless/ath/ath10k/pci.c | 7 ------- > 1 file changed, 7 deletions(-) > > diff --git a/drivers/net/wireless/ath/ath10k/pci.c b/drivers/net/wireless/ath/ath10k/pci.c > index 7efcf8e..6a5ca9e 100644 > --- a/drivers/net/wireless/ath/ath10k/pci.c > +++ b/drivers/net/wireless/ath/ath10k/pci.c > @@ -1192,13 +1192,6 @@ static void ath10k_pci_hif_stop(struct ath10k *ar) > > ath10k_pci_buffer_cleanup(ar); > > - /* Make the sure the device won't access any structures on the host by > - * resetting it. The device was fed with PCI CE ringbuffer > - * configuration during init. If ringbuffers are freed and the device > - * were to access them this could lead to memory corruption on the > - * host. */ > - ath10k_pci_warm_reset(ar); > - > ar_pci->started = 0; If firmware crashes it doesn't necessarily mean hardware has crashed as well. Since htt rx ring dma buffer is fed directly to hardware it can still be accessed even after firmware has crashed (e.g. receive beacons in station mode). This means calling hif_stop must guarantee to stop hardware completely or else it might corrupt host memory (notably sk_buffs; pretty badly - I've been hitting general protection faults randomly and was puzzled at first). Thus this patch has to be dropped (I'll probably replace it with a patch to update the comment only). 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