[PATCH 2/2] ath10k: split ce initialization and allocation
Kalle Valo
kvalo at qca.qualcomm.com
Wed Mar 26 05:22:07 EDT 2014
Michal Kazior <michal.kazior at tieto.com> writes:
> Definitions by which copy engine structure are
> allocated do not change so it doesn't make much
> sense to re-create those structures each time
> device is booted (e.g. due to firmware recovery).
>
> This should decrease chance of memory allocation
> failures.
>
> Reported-By: Avery Pennarun <apenwarr at gmail.com>
> Signed-off-by: Michal Kazior <michal.kazior at tieto.com>
[...]
> --- a/drivers/net/wireless/ath/ath10k/ce.h
> +++ b/drivers/net/wireless/ath/ath10k/ce.h
> @@ -104,7 +104,8 @@ struct ath10k_ce_ring {
> void *shadow_base_unaligned;
> struct ce_desc *shadow_base;
>
> - void **per_transfer_context;
> + /* keep last */
> + void *per_transfer_context[0];
> };
If possible, I would prefer to have changes like this in a separate
patch as it makes easier to review. Or at least mention the change in
the commit log.
> @@ -2018,9 +2029,9 @@ static void ath10k_pci_hif_power_down(struct ath10k *ar)
> ath10k_pci_free_early_irq(ar);
> ath10k_pci_kill_tasklet(ar);
> ath10k_pci_deinit_irq(ar);
> + ath10k_pci_ce_deinit(ar);
> ath10k_pci_warm_reset(ar);
>
> - ath10k_pci_ce_deinit(ar);
> if (!test_bit(ATH10K_PCI_FEATURE_SOC_POWER_SAVE, ar_pci->features))
> ath10k_do_pci_sleep(ar);
> }
Why this?
--
Kalle Valo
More information about the ath10k
mailing list