All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH net-next resend 0/2] enetc: Clean endianness warnings up
@ 2020-11-19 10:12 Claudiu Manoil
  2020-11-19 10:12 ` [PATCH net-next resend 1/2] enetc: Fix endianness issues for enetc_ethtool Claudiu Manoil
                   ` (2 more replies)
  0 siblings, 3 replies; 8+ messages in thread
From: Claudiu Manoil @ 2020-11-19 10:12 UTC (permalink / raw)
  To: netdev; +Cc: Jakub Kicinski, David S . Miller

Cleanup patches to address the outstanding endianness issues
in the driver reported by sparse.

Claudiu Manoil (2):
  enetc: Fix endianness issues for enetc_ethtool
  enetc: Fix endianness issues for enetc_qos

 .../net/ethernet/freescale/enetc/enetc_hw.h   |  8 +-
 .../net/ethernet/freescale/enetc/enetc_qos.c  | 84 +++++++++----------
 2 files changed, 43 insertions(+), 49 deletions(-)

-- 
2.17.1


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

* [PATCH net-next resend 1/2] enetc: Fix endianness issues for enetc_ethtool
  2020-11-19 10:12 [PATCH net-next resend 0/2] enetc: Clean endianness warnings up Claudiu Manoil
@ 2020-11-19 10:12 ` Claudiu Manoil
  2020-11-19 10:37   ` Denis Kirjanov
  2020-11-23 22:42   ` Jesse Brandeburg
  2020-11-19 10:12 ` [PATCH net-next resend 2/2] enetc: Fix endianness issues for enetc_qos Claudiu Manoil
  2020-11-20 16:56 ` [PATCH net-next resend 0/2] enetc: Clean endianness warnings up Jakub Kicinski
  2 siblings, 2 replies; 8+ messages in thread
From: Claudiu Manoil @ 2020-11-19 10:12 UTC (permalink / raw)
  To: netdev; +Cc: Jakub Kicinski, David S . Miller

These particular fields are specified in the H/W reference
manual as having network byte order format, so enforce big
endian annotation for them and clear the related sparse
warnings in the process.

Signed-off-by: Claudiu Manoil <claudiu.manoil@nxp.com>
---
 drivers/net/ethernet/freescale/enetc/enetc_hw.h | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/net/ethernet/freescale/enetc/enetc_hw.h b/drivers/net/ethernet/freescale/enetc/enetc_hw.h
index 68ef4f959982..04efccd11162 100644
--- a/drivers/net/ethernet/freescale/enetc/enetc_hw.h
+++ b/drivers/net/ethernet/freescale/enetc/enetc_hw.h
@@ -472,10 +472,10 @@ struct enetc_cmd_rfse {
 	u8 smac_m[6];
 	u8 dmac_h[6];
 	u8 dmac_m[6];
-	u32 sip_h[4];
-	u32 sip_m[4];
-	u32 dip_h[4];
-	u32 dip_m[4];
+	__be32 sip_h[4];
+	__be32 sip_m[4];
+	__be32 dip_h[4];
+	__be32 dip_m[4];
 	u16 ethtype_h;
 	u16 ethtype_m;
 	u16 ethtype4_h;
-- 
2.17.1


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

* [PATCH net-next resend 2/2] enetc: Fix endianness issues for enetc_qos
  2020-11-19 10:12 [PATCH net-next resend 0/2] enetc: Clean endianness warnings up Claudiu Manoil
  2020-11-19 10:12 ` [PATCH net-next resend 1/2] enetc: Fix endianness issues for enetc_ethtool Claudiu Manoil
@ 2020-11-19 10:12 ` Claudiu Manoil
  2020-11-20 16:56 ` [PATCH net-next resend 0/2] enetc: Clean endianness warnings up Jakub Kicinski
  2 siblings, 0 replies; 8+ messages in thread
From: Claudiu Manoil @ 2020-11-19 10:12 UTC (permalink / raw)
  To: netdev; +Cc: Jakub Kicinski, David S . Miller

Currently the control buffer descriptor (cbd) fields have endianness
restrictions while the commands passed into the control buffers
don't (with one exception). This patch fixes offending code,
by adding endianness accessors for cbd fields and removing the
unnecessary ones in case of data buffer fields. Currently there's
no need to convert all commands to little endian format, the patch
only focuses on fixing current endianness issues reported by sparse.

Signed-off-by: Claudiu Manoil <claudiu.manoil@nxp.com>
---
 .../net/ethernet/freescale/enetc/enetc_qos.c  | 84 +++++++++----------
 1 file changed, 39 insertions(+), 45 deletions(-)

diff --git a/drivers/net/ethernet/freescale/enetc/enetc_qos.c b/drivers/net/ethernet/freescale/enetc/enetc_qos.c
index 827f74e86d34..aeb21dc48099 100644
--- a/drivers/net/ethernet/freescale/enetc/enetc_qos.c
+++ b/drivers/net/ethernet/freescale/enetc/enetc_qos.c
@@ -128,8 +128,8 @@ static int enetc_setup_taprio(struct net_device *ndev,
 		return -ENOMEM;
 	}
 
-	cbd.addr[0] = lower_32_bits(dma);
-	cbd.addr[1] = upper_32_bits(dma);
+	cbd.addr[0] = cpu_to_le32(lower_32_bits(dma));
+	cbd.addr[1] = cpu_to_le32(upper_32_bits(dma));
 	cbd.cls = BDCR_CMD_PORT_GCL;
 	cbd.status_flags = 0;
 
@@ -506,16 +506,15 @@ static int enetc_streamid_hw_set(struct enetc_ndev_priv *priv,
 		return -ENOMEM;
 	}
 
-	cbd.addr[0] = lower_32_bits(dma);
-	cbd.addr[1] = upper_32_bits(dma);
+	cbd.addr[0] = cpu_to_le32(lower_32_bits(dma));
+	cbd.addr[1] = cpu_to_le32(upper_32_bits(dma));
 	eth_broadcast_addr(si_data->dmac);
-	si_data->vid_vidm_tg =
-		cpu_to_le16(ENETC_CBDR_SID_VID_MASK
-			    + ((0x3 << 14) | ENETC_CBDR_SID_VIDM));
+	si_data->vid_vidm_tg = (ENETC_CBDR_SID_VID_MASK
+			       + ((0x3 << 14) | ENETC_CBDR_SID_VIDM));
 
 	si_conf = &cbd.sid_set;
 	/* Only one port supported for one entry, set itself */
-	si_conf->iports = 1 << enetc_get_port(priv);
+	si_conf->iports = cpu_to_le32(1 << enetc_get_port(priv));
 	si_conf->id_type = 1;
 	si_conf->oui[2] = 0x0;
 	si_conf->oui[1] = 0x80;
@@ -540,7 +539,7 @@ static int enetc_streamid_hw_set(struct enetc_ndev_priv *priv,
 
 	si_conf->en = 0x80;
 	si_conf->stream_handle = cpu_to_le32(sid->handle);
-	si_conf->iports = 1 << enetc_get_port(priv);
+	si_conf->iports = cpu_to_le32(1 << enetc_get_port(priv));
 	si_conf->id_type = sid->filtertype;
 	si_conf->oui[2] = 0x0;
 	si_conf->oui[1] = 0x80;
@@ -550,8 +549,8 @@ static int enetc_streamid_hw_set(struct enetc_ndev_priv *priv,
 
 	cbd.length = cpu_to_le16(data_size);
 
-	cbd.addr[0] = lower_32_bits(dma);
-	cbd.addr[1] = upper_32_bits(dma);
+	cbd.addr[0] = cpu_to_le32(lower_32_bits(dma));
+	cbd.addr[1] = cpu_to_le32(upper_32_bits(dma));
 
 	/* VIDM default to be 1.
 	 * VID Match. If set (b1) then the VID must match, otherwise
@@ -560,16 +559,14 @@ static int enetc_streamid_hw_set(struct enetc_ndev_priv *priv,
 	 */
 	if (si_conf->id_type == STREAMID_TYPE_NULL) {
 		ether_addr_copy(si_data->dmac, sid->dst_mac);
-		si_data->vid_vidm_tg =
-		cpu_to_le16((sid->vid & ENETC_CBDR_SID_VID_MASK) +
-			    ((((u16)(sid->tagged) & 0x3) << 14)
-			     | ENETC_CBDR_SID_VIDM));
+		si_data->vid_vidm_tg = (sid->vid & ENETC_CBDR_SID_VID_MASK) +
+				       ((((u16)(sid->tagged) & 0x3) << 14)
+				       | ENETC_CBDR_SID_VIDM);
 	} else if (si_conf->id_type == STREAMID_TYPE_SMAC) {
 		ether_addr_copy(si_data->smac, sid->src_mac);
-		si_data->vid_vidm_tg =
-		cpu_to_le16((sid->vid & ENETC_CBDR_SID_VID_MASK) +
-			    ((((u16)(sid->tagged) & 0x3) << 14)
-			     | ENETC_CBDR_SID_VIDM));
+		si_data->vid_vidm_tg = (sid->vid & ENETC_CBDR_SID_VID_MASK) +
+				       ((((u16)(sid->tagged) & 0x3) << 14)
+				       | ENETC_CBDR_SID_VIDM);
 	}
 
 	err = enetc_send_cmd(priv->si, &cbd);
@@ -604,7 +601,7 @@ static int enetc_streamfilter_hw_set(struct enetc_ndev_priv *priv,
 	}
 
 	sfi_config->sg_inst_table_index = cpu_to_le16(sfi->gate_id);
-	sfi_config->input_ports = 1 << enetc_get_port(priv);
+	sfi_config->input_ports = cpu_to_le32(1 << enetc_get_port(priv));
 
 	/* The priority value which may be matched against the
 	 * frame’s priority value to determine a match for this entry.
@@ -658,8 +655,8 @@ static int enetc_streamcounter_hw_get(struct enetc_ndev_priv *priv,
 		err = -ENOMEM;
 		goto exit;
 	}
-	cbd.addr[0] = lower_32_bits(dma);
-	cbd.addr[1] = upper_32_bits(dma);
+	cbd.addr[0] = cpu_to_le32(lower_32_bits(dma));
+	cbd.addr[1] = cpu_to_le32(upper_32_bits(dma));
 
 	cbd.length = cpu_to_le16(data_size);
 
@@ -667,28 +664,25 @@ static int enetc_streamcounter_hw_get(struct enetc_ndev_priv *priv,
 	if (err)
 		goto exit;
 
-	cnt->matching_frames_count =
-			((u64)le32_to_cpu(data_buf->matchh) << 32)
-			+ data_buf->matchl;
+	cnt->matching_frames_count = ((u64)data_buf->matchh << 32) +
+				     data_buf->matchl;
 
-	cnt->not_passing_sdu_count =
-			((u64)le32_to_cpu(data_buf->msdu_droph) << 32)
-			+ data_buf->msdu_dropl;
+	cnt->not_passing_sdu_count = ((u64)data_buf->msdu_droph << 32) +
+				     data_buf->msdu_dropl;
 
 	cnt->passing_sdu_count = cnt->matching_frames_count
 				- cnt->not_passing_sdu_count;
 
 	cnt->not_passing_frames_count =
-		((u64)le32_to_cpu(data_buf->stream_gate_droph) << 32)
-		+ le32_to_cpu(data_buf->stream_gate_dropl);
+				((u64)data_buf->stream_gate_droph << 32) +
+				data_buf->stream_gate_dropl;
 
-	cnt->passing_frames_count = cnt->matching_frames_count
-				- cnt->not_passing_sdu_count
-				- cnt->not_passing_frames_count;
+	cnt->passing_frames_count = cnt->matching_frames_count -
+				    cnt->not_passing_sdu_count -
+				    cnt->not_passing_frames_count;
 
-	cnt->red_frames_count =
-		((u64)le32_to_cpu(data_buf->flow_meter_droph) << 32)
-		+ le32_to_cpu(data_buf->flow_meter_dropl);
+	cnt->red_frames_count =	((u64)data_buf->flow_meter_droph << 32)	+
+				data_buf->flow_meter_dropl;
 
 exit:
 	kfree(data_buf);
@@ -795,15 +789,15 @@ static int enetc_streamgate_hw_set(struct enetc_ndev_priv *priv,
 		return -ENOMEM;
 	}
 
-	cbd.addr[0] = lower_32_bits(dma);
-	cbd.addr[1] = upper_32_bits(dma);
+	cbd.addr[0] = cpu_to_le32(lower_32_bits(dma));
+	cbd.addr[1] = cpu_to_le32(upper_32_bits(dma));
 
 	sgce = &sgcl_data->sgcl[0];
 
 	sgcl_config->agtst = 0x80;
 
-	sgcl_data->ct = cpu_to_le32(sgi->cycletime);
-	sgcl_data->cte = cpu_to_le32(sgi->cycletimext);
+	sgcl_data->ct = sgi->cycletime;
+	sgcl_data->cte = sgi->cycletimext;
 
 	if (sgi->init_ipv >= 0)
 		sgcl_config->aipv = (sgi->init_ipv & 0x7) | 0x8;
@@ -825,7 +819,7 @@ static int enetc_streamgate_hw_set(struct enetc_ndev_priv *priv,
 			to->msdu[2] = (from->maxoctets >> 16) & 0xFF;
 		}
 
-		to->interval = cpu_to_le32(from->interval);
+		to->interval = from->interval;
 	}
 
 	/* If basetime is less than now, calculate start time */
@@ -837,15 +831,15 @@ static int enetc_streamgate_hw_set(struct enetc_ndev_priv *priv,
 		err = get_start_ns(now, sgi->cycletime, &start);
 		if (err)
 			goto exit;
-		sgcl_data->btl = cpu_to_le32(lower_32_bits(start));
-		sgcl_data->bth = cpu_to_le32(upper_32_bits(start));
+		sgcl_data->btl = lower_32_bits(start);
+		sgcl_data->bth = upper_32_bits(start);
 	} else {
 		u32 hi, lo;
 
 		hi = upper_32_bits(sgi->basetime);
 		lo = lower_32_bits(sgi->basetime);
-		sgcl_data->bth = cpu_to_le32(hi);
-		sgcl_data->btl = cpu_to_le32(lo);
+		sgcl_data->bth = hi;
+		sgcl_data->btl = lo;
 	}
 
 	err = enetc_send_cmd(priv->si, &cbd);
-- 
2.17.1


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

* Re: [PATCH net-next resend 1/2] enetc: Fix endianness issues for enetc_ethtool
  2020-11-19 10:12 ` [PATCH net-next resend 1/2] enetc: Fix endianness issues for enetc_ethtool Claudiu Manoil
@ 2020-11-19 10:37   ` Denis Kirjanov
  2020-11-19 13:22     ` Claudiu Manoil
  2020-11-19 17:54     ` Jakub Kicinski
  2020-11-23 22:42   ` Jesse Brandeburg
  1 sibling, 2 replies; 8+ messages in thread
From: Denis Kirjanov @ 2020-11-19 10:37 UTC (permalink / raw)
  To: Claudiu Manoil; +Cc: netdev, Jakub Kicinski, David S . Miller

On 11/19/20, Claudiu Manoil <claudiu.manoil@nxp.com> wrote:
> These particular fields are specified in the H/W reference
> manual as having network byte order format, so enforce big
> endian annotation for them and clear the related sparse
> warnings in the process.
>
> Signed-off-by: Claudiu Manoil <claudiu.manoil@nxp.com>
> ---
>  drivers/net/ethernet/freescale/enetc/enetc_hw.h | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/net/ethernet/freescale/enetc/enetc_hw.h
> b/drivers/net/ethernet/freescale/enetc/enetc_hw.h
> index 68ef4f959982..04efccd11162 100644
> --- a/drivers/net/ethernet/freescale/enetc/enetc_hw.h
> +++ b/drivers/net/ethernet/freescale/enetc/enetc_hw.h
> @@ -472,10 +472,10 @@ struct enetc_cmd_rfse {
>  	u8 smac_m[6];
>  	u8 dmac_h[6];
>  	u8 dmac_m[6];
> -	u32 sip_h[4];
> -	u32 sip_m[4];
> -	u32 dip_h[4];
> -	u32 dip_m[4];
> +	__be32 sip_h[4];
> +	__be32 sip_m[4];
> +	__be32 dip_h[4];
> +	__be32 dip_m[4];
>  	u16 ethtype_h;
>  	u16 ethtype_m;
>  	u16 ethtype4_h;

Hi Claudiu,

Why the struct is declared without packed?
I'm seeing that the structure is used in dma transfers in the driver

> --
> 2.17.1
>
>

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

* RE: [PATCH net-next resend 1/2] enetc: Fix endianness issues for enetc_ethtool
  2020-11-19 10:37   ` Denis Kirjanov
@ 2020-11-19 13:22     ` Claudiu Manoil
  2020-11-19 17:54     ` Jakub Kicinski
  1 sibling, 0 replies; 8+ messages in thread
From: Claudiu Manoil @ 2020-11-19 13:22 UTC (permalink / raw)
  To: Denis Kirjanov; +Cc: netdev, Jakub Kicinski, David S . Miller



>-----Original Message-----
>From: Denis Kirjanov <kda@linux-powerpc.org>
>Sent: Thursday, November 19, 2020 12:37 PM
>To: Claudiu Manoil <claudiu.manoil@nxp.com>
>Cc: netdev@vger.kernel.org; Jakub Kicinski <kuba@kernel.org>; David S .
>Miller <davem@davemloft.net>
>Subject: Re: [PATCH net-next resend 1/2] enetc: Fix endianness issues for
>enetc_ethtool
>
>On 11/19/20, Claudiu Manoil <claudiu.manoil@nxp.com> wrote:
>> These particular fields are specified in the H/W reference
>> manual as having network byte order format, so enforce big
>> endian annotation for them and clear the related sparse
>> warnings in the process.
>>
>> Signed-off-by: Claudiu Manoil <claudiu.manoil@nxp.com>
>> ---
>>  drivers/net/ethernet/freescale/enetc/enetc_hw.h | 8 ++++----
>>  1 file changed, 4 insertions(+), 4 deletions(-)
>>
>> diff --git a/drivers/net/ethernet/freescale/enetc/enetc_hw.h
>> b/drivers/net/ethernet/freescale/enetc/enetc_hw.h
>> index 68ef4f959982..04efccd11162 100644
>> --- a/drivers/net/ethernet/freescale/enetc/enetc_hw.h
>> +++ b/drivers/net/ethernet/freescale/enetc/enetc_hw.h
>> @@ -472,10 +472,10 @@ struct enetc_cmd_rfse {
>>  	u8 smac_m[6];
>>  	u8 dmac_h[6];
>>  	u8 dmac_m[6];
>> -	u32 sip_h[4];
>> -	u32 sip_m[4];
>> -	u32 dip_h[4];
>> -	u32 dip_m[4];
>> +	__be32 sip_h[4];
>> +	__be32 sip_m[4];
>> +	__be32 dip_h[4];
>> +	__be32 dip_m[4];
>>  	u16 ethtype_h;
>>  	u16 ethtype_m;
>>  	u16 ethtype4_h;
>
>Hi Claudiu,
>
>Why the struct is declared without packed?
>I'm seeing that the structure is used in dma transfers in the driver
>

Probably it should, for extra measure, but as it is right now the structure is
packed, according to pahole:

struct enetc_cmd_rfse {
        u8                         smac_h[6];            /*     0     6 */
        u8                         smac_m[6];            /*     6     6 */
        u8                         dmac_h[6];            /*    12     6 */
        u8                         dmac_m[6];            /*    18     6 */
        __be32                     sip_h[4];             /*    24    16 */
        __be32                     sip_m[4];             /*    40    16 */
        __be32                     dip_h[4];             /*    56    16 */
        /* --- cacheline 1 boundary (64 bytes) was 8 bytes ago --- */
        __be32                     dip_m[4];             /*    72    16 */
        u16                        ethtype_h;            /*    88     2 */
        u16                        ethtype_m;            /*    90     2 */
        u16                        ethtype4_h;           /*    92     2 */
        u16                        ethtype4_m;           /*    94     2 */
        u16                        sport_h;              /*    96     2 */
        u16                        sport_m;              /*    98     2 */
        u16                        dport_h;              /*   100     2 */
        u16                        dport_m;              /*   102     2 */
        u16                        vlan_h;               /*   104     2 */
        u16                        vlan_m;               /*   106     2 */
        u8                         proto_h;              /*   108     1 */
        u8                         proto_m;              /*   109     1 */
        u16                        flags;                /*   110     2 */
        u16                        result;               /*   112     2 */
        u16                        mode;                 /*   114     2 */

        /* size: 116, cachelines: 2, members: 23 */
        /* last cacheline: 52 bytes */
};

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

* Re: [PATCH net-next resend 1/2] enetc: Fix endianness issues for enetc_ethtool
  2020-11-19 10:37   ` Denis Kirjanov
  2020-11-19 13:22     ` Claudiu Manoil
@ 2020-11-19 17:54     ` Jakub Kicinski
  1 sibling, 0 replies; 8+ messages in thread
From: Jakub Kicinski @ 2020-11-19 17:54 UTC (permalink / raw)
  To: Denis Kirjanov; +Cc: Claudiu Manoil, netdev, David S . Miller

On Thu, 19 Nov 2020 13:37:21 +0300 Denis Kirjanov wrote:
> On 11/19/20, Claudiu Manoil <claudiu.manoil@nxp.com> wrote:
> > These particular fields are specified in the H/W reference
> > manual as having network byte order format, so enforce big
> > endian annotation for them and clear the related sparse
> > warnings in the process.
> >
> > Signed-off-by: Claudiu Manoil <claudiu.manoil@nxp.com>
> > ---
> >  drivers/net/ethernet/freescale/enetc/enetc_hw.h | 8 ++++----
> >  1 file changed, 4 insertions(+), 4 deletions(-)
> >
> > diff --git a/drivers/net/ethernet/freescale/enetc/enetc_hw.h
> > b/drivers/net/ethernet/freescale/enetc/enetc_hw.h
> > index 68ef4f959982..04efccd11162 100644
> > --- a/drivers/net/ethernet/freescale/enetc/enetc_hw.h
> > +++ b/drivers/net/ethernet/freescale/enetc/enetc_hw.h
> > @@ -472,10 +472,10 @@ struct enetc_cmd_rfse {
> >  	u8 smac_m[6];
> >  	u8 dmac_h[6];
> >  	u8 dmac_m[6];
> > -	u32 sip_h[4];
> > -	u32 sip_m[4];
> > -	u32 dip_h[4];
> > -	u32 dip_m[4];
> > +	__be32 sip_h[4];
> > +	__be32 sip_m[4];
> > +	__be32 dip_h[4];
> > +	__be32 dip_m[4];
> >  	u16 ethtype_h;
> >  	u16 ethtype_m;
> >  	u16 ethtype4_h;  
> 
> Hi Claudiu,
> 
> Why the struct is declared without packed?
> I'm seeing that the structure is used in dma transfers in the driver

We prefer not to pack structs unnecessarily in netdev, because it
forces compilers to do inefficient loads on some arches. If the
structure is laid out correctly according to normal C data layout rules
it should be left alone. 

You can add compile times assertions on the size of the structures
to make double-sure things don't break.

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

* Re: [PATCH net-next resend 0/2] enetc: Clean endianness warnings up
  2020-11-19 10:12 [PATCH net-next resend 0/2] enetc: Clean endianness warnings up Claudiu Manoil
  2020-11-19 10:12 ` [PATCH net-next resend 1/2] enetc: Fix endianness issues for enetc_ethtool Claudiu Manoil
  2020-11-19 10:12 ` [PATCH net-next resend 2/2] enetc: Fix endianness issues for enetc_qos Claudiu Manoil
@ 2020-11-20 16:56 ` Jakub Kicinski
  2 siblings, 0 replies; 8+ messages in thread
From: Jakub Kicinski @ 2020-11-20 16:56 UTC (permalink / raw)
  To: Claudiu Manoil; +Cc: netdev, David S . Miller

On Thu, 19 Nov 2020 12:12:13 +0200 Claudiu Manoil wrote:
> Cleanup patches to address the outstanding endianness issues
> in the driver reported by sparse.

Applied, thanks.

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

* Re: [PATCH net-next resend 1/2] enetc: Fix endianness issues for enetc_ethtool
  2020-11-19 10:12 ` [PATCH net-next resend 1/2] enetc: Fix endianness issues for enetc_ethtool Claudiu Manoil
  2020-11-19 10:37   ` Denis Kirjanov
@ 2020-11-23 22:42   ` Jesse Brandeburg
  1 sibling, 0 replies; 8+ messages in thread
From: Jesse Brandeburg @ 2020-11-23 22:42 UTC (permalink / raw)
  To: Claudiu Manoil; +Cc: netdev, Jakub Kicinski, David S . Miller

Claudiu Manoil wrote:

> These particular fields are specified in the H/W reference
> manual as having network byte order format, so enforce big
> endian annotation for them and clear the related sparse
> warnings in the process.
> 
> Signed-off-by: Claudiu Manoil <claudiu.manoil@nxp.com>

Thanks for fixing these warnings!

Reviewed-by: Jesse Brandeburg <jesse.brandeburg@intel.com>

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

end of thread, other threads:[~2020-11-23 22:43 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-11-19 10:12 [PATCH net-next resend 0/2] enetc: Clean endianness warnings up Claudiu Manoil
2020-11-19 10:12 ` [PATCH net-next resend 1/2] enetc: Fix endianness issues for enetc_ethtool Claudiu Manoil
2020-11-19 10:37   ` Denis Kirjanov
2020-11-19 13:22     ` Claudiu Manoil
2020-11-19 17:54     ` Jakub Kicinski
2020-11-23 22:42   ` Jesse Brandeburg
2020-11-19 10:12 ` [PATCH net-next resend 2/2] enetc: Fix endianness issues for enetc_qos Claudiu Manoil
2020-11-20 16:56 ` [PATCH net-next resend 0/2] enetc: Clean endianness warnings up Jakub Kicinski

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.