Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cde46035 authored by Frank Blaschka's avatar Frank Blaschka Committed by Jeff Garzik
Browse files

qeth: enforce a rate limit for inbound scatter gather messages



under memory pressure scatter gather mode switching messages must be
rate limited.

Signed-off-by: default avatarFrank Blaschka <frank.blaschka@de.ibm.com>
Signed-off-by: default avatarUrsula Braun <braunu@de.ibm.com>
Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
parent d0a34f98
Loading
Loading
Loading
Loading
+8 −5
Original line number Diff line number Diff line
@@ -2803,13 +2803,16 @@ qeth_queue_input_buffer(struct qeth_card *card, int index)
		if (newcount < count) {
			/* we are in memory shortage so we switch back to
			   traditional skb allocation and drop packages */
			if (atomic_cmpxchg(&card->force_alloc_skb, 0, 1))
				printk(KERN_WARNING
					"qeth: switch to alloc skb\n");
			if (!atomic_read(&card->force_alloc_skb) &&
			    net_ratelimit())
				PRINT_WARN("Switch to alloc skb\n");
			atomic_set(&card->force_alloc_skb, 3);
			count = newcount;
		} else {
			if (atomic_cmpxchg(&card->force_alloc_skb, 1, 0))
				printk(KERN_WARNING "qeth: switch to sg\n");
			if ((atomic_read(&card->force_alloc_skb) == 1) &&
			    net_ratelimit())
				PRINT_WARN("Switch to sg\n");
			atomic_add_unless(&card->force_alloc_skb, -1, 0);
		}

		/*