Received: by 2002:a05:6a10:c604:0:0:0:0 with SMTP id y4csp395220pxt; Thu, 5 Aug 2021 02:19:55 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwzZKlcEQH+595f4V/RDSHfr5kzmSTD94rXKmh+EB2Oq3fXgfy3VFaOHFNvXtm1+6cf4RNW X-Received: by 2002:a17:906:f11:: with SMTP id z17mr3853612eji.385.1628155194915; Thu, 05 Aug 2021 02:19:54 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1628155194; cv=none; d=google.com; s=arc-20160816; b=FKMCi4FbFS0pPx+nTkQfSDD1iCHZUoryQUGGsxfSHcvQDqq/9LnuYKg2xCOwV7HXHT SAi8tUUVsoAymUEZQNlXucOzM4zq7Gmi3D0ImK6rBJN4oUwW94fs7oyu2CIpVxv94pfx fnSt7U67lkrFaDoU/EIX4nYIAa6I30PxncJFy57P7uYEif6/ytPjsnBeO1shwVmVMh0P nd/GQIBZUiuaDbH32yJifrTFSGNQJgQaj31uHwNcvrScbpN1qsz7Z/0eZauwOwAxSHvD iBWezNaIXXqz2GImYIOqtE86H+7/GW4YIeGEuCylqDAGlocy/LdDbgJ7ZJBBh4HP7M67 KZ0Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:cc:to:subject :message-id:date:from:in-reply-to:references:mime-version :dkim-signature; bh=fFXN1GDx+ZY9KtgSWo8Ue+Fd8NB20QdYpM/y0IVYDbk=; b=jg32Vuu0iLlNUe7pVvyaCZR8XTAUVndc53LzYj6sGI0wZWTo9mQpTuC9X7uxXm6FRG Q0RHYF4EXm/hQVI5xXdxBQn3yd8d6zORlxZ4z9dzb/YA+0euErCbmCq3Rn8J6sVldRUL HejqJT0/7W2n54cmGX5fPxZttZ26c6+MEBAQLaijolZVqXu3KL2movsPg1HYO+u6gGUx 1KI/Fi9QyccFRoQin9v6DffSG/GTeM9asXT+RgC93XckofGZn6SLwtFlaUr4Kv4Sl8Os 1USvLhDD5F1SmyHbhI8B8hQ2gQMGu2tPiKiI07mmIrjkGMfeaPTfyDuvsZ0Pv5l3paOo ilVw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=cBiXIjV2; 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=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id z61si5470356ede.185.2021.08.05.02.19.27; Thu, 05 Aug 2021 02:19:54 -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; dkim=pass header.i=@linaro.org header.s=google header.b=cBiXIjV2; 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=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236120AbhHEJPI (ORCPT + 99 others); Thu, 5 Aug 2021 05:15:08 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54312 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232367AbhHEJPH (ORCPT ); Thu, 5 Aug 2021 05:15:07 -0400 Received: from mail-lj1-x235.google.com (mail-lj1-x235.google.com [IPv6:2a00:1450:4864:20::235]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D5857C061765 for ; Thu, 5 Aug 2021 02:14:52 -0700 (PDT) Received: by mail-lj1-x235.google.com with SMTP id x9so4199312ljj.2 for ; Thu, 05 Aug 2021 02:14:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=fFXN1GDx+ZY9KtgSWo8Ue+Fd8NB20QdYpM/y0IVYDbk=; b=cBiXIjV2mnr0k8pAM8Nrz0D+Ru82yIscVI5XOIrTwmvCcuovZIPLz964rmtrnT4Tf5 UTZXYMS4am7p0yo2N+6SouOvZk9h/N8WJDXXNeByaYVPK97kvGRW1Gc4F8mBsiQy2JcP GJYzPYGh//0nHeteH8OZx3odyqQYtsW4APl+vPDFrg6f3Fmxphg042H7eZ8sq9SvIoJ1 FwyDRGRmshBHvBZJOVUz1MM3DUhEfiB50xWm0EN77rJk5xHPC6tGrVVfLymXYKFCxbUf lWEfmz6OhHdzgIPJd9LZJl1G0zFyvhsNStTV3IMlVrAbSP8mW8/6Bd0+N6emm2/UGjxw 3ksg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=fFXN1GDx+ZY9KtgSWo8Ue+Fd8NB20QdYpM/y0IVYDbk=; b=KxUwOMKgTpi/HwjyHnGlDn2OD3p/YKWNwvueDjIlkUtoJ2yISBmzO5S5CMb5wThNRC hI/v7mml5lCXSuNnWg7J8d79SYcenk2Giw+xVSDZpmSHlRZMreDFhOKgDKnNSko4mxa3 IYloJxwDIcE9B1w8NUoh+BJ10AlQ+UVsypsRF8R2yO39tnMp1WBTJwD6ZRsAK9S1JzXk JkH/HndwrdqV0tbI2lw8gSVenjMdr06xjLAzqjX/6G+lKM8F8W9GZLPFdZ8nh/CPzhnE e/GZDTyVMK+G/WaA3JT8oLI7dqBnsp1IGM/O0ERJh8n97xmAqrX87Fl72jvrSKQn40L7 23jQ== X-Gm-Message-State: AOAM533t9drjhDEvhY0+qdb2z0zYfDdW736DuEBjfW75nLsfYmFf3F90 pHTlZRIUIShWQggcgV6ruLmVNuvA/raKcWslmtrRTg== X-Received: by 2002:a05:651c:1318:: with SMTP id u24mr2476741lja.200.1628154891272; Thu, 05 Aug 2021 02:14:51 -0700 (PDT) MIME-Version: 1.0 References: <20210804153434.3429348-1-linus.walleij@linaro.org> <67ba8440-8f39-daa0-ef39-e506007fd46a@gmail.com> In-Reply-To: <67ba8440-8f39-daa0-ef39-e506007fd46a@gmail.com> From: Linus Walleij Date: Thu, 5 Aug 2021 11:14:40 +0200 Message-ID: Subject: Re: [PATCH v2] brcmfmac: firmware: Fix firmware loading To: Dmitry Osipenko Cc: Arend van Spriel , Franky Lin , Hante Meuleman , Chi-hsien Lin , Wright Feng , Chung-hsien Hsu , Kalle Valo , linux-wireless , Stefan Hansson , Arend van Spriel Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org On Thu, Aug 5, 2021 at 3:22 AM Dmitry Osipenko wrote: > 04.08.2021 18:34, Linus Walleij =D0=BF=D0=B8=D1=88=D0=B5=D1=82: > > +static void brcmf_fw_request_done_first(const struct firmware *fw, voi= d *ctx) > > { > > struct brcmf_fw *fwctx =3D ctx; > > + struct brcmf_fw_item *first =3D &fwctx->req->items[0]; > > int ret; > > > > + /* Something failed with the first firmware request, such as not > > + * getting the per-board firmware. Retry this, now using the less > > + * specific path for the first firmware item, i.e. without the bo= ard > > + * suffix. > > + */ > > + if (!fw && !fwctx->tested_board_variant) { > > + fwctx->tested_board_variant =3D true; > > + ret =3D request_firmware_nowait(THIS_MODULE, true, first-= >path, > > + fwctx->dev, GFP_KERNEL, fwc= tx, > > + brcmf_fw_request_done_first= ); > > + return; > > The original code was proceeding on error. Is this a typo here? No, we are testing specifically for fw being NULL and in that case we issue a new request_firmware_nowait() call with ourselves as "done" callback, so we really need to return here. The worker will call the same function again after this but now tested_board_variant is true. Yours, Linus Walleij