1. 01 7月, 2009 16 次提交
    • D
      spi: bitbang bugfix in message setup · 529ba0d9
      David Brownell 提交于
      Bugfix to spi_bitbang infrastructure: make sure to always set transfer
      parameters on the first pass through the message's per-transfer loop.
      This can matter with drivers that replace the per-word or per-buffer
      transfer primitives, on busses with multiple SPI devices.
      
      Previously, this could have started messages using the settings left after
      previous messages.  The problem was observed when a high speed chip
      (m25p80 type flash) was running very slowly because a low speed device
      (avr8 microcontroller) had previously used the bus.  Similar faults could
      have driven the low speed device too fast, or used an unexpected word
      size.
      Acked-by: NSteven A. Falco <sfalco@harris.com>
      Signed-off-by: NDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      529ba0d9
    • K
      fbdev: add mutex for fb_mmap locking · 537a1bf0
      Krzysztof Helt 提交于
      Add a mutex to avoid a circular locking problem between the mm layer
      semaphore and fbdev ioctl mutex through the fb_mmap() call.
      
      Also, add mutex to all places where smem_start and smem_len fields change
      so the mutex inside the fb_mmap() is actually used.  Changing of these
      fields before calling the framebuffer_register() are not mutexed.
      
      This is 2.6.31 material.  It removes one lockdep (fb_mmap() and
      register_framebuffer()) but there is still another one (fb_release() and
      register_framebuffer()).  It also cleans up handling of the smem_start and
      smem_len fields used by mutexed section of the fb_mmap().
      Signed-off-by: NKrzysztof Helt <krzysztof.h1@wp.pl>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: "Rafael J. Wysocki" <rjw@sisk.pl>
      Cc: <stable@kernel.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      537a1bf0
    • D
      spi: add spi_master flag word · 70d6027f
      David Brownell 提交于
      Add a new spi_master.flags word listing constraints relevant to that
      controller.  Define the first constraint bit: a half duplex restriction.
      Include that constraint in the OMAP1 MicroWire controller driver.
      
      Have the mmc_spi host be the first customer of this flag.  Its coding
      relies heavily on full duplex transfers, so it must fail when the
      underlying controller driver won't perform them.
      
      (The spi_write_then_read routine could use it too: use the
      temporarily-withdrawn full-duplex speedup unless this flag is set, in
      which case the existing code applies.  Similarly, any spi_master
      implementing only SPI_3WIRE should set the flag.)
      Signed-off-by: NDavid Brownell <dbrownell@users.sourceforge.net>
      Cc: Marek Szyprowski <m.szyprowski@samsung.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      70d6027f
    • D
      spi: new spi->mode bits · b55f627f
      David Brownell 提交于
      Add two new spi_device.mode bits to accomodate more protocol options, and
      pass them through to usermode drivers:
      
       * SPI_NO_CS ... a second 3-wire variant, where the chipselect
         line is removed instead of a data line; transfers are still
         full duplex.
      
         This obviously has STRONG protocol implications since the
         chipselect transitions can't be used to synchronize state
         transitions with the SPI master.
      
       * SPI_READY ... defines open drain signal that's pulled low
         to pause the clock.  This defines a 5-wire variant (normal
         4-wire SPI plus READY) and two 4-wire variants (READY plus
         each of the 3-wire flavors).
      
         Such hardware flow control can be a big win.  There are ADC
         converters and flash chips that expose READY signals, but not
         many host controllers support it today.
      
      The spi_bitbang code should be changed to use SPI_NO_CS instead of its
      current nonportable hack.  That's a mode most hardware can easily support
      (unlike SPI_READY).
      Signed-off-by: NDavid Brownell <dbrownell@users.sourceforge.net>
      Cc: "Paulraj, Sandeep" <s-paulraj@ti.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      b55f627f
    • T
      dmapools: protect page_list walk in show_pools() · c4956823
      Thomas Gleixner 提交于
      show_pools() walks the page_list of a pool w/o protection against the list
      modifications in alloc/free.  Take pool->lock to avoid stomping into
      nirvana.
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      Signed-off-by: NMatthew Wilcox <willy@linux.intel.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      c4956823
    • B
      ext2: return -EIO not -ESTALE on directory traversal through deleted inode · 4d6c13f8
      Bryan Donlan 提交于
      ext2_iget() returns -ESTALE if invoked on a deleted inode, in order to
      report errors to NFS properly.  However, in ext[234]_lookup(), this
      -ESTALE can be propagated to userspace if the filesystem is corrupted such
      that a directory entry references a deleted inode.  This leads to a
      misleading error message - "Stale NFS file handle" - and confusion on the
      part of the admin.
      
      The bug can be easily reproduced by creating a new filesystem, making a
      link to an unused inode using debugfs, then mounting and attempting to ls
      -l said link.
      
      This patch thus changes ext2_lookup to return -EIO if it receives -ESTALE
      from ext2_iget(), as ext2 does for other filesystem metadata corruption;
      and also invokes the appropriate ext*_error functions when this case is
      detected.
      Signed-off-by: NBryan Donlan <bdonlan@gmail.com>
      Cc: <linux-ext4@vger.kernel.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      4d6c13f8
    • K
      elf: limit max map count to safe value · 341c87bf
      KAMEZAWA Hiroyuki 提交于
      With ELF, at generating coredump, some more headers other than used
      vmas are added.
      
      When max_map_count == 65536, a core generated by following kinds of
      code can be unreadable because the number of ELF's program header is
      written in 16bit in Ehdr (please see elf.h) and the number overflows.
      
      ==
      	... = mmap(); (munmap, mprotect, etc...)
      	if (failed)
      		abort();
      ==
      
      This can happen in mmap/munmap/mprotect/etc...which calls split_vma().
      
      I think 65536 is not safe as _default_ and reduce it to 65530 is good
      for avoiding unexpected corrupted core.
      
      Anyway, max_map_count can be enlarged by sysctl if a user is brave..
      Signed-off-by: NKAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
      Cc: Hugh Dickins <hugh.dickins@tiscali.co.uk>
      Cc: Jakub Jelinek <jakub@redhat.com>
      Acked-by: NRoland McGrath <roland@redhat.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      341c87bf
    • Y
      edac: add DDR3 memory type for MPC85xx EDAC · b1cfebc9
      Yang Shi 提交于
      Since some new MPC85xx SOCs support DDR3 memory now, so add DDR3 memory
      type for MPC85xx EDAC.
      Signed-off-by: NYang Shi <yang.shi@windriver.com>
      Cc: Doug Thompson <norsk5@yahoo.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      b1cfebc9
    • M
      parport/serial: add support for NetMos 9901 Multi-IO card · c4285b47
      Michael Buesch 提交于
      Add support for the PCI-Express NetMos 9901 Multi-IO card.
      
      0001:06:00.0 Serial controller [0700]: NetMos Technology Device [9710:9901] (prog-if 02 [16550])
              Subsystem: Device [a000:1000]
              Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
              Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
              Latency: 0, Cache Line Size: 64 bytes
              Interrupt: pin A routed to IRQ 65
              Region 0: I/O ports at 0030 [size=8]
              Region 1: Memory at 80105000 (32-bit, non-prefetchable) [size=4K]
              Region 4: Memory at 80104000 (32-bit, non-prefetchable) [size=4K]
              Capabilities: <access denied>
              Kernel driver in use: serial
              Kernel modules: 8250_pci
      
      0001:06:00.1 Serial controller [0700]: NetMos Technology Device [9710:9901] (prog-if 02 [16550])
              Subsystem: Device [a000:1000]
              Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
              Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
              Latency: 0, Cache Line Size: 64 bytes
              Interrupt: pin B routed to IRQ 65
              Region 0: I/O ports at 0020 [size=8]
              Region 1: Memory at 80103000 (32-bit, non-prefetchable) [size=4K]
              Region 4: Memory at 80102000 (32-bit, non-prefetchable) [size=4K]
              Capabilities: <access denied>
              Kernel driver in use: serial
              Kernel modules: 8250_pci
      
      0001:06:00.2 Parallel controller [0701]: NetMos Technology Device [9710:9901] (prog-if 03 [IEEE1284])
              Subsystem: Device [a000:2000]
              Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
              Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
              Latency: 0, Cache Line Size: 64 bytes
              Interrupt: pin C routed to IRQ 65
              Region 0: I/O ports at 0010 [size=8]
              Region 1: I/O ports at <unassigned>
              Region 2: Memory at 80101000 (32-bit, non-prefetchable) [size=4K]
              Region 4: Memory at 80100000 (32-bit, non-prefetchable) [size=4K]
              Capabilities: <access denied>
              Kernel driver in use: parport_pc
              Kernel modules: parport_pc
      
      [   16.760181] PCI parallel port detected: 416c:0100, I/O at 0x812010(0x0), IRQ 65
      [   16.760225] parport0: PC-style at 0x812010, irq 65 [PCSPP,TRISTATE,EPP]
      [   16.851842] serial 0001:06:00.0: enabling device (0004 -> 0007)
      [   16.883776] 0001:06:00.0: ttyS0 at I/O 0x812030 (irq = 65) is a ST16650V2
      [   16.893832] serial 0001:06:00.1: enabling device (0004 -> 0007)
      [   16.926537] 0001:06:00.1: ttyS1 at I/O 0x812020 (irq = 65) is a ST16650V2
      Signed-off-by: NMichael Buesch <mb@bu3sch.de>
      Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      c4285b47
    • P
      gcov: fix documentation · 972c71a3
      Peter Oberparleiter 提交于
      Commonly available versions of cp and tar don't work well with special
      files created using seq_file.  Mention this problem in the gcov
      documentation and update the helper script example to work around these
      problems.
      Signed-off-by: NPeter Oberparleiter <oberpar@linux.vnet.ibm.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      972c71a3
    • T
      alpha: fix percpu build breakage · b01e8dc3
      Tejun Heo 提交于
      alpha percpu access requires custom SHIFT_PERCPU_PTR() definition for
      modules to work around addressing range limitation.  This is done via
      generating inline assembly using C preprocessing which forces the
      assembler to generate external reference.  This happens behind the
      compiler's back and makes the compiler think that static percpu variables
      in modules are unused.
      
      This used to be worked around by using __unused attribute for percpu
      variables which prevent the compiler from omitting the variable; however,
      recent declare/definition attribute unification change broke this as
      __used can't be used for declaration.  Also, in the process,
      PER_CPU_ATTRIBUTES definition in alpha percpu.h got broken.
      
      This patch adds PER_CPU_DEF_ATTRIBUTES which is only used for definitions
      and make alpha use it to add __used for percpu variables in modules.  This
      also fixes the PER_CPU_ATTRIBUTES double definition bug.
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Tested-by: Nmaximilian attems <max@stro.at>
      Acked-by: NIvan Kokshaysky <ink@jurassic.park.msu.ru>
      Cc: Richard Henderson <rth@twiddle.net>
      Cc: <stable@kernel.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      b01e8dc3
    • S
      fbdev: work around old compiler bug · 15e32524
      Stephen Rothwell 提交于
      When building with a 4.1.x compiler on powerpc64 (at least) we get this
      error:
      
      drivers/video/logo/logo_linux_mono.c:81: error: logo_linux_mono causes a section type conflict
      
      This was introduced by commit ae52bb23
      ("fbdev: move logo externs to header file").  This is a partial revert of
      that commit sufficient to not hit the compiler bug.
      
      Also convert _clut arrays from __initconst to __initdata.
      
      Sam said:
      
        Al analysed this some time ago.  When we say something is const then
        _sometimes_ gcc annotate the section as const(?) - sometimes not.  So if
        we have two variables/functions annotated __*const and gcc decides to
        annotate the section const only in one case we get a section type
        conflict.
      Signed-off-by: NStephen Rothwell <sfr@canb.auug.org.au>
      Cc: Sam Ravnborg <sam@ravnborg.org>
      Cc: Krzysztof Helt <krzysztof.h1@poczta.fm>
      Cc: Geert Uytterhoeven <Geert.Uytterhoeven@sonycom.com>
      Cc: Kyle McMartin <kyle@mcmartin.ca>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      15e32524
    • J
      MAINTAINERS: update EDAC-I82975X · c15e504b
      Joe Perches 提交于
      As per Ranganathan's request.
      Signed-off-by: NJoe Perches <joe@perches.com>
      Cc: Ranganathan Desikan <ravi@jetztechnologies.com>
      Cc: Arvind R. <arvind@jetztechnologies.com>
      Cc: Doug Thompson <norsk5@yahoo.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      c15e504b
    • H
      gcov: fix __ctors_start alignment · 2a2325e6
      Heiko Carstens 提交于
      The ctors section for each object file is eight byte aligned (on 64 bit).
      However the __ctors_start symbol starts at an arbitrary address dependent
      on the size of the previous sections.
      
      Therefore the linker may add some zeroes after __ctors_start to make sure
      the ctors contents are properly aligned.  However the extra zeroes at the
      beginning aren't expected by the code.  When walking the functions
      pointers contained in there and extra zeroes are added this may result in
      random jumps.  So make sure that the __ctors_start symbol is always
      aligned as well.
      
      Fixes this crash on an allyesconfig on s390:
      
      [    0.582482] Kernel BUG at 0000000000000012 [verbose debug info unavailable]
      [    0.582489] illegal operation: 0001 [#1] SMP DEBUG_PAGEALLOC
      [    0.582496] Modules linked in:
      [    0.582501] CPU: 0 Tainted: G        W  2.6.31-rc1-dirty #273
      [    0.582506] Process swapper (pid: 1, task: 000000003f218000, ksp: 000000003f2238e8)
      [    0.582510] Krnl PSW : 0704200180000000 0000000000000012 (0x12)
      [    0.582518]            R:0 T:1 IO:1 EX:1 Key:0 M:1 W:0 P:0 AS:0 CC:2 PM:0 EA:3
      [    0.582524] Krnl GPRS: 0000000000036727 0000000000000010 0000000000000001 0000000000000001
      [    0.582529]            00000000001dfefa 0000000000000000 0000000000000000 0000000000000040
      [    0.582534]            0000000001fff0f0 0000000001790628 0000000002296048 0000000002296048
      [    0.582540]            00000000020c438e 0000000001786000 0000000002014a66 000000003f223e60
      [    0.582553] Krnl Code:>0000000000000012: 0000                unknown
      [    0.582559]            0000000000000014: 0000                unknown
      [    0.582564]            0000000000000016: 0000                unknown
      [    0.582570]            0000000000000018: 0000                unknown
      [    0.582575]            000000000000001a: 0000                unknown
      [    0.582580]            000000000000001c: 0000                unknown
      [    0.582585]            000000000000001e: 0000                unknown
      [    0.582591]            0000000000000020: 0000                unknown
      [    0.582596] Call Trace:
      [    0.582599] ([<0000000002014a46>] kernel_init+0x622/0x7a0)
      [    0.582607]  [<0000000000113e22>] kernel_thread_starter+0x6/0xc
      [    0.582615]  [<0000000000113e1c>] kernel_thread_starter+0x0/0xc
      [    0.582621] INFO: lockdep is turned off.
      [    0.582624] Last Breaking-Event-Address:
      [    0.582627]  [<0000000002014a64>] kernel_init+0x640/0x7a0
      
      Cc: Peter Oberparleiter <oberpar@linux.vnet.ibm.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      2a2325e6
    • D
      eventfd: revised interface and cleanups · 13389010
      Davide Libenzi 提交于
      Change the eventfd interface to de-couple the eventfd memory context, from
      the file pointer instance.
      
      Without such change, there is no clean way to racely free handle the
      POLLHUP event sent when the last instance of the file* goes away.  Also,
      now the internal eventfd APIs are using the eventfd context instead of the
      file*.
      
      This patch is required by KVM's IRQfd code, which is still under
      development.
      Signed-off-by: NDavide Libenzi <davidel@xmailserver.org>
      Cc: Gregory Haskins <ghaskins@novell.com>
      Cc: Rusty Russell <rusty@rustcorp.com.au>
      Cc: Benjamin LaHaise <bcrl@kvack.org>
      Cc: Avi Kivity <avi@redhat.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      13389010
    • J
      AFS: Fix lock imbalance · f7c2df9b
      Jiri Slaby 提交于
      Don't unlock on vfs_rejected_lock path in afs_do_setlk, since the lock
      is unlocked after abort_attempt label.
      Signed-off-by: NJiri Slaby <jirislaby@gmail.com>
      Signed-off-by: NDavid Howells <dhowells@redhat.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      f7c2df9b
  2. 30 6月, 2009 18 次提交
  3. 29 6月, 2009 6 次提交