04 Jul, 2006

12 commits

  • Add support for Display Update Module and RGB framebuffer device on Philips
    PNX4008 ARM board.

    Signed-off-by: Grigory Tolstolytkin
    Signed-off-by: Vitaly Wool
    Signed-off-by: Antonino Daplas
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Vitaly Wool
     
  • Update MAINTAINERS with contact info for Mike Isely, the PVRUSB2
    maintainer, while also adding the pvrusb2 mailing list and web site.

    Signed-off-by: Mike Isely
    Signed-off-by: Michael Krufky
    Cc: Mauro Carvalho Chehab
    Cc: Greg KH
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Michael Krufky
     
  • Martin says that I can add self to MAINTAINERS.

    Signed-off-by: Randy Dunlap
    Cc: Martin Waitz
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     
  • Fix check for bad address; use macro instead of open-coding two checks.

    Taken from RHEL4 kernel update.

    From: Ernie Petrides

    For background, the BAD_ADDR() macro should return TRUE if the address is
    TASK_SIZE, because that's the lowest address that is *not* valid for
    user-space mappings. The macro was correct in binfmt_aout.c but was wrong
    for the "equal to" case in binfmt_elf.c. There were two in-line validations
    of user-space addresses in binfmt_elf.c, which have been appropriately
    converted to use the corrected BAD_ADDR() macro in the patch you posted
    yesterday. Note that the size checks against TASK_SIZE are okay as coded.

    The additional changes that I propose are below. These are in the error
    paths for bad ELF entry addresses once load_elf_binary() has already
    committed to exec'ing the new image (following the tearing down of the
    task's original address space).

    The 1st hunk deals with the interp-side of the outer "if". There were two
    problems here. The printk() should be removed because this path can be
    triggered at will by a bogus interpreter image created and used by a
    malicious user. Further, the error code should not be ENOEXEC, because that
    causes the loop in search_binary_handler() to continue trying other exec
    handlers (twice, in fact). But it's too late for this to work correctly,
    because the user address space has already been torn down, and an exec()
    failure cannot be returned to the user code because the code no longer
    exists. The only recovery is to force a SIGSEGV, but it's best to terminate
    the search loop immediately. I somewhat arbitrarily chose EINVAL as a
    fallback error code, but any error returned by load_elf_interp() will
    override that (but this value will never be seen by user-space).

    The 2nd hunk deals with the non-interp-side of the outer "if". There were
    two problems here as well. The SIGSEGV needs to be forced, because a prior
    sigaction() syscall might have set the associated disposition to SIG_IGN.
    And the ENOEXEC should be changed to EINVAL as described above.

    Signed-off-by: Chuck Ebbert
    Signed-off-by: Ernie Petrides
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Chuck Ebbert
     
  • It turns out that it is advantageous to leave a small portion of unmapped file
    backed pages if all of a zone's pages (or almost all pages) are allocated and
    so the page allocator has to go off-node.

    This allows recently used file I/O buffers to stay on the node and
    reduces the times that zone reclaim is invoked if file I/O occurs
    when we run out of memory in a zone.

    The problem is that zone reclaim runs too frequently when the page cache is
    used for file I/O (read write and therefore unmapped pages!) alone and we have
    almost all pages of the zone allocated. Zone reclaim may remove 32 unmapped
    pages. File I/O will use these pages for the next read/write requests and the
    unmapped pages increase. After the zone has filled up again zone reclaim will
    remove it again after only 32 pages. This cycle is too inefficient and there
    are potentially too many zone reclaim cycles.

    With the 1% boundary we may still remove all unmapped pages for file I/O in
    zone reclaim pass. However. it will take a large number of read and writes
    to get back to 1% again where we trigger zone reclaim again.

    The zone reclaim 2.6.16/17 does not show this behavior because we have a 30
    second timeout.

    [akpm@osdl.org: rename the /proc file and the variable]
    Signed-off-by: Christoph Lameter
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Christoph Lameter
     
  • PNP devices can use shared interrupts, so check to see whether we'll need
    SA_SHIRQ for request_irq().

    The builtin PDH UART on the HP rx8640 is an example of an ACPI/PNP device
    that uses a shareable level-triggered, active-low interrupt. The interrupt
    can be shared in very large I/O configurations or by artificially lowering
    IA64_DEF_LAST_DEVICE_VECTOR.

    Signed-off-by: Bjorn Helgaas
    Cc: Adam Belay
    Cc: Matthieu Castet
    Cc: Li Shaohua
    Cc: Len Brown
    Acked-by: Russell King
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Bjorn Helgaas
     
  • ACPI supplies a "shareable" indication, but PNPACPI ignores it. If a PNP
    device uses a shared interrupt, request_irq() fails because the PNP driver
    can't tell whether to supply SA_SHIRQ.

    This patch allows PNP drivers to test
    (pnp_irq_flags(dev, 0) & IORESOURCE_IRQ_SHAREABLE)

    Signed-off-by: Bjorn Helgaas
    Cc: Adam Belay
    Cc: Matthieu Castet
    Cc: Li Shaohua
    Cc: Len Brown
    Cc: Russell King
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Bjorn Helgaas
     
  • This is needed to fix UML compilation given that alternatives_smp_module_add
    and alternatives_smp_module_del are null inline functions if !CONFIG_SMP.

    Signed-off-by: "Theodore Ts'o"
    Cc: Jeff Dike
    Cc: Paolo 'Blaisorblade' Giarrusso
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Theodore Tso
     
  • reported by Jure Repinc:

    > > http://bugzilla.kernel.org/show_bug.cgi?id=6773

    > > checked out dmesg output and found the message
    > >
    > > ======================================================
    > > [ BUG: hard-safe -> hard-unsafe lock order detected! ]
    > > ------------------------------------------------------
    > >
    > > starting at line 660 of the dmesg.txt that I will attach.

    The patch below should fix the deadlock, albeit I suspect it's not the
    "right" fix; the right fix may well be to move the rx processing in bcm43xx
    to softirq context. [it's debatable, ipw2200 hit this exact same bug; at
    some point it's better to bite the bullet and move this to the common layer
    as my patch below does]

    Make the nl_table_lock irq-safe; it's taken for read in various netlink
    functions, including functions that several wireless drivers (ipw2200,
    bcm43xx) want to call from hardirq context.

    The deadlock was found by the lock validator.

    Signed-off-by: Arjan van de Ven
    Signed-off-by: Ingo Molnar
    Signed-off-by: Herbert Xu
    Cc: Michael Buesch
    Cc: "John W. Linville"
    Cc: Jeff Garzik
    Acked-by: "David S. Miller"
    Cc: jamal
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Arjan van de Ven
     
  • Have a special version of print_symbol() for s390 which clears the most
    significant bit of addr before calling __print_symbol(). This seems to be
    better than checking/changing each place in the kernel that saves an
    instruction pointer.

    Without this the output would look like:

    hardirqs last enabled at (30907): [] 0x80018c6a
    hardirqs last disabled at (30908): [] 0x8001e48c
    softirqs last enabled at (30904): [] 0x8001dc96
    softirqs last disabled at (30897): [] 0x8001dc50

    instead of this:

    hardirqs last enabled at (19421): [] cpu_idle+0x176/0x1c4
    hardirqs last disabled at (19422): [] io_no_vtime+0xa/0x1a
    softirqs last enabled at (19418): [] do_softirq+0xa6/0xe8
    softirqs last disabled at (19411): [] do_softirq+0x60/0xe8

    Acked-by: Ingo Molnar
    Cc: Arjan van de Ven
    Cc: Martin Schwidefsky
    Signed-off-by: Heiko Carstens
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Heiko Carstens
     
  • Remove duplicate/redundant/wrong IRQF_PERCPU definition.

    Cc: Thomas Gleixner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • We're not reay to take a timer interrupt until timekeeping_init() has run.
    But time_init() will start the time interrupt and if it is called with
    local interrupts enabled we'll immediately take an interrupt and die.

    Fix that by running timekeeping_init() prior to time_init().

    We don't know _why_ local interrupts got enabled on Jesse Brandeburg's
    machine. That's a separate as-yet-unsolved problem. THe patch adds a little
    bit of debugging to detect that.

    This whole requirement that local interrupts be held off during early boot
    keeps on biting us.

    Signed-off-by: John Stultz
    Cc: Jesse Brandeburg
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    john stultz
     

03 Jul, 2006

28 commits