* [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.