All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] drivers/net/ethernet/sfc/: Simplify code
@ 2021-11-20 20:14 Alejandro Colomar
  2021-11-22 16:17 ` Edward Cree
  0 siblings, 1 reply; 3+ messages in thread
From: Alejandro Colomar @ 2021-11-20 20:14 UTC (permalink / raw)
  To: netdev; +Cc: Alejandro Colomar, Edward Cree, Martin Habets

That ternary operator has
the same exact code in both of the branches.

Unless there's some hidden magic in the condition,
there's no reason for it to be,
and it can be replaced
by the code in one of the branches.

That code has been untouched since it was added,
so there's no information in git about
why it was written that way.

Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
Cc: Edward Cree <ecree.xilinx@gmail.com>
Cc: Martin Habets <habetsm.xilinx@gmail.com>
Cc: netdev@vger.kernel.org
---
 drivers/net/ethernet/sfc/ethtool_common.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/drivers/net/ethernet/sfc/ethtool_common.c b/drivers/net/ethernet/sfc/ethtool_common.c
index bd552c7dffcb..1b9e8b0afb3c 100644
--- a/drivers/net/ethernet/sfc/ethtool_common.c
+++ b/drivers/net/ethernet/sfc/ethtool_common.c
@@ -33,10 +33,7 @@ struct efx_sw_stat_desc {
 				get_stat_function) {			\
 	.name = #stat_name,						\
 	.source = EFX_ETHTOOL_STAT_SOURCE_##source_name,		\
-	.offset = ((((field_type *) 0) ==				\
-		      &((struct efx_##source_name *)0)->field) ?	\
-		    offsetof(struct efx_##source_name, field) :		\
-		    offsetof(struct efx_##source_name, field)),		\
+	.offset = offsetof(struct efx_##source_name, field),		\
 	.get_stat = get_stat_function,					\
 }
 
-- 
2.33.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] drivers/net/ethernet/sfc/: Simplify code
  2021-11-20 20:14 [PATCH] drivers/net/ethernet/sfc/: Simplify code Alejandro Colomar
@ 2021-11-22 16:17 ` Edward Cree
  2021-11-22 17:19   ` Alejandro Colomar (man-pages)
  0 siblings, 1 reply; 3+ messages in thread
From: Edward Cree @ 2021-11-22 16:17 UTC (permalink / raw)
  To: Alejandro Colomar, netdev; +Cc: Martin Habets

On 20/11/2021 20:14, Alejandro Colomar wrote:
> That ternary operator has
> the same exact code in both of the branches.
> 
> Unless there's some hidden magic in the condition,
> there's no reason for it to be,
> and it can be replaced
> by the code in one of the branches.
> 
> That code has been untouched since it was added,
> so there's no information in git about
> why it was written that way.
> 
> Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
> Cc: Edward Cree <ecree.xilinx@gmail.com>
> Cc: Martin Habets <habetsm.xilinx@gmail.com>
> Cc: netdev@vger.kernel.org

I guess it's there for type-checking — essentially as an assert that
 field_type == typeof(efx_##source_name.field).  Probably when it was
 added there was no standard way to do this; now we could probably
 use <linux/typecheck.h> or some such.
The comment just above the macro does mention "with type-checking".

-ed

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] drivers/net/ethernet/sfc/: Simplify code
  2021-11-22 16:17 ` Edward Cree
@ 2021-11-22 17:19   ` Alejandro Colomar (man-pages)
  0 siblings, 0 replies; 3+ messages in thread
From: Alejandro Colomar (man-pages) @ 2021-11-22 17:19 UTC (permalink / raw)
  To: Edward Cree, netdev; +Cc: Martin Habets

Hi Edward,

On 11/22/21 17:17, Edward Cree wrote:
> On 20/11/2021 20:14, Alejandro Colomar wrote:
>> That ternary operator has
>> the same exact code in both of the branches.
>>
>> Unless there's some hidden magic in the condition,
>> there's no reason for it to be,
>> and it can be replaced
>> by the code in one of the branches.
>>
>> That code has been untouched since it was added,
>> so there's no information in git about
>> why it was written that way.
>>
>> Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
>> Cc: Edward Cree <ecree.xilinx@gmail.com>
>> Cc: Martin Habets <habetsm.xilinx@gmail.com>
>> Cc: netdev@vger.kernel.org
> 
> I guess it's there for type-checking — essentially as an assert that
>   field_type == typeof(efx_##source_name.field).  Probably when it was
>   added there was no standard way to do this; now we could probably
>   use <linux/typecheck.h> or some such.
> The comment just above the macro does mention "with type-checking".

Yes, that's why I suggested there was probably some black magic 
involved.  But I couldn't read it, though.

I suggest replacing it with a static_assert(__same_type()) thingy.

Cheers,
Alex


-- 
Alejandro Colomar
Linux man-pages comaintainer; http://www.kernel.org/doc/man-pages/
http://www.alejandro-colomar.es/

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2021-11-22 17:19 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-11-20 20:14 [PATCH] drivers/net/ethernet/sfc/: Simplify code Alejandro Colomar
2021-11-22 16:17 ` Edward Cree
2021-11-22 17:19   ` Alejandro Colomar (man-pages)

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.