]>
Commit | Line | Data |
---|---|---|
2cb7cef9 BS |
1 | From 26c8fa4d8a08b6e7a61f23339e2236218957ecc0 Mon Sep 17 00:00:00 2001 |
2 | From: Eilon Greenstein <eilong@broadcom.com> | |
3 | Date: Wed, 14 Jan 2009 21:29:55 -0800 | |
4 | Subject: bnx2x: Indirection table initialization index | |
5 | Acked-by: Karsten Keil <kkeil@novell.com> | |
6 | Reference: bnc#472500 | |
7 | ||
8 | Wrong initialization of the multi-queue indirection table - it should | |
9 | be using the function and not the port index | |
10 | ||
11 | Signed-off-by: Eilon Greenstein <eilong@broadcom.com> | |
12 | Signed-off-by: David S. Miller <davem@davemloft.net> | |
13 | --- | |
14 | drivers/net/bnx2x_main.c | 9 ++++----- | |
15 | 1 files changed, 4 insertions(+), 5 deletions(-) | |
16 | ||
17 | Index: linux-2.6.27-bnx2x_2/drivers/net/bnx2x_main.c | |
18 | =================================================================== | |
19 | --- linux-2.6.27-bnx2x_2.orig/drivers/net/bnx2x_main.c | |
20 | +++ linux-2.6.27-bnx2x_2/drivers/net/bnx2x_main.c | |
21 | @@ -4527,7 +4527,7 @@ static void bnx2x_init_context(struct bn | |
22 | ||
23 | static void bnx2x_init_ind_table(struct bnx2x *bp) | |
24 | { | |
25 | - int port = BP_PORT(bp); | |
26 | + int func = BP_FUNC(bp); | |
27 | int i; | |
28 | ||
29 | if (!is_multi(bp)) | |
30 | @@ -4536,10 +4536,8 @@ static void bnx2x_init_ind_table(struct | |
31 | DP(NETIF_MSG_IFUP, "Initializing indirection table\n"); | |
32 | for (i = 0; i < TSTORM_INDIRECTION_TABLE_SIZE; i++) | |
33 | REG_WR8(bp, BAR_TSTRORM_INTMEM + | |
34 | - TSTORM_INDIRECTION_TABLE_OFFSET(port) + i, | |
35 | - i % bp->num_queues); | |
36 | - | |
37 | - REG_WR(bp, PRS_REG_A_PRSU_20, 0xf); | |
38 | + TSTORM_INDIRECTION_TABLE_OFFSET(func) + i, | |
39 | + BP_CL_ID(bp) + (i % bp->num_queues)); | |
40 | } | |
41 | ||
42 | static void bnx2x_set_client_config(struct bnx2x *bp) | |
43 | @@ -5243,6 +5241,7 @@ static int bnx2x_init_common(struct bnx2 | |
44 | } | |
45 | ||
46 | bnx2x_init_block(bp, PRS_COMMON_START, PRS_COMMON_END); | |
47 | + REG_WR(bp, PRS_REG_A_PRSU_20, 0xf); | |
48 | /* set NIC mode */ | |
49 | REG_WR(bp, PRS_REG_NIC_MODE, 1); | |
50 | if (CHIP_IS_E1H(bp)) |