OSDN Git Service

nvme-pci: Support shared tags across queues for Apple 2018 controllers
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>
Wed, 7 Aug 2019 07:51:22 +0000 (17:51 +1000)
committerSagi Grimberg <sagi@grimberg.me>
Thu, 29 Aug 2019 19:55:02 +0000 (12:55 -0700)
commitd38e9f04ebf667d9cb8185b45bff747485f1d3e9
treeee706eff480f2c7b14fc6c2b18d15995867c1432
parent66341331ba0d2de4ff421cdc401a1e34de50502a
nvme-pci: Support shared tags across queues for Apple 2018 controllers

Another issue with the Apple T2 based 2018 controllers seem to be
that they blow up (and shut the machine down) if there's a tag
collision between the IO queue and the Admin queue.

My suspicion is that they use our tags for their internal tracking
and don't mix them with the queue id. They also seem to not like
when tags go beyond the IO queue depth, ie 128 tags.

This adds a quirk that marks tags 0..31 of the IO queue reserved

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Reviewed-by: Ming Lei <ming.lei@redhat.com>
Acked-by: Keith Busch <keith.busch@intel.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Sagi Grimberg <sagi@grimberg.me>
drivers/nvme/host/nvme.h
drivers/nvme/host/pci.c