17 Oct, 2007

3 commits

  • [apw@shadowen.org: style fixups]
    [apw@shadowen.org: vmemmap sparc64: convert to new config options]
    Signed-off-by: Andy Whitcroft
    Acked-by: Mel Gorman
    Acked-by: Christoph Lameter
    Cc: KAMEZAWA Hiroyuki
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Miller
     
  • x86(-64) are the last architectures still using the page fault notifier
    cruft for the kprobes page fault hook. This patch converts them to the
    proper direct calls, and removes the now unused pagefault notifier bits
    aswell as the cruft in kprobes.c that was related to this mess.

    I know Andi didn't really like this, but all other architecture maintainers
    agreed the direct calls are much better and besides the obvious cruft
    removal a common way of dealing with kprobes across architectures is
    important aswell.

    [akpm@linux-foundation.org: build fix]
    [akpm@linux-foundation.org: fix sparc64]
    Signed-off-by: Christoph Hellwig
    Cc: Andi Kleen
    Cc:
    Cc: Prasanna S Panchamukhi
    Cc: Ananth N Mavinakayanahalli
    Cc: Anil S Keshavamurthy
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Christoph Hellwig
     
  • Convert cpu_sibling_map from a static array sized by NR_CPUS to a per_cpu
    variable. This saves sizeof(cpumask_t) * NR unused cpus. Access is mostly
    from startup and CPU HOTPLUG functions.

    Signed-off-by: Mike Travis
    Cc: Andi Kleen
    Cc: Christoph Lameter
    Cc: "Siddha, Suresh B"
    Cc: "David S. Miller"
    Cc: Paul Mackerras
    Cc: Benjamin Herrenschmidt
    Cc: "Luck, Tony"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mike Travis
     

14 Oct, 2007

6 commits


17 Sep, 2007

1 commit

  • As noted by Al Viro, when we try to call prom_set_trap_table()
    in the SMP trampoline code we try to take the PROM call spinlock
    which doesn't work because the current thread pointer isn't
    valid yet and lockdep depends upon that being correct.

    Furthermore, we cannot set the current thread pointer register
    because it can't be properly dereferenced until we return from
    prom_set_trap_table(). Kernel TLB misses only work after that
    call.

    So do the PROM call to set the trap table directly instead of
    going through the OBP library C code, and thus avoid the lock
    altogether.

    These calls are guarenteed to be serialized fully.

    Since there are now no calls to the prom_set_trap_table{_sun4v}()
    library functions, they can be deleted.

    Signed-off-by: David S. Miller

    David S. Miller
     

31 Aug, 2007

2 commits

  • 1) sun4{u,v}_build_msi() have improper return value handling.

    We should always return negative error codes, instead of
    using the magic value "0" which could in fact be a valid
    MSI number.

    2) sun4{u,v}_build_msi() should return -ENOMEM instead of
    calling prom_prom() halt with kzalloc() of the interrupt
    data fails.

    3) We 'remembered' the MSI number using a singleton in the
    struct device archdata area, this doesn't work for MSI-X
    which can cause multiple MSIs assosciated with one device.

    Delete that archdata member, and instead store the MSI
    number in the IRQ chip data area.

    Signed-off-by: David S. Miller

    David S. Miller
     
  • Sometimes we were using 32-bit values and the top bits were
    getting inadvertantly chopped off. This will matter for the
    forthcoming Fire controller MSI support.

    Signed-off-by: David S. Miller

    David S. Miller
     

21 Aug, 2007

1 commit


17 Aug, 2007

2 commits

  • The underflow exception cases were wrong.

    This is one weird area of ieee1754 handling in that the underflow
    behavior changes based upon whether underflow is enabled in the trap
    enable mask of the FPU control register. As a specific case the Sparc
    V9 manual gives us the following description:

    --------------------
    If UFM = 0: Underflow occurs if a nonzero result is tiny and a
    loss of accuracy occurs. Tininess may be detected
    before or after rounding. Loss of accuracy may be
    either a denormalization loss or an inexact result.

    If UFM = 1: Underflow occurs if a nonzero result is tiny.
    Tininess may be detected before or after rounding.
    --------------------

    What this amounts to in the packing case is if we go subnormal,
    we set underflow if any of the following are true:

    1) rounding sets inexact
    2) we ended up rounding back up to normal (this is the case where
    we set the exponent to 1 and set the fraction to zero), this
    should set inexact too
    3) underflow is set in FPU control register trap-enable mask

    The initially discovered example was "DBL_MIN / 16.0" which
    incorrectly generated an underflow. It should not, unless underflow
    is set in the trap-enable mask of the FPU csr.

    Another example, "0x0.0000000000001p-1022 / 16.0", should signal both
    inexact and underflow. The cpu implementations and ieee1754
    literature is very clear about this. This is case #2 above.

    However, if underflow is set in the trap enable mask, only underflow
    should be set and reported as a trap. That is handled properly by the
    prioritization logic in

    arch/sparc{,64}/math-emu/math.c:record_exception().

    Based upon a report and test case from Jakub Jelinek.

    Signed-off-by: David S. Miller

    David S. Miller
     
  • Signed-off-by: David S. Miller

    David S. Miller
     

09 Aug, 2007

1 commit


08 Aug, 2007

1 commit


04 Aug, 2007

2 commits


31 Jul, 2007

1 commit

  • drivers/infiniband/hw/mthca/mthca_main.c: In function `mthca_init_icm':
    drivers/infiniband/hw/mthca/mthca_main.c:468: error: implicit declaration of function `dma_get_cache_alignment'

    Pinch the one from asm-generic/dma-mapping.h

    Signed-off-by: Andrew Morton
    Signed-off-by: David S. Miller

    Andrew Morton
     

30 Jul, 2007

3 commits


21 Jul, 2007

4 commits

  • Signed-off-by: David S. Miller

    David S. Miller
     
  • Signed-off-by: David S. Miller

    David S. Miller
     
  • The current scheme works on static interpretation of text names, which
    is wrong.

    The output-device setting, for example, must be resolved via an alias
    or similar to a full path name to the console device.

    Paths also contain an optional set of 'options', which starts with a
    colon at the end of the path. The option area is used to specify
    which of two serial ports ('a' or 'b') the path refers to when a
    device node drives multiple ports. 'a' is assumed if the option
    specification is missing.

    This was caught by the UltraSPARC-T1 simulator. The 'output-device'
    property was set to 'ttya' and we didn't pick upon the fact that this
    is an OBP alias set to '/virtual-devices/console'. Instead we saw it
    as the first serial console device, instead of the hypervisor console.

    The infrastructure is now there to take advantage of this to resolve
    the console correctly even in multi-head situations in fbcon too.

    Thanks to Greg Onufer for the bug report.

    Signed-off-by: David S. Miller

    David S. Miller
     
  • * 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/sfr/ofcons:
    Create drivers/of/platform.c
    Create linux/of_platorm.h
    [SPARC/64] Rename some functions like PowerPC
    Begin consolidation of of_device.h
    Begin to consolidate of_device.c
    Consolidate of_find_node_by routines
    Consolidate of_get_next_child
    Consolidate of_get_parent
    Consolidate of_find_property
    Consolidate of_device_is_compatible
    Start split out of common open firmware code
    Split out common parts of prom.h

    Linus Torvalds
     

20 Jul, 2007

13 commits