From patchwork Mon Aug 3 18:53:47 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Larry Finger X-Patchwork-Id: 6932621 X-Patchwork-Delegate: kvalo@adurom.com Return-Path: X-Original-To: patchwork-linux-wireless@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork2.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork2.web.kernel.org (Postfix) with ESMTP id CBE5BC05AC for ; Mon, 3 Aug 2015 18:54:23 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id EF64520634 for ; Mon, 3 Aug 2015 18:54:22 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 0BA4F205CB for ; Mon, 3 Aug 2015 18:54:22 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755263AbbHCSyU (ORCPT ); Mon, 3 Aug 2015 14:54:20 -0400 Received: from mail-oi0-f42.google.com ([209.85.218.42]:36475 "EHLO mail-oi0-f42.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754874AbbHCSyT (ORCPT ); Mon, 3 Aug 2015 14:54:19 -0400 Received: by oibv126 with SMTP id v126so17642420oib.3 for ; Mon, 03 Aug 2015 11:54:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=kMWEL/3Z6vB4JOgVt1Nx1yVjt21s0k574piXfQGEivI=; b=tW0S5gjp+BJQyc1kiG4l3H+ytX0QEOjST73ZFZjEgPlvWRhBdPmfx7RCPjyZsgggsI cY4jsGVVEtzskSagtTQD0OIt5Hyi/WENST33/zEClrdaKZibb9p4zlUNJvzZWbUEQgfe YhwkhI1/z1IhovPONba73BDzbFFSCQraLnf9bukBJyubZbGHOy0SSWqgODam8JoLGnaw 5EALePpixFCXuvh5EBPDGWDSxqTIT6l6/oZLB9va+1JcrHX8JHHx6c2mnHi7EYu0wkM3 Vs5ahLdlyOGr6tEXObZmjh/0oQHyIsdAp/Kx5DV2xDgproQBdahdd6LGi9kpw3dm436e 5dyw== X-Received: by 10.202.85.203 with SMTP id j194mr16819597oib.101.1438628059211; Mon, 03 Aug 2015 11:54:19 -0700 (PDT) Received: from linux.site (cpe-24-31-249-175.kc.res.rr.com. [24.31.249.175]) by smtp.gmail.com with ESMTPSA id fh10sm7905709obc.1.2015.08.03.11.54.17 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 03 Aug 2015 11:54:18 -0700 (PDT) From: Larry Finger To: kvalo@codeaurora.org Cc: linux-wireless@vger.kernel.org, pkshih , shaofu , Larry Finger Subject: [PATCH NEXT 2/7] rtlwifi: Fix programming of CAM content Date: Mon, 3 Aug 2015 13:53:47 -0500 Message-Id: <1438628032-5865-3-git-send-email-Larry.Finger@lwfinger.net> X-Mailer: git-send-email 2.1.4 In-Reply-To: <1438628032-5865-1-git-send-email-Larry.Finger@lwfinger.net> References: <1438628032-5865-1-git-send-email-Larry.Finger@lwfinger.net> Sender: linux-wireless-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org X-Spam-Status: No, score=-5.3 required=5.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_HI, RP_MATCHES_RCVD, T_DKIM_INVALID, UNPARSEABLE_RELAY, URIBL_BLACK autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP From: pkshih There is a potential race condition when the control byte of a CAM entry is written first. Signed-off-by: pkshih Signed-off-by: shaofu Signed-off-by: Larry Finger --- drivers/net/wireless/rtlwifi/cam.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/net/wireless/rtlwifi/cam.c b/drivers/net/wireless/rtlwifi/cam.c index 8fe8b4c..cc7acbf 100644 --- a/drivers/net/wireless/rtlwifi/cam.c +++ b/drivers/net/wireless/rtlwifi/cam.c @@ -45,12 +45,13 @@ static void rtl_cam_program_entry(struct ieee80211_hw *hw, u32 entry_no, u32 target_command; u32 target_content = 0; - u8 entry_i; + s8 entry_i; RT_PRINT_DATA(rtlpriv, COMP_SEC, DBG_DMESG, "Key content :", key_cont_128, 16); - for (entry_i = 0; entry_i < CAM_CONTENT_COUNT; entry_i++) { + /* 2-5 fill 128key,6-7 are reserved */ + for (entry_i = CAM_CONTENT_COUNT - 3; entry_i >= 0; entry_i--) { target_command = entry_i + CAM_CONTENT_COUNT * entry_no; target_command = target_command | BIT(31) | BIT(16); @@ -62,6 +63,7 @@ static void rtl_cam_program_entry(struct ieee80211_hw *hw, u32 entry_no, target_content); rtl_write_dword(rtlpriv, rtlpriv->cfg->maps[RWCAM], target_command); + udelay(100); RT_TRACE(rtlpriv, COMP_SEC, DBG_LOUD, "WRITE %x: %x\n",