02 Jun, 2006

1 commit


01 Jun, 2006

33 commits

  • * 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus:
    [MIPS] Treat R14000 like R10000.
    [MIPS] Remove EXPERIMENTAL from PAGE_SIZE_16KB
    [MIPS] Update/Fix instruction definitions
    [MIPS] DSP and MDMX share the same config flag bit.
    [MIPS] Fix deadlock on MP with cache aliases.
    [MIPS] Use generic STABS_DEBUG macro.
    [MIPS] Create consistency in "system type" selection.
    [MIPS] Use generic DWARF_DEBUG
    [MIPS] Fix kgdb exception handler from user mode.
    [MIPS] Update struct sigcontext member names
    [MIPS] Update/fix futex assembly
    [MIPS] Remove support for sysmips(2) SETNAME and MIPS_RDNVRAM operations.
    [MIPS] Fix detection and handling of the 74K processor.
    [MIPS] Add missing 34K processor IDs
    [MIPS] Fix marking buddy of pte global for MIPS32 w/36-bit physical address
    [MIPS] AU1xxx mips_timer_interrupt() fixes
    [MIPS] Fix typo

    Linus Torvalds
     
  • Signed-off-by: Joshua Kinard
    Signed-off-by: Ralf Baechle

    Kumba
     
  • This is known to be working fine for a while. While at it also update
    and fix the help texts.

    Signed-off-by: Ralf Baechle

    Ralf Baechle
     
  • A small bugfix for up to now unused instruction definitions, and a
    somewhat larger update to cover MIPS32R2 instructions.

    Signed-off-by: Thiemo Seufer
    Signed-off-by: Ralf Baechle

    Thiemo Seufer
     
  • Clarify comment.

    Signed-off-by: Thiemo Seufer
    Signed-off-by: Ralf Baechle

    Thiemo Seufer
     
  • A proper fix would involve introducing the notion of shared caches but
    at this stage of 2.6.17 that's going to be too intrusive and not needed
    for current hardware; aside I think some discussion will be needed.

    So for now on the affected SMP configurations which happen to suffer from
    cache aliases we make use of the fact that a single cache will be shared
    by all processors. This solves the deadlock issue and will improve
    performance by getting rid of the smp_call_function overhead.

    Signed-off-by: Ralf Baechle

    Ralf Baechle
     
  • Signed-off-by: Atsushi Nemoto
    Signed-off-by: Ralf Baechle

    Atsushi Nemoto
     
  • The "system type" Kconfig options on MIPS are not consistent. For
    some platforms, only the name is listed while other entries are
    prepended with "Support for". Remove this as it doesn't make sense
    when describing the "system type".

    Signed-off-by: Martin Michlmayr
    Signed-off-by: Ralf Baechle

    Martin Michlmayr
     
  • When debugging a kernel compiled by gcc 4.1 with gdb 6.4, gdb could
    not show filename, linenumber, etc. It seems fixed if I used generic
    DWARF_DEBUG macro. Although gcc 3.x seems work without this change,
    it would be better to use the generic macro unless there were
    something MIPS specific.

    Signed-off-by: Atsushi Nemoto
    Signed-off-by: Ralf Baechle

    Atsushi Nemoto
     
  • Fix a calculation of saved vector address in trap_low.

    (damage done by lmo f4c72cc737561aab0d9c7f877abbc0a853f1c465)

    Signed-off-by: Ralf Baechle

    Atsushi Nemoto
     
  • Rename the 64-bit sc_hi and sc_lo arrays to use the same names
    as the 32-bit struct sigcontext (sc_mdhi, sc_hi1, et cetera).

    Signed-off-by: Daniel Jacobowitz
    Signed-off-by: Ralf Baechle

    Daniel Jacobowitz
     
  • o Implement futex_atomic_op_inuser() operation
    o Don't use the R10000-ll/sc bug workaround version for every processor.
    branch likely is deprecated and some historic ll/sc processors don't
    implement it. In any case it's slow.

    Signed-off-by: Ralf Baechle

    Ralf Baechle
     
  • SETNAME only had a minor defect but probably never had a user and
    MIPS_RDNVRAM was unimplemented anyway.

    Signed-off-by: Ralf Baechle

    Ralf Baechle
     
  • Nothing exciting; Linux just didn't know it yet so this is most adding
    a value to a case statement.

    Signed-off-by: Chris Dearman
    Signed-off-by: Ralf Baechle

    Chris Dearman
     
  • The 34K is very much like a 24K on steroids.

    Signed-off-by: Ralf Baechle

    Nigel Stephens
     
  • In case of CONFIG_64BIT_PHYS_ADDR, set_pte() and pte_clear() functions
    only set _PAGE_GLOBAL bit in the pte_low field of the buddy PTEs,
    forgetting to propagate ito to pte_high. Thus, the both pages might not
    really be made global for the CPU (since it AND's the G-bit of the
    odd / even PTEs together to decide whether they're global or not). Thus,
    if only a single page is allocated via vmalloc() or ioremap(), it's not
    really global for CPU (and it must be, since this is kernel mapping),
    and thus its ASID is compared against the current process' one -- so,
    we'll get into trouble sooner or later... Also, pte_none() will fail
    on global pages because _PAGE_GLOBAL bit is set in both pte_low and
    pte_high, and pte_val() will return u64 value consisting of those fields
    concateneted.

    Signed-off-by: Sergei Shtylyov
    Signed-off-by: Ralf Baechle

    Sergei Shtylyov
     
  • common/au1000/irq.c was missing a mips_timer_interrupt() prototype,
    whereas in common/au1000/time.c the actual mips_timer_interrupt()
    implementation was missing an irq_exit() invocation, causing a
    preempt_count() leak.

    Signed-off-by: Herbert Valerio Riedel
    Signed-off-by: Ralf Baechle

    Herbert Valerio Riedel
     
  • Found by Chris Dearman (chris@mips.com).

    Signed-off-by: Ralf Baechle

    Ralf Baechle
     
  • The ARM Architecture Reference Manual lists bit 4 of the PMD as "implementation
    defined" and it must be set to zero on Intel XScale CPUs or the cache does
    not behave properly. Found by Mike Rapoport while debugging a flash issue
    on the PXA255:

    http://marc.10east.com/?l=linux-arm-kernel&m=114845287600782&w=1

    Signed-off-by: Deepak Saxena
    Signed-off-by: Linus Torvalds

    Deepak Saxena
     
  • From: Andrew Morton

    Move the forward decl outside the ifdef, since we use it in both legs.

    Should fix the spacr64 build error reported in
    http://bugzilla.kernel.org/show_bug.cgi?id=6625

    Acked-by: "David S. Miller"
    Cc: Cedric Pellerin
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • From: NeilBrown

    If an error is reported by a drive in a RAID array (which is done via
    bi_end_io - in interrupt context), we call md_error and md_new_event which
    calls sysfs_notify. However sysfs_notify grabs a mutex and so cannot be
    called in interrupt context.

    This patch just creates a variant of md_new_event which avoids the sysfs
    call, and uses that. A better fix for later is to arrange for the event to
    be called from user-context.

    Note: avoiding the sysfs call isn't a problem as an error will not, by
    itself, modify the sync_action attribute. (We do still need to
    wake_up(&md_event_waiters) as an error by itself will modify /proc/mdstat).

    Signed-off-by: Neil Brown
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    NeilBrown
     
  • From: Jeremy Higdon

    This patch fixes a bug in sgiioc4 where it was using the default IDE port
    I/O operations instead of MMIO.

    The IDE part of the IOC4 chip uses MMIO to map the chip registers.
    Unfortunately, the sgiioc4 driver uses the default port IO operations,
    which happens to have worked for the past few years. That's about to
    change, however, thus this change from inX/outX to readX/writeX.

    Signed-off-by: Jeremy Higdon
    Cc: Bartlomiej Zolnierkiewicz
    Cc: Alan Cox
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jeremy Higdon
     
  • From: Martin Michlmayr

    Fix the following compilation error:

    CC drivers/video/maxinefb.o
    drivers/video/maxinefb.c:58: warning: initializer-string for array of chars is too long
    drivers/video/maxinefb.c:58: warning: (near initialization for \u2018maxinefb_fix.id\u2019)
    drivers/video/maxinefb.c:110: error: unknown field \u2018fb_get_fix\u2019 specified in initializer
    drivers/video/maxinefb.c:110: error: \u2018gen_get_fix\u2019 undeclared here (not in a function)
    drivers/video/maxinefb.c:111: error: unknown field \u2018fb_get_var\u2019 specified in initializer
    drivers/video/maxinefb.c:111: error: \u2018gen_get_var\u2019 undeclared here (not in a function)
    make[2]: *** [drivers/video/maxinefb.o] Error 1

    Signed-off-by: Martin Michlmayr
    Signed-off-by: Antonino Daplas
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Martin Michlmayr
     
  • From: Rodolfo Giometti

    Fix the following warning on compilation:

    drivers/video/au1100fb.c: In function `au1100fb_fb_setcolreg':
    drivers/video/au1100fb.c:219: warning: ISO C90 forbids mixed declarations and code
    drivers/video/au1100fb.c: In function `au1100fb_fb_pan_display':
    drivers/video/au1100fb.c:321: warning: ISO C90 forbids mixed declarations and code
    drivers/video/au1100fb.c: In function `au1100fb_fb_mmap':
    drivers/video/au1100fb.c:387: warning: ISO C90 forbids mixed declarations and code
    drivers/video/au1100fb.c: In function `au1100fb_drv_probe':
    drivers/video/au1100fb.c:471: warning: unsigned int format, long unsigned int arg (arg 2)
    drivers/video/au1100fb.c: At top level:
    drivers/video/au1100fb.c:617: warning: initialization from incompatible pointer type
    drivers/video/au1100fb.c:618: warning: initialization from incompatible pointer type

    Signed-off-by: Rodolfo Giometti
    Signed-off-by: Antonino Daplas
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Rodolfo Giometti
     
  • From: Benjamin Herrenschmidt

    Prevent calling of some platform functions on the clock chips of the eMac
    as it seems to cause it to lockup at boot. For now, add a quirk to prevent
    that from happening. Later, I might find out what's wrong and fix it but
    that doesn't seem to be important as the machine appear to work fine
    without running those. It's possible that Darwin doesn't run them.

    Signed-off-by: Benjamin Herrenschmidt
    Cc: Nathan Pilatzke
    Cc: Paul Mackerras
    Cc: Jean Delvare
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Benjamin Herrenschmidt
     
  • From: Stephen Hemminger

    I want to use the hrtimer's in the netem (Network Emulator) qdisc. But the
    necessary symbols aren't exported for module use.

    Also needed by SystemTap.

    Signed-off-by: Stephen Hemminger
    Acked-by: Ingo Molnar
    Cc: Thomas Gleixner
    Cc: "Stone, Joshua I"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Stephen Hemminger
     
  • From: Andrew Morton

    Revert commit ff4da2e262d2509fe1bacff70dd00934be569c66.

    It broke APM suspend, probably because APM doesn't switch back to a VT
    when suspending.

    Tracked down by Matt Mackall

    Rafael sayeth:
    "It only fixed the theoretical issue that a quick-handed user could
    switch to X after processes have been frozen and before the devices
    are suspended.

    With the current userland suspend tools it shouldn't be necessary."

    Cc: Pavel Machek
    Cc: "Rafael J. Wysocki"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • From: Corey Minyard

    This patch is pretty important to get in for IPMI, new systems have been
    changing the way ACPI and IPMI interact, and this works around the problems
    for now. This is a temporary fix until we get proper ACPI handling in
    IPMI.

    Fixed releasing already-allocated regions when a later request fails, and
    forward-ported it to HEAD.

    Some BIOSes reserve disjoint I/O regions in their ACPI tables for the IPMI
    controller. This causes problems when trying to register the entire I/O
    region. Therefore we must register each I/O port separately.

    Signed-off-by: Jordan Hargrave
    Signed-off-by: Matt Domsch
    Signed-off-by: Corey Minyard
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Corey Minyard
     
  • From: Seiji Munetoh

    Change the binary output format to actual ACPI TCPA log structure since the
    current format does not contain all event-data information that need to
    verify the PCRs in TPM. tpm_binary_bios_measurements_show() uses
    get_event_name() to convert the binary event-data to ascii format, and puts
    them as binary. However, to verify the PCRs, the event-data must be a
    actual binary event-data used by SHA1 calc. in BIOS.

    So, I think actual ACPI TCPA log is good for this binary output format.
    That way, any userland tools easily parse this data with reference to TCG
    PC specification.

    Signed-off-by: Seiji Munetoh
    Acked-by: Kylene Hall
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Seiji Munetoh
     
  • From: Seiji Munetoh

    Fix "tcpa_pc_event" misalignment between enum, strings and TCG PC spec and
    output of the event which contains a hash data.

    Signed-off-by: Seiji Munetoh
    Acked-by: Kylene Hall
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Seiji Munetoh
     
  • From: Yasunori Goto

    If hot-added memory's address is smaller than old area, spanned_pages will
    not be updated. It must be fixed.

    example) Old zone_start_pfn = 0x60000, and spanned_pages = 0x10000
    Added new memory's start_pfn = 0x50000, and end_pfn = 0x60000

    new spanned_pages will be still 0x10000 by old code.
    (It should be updated to 0x20000.) Because old_zone_end_pfn will be
    0x70000, and end_pfn smaller than it. So, spanned_pages will not be
    updated.

    In current code, spanned_pages is updated only when end_pfn is updated.
    But, it should be updated by subtraction between bigger end_pfn and new
    zone_start_pfn.

    Signed-off-by: Yasunori Goto
    Signed-off-by: Dave Hansen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Yasunori Goto
     
  • From: David Hollister

    After the system boots with the logo, if the first action is a scrollback, the
    screen may become garbled. This patch ensures that the softback_curr value is
    updated along with softback_in following the scrollback.

    Signed-off-by: David Hollister
    Signed-off-by: Jordan Crouse
    Cc: "Antonino A. Daplas"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Hollister
     
  • From: Andrew Morton

    Spotted by Jan Capek

    Cc: "Stephen C. Tweedie"
    Cc: Andreas Dilger
    Cc: Jan Capek
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     

31 May, 2006

6 commits

  • We don't enable the BTB on the ixp2350 as that can cause weird
    crashes (erratum #42.) However, some bootloaders enable the BTB,
    which means that we have to disable the BTB explicitly.

    Found thanks to Tom Rini.

    Signed-off-by: Lennert Buytenhek
    Signed-off-by: Deepak Saxena
    Signed-off-by: Linus Torvalds

    Deepak Saxena
     
  • This reverts commit 5491d0f3e206beb95eeb506510d62a1dab462df1.

    As per Andi:

    "After some discussion with people who have the affected system it
    seems best to revert for 2.6.17. It broke a common BIOS workaround
    and PCI-X still doesn't work. Alternative is for people to change
    the BIOS which seems to be better right now."

    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • int_ret_from_syscall already does syscall exit tracing, so
    no need to do it again in the caller.

    This caused problems for UML and some other special programs doing
    syscall interception.

    Signed-off-by: Andi Kleen
    Signed-off-by: Linus Torvalds

    Andi Kleen
     
  • From: Robert Hentosh

    Actually, we just stumbled on a different bug found in find_e820_area() in
    e820.c. The following code does not handle the edge condition correctly:

    while (bad_addr(&addr, size) && addr+size < ei->addr + ei->size)
    ;
    last = addr + size;
    if ( last > ei->addr + ei->size )
    continue;

    The second statement in the while loop needs to be a b) outside it. It needs to read:

    while (bad_addr(&addr, size) && addr+size addr + ei->size)
    ;

    In the case that failed bad_addr was returning an address that is exactly size
    bellow the end of the e820 range.

    AK: Again together with the earlier avoid edma fix this fixes
    boot on a Dell PE6850/16GB

    Signed-off-by: Andi Kleen
    Signed-off-by: Linus Torvalds

    Robert Hentosh
     
  • From: Daniel Yeisley

    It is possible to boot a Unisys ES7000 with CPUs from multiple cells, and not
    also include the memory from those cells. This can create a scenario where
    node 0 has cpus, but no associated memory. The system will boot fine in a
    configuration where node 0 has memory, but nodes 2 and 3 do not.

    [AK: I rechecked the code and generic code seems to indeed handle that already.
    Dan's original patch had a change for mm/slab.c that seems to be already in now.]

    Signed-off-by: Andi Kleen
    Signed-off-by: Linus Torvalds

    Daniel Yeisley
     
  • From: "Jan Beulich"

    The PM timer code updates vxtime.last_tsc, but this update was done
    incorrectly in two ways:
    - offset_delay being in microseconds requires multiplying with cpu_mhz
    rather than cpu_khz
    - the multiplication of offset_delay and cpu_khz (both being 32-bit
    values) on most current CPUs would overflow (observed value of the
    delay was approximately 4000us, yielding an overflow for frequencies
    starting a little above 1GHz)

    Signed-off-by: Jan Beulich
    Signed-off-by: Andi Kleen
    Signed-off-by: Linus Torvalds

    Jan Beulich