Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp2265445ybl; Thu, 19 Dec 2019 10:40:47 -0800 (PST) X-Google-Smtp-Source: APXvYqyZnEd07U+ZLH3AeGR972dfbc+bID6n3DnwuiKG/+nMT18w0IjGeYG11+Ec2LoXcIhnYBjn X-Received: by 2002:a9d:7ac9:: with SMTP id m9mr9925599otn.80.1576780847170; Thu, 19 Dec 2019 10:40:47 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1576780847; cv=none; d=google.com; s=arc-20160816; b=Vw9o0b2j5L7gy6Gm6IFQ2TF1VeG9ODU+8z2wD+oHStrJ+KU65RX0LeOsV6KoFmnZ9f D/iiTl04aBkzW1CSaVjaO9JRUesRwRvNR2BIxbhqcRYnXGbjVGct1b/QUERzG7B2VgVS 3ZWrHsB+GBP9D6HPaTxREwl1YaLyvMXjVKkVXwKJPrmOe9D8bXuNn2ucAasZAhI6oWgh yr61EsEupyqftCBCdM+PAP6yK3jwQHeVQiWTZPTMIn+n6YTr09WurF+wjP2bVqgx1wsC QGI9TzhZs6Mv0OIFlxPfbIP651lyd5NBeOY0l1SJc4PTn1FllX7YD1ALAlW0B829KcvN kV9g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=Ri8YcuQbhsB4W7YO1LzuVbhbq1humadoi8/n/lYscB8=; b=zbYBvUgSYGCEE6KfoOVu081TRNS7HFpQ2oHms/zj/T14NVEzbBXbHOGFwscRguKwlX fL0ytuXhdKy0C0Y4so9bKeXVrNmkczkuW+oPL+FwAUFIbVTrPdYRgVbhFtMHvbclUgKE 4WX3gIcw3NxUPTlzxUoR/KSzb9VOo5yeCg8Wp+PozM54AYUHT1PgQ3XUlDwYeXxadJWX TQcszsAFhdYaVWTqq3Z3iLkyTnIV+8f8BbDcnMLkqMj3O5s/CffZlQHq9X1MwYnImcb4 y8vDRAw2zg21pKrWOr6ylUCFWmd/s0N8Z8Q6MwOuQIkpqh5RpNvwkd3ygm0xVbmqbHBq kGLA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=LEO0G8Z+; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id p12si3824388otk.86.2019.12.19.10.40.35; Thu, 19 Dec 2019 10:40:47 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=LEO0G8Z+; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728182AbfLSSjP (ORCPT + 99 others); Thu, 19 Dec 2019 13:39:15 -0500 Received: from mail.kernel.org ([198.145.29.99]:57398 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727507AbfLSSjO (ORCPT ); Thu, 19 Dec 2019 13:39:14 -0500 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 57BAC222C2; Thu, 19 Dec 2019 18:39:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576780753; bh=t9tvHhA04/aiiLzjrLCxtD1JyJV9fKexIXDsX4Gg0zw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=LEO0G8Z+1acksCNbfvBhyL6LxrsMH7rjMK9wxgTn498IMuw4NXvGVMrxgIyEPttf2 nSKaG76wZq6mK0ukcl594EQzEacb60JTI3rzzYEmQfWwAlzczJnY2eWdPbo4diA67+ XtOFxek+APDMc56lz1d9ZHLPg3KaOaIRrmGjDI4M= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Larry Finger , Kalle Valo Subject: [PATCH 4.4 102/162] rtlwifi: rtl8192de: Fix missing callback that tests for hw release of buffer Date: Thu, 19 Dec 2019 19:33:30 +0100 Message-Id: <20191219183213.975401652@linuxfoundation.org> X-Mailer: git-send-email 2.24.1 In-Reply-To: <20191219183150.477687052@linuxfoundation.org> References: <20191219183150.477687052@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Larry Finger commit 3155db7613edea8fb943624062baf1e4f9cfbfd6 upstream. In commit 38506ecefab9 ("rtlwifi: rtl_pci: Start modification for new drivers"), a callback needed to check if the hardware has released a buffer indicating that a DMA operation is completed was not added. Fixes: 38506ecefab9 ("rtlwifi: rtl_pci: Start modification for new drivers") Cc: Stable # v3.18+ Signed-off-by: Larry Finger Signed-off-by: Kalle Valo Signed-off-by: Greg Kroah-Hartman --- drivers/net/wireless/realtek/rtlwifi/rtl8192de/sw.c | 1 + drivers/net/wireless/realtek/rtlwifi/rtl8192de/trx.c | 17 +++++++++++++++++ drivers/net/wireless/realtek/rtlwifi/rtl8192de/trx.h | 2 ++ 3 files changed, 20 insertions(+) --- a/drivers/net/wireless/realtek/rtlwifi/rtl8192de/sw.c +++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192de/sw.c @@ -242,6 +242,7 @@ static struct rtl_hal_ops rtl8192de_hal_ .led_control = rtl92de_led_control, .set_desc = rtl92de_set_desc, .get_desc = rtl92de_get_desc, + .is_tx_desc_closed = rtl92de_is_tx_desc_closed, .tx_polling = rtl92de_tx_polling, .enable_hw_sec = rtl92de_enable_hw_security_config, .set_key = rtl92de_set_key, --- a/drivers/net/wireless/realtek/rtlwifi/rtl8192de/trx.c +++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192de/trx.c @@ -862,6 +862,23 @@ u32 rtl92de_get_desc(u8 *p_desc, bool is return ret; } +bool rtl92de_is_tx_desc_closed(struct ieee80211_hw *hw, + u8 hw_queue, u16 index) +{ + struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw)); + struct rtl8192_tx_ring *ring = &rtlpci->tx_ring[hw_queue]; + u8 *entry = (u8 *)(&ring->desc[ring->idx]); + u8 own = (u8)rtl92de_get_desc(entry, true, HW_DESC_OWN); + + /* a beacon packet will only use the first + * descriptor by defaut, and the own bit may not + * be cleared by the hardware + */ + if (own) + return false; + return true; +} + void rtl92de_tx_polling(struct ieee80211_hw *hw, u8 hw_queue) { struct rtl_priv *rtlpriv = rtl_priv(hw); --- a/drivers/net/wireless/realtek/rtlwifi/rtl8192de/trx.h +++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192de/trx.h @@ -740,6 +740,8 @@ bool rtl92de_rx_query_desc(struct ieee80 void rtl92de_set_desc(struct ieee80211_hw *hw, u8 *pdesc, bool istx, u8 desc_name, u8 *val); u32 rtl92de_get_desc(u8 *pdesc, bool istx, u8 desc_name); +bool rtl92de_is_tx_desc_closed(struct ieee80211_hw *hw, + u8 hw_queue, u16 index); void rtl92de_tx_polling(struct ieee80211_hw *hw, u8 hw_queue); void rtl92de_tx_fill_cmddesc(struct ieee80211_hw *hw, u8 *pdesc, bool b_firstseg, bool b_lastseg,