08 Dec, 2006

40 commits

  • CONFIG_W1_SLAVE_DS2433_CRC can be used directly, there's no reason for the
    indirection of defining a different variable in the Makefile.

    Signed-off-by: Adrian Bunk
    Signed-off-by: Evgeniy Polyakov
    Cc: Greg KH
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Evgeniy Polyakov
     
  • According to the datasheet rs5c372 supports three different methods for
    reading register values. Change from method #1 to method #3, since method #3
    is the only one that works on Thecus N2100 board with this RTC.

    Signed-off-by: Riku Voipio
    Cc: Alessandro Zummo
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Riku Voipio
     
  • Initialization synclink_gt forgot to unregister pci driver on error path.

    Signed-off-by: Akinobu Mita
    Cc: Paul Fulghum
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Akinobu Mita
     
  • Check the return value of platform_device_register_simple().

    Cc: David Brownell
    Signed-off-by: Akinobu Mita
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Akinobu Mita
     
  • This a set of fixes mostly to make the driver actually work:

    1. Actually select the line for setting parameters and receiver
    disable/enable.
    2. Select the line for receive and transmit interrupt handling correctly.
    3. Report the transmitter empty state correctly.
    4. Set the I/O type of ports correctly.
    5. Perform polled transmission correctly.
    6. Don't fix the console line at ttyS3.
    7. Magic SysRq support.
    8. Various small bits here and there.

    Tested with a DECstation 2100 (thanks Flo for making this possible).

    [akpm@osdl.org: fix typo]
    Signed-off-by: Maciej W. Rozycki
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Maciej W. Rozycki
     
  • Pass struct dev pointer to dma_cache_sync()

    dma_cache_sync() is ill-designed in that it does not have a struct device
    pointer argument which makes proper support for systems that consist of a
    mix of coherent and non-coherent DMA devices hard. Change dma_cache_sync
    to take a struct device pointer as first argument and fix all its callers
    to pass it.

    Signed-off-by: Ralf Baechle
    Cc: James Bottomley
    Cc: "David S. Miller"
    Cc: Greg KH
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ralf Baechle
     
  • dma_is_consistent() is ill-designed in that it does not have a struct
    device pointer argument which makes proper support for systems that consist
    of a mix of coherent and non-coherent DMA devices hard. Change
    dma_is_consistent to take a struct device pointer as first argument and fix
    the sole caller to pass it.

    Signed-off-by: Ralf Baechle
    Cc: James Bottomley
    Cc: "David S. Miller"
    Cc: Greg KH
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ralf Baechle
     
  • Correct lots of typos, kernel-doc warnings, & kernel-doc usage in fusion and
    i2o drivers.

    Signed-off-by: Randy Dunlap
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     
  • When CONFIG_TOSHIBA=y and CONFIG_FB_NEOMAGIC=m, tosh_smm() needs
    to be exported for neofb to use it.

    WARNING: "tosh_smm" [drivers/video/neofb.ko] undefined!
    make[1]: *** [__modpost] Error 1
    make: *** [modules] Error 2

    Signed-off-by: Randy Dunlap
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     
  • Building CCISS SCSI tape support in-kernel when SCSI=m causes build errors,
    so require SCSI support to be =y or same as CCISS SCSI tape support.

    drivers/built-in.o: In function `cciss_remove_one':
    cciss.c:(.text+0x79d4c): undefined reference to `scsi_remove_host'
    cciss.c:(.text+0x79d55): undefined reference to `scsi_host_put'
    drivers/built-in.o: In function `cciss_update_non_disk_devices':
    cciss.c:(.text+0x7bb54): undefined reference to `scsi_device_type'
    cciss.c:(.text+0x7bcc8): undefined reference to `scsi_device_type'
    cciss.c:(.text+0x7be81): undefined reference to `scsi_device_type'
    cciss.c:(.text+0x7bf81): undefined reference to `scsi_device_type'
    drivers/built-in.o: In function `cciss_proc_write':
    cciss.c:(.text+0x7c175): undefined reference to `scsi_host_alloc'
    cciss.c:(.text+0x7c1ed): undefined reference to `scsi_add_host'
    cciss.c:(.text+0x7c1f9): undefined reference to `scsi_scan_host'
    cciss.c:(.text+0x7c206): undefined reference to `scsi_host_put'
    make: *** [.tmp_vmlinux1] Error 1

    Signed-off-by: Randy Dunlap
    Acked-by: Mike Miller
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     
  • [akpm@osdl.org: bugfix]
    Signed-off-by: Yoichi Yuasa
    Cc: James Simmons
    Cc: "Antonino A. Daplas"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Yoichi Yuasa
     
  • This creates a new RTC-framework driver for the RTC/calendar module found
    in various OMAP1 chips. (OMAP2 and OMAP3 use external RTCs, like those in
    TI's multifunction PM companion chips.) It's been in the Linux-OMAP tree
    for several months now, and other trees before that, so it's quite stable.
    The most notable issue is that the OMAP IRQ code doesn't yet support the
    RTC IRQ as a wakeup event. Once that's fixed, a patch will be needed.

    Signed-off-by: David Brownell
    Acked-by: Alessandro Zummo
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Brownell
     
  • When CONFIG_HOTPLUG=n, agp_amd64_resume() calls nforce3_agp_init(), which is
    __devinit == __init, so has been discarded and is not usable for resume.

    WARNING: drivers/char/agp/amd64-agp.o - Section mismatch: reference to .init.text: from .text between 'agp_amd64_resume' (at offset 0x249) and 'amd64_tlbflush'

    Signed-off-by: Randy Dunlap
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     
  • When CONFIG_HOTPLUG=n, parport_pc calls some __devinit == __init code that
    could be discarded. These calls are made from parport_irq_probe(), which is
    called from parport_pc_probe_port(), which is an exported symbol, so the calls
    could (possibly) happen after init time.

    WARNING: drivers/parport/parport_pc.o - Section mismatch: reference to .init.text: from .text between 'parport_irq_probe' (at offset 0x31d) and 'parport_pc_probe_port'
    WARNING: drivers/parport/parport_pc.o - Section mismatch: reference to .init.text: from .text between 'parport_irq_probe' (at offset 0x346) and 'parport_pc_probe_port'

    Signed-off-by: Randy Dunlap
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     
  • With I2O_CONFIG=y and I2O_EXT_ADAPTEC=n, kernel build gets:

    drivers/message/i2o/i2o_config.c:1115: error: 'i2o_cfg_compat_ioctl' undeclared here (not in a function)

    Signed-off-by: Randy Dunlap
    Cc: Markus Lidel
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     
  • Handle __copy_from_user() return value.

    Noticed by inspection, not from build warning.

    Signed-off-by: Randy Dunlap
    Cc: Markus Lidel
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     
  • Despite it being small, there should be the option of making it a
    module...

    Signed-off-by: Jan Beulich
    Cc: Michael Buesch
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jan Beulich
     
  • There was lots of #ifdef noise in the kernel due to hotcpu_notifier(fn,
    prio) not correctly marking 'fn' as used in the !HOTPLUG_CPU case, and thus
    generating compiler warnings of unused symbols, hence forcing people to add
    #ifdefs.

    the compiler can skip truly unused functions just fine:

    text data bss dec hex filename
    1624412 728710 3674856 6027978 5bfaca vmlinux.before
    1624412 728710 3674856 6027978 5bfaca vmlinux.after

    [akpm@osdl.org: topology.c fix]
    Signed-off-by: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ingo Molnar
     
  • Move a block of code from the bottom of the file to the top, which is needed
    to enable the cleanup.

    Signed-off-by: Linas Vepstas
    Cc: Ryan S. Arnold
    Cc: Michael Ellerman
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Linas Vepstas
     
  • Keeps sparse happy.

    Signed-of-by: Mariusz Kozlowski
    Cc: Russell King
    Cc: Mauro Carvalho Chehab
    Acked-by: Karsten Keil
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mariusz Kozlowski
     
  • The scheduled removal of the OSS drivers depending on OSS_OBSOLETE_DRIVER.

    Signed-off-by: Adrian Bunk
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Adrian Bunk
     
  • Do proper error-checking and propagation in drivers/base/memory.c, hence fix
    __must_check warnings.

    Cc: KAMEZAWA Hiroyuki
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • A driver for the PCEngines WRAP boards (http://www.pcengines.ch), which are
    very similar to the Soekris net4801 (same NS SC1100 geode reference
    design).

    The LEDs on the WRAP are on different GPIO lines and I have modified and
    copied the net48xx error led support for this. It also includes support
    for an "extra" led (in addition to error). The three LEDs on the WRAP are
    at GPIO lines 2,3,18 (WRAP LEDs from left to right). This driver gives
    access to the second and third LEDs by twiddling GPIO lines 3 & 18.

    Because these boards are so similar to the net48xx, I basically sed-ed that
    driver to form the basis for leds-wrap.c. The only changes from
    leds-net48xx.c are:

    - #define WRAP_EXTRA_LED_GPIO

    - name changes

    - duplicate relevant sections to provide support for the "extra" led

    - reverse the various *_led_set values. The WRAP is "backwards" from the
    net48xx, and these needed to be updated for that.

    [akpm@osdl.org: build fix]
    Signed-off-by: Kristian Kielhofner
    Acked-by: Richard Purdie
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kristian Kielhofner
     
  • In file included from drivers/char/ip2/ip2main.c:285:
    drivers/char/ip2/i2lib.c: In function `i2Output':
    drivers/char/ip2/i2lib.c:1019: warning: unused variable `rc'

    Signed-off-by: Mariusz Kozlowski
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mariusz Kozlowski
     
  • Clean up several code points in which the return code from misc_register is
    not handled properly.

    Several modules failed to deregister various hooks when misc_register fails,
    and this patch cleans them up. Also there are a few modules that legitimately
    don't care about the failure status of misc register. These drivers however
    unilaterally call misc_deregister on module unload.

    Since misc_register doesn't initialize the list_head in the init_routine if it
    fails, the deregister operation is at risk for oopsing when list_del is
    called. The initial solution was to manually init the list in the miscdev
    structure in each of those modules, but the consensus in this thread was to
    consolodate and do that universally inside misc_register.

    Signed-off-by: Neil Horman
    Cc: Bjorn Helgaas
    Cc: Kylene Jo Hall
    Cc: Dmitry Torokhov
    Cc: Olaf Hering
    Cc: Benjamin Herrenschmidt
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Neil Horman
     
  • Fixing sbpcd.c baroque error printing in process.

    Signed-off-by: Alexey Dobriyan
    Cc: Jens Axboe
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexey Dobriyan
     
  • This is on our "Envoy" boxes which we have, according to the documentation, an
    "Exar ST16C554/554D Quad UART with 16-byte Fifo's". The box also has two
    other "on-board" serial ports and a modem chip.

    The two on-board serial UARTs were being detected along with the first two
    Exar UARTs. The last two Exar UARTs were not showing up and neither was the
    modem.

    This patch was the only way I could the kernel to see beyond the standard four
    serial ports and get all four of the Exar UARTs to show up.

    [akpm@osdl.org: build fix]
    Signed-off-by: Paul B Schroeder
    Cc: Lennart Sorensen
    Acked-by: Alan Cox
    Cc: Russell King
    Cc: Greg KH
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Paul B Schroeder
     
  • =============================================
    [ INFO: possible recursive locking detected ]
    2.6.18-1.2699.fc6 #1
    ---------------------------------------------
    swapper/0 is trying to acquire lock:
    (&list->lock#3){+...}, at: [] skb_dequeue+0x12/0x43

    but task is already holding lock:
    (&list->lock#3){+...}, at: [] bcsp_dequeue+0x6a/0x11e [hci_uart]

    Two different list locks nest, annotate so.

    Signed-off-by: Peter Zijlstra
    Acked-by: Marcel Holtmann
    Acked-by: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Peter Zijlstra
     
  • This patch makes module init return proper value instead of -1 (-EPERM).

    Cc: Tim Waugh
    Signed-off-by: Akinobu Mita
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Akinobu Mita
     
  • Add support for the parallel port (implemented as separate PCI function) on
    the Oxford Semiconductor OX16PCI952.

    Signed-off-by: Ryan Underwood
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ryan Underwood
     
  • Fix sparse NULL warning;
    drivers/misc/tifm_core.c:223:17: warning: Using plain integer as NULL pointer

    Fix style while there.

    Signed-off-by: Randy Dunlap
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     
  • paride_register() returns 1 on success, 0 on failure and module init
    code looks like

    static int __init foo_init(void)
    {
    return paride_register(&foo) - 1;
    }

    which is not what one get used to. Converted to usual 0/-E convention.

    In case of kbic driver, unwind registration. It was just

    return (paride_register(&k951)||paride_register(&k971))-1;

    Signed-off-by: Alexey Dobriyan
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexey Dobriyan
     
  • We're about to change the semantics of pi_register()'s return value, so
    rename it to something else first, so that any unconverted code reliaby
    breaks.

    Signed-off-by: Alexey Dobriyan
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexey Dobriyan
     
  • In order for spi_busnum_to_master to work spi master devices must be linked
    into the spi_master_class.subsys.kset list. At the moment the default
    class_obj_subsys.kset is used and we can't enumerate the master devices.

    Signed-off-by: Hans-Christian Egtvedt
    Cc: David Brownell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Hans-Christian Egtvedt
     
  • Correct the following in driver/spi/spi.c in function spi_busnum_to_master:

    * must allow bus_num 0, the if is really not needed.
    * correct the name buffer which is too small for bus_num >= 10000. It

    should be 9 bytes big, not 8.

    Signed-off-by: Hans-Christian Egtvedt
    Cc: David Brownell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Hans-Christian Egtvedt
     
  • rmmod/3080 [HC0[0]:SC0[0]:HE0:SE1] is trying to acquire:
    (proc_subdir_lock){--..}, at: [] remove_proc_entry+0x40/0x191

    and this task is already holding:
    (ide_lock){++..}, at: [] ide_unregister_subdriver+0x39/0xc8
    which would create a new lock dependency:
    (ide_lock){++..} -> (proc_subdir_lock){--..}

    but this new dependency connects a hard-irq-safe lock:
    (ide_lock){++..}
    ... which became hard-irq-safe at:
    [] lock_acquire+0x4b/0x6b
    [] _spin_lock_irqsave+0x22/0x32
    [] ide_intr+0x17/0x1a9
    [] handle_IRQ_event+0x20/0x4d
    [] __do_IRQ+0x94/0xef
    [] do_IRQ+0x9e/0xbd

    to a hard-irq-unsafe lock:
    (proc_subdir_lock){--..}
    ... which became hard-irq-unsafe at:
    ... [] lock_acquire+0x4b/0x6b
    [] _spin_lock+0x19/0x28
    [] xlate_proc_name+0x1b/0x99
    [] proc_create+0x46/0xdf
    [] create_proc_entry+0x62/0xa5
    [] proc_misc_init+0x1c/0x1d2
    [] proc_root_init+0x4c/0xe9
    [] start_kernel+0x294/0x3b3

    Move ide_remove_proc_entries() out from under ide_lock; there is nothing
    that indicates that this is needed.

    In specific, the call to ide_add_proc_entries() is unprotected, and there
    is nothing else in the file using the respective ->proc fields. Also the
    lock order around destroy_proc_ide_interface() suggests this.

    Alan sayeth:

    proc_ide_write_settings walks the setting list under ide_setting_sem, read
    ditto. remove_proc_entry is doing proc side housekeeping.

    Looks fine to me, although that old code is such a mess anything could be
    going on.

    Signed-off-by: Peter Zijlstra
    Cc: Alan Cox
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Peter Zijlstra
     
  • Jeff noted that the via driver returned an error to an unsigned int in a
    a case where errors are not permitted. Move the check down earlier so we
    can handle it properly. Not as pretty but it works this way and avoids
    hacking up ugly stuff in the legacy ide core.

    Signed-off-by: Alan Cox
    Cc: Jeff Garzik
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alan Cox
     
  • Add SysRq-X support: show blocked (TASK_UNINTERRUPTIBLE) tasks only.

    Useful for debugging IO stalls.

    Signed-off-by: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ingo Molnar
     
  • Signed-off-by: Jeff Garzik
    Cc: David Brownell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jeff Garzik
     
  • Signed-off-by: Jeff Garzik
    Cc: Alessandro Zummo
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jeff Garzik