From: Joe Perches <joe-6d6DIl74uiNBDgjK7y7TUQ@public.gmane.org>
To: "Bjørn Mork" <bjorn-yOkvZcmFvRU@public.gmane.org>
Cc: Oliver Neukum <oneukum-l3A5Bk7waGM@public.gmane.org>,
linux-usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: [PATCH net] net: usbnet: prevent buggy devices from killing us
Date: Thu, 24 Jan 2013 15:57:09 -0800 [thread overview]
Message-ID: <1359071829.2117.6.camel@joe-AO722> (raw)
In-Reply-To: <1359055016-13603-1-git-send-email-bjorn-yOkvZcmFvRU@public.gmane.org>
On Thu, 2013-01-24 at 20:16 +0100, Bjørn Mork wrote:
> A device sending 0 length frames as fast as it can has been
> observed killing the host system due to the resulting memory
> pressure.
[]
> diff --git a/drivers/net/usb/usbnet.c b/drivers/net/usb/usbnet.c
[]
> @@ -539,6 +545,22 @@ block:
> break;
> }
>
> + /* stop rx if packet error rate is high */
> + if (++dev->pkt_cnt > 30) {
> + dev->pkt_cnt = 0;
> + dev->pkt_err = 0;
> + } else {
> + if (state == rx_cleanup)
> + dev->pkt_err++;
> + if (dev->pkt_err > 20) {
> + set_bit(EVENT_RX_KILL, &dev->flags);
> + if (net_ratelimit())
> + netif_dbg(dev, rx_err, dev->net,
> + "rx kill: high error rate\n");
> + dev->pkt_err = 0;
> + }
> + }
Maybe use ratelimit() here?
> diff --git a/include/linux/usb/usbnet.h b/include/linux/usb/usbnet.h
[]
> @@ -33,6 +33,7 @@ struct usbnet {
> wait_queue_head_t *wait;
> struct mutex phy_mutex;
> unsigned char suspend_count;
> + unsigned char pkt_cnt, pkt_err;
and instead:
struct ratelimit_state errors;
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2013-01-24 23:57 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-01-24 10:25 [RFC] net: usbnet: prevent buggy devices from killing us Bjørn Mork
[not found] ` <1359023152-32576-1-git-send-email-bjorn-yOkvZcmFvRU@public.gmane.org>
2013-01-24 10:46 ` Oliver Neukum
[not found] ` <6505263.QGCG9bfoCC-7ztolUikljGernLeA6q8OA@public.gmane.org>
2013-01-24 10:52 ` Bjørn Mork
[not found] ` <87bocehmzd.fsf-lbf33ChDnrE/G1V5fR+Y7Q@public.gmane.org>
2013-01-24 11:03 ` Oliver Neukum
[not found] ` <2321910.EQLkSoxl50-7ztolUikljGernLeA6q8OA@public.gmane.org>
2013-01-24 11:22 ` Bjørn Mork
[not found] ` <877gn2hlkh.fsf-lbf33ChDnrE/G1V5fR+Y7Q@public.gmane.org>
2013-01-24 11:31 ` Oliver Neukum
2013-01-24 12:47 ` Bjørn Mork
[not found] ` <87y5fig32r.fsf-lbf33ChDnrE/G1V5fR+Y7Q@public.gmane.org>
2013-01-24 13:12 ` Oliver Neukum
[not found] ` <2556579.vjYlY1iKn5-7ztolUikljGernLeA6q8OA@public.gmane.org>
2013-01-24 13:42 ` Bjørn Mork
2013-01-24 19:16 ` [PATCH net] " Bjørn Mork
2013-01-24 22:09 ` Oliver Neukum
2013-01-25 7:13 ` Bjørn Mork
2013-01-25 12:02 ` Oliver Neukum
[not found] ` <1659086.jLlTU1VIap-7ztolUikljGernLeA6q8OA@public.gmane.org>
2013-01-25 12:27 ` Bjørn Mork
[not found] ` <1359055016-13603-1-git-send-email-bjorn-yOkvZcmFvRU@public.gmane.org>
2013-01-24 23:57 ` Joe Perches [this message]
2013-01-25 8:14 ` Bjørn Mork
2013-01-24 10:47 ` [RFC] " Bjørn Mork
2013-01-24 12:39 ` Sergei Shtylyov
[not found] ` <51012B76.1060600-Igf4POYTYCDQT0dZR+AlfA@public.gmane.org>
2013-01-24 13:01 ` Joe Perches
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=1359071829.2117.6.camel@joe-AO722 \
--to=joe-6d6dil74uinbdgjk7y7tuq@public.gmane.org \
--cc=bjorn-yOkvZcmFvRU@public.gmane.org \
--cc=linux-usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=oneukum-l3A5Bk7waGM@public.gmane.org \
/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: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).