Patch "nvme: simplify stripe quirk" has been added to the 4.9-stable tree

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

 



This is a note to let you know that I've just added the patch titled

    nvme: simplify stripe quirk

to the 4.9-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     nvme-simplify-stripe-quirk.patch
and it can be found in the queue-4.9 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.


>From foo@baz Mon Apr 10 17:43:56 CEST 2017
From: alexander.levin@xxxxxxxxxxx
Date: Tue, 4 Apr 2017 19:32:16 +0000
Subject: nvme: simplify stripe quirk
To: "gregkh@xxxxxxxxxxxxxxxxxxx" <gregkh@xxxxxxxxxxxxxxxxxxx>
Cc: "stable@xxxxxxxxxxxxxxx" <stable@xxxxxxxxxxxxxxx>
Message-ID: <20170404193158.19041-40-alexander.levin@xxxxxxxxxxx>

From: Keith Busch <keith.busch@xxxxxxxxx>

[ Upstream commit e6282aef7b89a11d26e731060c4409b7aac278bf ]

Some OEMs believe they own the Identify Controller vendor specific
region and will repurpose it with their own values. While not common,
we can't rely on the PCI VID:DID to tell use how to decode the field
we reserved for this as the stripe size so we need to do something else
for the list of devices using this quirk.

The field was supposed to allow flexibility on the device's back-end
striping, but it turned out that never materialized; the chunk is always
the same as MDTS in the products subscribing to this quirk, so this
patch removes the stripe_size field and sets the chunk to the max hw
transfer size for the devices using this quirk.

Signed-off-by: Keith Busch <keith.busch@xxxxxxxxx>
Signed-off-by: Christoph Hellwig <hch@xxxxxx>
Signed-off-by: Sasha Levin <alexander.levin@xxxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
---
 drivers/nvme/host/core.c |   17 ++---------------
 drivers/nvme/host/nvme.h |    1 -
 2 files changed, 2 insertions(+), 16 deletions(-)

--- a/drivers/nvme/host/core.c
+++ b/drivers/nvme/host/core.c
@@ -1204,8 +1204,8 @@ static void nvme_set_queue_limits(struct
 		blk_queue_max_hw_sectors(q, ctrl->max_hw_sectors);
 		blk_queue_max_segments(q, min_t(u32, max_segments, USHRT_MAX));
 	}
-	if (ctrl->stripe_size)
-		blk_queue_chunk_sectors(q, ctrl->stripe_size >> 9);
+	if (ctrl->quirks & NVME_QUIRK_STRIPE_SIZE)
+		blk_queue_chunk_sectors(q, ctrl->max_hw_sectors);
 	blk_queue_virt_boundary(q, ctrl->page_size - 1);
 	if (ctrl->vwc & NVME_CTRL_VWC_PRESENT)
 		vwc = true;
@@ -1261,19 +1261,6 @@ int nvme_init_identify(struct nvme_ctrl
 	ctrl->max_hw_sectors =
 		min_not_zero(ctrl->max_hw_sectors, max_hw_sectors);
 
-	if ((ctrl->quirks & NVME_QUIRK_STRIPE_SIZE) && id->vs[3]) {
-		unsigned int max_hw_sectors;
-
-		ctrl->stripe_size = 1 << (id->vs[3] + page_shift);
-		max_hw_sectors = ctrl->stripe_size >> (page_shift - 9);
-		if (ctrl->max_hw_sectors) {
-			ctrl->max_hw_sectors = min(max_hw_sectors,
-							ctrl->max_hw_sectors);
-		} else {
-			ctrl->max_hw_sectors = max_hw_sectors;
-		}
-	}
-
 	nvme_set_queue_limits(ctrl, ctrl->admin_q);
 	ctrl->sgls = le32_to_cpu(id->sgls);
 	ctrl->kas = le16_to_cpu(id->kas);
--- a/drivers/nvme/host/nvme.h
+++ b/drivers/nvme/host/nvme.h
@@ -121,7 +121,6 @@ struct nvme_ctrl {
 
 	u32 page_size;
 	u32 max_hw_sectors;
-	u32 stripe_size;
 	u16 oncs;
 	u16 vid;
 	atomic_t abort_limit;


Patches currently in stable-queue which might be from gregkh@xxxxxxxxxxxxxxxxxxx are

queue-4.9/staging-android-ashmem-lseek-failed-due-to-no-fmode_lseek.patch
queue-4.9/arm64-dts-hisi-fix-hip06-sas-am-max-trans-quirk.patch
queue-4.9/scsi-ufs-introduce-ufshcd_quirk_prdt_byte_gran-quirk.patch
queue-4.9/acpi-button-change-default-behavior-to-lid_init_state-open.patch
queue-4.9/usb-musb-da8xx-fix-host-mode-suspend.patch
queue-4.9/drm-i915-fix-intel_bdw_ids-definition.patch
queue-4.9/sysfs-be-careful-of-error-returns-from-ops-show.patch
queue-4.9/mips-flush-wrong-invalid-ftlb-entry-for-huge-page.patch
queue-4.9/mips-end-spinlocks-with-.insn.patch
queue-4.9/mmc-sdhci-of-esdhc-remove-default-broken-cd-for-arm.patch
queue-4.9/kvm-arm-arm64-fix-locking-for-kvm_free_stage2_pgd.patch
queue-4.9/powerpc-disable-hfscr-if-tm-is-not-supported.patch
queue-4.9/metag-usercopy-add-missing-fixups.patch
queue-4.9/nios2-reserve-boot-memory-for-device-tree.patch
queue-4.9/alsa-usb-audio-add-implicit-fb-quirk-for-axe-fx-ii.patch
queue-4.9/svcauth_gss-close-connection-when-dropping-an-incoming-message.patch
queue-4.9/platform-x86-asus-wmi-detect-quirk_no_rfkill-from-the-dsdt.patch
queue-4.9/ring-buffer-fix-return-value-check-in-test_ringbuffer.patch
queue-4.9/ppdev-check-before-attaching-port.patch
queue-4.9/firmware-qcom-scm-fix-interrupted-scm-calls.patch
queue-4.9/pci-add-broadcom-northstar2-paxc-quirk-for-device-class-and-mpss.patch
queue-4.9/powerpc-64-fix-flush_-d-i-cache_range-called-from-modules.patch
queue-4.9/drm-sun4i-tcon-move-soc-specific-quirks-to-a-dt-matched-data-structure.patch
queue-4.9/acpi-gpio-do-not-fall-back-to-parsing-_crs-when-we-get-a-deferral.patch
queue-4.9/pci-explain-arm64-acpi-mcfg-quirk-kconfig-and-build-strategy.patch
queue-4.9/metag-usercopy-add-early-abort-to-copy_to_user.patch
queue-4.9/powerpc-crypto-crc32c-vpmsum-fix-missing-preempt_disable.patch
queue-4.9/hid-multitouch-do-not-retrieve-all-reports-for-all-devices.patch
queue-4.9/arm-arm64-kvm-take-mmap_sem-in-kvm_arch_prepare_memory_region.patch
queue-4.9/arm-dts-stih407-family-set-snps-dis_u3_susphy_quirk.patch
queue-4.9/rx51-broken-build.patch
queue-4.9/mips-ralink-fix-typos-in-rt3883-pinctrl.patch
queue-4.9/cfg80211-check-rdev-resume-callback-only-for-registered-wiphy.patch
queue-4.9/metag-usercopy-set-flags-before-addz.patch
queue-4.9/asoc-intel-bytct_rt5640-change-default-capture-settings.patch
queue-4.9/metag-usercopy-fix-src-fixup-in-from-user-rapf-loops.patch
queue-4.9/hid-asus-fix-keyboard-support.patch
queue-4.9/drm-sun4i-add-compatible-string-for-a31-a31s-tcon-timing-controller.patch
queue-4.9/arm64-pci-manage-controller-specific-data-on-per-controller-basis.patch
queue-4.9/platform-x86-acer-wmi-only-supports-amw0_guid1-on-acer-family.patch
queue-4.9/xtensa-make-__pa-work-with-uncached-kseg-addresses.patch
queue-4.9/asoc-codecs-rt5670-add-quirk-for-lenovo-thinkpad-10.patch
queue-4.9/clk-lpc32xx-add-a-quirk-for-pwm-and-ms-clock-dividers.patch
queue-4.9/powerpc-mm-add-missing-global-tlb-invalidate-if-cxl-is-active.patch
queue-4.9/tools-power-turbostat-dump-atom-p-states-correctly.patch
queue-4.9/clocksource-drivers-arm_arch_timer-don-t-assume-clock-runs-in-suspend.patch
queue-4.9/asoc-intel-cht_bsw_rt5645-add-baytrail-mclk-support.patch
queue-4.9/watchdog-s3c2410-fix-infinite-interrupt-in-soft-mode.patch
queue-4.9/arm64-pci-search-acpi-namespace-to-ensure-ecam-space-is-reserved.patch
queue-4.9/pci-add-mcfg-quirks-for-cavium-thunderx-pass1.x-host-controller.patch
queue-4.9/drm-i915-actually-drive-the-bdw-reserved-ids.patch
queue-4.9/net-mlx4_core-use-device-id-defines.patch
queue-4.9/scsi-ufs-introduce-a-new-ufshcd_statea-ufshcd_state_eh_scheduled.patch
queue-4.9/hid-sensor-hub-add-quirk-for-microsoft-surface-3.patch
queue-4.9/serial-8250_omap-add-omap_dma_tx_kick-quirk-for-am437x.patch
queue-4.9/brcmfmac-use-local-iftype-avoiding-use-after-free-of-virtual-interface.patch
queue-4.9/pci-acpi-check-for-platform-specific-mcfg-quirks.patch
queue-4.9/drm-vmwgfx-remove-getparam-error-message.patch
queue-4.9/mac80211-unconditionally-start-new-netdev-queues-with-itxq-support.patch
queue-4.9/dm-verity-fec-fix-bufio-leaks.patch
queue-4.9/x86-intel_idle-add-cpu-model-0x4a-atom-z34xx-series.patch
queue-4.9/hid-wacom-don-t-apply-generic-settings-to-old-devices.patch
queue-4.9/hid-sensor-hub-add-quirk-for-microchip-mm7150.patch
queue-4.9/arm-kernel-add-smc-structure-parameter.patch
queue-4.9/usb-storage-add-ignore-residue-quirk-for-initio-inic-3619.patch
queue-4.9/drm-vmwgfx-type-check-lookups-of-fence-objects.patch
queue-4.9/hid-asus-add-i2c-touchpad-support.patch
queue-4.9/nvme-simplify-stripe-quirk.patch
queue-4.9/drm-sun4i-add-compatible-strings-for-a31-a31s-display-pipelines.patch
queue-4.9/dm-verity-fec-limit-error-correction-recursion.patch
queue-4.9/drm-edid-constify-edid-quirk-list.patch
queue-4.9/s390-uaccess-get_user-should-zero-on-failure-again.patch
queue-4.9/dm-raid-fix-null-pointer-dereference-for-raid1-without-bitmap.patch
queue-4.9/random-use-chacha20-for-get_random_int-long.patch
queue-4.9/ptrace-fix-ptrace_listen-race-corrupting-task-state.patch
queue-4.9/drm-vmwgfx-fix-integer-overflow-in-vmw_surface_define_ioctl.patch
queue-4.9/pci-sort-the-list-of-devices-with-d3-delay-quirk-by-id.patch
queue-4.9/pci-add-mcfg-quirks-for-x-gene-host-controller.patch
queue-4.9/hid-i2c-hid-add-a-simple-quirk-to-fix-device-defects.patch
queue-4.9/drm-msm-adreno-move-function-declarations-to-header-file.patch
queue-4.9/s390-decompressor-fix-initrd-corruption-caused-by-bss-clear.patch
queue-4.9/pci-disable-msi-for-hisilicon-hip06-hip07-root-ports.patch
queue-4.9/mips-check-tlb-before-handle_ri_rdhwr-for-loongson-3.patch
queue-4.9/pci-add-acs-quirk-for-intel-union-point.patch
queue-4.9/asoc-intel-baytrail-add-quirk-for-lenovo-thinkpad-10.patch
queue-4.9/can-flexcan-add-quirk-flexcan_quirk_enable_eacen_rrs.patch
queue-4.9/metag-usercopy-drop-unused-macros.patch
queue-4.9/pci-expand-vpd-access-disabled-quirk-message.patch
queue-4.9/drm-i915-more-.is_mobile-cleanups-for-bdw.patch
queue-4.9/hid-multitouch-enable-the-surface-4-type-cover-pro-jp-to-report-multitouch-data.patch
queue-4.9/iio-bmg160-reset-chip-when-probing.patch
queue-4.9/orangefs-move-features-validation-to-fix-filesystem-hang.patch
queue-4.9/arm64-mm-unaligned-access-by-user-land-should-be-received-as-sigbus.patch
queue-4.9/powerpc-don-t-try-to-fix-up-misaligned-load-with-reservation-instructions.patch
queue-4.9/usb-chipidea-msm-rely-on-core-to-override-ahbburst.patch
queue-4.9/scsi-ufs-refactor-device-descriptor-reading.patch
queue-4.9/asoc-intel-bytcr_rt5640-quirks-for-insyde-devices.patch
queue-4.9/mips-lantiq-fix-missing-xbar-kernel-panic.patch
queue-4.9/metag-usercopy-zero-rest-of-buffer-from-copy_from_user.patch
queue-4.9/xfs-honor-falloc_fl_keep_size-when-punching-ends-of-files.patch
queue-4.9/hid-multitouch-enable-the-surface-3-type-cover-to-report-multitouch-data.patch
queue-4.9/scsi-ufs-issue-link-starup-2-times-if-device-isn-t-active.patch
queue-4.9/asoc-rt5670-add-missing-10ec5072-acpi-id.patch
queue-4.9/metag-usercopy-fix-alignment-error-checking.patch
queue-4.9/x86-reboot-quirks-add-asus-eeebook-x205ta-reboot-quirk.patch
queue-4.9/input-gpio_keys-add-support-for-gpio-descriptors.patch
queue-4.9/pci-xgene-fix-double-free-on-init-error.patch
queue-4.9/acpi-save-nvs-memory-for-lenovo-g50-45.patch
queue-4.9/asoc-intel-cht_bsw_rt5645-harden-acpi-device-detection.patch
queue-4.9/sata-ahci-da850-implement-a-workaround-for-the-softreset-quirk.patch
queue-4.9/reset-treeid-to-zero-on-smb2-tree_connect.patch
queue-4.9/pci-add-acs-quirk-for-qualcomm-qdf2400-and-qdf2432.patch
queue-4.9/tools-power-turbostat-decode-baytrail-cc6-and-mc6-demotion-configuration.patch
queue-4.9/arm-davinci-pm-support-da8xx-dt-platforms.patch
queue-4.9/documentation-stable-kernel-rules-fix-stable-tag-format.patch
queue-4.9/drm-mga-remove-device_is_agp-callback.patch
queue-4.9/usb-host-xhci-plat-enable-broken_ped-quirk-if-platform-requested.patch
queue-4.9/mm-mempolicy.c-fix-error-handling-in-set_mempolicy-and-mbind.patch
queue-4.9/pci-add-mcfg-quirks-for-qualcomm-qdf2432-host-controller.patch
queue-4.9/amd-xgbe-prepare-for-working-with-more-than-one-type-of-phy.patch
queue-4.9/arm-arm64-kvm-take-mmap_sem-in-stage2_unmap_vm.patch
queue-4.9/mm-page_alloc.c-fix-print-order-in-show_free_areas.patch
queue-4.9/usb-dwc3-host-pass-quirk-broken-port-ped-property-for-known-broken-revisions.patch
queue-4.9/hid-usbhid-add-quirk-for-the-futaba-tosd-5711bb-vfd.patch
queue-4.9/mmc-sdhci-msm-enable-few-quirks.patch
queue-4.9/hid-usbhid-add-quirk-for-mayflash-dragonrise-dolphinbar.patch
queue-4.9/arm-smccc-update-hvc-comment-to-describe-new-quirk-parameter.patch
queue-4.9/hid-usbhid-add-quirks-for-mayflash-dragonrise-gamecube-and-ps3-adapters.patch
queue-4.9/pci-thunder-pem-factor-out-resource-lookup.patch
queue-4.9/pci-acpi-extend-pci_mcfg_lookup-to-return-ecam-config-accessors.patch
queue-4.9/mips-c-r4k-fix-loongson-3-s-vcache-scache-waysize-calculation.patch
queue-4.9/platform-x86-asus-wmi-set-specified-xusb2pr-value-for-x550lb.patch
queue-4.9/drm-vmwgfx-avoid-calling-vzalloc-with-a-0-size-in-vmw_get_cap_3d_ioctl.patch
queue-4.9/usb-xhci-add-quirk-flag-for-broken-ped-bits.patch
queue-4.9/scsi-ufs-ensure-that-host-pa_tactivate-is-higher-than-device.patch
queue-4.9/mips-force-o32-fp64-support-on-32bit-mips64r6-kernels.patch
queue-4.9/arm-davinci-add-skeleton-for-pdata-quirks.patch
queue-4.9/usb-dwc3-gadget-delay-unmap-of-bounced-requests.patch
queue-4.9/x86-reboot-quirks-fix-typo-in-asus-eeebook-x205ta-reboot-quirk.patch
queue-4.9/mips-add-mips_cpu_ftlb-for-loongson-3a-r2.patch
queue-4.9/alsa-usb-audio-add-native-dsd-support-for-teac-501-503-dac.patch
queue-4.9/kbuild-use-cc-disable-warning-consistently-for-maybe-uninitialized.patch
queue-4.9/arm-omap2-fix-init-for-multiple-quirks-for-the-same-soc.patch
queue-4.9/pci-add-mcfg-quirks-for-hisilicon-hip05-06-07-host-controllers.patch
queue-4.9/hid-microsoft-add-surface-4-type-cover-pro-4-not-jp-versions.patch
queue-4.9/ppdev-fix-registering-same-device-name.patch
queue-4.9/pci-add-mcfg-quirks-for-cavium-thunderx-pass2.x-host-controller.patch
queue-4.9/x86-reboot-quirks-add-asus-eeebook-x205ta-w-reboot-quirk.patch
queue-4.9/acpi-sysfs-provide-quirk-mechanism-to-prevent-gpe-flooding.patch
queue-4.9/scsi-ufs-add-quirk-to-increase-host-pa_saveconfigtime.patch
queue-4.9/drm-ttm-drm-vmwgfx-relax-permission-checking-when-opening-surfaces.patch
queue-4.9/arm64-pci-add-local-struct-device-pointers.patch
queue-4.9/drm-vmwgfx-null-pointer-dereference-in-vmw_surface_define_ioctl.patch
queue-4.9/asoc-sun4i-i2s-add-quirks-to-handle-a31-compatible.patch



[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]