[PATCH 1/5] ath10k: rework posting pci rx buffers
Kalle Valo
kvalo at qca.qualcomm.com
Thu Aug 14 05:05:07 PDT 2014
Michal Kazior <michal.kazior at tieto.com> writes:
> It was possible on a host system running low on
> memory to end up with no rx buffers on pci pipes.
>
> This also cleans up the code a bit and, as a side
> effect, makes it possible to call
> ath10k_hif_start() more than once.
>
> Signed-off-by: Michal Kazior <michal.kazior at tieto.com>
The rework is relatively big so it would be good to have a short
overview how you change it.
> +static void ath10k_pci_rx_replenish(struct ath10k_pci_pipe *pipe)
> +{
> + struct ath10k *ar = pipe->hif_ce_state;
> + struct ath10k_pci *ar_pci = ath10k_pci_priv(ar);
> + int ret;
> +
> + spin_lock_bh(&ar_pci->ce_lock);
> + ret = __ath10k_pci_rx_post_pipe(pipe);
> + spin_unlock_bh(&ar_pci->ce_lock);
> +
> + if (ret) {
> + ath10k_warn("failed to replenish pci rx pipe %d: %d, arming retry timer\n",
> + pipe->pipe_num, ret);
> + mod_timer(&ar_pci->rx_replenish_retry,
> + ATH10K_PCI_RX_REPLENISH_RETRY_MS);
> + }
> +}
Buildbot sent a warning about this one which I think is valid:
drivers/net/wireless/ath/ath10k/pci.c:380 ath10k_pci_rx_replenish() warn: mod_timer() takes an absolute \
time not an offset.
--
Kalle Valo
More information about the ath10k
mailing list