12 Aug, 2008

15 commits

  • commit 611e097d7707741a336a0677d9d69bec40f29f3d
    Author: Christian Borntraeger
    hvc_console: rework setup to replace irq functions with callbacks
    introduced a spinlock recursion problem.

    request_irq tries to call the handler if the IRQ is shared.
    The irq handler of hvc_console calls hvc_poll and hvc_kill
    which might take the hvc_struct spinlock. Therefore, we have
    to call request_irq outside the spinlock.

    We can move the notifier_add safely outside the spinlock as ->data must
    not be changed by the backend. Otherwise, tty_hangup would fail anyway.

    Signed-off-by: Christian Borntraeger
    Signed-off-by: Rusty Russell

    Christian Borntraeger
     
  • Signed-off-by: Li Zefan
    Signed-off-by: Rusty Russell

    Li Zefan
     
  • The kernel has this really nice facility where if you put "initcall_debug"
    on the kernel commandline, it'll print which function it's going to
    execute just before calling an initcall, and then after the call completes
    it will

    1) print if it had an error code

    2) checks for a few simple bugs (like leaving irqs off)
    and

    3) print how long the init call took in milliseconds.

    While trying to optimize the boot speed of my laptop, I have been loving
    number 3 to figure out what to optimize... ... and then I wished that
    the same thing was done for module loading.

    This patch makes the module loader use this exact same functionality; it's
    a logical extension in my view (since modules are just sort of late
    binding initcalls anyway) and so far I've found it quite useful in finding
    where things are too slow in my boot.

    Signed-off-by: Arjan van de Ven
    Signed-off-by: Andrew Morton
    Signed-off-by: Rusty Russell

    Arjan van de Ven
     
  • Hello Rusty,

    The entropy device was added after we exported all virtio headers. This
    patch adds virtio_rng.h to the exportable userspace headers.

    Signed-off-by: Christian Borntraeger
    Signed-off-by: Rusty Russell

    Christian Borntraeger
     
  • Using a simple page table thrashing program I measure a slight
    improvement. The program creates five processes. Each touches 1000
    pages then schedules the next process. We repeat this 1000 times. As
    lguest only caches 4 cr3 values, this rebuilds a lot of shadow page
    tables requiring virt->phys mappings.

    Before: 5.93 seconds
    After: 5.40 seconds

    (Counts of slow vs fastpath in this usage are 6092 and 2852462 respectively.)

    And more importantly for lguest, the code is simpler.

    Signed-off-by: Rusty Russell

    Rusty Russell
     
  • Out of line get_user_pages_fast fallback implementation, make it a weak
    symbol, get rid of CONFIG_HAVE_GET_USER_PAGES_FAST.

    Export the symbol to modules so lguest can use it.

    Signed-off-by: Nick Piggin
    Signed-off-by: Rusty Russell

    Rusty Russell
     
  • This shows up when trying to bridge:
    tap0: received packet with own address as source address

    As Max Krasnyansky points out, there's no reason to give the guest the
    same mac address as the TUN device.

    Signed-off-by: Rusty Russell
    Cc: Max Krasnyansky

    Rusty Russell
     
  • * 'for-linus' of git://git.o-hand.com/linux-mfd:
    mfd: tc6393 cleanup and update
    mfd: have TMIO drivers and subdevices depend on ARM
    mfd: TMIO MMC driver
    mfd: driver for the TMIO NAND controller
    mfd: t7l66 MMC platform data
    mfd: tc6387 MMC platform data
    mfd: Fix 7l66 and 6387 according to the new mfd-core API
    mfd: Fix tc6393 according to the new tmio.h
    mfd: driver for the TC6387XB TMIO controller.
    mfd: driver for the T7L66XB TMIO SoC
    mfd: TMIO MMC structures and accessors.

    Linus Torvalds
     
  • * 'i2c-for-linus' of git://jdelvare.pck.nerim.net/jdelvare-2.6:
    hwmon: (lm75) Drop legacy i2c driver
    i2c: correct some size_t printk formats
    i2c: Check for address business before creating clients
    i2c: Let users select algorithm drivers manually again
    i2c: Fix NULL pointer dereference in i2c_new_probed_device
    i2c: Fix oops on bus multiplexer driver loading

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog:
    [WATCHDOG] pcwd.c - fix open_allowed type.
    [WATCHDOG] fix watchdog/ixp4xx_wdt.c compilation
    [WATCHDOG] fix watchdog/wdt285.c compilation
    [WATCHDOG] fix watchdog/at91rm9200_wdt.c compilation
    [WATCHDOG] fix watchdog/shwdt.c compilation
    [WATCHDOG] fix watchdog/txx9wdt.c compilation
    [WATCHDOG] MAINTAINERS: remove ZF MACHZ WATCHDOG entry
    [WATCHDOG] Fix build with CONFIG_ITCO_VENDOR_SUPPORT=n

    Linus Torvalds
     
  • * 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc:
    powerpc: Remove include/linux/harrier_defs.h
    powerpc: Do not ignore arch/powerpc/include
    powerpc: Delete completed "ppc removal" task from feature removal file
    powerpc/mm: Fix attribute confusion with htab_bolt_mapping()
    powerpc/pci: Don't keep ISA memory hole resources in the tree
    powerpc: Zero fill the return values of rtas argument buffer
    powerpc/4xx: Update defconfig files for 2.6.27-rc1
    powerpc/44x: Incorrect NOR offset in Warp DTS
    powerpc/44x: Warp DTS changes for board updates
    powerpc/4xx: Cleanup Warp for i2c driver changes.
    powerpc/44x: Adjust warp-nand resource end address

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6:
    PCI: Limit VPD length for Broadcom 5708S
    PCI PM: Export pci_pme_active to drivers
    PCI: remove duplicate symbol from pci_ids.h
    PCI: check the return value of device_create_bin_file() in pci_create_bus()
    PCI: fully restore MSI state at resume time
    DMA: make dma-coherent.c documentation kdoc-friendly
    PCI: make pci_register_driver() a macro
    PCI: add Broadcom 5708S to VPD length quirk

    Linus Torvalds
     
  • While testing our KVM code for s390 (starting and killall kvm in a loop)
    I can reproduce the following oops:

    Unable to handle kernel pointer dereference at virtual kernel address 6b6b6b6b6b6b6000 Oops: 0038 [#1] SMP
    Modules linked in: dm_multipath sunrpc qeth_l3 qeth_l2 dm_mod qeth
    ccwgroup CPU: 1 Not tainted 2.6.27-rc1 #54
    Process kuli (pid: 4409, task: 00000000b6aa5940, ksp: 00000000b7343e10)
    Krnl PSW : 0704e00180000000 00000000002e0b8c
    (disassociate_ctty+0x1c0/0x288) R:0 T:1 IO:1 EX:1 Key:0 M:1 W:0 P:0 AS:3
    CC:2 PM:0 EA:3 Krnl GPRS: 0000000000000000 6b6b6b6b6b6b6b6b
    0000000000000001 00000000000003a6 00000000002e0a46 00000000004b4160
    0000000000000001 00000000bbd79758 00000000b7343e58 00000000b8854148
    00000000bd34dea0 00000000b7343c20 0000000000000001 00000000004b6d08
    00000000002e0a46 00000000b7343c20 Krnl Code: 00000000002e0b7e:
    eb9fb0a00004 lmg %r9,%r15,160(%r11) 00000000002e0b84:
    07f4 bcr 15,%r4 00000000002e0b86:
    e31090080004 lg %r1,8(%r9) >00000000002e0b8c:
    d501109cd000 clc 156(2,%r1),0(%r13) 00000000002e0b92:
    a784ff5d brc 8,2e0a4c 00000000002e0b96:
    b9040029 lgr %r2,%r9 00000000002e0b9a:
    c0e5fffff9c3 brasl %r14,2dff20 00000000002e0ba0:
    a7f4ff56 brc 15,2e0a4c Call Trace:
    ([] disassociate_ctty+0x7a/0x288)
    [] do_exit+0x212/0x8d4
    [] do_group_exit+0x60/0xcc
    [] get_signal_to_deliver+0x270/0x3ac
    [] do_signal+0x8e/0x8dc
    [] sysc_sigpending+0xe/0x22
    [] 0x1ff0000b134
    INFO: lockdep is turned off.
    Last Breaking-Event-Address:
    [] disassociate_ctty+0x7c/0x288
    Kernel panic - not syncing: Fatal exception: panic_on_oops

    It seems that tty was already free in disassocate_ctty when it tries
    to dereference tty->driver.

    After moving the lock_kernel before the mutex_unlock, I can no longer
    reproduce the problem.

    [ This is a temporary partial fix for the documented and long standing
    race in disassociate_tty. This stops most problem cases for now.

    For the next release the -next tree has an initial implementation of
    kref counting for tty structures and this quickfix will be dropped.

    - Alan ]

    Signed-off-by: Christian Borntraeger
    Signed-off-by; Alan Cox
    Signed-off-by: Linus Torvalds

    Christian Borntraeger
     
  • Wire up for m68k{,nommu} the system calls that were added in the last merge
    window:

    - 4006553b06306b34054529477b06b68a1c66249b ("flag parameters: inotify_init")
    - ed8cae8ba01348bfd83333f4648dd807b04d7f08 ("flag parameters: pipe")
    - 336dd1f70ff62d7dd8655228caed4c5bfc818c56 ("flag parameters: dup2")
    - a0998b50c3f0b8fdd265c63e0032f86ebe377dbf ("flag parameters: epoll_create")
    - 9fe5ad9c8cef9ad5873d8ee55d1cf00d9b607df0 ("flag parameters add-on: remove
    epoll_create size param")
    - b087498eb5605673b0f260a7620d91818cd72304 ("flag parameters: eventfd")
    - 9deb27baedb79759c3ab9435a7d8b841842d56e9 ("flag parameters: signalfd")

    Signed-off-by: Geert Uytterhoeven
    Acked-by: Greg Ungerer
    Signed-off-by: Linus Torvalds

    Geert Uytterhoeven
     
  • This reverts commit 2d04a4a72d7e1519b4838f24bdd4b5d0f3f426dc, which made
    it impossible to make the softcursor use the highlight colors.

    Yes, the fourth bit should be "blinking", but since we cannot reasonably
    blink in fbcon, highlighting it with a bright background is preferable.

    Reported-by: Pavel Machek
    Cc: Stefano Stabellini
    Cc: Krzysztof Helt
    Cc: Antonino A. Daplas
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     

11 Aug, 2008

25 commits

  • It was only used by code in arch/ppc, and arch/ppc is gone, so remove
    the unused harrier_defs.h as well.

    Signed-off-by: Paul Mackerras

    Paul Mackerras
     
  • Back when .gitignore file was added to arch/powerpc/ in 06f2138 ([POWERPC]
    Add files build to .gitignore, 2006-11-26), there indeed was nothing
    tracked in the ignored hierarchy and ignoring everything made sense. But
    we have very many tracked files there these days, and having a higher
    level .gitignore that ignores everything is asking for future troubles..

    This should have been part of b8b572e (powerpc: Move include files to
    arch/powerpc/include/asm, 2008-08-01).

    Signed-off-by: Junio C Hamano
    Acked-by: Stephen Rothwell
    Signed-off-by: Paul Mackerras

    Junio C Hamano
     
  • Signed-off-by: Robert P. J. Day
    Signed-off-by: Paul Mackerras

    Robert P. J. Day
     
  • The function htab_bolt_mapping() is used to create permanent
    mappings in the MMU hash table, for example, in order to create
    the linear mapping of vmemmap. It's also used by early boot
    ioremap (before mem_init_done).

    However, the way ioremap uses it is incorrect as it passes it the
    protection flags in the "linux PTE" form while htab_bolt_mapping()
    expects them in the hash table format. This is made more confusing by
    the fact that some of those flags are actually in the same position in
    both cases.

    This fixes it all by making htab_bolt_mapping() take normal linux
    protection flags instead, and use a little helper to convert them to
    htab flags. Callers can now use the usual PAGE_* definitions safely.

    Signed-off-by: Benjamin Herrenschmidt

    arch/powerpc/include/asm/mmu-hash64.h | 2 -
    arch/powerpc/mm/hash_utils_64.c | 65 ++++++++++++++++++++--------------
    arch/powerpc/mm/init_64.c | 9 +---
    3 files changed, 44 insertions(+), 32 deletions(-)
    Signed-off-by: Paul Mackerras

    Benjamin Herrenschmidt
     
  • When we have an ISA memory hole (ie, a PCI window that allows us to
    generate PCI memory cycles at low PCI address) mixed with other
    resources using a different CPU PCI mapping, we must not keep
    the ISA hole in the bridge resource list.

    If we do, things might start trying to allocate device resources
    in there and will get the PCI addresses wrong.

    This fixes it by arranging to remove the ISA memory hole resource in
    this case. This fixes various cases of PCMCIA breakage on PowerBooks
    using the MPC106 "grackle" bridge.

    Signed-off-by: Benjamin Herrenschmidt
    Signed-off-by: Paul Mackerras

    Benjamin Herrenschmidt
     
  • The kernel copy of the rtas args struct contains the return
    value(s) for the specified rtas call. These are copied back
    to user space with the assumption that every value has been
    set by the rtas call, which turns out to be not always true.
    Thus userspace can see random values and think the call failed
    when in fact it succeeded, but for some reason didn't set one
    of the return values.

    This fixes the problem by zeroing out the return value fields
    of the rtas args struct before processing the rtas call.

    Signed-off-by: Nathan Fontenot
    Signed-off-by: Paul Mackerras

    Nathan Fontenot
     
  • Fix following warnings:
    drivers/watchdog/pcwd.c: In function 'pcwd_open':
    drivers/watchdog/pcwd.c:703: warning: passing argument 2 of 'test_and_set_bit' from incompatible pointer type
    drivers/watchdog/pcwd.c: In function 'pcwd_close':
    drivers/watchdog/pcwd.c:723: warning: passing argument 2 of 'clear_bit' from incompatible pointer type

    Signed-off-by: Wim Van Sebroeck

    Wim Van Sebroeck
     
  • This patchset cleans up the TC6393XB support.

    * Add provision for the MMC subdevice
    * Disable / enable clocks on suspend / resume
    * Remove fragments of badly merged code (eg. linux/fb include etc.)
    * Use a device specific clock name to break dependancy on ARM/PXA2XX
    * Drop unnecessary resource names
    * Switch to tmio_io* accessors

    Signed-off-by: Ian Molton
    Signed-off-by: Samuel Ortiz

    Ian Molton
     
  • The TMIO chips are only found (and thus tested) on ARM machines.
    Moreover, we don't want the TMIO cells to be built if one of the TMIO
    driver is not selected (which indirectly make the TMIO cells drivers
    depend on ARM as well).

    Signed-off-by: Samuel Ortiz

    Samuel Ortiz
     
  • This patch adds support for the MMC subdevice 'cell' commonly found in
    TMIO based MFDs.

    Signed-off-by: Ian Molton
    Acked-by: Pierre Ossman
    Signed-off-by: Samuel Ortiz

    Ian Molton
     
  • This patch adds support for the NAND controller commonly found in
    TMIO based MFDs.

    Signed-off-by: Ian Molton
    Acked-By: David Woodhouse
    Signed-off-by: Samuel Ortiz

    Ian Molton
     
  • Drop the legacy lm75 driver, and add a detect callback to the
    new-style driver to achieve the same functionality.

    Signed-off-by: Jean Delvare
    Cc: David Brownell

    Jean Delvare
     
  • Fix various printk format strings where %zd was passed a size_t;
    those should be %zu instead. (Courtesy of a version of GCC which
    warns when these details are wrong.)

    Signed-off-by: David Brownell
    Signed-off-by: Jean Delvare

    David Brownell
     
  • We check for address business in i2c_probe_address(),
    i2c_detect_address() and i2c_new_probed_device(), but this isn't
    sufficient. Drivers can call i2c_attach_client() and
    i2c_new_device() on any address, so we must check the address there
    as well.

    This fixes bug #11239:
    http://bugzilla.kernel.org/show_bug.cgi?id=11239

    Signed-off-by: Jean Delvare

    Jean Delvare
     
  • In kernel 2.6.26, the ability to select I2C algorithm drivers manually
    was removed, as all in-kernel drivers do that automatically. However
    there were some complaints that it was a problem for out-of-tree I2C
    bus drivers. In order to address these complaints, let's allow manual
    selection of these drivers again, but still hide them by default for
    better general user experience.

    This closes bug #11140:
    http://bugzilla.kernel.org/show_bug.cgi?id=11140

    Signed-off-by: Jean Delvare

    Jean Delvare
     
  • Fix a NULL pointer dereference that happened when calling
    i2c_new_probed_device on one of the addresses for which we use byte
    reads instead of quick write for detection purpose (that is: 0x30-0x37
    and 0x50-0x5f).

    Signed-off-by: Hans Verkuil
    Signed-off-by: Jean Delvare

    Hans Verkuil
     
  • The two I2C bus multiplexer drivers (i2c-amd756-s4882 and
    i2c-nforce2-s4985) make use of the bus they want to multiplex before
    checking if it is really present. Swap the instructions to test for
    presence first. This fixes a oops reported by Ingo Molnar.

    Signed-off-by: Jean Delvare
    Cc: Ingo Molnar

    Jean Delvare
     
  • This patch fixes the following compile error caused by
    commit 20d35f3e50ea7e573f9568b9fce4e98523aaee5d
    ([WATCHDOG 22/57] ixp4xx_wdt: unlocked_ioctl):

    ...
    CC drivers/watchdog/ixp4xx_wdt.o
    ixp4xx_wdt.c:32: error: expected '=', ',', ';', 'asm' or '__attribute__'
    ixp4xx_wdt.c: In function 'wdt_enable':
    ixp4xx_wdt.c:41: error: 'wdt_lock' undeclared (first use in this
    ixp4xx_wdt.c:41: error: (Each undeclared identifier is reported only
    ixp4xx_wdt.c:41: error: for each function it appears in.)
    ixp4xx_wdt.c: In function 'wdt_disable':
    ixp4xx_wdt.c:52: error: 'wdt_lock' undeclared (first use in this
    ixp4xx_wdt.c: In function 'ixp4xx_wdt_init':
    ixp4xx_wdt.c:186: error: 'wdt_lock' undeclared (first use in this
    make[3]: *** [drivers/watchdog/ixp4xx_wdt.o] Error 1

    Reported-by: Adrian Bunk
    Signed-off-by: Adrian Bunk
    Signed-off-by: Wim Van Sebroeck

    Adrian Bunk
     
  • This patch fixes the following compile error caused by
    commit d0e58eed05f9baf77c4f75e794ae245f6dae240a
    ([WATCHDOG 55/57] wdt285: switch to unlocked_ioctl and tidy up ...):

    ...
    CC [M] drivers/watchdog/wdt285.o
    wdt285.c: In function 'footbridge_watchdog_init':
    wdt285.c:211: error: 'KERN_WARN' undeclared (first use in this function)
    wdt285.c:211: error: (Each undeclared identifier is reported only once
    wdt285.c:211: error: for each function it appears in.)
    wdt285.c:212: error: expected ')' before string constant
    make[3]: *** [drivers/watchdog/wdt285.o] Error 1

    Reported-by: Adrian Bunk
    Signed-off-by: Adrian Bunk
    Signed-off-by: Wim Van Sebroeck

    Adrian Bunk
     
  • This patch fixes the following compile error:

    ...
    CC drivers/watchdog/at91rm9200_wdt.o
    at91rm9200_wdt.c:188: error: 'at91_wdt_ioctl' undeclared here (not in a
    make[3]: *** [drivers/watchdog/at91rm9200_wdt.o] Error 1

    Reported-by: Adrian Bunk
    Signed-off-by: Adrian Bunk
    Signed-off-by: Wim Van Sebroeck

    Adrian Bunk
     
  • This patch fixes the following compile errors caused by
    commit 70b814ec1a484279a51bf9f7193551b996627247
    ([WATCHDOG 45/57] shwdt: coding style, cleanup, switch to unlocked_io):

    ...
    CC drivers/watchdog/shwdt.o
    shwdt.c:64: error: 'WTCSR_CKS_4096' undeclared here (not in a function)
    shwdt.c: In function 'sh_wdt_start':
    shwdt.c:92: error: 'wdt_lock' undeclared (first use in this function)
    shwdt.c:92: error: (Each undeclared identifier is reported only once
    shwdt.c:92: error: for each function it appears in.)
    shwdt.c:97: error: implicit declaration of function 'sh_wdt_read_csr'
    shwdt.c:98: error: 'WTCSR_WT' undeclared (first use in this function)
    shwdt.c:99: error: implicit declaration of function 'sh_wdt_write_csr'
    shwdt.c:101: error: implicit declaration of function 'sh_wdt_write_cnt'
    shwdt.c:112: error: 'WTCSR_TME' undeclared (first use in this function)
    shwdt.c:113: error: 'WTCSR_RSTS' undeclared (first use in this function)
    shwdt.c: In function 'sh_wdt_stop':
    shwdt.c:142: error: 'wdt_lock' undeclared (first use in this function)
    shwdt.c:147: error: 'WTCSR_TME' undeclared (first use in this function)
    shwdt.c: In function 'sh_wdt_keepalive':
    shwdt.c:160: error: 'wdt_lock' undeclared (first use in this function)
    shwdt.c: In function 'sh_wdt_set_heartbeat':
    shwdt.c:176: error: 'wdt_lock' undeclared (first use in this function)
    shwdt.c: In function 'sh_wdt_ping':
    shwdt.c:192: error: 'wdt_lock' undeclared (first use in this function)
    shwdt.c:197: error: 'WTCSR_IOVF' undeclared (first use in this function)
    shwdt.c: At top level:
    shwdt.c:417: error: conflicting type qualifiers for 'sh_wdt_info'
    shwdt.c:71: error: previous declaration of 'sh_wdt_info' was here
    make[3]: *** [drivers/watchdog/shwdt.o] Error 1

    Reported-by: Adrian Bunk
    Signed-off-by: Adrian Bunk
    Signed-off-by: Wim Van Sebroeck

    Adrian Bunk
     
  • This patch fixes the following compile error caused by
    commit 8dc244f7deac4c0e95ce0ffd26f494bb6e1534c0
    ([WATCHDOG 48/57] txx9: Fix locking, switch to unlocked_ioctl):

    ...
    CC drivers/watchdog/txx9wdt.o
    txx9wdt.c:48: warning: type defaults to 'int' in declaration of
    txx9wdt.c:48: warning: parameter names (without types) in function
    txx9wdt.c: In function 'txx9wdt_ping':
    txx9wdt.c:52: error: 'txx9_lock' undeclared (first use in this function)
    txx9wdt.c:52: error: (Each undeclared identifier is reported only once
    txx9wdt.c:52: error: for each function it appears in.)
    txx9wdt.c: In function 'txx9wdt_start':
    txx9wdt.c:59: error: 'txx9_lock' undeclared (first use in this function)
    txx9wdt.c: In function 'txx9wdt_stop':
    txx9wdt.c:71: error: 'txx9_lock' undeclared (first use in this function)
    make[3]: *** [drivers/watchdog/txx9wdt.o] Error 1

    Reported-by: Adrian Bunk
    Signed-off-by: Adrian Bunk
    Signed-off-by: Wim Van Sebroeck

    Adrian Bunk
     
  • - maintainer has not been active for years
    - maintainer email bounces
    - URL no longer exists
    - covered by the WATCHDOG DEVICE DRIVERS entry

    Signed-off-by: Adrian Bunk
    Signed-off-by: Wim Van Sebroeck

    Adrian Bunk
     
  • The problem is that iTCO_vendor_support.ko is still being built while
    iTCO_vendor.h claims that its functions do not exist. The following
    Makefile update fixes that. It causes iTCO_vendor_support.ko to no
    longer be built if CONFIG_ITCO_VENDOR_SUPPORT=n.

    Signed-off-by: Jean Delvare
    Signed-off-by: Wim Van Sebroeck

    Jean Delvare
     
  • The tmio MMC driver needs the cell to be passed as a platform data.

    Signed-off-by: Samuel Ortiz

    Ian Molton