On Thu, Nov 26, 2020 at 03:50:04PM +0200, Vladimir Oltean wrote:
On Wed, Nov 25, 2020 at 09:34:29PM +0100, Andrew Lunn wrote:
quoted
quoted
+static struct sk_buff *xrs700x_rcv(struct sk_buff *skb, struct net_device *dev,
+ struct packet_type *pt)
+{
+ int source_port;
+ u8 *trailer;
+
+ if (skb_linearize(skb))
+ return NULL;
Something for Vladimir:
Could this linearise be moved into the core, depending on the
tail_tag?
Honestly I believe that the skb_linearize is not needed at all.
Humm
I'm assuming this is here in case the frame is in fragments, and the
trailer could be spread over two fragments? If so, you cannot access
the trailer using straight pointers. Linearize should copy it into one
buffer.
For the normal case of a 1500 byte frame, i doubt we have hardware
which uses multiple scatter/gather buffers. But for jumbo frames?
quoted
quoted
+ if (pskb_trim_rcsum(skb, skb->len - 1))
+ return NULL;
And the overhead is also in dsa_devlink_ops, so maybe this can be
moved as well?
Sorry, I don't understand this comment.
I'm meaning, could that also be moved into the core? We seem to have
the needed information to do it in the core.
Andrew