• Keith Busch's avatar
    nvme-pci: fix conflicting p2p resource adds · 9fe5c59f
    Keith Busch authored
    The nvme pci driver had been adding its CMB resource to the P2P DMA
    subsystem everytime on on a controller reset. This results in the
    following warning:
    
        ------------[ cut here ]------------
        nvme 0000:00:03.0: Conflicting mapping in same section
        WARNING: CPU: 7 PID: 81 at kernel/memremap.c:155 devm_memremap_pages+0xa6/0x380
        ...
        Call Trace:
         pci_p2pdma_add_resource+0x153/0x370
         nvme_reset_work+0x28c/0x17b1 [nvme]
         ? add_timer+0x107/0x1e0
         ? dequeue_entity+0x81/0x660
         ? dequeue_entity+0x3b0/0x660
         ? pick_next_task_fair+0xaf/0x610
         ? __switch_to+0xbc/0x410
         process_one_work+0x1cf/0x350
         worker_thread+0x215/0x3d0
         ? process_one_work+0x350/0x350
         kthread+0x107/0x120
         ? kthread_park+0x80/0x80
         ret_from_fork+0x1f/0x30
        ---[ end trace f7ea76ac6ee72727 ]---
        nvme nvme0: failed to register the CMB
    
    This patch fixes this by registering the CMB with P2P only once.
    Signed-off-by: default avatarKeith Busch <keith.busch@intel.com>
    Reviewed-by: default avatarLogan Gunthorpe <logang@deltatee.com>
    Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
    Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
    9fe5c59f
pci.c 69.6 KB