2022-07-27 07:10:18

by Soenke Huster

[permalink] [raw]
Subject: [PATCH v2] Bluetooth: virtio_bt: Use skb_put to set length

By using skb_put we ensure that skb->tail is set
correctly. Currently, skb->tail is always zero, which
leads to errors, such as the following page fault in
rfcomm_recv_frame:

BUG: unable to handle page fault for address: ffffed1021de29ff
#PF: supervisor read access in kernel mode
#PF: error_code(0x0000) - not-present page
RIP: 0010:rfcomm_run+0x831/0x4040 (net/bluetooth/rfcomm/core.c:1751)

Fixes: afd2daa26c7a ("Bluetooth: Add support for virtio transport driver")
Signed-off-by: Soenke Huster <[email protected]>
---
v2: Add Fixes tag
drivers/bluetooth/virtio_bt.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/bluetooth/virtio_bt.c b/drivers/bluetooth/virtio_bt.c
index 67c21263f9e0..fd281d439505 100644
--- a/drivers/bluetooth/virtio_bt.c
+++ b/drivers/bluetooth/virtio_bt.c
@@ -219,7 +219,7 @@ static void virtbt_rx_work(struct work_struct *work)
if (!skb)
return;

- skb->len = len;
+ skb_put(skb, len);
virtbt_rx_handle(vbt, skb);

if (virtbt_add_inbuf(vbt) < 0)
--
2.36.1



2022-07-27 08:08:39

by bluez.test.bot

[permalink] [raw]
Subject: RE: [v2] Bluetooth: virtio_bt: Use skb_put to set length

This is automated email and please do not reply to this email!

Dear submitter,

Thank you for submitting the patches to the linux bluetooth mailing list.
This is a CI test results with your patch series:
PW Link:https://patchwork.kernel.org/project/bluetooth/list/?series=663357

---Test result---

Test Summary:
CheckPatch PASS 1.39 seconds
GitLint PASS 0.69 seconds
SubjectPrefix PASS 0.52 seconds
BuildKernel PASS 33.52 seconds
BuildKernel32 PASS 28.96 seconds
Incremental Build with patchesPASS 41.43 seconds
TestRunner: Setup PASS 487.36 seconds
TestRunner: l2cap-tester PASS 17.07 seconds
TestRunner: bnep-tester PASS 6.20 seconds
TestRunner: mgmt-tester PASS 99.23 seconds
TestRunner: rfcomm-tester PASS 9.42 seconds
TestRunner: sco-tester PASS 9.27 seconds
TestRunner: smp-tester PASS 9.29 seconds
TestRunner: userchan-tester PASS 6.31 seconds



---
Regards,
Linux Bluetooth

2022-10-12 07:53:40

by Soenke Huster

[permalink] [raw]
Subject: [PATCH v2 RESEND] Bluetooth: virtio_bt: Use skb_put to set length

By using skb_put we ensure that skb->tail is set
correctly. Currently, skb->tail is always zero, which
leads to errors, such as the following page fault in
rfcomm_recv_frame:

BUG: unable to handle page fault for address: ffffed1021de29ff
#PF: supervisor read access in kernel mode
#PF: error_code(0x0000) - not-present page
RIP: 0010:rfcomm_run+0x831/0x4040 (net/bluetooth/rfcomm/core.c:1751)

Fixes: afd2daa26c7a ("Bluetooth: Add support for virtio transport driver")
Signed-off-by: Soenke Huster <[email protected]>
---
v2: Add Fixes tag
drivers/bluetooth/virtio_bt.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/bluetooth/virtio_bt.c b/drivers/bluetooth/virtio_bt.c
index 67c21263f9e0..fd281d439505 100644
--- a/drivers/bluetooth/virtio_bt.c
+++ b/drivers/bluetooth/virtio_bt.c
@@ -219,7 +219,7 @@ static void virtbt_rx_work(struct work_struct *work)
if (!skb)
return;

- skb->len = len;
+ skb_put(skb, len);
virtbt_rx_handle(vbt, skb);

if (virtbt_add_inbuf(vbt) < 0)
--
2.36.1


2022-10-12 08:23:46

by bluez.test.bot

[permalink] [raw]
Subject: RE: [v2,RESEND] Bluetooth: virtio_bt: Use skb_put to set length

This is automated email and please do not reply to this email!

Dear submitter,

Thank you for submitting the patches to the linux bluetooth mailing list.
This is a CI test results with your patch series:
PW Link:https://patchwork.kernel.org/project/bluetooth/list/?series=684698

---Test result---

Test Summary:
CheckPatch PASS 0.97 seconds
GitLint PASS 0.50 seconds
SubjectPrefix PASS 0.31 seconds
BuildKernel PASS 47.90 seconds
BuildKernel32 PASS 42.79 seconds
Incremental Build with patchesPASS 62.39 seconds
TestRunner: Setup PASS 702.33 seconds
TestRunner: l2cap-tester PASS 21.62 seconds
TestRunner: iso-tester PASS 22.65 seconds
TestRunner: bnep-tester PASS 8.55 seconds
TestRunner: mgmt-tester PASS 137.07 seconds
TestRunner: rfcomm-tester PASS 13.42 seconds
TestRunner: sco-tester PASS 12.48 seconds
TestRunner: ioctl-tester PASS 14.80 seconds
TestRunner: mesh-tester PASS 10.57 seconds
TestRunner: smp-tester PASS 12.28 seconds
TestRunner: userchan-tester PASS 8.83 seconds



---
Regards,
Linux Bluetooth

2022-10-12 20:12:19

by patchwork-bot+bluetooth

[permalink] [raw]
Subject: Re: [PATCH v2 RESEND] Bluetooth: virtio_bt: Use skb_put to set length

Hello:

This patch was applied to bluetooth/bluetooth-next.git (master)
by Luiz Augusto von Dentz <[email protected]>:

On Wed, 12 Oct 2022 09:45:06 +0200 you wrote:
> By using skb_put we ensure that skb->tail is set
> correctly. Currently, skb->tail is always zero, which
> leads to errors, such as the following page fault in
> rfcomm_recv_frame:
>
> BUG: unable to handle page fault for address: ffffed1021de29ff
> #PF: supervisor read access in kernel mode
> #PF: error_code(0x0000) - not-present page
> RIP: 0010:rfcomm_run+0x831/0x4040 (net/bluetooth/rfcomm/core.c:1751)
>
> [...]

Here is the summary with links:
- [v2,RESEND] Bluetooth: virtio_bt: Use skb_put to set length
https://git.kernel.org/bluetooth/bluetooth-next/c/6ab8872f1976

You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html