1. 06 Jan, 2010 3 commits
    • Adam Jackson's avatar
      Input: evdev - be less aggressive about sending SIGIO notifies · 30a589fd
      Adam Jackson authored
      When using realtime signals, we'll enqueue one signal for every event.
      This is unfortunate, because (for example) keyboard presses are three
      events: key, msc scancode, and syn.  They'll be enqueued fast enough in
      kernel space that all three events will be ready to read by the time
      userspace runs, so the first invocation of the signal handler will read
      all three events, but then the second two invocations still have to run
      to do no work.
      
      Instead, only send the SIGIO notification on syn events.  This is a
      slight abuse of SIGIO semantics, in principle it ought to fire as soon
      as any events are readable.  But it matches evdev semantics, which is
      more important since SIGIO is rather vaguely defined to begin with.
      Signed-off-by: default avatarAdam Jackson <ajax@redhat.com>
      Signed-off-by: default avatarDmitry Torokhov <dtor@mail.ru>
      30a589fd
    • Dmitry Torokhov's avatar
      Input: atkbd - fix canceling event_work in disconnect · 0ef7a26a
      Dmitry Torokhov authored
      We need to first unregister input device and only then cancel event work
      since events can arrive (and cause event work to get scheduled again)
      until input_unregister_device() returns.
      Signed-off-by: default avatarDmitry Torokhov <dtor@mail.ru>
      0ef7a26a
    • Eric W. Biederman's avatar
      Input: serio - fix potential deadlock when unbinding drivers · 59b01513
      Eric W. Biederman authored
      sysfs_remove_group() waits for sysfs attributes to be removed, therefore
      we do not need to worry about driver-specific attributes being accessed
      after driver has been detached from the device. In fact, attempts to take
      serio->drv_mutex in attribute methods may lead to the following deadlock:
      
                                                sysfs_read_file()
                                                  fill_read_buffer()
                                                    sysfs_get_active_two()
                                                      psmouse_attr_show_helper()
                                                        serio_pin_driver()
      serio_disconnect_driver()
        mutex_lock(&serio->drv_mutex);
                                      <-------->        mutex_lock(&serio_drv_mutex);
          psmouse_disconnect()
            sysfs_remove_group(... psmouse_attr_group);
              ....
              sysfs_deactivate();
                wait_for_completion();
      
      Fix this by removing calls to serio_[un]pin_driver() and functions themselves
      and using driver-private mutexes to serialize access to attribute's set()
      methods that may change device state.
      Signed-off-by: default avatarEric W. Biederman <ebiederm@xmission.com>
      Signed-off-by: default avatarDmitry Torokhov <dtor@mail.ru>
      59b01513
  2. 02 Jan, 2010 1 commit
  3. 30 Dec, 2009 6 commits
  4. 25 Dec, 2009 7 commits
  5. 16 Dec, 2009 2 commits
  6. 15 Dec, 2009 11 commits
  7. 14 Dec, 2009 10 commits
    • Linus Torvalds's avatar
      Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-udf-2.6 · 3ea6b3d0
      Linus Torvalds authored
      * 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-udf-2.6:
        udf: Avoid IO in udf_clear_inode
        udf: Try harder when looking for VAT inode
        udf: Fix compilation with UDFFS_DEBUG enabled
      3ea6b3d0
    • Jan Kara's avatar
      udf: Avoid IO in udf_clear_inode · 2c948b3f
      Jan Kara authored
      It is not very good to do IO in udf_clear_inode. First, VFS does not really
      expect inode to become dirty there and thus we have to write it ourselves,
      second, memory reclaim gets blocked waiting for IO when it does not really
      expect it, third, the IO pattern (e.g. on umount) resulting from writes in
      udf_clear_inode is bad and it slows down writing a lot.
      
      The reason why UDF needed to do IO in udf_clear_inode is that UDF standard
      mandates extent length to exactly match inode size. But when we allocate
      extents to a file or directory, we don't really know what exactly the final
      file size will be and thus temporarily set it to block boundary and later
      truncate it to exact length in udf_clear_inode. Now, this is changed to
      truncate to final file size in udf_release_file for regular files. For
      directories and symlinks, we do the truncation at the moment when learn
      what the final file size will be.
      Signed-off-by: default avatarJan Kara <jack@suse.cz>
      2c948b3f
    • Jan Kara's avatar
      udf: Try harder when looking for VAT inode · e971b0b9
      Jan Kara authored
      Some disks do not contain VAT inode in the last recorded block as required
      by the standard but a few blocks earlier (or the number of recorded blocks
      is wrong). So look for the VAT inode a bit before the end of the media.
      Signed-off-by: default avatarJan Kara <jack@suse.cz>
      e971b0b9
    • Jan Kara's avatar
      udf: Fix compilation with UDFFS_DEBUG enabled · 1fefd086
      Jan Kara authored
      Signed-off-by: default avatarJan Kara <jack@suse.cz>
      1fefd086
    • Linus Torvalds's avatar
      Merge branch 'x86-fixes-for-linus' of... · 75b08038
      Linus Torvalds authored
      Merge branch 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
      
      * 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
        x86, mce: Clean up thermal init by introducing intel_thermal_supported()
        x86, mce: Thermal monitoring depends on APIC being enabled
        x86: Gart: fix breakage due to IOMMU initialization cleanup
        x86: Move swiotlb initialization before dma32_free_bootmem
        x86: Fix build warning in arch/x86/mm/mmio-mod.c
        x86: Remove usedac in feature-removal-schedule.txt
        x86: Fix duplicated UV BAU interrupt vector
        nvram: Fix write beyond end condition; prove to gcc copy is safe
        mm: Adjust do_pages_stat() so gcc can see copy_from_user() is safe
        x86: Limit the number of processor bootup messages
        x86: Remove enabling x2apic message for every CPU
        doc: Add documentation for bootloader_{type,version}
        x86, msr: Add support for non-contiguous cpumasks
        x86: Use find_e820() instead of hard coded trampoline address
        x86, AMD: Fix stale cpuid4_info shared_map data in shared_cpu_map cpumasks
      
      Trivial percpu-naming-introduced conflicts in arch/x86/kernel/cpu/intel_cacheinfo.c
      75b08038
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/brodo/pcmcia-2.6 · fb1beb29
      Linus Torvalds authored
      * git://git.kernel.org/pub/scm/linux/kernel/git/brodo/pcmcia-2.6:
        pcmcia: CodingStyle fixes
        pcmcia: remove unused IRQ_FIRST_SHARED
      fb1beb29
    • Linus Torvalds's avatar
      Merge branch 'next-spi' of git://git.secretlab.ca/git/linux-2.6 · 478e4e9d
      Linus Torvalds authored
      * 'next-spi' of git://git.secretlab.ca/git/linux-2.6: (23 commits)
        spi: fix probe/remove section markings
        Add OMAP spi100k driver
        spi-imx: don't access struct device directly but use dev_get_platdata
        spi-imx: Add mx25 support
        spi-imx: use positive logic to distinguish cpu variants
        spi-imx: correct check for platform_get_irq failing
        ARM: NUC900: Add spi driver support for nuc900
        spi: SuperH MSIOF SPI Master driver V2
        spi: fix spidev compilation failure when VERBOSE is defined
        spi/au1550_spi: fix setupxfer not to override cfg with zeros
        spi/mpc8xxx: don't use __exit_p to wrap plat_mpc8xxx_spi_remove
        spi/i.MX: fix broken error handling for gpio_request
        spi/i.mx: drain MXC SPI transfer buffer when probing device
        MAINTAINERS: add SPI co-maintainer.
        spi/xilinx_spi: fix incorrect casting
        spi/mpc52xx-spi: minor cleanups
        xilinx_spi: add a platform driver using the xilinx_spi common module.
        xilinx_spi: add support for the DS570 IP.
        xilinx_spi: Switch to iomem functions and support little endian.
        xilinx_spi: Split into of driver and generic part.
        ...
      478e4e9d
    • Linus Torvalds's avatar
      Merge branch 'perf-fixes-for-linus' of... · 2205afa7
      Linus Torvalds authored
      Merge branch 'perf-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
      
      * 'perf-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
        perf sched: Fix build failure on sparc
        perf bench: Add "all" pseudo subsystem and "all" pseudo suite
        perf tools: Introduce perf_session class
        perf symbols: Ditch dso->find_symbol
        perf symbols: Allow lookups by symbol name too
        perf symbols: Add missing "Variables" entry to map_type__name
        perf symbols: Add support for 'variable' symtabs
        perf symbols: Introduce ELF counterparts to symbol_type__is_a
        perf symbols: Introduce symbol_type__is_a
        perf symbols: Rename kthreads to kmaps, using another abstraction for it
        perf tools: Allow building for ARM
        hw-breakpoints: Handle bad modify_user_hw_breakpoint off-case return value
        perf tools: Allow cross compiling
        tracing, slab: Fix no callsite ifndef CONFIG_KMEMTRACE
        tracing, slab: Define kmem_cache_alloc_notrace ifdef CONFIG_TRACING
      
      Trivial conflict due to different fixes to modify_user_hw_breakpoint()
      in include/linux/hw_breakpoint.h
      2205afa7
    • David Howells's avatar
      PCI: Global variable decls must match the defs in section attributes · 491424c0
      David Howells authored
      Global variable declarations must match the definitions in section attributes
      as the compiler is at liberty to vary the method it uses to access a variable,
      depending on the section it is in.
      
      When building the FRV arch, I now see:
      
        drivers/built-in.o: In function `pci_apply_final_quirks':
        drivers/pci/quirks.c:2606: relocation truncated to fit: R_FRV_GPREL12 against symbol `pci_dfl_cache_line_size' defined in .devinit.data section in drivers/built-in.o
        drivers/pci/quirks.c:2623: relocation truncated to fit: R_FRV_GPREL12 against symbol `pci_dfl_cache_line_size' defined in .devinit.data section in drivers/built-in.o
        drivers/pci/quirks.c:2630: relocation truncated to fit: R_FRV_GPREL12 against symbol `pci_dfl_cache_line_size' defined in .devinit.data section in drivers/built-in.o
      
      because the declaration of pci_dfl_cache_line_size in linux/pci.h does not
      match the definition in drivers/pci/pci.c.
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      491424c0
    • David Howells's avatar
      FRV: Fix no-hardware-breakpoint case · 5185fb06
      David Howells authored
      If there is no hardware breakpoint support, modify_user_hw_breakpoint()
      tries to return a NULL pointer through as an 'int' return value:
      
        In file included from kernel/exit.c:53:
        include/linux/hw_breakpoint.h: In function 'modify_user_hw_breakpoint':
        include/linux/hw_breakpoint.h:96: warning: return makes integer from pointer without a cast
      
      Return 0 instead.
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      5185fb06