Attachments (2)
Change History (11)
by , 6 years ago
Attachment: | IMG_20181211_161642.jpg added |
---|
comment:1 by , 6 years ago
Component: | - General → System/Kernel |
---|---|
Owner: | changed from | to
Status: | new → assigned |
comment:3 by , 6 years ago
I'm unsure which component is at fault here.
It seems we have taken the convention of handling user buffers in the drivers themselves (personally I think doing it in common_user_io makes more sense), so then usb_disk would be the thing to change here.
comment:4 by , 6 years ago
In scsi_disk at least, this is done in a IORequest, which nicely handles VM operations when needed. Might also be a good idea to introduce the IOScheduler in usb_disk.
For this specific bug then, usb_disk needs a bounce buffer for any user I/O requests.
comment:5 by , 6 years ago
Summary: | Kernel panic → KDL: SMAP violation in usb_disk |
---|
comment:6 by , 6 years ago
I was running over this, and found some interesting observations:
Haiku x86_64, hrev52726, UEFI booted. USB 2.0
dd if=haiku-nightly-anyboot.iso of=/dev/disk/usb/0/0/raw bs=2M
No problems.
Haiku x86_64, hrev52775, UEFI booted, USB 3.0
BFS on USB 3.0 flash drive mounted at /TEST/ dd if=/dev/zero of=/TEST/test status=progress oflag=direct
KDL. (uploading soon)
comment:7 by , 6 years ago
Actually it seems the USB stack already handles userland areas: http://xref.plausible.coop/source/xref/haiku/src/add-ons/kernel/bus_managers/usb/Transfer.cpp#136
It just doesn't do it when the kernel passes buffers in. So, we should modify this code to accept user buffers from the kernel, too.
comment:8 by , 6 years ago
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
It was actually a bug in XHCI itself. Fixed in hrev52826.
comment:9 by , 5 years ago
Milestone: | Unscheduled → R1/beta2 |
---|
Assign tickets with status=closed and resolution=fixed within the R1/beta2 development window to the R1/beta2 Milestone
Which revision? I'm unsure which component is at fault here.