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

Commit 32fb5f06 authored by John W. Linville's avatar John W. Linville Committed by Linus Torvalds
Browse files

[PATCH] 3c59x: bounds checking for hw_checksums



Add bounds checking to usage of hw_checksums module parameter array.

Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent d9e46de3
Loading
Loading
Loading
Loading
+9 −7
Original line number Diff line number Diff line
@@ -1513,8 +1513,9 @@ static int __devinit vortex_probe1(struct device *gendev,
		dev->hard_start_xmit = boomerang_start_xmit;
		/* Actually, it still should work with iommu. */
		dev->features |= NETIF_F_SG;
		if (((hw_checksums[card_idx] == -1) && (vp->drv_flags & HAS_HWCKSM)) ||
					(hw_checksums[card_idx] == 1)) {
		if (card_idx < MAX_UNITS &&
		    ((hw_checksums[card_idx] == -1 && (vp->drv_flags & HAS_HWCKSM)) ||
				hw_checksums[card_idx] == 1)) {
			dev->features |= NETIF_F_IP_CSUM;
		}
	} else {
@@ -2792,9 +2793,10 @@ vortex_close(struct net_device *dev)

#if DO_ZEROCOPY
	if (vp->rx_csumhits &&
			((vp->drv_flags & HAS_HWCKSM) == 0) &&
			(hw_checksums[vp->card_idx] == -1)) {
		printk(KERN_WARNING "%s supports hardware checksums, and we're not using them!\n", dev->name);
	    (vp->drv_flags & HAS_HWCKSM) == 0 &&
	    (vp->card_idx >= MAX_UNITS || hw_checksums[vp->card_idx] == -1)) {
			printk(KERN_WARNING "%s supports hardware checksums, and we're "
						"not using them!\n", dev->name);
	}
#endif