27 Jan, 2007

1 commit

  • On the Maple board, the AMD8111 IDE is in legacy mode... except that it
    appears on IRQ 20 instead of IRQ 15. For drivers/ide this was handled by
    the architecture's "pci_get_legacy_ide_irq()" function, but in libata we
    just hard-code the numbers 14 and 15.

    This patch provides asm-powerpc/libata-portmap.h which maps the IRQ as
    appropriate, having added a pci_dev argument to the
    ATA_{PRIM,SECOND}ARY_IRQ macros.

    There's probably a better way to do this -- especially if we observe
    that the _only_ case in which this seemingly-generic
    "pci_get_legacy_ide_irq()" function returns anything other than 14 and
    15 for primary and secondary respectively is the case of the AMD8111 on
    the Maple board -- couldn't we handle that with a special case in the
    pata_amd driver, or perhaps with a PCI quirk for Maple to switch it into
    native mode during early boot and assign resources properly?

    Signed-off-by: David Woodhouse
    Signed-off-by: Jeff Garzik

    David Woodhouse
     

31 Dec, 2006

1 commit

  • WARN_ON() ever triggering is a kernel bug. Do not try to paper over this
    fact by suggesting to the user that this is 'only' a warning, as the
    following recent commit does:

    commit 30e25b71e725b150585e17888b130e3324f8cf7c
    Author: Jeremy Fitzhardinge
    Date: Fri Dec 8 02:36:24 2006 -0800

    [PATCH] Fix generic WARN_ON message

    A warning is a warning, not a BUG.

    ( it might make sense to rename BUG() to CRASH() and BUG_ON() to
    CRASH_ON(), but that does not change the fact that WARN_ON()
    signals a kernel bug. )

    i and others objected to this change during lkml review:

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

    still the change slipped upstream - grumble :)

    Also, use the standard "BUG: " format to make it easier to grep logs and
    to make it easier to google for kernel bugs.

    Signed-off-by: Ingo Molnar
    Cc: Jeremy Fitzhardinge
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ingo Molnar
     

21 Dec, 2006

1 commit

  • This patch is designed to fix:
    - Disk eating corruptor on KT7 after resume from RAM
    - VIA IRQ handling
    - VIA fixups for bus lockups after resume from RAM

    The core of this is to add a table of resume fixups run at resume time.
    We need to do this for a variety of boards and features, but particularly
    we need to do this to get various critical VIA fixups done on resume.

    The second part of the problem is to handle VIA IRQ number rules which
    are a bit odd and need special handling for PIC interrupts. Various
    patches broke various boxes and while this one may not be perfect
    (hopefully it is) it ensures the workaround is applied to the right
    devices only.

    From: Jean Delvare

    Now that PCI quirks are replayed on software resume, we can safely
    re-enable the Asus SMBus unhiding quirk even when software suspend support
    is enabled.

    [akpm@osdl.org: fix const warning]
    Signed-off-by: Alan Cox
    Cc: Jean Delvare
    Signed-off-by: Andrew Morton
    Signed-off-by: Greg Kroah-Hartman

    Alan Cox
     

16 Dec, 2006

1 commit

  • It has caused more problems than it ever really solved, and is
    apparently not getting cleaned up and fixed. We can put it back when
    it's stable and isn't likely to make warning or bug events worse.

    In the meantime, enable frame pointers for more readable stack traces.

    Signed-off-by: Linus Torvalds

    Linus Torvalds
     

12 Dec, 2006

1 commit


09 Dec, 2006

4 commits

  • This is the grungy swap all the occurrences in the right places patch that
    goes with the updates. At this point we have the same functionality as
    before (except that sgttyb() returns speeds not zero) and are ready to
    begin turning new stuff on providing nobody reports lots of bugs

    If you are a tty driver author converting an out of tree driver the only
    impact should be termios->ktermios name changes for the speed/property
    setting functions from your upper layers.

    If you are implementing your own TCGETS function before then your driver
    was broken already and its about to get a whole lot more painful for you so
    please fix it 8)

    Also fill in c_ispeed/ospeed on init for most devices, although the current
    code will do this for you anyway but I'd like eventually to lose that extra
    paranoia

    [akpm@osdl.org: bluetooth fix]
    [mp3@de.ibm.com: sclp fix]
    [mp3@de.ibm.com: warning fix for tty3270]
    [hugh@veritas.com: fix tty_ioctl powerpc build]
    [jdike@addtoit.com: uml: fix ->set_termios declaration]
    Signed-off-by: Alan Cox
    Signed-off-by: Martin Peschke
    Acked-by: Peter Oberparleiter
    Cc: Cornelia Huck
    Signed-off-by: Hugh Dickins
    Signed-off-by: Jeff Dike
    Cc: Paolo 'Blaisorblade' Giarrusso
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alan Cox
     
  • Alter get_order() so that it can make use of ilog2() on a constant to produce
    a constant value, retaining the ability for an arch to override it in the
    non-const case.

    Signed-off-by: David Howells
    Cc: Benjamin Herrenschmidt
    Cc: Paul Mackerras
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Howells
     
  • A warning is a warning, not a BUG.

    Signed-off-by: Jeremy Fitzhardinge
    Cc: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jeremy Fitzhardinge
     
  • This patch adds common handling for kernel BUGs, for use by architectures as
    they wish. The code is derived from arch/powerpc.

    The advantages of having common BUG handling are:
    - consistent BUG reporting across architectures
    - shared implementation of out-of-line file/line data
    - implement CONFIG_DEBUG_BUGVERBOSE consistently

    This means that in inline impact of BUG is just the illegal instruction
    itself, which is an improvement for i386 and x86-64.

    A BUG is represented in the instruction stream as an illegal instruction,
    which has file/line information associated with it. This extra information is
    stored in the __bug_table section in the ELF file.

    When the kernel gets an illegal instruction, it first confirms it might
    possibly be from a BUG (ie, in kernel mode, the right illegal instruction).
    It then calls report_bug(). This searches __bug_table for a matching
    instruction pointer, and if found, prints the corresponding file/line
    information. If report_bug() determines that it wasn't a BUG which caused the
    trap, it returns BUG_TRAP_TYPE_NONE.

    Some architectures (powerpc) implement WARN using the same mechanism; if the
    illegal instruction was the result of a WARN, then report_bug(Q) returns
    CONFIG_DEBUG_BUGVERBOSE; otherwise it returns BUG_TRAP_TYPE_BUG.

    lib/bug.c keeps a list of loaded modules which can be searched for __bug_table
    entries. The architecture must call
    module_bug_finalize()/module_bug_cleanup() from its corresponding
    module_finalize/cleanup functions.

    Unsetting CONFIG_DEBUG_BUGVERBOSE will reduce the kernel size by some amount.
    At the very least, filename and line information will not be recorded for each
    but, but architectures may decide to store no extra information per BUG at
    all.

    Unfortunately, gcc doesn't have a general way to mark an asm() as noreturn, so
    architectures will generally have to include an infinite loop (or similar) in
    the BUG code, so that gcc knows execution won't continue beyond that point.
    gcc does have a __builtin_trap() operator which may be useful to achieve the
    same effect, unfortunately it cannot be used to actually implement the BUG
    itself, because there's no way to get the instruction's address for use in
    generating the __bug_table entry.

    [randy.dunlap@oracle.com: Handle BUG=n, GENERIC_BUG=n to prevent build errors]
    [bunk@stusta.de: include/linux/bug.h must always #include
    Cc: Andi Kleen
    Cc: Hugh Dickens
    Cc: Michael Ellerman
    Cc: Paul Mackerras
    Cc: Benjamin Herrenschmidt
    Cc: Rusty Russell
    Signed-off-by: Adrian Bunk
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jeremy Fitzhardinge
     

08 Dec, 2006

6 commits

  • * 'for-linus' of git://one.firstfloor.org/home/andi/git/linux-2.6: (156 commits)
    [PATCH] x86-64: Export smp_call_function_single
    [PATCH] i386: Clean up smp_tune_scheduling()
    [PATCH] unwinder: move .eh_frame to RODATA
    [PATCH] unwinder: fully support linker generated .eh_frame_hdr section
    [PATCH] x86-64: don't use set_irq_regs()
    [PATCH] x86-64: check vector in setup_ioapic_dest to verify if need setup_IO_APIC_irq
    [PATCH] x86-64: Make ix86 default to HIGHMEM4G instead of NOHIGHMEM
    [PATCH] i386: replace kmalloc+memset with kzalloc
    [PATCH] x86-64: remove remaining pc98 code
    [PATCH] x86-64: remove unused variable
    [PATCH] x86-64: Fix constraints in atomic_add_return()
    [PATCH] x86-64: fix asm constraints in i386 atomic_add_return
    [PATCH] x86-64: Correct documentation for bzImage protocol v2.05
    [PATCH] x86-64: replace kmalloc+memset with kzalloc in MTRR code
    [PATCH] x86-64: Fix numaq build error
    [PATCH] x86-64: include/asm-x86_64/cpufeature.h isn't a userspace header
    [PATCH] unwinder: Add debugging output to the Dwarf2 unwinder
    [PATCH] x86-64: Clarify error message in GART code
    [PATCH] x86-64: Fix interrupt race in idle callback (3rd try)
    [PATCH] x86-64: Remove unwind stack pointer alignment forcing again
    ...

    Fixed conflict in include/linux/uaccess.h manually

    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • Make the contents of the userspace asm/setup.h header consistent on all
    architectures:

    - export setup.h to userspace on all architectures
    - export only COMMAND_LINE_SIZE to userspace
    - frv: move COMMAND_LINE_SIZE from param.h
    - i386: remove duplicate COMMAND_LINE_SIZE from param.h
    - arm:
    - export ATAGs to userspace
    - change u8/u16/u32 to __u8/__u16/__u32

    Signed-off-by: Adrian Bunk
    Acked-by: Russell King
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Adrian Bunk
     
  • cleanup asm-generic/atomic.h

    - no longer a userspace header
    - remove the unneeded #include
    - #else/#endif comments

    [akpm@osdl.org: fix arm build]
    Signed-off-by: Adrian Bunk
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Adrian Bunk
     
  • Pass struct dev pointer to dma_cache_sync()

    dma_cache_sync() is ill-designed in that it does not have a struct device
    pointer argument which makes proper support for systems that consist of a
    mix of coherent and non-coherent DMA devices hard. Change dma_cache_sync
    to take a struct device pointer as first argument and fix all its callers
    to pass it.

    Signed-off-by: Ralf Baechle
    Cc: James Bottomley
    Cc: "David S. Miller"
    Cc: Greg KH
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ralf Baechle
     
  • dma_is_consistent() is ill-designed in that it does not have a struct
    device pointer argument which makes proper support for systems that consist
    of a mix of coherent and non-coherent DMA devices hard. Change
    dma_is_consistent to take a struct device pointer as first argument and fix
    the sole caller to pass it.

    Signed-off-by: Ralf Baechle
    Cc: James Bottomley
    Cc: "David S. Miller"
    Cc: Greg KH
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ralf Baechle
     
  • Introduce pagefault_{disable,enable}() and use these where previously we did
    manual preempt increments/decrements to make the pagefault handler do the
    atomic thing.

    Currently they still rely on the increased preempt count, but do not rely on
    the disabled preemption, this might go away in the future.

    (NOTE: the extra barrier() in pagefault_disable might fix some holes on
    machines which have too many registers for their own good)

    [heiko.carstens@de.ibm.com: s390 fix]
    Signed-off-by: Peter Zijlstra
    Acked-by: Nick Piggin
    Cc: Martin Schwidefsky
    Signed-off-by: Heiko Carstens
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Peter Zijlstra
     

07 Dec, 2006

2 commits

  • The .eh_frame section contents is never written to, so it can as well
    benefit from CONFIG_DEBUG_RODATA.

    Diff-ed against firstfloor tree.

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

    Jan Beulich
     
  • Ld knows about 2 kinds of symbols, absolute and section
    relative. Section relative symbols symbols change value
    when a section is moved and absolute symbols do not.

    Currently in the linker script we have several labels
    marking the beginning and ending of sections that
    are outside of sections, making them absolute symbols.
    Having a mixture of absolute and section relative
    symbols refereing to the same data is currently harmless
    but it is confusing.

    This must be done carefully as newer revs of ld do not place
    symbols that appear in sections without data and instead
    ld makes those symbols global :(

    My ultimate goal is to build a relocatable kernel. The
    safest and least intrusive technique is to generate
    relocation entries so the kernel can be relocated at load
    time. The only penalty would be an increase in the size
    of the kernel binary. The problem is that if absolute and
    relocatable symbols are not properly specified absolute symbols
    will be relocated or section relative symbols won't be, which
    is fatal.

    The practical motivation is that when generating kernels that
    will run from a reserved area for analyzing what caused
    a kernel panic, it is simpler if you don't need to hard code
    the physical memory location they will run at, especially
    for the distributions.

    [AK: and merged:]

    o Also put a message so that in future people can be aware of it and
    avoid introducing absolute symbols.

    Signed-off-by: Eric W. Biederman
    Signed-off-by: Vivek Goyal
    Signed-off-by: Andi Kleen

    Vivek Goyal
     

02 Dec, 2006

1 commit

  • Add arch specific dev_archdata to struct device

    Adds an arch specific struct dev_arch to struct device. This enables
    architecture to add specific fields to every device in the system, like
    DMA operation pointers, NUMA node ID, firmware specific data, etc...

    Signed-off-by: Benjamin Herrenschmidt
    Acked-by: Andi Kleen
    Acked-By: David Howells
    Signed-off-by: Greg Kroah-Hartman

    Benjamin Herrenschmidt
     

21 Nov, 2006

1 commit

  • This is a quick hack to overcome the fact that SRCU currently does not
    allow static initializers, and we need to sometimes initialize those
    things before any other initializers (even "core" ones) can do so.

    Currently we don't allow this at all for modules, and the only user that
    needs is right now is cpufreq. As reported by Thomas Gleixner:

    "Commit b4dfdbb3c707474a2254c5b4d7e62be31a4b7da9 ("[PATCH] cpufreq:
    make the transition_notifier chain use SRCU breaks cpu frequency
    notification users, which register the callback > on core_init
    level."

    Cc: Thomas Gleixner
    Cc: Ingo Molnar
    Cc: Arjan van de Ven
    Cc: Andrew Morton ,
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     

28 Oct, 2006

2 commits

  • The multithreaded-probing code has a problem: after one initcall level (eg,
    core_initcall) has been processed, we will then start processing the next
    level (postcore_initcall) while the kernel threads which are handling
    core_initcall are still executing. This breaks the guarantees which the
    layered initcalls previously gave us.

    IOW, we want to be multithreaded _within_ an initcall level, but not between
    different levels.

    Fix that up by causing the probing code to wait for all outstanding probes at
    one level to complete before we start processing the next level.

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

    Andrew Morton
     
  • Add a vmlinux.lds.h helper macro for defining the eight-level initcall table,
    teach all the architectures to use it.

    This is a prerequisite for a patch which performs initcall synchronisation for
    multithreaded-probing.

    Cc: Greg KH
    Signed-off-by: Andrew Morton
    [ Added AVR32 as well ]
    Signed-off-by: Haavard Skinnemoen
    Signed-off-by: Linus Torvalds

    Andrew Morton
     

22 Oct, 2006

1 commit

  • This changes the dwarf2 unwinder to do a binary search for CIEs
    instead of a linear work. The linker is unfortunately not
    able to build a proper lookup table at link time, instead it creates
    one at runtime as soon as the bootmem allocator is usable (so you'll continue
    using the linear lookup for the first [hopefully] few calls).
    The code should be ready to utilize a build-time created table once
    a fixed linker becomes available.

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

    Jan Beulich
     

21 Oct, 2006

1 commit

  • In most cases the return value of WARN_ON() is ignored. If the generic
    definition for the !CONFIG_BUG case is used this will result in a warning:

    CC kernel/sched.o
    In file included from include/linux/bio.h:25,
    from include/linux/blkdev.h:14,
    from kernel/sched.c:39:
    include/linux/ioprio.h: In function ‘task_ioprio’:
    include/linux/ioprio.h:50: warning: statement with no effect
    kernel/sched.c: In function ‘context_switch’:
    kernel/sched.c:1834: warning: statement with no effect

    Signed-off-by: Ralf Baechle
    Cc: Jeremy Fitzhardinge
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ralf Baechle
     

12 Oct, 2006

1 commit

  • This likely profiling is pretty fun. I found a few possible problems
    in sched.c.

    This patch may be not measurable, but when I did measure long ago,
    nooping (un)likely cost a couple of % on scheduler heavy benchmarks, so
    it all adds up.

    Tweak some branch hints:

    - the 2nd 64 bits in the bitmask is likely to be populated, because it
    contains the first 28 bits (nearly 3/4) of the normal priorities.
    (ratio of 669669:691 ~= 1000:1).

    - it isn't unlikely that context switching switches to another process. it
    might be very rapidly switching to and from the idle process (ratio of
    475815:419004 and 471330:423544). Let the branch predictor decide.

    - preempt_enable seems to be very often called in a nested preempt_disable
    or with interrupts disabled (ratio of 3567760:87965 ~= 40:1)

    Signed-off-by: Nick Piggin
    Acked-by: Ingo Molnar
    Cc: Daniel Walker
    Cc: Hua Zhong
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Nick Piggin
     

06 Oct, 2006

2 commits

  • Trivial typo fix in the "syntax error if percpu macros are incorrectly
    used" patch. I misspelled "identifier" in all places. D'Oh!

    Thanks to Dirk Mueller to point this out.

    Signed-off-by: Jan Blunck
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jan Blunck
     
  • Tim and Ananiev report that the recent WARN_ON_ONCE changes cause increased
    cache misses with the tbench workload. Apparently due to the access to the
    newly-added static variable.

    Rearrange the code so that we don't touch that variable unless the warning is
    going to trigger.

    Also rework the logic so that the static variable starts out at zero, so we
    can move it into bss.

    It would seem logical to mark the static variable as __read_mostly too. But
    it would be wrong, because that would put it back into the vmlinux image, and
    the kernel will never read from this variable in normal operation anyway.
    Unless the compiler or hardware go and do some prefetching on us?

    For some reason this patch shrinks softirq.o text by 40 bytes.

    Cc: Tim Chen
    Cc: Herbert Xu
    Cc: "Ananiev, Leonid I"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     

05 Oct, 2006

1 commit

  • Maintain a per-CPU global "struct pt_regs *" variable which can be used instead
    of passing regs around manually through all ~1800 interrupt handlers in the
    Linux kernel.

    The regs pointer is used in few places, but it potentially costs both stack
    space and code to pass it around. On the FRV arch, removing the regs parameter
    from all the genirq function results in a 20% speed up of the IRQ exit path
    (ie: from leaving timer_interrupt() to leaving do_IRQ()).

    Where appropriate, an arch may override the generic storage facility and do
    something different with the variable. On FRV, for instance, the address is
    maintained in GR28 at all times inside the kernel as part of general exception
    handling.

    Having looked over the code, it appears that the parameter may be handed down
    through up to twenty or so layers of functions. Consider a USB character
    device attached to a USB hub, attached to a USB controller that posts its
    interrupts through a cascaded auxiliary interrupt controller. A character
    device driver may want to pass regs to the sysrq handler through the input
    layer which adds another few layers of parameter passing.

    I've build this code with allyesconfig for x86_64 and i386. I've runtested the
    main part of the code on FRV and i386, though I can't test most of the drivers.
    I've also done partial conversion for powerpc and MIPS - these at least compile
    with minimal configurations.

    This will affect all archs. Mostly the changes should be relatively easy.
    Take do_IRQ(), store the regs pointer at the beginning, saving the old one:

    struct pt_regs *old_regs = set_irq_regs(regs);

    And put the old one back at the end:

    set_irq_regs(old_regs);

    Don't pass regs through to generic_handle_irq() or __do_IRQ().

    In timer_interrupt(), this sort of change will be necessary:

    - update_process_times(user_mode(regs));
    - profile_tick(CPU_PROFILING, regs);
    + update_process_times(user_mode(get_irq_regs()));
    + profile_tick(CPU_PROFILING);

    I'd like to move update_process_times()'s use of get_irq_regs() into itself,
    except that i386, alone of the archs, uses something other than user_mode().

    Some notes on the interrupt handling in the drivers:

    (*) input_dev() is now gone entirely. The regs pointer is no longer stored in
    the input_dev struct.

    (*) finish_unlinks() in drivers/usb/host/ohci-q.c needs checking. It does
    something different depending on whether it's been supplied with a regs
    pointer or not.

    (*) Various IRQ handler function pointers have been moved to type
    irq_handler_t.

    Signed-Off-By: David Howells
    (cherry picked from 1b16e7ac850969f38b375e511e3fa2f474a33867 commit)

    David Howells
     

04 Oct, 2006

1 commit


01 Oct, 2006

3 commits

  • Now that ptep_establish has a definition in PAE i386 3-level paging code, the
    only paging model which is insane enough to have multi-word hardware PTEs
    which are not efficient to set atomically, we can remove the ghost of
    set_pte_atomic from other architectures which falesly duplicated it, and
    remove all knowledge of it from the generic pgtable code.

    set_pte_atomic is now a private pte operator which is specific to i386

    Signed-off-by: Zachary Amsden
    Cc: Rusty Russell
    Cc: Jeremy Fitzhardinge
    Cc: Andi Kleen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Zachary Amsden
     
  • Implement lazy MMU update hooks which are SMP safe for both direct and shadow
    page tables. The idea is that PTE updates and page invalidations while in
    lazy mode can be batched into a single hypercall. We use this in VMI for
    shadow page table synchronization, and it is a win. It also can be used by
    PPC and for direct page tables on Xen.

    For SMP, the enter / leave must happen under protection of the page table
    locks for page tables which are being modified. This is because otherwise,
    you end up with stale state in the batched hypercall, which other CPUs can
    race ahead of. Doing this under the protection of the locks guarantees the
    synchronization is correct, and also means that spurious faults which are
    generated during this window by remote CPUs are properly handled, as the page
    fault handler must re-check the PTE under protection of the same lock.

    Signed-off-by: Zachary Amsden
    Signed-off-by: Jeremy Fitzhardinge
    Cc: Rusty Russell
    Cc: Andi Kleen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Zachary Amsden
     
  • Change pte_clear_full to a more appropriately named pte_clear_not_present,
    allowing optimizations when not-present mapping changes need not be reflected
    in the hardware TLB for protected page table modes. There is also another
    case that can use it in the fremap code.

    Signed-off-by: Zachary Amsden
    Signed-off-by: Jeremy Fitzhardinge
    Cc: Rusty Russell
    Cc: Andi Kleen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Zachary Amsden
     

30 Sep, 2006

1 commit

  • Letting WARN_ON/WARN_ON_ONCE return the condition means that you could do

    if (WARN_ON(blah)) {
    handle_impossible_case
    }

    Rather than

    if (unlikely(blah)) {
    WARN_ON(1)
    handle_impossible_case
    }

    I checked all the newly added WARN_ON_ONCE users and none of them test the
    return status so we can still change it.

    [akpm@osdl.org: warning fix]
    [akpm@osdl.org: build fix]
    Signed-off-by: Herbert Xu
    Cc: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Herbert Xu
     

27 Sep, 2006

1 commit

  • The param section is an array of "kernel_param" structures, storing only
    constant data: pointer to name, permission of the variable pointed to by
    (void *)arg and pointers to set/get methods.

    Move end_rodata down to include __param section in the read-only range used
    by CONFIG_DEBUG_RODATA.

    Signed-off-by: Marcelo Tosatti
    Acked-by: Arjan van de Ven
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Marcelo Tosatti
     

26 Sep, 2006

4 commits

  • Parsing generic pgtable.h in assembler is simply crazy. None of this file is
    needed in assembler code, and C inline functions and structures routine break
    one or more different compiles.

    Signed-off-by: Zachary Amsden
    Signed-off-by: Rusty Russell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Rusty Russell
     
  • This patch will pack any .note.* section into a PT_NOTE segment in the output
    file.

    To do this, we tell ld that we need a PT_NOTE segment. This requires us to
    start explicitly mapping sections to segments, so we also need to explicitly
    create PT_LOAD segments for text and data, and map the sections to them
    appropriately. Fortunately, each section will default to its previous
    section's segment, so it doesn't take many changes to vmlinux.lds.S.

    This only changes i386 for now, but I presume the corresponding changes for
    other architectures will be as simple.

    This change also adds , which defines C and Assembler macros
    for actually creating ELF notes.

    Signed-off-by: Jeremy Fitzhardinge
    Cc: Eric W. Biederman
    Cc: Hollis Blanchard
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jeremy Fitzhardinge
     
  • One of the changes necessary for shared page tables is to standardize the
    pxx_page macros. pte_page and pmd_page have always returned the struct
    page associated with their entry, while pte_page_kernel and pmd_page_kernel
    have returned the kernel virtual address. pud_page and pgd_page, on the
    other hand, return the kernel virtual address.

    Shared page tables needs pud_page and pgd_page to return the actual page
    structures. There are very few actual users of these functions, so it is
    simple to standardize their usage.

    Since this is basic cleanup, I am submitting these changes as a standalone
    patch. Per Hugh Dickins' comments about it, I am also changing the
    pxx_page_kernel macros to pxx_page_vaddr to clarify their meaning.

    Signed-off-by: Dave McCracken
    Cc: Hugh Dickins
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dave McCracken
     
  • get_cpu_var()/per_cpu()/__get_cpu_var() arguments must be simple
    identifiers. Otherwise the arch dependent implementations might break.

    This patch enforces the correct usage of the macros by producing a syntax
    error if the variable is not a simple identifier.

    Signed-off-by: Jan Blunck
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jan Blunck
     

24 Sep, 2006

1 commit


23 Sep, 2006

1 commit


19 Sep, 2006

1 commit