Thread (17 messages) 17 messages, 6 authors, 2024-06-28

Re: [PATCH] tty: mxser: Remove __counted_by from mxser_board.ports[]

From: Bill Wendling <morbo@google.com>
Date: 2024-05-30 08:43:22
Also in: imx, linux-hardening, linux-patches, linux-serial, llvm, stable

On Thu, May 30, 2024 at 1:41 AM Jiri Slaby [off-list ref] wrote:
On 30. 05. 24, 10:33, Jiri Slaby wrote:
quoted
On 30. 05. 24, 10:12, Gustavo A. R. Silva wrote:
quoted

On 30/05/24 09:40, Greg Kroah-Hartman wrote:
quoted
On Thu, May 30, 2024 at 08:22:03AM +0200, Jiri Slaby wrote:
quoted
quoted
  This will be an error in a future compiler version
[-Werror,-Wbounds-safety-counted-by-elt-type-unknown-size]
      291 |         struct mxser_port ports[] __counted_by(nports);
          |         ^~~~~~~~~~~~~~~~~~~~~~~~~
    1 error generated.

Remove this use of __counted_by to fix the warning/error. However,
rather than remove it altogether, leave it commented, as it may be
possible to support this in future compiler releases.
This looks like a compiler bug/deficiency.
I agree, why not just turn that option off in the compiler so that these
"warnings" will not show up?
It's not a compiler bug.
It is, provided the code compiles and runs.
quoted
The flexible array is nested four struct layers deep, see:

ports[].port.buf.sentinel.data[]

The error report could be more specific, though.
Ah, ok. The assumption is sentinel.data[] shall be unused. That's why it
all works. The size is well known, [] is zero size, right?

Still, fix the compiler, not the code.
Or fix the code (properly).

Flex arrays (even empty) in the middle of structs (like
ports[].port.buf.sentinel.data[] above is) are deprecated since gcc 14:
https://gcc.gnu.org/pipermail/gcc-patches/2023-August/626516.html

So we should get rid of all those. Sooner than later.
Yes! Please do this.

-bw

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help