10 Jan, 2009

3 commits

  • …git/tip/linux-2.6-tip

    * 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (36 commits)
    x86: fix section mismatch warnings in mcheck/mce_amd_64.c
    x86: offer frame pointers in all build modes
    x86: remove duplicated #include's
    x86: k8 numa register active regions later
    x86: update Alan Cox's email addresses
    x86: rename all fields of mpc_table mpc_X to X
    x86: rename all fields of mpc_oemtable oem_X to X
    x86: rename all fields of mpc_bus mpc_X to X
    x86: rename all fields of mpc_cpu mpc_X to X
    x86: rename all fields of mpc_intsrc mpc_X to X
    x86: rename all fields of mpc_lintsrc mpc_X to X
    x86: rename all fields of mpc_iopic mpc_X to X
    x86: irqinit_64.c init_ISA_irqs should be static
    Documentation/x86/boot.txt: payload length was changed to payload_length
    x86: setup_percpu.c fix style problems
    x86: irqinit_64.c fix style problems
    x86: irqinit_32.c fix style problems
    x86: i8259.c fix style problems
    x86: irq_32.c fix style problems
    x86: ioport.c fix style problems
    ...

    Linus Torvalds
     
  • The 'rb_first()', 'rb_last()', 'rb_next()' and 'rb_prev()' calls
    take a pointer to an RB node or RB root. They do not change the
    pointed objects, so add a 'const' qualifier in order to make life
    of the users of these functions easier.

    Indeed, if I have my own constant pointer &const struct my_type *p,
    and I call 'rb_next(&p->rb)', I get a GCC warning:

    warning: passing argument 1 of ‘rb_next’ discards qualifiers from pointer target type

    Signed-off-by: Artem Bityutskiy
    Signed-off-by: David Woodhouse
    Signed-off-by: Linus Torvalds

    Artem Bityutskiy
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-2.6-nommu:
    NOMMU: Support XIP on initramfs
    NOMMU: Teach kobjsize() about VMA regions.
    FLAT: Don't attempt to expand the userspace stack to fill the space allocated
    FDPIC: Don't attempt to expand the userspace stack to fill the space allocated
    NOMMU: Improve procfs output using per-MM VMAs
    NOMMU: Make mmap allocation page trimming behaviour configurable.
    NOMMU: Make VMAs per MM as for MMU-mode linux
    NOMMU: Delete askedalloc and realalloc variables
    NOMMU: Rename ARM's struct vm_region
    NOMMU: Fix cleanup handling in ramfs_nommu_get_umapped_area()

    Linus Torvalds
     

09 Jan, 2009

1 commit


08 Jan, 2009

2 commits

  • Make VMAs per mm_struct as for MMU-mode linux. This solves two problems:

    (1) In SYSV SHM where nattch for a segment does not reflect the number of
    shmat's (and forks) done.

    (2) In mmap() where the VMA's vm_mm is set to point to the parent mm by an
    exec'ing process when VM_EXECUTABLE is specified, regardless of the fact
    that a VMA might be shared and already have its vm_mm assigned to another
    process or a dead process.

    A new struct (vm_region) is introduced to track a mapped region and to remember
    the circumstances under which it may be shared and the vm_list_struct structure
    is discarded as it's no longer required.

    This patch makes the following additional changes:

    (1) Regions are now allocated with alloc_pages() rather than kmalloc() and
    with no recourse to __GFP_COMP, so the pages are not composite. Instead,
    each page has a reference on it held by the region. Anything else that is
    interested in such a page will have to get a reference on it to retain it.
    When the pages are released due to unmapping, each page is passed to
    put_page() and will be freed when the page usage count reaches zero.

    (2) Excess pages are trimmed after an allocation as the allocation must be
    made as a power-of-2 quantity of pages.

    (3) VMAs are added to the parent MM's R/B tree and mmap lists. As an MM may
    end up with overlapping VMAs within the tree, the VMA struct address is
    appended to the sort key.

    (4) Non-anonymous VMAs are now added to the backing inode's prio list.

    (5) Holes may be punched in anonymous VMAs with munmap(), releasing parts of
    the backing region. The VMA and region structs will be split if
    necessary.

    (6) sys_shmdt() only releases one attachment to a SYSV IPC shared memory
    segment instead of all the attachments at that addresss. Multiple
    shmat()'s return the same address under NOMMU-mode instead of different
    virtual addresses as under MMU-mode.

    (7) Core dumping for ELF-FDPIC requires fewer exceptions for NOMMU-mode.

    (8) /proc/maps is now the global list of mapped regions, and may list bits
    that aren't actually mapped anywhere.

    (9) /proc/meminfo gains a line (tagged "MmapCopy") that indicates the amount
    of RAM currently allocated by mmap to hold mappable regions that can't be
    mapped directly. These are copies of the backing device or file if not
    anonymous.

    These changes make NOMMU mode more similar to MMU mode. The downside is that
    NOMMU mode requires some extra memory to track things over NOMMU without this
    patch (VMAs are no longer shared, and there are now region structs).

    Signed-off-by: David Howells
    Tested-by: Mike Frysinger
    Acked-by: Paul Mundt

    David Howells
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (24 commits)
    trivial: chack -> check typo fix in main Makefile
    trivial: Add a space (and a comma) to a printk in 8250 driver
    trivial: Fix misspelling of "firmware" in docs for ncr53c8xx/sym53c8xx
    trivial: Fix misspelling of "firmware" in powerpc Makefile
    trivial: Fix misspelling of "firmware" in usb.c
    trivial: Fix misspelling of "firmware" in qla1280.c
    trivial: Fix misspelling of "firmware" in a100u2w.c
    trivial: Fix misspelling of "firmware" in megaraid.c
    trivial: Fix misspelling of "firmware" in ql4_mbx.c
    trivial: Fix misspelling of "firmware" in acpi_memhotplug.c
    trivial: Fix misspelling of "firmware" in ipw2100.c
    trivial: Fix misspelling of "firmware" in atmel.c
    trivial: Fix misspelled firmware in Kconfig
    trivial: fix an -> a typos in documentation and comments
    trivial: fix then -> than typos in comments and documentation
    trivial: update Jesper Juhl CREDITS entry with new email
    trivial: fix singal -> signal typo
    trivial: Fix incorrect use of "loose" in event.c
    trivial: printk: fix indentation of new_text_line declaration
    trivial: rtc-stk17ta8: fix sparse warning
    ...

    Linus Torvalds
     

07 Jan, 2009

15 commits

  • CONFIG_FRAME_POINTERS=y results in much better debug info for the
    kernel (clear and precise backtraces), with the only drawback being
    a ~1% increase in kernel size.

    So offer it unconditionally and enable it by default.

    Signed-off-by: Ingo Molnar

    Ingo Molnar
     
  • …/git/tip/linux-2.6-tip

    * 'core-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    rcu: fix rcutorture bug
    rcu: eliminate synchronize_rcu_xxx macro
    rcu: make treercu safe for suspend and resume
    rcu: fix rcutree grace-period-latency bug on small systems
    futex: catch certain assymetric (get|put)_futex_key calls
    futex: make futex_(get|put)_key() calls symmetric
    locking, percpu counters: introduce separate lock classes
    swiotlb: clean up EXPORT_SYMBOL usage
    swiotlb: remove unnecessary declaration
    swiotlb: replace architecture-specific swiotlb.h with linux/swiotlb.h
    swiotlb: add support for systems with highmem
    swiotlb: store phys address in io_tlb_orig_addr array
    swiotlb: add hwdev to swiotlb_phys_to_bus() / swiotlb_sg_to_bus()

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6: (60 commits)
    uio: make uio_info's name and version const
    UIO: Documentation for UIO ioport info handling
    UIO: Pass information about ioports to userspace (V2)
    UIO: uio_pdrv_genirq: allow custom irq_flags
    UIO: use pci_ioremap_bar() in drivers/uio
    arm: struct device - replace bus_id with dev_name(), dev_set_name()
    libata: struct device - replace bus_id with dev_name(), dev_set_name()
    avr: struct device - replace bus_id with dev_name(), dev_set_name()
    block: struct device - replace bus_id with dev_name(), dev_set_name()
    chris: struct device - replace bus_id with dev_name(), dev_set_name()
    dmi: struct device - replace bus_id with dev_name(), dev_set_name()
    gadget: struct device - replace bus_id with dev_name(), dev_set_name()
    gpio: struct device - replace bus_id with dev_name(), dev_set_name()
    gpu: struct device - replace bus_id with dev_name(), dev_set_name()
    hwmon: struct device - replace bus_id with dev_name(), dev_set_name()
    i2o: struct device - replace bus_id with dev_name(), dev_set_name()
    IA64: struct device - replace bus_id with dev_name(), dev_set_name()
    i7300_idle: struct device - replace bus_id with dev_name(), dev_set_name()
    infiniband: struct device - replace bus_id with dev_name(), dev_set_name()
    ISDN: struct device - replace bus_id with dev_name(), dev_set_name()
    ...

    Linus Torvalds
     
  • For NR_CPUS >= 16 values, FBC_BATCH is 2*NR_CPUS

    Considering more and more distros are using high NR_CPUS values, it makes
    sense to use a more sensible value for FBC_BATCH, and get rid of NR_CPUS.

    A sensible value is 2*num_online_cpus(), with a minimum value of 32 (This
    minimum value helps branch prediction in __percpu_counter_add())

    We already have a hotcpu notifier, so we can adjust FBC_BATCH dynamically.

    We rename FBC_BATCH to percpu_counter_batch since its not a constant
    anymore.

    Signed-off-by: Eric Dumazet
    Acked-by: David S. Miller
    Acked-by: Peter Zijlstra
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Eric Dumazet
     
  • It decodes "\n" as 0, which is bad, because stray echo into backlight
    will turn your backlight off, etc...

    Signed-off-by: Pavel Machek
    Cc: Yi Yang
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Pavel Machek
     
  • Suppresses sparse warning:
    lib/proportions.c:159:16: warning: context imbalance in 'prop_get_global': wrong count at exit
    lib/proportions.c:159:16: context 'RCU': wanted 0, got 1
    lib/proportions.c:164:2: warning: context imbalance in 'prop_put_global': unexpected unlock
    lib/proportions.c:164:2: context 'RCU': wanted 0, got -1

    Signed-off-by: Harvey Harrison
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Harvey Harrison
     
  • radix_tree_preloads is unused outside of this file, make it static.

    Noticed by sparse:
    lib/radix-tree.c:84:1: warning: symbol 'per_cpu__radix_tree_preloads' was not declared. Should it be static?

    Signed-off-by: Harvey Harrison
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Harvey Harrison
     
  • pos is always set before being used, no need to declare a
    second one inside the if() block.

    lib/prio_heap.c:34:7: warning: symbol 'pos' shadows an earlier one
    lib/prio_heap.c:30:6: originally declared here

    Signed-off-by: Harvey Harrison
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Harvey Harrison
     
  • Signed-off-by: Alexey Dobriyan
    Cc: Gabor Gombas
    Cc: Jan Beulich
    Cc: Andi Kleen
    Cc: Ingo Molnar ,
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexey Dobriyan
     
  • This used to work unpatched with older kernels, during the development
    phase of mtdoops. Before commit e3e8a75d2acfc61ebf25524666a0a2c6abb0620c
    a space was printed with console_loglevel set to 15, which probably
    flushed the oops message as a side effect.

    This is another patch from the Nokia N810 kernel.

    Signed-off-by: Viktor Rosendahl
    Cc: Alan Cox
    Cc: Ingo Molnar
    Cc: David Woodhouse
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Viktor Rosendahl
     
  • Signed-off-by: Kay Sievers
    Signed-off-by: Greg Kroah-Hartman

    Kay Sievers
     
  • Cleanup pr_debug_write() to reduce one level of indentation.

    Cc: Marcel Holtmann
    Acked-by: Jason Baron
    Signed-off-by: Wu Fengguang
    Signed-off-by: Greg Kroah-Hartman

    Wu Fengguang
     
  • We need to return the result of uevent sending by netlink
    to caller, when uevent_helper is disabled and CONFIG_NET
    is defined.

    Signed-off-by: Ming Lei
    Cc: Kay Sievers
    Signed-off-by: Greg Kroah-Hartman

    Ming Lei
     
  • kobject_uevent_env() uses envp_ext[] as verbatim format string which
    can cause problems ranging from unexpectedly mangled string to oops if
    a string in envp_ext[] contains substring which can be interpreted as
    format. Fix it.

    Signed-off-by: Tejun Heo
    Cc: Kay Sievers
    Signed-off-by: Greg Kroah-Hartman

    Tejun Heo
     
  • Removing the completion from klist_node reduces its size from 64 bytes
    to 28 on x86-64. To maintain the semantics of klist_remove(), we add
    a single list of klist nodes which are pending deletion and scan them.

    Signed-off-by: Matthew Wilcox
    Signed-off-by: Greg Kroah-Hartman

    Matthew Wilcox
     

06 Jan, 2009

2 commits


05 Jan, 2009

1 commit


04 Jan, 2009

4 commits

  • There's no point in including the linux/swiotlb.h header twice in
    lib/swiotlb.c - this patch gets rid of the unneeded include.

    Signed-off-by: Jesper Juhl
    Signed-off-by: Ingo Molnar

    Jesper Juhl
     
  • Ingo Molnar
     
  • …/git/tip/linux-2.6-tip

    * 'cpus4096-for-linus-3' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (77 commits)
    x86: setup_per_cpu_areas() cleanup
    cpumask: fix compile error when CONFIG_NR_CPUS is not defined
    cpumask: use alloc_cpumask_var_node where appropriate
    cpumask: convert shared_cpu_map in acpi_processor* structs to cpumask_var_t
    x86: use cpumask_var_t in acpi/boot.c
    x86: cleanup some remaining usages of NR_CPUS where s/b nr_cpu_ids
    sched: put back some stack hog changes that were undone in kernel/sched.c
    x86: enable cpus display of kernel_max and offlined cpus
    ia64: cpumask fix for is_affinity_mask_valid()
    cpumask: convert RCU implementations, fix
    xtensa: define __fls
    mn10300: define __fls
    m32r: define __fls
    h8300: define __fls
    frv: define __fls
    cris: define __fls
    cpumask: CONFIG_DISABLE_OBSOLETE_CPUMASK_FUNCTIONS
    cpumask: zero extra bits in alloc_cpumask_var_node
    cpumask: replace for_each_cpu_mask_nr with for_each_cpu in kernel/time/
    cpumask: convert mm/
    ...

    Linus Torvalds
     
  • Before, when we only ever printed out the pointer value itself, a NULL
    pointer would never cause issues and might as well be printed out as
    just its numeric value.

    However, with the extended %p formats, especially %pR, we might validly
    want to print out resources for debugging. And sometimes they don't
    even exist, and the resource pointer is just NULL. Print it out as
    such, rather than oopsing.

    This is a more generic version of a patch done by Trent Piepho (catching
    all %p cases rather than just %pR, and using "(null)" instead of
    "[NULL]" to match glibc).

    Requested-by: Trent Piepho
    Acked-by: Harvey Harrison
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     

03 Jan, 2009

2 commits

  • Impact: cleanup, reduce kernel size a bit

    The current kernel build warns:

    WARNING: vmlinux.o(.text+0x11458): Section mismatch in reference from the function swiotlb_alloc_boot() to the function .init.text:__alloc_bootmem_low()
    The function swiotlb_alloc_boot() references
    the function __init __alloc_bootmem_low().
    This is often because swiotlb_alloc_boot lacks a __init
    annotation or the annotation of __alloc_bootmem_low is wrong.

    WARNING: vmlinux.o(.text+0x1011f2): Section mismatch in reference from the function swiotlb_late_init_with_default_size() to the function .init.text:__alloc_bootmem_low()
    The function swiotlb_late_init_with_default_size() references
    the function __init __alloc_bootmem_low().
    This is often because swiotlb_late_init_with_default_size lacks a __init
    annotation or the annotation of __alloc_bootmem_low is wrong.

    and indeed the functions calling __alloc_bootmem_low() can be marked
    __init as well.

    Signed-off-by: Roland Dreier
    Signed-off-by: Ingo Molnar

    Roland Dreier
     
  • …/git/tip/linux-2.6-tip

    * 'cpus4096-for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (66 commits)
    x86: export vector_used_by_percpu_irq
    x86: use logical apicid in x2apic_cluster's x2apic_cpu_mask_to_apicid_and()
    sched: nominate preferred wakeup cpu, fix
    x86: fix lguest used_vectors breakage, -v2
    x86: fix warning in arch/x86/kernel/io_apic.c
    sched: fix warning in kernel/sched.c
    sched: move test_sd_parent() to an SMP section of sched.h
    sched: add SD_BALANCE_NEWIDLE at MC and CPU level for sched_mc>0
    sched: activate active load balancing in new idle cpus
    sched: bias task wakeups to preferred semi-idle packages
    sched: nominate preferred wakeup cpu
    sched: favour lower logical cpu number for sched_mc balance
    sched: framework for sched_mc/smt_power_savings=N
    sched: convert BALANCE_FOR_xx_POWER to inline functions
    x86: use possible_cpus=NUM to extend the possible cpus allowed
    x86: fix cpu_mask_to_apicid_and to include cpu_online_mask
    x86: update io_apic.c to the new cpumask code
    x86: Introduce topology_core_cpumask()/topology_thread_cpumask()
    x86: xen: use smp_call_function_many()
    x86: use work_on_cpu in x86/kernel/cpu/mcheck/mce_amd_64.c
    ...

    Fixed up trivial conflict in kernel/time/tick-sched.c manually

    Linus Torvalds
     

01 Jan, 2009

4 commits


31 Dec, 2008

3 commits

  • Conflicts:

    arch/x86/kernel/io_apic.c

    Rusty Russell
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/slab-2.6:
    slub: avoid leaking caches or refcounts on sysfs error
    slab: Fix comment on #endif
    slab: remove GFP_THISNODE clearing from alloc_slabmgmt()
    slub: Add might_sleep_if() to slab_alloc()
    SLUB: failslab support
    slub: Fix incorrect use of loose
    slab: Update the kmem_cache_create documentation regarding the name parameter
    slub: make early_kmem_cache_node_alloc void
    slab: unsigned slabp->inuse cannot be less than 0
    slub - fix get_object_page comment
    SLUB: Replace __builtin_return_address(0) with _RET_IP_.
    SLUB: cleanup - define macros instead of hardcoded numbers

    Linus Torvalds
     
  • * 'core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (63 commits)
    stacktrace: provide save_stack_trace_tsk() weak alias
    rcu: provide RCU options on non-preempt architectures too
    printk: fix discarding message when recursion_bug
    futex: clean up futex_(un)lock_pi fault handling
    "Tree RCU": scalable classic RCU implementation
    futex: rename field in futex_q to clarify single waiter semantics
    x86/swiotlb: add default swiotlb_arch_range_needs_mapping
    x86/swiotlb: add default physbus conversion
    x86: unify pci iommu setup and allow swiotlb to compile for 32 bit
    x86: add swiotlb allocation functions
    swiotlb: consolidate swiotlb info message printing
    swiotlb: support bouncing of HighMem pages
    swiotlb: factor out copy to/from device
    swiotlb: add arch hook to force mapping
    swiotlb: allow architectures to override physbusphys conversions
    swiotlb: add comment where we handle the overflow of a dma mask on 32 bit
    rcu: fix rcutorture behavior during reboot
    resources: skip sanity check of busy resources
    swiotlb: move some definitions to header
    swiotlb: allow architectures to override swiotlb pool allocation
    ...

    Fix up trivial conflicts in
    arch/x86/kernel/Makefile
    arch/x86/mm/init_32.c
    include/linux/hardirq.h
    as per Ingo's suggestions.

    Linus Torvalds
     

30 Dec, 2008

1 commit


29 Dec, 2008

2 commits

  • Impact: fix lockdep false positives

    Classify percpu_counter instances similar to regular lock objects --
    that is, per instantiation site.

    The networking code has increased its use of percpu_counters, which
    leads to false positives if they are treated as a single class.

    Signed-off-by: Peter Zijlstra
    Signed-off-by: Ingo Molnar

    Peter Zijlstra
     
  • Currently fault-injection capability for SLAB allocator is only
    available to SLAB. This patch makes it available to SLUB, too.

    [penberg@cs.helsinki.fi: unify slab and slub implementations]
    Cc: Christoph Lameter
    Cc: Matt Mackall
    Signed-off-by: Akinobu Mita
    Signed-off-by: Pekka Enberg

    Akinobu Mita