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

Koba Ko koba.ko at canonical.com
Fri Jan 28 03:25:47 UTC 2022


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(-)

-- 
2.25.1




More information about the kernel-team mailing list