linux/drivers
NeilBrown 706d916414 md/raid5: avoid livelock caused by non-aligned writes.
commit a40687ff73 upstream.

If a stripe in a raid6 array received a write to each data block while
the array is degraded, and if any of these writes to a missing device
are not page-aligned, then a live-lock happens.

In this case the P and Q blocks need to be read so that the part of
the missing block which is *not* being updated by the write can be
constructed.  Due to a logic error, these blocks are not loaded, so
the update cannot proceed and the stripe is 'handled' repeatedly in an
infinite loop.

This bug is unlikely as most writes are page aligned.  However as it
can lead to a livelock it is suitable for -stable.  It was introduced
in 3.16.

Fixed: 67f455486d
Signed-off-by: NeilBrown <neilb@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2014-09-17 09:22:16 -07:00
..
accessibility printk: move braille console support into separate braille.[ch] files 2013-07-31 14:41:03 -07:00
acpi ACPI / video: Disable native_backlight on HP ENVY 15 Notebook PC 2014-09-17 09:22:11 -07:00
amba ARM: SoC: driver changes 2014-04-05 15:37:40 -07:00
ata libata: introduce ata_host->n_tags to avoid oops on SAS controllers 2014-07-23 10:30:34 -04:00
atm atm: fore200e.c: Cleaning up uninitialized variables 2014-06-02 17:11:03 -07:00
auxdisplay framebuffer: Use fb_<level> 2013-10-29 12:53:07 +02:00
base platform_get_irq: Revert to platform_get_resource if of_irq_get fails 2014-07-11 18:06:36 -07:00
bcma bcma: gpio: register 32 GPIOs on BCM5357 2014-03-27 14:20:04 -04:00
block rbd: rework rbd_request_fn() 2014-09-17 09:22:15 -07:00
bluetooth Bluetooth: btmrvl: wait for HOST_SLEEP_ENABLE event in suspend 2014-09-17 09:22:13 -07:00
bus bus/arm-cci: add dependency on OF && CPU_V7 2014-06-17 17:09:35 +02:00
cdrom Merge branch 'for-linus' of git://git.kernel.dk/linux-block 2014-06-11 08:41:17 -07:00
char tpm: Properly clean sysfs entries in error path 2014-09-17 09:21:52 -07:00
clk clk: ti: clk-7xx: Correct ABE DPLL configuration 2014-07-31 08:36:58 -07:00
clocksource clocksource: exynos_mct: Register the timer for stable udelay 2014-07-05 06:40:23 +09:00
connector Char / misc driver patches for 3.16-rc1 2014-06-03 08:06:56 -07:00
cpufreq powerpc/cpufreq: Add pr_warn() on OPAL firmware failures 2014-09-17 09:21:51 -07:00
cpuidle powerpc/cpuidle: Fix parsing of idle state flags from device-tree 2014-09-17 09:21:55 -07:00
crypto crypto: ux500 - make interrupt mode plausible 2014-09-05 16:36:31 -07:00
dca dca: convert to idr_alloc() 2013-02-27 19:10:15 -08:00
devfreq PM / devfreq: remove checks for CONFIG_EXYNOS_ASV 2014-05-24 22:33:51 +09:00
dio m68k: don't export static inline functions 2009-12-06 11:18:28 +01:00
dma Update imx-sdma cyclic handling to report residue 2014-07-01 12:23:42 +05:30
edac PCI changes for the v3.16 merge window: 2014-06-02 12:15:19 -07:00
eisa Revert "EISA: Initialize device before its resources" 2014-01-17 14:57:29 -07:00
extcon extcon: palmas: Use devm_extcon_dev_allocate for extcon_dev 2014-04-29 09:52:12 +09:00
firewire IEEE 1394 (FireWire) subsystem fix: MSI don't work on VIA PCIe controllers 2014-07-27 09:42:06 -07:00
firmware firmware: Do not use WARN_ON(!spin_is_locked()) 2014-09-17 09:21:52 -07:00
fmc Merge 3.14-rc5 into char-misc-next 2014-03-02 19:53:09 -08:00
gpio Pin control fixes for v3.16: 2014-07-23 17:42:37 -07:00
gpu drm/radeon: use packet2 for nop on hawaii with old firmware 2014-09-17 09:21:52 -07:00
hid HID: fix a couple of off-by-ones 2014-09-05 16:36:24 -07:00
hsi hsi: omap_ssi_port: use normal module refcounting 2014-06-05 00:59:05 +02:00
hv Drivers: hv: hv_fcopy: fix a race condition for SMP guest 2014-07-17 18:43:10 -07:00
hwmon hwmon: (lm92) Prevent overflow problem when writing large limits 2014-09-05 16:36:30 -07:00
hwspinlock A single patch from Vincent extending OMAP's hwspinlock support to OMAP5. 2013-05-07 14:01:27 -07:00
i2c i2c: rk3x: fix interrupt handling issue 2014-09-05 16:36:31 -07:00
ide Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/ide 2014-07-21 22:44:24 -07:00
idle intel_idle: fix IVT idle state table setting 2014-04-21 23:36:07 +02:00
iio iio:bma180: Missing check for frequency fractional part 2014-07-20 17:39:47 +01:00
infiniband Merge branches 'cxgb4' and 'mlx5' into for-next 2014-07-16 23:14:42 -07:00
input Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2014-07-23 15:42:53 -07:00
iommu iommu/amd: Fix cleanup_domain for mass device removal 2014-09-17 09:21:51 -07:00
ipack ipack: convert bus code to use dev_groups 2013-10-16 18:40:57 -07:00
irqchip irqchip: gic: Fix core ID calculation when topology is read from DT 2014-07-18 13:13:41 +00:00
isdn isdn/bas_gigaset: fix a leak on failure path in gigaset_probe() 2014-07-29 12:18:34 -07:00
leds Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds 2014-06-12 13:08:09 -07:00
lguest drivers/lguest/page_tables.c: rename do_set_pte() 2014-04-07 16:35:52 -07:00
macintosh powerpc/macintosh/smu.c: Fix closing brace followed by if 2014-06-24 12:43:15 +10:00
mailbox drivers/mailbox/omap: make mbox->irq signed for error handling 2014-01-23 16:36:53 -08:00
mcb mcb: Add support for shared PCI IRQs 2014-05-27 17:38:11 -07:00
md md/raid5: avoid livelock caused by non-aligned writes. 2014-09-17 09:22:16 -07:00
media media: sms: Remove CONFIG_ prefix from Kconfig symbols 2014-09-17 09:21:50 -07:00
memory memory: mvebu-devbus: add a devbus, keep-config property 2014-04-29 13:17:10 +00:00
memstick drivers/memstick/host/rtsx_pci_ms.c: add cancel_work when remove driver 2014-06-23 16:47:44 -07:00
message mptfusion: fix msgContext in mptctl_hp_hostinfo 2014-05-28 18:14:16 +02:00
mfd mfd: twl4030-power: Fix PM idle pin configuration to not conflict with regulators 2014-09-17 09:21:54 -07:00
misc mei: nfc: fix memory leak in error path 2014-09-05 16:36:38 -07:00
mmc mmc: mmci: Move all CMD irq handling to mmci_cmd_irq() 2014-09-05 16:36:29 -07:00
mtd Two UBI fastmap-related fixes for v3.16: 2014-07-18 06:23:34 -10:00
net tg3: Modify tg3_tso_bug() to handle multiple TX rings 2014-08-14 10:09:44 +08:00
nfc NFC: trf7970a: Add support for Felica Type 3 tags 2014-05-26 01:28:28 +02:00
ntb ntb: Use pci_enable_msix_range() instead of pci_enable_msix() 2014-04-07 10:59:20 -07:00
nubus kernel/printk: use symbolic defines for console loglevels 2014-06-04 16:54:17 -07:00
of of: Add memory limiting function for flattened devicetrees 2014-07-29 21:26:45 -06:00
oprofile oprofile, nmi-timer: Fix CPU hotplug callback registration 2014-03-20 13:43:46 +01:00
parisc PCI changes for the v3.12 merge window: 2013-09-03 16:24:35 -07:00
parport parport: fix menu breakage 2014-07-25 18:00:23 -07:00
pci ACPI / PCI: Fix sysfs acpi_index and label errors 2014-09-05 16:36:34 -07:00
pcmcia pcmcia: Use pci_is_bridge() to simplify code 2014-05-27 14:58:24 -06:00
phy USB fixes for 3.16-rc5 2014-07-12 14:13:10 -07:00
pinctrl pinctrl: st: Fix irqmux handler 2014-07-15 20:55:15 +02:00
platform Merge branch 'for_linus' of git://cavan.codon.org.uk/platform-drivers-x86 2014-06-10 16:58:32 -07:00
pnp ACPI / PNP: Fix acpi_pnp_match() 2014-07-30 00:23:09 +02:00
power bq2415x_charger: Fix Atomic Sleep Bug 2014-09-17 09:22:08 -07:00
powercap powercap / RAPL: add new CPU IDs 2014-05-01 01:34:51 +02:00
pps drivers/pps/clients/pps-gpio.c: remove redundant of_match_ptr 2013-11-13 12:09:35 +09:00
ps3 ps3-vuart: don't use PREPARE_WORK 2014-03-07 10:24:48 -05:00
ptp ptp: ptp_pch depends on x86_32 2014-06-17 15:43:48 -07:00
pwm pwm: Changes for v3.16-rc1 2014-06-11 14:06:55 -07:00
rapidio rapidio/tsi721_dma: fix failure to obtain transaction descriptor 2014-07-30 17:16:13 -07:00
regulator regulator: tps65218: fix DCDC4 linear voltage range 2014-09-17 09:21:55 -07:00
remoteproc remoteproc: da8xx: don't select CMA on no-MMU 2014-06-17 17:09:36 +02:00
reset ARM: SoC driver changes 2014-06-02 16:35:49 -07:00
rpmsg A small pull request consisting of: 2013-05-07 14:02:00 -07:00
rtc drivers/rtc/rtc-puv3.c: remove "&dev->" for typo issue MIME-Version: 1.0 2014-06-20 08:22:39 +08:00
s390 s390/zcrypt: improve device probing for zcrypt adapter cards 2014-07-16 10:48:12 +02:00
sbus bbc-i2c: Fix BBC I2C envctrl on SunBlade 2000 2014-08-14 10:09:44 +08:00
scsi bfa: Fix undefined bit shift on big-endian architectures with 32-bit DMA address 2014-09-17 09:22:08 -07:00
sfi SFI / ACPI: Fix warnings reported during builds with W=1 2013-12-07 01:24:33 +01:00
sh SH Driver Update for v3.16 2014-06-06 11:44:09 -07:00
sn Drivers: misc: remove __dev* attributes. 2013-01-03 15:57:16 -08:00
soc soc: qcom: fix of_device_id table 2014-05-26 21:27:09 +02:00
spi spi/pxa2xx: Add ACPI ID for Intel Braswell 2014-09-17 09:22:09 -07:00
spmi spmi: pm: drop bus-level PM suspend/resume routines 2014-03-08 22:15:52 -08:00
ssb Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2014-01-30 17:20:32 -08:00
staging staging: r8188eu: Add new USB ID 2014-09-05 16:36:40 -07:00
target iscsi-target: fix iscsit_del_np deadlock on unload 2014-06-27 23:23:35 -07:00
tc TC: Handle device_register() errors. 2014-06-26 10:48:23 +01:00
thermal thermal: ti-soc-thermal: ti-bandgap.c: Cleaning up wrong address is checked 2014-07-01 09:52:35 +08:00
tty serial: core: Preserve termios c_cflag for console resume 2014-09-05 16:36:31 -07:00
uio Revert "uio: fix vma io range check in mmap" 2014-06-17 16:07:08 -07:00
usb USB: fix build error with CONFIG_PM_RUNTIME disabled 2014-09-05 16:36:43 -07:00
uwb uwb: fix variable set but not used warnings 2014-05-27 15:18:48 -07:00
vfio A handful of VFIO bug fixes for v3.16 2014-06-07 20:12:15 -07:00
vhost vhost-scsi: don't open-code kvfree 2014-06-23 09:22:48 +03:00
video fb: adv7393: add missing semicolon 2014-07-01 13:18:38 +03:00
virt drivers: clean-up prom.h implicit includes 2013-10-09 20:04:04 -05:00
virtio virtio: virtio_break_device() to mark all virtqueues broken. 2014-04-28 11:34:13 +09:30
vlynq drivers/vlynq/vlynq.c: fix another resource size off by 1 error 2014-01-23 16:36:55 -08:00
vme vme_tsi148: Utilize to_pci_dev() macro 2014-04-16 14:08:37 -07:00
w1 w1: mxc_w1: Fix incorrect "presence" status 2014-06-19 17:51:46 -07:00
watchdog Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux 2014-06-21 06:47:01 -10:00
xen xen/events/fifo: reset control block and local HEADs on resume 2014-09-17 09:22:11 -07:00
zorro zorro/UAPI: Use proper types (endianness/size) in <linux/zorro.h> 2013-11-26 11:09:09 +01:00
Kconfig soc: Introduce drivers/soc place-holder for SOC specific drivers 2014-05-23 11:37:46 -05:00
Makefile Char / misc driver patches for 3.16-rc1 2014-06-03 08:06:56 -07:00