Message ID | 20180611210946.241341-1-briannorris@chromium.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Brian Norris <briannorris@chromium.org> writes: > We're 'ath10k_snoc', not 'ath10k_pci'. This probably means we're > accessing junk data in ath10k_snoc_rx_replenish_retry(), unless > 'ath10k_snoc' and 'ath10k_pci' happen to have very similar struct > layouts. > > Noticed by inspection. > > Fixes: d915105231ca ("ath10k: add hif rx methods for wcn3990") > Signed-off-by: Brian Norris <briannorris@chromium.org> > --- > It's possible this would be a for-4.18 target, since the buggy patch is > in the -rc1 merge. But this driver is not fully operational yet. Also, > I'm sending some companion refactorings to help avoid this bug. They > probably aren't 4.18 material. Yeah, in theory this should go to 4.18 but, like you said, snoc support does not even work on 4.18 so there would be no benefit. Actually just more work while we add final pieces of wcn3990 support to ath10k. So I'll queue these to 4.19. > Let me know if I should do anything differently. This is very good as is, thanks.
Brian Norris <briannorris@chromium.org> wrote: > We're 'ath10k_snoc', not 'ath10k_pci'. This probably means we're > accessing junk data in ath10k_snoc_rx_replenish_retry(), unless > 'ath10k_snoc' and 'ath10k_pci' happen to have very similar struct > layouts. > > Noticed by inspection. > > Fixes: d915105231ca ("ath10k: add hif rx methods for wcn3990") > Signed-off-by: Brian Norris <briannorris@chromium.org> > Signed-off-by: Kalle Valo <kvalo@codeaurora.org> 4 patches applied to ath-next branch of ath.git, thanks. 426a0f0b5a2f ath10k: snoc: use correct bus-specific pointer in RX retry 8ac5fe8e3d11 ath10k: snoc: stop including pci.h 13e6cc0bd4ef ath10k: snoc: drop unused WCN3990_CE_ATTR_FLAGS c9f3e7fa8bcb ath10k: snoc: sort include files
diff --git a/drivers/net/wireless/ath/ath10k/snoc.c b/drivers/net/wireless/ath/ath10k/snoc.c index ee74e0060504..c7cfc9c9b3d7 100644 --- a/drivers/net/wireless/ath/ath10k/snoc.c +++ b/drivers/net/wireless/ath/ath10k/snoc.c @@ -449,7 +449,7 @@ static void ath10k_snoc_htt_rx_cb(struct ath10k_ce_pipe *ce_state) static void ath10k_snoc_rx_replenish_retry(struct timer_list *t) { - struct ath10k_pci *ar_snoc = from_timer(ar_snoc, t, rx_post_retry); + struct ath10k_snoc *ar_snoc = from_timer(ar_snoc, t, rx_post_retry); struct ath10k *ar = ar_snoc->ar; ath10k_snoc_rx_post(ar);
We're 'ath10k_snoc', not 'ath10k_pci'. This probably means we're accessing junk data in ath10k_snoc_rx_replenish_retry(), unless 'ath10k_snoc' and 'ath10k_pci' happen to have very similar struct layouts. Noticed by inspection. Fixes: d915105231ca ("ath10k: add hif rx methods for wcn3990") Signed-off-by: Brian Norris <briannorris@chromium.org> --- It's possible this would be a for-4.18 target, since the buggy patch is in the -rc1 merge. But this driver is not fully operational yet. Also, I'm sending some companion refactorings to help avoid this bug. They probably aren't 4.18 material. Let me know if I should do anything differently. drivers/net/wireless/ath/ath10k/snoc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)