29 Jun, 2007

13 commits

  • This patch changes the test for the thread pid from >= 0 to > 0.

    When the saa8134 driver initialization fails after a certain point, it goes
    through the complete shutdown process for the driver. Part of shutting it
    down includes tearing down the thread for tv audio.

    The test for tearing down the thread tests for >= 0. Since the dev
    structure is kzalloc'd, the test will always be true if we haven't tried to
    start the thread yet. We end up waiting on pid 0 to complete, which will
    never happen, so we lock up.

    This bug was observed in Novell Bugzilla 284718, when request_irq() failed.

    Signed-off-by: Jeff Mahoney
    Acked-by: Mauro Carvalho Chehab
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jeff Mahoney
     
  • Cannot mix const and __initdata:
    sound/pci/ice1712/prodigy192.c:708: error: ak4114_controls causes a section type conflict

    Signed-off-by: Randy Dunlap
    Cc: Jaroslav Kysela
    Cc: Takashi Iwai
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     
  • Rename struct pci_driver data so that false section mismatch warnings won't
    be produced.

    Sam, ISTM that depending on variable names is the weakest & worst part of
    modpost section checking. Should __init_refok work here? I got build
    errors when I tried to use it, probably because the struct pci_driver probe
    and remove methods are not marked "__init_refok".

    WARNING: drivers/dma/ioatdma.o(.data+0x10): Section mismatch: reference to .init.text: (between 'ioat_pci_drv' and 'ioat_pci_tbl')
    WARNING: drivers/dma/ioatdma.o(.data+0x14): Section mismatch: reference to .exit.text: (between 'ioat_pci_drv' and 'ioat_pci_tbl')

    Signed-off-by: Randy Dunlap
    Acked-by: Chris Leech
    Cc: Sam Ravnborg
    Cc: Andrew Morton
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     
  • If one has a dependency chain (tristate)FOO depends on (bool)BAR depends on
    (tristate)BAZ, build problems will result. If BAZ=m, then BAR can be set
    y, which allows FOO=y. It's possible to have FOO=y && BAZ=m, which
    wouldn't be allowed if FOO depended directly on BAZ. In effect, the bool
    promotes the tristate from m to y.

    This ends up causing a problem with several menuconfigs that look like:

    menuconfig BAR
    bool
    depends on BAZ [tristate]
    if BAR
    config FOO
    tristate
    endif

    The solution used here is to add the dependencies of BAR to the if
    statement, so that items in the if block will gain a direct
    non-bool-promoted dependency on BAZ. This is how it would work if a menu
    was used instead of an if block.

    Signed-off-by: Trent Piepho
    Acked-by: Mauro Carvalho Chehab
    Cc: "David S. Miller"
    Acked-by: Jeff Garzik
    Cc: Dominik Brodowski
    Cc: Chas Williams
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Trent Piepho
     
  • validate_anon_vma gave a useful check on the integrity of the anon_vma list
    when Andrea was developing obj rmap; but it was not enabled in SLES9
    itself, nor in mainline, until Nick changed commented-out RMAP_DEBUG to
    configurable CONFIG_DEBUG_VM in 2.6.17. Now Petr Vandrovec reports that
    its BUG_ON(mapcount > 100000) can easily crash a CONFIG_DEBUG_VM=y system.

    That limit was just an arbitrary number to protect against an infinite
    loop. We could raise it to something enormous (depending on sizeof struct
    vma and size of memory?); but I rather think validate_anon_vma has outlived
    its usefulness, and is better just removed - which gives a magnificent
    performance boost to anything like Petr's test program ;)

    Of course, a very long anon_vma list is bad news for preemption latency,
    and I believe there has been one recent report of such: let's not forget
    that, but validate_anon_vma only makes it worse not better.

    Signed-off-by: Hugh Dickins
    Cc: Petr Vandrovec
    Acked-by: Nick Piggin
    Cc: Andrea Arcangeli
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Hugh Dickins
     
  • Some HP firmware leaves the SMCf010 IRDA device incompletely configured, or
    reports the wrong resources in _CRS. As a workaround, when we find such a
    device, try to auto-configure the device.

    This ignores the _CRS data, picks a config from _PRS, and runs _SRS to
    configure the device. This makes smsc-ircc2 work correctly with PNP
    resources (with no preconfiguration!) on all the machines I tested.

    I think Windows does something like this by default for all devices,
    so we should consider doing the same thing in Linux.

    This patch addresses part of the 2.6.22 regression:
    "no irda0 interface (2.6.21 was OK), smsc does not find chip"
    It fixes smsc-ircc2 PNP device detection on HP nc6000, nc6220, nw8000,
    nw8240, and possibly other machines.

    Signed-off-by: Bjorn Helgaas
    Cc: Samuel Ortiz
    Cc: "Linus Walleij (LD/EAB)"
    Cc: Andrey Borzenkov
    Cc: Michal Piotrowski
    Cc: Adam Belay
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Bjorn Helgaas
     
  • If we rely on the device resources from PNPBIOS, we also have to rely on
    the BIOS to configure any bridges on the way to the device.

    Using the PNPBIOS resources but changing the configuration of a bridge
    behind the back of the firmware is likely to make things inconsistent.

    This patch addresses part of the 2.6.22 regression:
    "no irda0 interface (2.6.21 was OK), smsc does not find chip"
    It fixes smsc-ircc2 PNP device detection on HP nx5000 laptops.
    Other laptops, including HP nc6000, HP nc8000, HP nw8000, and Toshiba
    Portege 4000, still need PNP quirks to make this work.

    With "smsc-ircc2.nopnp", we do the legacy device probe, including manual
    bridge preconfiguration, as before.

    Signed-off-by: Bjorn Helgaas
    Cc: Samuel Ortiz
    Acked-by: "Linus Walleij (LD/EAB)"
    Cc: Andrey Borzenkov
    Cc: Michal Piotrowski
    Cc: "David S. Miller"
    Cc: Adam Belay
    Cc: Andrew Morton
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Bjorn Helgaas
     
  • main.c::mtrr_add() or mtrr_del() [exported]
    calls main.c::mtrr_add_page() or mtrr_del_page() or mtrr_restore() [resume]
    calls main.c::set_mtrr()
    calls main.c::ipi_handler()
    calls main.c::mtrr_if->set_all() == which can be cyrix_set_all

    WARNING: arch/i386/kernel/built-in.o(.text+0x8657): Section mismatch: reference to .init.data: (between 'cyrix_set_all' and 'centaur_get_free_region')
    WARNING: arch/i386/kernel/built-in.o(.text+0x866b): Section mismatch: reference to .init.data: (between 'cyrix_set_all' and 'centaur_get_free_region')
    WARNING: arch/i386/kernel/built-in.o(.text+0x867e): Section mismatch: reference to .init.data: (between 'cyrix_set_all' and 'centaur_get_free_region')
    WARNING: arch/i386/kernel/built-in.o(.text+0x8684): Section mismatch: reference to .init.data: (between 'cyrix_set_all' and 'centaur_get_free_region')
    WARNING: arch/i386/kernel/built-in.o(.text+0x868a): Section mismatch: reference to .init.data: (between 'cyrix_set_all' and 'centaur_get_free_region')

    Signed-off-by: Randy Dunlap
    Cc: Andi Kleen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     
  • Fix gcc warning and add parameter checking when CONFIG_EVENTFD=n:

    fs/aio.c: In function 'aio_complete':
    fs/aio.c:955: warning: statement with no effect

    Signed-off-by: Randy Dunlap
    Cc: Davide Libenzi
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     
  • Fix a regression on Apple iBook1. Changes in the clock init code caused an
    incorrect XCLK frequency to be used leading to a corrupted display.

    Signed-off-by: Ville Syrjala
    Cc: Olaf Hering
    Cc: Antonino Daplas
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ville Syrjala
     
  • When one llseek's past the end of the file and then writes, every page past
    the previous end of the file should be cleared. Trevor found that the code,
    as is, does not assure that the very last page is always cleared. This patch
    takes care of that.

    Signed-off-by: Michael Halcrow
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Michael Halcrow
     
  • Recent changes in eCryptfs have made it possible to get to ecryptfs_setattr()
    with an uninitialized crypt_stat struct. This results in a wide and colorful
    variety of unpleasantries. This patch properly initializes the crypt_stat
    structure in ecryptfs_setattr() when it is necessary to do so.

    Signed-off-by: Michael Halcrow
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Michael Halcrow
     
  • This patch fixes the processes involved in wiping regions of the data during
    truncate and write events, fixing a kernel hang in 2.6.22-rc4 while assuring
    that zero values are written out to the appropriate locations during events in
    which the i_size will change.

    The range passed to ecryptfs_truncate() from ecryptfs_prepare_write() includes
    the page that is the object of ecryptfs_prepare_write(). This leads to a
    kernel hang as read_cache_page() is executed on the same page in the
    ecryptfs_truncate() execution path. This patch remedies this by limiting the
    range passed to ecryptfs_truncate() so as to exclude the page that is the
    object of ecryptfs_prepare_write(); it also adds code to
    ecryptfs_prepare_write() to zero out the region of its own page when writing
    past the i_size position. This patch also modifies ecryptfs_truncate() so
    that when a file is truncated to a smaller size, eCryptfs will zero out the
    contents of the new last page from the new size through to the end of the last
    page.

    Signed-off-by: Michael Halcrow
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Michael Halcrow
     

28 Jun, 2007

5 commits


27 Jun, 2007

22 commits

  • ATA_HORKAGE_DMA_RW_ONLY for TORiSAN is verified to be subset of using
    DMA for ATAPI commands which aren't aligned to 16 bytes. As libata
    now doesn't use DMA for unaligned ATAPI commands, the horkage is
    redundant. Kill it.

    Signed-off-by: Tejun Heo
    Signed-off-by: Jeff Garzik

    Tejun Heo
     
  • The IDE driver used DMA for ATAPI commands if READ/WRITE command is
    multiple of sector size or sg command is multiple of 16 bytes. For
    libata, READ/WRITE sector alignment is guaranteed by the high level
    driver (sr), so we only have to worry about the 16 byte alignment.

    This patch makes ata_check_atapi_dma() always request PIO for all data
    transfer commands which are not multiple of 16 bytes.

    The following reports are related to this problem.

    http://bugzilla.kernel.org/show_bug.cgi?id=8605 (confirmed)
    http://thread.gmane.org/gmane.linux.kernel/476620 (confirmed)
    https://bugzilla.novell.com/show_bug.cgi?id=229260 (probably)

    Albert first pointed out the difference between IDE and libata. Kudos
    to him.

    Signed-off-by: Tejun Heo
    Cc: Albert Lee
    Signed-off-by: Jeff Garzik

    Tejun Heo
     
  • In atapi_xlat(), prepare qc better before calling
    ata_check_atapi_dma() such that ata_check_atapi_dma() can use info
    from qc. While at it, reformat weird looking if/else block in the
    function.

    Signed-off-by: Tejun Heo
    Signed-off-by: Jeff Garzik

    Tejun Heo
     
  • When EH gives up after repeated exceptions, it doesn't't clear the
    PENDING bit on exit which leaves PENDING bit set without EH actually
    scheduled. This makes ata_port_wait_eh() to wait forever makes rmmod
    hang on such port. Fix it by clearing the flag.

    Signed-off-by: Tejun Heo
    Signed-off-by: Jeff Garzik

    Tejun Heo
     
  • Fix silly condition check bug in ata_dev_disable().

    Signed-off-by: Tejun Heo
    Signed-off-by: Jeff Garzik

    Tejun Heo
     
  • Fix section mismatch when CONFIG_HOTPLUG=n (but functions are used
    for resume):

    WARNING: drivers/ata/pata_it821x.o(.text+0x3f): Section mismatch: reference to .init.text: (between 'it821x_reinit_one' and 'it821x_program_udma')
    WARNING: drivers/ata/pata_it821x.o(.text+0x691): Section mismatch: reference to .init.text: (between 'it821x_init_one' and 'it821x_passthru_set_dmamode')

    Signed-off-by: Randy Dunlap
    Signed-off-by: Jeff Garzik

    Randy Dunlap
     
  • Removed unused variable did_followup_srst from ata_eh_reset().

    Signed-off-by: Tejun Heo
    Signed-off-by: Jeff Garzik

    Tejun Heo
     
  • There's no reason to print out hpa related messages when HPA is not
    active. Kill the unconditional message and add a warning message
    which is printed if HPA size is smaller than the current size.

    Signed-off-by: Tejun Heo
    Signed-off-by: Jeff Garzik

    Tejun Heo
     
  • prereset() is now allowed to set flag for unsupported reset method.
    EH layer is responsible for selecting the fallback. Remove non-sense
    warning message.

    Signed-off-by: Tejun Heo
    Signed-off-by: Jeff Garzik

    Tejun Heo
     
  • The infamous abnormal status message triggers on not so abnormal cases
    including empty port and even when it's being triggered on actual
    errors the info it provides is redundant and out of context - higher
    level functions will print the info in better safe later anyway.

    Also, by being triggered all the time, it leads people to think that
    the abnormality is somehow related to all ATA and system problems
    they're experiencing and gives owners of healthy systems unfounded
    doubts about the integrity of the universe. Make it a DPRINTK and
    save the universe.

    Signed-off-by: Tejun Heo
    Signed-off-by: Jeff Garzik

    Tejun Heo
     
  • Propogate change from drivers/ide

    Signed-off-by: Alan Cox
    Signed-off-by: Jeff Garzik

    Alan Cox
     
  • On Tue, Jun 19, Stephen Hemminger wrote:
    > Olaf Hering wrote:
    > > What happend to __ucmpdi2 from David Woodhouse?
    > > google has a few hits about stuff like this on 32bit powerpc with gcc 4.1.2:
    > >
    > > ERROR: "__ucmpdi2" [drivers/net/s2io.ko] undefined!
    > >
    > > using the drivers/net/s2io* files from 2.6.21 with 2.6.22-rc5 fixes the
    > > compile.
    > >
    > > 25805dcf9d83098cf5492117ad2669cd14cc9b24 adds two u64 >>= 48 followed by
    > > a switch statement (line 2889 and 6816).
    >
    > Probably the "switch(err) {" needs a cast to a smaller type (like u8).

    This change removes the compiler-generated calls to __ucmpdi2.

    Signed-off-by: Olaf Hering
    Signed-off-by: Jeff Garzik

    Olaf Hering
     
  • Use the right register to stop broadcast/multicast traffic.

    Signed-off-by: Divy Le Ray
    Signed-off-by: Jeff Garzik

    Divy Le Ray
     
  • Fixed by including :

    CC drivers/net/au1000_eth.o
    drivers/net/au1000_eth.c: In function 'au1000_probe':
    drivers/net/au1000_eth.c:661: warning: implicit declaration of function 'dma_alloc_noncoherent'
    drivers/net/au1000_eth.c:802: warning: implicit declaration of function 'dma_free_noncoherent'

    Signed-off-by: Ralf Baechle
    Signed-off-by: Jeff Garzik

    Ralf Baechle
     
  • Force irq migration path during cpu offline, is not using proper locks and
    irq_chip mask/unmask routines. This will result in some races(especially
    the device generating the interrupt can see some inconsistent state,
    resulting in issues like stuck irq,..).

    Appended patch fixes the issue by taking proper lock and encapsulating
    irq_chip set_affinity() with a mask() before and an unmask() after.

    This fixes a MSI irq stuck issue reported by Darrick Wong.

    There are several more general bugs in this area(irq migration in the
    process context). For example,

    1. Possibility of missing edge triggered irq.
    2. Reliable method of migrating level triggered irq in the process context.

    We plan to look and close these in the near future.

    Eric says:
    In addition even with the fix from Suresh there is still at least one
    nasty hardware race in fixup_irqs(). However we exercise that code
    path rarely enough that we are unlikely to hit it in the real world,
    and that race seems to have existed since the code was merged. And a
    fix for that is not coming soon as it is an open investigation area
    if we can fix irq migration to work outside of irq context or if
    we have to rework the requirements imposed by the generic cpu hotplug
    and layer on fixup_irqs(). So this may come up again.

    Signed-off-by: Suresh Siddha
    Cc: Eric W. Biederman
    Reported-and-tested-by: Darrick Wong
    Cc: Andi Kleen
    Acked-by: Rafael J. Wysocki
    Signed-off-by: Linus Torvalds

    Siddha, Suresh B
     
  • set the irq_chip name for lapic.

    Signed-off-by: Suresh Siddha
    Signed-off-by: Linus Torvalds

    Suresh Siddha
     
  • * master.kernel.org:/home/rmk/linux-2.6-arm:
    [ARM] 4449/1: more entries in arch/arm/boot/.gitignore
    [ARM] 4452/1: Force the literal pool dump before reloc_end
    [ARM] Update show_regs/oops register format
    [ARM] Add support for pause_on_oops and display preempt/smp options

    Linus Torvalds
     
  • * 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus:
    [MIPS] Count timer interrupts correctly.
    [MIPS] SMTC and non-SMTC kernel and modules are incompatible
    [MIPS] EMMA2RH: Disable GEN_RTC, it can't possibly work.
    [MIPS] Remove a duplicated local variable in test_and_clear_bit()
    [MIPS] use compat_siginfo in rt_sigframe_n32
    [MIPS] 20K: Handle WAIT related bugs according to errata information
    [MIPS] AP/SP requires shadow registers, auto enable support.
    [MIPS] Fix pb1500 reg B access
    [MIPS] Alchemy: Fix wrong cast
    [MIPS] remove "support for" from system type entry
    [MIPS] add io_map_base to pci_controller on Cobalt
    [MIPS] __ucmpdi2 arguments are unsigned long long.

    Linus Torvalds
     
  • * 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc:
    [POWERPC] Fix subtle FP state corruption bug in signal return on SMP
    [POWERPC] Fix VDSO gettimeofday() when called with NULL struct timeval
    [POWERPC] Update defconfigs
    [POWERPC] Update g5_defconfig

    Linus Torvalds
     
  • * master.kernel.org:/pub/scm/linux/kernel/git/gregkh/usb-2.6:
    USB: ftdio_sio: New IPlus device ID
    USB: add new device id to option driver
    USB: fix race leading to use after free in io_edgeport
    USB: usblcd doesn't limit memory consumption during write
    USB: memory leak in iowarrior.c
    USB: ti serial driver sleeps with spinlock held
    USB: g_file_storage: call allow_signal()

    Linus Torvalds
     
  • This one changes the SN2 specific PCI drivers to use ioremap() for
    obtaining the real address to access for the PCI registers instead of
    manually calculating them with __IA64_UNCACHED_OFFSET.

    The patch should have no real change when running on a normal Linux
    kernel, but when running as a paravirtualized it is needed.

    Signed-off-by: Jes Sorenson
    Signed-off-by: Tony Luck

    Jes Sorensen
     
  • Montecito behaves slightly differently than previous processors,
    resulting in the MCA due to a failed PIO read to sometimes surfacing
    outside the nofault code. Adding an additional or and stop bits
    ensures the MCA surfaces in the nofault code.

    Signed-off-by: Russ Anderson
    Signed-off-by: Tony Luck

    Russ Anderson