01 Aug, 2006

1 commit

  • The latest toolchains can produce a new ELF section in DSOs and
    dynamically-linked executables. The new section ".gnu.hash" replaces
    ".hash", and allows for more efficient runtime symbol lookups by the
    dynamic linker. The new ld option --hash-style={sysv|gnu|both} controls
    whether to produce the old ".hash", the new ".gnu.hash", or both. In some
    new systems such as Fedora Core 6, gcc by default passes --hash-style=gnu
    to the linker, so that a standard invocation of "gcc -shared" results in
    producing a DSO with only ".gnu.hash". The new ".gnu.hash" sections need
    to be dealt with the same way as ".hash" sections in all respects; only the
    dynamic linker cares about their contents. To work with older dynamic
    linkers (i.e. preexisting releases of glibc), a binary must have the old
    ".hash" section. The --hash-style=both option produces binaries that a new
    dynamic linker can use more efficiently, but an old dynamic linker can
    still handle.

    The new section runs afoul of the custom linker scripts used to build vDSO
    images for the kernel. On ia64, the failure mode for this is a boot-time
    panic because the vDSO's PT_IA_64_UNWIND segment winds up ill-formed.

    This patch addresses the problem in two ways.

    First, it mentions ".gnu.hash" in all the linker scripts alongside ".hash".
    This produces correct vDSO images with --hash-style=sysv (or old tools),
    with --hash-style=gnu, or with --hash-style=both.

    Second, it passes the --hash-style=sysv option when building the vDSO
    images, so that ".gnu.hash" is not actually produced. This is the most
    conservative choice for compatibility with any old userland. There is some
    concern that some ancient glibc builds (though not any known old production
    system) might choke on --hash-style=both binaries. The optimizations
    provided by the new style of hash section do not really matter for a DSO
    with a tiny number of symbols, as the vDSO has. If someone wants to use
    =gnu or =both for their vDSO builds and worry less about that
    compatibility, just change the option and the linker script changes will
    make any choice work fine.

    Signed-off-by: Roland McGrath
    Cc: "Luck, Tony"
    Cc: Kyle McMartin
    Cc: Paul Mackerras
    Cc: Benjamin Herrenschmidt
    Cc: Jeff Dike
    Cc: Andi Kleen
    Cc: Sam Ravnborg
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Roland McGrath
     

11 Jul, 2006

1 commit

  • MAX_NR_CONSOLES, fg_console, want_console and last_console are more of a
    function of the VT layer than the TTY one. Moving these to vt.h and vt_kern.h
    allows all of the framebuffer and VT console drivers to remove their
    dependency on tty.h.

    [akpm@osdl.org: fix alpha build]
    Signed-off-by: Jon Smirl
    Signed-off-by: Antonino Daplas
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jon Smirl
     

03 Jul, 2006

1 commit


02 Jul, 2006

1 commit


01 Jul, 2006

1 commit


30 Jun, 2006

6 commits

  • * master.kernel.org:/pub/scm/linux/kernel/git/kyle/parisc-2.6: (23 commits)
    [PARISC] Move os_id_to_string() inside #ifndef __ASSEMBLY__
    [PARISC] Fix do_gettimeofday() hang
    [PARISC] Fix PCREL22F relocation problem for most modules
    [PARISC] Refactor show_regs in traps.c
    [PARISC] Add os_id_to_string helper
    [PARISC] OS_ID_LINUX == 0x0006
    [PARISC] Ensure Space ID hashing is turned off
    [PARISC] Match show_cache_info with reality
    [PARISC] Remove unused macro fixup_branch in syscall.S
    [PARISC] Add is_compat_task() helper
    [PARISC] Update Thibaut Varene's CREDITS entry
    [PARISC] Reduce data footprint in pdc_stable.c
    [PARISC] pdc_stable version 0.30
    [PARISC] Work around machines which do not support chassis warnings
    [PARISC] PDC_CHASSIS is implemented on all machines
    [PARISC] Remove unconditional #define PIC in syscall macros
    [PARISC] Use MFIA in current_text_addr on pa2.0 processors
    [PARISC] Remove dead function pc_in_user_space
    [PARISC] Test ioc_needs_fdc variable instead of open coding
    [PARISC] Fix gcc 4.1 warnings in sba_iommu.c
    ...

    Linus Torvalds
     
  • * master.kernel.org:/pub/scm/linux/kernel/git/gregkh/pci-2.6:
    [PATCH] i386: export memory more than 4G through /proc/iomem
    [PATCH] 64bit Resource: finally enable 64bit resource sizes
    [PATCH] 64bit Resource: convert a few remaining drivers to use resource_size_t where needed
    [PATCH] 64bit resource: change pnp core to use resource_size_t
    [PATCH] 64bit resource: change pci core and arch code to use resource_size_t
    [PATCH] 64bit resource: change resource core to use resource_size_t
    [PATCH] 64bit resource: introduce resource_size_t for the start and end of struct resource
    [PATCH] 64bit resource: fix up printks for resources in misc drivers
    [PATCH] 64bit resource: fix up printks for resources in arch and core code
    [PATCH] 64bit resource: fix up printks for resources in pcmcia drivers
    [PATCH] 64bit resource: fix up printks for resources in video drivers
    [PATCH] 64bit resource: fix up printks for resources in ide drivers
    [PATCH] 64bit resource: fix up printks for resources in mtd drivers
    [PATCH] 64bit resource: fix up printks for resources in pci core and hotplug drivers
    [PATCH] 64bit resource: fix up printks for resources in networks drivers
    [PATCH] 64bit resource: fix up printks for resources in sound drivers
    [PATCH] 64bit resource: C99 changes for struct resource declarations

    Fixed up trivial conflict in drivers/ide/pci/cmd64x.c (the printk that
    was changed by the 64-bit resources had been deleted in the meantime ;)

    Linus Torvalds
     
  • Add ->retrigger() irq op to consolidate hw_irq_resend() implementations.
    (Most architectures had it defined to NOP anyway.)

    NOTE: ia64 needs testing. i386 and x86_64 tested.

    Signed-off-by: Ingo Molnar
    Signed-off-by: Thomas Gleixner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ingo Molnar
     
  • Cleanup: change ARCH_HAS_IRQ_PER_CPU into a Kconfig method.

    Signed-off-by: Ingo Molnar
    Signed-off-by: Thomas Gleixner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ingo Molnar
     
  • Consolidation: remove the irq_affinity[NR_IRQS] array and move it into the
    irq_desc[NR_IRQS].affinity field.

    [akpm@osdl.org: sparc64 build fix]
    Signed-off-by: Ingo Molnar
    Signed-off-by: Thomas Gleixner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ingo Molnar
     
  • This patch-queue improves the generic IRQ layer to be truly generic, by adding
    various abstractions and features to it, without impacting existing
    functionality.

    While the queue can be best described as "fix and improve everything in the
    generic IRQ layer that we could think of", and thus it consists of many
    smaller features and lots of cleanups, the one feature that stands out most is
    the new 'irq chip' abstraction.

    The irq-chip abstraction is about describing and coding and IRQ controller
    driver by mapping its raw hardware capabilities [and quirks, if needed] in a
    straightforward way, without having to think about "IRQ flow"
    (level/edge/etc.) type of details.

    This stands in contrast with the current 'irq-type' model of genirq
    architectures, which 'mixes' raw hardware capabilities with 'flow' details.
    The patchset supports both types of irq controller designs at once, and
    converts i386 and x86_64 to the new irq-chip design.

    As a bonus side-effect of the irq-chip approach, chained interrupt controllers
    (master/slave PIC constructs, etc.) are now supported by design as well.

    The end result of this patchset intends to be simpler architecture-level code
    and more consolidation between architectures.

    We reused many bits of code and many concepts from Russell King's ARM IRQ
    layer, the merging of which was one of the motivations for this patchset.

    This patch:

    rename desc->handler to desc->chip.

    Originally i did not want to do this, because it's a big patch. But having
    both "desc->handler", "desc->handle_irq" and "action->handler" caused a
    large degree of confusion and made the code appear alot less clean than it
    truly is.

    I have also attempted a dual approach as well by introducing a
    desc->chip alias - but that just wasnt robust enough and broke
    frequently.

    So lets get over with this quickly. The conversion was done automatically
    via scripts and converts all the code in the kernel.

    This renaming patch is the first one amongst the patches, so that the
    remaining patches can stay flexible and can be merged and split up
    without having some big monolithic patch act as a merge barrier.

    [akpm@osdl.org: build fix]
    [akpm@osdl.org: another build fix]
    Signed-off-by: Ingo Molnar
    Signed-off-by: Thomas Gleixner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ingo Molnar
     

28 Jun, 2006

16 commits

  • With Goto-san's patch, we can add new pgdat/node at runtime. I'm now
    considering node-hot-add with cpu + memory on ACPI.

    I found acpi container, which describes node, could evaluate cpu before
    memory. This means cpu-hot-add occurs before memory hot add.

    In most part, cpu-hot-add doesn't depend on node hot add. But register_cpu(),
    which creates symbolic link from node to cpu, requires that node should be
    onlined before register_cpu(). When a node is onlined, its pgdat should be
    there.

    This patch-set holds off creating symbolic link from node to cpu
    until node is onlined.

    This removes node arguments from register_cpu().

    Now, register_cpu() requires 'struct node' as its argument. But the array of
    struct node is now unified in driver/base/node.c now (By Goto's node hotplug
    patch). We can get struct node in generic way. So, this argument is not
    necessary now.

    This patch also guarantees add cpu under node only when node is onlined. It
    is necessary for node-hot-add vs. cpu-hot-add patch following this.

    Moreover, register_cpu calculates cpu->node_id by cpu_to_node() without regard
    to its 'struct node *root' argument. This patch removes it.

    Also modify callers of register_cpu()/unregister_cpu, whose args are changed
    by register-cpu-remove-node-struct patch.

    [Brice.Goglin@ens-lyon.org: fix it]
    Signed-off-by: KAMEZAWA Hiroyuki
    Cc: Yasunori Goto
    Cc: Ashok Raj
    Cc: Dave Hansen
    Signed-off-by: Brice Goglin
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    KAMEZAWA Hiroyuki
     
  • Apparently gettimeoffset can return small negative values (usually in
    the 100us range). If xtime.tv_nsec is accidentally less than this,
    though (a fortunately unlikely event) it triggers the loop forever.

    I've added a test and correct adjustment for this case. It has a
    warning printk in there which I'd like to leave for the time being
    just in case this problem implicates some other part of the kernel.

    Signed-off-by: James Bottomley
    Signed-off-by: Kyle McMartin

    James Bottomley
     
  • The new problem, which has been affecting many more modules was that
    our new ioremap really takes chunks out of our vmalloc space. The net
    result being that any two kernel vmalloc's now have to slot into the
    chunked up space. So the vmallocs for a modules init and core sectons
    are no longer necessarily contiguous. Unfortunately, the module loader
    thinks that any internal symbol references should be satisfiable using the
    jump instruction, which isn't true if the symbol is referenced from init
    to core and vmalloc placed them a long way apart.

    Fix this by introducing a new stub type for intra module inter sectional
    jumps and using it.

    Signed-off-by: James Bottomley
    Signed-off-by: Kyle McMartin

    James Bottomley
     
  • show_regs() was one bloaty function. Split it into a few cleaner
    functions and define a clean macro to print a line of registers.

    [And from Thibaut, only print fprs on a usermode trap.]

    Signed-off-by: Kyle McMartin

    Kyle McMartin
     
  • We were assigned an OS_ID of 0x0006. Consistently use OS_ID_LINUX
    instead of using the magic number. Also update the OS_ID_ defines in
    asm/pdc.h to reflect this.

    Signed-off-by: Kyle McMartin

    Kyle McMartin
     
  • Check PDC_CACHE to see if spaceid hashing is turned on, and fail to
    boot if that is the case.

    However, some old machines do not implement the PDC_CACHE_RET_SPID
    firmware call, so continue to boot if the call fails because of
    PDC_BAD_OPTION (but fail in all other error returns).

    Signed-off-by: Kyle McMartin

    Kyle McMartin
     
  • show_cache_info and struct pdc_cache_cf were out of sync with
    published documentation. Fix the reporting of cache associativity
    and update the pdc_cache_cf bitfields to match documentation.

    Signed-off-by: Kyle McMartin

    Kyle McMartin
     
  • Signed-off-by: Kyle McMartin

    Kyle McMartin
     
  • ... And convert signal.c and ptrace.c to use it instead of open
    coded equivalents.

    Signed-off-by: Kyle McMartin

    Kyle McMartin
     
  • pdc_stable v0.30:

    This patch introduces 3 more files to the /sys/firmware/stable tree:
    - diagnostic, which contains a cryptic hex string
    - osdep1, a 16 bytes os-dependent storage area always available
    - osdep2, another os-dependent storage area which existence/size depends
    on hversion.

    This patch also adds code to setup the "Linux" signature in stable
    storage. That is to say that starting with this patch, the kernel will
    now sign its OSID (0x0006, thx LaMont) in Stable Storage upon boot,
    whether pdc_stable is enabled or not.

    Signed-off-by: Thibaut VARENE
    Signed-off-by: Kyle McMartin

    Thibaut Varene
     
  • pdc_chassis v0.05:

    Some machines seems not to implement Chassis warn support. Work around these.
    Also cleanup a bit of the code.

    Signed-off-by: Thibaut VARENE
    Signed-off-by: Kyle McMartin

    Thibaut Varene
     
  • This patch removes a limitation of the original code, so that CHASSIS
    codes can be sent to all machines. On machines with a LCD panel, this
    code displays "INI" during bootup, "RUN" when the system is booted and
    running, "FLT" when a panic occurs, etc.

    This part of the code can be enabled/disabled through CONFIG_PDC_CHASSIS

    This patch also adds minimalistic support for Chassis warnings, through
    a proc entry '/proc/chassis', which will reflect the warnings status (PSU
    or fans failure when they happen, NVRAM battery level and temperature
    thresholds overflows).

    This part of the code can be enabled/disabled through CONFIG_PDC_CHASSIS_WARN

    Signed-off-by: Thibaut VARENE
    Signed-off-by: Kyle McMartin

    Thibaut Varene
     
  • This code has been crufting up the file without any use for quite
    a long time, so let's kill it.

    Signed-off-by: Kyle McMartin

    Kyle McMartin
     
  • Joel Soete noticed correctly that the fixup's clobbers must be listed
    as the ASM clobbers. FIXUP_BRANCH in unaligned.c has a new macro which
    lists all the clobbers in the fixup, we use this throughout the file
    to simplify the process of listing clobbers in the future.

    A missing "r1" clobber is added to our uaccess.h for the 64-bit
    __put_kernel_asm. Interestingly this is a pretty serious bug since gcc
    generates pretty good use of r1 as a temporary and the uses of
    __put_kernel_asm are varied and dangerous if r1 is scratched during
    an invalid write.

    Signed-off-by: Joel Soete
    Signed-off-by: Carlos O'Donell
    Signed-off-by: Kyle McMartin

    Carlos O'Donell
     
  • ldcw,co should always be used on pa2.0, otherwise the strict cache
    width alignment requirement is not relaxed.

    Signed-off-by: Kyle McMartin

    Kyle McMartin
     
  • Based on a patch series originally from Vivek Goyal

    Cc: Vivek Goyal
    Signed-off-by: Andrew Morton
    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     

23 Jun, 2006

2 commits

  • - When setting a sighandler using sigaction() call, if the flag
    SA_ONSTACK is set and no alternate stack is provided via sigaltstack(),
    the kernel still try to install the alternate stack. This behavior is
    the opposite of the one which is documented in Single Unix Specifications
    V3.

    - Also when setting an alternate stack using sigaltstack() with the flag
    SS_DISABLE, the kernel try to install the alternate stack on signal
    delivery.

    These two use cases makes the process crash at signal delivery.

    Signed-off-by: Laurent Meyer
    Cc: Richard Henderson
    Cc: Ivan Kokshaysky
    Cc: David Howells
    Cc: Yoshinori Sato
    Cc: Geert Uytterhoeven
    Cc: Roman Zippel
    Cc: Kyle McMartin
    Cc: Paul Mundt
    Cc: Kazumoto Kojima
    Cc: Chris Zankel
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Laurent MEYER
     
  • Give the statfs superblock operation a dentry pointer rather than a superblock
    pointer.

    This complements the get_sb() patch. That reduced the significance of
    sb->s_root, allowing NFS to place a fake root there. However, NFS does
    require a dentry to use as a target for the statfs operation. This permits
    the root in the vfsmount to be used instead.

    linux/mount.h has been added where necessary to make allyesconfig build
    successfully.

    Interest has also been expressed for use with the FUSE and XFS filesystems.

    Signed-off-by: David Howells
    Acked-by: Al Viro
    Cc: Nathan Scott
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Howells
     

22 Apr, 2006

5 commits


11 Apr, 2006

2 commits

  • While cleaning up parisc_ksyms.c earlier, I noticed that strpbrk wasn't
    being exported from lib/string.c. Investigating further, I noticed a
    changeset that removed its export and added it to _ksyms.c on a few more
    architectures. The justification was that "other arches do it."

    I think this is wrong, since no architecture currently defines
    __HAVE_ARCH_STRPBRK, there's no reason for any of them to be exporting it
    themselves. Therefore, consolidate the export to lib/string.c.

    Signed-off-by: Kyle McMartin
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kyle McMartin
     
  • Current implementations define NODES_SHIFT in include/asm-xxx/numnodes.h for
    each arch. Its definition is sometimes configurable. Indeed, ia64 defines 5
    NODES_SHIFT values in the current git tree. But it looks a bit messy.

    SGI-SN2(ia64) system requires 1024 nodes, and the number of nodes already has
    been changeable by config. Suitable node's number may be changed in the
    future even if it is other architecture. So, I wrote configurable node's
    number.

    This patch set defines just default value for each arch which needs multi
    nodes except ia64. But, it is easy to change to configurable if necessary.

    On ia64 the number of nodes can be already configured in generic ia64 and SN2
    config. But, NODES_SHIFT is defined for DIG64 and HP'S machine too. So, I
    changed it so that all platforms can be configured via CONFIG_NODES_SHIFT. It
    would be simpler.

    See also: http://marc.theaimsgroup.com/?l=linux-kernel&m=114358010523896&w=2

    Signed-off-by: Yasunori Goto
    Cc: Hirokazu Takata
    Cc: "Luck, Tony"
    Cc: Andi Kleen
    Cc: Paul Mackerras
    Cc: Benjamin Herrenschmidt
    Cc: Ivan Kokshaysky
    Cc: Richard Henderson
    Cc: Kyle McMartin
    Cc: Russell King
    Cc: Ralf Baechle
    Cc: Jack Steiner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Yasunori Goto
     

31 Mar, 2006

4 commits