From patchwork Fri Dec 2 06:05:19 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ping-Ke Shih X-Patchwork-Id: 13062231 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0E3CCC4332F for ; Fri, 2 Dec 2022 06:06:38 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232213AbiLBGGh (ORCPT ); Fri, 2 Dec 2022 01:06:37 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59330 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230211AbiLBGGf (ORCPT ); Fri, 2 Dec 2022 01:06:35 -0500 Received: from rtits2.realtek.com.tw (rtits2.realtek.com [211.75.126.72]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 5DA7CDC84A for ; Thu, 1 Dec 2022 22:06:31 -0800 (PST) Authenticated-By: X-SpamFilter-By: ArmorX SpamTrap 5.77 with qID 2B265bh06001501, This message is accepted by code: ctloc85258 Received: from mail.realtek.com (rtexh36505.realtek.com.tw[172.21.6.25]) by rtits2.realtek.com.tw (8.15.2/2.81/5.90) with ESMTPS id 2B265bh06001501 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=FAIL); Fri, 2 Dec 2022 14:05:37 +0800 Received: from RTEXMBS04.realtek.com.tw (172.21.6.97) by RTEXH36505.realtek.com.tw (172.21.6.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.32; Fri, 2 Dec 2022 14:06:23 +0800 Received: from localhost (172.21.69.188) by RTEXMBS04.realtek.com.tw (172.21.6.97) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.7; Fri, 2 Dec 2022 14:06:22 +0800 From: Ping-Ke Shih To: CC: , Subject: [PATCH 0/2] wifi: rtw89: adjust early loading firmware for SECURITY_LOADPIN_ENFORCE Date: Fri, 2 Dec 2022 14:05:19 +0800 Message-ID: <20221202060521.501512-1-pkshih@realtek.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 X-Originating-IP: [172.21.69.188] X-ClientProxiedBy: RTEXMBS02.realtek.com.tw (172.21.6.95) To RTEXMBS04.realtek.com.tw (172.21.6.97) X-KSE-ServerInfo: RTEXMBS04.realtek.com.tw, 9 X-KSE-AntiSpam-Interceptor-Info: trusted connection X-KSE-Antiphishing-Info: Clean X-KSE-Antiphishing-ScanningType: Deterministic X-KSE-Antiphishing-Method: None X-KSE-Antiphishing-Bases: 12/02/2022 05:46:00 X-KSE-AttachmentFiltering-Interceptor-Info: no applicable attachment filtering rules found X-KSE-Antivirus-Interceptor-Info: scan successful X-KSE-Antivirus-Info: =?big5_tw?b?Q2xlYW4sIGJhc2VzOiAyMDIyLzEyLzIgpFekyCAwMToy?= =?big5_tw?b?MDowMA==?= X-KSE-BulkMessagesFiltering-Scan-Result: protection disabled X-KSE-ServerInfo: RTEXH36505.realtek.com.tw, 9 X-KSE-Attachment-Filter-Triggered-Rules: Clean X-KSE-Attachment-Filter-Triggered-Filters: Clean X-KSE-BulkMessagesFiltering-Scan-Result: protection disabled Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org Originally, we early load partial firmware to know its capability before register_hw(), because it can save some loading time. However, a platform can enable SECURITY_LOADPIN_ENFORCE that disallows to load firmware partially, so we load full firmware instead in this kind of platform. The costs of loading partial and full firmware are about 10us and 100us in 10+ years old computer, so I think this isn't very critical for users. We are still thinking if we can fork a work during PCI probe to load firmware and register_hw(), but this will be a big change of initial flow. Before the implement, this patchset can let driver works as expectation and avoid kernel warning if SECURITY_LOADPIN_ENFORCE is enabled. Zong-Zhe Yang (2): wifi: rtw89: don't request partial firmware if SECURITY_LOADPIN_ENFORCE wifi: rtw89: request full firmware only once if it's early requested drivers/net/wireless/realtek/rtw89/core.c | 6 ++- drivers/net/wireless/realtek/rtw89/fw.c | 60 +++++++++++++++++------ drivers/net/wireless/realtek/rtw89/fw.h | 22 +++++++-- 3 files changed, 69 insertions(+), 19 deletions(-)