diff options
Diffstat (limited to 'drivers/nvme/host/core.c')
| -rw-r--r-- | drivers/nvme/host/core.c | 19 | 
1 files changed, 17 insertions, 2 deletions
diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c index 24165daee3c8..b3d9c29aba1e 100644 --- a/drivers/nvme/host/core.c +++ b/drivers/nvme/host/core.c @@ -2546,6 +2546,20 @@ static const struct nvme_core_quirk_entry core_quirks[] = {  		.vid = 0x1e0f,  		.mn = "KCD6XVUL6T40",  		.quirks = NVME_QUIRK_NO_APST, +	}, +	{ +		/* +		 * The external Samsung X5 SSD fails initialization without a +		 * delay before checking if it is ready and has a whole set of +		 * other problems.  To make this even more interesting, it +		 * shares the PCI ID with internal Samsung 970 Evo Plus that +		 * does not need or want these quirks. +		 */ +		.vid = 0x144d, +		.mn = "Samsung Portable SSD X5", +		.quirks = NVME_QUIRK_DELAY_BEFORE_CHK_RDY | +			  NVME_QUIRK_NO_DEEPEST_PS | +			  NVME_QUIRK_IGNORE_DEV_SUBNQN,  	}  }; @@ -3285,8 +3299,8 @@ static ssize_t uuid_show(struct device *dev, struct device_attribute *attr,  	 * we have no UUID set  	 */  	if (uuid_is_null(&ids->uuid)) { -		printk_ratelimited(KERN_WARNING -				   "No UUID available providing old NGUID\n"); +		dev_warn_ratelimited(dev, +			"No UUID available providing old NGUID\n");  		return sysfs_emit(buf, "%pU\n", ids->nguid);  	}  	return sysfs_emit(buf, "%pU\n", &ids->uuid); @@ -3863,6 +3877,7 @@ static int nvme_init_ns_head(struct nvme_ns *ns, unsigned nsid,  	if (ret) {  		dev_err(ctrl->device,  			"globally duplicate IDs for nsid %d\n", nsid); +		nvme_print_device_info(ctrl);  		return ret;  	}  |