Re: [bug report] BUG: kernel NULL pointer dereference, address: 00000000000000fc

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Apr 25, 2023 at 10:37:05AM +0800, Changhui Zhong wrote:
> Hello,
> 
> Below issue was triggered in my test,it caused system panic ,please
> help check it.
> branch: for-6.4/block
> https://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git
> 
> mdadm -CR /dev/md0 -l 1 -n 2 /dev/sda /dev/sdb -e 1.0
> sgdisk -n 0:0:+100MiB /dev/md0
> cat /proc/partitions
> mdadm -S /dev/md0
> mdadm -A /dev/md0 /dev/sda /dev/sdb
> cat /proc/partitions
> 
> 
> [   34.219123] BUG: kernel NULL pointer dereference, address: 00000000000000fc
> [   34.219507] #PF: supervisor read access in kernel mode
> [   34.219784] #PF: error_code(0x0000) - not-present page
> [   34.220039] PGD 0 P4D 0
> [   34.220176] Oops: 0000 [#1] PREEMPT SMP PTI
> [   34.220374] CPU: 8 PID: 1956 Comm: systemd-udevd Kdump: loaded Not
> tainted 6.3.0-rc2+ #1
> [   34.220787] Hardware name: HP ProLiant DL360 Gen9/ProLiant DL360
> Gen9, BIOS P89 05/21/2018
> [   34.221188] RIP: 0010:blk_mq_sched_bio_merge+0x6d/0xf0

Hi Changhui,

Please try the following fix:

diff --git a/block/bdev.c b/block/bdev.c
index 850852fe4b78..fa2838ca2e6d 100644
--- a/block/bdev.c
+++ b/block/bdev.c
@@ -419,7 +419,11 @@ struct block_device *bdev_alloc(struct gendisk *disk, u8 partno)
        bdev->bd_inode = inode;
        bdev->bd_queue = disk->queue;
        bdev->bd_stats = alloc_percpu(struct disk_stats);
-       bdev->bd_has_submit_bio = false;
+
+       if (partno)
+               bdev->bd_has_submit_bio = disk->part0->bd_has_submit_bio;
+       else
+               bdev->bd_has_submit_bio = false;
        if (!bdev->bd_stats) {
                iput(inode);
                return NULL;

Fixes: 9f4107b07b17 ("block: store bdev->bd_disk->fops->submit_bio state in bdev")


Thanks, 
Ming




[Index of Archives]     [Linux RAID]     [Linux SCSI]     [Linux ATA RAID]     [IDE]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Device Mapper]

  Powered by Linux