Re: remove bi_phys_segments and related cleanups

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

 



On 6/20/19 10:32 AM, Jens Axboe wrote:
> On 6/6/19 4:28 AM, Christoph Hellwig wrote:
>> Hi Jens,
>>
>> this series removes the bi_phys_segments member in struct bio
>> and cleans up various areas around it.> 
> Applied, thanks.

Now that I'm back and can fully go through testing, I run into
problems with this series. On one system, booting up makes it
crash. I've managed to get it to boot, only for the first sync
to make it crash. So seems likely related to a flush.

No console on that system, but that's OK since the trace itself
isn't that interesting. We end up crashing in nvme_queue_rq(),
here:

(gdb) l *nvme_queue_rq+0x252
0xffffffff8148b292 is in nvme_queue_rq (./include/linux/blkdev.h:962).
957	 */
958	static inline struct bio_vec req_bvec(struct request *rq)
959	{
960		if (rq->rq_flags & RQF_SPECIAL_PAYLOAD)
961			return rq->special_vec;
962		return mp_bvec_iter_bvec(rq->bio->bi_io_vec, rq->bio->bi_iter);
963	}

with a NULL pointer dereference at 0x8.

Taking a look at the series, this is the offending commit:

commit 14ccb66b3f585b2bc21e7256c96090abed5a512c
Author: Christoph Hellwig <hch@xxxxxx>
Date:   Thu Jun 6 12:29:01 2019 +0200

    block: remove the bi_phys_segments field in struct bio

with that as the HEAD, crash. Go back one commit, works fine.

-- 
Jens Axboe



[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