From patchwork Wed Jun 20 08:42:20 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Niklas Cassel X-Patchwork-Id: 932052 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="QAinP0cU"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 419f3k0Lnjz9s2L for ; Wed, 20 Jun 2018 19:02:26 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932845AbeFTImh (ORCPT ); Wed, 20 Jun 2018 04:42:37 -0400 Received: from mail-lf0-f65.google.com ([209.85.215.65]:39364 "EHLO mail-lf0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753906AbeFTImd (ORCPT ); Wed, 20 Jun 2018 04:42:33 -0400 Received: by mail-lf0-f65.google.com with SMTP id t2-v6so3679020lfd.6 for ; Wed, 20 Jun 2018 01:42:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=JKpvz3vtYdohxjtXmtyo5SjzMcz9c7S9E23fQ5xXab4=; b=QAinP0cUkQ5zt0rvGHnPqm8C19pbEnTgsOdE7o40ZdxvOw2oQcLgAOSxwX6DLHAuuY QykZ2tKUcx1FH0YkKELwREaH3E4p62NCXRQCX84610BJLQSwnfqxHsrpK1pioz3YvOm7 oV89YuUoBTNtuVg0sY8Ow276CNIH9u0+NeMZY= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=JKpvz3vtYdohxjtXmtyo5SjzMcz9c7S9E23fQ5xXab4=; b=QicYYfM8d4uqiEOBFMwE9Kb7uGz1dSezAQqZID9Oc3iTWvmZG6V2km24dSMVdH1+bI T8l7cmAnMw+nq5ID/XTRwAF8w/9tL9MFHP1rGCQwNjVJINiCrBYqSJGb7EKby7KUGCSR mSjvJ9XNeXR42TooMGwxrO0a6WJ9se9FAx+1KmE0r/wnXh7fOBOsceHe/isuo+/9ZxVZ E+NjCOrKTA7Rq4dsh44iwveP5tCJF6sLb2IunvHEYyo/cyycnj/lB6bGk0QXZqlHtDGx GF/EqDBD47gqqsrleYCvqpG2u++7gP4RyJ048D4t3BKwUtDGZsqrFuk18fNc0XVRWHBR iKdw== X-Gm-Message-State: APt69E05b3vI1MY921wtvNtfOZ3aIYbUm4o7JjjdCdMIRmUscKbX7Lod JyWG8N3QEfWVrOfPv7+IObGdAA== X-Google-Smtp-Source: ADUXVKIErsU8106cF3yhAARbMNfvZR03AIjYYlG+OfmTWkM5BZCvGZkfQnP3XZecKt9E8j+VfkwfOg== X-Received: by 2002:a2e:7a0f:: with SMTP id v15-v6mr14038227ljc.68.1529484151743; Wed, 20 Jun 2018 01:42:31 -0700 (PDT) Received: from centauri.lan (h-229-118.A785.priv.bahnhof.se. [5.150.229.118]) by smtp.gmail.com with ESMTPSA id l25-v6sm301267ljj.30.2018.06.20.01.42.30 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 20 Jun 2018 01:42:31 -0700 (PDT) From: Niklas Cassel To: Kalle Valo , "David S. Miller" Cc: alagusankar@silex-india.com, Niklas Cassel , ath10k@lists.infradead.org, linux-wireless@vger.kernel.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 1/3] ath10k: sdio: use same endpoint id for all packets in a bundle Date: Wed, 20 Jun 2018 10:42:20 +0200 Message-Id: <20180620084222.3521-2-niklas.cassel@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180620084222.3521-1-niklas.cassel@linaro.org> References: <20180620084222.3521-1-niklas.cassel@linaro.org> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org All packets in a bundle should use the same endpoint id as the first lookahead. This matches how things are done is ath6kl, however, this patch can theoretically handle several bundles in ath10k_sdio_mbox_rx_process_packets(). Without this patch we get lots of errors about invalid endpoint id: ath10k_sdio mmc2:0001:1: invalid endpoint in look-ahead: 224 ath10k_sdio mmc2:0001:1: failed to get pending recv messages: -12 ath10k_sdio mmc2:0001:1: failed to process pending SDIO interrupts: -12 Signed-off-by: Alagu Sankar Signed-off-by: Niklas Cassel --- drivers/net/wireless/ath/ath10k/sdio.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/net/wireless/ath/ath10k/sdio.c b/drivers/net/wireless/ath/ath10k/sdio.c index d612ce8c9cff..d46523b0472c 100644 --- a/drivers/net/wireless/ath/ath10k/sdio.c +++ b/drivers/net/wireless/ath/ath10k/sdio.c @@ -434,12 +434,14 @@ static int ath10k_sdio_mbox_rx_process_packets(struct ath10k *ar, enum ath10k_htc_ep_id id; int ret, i, *n_lookahead_local; u32 *lookaheads_local; + int lookahead_idx = 0; for (i = 0; i < ar_sdio->n_rx_pkts; i++) { lookaheads_local = lookaheads; n_lookahead_local = n_lookahead; - id = ((struct ath10k_htc_hdr *)&lookaheads[i])->eid; + id = ((struct ath10k_htc_hdr *) + &lookaheads[lookahead_idx++])->eid; if (id >= ATH10K_HTC_EP_COUNT) { ath10k_warn(ar, "invalid endpoint in look-ahead: %d\n", @@ -462,6 +464,7 @@ static int ath10k_sdio_mbox_rx_process_packets(struct ath10k *ar, /* Only read lookahead's from RX trailers * for the last packet in a bundle. */ + lookahead_idx--; lookaheads_local = NULL; n_lookahead_local = NULL; } From patchwork Wed Jun 20 08:42:21 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Niklas Cassel X-Patchwork-Id: 932054 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="U9JM/8Rw"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 419f546fktz9s4v for ; Wed, 20 Jun 2018 19:03:36 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754705AbeFTJD3 (ORCPT ); Wed, 20 Jun 2018 05:03:29 -0400 Received: from mail-lf0-f67.google.com ([209.85.215.67]:37945 "EHLO mail-lf0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752915AbeFTIme (ORCPT ); Wed, 20 Jun 2018 04:42:34 -0400 Received: by mail-lf0-f67.google.com with SMTP id i83-v6so3683516lfh.5 for ; Wed, 20 Jun 2018 01:42:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=sYHap52ZFvU1YoFIXSmQWxFDIVLNqxp0/nUZxn+RUiA=; b=U9JM/8RwFdaS17LbpXbCXWptnGIcJfe/tM6C3jZ8qTPndyZ8spk0st/f+uDaJZJSUK 4mZTRvU1j0Dad0HcGPnujz9k7ehPn3X6h0mpwaLQTIlmiCg17xIMdai+vLRVfwdahnmQ QYq6etRoMjhxGn9BWsFx8Mhw9VsSHe5YlTqnk= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=sYHap52ZFvU1YoFIXSmQWxFDIVLNqxp0/nUZxn+RUiA=; b=W9EtMRysm9XE0kCnaiQWyHoUWhlzvX+USufmHtvTlit21jvUYs9iCfZuEcv1Zkjxp+ lr4w4l2V/BetgAghyIeks8wpFplF+UDymg+k+mAegYXIdObwX0WpHEf6e1b5fJmVQW82 YCi66Sx6hoRZvPQmYG4McihYGlUzr2c6VHyDIFpqIvtRX2zRFKJrkCleJ1KJj3fHW51M dfMWQ/m/8z6Pv2+se3UlSepzYvMx8Q/2NujwKBzA49PAC7m1XnEF+pVP5PV4UE5ixEdv ksirSn4sKR3XOsz8ul3L7MT7qzSom2d2IlhVkWsu7lowRw2jQD4d0udLkFokzhLOfAIi 3pyg== X-Gm-Message-State: APt69E3Ecx1pCETPFKn/cxTZxViDaEZU40b7Kvg6BvkgROchB4zyPGSh w0nBoOc+3SPJ7m4SZIXDA+mu9w== X-Google-Smtp-Source: ADUXVKJWpHxRqCeghmtVb9Fae9OZh1TCsprzeURFGjtiKnumr9YTr4okShMqAtm7ARrgrTsHcP+s3g== X-Received: by 2002:a2e:3011:: with SMTP id w17-v6mr14437016ljw.20.1529484153062; Wed, 20 Jun 2018 01:42:33 -0700 (PDT) Received: from centauri.lan (h-229-118.A785.priv.bahnhof.se. [5.150.229.118]) by smtp.gmail.com with ESMTPSA id l25-v6sm301267ljj.30.2018.06.20.01.42.32 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 20 Jun 2018 01:42:32 -0700 (PDT) From: Niklas Cassel To: Kalle Valo , "David S. Miller" Cc: alagusankar@silex-india.com, Niklas Cassel , ath10k@lists.infradead.org, linux-wireless@vger.kernel.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 2/3] ath10k: sdio: allocate correct size for RECV_1MORE_BLOCK rx packets Date: Wed, 20 Jun 2018 10:42:21 +0200 Message-Id: <20180620084222.3521-3-niklas.cassel@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180620084222.3521-1-niklas.cassel@linaro.org> References: <20180620084222.3521-1-niklas.cassel@linaro.org> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Without this, when receiving a packet that has this flag set from firmware, we will read invalid trailer data from the packet, which will be shown as various errors, e.g. "sdio mbox lookahead is zero" or "invalid rx packet" or "payload length x exceeds max htc length". Signed-off-by: Alagu Sankar Signed-off-by: Niklas Cassel --- drivers/net/wireless/ath/ath10k/htc.h | 1 + drivers/net/wireless/ath/ath10k/sdio.c | 3 +++ 2 files changed, 4 insertions(+) diff --git a/drivers/net/wireless/ath/ath10k/htc.h b/drivers/net/wireless/ath/ath10k/htc.h index 34877597dd6a..cf1068dc3254 100644 --- a/drivers/net/wireless/ath/ath10k/htc.h +++ b/drivers/net/wireless/ath/ath10k/htc.h @@ -58,6 +58,7 @@ enum ath10k_htc_tx_flags { }; enum ath10k_htc_rx_flags { + ATH10K_HTC_FLAGS_RECV_1MORE_BLOCK = 0x01, ATH10K_HTC_FLAG_TRAILER_PRESENT = 0x02, ATH10K_HTC_FLAG_BUNDLE_MASK = 0xF0 }; diff --git a/drivers/net/wireless/ath/ath10k/sdio.c b/drivers/net/wireless/ath/ath10k/sdio.c index d46523b0472c..0c57d6aaa437 100644 --- a/drivers/net/wireless/ath/ath10k/sdio.c +++ b/drivers/net/wireless/ath/ath10k/sdio.c @@ -603,6 +603,9 @@ static int ath10k_sdio_mbox_rx_alloc(struct ath10k *ar, * ATH10K_HTC_FLAG_BUNDLE_MASK flag set, all bundled * packet skb's have been allocated in the previous step. */ + if (htc_hdr->flags & ATH10K_HTC_FLAGS_RECV_1MORE_BLOCK) + full_len += ATH10K_HIF_MBOX_BLOCK_SIZE; + ret = ath10k_sdio_mbox_alloc_rx_pkt(&ar_sdio->rx_pkts[i], act_len, full_len, From patchwork Wed Jun 20 08:42:22 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Niklas Cassel X-Patchwork-Id: 932037 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="OQJZdZFT"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 419dg05Jmkz9s3C for ; Wed, 20 Jun 2018 18:44:28 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932666AbeFTIo0 (ORCPT ); Wed, 20 Jun 2018 04:44:26 -0400 Received: from mail-lf0-f68.google.com ([209.85.215.68]:37990 "EHLO mail-lf0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932677AbeFTImu (ORCPT ); Wed, 20 Jun 2018 04:42:50 -0400 Received: by mail-lf0-f68.google.com with SMTP id i83-v6so3684730lfh.5 for ; Wed, 20 Jun 2018 01:42:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=+R4eGX5eAJCC9sbXyeuYvo0XKQNvBJaTjc88N6RgIzo=; b=OQJZdZFTa3D64IzYYsSW4wLNuSHE+ja5yxDvahiFzZx+tt4QNzHhK5sVt2WALyrZNz Kq1zc6IJyJAyReZU4ek3iM9iWq60++VFr9sJeki0KmdFmdZaFlRB7Z3HYqlHRSp1d6RR Gt2tUjxFI2xfPX/O/VihEFZHNDskTxMk1DfXc= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=+R4eGX5eAJCC9sbXyeuYvo0XKQNvBJaTjc88N6RgIzo=; b=ddOqv2jKrDmvCwJbyMcyYSrb18VO13seFCIsINNOP6B9LSZ45/42PM87hyxtN+J/R0 rTc+CoX21ErgGKD5X2WVwpTSnkA9a49d4HLJ6qxZ8F8m6VGU3jZTFLAodT3MrIxMnwuU 0qheWz55ceUegVXB43/3hoe4OkLZCSDwt8ZjQmkxXzrwazLCjNjDIubbztVFySelJbkT BG1uxtJ2CZc0uVQ1VlgLcR2X/0o+FU8Gk/OJ+Y/5p4VPT9Kmuear0+c8KNRl3LBaCH9O lf5CDbA9VNhQDvgNFj7civeoOqfOdeIlHqPIo+Pl3lyPUsZLiL2ep7KeEacXlOzZ7ILY /VXw== X-Gm-Message-State: APt69E1R6D2stSYn1lnUzbl32vMzVhuYD7mR9NZuhuK750+30op4vuNp 0lQuH2253GWpRoKp/Rr2mgcx0g== X-Google-Smtp-Source: ADUXVKLk5vN+pCKA0ypIs1GzzEFc6MxtzGYIX07/bZ6PwakcI8o9lADjeoSnUQbSzBMuMgqdXqvIMQ== X-Received: by 2002:a2e:5111:: with SMTP id f17-v6mr11538634ljb.16.1529484169027; Wed, 20 Jun 2018 01:42:49 -0700 (PDT) Received: from centauri.lan (h-229-118.A785.priv.bahnhof.se. [5.150.229.118]) by smtp.gmail.com with ESMTPSA id h90-v6sm296656ljf.65.2018.06.20.01.42.48 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 20 Jun 2018 01:42:48 -0700 (PDT) From: Niklas Cassel To: Kalle Valo , "David S. Miller" Cc: alagusankar@silex-india.com, Niklas Cassel , ath10k@lists.infradead.org, linux-wireless@vger.kernel.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 3/3] ath10k: sdio: set skb len for all rx packets Date: Wed, 20 Jun 2018 10:42:22 +0200 Message-Id: <20180620084222.3521-4-niklas.cassel@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180620084222.3521-1-niklas.cassel@linaro.org> References: <20180620084222.3521-1-niklas.cassel@linaro.org> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Without this, packets larger than 1500 will silently be dropped. Easily reproduced by sending a ping packet with a size larger than 1500. Signed-off-by: Alagu Sankar Signed-off-by: Niklas Cassel --- drivers/net/wireless/ath/ath10k/sdio.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/net/wireless/ath/ath10k/sdio.c b/drivers/net/wireless/ath/ath10k/sdio.c index 0c57d6aaa437..8ac47b04a17e 100644 --- a/drivers/net/wireless/ath/ath10k/sdio.c +++ b/drivers/net/wireless/ath/ath10k/sdio.c @@ -396,6 +396,7 @@ static int ath10k_sdio_mbox_rx_process_packet(struct ath10k *ar, int ret; payload_len = le16_to_cpu(htc_hdr->len); + skb->len = payload_len + sizeof(struct ath10k_htc_hdr); if (trailer_present) { trailer = skb->data + sizeof(*htc_hdr) +