From: Ian Campbell <ian.campbell@citrix.com> To: Jeremy Fitzhardinge <jeremy@goop.org> Cc: Ian Campbell <ian.campbell@citrix.com>, Jeremy Fitzhardinge <jeremy@goop.org>, xen-devel@lists.xensource.com, netdev@vger.kernel.org Subject: [PATCH 1/2] xen: netfront: refactor code for checking validity of incoming skbs Date: Tue, 25 Jan 2011 17:09:59 +0000 [thread overview] Message-ID: <1295975400-538-1-git-send-email-ian.campbell@citrix.com> (raw) In-Reply-To: <1295975376.14780.6595.camel@zakaz.uk.xensource.com> Makes future additional validation clearer. Signed-off-by: Ian Campbell <ian.campbell@citrix.com> Cc: Jeremy Fitzhardinge <jeremy@goop.org> Cc: xen-devel@lists.xensource.com Cc: netdev@vger.kernel.org --- drivers/net/xen-netfront.c | 24 +++++++++++++++++------- 1 files changed, 17 insertions(+), 7 deletions(-) diff --git a/drivers/net/xen-netfront.c b/drivers/net/xen-netfront.c index 546de57..4dc347b 100644 --- a/drivers/net/xen-netfront.c +++ b/drivers/net/xen-netfront.c @@ -809,6 +809,18 @@ out: return err; } +static int validate_incoming_skb(struct sk_buff *skb) +{ + /* + * If the SKB is partial then we must be able to setup the + * checksum fields in the skb. + */ + if (skb->ip_summed == CHECKSUM_PARTIAL && skb_checksum_setup(skb)) + return 0; + + return 1; +} + static int handle_incoming_queue(struct net_device *dev, struct sk_buff_head *rxq) { @@ -829,13 +841,11 @@ static int handle_incoming_queue(struct net_device *dev, /* Ethernet work: Delayed to here as it peeks the header. */ skb->protocol = eth_type_trans(skb, dev); - if (skb->ip_summed == CHECKSUM_PARTIAL) { - if (skb_checksum_setup(skb)) { - kfree_skb(skb); - packets_dropped++; - dev->stats.rx_errors++; - continue; - } + if (!validate_incoming_skb(skb)) { + kfree_skb(skb); + packets_dropped++; + dev->stats.rx_errors++; + continue; } dev->stats.rx_packets++; -- 1.5.6.5
WARNING: multiple messages have this Message-ID (diff)
From: Ian Campbell <ian.campbell@citrix.com> Cc: Ian Campbell <ian.campbell@citrix.com>, Jeremy Fitzhardinge <jeremy@goop.org>, xen-devel@lists.xensource.com, netdev@vger.kernel.org Subject: [PATCH 1/2] xen: netfront: refactor code for checking validity of incoming skbs Date: Tue, 25 Jan 2011 17:09:59 +0000 [thread overview] Message-ID: <1295975400-538-1-git-send-email-ian.campbell@citrix.com> (raw) In-Reply-To: <1295975376.14780.6595.camel@zakaz.uk.xensource.com> Makes future additional validation clearer. Signed-off-by: Ian Campbell <ian.campbell@citrix.com> Cc: Jeremy Fitzhardinge <jeremy@goop.org> Cc: xen-devel@lists.xensource.com Cc: netdev@vger.kernel.org --- drivers/net/xen-netfront.c | 24 +++++++++++++++++------- 1 files changed, 17 insertions(+), 7 deletions(-) diff --git a/drivers/net/xen-netfront.c b/drivers/net/xen-netfront.c index 546de57..4dc347b 100644 --- a/drivers/net/xen-netfront.c +++ b/drivers/net/xen-netfront.c @@ -809,6 +809,18 @@ out: return err; } +static int validate_incoming_skb(struct sk_buff *skb) +{ + /* + * If the SKB is partial then we must be able to setup the + * checksum fields in the skb. + */ + if (skb->ip_summed == CHECKSUM_PARTIAL && skb_checksum_setup(skb)) + return 0; + + return 1; +} + static int handle_incoming_queue(struct net_device *dev, struct sk_buff_head *rxq) { @@ -829,13 +841,11 @@ static int handle_incoming_queue(struct net_device *dev, /* Ethernet work: Delayed to here as it peeks the header. */ skb->protocol = eth_type_trans(skb, dev); - if (skb->ip_summed == CHECKSUM_PARTIAL) { - if (skb_checksum_setup(skb)) { - kfree_skb(skb); - packets_dropped++; - dev->stats.rx_errors++; - continue; - } + if (!validate_incoming_skb(skb)) { + kfree_skb(skb); + packets_dropped++; + dev->stats.rx_errors++; + continue; } dev->stats.rx_packets++; -- 1.5.6.5
next prev parent reply other threads:[~2011-01-25 17:10 UTC|newest] Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top 2011-01-05 13:23 [PATCH] xen: netfront: Drop GSO SKBs which do not have csum_blank Ian Campbell 2011-01-11 11:46 ` Ian Campbell 2011-01-22 0:58 ` Jeremy Fitzhardinge 2011-01-22 9:43 ` Ian Campbell 2011-01-24 17:55 ` Jeremy Fitzhardinge 2011-01-25 17:09 ` Ian Campbell 2011-01-25 17:09 ` Ian Campbell [this message] 2011-01-25 17:09 ` [PATCH 1/2] xen: netfront: refactor code for checking validity of incoming skbs Ian Campbell 2011-01-25 17:10 ` [PATCH 2/2] xen: netfront: Drop GSO SKBs which do not have csum_blank Ian Campbell 2011-01-25 17:10 ` Ian Campbell 2011-01-26 3:44 ` David Miller 2011-01-26 11:56 ` Ian Campbell 2011-01-27 14:14 ` [PATCH] xen: netfront: handle incoming GSO SKBs which are not CHECKSUM_PARTIAL Ian Campbell 2011-01-27 14:14 ` Ian Campbell 2011-01-27 22:23 ` David Miller
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1295975400-538-1-git-send-email-ian.campbell@citrix.com \ --to=ian.campbell@citrix.com \ --cc=jeremy@goop.org \ --cc=netdev@vger.kernel.org \ --cc=xen-devel@lists.xensource.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
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.