25 Oct, 2006

5 commits

  • This patch adds support for feature fixups in modules. This involves
    adding support for R_PPC64_REL64 relocs to the 64 bits module loader.
    It also modifies modpost.c to ignore the powerpc fixup sections (or it
    would warn when used in .init.text).

    Signed-off-by: Benjamin Herrenschmidt
    Acked-by: Olof Johansson
    Signed-off-by: Paul Mackerras

    Benjamin Herrenschmidt
     
  • This patch reworks the feature fixup mecanism so vdso's can be fixed up.
    The main issue was that the construct:

    .long label (or .llong on 64 bits)

    will not work in the case of a shared library like the vdso. It will
    generate an empty placeholder in the fixup table along with a reloc,
    which is not something we can deal with in the vdso.

    The idea here (thanks Alan Modra !) is to instead use something like:

    1:
    .long label - 1b

    That is, the feature fixup tables no longer contain addresses of bits of
    code to patch, but offsets of such code from the fixup table entry
    itself. That is properly resolved by ld when building the .so's. I've
    modified the fixup mecanism generically to use that method for the rest
    of the kernel as well.

    Another trick is that the 32 bits vDSO included in the 64 bits kernel
    need to have a table in the 64 bits format. However, gas does not
    support 32 bits code with a statement of the form:

    .llong label - 1b (Or even just .llong label)

    That is, it cannot emit the right fixup/relocation for the linker to use
    to assign a 32 bits address to an .llong field. Thus, in the specific
    case of the 32 bits vdso built as part of the 64 bits kernel, we are
    using a modified macro that generates:

    .long 0xffffffff
    .llong label - 1b

    Note that is assumes that the value is negative which is enforced by
    the .lds (those offsets are always negative as the .text is always
    before the fixup table and gas doesn't support emiting the reloc the
    other way around).

    Signed-off-by: Benjamin Herrenschmidt
    Signed-off-by: Paul Mackerras

    Benjamin Herrenschmidt
     
  • This patch adds some macros that can be used with an explicit label in
    order to nest cpu features. This should be used very careful but is
    necessary for the upcoming cell TB fixup.

    Signed-off-by: Benjamin Herrenschmidt
    Acked-by: Olof Johansson
    Signed-off-by: Paul Mackerras

    Benjamin Herrenschmidt
     
  • There are currently two versions of the functions for applying the
    feature fixups, one for CPU features and one for firmware features. In
    addition, they are both in assembly and with separate implementations
    for 32 and 64 bits. identify_cpu() is also implemented in assembly and
    separately for 32 and 64 bits.

    This patch replaces them with a pair of C functions. The call sites are
    slightly moved on ppc64 as well to be called from C instead of from
    assembly, though it's a very small change, and thus shouldn't cause any
    problem.

    Signed-off-by: Benjamin Herrenschmidt
    Acked-by: Olof Johansson
    Signed-off-by: Paul Mackerras

    Benjamin Herrenschmidt
     
  • Quick fix for lack of memset(__bss_start, 0, _end-__bss_start) in
    load_kernel(). If edata is unaligned, the loop will overwrite all
    memory because r3 and r4 will never be equal.

    Signed-off-by: Olaf Hering
    Signed-off-by: Paul Mackerras

    Olaf Hering
     

23 Oct, 2006

6 commits

  • In ucc_fast.c and ucc_slow.c, "illegal" is twice spelled "illagal".

    Signed-off-by: Timur Tabi
    Signed-off-by: Paul Mackerras

    Timur Tabi
     
  • Don't require that the wrapper script be executable when building
    zImage.initrds. This has already been fixed for zImages.

    Signed-off-by: Mark A. Greer
    Signed-off-by: Paul Mackerras

    Mark A. Greer
     
  • 970GX cputable entry from Steve Winiecki.

    Signed-off-by: Jake Moilanen

    arch/powerpc/kernel/cputable.c | 15 +++++++++++++++
    arch/powerpc/oprofile/op_model_power4.c | 2 +-
    include/asm-powerpc/reg.h | 1 +
    3 files changed, 17 insertions(+), 1 deletion(-)
    Signed-off-by: Paul Mackerras

    Jake Moilanen
     
  • low_cpu_die is called from the CPU hotplug code on 32-bit powermacs,
    but it is only defined if CONFIG_PM || CONFIG_CPU_FREQ_PMAC. This
    changes the ifdef so it is defined for CONFIG_HOTPLUG_CPU on 32-bit
    machines.

    Signed-off-by: Srinivasa DS
    Signed-off-by: Paul Mackerras

    Srinivasa Ds
     
  • This fixes the warning message from the return value of function
    get_property(), by making sure that the variable that receives the
    value is marked as const.

    Signed-off-by: Roy Zang

    --
    Signed-off-by: Paul Mackerras

    Zang Roy-r61911
     
  • In calculating stolen time, we were trying to actually account for time
    spent in the hypervisor. We don't really have enough information to do
    that accurately, so don't try. Instead, we now calculate stolen time as
    time that the current cpu thread is not actually dispatching instructions.
    On chips without a PURR, we cannot do this, so stolen time will always
    be zero. On chips with a PURR, this is merely the difference between
    the elapsed PURR values and the elapsed TB values.

    This gives us much more sane vaules from tools such as mpstat, even if
    they are still a bit strange e.g. 2 busy threads on one cpu will both
    appear to have 50% user time and 50% stolen time while 1 busy thread on
    a cpu will look like 100% user on one of them and 100% idle on the other.

    Signed-off-by: Stephen Rothwell
    Signed-off-by: Paul Mackerras

    Stephen Rothwell
     

22 Oct, 2006

29 commits

  • * 'for-linus' of git://one.firstfloor.org/home/andi/git/linux-2.6:
    [PATCH] x86-64: increase PHB1 split transaction timeout
    [PATCH] x86-64: Fix C3 timer test

    Linus Torvalds
     
  • This patch increases the timeout for PCI split transactions on PHB1 on
    the first Calgary to work around an issue with the aic94xx
    adapter. Fixes kernel.org bugzilla #7180
    (http://bugzilla.kernel.org/show_bug.cgi?id=7180)

    Based on excellent debugging and a patch by Darrick J. Wong

    Signed-off-by: Muli Ben-Yehuda
    Signed-off-by: Jon Mason
    Signed-off-by: Andi Kleen
    Acked-by: Darrick J. Wong

    Muli Ben-Yehuda
     
  • There was a typo in the C3 latency test to decide of the TSC
    should be used or not. It used the C2 latency threshold, not the
    C3 one. Fix that.

    This should fix the time on various dual core laptops.

    Signed-off-by: Andi Kleen

    Andi Kleen
     
  • The current implementation uses a sequence of a cacheflush and a copy.
    This is racy in case of a multithreaded debuggee and renders GDB
    virtually unusable.

    Aside this fixes a performance hog rendering access to /proc/cmdline very
    slow and resulting in a enough cache stalls for the 34K AP/SP programming
    model to make the bare metal code on the non-Linux VPE miss RT deadlines.

    The main part of this patch was originally written by Ralf Baechle;
    Atushi Nemoto did the the debugging.

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

    Ralf Baechle
     
  • Noticed by Samium Gromoff but his patch got stale in flight ...

    Signed-off-by: Ralf Baechle

    Ralf Baechle
     
  • * 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev:
    [PATCH] libata-sff: Allow for wacky systems
    [PATCH] ahci: readability tweak
    [PATCH] libata: typo fix
    [PATCH] ATA must depend on BLOCK
    [PATCH] libata: use correct map_db values for ICH8

    Linus Torvalds
     
  • * 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6: (22 commits)
    [PATCH] ibmveth: Fix index increment calculation
    [PATCH] Fix timer race
    [PATCH] Remove useless comment from sb1250
    [PATCH] ucc_geth: changes to ucc_geth driver as a result of qe_lib changes and bugfixes
    [PATCH] sky2: 88E803X transmit lockup
    [PATCH] e1000: Reset all functions after a PCI error
    [PATCH] WAN/pc300: handle, propagate minor errors
    [PATCH] Update smc91x driver with ARM Versatile board info
    [PATCH] wireless: WE-20 compatibility for ESSID and NICKN ioctls
    [PATCH] zd1211rw: fix build-break caused by association race fix
    [PATCH] sotftmac: fix a slab corruption in WEP restricted key association
    [PATCH] airo: check if need to freeze
    [PATCH] wireless: More WE-21 potential overflows...
    [PATCH] zd1201: Possible NULL dereference
    [PATCH] orinoco: fix WE-21 buffer overflow
    [PATCH] airo.c: check returned values
    [PATCH] bcm43xx-softmac: Fix system hang for x86-64 with >1GB RAM
    [PATCH] bcm43xx-softmac: check returned value from pci_enable_device
    [PATCH] softmac: Fix WX and association related races
    [PATCH] bcm43xx: fix race condition in periodic work handler
    ...

    Linus Torvalds
     
  • * master.kernel.org:/pub/scm/linux/kernel/git/davej/agpgart:
    [AGPGART] uninorth: Add module param 'aperture' for aperture size

    Linus Torvalds
     
  • * 'for-linus' of git://one.firstfloor.org/home/andi/git/linux-2.6:
    [PATCH] x86-64: Revert timer routing behaviour back to 2.6.16 state
    [PATCH] x86-64: Overlapping program headers in physical addr space fix
    [PATCH] x86-64: Put more than one cpu in TARGET_CPUS
    [PATCH] x86: Revert new unwind kernel stack termination
    [PATCH] x86-64: Use irq_domain in ioapic_retrigger_irq
    [PATCH] i386: Disable nmi watchdog on all ThinkPads
    [PATCH] x86-64: Revert interrupt backlink changes
    [PATCH] x86-64: Fix ENOSYS in system call tracing
    [PATCH] i386: Fix fake return address
    [PATCH] x86-64: x86_64 add NX mask for PTE entry
    [PATCH] x86-64: Speed up dwarf2 unwinder
    [PATCH] x86: Use -maccumulate-outgoing-args
    [PATCH] x86-64: fix page align in e820 allocator
    [PATCH] x86-64: Fix for arch/x86_64/pci/Makefile CFLAGS
    [PATCH] i386: fix .cfi_signal_frame copy-n-paste error
    [PATCH] x86-64: typo in __assign_irq_vector when updating pos for vector and offset
    [PATCH] x86-64: x86_64 hot-add memory srat.c fix
    [PATCH] i386: Update defconfig
    [PATCH] x86-64: Update defconfig

    Linus Torvalds
     
  • If someone has renamed a directory on the server, triggering the d_move
    code in d_materialise_unique(), then we need to invalidate the cached
    directory information in the source parent directory.

    Signed-off-by: Trond Myklebust
    Cc: Miklos Szeredi
    Cc: Maneesh Soni
    Cc: Dipankar Sarma
    Cc: Neil Brown
    Cc: Al Viro
    Cc: Christoph Hellwig
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Trond Myklebust
     
  • If the caller tries to instantiate a directory using an inode that already
    has a dentry alias, then we attempt to rename the existing dentry instead
    of instantiating a new one. Fail with an ELOOP error if the rename would
    affect one of our parent directories.

    This behaviour is needed in order to avoid issues such as

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

    Signed-off-by: Trond Myklebust
    Cc: Miklos Szeredi
    Cc: Maneesh Soni
    Cc: Dipankar Sarma
    Cc: Neil Brown
    Cc: Al Viro
    Cc: Christoph Hellwig
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Trond Myklebust
     
  • CCISS was producing warnings about shifts being greater than the size of
    the type and pointers being of incompatible type. Turns out this is
    because it's calling do_div on a 32-bit quantity. Upon further
    investigation, the sector_t total_size is being assigned to an int, and
    then we're calling do_div on that int. Obviously, sector_div is called for
    here, and I took the chance to refactor the code a little.

    Signed-off-by: Matthew Wilcox
    Acked-by: Mike Miller
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Matthew Wilcox
     
  • Just like everyone else.

    Signed-off-by: Alexey Dobriyan
    Cc: Markus Lidel
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexey Dobriyan
     
  • Mistyped an ifdef CONFIG_CPUSETS - fixed.

    I doubt that anyone ever noticed. The impact of this typo was
    that if someone:
    1) was using MPOL_BIND to force off node allocations
    2) while using cpusets to constrain memory placement
    3) when that cpuset was migrating that jobs memory
    4) while the tasks in that job were actively forking
    then there was a rare chance that future allocations using
    that MPOL_BIND policy would be node local, not off node.

    Signed-off-by: Paul Jackson
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Paul Jackson
     
  • The zonelist may contain zones of nodes that have not been bootstrapped and
    we will oops if we try to allocate from those zones. So check if the node
    information for the slab and the node have been setup before attempting an
    allocation. If it has not been setup then skip that zone.

    Usually we will not encounter this situation since the slab bootstrap code
    avoids falling back before we have setup the respective nodes but we seem
    to have a special needs for pppc.

    Signed-off-by: Christoph Lameter
    Acked-by: Andy Whitcroft
    Cc: Paul Mackerras
    Cc: Mike Kravetz
    Cc: Benjamin Herrenschmidt
    Acked-by: Mel Gorman
    Acked-by: Will Schmidt
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Christoph Lameter
     
  • Reintroduce NODES_SPAN_OTHER_NODES for powerpc

    Revert "[PATCH] Remove SPAN_OTHER_NODES config definition"
    This reverts commit f62859bb6871c5e4a8e591c60befc8caaf54db8c.
    Revert "[PATCH] mm: remove arch independent NODES_SPAN_OTHER_NODES"
    This reverts commit a94b3ab7eab4edcc9b2cb474b188f774c331adf7.

    Also update the comments to indicate that this is still required
    and where its used.

    Signed-off-by: Andy Whitcroft
    Cc: Paul Mackerras
    Cc: Mike Kravetz
    Cc: Benjamin Herrenschmidt
    Acked-by: Mel Gorman
    Acked-by: Will Schmidt
    Cc: Christoph Lameter
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andy Whitcroft
     
  • The recent commit 751ae21c6cd1493e3d0a4935b08fb298b9d89773 introduced a bug
    in the producer/consumer index calculation in the ibmveth driver -
    incautious use of the post-increment ++ operator resulted in an increment
    being immediately reverted. This patch corrects the logic.

    Without this patch, the driver oopses almost immediately after activation
    on at least some machines.

    Signed-off-by: David Gibson
    Acked-by: Santiago Leon
    Cc: Jeff Garzik
    Cc: Martin Schwidefsky
    Cc: Andy Whitcroft
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Gibson
     
  • We seem to have lost the declaration of pci_get_device_reverse(), if we ever
    had one.

    Add a CONFIG_PCI=0 stub too.

    Acked-by: Alan Cox
    Cc: Greg KH
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • I have an acpi_pm that goes backwards, but it's not intel. I tested the
    verified read and my acpi_pm started to function properly. So I added it
    to the greylist. I'm assuming that's the right spot.

    I also added an unlikely() to the while, cause it seems appropriate.

    Signed-off-by: Daniel Walker
    Acked-by: John Stultz
    Acked-by: OGAWA Hirofumi
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Daniel Walker
     
  • And a couple of bug fixes found by sparse.

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

    NeilBrown
     
  • Includes a couple of bugfixes found by sparse.

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

    NeilBrown
     
  • .. so that you can use bitmaps with 32bit userspace on a 64 bit kernel.

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

    NeilBrown
     
  • Two less-used md personalities have bugs in the calculation of ->degraded (the
    extent to which the array is degraded).

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

    NeilBrown
     
  • The change from __setup() to module_param_named() requires users to prefix
    the option with "generic.".

    This patch re-adds the __setup() additionally to the module_param_named().

    Usually it would make sense getting rid of such an obsolete __setup() at
    some time, but considering that drivers/ide/ is slowly approaching a RIP
    status it's already implicitely scheduled for removal.

    This patch fixes kernel Bugzilla #7353.

    Signed-off-by: Adrian Bunk
    Acked-by: Alan Cox
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Adrian Bunk
     
  • Commits 881a8c120acf7ec09c90289e2996b7c70f51e996 and
    efe1ec27837d6639eae82e1f5876910ba6433c3f corrects pci device matching in
    only one way; it no longer oopses/crashes, despite hotplug is not solved
    in these changes.

    Whenever pci_find_device -> pci_get_device change is performed, also
    pci_dev_get and pci_dev_put should be in most cases called to properly
    handle hotplug. This patch does exactly this thing -- increase refcount
    to let kernel know, that we are using this piece of HW just now.

    It affects moxa and rio char drivers.

    Cc:
    Acked-by: Amit Gud
    Acked-by: Greg Kroah-Hartman
    Acked-by: Alan Cox
    Signed-off-by: Jiri Slaby
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jiri Slaby
     
  • There are some Linux supported platforms that simply cannot hit the low
    I/O addresses used by ATA legacy mode PCI mappings. These platforms have
    a window for PCI space that is fixed by the board logic and doesn't
    include the neccessary locations.

    Provide a config option so that such platforms faced with a controller
    that they cannot support simply error it and punt

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

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

    Alan Cox
     
  • Typo fix in commment.

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

    Tejun Heo
     
  • Fix the following compile error with CONFIG_ATA=y, CONFIG_BLOCK=n:

    ...
    CC drivers/ata/libata-scsi.o
    /home/bunk/linux/kernel-2.6/git/linux-2.6/drivers/ata/libata-scsi.c: In function ‘ata_scsi_dev_config’:
    /home/bunk/linux/kernel-2.6/git/linux-2.6/drivers/ata/libata-scsi.c:791: warning: implicit declaration of function ‘blk_queue_max_sectors’
    /home/bunk/linux/kernel-2.6/git/linux-2.6/drivers/ata/libata-scsi.c:799: error: ‘request_queue_t’ undeclared (first use in this function)
    /home/bunk/linux/kernel-2.6/git/linux-2.6/drivers/ata/libata-scsi.c:799: error: (Each undeclared identifier is reported only once
    /home/bunk/linux/kernel-2.6/git/linux-2.6/drivers/ata/libata-scsi.c:799: error: for each function it appears in.)
    /home/bunk/linux/kernel-2.6/git/linux-2.6/drivers/ata/libata-scsi.c:799: error: ‘q’ undeclared (first use in this function)
    /home/bunk/linux/kernel-2.6/git/linux-2.6/drivers/ata/libata-scsi.c:800: warning: implicit declaration of function ‘blk_queue_max_hw_segments’
    /home/bunk/linux/kernel-2.6/git/linux-2.6/drivers/ata/libata-scsi.c: In function ‘ata_scsi_slave_config’:
    /home/bunk/linux/kernel-2.6/git/linux-2.6/drivers/ata/libata-scsi.c:831:
    warning: implicit declaration of function ‘blk_queue_max_phys_segments’
    make[3]: *** [drivers/ata/libata-scsi.o] Error 1

    Bug report by Jesper Juhl.

    Signed-off-by: Adrian Bunk
    Cc: Jeff Garzik
    Signed-off-by: Andrew Morton
    Signed-off-by: Jeff Garzik

    Adrian Bunk