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
7 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 -
Signed-off-by: Fengguang Wu
Signed-off-by: Rostislav Lisovy
Signed-off-by: Greg Kroah-Hartman
04 Sep, 2013
1 commit
-
Pull driver core patches from Greg KH:
"Here's the big driver core pull request for 3.12-rc1.Lots of tiny changes here fixing up the way sysfs attributes are
created, to try to make drivers simpler, and fix a whole class race
conditions with creations of device attributes after the device was
announced to userspace.All the various pieces are acked by the different subsystem
maintainers"* tag 'driver-core-3.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (119 commits)
firmware loader: fix pending_fw_head list corruption
drivers/base/memory.c: introduce help macro to_memory_block
dynamic debug: line queries failing due to uninitialized local variable
sysfs: sysfs_create_groups returns a value.
debugfs: provide debugfs_create_x64() when disabled
rbd: convert bus code to use bus_groups
firmware: dcdbas: use binary attribute groups
sysfs: add sysfs_create/remove_groups for when SYSFS is not enabled
driver core: add #include to core files.
HID: convert bus code to use dev_groups
Input: serio: convert bus code to use drv_groups
Input: gameport: convert bus code to use drv_groups
driver core: firmware: use __ATTR_RW()
driver core: core: use DEVICE_ATTR_RO
driver core: bus: use DRIVER_ATTR_WO()
driver core: create write-only attribute macros for devices and drivers
sysfs: create __ATTR_WO()
driver-core: platform: convert bus code to use dev_groups
workqueue: convert bus code to use dev_groups
MEI: convert bus code to use dev_groups
...
31 Aug, 2013
5 commits
-
The User space I/O drivers are useful, only when user space meaningful
(MMU must be enabled).So need let it depend on MMU, or can not pass compiling, the related
error (allmodconfig for H8300):CC [M] drivers/uio/uio.o
drivers/uio/uio.c: In function 'uio_mmap_physical':
drivers/uio/uio.c:650:2: error: implicit declaration of function 'pgprot_noncached' [-Werror=implicit-function-declaration]
drivers/uio/uio.c:650:20: error: incompatible types when assigning to type 'pgprot_t' from type 'int'Signed-off-by: Chen Gang
Signed-off-by: Greg Kroah-Hartman -
Signed-off-by: Rostislav Lisovy
Signed-off-by: Greg Kroah-Hartman -
Use the wrapper function for retrieving the platform data instead of
accessing dev->platform_data directly. This is a cosmetic change
to make the code simpler and enhance the readability.Signed-off-by: Jingoo Han
Signed-off-by: Greg Kroah-Hartman -
Use the wrapper function for retrieving the platform data instead of
accessing dev->platform_data directly. This is a cosmetic change
to make the code simpler and enhance the readability.Signed-off-by: Jingoo Han
Signed-off-by: Greg Kroah-Hartman -
Use the wrapper function for retrieving the platform data instead of
accessing dev->platform_data directly. This is a cosmetic change
to make the code simpler and enhance the readability.Signed-off-by: Jingoo Han
Signed-off-by: Greg Kroah-Hartman
28 Aug, 2013
1 commit
-
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
13 Aug, 2013
2 commits
-
vma_count is used write-only and so fails to be useful. So remove it.
Signed-off-by: Uwe Kleine-König
Signed-off-by: Greg Kroah-Hartman -
This makes it possible to let gdb access mappings of the process that is
being debugged.uio_mmap_logical was moved and uio_vm_ops renamed to group related code
and differentiate to new stuff.Signed-off-by: Uwe Kleine-König
Signed-off-by: Greg Kroah-Hartman
27 Jul, 2013
1 commit
-
The patch "UIO: fix uio_pdrv_genirq with device tree but no interrupt"
(sha1: e3a3c3a205554e564751cd9c0276b2af813d7a92)
add support to use this driver with no interrupts.
uio_pdrv_genirq also supports device-tree binding
which is not available in uio_pdrv.That's why this uio_pdrv driver can be just removed.
Signed-off-by: Michal Simek
Reviewed-by: Vitalii Demianets
Reviewed-by: Pavel Machek
Signed-off-by: Greg Kroah-Hartman
25 Jul, 2013
1 commit
-
The dev_attrs field of struct class is going away soon, dev_groups
should be used instead. This converts the uio class code to use the
correct field.Cc: Hans J. Koch
Signed-off-by: Greg Kroah-Hartman
04 Jul, 2013
1 commit
-
(*->vm_end - *->vm_start) >> PAGE_SHIFT operation is implemented
as a inline funcion vma_pages() in linux/mm.h, so using it.Signed-off-by: Libin
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
26 Jun, 2013
1 commit
-
This eliminates having an #ifdef returning NULL for the case
when OF is disabled.Signed-off-by: Sachin Kamat
Signed-off-by: Greg Kroah-Hartman
25 Jun, 2013
2 commits
-
In a SMP case there was a race condition issue between
uio_pdrv_genirq_irqcontrol() running on one CPU and irq handler on
another CPU. Fix it by spin_locking shared resources access inside irq
handler. Also:
- Change disable_irq to disable_irq_nosync to avoid deadlock, because
disable_irq waits for the completion of the irq handler;
- Change atomic bit-manipulation routines to their non-atomic
counterparts as we already are guarding the code by spinlock.Signed-off-by: Vitalii Demianets
Reviewed-by: Pavel Machek
Signed-off-by: Greg Kroah-Hartman -
This eliminates having an #ifdef returning NULL for the case
when OF is disabled.Signed-off-by: Sachin Kamat
Acked-by: Damian Hobson-Garcia
Signed-off-by: Greg Kroah-Hartman
19 Jun, 2013
2 commits
-
If device is initialized from device tree, but has no interrupt
assigned, uio will still try to request and interrupt old way,
fails, and fails registration.This is wrong; don't try initializing irq using platform data if
device tree is available.Simplified code based on suggestion by Grant Likely.
Fixed memory leak in "irq can not be registered" error path.
Signed-off-by: Pavel Machek
Reported-by: Detlev Zundel
Signed-off-by: Greg Kroah-Hartman -
This adds ability to bind uio driver to given open firmware device
using command line option. Thus, userspace driver can be developed and
used without modifying the kernel.Signed-off-by: Pavel Machek
Tested-by: Detlev Zundel
Signed-off-by: Greg Kroah-Hartman
07 Jun, 2013
1 commit
-
In function pruss_probe we free gdev and try to use
it on the next line. I have moved the dereference to
above the kfree of gdev.Signed-off-by: Emil Goode
Signed-off-by: Greg Kroah-Hartman
27 May, 2013
1 commit
-
We want the changes in here.
Signed-off-by: Greg Kroah-Hartman
22 May, 2013
5 commits
-
Removing some boilerplate by using module_pci_driver instead of calling
register and unregister in the otherwise empty init/exit functions.It removes a pr_info showing some details about the driver, but
these infos can also be retrieved by using modinfo.The name of the pci_driver struct had to be changed in order to prevent a
build failure.Signed-off-by: Peter Huewe
Signed-off-by: Greg Kroah-Hartman -
If NO_DMA=y:
drivers/built-in.o: In function `uio_dmem_genirq_release':
drivers/uio/uio_dmem_genirq.c:95: undefined reference to `dma_free_coherent'
drivers/built-in.o: In function `uio_dmem_genirq_open':
drivers/uio/uio_dmem_genirq.c:61: undefined reference to `dma_alloc_coherent'Signed-off-by: Geert Uytterhoeven
Cc: Hans J. Koch
Cc: Greg Kroah-Hartman
Signed-off-by: Greg Kroah-Hartman -
Removing some boilerplate by using module_pci_driver instead of calling
register and unregister in the otherwise empty init/exit functions.Signed-off-by: Peter Huewe
Signed-off-by: Greg Kroah-Hartman -
Removing some boilerplate by using module_pci_driver instead of calling
register and unregister in the otherwise empty init/exit functions.Signed-off-by: Peter Huewe
Signed-off-by: Greg Kroah-Hartman -
Removing some boilerplate by using module_pci_driver instead of calling
register and unregister in the otherwise empty init/exit functions.Signed-off-by: Peter Huewe
Signed-off-by: Greg Kroah-Hartman