From: Greg Kroah-Hartman Date: Thu, 6 Apr 2006 16:22:20 +0000 (-0700) Subject: add another patch to queue X-Git-Tag: v2.6.16.2~2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=405e8965ce0365dba71f1e388fc01ccf2ea9802e;p=thirdparty%2Fkernel%2Fstable-queue.git add another patch to queue --- diff --git a/queue-2.6.16/series b/queue-2.6.16/series index 12b5e3cfd89..aa797883ede 100644 --- a/queue-2.6.16/series +++ b/queue-2.6.16/series @@ -2,3 +2,4 @@ powerpc-iseries-needs-slb_initialize-to-be-called.patch powerpc-fix-incorrect-sa_onstack-behaviour-for-64-bit-processes.patch mpbl0010-driver-sysfs-permissions-wide-open.patch isd200-limit-to-blk_dev_ide.patch +sky2-bad-memory-reference-on-dual-port-cards.patch diff --git a/queue-2.6.16/sky2-bad-memory-reference-on-dual-port-cards.patch b/queue-2.6.16/sky2-bad-memory-reference-on-dual-port-cards.patch new file mode 100644 index 00000000000..ac7342cbff0 --- /dev/null +++ b/queue-2.6.16/sky2-bad-memory-reference-on-dual-port-cards.patch @@ -0,0 +1,44 @@ +From stable-bounces@linux.kernel.org Wed Apr 5 17:47:36 2006 +Date: Wed, 5 Apr 2006 17:47:15 -0700 +From: Stephen Hemminger +To: Jeff Garzik +Message-ID: <20060405174715.2ef75105@localhost.localdomain> +Cc: netdev@vger.kernel.org, stable@kernel.org +Subject: sky2: bad memory reference on dual port cards + +Sky2 driver will oops referencing bad memory if used on +a dual port card. The problem is accessing past end of +MIB counter space. + +Signed-off-by: Stephen Hemminger +Signed-off-by: Greg Kroah-Hartman + + +--- + drivers/net/sky2.c | 4 ++-- + drivers/net/sky2.h | 1 + + 2 files changed, 3 insertions(+), 2 deletions(-) + +--- linux-2.6.16.1.orig/drivers/net/sky2.c ++++ linux-2.6.16.1/drivers/net/sky2.c +@@ -579,8 +579,8 @@ static void sky2_mac_init(struct sky2_hw + reg = gma_read16(hw, port, GM_PHY_ADDR); + gma_write16(hw, port, GM_PHY_ADDR, reg | GM_PAR_MIB_CLR); + +- for (i = 0; i < GM_MIB_CNT_SIZE; i++) +- gma_read16(hw, port, GM_MIB_CNT_BASE + 8 * i); ++ for (i = GM_MIB_CNT_BASE; i <= GM_MIB_CNT_END; i += 4) ++ gma_read16(hw, port, i); + gma_write16(hw, port, GM_PHY_ADDR, reg); + + /* transmit control */ +--- linux-2.6.16.1.orig/drivers/net/sky2.h ++++ linux-2.6.16.1/drivers/net/sky2.h +@@ -1380,6 +1380,7 @@ enum { + /* MIB Counters */ + #define GM_MIB_CNT_BASE 0x0100 /* Base Address of MIB Counters */ + #define GM_MIB_CNT_SIZE 44 /* Number of MIB Counters */ ++#define GM_MIB_CNT_END 0x025C /* Last MIB counter */ + + /* + * MIB Counters base address definitions (low word) -