Home Home > GIT Browse
summaryrefslogtreecommitdiff
authorBrandon Philips <bphilips@suse.de>2010-10-22 21:42:57 (GMT)
committer Brandon Philips <bphilips@suse.de>2010-10-22 21:42:57 (GMT)
commit66ba8d330fb4b9ced5a1854de2dbe7996ec21e81 (patch) (unidiff)
treec068d655166214f8f7d69aa7e0ca9a96ac98dad2
parentd22f6f94b389d9175abc3df505755a4d04ce7bc6 (diff)
- patches.drivers/cxgb3-parity-managment.patch: cxgb3: Parityrpm-2.6.16.60-0.73
errors management updates (bnc#643606, fate#309997).
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--kernel-source.changes6
-rw-r--r--patches.drivers/cxgb3-parity-managment.patch199
-rw-r--r--series.conf1
3 files changed, 206 insertions, 0 deletions
diff --git a/kernel-source.changes b/kernel-source.changes
index 4f38333..bdaa04d 100644
--- a/kernel-source.changes
+++ b/kernel-source.changes
@@ -1,7 +1,13 @@
1------------------------------------------------------------------- 1-------------------------------------------------------------------
2Fri Oct 22 23:42:54 CEST 2010 - bphilips@suse.de
3
4- patches.drivers/cxgb3-parity-managment.patch: cxgb3: Parity
5 errors management updates (bnc#643606, fate#309997).
6
7-------------------------------------------------------------------
2Fri Oct 22 23:02:06 CEST 2010 - bphilips@suse.de 8Fri Oct 22 23:02:06 CEST 2010 - bphilips@suse.de
3 9
4- patches.drivers/tg3-3.99c-to-3.114b.patch: tg3: 3.99c to 3.114b 10- patches.drivers/tg3-3.99c-to-3.114b.patch: tg3: 3.99c to 3.114b
5 (bnc#643287, FATE#309932). 11 (bnc#643287, FATE#309932).
6- patches.drivers/tg3-entropy-source.patch: Refresh to new version 12- patches.drivers/tg3-entropy-source.patch: Refresh to new version
7 13
diff --git a/patches.drivers/cxgb3-parity-managment.patch b/patches.drivers/cxgb3-parity-managment.patch
new file mode 100644
index 0000000..6bbaef8
--- a/dev/null
+++ b/patches.drivers/cxgb3-parity-managment.patch
@@ -0,0 +1,199 @@
1From: Pranjal Joshi <pjoshi@chelsio.com>
2References: bnc#643606, fate#309997
3Subject: cxgb3: Parity errors management updates
4Patch-mainline: Merged into net-next-2.6 for 2.6.37
5
6Backport for patches from upstream.
7
8commit 55bc3228ccef255041d697fe55dcc7fe4b37feb6
9Author: Casey Leedom <leedom@chelsio.com>
10Date: Thu Sep 2 13:07:32 2010 +0000
11
12 cxgb3: Avoid flush_workqueue() deadlock.
13
14 Don't call flush_workqueue() on the cxgb3 Work Queue in cxgb_down() when
15 we're being called from the fatal error task ... which is executing on the
16 cxgb3 Work Queue.
17
18 Signed-off-by: Casey Leedom <leedom@chelsio.com>
19 Signed-off-by: David S. Miller <davem@davemloft.net>
20
21
22commit aa476321022ac6c3cb8ebfd1736555ccf61da276
23Author: Casey Leedom <leedom@chelsio.com>
24Date: Thu Sep 2 13:07:31 2010 +0000
25
26 cxgb3: Leave interrupts for fatal errors asserted in common code.
27
28 Platform code needs to deal with them now.
29
30 Signed-off-by: Dimitris Michailidis <dm@chelsio.com>
31 Signed-off-by: Casey Leedom <leedom@chelsio.com>
32 Signed-off-by: David S. Miller <davem@davemloft.net>
33
34
35commit e05e6a397c65ac9a31ce799cf85157f2d85f45b7
36Author: Casey Leedom <leedom@chelsio.com>
37Date: Thu Sep 2 13:07:30 2010 +0000
38
39 cxgb3: Set FATALPERREN.
40
41 Signed-off-by: Dimitris Michailidis <dm@chelsio.com>
42 Signed-off-by: Casey Leedom <leedom@chelsio.com>
43 Signed-off-by: David S. Miller <davem@davemloft.net>
44
45
46commit 96e4a387528cfe806fbdf7b022a6c3f103af4ae1
47Author: Casey Leedom <leedom@chelsio.com>
48Date: Thu Sep 2 13:07:29 2010 +0000
49
50 cxgb3: Add register bit definition for Fatal Parity Error.
51
52 Signed-off-by: Casey Leedom <leedom@chelsio.com>
53 Signed-off-by: David S. Miller <davem@davemloft.net>
54
55Signed-off-by: Brandon Philips <bphilips@suse.de>
56
57---
58 drivers/net/cxgb3/cxgb3_main.c | 24 +++++++++++++++---------
59 drivers/net/cxgb3/regs.h | 4 ++++
60 drivers/net/cxgb3/t3_hw.c | 4 +++-
61 3 files changed, 22 insertions(+), 10 deletions(-)
62
63--- a/drivers/net/cxgb3/cxgb3_main.c
64+++ b/drivers/net/cxgb3/cxgb3_main.c
65@@ -1184,7 +1184,7 @@ irq_err:
66 /*
67 * Release resources when all the ports and offloading have been stopped.
68 */
69-static void cxgb_down(struct adapter *adapter)
70+static void cxgb_down(struct adapter *adapter, int on_wq)
71 {
72 t3_sge_stop(adapter);
73 spin_lock_irq(&adapter->work_lock);/* sync with PHY intr task */
74@@ -1193,7 +1193,8 @@ static void cxgb_down(struct adapter *ad
75
76 free_irq_resources(adapter);
77 quiesce_rx(adapter);
78 - flush_workqueue(cxgb3_wq);/* wait for external IRQ handler */
79 +if(!on_wq)
80 + flush_workqueue(cxgb3_wq);/* wait for external IRQ handler */
81 }
82
83 static void schedule_chk_task(struct adapter *adap)
84@@ -1271,7 +1272,7 @@ static int offload_close(struct t3cdev *
85 clear_bit(OFFLOAD_DEVMAP_BIT, &adapter->open_device_map);
86
87 if (!adapter->open_device_map)
88 - cxgb_down(adapter);
89 + cxgb_down(adapter, 0);
90
91 cxgb3_offload_deactivate(adapter);
92 return 0;
93@@ -1304,7 +1305,7 @@ static int cxgb_open(struct net_device *
94 return 0;
95 }
96
97-static int cxgb_close(struct net_device *dev)
98+static int __cxgb_close(struct net_device *dev, int on_wq)
99 {
100 struct port_info *pi = netdev_priv(dev);
101 struct adapter *adapter = pi->adapter;
102@@ -1332,11 +1333,16 @@ static int cxgb_close(struct net_device
103 &adapter->adap_check_task);
104
105 if (!adapter->open_device_map)
106 - cxgb_down(adapter);
107 + cxgb_down(adapter, on_wq);
108
109 return 0;
110 }
111
112+static int cxgb_close(struct net_device *dev)
113+{
114 +return __cxgb_close(dev, 0);
115+}
116+
117 static struct net_device_stats *cxgb_get_stats(struct net_device *dev)
118 {
119 struct port_info *pi = netdev_priv(dev);
120@@ -2812,7 +2818,7 @@ void t3_os_link_fault_handler(struct ada
121 spin_unlock(&adapter->work_lock);
122 }
123
124-static int t3_adapter_error(struct adapter *adapter, int reset)
125+static int t3_adapter_error(struct adapter *adapter, int reset, int on_wq)
126 {
127 int i, ret = 0;
128
129@@ -2827,7 +2833,7 @@ static int t3_adapter_error(struct adapt
130 struct net_device *netdev = adapter->port[i];
131
132 if (netif_running(netdev))
133 - cxgb_close(netdev);
134 + __cxgb_close(netdev, on_wq);
135 }
136
137 /* Stop SGE timers */
138@@ -2897,7 +2903,7 @@ static void fatal_error_task(struct work
139 int err = 0;
140
141 rtnl_lock();
142 -err = t3_adapter_error(adapter, 1);
143 +err = t3_adapter_error(adapter, 1, 1);
144 if (!err)
145 err = t3_reenable_adapter(adapter);
146 if (!err)
147@@ -2947,7 +2953,7 @@ static pci_ers_result_t t3_io_error_dete
148 if (state == pci_channel_io_perm_failure)
149 return PCI_ERS_RESULT_DISCONNECT;
150
151 -ret = t3_adapter_error(adapter, 0);
152 +ret = t3_adapter_error(adapter, 0, 0);
153
154 /* Request a slot reset. */
155 return PCI_ERS_RESULT_NEED_RESET;
156--- a/drivers/net/cxgb3/regs.h
157+++ b/drivers/net/cxgb3/regs.h
158@@ -1981,6 +1981,10 @@
159
160 #define A_PL_RST 0x6f0
161
162+#define S_FATALPERREN 4
163+#define V_FATALPERREN(x) ((x) << S_FATALPERREN)
164+#define F_FATALPERREN V_FATALPERREN(1U)
165+
166 #define S_CRSTWRM 1
167 #define V_CRSTWRM(x) ((x) << S_CRSTWRM)
168 #define F_CRSTWRM V_CRSTWRM(1U)
169--- a/drivers/net/cxgb3/t3_hw.c
170+++ b/drivers/net/cxgb3/t3_hw.c
171@@ -1408,6 +1408,7 @@ static int t3_handle_intr_status(struct
172 fatal++;
173 CH_ALERT(adapter, "%s (0x%x)\n",
174 acts->msg, status & acts->mask);
175 + status &= ~acts->mask;
176 } else if (acts->msg)
177 CH_WARN(adapter, "%s (0x%x)\n",
178 acts->msg, status & acts->mask);
179@@ -1840,11 +1841,11 @@ static int mac_intr_handler(struct adapt
180 t3_os_link_fault_handler(adap, idx);
181 }
182
183 -t3_write_reg(adap, A_XGM_INT_CAUSE + mac->offset, cause);
184
185 if (cause & XGM_INTR_FATAL)
186 t3_fatal_err(adap);
187
188 +t3_write_reg(adap, A_XGM_INT_CAUSE + mac->offset, cause);
189 return cause != 0;
190 }
191
192@@ -3566,6 +3567,7 @@ int t3_init_hw(struct adapter *adapter,
193 t3_write_reg(adapter, A_PM1_TX_MODE, 0);
194 chan_init_hw(adapter, adapter->params.chan_map);
195 t3_sge_init(adapter, &adapter->params.sge);
196 +t3_set_reg_field(adapter, A_PL_RST, 0, F_FATALPERREN);
197
198 t3_write_reg(adapter, A_T3DBG_GPIO_ACT_LOW, calc_gpio_intr(adapter));
199
diff --git a/series.conf b/series.conf
index 626ab11..81f7783 100644
--- a/series.conf
+++ b/series.conf
@@ -3145,12 +3145,13 @@
3145 3145
3146 patches.drivers/cxgb3_update.patch 3146 patches.drivers/cxgb3_update.patch
3147 patches.drivers/cxgb3-update-to-1.1.3-ko.patch 3147 patches.drivers/cxgb3-update-to-1.1.3-ko.patch
3148 patches.drivers/cxgb3-fix-gen2-pci-default-settings.patch 3148 patches.drivers/cxgb3-fix-gen2-pci-default-settings.patch
3149 patches.drivers/cxgb3-add-memory-barriers.patch 3149 patches.drivers/cxgb3-add-memory-barriers.patch
3150 patches.drivers/cxgb3-fix-premature-page-unmap.patch 3150 patches.drivers/cxgb3-fix-premature-page-unmap.patch
3151 patches.drivers/cxgb3-parity-managment.patch
3151 patches.fixes/agp-zero-pages-before-sending-to-userspace 3152 patches.fixes/agp-zero-pages-before-sending-to-userspace
3152 patches.drivers/ppc-saturn-serial 3153 patches.drivers/ppc-saturn-serial
3153 patches.fixes/dvb-core-fix-dos-bug-in-ule-decapsulation-code-that-can-be-triggered-by-an-invalid 3154 patches.fixes/dvb-core-fix-dos-bug-in-ule-decapsulation-code-that-can-be-triggered-by-an-invalid
3154 3155
3155 ######################################################## 3156 ########################################################
3156 # New hardware support (depends on driver fixes) 3157 # New hardware support (depends on driver fixes)