> +static struct sk_buff *ksz_common_xmit(struct sk_buff *skb, > + struct net_device *dev, int len) > { > - struct dsa_port *dp = dsa_slave_to_port(dev); > struct sk_buff *nskb; > int padlen; > - u8 *tag; > > padlen = (skb->len >= ETH_ZLEN) ? 0 : ETH_ZLEN - skb->len; > > - if (skb_tailroom(skb) >= padlen + KSZ_INGRESS_TAG_LEN) { > + if (skb_tailroom(skb) >= padlen + len) { > /* Let dsa_slave_xmit() free skb */ > if (__skb_put_padto(skb, skb->len + padlen, false)) > return NULL;
Hi Marek This can return NULL. > +static struct sk_buff *ksz9477_xmit(struct sk_buff *skb, > + struct net_device *dev) > +{ > + struct dsa_port *dp = dsa_slave_to_port(dev); > + struct sk_buff *nskb; > + u16 *tag; > + u8 *addr; > + > + nskb = ksz_common_xmit(skb, dev, KSZ9477_INGRESS_TAG_LEN); So here you need to check for NULL Otherwise, i like it. Thanks for removing the function pointer. Andrew