[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