• Hou Tao's avatar
    bfq-iosched: Ensure bio->bi_blkg is valid before using it · 08802ed6
    Hou Tao authored
    bio->bi_blkg will be NULL when the issue of the request
    has bypassed the block layer as shown in the following oops:
    
     Internal error: Oops: 96000005 [#1] SMP
     CPU: 17 PID: 2996 Comm: scsi_id Not tainted 5.4.0 #4
     Call trace:
      percpu_counter_add_batch+0x38/0x4c8
      bfqg_stats_update_legacy_io+0x9c/0x280
      bfq_insert_requests+0xbac/0x2190
      blk_mq_sched_insert_request+0x288/0x670
      blk_execute_rq_nowait+0x140/0x178
      blk_execute_rq+0x8c/0x140
      sg_io+0x604/0x9c0
      scsi_cmd_ioctl+0xe38/0x10a8
      scsi_cmd_blk_ioctl+0xac/0xe8
      sd_ioctl+0xe4/0x238
      blkdev_ioctl+0x590/0x20e0
      block_ioctl+0x60/0x98
      do_vfs_ioctl+0xe0/0x1b58
      ksys_ioctl+0x80/0xd8
      __arm64_sys_ioctl+0x40/0x78
      el0_svc_handler+0xc4/0x270
    
    so ensure its validity before using it.
    
    Fixes: fd41e603 ("bfq-iosched: stop using blkg->stat_bytes and ->stat_ios")
    Signed-off-by: default avatarHou Tao <houtao1@huawei.com>
    Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
    08802ed6
bfq-cgroup.c 37.4 KB