linux/drivers
Michal Hocko edce5e6f33 uio: fix false positive __might_sleep warning splat
Andy has reported a __might_sleep warning
[ 5174.883617] WARNING: CPU: 0 PID: 1532 at
/home/agrover/git/kernel/kernel/sched/core.c:7389 __might_sleep+0x7d/0x90()
[ 5174.884407] do not call blocking ops when !TASK_RUNNING; state=1 set at [<ffffffffa02a5821>] uio_read+0x91/0x170 [uio]
[ 5174.885198] Modules linked in: tcm_loop target_core_user uio target_core_pscsi target_core_file target_core_iblock iscsi_target_mod  target_core_mod uinput fuse nfsv3 nfs_acl nfs lockd grace fscache sunrpc microcode i2c_piix4 virtio_balloon i2c_core xfs libcrc32c crc32c_intel  virtio_net virtio_blk
[ 5174.887351] CPU: 0 PID: 1532 Comm: tcmu-runner Not tainted 4.2.0-rc7+
[ 5174.887853] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996),
BIOS 1.8.1-20150318_183358- 04/01/2014
[ 5174.888633]  ffffffff81a3b870 ffff880045393ca8 ffffffff817afaae
0000000000000000
[ 5174.889224]  ffff880045393cf8 ffff880045393ce8 ffffffff8109a846
ffff880045393cd8
[ 5174.889793]  ffffffffa02a7150 00000000000002dc 0000000000000000
ffff880045008000
[ 5174.890375] Call Trace:
[ 5174.890562]  [<ffffffff817afaae>] dump_stack+0x4c/0x65
[ 5174.890938]  [<ffffffff8109a846>] warn_slowpath_common+0x86/0xc0
[ 5174.891388]  [<ffffffff8109a8c6>] warn_slowpath_fmt+0x46/0x50
[ 5174.891808]  [<ffffffffa02a5821>] ? uio_read+0x91/0x170 [uio]
[ 5174.892237]  [<ffffffffa02a5821>] ? uio_read+0x91/0x170 [uio]
[ 5174.892653]  [<ffffffff810c584d>] __might_sleep+0x7d/0x90
[ 5174.893055]  [<ffffffff811ea023>] __might_fault+0x43/0xa0
[ 5174.893448]  [<ffffffff817b31ce>] ? schedule+0x3e/0x90
[ 5174.893820]  [<ffffffffa02a58c2>] uio_read+0x132/0x170 [uio]
[ 5174.894240]  [<ffffffff810cbb80>] ? wake_up_q+0x70/0x70
[ 5174.894620]  [<ffffffff81236168>] __vfs_read+0x28/0xe0
[ 5174.894993]  [<ffffffff81353233>] ? security_file_permission+0xa3/0xc0
[ 5174.895541]  [<ffffffff8123678f>] ? rw_verify_area+0x4f/0xf0
[ 5174.896006]  [<ffffffff812368ba>] vfs_read+0x8a/0x140
[ 5174.896391]  [<ffffffff817b28f5>] ? __schedule+0x425/0xcc0
[ 5174.896788]  [<ffffffff812375d9>] SyS_read+0x49/0xb0

The warning is a false positive because uio_read doesn't depent on
TASK_INTERRUPTIBLE after copy_to_user so it is safe to silence the
warning by an explicit setting the state to TASK_RUNNING in the path
which might call into TASK_RUNNING.

Reported-by: Andy Grover <agrover@redhat.com>
Signed-off-by: Michal Hocko <mhocko@suse.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-10-04 12:32:25 +01:00
..
accessibility
acpi ACPI: Eliminate CONFIG_.*{, _MODULE} #ifdef in favor of IS_ENABLED() 2015-09-15 03:05:45 +02:00
amba
android mm: mark most vm_operations_struct const 2015-09-10 13:29:01 -07:00
ata Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2015-09-03 16:55:55 -07:00
atm solos-pci: Increase headroom on received packets 2015-09-17 21:29:07 -07:00
auxdisplay
base driver core fix for 4.3-rc3 2015-09-26 20:54:53 -04:00
bcma
block Merge branch 'for-linus' of git://git.kernel.dk/linux-block 2015-09-19 18:57:09 -07:00
bluetooth Bluetooth: hci_bcm: Fix crash on suspend 2015-08-28 21:09:14 +02:00
bus regmap: Changes for v4.3 2015-09-08 16:48:55 -07:00
cdrom
char Merge 4.3-rc3 into char-misc-next 2015-09-27 12:44:02 -07:00
clk A few driver fixes for tegra, rockchip, and st SoCs and a two-liner 2015-09-19 20:17:40 -07:00
clocksource - New Device Support 2015-09-04 11:35:03 -07:00
connector
cpufreq cpufreq: acpi-cpufreq: Use cpufreq_cpu_get_raw() in ->get() 2015-09-16 02:17:49 +02:00
cpuidle Additional power management and ACPI material for v4.3-rc1 2015-09-11 19:11:06 -07:00
crypto Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 2015-09-26 21:05:23 -04:00
dca
devfreq PM / devfreq: Fix incorrect type issue. 2015-09-11 14:23:30 +09:00
dio
dma genirq: Remove irq argument from irq flow handlers 2015-09-16 15:47:51 +02:00
dma-buf
edac edac updates for v4.3-rc1 2015-09-11 16:21:12 -07:00
eisa
extcon extcon: Fix attached value returned by is_extcon_changed 2015-09-21 15:07:19 +09:00
firewire
firmware ARM: SoC fixes for v4.3-rc 2015-09-27 06:45:18 -04:00
fmc
gpio Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2015-09-18 08:11:42 -07:00
gpu Merge tag 'drm-intel-fixes-2015-09-24' of git://anongit.freedesktop.org/drm-intel into drm-fixes 2015-09-25 06:52:37 +10:00
hid Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2015-09-04 12:02:11 -07:00
hsi mm: mark most vm_operations_struct const 2015-09-10 13:29:01 -07:00
hv Drivers: hv: vmbus: fix init_vp_index() for reloading hv_netvsc 2015-09-20 22:44:51 -07:00
hwmon hwmon: (nct6775) Add support for NCT6793D 2015-09-12 19:43:02 -07:00
hwspinlock
hwtracing/coresight
i2c Merge branch 'i2c/for-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux 2015-09-08 16:16:26 -07:00
ide
idle
iio This is the bulk of GPIO changes for the v4.3 kernel cycle: 2015-09-04 10:07:45 -07:00
infiniband Merge git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending 2015-09-26 21:02:42 -04:00
input Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2015-09-11 19:17:28 -07:00
iommu fs/seq_file: convert int seq_vprint/seq_printf/etc... returns to void 2015-09-11 15:21:34 -07:00
ipack
irqchip irqchip/atmel-aic5: Use per chip mask caches in mask/unmask() 2015-09-22 15:55:51 +02:00
isdn libnvdimm for 4.3: 2015-09-08 14:35:59 -07:00
leds leds:lp55xx: Correct Kconfig dependency for f/w user helper 2015-09-17 10:02:20 +02:00
lguest
macintosh powerpc updates for 4.3 2015-09-03 16:41:38 -07:00
mailbox Merge branch 'mailbox-for-next' of git://git.linaro.org/landing-teams/working/fujitsu/integration 2015-09-05 18:11:04 -07:00
mcb
md dm crypt: constrain crypt device's max_segment_size to PAGE_SIZE 2015-09-14 12:04:24 -04:00
media media updates for v4.3-rc1 2015-09-11 16:42:39 -07:00
memory IOMMU Updates for Linux v4.3 2015-09-08 17:22:35 -07:00
memstick
message
mfd genirq: Remove irq argument from irq flow handlers 2015-09-16 15:47:51 +02:00
misc Merge 4.3-rc3 into char-misc-next 2015-09-27 12:44:02 -07:00
mmc MMC core: 2015-09-08 16:33:16 -07:00
mtd MTD updates #2 for 4.3-rc1: 2015-09-09 11:17:33 -07:00
net Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2015-09-26 06:01:33 -04:00
nfc mei: bus: use mei_cldev_ prefix for the API functions 2015-09-20 19:31:10 -07:00
ntb NTB: Fix range check on memory window index 2015-09-07 15:27:12 -04:00
nubus
nvdimm pmem: add proper fencing to pmem_rw_page() 2015-09-17 11:49:28 -04:00
nvmem nvmem: rockchip_efuse_regmap_config can be static 2015-10-04 12:08:14 +01:00
of Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2015-09-26 06:01:33 -04:00
oprofile
parisc PCI: Revert "PCI: Call pci_read_bridge_bases() from core instead of arch code" 2015-09-15 13:18:04 -05:00
parport
pci PCI updates for v4.3: 2015-09-25 11:16:53 -07:00
pcmcia pcmcia: soc_common: remove skt_dev_info's clk pointer 2015-09-03 16:01:03 +01:00
perf
phy This is the bulk of GPIO changes for the v4.3 kernel cycle: 2015-09-04 10:07:45 -07:00
pinctrl Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2015-09-18 08:11:42 -07:00
platform platform-drivers-x86 for 4.3-2 2015-09-17 21:41:02 -07:00
pnp
power power supply and reset fixes for the v4.3 series 2015-09-17 12:25:42 -07:00
powercap powercap / RAPL: disable the 2nd power limit properly 2015-08-29 01:46:40 +02:00
pps
ps3
ptp
pwm pwm: Changes for v4.3-rc1 2015-09-09 10:55:32 -07:00
rapidio
ras
regulator Merge commit 'b8c93646fd5c' into omap-for-v4.3/fixes 2015-09-24 16:23:20 -07:00
remoteproc
reset reset: ath79: Fix missing spin_lock_init 2015-09-01 14:48:40 +02:00
rpmsg
rtc rtc: abx80x: fix RTC write bit 2015-09-05 19:37:31 +02:00
s390 virtio: fixes on top of 4.3-rc1 2015-09-18 09:28:20 -07:00
sbus
scsi Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending 2015-09-11 19:00:42 -07:00
sfi
sh SH Drivers Updates for v4.3 2015-09-21 12:02:27 -07:00
sn
soc genirq: Remove irq argument from irq flow handlers 2015-09-16 15:47:51 +02:00
spi Merge remote-tracking branches 'spi/fix/spidev' and 'spi/fix/xtfpga' into spi-linus 2015-09-22 09:48:41 -07:00
spmi spmi: Auto-populate driver.owner in spmi_driver_register() 2015-09-20 19:32:02 -07:00
ssb
staging Staging driver fixes for 4.3-rc3 2015-09-26 20:56:50 -04:00
target iscsi-target: Avoid OFMarker + IFMarker negotiation 2015-09-24 23:24:46 -07:00
tc
thermal thermal: power_allocator: exit early if there are no cooling devices 2015-09-20 15:37:16 +08:00
thunderbolt thunderbolt: Allow loading of module on recent Apple MacBooks with thunderbolt 2 controller 2015-09-20 15:20:11 -07:00
tty tty: serial: Add missing module license for 8250_base.ko 2015-09-22 09:09:15 -07:00
uio uio: fix false positive __might_sleep warning splat 2015-10-04 12:32:25 +01:00
usb USB: whiteheat: fix potential null-deref at probe 2015-09-23 12:15:19 -07:00
uwb
vfio
vhost virtio: fixes on top of 4.3-rc1 2015-09-18 09:28:20 -07:00
video Merge branch 'akpm' (patches from Andrew) 2015-09-10 18:19:42 -07:00
virt
virtio virtio_balloon: do not change memory amount visible via /proc/meminfo 2015-09-08 13:32:11 +03:00
vlynq
vme
w1 Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2015-09-01 18:46:42 -07:00
watchdog Merge git://www.linux-watchdog.org/linux-watchdog 2015-09-11 15:12:59 -07:00
xen Merge branch 'akpm' (patches from Andrew) 2015-09-10 18:19:42 -07:00
zorro
Kconfig Merge branch 'for-linus' of git://ftp.arm.linux.org.uk/~rmk/linux-arm 2015-09-03 16:27:01 -07:00
Makefile This is the bulk of pin control changes for the v4.3 development 2015-09-04 10:22:09 -07:00