Received: by 2002:a05:6a10:f3d0:0:0:0:0 with SMTP id a16csp506333pxv; Wed, 14 Jul 2021 08:54:49 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxfLMtmHYZ8cL//2SPmAkxSKblzBwpW45YRZbRUvAsGkx2gM9ZMozYz0RNMBbj76aiWOuxM X-Received: by 2002:a17:907:3f9a:: with SMTP id hr26mr13111452ejc.110.1626278088959; Wed, 14 Jul 2021 08:54:48 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1626278088; cv=none; d=google.com; s=arc-20160816; b=foCsjTVLbGdYqsCNWr3LSfD/CVydEFpHsZHj1WbIm1i4qLennWlFWtHfwOV3J8ADmb 93zsnSz0TMYSdrP2tz9YbWsms3og4Hog3g/xT1pGTJETzbx3AuTJwaRFnim/UDhgZc0W 4YFdGDqg34f7t71usHpwDEnS5hi8POlnzEVH85YjjJmhdLIOxqR59loDzeOWv1a/ZIoj 5iaRkS/aqXuNGTBBjsMIj0/6wylHQt83BkGPdi5OGF1d4yNe6JOXwc/woRyCSefZh9Ky +YKLoJfOvW4qv17puumaOYwoIWkAwBOXmR8twgqQ182Z/VSevdR1x6hrk4q8KmmPFkX7 9MJg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:message-id:date:subject:cc:to:from; bh=e706RoWlXUoR6gZeE8p3JyNfIrqIiY851vXjS2PYhQg=; b=KI2fmFQdexi+dFlo7vdwPUVv648OEsReHpMIFYdi47+5K0JzChVj6GW90KaX4QaLw+ FJv0bSL0CT8becvotfKEpwQ33IvpIAu0eAMkuCbLkazqNm0gHg2RUnGKdoRBy6wM3XLR 6L5hzzkfvBQh5J9R3L/eATS30GLrYA/UlNln7SifQ/Yn1mqWEzPJ2L78BEo2QODHJ705 PcB7MGKwPeMgF9gnv08EmDE68NGgpHenXLW5up/sTZHTwvnP0idD4n74j26nAN5BsYAq LO8NzUYfgItiUKoyOYaCnamerNWDOvohm32q46zOagGqiyMDK3uDRz2meh31XEOKzlZB OHsg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=mediatek.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id o3si3475527edc.246.2021.07.14.08.54.15; Wed, 14 Jul 2021 08:54:48 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=mediatek.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232409AbhGNPxw (ORCPT + 99 others); Wed, 14 Jul 2021 11:53:52 -0400 Received: from mailgw01.mediatek.com ([60.244.123.138]:38956 "EHLO mailgw01.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S232318AbhGNPxw (ORCPT ); Wed, 14 Jul 2021 11:53:52 -0400 X-UUID: b090343b934743d1a9bd2274c24f4df9-20210714 X-UUID: b090343b934743d1a9bd2274c24f4df9-20210714 Received: from mtkcas10.mediatek.inc [(172.21.101.39)] by mailgw01.mediatek.com (envelope-from ) (Generic MTA with TLSv1.2 ECDHE-RSA-AES256-SHA384 256/256) with ESMTP id 1024932218; Wed, 14 Jul 2021 23:50:56 +0800 Received: from mtkcas10.mediatek.inc (172.21.101.39) by mtkmbs01n1.mediatek.inc (172.21.101.68) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Wed, 14 Jul 2021 23:50:54 +0800 Received: from mtksdccf07.mediatek.inc (172.21.84.99) by mtkcas10.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Wed, 14 Jul 2021 23:50:54 +0800 From: Deren Wu To: Felix Fietkau , Lorenzo Bianconi CC: Sean Wang , Soul Huang , YN Chen , Leon Yen , Eric-SY Chang , Deren Wu , KM Lin , Robin Chiu , CH Yeh , Posh Sun , Eric Liang , Stella Chang , Jimmy Hu , , , linux-wireless , linux-mediatek , Deren Wu Subject: [PATCH] mt76: mt7921: Fix out of order process by invalid event pkt Date: Wed, 14 Jul 2021 23:50:52 +0800 Message-ID: <36a686fd5ffcbe13dfd26cff7436dbb88a294dd2.1626248054.git.deren.wu@mediatek.com> X-Mailer: git-send-email 2.18.0 MIME-Version: 1.0 Content-Type: text/plain X-MTK: N Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org From: Deren Wu The acceptable event report should inlcude original CMD-ID. Otherwise, drop unexpected result from fw. Fixes: 1c099ab44727c ("mt76: mt7921: add MCU support") Signed-off-by: Jimmy Hu Signed-off-by: Deren Wu --- drivers/net/wireless/mediatek/mt76/mt7921/mcu.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/net/wireless/mediatek/mt76/mt7921/mcu.c b/drivers/net/wireless/mediatek/mt76/mt7921/mcu.c index c2c4dc196802..c6dff5473d36 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7921/mcu.c +++ b/drivers/net/wireless/mediatek/mt76/mt7921/mcu.c @@ -157,6 +157,7 @@ mt7921_mcu_parse_response(struct mt76_dev *mdev, int cmd, struct sk_buff *skb, int seq) { struct mt7921_mcu_rxd *rxd; + int mcu_cmd = cmd & MCU_CMD_MASK; int ret = 0; if (!skb) { @@ -194,6 +195,9 @@ mt7921_mcu_parse_response(struct mt76_dev *mdev, int cmd, skb_pull(skb, sizeof(*rxd)); event = (struct mt7921_mcu_uni_event *)skb->data; ret = le32_to_cpu(event->status); + /* skip invalid event */ + if (mcu_cmd != event->cid) + ret = -EAGAIN; break; } case MCU_CMD_REG_READ: { -- 2.25.1