Skip to contentSkip to conversation

i40evf: Use le32_to_cpu before evaluating HW desc fields.

PATCH New Tushar Dave 3 participants 9 messages May 1, 2017 – May 22, 2017

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 i40evf: Use le32_to_cpu before evaluating HW desc fields.

i40e hardware descriptor fields are in little-endian format. Driver must use le32_to_cpu while evaluating these fields otherwise on big-endian arch we end up evaluating incorrect values, cause errors like:

i40evf 0001:04:02.0: Expected response 0 from PF, received 285212672 i40evf 0001:04:02.1: Expected response 0 from PF, received 285212672

---
 drivers/net/ethernet/intel/i40evf/i40evf_main.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)
drivers/net/ethernet/intel/i40evf/i40evf_main.c +4 -2
index f35dcaa..2c1dfaf 100644
@@ -1923,8 +1923,10 @@ static void i40evf_adminq_task(struct work_struct *work)
 		if (ret || !v_msg->v_opcode)
 			break; /* No event to process or error cleaning ARQ */
 
-		i40evf_virtchnl_completion(adapter, v_msg->v_opcode,
-					   v_msg->v_retval, event.msg_buf,
+		i40evf_virtchnl_completion(adapter,
+					   le32_to_cpu(v_msg->v_opcode),
+					   le32_to_cpu(v_msg->v_retval),
+					   event.msg_buf,
 					   event.msg_len);
 		if (pending != 0)
 			memset(event.msg_buf, 0, I40EVF_MAX_AQ_BUF_SIZE);
Signature · 1 line
1.9.1
#1 lore raw

PATCH 1/1 i40evf: Use le32_to_cpu before evaluating HW desc fields.

Quoted 5 lines · Tushar Dave

i40e hardware descriptor fields are in little-endian format. Driver must use le32_to_cpu while evaluating these fields otherwise on big-endian arch we end up evaluating incorrect values, cause errors like:

Quoted 7 lines

i40evf 0001:04:02.0: Expected response 0 from PF, received 285212672 i40evf 0001:04:02.1: Expected response 0 from PF, received 285212672

---
?drivers/net/ethernet/intel/i40evf/i40evf_main.c | 6 ++++-- ?1 file changed, 4 insertions(+), 2 deletions(-)

Due to recent patches already applied to my tree, this patch does not
apply cleanly. Feel free to send an updated patch, if the change is
still needed.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: This is a digitally signed message part
URL: <http://lists.osuosl.org/pipermail/intel-wired-lan/attachments/20170516/a2b82788/attachment.asc>

author
#2 lore raw

PATCH 1/1 i40evf: Use le32_to_cpu before evaluating HW desc fields.

Quoted 9 lines · Jeff Kirsher
Quoted 8 lines · Tushar Dave

i40e hardware descriptor fields are in little-endian format. Driver must use le32_to_cpu while evaluating these fields otherwise on big-endian arch we end up evaluating incorrect values, cause errors like:

i40evf 0001:04:02.0: Expected response 0 from PF, received 285212672 i40evf 0001:04:02.1: Expected response 0 from PF, received 285212672

Quoted 8 lines
Quoted 4 lines
---
 drivers/net/ethernet/intel/i40evf/i40evf_main.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

Due to recent patches already applied to my tree, this patch does not apply cleanly. Feel free to send an updated patch, if the change is still needed.

Okay. I will send v2.
Thanks.

-Tushar

Quoted 1 line
author
#3 lore raw

PATCH 1/1 i40evf: Use le32_to_cpu before evaluating HW desc fields.

In reply to Jeff Kirsher
Quoted 9 lines · Jeff Kirsher
Quoted 8 lines · Tushar Dave

i40e hardware descriptor fields are in little-endian format. Driver must use le32_to_cpu while evaluating these fields otherwise on big-endian arch we end up evaluating incorrect values, cause errors like:

i40evf 0001:04:02.0: Expected response 0 from PF, received 285212672 i40evf 0001:04:02.1: Expected response 0 from PF, received 285212672

Quoted 8 lines
Quoted 4 lines
---
 drivers/net/ethernet/intel/i40evf/i40evf_main.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

Due to recent patches already applied to my tree, this patch does not apply cleanly. Feel free to send an updated patch, if the change is still needed.

Hi Jeff,

I just tried the same patch on Dave's latest linux-net and it applies cleanly. Wondering if I should clone your tree and make sure it applies? If so, I may need to do same for all my future patches as well, thats a extra bit of work!

Most of the time, mine are bug fixes and I always use linux-net when upstreaming my patches for Intel Ethernet drivers.

-Tushar

Quoted 1 line
#4 lore raw

PATCH 1/1 i40evf: Use le32_to_cpu before evaluating HW desc fields.

Quoted 26 lines · tndave
Quoted 17 lines · Jeff Kirsher
Quoted 6 lines · Tushar Dave

i40e hardware descriptor fields are in little-endian format. Driver must use le32_to_cpu while evaluating these fields otherwise on big-endian arch we end up evaluating incorrect values, cause errors like:

Quoted 7 lines

i40evf 0001:04:02.0: Expected response 0 from PF, received 285212672 i40evf 0001:04:02.1: Expected response 0 from PF, received 285212672

---
 drivers/net/ethernet/intel/i40evf/i40evf_main.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)
Quoted 3 lines

Due to recent patches already applied to my tree, this patch does not apply cleanly. Feel free to send an updated patch, if the change is still needed.

Hi Jeff,

Quoted 8 lines

I just tried the same patch on Dave's latest linux-net and it applies cleanly. Wondering if I should clone your tree and make sure it applies? If so, I may need to do same for all my future patches as well, thats a extra bit of work!

Most of the time, mine are bug fixes and I always use linux-net when upstreaming my patches for Intel Ethernet drivers.

You probably should just be cloning the dev-queue branch of Jeff's tree. The issue is I believe he has some virtchnl changes from Jesse and they are conflicting with your change.

- Alex

author
#5 lore raw

PATCH 1/1 i40evf: Use le32_to_cpu before evaluating HW desc fields.

Quoted 32 lines · Alexander Duyck
Quoted 31 lines · tndave
Quoted 17 lines · Jeff Kirsher
Quoted 6 lines · Tushar Dave

i40e hardware descriptor fields are in little-endian format. Driver must use le32_to_cpu while evaluating these fields otherwise on big-endian arch we end up evaluating incorrect values, cause errors like:

Quoted 7 lines

i40evf 0001:04:02.0: Expected response 0 from PF, received 285212672 i40evf 0001:04:02.1: Expected response 0 from PF, received 285212672

---
 drivers/net/ethernet/intel/i40evf/i40evf_main.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)
Quoted 3 lines

Due to recent patches already applied to my tree, this patch does not apply cleanly. Feel free to send an updated patch, if the change is still needed.

Hi Jeff,

I just tried the same patch on Dave's latest linux-net and it applies cleanly. Wondering if I should clone your tree and make sure it applies? If so, I may need to do same for all my future patches as well, thats a extra bit of work!

Quoted 7 lines
Quoted 3 lines

Most of the time, mine are bug fixes and I always use linux-net when upstreaming my patches for Intel Ethernet drivers.

You probably should just be cloning the dev-queue branch of Jeff's tree. The issue is I believe he has some virtchnl changes from Jesse and they are conflicting with your change.\

Okay.
Thanks.

-Tushar

Quoted 3 lines

- Alex

#6 lore raw

PATCH 1/1 i40evf: Use le32_to_cpu before evaluating HW desc fields.

In reply to tndave
Quoted 21 lines · tndave
Quoted 9 lines · Jeff Kirsher
Quoted 8 lines · Tushar Dave

i40e hardware descriptor fields are in little-endian format. Driver must use le32_to_cpu while evaluating these fields otherwise on big-endian arch we end up evaluating incorrect values, cause errors like:

i40evf 0001:04:02.0: Expected response 0 from PF, received 285212672 i40evf 0001:04:02.1: Expected response 0 from PF, received 285212672

Quoted 8 lines
Quoted 4 lines

---
? drivers/net/ethernet/intel/i40evf/i40evf_main.c | 6 ++++-- ? 1 file changed, 4 insertions(+), 2 deletions(-)

Due to recent patches already applied to my tree, this patch does not apply cleanly.? Feel free to send an updated patch, if the change is still needed.

Hi Jeff,

Quoted 7 lines

I just tried the same patch on Dave's latest linux-net and it applies cleanly. Wondering if I should clone your tree and make sure it applies? If so, I may need to do same for all my future patches as well, thats a extra bit of work!

Most of the time, mine are bug fixes and I always use linux-net when upstreaming my patches for Intel Ethernet drivers.

As Alex has already pointed out, yes, you should be using my dev-queue branch on either next-queue or net-queue trees. As you know, I have a number of patches currently in the queue which won't show up on linux-net until they get pushed to David Miller.

If you use my tree for the Intel drivers, you may find we already fix the
issue or your fix may need to be re-worked due to changes in the code which
are currently in the "queue".
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: This is a digitally signed message part
URL: <http://lists.osuosl.org/pipermail/intel-wired-lan/attachments/20170522/1ec1b4a3/attachment.asc>

author
#7 lore raw

PATCH 1/1 i40evf: Use le32_to_cpu before evaluating HW desc fields.

Quoted 30 lines · Jeff Kirsher
Quoted 21 lines · tndave
Quoted 9 lines · Jeff Kirsher
Quoted 8 lines · Tushar Dave

i40e hardware descriptor fields are in little-endian format. Driver must use le32_to_cpu while evaluating these fields otherwise on big-endian arch we end up evaluating incorrect values, cause errors like:

i40evf 0001:04:02.0: Expected response 0 from PF, received 285212672 i40evf 0001:04:02.1: Expected response 0 from PF, received 285212672

Quoted 8 lines
Quoted 4 lines
---
  drivers/net/ethernet/intel/i40evf/i40evf_main.c | 6 ++++--
  1 file changed, 4 insertions(+), 2 deletions(-)

Due to recent patches already applied to my tree, this patch does not apply cleanly. Feel free to send an updated patch, if the change is still needed.

Hi Jeff,

Quoted 7 lines

I just tried the same patch on Dave's latest linux-net and it applies cleanly. Wondering if I should clone your tree and make sure it applies? If so, I may need to do same for all my future patches as well, thats a extra bit of work!

Most of the time, mine are bug fixes and I always use linux-net when upstreaming my patches for Intel Ethernet drivers.

Quoted 8 lines

As Alex has already pointed out, yes, you should be using my dev-queue branch on either next-queue or net-queue trees. As you know, I have a number of patches currently in the queue which won't show up on linux-net until they get pushed to David Miller.

If you use my tree for the Intel drivers, you may find we already fix the issue or your fix may need to be re-worked due to changes in the code which are currently in the "queue".

Sure, I will use your tree for Intel drivers going forward :) Thanks.

-Tushar

Quoted 1 line
author
#8 lore raw

PATCH 1/1 i40evf: Use le32_to_cpu before evaluating HW desc fields.

In reply to Jeff Kirsher
Quoted 30 lines · Jeff Kirsher
Quoted 21 lines · tndave
Quoted 9 lines · Jeff Kirsher
Quoted 8 lines · Tushar Dave

i40e hardware descriptor fields are in little-endian format. Driver must use le32_to_cpu while evaluating these fields otherwise on big-endian arch we end up evaluating incorrect values, cause errors like:

i40evf 0001:04:02.0: Expected response 0 from PF, received 285212672 i40evf 0001:04:02.1: Expected response 0 from PF, received 285212672

Quoted 8 lines
Quoted 4 lines
---
  drivers/net/ethernet/intel/i40evf/i40evf_main.c | 6 ++++--
  1 file changed, 4 insertions(+), 2 deletions(-)

Due to recent patches already applied to my tree, this patch does not apply cleanly. Feel free to send an updated patch, if the change is still needed.

Hi Jeff,

Quoted 7 lines

I just tried the same patch on Dave's latest linux-net and it applies cleanly. Wondering if I should clone your tree and make sure it applies? If so, I may need to do same for all my future patches as well, thats a extra bit of work!

Most of the time, mine are bug fixes and I always use linux-net when upstreaming my patches for Intel Ethernet drivers.

Quoted 8 lines

As Alex has already pointed out, yes, you should be using my dev-queue branch on either next-queue or net-queue trees. As you know, I have a number of patches currently in the queue which won't show up on linux-net until they get pushed to David Miller.

If you use my tree for the Intel drivers, you may find we already fix the issue or your fix may need to be re-worked due to changes in the code which are currently in the "queue".

Jeff,

Tried the same patch (using git am) on your net-queue tree branch:dev-queue and the patch applies cleanly.

FYI, right now
https://kernel.googlesource.com/pub/scm/linux/kernel/git/jkirsher/net-queue.git:dev-queue
has top commit:
"i40e/i40evf: proper update of the page_offset field"

My system has: patch --version
GNU patch 2.7.1

Thanks.
-Tushar

Quoted 1 line