27 Jan, 2009

2 commits

  • …/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:
    debugobjects: add and use INIT_WORK_ON_STACK
    rcu: remove duplicate CONFIG_RCU_CPU_STALL_DETECTOR
    relay: fix lock imbalance in relay_late_setup_files
    oprofile: fix uninitialized use of struct op_entry
    rcu: move Kconfig menu
    softlock: fix false panic which can occur if softlockup_thresh is reduced
    rcu: add __cpuinit to rcu_init_percpu_data()

    Linus Torvalds
     
  • …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: (29 commits)
    xen: unitialised return value in xenbus_write_transaction
    x86: fix section mismatch warning
    x86: unmask CPUID levels on Intel CPUs, fix
    x86: work around PAGE_KERNEL_WC not getting WC in iomap_atomic_prot_pfn.
    x86: use standard PIT frequency
    xen: handle highmem pages correctly when shrinking a domain
    x86, mm: fix pte_free()
    xen: actually release memory when shrinking domain
    x86: unmask CPUID levels on Intel CPUs
    x86: add MSR_IA32_MISC_ENABLE bits to <asm/msr-index.h>
    x86: fix PTE corruption issue while mapping RAM using /dev/mem
    x86: mtrr fix debug boot parameter
    x86: fix page attribute corruption with cpa()
    Revert "x86: signal: change type of paramter for sys_rt_sigreturn()"
    x86: use early clobbers in usercopy*.c
    x86: remove kernel_physical_mapping_init() from init section
    fix: crash: IP: __bitmap_intersects+0x48/0x73
    cpufreq: use work_on_cpu in acpi-cpufreq.c for drv_read and drv_write
    work_on_cpu: Use our own workqueue.
    work_on_cpu: don't try to get_online_cpus() in work_on_cpu.
    ...

    Linus Torvalds
     

22 Jan, 2009

2 commits


19 Jan, 2009

1 commit

  • Commit da4276b8299a6544dc41ac2485d3ffca5811b3fb changed a dependency
    for FRAME_POINTER from X86 to ARCH_WANT_FRAME_POINTERS, but didn't
    actually define it.

    This patch adds the definition for ARCH_WANT_FRAME_POINTERS. Without it,
    FRAME_POINTER can't be enabled on x86.

    Signed-off-by: Jeff Mahoney
    Signed-off-by: Ingo Molnar

    Jeff Mahoney
     

16 Jan, 2009

2 commits

  • David points out that the idr_remove_all() function returns unused slabs
    to the kmem cache, but needs to zero them first or else they will be
    uninitialized upon next use. This causes crashes which have been observed
    in the firewire subsystem.

    He fixed this by zeroing the object before freeing it in idr_remove_all().

    But we agree that simply removing the constructor and zeroing the object
    at allocation time is simpler than relying upon slab constructor machinery
    and might even be faster.

    This problem was introduced by "idr: make idr_remove rcu-safe" (commit
    cf481c20c476ad2c0febdace9ce23f5a4db19582), which was first released in
    2.6.27.

    There are no known codesites which trigger this bug in 2.6.27 or 2.6.28.
    The post-2.6.28 firewire changes are the only known triggerer.

    There might of course be not-yet-discovered triggerers in 2.6.27 and
    2.6.28, and there might be out-of-tree triggerers which are added to those
    kernel versions. I'll let the -stable guys decide whether they want to
    backport this fix.

    Reported-by: David Moore
    Cc: Stefan Richter
    Cc: Nadia Derbey
    Cc: Paul E. McKenney
    Cc: Manfred Spraul
    Cc: Kristian Hgsberg
    Acked-by: Pekka Enberg
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • idr_get_new_above() and ida_get_new_above() return an id in the range of
    @staring_id ... 0x7fffffff, not 0 ... 0x7fffffff.

    Signed-off-by: Li Zefan
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Li Zefan
     

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

3 commits