diff options
Diffstat (limited to 'drivers/nvme/host/pci.c')
| -rw-r--r-- | drivers/nvme/host/pci.c | 23 |
1 files changed, 9 insertions, 14 deletions
diff --git a/drivers/nvme/host/pci.c b/drivers/nvme/host/pci.c index cd888a47d0fc..925467b31a33 100644 --- a/drivers/nvme/host/pci.c +++ b/drivers/nvme/host/pci.c | |||
| @@ -801,6 +801,7 @@ static inline void nvme_handle_cqe(struct nvme_queue *nvmeq, | |||
| 801 | return; | 801 | return; |
| 802 | } | 802 | } |
| 803 | 803 | ||
| 804 | nvmeq->cqe_seen = 1; | ||
| 804 | req = blk_mq_tag_to_rq(*nvmeq->tags, cqe->command_id); | 805 | req = blk_mq_tag_to_rq(*nvmeq->tags, cqe->command_id); |
| 805 | nvme_end_request(req, cqe->status, cqe->result); | 806 | nvme_end_request(req, cqe->status, cqe->result); |
| 806 | } | 807 | } |
| @@ -830,10 +831,8 @@ static void nvme_process_cq(struct nvme_queue *nvmeq) | |||
| 830 | consumed++; | 831 | consumed++; |
| 831 | } | 832 | } |
| 832 | 833 | ||
| 833 | if (consumed) { | 834 | if (consumed) |
| 834 | nvme_ring_cq_doorbell(nvmeq); | 835 | nvme_ring_cq_doorbell(nvmeq); |
| 835 | nvmeq->cqe_seen = 1; | ||
| 836 | } | ||
| 837 | } | 836 | } |
| 838 | 837 | ||
| 839 | static irqreturn_t nvme_irq(int irq, void *data) | 838 | static irqreturn_t nvme_irq(int irq, void *data) |
| @@ -1558,11 +1557,9 @@ static inline void nvme_release_cmb(struct nvme_dev *dev) | |||
| 1558 | if (dev->cmb) { | 1557 | if (dev->cmb) { |
| 1559 | iounmap(dev->cmb); | 1558 | iounmap(dev->cmb); |
| 1560 | dev->cmb = NULL; | 1559 | dev->cmb = NULL; |
| 1561 | if (dev->cmbsz) { | 1560 | sysfs_remove_file_from_group(&dev->ctrl.device->kobj, |
| 1562 | sysfs_remove_file_from_group(&dev->ctrl.device->kobj, | 1561 | &dev_attr_cmb.attr, NULL); |
| 1563 | &dev_attr_cmb.attr, NULL); | 1562 | dev->cmbsz = 0; |
| 1564 | dev->cmbsz = 0; | ||
| 1565 | } | ||
| 1566 | } | 1563 | } |
| 1567 | } | 1564 | } |
| 1568 | 1565 | ||
| @@ -1953,16 +1950,14 @@ static int nvme_pci_enable(struct nvme_dev *dev) | |||
| 1953 | 1950 | ||
| 1954 | /* | 1951 | /* |
| 1955 | * CMBs can currently only exist on >=1.2 PCIe devices. We only | 1952 | * CMBs can currently only exist on >=1.2 PCIe devices. We only |
| 1956 | * populate sysfs if a CMB is implemented. Note that we add the | 1953 | * populate sysfs if a CMB is implemented. Since nvme_dev_attrs_group |
| 1957 | * CMB attribute to the nvme_ctrl kobj which removes the need to remove | 1954 | * has no name we can pass NULL as final argument to |
| 1958 | * it on exit. Since nvme_dev_attrs_group has no name we can pass | 1955 | * sysfs_add_file_to_group. |
| 1959 | * NULL as final argument to sysfs_add_file_to_group. | ||
| 1960 | */ | 1956 | */ |
| 1961 | 1957 | ||
| 1962 | if (readl(dev->bar + NVME_REG_VS) >= NVME_VS(1, 2, 0)) { | 1958 | if (readl(dev->bar + NVME_REG_VS) >= NVME_VS(1, 2, 0)) { |
| 1963 | dev->cmb = nvme_map_cmb(dev); | 1959 | dev->cmb = nvme_map_cmb(dev); |
| 1964 | 1960 | if (dev->cmb) { | |
| 1965 | if (dev->cmbsz) { | ||
| 1966 | if (sysfs_add_file_to_group(&dev->ctrl.device->kobj, | 1961 | if (sysfs_add_file_to_group(&dev->ctrl.device->kobj, |
| 1967 | &dev_attr_cmb.attr, NULL)) | 1962 | &dev_attr_cmb.attr, NULL)) |
| 1968 | dev_warn(dev->ctrl.device, | 1963 | dev_warn(dev->ctrl.device, |
