[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20191105143130.GD7189@lunn.ch>
Date: Tue, 5 Nov 2019 15:31:30 +0100
From: Andrew Lunn <andrew@...n.ch>
To: Ioana Ciornei <ioana.ciornei@....com>
Cc: gregkh@...uxfoundation.org, linux-kernel@...r.kernel.org,
f.fainelli@...il.com
Subject: Re: [PATCH 08/12] staging: dpaa2-ethsw: handle Rx path on control
interface
> +static void ethsw_rx(struct ethsw_fq *fq,
> + const struct dpaa2_fd *fd)
> +{
> + struct ethsw_core *ethsw = fq->ethsw;
> + struct ethsw_port_priv *port_priv;
> + struct net_device *netdev;
> + struct vlan_ethhdr *hdr;
> + struct sk_buff *skb;
> + u16 vlan_tci, vid;
> + int if_id = -1;
> + int err;
> +
> + /* prefetch the frame descriptor */
> + prefetch(fd);
> +
> + /* get switch ingress interface ID */
> + if_id = upper_32_bits(dpaa2_fd_get_flc(fd)) & 0x0000FFFF;
Does the prefetch do any good, since the very next thing you do is
access the frame descriptor? Ideally you want to issue the prefetch,
do something else for a while, and then make use of what the prefetch
got.
> +
> + if (if_id < 0 || if_id >= ethsw->sw_attr.num_ifs) {
Is if_id signed? Seems odd.
Andrew
Powered by blists - more mailing lists