02 May, 2016
1 commit
-
My static checker complains that "ret" could be uninitialized at the
end, which is true but it's more likely that it would be set to zero.Signed-off-by: Dan Carpenter
Signed-off-by: Greg Kroah-Hartman
04 Oct, 2015
2 commits
-
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 [] 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] [] dump_stack+0x4c/0x65
[ 5174.890938] [] warn_slowpath_common+0x86/0xc0
[ 5174.891388] [] warn_slowpath_fmt+0x46/0x50
[ 5174.891808] [] ? uio_read+0x91/0x170 [uio]
[ 5174.892237] [] ? uio_read+0x91/0x170 [uio]
[ 5174.892653] [] __might_sleep+0x7d/0x90
[ 5174.893055] [] __might_fault+0x43/0xa0
[ 5174.893448] [] ? schedule+0x3e/0x90
[ 5174.893820] [] uio_read+0x132/0x170 [uio]
[ 5174.894240] [] ? wake_up_q+0x70/0x70
[ 5174.894620] [] __vfs_read+0x28/0xe0
[ 5174.894993] [] ? security_file_permission+0xa3/0xc0
[ 5174.895541] [] ? rw_verify_area+0x4f/0xf0
[ 5174.896006] [] vfs_read+0x8a/0x140
[ 5174.896391] [] ? __schedule+0x425/0xcc0
[ 5174.896788] [] SyS_read+0x49/0xb0The 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
Signed-off-by: Michal Hocko
Signed-off-by: Greg Kroah-Hartman -
This platform driver has a OF device ID table but the OF module
alias information is not created so module autoloading won't work.Signed-off-by: Luis de Bethencourt
Signed-off-by: Greg Kroah-Hartman
06 Aug, 2015
3 commits
-
If NO_DMA=y:
ERROR: "dma_alloc_coherent" [drivers/uio/uio_pruss.ko] undefined!
ERROR: "dma_free_coherent" [drivers/uio/uio_pruss.ko] undefined!Add a dependency on HAS_DMA to fix this.
Signed-off-by: Geert Uytterhoeven
Signed-off-by: Greg Kroah-Hartman -
Use module_platform_driver for drivers whose init and exit functions
only register and unregister, respectively.A simplified version of the Coccinelle semantic patch that performs
this transformation is as follows:@a@
identifier f, x;
@@
-static f(...) { return platform_driver_register(&x); }@b depends on a@
identifier e, a.x;
@@
-static e(...) { platform_driver_unregister(&x); }@c depends on a && b@
identifier a.f;
declarer name module_init;
@@
-module_init(f);@d depends on a && b && c@
identifier b.e, a.x;
declarer name module_exit;
declarer name module_platform_driver;
@@
-module_exit(e);
+module_platform_driver(x);Signed-off-by: Vaishali Thakkar
Signed-off-by: Greg Kroah-Hartman -
Destroy uio_idr on module exit, reclaiming the allocated memory.
This was detected by the following semantic patch (written by Luis Rodriguez
)@ defines_module_init @
declarer name module_init, module_exit;
declarer name DEFINE_IDR;
identifier init;
@@module_init(init);
@ defines_module_exit @
identifier exit;
@@module_exit(exit);
@ declares_idr depends on defines_module_init && defines_module_exit @
identifier idr;
@@DEFINE_IDR(idr);
@ on_exit_calls_destroy depends on declares_idr && defines_module_exit @
identifier declares_idr.idr, defines_module_exit.exit;
@@exit(void)
{
...
idr_destroy(&idr);
...
}@ missing_module_idr_destroy depends on declares_idr && defines_module_exit && !on_exit_calls_destroy @
identifier declares_idr.idr, defines_module_exit.exit;
@@exit(void)
{
...
+idr_destroy(&idr);
}Signed-off-by: Johannes Thumshirn
Signed-off-by: Greg Kroah-Hartman
13 Jun, 2015
3 commits
-
mach-dependant stuff has been removed by
2eb2478d471e ("uio: uio_pruss: replace private SRAM API with genalloc")There is no need to keep
depends on ARCH_DAVINCI_DA850Signed-off-by: Matwey V. Kornilov
Signed-off-by: Greg Kroah-Hartman -
uio_pruss uses io memory, that should be explicitly depend on it
Signed-off-by: Matwey V. Kornilov
Signed-off-by: Greg Kroah-Hartman -
uio_pruss references SZ_16K and SZ_256K defines, but linux/sizes.h is not included.
Signed-off-by: Matwey V. Kornilov
Signed-off-by: Greg Kroah-Hartman
25 May, 2015
1 commit
-
UIO base driver should only free_irq that it has requested.
UIO supports drivers without interrupts (irq == 0) or custom handlers.This fixes warnings like:
WARNING: CPU: 1 PID: 5478 at kernel/irq/manage.c:1244 __free_irq+0xa9/0x1e0()
Trying to free already-free IRQ 0Signed-off-by: Stephen Hemminger
Signed-off-by: Greg Kroah-Hartman
03 Apr, 2015
1 commit
-
This reverts commit 4d8beff2ae07fad85d723b4cdf704b05f0ed4794.
It causes build warnings, and it's incorrect as we do write to this
structure.Reported-by: Stephen Rothwell
Cc: Fabian Frederick
Signed-off-by: Greg Kroah-Hartman
25 Mar, 2015
1 commit
-
of_device_id is always used as const.
(See driver.of_match_table and open firmware functions)Signed-off-by: Fabian Frederick
Signed-off-by: Greg Kroah-Hartman
20 Mar, 2015
1 commit
-
Separate irq request/free from the device lifecycle.
After device unregister the parent module can call pci_disable_msi.
>From the PCI MSI how to:"Before calling this function, a device driver must always call free_irq()
on any interrupt for which it previously called request_irq().
Failure to do so results in a BUG_ON(), leaving the device with
MSI enabled and thus leaking its vector."So we need to separately free the irq at unregister to allow the device
to be kept around in the case of it still having open FDs.Signed-off-by: Brian Russell
Signed-off-by: Greg Kroah-Hartman
12 Jan, 2015
2 commits
-
This driver provides UIO access to memory of a peripheral connected
to the Freescale enhanced local bus controller (eLBC) interface
using the general purpose chip-select mode (GPCM).Signed-off-by: John Ogness
Signed-off-by: Greg Kroah-Hartman -
If uio_register_device() fails in probe(), it breaks off initialization,
deallocates all resources, but returns zero.The patch adds proper error code propagation.
Found by Linux Driver Verification project (linuxtesting.org).
Signed-off-by: Alexey Khoroshilov
Acked-by: Michael S. Tsirkin
Signed-off-by: Greg Kroah-Hartman
15 Dec, 2014
1 commit
-
Pull char/misc driver updates from Greg KH:
"Here's the big char/misc driver update for 3.19-rc1Lots of little things all over the place in different drivers, and a
new subsystem, "coresight" has been added. Full details are in the
shortlog"* tag 'char-misc-3.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (73 commits)
parport: parport_pc, do not remove parent devices early
spmi: Remove shutdown/suspend/resume kernel-doc
carma-fpga-program: drop videobuf dependency
carma-fpga: drop videobuf dependency
carma-fpga-program.c: fix compile errors
i8k: Fix temperature bug handling in i8k_get_temp()
cxl: Name interrupts in /proc/interrupt
CXL: Return error to PSL if IRQ demultiplexing fails & print clearer warning
coresight-replicator: remove .owner field for driver
coresight: fixed comments in coresight.h
coresight: fix typo in comment in coresight-priv.h
coresight: bindings for coresight drivers
coresight: Adding ABI documentation
w1: support auto-load of w1_bq27000 module.
w1: avoid potential u16 overflow
cn: verify msg->len before making callback
mei: export fw status registers through sysfs
mei: read and print all six FW status registers
mei: txe: add cherrytrail device id
mei: kill cached host and me csr values
...
08 Nov, 2014
1 commit
-
This is a completion to 27a90700a4275c5178b883b65927affdafa5185c
The size field is also increased to allow values larger than 32 bits
on platforms that have more than 32 bit physical addresses.Signed-off-by: Cristian Stoica
Signed-off-by: Greg Kroah-Hartman
04 Nov, 2014
1 commit
-
…l/git/wsa/linux into driver-core-next
Remove all .owner fields from platform drivers
20 Oct, 2014
1 commit
-
A platform_driver does not need to set an owner, it will be populated by the
driver core.Signed-off-by: Wolfram Sang
03 Oct, 2014
1 commit
-
In order to prevent a O(n) search of the filesystem to link up its uio
node with its target configuration, TCMU needs to know the minor number
that UIO assigned. Expose the definition of this struct so TCMU can
access this field.Signed-off-by: Andy Grover
Signed-off-by: Nicholas Bellinger
14 Jul, 2014
1 commit
-
This resolves a number of merge issues with changes in this tree and
Linus's tree at the same time.Signed-off-by: Greg Kroah-Hartman
10 Jul, 2014
1 commit
-
Get rid of the repeating &dev->dev constructs and prevent introducing
new ones.Signed-off-by: Andre Heider
Signed-off-by: Greg Kroah-Hartman
18 Jun, 2014
1 commit
-
This reverts commit ddb09754e6c7239e302c7b675df9bbd415f8de5d.
Linus objected to this originally, I can see why it might be needed, but
given that no one spoke up defending this patch, I'm going to revert it.If you have hardware that requires this change, please speak up in the
future and defend the patch.Reported-by: Linus Torvalds
Cc: Bin Wang
Cc: Nobuhiro Iwamatsu
Cc: Norbert Ciosek
Cc: stable
Signed-off-by: Greg Kroah-Hartman
28 May, 2014
2 commits
-
the vma range size is always page size aligned in mmap, while the
real io space range may not be page aligned, thus leading to range
check failure in the uio_mmap_physical().for example, in a case of io range size "mem->size == 1KB", and we
have (vma->vm_end - vma->vm_start) == 4KB, due to "len" is aligned
to page size in do_mmap_pgoff().now fix this issue by align mem->size to page size in the check.
Signed-off-by: Bin Wang
Signed-off-by: Nobuhiro Iwamatsu
Cc: stable
Signed-off-by: Greg Kroah-Hartman -
When platform_get_irq() is failed after "priv" allocated,
it need to free "priv". But the label of bad0 doesn't try
to free about "priv". So this patch changes that lable to "bad1".
But "bad1" has pm_runtime_disable() call, this function should
be called when uio_register_device() is failed. So it is moved
into handling error for uio_register_device().Signed-off-by: Daeseok Youn
Signed-off-by: Hans J. Koch
Signed-off-by: Greg Kroah-Hartman
21 Dec, 2013
1 commit
-
Commit e6789cd3dfb553077606ccafeb05e0043f072481 (uio: Simplify uio error
path by using devres functions) converted uio to use devm_request_irq().
This introduced a change in behaviour since the IRQ is associated with
the parent device instead of the created UIO device. The IRQ will remain
active after uio_unregister_device() is called, and some drivers will
crash because of this. The patch fixes this.Signed-off-by: Aaro Koskinen
Cc: stable # 3.13
Signed-off-by: Greg Kroah-Hartman
17 Dec, 2013
1 commit
-
We want these fixes in here.
09 Dec, 2013
1 commit
-
Don't use DEFINE_PCI_DEVICE_TABLE macro, because this macro
is not preferred.Signed-off-by: Jingoo Han
Signed-off-by: Greg Kroah-Hartman
03 Dec, 2013
1 commit
-
In commit 7314e613d5ff ("Fix a few incorrectly checked
[io_]remap_pfn_range() calls") the uio driver started more properly
checking the passed-in user mapping arguments against the size of the
actual uio driver data.That in turn exposed that some driver authors apparently didn't realize
that mmap can only work on a page granularity, and had tried to use it
with smaller mappings, with the new size check catching that out.So since it's not just the user mmap() arguments that can be confused,
make the uio mmap code also verify that the uio driver has the memory
allocated at page boundaries in order for mmap to work. If the device
memory isn't properly aligned, we return[ENODEV]
The fildes argument refers to a file whose type is not supported by mmap().as per the open group documentation on mmap.
Reported-by: Holger Brunck
Acked-by: Greg KH
Signed-off-by: Linus Torvalds
13 Nov, 2013
1 commit
-
Since gen_pool_dma_alloc() is introduced, we implement it to simplify code.
Signed-off-by: Nicolin Chen
Cc: "Hans J. Koch"
Cc: Greg Kroah-Hartman
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
07 Nov, 2013
1 commit
-
Pull char/misc patches from Greg KH:
"Here's the big char/misc driver patchset for 3.13-rc1.Lots of stuff in here, including some new drivers for Intel's "MIC"
co-processor devices, and a new eeprom driver. Other things include
the driver attribute cleanups, extcon driver updates, hyperv updates,
and a raft of other miscellaneous driver fixes.All of these have been in linux-next for a while"
* tag 'char-misc-3.13-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (121 commits)
misc: mic: Fixes for randconfig build errors and warnings.
tifm: fix error return code in tifm_7xx1_probe()
w1-gpio: Use devm_* functions
w1-gpio: Detect of_gpio_error for first gpio
uio: Pass pointers to virt_to_page(), not integers
uio: fix memory leak
misc/at24: avoid infinite loop on write()
misc/93xx46: avoid infinite loop on write()
misc: atmel_pwm: add deferred-probing support
mei: wd: host_init propagate error codes from called functions
mei: replace stray pr_debug with dev_dbg
mei: bus: propagate error code returned by mei_me_cl_by_id
mei: mei_cl_link remove duplicated check for open_handle_count
mei: print correct device state during unexpected reset
mei: nfc: fix memory leak in error path
lkdtm: add tests for additional page permissions
lkdtm: adjust recursion size to avoid warnings
lkdtm: isolate stack corruption test
mei: move host_clients_map cleanup to device init
mei: me: downgrade two errors to debug level
...
30 Oct, 2013
3 commits
-
Most architectures define virt_to_page() as a macro that casts its
argument such that an argument of type unsigned long will be accepted
without complaint. However, the proper type is void *, and passing
unsigned long results in a warning on MIPS.Compile-tested only.
Signed-off-by: Ben Hutchings
Signed-off-by: Greg Kroah-Hartman -
we have to call kobject_put() to clean up the kobject after function
kobject_init(), kobject_add(), or kobject_uevent() is called.Signed-off-by: Cong Ding
Acked-by: Sebastian Andrzej Siewior
Signed-off-by: Greg Kroah-Hartman -
Nico Golde reports a few straggling uses of [io_]remap_pfn_range() that
really should use the vm_iomap_memory() helper. This trivially converts
two of them to the helper, and comments about why the third one really
needs to continue to use remap_pfn_range(), and adds the missing size
check.Reported-by: Nico Golde
Cc: stable@kernel.org
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org.
26 Sep, 2013
6 commits
-
The driver core clears the driver data to NULL after device_release
or on probe failure. Thus, it is not needed to manually clear the
device driver data to NULL.Signed-off-by: Jingoo Han
Signed-off-by: Greg Kroah-Hartman -
The driver core clears the driver data to NULL after device_release
or on probe failure. Thus, it is not needed to manually clear the
device driver data to NULL.Signed-off-by: Jingoo Han
Signed-off-by: Greg Kroah-Hartman -
The driver core clears the driver data to NULL after device_release
or on probe failure. Thus, it is not needed to manually clear the
device driver data to NULL.Signed-off-by: Jingoo Han
Signed-off-by: Greg Kroah-Hartman -
The driver core clears the driver data to NULL after device_release
or on probe failure. Thus, it is not needed to manually clear the
device driver data to NULL.Signed-off-by: Jingoo Han
Signed-off-by: Greg Kroah-Hartman -
The driver core clears the driver data to NULL after device_release
or on probe failure. Thus, it is not needed to manually clear the
device driver data to NULL.Signed-off-by: Jingoo Han
Signed-off-by: Greg Kroah-Hartman -
Using devres functions simplify driver error path.
- Use devm_kzalloc
- Use devm_request_irqSigned-off-by: Michal Simek
Reviewed-by: Pavel Machek
Signed-off-by: Greg Kroah-Hartman