From nobody Sat Sep 26 07:15:40 2026 Received: from mail-lf1-f54.google.com (mail-lf1-f54.google.com [209.85.167.54]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AC98C4F4753 for ; Thu, 3 Sep 2026 17:01:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788454891; cv=none; b=RSkwCn/9x9QnNqB7DPXc8sSEeElWMntLTcPXDjlx30+Cs+xDPL0oGG/mQkbQ6ZLK2cbODDvAPsn7dD5vXV0GVCcm2WMTpurTuPzyXZccZMZWer/mtHbCa0cw8ZIwbNTII197Em963+hd1lU2fU2oNQBM2AHyqNH4WddU0A7x4Co= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788454891; c=relaxed/simple; bh=HQ9aH5rvRwQkOUzglPJfIazfP/5jmGrBk6DlWkYkdVc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=K08n2dtDG55DfbG/WdQUubeXyaxH6W1hI7cPL2qYrp4+hzYm/bUxO03P9TCad8InfSGOlYhOw8fWC9KjXAUzNKAsr9TNzdjL/LDehMlLL1MSQGKwDY15ur5svHhEuL7e2KBLmKIhIGXO0S9TALfzV0/qgBtDJhU7Es+ycZO7N5E= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=PaDumkaj; arc=none smtp.client-ip=209.85.167.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="PaDumkaj" Received: by mail-lf1-f54.google.com with SMTP id 2adb3069b0e04-5b4ac3ba821so2611083e87.0 for ; Thu, 03 Sep 2026 10:01:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1788454887; x=1789059687; darn=vger.kernel.org; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:sender:from:to:cc :subject:date:message-id:reply-to:content-type; bh=OZyw8m6+styphgut7aMHW2Tb5x1l46viCOdrvdrROu0=; b=PaDumkajGG/h6sWzOvDh29HTmdAQSuAB9NgnvSPDzy4ebnjuhPIBFMwlpd2s92vTOL pjEx5zThQ0lrJiMQU9CCiOyYPvvrl/lZdmAtB2NQ5yNWN3rBRLJXOFGkFMezyOfBHUhi sLYMPX1Sk8P3Rkq23uhibyUUXkzMZE1WuB8ZSFz6Bc2adcv8GXZHziIgq+Evd3aRecgc LsU9JDmNav/e6W4D/XZI1LFtqzSQ5ZCnwhGRgAza+/6IBdvqQTDooex/OghpEOXpwRnV 5y5esMaMzWgIEO4uztvy8w10Dn7X7QGcfBiPGG32EOlF5c1gyP3aC+Y48M57bTSbeSS/ gPVw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1788454887; x=1789059687; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:sender:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=OZyw8m6+styphgut7aMHW2Tb5x1l46viCOdrvdrROu0=; b=gQM0llJ2+NUS3/BJEHoC8eQKDoQMWvyehkuv5ZiPxbyROsh7aOcQhEUwlyebpZ8vLV 69kIGaauLhSepFeD32RGyFbEN+TPmtGfB70kkq40tqoa26wPWUiRhsrX88h+2rRXq+78 lyV55Trhxq5/yZGSvaBtJykiNfmIqHE8n9KkBFCdR81dTs6xXHIQH2sJV7v5CajoIFND 1zJH3jZxx8g7rjthKd2B0AAH9d8dpPQ9nlJ2BPeo7fUU8Iq3Y8BTe3iJrpXQ98+Gdeze Y6JHgCRcXTKC7hhIhLqSMUxAUa7jgNg6bDddX8gUHCy5NHOgoHju+DZzNMeq+dI5KveE UIkg== X-Gm-Message-State: AFuF++kVJcSOYvTMVduVXt05vV/DHsRrUdeWipb5XhFj/1K3GHgPbs63 utxHg89CRENFvSNvQTLAo0kUabDlqQ5qojssX3acgSoGOKs/Io4XSXF9w3L+ X-Gm-Gg: AYBFou0BDoKSIXhB5h57GizbB0HxD3Xt6ouaOrYOyrUOMLUkl35XDCGwR2hHJazJhOp rYnwzcGzLOky+/mvT/lM5WP+UvVeBtNgh8XAW0rY5DkJaIcX4Qx2ZKJ4P8i+2JPsg3W9YsUaq7H i0jB6C7zxFWk9YxDJxUIIdPJcIq7sZSTABbCxYRUWX/6tbZ2aOlyinEwrfuxStfon8UaaPwS5ZF Su9OFVW8XTA+cMkLM6UOSax2wryNpf/4wXb9czZeJJIccT0bYYHnkyDmhGACwADh+7iPq4tQadk TF2pnRNLNK4IQYw+EXGpVSXEpDqp2szDeUzaDFBabQYjIAkFXiDfBbljJHTx2hzcTtL5jwA0hSC fs02xBANzQdEhp9p0Qj/J3jtnayzNgGPV1hYZlWcKimOReiYo0TYHhmQkEtHIQse6l09OCMvw3w x/2iMHVEhadSaY1OdPQ+m3IjYetgNIZvMN+a0YreWjBHqNBwK3oGbhxaWujqE4H/fyNZVG+swRE H15ArQq1x6JYa3dU4/NBjdPYWzIOPJjLv2nmrHKKbz/zB1Anyf4cAe8TrcLs9PL10Xuf2kv883O BJiFHeo2UNOvZc0= X-Received: by 2002:a05:6512:3d20:b0:5b5:e53e:5710 with SMTP id 2adb3069b0e04-5b60831e808mr4109616e87.2.1788454886335; Thu, 03 Sep 2026 10:01:26 -0700 (PDT) Received: from nn ([2001:1ab8:1003:0:5454:f357:ba89:4e22]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-5b61669b215sm5563e87.11.2026.09.03.10.01.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 03 Sep 2026 10:01:24 -0700 (PDT) Sender: N B From: =?UTF-8?q?Nerijus=20Bend=C5=BEi=C5=ABnas?= To: =?UTF-8?q?Toke=20H=C3=B8iland-J=C3=B8rgensen?= , linux-wireless@vger.kernel.org Cc: linux-kernel@vger.kernel.org Subject: [PATCH 1/2] wifi: ath9k_htc: derive the PHY error filter bits from software state Date: Thu, 3 Sep 2026 20:00:49 +0300 Message-ID: <20260903170050.1089917-2-nerijus.bendziunas@gmail.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260903170050.1089917-1-nerijus.bendziunas@gmail.com> References: <20260903170050.1089917-1-nerijus.bendziunas@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable ath9k_htc_calcrxfilter() reads AR_RX_FILTER back from the device to keep the PHY error bits the spectral trigger may have set. On USB that read is a WMI round trip, and when it times out ath9k_regread() returns -1, so the recalculated filter turns PHY error forwarding on with no scan running and the device streams every PHY error frame at the host until the next recalculation. The driver already knows whether a scan is active, so set the two bits from spec_priv instead, the way ath9k derives its filter from software state. This drops one round trip from every filter recalculation, and the bits now go away when the scan is disabled rather than lingering until the next reset. Signed-off-by: Nerijus Bend=C5=BEi=C5=ABnas --- drivers/net/wireless/ath/ath9k/htc_drv_txrx.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/drivers/net/wireless/ath/ath9k/htc_drv_txrx.c b/drivers/net/wi= reless/ath/ath9k/htc_drv_txrx.c index bed7ea2425a0..299064a7fa49 100644 --- a/drivers/net/wireless/ath/ath9k/htc_drv_txrx.c +++ b/drivers/net/wireless/ath/ath9k/htc_drv_txrx.c @@ -868,14 +868,14 @@ int ath9k_htc_cabq_setup(struct ath9k_htc_priv *priv) */ u32 ath9k_htc_calcrxfilter(struct ath9k_htc_priv *priv) { -#define RX_FILTER_PRESERVE (ATH9K_RX_FILTER_PHYERR | ATH9K_RX_FILTER_PHYRA= DAR) - struct ath_hw *ah =3D priv->ah; u32 rfilt; =20 - rfilt =3D (ath9k_hw_getrxfilter(ah) & RX_FILTER_PRESERVE) - | ATH9K_RX_FILTER_UCAST | ATH9K_RX_FILTER_BCAST - | ATH9K_RX_FILTER_MCAST; + rfilt =3D ATH9K_RX_FILTER_UCAST | ATH9K_RX_FILTER_BCAST | + ATH9K_RX_FILTER_MCAST; + + if (priv->spec_priv.spectral_mode !=3D SPECTRAL_DISABLED) + rfilt |=3D ATH9K_RX_FILTER_PHYRADAR | ATH9K_RX_FILTER_PHYERR; =20 if (priv->rxfilter & FIF_PROBE_REQ) rfilt |=3D ATH9K_RX_FILTER_PROBEREQ; @@ -906,8 +906,6 @@ u32 ath9k_htc_calcrxfilter(struct ath9k_htc_priv *priv) rfilt |=3D ATH9K_RX_FILTER_MCAST_BCAST_ALL; =20 return rfilt; - -#undef RX_FILTER_PRESERVE } =20 /* --=20 2.55.0 From nobody Sat Sep 26 07:15:40 2026 Received: from mail-lf1-f48.google.com (mail-lf1-f48.google.com [209.85.167.48]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5F4E74F55A4 for ; Thu, 3 Sep 2026 17:01:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788454893; cv=none; b=Tdz03A9yGFg0ol7uX6PAsZ9b6s74Hh5FFyfNCpTJncjGT/bm3tSm1fgX83T50eeQCV32tKa3eV92qiCV9ZDHI6Rf6xvsX/omsONPefirwIe9mOd9SMIzGohNHIijE2WiwteHDF11BFXWeqgTWPFJCaEFBA8CkmS4xpbvhzkhGWQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788454893; c=relaxed/simple; bh=3UMQjWNFb9Xwa3eKvxywNyx78656HAnkC2aZLshI8hI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=sD+YLnUligJ5okT38rPD2Fmo53nP/oWPUxcQM6IaBubFrq/9c9ma665/htGLnmLJIrYa815s4Tgq6j17U1XtfZJN+EmStEVBXLTayv9CDe3vRBtr0UzU2p5HznqMk7JeT4mEgnjQiDMt51Ib3fNR6cMdyTDKX+JxqLbfDa7JB5w= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=oqi8/5sm; arc=none smtp.client-ip=209.85.167.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="oqi8/5sm" Received: by mail-lf1-f48.google.com with SMTP id 2adb3069b0e04-5b2b92065ffso2303787e87.1 for ; Thu, 03 Sep 2026 10:01:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1788454888; x=1789059688; darn=vger.kernel.org; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:sender:from:to:cc :subject:date:message-id:reply-to:content-type; bh=8CY2lxlBuhLH/6xYb7pukad2G53hZxpwZtqvTnoKYUw=; b=oqi8/5smLZi5bs81O/O37jqjNNJ/BjBYTmJBk0480ffF2i3lz/Ao7U+99F79ZEMp/L Gw+Xx2Qhk82QkmMgjNAKkLjUgT5VOVaGwoqfD51OZmDGxOFYFaJlzbnNAglytfzRXfeb Hct+b7t0tkeDnlDTdwFoTzFL7MHVWWWXPuZsJwA9syHw0HDiSaJNKusxlizKnvriUC1N w6Oadaub1ggI9nQiVZ3v1Q/Id5fvuVhgK4uZQfAA41I47UaTRR/qR0V0ZLTrhAMCwABS PrMdqmQI7Z7rRpJ+TpreI8ZZhIcNklTj+ZhFejymIZmblwyp+ZK9Tne/LDq+AdE7ccBL eFuQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1788454888; x=1789059688; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:sender:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=8CY2lxlBuhLH/6xYb7pukad2G53hZxpwZtqvTnoKYUw=; b=Cr/PXTMGfwW+N5MoCalFmI7Gi2xEMXEqEz/aNPrY0iFVcrZnaDr3JtBcFsPVdWhHq2 7Nx2pdinzJh+8tnO55fNhVaXgvAACb3gV+1Tzv5EH/ydYKUnfsYdk5jTBgo9PdZTQiMf voYsuXYBQgcaLRyXiz9V/TTBBIKI+GZHtTkryAGhhafAEebdNP2fYu9p6T1Of9hvh1mm prbBj5ZB6dy2ipU8Xm+ImJNy4TqOtJ6ZhTb5RTOmMi3GgDHgA+sbFnTAOpzkousvUk6T azFZA/+RLmyfhxNBhHGQM7ihtBHTdWTZK6azSZZ+hfEl1icQIIVXcMTmW0JnVw3iZSc7 8ZDQ== X-Gm-Message-State: AFuF++lP/6CecMfzZ5fvrkmpPsqye/5P5uoA1I6DO1TLk17xLcIztKMF fw0CNF3XPW5h9X6iHxNkcF3mU/BqSIGMMXYGf9gUWpmsh0shRx8z+NiMPdvQ X-Gm-Gg: AYBFou17C/lqe5SUh2817fG/grA1KevmcxfB78u8VNityJsK+V5xG8CtVvfNmbp+9Yk cT+t+HFpmTLxGHh3d3i3LIY0psI39Y55SV0842yJZyHaprZGxUDg36aora3UfjaUOM1YCtXygSi 0NBgFJ5alhMkjaA2Q1tc7dDbQuGfF0Vdh7dozcy9zG/bxW+Togqk+SENosVCgd0EFA+fHmXYZ9c XQdSkN1Q9reKL8yJPJqcF13s7DPXA0teYsfdol/JcpiwndkfjyKnwACOmo5xpfD6U8c1zp1XQhn +RFStnYIA5RfJyegfWiKEKPptyviO+Ej+NIWjNbJcHUVYzYiiJo79GO2FikqCfUQKZT+l700NFk leGxYgLrMf893j7Ss9jiAYGUfOWlii9Vo3aR80/UoWHWw2W7Y0XQU0CI7o7ZAJ4rSBYWsSUYttM gxIuuzCDA4CNM1in+pVQSE5G0myViz8gjzVNCcF58FbmxZrTCxDkZEa13UrV6g+y3efa/i4e3N5 PvEgafVMA/N3H1DE+6RkuqUuM88hY00OQVUknEI8JuxcKCj8kAWYDOi8Ot/amI/kjwzB2PuCBui XkWC X-Received: by 2002:a05:6512:ac6:b0:5b6:4ad:77b3 with SMTP id 2adb3069b0e04-5b61557fa77mr629884e87.27.1788454887923; Thu, 03 Sep 2026 10:01:27 -0700 (PDT) Received: from nn ([2001:1ab8:1003:0:5454:f357:ba89:4e22]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-5b61669b215sm5563e87.11.2026.09.03.10.01.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 03 Sep 2026 10:01:27 -0700 (PDT) Sender: N B From: =?UTF-8?q?Nerijus=20Bend=C5=BEi=C5=ABnas?= To: =?UTF-8?q?Toke=20H=C3=B8iland-J=C3=B8rgensen?= , linux-wireless@vger.kernel.org Cc: linux-kernel@vger.kernel.org Subject: [PATCH 2/2] wifi: ath9k_htc: count WMI timeouts and length-discarded frames Date: Thu, 3 Sep 2026 20:00:50 +0300 Message-ID: <20260903170050.1089917-3-nerijus.bendziunas@gmail.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260903170050.1089917-1-nerijus.bendziunas@gmail.com> References: <20260903170050.1089917-1-nerijus.bendziunas@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable A WMI command that times out is invisible unless CONFIG_ATH_DEBUG is on and the WMI debug bit is set, yet it is the event behind every register read that came back as -1. Likewise the receive path discards short and zero-length frames with nothing but a debug message, although a burst of them is what strong interference looks like from the host. Keep a count of commands sent and timed out in a new debugfs file, wmi, and count the length discards in the existing LENGTH-ERR line of recv, so both can be watched on a stock kernel. Signed-off-by: Nerijus Bend=C5=BEi=C5=ABnas --- drivers/net/wireless/ath/ath9k/htc.h | 2 ++ .../net/wireless/ath/ath9k/htc_drv_debug.c | 25 +++++++++++++++++++ drivers/net/wireless/ath/ath9k/htc_drv_txrx.c | 3 +++ drivers/net/wireless/ath/ath9k/wmi.c | 2 ++ drivers/net/wireless/ath/ath9k/wmi.h | 2 ++ 5 files changed, 34 insertions(+) diff --git a/drivers/net/wireless/ath/ath9k/htc.h b/drivers/net/wireless/at= h/ath9k/htc.h index 6c33e898b300..0bdb300f0ad7 100644 --- a/drivers/net/wireless/ath/ath9k/htc.h +++ b/drivers/net/wireless/ath/ath9k/htc.h @@ -328,6 +328,7 @@ static inline struct ath9k_htc_tx_ctl *HTC_SKB_CB(struc= t sk_buff *skb) #ifdef CONFIG_ATH9K_HTC_DEBUGFS #define __STAT_SAFE(hif_dev, expr) do { ((hif_dev)->htc_handle->drv_priv ?= (expr) : 0); } while (0) #define CAB_STAT_INC(priv) do { ((priv)->debug.tx_stats.cab_queued++); } = while (0) +#define RX_LEN_ERR_INC(priv) ((priv)->debug.rx_stats.rx_len_err++) #define TX_QSTAT_INC(priv, q) do { ((priv)->debug.tx_stats.queue_stats[q]= ++); } while (0) =20 #define TX_STAT_INC(hif_dev, c) \ @@ -383,6 +384,7 @@ void ath9k_htc_get_et_stats(struct ieee80211_hw *hw, #define RX_STAT_ADD(hif_dev, c, a) do { } while (0) =20 #define CAB_STAT_INC(priv) +#define RX_LEN_ERR_INC(priv) #define TX_QSTAT_INC(priv, c) =20 static inline void ath9k_htc_err_stat_rx(struct ath9k_htc_priv *priv, diff --git a/drivers/net/wireless/ath/ath9k/htc_drv_debug.c b/drivers/net/w= ireless/ath/ath9k/htc_drv_debug.c index 9437d69877cc..f1bf8cc90d3a 100644 --- a/drivers/net/wireless/ath/ath9k/htc_drv_debug.c +++ b/drivers/net/wireless/ath/ath9k/htc_drv_debug.c @@ -310,6 +310,29 @@ static const struct file_operations fops_slot =3D { .llseek =3D default_llseek, }; =20 +static ssize_t read_file_wmi(struct file *file, char __user *user_buf, + size_t count, loff_t *ppos) +{ + struct ath9k_htc_priv *priv =3D file->private_data; + char buf[128]; + unsigned int len; + + len =3D scnprintf(buf, sizeof(buf), + "%20s : %10u\n" + "%20s : %10u\n", + "Commands", priv->wmi->cmds_sent, + "Timeouts", priv->wmi->cmds_timed_out); + + return simple_read_from_buffer(user_buf, count, ppos, buf, len); +} + +static const struct file_operations fops_wmi =3D { + .read =3D read_file_wmi, + .open =3D simple_open, + .owner =3D THIS_MODULE, + .llseek =3D default_llseek, +}; + static ssize_t read_file_queue(struct file *file, char __user *user_buf, size_t count, loff_t *ppos) { @@ -505,6 +528,8 @@ int ath9k_htc_init_debug(struct ath_hw *ah) =20 debugfs_create_file("slot", 0400, priv->debug.debugfs_phy, priv, &fops_slot); + debugfs_create_file("wmi", 0400, priv->debug.debugfs_phy, + priv, &fops_wmi); debugfs_create_file("queue", 0400, priv->debug.debugfs_phy, priv, &fops_queue); debugfs_create_file("debug", 0600, priv->debug.debugfs_phy, diff --git a/drivers/net/wireless/ath/ath9k/htc_drv_txrx.c b/drivers/net/wi= reless/ath/ath9k/htc_drv_txrx.c index 299064a7fa49..aa4c8beb10d5 100644 --- a/drivers/net/wireless/ath/ath9k/htc_drv_txrx.c +++ b/drivers/net/wireless/ath/ath9k/htc_drv_txrx.c @@ -986,6 +986,7 @@ static bool ath9k_rx_prepare(struct ath9k_htc_priv *pri= v, if (skb->len < HTC_RX_FRAME_HEADER_SIZE) { ath_err(common, "Corrupted RX frame, dropping (len: %d)\n", skb->len); + RX_LEN_ERR_INC(priv); goto rx_next; } =20 @@ -997,6 +998,7 @@ static bool ath9k_rx_prepare(struct ath9k_htc_priv *pri= v, ath_err(common, "Corrupted RX data len, dropping (dlen: %d, skblen: %d)\n", rs_datalen, skb->len); + RX_LEN_ERR_INC(priv); goto rx_next; } =20 @@ -1009,6 +1011,7 @@ static bool ath9k_rx_prepare(struct ath9k_htc_priv *p= riv, ath_dbg(common, ANY, "Short RX data len, dropping (dlen: %d)\n", rs_datalen); + RX_LEN_ERR_INC(priv); goto rx_next; } =20 diff --git a/drivers/net/wireless/ath/ath9k/wmi.c b/drivers/net/wireless/at= h/ath9k/wmi.c index 284e8c13b043..d293f3adc214 100644 --- a/drivers/net/wireless/ath/ath9k/wmi.c +++ b/drivers/net/wireless/ath/ath9k/wmi.c @@ -345,8 +345,10 @@ int ath9k_wmi_cmd(struct wmi *wmi, enum wmi_cmd_id cmd= _id, if (ret) goto out; =20 + wmi->cmds_sent++; time_left =3D wait_for_completion_timeout(&wmi->cmd_wait, timeout); if (!time_left) { + wmi->cmds_timed_out++; ath_dbg(common, WMI, "Timeout waiting for WMI command: %s\n", wmi_cmd_to_name(cmd_id)); spin_lock_irqsave(&wmi->wmi_lock, flags); diff --git a/drivers/net/wireless/ath/ath9k/wmi.h b/drivers/net/wireless/at= h/ath9k/wmi.h index 5c3b710b8f31..9dc5deffcdfe 100644 --- a/drivers/net/wireless/ath/ath9k/wmi.h +++ b/drivers/net/wireless/ath/ath9k/wmi.h @@ -158,6 +158,8 @@ struct wmi { u8 *cmd_rsp_buf; u32 cmd_rsp_len; bool stopped; + u32 cmds_sent; + u32 cmds_timed_out; =20 struct list_head pending_tx_events; spinlock_t event_lock; --=20 2.55.0