From mboxrd@z Thu Jan 1 00:00:00 1970 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 085E0C4332F for ; Sun, 2 Jan 2022 14:18:20 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233155AbiABOSR (ORCPT ); Sun, 2 Jan 2022 09:18:17 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35338 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229760AbiABOSQ (ORCPT ); Sun, 2 Jan 2022 09:18:16 -0500 Received: from mail.marcansoft.com (marcansoft.com [IPv6:2a01:298:fe:f::2]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8FD8FC061761; Sun, 2 Jan 2022 06:18:16 -0800 (PST) Received: from [127.0.0.1] (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) (Authenticated sender: marcan@marcan.st) by mail.marcansoft.com (Postfix) with ESMTPSA id 6262D425C1; Sun, 2 Jan 2022 14:18:06 +0000 (UTC) Message-ID: Date: Sun, 2 Jan 2022 23:18:04 +0900 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0) Gecko/20100101 Thunderbird/91.4.1 Subject: Re: [PATCH 03/34] brcmfmac: firmware: Support having multiple alt paths Content-Language: en-US To: Dmitry Osipenko , Kalle Valo , "David S. Miller" , Jakub Kicinski , Rob Herring , "Rafael J. Wysocki" , Len Brown , Arend van Spriel , Franky Lin , Hante Meuleman , Chi-hsien Lin , Wright Feng , Chung-hsien Hsu Cc: Sven Peter , Alyssa Rosenzweig , Mark Kettenis , =?UTF-8?B?UmFmYcWCIE1pxYJlY2tp?= , Pieter-Paul Giesberts , Linus Walleij , Hans de Goede , "John W. Linville" , "Daniel (Deognyoun) Kim" , "brian m. carlson" , linux-wireless@vger.kernel.org, netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-acpi@vger.kernel.org, brcm80211-dev-list.pdl@broadcom.com, SHA-cyfmac-dev-list@infineon.com References: <20211226153624.162281-1-marcan@marcan.st> <20211226153624.162281-4-marcan@marcan.st> <8e99eb47-2bc1-7899-5829-96f2a515b2cb@gmail.com> From: Hector Martin In-Reply-To: <8e99eb47-2bc1-7899-5829-96f2a515b2cb@gmail.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-acpi@vger.kernel.org On 2022/01/02 15:45, Dmitry Osipenko wrote: > 26.12.2021 18:35, Hector Martin пишет: >> -static char *brcm_alt_fw_path(const char *path, const char *board_type) >> +static const char **brcm_alt_fw_paths(const char *path, const char *board_type) >> { >> char alt_path[BRCMF_FW_NAME_LEN]; >> + char **alt_paths; >> char suffix[5]; >> >> strscpy(alt_path, path, BRCMF_FW_NAME_LEN); >> @@ -609,27 +612,46 @@ static char *brcm_alt_fw_path(const char *path, const char *board_type) >> strlcat(alt_path, board_type, BRCMF_FW_NAME_LEN); >> strlcat(alt_path, suffix, BRCMF_FW_NAME_LEN); >> >> - return kstrdup(alt_path, GFP_KERNEL); >> + alt_paths = kzalloc(sizeof(char *) * 2, GFP_KERNEL); > > array_size()? Of what array? > >> + alt_paths[0] = kstrdup(alt_path, GFP_KERNEL); >> + >> + return (const char **)alt_paths; > > Why this casting is needed? Because implicit conversion from char ** to const char ** is not legal in C, as that could cause const unsoundness if you do this: char *foo[1]; const char **bar = foo; bar[0] = "constant string"; foo[0][0] = '!'; // clobbers constant string But it's fine in this case since the non-const pointer disappears so nothing can ever write through it again. -- Hector Martin (marcan@marcan.st) Public Key: https://mrcn.st/pub