APPLIED [OEM-5.14] Re: [PATCH 00/23][SRU][U/OEM-5.14] USB port lost function after unplugging usb drive

Timo Aaltonen tjaalton at ubuntu.com
Mon Feb 14 12:28:19 UTC 2022


Koba Ko kirjoitti 28.1.2022 klo 5.25:
> BugLink: https://bugs.launchpad.net/bugs/1958850
> 
> [Impact]
> Test the proposed 5.14 oem kernel, and get a failure symptom.
> 
> Unplug a usb drive from WD19TB docking and a BUG reported in kernel, then the other embedded usb port can't detect usb drive anymore after a while.
> 
> kernel: usb 5-2.3.3: USB disconnect, device number 5
> kernel: BUG: kernel NULL pointer dereference, address: 0000000000000030
> kernel: #PF: supervisor read access in kernel mode
> kernel: #PF: error_code(0x0000) - not-present page
> kernel: PGD 0 P4D 0
> kernel: Oops: 0000 [#1] SMP NOPTI
> 
> [Fix]
> After applied https://lore.kernel.org/all/20210816134624.GA24234@lst.de/#r, issue is gone.
> the patches has beend landed since v5.15-rc1.
> 
> [Test Case]
> 1. plug usb driver on the machine.
> 2. unplug usb driver.
> 3. check the dmesg if the oops would be shown
> 
> [Where problems could occur]
> Medium
> 
> Christoph Hellwig (20):
>    mm: hide laptop_mode_wb_timer entirely behind the BDI API
>    block: pass a gendisk to blk_queue_update_readahead
>    block: add a queue_has_disk helper
>    block: move the bdi from the request_queue to the gendisk
>    block: remove the bd_bdi in struct block_device
>    nvme: use blk_mq_alloc_disk
>    st: do not allocate a gendisk
>    sg: do not allocate a gendisk
>    block: cleanup the lockdep handling in *alloc_disk
>    block: remove alloc_disk and alloc_disk_node
>    block: remove the minors argument to __alloc_disk_node
>    block: pass a request_queue to __blk_alloc_disk
>    block: hold a request_queue reference for the lifetime of struct
>      gendisk
>    block: add an explicit ->disk backpointer to the request_queue
>    writeback: make the laptop_mode prototypes available unconditionally
>    sg: pass the device name to blk_trace_setup
>    block: factor out a blk_try_enter_queue helper
>    block: drain file system I/O on del_gendisk
>    block: keep q_usage_counter in atomic mode after del_gendisk
>    nvdimm/pmem: stop using q_usage_count as external pgmap refcount
> 
> Luis Chamberlain (1):
>    nvdimm/pmem: cleanup the disk if pmem_release_disk() is yet assigned
> 
> Matteo Croce (1):
>    block: add disk sequence number
> 
> Ming Lei (1):
>    block: drain queue after disk is removed from sysfs
> 
>   block/bfq-iosched.c             |   4 +-
>   block/blk-cgroup.c              |   7 +-
>   block/blk-core.c                | 131 +++++++++++++++++---------------
>   block/blk-mq.c                  |  17 +++--
>   block/blk-settings.c            |  22 ++++--
>   block/blk-sysfs.c               |  27 +++----
>   block/blk-wbt.c                 |   8 +-
>   block/blk.h                     |   2 +
>   block/disk-events.c             |   3 +
>   block/genhd.c                   | 117 +++++++++++++++++++++-------
>   block/ioctl.c                   |   7 +-
>   drivers/block/drbd/drbd_nl.c    |   2 +-
>   drivers/block/drbd/drbd_req.c   |   5 +-
>   drivers/block/pktcdvd.c         |   8 +-
>   drivers/md/dm-table.c           |   2 +-
>   drivers/nvdimm/pmem.c           |  46 +++--------
>   drivers/nvme/host/core.c        |  35 ++++-----
>   drivers/s390/block/dasd_genhd.c |   7 +-
>   drivers/scsi/sd.c               |   6 +-
>   drivers/scsi/sg.c               |  32 +++-----
>   drivers/scsi/sr.c               |   7 +-
>   drivers/scsi/st.c               |  49 +++---------
>   drivers/scsi/st.h               |   2 +-
>   fs/block_dev.c                  |  13 +---
>   fs/fat/fatent.c                 |   1 +
>   fs/nilfs2/super.c               |   2 +-
>   fs/super.c                      |   2 +-
>   fs/xfs/xfs_buf.c                |   2 +-
>   include/linux/backing-dev.h     |   2 +-
>   include/linux/blk-mq.h          |  10 +--
>   include/linux/blk_types.h       |   1 -
>   include/linux/blkdev.h          |   9 +--
>   include/linux/genhd.h           |  34 ++-------
>   include/linux/writeback.h       |   5 --
>   include/trace/events/kyber.h    |   6 +-
>   mm/backing-dev.c                |   3 +
>   mm/page-writeback.c             |   2 -
>   37 files changed, 307 insertions(+), 331 deletions(-)
> 

applied to oem-5.14, thanks

-- 
t



More information about the kernel-team mailing list