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

    Aaro Koskinen
     

17 Dec, 2013

1 commit


09 Dec, 2013

1 commit


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

    Linus Torvalds
     

13 Nov, 2013

1 commit


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
    ...

    Linus Torvalds
     

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

    Ben Hutchings
     
  • 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

    Cong Ding
     
  • 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.

    Linus Torvalds
     

26 Sep, 2013

7 commits


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
    ...

    Linus Torvalds
     

31 Aug, 2013

5 commits


28 Aug, 2013

1 commit


13 Aug, 2013

2 commits


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

    Michal Simek
     

25 Jul, 2013

1 commit


04 Jul, 2013

1 commit


26 Jun, 2013

1 commit


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

    Vitalii Demianets
     
  • 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

    Sachin Kamat
     

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

    Pavel Machek
     
  • 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

    Pavel Machek
     

07 Jun, 2013

1 commit


27 May, 2013

1 commit


22 May, 2013

5 commits