diff --git a/drivers/net/netdevsim/psample.c b/drivers/net/netdevsim/psample.c index 5ec3bd7f891b74f99e57d131fee20f7eb166fbfa..f0c6477dd0aec731b0fce305d1f97cb5b8ec0284 100644 --- a/drivers/net/netdevsim/psample.c +++ b/drivers/net/netdevsim/psample.c @@ -79,9 +79,10 @@ static struct sk_buff *nsim_dev_psample_skb_build(void) } static void nsim_dev_psample_md_prepare(const struct nsim_dev_psample *psample, - struct psample_metadata *md) + struct psample_metadata *md, + unsigned int len) { - md->trunc_size = psample->trunc_size; + md->trunc_size = psample->trunc_size ? psample->trunc_size : len; md->in_ifindex = psample->in_ifindex; md->out_ifindex = psample->out_ifindex; @@ -120,7 +121,7 @@ static void nsim_dev_psample_report_work(struct work_struct *work) if (!skb) goto out; - nsim_dev_psample_md_prepare(psample, &md); + nsim_dev_psample_md_prepare(psample, &md, skb->len); psample_sample_packet(psample->group, skb, psample->rate, &md); consume_skb(skb);