Linux wireless drivers development
 help / color / mirror / Atom feed
* Re: kernel BUG at crypto/asymmetric_keys/public_key.c:80
From: Johannes Berg @ 2017-11-22 18:42 UTC (permalink / raw)
  To: Arend van Spriel, Florian Fainelli, open list, netdev
  Cc: David S. Miller, Herbert Xu, David Howells, linux-wireless
In-Reply-To: <2ef18f35-bb00-2f4b-45fe-1beb3cdd0745@broadcom.com>

On Wed, 2017-11-22 at 19:29 +0100, Arend van Spriel wrote:
> + Johannes
> 
>  >>>     BUG_ON(!sig->digest);
>          BUG_ON(!sig->s);

I *think* this is the same bug that was reported before, then this
should fix it:

https://git.kernel.org/pub/scm/linux/kernel/git/davem/net.git/commit/?id=d7be102f2945a626f55e0501e52bb31ba3e77b81

Can you try?

johannes

^ permalink raw reply

* Re: brcmfmac: Unable to handle kernel paging request at virtual address 726f6674616cd8
From: Stefan Wahren @ 2017-11-22 19:17 UTC (permalink / raw)
  To: Franky Lin, Chi-Hsien Lin, Wright Feng, Arend van Spriel,
	Hante Meuleman
  Cc: brcm80211-dev-list.pdl, linux-wireless, Kalle Valo,
	brcm80211-dev-list
In-Reply-To: <08b0ba6f-d4e7-576e-18fe-98e8247d2d91@broadcom.com>

Hi Arend,

> Arend van Spriel <arend.vanspriel@broadcom.com> hat am 22. November 2017 um 19:23 geschrieben:
> 
> 
> On 22-11-17 17:20, Stefan Wahren wrote:
> > Hi,
> > 
> >> Stefan Wahren <stefan.wahren@i2se.com> hat am 12. November 2017 um 17:50 geschrieben:
> >>
> >>
> >> Hi,
> >> i discovered a random oops during probe of brcmfmac on Raspberry Pi 3 in yesterdays kernelci run for net-next [1]. I need to point out there is no DT entry for the wifi chip on Raspberry Pi 3 in the lack of a driver for the necessary GPIO expander. So the "HT Avail timeout" is expected.
> >>
> >> I was also able to trigger this oops by calling "modprobe brcmfmac" on my Raspberry Pi 3 with latest linux-next.
> >>
> >> Any help to fix this is appreciated.
> >>
> >> [1] - https://storage.kernelci.org/net-next/master/v4.14-rc8-2221-ga8a6f1e4ea78/arm64/defconfig+kselftest/lab-baylibre/boot-bcm2837-rpi-3-b.txt
> >>
> > 
> > the issue still persists in linux-next-20171122:
> > 
> ...
> 
> seems like a use-after-free. We do a device_release_driver() twice. Once 
> for sdio func #1 and for sdio func #2. This was introduced by:
> 
> commit 7a51461fc2da82a6c565a3ee65c41c197f28225d
> Author: Arend Van Spriel <arend.vanspriel@broadcom.com>
> Date:   Mon Jun 12 12:47:34 2017 +0100
> 
>      brcmfmac: unbind all devices upon failure in firmware callback
> 
> What we do is:
> 
>          device_release_driver(dev);
>          device_release_driver(&sdiodev->func[2]->dev);
> 
> with the assumption that dev == &sdiodev->func[1]->dev. I wonder if that 
> is always true. The error print did not make it in your log. Maybe we 
> should make it explicit here (see below).

i tried it, but the issue still occurs.

Maybe this is helpful but this issue doesn't happend everytime. Sometimes i need 2 attemps via unloading/loading.

> 
> Regards,
> Arend
> ---
> 
> diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c 
> b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
> index 613caca..0fda9a4 100644
> --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
> +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
> @@ -4096,7 +4096,7 @@ static void brcmf_sdio_firmware_callback(struct 
> device *dev, int err,
>          sdio_release_host(sdiodev->func[1]);
>   fail:
>          brcmf_dbg(TRACE, "failed: dev=%s, err=%d\n", dev_name(dev), err);
> -       device_release_driver(dev);
> +       device_release_driver(&sdiodev->func[1]->dev);
>          device_release_driver(&sdiodev->func[2]->dev);
>   }
>

^ permalink raw reply

* Re: pull-request: iwlwifi 2017-11-19
From: Luis R. Rodriguez @ 2017-11-22 19:46 UTC (permalink / raw)
  To: Luca Coelho; +Cc: Kalle Valo, mcgrof, sedat.dilek, linux-wireless, linuxwifi
In-Reply-To: <1511264260.4011.274.camel@coelho.fi>

On Tue, Nov 21, 2017 at 01:37:40PM +0200, Luca Coelho wrote:
> On Tue, 2017-11-21 at 12:42 +0200, Kalle Valo wrote:
> > Luca Coelho <luca@coelho.fi> writes:
> > 
> > > > [   10.630285] iwlwifi 0000:04:00.0: firmware: failed to load
> > > > iwlwifi-8265-34.ucode (-2)
> > > > [   10.630331] iwlwifi 0000:04:00.0: Direct firmware load for
> > > > iwlwifi-8265-34.ucode failed with error -2
> > > > [   10.630454] iwlwifi 0000:04:00.0: firmware: failed to load
> > > > iwlwifi-8265-33.ucode (-2)
> > > > [   10.630479] iwlwifi 0000:04:00.0: Direct firmware load for
> > > > iwlwifi-8265-33.ucode failed with error -2
> > > > [   10.630486] iwlwifi 0000:04:00.0: firmware: failed to load
> > > > iwlwifi-8265-32.ucode (-2)
> > > > [   10.630510] iwlwifi 0000:04:00.0: Direct firmware load for
> > > > iwlwifi-8265-32.ucode failed with error -2
> > > > [   10.636423] iwlwifi 0000:04:00.0: firmware: direct-loading
> > > > firmware
> > > > iwlwifi-8265-31.ucode
> > > > [   10.637463] iwlwifi 0000:04:00.0: loaded firmware version
> > > > 31.532993.0 op_mode iwlmvm
> > > 
> > > This is an unfortunate side-effect of the way firmwares are
> > > loaded. 
> > > There is currently no way to prevent these error messages by making
> > > some files optional... But you can ignore them.  Or, even better,
> > > upgrade your firmware to the latest version the driver supports. :)
> > 
> > Or even better that we improve request_firmware()&co to make it
> > possible
> > not to print an error message :)
> 
> The last time we discussed this, Luis was working on changes to the
> firmware subsystem APIs, but I stopped following and have no idea what
> happened with those patches...

You guys dropped the ball on this but I don't blame you, the state of affairs
of evolving anything on the firmware API has been a pain in the ass for ages.

I nose dived last time a "no warn" patch for async was porposed, I particularly
looked into how ath10k firmware loads [0], someone should really consider
making docs out of that email for ath10k...  anyway I *confirmed* that both
iwlwifi and ath10k share the same intent:

"do not warn if firmware is missing"

But they do this for an API revision series. So rather its:

"Lookup for firmware API start=x, end=y, and only warn if nothing is found"

The good news is that the code is implemented, however it was for the
"driver data API" and I had only ported iwlwifi [1] [2] (look at use of
DRIVER_DATA_API() macros).

In fact the iwlwifi firmware use for api revision uses recursion, I modified my
solution to not use it, making it deterministic as well, but that code was
written for the driver data API. As soon as we decide on a path forward on *how*
to evolve the firmware API we can consider adding such solution or extensions
in. Whether that be the simple "do not warn" on async calls or the full "look
for these revisions for me, and don't warn". Both are things I have already
implemented, its just then a matter of how to merge.

The thing *stalling* firmware API progress was a technical debate on whether
or not the firmware API should evolve through:

a) Functional driven API
b) Data driven API

Greg put his foot down on a) and I finally came to agree with him.

We seem to have reached a consensus on how to proceed forward slowly and
this means a cleanup without the data driven API.

So *other good news* is that last week I worked and published two patch sets
to help in this direction.

One is a set of fixes [3], and the other is a set of cleanups for the firmware
API which paves the way for a way to consider evolving the API without the
whole hated driver data crap approach [4], for consideration for v4.16.

I have these two patch sets in a git tree branch, just ignore the last
commit there for now [6], as it was taking the old data driven API
approach to the firmware API. Note that this *may* still be a good
approach forward, however it does not matter. Once the cleanup is
merged, it should be fairly easy to decide on a path forward to
evolve the API as that would be the *only* thing left to decide on.

If someone wants to be proactive, they can look at this branch, ignore
the last patch ("firmware: add extensible firmware params") and see
how they can nicely come up something like the DRIVER_DATA_API()
macro stuff I did earlier, that or just the "no warn" flag.

Please note that I did want to clearly split private Vs public flags. Public
flags should be for functionality exposed, private for internal hacks.

I could just be a simple matter of adding a public "No warn" flag first,
and only later add the "api revision" functionality.

[0] https://lkml.kernel.org/r/20170810170539.GC27873@wotan.suse.de
[1] https://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux-next.git/commit/?h=20170605-driver-data&id=8a2b582b9938f74827bbffb98a2f95c967c8ccde
[2] https://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux-next.git/commit/?h=20170605-driver-data&id=6cd4c6c8f93fac692ad0014792f1fd410742a1da
[3] https://lkml.kernel.org/r/20171120174535.27000-1-mcgrof@kernel.org
[4] https://lkml.kernel.org/r/20171120182409.27348-1-mcgrof@kernel.org
[5] https://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux-next.git/log/?h=20171117-firmware-flexible
[6] https://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux-next.git/commit/?h=20171117-firmware-flexible&id=9cc12e4c4483c38cf46a71f3c37af9ace67e3e4d

  Luis

^ permalink raw reply

* Re: pull-request: iwlwifi 2017-11-19
From: Luca Coelho @ 2017-11-22 20:50 UTC (permalink / raw)
  To: Luis R. Rodriguez; +Cc: Kalle Valo, sedat.dilek, linux-wireless, linuxwifi
In-Reply-To: <20171122194629.GI729@wotan.suse.de>

On Wed, 2017-11-22 at 20:46 +0100, Luis R. Rodriguez wrote:
> On Tue, Nov 21, 2017 at 01:37:40PM +0200, Luca Coelho wrote:
> > On Tue, 2017-11-21 at 12:42 +0200, Kalle Valo wrote:
> > > Luca Coelho <luca@coelho.fi> writes:
> > > 
> > > > > [   10.630285] iwlwifi 0000:04:00.0: firmware: failed to load
> > > > > iwlwifi-8265-34.ucode (-2)
> > > > > [   10.630331] iwlwifi 0000:04:00.0: Direct firmware load for
> > > > > iwlwifi-8265-34.ucode failed with error -2
> > > > > [   10.630454] iwlwifi 0000:04:00.0: firmware: failed to load
> > > > > iwlwifi-8265-33.ucode (-2)
> > > > > [   10.630479] iwlwifi 0000:04:00.0: Direct firmware load for
> > > > > iwlwifi-8265-33.ucode failed with error -2
> > > > > [   10.630486] iwlwifi 0000:04:00.0: firmware: failed to load
> > > > > iwlwifi-8265-32.ucode (-2)
> > > > > [   10.630510] iwlwifi 0000:04:00.0: Direct firmware load for
> > > > > iwlwifi-8265-32.ucode failed with error -2
> > > > > [   10.636423] iwlwifi 0000:04:00.0: firmware: direct-loading
> > > > > firmware
> > > > > iwlwifi-8265-31.ucode
> > > > > [   10.637463] iwlwifi 0000:04:00.0: loaded firmware version
> > > > > 31.532993.0 op_mode iwlmvm
> > > > 
> > > > This is an unfortunate side-effect of the way firmwares are
> > > > loaded. 
> > > > There is currently no way to prevent these error messages by
> > > > making
> > > > some files optional... But you can ignore them.  Or, even
> > > > better,
> > > > upgrade your firmware to the latest version the driver
> > > > supports. :)
> > > 
> > > Or even better that we improve request_firmware()&co to make it
> > > possible
> > > not to print an error message :)
> > 
> > The last time we discussed this, Luis was working on changes to the
> > firmware subsystem APIs, but I stopped following and have no idea
> > what
> > happened with those patches...
> 
> You guys dropped the ball on this but I don't blame you, the state of
> affairs
> of evolving anything on the firmware API has been a pain in the ass
> for ages.

Luis,

I really appreciate your work on this, don't get me wrong.  But I don't
think we dropped the ball.  We still need the small feature (not sure
if it can be done with a small *change*, though) of not warning when a
firmware is not found.  Nothing changed here.

The problem, and the reason why you see it as my having dropped the
ball, is that the change we needed grew into a massive refactoring of
the entire firmware loading mechanism, with the addition of driver
data, lots of advanced options etc.

You certainly remember that I even reviewed the first patchset, but
then it all snowballed into discussions that led to literally
*hundreds* of emails going back and forth and I just didn't have the
time to follow anymore...

In a selfish way, if I only think about the iwlwifi and ath10k drivers,
 I don't care *how* the "no warning" feature is implemented.  If it is
implemented with the "load from a range", a new concept of "driver
data", a "functional API" or just a simple "optional" flag, it doesn't
matter.  The driver can implement the range search, as it does now. 
The only thing the driver *can't* do at the moment is to get rid of the
warnings.

But, personally, I'm not in a hurry.  It's a bit annoying to get
reports repeatedly from the community about those warnings and having
to explain how things work, but I can live with that.

I'd be happy to help with anything that doesn't involve following
hundreds of emails and reviewing massive refactors in code I'm not
completely familiar with. ;) Let me know.


--
Cheers,
Luca.

^ permalink raw reply

* Re: kernel BUG at crypto/asymmetric_keys/public_key.c:80
From: Florian Fainelli @ 2017-11-22 23:07 UTC (permalink / raw)
  To: Johannes Berg, Arend van Spriel, open list, netdev
  Cc: David S. Miller, Herbert Xu, David Howells, linux-wireless
In-Reply-To: <1511376145.2841.1.camel@sipsolutions.net>

On 11/22/2017 10:42 AM, Johannes Berg wrote:
> On Wed, 2017-11-22 at 19:29 +0100, Arend van Spriel wrote:
>> + Johannes
>>
>>  >>>     BUG_ON(!sig->digest);
>>          BUG_ON(!sig->s);
> 
> I *think* this is the same bug that was reported before, then this
> should fix it:
> 
> https://git.kernel.org/pub/scm/linux/kernel/git/davem/net.git/commit/?id=d7be102f2945a626f55e0501e52bb31ba3e77b81
> 
> Can you try?

My baseline already has this commit actually, is there something else
you would want me to check?

Thanks!
-- 
Florian

^ permalink raw reply

* Re: pull-request mwifiex-firmware 2017-10-31
From: Ben Hutchings @ 2017-11-23  1:37 UTC (permalink / raw)
  To: Ganapathi Bhat, linux-firmware@kernel.org
  Cc: linux-wireless@vger.kernel.org, James Cao, Cathy Luo,
	Mangesh Malusare, Xinming Hu, Zhiyuan Yang,
	Karthik Doddayennegere Ananthapadmanabha, Brian Norris
In-Reply-To: <99832be6bb804911a374c85d1865d0b2@SC-EXCH02.marvell.com>

[-- Attachment #1: Type: text/plain, Size: 1319 bytes --]

On Tue, 2017-10-31 at 15:34 +0000, Ganapathi Bhat wrote:
> The following changes since commit e0494e95192ac5329989f4d128cf95c417d618cc:
> 
>   linux-firmware: update Marvell PCIe-USB8997 firmware image (2017-08-01 23:55:30 +0530)

But that commit is not in linux-firmware.git.

> are available in the git repository at:
> 
>   git://git.marvell.com/mwifiex-firmware.git
> 
> for you to fetch changes up to db3e1855ea46bc1a22b8bbecb400c2909c551cf5:
> 
>   linux-firmware: update Marvell PCIe-USB8997 firmware image (2017-10-31 20:49:53 +0530)
> 
> ----------------------------------------------------------------
> Ganapathi Bhat (1):
>       linux-firmware: update Marvell PCIe-USB8997 firmware image
> 
>  WHENCE                        |   2 +-
>  mrvl/pcieusb8997_combo_v4.bin | Bin 620800 -> 622532 bytes
>  2 files changed, 1 insertion(+), 1 deletion(-)

There are three commits in this repository that aren't in linux-
firmware.git, not one.  Please either:

1. Send a pull request listing all the commits (the  <start> parameter
to git request-pull should be something like "origin/master"), or
2. Rebase this branch to include only the commit you want me to pull,
and send a pull request listing that.

Ben.

-- 
Ben Hutchings
When in doubt, use brute force. - Ken Thompson


[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply

* Re: pull-request: iwlwifi firmwares update 2017-11-15
From: Ben Hutchings @ 2017-11-23  1:55 UTC (permalink / raw)
  To: Luca Coelho, Kyle McMartin
  Cc: linux-wireless, linuxwifi, linux-firmware, Grumbach, Emmanuel
In-Reply-To: <1510767968.4011.124.camel@coelho.fi>

[-- Attachment #1: Type: text/plain, Size: 3134 bytes --]

On Wed, 2017-11-15 at 19:46 +0200, Luca Coelho wrote:
> Hi Kyle,
> 
> This pull-request supersedes my previous one.
> 
> I have updated the firmwares for the 3160, 3168, 7260, 7265D, 8000C and
> 8265 devices and added new FW versions for 8000C, 8265 and the new 9000
> series.
> 
> Please pull or let me know if there are any issues.

Pulled, thanks.  However, I had to a fix up a typo in WHENCE afterward.
 In future, please remember to run 'make check' to validate it.

Ben.

> Cheers,
> Luca.
> 
> 
> The following changes since commit bf04291309d3169c0ad3b8db52564235bbd08e30:
> 
>   WHENCE: Add new qed firmware (2017-10-09 18:03:26 +0100)
> 
> are available in the Git repository at:
> 
>   git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/linux-firmware.git tags/iwlwifi-fw-2017-11-15
> 
> for you to fetch changes up to 85313b4aa4ef0c2ce41bbd0ffdb9b03363256f28:
> 
>   iwlwifi: add firmware version 34 for new 9000 series (2017-11-15 19:21:16 +0200)
> 
> ----------------------------------------------------------------
> iwlwifi: add new FWs for 9000 series and update other ones
> 
> * Add FW version 33 for 9000 series;
> * Add FW version 34 for 8000, 8265 and 9000 series;
> * Update FW version 17 for 3160, 7260 and 7265;
> * Update FW version 29 for 3168 and 7265D;
> 
> ----------------------------------------------------------------
> Luca Coelho (5):
>       iwlwifi: update firmwares for 3160, 3168, 7265D, 8000C and 8265
>       iwlwifi: update firmwares for 3160, 3168, 7260, 7265 and 7265D
>       iwlwifi: add new firmware version 34 for 8000C and 8265
>       iwlwifi: add firmware version 33 for new 9000 series
>       iwlwifi: add firmware version 34 for new 9000 series
> 
>  WHENCE                            |  32 +++++++++++++++++++++++++-------
>  iwlwifi-3160-17.ucode             | Bin 918268 -> 918268 bytes
>  iwlwifi-3168-29.ucode             | Bin 1036372 -> 1036372 bytes
>  iwlwifi-7260-17.ucode             | Bin 1049340 -> 1049340 bytes
>  iwlwifi-7265-17.ucode             | Bin 1180412 -> 1180412 bytes
>  iwlwifi-7265D-29.ucode            | Bin 1036528 -> 1036528 bytes
>  iwlwifi-8000C-31.ucode            | Bin 2309768 -> 2310116 bytes
>  iwlwifi-8000C-34.ucode            | Bin 0 -> 2448976 bytes
>  iwlwifi-8265-31.ucode             | Bin 2303024 -> 2307104 bytes
>  iwlwifi-8265-34.ucode             | Bin 0 -> 2440780 bytes
>  iwlwifi-9000-pu-b0-jf-b0-33.ucode | Bin 0 -> 2632620 bytes
>  iwlwifi-9000-pu-b0-jf-b0-34.ucode | Bin 0 -> 2677620 bytes
>  iwlwifi-9260-th-b0-jf-b0-33.ucode | Bin 0 -> 2637216 bytes
>  iwlwifi-9260-th-b0-jf-b0-34.ucode | Bin 0 -> 2677772 bytes
>  14 files changed, 25 insertions(+), 7 deletions(-)
>  create mode 100644 iwlwifi-8000C-34.ucode
>  create mode 100644 iwlwifi-8265-34.ucode
>  create mode 100644 iwlwifi-9000-pu-b0-jf-b0-33.ucode
>  create mode 100644 iwlwifi-9000-pu-b0-jf-b0-34.ucode
>  create mode 100644 iwlwifi-9260-th-b0-jf-b0-33.ucode
>  create mode 100644 iwlwifi-9260-th-b0-jf-b0-34.ucode
-- 
Ben Hutchings
When in doubt, use brute force. - Ken Thompson


[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply

* Re: pull-request: iwlwifi firmwares update 2017-11-15
From: Luca Coelho @ 2017-11-23  6:14 UTC (permalink / raw)
  To: Ben Hutchings, Kyle McMartin
  Cc: linux-wireless, linuxwifi, linux-firmware, Grumbach, Emmanuel
In-Reply-To: <1511402153.14687.17.camel@decadent.org.uk>

On Thu, 2017-11-23 at 01:55 +0000, Ben Hutchings wrote:
> On Wed, 2017-11-15 at 19:46 +0200, Luca Coelho wrote:
> > Hi Kyle,
> > 
> > This pull-request supersedes my previous one.
> > 
> > I have updated the firmwares for the 3160, 3168, 7260, 7265D, 8000C
> > and
> > 8265 devices and added new FW versions for 8000C, 8265 and the new
> > 9000
> > series.
> > 
> > Please pull or let me know if there are any issues.
> 
> Pulled, thanks.  However, I had to a fix up a typo in WHENCE
> afterward.
>  In future, please remember to run 'make check' to validate it.

Thanks, Ben! Sorry for the typo, I didn't know about 'make check', I'll
make sure I run it every time before sending new pulls from now on.

--
Cheers,
Luca.

^ permalink raw reply

* Re: [PATCH v7 3/3] mt76: add driver code for MT76x2e
From: kbuild test robot @ 2017-11-23  7:05 UTC (permalink / raw)
  To: Felix Fietkau; +Cc: kbuild-all, linux-wireless, kvalo
In-Reply-To: <20171120193549.80831-4-nbd@nbd.name>

[-- Attachment #1: Type: text/plain, Size: 4427 bytes --]

Hi Felix,

I love your patch! Yet something to improve:

[auto build test ERROR on wireless-drivers-next/master]
[also build test ERROR on v4.14 next-20171122]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Felix-Fietkau/dt-bindings-net-add-mt76-wireless-device-binding/20171123-125723
base:   https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-next.git master
config: tile-allyesconfig (attached as .config)
compiler: tilegx-linux-gcc (GCC) 4.6.2
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        make.cross ARCH=tile 

All errors (new ones prefixed by >>):

   drivers/net/wireless/mediatek/mt76/mt76x2_mac.c: In function 'mt76x2_mac_process_rate':
   drivers/net/wireless/mediatek/mt76/mt76x2_mac.c:49:20: error: 'RX_FLAG_SHORTPRE' undeclared (first use in this function)
   drivers/net/wireless/mediatek/mt76/mt76x2_mac.c:49:20: note: each undeclared identifier is reported only once for each function it appears in
   drivers/net/wireless/mediatek/mt76/mt76x2_mac.c:58:19: error: 'RX_FLAG_HT_GF' undeclared (first use in this function)
   drivers/net/wireless/mediatek/mt76/mt76x2_mac.c:61:19: error: 'RX_FLAG_HT' undeclared (first use in this function)
   drivers/net/wireless/mediatek/mt76/mt76x2_mac.c:65:19: error: 'RX_FLAG_VHT' undeclared (first use in this function)
   drivers/net/wireless/mediatek/mt76/mt76x2_mac.c:67:9: error: 'struct ieee80211_rx_status' has no member named 'vht_nss'
   drivers/net/wireless/mediatek/mt76/mt76x2_mac.c:75:19: error: 'RX_FLAG_LDPC' undeclared (first use in this function)
   drivers/net/wireless/mediatek/mt76/mt76x2_mac.c:78:19: error: 'RX_FLAG_SHORT_GI' undeclared (first use in this function)
   drivers/net/wireless/mediatek/mt76/mt76x2_mac.c:81:24: error: 'RX_FLAG_STBC_SHIFT' undeclared (first use in this function)
   drivers/net/wireless/mediatek/mt76/mt76x2_mac.c:87:19: error: 'RX_FLAG_40MHZ' undeclared (first use in this function)
>> drivers/net/wireless/mediatek/mt76/mt76x2_mac.c:90:9: error: 'struct ieee80211_rx_status' has no member named 'vht_flag'
   drivers/net/wireless/mediatek/mt76/mt76x2_mac.c:90:23: error: 'RX_VHT_FLAG_80MHZ' undeclared (first use in this function)

vim +90 drivers/net/wireless/mediatek/mt76/mt76x2_mac.c

    30	
    31	static void
    32	mt76x2_mac_process_rate(struct ieee80211_rx_status *status, u16 rate)
    33	{
    34		u8 idx = FIELD_GET(MT_RXWI_RATE_INDEX, rate);
    35	
    36		switch (FIELD_GET(MT_RXWI_RATE_PHY, rate)) {
    37		case MT_PHY_TYPE_OFDM:
    38			if (idx >= 8)
    39				idx = 0;
    40	
    41			if (status->band == NL80211_BAND_2GHZ)
    42				idx += 4;
    43	
    44			status->rate_idx = idx;
    45			return;
    46		case MT_PHY_TYPE_CCK:
    47			if (idx >= 8) {
    48				idx -= 8;
  > 49				status->flag |= RX_FLAG_SHORTPRE;
    50			}
    51	
    52			if (idx >= 4)
    53				idx = 0;
    54	
    55			status->rate_idx = idx;
    56			return;
    57		case MT_PHY_TYPE_HT_GF:
    58			status->flag |= RX_FLAG_HT_GF;
    59			/* fall through */
    60		case MT_PHY_TYPE_HT:
    61			status->flag |= RX_FLAG_HT;
    62			status->rate_idx = idx;
    63			break;
    64		case MT_PHY_TYPE_VHT:
    65			status->flag |= RX_FLAG_VHT;
    66			status->rate_idx = FIELD_GET(MT_RATE_INDEX_VHT_IDX, idx);
    67			status->vht_nss = FIELD_GET(MT_RATE_INDEX_VHT_NSS, idx) + 1;
    68			break;
    69		default:
    70			WARN_ON(1);
    71			return;
    72		}
    73	
    74		if (rate & MT_RXWI_RATE_LDPC)
    75			status->flag |= RX_FLAG_LDPC;
    76	
    77		if (rate & MT_RXWI_RATE_SGI)
    78			status->flag |= RX_FLAG_SHORT_GI;
    79	
    80		if (rate & MT_RXWI_RATE_STBC)
    81			status->flag |= 1 << RX_FLAG_STBC_SHIFT;
    82	
    83		switch (FIELD_GET(MT_RXWI_RATE_BW, rate)) {
    84		case MT_PHY_BW_20:
    85			break;
    86		case MT_PHY_BW_40:
    87			status->flag |= RX_FLAG_40MHZ;
    88			break;
    89		case MT_PHY_BW_80:
  > 90			status->vht_flag |= RX_VHT_FLAG_80MHZ;
    91			break;
    92		default:
    93			break;
    94		}
    95	}
    96	

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 50543 bytes --]

^ permalink raw reply

* [PATCH] mt76: fix returnvar.cocci warnings
From: kbuild test robot @ 2017-11-23  7:27 UTC (permalink / raw)
  To: Felix Fietkau; +Cc: kbuild-all, linux-wireless, kvalo
In-Reply-To: <20171120193549.80831-4-nbd@nbd.name>

drivers/net/wireless/mediatek/mt76/mt76x2_main.c:86:5-8: Unneeded variable: "ret". Return "0" on line 112


 Remove unneeded variable used to store return value.

Generated by: scripts/coccinelle/misc/returnvar.cocci

Fixes: a5f6039c8f9c ("mt76: add driver code for MT76x2e")
CC: Felix Fietkau <nbd@nbd.name>
Signed-off-by: Fengguang Wu <fengguang.wu@intel.com>
---

Please take the patch only if it's a positive warning. Thanks!

 mt76x2_main.c |    3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

--- a/drivers/net/wireless/mediatek/mt76/mt76x2_main.c
+++ b/drivers/net/wireless/mediatek/mt76/mt76x2_main.c
@@ -83,7 +83,6 @@ mt76x2_add_interface(struct ieee80211_hw
 	struct mt76x2_dev *dev = hw->priv;
 	struct mt76x2_vif *mvif = (struct mt76x2_vif *) vif->drv_priv;
 	unsigned int idx = 0;
-	int ret = 0;
 
 	if (vif->addr[0] & BIT(1))
 		idx = 1 + (((dev->mt76.macaddr[0] ^ vif->addr[0]) >> 2) & 7);
@@ -109,7 +108,7 @@ mt76x2_add_interface(struct ieee80211_hw
 	mvif->group_wcid.hw_key_idx = -1;
 	mt76x2_txq_init(dev, vif->txq);
 
-	return ret;
+	return 0;
 }
 
 static void

^ permalink raw reply

* [PATCH] mt76: fix debugfs_simple_attr.cocci warnings
From: kbuild test robot @ 2017-11-23  7:27 UTC (permalink / raw)
  To: Felix Fietkau; +Cc: kbuild-all, linux-wireless, kvalo
In-Reply-To: <20171120193549.80831-4-nbd@nbd.name>

drivers/net/wireless/mediatek/mt76/debugfs.c:36:0-23: WARNING: fops_regval should be defined with DEFINE_DEBUGFS_ATTRIBUTE

 Use DEFINE_DEBUGFS_ATTRIBUTE rather than DEFINE_SIMPLE_ATTRIBUTE
 for debugfs files.

Semantic patch information:
 Rationale: DEFINE_SIMPLE_ATTRIBUTE + debugfs_create_file()
 imposes some significant overhead as compared to
 DEFINE_DEBUGFS_ATTRIBUTE + debugfs_create_file_unsafe().

Generated by: scripts/coccinelle/api/debugfs/debugfs_simple_attr.cocci

Fixes: a5f6039c8f9c ("mt76: add driver code for MT76x2e")
CC: Felix Fietkau <nbd@nbd.name>
Signed-off-by: Fengguang Wu <fengguang.wu@intel.com>
---

Please take the patch only if it's a positive warning. Thanks!

 debugfs.c |    7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

--- a/drivers/net/wireless/mediatek/mt76/debugfs.c
+++ b/drivers/net/wireless/mediatek/mt76/debugfs.c
@@ -33,7 +33,8 @@ mt76_reg_get(void *data, u64 *val)
 	return 0;
 }
 
-DEFINE_SIMPLE_ATTRIBUTE(fops_regval, mt76_reg_get, mt76_reg_set, "0x%08llx\n");
+DEFINE_DEBUGFS_ATTRIBUTE(fops_regval, mt76_reg_get, mt76_reg_set,
+			 "0x%08llx\n");
 
 static int
 mt76_queues_read(struct seq_file *s, void *data)
@@ -65,8 +66,8 @@ struct dentry *mt76_register_debugfs(str
 
 	debugfs_create_u8("led_pin", S_IRUSR | S_IWUSR, dir, &dev->led_pin);
 	debugfs_create_u32("regidx", S_IRUSR | S_IWUSR, dir, &dev->debugfs_reg);
-	debugfs_create_file("regval", S_IRUSR | S_IWUSR, dir, dev,
-			    &fops_regval);
+	debugfs_create_file_unsafe("regval", S_IRUSR | S_IWUSR, dir, dev,
+				   &fops_regval);
 	debugfs_create_blob("eeprom", S_IRUSR, dir, &dev->eeprom);
 	if (dev->otp.data)
 		debugfs_create_blob("otp", S_IRUSR, dir, &dev->otp);

^ permalink raw reply

* Re: [PATCH v7 3/3] mt76: add driver code for MT76x2e
From: kbuild test robot @ 2017-11-23  7:27 UTC (permalink / raw)
  To: Felix Fietkau; +Cc: kbuild-all, linux-wireless, kvalo
In-Reply-To: <20171120193549.80831-4-nbd@nbd.name>

[-- Attachment #1: Type: text/plain, Size: 6588 bytes --]

Hi Felix,

I love your patch! Yet something to improve:

[auto build test ERROR on wireless-drivers-next/master]
[also build test ERROR on v4.14 next-20171122]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Felix-Fietkau/dt-bindings-net-add-mt76-wireless-device-binding/20171123-125723
base:   https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-next.git master
config: i386-allmodconfig (attached as .config)
compiler: gcc-6 (Debian 6.4.0-9) 6.4.0 20171026
reproduce:
        # save the attached .config to linux build tree
        make ARCH=i386 

All error/warnings (new ones prefixed by >>):

   drivers/net/wireless/mediatek/mt76/mac80211.c: In function 'mt76_led_init':
>> drivers/net/wireless/mediatek/mt76/mac80211.c:111:7: error: implicit declaration of function 'of_get_child_by_name' [-Werror=implicit-function-declaration]
     np = of_get_child_by_name(np, "led");
          ^~~~~~~~~~~~~~~~~~~~
>> drivers/net/wireless/mediatek/mt76/mac80211.c:111:5: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
     np = of_get_child_by_name(np, "led");
        ^
>> drivers/net/wireless/mediatek/mt76/mac80211.c:113:8: error: implicit declaration of function 'of_property_read_u32' [-Werror=implicit-function-declaration]
      if (!of_property_read_u32(np, "led-sources", &led_pin))
           ^~~~~~~~~~~~~~~~~~~~
>> drivers/net/wireless/mediatek/mt76/mac80211.c:115:17: error: implicit declaration of function 'of_property_read_bool' [-Werror=implicit-function-declaration]
      dev->led_al = of_property_read_bool(np, "led-active-low");
                    ^~~~~~~~~~~~~~~~~~~~~
   cc1: some warnings being treated as errors
--
   drivers/net/wireless/mediatek/mt76/mt76x2_mac.c: In function 'mt76x2_mac_process_rate':
>> drivers/net/wireless/mediatek/mt76/mt76x2_mac.c:49:20: error: 'RX_FLAG_SHORTPRE' undeclared (first use in this function)
       status->flag |= RX_FLAG_SHORTPRE;
                       ^~~~~~~~~~~~~~~~
   drivers/net/wireless/mediatek/mt76/mt76x2_mac.c:49:20: note: each undeclared identifier is reported only once for each function it appears in
>> drivers/net/wireless/mediatek/mt76/mt76x2_mac.c:58:19: error: 'RX_FLAG_HT_GF' undeclared (first use in this function)
      status->flag |= RX_FLAG_HT_GF;
                      ^~~~~~~~~~~~~
>> drivers/net/wireless/mediatek/mt76/mt76x2_mac.c:61:19: error: 'RX_FLAG_HT' undeclared (first use in this function)
      status->flag |= RX_FLAG_HT;
                      ^~~~~~~~~~
>> drivers/net/wireless/mediatek/mt76/mt76x2_mac.c:65:19: error: 'RX_FLAG_VHT' undeclared (first use in this function)
      status->flag |= RX_FLAG_VHT;
                      ^~~~~~~~~~~
>> drivers/net/wireless/mediatek/mt76/mt76x2_mac.c:67:9: error: 'struct ieee80211_rx_status' has no member named 'vht_nss'
      status->vht_nss = FIELD_GET(MT_RATE_INDEX_VHT_NSS, idx) + 1;
            ^~
>> drivers/net/wireless/mediatek/mt76/mt76x2_mac.c:75:19: error: 'RX_FLAG_LDPC' undeclared (first use in this function)
      status->flag |= RX_FLAG_LDPC;
                      ^~~~~~~~~~~~
>> drivers/net/wireless/mediatek/mt76/mt76x2_mac.c:78:19: error: 'RX_FLAG_SHORT_GI' undeclared (first use in this function)
      status->flag |= RX_FLAG_SHORT_GI;
                      ^~~~~~~~~~~~~~~~
>> drivers/net/wireless/mediatek/mt76/mt76x2_mac.c:81:24: error: 'RX_FLAG_STBC_SHIFT' undeclared (first use in this function)
      status->flag |= 1 << RX_FLAG_STBC_SHIFT;
                           ^~~~~~~~~~~~~~~~~~
>> drivers/net/wireless/mediatek/mt76/mt76x2_mac.c:87:19: error: 'RX_FLAG_40MHZ' undeclared (first use in this function)
      status->flag |= RX_FLAG_40MHZ;
                      ^~~~~~~~~~~~~
>> drivers/net/wireless/mediatek/mt76/mt76x2_mac.c:90:9: error: 'struct ieee80211_rx_status' has no member named 'vht_flag'; did you mean 'flag'?
      status->vht_flag |= RX_VHT_FLAG_80MHZ;
            ^~
>> drivers/net/wireless/mediatek/mt76/mt76x2_mac.c:90:23: error: 'RX_VHT_FLAG_80MHZ' undeclared (first use in this function)
      status->vht_flag |= RX_VHT_FLAG_80MHZ;
                          ^~~~~~~~~~~~~~~~~

coccinelle warnings: (new ones prefixed by >>)

>> drivers/net/wireless/mediatek/mt76/debugfs.c:36:0-23: WARNING: fops_regval should be defined with DEFINE_DEBUGFS_ATTRIBUTE
--
>> drivers/net/wireless/mediatek/mt76/mt76x2_main.c:86:5-8: Unneeded variable: "ret". Return "0" on line 112

Please review and possibly fold the followup patch.

vim +/RX_FLAG_SHORTPRE +49 drivers/net/wireless/mediatek/mt76/mt76x2_mac.c

    30	
    31	static void
    32	mt76x2_mac_process_rate(struct ieee80211_rx_status *status, u16 rate)
    33	{
    34		u8 idx = FIELD_GET(MT_RXWI_RATE_INDEX, rate);
    35	
    36		switch (FIELD_GET(MT_RXWI_RATE_PHY, rate)) {
    37		case MT_PHY_TYPE_OFDM:
    38			if (idx >= 8)
    39				idx = 0;
    40	
    41			if (status->band == NL80211_BAND_2GHZ)
    42				idx += 4;
    43	
    44			status->rate_idx = idx;
    45			return;
    46		case MT_PHY_TYPE_CCK:
    47			if (idx >= 8) {
    48				idx -= 8;
  > 49				status->flag |= RX_FLAG_SHORTPRE;
    50			}
    51	
    52			if (idx >= 4)
    53				idx = 0;
    54	
    55			status->rate_idx = idx;
    56			return;
    57		case MT_PHY_TYPE_HT_GF:
  > 58			status->flag |= RX_FLAG_HT_GF;
    59			/* fall through */
    60		case MT_PHY_TYPE_HT:
  > 61			status->flag |= RX_FLAG_HT;
    62			status->rate_idx = idx;
    63			break;
    64		case MT_PHY_TYPE_VHT:
  > 65			status->flag |= RX_FLAG_VHT;
    66			status->rate_idx = FIELD_GET(MT_RATE_INDEX_VHT_IDX, idx);
  > 67			status->vht_nss = FIELD_GET(MT_RATE_INDEX_VHT_NSS, idx) + 1;
    68			break;
    69		default:
    70			WARN_ON(1);
    71			return;
    72		}
    73	
    74		if (rate & MT_RXWI_RATE_LDPC)
  > 75			status->flag |= RX_FLAG_LDPC;
    76	
    77		if (rate & MT_RXWI_RATE_SGI)
  > 78			status->flag |= RX_FLAG_SHORT_GI;
    79	
    80		if (rate & MT_RXWI_RATE_STBC)
  > 81			status->flag |= 1 << RX_FLAG_STBC_SHIFT;
    82	
    83		switch (FIELD_GET(MT_RXWI_RATE_BW, rate)) {
    84		case MT_PHY_BW_20:
    85			break;
    86		case MT_PHY_BW_40:
  > 87			status->flag |= RX_FLAG_40MHZ;
    88			break;
    89		case MT_PHY_BW_80:
  > 90			status->vht_flag |= RX_VHT_FLAG_80MHZ;
    91			break;
    92		default:
    93			break;
    94		}
    95	}
    96	

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 61842 bytes --]

^ permalink raw reply

* Re: [PATCH v7 3/3] mt76: add driver code for MT76x2e
From: Kalle Valo @ 2017-11-23  7:42 UTC (permalink / raw)
  To: kbuild test robot; +Cc: Felix Fietkau, kbuild-all, linux-wireless
In-Reply-To: <201711231440.jGwH44nB%fengguang.wu@intel.com>

kbuild test robot <lkp@intel.com> writes:

> I love your patch! Yet something to improve:
>
> [auto build test ERROR on wireless-drivers-next/master]
> [also build test ERROR on v4.14 next-20171122]
> [if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
>
> url:    https://github.com/0day-ci/linux/commits/Felix-Fietkau/dt-bindings-net-add-mt76-wireless-device-binding/20171123-125723
> base:   https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-next.git master
> config: tile-allyesconfig (attached as .config)
> compiler: tilegx-linux-gcc (GCC) 4.6.2
> reproduce:
>         wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
>         chmod +x ~/bin/make.cross
>         # save the attached .config to linux build tree
>         make.cross ARCH=tile 
>
> All errors (new ones prefixed by >>):
>
>    drivers/net/wireless/mediatek/mt76/mt76x2_mac.c: In function 'mt76x2_mac_process_rate':
>    drivers/net/wireless/mediatek/mt76/mt76x2_mac.c:49:20: error: 'RX_FLAG_SHORTPRE' undeclared (first use in this function)
>    drivers/net/wireless/mediatek/mt76/mt76x2_mac.c:49:20: note: each undeclared identifier is reported only once for each function it appears in
>    drivers/net/wireless/mediatek/mt76/mt76x2_mac.c:58:19: error: 'RX_FLAG_HT_GF' undeclared (first use in this function)
>    drivers/net/wireless/mediatek/mt76/mt76x2_mac.c:61:19: error: 'RX_FLAG_HT' undeclared (first use in this function)
>    drivers/net/wireless/mediatek/mt76/mt76x2_mac.c:65:19: error: 'RX_FLAG_VHT' undeclared (first use in this function)
>    drivers/net/wireless/mediatek/mt76/mt76x2_mac.c:67:9: error: 'struct ieee80211_rx_status' has no member named 'vht_nss'
>    drivers/net/wireless/mediatek/mt76/mt76x2_mac.c:75:19: error: 'RX_FLAG_LDPC' undeclared (first use in this function)
>    drivers/net/wireless/mediatek/mt76/mt76x2_mac.c:78:19: error: 'RX_FLAG_SHORT_GI' undeclared (first use in this function)
>    drivers/net/wireless/mediatek/mt76/mt76x2_mac.c:81:24: error: 'RX_FLAG_STBC_SHIFT' undeclared (first use in this function)
>    drivers/net/wireless/mediatek/mt76/mt76x2_mac.c:87:19: error: 'RX_FLAG_40MHZ' undeclared (first use in this function)
>>> drivers/net/wireless/mediatek/mt76/mt76x2_mac.c:90:9: error: 'struct ieee80211_rx_status' has no member named 'vht_flag'
>    drivers/net/wireless/mediatek/mt76/mt76x2_mac.c:90:23: error: 'RX_VHT_FLAG_80MHZ' undeclared (first use in this function)

Felix fixed these in v8.

-- 
Kalle Valo

^ permalink raw reply

* Re: [PATCH] brcmfmac: transfer firmware error to Linux error code in fwil
From: Arend van Spriel @ 2017-11-23 10:41 UTC (permalink / raw)
  To: Wright Feng, franky.lin, hante.meuleman, kvalo, chi-hsien.lin
  Cc: linux-wireless, brcm80211-dev-list.pdl
In-Reply-To: <1511341876-10198-1-git-send-email-wright.feng@cypress.com>

On 11/22/2017 10:11 AM, Wright Feng wrote:
> fil_cmd_data_set and fil_cmd_data_get return proprietary error code
> when getting error from firmware layer. The vendor tools or utilities
> that uses libnl may stuck in some commands when wl is down.
> For example, issue "scan" command after issuing "down" command, the
> "scan" command will be the blocking call and stuck as no response from
> libnl. It is caused by that firmware returns BCME_NOTUP(-4) when wl
> is down, but the -4 is -EINTR in Linux kernel, so libnl catches the
> error and not passes to upper layer.
> Because of that, the fwil should return Linux error code instead of
> the proprietary error code, and the tools or utilities should get the
> real firmware error code by command "bcmerror" or "bcmerrorstr" after
> receiving the error from libnl.

Hi Wright,

I recall you had a discussion (on the wireless list?) with Franky about 
this, but I did not chime in at that time. I am not a proponent for 
mapping our firmware errors to linux errors. It is tempting to do so 
because there is clear overlap for some, but still it is quirky and has 
no value in my opinion. This issue was already addressed in the past 
although not specifically for fixing the -EINTR case. I did some digging 
in the git history. Here was my original change:

commit 9c6476668025e76a8365be783f2649fe3259b91c
Author: Arend van Spriel <arend@broadcom.com>
Date:   Tue Oct 28 14:56:09 2014 +0100

     brcmfmac: do not use firmware error code in driver

     Passing the firmware error codes up the driver may be mapped to
     linux error numbers which may impact proper fault analysis. So
     better pass up a generic failure code, ie. -EBADE and only show
     firmware error code in FIL debug message.

     Reviewed-by: Franky (Zhenhui) Lin <frankyl@broadcom.com>
     Reviewed-by: Hante Meuleman <meuleman@broadcom.com>
     Reviewed-by: Daniel (Deognyoun) Kim <dekim@broadcom.com>
     Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
     Signed-off-by: Arend van Spriel <arend@broadcom.com>
     Signed-off-by: John W. Linville <linville@tuxdriver.com>

The idea here was to have a single error code and have a debug message 
showing the firmware error string. This single error code could be used 
by vendor tools (not really an upstream concern) to query the driver for 
the firmware error code through a vendor specific command.

Now what happened is that Hante while inspecting logs with only error 
messages observed -EBADE and wanted to know firmware error. So he made 
the following patch a year later:

commit 21000b3f3da45a5a33de3815f3c2b3584102960e
Author: Hante Meuleman <meuleman@broadcom.com>
Date:   Wed Nov 25 11:32:38 2015 +0100

     brcmfmac: Return actual error by fwil.

     FWIL is always mapping back errors to EBADE. This is not very
     conventient when trying to understand problems by reading logs.
     Some callers print the error code, but that is quite useless
     when the exact error code is not returned. It also makes it
     impossible to differentiate based on error code. This patch
     changes the return of EBADE into the actual error code.

     Reviewed-by: Arend Van Spriel <arend@broadcom.com>
     Reviewed-by: Franky (Zhenhui) Lin <frankyl@broadcom.com>
     Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
     Signed-off-by: Hante Meuleman <meuleman@broadcom.com>
     Signed-off-by: Arend van Spriel <arend@broadcom.com>
     Signed-off-by: Kalle Valo <kvalo@codeaurora.org>

However, the consequence of this was that we ended up returning firmware 
error codes into the kernel domain and user-space.

Below the change I came up with. Let me know what you think.

Regards,
Arend
---8<--------------------------------------------------------
commit e340892a4bb5a74248b19504bb972497d38a4a03
Author: Arend van Spriel <arend.vanspriel@broadcom.com>
Date:   Thu Nov 23 11:13:41 2017 +0100

     brcmfmac: separate firmware errors from i/o errors

     When using the firmware api it can fail simply because firmware does
     not like the request or it fails due to issues in the host interface.
     Currently, there is only a single error code which is confusing. So
     adding a parameter to pass the firmware error separately and in case
     of a firmware error always return -EBADE to user-space.

     Reviewed-by: Hante Meuleman <hante.meuleman@broadcom.com>
     Reviewed-by: Pieter-Paul Giesberts <pieter-paul.giesberts@broadcom.com>
     Reviewed-by: Franky Lin <franky.lin@broadcom.com>
     Signed-off-by: Arend van Spriel <arend.vanspriel@broadcom.com>

diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcdc.c 
b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcdc.c
index 9f2d0b0..353ed28 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcdc.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcdc.c
@@ -165,7 +165,7 @@ static int brcmf_proto_bcdc_cmplt(struct brcmf_pub 
*drvr, u32 id, u32 len)

  static int
  brcmf_proto_bcdc_query_dcmd(struct brcmf_pub *drvr, int ifidx, uint cmd,
-			    void *buf, uint len)
+			    void *buf, uint len, int *fwerr)
  {
  	struct brcmf_bcdc *bcdc = (struct brcmf_bcdc *)drvr->proto->pd;
  	struct brcmf_proto_bcdc_dcmd *msg = &bcdc->msg;
@@ -175,6 +175,7 @@ static int brcmf_proto_bcdc_cmplt(struct brcmf_pub 
*drvr, u32 id, u32 len)

  	brcmf_dbg(BCDC, "Enter, cmd %d len %d\n", cmd, len);

+	*fwerr = 0;
  	ret = brcmf_proto_bcdc_msg(drvr, ifidx, cmd, buf, len, false);
  	if (ret < 0) {
  		brcmf_err("brcmf_proto_bcdc_msg failed w/status %d\n",
@@ -211,17 +212,18 @@ static int brcmf_proto_bcdc_cmplt(struct brcmf_pub 
*drvr, u32 id, u32 len)
  		memcpy(buf, info, len);
  	}

+	ret = 0;
+
  	/* Check the ERROR flag */
  	if (flags & BCDC_DCMD_ERROR)
-		ret = le32_to_cpu(msg->status);
-
+		*fwerr = le32_to_cpu(msg->status);
  done:
  	return ret;
  }

  static int
  brcmf_proto_bcdc_set_dcmd(struct brcmf_pub *drvr, int ifidx, uint cmd,
-			  void *buf, uint len)
+			  void *buf, uint len, int *fwerr)
  {
  	struct brcmf_bcdc *bcdc = (struct brcmf_bcdc *)drvr->proto->pd;
  	struct brcmf_proto_bcdc_dcmd *msg = &bcdc->msg;
@@ -230,6 +232,7 @@ static int brcmf_proto_bcdc_cmplt(struct brcmf_pub 
*drvr, u32 id, u32 len)

  	brcmf_dbg(BCDC, "Enter, cmd %d len %d\n", cmd, len);

+	*fwerr = 0;
  	ret = brcmf_proto_bcdc_msg(drvr, ifidx, cmd, buf, len, true);
  	if (ret < 0)
  		goto done;
@@ -251,7 +254,7 @@ static int brcmf_proto_bcdc_cmplt(struct brcmf_pub 
*drvr, u32 id, u32 len)

  	/* Check the ERROR flag */
  	if (flags & BCDC_DCMD_ERROR)
-		ret = le32_to_cpu(msg->status);
+		*fwerr = le32_to_cpu(msg->status);

  done:
  	return ret;
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwil.c 
b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwil.c
index f6a2df9..688f256 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwil.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwil.c
@@ -107,7 +107,7 @@ static const char *brcmf_fil_get_errstr(u32 err)
  brcmf_fil_cmd_data(struct brcmf_if *ifp, u32 cmd, void *data, u32 len, 
bool set)
  {
  	struct brcmf_pub *drvr = ifp->drvr;
-	s32 err;
+	s32 err, fwerr;

  	if (drvr->bus_if->state != BRCMF_BUS_UP) {
  		brcmf_err("bus is down. we have nothing to do.\n");
@@ -117,16 +117,17 @@ static const char *brcmf_fil_get_errstr(u32 err)
  	if (data != NULL)
  		len = min_t(uint, len, BRCMF_DCMD_MAXLEN);
  	if (set)
-		err = brcmf_proto_set_dcmd(drvr, ifp->ifidx, cmd, data, len);
+		err = brcmf_proto_set_dcmd(drvr, ifp->ifidx, cmd,
+					   data, len, &fwerr);
  	else
-		err = brcmf_proto_query_dcmd(drvr, ifp->ifidx, cmd, data, len);
-
-	if (err >= 0)
-		return 0;
-
-	brcmf_dbg(FIL, "Failed: %s (%d)\n",
-		  brcmf_fil_get_errstr((u32)(-err)), err);
+		err = brcmf_proto_query_dcmd(drvr, ifp->ifidx, cmd,
+					     data, len, &fwerr);

+	if (fwerr < 0) {
+		brcmf_dbg(FIL, "Firmware error: %s (%d)\n",
+			  brcmf_fil_get_errstr((u32)(-fwerr)), fwerr);
+		err = -EBADE;
+	}
  	return err;
  }

diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/msgbuf.c 
b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/msgbuf.c
index d2c834c..e212a79 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/msgbuf.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/msgbuf.c
@@ -477,7 +477,7 @@ static void brcmf_msgbuf_ioctl_resp_wake(struct 
brcmf_msgbuf *msgbuf)


  static int brcmf_msgbuf_query_dcmd(struct brcmf_pub *drvr, int ifidx,
-				   uint cmd, void *buf, uint len)
+				   uint cmd, void *buf, uint len, int *fwerr)
  {
  	struct brcmf_msgbuf *msgbuf = (struct brcmf_msgbuf *)drvr->proto->pd;
  	struct sk_buff *skb = NULL;
@@ -485,6 +485,7 @@ static int brcmf_msgbuf_query_dcmd(struct brcmf_pub 
*drvr, int ifidx,
  	int err;

  	brcmf_dbg(MSGBUF, "ifidx=%d, cmd=%d, len=%d\n", ifidx, cmd, len);
+	*fwerr = 0;
  	msgbuf->ctl_completed = false;
  	err = brcmf_msgbuf_tx_ioctl(drvr, ifidx, cmd, buf, len);
  	if (err)
@@ -508,14 +509,15 @@ static int brcmf_msgbuf_query_dcmd(struct 
brcmf_pub *drvr, int ifidx,
  	}
  	brcmu_pkt_buf_free_skb(skb);

-	return msgbuf->ioctl_resp_status;
+	*fwerr = msgbuf->ioctl_resp_status;
+	return 0;
  }


  static int brcmf_msgbuf_set_dcmd(struct brcmf_pub *drvr, int ifidx,
-				 uint cmd, void *buf, uint len)
+				 uint cmd, void *buf, uint len, int *fwerr)
  {
-	return brcmf_msgbuf_query_dcmd(drvr, ifidx, cmd, buf, len);
+	return brcmf_msgbuf_query_dcmd(drvr, ifidx, cmd, buf, len, fwerr);
  }


diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/proto.h 
b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/proto.h
index 2404f8a..8a8e08f 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/proto.h
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/proto.h
@@ -30,9 +30,9 @@ struct brcmf_proto {
  	int (*hdrpull)(struct brcmf_pub *drvr, bool do_fws,
  		       struct sk_buff *skb, struct brcmf_if **ifp);
  	int (*query_dcmd)(struct brcmf_pub *drvr, int ifidx, uint cmd,
-			  void *buf, uint len);
+			  void *buf, uint len, int *fwerr);
  	int (*set_dcmd)(struct brcmf_pub *drvr, int ifidx, uint cmd, void *buf,
-			uint len);
+			uint len, int *fwerr);
  	int (*tx_queue_data)(struct brcmf_pub *drvr, int ifidx,
  			     struct sk_buff *skb);
  	int (*txdata)(struct brcmf_pub *drvr, int ifidx, u8 offset,
@@ -71,14 +71,16 @@ static inline int brcmf_proto_hdrpull(struct 
brcmf_pub *drvr, bool do_fws,
  	return drvr->proto->hdrpull(drvr, do_fws, skb, ifp);
  }
  static inline int brcmf_proto_query_dcmd(struct brcmf_pub *drvr, int 
ifidx,
-					 uint cmd, void *buf, uint len)
+					 uint cmd, void *buf, uint len,
+					 int *fwerr)
  {
-	return drvr->proto->query_dcmd(drvr, ifidx, cmd, buf, len);
+	return drvr->proto->query_dcmd(drvr, ifidx, cmd, buf, len,fwerr);
  }
  static inline int brcmf_proto_set_dcmd(struct brcmf_pub *drvr, int ifidx,
-				       uint cmd, void *buf, uint len)
+				       uint cmd, void *buf, uint len,
+				       int *fwerr)
  {
-	return drvr->proto->set_dcmd(drvr, ifidx, cmd, buf, len);
+	return drvr->proto->set_dcmd(drvr, ifidx, cmd, buf, len, fwerr);
  }

  static inline int brcmf_proto_tx_queue_data(struct brcmf_pub *drvr, 
int ifidx,

^ permalink raw reply related

* pull-request mwifiex-firmware 2017-11-23
From: Ganapathi Bhat @ 2017-11-23 13:23 UTC (permalink / raw)
  To: linux-firmware@kernel.org
  Cc: linux-wireless@vger.kernel.org, James Cao, Cathy Luo,
	Mangesh Malusare, Xinming Hu, Zhiyuan Yang,
	Karthik Doddayennegere Ananthapadmanabha, Brian Norris,
	Ben Hutchings

VGhlIGZvbGxvd2luZyBjaGFuZ2VzIHNpbmNlIGNvbW1pdCA0N2FmZDk5NTBmYmNhZGViN2NlZmMw
OTNiMjFkNjEyM2JkYzc2Zjc5Og0KDQogIGxpbnV4LWZpcm13YXJlOiBhZGQgTWFydmVsbCBVU0I4
OTk3IGZpcm13YXJlIGltYWdlICgyMDE3LTA1LTAyIDEyOjI4OjM0ICswNTMwKQ0KDQphcmUgYXZh
aWxhYmxlIGluIHRoZSBnaXQgcmVwb3NpdG9yeSBhdDoNCg0KICBnaXQ6Ly9naXQubWFydmVsbC5j
b20vbXdpZmlleC1maXJtd2FyZS5naXQgbWFzdGVyDQoNCmZvciB5b3UgdG8gZmV0Y2ggY2hhbmdl
cyB1cCB0byBkYjNlMTg1NWVhNDZiYzFhMjJiOGJiZWNiNDAwYzI5MDljNTUxY2Y1Og0KDQogIGxp
bnV4LWZpcm13YXJlOiB1cGRhdGUgTWFydmVsbCBQQ0llLVVTQjg5OTcgZmlybXdhcmUgaW1hZ2Ug
KDIwMTctMTAtMzEgMjA6NDk6NTMgKzA1MzApDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCkdhbmFwYXRoaSBCaGF0ICgy
KToNCiAgICAgIGxpbnV4LWZpcm13YXJlOiB1cGRhdGUgTWFydmVsbCBQQ0llLVVTQjg5OTcgZmly
bXdhcmUgaW1hZ2UNCiAgICAgIGxpbnV4LWZpcm13YXJlOiB1cGRhdGUgTWFydmVsbCBQQ0llLVVT
Qjg5OTcgZmlybXdhcmUgaW1hZ2UNCg0KWGlubWluZyBIdSAoMSk6DQogICAgICBsaW51eC1maXJt
d2FyZTogdXBkYXRlIE1hcnZlbGwgUENJZS1VU0I4ODk3LUEyIGZpcm13YXJlIGltYWdlDQoNCiBX
SEVOQ0UgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNCArKy0tDQogbXJ2bC9wY2llODg5N191
YXBzdGEuYmluICAgICAgfCBCaW4gODIwMjEyIC0+IDgzNjU0MCBieXRlcw0KIG1ydmwvcGNpZXVz
Yjg5OTdfY29tYm9fdjQuYmluIHwgQmluIDU5NzEzNiAtPiA2MjI1MzIgYnl0ZXMNCiAzIGZpbGVz
IGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkNCg==

^ permalink raw reply

* RE: [EXT] Re: pull-request mwifiex-firmware 2017-10-31
From: Ganapathi Bhat @ 2017-11-23 13:25 UTC (permalink / raw)
  To: Ben Hutchings
  Cc: linux-wireless@vger.kernel.org, James Cao, Cathy Luo,
	Mangesh Malusare, Xinming Hu, Zhiyuan Yang,
	Karthik Doddayennegere Ananthapadmanabha, Brian Norris,
	linux-firmware@kernel.org
In-Reply-To: <1511401044.14687.6.camel@decadent.org.uk>

SGkgQmVuLA0KDQo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gT24gVHVlLCAyMDE3LTEwLTMxIGF0IDE1OjM0
ICswMDAwLCBHYW5hcGF0aGkgQmhhdCB3cm90ZToNCj4gPiBUaGUgZm9sbG93aW5nIGNoYW5nZXMg
c2luY2UgY29tbWl0DQo+IGUwNDk0ZTk1MTkyYWM1MzI5OTg5ZjRkMTI4Y2Y5NWM0MTdkNjE4Y2M6
DQo+ID4NCj4gPiAgIGxpbnV4LWZpcm13YXJlOiB1cGRhdGUgTWFydmVsbCBQQ0llLVVTQjg5OTcg
ZmlybXdhcmUgaW1hZ2UNCj4gPiAoMjAxNy0wOC0wMSAyMzo1NTozMCArMDUzMCkNCj4NCj4gQnV0
IHRoYXQgY29tbWl0IGlzIG5vdCBpbiBsaW51eC1maXJtd2FyZS5naXQuDQoNClllcy4gU29ycnkg
Zm9yIHRoZSBpbmNvbnZlbmllbmNlLg0KDQo+DQo+ID4gYXJlIGF2YWlsYWJsZSBpbiB0aGUgZ2l0
IHJlcG9zaXRvcnkgYXQ6DQo+ID4NCj4gPiAgIGdpdDovL2dpdC5tYXJ2ZWxsLmNvbS9td2lmaWV4
LWZpcm13YXJlLmdpdA0KPiA+DQo+ID4gZm9yIHlvdSB0byBmZXRjaCBjaGFuZ2VzIHVwIHRvDQo+
IGRiM2UxODU1ZWE0NmJjMWEyMmI4YmJlY2I0MDBjMjkwOWM1NTFjZjU6DQo+ID4NCj4gPiAgIGxp
bnV4LWZpcm13YXJlOiB1cGRhdGUgTWFydmVsbCBQQ0llLVVTQjg5OTcgZmlybXdhcmUgaW1hZ2UN
Cj4gPiAoMjAxNy0xMC0zMSAyMDo0OTo1MyArMDUzMCkNCj4gPg0KPiA+IC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiBH
YW5hcGF0aGkgQmhhdCAoMSk6DQo+ID4gICAgICAgbGludXgtZmlybXdhcmU6IHVwZGF0ZSBNYXJ2
ZWxsIFBDSWUtVVNCODk5NyBmaXJtd2FyZSBpbWFnZQ0KPiA+DQo+ID4gIFdIRU5DRSAgICAgICAg
ICAgICAgICAgICAgICAgIHwgICAyICstDQo+ID4gIG1ydmwvcGNpZXVzYjg5OTdfY29tYm9fdjQu
YmluIHwgQmluIDYyMDgwMCAtPiA2MjI1MzIgYnl0ZXMNCj4gPiAgMiBmaWxlcyBjaGFuZ2VkLCAx
IGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQ0KPg0KPiBUaGVyZSBhcmUgdGhyZWUgY29tbWl0
cyBpbiB0aGlzIHJlcG9zaXRvcnkgdGhhdCBhcmVuJ3QgaW4gbGludXgtIGZpcm13YXJlLmdpdCwN
Cj4gbm90IG9uZS4gIFBsZWFzZSBlaXRoZXI6DQo+DQo+IDEuIFNlbmQgYSBwdWxsIHJlcXVlc3Qg
bGlzdGluZyBhbGwgdGhlIGNvbW1pdHMgKHRoZSAgPHN0YXJ0PiBwYXJhbWV0ZXIgdG8gZ2l0DQo+
IHJlcXVlc3QtcHVsbCBzaG91bGQgYmUgc29tZXRoaW5nIGxpa2UgIm9yaWdpbi9tYXN0ZXIiKSwN
Cg0KSSBoYXZlIHNlbnQgYSBwdWxsIHJlcXVlc3Qgb2YgbGFzdCAzIGNvbW1pdHMuIExldCBtZSBr
bm93IGlmIHRoaXMgd29ya3MgZmluZS4NCg0Kb3IgMi4gUmViYXNlIHRoaXMNCj4gYnJhbmNoIHRv
IGluY2x1ZGUgb25seSB0aGUgY29tbWl0IHlvdSB3YW50IG1lIHRvIHB1bGwsIGFuZCBzZW5kIGEg
cHVsbA0KPiByZXF1ZXN0IGxpc3RpbmcgdGhhdC4NCj4NCj4gQmVuLg0KPg0KPiAtLQ0KPiBCZW4g
SHV0Y2hpbmdzDQo+IFdoZW4gaW4gZG91YnQsIHVzZSBicnV0ZSBmb3JjZS4gLSBLZW4gVGhvbXBz
b24NCg0KVGhhbmtzLA0KR2FuYXBhdGhpDQo=

^ permalink raw reply

* Re: pull-request mwifiex-firmware 2017-11-23
From: Ben Hutchings @ 2017-11-23 14:00 UTC (permalink / raw)
  To: Ganapathi Bhat, linux-firmware@kernel.org
  Cc: linux-wireless@vger.kernel.org, James Cao, Cathy Luo,
	Mangesh Malusare, Xinming Hu, Zhiyuan Yang,
	Karthik Doddayennegere Ananthapadmanabha, Brian Norris
In-Reply-To: <178d86c104de49e589a6ac10930d1b27@SC-EXCH02.marvell.com>

[-- Attachment #1: Type: text/plain, Size: 1160 bytes --]

On Thu, 2017-11-23 at 13:23 +0000, Ganapathi Bhat wrote:
> The following changes since commit 47afd9950fbcadeb7cefc093b21d6123bdc76f79:
> 
>   linux-firmware: add Marvell USB8997 firmware image (2017-05-02 12:28:34 +0530)
> 
> are available in the git repository at:
> 
>   git://git.marvell.com/mwifiex-firmware.git master
> 
> for you to fetch changes up to db3e1855ea46bc1a22b8bbecb400c2909c551cf5:
> 
>   linux-firmware: update Marvell PCIe-USB8997 firmware image (2017-10-31 20:49:53 +0530)
> 
> ----------------------------------------------------------------
> Ganapathi Bhat (2):
>       linux-firmware: update Marvell PCIe-USB8997 firmware image
>       linux-firmware: update Marvell PCIe-USB8997 firmware image
> 
> Xinming Hu (1):
>       linux-firmware: update Marvell PCIe-USB8897-A2 firmware image
> 
>  WHENCE                        |   4 ++--
>  mrvl/pcie8897_uapsta.bin      | Bin 820212 -> 836540 bytes
>  mrvl/pcieusb8997_combo_v4.bin | Bin 597136 -> 622532 bytes
>  3 files changed, 2 insertions(+), 2 deletions(-)

Pulled, thanks.

Ben.

-- 
Ben Hutchings
When in doubt, use brute force. - Ken Thompson


[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply

* Re: kernel BUG at crypto/asymmetric_keys/public_key.c:80
From: Johannes Berg @ 2017-11-23 14:24 UTC (permalink / raw)
  To: Florian Fainelli, Arend van Spriel, open list, netdev
  Cc: David S. Miller, Herbert Xu, David Howells, linux-wireless
In-Reply-To: <a95ae21a-c9f7-4e01-98f1-469201e20615@gmail.com>

On Wed, 2017-11-22 at 15:07 -0800, Florian Fainelli wrote:
> On 11/22/2017 10:42 AM, Johannes Berg wrote:
> > On Wed, 2017-11-22 at 19:29 +0100, Arend van Spriel wrote:
> > > + Johannes
> > > 
> > >  >>>     BUG_ON(!sig->digest);
> > >          BUG_ON(!sig->s);
> > 
> > I *think* this is the same bug that was reported before, then this
> > should fix it:
> > 
> > https://git.kernel.org/pub/scm/linux/kernel/git/davem/net.git/commit/?id=d7be102f2945a626f55e0501e52bb31ba3e77b81
> > 
> > Can you try?
> 
> My baseline already has this commit actually, is there something else
> you would want me to check?

Hmm, different problem then - could you put the entire boot log
somewhere I can read it?

johannes

^ permalink raw reply

* Re: rtl8723be on Fedora27
From: Rákosi Gergely @ 2017-11-23 14:36 UTC (permalink / raw)
  To: James Cameron; +Cc: Larry Finger, linux-wireless
In-Reply-To: <20171121213046.GD5400@us.netrek.org>

2017-11-21 22:30 keltezéssel, James Cameron írta:
> On Tue, Nov 21, 2017 at 09:52:12PM +0100, Rákosi Gergely wrote:
>> 2017-11-21 21:37 keltezéssel, James Cameron írta:
>>> On Tue, Nov 21, 2017 at 03:08:16PM +0100, Rákosi Gergely wrote:
>>>> 2017-11-18 16:52 keltezéssel, Larry Finger írta:
>>>>> On 11/17/2017 06:22 PM, Rákosi Gergely wrote:
>>>>>> Hello Larry,
>>>>>>
>>>>>> First of all, thanks your help.
>>>>>> Lets see...here is the kernel version: 4.13.12-300
>>>>>> The machine is an Asus ROG 553VE
>>>>>>
>>>>>> The firmware which loading in the dmesg is : rtlwifi/rtl8723befw_36.bin
>>>>>> The output of md5sum is : 1850c1308fbcd95e9f6a7f58ede1e35f
>>>>> [...]
>>>>> sudo iw dev wlan0 scan | egrep "SSID|signal"
>>>>>
>>>>> Post that output. In addition, copy the dmesg output to some pastebin
>>>>> and post the link as well.
>>>>>
>>>>> Larry
>>>>>
>>>> Hello Larry,
>>>>
>>>> I hope this email post format is good, and fit to the rules.
>>>> Here is the output:
>>>>
>>>> root@skynet-x2 ~]# iw dev wlp2s0 scan | egrep "SSID|signal"
>>>>         signal: -46.00 dBm
>>>>         SSID: SKYNET-X2
>>>> [...]
>>>> [root@skynet-x2 ~]#
>>> Scan results seem normal.  Was this scan before disconnect?
>> Yes, this command output taken while the connection was OK
> Thanks.
>
>>>> And the dmesg output:
>>>>
>>>> https://pastebin.com/iqQSu2hD
>>> Is now v4.13.13.
>> Yes, thats the upgraded kernel
>>
>>> This is interesting, an H2C command was dropped, but no idea which.
>>>
>>> [    9.848052] rtl8723be: error H2C cmd because of Fw download fail!!!
>>>
>>> Disconnection happened at boot+440 seconds, associate+429 seconds;
>>>
>>> [  439.871033] rtlwifi: AP off, try to reconnect now
>>> [  439.871093] wlp2s0: Connection to AP 4c:5e:0c:c7:fa:e3 lost
>>>
>>> I cannot tell what causes disconnect.  I wonder if the same
>>> timing of the problem happens always, or if the timing varies.
>> The timing always changing, never is the same. And I dont realize
>> the cause at now...
> Thanks.  I had similar problem with different wireless device.
>
>>> Init MAC failed was another 30 seconds later;
>>>
>>> [  468.600670] IPv6: ADDRCONF(NETDEV_UP): wlp2s0: link is not ready
>>> [  469.618926] rtl8723be: Init MAC failed
>>>
>>> Looking at _rtl8723be_init_mac, there are two false returns;
>>> hardware power on fail, and llt write fail.
>>>
>>> Sorry, I don't have rtl8723be hardware.
>>>
>>> Rákosi, did any older kernel keep connection?
>> The oldest kernel is 4.13.9-300.fc27.x86_64 in Fedora 27
>> installation, but did the same.  If you can give advise how, and
>> what I do, then I'll try it.
> You might try running "Live CD" of Fedora 26 or Fedora 25, without
> installing, to test if unexpected disconnection happens in two older
> kernels.  Not for permanent solution, just for easy testing.
>
> I don't have specific advice for Fedora 27, you might ask Fedora
> community about that, or use RHBZ.  A quick search finds this old 2013
> page;
>
> https://fedoraproject.org/wiki/User:Ignatenkobrain/Kernel/Bisection
>
And now the wireless is working almost 20 hours long, from yesterday
afternoon. I dont know why. Lets check some happening:
- Yesterday I disconnect the charger from laptop, and lay down at the
other room
- I left the laptop more than a hour without interaction, so the system
is going to sleep
- When I push the keyboard the system load up, and everything is working
fine
- The battery almost depleted when I going back to the original room,
and connect the charger

Then nothing changed, and I have a working rtl8723be wifi module. Why ?

Thanks,
Gergely

^ permalink raw reply

* Re: AP6335 with mainline kernel
From: Vanessa Maegima @ 2017-11-23 15:24 UTC (permalink / raw)
  To: arend.vanspriel@broadcom.com, van.ayumi@gmail.com
  Cc: linux-wireless@vger.kernel.org, embed3d@gmail.com
In-Reply-To: <5A15584A.9090601@broadcom.com>

SGkgQXJlbmQsDQoNCk9uIFF1YSwgMjAxNy0xMS0yMiBhdCAxMTo1OCArMDEwMCwgQXJlbmQgdmFu
IFNwcmllbCB3cm90ZToNCj4gT24gMTEvMjIvMjAxNyAxMTo0OCBBTSwgVmFuZXNzYSBNYWVnaW1h
IHdyb3RlOg0KPiA+IA0KPiA+IEhpIEFyZW5kLA0KPiA+IA0KPiA+IE9uIFNlZywgMjAxNy0xMS0y
MCBhdCAxMjoxMiArMDEwMCwgQXJlbmQgdmFuIFNwcmllbCB3cm90ZToNCj4gPiA+IA0KPiA+ID4g
T24gMjAtMTEtMTcgMTI6MDMsIEFyZW5kIHZhbiBTcHJpZWwgd3JvdGU6DQo+ID4gPiA+IA0KPiA+
ID4gPiANCj4gPiA+ID4gT24gMTctMTEtMTcgMTY6MjQsIFZhbmVzc2EgTWFlZ2ltYSB3cm90ZToN
Cj4gPiA+ID4gPiANCj4gPiA+ID4gPiANCj4gPiA+ID4gPiBIaSBBcmVuZCwNCj4gPiA+ID4gPiAN
Cj4gPiA+ID4gPiBPbiBTZXgsIDIwMTctMTEtMTcgYXQgMTM6NTUgKzAxMDAsIEFyZW5kIHZhbiBT
cHJpZWwgd3JvdGU6DQo+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gT24g
MTEvMTcvMjAxNyAxMjowOCBQTSwgVmFuZXNzYSBNYWVnaW1hIHdyb3RlOg0KPiA+ID4gPiA+ID4g
PiANCj4gPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gPiBIaSBBcmVu
ZCwNCj4gPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiA+IE9uIFNleCwgMjAxNy0xMS0xMCBhdCAy
MDo1OCArMDEwMCwgQXJlbmQgdmFuIFNwcmllbA0KPiA+ID4gPiA+ID4gPiB3cm90ZToNCj4gPiA+
ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ID4gPiANCj4gPiA+ID4g
PiA+ID4gPiBPbiAxMC0xMS0xNyAxMzo0MywgVmFuZXNzYSBNYWVnaW1hIHdyb3RlOg0KPiA+ID4g
PiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ID4gPiA+IA0KPiA+
ID4gPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiA+ID4gPiBIaSwNCj4gPiA+ID4gPiA+ID4gPiA+
IA0KPiA+ID4gPiA+ID4gPiA+ID4gT24gUXVpLCAyMDE3LTA5LTIxIGF0IDEyOjMwIC0wMzAwLCBW
YW5lc3NhIEF5dW1pDQo+ID4gPiA+ID4gPiA+ID4gPiBNYWVnaW1hDQo+ID4gPiA+ID4gPiA+ID4g
PiB3cm90ZToNCj4gPiA+ID4gPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiA+ID4gPiA+IA0KPiA+
ID4gPiA+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiA+ID4g
PiA+IEhpIEFyZW5kLA0KPiA+ID4gPiA+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ID4gPiA+ID4g
T24gVGh1LCBTZXAgMjEsIDIwMTcgYXQgNDoyNiBBTSwgQXJlbmQgdmFuIFNwcmllbA0KPiA+ID4g
PiA+ID4gPiA+ID4gPiA8YXJlbmQudmFuc3ByaWVsQGJyb2FkY29tLmNvbT4gd3JvdGU6DQo+ID4g
PiA+ID4gPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiA+
ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4g
DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gT24gMjAtMDktMTcgMjE6MzMsIFZhbmVzc2EgQXl1bWkg
TWFlZ2ltYSB3cm90ZToNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gPiA+
ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ID4gPiA+ID4g
PiA+IA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiAN
Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IEhpLA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gDQo+
ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBJIGFtIHRyeWluZyB0byBlbmFibGUgV2lmaSBvbiBpbXg3
ZC1waWNvIHVzaW5nDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBtYWlubGluZQ0KPiA+ID4gPiA+
ID4gPiA+ID4gPiA+ID4ga2VybmVsLg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gaW14N2QtcGlj
bw0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gaGFzIGFuIEFQNjMzNSBjaGlwLg0KPiA+ID4gPiA+
ID4gPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBJIGFtIGZhY2luZyBzb21l
IGlzc3VlcyByZWxhdGVkIHRvIHRoZSBudnJhbQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gZmls
ZS4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IEkgYW0NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+
IHVzaW5nDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiB0aGUNCj4gPiA+ID4gPiA+ID4gPiA+ID4g
PiA+IGZpcm13YXJlDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBwcm92aWRlZCBieSBCdWlsZHJv
b3QgKGJyY21mbWFjNDMzOS1zZGlvLmJpbikuDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBJDQo+
ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBnZXQgdGhlDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBm
b2xsb3dpbmcgZXJyb3I6DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ID4g
PiA+ID4gPiA+IFvCoMKgwqDCoDguNjMwMzgwXSBicmNtZm1hYzogYnJjbWZfc2Rpb19odGNsazog
SFQNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IEF2YWlsDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4g
PiB0aW1lb3V0DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiAoMTAwMDAwMCk6DQo+ID4gPiA+ID4g
PiA+ID4gPiA+ID4gPiBjbGtjdGwgMHg1MA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gDQo+ID4g
PiA+ID4gPiA+ID4gPiA+ID4gPiBJIGhhdmUgdHJpZWQgdG8gdXNlIHRoZSBmaXJtd2FyZSBhbmQg
bnZyYW0NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IHByb3ZpZGVkDQo+ID4gPiA+ID4gPiA+ID4g
PiA+ID4gPiBieQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gVGVjaE5leGlvbg0KPiA+ID4gPiA+
ID4gPiA+ID4gPiA+ID4gYnV0IEkNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IGdldA0KPiA+ID4g
PiA+ID4gPiA+ID4gPiA+ID4gdGhlIHNhbWUgZXJyb3IuDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4g
PiANCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IElzIHRoZXJlIGFueW9uZSB0aGF0IGNvdWxkIGVu
YWJsZSBXaWZpIG9uDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBBUDYzMzUNCj4gPiA+ID4gPiA+
ID4gPiA+ID4gPiA+IHVzaW5nDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBrZXJuZWwNCj4gPiA+
ID4gPiA+ID4gPiA+ID4gPiA+IG1haW5saW5lPw0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gV2hh
dCBudnJhbSBmaWxlIHdhcyB1c2VkPw0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gDQo+ID4gPiA+
ID4gPiA+ID4gPiA+ID4gPiBJIGFtIGFibGUgdG8gdXNlIFdpZmkgb24gdGhlIGJvYXJkIGlmIEkg
dXNlIHRoZQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gZmlybXdhcmUsDQo+ID4gPiA+ID4gPiA+
ID4gPiA+ID4gPiBudnJhbQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gZmlsZSBhbmQNCj4gPiA+
ID4gPiA+ID4gPiA+ID4gPiA+IGtlcm5lbA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gcHJvdmlk
ZWQgYnkgVGVjaE5leGlvbi4gVGhleSB1c2UgYSA0LjEga2VybmVsDQo+ID4gPiA+ID4gPiA+ID4g
PiA+ID4gPiBmcm9tDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBOWFANCj4gPiA+ID4gPiA+ID4g
PiA+ID4gPiA+IHdpdGgNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IHRoZQ0KPiA+ID4gPiA+ID4g
PiA+ID4gPiA+ID4gYmNtZGhkDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBkcml2ZXIuDQo+ID4g
PiA+ID4gPiA+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IFNvIEkga25vdyB0
aGF0IHRoZSBoYXJkd2FyZSBpcyBmdW5jdGlvbmFsLg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4g
DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBBbnkgc3VnZ2VzdGlvbnMgYXMgaG93IHRvIGdldCBp
dCB3b3JraW5nIHdpdGggYQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gNC4xMyBhbmQNCj4gPiA+
ID4gPiA+ID4gPiA+ID4gPiA+IGJyY21mbWFjDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBkcml2
ZXINCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IGlzDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBh
cHByZWNpYXRlZC4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBTbyB0aGUgbnZyYW0gZmlsZSBpcyBz
cGVjaWZpYyB0byB0aGUgd2lmaSBjaGlwc2V0DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gb24NCj4g
PiA+ID4gPiA+ID4gPiA+ID4gPiB5b3VyDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gcGxhdGZvcm0N
Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBzbyBiZXN0DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gdG8g
c3RpY2sgd2l0aCB0aGUgcHJvdmlkZWQgb25lLiBUaGUgIkhUIEF2YWlsDQo+ID4gPiA+ID4gPiA+
ID4gPiA+ID4gdGltZW91dCIgbW9zdA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IG9mdGVuDQo+ID4g
PiA+ID4gPiA+ID4gPiA+ID4gaXMgYW4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBpbmRpY2F0aW9u
IHRoYXQgdGhlIGZpcm13YXJlIGNyYXNoZWQuIFNvIGdldHRpbmcNCj4gPiA+ID4gPiA+ID4gPiA+
ID4gPiBtb3JlDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gZGVidWcNCj4gPiA+ID4gPiA+ID4gPiA+
ID4gPiBvdXRwdXQNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiB3b3VsZA0KPiA+ID4gPiA+ID4gPiA+
ID4gPiA+IGhlbHAgdXMgdW5kZXJzdGFuZCBob3cgaXQgZW5kZWQgdXAgbGlrZSB0aGF0LiBDYW4N
Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiB5b3UNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBidWlsZA0K
PiA+ID4gPiA+ID4gPiA+ID4gPiA+IHRoZQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IGJyY21mbWFj
DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gd2l0aCBDT05GSUdfQlJDTURCRyBhbmQgbG9hZCB0aGUg
ZHJpdmVyIHVzaW5nOg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gPiA+ID4g
PiA+ICQgaW5zbW9kIGJyY21mbWFjLmtvIGRlYnVnPTB4MTQxNg0KPiA+ID4gPiA+ID4gPiA+ID4g
PiBUaGFua3MgZm9yIHRoZSByZXBseSENCj4gPiA+ID4gPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4g
PiA+ID4gPiA+IEhlcmUgaXMgdGhlIGxvZyAodXNpbmcgNC4xNC1yYzEpOg0KPiA+ID4gPiA+ID4g
PiA+ID4gPiANCj4gPiA+ID4gPiA+ID4gPiA+ID4gIyBkbWVzZyB8IGdyZXAgYnJjbWZtYWMNCj4g
PiA+ID4gPiA+ID4gPiA+ID4gW8KgwqDCoDE5LjI5NzIwNl0gYnJjbWZtYWM6IGJyY21mbWFjX21v
ZHVsZV9pbml0IE5vDQo+ID4gPiA+ID4gPiA+ID4gPiA+IHBsYXRmb3JtDQo+ID4gPiA+ID4gPiA+
ID4gPiA+IGRhdGENCj4gPiA+ID4gPiA+ID4gPiA+ID4gYXZhaWxhYmxlLg0KPiA+ID4gPiA+ID4g
PiA+ID4gPiBbwqDCoMKgMTkuMzA3MDc1XSBicmNtZm1hYzogYnJjbWZfc2Rpb19wcm9iZSBFbnRl
cg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBbwqDCoMKgMTkuMzA4Mzg0XSBicmNtZm1hYzogRjEgc2ln
bmF0dXJlIHJlYWQNCj4gPiA+ID4gPiA+ID4gPiA+ID4gQDB4MTgwMDAwMDA9MHgxNjIyNDMzNQ0K
PiA+ID4gPiA+ID4gPiA+ID4gPiBbwqDCoMKgMTkuMzA5MDI2XSBicmNtZm1hYzogYnJjbWZfY2hp
cF9yZWNvZ25pdGlvbg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBmb3VuZA0KPiA+ID4gPiA+ID4gPiA+
ID4gPiBBWEkNCj4gPiA+ID4gPiA+ID4gPiA+ID4gY2hpcDoNCj4gPiA+ID4gPiA+ID4gPiA+ID4g
QkNNNDMzOSwgcmV2PTINCj4gPiA+ID4gPiA+ID4gPiA+ID4gW8KgwqDCoDE5LjMxNzExNV0gYnJj
bWZtYWM6IGJyY21mX2NoaXBfY29yZXNfY2hlY2vCoMKgWzENCj4gPiA+ID4gPiA+ID4gPiA+ID4g
XQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiBjb3JlDQo+ID4gPiA+ID4gPiA+ID4gPiA+IDB4ODAwOjQ2
DQo+ID4gPiA+ID4gPiA+ID4gPiA+IGJhc2UgMHgxODAwMDAwMCB3cmFwIDB4MTgxMDAwMDANCj4g
PiA+ID4gPiA+ID4gPiA+ID4gW8KgwqDCoDE5LjMxNzE0MV0gYnJjbWZtYWM6IGJyY21mX2NoaXBf
Y29yZXNfY2hlY2vCoMKgWzINCj4gPiA+ID4gPiA+ID4gPiA+ID4gXQ0KPiA+ID4gPiA+ID4gPiA+
ID4gPiBjb3JlDQo+ID4gPiA+ID4gPiA+ID4gPiA+IDB4ODEyOjQ2DQo+ID4gPiA+ID4gPiA+ID4g
PiA+IGJhc2UgMHgxODAwMTAwMCB3cmFwIDB4MTgxMDEwMDANCj4gPiA+ID4gPiA+ID4gPiA+ID4g
W8KgwqDCoDE5LjMxNzE2NV0gYnJjbWZtYWM6IGJyY21mX2NoaXBfY29yZXNfY2hlY2vCoMKgWzMN
Cj4gPiA+ID4gPiA+ID4gPiA+ID4gXQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiBjb3JlDQo+ID4gPiA+
ID4gPiA+ID4gPiA+IDB4ODNlOjQNCj4gPiA+ID4gPiA+ID4gPiA+ID4gYmFzZSAweDE4MDAyMDAw
IHdyYXAgMHgxODEwMjAwMA0KPiA+ID4gPiA+ID4gPiA+ID4gPiBbwqDCoMKgMTkuMzE3MTg4XSBi
cmNtZm1hYzogYnJjbWZfY2hpcF9jb3Jlc19jaGVja8KgwqBbNA0KPiA+ID4gPiA+ID4gPiA+ID4g
PiBdDQo+ID4gPiA+ID4gPiA+ID4gPiA+IGNvcmUNCj4gPiA+ID4gPiA+ID4gPiA+ID4gMHg4M2M6
NA0KPiA+ID4gPiA+ID4gPiA+ID4gPiBiYXNlIDB4MTgwMDMwMDAgd3JhcCAweDE4MTAzMDAwDQo+
ID4gPiA+ID4gPiA+ID4gPiA+IFvCoMKgwqAxOS4zMTcyMTBdIGJyY21mbWFjOiBicmNtZl9jaGlw
X2NvcmVzX2NoZWNrwqDCoFs1DQo+ID4gPiA+ID4gPiA+ID4gPiA+IF0NCj4gPiA+ID4gPiA+ID4g
PiA+ID4gY29yZQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiAweDgxYToyMA0KPiA+ID4gPiA+ID4gPiA+
ID4gPiBiYXNlIDB4MTgwMDQwMDAgd3JhcCAweDE4MTA0MDAwDQo+ID4gPiA+ID4gPiA+ID4gPiA+
IFvCoMKgwqAxOS4zMTcyMzNdIGJyY21mbWFjOiBicmNtZl9jaGlwX2NvcmVzX2NoZWNrwqDCoFs2
DQo+ID4gPiA+ID4gPiA+ID4gPiA+IF0NCj4gPiA+ID4gPiA+ID4gPiA+ID4gY29yZQ0KPiA+ID4g
PiA+ID4gPiA+ID4gPiAweDgyOToyMQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiBiYXNlIDB4MTgwMDUw
MDAgd3JhcCAweDE4MTA1MDAwDQo+ID4gPiA+ID4gPiA+ID4gPiA+IFvCoMKgwqAxOS4zMTcyNTZd
IGJyY21mbWFjOiBicmNtZl9jaGlwX2NvcmVzX2NoZWNrwqDCoFs3DQo+ID4gPiA+ID4gPiA+ID4g
PiA+IF0NCj4gPiA+ID4gPiA+ID4gPiA+ID4gY29yZQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiAweDEz
NTowDQo+ID4gPiA+ID4gPiA+ID4gPiA+IGJhc2UgMHgwMDAwMDAwMCB3cmFwIDB4MTgxMDkwMDAN
Cj4gPiA+ID4gPiA+ID4gPiA+ID4gW8KgwqDCoDE5LjMxNzI3OV0gYnJjbWZtYWM6IGJyY21mX2No
aXBfY29yZXNfY2hlY2vCoMKgWzgNCj4gPiA+ID4gPiA+ID4gPiA+ID4gXQ0KPiA+ID4gPiA+ID4g
PiA+ID4gPiBjb3JlDQo+ID4gPiA+ID4gPiA+ID4gPiA+IDB4MjQwOjANCj4gPiA+ID4gPiA+ID4g
PiA+ID4gYmFzZSAweDAwMDAwMDAwIHdyYXAgMHgwMDAwMDAwMA0KPiA+ID4gPiA+ID4gPiA+ID4g
PiBbwqDCoMKgMTkuMzE3Mjk4XSBicmNtZm1hYzogYnJjbWZfY2hpcF9zZXRfcGFzc2l2ZQ0KPiA+
ID4gPiA+ID4gPiA+ID4gPiBFbnRlcg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBbwqDCoMKgMTkuMzIy
MjMyXSBicmNtZm1hYzogYnJjbWZfY2hpcF9nZXRfcmFtaW5mbw0KPiA+ID4gPiA+ID4gPiA+ID4g
PiBSQU06DQo+ID4gPiA+ID4gPiA+ID4gPiA+IGJhc2U9MHgxODAwMDANCj4gPiA+ID4gPiA+ID4g
PiA+ID4gc2l6ZT03ODY0MzIgKDB4YzAwMDApIHNyPTAgKDB4MCkNCj4gPiA+ID4gPiA+ID4gPiA+
ID4gW8KgwqDCoDE5LjMyMjQ1N10gYnJjbWZtYWM6IGJyY21mX2NoaXBfc2V0dXAgY2NyZXY9NDYs
DQo+ID4gPiA+ID4gPiA+ID4gPiA+IHBtdXJldj0yMywNCj4gPiA+ID4gPiA+ID4gPiA+ID4gcG11
Y2Fwcz0weDM5Y2M1ZjE3DQo+ID4gPiA+ID4gPiA+ID4gPiA+IFvCoMKgwqAxOS4zMjI0ODFdIGJy
Y21mbWFjOiBicmNtZl9nZXRfbW9kdWxlX3BhcmFtDQo+ID4gPiA+ID4gPiA+ID4gPiA+IEVudGVy
LA0KPiA+ID4gPiA+ID4gPiA+ID4gPiBidXM9MCwNCj4gPiA+ID4gPiA+ID4gPiA+ID4gY2hpcD0x
NzIwOSwgcmV2PTINCj4gPiA+ID4gPiA+ID4gPiA+ID4gW8KgwqDCoDE5LjMyMjUwNF0gYnJjbWZt
YWM6IGJyY21mX3NkaW9kX3NndGFibGVfYWxsb2MNCj4gPiA+ID4gPiA+ID4gPiA+ID4gbmVudHM9
MzUNCj4gPiA+ID4gPiA+ID4gPiA+ID4gW8KgwqDCoDE5LjMyMjUzMV0gYnJjbWZtYWM6IGJyY21m
X3NkaW9fa3NvX2luaXQgRW50ZXINCj4gPiA+ID4gPiA+ID4gPiA+ID4gW8KgwqDCoDE5LjMyMjYx
OF0gYnJjbWZtYWM6DQo+ID4gPiA+ID4gPiA+ID4gPiA+IGJyY21mX3NkaW9fZHJpdmVzdHJlbmd0
aGluaXQNCj4gPiA+ID4gPiA+ID4gPiA+ID4gTm8gU0RJTw0KPiA+ID4gPiA+ID4gPiA+ID4gPiBk
cml2ZXINCj4gPiA+ID4gPiA+ID4gPiA+ID4gc3RyZW5ndGggaW5pdCBuZWVkZWQgZm9yIGNoaXAg
NDMNCj4gPiA+ID4gPiA+ID4gPiA+ID4gMzkgcmV2IDIgcG11cmV2IDIzDQo+ID4gPiA+ID4gPiA+
ID4gPiA+IFvCoMKgwqAxOS4zMjMyMzVdIGJyY21mbWFjOiBicmNtZl9hdHRhY2ggRW50ZXINCj4g
PiA+ID4gPiA+ID4gPiA+ID4gW8KgwqDCoDE5LjMyMzcyNV0gYnJjbWZtYWM6IGJyY21mX3Byb3Rv
X2F0dGFjaCBFbnRlcg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBbwqDCoMKgMTkuMzIzNzY5XSBicmNt
Zm1hYzogYnJjbWZfZndlaF9yZWdpc3RlciBldmVudA0KPiA+ID4gPiA+ID4gPiA+ID4gPiBoYW5k
bGVyDQo+ID4gPiA+ID4gPiA+ID4gPiA+IHJlZ2lzdGVyZWQNCj4gPiA+ID4gPiA+ID4gPiA+ID4g
Zm9yIFBTTV9XQVRDSERPRw0KPiA+ID4gPiA+ID4gPiA+ID4gPiBbwqDCoMKgMTkuMzI0MzA2XSBi
cmNtZm1hYzogYnJjbWZfc2Rpb19wcm9iZQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiBjb21wbGV0ZWQh
IQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiBbwqDCoMKgMTkuMzI0MzM3XSBicmNtZm1hYzogYnJjbWZf
ZndfbWFwX2NoaXBfdG9fbmFtZToNCj4gPiA+ID4gPiA+ID4gPiA+ID4gdXNpbmcNCj4gPiA+ID4g
PiA+ID4gPiA+ID4gYnJjbS9icmNtZm1hYzQzMzktc2Rpby5iaW4gZm9yIGNoaXAgMHgwMDQzMw0K
PiA+ID4gPiA+ID4gPiA+ID4gPiA5KDE3MjA5KSByZXYgMHgwMDAwMDINCj4gPiA+ID4gPiA+ID4g
PiA+ID4gW8KgwqDCoDE5LjMzNTM1M10gYnJjbWZtYWM6DQo+ID4gPiA+ID4gPiA+ID4gPiA+IGJy
Y21mX2Z3X2dldF9maXJtd2FyZXNfcGNpZQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiBlbnRlcjoNCj4g
PiA+ID4gPiA+ID4gPiA+ID4gZGV2PW1tYzA6MDAwMToxDQo+ID4gPiA+ID4gPiA+ID4gPiA+IFvC
oMKgwqAxOS4zNTE3ODddIGJyY21mbWFjOiBicmNtZl9md19yZXF1ZXN0X2NvZGVfZG9uZQ0KPiA+
ID4gPiA+ID4gPiA+ID4gPiBlbnRlcjoNCj4gPiA+ID4gPiA+ID4gPiA+ID4gZGV2PW1tYzA6MDAw
MToxDQo+ID4gPiA+ID4gPiA+ID4gPiA+IFvCoMKgwqAxOS4zNTMyMDJdIGJyY21mbWFjOg0KPiA+
ID4gPiA+ID4gPiA+ID4gPiBicmNtZl9md19yZXF1ZXN0X252cmFtX2RvbmUNCj4gPiA+ID4gPiA+
ID4gPiA+ID4gZW50ZXI6DQo+ID4gPiA+ID4gPiA+ID4gPiA+IGRldj1tbWMwOjAwMDE6MQ0KPiA+
ID4gPiA+ID4gPiA+ID4gPiBbwqDCoMKgMTkuMzUzNDI0XSBicmNtZm1hYzoNCj4gPiA+ID4gPiA+
ID4gPiA+ID4gYnJjbWZfc2Rpb19maXJtd2FyZV9jYWxsYmFjaw0KPiA+ID4gPiA+ID4gPiA+ID4g
PiBFbnRlcjoNCj4gPiA+ID4gPiA+ID4gPiA+ID4gZGV2PW1tYzA6MDAwMToxLCBlcnI9MA0KPiA+
ID4gPiA+ID4gPiA+ID4gPiBbwqDCoMKgMTkuMzUzODE0XSBicmNtZm1hYzoNCj4gPiA+ID4gPiA+
ID4gPiA+ID4gYnJjbWZfc2Rpb19kb3dubG9hZF9jb2RlX2ZpbGUNCj4gPiA+ID4gPiA+ID4gPiA+
ID4gRW50ZXINCj4gPiA+ID4gPiA+ID4gPiA+ID4gW8KgwqDCoDE5LjM4ODU4Nl0gYnJjbWZtYWM6
IGJyY21mX3NkaW9fdmVyaWZ5bWVtb3J5DQo+ID4gPiA+ID4gPiA+ID4gPiA+IENvbXBhcmUgUkFN
DQo+ID4gPiA+ID4gPiA+ID4gPiA+IGRsICYNCj4gPiA+ID4gPiA+ID4gPiA+ID4gdWwNCj4gPiA+
ID4gPiA+ID4gPiA+ID4gYXQgMHgwMDE4MDAwMDsgc2l6ZT00OTM1OTkNCj4gPiA+ID4gPiA+ID4g
PiA+ID4gW8KgwqDCoDE5LjU0NjY3NV0gYnJjbWZtYWM6IGJyY21mX3NkaW9fZG93bmxvYWRfbnZy
YW0NCj4gPiA+ID4gPiA+ID4gPiA+ID4gRW50ZXINCj4gPiA+ID4gPiA+ID4gPiA+ID4gW8KgwqDC
oDE5LjU0NzQzMl0gYnJjbWZtYWM6IGJyY21mX3NkaW9fdmVyaWZ5bWVtb3J5DQo+ID4gPiA+ID4g
PiA+ID4gPiA+IENvbXBhcmUgUkFNDQo+ID4gPiA+ID4gPiA+ID4gPiA+IGRsICYNCj4gPiA+ID4g
PiA+ID4gPiA+ID4gdWwNCj4gPiA+ID4gPiA+ID4gPiA+ID4gYXQgMHgwMDIzZjczMDsgc2l6ZT0y
MjU2DQo+ID4gPiA+ID4gPiA+ID4gPiA+IFvCoMKgwqAxOS41NDg2NjVdIGJyY21mbWFjOiBicmNt
Zl9jaGlwX3NldF9hY3RpdmUNCj4gPiA+ID4gPiA+ID4gPiA+ID4gRW50ZXINCj4gPiA+ID4gPiA+
ID4gPiA+ID4gW8KgwqDCoDIwLjU2Mjk3NF0gYnJjbWZtYWM6IGJyY21mX3NkaW9faHRjbGs6IEhU
IEF2YWlsDQo+ID4gPiA+ID4gPiA+ID4gPiA+IHRpbWVvdXQNCj4gPiA+ID4gPiA+ID4gPiA+ID4g
KDEwMDAwMDApOg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBjbGtjdGwgMHg1MA0KPiA+ID4gPiA+ID4g
PiA+ID4gPiBbwqDCoMKgMjAuNTcwNDkwXSBicmNtZm1hYzoNCj4gPiA+ID4gPiA+ID4gPiA+ID4g
YnJjbWZfc2Rpb19maXJtd2FyZV9jYWxsYmFjaw0KPiA+ID4gPiA+ID4gPiA+ID4gPiBmYWlsZWQ6
DQo+ID4gPiA+ID4gPiA+ID4gPiA+IGRldj1tbWMwOjAwMDE6MSwgZXJyPTANCj4gPiA+ID4gPiA+
ID4gPiA+ID4gW8KgwqDCoDIwLjU3MDczOV0gYnJjbWZtYWM6IGJyY21mX3NkaW9fcmVtb3ZlIEVu
dGVyDQo+ID4gPiA+ID4gPiA+ID4gPiA+IFvCoMKgwqAyMC41NzA3NzVdIGJyY21mbWFjOiBicmNt
Zl9kZXRhY2ggRW50ZXINCj4gPiA+ID4gPiA+ID4gPiA+ID4gW8KgwqDCoDIwLjYxMDQxNF0gYnJj
bWZtYWM6IGJyY21mX2J1c19jaGFuZ2Vfc3RhdGUgMA0KPiA+ID4gPiA+ID4gPiA+ID4gPiAtPiAw
DQo+ID4gPiA+ID4gPiA+ID4gPiA+IFvCoMKgwqAyMC42MTA0NDFdIGJyY21mbWFjOiBicmNtZl9z
ZGlvX2J1c19zdG9wIEVudGVyDQo+ID4gPiA+ID4gPiA+ID4gPiA+IFvCoMKgwqAyMS42MjI0Nzdd
IGJyY21mbWFjOiBicmNtZl9zZGlvX2h0Y2xrOiBIVCBBdmFpbA0KPiA+ID4gPiA+ID4gPiA+ID4g
PiB0aW1lb3V0DQo+ID4gPiA+ID4gPiA+ID4gPiA+ICgxMDAwMDAwKToNCj4gPiA+ID4gPiA+ID4g
PiA+ID4gY2xrY3RsIDB4NTANCj4gPiA+ID4gPiA+ID4gPiA+ID4gW8KgwqDCoDIxLjYzMDkxMl0g
YnJjbWZtYWM6IGJyY21mX3Byb3RvX2RldGFjaCBFbnRlcg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBb
wqDCoMKgMjEuNjMwOTY3XSBicmNtZm1hYzogYnJjbWZfZndlaF91bnJlZ2lzdGVyDQo+ID4gPiA+
ID4gPiA+ID4gPiA+IGV2ZW50DQo+ID4gPiA+ID4gPiA+ID4gPiA+IGhhbmRsZXINCj4gPiA+ID4g
PiA+ID4gPiA+ID4gY2xlYXJlZA0KPiA+ID4gPiA+ID4gPiA+ID4gPiBmb3IgUFNNX1dBVENIRE9H
DQo+ID4gPiA+ID4gPiA+ID4gPiA+IFvCoMKgwqAyMi42NDI0NTddIGJyY21mbWFjOiBicmNtZl9z
ZGlvX2h0Y2xrOiBIVCBBdmFpbA0KPiA+ID4gPiA+ID4gPiA+ID4gPiB0aW1lb3V0DQo+ID4gPiA+
ID4gPiA+ID4gPiA+ICgxMDAwMDAwKToNCj4gPiA+ID4gPiA+ID4gPiA+ID4gY2xrY3RsIDB4NTAN
Cj4gPiA+ID4gPiA+ID4gPiA+ID4gW8KgwqDCoDIyLjY4MDEzMV0gYnJjbWZtYWM6IGJyY21mX2No
aXBfc2V0X3Bhc3NpdmUNCj4gPiA+ID4gPiA+ID4gPiA+ID4gRW50ZXINCj4gPiA+ID4gPiA+ID4g
PiA+ID4gW8KgwqDCoDIyLjY4MjU4MF0gYnJjbWZtYWM6IGJyY21mX3NkaW9fcmVtb3ZlDQo+ID4g
PiA+ID4gPiA+ID4gPiA+IERpc2Nvbm5lY3RlZA0KPiA+ID4gPiA+ID4gPiA+ID4gPiANCj4gPiA+
ID4gPiA+ID4gPiA+IEFueSBzdWdnZXN0aW9ucyBvbiB0aGlzPw0KPiA+ID4gPiA+ID4gPiA+IFNv
cnJ5IGZvciBub3QgZ2V0dGluZyBiYWNrIHRvIHlvdXIgZWFybGllciBlbWFpbC4NCj4gPiA+ID4g
PiA+ID4gPiBUaGFua3MNCj4gPiA+ID4gPiA+ID4gPiBmb3IgdGhlDQo+ID4gPiA+ID4gPiA+ID4g
cmVtaW5kZXIuIFNvIHlvdSB0cmllZCBkaWZmZXJlbnQgZmlybXdhcmVzLCByaWdodD8gQ2FuDQo+
ID4gPiA+ID4gPiA+ID4geW91DQo+ID4gPiA+ID4gPiA+ID4gcHJvdmlkZQ0KPiA+ID4gPiA+ID4g
PiA+IG91dHB1dCBvZiB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6DQo+ID4gPiA+ID4gPiA+ID4gDQo+
ID4gPiA+ID4gPiA+ID4gJCBzdHJpbmdzIGZpcm13YXJlLmJpbiB8IHRhaWwgLTENCj4gPiA+ID4g
PiA+ID4gPiANCj4gPiA+ID4gPiA+ID4gPiBmb3IgdGhlIGZpcm13YXJlcyB5b3UgdHJpZWQuDQo+
ID4gPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiA+ID4gUmVnYXJkcywNCj4gPiA+ID4gPiA+ID4g
PiBBcmVuZA0KPiA+ID4gPiA+ID4gPiBUaGFua3MgZm9yIHRoZSByZXBseSENCj4gPiA+ID4gPiA+
ID4gDQo+ID4gPiA+ID4gPiA+IEhlcmUncyB0aGUgb3V0cHV0Og0KPiA+ID4gPiA+ID4gPiANCj4g
PiA+ID4gPiA+ID4gRm9yIFRlY2huZXhpb24gZmlybXdhcmU6DQo+ID4gPiA+ID4gPiA+IA0KPiA+
ID4gPiA+ID4gPiAjIHN0cmluZ3MgL2xpYi9maXJtd2FyZS9icmNtL2JyY21mbWFjNDMzOS1zZGlv
LmJpbiB8IHRhaWwNCj4gPiA+ID4gPiA+ID4gLTENCj4gPiA+ID4gPiA+ID4gNDMzOWEwLXJvbWwv
c2Rpby1hZy1wb29sLXAycC1wbm8tcGt0ZmlsdGVyLWtlZXBhbGl2ZS1hb2UtDQo+ID4gPiA+ID4g
PiA+IHNyLQ0KPiA+ID4gPiA+ID4gPiBtY2hhbi0NCj4gPiA+ID4gPiA+ID4gcHJvcHR4c3RhdHVz
LWxwYy10ZGxzLWF1dG9hYm4tdHhiZi0NCj4gPiA+ID4gPiA+ID4gcmNjLXdlcHNvLW9rYy1uZG9l
IFZlcnNpb246IDYuMzcuMzIuMjggQ1JDOiAzMDc1ZjEyZQ0KPiA+ID4gPiA+ID4gPiBEYXRlOg0K
PiA+ID4gPiA+ID4gPiBUaHUNCj4gPiA+ID4gPiA+ID4gMjAxNC0wNC0NCj4gPiA+ID4gPiA+ID4g
MDMgMTI6MTU6MzEgQ1NUIEZXSUQgMDEtNGFlNGFkDQo+ID4gPiA+ID4gPiA+IDAzDQo+ID4gPiA+
ID4gPiA+IA0KPiA+ID4gPiA+ID4gPiBGb3IgbGludXgtZmlybXdhcmUgYW5kIEJ1aWxkcm9vdCBm
aXJtd2FyZToNCj4gPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiA+ICMgc3RyaW5ncyAvbGliL2Zp
cm13YXJlL2JyY20vYnJjbWZtYWM0MzM5LXNkaW8uYmluIHwgdGFpbA0KPiA+ID4gPiA+ID4gPiAt
MQ0KPiA+ID4gPiA+ID4gPiA0MzM5YTAtcm9tbC9zZGlvLWFnLXBvb2wtYXV0b2Fibi1scGMgVmVy
c2lvbjogNi4zNy4zNC4yOA0KPiA+ID4gPiA+ID4gPiBDUkM6DQo+ID4gPiA+ID4gPiA+IGE2OTY4
OTdiDQo+ID4gPiA+ID4gPiA+IERhdGU6IFRodSAyMDE0LTA4LTI4IDE4OjQwOjEyDQo+ID4gPiA+
ID4gPiA+IFBEVCBGV0lEIDAxLWExMzEyMGZjDQo+ID4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4g
PiBJbiBib3RoIGNhc2VzLCBJIGFtIHVzaW5nIHRoZSBudnJhbSBwcm92aWRlZCBieQ0KPiA+ID4g
PiA+ID4gPiBUZWNobmV4aW9uLg0KPiA+ID4gPiA+ID4gVGhhdCBzaG91bGQgYmUgZmluZS4NCj4g
PiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gQ2FuIHlvdSB0cnkgdGhlIHBhdGNoIGJlbG93LiBJdCB3
b3VsZCBnaXZlIG1lIG1vcmUgaW5mbyBvbg0KPiA+ID4gPiA+ID4gc3RhdGUgb2YNCj4gPiA+ID4g
PiA+IGZpcm13YXJlLg0KPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiBSZWdhcmRzLA0KPiA+ID4g
PiA+ID4gQXJlbmQNCj4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gZGlmZiAtLWdpdA0KPiA+ID4g
PiA+ID4gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMv
c2Rpby5jDQo+ID4gPiA+ID4gPiBiL2RyaXZlcnMvbmUNCj4gPiA+ID4gPiA+IGluZGV4IGYzNTU2
MTIuLjYzMWM1Y2IgMTAwNjQ0DQo+ID4gPiA+ID4gPiAtLS0NCj4gPiA+ID4gPiA+IGEvZHJpdmVy
cy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYw0KPiA+ID4g
PiA+ID4gKysrDQo+ID4gPiA+ID4gPiBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2Jy
Y204MDIxMS9icmNtZm1hYy9zZGlvLmMNCj4gPiA+ID4gPiA+IEBAIC04MjgsOCArODI4LDI3IEBA
IHN0YXRpYyBpbnQgYnJjbWZfc2Rpb19odGNsayhzdHJ1Y3QNCj4gPiA+ID4gPiA+IGJyY21mX3Nk
aW8NCj4gPiA+ID4gPiA+ICpidXMsDQo+ID4gPiA+ID4gPiBib29sIG9uLA0KPiA+ID4gPiA+ID4g
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0
dXJuIC1FQkFERTsNCj4gPiA+ID4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgfQ0KPiA+ID4gPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqBpZiAoIVNCU0RJT19DTEtBVihjbGtjdGwsIGJ1cy0NCj4gPiA+ID4gPiA+ID5hbHBfb25seSkp
IHsNCj4gPiA+ID4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgc3RydWN0IGJyY21mX2NvcmUgKnBtdSA9DQo+ID4gPiA+ID4gPiBicmNtZl9jaGlwX2dl
dF9wbXUoYnVzLT5jaSk7DQo+ID4gPiA+ID4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoHUzMiByZWdhZGRyOw0KPiA+ID4gPiA+ID4gK8KgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB1MzIgdmFsOw0KPiA+ID4gPiA+ID4g
Kw0KPiA+ID4gPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgYnJjbWZfZXJyKCJIVCBBdmFpbCB0aW1lb3V0DQo+ID4gPiA+ID4gPiAoJWQp
Og0KPiA+ID4gPiA+ID4gY2xrY3RsDQo+ID4gPiA+ID4gPiAweCUwMnhcbiIsDQo+ID4gPiA+ID4g
PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoFBNVV9NQVhfVFJBTlNJVElPTl9ETFkNCj4gPiA+ID4gPiA+ICwN
Cj4gPiA+ID4gPiA+IGNsa2N0bCk7DQo+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiArwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoC8qIERFQlVHIElORk8gKi8N
Cj4gPiA+ID4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgcmVnYWRkciA9IENPUkVfQ0NfUkVHKHBtdS0+YmFzZSwNCj4gPiA+ID4gPiA+IHBtdWNvbnRy
b2wpOw0KPiA+ID4gPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqB2YWwgPSBicmNtZl9zZGlvZF9yZWdybChidXMtDQo+ID4gPiA+ID4gPiA+c2Rpb2Rl
diwNCj4gPiA+ID4gPiA+IHJlZ2FkZHIsDQo+ID4gPiA+ID4gPiAmZXJyKTsNCj4gPiA+ID4gPiA+
ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgYnJjbWZfZXJy
KCLCoMKgcG11Y29udHJvbMKgwqDCoD0NCj4gPiA+ID4gPiA+ICUwOHhcbiIsDQo+ID4gPiA+ID4g
PiB2YWwpOw0KPiA+ID4gPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqByZWdhZGRyID0gQ09SRV9DQ19SRUcocG11LT5iYXNlLA0KPiA+ID4gPiA+ID4g
cG11c3RhdHVzKTsNCj4gPiA+ID4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgdmFsID0gYnJjbWZfc2Rpb2RfcmVncmwoYnVzLQ0KPiA+ID4gPiA+ID4g
PnNkaW9kZXYsDQo+ID4gPiA+ID4gPiByZWdhZGRyLA0KPiA+ID4gPiA+ID4gJmVycik7DQo+ID4g
PiA+ID4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGJy
Y21mX2VycigiwqDCoHBtdXN0YXR1c8KgwqDCoMKgPQ0KPiA+ID4gPiA+ID4gJTA4eFxuIiwNCj4g
PiA+ID4gPiA+IHZhbCk7DQo+ID4gPiA+ID4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoHJlZ2FkZHIgPSBDT1JFX0NDX1JFRyhwbXUtPmJhc2UsDQo+ID4g
PiA+ID4gPiBtaW5fcmVzX21hc2spOw0KPiA+ID4gPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB2YWwgPSBicmNtZl9zZGlvZF9yZWdybChidXMtDQo+
ID4gPiA+ID4gPiA+c2Rpb2RldiwNCj4gPiA+ID4gPiA+IHJlZ2FkZHIsDQo+ID4gPiA+ID4gPiAm
ZXJyKTsNCj4gPiA+ID4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgYnJjbWZfZXJyKCLCoMKgbWluX3Jlc19tYXNrID0NCj4gPiA+ID4gPiA+ICUwOHhc
biIsDQo+ID4gPiA+ID4gPiB2YWwpOw0KPiA+ID4gPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZWdhZGRyID0gQ09SRV9DQ19SRUcocG11LT5iYXNl
LA0KPiA+ID4gPiA+ID4gbWF4X3Jlc19tYXNrKTsNCj4gPiA+ID4gPiA+ICvCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgdmFsID0gYnJjbWZfc2Rpb2RfcmVncmwo
YnVzLQ0KPiA+ID4gPiA+ID4gPnNkaW9kZXYsDQo+ID4gPiA+ID4gPiByZWdhZGRyLA0KPiA+ID4g
PiA+ID4gJmVycik7DQo+ID4gPiA+ID4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoGJyY21mX2VycigiwqDCoG1heF9yZXNfbWFzayA9DQo+ID4gPiA+ID4g
PiAlMDh4XG4iLA0KPiA+ID4gPiA+ID4gdmFsKTsNCj4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+
IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJl
dHVybiAtRUJBREU7DQo+ID4gPiA+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoH0NCj4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gSGVyZSdzIHRo
ZSBvdXRwdXQgZm9yIGJvdGggZmlybXdhcmVzOg0KPiA+ID4gPiA+IA0KPiA+ID4gPiA+IFRlY2hu
ZXhpb246DQo+ID4gPiA+ID4gIyBkbWVzZyB8IGdyZXAgYnJjbWZtYWMNCj4gPiA+ID4gPiBbwqDC
oMKgwqA1LjMwNzA2N10gYnJjbWZtYWM6IGJyY21mX2Z3X21hcF9jaGlwX3RvX25hbWU6IHVzaW5n
DQo+ID4gPiA+ID4gYnJjbS9icmNtZm1hYzQzMzktc2Rpby5iaW4gZm9yIGNoaXAgMHgwMDQzMw0K
PiA+ID4gPiA+IDkoMTcyMDkpIHJldiAweDAwMDAwMg0KPiA+ID4gPiA+IFvCoMKgwqDCoDYuNDAw
NzkyXSBicmNtZm1hYzogYnJjbWZfc2Rpb19odGNsazogSFQgQXZhaWwgdGltZW91dA0KPiA+ID4g
PiA+ICgxMDAwMDAwKToNCj4gPiA+ID4gPiBjbGtjdGwgMHg1MA0KPiA+ID4gPiA+IFvCoMKgwqDC
oDYuNDA4NDQ0XSBicmNtZm1hYzogYnJjbWZfc2Rpb19odGNsazrCoMKgwqBwbXVjb250cm9swqDC
oMKgPQ0KPiA+ID4gPiA+IDAxNzc0MzgxDQo+ID4gPiA+ID4gW8KgwqDCoMKgNi40MTU1OTVdIGJy
Y21mbWFjOiBicmNtZl9zZGlvX2h0Y2xrOsKgwqDCoHBtdXN0YXR1c8KgwqDCoMKgPQ0KPiA+ID4g
PiA+IDAwMDAwMDJhDQo+ID4gPiA+ID4gW8KgwqDCoMKgNi40MjE5MTVdIGJyY21mbWFjOiBicmNt
Zl9zZGlvX2h0Y2xrOsKgwqDCoG1pbl9yZXNfbWFzayA9DQo+ID4gPiA+ID4gMGZjYWZmNzcNCj4g
PiA+ID4gPiBbwqDCoMKgwqA2LjQyODEyNF0gYnJjbWZtYWM6IGJyY21mX3NkaW9faHRjbGs6wqDC
oMKgbWF4X3Jlc19tYXNrID0NCj4gPiA+ID4gPiAwZmNlZmY3Nw0KPiA+ID4gPiA+IFvCoMKgwqDC
oDcuNDgyNjY4XSBicmNtZm1hYzogYnJjbWZfc2Rpb19odGNsazogSFQgQXZhaWwgdGltZW91dA0K
PiA+ID4gPiA+ICgxMDAwMDAwKToNCj4gPiA+ID4gPiBjbGtjdGwgMHg1MA0KPiA+ID4gPiA+IFvC
oMKgwqDCoDcuNDkwMjE0XSBicmNtZm1hYzogYnJjbWZfc2Rpb19odGNsazrCoMKgwqBwbXVjb250
cm9swqDCoMKgPQ0KPiA+ID4gPiA+IDAxNzc0MzgxDQo+ID4gPiA+ID4gW8KgwqDCoMKgNy40OTY0
MTRdIGJyY21mbWFjOiBicmNtZl9zZGlvX2h0Y2xrOsKgwqDCoHBtdXN0YXR1c8KgwqDCoMKgPQ0K
PiA+ID4gPiA+IDAwMDAwMDJhDQo+ID4gPiA+ID4gW8KgwqDCoMKgNy41MDM4NzNdIGJyY21mbWFj
OiBicmNtZl9zZGlvX2h0Y2xrOsKgwqDCoG1pbl9yZXNfbWFzayA9DQo+ID4gPiA+ID4gMGZjYWZm
NzcNCj4gPiA+ID4gPiBbwqDCoMKgwqA3LjUxMDE4Ml0gYnJjbWZtYWM6IGJyY21mX3NkaW9faHRj
bGs6wqDCoMKgbWF4X3Jlc19tYXNrID0NCj4gPiA+ID4gPiAwZmNlZmY3Nw0KPiA+ID4gPiA+ICPC
oMKgc3RyaW5ncyAvbGliL2Zpcm13YXJlL2JyY20vYnJjbWZtYWM0MzM5LXNkaW8uYmluIHwgdGFp
bCAtMQ0KPiA+ID4gPiA+IDQzMzlhMC1yb21sL3NkaW8tYWctcG9vbC1wMnAtcG5vLXBrdGZpbHRl
ci1rZWVwYWxpdmUtYW9lLXNyLQ0KPiA+ID4gPiA+IG1jaGFuLQ0KPiA+ID4gPiA+IHByb3B0eHN0
YXR1cy1scGMtdGRscy1hdXRvYWJuLXR4YmYtDQo+ID4gPiA+ID4gcmNjLXdlcHNvLW9rYy1uZG9l
IFZlcnNpb246IDYuMzcuMzIuMjggQ1JDOiAzMDc1ZjEyZSBEYXRlOg0KPiA+ID4gPiA+IFRodQ0K
PiA+ID4gPiA+IDIwMTQtMDQtDQo+ID4gPiA+ID4gMDMgMTI6MTU6MzEgQ1NUIEZXSUQgMDEtNGFl
NGFkDQo+ID4gPiA+ID4gMDMNCj4gPiA+ID4gPiANCj4gPiA+ID4gPiBCdWlsZHJvb3Q6DQo+ID4g
PiA+ID4gIyBkbWVzZyB8IGdyZXAgYnJjbWZtYWMNCj4gPiA+ID4gPiBbwqDCoMKgwqA1LjM0MzEx
OF0gYnJjbWZtYWM6IGJyY21mX2Z3X21hcF9jaGlwX3RvX25hbWU6IHVzaW5nDQo+ID4gPiA+ID4g
YnJjbS9icmNtZm1hYzQzMzktc2Rpby5iaW4gZm9yIGNoaXAgMHgwMDQzMw0KPiA+ID4gPiA+IDko
MTcyMDkpIHJldiAweDAwMDAwMg0KPiA+ID4gPiA+IFvCoMKgwqDCoDYuNDIwMDcwXSBicmNtZm1h
YzogYnJjbWZfc2Rpb19odGNsazogSFQgQXZhaWwgdGltZW91dA0KPiA+ID4gPiA+ICgxMDAwMDAw
KToNCj4gPiA+ID4gPiBjbGtjdGwgMHg1MA0KPiA+ID4gPiA+IFvCoMKgwqDCoDYuNDI3NzIyXSBi
cmNtZm1hYzogYnJjbWZfc2Rpb19odGNsazrCoMKgwqBwbXVjb250cm9swqDCoMKgPQ0KPiA+ID4g
PiA+IDAxNzc0MzgxDQo+ID4gPiA+ID4gW8KgwqDCoMKgNi40MzQ4NjVdIGJyY21mbWFjOiBicmNt
Zl9zZGlvX2h0Y2xrOsKgwqDCoHBtdXN0YXR1c8KgwqDCoMKgPQ0KPiA+ID4gPiA+IDAwMDAwMDJh
DQo+ID4gPiA+ID4gW8KgwqDCoMKgNi40NDExNzRdIGJyY21mbWFjOiBicmNtZl9zZGlvX2h0Y2xr
OsKgwqDCoG1pbl9yZXNfbWFzayA9DQo+ID4gPiA+ID4gMGZjYWZmNzcNCj4gPiA+ID4gPiBbwqDC
oMKgwqA2LjQ0NzM3OV0gYnJjbWZtYWM6IGJyY21mX3NkaW9faHRjbGs6wqDCoMKgbWF4X3Jlc19t
YXNrID0NCj4gPiA+ID4gPiAwZmNlZmY3Nw0KPiA+ID4gPiA+IFvCoMKgwqDCoDcuNTAyNjUzXSBi
cmNtZm1hYzogYnJjbWZfc2Rpb19odGNsazogSFQgQXZhaWwgdGltZW91dA0KPiA+ID4gPiA+ICgx
MDAwMDAwKToNCj4gPiA+ID4gPiBjbGtjdGwgMHg1MA0KPiA+ID4gPiA+IFvCoMKgwqDCoDcuNTEw
MjAwXSBicmNtZm1hYzogYnJjbWZfc2Rpb19odGNsazrCoMKgwqBwbXVjb250cm9swqDCoMKgPQ0K
PiA+ID4gPiA+IDAxNzc0MzgxDQo+ID4gPiA+ID4gW8KgwqDCoMKgNy41MTYzOThdIGJyY21mbWFj
OiBicmNtZl9zZGlvX2h0Y2xrOsKgwqDCoHBtdXN0YXR1c8KgwqDCoMKgPQ0KPiA+ID4gPiA+IDAw
MDAwMDJhDQo+ID4gPiA+ID4gW8KgwqDCoMKgNy41MjM4MjZdIGJyY21mbWFjOiBicmNtZl9zZGlv
X2h0Y2xrOsKgwqDCoG1pbl9yZXNfbWFzayA9DQo+ID4gPiA+ID4gMGZjYWZmNzcNCj4gPiA+ID4g
PiBbwqDCoMKgwqA3LjUzMDExN10gYnJjbWZtYWM6IGJyY21mX3NkaW9faHRjbGs6wqDCoMKgbWF4
X3Jlc19tYXNrID0NCj4gPiA+ID4gPiAwZmNlZmY3Nw0KPiA+ID4gPiA+ICMgc3RyaW5ncyAvbGli
L2Zpcm13YXJlL2JyY20vYnJjbWZtYWM0MzM5LXNkaW8uYmluIHwgdGFpbCAtMQ0KPiA+ID4gPiA+
IDQzMzlhMC1yb21sL3NkaW8tYWctcG9vbC1hdXRvYWJuLWxwYyBWZXJzaW9uOiA2LjM3LjM0LjI4
IENSQzoNCj4gPiA+ID4gPiBhNjk2ODk3Yg0KPiA+ID4gPiA+IERhdGU6IFRodSAyMDE0LTA4LTI4
IDE4OjQwOjEyDQo+ID4gPiA+ID4gUERUIEZXSUQgMDEtYTEzMTIwZmMNCj4gPiA+ID4gVGhhbmtz
IGZvciB0aGUgaW5mby4gVGhlIHBtdXN0YXR1cyBpbmRlZWQgc2hvd3MgdGhlcmUgaXMgbm8gSFQN
Cj4gPiA+ID4gY2xvY2sgZm9yDQo+ID4gPiA+IHRoZSBiYWNrcGxhbmUuIFdpbGwgaGF2ZSB0byBk
aXNjdXNzIHdpdGggaC93IGd1eXMuIE1lYW53aGlsZSwNCj4gPiA+ID4gY2FuDQo+ID4gPiA+IHlv
dQ0KPiA+ID4gPiB0cnkgdGhlIHBhdGNoIGJlbG93LiBJdCB3aWxsIGNyZWF0ZSBhIG1lbW9yeSBk
dW1wIG9mIHRoZSBkZXZpY2UNCj4gPiA+ID4gdXNpbmcNCj4gPiA+ID4gdGhlIGRldl9jb3JlZHVt
cCBmcmFtZXdvcmssIGllLiB1bmRlciAvc3lzL2NsYXNzL2RldmNvcmVkdW1wLy4NCj4gPiA+ID4g
SXQNCj4gPiA+ID4gd2lsbA0KPiA+ID4gPiBwcm9iYWJseSBjcmVhdGUgdHdvIGR1bXBzIGFzIHRo
ZSBlcnJvciBvY2N1cnMgdHdpY2UgZHVyaW5nDQo+ID4gPiA+IHByb2JlLg0KPiA+ID4gPiBKdXN0
DQo+ID4gPiA+IHNlbnQgbWUgdGhlIGZpcnN0IG9yIHB1dCBpdCBzb21ld2hlcmUgb24gaW50ZXJu
ZXQgc28gSSBjYW4NCj4gPiA+ID4gZG93bmxvYWQNCj4gPiA+ID4gaXQNCj4gPiA+ID4gYW5kIGhh
dmUgYSBsb29rIGF0IGl0Lg0KPiA+ID4gd2l0aCBwYXRjaCA6LSgNCj4gPiA+IA0KPiA+ID4gZGlm
ZiAtLWdpdA0KPiA+ID4gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEv
YnJjbWZtYWMvc2Rpby5jDQo+ID4gPiBiL2RyaXZlcnMvbmUNCj4gPiA+IGluZGV4IGYzNTU2MTIu
LmY3ZGVkOTEgMTAwNjQ0DQo+ID4gPiAtLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNv
bS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jDQo+ID4gPiArKysgYi9kcml2ZXJzL25ldC93aXJl
bGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jDQo+ID4gPiBAQCAtODMwLDYg
KzgzMCwxMSBAQCBzdGF0aWMgaW50IGJyY21mX3NkaW9faHRjbGsoc3RydWN0DQo+ID4gPiBicmNt
Zl9zZGlvDQo+ID4gPiAqYnVzLA0KPiA+ID4gYm9vbCBvbiwNCj4gPiA+IMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlmICghU0JTRElPX0NMS0FWKGNsa2N0bCwgYnVzLT5hbHBf
b25seSkpIHsNCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqBicmNtZl9lcnIoIkhUIEF2YWlsIHRpbWVvdXQgKCVkKToNCj4gPiA+IGNsa2N0
bA0KPiA+ID4gMHglMDJ4XG4iLA0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgUE1VX01BWF9UUkFOU0lU
SU9OX0RMWSwNCj4gPiA+IGNsa2N0bCk7DQo+ID4gPiArDQo+ID4gPiArwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoC8qIERFQlVHIElORk8gKi8NCj4gPiA+ICvC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgYnJjbWZfZGVidWdf
Y3JlYXRlX21lbWR1bXAoYnVzLT5zZGlvZGV2LQ0KPiA+ID4gPiANCj4gPiA+ID4gYnVzX2lmLA0K
PiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBOVUxMLCAw
KTsNCj4gPiA+ICsNCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqByZXR1cm4gLUVCQURFOw0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgfQ0KPiA+ID4gDQo+ID4gPiANCj4gPiBJIGFtIGFwcGx5aW5nIHRoaXMg
cGF0Y2ggYW5kIGFwcGFyZW50bHkgdGhlIGR1bXBzIGFyZSBub3QgY3JlYXRlZC4NCj4gPiANCj4g
PiAjIGxzIC9zeXMvY2xhc3MvZGV2Y29yZWR1bXAvDQo+ID4gZGlzYWJsZWQNCj4gPiANCj4gPiBJ
cyB0aGVyZSBzb21ldGhpbmcgZWxzZSBJIG5lZWQgdG8gbW9kaWZ5PyBJIGFtIHVzaW5nIG1haW5s
aW5lDQo+ID4ga2VybmVsLg0KPiBZb3UgbmVlZCB0byBidWlsZCBicmNtZm1hYyB3aXRoIENPTkZJ
R19CUkNNREJHIHNldCBpbiBLY29uZmlnLiBOb3QNCj4gc3VyZcKgDQo+IGlmIHlvdSBhbHJlYWR5
IGhhdmUgdGhhdC4gSSBhc3N1bWUgYSBjYXQgb2YgdGhhdCAnZGlzYWJsZWQnIGZpbGUNCj4gd2l0
aMKgDQo+IHNob3cgJzAnLg0KPiANCj4gUmVnYXJkcywNCj4gQXJlbmQNCj4gDQoNClNvcnJ5IGZv
ciB0aGUgZGVsYXllZCBhbnN3ZXIsIEkgaGFkIHNvbWUgdHJvdWJsZSB0byBjb3B5IHRoZSBzeW1s
aW5rcw0KZmlsZXMgY29ycmV0bHkgZnJvbSAvc3lzL2NsYXNzL2RldmNvcmVkdW1wLg0KDQpJIHVw
bG9hZGVkIHRoaXMgZm9sZGVyIHRvOiBodHRwczovL2RyaXZlLmdvb2dsZS5jb20vb3Blbj9pZD0x
Zm9zYWhqTE4xSw0KSTVOS1M1OV9hUFpkSExwRU5QRkh0Sw0KDQpUaGFua3MhDQoNClJlZ2FyZHMs
DQpWYW5lc3Nh

^ permalink raw reply

* [PATCH v1] brcmfmac: Avoid build error with make W=1
From: Andy Shevchenko @ 2017-11-23 15:57 UTC (permalink / raw)
  To: Arend van Spriel, Franky Lin, Hante Meuleman, Chi-Hsien Lin,
	Wright Feng, brcm80211-dev-list.pdl, brcm80211-dev-list,
	Kalle Valo, linux-wireless, netdev
  Cc: Andy Shevchenko

When I run make W=1 on gcc (Debian 7.2.0-16) 7.2.0 I got an error for
the first run, all next ones are okay.

  CC [M]  drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.o
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:2078: error: Cannot parse struct or union!
scripts/Makefile.build:310: recipe for target 'drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.o' failed

Seems like something happened with W=1 and wrong kernel doc format.
As a quick fix remove dubious /** in the code.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
index e3495ea95553..870e00cea29c 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
@@ -2070,7 +2070,7 @@ static int brcmf_sdio_txpkt_hdalign(struct brcmf_sdio *bus, struct sk_buff *pkt)
 	return head_pad;
 }
 
-/**
+/*
  * struct brcmf_skbuff_cb reserves first two bytes in sk_buff::cb for
  * bus layer usage.
  */
-- 
2.15.0

^ permalink raw reply related

* Re: kernel BUG at crypto/asymmetric_keys/public_key.c:80
From: Florian Fainelli @ 2017-11-23 17:47 UTC (permalink / raw)
  To: Johannes Berg, Arend van Spriel, open list, netdev
  Cc: David S. Miller, Herbert Xu, David Howells, linux-wireless
In-Reply-To: <1511447043.2841.2.camel@sipsolutions.net>

[-- Attachment #1: Type: text/plain, Size: 797 bytes --]



On 11/23/2017 06:24 AM, Johannes Berg wrote:
> On Wed, 2017-11-22 at 15:07 -0800, Florian Fainelli wrote:
>> On 11/22/2017 10:42 AM, Johannes Berg wrote:
>>> On Wed, 2017-11-22 at 19:29 +0100, Arend van Spriel wrote:
>>>> + Johannes
>>>>
>>>>  >>>     BUG_ON(!sig->digest);
>>>>          BUG_ON(!sig->s);
>>>
>>> I *think* this is the same bug that was reported before, then this
>>> should fix it:
>>>
>>> https://git.kernel.org/pub/scm/linux/kernel/git/davem/net.git/commit/?id=d7be102f2945a626f55e0501e52bb31ba3e77b81
>>>
>>> Can you try?
>>
>> My baseline already has this commit actually, is there something else
>> you would want me to check?
> 
> Hmm, different problem then - could you put the entire boot log
> somewhere I can read it?

Absolutely, please find it enclosed.
-- 
Florian

[-- Attachment #2: log --]
[-- Type: text/plain, Size: 22001 bytes --]

BOLT> boot stb-bld-03:users/fainelli/UPS/vmlinuz-initrd-arm
Device eth0:  hwaddr 00-10-18-57-23-70, ipaddr 192.168.1.23, mask 255.255.255.0
        gateway 192.168.1.1, nameserver 192.19.189.10, domain broadcom.com
        DHCP server 192.168.1.1, DHCP server MAC 68-05-CA-18-47-70
Loader:zimg Filesys:tftp Dev:(null) File:stb-bld-03:users/fainelli/UPS/vmlinuz-initrd-arm Options:(null)
Reading 18406640 bytes from zImage...........
Closing network 'eth0'
Starting program at 0x8000 (DTB @ 0x771f000)

32 bit direct boot...
[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 4.14.0-12995-g0c86a6bd85ff (fainelli@stb-bld-03) (gcc version 6.3.0 (crosstool-NG )) #17 SMP Wed Nov 22 09:42:09 PST 2017
[    0.000000] CPU: ARMv7 Processor [420f00f3] revision 3 (ARMv7), cr=30c5387d
[    0.000000] CPU: div instructions available: patching division code
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, PIPT instruction cache
[    0.000000] OF: fdt: Machine model: BCM97445VMS
[    0.000000] Memory policy: Data cache writealloc
[    0.000000] cma: Reserved 16 MiB at 0x00000000bf000000
[    0.000000] random: get_random_bytes called from start_kernel+0xa4/0x41c with crng_init=0
[    0.000000] percpu: Embedded 17 pages/cpu @ee795000 s39116 r8192 d22324 u69632
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 776704
[    0.000000] Kernel command line: 
[    0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
[    0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
[    0.000000] Memory: 3035280K/3112960K available (8192K kernel code, 652K rwdata, 2076K rodata, 22528K init, 242K bss, 61296K reserved, 16384K cma-reserved, 2310144K highmem)
[    0.000000] Virtual kernel memory layout:
[    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
[    0.000000]     fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
[    0.000000]     vmalloc : 0xf0800000 - 0xff800000   ( 240 MB)
[    0.000000]     lowmem  : 0xc0000000 - 0xf0000000   ( 768 MB)
[    0.000000]     pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
[    0.000000]     modules : 0xbf000000 - 0xbfe00000   (  14 MB)
[    0.000000]       .text : 0xc0008000 - 0xc0a00000   (10208 kB)
[    0.000000]       .init : 0xc0e00000 - 0xc2400000   (22528 kB)
[    0.000000]       .data : 0xc2400000 - 0xc24a304c   ( 653 kB)
[    0.000000]        .bss : 0xc24a304c - 0xc24dfbe4   ( 243 kB)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[    0.000000] Hierarchical RCU implementation.
[    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[    0.000000] irq_brcmstb_l2: registered L2 intc (mem: 0xf0805000, parent irq: 16)
[    0.000000] irq_brcmstb_l2: registered L2 intc (mem: 0xf0807000, parent irq: 17)
[    0.000000] irq_brcmstb_l2: registered L2 intc (mem: 0xf0809640, parent irq: 18)
[    0.000000] irq_brcmstb_l2: registered L2 intc (mem: 0xf080b200, parent irq: 19)
[    0.000000] irq_bcm7120_l2: registered BCM7120 L2 intc (mem: 0xfc40a780, parent IRQ(s): 2)
[    0.000000] irq_bcm7120_l2: registered BCM7120 L2 intc (mem: 0xf080d280, parent IRQ(s): 3)
[    0.000000] brcmstb: biuctrl: MCP: Write pairing already disabled
[    0.000000] arch_timer: cp15 timer(s) running at 27.00MHz (virt).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x63a1e71a3, max_idle_ns: 440795203123 ns
[    0.000006] sched_clock: 56 bits at 27MHz, resolution 37ns, wraps every 4398046511093ns
[    0.000016] Switching to timer-based delay loop, resolution 37ns
[    0.000255] Console: colour dummy device 80x30
[    0.000441] console [tty0] enabled
[    0.000464] Calibrating delay loop (skipped), value calculated using timer frequency.. 54.00 BogoMIPS (lpj=27000)
[    0.000480] pid_max: default: 32768 minimum: 301
[    0.000567] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes)
[    0.000585] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes)
[    0.001063] CPU: Testing write buffer coherency: ok
[    0.001293] CPU0: update cpu_capacity 1024
[    0.001306] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[    0.001692] Setting up static identity map for 0x200000 - 0x200060
[    0.001761] Hierarchical SRCU implementation.
[    0.003736] smp: Bringing up secondary CPUs ...
[    0.004409] CPU1: update cpu_capacity 1024
[    0.004413] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
[    0.005101] CPU2: update cpu_capacity 1024
[    0.005105] CPU2: thread -1, cpu 2, socket 0, mpidr 80000002
[    0.005776] CPU3: update cpu_capacity 1024
[    0.005780] CPU3: thread -1, cpu 3, socket 0, mpidr 80000003
[    0.005837] smp: Brought up 1 node, 4 CPUs
[    0.005878] SMP: Total of 4 processors activated (216.00 BogoMIPS).
[    0.005887] CPU: All CPU(s) started in SVC mode.
[    0.006343] devtmpfs: initialized
[    0.011672] VFP support v0.3: implementor 42 architecture 4 part 00 variant 0 rev 0
[    0.011882] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 1911260446275000 ns
[    0.011909] futex hash table entries: 1024 (order: 4, 65536 bytes)
[    0.013068] random: fast init done
[    0.013240] NET: Registered protocol family 16
[    0.014124] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.014917] cpuidle: using governor menu
[    0.015025] hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers.
[    0.015037] hw-breakpoint: maximum watchpoint size is 8 bytes.
[    0.033416] SCSI subsystem initialized
[    0.033823] usbcore: registered new interface driver usbfs
[    0.033869] usbcore: registered new interface driver hub
[    0.033930] usbcore: registered new device driver usb
[    0.034038] Linux video capture interface: v2.00
[    0.034081] pps_core: LinuxPPS API ver. 1 registered
[    0.034090] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    0.034120] PTP clock support registered
[    0.034630] Advanced Linux Sound Architecture Driver Initialized.
[    0.035068] clocksource: Switched to clocksource arch_sys_counter
[    0.073379] NET: Registered protocol family 2
[    0.073710] TCP established hash table entries: 8192 (order: 3, 32768 bytes)
[    0.073758] TCP bind hash table entries: 8192 (order: 4, 65536 bytes)
[    0.073846] TCP: Hash tables configured (established 8192 bind 8192)
[    0.073952] UDP hash table entries: 512 (order: 2, 16384 bytes)
[    0.073985] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes)
[    0.074150] NET: Registered protocol family 1
[    0.074448] RPC: Registered named UNIX socket transport module.
[    0.074458] RPC: Registered udp transport module.
[    0.074465] RPC: Registered tcp transport module.
[    0.074473] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.128462] hw perfevents: no interrupt-affinity property for /pmu, guessing.
[    0.128781] hw perfevents: enabled with armv7_cortex_a15 PMU driver, 7 counters available
[    0.130310] Initialise system trusted keyrings
[    0.130448] workingset: timestamp_bits=30 max_order=20 bucket_order=0
[    0.134558] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.135113] NFS: Registering the id_resolver key type
[    0.135139] Key type id_resolver registered
[    0.135147] Key type id_legacy registered
[    0.135164] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[    0.135190] jffs2: version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
[    0.135386] fuse init (API version 7.26)
[    0.136603] Key type asymmetric registered
[    0.136617] Asymmetric key parser 'x509' registered
[    0.136653] bounce: pool size: 64 pages
[    0.136691] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 250)
[    0.136706] io scheduler noop registered
[    0.136716] io scheduler deadline registered
[    0.136863] io scheduler cfq registered (default)
[    0.136876] io scheduler mq-deadline registered
[    0.136885] io scheduler kyber registered
[    0.137349] brcm-gisb-arb f0400000.gisb-arb: registered mem: f08c7000, irqs: 58, 59
[    0.137823] brcm-sata-phy f0458100.sata_phy: registered 2 port(s)
[    0.138870] brcmstb-gpio f040a700.gpio: Registered 4 banks (GPIO(s): 0-127)
[    0.139303] brcmstb-gpio f04172c0.gpio: Registered 2 banks (GPIO(s): 128-191)
[    0.174657] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
[    0.176395] f040ab00.serial: ttyS0 at MMIO 0xf040ab00 (irq = 36, base_baud = 5062500) is a 16550A
[    0.878924] console [ttyS0] enabled
[    0.882970] f040ab40.serial: ttyS1 at MMIO 0xf040ab40 (irq = 37, base_baud = 5062500) is a 16550A
[    0.892339] f040ab80.serial: ttyS2 at MMIO 0xf040ab80 (irq = 38, base_baud = 5062500) is a 16550A
[    0.907210] brd: module loaded
[    0.915763] loop: module loaded
[    0.920678] brcmstb_nand f03e2800.nand: enabling FLASH_DMA
[    0.926771] nand: device found, Manufacturer ID: 0x2c, Chip ID: 0x68
[    0.933149] nand: Micron MT29F32G08CBACAWP
[    0.937262] nand: 4096 MiB, MLC, erase size: 1024 KiB, page size: 4096, OOB size: 224
[    0.945122] brcmstb_nand f03e2800.nand: detected 4096MiB total, 1024KiB blocks, 4KiB pages, 28B OOB, 8-bit, BCH-24 (1KiB sector)
[    0.957416] Bad block table found at page 1048320, version 0x01
[    0.963930] Bad block table found at page 1048064, version 0x01
[    0.970453] nand_read_bbt: bad block at 0x000005a00000
[    0.975612] nand_read_bbt: bad block at 0x000005b00000
[    0.980892] 3 ofpart partitions found on MTD device brcmnand.1
[    0.986743] Creating 3 MTD partitions on "brcmnand.1":
[    0.991901] 0x000000000000-0x000080000000 : "flash1.rootfs0"
[    0.999275] 0x000080000000-0x000100000000 : "flash1.rootfs1"
[    1.006571] 0x000000000000-0x000100000000 : "flash1"
[    1.014654] brcmstb_qspi f03e0920.qspi: using bspi-mspi mode
[    1.020406] brcmstb_qspi f03e0920.qspi: no IRQs registered, cannot init driver
[    1.027670] brcmstb_qspi: probe of f03e0920.qspi failed with error -22
[    1.034267] brcmstb_qspi f0416000.spi: using mspi mode
[    1.044000] libphy: unimac MII bus: probed
[    1.060096] unimac-mdio f0b403c0.mdio: Broadcom UniMAC MDIO bus at 0xf0aa53c0
[    1.067988] libphy: Fixed MDIO Bus: probed
[    1.072497] libphy: sf2 slave mii: probed
[    1.087588] b53_common: found switch: BCM7445, rev 0
[    1.096351] brcm-systemport f04a0000.ethernet: Broadcom SYSTEMPORTv 1.00 at 0xf0ab8000 (irqs: 64, 65, TXQs: 32, RXQs: 1)
[    1.107364] e1000e: Intel(R) PRO/1000 Network Driver - 3.2.6-k
[    1.113217] e1000e: Copyright(c) 1999 - 2015 Intel Corporation.
[    1.119194] pegasus: v0.9.3 (2013/04/25), Pegasus/Pegasus II USB Ethernet driver
[    1.126656] usbcore: registered new interface driver pegasus
[    1.132360] usbcore: registered new interface driver asix
[    1.137799] usbcore: registered new interface driver ax88179_178a
[    1.143939] usbcore: registered new interface driver cdc_ether
[    1.149823] usbcore: registered new interface driver cdc_ncm
[    1.155675] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    1.162234] ehci-pci: EHCI PCI platform driver
[    1.166723] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    1.172935] ohci-pci: OHCI PCI platform driver
[    1.177487] usbcore: registered new interface driver usb-storage
[    1.183775] udc-core: couldn't find an available UDC - added [g_mass_storage] to list of pending drivers
[    1.193454] mousedev: PS/2 mouse device common for all mice
[    1.199504] brcmstb-waketimer f0417580.waketimer: rtc core: registered brcmstb-waketmr as rtc0
[    1.208149] brcmstb-waketimer f0417580.waketimer: registered, with irq 60
[    1.215059] i2c /dev entries driver
[    1.218708] gspca_main: v2.14.0 registered
[    1.223129] brcmstb_thermal f04d1500.thermal: registered AVS TMON of-sensor driver
[    1.231249] sdhci: Secure Digital Host Controller Interface driver
[    1.237451] sdhci: Copyright(c) Pierre Ossman
[    1.241821] sdhci-pltfm: SDHCI platform and OF driver helper
[    1.247569] sdhci-brcmstb f03e0000.sdhci: Clock not found in Device Tree
[    1.284074] mmc0: SDHCI controller on f03e0000.sdhci [f03e0000.sdhci] using ADMA
[    1.291715] usbcore: registered new interface driver usbhid
[    1.297314] usbhid: USB HID core driver
[    1.301668] NET: Registered protocol family 17
[    1.306397] Key type dns_resolver registered
[    1.310699] Registering SWP/SWPB emulation handler
[    1.315810] Loading compiled-in X.509 certificates
[    1.321952] libphy: sf2 slave mii: probed
[    1.336538] b53_common: found switch: BCM7445, rev 0
[    1.400063] f0b403c0.mdio--1:05: Broadcom BCM7445 PHY revision: 0xd0, patch: 3
[    1.723026] Broadcom BCM7445 f0b403c0.mdio--1:05: attached PHY driver [Broadcom BCM7445] (mii_bus:phy_addr=f0b403c0.mdio--1:05, irq=POLL)
[    1.744012] Generic PHY f0b403c0.mdio--1:00: attached PHY driver [Generic PHY] (mii_bus:phy_addr=f0b403c0.mdio--1:00, irq=POLL)
[    1.757538] Generic PHY fixed-0:01: attached PHY driver [Generic PHY] (mii_bus:phy_addr=fixed-0:01, irq=POLL)
[    1.769486] Generic PHY fixed-0:02: attached PHY driver [Generic PHY] (mii_bus:phy_addr=fixed-0:02, irq=POLL)
[    1.779876] DSA: tree 0 setup
[    1.782864] Starfighter 2 top: 4.00, core: 2.00 base: 0xf0b80000, IRQs: 67, 68
[    1.790540] brcmstb-waketimer f0417580.waketimer: setting system clock to 1970-01-01 00:01:37 UTC (97)
[    1.800022] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[    1.810712] ------------[ cut here ]------------
[    1.815342] kernel BUG at crypto/asymmetric_keys/public_key.c:80!
[    1.821445] Internal error: Oops - BUG: 0 [#1] SMP ARM
[    1.826594] Modules linked in:
[    1.829661] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.14.0-12995-g0c86a6bd85ff #17
[    1.837417] Hardware name: Broadcom STB (Flattened Device Tree)
[    1.843346] task: ee0a0000 task.stack: ee096000
[    1.847898] PC is at public_key_verify_signature+0x21c/0x260
[    1.853569] LR is at x509_check_for_self_signed+0xb0/0x10c
[    1.859064] pc : [<c0525d08>]    lr : [<c0526ee8>]    psr: 60000013
[    1.865340] sp : ee097cf8  ip : c0a7a336  fp : 00000000
[    1.870574] r10: c248e998  r9 : c0b40160  r8 : ed94b1c0
[    1.875807] r7 : c0a7a2c8  r6 : ed94b240  r5 : c2404c48  r4 : ed980700
[    1.882345] r3 : 00000000  r2 : c0b40400  r1 : ed94b080  r0 : ed94b1c0
[    1.888884] Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
[    1.896030] Control: 30c5387d  Table: 00003000  DAC: fffffffd
[    1.901785] Process swapper/0 (pid: 1, stack limit = 0xee096210)
[    1.907802] Stack: (0xee097cf8 to 0xee098000)
[    1.912167] 7ce0:                                                       60000013 00000000
[    1.920360] 7d00: 014080c0 c052149c 000011a0 c248e998 00000000 c033dcb8 ee097d98 ed94b2c0
[    1.928552] 7d20: ffffffff 00000001 edac722e c0a7a5bc 00000001 edac722e c0a7a5bc c0521530
[    1.936743] 7d40: c052143c ffffffff edac7200 00000000 00000000 00000000 c0518bc0 c248e998
[    1.944934] 7d60: 00000000 c02416f8 c244bc28 00000000 edac7200 edac7388 edac7384 60000013
[    1.953125] 7d80: 00000000 c0b40054 c0518bc0 c248e998 00000000 c025de10 00000000 00000000
[    1.961315] 7da0: 00000000 fffffffe fffffffe 00000000 00000000 c0b40054 c0518bc0 c0518c34
[    1.969506] 7dc0: c0a23498 ee096000 00000000 00040e00 ed94b342 ed980700 ed980700 ed94b240
[    1.977698] 7de0: c0a7a2c8 000002a8 c0b40160 c248e998 00000000 c0526ee8 00000000 ed980700
[    1.985890] 7e00: ed94b240 c0525f24 c244d210 ee097e80 c248e998 ee097e80 c244d1ac c0526b74
[    1.994082] 7e20: c244d210 c244b988 c248e998 ee097e80 c244d1ac c0b40160 c248e998 c0524f20
[    2.002273] 7e40: c2404c48 c244b988 c0a7a2c8 ed980681 ee02c180 ed980680 00000000 c0511148
[    2.010465] 7e60: c24b7e5a 00000048 60000013 00000000 00000000 c244d1b4 00000000 00000000
[    2.018655] 7e80: 00000000 00000000 00000000 00000000 00000000 c0a7a2c8 000002a8 00000000
[    2.026846] 7ea0: 7fffffff 00040e00 c0a7a2c8 c24df734 000002a8 c0a7a570 c0bb0f4c c0b18008
[    2.035037] 7ec0: 1f030000 c0e47898 000002a8 1f030000 0000000e 00000000 00000000 c2404c48
[    2.043227] 7ee0: ffffe000 c0e4777c 00000000 c0e6583c c0e74f98 00000008 00000000 c0201bd8
[    2.051419] 7f00: 60000013 c025dda4 00000000 c0c05a00 c0e005d8 00000000 00000000 00000007
[    2.059609] 7f20: 00000007 00040e00 00000000 c240d790 00000000 c2404c48 c0e65818 00000000
[    2.067801] 7f40: 00000000 00040e00 00000000 00040e00 c24a3080 c24a3080 c24a3080 00000109
[    2.075993] 7f60: c0e65838 c0e6583c c0e74f98 c0e00e6c 00000007 00000007 00000000 c0e005d8
[    2.084185] 7f80: c09b4398 00000000 c09b4398 00000000 00000000 00000000 00000000 00000000
[    2.092377] 7fa0: 00000000 c09b43a0 00000000 c0208920 00000000 00000000 00000000 00000000
[    2.100568] 7fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    2.108759] 7fe0: 00000000 00000000 00000000 00000000 00000013 00000000 d91998da eea1d16c
[    2.116964] [<c0525d08>] (public_key_verify_signature) from [<c0526ee8>] (x509_check_for_self_signed+0xb0/0x10c)
[    2.127161] [<c0526ee8>] (x509_check_for_self_signed) from [<c0525f24>] (x509_cert_parse+0x14c/0x1a8)
[    2.136399] [<c0525f24>] (x509_cert_parse) from [<c0526b74>] (x509_key_preparse+0x14/0x18c)
[    2.144768] [<c0526b74>] (x509_key_preparse) from [<c0524f20>] (asymmetric_key_preparse+0x54/0xd4)
[    2.153749] [<c0524f20>] (asymmetric_key_preparse) from [<c0511148>] (key_create_or_update+0x120/0x3c4)
[    2.163166] [<c0511148>] (key_create_or_update) from [<c0e47898>] (regulatory_init_db+0x11c/0x1e4)
[    2.172146] [<c0e47898>] (regulatory_init_db) from [<c0201bd8>] (do_one_initcall+0x54/0x18c)
[    2.180610] [<c0201bd8>] (do_one_initcall) from [<c0e00e6c>] (kernel_init_freeable+0x140/0x1cc)
[    2.189328] [<c0e00e6c>] (kernel_init_freeable) from [<c09b43a0>] (kernel_init+0x8/0x110)
[    2.197527] [<c09b43a0>] (kernel_init) from [<c0208920>] (ret_from_fork+0x14/0x34)
[    2.205114] Code: ebf8636b eaffffab e7f001f2 e7f001f2 (e7f001f2) 
[    2.211219] ---[ end trace 5faac36851bd7a0b ]---
[    2.215871] Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
[    2.215871] 
[    2.225031] CPU1: stopping
[    2.227750] CPU: 1 PID: 0 Comm: swapper/1 Tainted: G      D          4.14.0-12995-g0c86a6bd85ff #17
[    2.236810] Hardware name: Broadcom STB (Flattened Device Tree)
[    2.242753] [<c0211ac0>] (unwind_backtrace) from [<c020c8b8>] (show_stack+0x10/0x14)
[    2.250518] [<c020c8b8>] (show_stack) from [<c099f674>] (dump_stack+0x84/0x98)
[    2.257759] [<c099f674>] (dump_stack) from [<c02108d4>] (handle_IPI+0x2ac/0x32c)
[    2.265172] [<c02108d4>] (handle_IPI) from [<c02014cc>] (gic_handle_irq+0x8c/0x90)
[    2.272757] [<c02014cc>] (gic_handle_irq) from [<c020d578>] (__irq_svc+0x58/0x74)
[    2.280251] Exception stack(0xee0c7f68 to 0xee0c7fb0)
[    2.285312] 7f60:                   00000001 00000000 00000000 c021bc60 ee0c6000 c2404c74
[    2.293504] 7f80: c2404ce0 00000002 c23ec3c0 00000000 00000000 ee0c7fc0 2c3c2000 ee0c7fb8
[    2.301696] 7fa0: c0209390 c0209394 600f0013 ffffffff
[    2.306760] [<c020d578>] (__irq_svc) from [<c0209394>] (arch_cpu_idle+0x38/0x3c)
[    2.314179] [<c0209394>] (arch_cpu_idle) from [<c025ed08>] (do_idle+0x184/0x218)
[    2.321592] [<c025ed08>] (do_idle) from [<c025f038>] (cpu_startup_entry+0x18/0x1c)
[    2.329178] [<c025f038>] (cpu_startup_entry) from [<002018ac>] (0x2018ac)
[    2.335977] CPU3: stopping
[    2.338694] CPU: 3 PID: 0 Comm: swapper/3 Tainted: G      D          4.14.0-12995-g0c86a6bd85ff #17
[    2.347754] Hardware name: Broadcom STB (Flattened Device Tree)
[    2.353690] [<c0211ac0>] (unwind_backtrace) from [<c020c8b8>] (show_stack+0x10/0x14)
[    2.361452] [<c020c8b8>] (show_stack) from [<c099f674>] (dump_stack+0x84/0x98)
[    2.368691] [<c099f674>] (dump_stack) from [<c02108d4>] (handle_IPI+0x2ac/0x32c)
[    2.376103] [<c02108d4>] (handle_IPI) from [<c02014cc>] (gic_handle_irq+0x8c/0x90)
[    2.383688] [<c02014cc>] (gic_handle_irq) from [<c020d578>] (__irq_svc+0x58/0x74)
[    2.391182] Exception stack(0xee0cbf68 to 0xee0cbfb0)
[    2.396243] bf60:                   00000001 00000000 00000000 c021bc60 ee0ca000 c2404c74
[    2.404434] bf80: c2404ce0 00000008 c23ec3c0 00000000 00000000 ee0cbfc0 2c3e4000 ee0cbfb8
[    2.412625] bfa0: c0209390 c0209394 600f0013 ffffffff
[    2.417690] [<c020d578>] (__irq_svc) from [<c0209394>] (arch_cpu_idle+0x38/0x3c)
[    2.425103] [<c0209394>] (arch_cpu_idle) from [<c025ed08>] (do_idle+0x184/0x218)
[    2.432514] [<c025ed08>] (do_idle) from [<c025f038>] (cpu_startup_entry+0x18/0x1c)
[    2.440098] [<c025f038>] (cpu_startup_entry) from [<002018ac>] (0x2018ac)
[    2.446897] CPU2: stopping
[    2.449615] CPU: 2 PID: 0 Comm: swapper/2 Tainted: G      D          4.14.0-12995-g0c86a6bd85ff #17
[    2.458676] Hardware name: Broadcom STB (Flattened Device Tree)
[    2.464612] [<c0211ac0>] (unwind_backtrace) from [<c020c8b8>] (show_stack+0x10/0x14)
[    2.472372] [<c020c8b8>] (show_stack) from [<c099f674>] (dump_stack+0x84/0x98)
[    2.479611] [<c099f674>] (dump_stack) from [<c02108d4>] (handle_IPI+0x2ac/0x32c)
[    2.487022] [<c02108d4>] (handle_IPI) from [<c02014cc>] (gic_handle_irq+0x8c/0x90)
[    2.494606] [<c02014cc>] (gic_handle_irq) from [<c020d578>] (__irq_svc+0x58/0x74)
[    2.502100] Exception stack(0xee0c9f68 to 0xee0c9fb0)
[    2.507161] 9f60:                   00000001 00000000 00000000 c021bc60 ee0c8000 c2404c74
[    2.515354] 9f80: c2404ce0 00000004 c23ec3c0 00000000 00000000 ee0c9fc0 2c3d3000 ee0c9fb8
[    2.523544] 9fa0: c0209390 c0209394 60000013 ffffffff
[    2.528608] [<c020d578>] (__irq_svc) from [<c0209394>] (arch_cpu_idle+0x38/0x3c)
[    2.536022] [<c0209394>] (arch_cpu_idle) from [<c025ed08>] (do_idle+0x184/0x218)
[    2.543433] [<c025ed08>] (do_idle) from [<c025f038>] (cpu_startup_entry+0x18/0x1c)
[    2.551018] [<c025f038>] (cpu_startup_entry) from [<002018ac>] (0x2018ac)
[    2.557825] ---[ end Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
[    2.557825] 



^ permalink raw reply

* Re: pull-request: wireless-drivers 2017-11-22
From: David Miller @ 2017-11-23 18:07 UTC (permalink / raw)
  To: kvalo; +Cc: linux-wireless, netdev, linux-kernel
In-Reply-To: <87mv3ebag5.fsf@kamboji.qca.qualcomm.com>

From: Kalle Valo <kvalo@codeaurora.org>
Date: Wed, 22 Nov 2017 17:27:22 +0200

> here's the first pull request to net tree for 4.15. Please let me know
> if there are any problems.

Pulled, thanks Kalle!

^ permalink raw reply

* Re: rtl8723be on Fedora27
From: Larry Finger @ 2017-11-23 18:24 UTC (permalink / raw)
  To: Rákosi Gergely, James Cameron; +Cc: linux-wireless
In-Reply-To: <44aaa502-a8f0-c494-f3d2-674e398ca16c@gmail.com>

On 11/23/2017 08:36 AM, Rákosi Gergely wrote:
> 2017-11-21 22:30 keltezéssel, James Cameron írta:
>> On Tue, Nov 21, 2017 at 09:52:12PM +0100, Rákosi Gergely wrote:
>>> 2017-11-21 21:37 keltezéssel, James Cameron írta:
>>>> On Tue, Nov 21, 2017 at 03:08:16PM +0100, Rákosi Gergely wrote:
>>>>> 2017-11-18 16:52 keltezéssel, Larry Finger írta:
>>>>>> On 11/17/2017 06:22 PM, Rákosi Gergely wrote:
>>>>>>> Hello Larry,
>>>>>>>
>>>>>>> First of all, thanks your help.
>>>>>>> Lets see...here is the kernel version: 4.13.12-300
>>>>>>> The machine is an Asus ROG 553VE
>>>>>>>
>>>>>>> The firmware which loading in the dmesg is : rtlwifi/rtl8723befw_36.bin
>>>>>>> The output of md5sum is : 1850c1308fbcd95e9f6a7f58ede1e35f
>>>>>> [...]
>>>>>> sudo iw dev wlan0 scan | egrep "SSID|signal"
>>>>>>
>>>>>> Post that output. In addition, copy the dmesg output to some pastebin
>>>>>> and post the link as well.
>>>>>>
>>>>>> Larry
>>>>>>
>>>>> Hello Larry,
>>>>>
>>>>> I hope this email post format is good, and fit to the rules.
>>>>> Here is the output:
>>>>>
>>>>> root@skynet-x2 ~]# iw dev wlp2s0 scan | egrep "SSID|signal"
>>>>>          signal: -46.00 dBm
>>>>>          SSID: SKYNET-X2
>>>>> [...]
>>>>> [root@skynet-x2 ~]#
>>>> Scan results seem normal.  Was this scan before disconnect?
>>> Yes, this command output taken while the connection was OK
>> Thanks.
>>
>>>>> And the dmesg output:
>>>>>
>>>>> https://pastebin.com/iqQSu2hD
>>>> Is now v4.13.13.
>>> Yes, thats the upgraded kernel
>>>
>>>> This is interesting, an H2C command was dropped, but no idea which.
>>>>
>>>> [    9.848052] rtl8723be: error H2C cmd because of Fw download fail!!!
>>>>
>>>> Disconnection happened at boot+440 seconds, associate+429 seconds;
>>>>
>>>> [  439.871033] rtlwifi: AP off, try to reconnect now
>>>> [  439.871093] wlp2s0: Connection to AP 4c:5e:0c:c7:fa:e3 lost
>>>>
>>>> I cannot tell what causes disconnect.  I wonder if the same
>>>> timing of the problem happens always, or if the timing varies.
>>> The timing always changing, never is the same. And I dont realize
>>> the cause at now...
>> Thanks.  I had similar problem with different wireless device.
>>
>>>> Init MAC failed was another 30 seconds later;
>>>>
>>>> [  468.600670] IPv6: ADDRCONF(NETDEV_UP): wlp2s0: link is not ready
>>>> [  469.618926] rtl8723be: Init MAC failed
>>>>
>>>> Looking at _rtl8723be_init_mac, there are two false returns;
>>>> hardware power on fail, and llt write fail.
>>>>
>>>> Sorry, I don't have rtl8723be hardware.
>>>>
>>>> Rákosi, did any older kernel keep connection?
>>> The oldest kernel is 4.13.9-300.fc27.x86_64 in Fedora 27
>>> installation, but did the same.  If you can give advise how, and
>>> what I do, then I'll try it.
>> You might try running "Live CD" of Fedora 26 or Fedora 25, without
>> installing, to test if unexpected disconnection happens in two older
>> kernels.  Not for permanent solution, just for easy testing.
>>
>> I don't have specific advice for Fedora 27, you might ask Fedora
>> community about that, or use RHBZ.  A quick search finds this old 2013
>> page;
>>
>> https://fedoraproject.org/wiki/User:Ignatenkobrain/Kernel/Bisection
>>
> And now the wireless is working almost 20 hours long, from yesterday
> afternoon. I dont know why. Lets check some happening:
> - Yesterday I disconnect the charger from laptop, and lay down at the
> other room
> - I left the laptop more than a hour without interaction, so the system
> is going to sleep
> - When I push the keyboard the system load up, and everything is working
> fine
> - The battery almost depleted when I going back to the original room,
> and connect the charger
> 
> Then nothing changed, and I have a working rtl8723be wifi module. Why ?

Who knows? I do not understand why it did not work before the way mine does with 
openSUSE!

Larry

^ permalink raw reply

* Re: rtl8723be on Fedora27
From: Rákosi Gergely @ 2017-11-23 18:29 UTC (permalink / raw)
  To: Larry Finger, James Cameron; +Cc: linux-wireless
In-Reply-To: <88073798-e6c3-99a8-15ff-d3c7a8b3ef55@lwfinger.net>

2017-11-23 19:24 keltezéssel, Larry Finger írta:
> On 11/23/2017 08:36 AM, Rákosi Gergely wrote:
>> 2017-11-21 22:30 keltezéssel, James Cameron írta:
>>> On Tue, Nov 21, 2017 at 09:52:12PM +0100, Rákosi Gergely wrote:
>>>> 2017-11-21 21:37 keltezéssel, James Cameron írta:
>>>>> On Tue, Nov 21, 2017 at 03:08:16PM +0100, Rákosi Gergely wrote:
>>>>>> 2017-11-18 16:52 keltezéssel, Larry Finger írta:
>>>>>>> On 11/17/2017 06:22 PM, Rákosi Gergely wrote:
>>>>>>>> Hello Larry,
>>>>>>>>
>>>>>>>> First of all, thanks your help.
>>>>>>>> Lets see...here is the kernel version: 4.13.12-300
>>>>>>>> The machine is an Asus ROG 553VE
>>>>>>>>
>>>>>>>> The firmware which loading in the dmesg is :
>>>>>>>> rtlwifi/rtl8723befw_36.bin
>>>>>>>> The output of md5sum is : 1850c1308fbcd95e9f6a7f58ede1e35f
>>>>>>> [...]
>>>>>>> sudo iw dev wlan0 scan | egrep "SSID|signal"
>>>>>>>
>>>>>>> Post that output. In addition, copy the dmesg output to some
>>>>>>> pastebin
>>>>>>> and post the link as well.
>>>>>>>
>>>>>>> Larry
>>>>>>>
>>>>>> Hello Larry,
>>>>>>
>>>>>> I hope this email post format is good, and fit to the rules.
>>>>>> Here is the output:
>>>>>>
>>>>>> root@skynet-x2 ~]# iw dev wlp2s0 scan | egrep "SSID|signal"
>>>>>>          signal: -46.00 dBm
>>>>>>          SSID: SKYNET-X2
>>>>>> [...]
>>>>>> [root@skynet-x2 ~]#
>>>>> Scan results seem normal.  Was this scan before disconnect?
>>>> Yes, this command output taken while the connection was OK
>>> Thanks.
>>>
>>>>>> And the dmesg output:
>>>>>>
>>>>>> https://pastebin.com/iqQSu2hD
>>>>> Is now v4.13.13.
>>>> Yes, thats the upgraded kernel
>>>>
>>>>> This is interesting, an H2C command was dropped, but no idea which.
>>>>>
>>>>> [    9.848052] rtl8723be: error H2C cmd because of Fw download
>>>>> fail!!!
>>>>>
>>>>> Disconnection happened at boot+440 seconds, associate+429 seconds;
>>>>>
>>>>> [  439.871033] rtlwifi: AP off, try to reconnect now
>>>>> [  439.871093] wlp2s0: Connection to AP 4c:5e:0c:c7:fa:e3 lost
>>>>>
>>>>> I cannot tell what causes disconnect.  I wonder if the same
>>>>> timing of the problem happens always, or if the timing varies.
>>>> The timing always changing, never is the same. And I dont realize
>>>> the cause at now...
>>> Thanks.  I had similar problem with different wireless device.
>>>
>>>>> Init MAC failed was another 30 seconds later;
>>>>>
>>>>> [  468.600670] IPv6: ADDRCONF(NETDEV_UP): wlp2s0: link is not ready
>>>>> [  469.618926] rtl8723be: Init MAC failed
>>>>>
>>>>> Looking at _rtl8723be_init_mac, there are two false returns;
>>>>> hardware power on fail, and llt write fail.
>>>>>
>>>>> Sorry, I don't have rtl8723be hardware.
>>>>>
>>>>> Rákosi, did any older kernel keep connection?
>>>> The oldest kernel is 4.13.9-300.fc27.x86_64 in Fedora 27
>>>> installation, but did the same.  If you can give advise how, and
>>>> what I do, then I'll try it.
>>> You might try running "Live CD" of Fedora 26 or Fedora 25, without
>>> installing, to test if unexpected disconnection happens in two older
>>> kernels.  Not for permanent solution, just for easy testing.
>>>
>>> I don't have specific advice for Fedora 27, you might ask Fedora
>>> community about that, or use RHBZ.  A quick search finds this old 2013
>>> page;
>>>
>>> https://fedoraproject.org/wiki/User:Ignatenkobrain/Kernel/Bisection
>>>
>> And now the wireless is working almost 20 hours long, from yesterday
>> afternoon. I dont know why. Lets check some happening:
>> - Yesterday I disconnect the charger from laptop, and lay down at the
>> other room
>> - I left the laptop more than a hour without interaction, so the system
>> is going to sleep
>> - When I push the keyboard the system load up, and everything is working
>> fine
>> - The battery almost depleted when I going back to the original room,
>> and connect the charger
>>
>> Then nothing changed, and I have a working rtl8723be wifi module. Why ?
>
> Who knows? I do not understand why it did not work before the way mine
> does with openSUSE!
>
> Larry
>
>
I found a workaround! If I power up the laptop, and check the wifi, and
if it is OK, then I close down the screen (thats mean laptop going to
sleep). After I open it, and just using like normal, then the connection
working well for a day, or more.
If I dont do that, then comes up the usual problem.

What ? Anybody have an idea what is it mean, and how ?

Thanks
Gergely

^ permalink raw reply


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox