* [PATCH 0/2] qla3xxx: receive path bugfixes.
@ 2007-08-20 20:32 Ron Mercer
2007-08-21 13:48 ` [PATCH 1/2] qla3xxx: bugfix: Add memory barrier before accessing rx completion Ron Mercer
2007-08-21 13:48 ` [PATCH 2/2] qla3xxx: bugfix: Fix VLAN rx completion handling Ron Mercer
0 siblings, 2 replies; 5+ messages in thread
From: Ron Mercer @ 2007-08-20 20:32 UTC (permalink / raw)
To: ron.mercer, jeff; +Cc: netdev
The following two patches fix:
An undocumented "feature" where the 4032 chip sets bit-7
of the opcode for an inbound completion if it's for a VLAN.
The access of stale data on a completion entry.
These patches were built and tested on 2.6.23-rc1.
Signed-off-by: Ron Mercer <ron.mercer@qlogic.com>
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 1/2] qla3xxx: bugfix: Add memory barrier before accessing rx completion.
2007-08-20 20:32 [PATCH 0/2] qla3xxx: receive path bugfixes Ron Mercer
@ 2007-08-21 13:48 ` Ron Mercer
2007-08-21 13:48 ` [PATCH 2/2] qla3xxx: bugfix: Fix VLAN rx completion handling Ron Mercer
1 sibling, 0 replies; 5+ messages in thread
From: Ron Mercer @ 2007-08-21 13:48 UTC (permalink / raw)
To: netdev; +Cc: Ron Mercer
Signed-off-by: Ron Mercer <ron.mercer@qlogic.com>
---
drivers/net/qla3xxx.c | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/drivers/net/qla3xxx.c b/drivers/net/qla3xxx.c
index 69da95b..c3fe1c7 100755
--- a/drivers/net/qla3xxx.c
+++ b/drivers/net/qla3xxx.c
@@ -2248,6 +2248,7 @@ static int ql_tx_rx_clean(struct ql3_adapter *qdev,
qdev->rsp_consumer_index) && (work_done < work_to_do)) {
net_rsp = qdev->rsp_current;
+ rmb();
switch (net_rsp->opcode) {
case OPCODE_OB_MAC_IOCB_FN0:
--
1.5.0.rc4.16.g9e258
^ permalink raw reply related [flat|nested] 5+ messages in thread* [PATCH 2/2] qla3xxx: bugfix: Fix VLAN rx completion handling.
2007-08-20 20:32 [PATCH 0/2] qla3xxx: receive path bugfixes Ron Mercer
2007-08-21 13:48 ` [PATCH 1/2] qla3xxx: bugfix: Add memory barrier before accessing rx completion Ron Mercer
@ 2007-08-21 13:48 ` Ron Mercer
2007-08-21 14:22 ` 2.6.22 dev_base changes info request Fortier,Vincent [Montreal]
1 sibling, 1 reply; 5+ messages in thread
From: Ron Mercer @ 2007-08-21 13:48 UTC (permalink / raw)
To: netdev; +Cc: Ron Mercer
Fix 4032 chip undocumented "feature" where bit-8 is set
if the inbound completion is for a VLAN.
Signed-off-by: Ron Mercer <ron.mercer@qlogic.com>
---
drivers/net/qla3xxx.c | 6 ++++++
1 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/drivers/net/qla3xxx.c b/drivers/net/qla3xxx.c
index c3fe1c7..ea15131 100755
--- a/drivers/net/qla3xxx.c
+++ b/drivers/net/qla3xxx.c
@@ -2249,6 +2249,12 @@ static int ql_tx_rx_clean(struct ql3_adapter *qdev,
net_rsp = qdev->rsp_current;
rmb();
+ /*
+ * Fix 4032 chipe undocumented "feature" where bit-8 is set if the
+ * inbound completion is for a VLAN.
+ */
+ if (qdev->device_id == QL3032_DEVICE_ID)
+ net_rsp->opcode &= 0x7f;
switch (net_rsp->opcode) {
case OPCODE_OB_MAC_IOCB_FN0:
--
1.5.0.rc4.16.g9e258
^ permalink raw reply related [flat|nested] 5+ messages in thread* 2.6.22 dev_base changes info request
2007-08-21 13:48 ` [PATCH 2/2] qla3xxx: bugfix: Fix VLAN rx completion handling Ron Mercer
@ 2007-08-21 14:22 ` Fortier,Vincent [Montreal]
0 siblings, 0 replies; 5+ messages in thread
From: Fortier,Vincent [Montreal] @ 2007-08-21 14:22 UTC (permalink / raw)
To: netdev
Hi all,
Sadly I have to use the Apani/Nortel cvc contivity linux client. The
latest version (3.5) stopped being compatible with the latest stable
2.6.22 kernel.
Since there will most probably not be a new release from apani until
year 2013 we have hack the linux_wrapper.c file to try to keep the
module compatible.
Based on the horrors that showed up while compiling against the 2.6.22
kernel (see below), I was wondering if somebody would be kind enough to
give hints/examples/doc-url/etc on how to convert dev_base calls so we
ca find a proper way to make the linux_wrapper.c file compatible with
the latest stable kernel.
Here are the make against 2.6.22 kernel horrors:
CC [M]
/usr/src/Nortel/Apani_VPN_v3.5/cvc_linux-rh-gcc3-3.5/src/k2.6/linux_wrap
per.o
/usr/src/Nortel/Apani_VPN_v3.5/cvc_linux-rh-gcc3-3.5/src/k2.6/linux_wrap
per.c: In function 'init_misc':
/usr/src/Nortel/Apani_VPN_v3.5/cvc_linux-rh-gcc3-3.5/src/k2.6/linux_wrap
per.c:310: error: 'dev_base' undeclared (first use in this function)
/usr/src/Nortel/Apani_VPN_v3.5/cvc_linux-rh-gcc3-3.5/src/k2.6/linux_wrap
per.c:310: error: (Each undeclared identifier is reported only once
/usr/src/Nortel/Apani_VPN_v3.5/cvc_linux-rh-gcc3-3.5/src/k2.6/linux_wrap
per.c:310: error: for each function it appears in.)
/usr/src/Nortel/Apani_VPN_v3.5/cvc_linux-rh-gcc3-3.5/src/k2.6/linux_wrap
per.c: In function 'nl_ip_rcv':
/usr/src/Nortel/Apani_VPN_v3.5/cvc_linux-rh-gcc3-3.5/src/k2.6/linux_wrap
per.c:434: error: 'struct sk_buff' has no member named 'nh'
/usr/src/Nortel/Apani_VPN_v3.5/cvc_linux-rh-gcc3-3.5/src/k2.6/linux_wrap
per.c: In function 'dev_next':
/usr/src/Nortel/Apani_VPN_v3.5/cvc_linux-rh-gcc3-3.5/src/k2.6/linux_wrap
per.c:497: error: 'net_device_t' has no member named 'next'
/usr/src/Nortel/Apani_VPN_v3.5/cvc_linux-rh-gcc3-3.5/src/k2.6/linux_wrap
per.c: In function 'nl_skb_dup':
/usr/src/Nortel/Apani_VPN_v3.5/cvc_linux-rh-gcc3-3.5/src/k2.6/linux_wrap
per.c:549: error: 'struct sk_buff' has no member named 'h'
/usr/src/Nortel/Apani_VPN_v3.5/cvc_linux-rh-gcc3-3.5/src/k2.6/linux_wrap
per.c:549: error: 'struct sk_buff' has no member named 'h'
/usr/src/Nortel/Apani_VPN_v3.5/cvc_linux-rh-gcc3-3.5/src/k2.6/linux_wrap
per.c:550: error: 'struct sk_buff' has no member named 'nh'
/usr/src/Nortel/Apani_VPN_v3.5/cvc_linux-rh-gcc3-3.5/src/k2.6/linux_wrap
per.c:550: error: 'struct sk_buff' has no member named 'nh'
/usr/src/Nortel/Apani_VPN_v3.5/cvc_linux-rh-gcc3-3.5/src/k2.6/linux_wrap
per.c:551: error: 'struct sk_buff' has no member named 'mac'
/usr/src/Nortel/Apani_VPN_v3.5/cvc_linux-rh-gcc3-3.5/src/k2.6/linux_wrap
per.c:551: error: 'struct sk_buff' has no member named 'mac'
/usr/src/Nortel/Apani_VPN_v3.5/cvc_linux-rh-gcc3-3.5/src/k2.6/linux_wrap
per.c: In function 'nl_skb_hdr_copy':
/usr/src/Nortel/Apani_VPN_v3.5/cvc_linux-rh-gcc3-3.5/src/k2.6/linux_wrap
per.c:576: error: 'struct sk_buff' has no member named 'h'
/usr/src/Nortel/Apani_VPN_v3.5/cvc_linux-rh-gcc3-3.5/src/k2.6/linux_wrap
per.c:576: error: 'struct sk_buff' has no member named 'h'
/usr/src/Nortel/Apani_VPN_v3.5/cvc_linux-rh-gcc3-3.5/src/k2.6/linux_wrap
per.c:577: error: 'struct sk_buff' has no member named 'nh'
/usr/src/Nortel/Apani_VPN_v3.5/cvc_linux-rh-gcc3-3.5/src/k2.6/linux_wrap
per.c:577: error: 'struct sk_buff' has no member named 'nh'
/usr/src/Nortel/Apani_VPN_v3.5/cvc_linux-rh-gcc3-3.5/src/k2.6/linux_wrap
per.c:578: error: 'struct sk_buff' has no member named 'mac'
/usr/src/Nortel/Apani_VPN_v3.5/cvc_linux-rh-gcc3-3.5/src/k2.6/linux_wrap
per.c:578: error: 'struct sk_buff' has no member named 'mac'
/usr/src/Nortel/Apani_VPN_v3.5/cvc_linux-rh-gcc3-3.5/src/k2.6/linux_wrap
per.c: In function 'nl_skb_iph':
/usr/src/Nortel/Apani_VPN_v3.5/cvc_linux-rh-gcc3-3.5/src/k2.6/linux_wrap
per.c:595: error: 'struct sk_buff' has no member named 'nh'
/usr/src/Nortel/Apani_VPN_v3.5/cvc_linux-rh-gcc3-3.5/src/k2.6/linux_wrap
per.c: In function 'nl_send_skb':
/usr/src/Nortel/Apani_VPN_v3.5/cvc_linux-rh-gcc3-3.5/src/k2.6/linux_wrap
per.c:616: error: 'struct sk_buff' has no member named 'nh'
/usr/src/Nortel/Apani_VPN_v3.5/cvc_linux-rh-gcc3-3.5/src/k2.6/linux_wrap
per.c:619: error: 'struct sk_buff' has no member named 'nh'
/usr/src/Nortel/Apani_VPN_v3.5/cvc_linux-rh-gcc3-3.5/src/k2.6/linux_wrap
per.c: In function 'nl_data_len':
/usr/src/Nortel/Apani_VPN_v3.5/cvc_linux-rh-gcc3-3.5/src/k2.6/linux_wrap
per.c:658: error: invalid operands to binary -
/usr/src/Nortel/Apani_VPN_v3.5/cvc_linux-rh-gcc3-3.5/src/k2.6/linux_wrap
per.c: In function 'do_checksum_offload':
/usr/src/Nortel/Apani_VPN_v3.5/cvc_linux-rh-gcc3-3.5/src/k2.6/linux_wrap
per.c:752: error: 'struct sk_buff' has no member named 'nh'
/usr/src/Nortel/Apani_VPN_v3.5/cvc_linux-rh-gcc3-3.5/src/k2.6/linux_wrap
per.c:768: error: 'struct sk_buff' has no member named 'nh'
/usr/src/Nortel/Apani_VPN_v3.5/cvc_linux-rh-gcc3-3.5/src/k2.6/linux_wrap
per.c:772: error: 'struct sk_buff' has no member named 'nh'
make[3]: ***
[/usr/src/Nortel/Apani_VPN_v3.5/cvc_linux-rh-gcc3-3.5/src/k2.6/linux_wra
pper.o] Error 1
make[2]: ***
[_module_/usr/src/Nortel/Apani_VPN_v3.5/cvc_linux-rh-gcc3-3.5/src/k2.6]
Error 2
Note, here is the line 310:
void init_misc(void)
{
nl_dev_base = dev_base;
}
Help very much appreciated.
- vin
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 0/2] qla3xxx: receive path bugfixes.
@ 2007-10-01 18:41 Ron Mercer
2007-10-01 18:43 ` [PATCH 2/2] qla3xxx: bugfix: Fix VLAN rx completion handling Ron Mercer
0 siblings, 1 reply; 5+ messages in thread
From: Ron Mercer @ 2007-10-01 18:41 UTC (permalink / raw)
To: jeff; +Cc: netdev
Jeff,
This is the second submission... First was in August. Thanks, Ron
The following two patches fix:
An undocumented "feature" where the 4032 chip sets bit-7
of the opcode for an inbound completion if it's for a VLAN.
The access of stale data on a completion entry.
These patches were built and tested on 2.6.23-rc1.
Signed-off-by: Ron Mercer <ron.mercer@qlogic.com>
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 2/2] qla3xxx: bugfix: Fix VLAN rx completion handling.
2007-10-01 18:41 [PATCH 0/2] qla3xxx: receive path bugfixes Ron Mercer
@ 2007-10-01 18:43 ` Ron Mercer
0 siblings, 0 replies; 5+ messages in thread
From: Ron Mercer @ 2007-10-01 18:43 UTC (permalink / raw)
To: jeff; +Cc: netdev, Ron Mercer
Fix 4032 chip undocumented "feature" where bit-8 is set
if the inbound completion is for a VLAN.
Signed-off-by: Ron Mercer <ron.mercer@qlogic.com>
---
drivers/net/qla3xxx.c | 6 ++++++
1 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/drivers/net/qla3xxx.c b/drivers/net/qla3xxx.c
index c3fe1c7..ea15131 100755
--- a/drivers/net/qla3xxx.c
+++ b/drivers/net/qla3xxx.c
@@ -2249,6 +2249,12 @@ static int ql_tx_rx_clean(struct ql3_adapter *qdev,
net_rsp = qdev->rsp_current;
rmb();
+ /*
+ * Fix 4032 chipe undocumented "feature" where bit-8 is set if the
+ * inbound completion is for a VLAN.
+ */
+ if (qdev->device_id == QL3032_DEVICE_ID)
+ net_rsp->opcode &= 0x7f;
switch (net_rsp->opcode) {
case OPCODE_OB_MAC_IOCB_FN0:
--
1.5.0.rc4.16.g9e258
^ permalink raw reply related [flat|nested] 5+ messages in thread
end of thread, other threads:[~2007-10-01 18:43 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-08-20 20:32 [PATCH 0/2] qla3xxx: receive path bugfixes Ron Mercer
2007-08-21 13:48 ` [PATCH 1/2] qla3xxx: bugfix: Add memory barrier before accessing rx completion Ron Mercer
2007-08-21 13:48 ` [PATCH 2/2] qla3xxx: bugfix: Fix VLAN rx completion handling Ron Mercer
2007-08-21 14:22 ` 2.6.22 dev_base changes info request Fortier,Vincent [Montreal]
-- strict thread matches above, loose matches on Subject: below --
2007-10-01 18:41 [PATCH 0/2] qla3xxx: receive path bugfixes Ron Mercer
2007-10-01 18:43 ` [PATCH 2/2] qla3xxx: bugfix: Fix VLAN rx completion handling Ron Mercer
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).