2022-12-12 11:10:51

by Jiri Slaby

[permalink] [raw]
Subject: [PATCH v2] thunderbolt (gcc13): synchronize tb_port_is_clx_enabled()'s 2nd param

tb_port_is_clx_enabled() generates a valid warning with gcc-13:
drivers/thunderbolt/switch.c:1286:6: error: conflicting types for 'tb_port_is_clx_enabled' due to enum/integer mismatch; have 'bool(struct tb_port *, unsigned int)' ...
drivers/thunderbolt/tb.h:1050:6: note: previous declaration of 'tb_port_is_clx_enabled' with type 'bool(struct tb_port *, enum tb_clx)' ...

I.e. the type of the 2nd parameter of tb_port_is_clx_enabled() in the
declaration is unsigned int, while the definition spells enum tb_clx.
Synchronize them to the former as the parameter is in fact a mask of the
enum values.

Cc: Martin Liska <[email protected]>
Cc: Andreas Noever <[email protected]>
Cc: Michael Jamet <[email protected]>
Cc: Mika Westerberg <[email protected]>
Cc: Yehezkel Bernat <[email protected]>
Cc: [email protected]
Signed-off-by: Jiri Slaby (SUSE) <[email protected]>
---

Notes:
[v2] switch to uint instead of to enum

drivers/thunderbolt/tb.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/thunderbolt/tb.h b/drivers/thunderbolt/tb.h
index f9786976f5ec..6c4a26b1c37c 100644
--- a/drivers/thunderbolt/tb.h
+++ b/drivers/thunderbolt/tb.h
@@ -1047,7 +1047,7 @@ void tb_port_lane_bonding_disable(struct tb_port *port);
int tb_port_wait_for_link_width(struct tb_port *port, int width,
int timeout_msec);
int tb_port_update_credits(struct tb_port *port);
-bool tb_port_is_clx_enabled(struct tb_port *port, enum tb_clx clx);
+bool tb_port_is_clx_enabled(struct tb_port *port, unsigned int clx);

int tb_switch_find_vse_cap(struct tb_switch *sw, enum tb_switch_vse_cap vsec);
int tb_switch_find_cap(struct tb_switch *sw, enum tb_switch_cap cap);
--
2.38.1


2022-12-13 15:39:08

by Mika Westerberg

[permalink] [raw]
Subject: Re: [PATCH v2] thunderbolt (gcc13): synchronize tb_port_is_clx_enabled()'s 2nd param

Hi,

On Mon, Dec 12, 2022 at 11:29:36AM +0100, Jiri Slaby (SUSE) wrote:
> tb_port_is_clx_enabled() generates a valid warning with gcc-13:
> drivers/thunderbolt/switch.c:1286:6: error: conflicting types for 'tb_port_is_clx_enabled' due to enum/integer mismatch; have 'bool(struct tb_port *, unsigned int)' ...
> drivers/thunderbolt/tb.h:1050:6: note: previous declaration of 'tb_port_is_clx_enabled' with type 'bool(struct tb_port *, enum tb_clx)' ...
>
> I.e. the type of the 2nd parameter of tb_port_is_clx_enabled() in the
> declaration is unsigned int, while the definition spells enum tb_clx.
> Synchronize them to the former as the parameter is in fact a mask of the
> enum values.
>
> Cc: Martin Liska <[email protected]>
> Cc: Andreas Noever <[email protected]>
> Cc: Michael Jamet <[email protected]>
> Cc: Mika Westerberg <[email protected]>
> Cc: Yehezkel Bernat <[email protected]>
> Cc: [email protected]
> Signed-off-by: Jiri Slaby (SUSE) <[email protected]>

Looks good now. I will pick this up after the merge window closes.
Thanks!

2022-12-27 09:01:02

by Mika Westerberg

[permalink] [raw]
Subject: Re: [PATCH v2] thunderbolt (gcc13): synchronize tb_port_is_clx_enabled()'s 2nd param

On Mon, Dec 12, 2022 at 11:29:36AM +0100, Jiri Slaby (SUSE) wrote:
> tb_port_is_clx_enabled() generates a valid warning with gcc-13:
> drivers/thunderbolt/switch.c:1286:6: error: conflicting types for 'tb_port_is_clx_enabled' due to enum/integer mismatch; have 'bool(struct tb_port *, unsigned int)' ...
> drivers/thunderbolt/tb.h:1050:6: note: previous declaration of 'tb_port_is_clx_enabled' with type 'bool(struct tb_port *, enum tb_clx)' ...
>
> I.e. the type of the 2nd parameter of tb_port_is_clx_enabled() in the
> declaration is unsigned int, while the definition spells enum tb_clx.
> Synchronize them to the former as the parameter is in fact a mask of the
> enum values.
>
> Cc: Martin Liska <[email protected]>
> Cc: Andreas Noever <[email protected]>
> Cc: Michael Jamet <[email protected]>
> Cc: Mika Westerberg <[email protected]>
> Cc: Yehezkel Bernat <[email protected]>
> Cc: [email protected]
> Signed-off-by: Jiri Slaby (SUSE) <[email protected]>

Applied now, thanks!

I changed the title slightly to avoid words like "synchronize" because
that makes me think this is fixing a race condition somewhere but in
fact this is simply fixing a function prototope to match the definition :)