All of lore.kernel.org
 help / color / mirror / Atom feed
From: Kalle Valo <kvalo@codeaurora.org>
To: Arnd Bergmann <arnd@arndb.de>
Cc: Maharaja Kennadyrajan <mkenna@codeaurora.org>,
	netdev@vger.kernel.org, linux-wireless@vger.kernel.org,
	linux-kernel@vger.kernel.org, ath10k@lists.infradead.org,
	"David S. Miller" <davem@davemloft.net>
Subject: Re: [PATCH net-next 2/2] ath10k: fix ath10k_pci struct layout
Date: Mon, 11 May 2020 15:17:12 +0300	[thread overview]
Message-ID: <87r1vq4qev.fsf@kamboji.qca.qualcomm.com> (raw)
In-Reply-To: <87v9l24qz6.fsf@kamboji.qca.qualcomm.com> (Kalle Valo's message of "Mon, 11 May 2020 15:05:01 +0300")

Kalle Valo <kvalo@codeaurora.org> writes:

> Arnd Bergmann <arnd@arndb.de> writes:
>
>> gcc-10 correctly points out a bug with a zero-length array in
>> struct ath10k_pci:
>>
>> drivers/net/wireless/ath/ath10k/ahb.c: In function 'ath10k_ahb_remove':
>> drivers/net/wireless/ath/ath10k/ahb.c:30:9: error: array subscript 0
>> is outside the bounds of an interior zero-length array 'struct
>> ath10k_ahb[0]' [-Werror=zero-length-bounds]
>>    30 |  return &((struct ath10k_pci *)ar->drv_priv)->ahb[0];
>>       |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> In file included from drivers/net/wireless/ath/ath10k/ahb.c:13:
>> drivers/net/wireless/ath/ath10k/pci.h:185:20: note: while referencing 'ahb'
>>   185 |  struct ath10k_ahb ahb[0];
>>       |                    ^~~
>>
>> The last addition to the struct ignored the comments and added
>> new members behind the array that must remain last.
>>
>> Change it to a flexible-array member and move it last again to
>> make it work correctly, prevent the same thing from happening
>> again (all compilers warn about flexible-array members in the
>> middle of a struct) and get it to build without warnings.
>
> Very good find, thanks! This bug would cause all sort of strange memory
> corruption issues.

This motivated me to switch to using GCC 10.x and I noticed that you had
already upgraded crosstool so it was a trivial thing to do, awesome :)

https://mirrors.edge.kernel.org/pub/tools/crosstool/

I use crosstool like this using GNUmakefile:

CROSS_COMPILE=/opt/cross/gcc-10.1.0-nolibc/x86_64-linux/bin/x86_64-linux-
include Makefile

I think it's handy trick and would be good to mention that in the
crosstool main page. That way I could just point people to the crosstool
main page when they are using ancient compilers and would need to
upgrade.

-- 
https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches

WARNING: multiple messages have this Message-ID (diff)
From: Kalle Valo <kvalo@codeaurora.org>
To: Arnd Bergmann <arnd@arndb.de>
Cc: Maharaja Kennadyrajan <mkenna@codeaurora.org>,
	netdev@vger.kernel.org, linux-wireless@vger.kernel.org,
	linux-kernel@vger.kernel.org, ath10k@lists.infradead.org,
	"David S. Miller" <davem@davemloft.net>
Subject: Re: [PATCH net-next 2/2] ath10k: fix ath10k_pci struct layout
Date: Mon, 11 May 2020 15:17:12 +0300	[thread overview]
Message-ID: <87r1vq4qev.fsf@kamboji.qca.qualcomm.com> (raw)
In-Reply-To: <87v9l24qz6.fsf@kamboji.qca.qualcomm.com> (Kalle Valo's message of "Mon, 11 May 2020 15:05:01 +0300")

Kalle Valo <kvalo@codeaurora.org> writes:

> Arnd Bergmann <arnd@arndb.de> writes:
>
>> gcc-10 correctly points out a bug with a zero-length array in
>> struct ath10k_pci:
>>
>> drivers/net/wireless/ath/ath10k/ahb.c: In function 'ath10k_ahb_remove':
>> drivers/net/wireless/ath/ath10k/ahb.c:30:9: error: array subscript 0
>> is outside the bounds of an interior zero-length array 'struct
>> ath10k_ahb[0]' [-Werror=zero-length-bounds]
>>    30 |  return &((struct ath10k_pci *)ar->drv_priv)->ahb[0];
>>       |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> In file included from drivers/net/wireless/ath/ath10k/ahb.c:13:
>> drivers/net/wireless/ath/ath10k/pci.h:185:20: note: while referencing 'ahb'
>>   185 |  struct ath10k_ahb ahb[0];
>>       |                    ^~~
>>
>> The last addition to the struct ignored the comments and added
>> new members behind the array that must remain last.
>>
>> Change it to a flexible-array member and move it last again to
>> make it work correctly, prevent the same thing from happening
>> again (all compilers warn about flexible-array members in the
>> middle of a struct) and get it to build without warnings.
>
> Very good find, thanks! This bug would cause all sort of strange memory
> corruption issues.

This motivated me to switch to using GCC 10.x and I noticed that you had
already upgraded crosstool so it was a trivial thing to do, awesome :)

https://mirrors.edge.kernel.org/pub/tools/crosstool/

I use crosstool like this using GNUmakefile:

CROSS_COMPILE=/opt/cross/gcc-10.1.0-nolibc/x86_64-linux/bin/x86_64-linux-
include Makefile

I think it's handy trick and would be good to mention that in the
crosstool main page. That way I could just point people to the crosstool
main page when they are using ancient compilers and would need to
upgrade.

-- 
https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches

_______________________________________________
ath10k mailing list
ath10k@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/ath10k

  reply	other threads:[~2020-05-11 12:17 UTC|newest]

Thread overview: 49+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-09 12:06 [PATCH net-next 1/2] ath10k: fix gcc-10 zero-length-bounds warnings Arnd Bergmann
2020-05-09 12:06 ` Arnd Bergmann
2020-05-09 12:06 ` [PATCH net-next 2/2] ath10k: fix ath10k_pci struct layout Arnd Bergmann
2020-05-09 12:06   ` Arnd Bergmann
2020-05-11 12:05   ` Kalle Valo
2020-05-11 12:05     ` Kalle Valo
2020-05-11 12:17     ` Kalle Valo [this message]
2020-05-11 12:17       ` Kalle Valo
2020-05-11 12:39       ` Arnd Bergmann
2020-05-11 12:39         ` Arnd Bergmann
2020-05-13  6:50       ` gcc-10: kernel stack is corrupted and fails to boot Kalle Valo
2020-05-13  8:49         ` Arnd Bergmann
2020-05-13 12:45           ` Kalle Valo
2020-05-13 13:45             ` Arnd Bergmann
2020-05-13 15:31               ` Kalle Valo
2020-05-13 16:00                 ` Arnd Bergmann
2020-05-13 16:07                   ` David Laight
2020-05-14  9:13                 ` Harald Arnesen
2020-05-13 15:48         ` Arvind Sankar
2020-05-13 21:28           ` Arnd Bergmann
2020-05-13 21:41             ` Borislav Petkov
2020-05-13 21:49               ` Arnd Bergmann
2020-05-13 22:20                 ` Borislav Petkov
2020-05-13 22:51                   ` Arvind Sankar
2020-05-13 23:13                   ` Linus Torvalds
2020-05-13 23:36                     ` Borislav Petkov
2020-05-14  0:11                       ` Linus Torvalds
2020-05-14  0:51                         ` Nick Desaulniers
2020-05-14  2:20                           ` Linus Torvalds
2020-05-14  3:50                             ` Andy Lutomirski
     [not found]                               ` <CAHk-=wgiGxRgJGS-zyer1C_x2MQUVo6iZn0=aJyuFTqJWk-mpA@mail.gmail.com>
2020-05-14  5:22                                 ` Arvind Sankar
2020-05-14  8:40                                   ` Arnd Bergmann
2020-05-14 13:27                                     ` [PATCH] x86: Fix early boot crash on gcc-10, third try Borislav Petkov
2020-05-14 14:45                                       ` Kalle Valo
2020-05-14 15:50                                     ` gcc-10: kernel stack is corrupted and fails to boot Arvind Sankar
2020-05-14  8:11                             ` David Laight
2020-05-13 23:07                 ` Linus Torvalds
2020-05-09 15:48 ` [PATCH net-next 1/2] ath10k: fix gcc-10 zero-length-bounds warnings Gustavo A. R. Silva
2020-05-09 15:48   ` Gustavo A. R. Silva
2020-05-11 12:02   ` Kalle Valo
2020-05-11 12:02     ` Kalle Valo
2020-05-11 12:46     ` Arnd Bergmann
2020-05-11 12:46       ` Arnd Bergmann
2020-05-11 13:09       ` Kalle Valo
2020-05-11 13:09         ` Kalle Valo
2020-05-11 13:47         ` Arnd Bergmann
2020-05-11 13:47           ` Arnd Bergmann
2020-05-12  7:33 ` Kalle Valo
2020-05-12  7:33 ` Kalle Valo

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87r1vq4qev.fsf@kamboji.qca.qualcomm.com \
    --to=kvalo@codeaurora.org \
    --cc=arnd@arndb.de \
    --cc=ath10k@lists.infradead.org \
    --cc=davem@davemloft.net \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-wireless@vger.kernel.org \
    --cc=mkenna@codeaurora.org \
    --cc=netdev@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.