08 Aug, 2010

2 commits

  • * 'bkl/core' of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/random-tracing:
    do_coredump: Do not take BKL
    init: Remove the BKL from startup code

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq: (55 commits)
    workqueue: mark init_workqueues() as early_initcall()
    workqueue: explain for_each_*cwq_cpu() iterators
    fscache: fix build on !CONFIG_SYSCTL
    slow-work: kill it
    gfs2: use workqueue instead of slow-work
    drm: use workqueue instead of slow-work
    cifs: use workqueue instead of slow-work
    fscache: drop references to slow-work
    fscache: convert operation to use workqueue instead of slow-work
    fscache: convert object to use workqueue instead of slow-work
    workqueue: fix how cpu number is stored in work->data
    workqueue: fix mayday_mask handling on UP
    workqueue: fix build problem on !CONFIG_SMP
    workqueue: fix locking in retry path of maybe_create_worker()
    async: use workqueue for worker pool
    workqueue: remove WQ_SINGLE_CPU and use WQ_UNBOUND instead
    workqueue: implement unbound workqueue
    workqueue: prepare for WQ_UNBOUND implementation
    libata: take advantage of cmwq and remove concurrency limitations
    workqueue: fix worker management invocation without pending works
    ...

    Fixed up conflicts in fs/cifs/* as per Tejun. Other trivial conflicts in
    include/linux/workqueue.h, kernel/trace/Kconfig and kernel/workqueue.c

    Linus Torvalds
     

07 Aug, 2010

7 commits

  • * 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    xen: Do not suspend IPI IRQs.
    powerpc: Use IRQF_NO_SUSPEND not IRQF_TIMER for non-timer interrupts
    ixp4xx-beeper: Use IRQF_NO_SUSPEND not IRQF_TIMER for non-timer interrupt
    irq: Add new IRQ flag IRQF_NO_SUSPEND

    Linus Torvalds
     
  • …x/kernel/git/tip/linux-2.6-tip

    * 'timers-timekeeping-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    um: Fix read_persistent_clock fallout
    kgdb: Do not access xtime directly
    powerpc: Clean up obsolete code relating to decrementer and timebase
    powerpc: Rework VDSO gettimeofday to prevent time going backwards
    clocksource: Add __clocksource_updatefreq_hz/khz methods
    x86: Convert common clocksources to use clocksource_register_hz/khz
    timekeeping: Make xtime and wall_to_monotonic static
    hrtimer: Cleanup direct access to wall_to_monotonic
    um: Convert to use read_persistent_clock
    timkeeping: Fix update_vsyscall to provide wall_to_monotonic offset
    powerpc: Cleanup xtime usage
    powerpc: Simplify update_vsyscall
    time: Kill off CONFIG_GENERIC_TIME
    time: Implement timespec_add
    x86: Fix vtime/file timestamp inconsistencies

    Trivial conflicts in Documentation/feature-removal-schedule.txt

    Much less trivial conflicts in arch/powerpc/kernel/time.c resolved as
    per Thomas' earlier merge commit 47916be4e28c ("Merge branch
    'powerpc.cherry-picks' into timers/clocksource")

    Linus Torvalds
     
  • * 'timers-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    Documentation: Add timers/timers-howto.txt
    timer: Added usleep_range timer
    Revert "timer: Added usleep[_range] timer"
    clockevents: Remove the per cpu tick skew
    posix_timer: Move copy_to_user(created_timer_id) down in timer_create()
    timer: Added usleep[_range] timer
    timers: Document meaning of deferrable timer

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6: (28 commits)
    driver core: device_rename's new_name can be const
    sysfs: Remove owner field from sysfs struct attribute
    powerpc/pci: Remove owner field from attribute initialization in PCI bridge init
    regulator: Remove owner field from attribute initialization in regulator core driver
    leds: Remove owner field from attribute initialization in bd2802 driver
    scsi: Remove owner field from attribute initialization in ARCMSR driver
    scsi: Remove owner field from attribute initialization in LPFC driver
    cgroupfs: create /sys/fs/cgroup to mount cgroupfs on
    Driver core: Add BUS_NOTIFY_BIND_DRIVER
    driver core: fix memory leak on one error path in bus_register()
    debugfs: no longer needs to depend on SYSFS
    sysfs: Fix one more signature discrepancy between sysfs implementation and docs.
    sysfs: fix discrepancies between implementation and documentation
    dcdbas: remove a redundant smi_data_buf_free in dcdbas_exit
    dmi-id: fix a memory leak in dmi_id_init error path
    sysfs: sysfs_chmod_file's attr can be const
    firmware: Update hotplug script
    Driver core: move platform device creation helpers to .init.text (if MODULE=n)
    Driver core: reduce duplicated code for platform_device creation
    Driver core: use kmemdup in platform_device_add_resources
    ...

    Linus Torvalds
     
  • …/git/tip/linux-2.6-tip

    * 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (27 commits)
    sched: Use correct macro to display sched_child_runs_first in /proc/sched_debug
    sched: No need for bootmem special cases
    sched: Revert nohz_ratelimit() for now
    sched: Reduce update_group_power() calls
    sched: Update rq->clock for nohz balanced cpus
    sched: Fix spelling of sibling
    sched, cpuset: Drop __cpuexit from cpu hotplug callbacks
    sched: Fix the racy usage of thread_group_cputimer() in fastpath_timer_check()
    sched: run_posix_cpu_timers: Don't check ->exit_state, use lock_task_sighand()
    sched: thread_group_cputime: Simplify, document the "alive" check
    sched: Remove the obsolete exit_state/signal hacks
    sched: task_tick_rt: Remove the obsolete ->signal != NULL check
    sched: __sched_setscheduler: Read the RLIMIT_RTPRIO value lockless
    sched: Fix comments to make them DocBook happy
    sched: Fix fix_small_capacity
    powerpc: Exclude arch_sd_sibiling_asym_packing() on UP
    powerpc: Enable asymmetric SMT scheduling on POWER7
    sched: Add asymmetric group packing option for sibling domain
    sched: Fix capacity calculations for SMT4
    sched: Change nohz idle load balancing logic to push model
    ...

    Linus Torvalds
     
  • …git/tip/linux-2.6-tip

    * 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (162 commits)
    tracing/kprobes: unregister_trace_probe needs to be called under mutex
    perf: expose event__process function
    perf events: Fix mmap offset determination
    perf, powerpc: fsl_emb: Restore setting perf_sample_data.period
    perf, powerpc: Convert the FSL driver to use local64_t
    perf tools: Don't keep unreferenced maps when unmaps are detected
    perf session: Invalidate last_match when removing threads from rb_tree
    perf session: Free the ref_reloc_sym memory at the right place
    x86,mmiotrace: Add support for tracing STOS instruction
    perf, sched migration: Librarize task states and event headers helpers
    perf, sched migration: Librarize the GUI class
    perf, sched migration: Make the GUI class client agnostic
    perf, sched migration: Make it vertically scrollable
    perf, sched migration: Parameterize cpu height and spacing
    perf, sched migration: Fix key bindings
    perf, sched migration: Ignore unhandled task states
    perf, sched migration: Handle ignored migrate out events
    perf: New migration tool overview
    tracing: Drop cpparg() macro
    perf: Use tracepoint_synchronize_unregister() to flush any pending tracepoint call
    ...

    Fix up trivial conflicts in Makefile and drivers/cpufreq/cpufreq.c

    Linus Torvalds
     
  • * 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    Revert "net: Make accesses to ->br_port safe for sparse RCU"
    mce: convert to rcu_dereference_index_check()
    net: Make accesses to ->br_port safe for sparse RCU
    vfs: add fs.h to define struct file
    lockdep: Add an in_workqueue_context() lockdep-based test function
    rcu: add __rcu API for later sparse checking
    rcu: add an rcu_dereference_index_check()
    tree/tiny rcu: Add debug RCU head objects
    mm: remove all rcu head initializations
    fs: remove all rcu head initializations, except on_stack initializations
    powerpc: remove all rcu head initializations

    Linus Torvalds
     

06 Aug, 2010

6 commits

  • * 'kms-merge' of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/linux-2.6-kgdb:
    kgdb,docs: Update the kgdb docs to include kms
    drm_fb_helper: Preserve capability to use atomic kms
    i915: when kgdb is active display compression should be off
    drm/i915: use new fb debug hooks
    drm: add KGDB/KDB support
    fb: add hooks to handle KDB enter/exit
    kgdboc: Add call backs to allow kernel mode switching
    vt,console,kdb: automatically set kdb LINES variable
    vt,console,kdb: implement atomic console enter/leave functions

    Linus Torvalds
     
  • * 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/linux-2.6-kgdb:
    debug_core,kdb: fix crash when arch does not have single step
    kgdb,x86: use macro HBP_NUM to replace magic number 4
    kgdb,mips: remove unused kgdb_cpu_doing_single_step operations
    mm,kdb,kgdb: Add a debug reference for the kdb kmap usage
    KGDB: Remove set but unused newPC
    ftrace,kdb: Allow dumping a specific cpu's buffer with ftdump
    ftrace,kdb: Extend kdb to be able to dump the ftrace buffer
    kgdb,powerpc: Replace hardcoded offset by BREAK_INSTR_SIZE
    arm,kgdb: Add ability to trap into debugger on notify_die
    gdbstub: do not directly use dbg_reg_def[] in gdb_cmd_reg_set()
    gdbstub: Implement gdbserial 'p' and 'P' packets
    kgdb,arm: Individual register get/set for arm
    kgdb,mips: Individual register get/set for mips
    kgdb,x86: Individual register get/set for x86
    kgdb,kdb: individual register set and and get API
    gdbstub: Optimize kgdb's "thread:" response for the gdb serial protocol
    kgdb: remove custom hex_to_bin()implementation

    Linus Torvalds
     
  • We really shouldn't be asking userspace to create new root filesystems.
    So follow along with all of the other in-kernel filesystems, and provide
    a mount point in sysfs.

    For cgroupfs, this should be in /sys/fs/cgroup/ This change provides
    that mount point when the cgroup filesystem is registered in the kernel.

    Acked-by: Paul Menage
    Acked-by: Dhaval Giani
    Cc: Li Zefan
    Cc: Lennart Poettering
    Cc: Kay Sievers
    Signed-off-by: Greg Kroah-Hartman

    Greg KH
     
  • The kernel/hotplug sysctl variable (/proc/sys/kernel/hotplug file) was
    made conditional on CONFIG_NET by commit
    f743ca5e10f4145e0b3e6d11b9b46171e16af7ce (applied in 2.6.18) to fix
    problems with undefined references in 2.6.16 when CONFIG_HOTPLUG=y &&
    !CONFIG_NET, but this restriction is no longer needed.

    This patch makes the kernel/hotplug sysctl variable depend only on
    CONFIG_HOTPLUG.

    Signed-off-by: Ian Abbott
    Acked-by: Randy Dunlap
    Signed-off-by: Greg Kroah-Hartman

    Ian Abbott
     
  • * 'modules' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus:
    module: cleanup comments, remove noinline
    module: group post-relocation functions into post_relocation()
    module: move module args strndup_user to just before use
    module: pass load_info into other functions
    module: fix sysfs cleanup for !CONFIG_SYSFS
    module: sysfs cleanup
    module: layout_and_allocate
    module: fix crash in get_ksymbol() when oopsing in module init
    module: kallsyms functions take struct load_info
    module: refactor out section header rewriting: FIX modversions
    module: refactor out section header rewriting
    module: add load_info
    module: reduce stack usage for each_symbol()
    module: refactor load_module part 5
    module: refactor load_module part 4
    module: refactor load_module part 3
    module: refactor load_module part 2
    module: refactor load_module
    module: module_unload_init() cleanup

    Linus Torvalds
     
  • * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: (79 commits)
    powerpc/8xx: Add support for the MPC8xx based boards from TQC
    powerpc/85xx: Introduce support for the Freescale P1022DS reference board
    powerpc/85xx: Adding DTS for the STx GP3-SSA MPC8555 board
    powerpc/85xx: Change deprecated binding for 85xx-based boards
    powerpc/tqm85xx: add a quirk for ti1520 PCMCIA bridge
    powerpc/tqm85xx: update PCI interrupt-map attribute
    powerpc/mpc8308rdb: support for MPC8308RDB board from Freescale
    powerpc/fsl_pci: add quirk for mpc8308 pcie bridge
    powerpc/85xx: Cleanup QE initialization for MPC85xxMDS boards
    powerpc/85xx: Fix booting for P1021MDS boards
    powerpc/85xx: Fix SWIOTLB initalization for MPC85xxMDS boards
    powerpc/85xx: kexec for SMP 85xx BookE systems
    powerpc/5200/i2c: improve i2c bus error recovery
    of/xilinxfb: update tft compatible versions
    powerpc/fsl-diu-fb: Support setting display mode using EDID
    powerpc/5121: doc/dts-bindings: update doc of FSL DIU bindings
    powerpc/5121: shared DIU framebuffer support
    powerpc/5121: move fsl-diu-fb.h to include/linux
    powerpc/5121: fsl-diu-fb: fix issue with re-enabling DIU area descriptor
    powerpc/512x: add clock structure for Video-IN (VIU) unit
    ...

    Linus Torvalds
     

05 Aug, 2010

25 commits

  • * 'upstream' of git://git.linux-mips.org/pub/scm/upstream-linus: (150 commits)
    MIPS: PowerTV: Separate PowerTV USB support from non-USB code
    MIPS: strip the un-needed sections of vmlinuz
    MIPS: Clean up the calculation of VMLINUZ_LOAD_ADDRESS
    MIPS: Clean up arch/mips/boot/compressed/decompress.c
    MIPS: Clean up arch/mips/boot/compressed/ld.script
    MIPS: Unify the suffix of compressed vmlinux.bin
    MIPS: PowerTV: Add Gaia platform definitions.
    MIPS: BCM47xx: Fix nvram_getenv return value.
    MIPS: Octeon: Allow more than 3.75GB of memory with PCIe
    MIPS: Clean up notify_die() usage.
    MIPS: Remove unused task_struct.trap_no field.
    Documentation: Mention that KProbes is supported on MIPS
    SAMPLES: kprobe_example: Make it print something on MIPS.
    MIPS: kprobe: Add support.
    MIPS: Add instrunction format for BREAK and SYSCALL
    MIPS: kprobes: Define regs_return_value()
    MIPS: Ritually kill stupid printk.
    MIPS: Octeon: Disallow MSI-X interrupt and fall back to MSI interrupts.
    MIPS: Octeon: Support 256 MSI on PCIe
    MIPS: Decode core number for R2 CPUs.
    ...

    Linus Torvalds
     
  • The kernel console interface stores the number of lines it is
    configured to use. The kdb debugger can greatly benefit by knowing how
    many lines there are on the console for the pager functionality
    without having the end user compile in the setting or have to
    repeatedly change it at run time.

    Signed-off-by: Jason Wessel
    Signed-off-by: Jesse Barnes
    CC: David Airlie
    CC: Andrew Morton

    Jason Wessel
     
  • When an arch such as mips and microblaze does not implement either HW
    or software single stepping the debug core should re-enter kdb. The
    kdb code will properly ignore the single step operation. Attempting
    to single step the kernel without software or hardware support causes
    unpredictable kernel crashes.

    Signed-off-by: Jason Wessel

    Jason Wessel
     
  • In systems with more than one processor it is desirable to look at the
    per cpu trace buffers.

    Signed-off-by: Jason Wessel
    Acked-by: Steven Rostedt
    CC: Frederic Weisbecker

    Jason Wessel
     
  • Add in a helper function to allow the kdb shell to dump the ftrace
    buffer.

    Modify trace.c to expose the capability to iterate over the ftrace
    buffer in a read only capacity.

    Signed-off-by: Jason Wessel
    Acked-by: Steven Rostedt
    CC: Frederic Weisbecker

    Jason Wessel
     
  • Presently the usable registers definitions on x86 are not contiguous
    for kgdb. The x86 kgdb uses a case statement for the sparse register
    accesses. The array which defines the registers (dbg_reg_def) should
    not be used directly in order to safely work with sparse register
    definitions.

    Specifically there was a problem when gdb accesses ORIG_AX, which is
    accessed only through the case statement.

    This patch encodes register memory using the size information provided
    from the debugger which avoids the need to look up the size of the
    register. The dbg_set_reg() function always further validates the
    inputs from the debugger.

    Signed-off-by: Jason Wessel
    Signed-off-by: Dongdong Deng

    Jason Wessel
     
  • The gdbserial 'p' and 'P' packets allow gdb to individually get and
    set registers instead of querying for all the available registers.

    Signed-off-by: Jason Wessel

    Jason Wessel
     
  • The kdb shell specification includes the ability to get and set
    architecture specific registers by name.

    For the time being individual register get and set will be implemented
    on a per architecture basis. If an architecture defines
    DBG_MAX_REG_NUM > 0 then kdb and the gdbstub will use the capability
    for individually getting and setting architecture specific registers.

    Signed-off-by: Jason Wessel

    Jason Wessel
     
  • The gdb debugger understands how to parse short versions of the thread
    reference string as long as the bytes are paired in sets of two
    characters. The kgdb implementation was always sending 8 leading
    zeros which could be omitted, and further optimized in the case of
    non-negative thread numbers. The negative numbers are used to
    reference a specific cpu in the case of kgdb.

    An example of the previous i386 stop packet looks like:
    T05thread:00000000000003bb;

    New stop packet response:
    T05thread:03bb;

    The previous ThreadInfo response looks like:
    m00000000fffffffe,0000000000000001,0000000000000002,0000000000000003,0000000000000004,0000000000000005,0000000000000006,0000000000000007,000000000000000c,0000000000000088,000000000000008a,000000000000008b,000000000000008c,000000000000008d,000000000000008e,00000000000000d4,00000000000000d5,00000000000000dd

    New ThreadInfo response:
    mfffffffe,01,02,03,04,05,06,07,0c,88,8a,8b,8c,8d,8e,d4,d5,dd

    A few bytes saved means better response time when using kgdb over a
    serial line.

    Signed-off-by: Jason Wessel

    Jason Wessel
     
  • Signed-off-by: Andy Shevchenko
    Signed-off-by: Jason Wessel

    Andy Shevchenko
     
  • When a secondary CPU is being brought up, it is not uncommon for
    printk() to be invoked when cpu_online(smp_processor_id()) == 0. The
    case that I witnessed personally was on MIPS:

    http://lkml.org/lkml/2010/5/30/4

    If (can_use_console() == 0), printk() will spool its output to log_buf
    and it will be visible in "dmesg", but that output will NOT be echoed to
    the console until somebody calls release_console_sem() from a CPU that
    is online. Therefore, the boot time messages from the new CPU can get
    stuck in "limbo" for a long time, and might suddenly appear on the
    screen when a completely unrelated event (e.g. "eth0: link is down")
    occurs.

    This patch modifies the console code so that any pending messages are
    automatically flushed out to the console whenever a CPU hotplug
    operation completes successfully or aborts.

    The issue was seen on 2.6.34.

    Original patch by Kevin Cernekee with cleanups by akpm and additional fixes
    by Santosh Shilimkar. This patch superseeds
    https://patchwork.linux-mips.org/patch/1357/.

    Signed-off-by: Kevin Cernekee
    To:
    To:
    To:
    To:
    To:
    Cc:
    Cc:
    Reviewed-by: Paul Mundt
    Signed-off-by: Kevin Cernekee
    Patchwork: https://patchwork.linux-mips.org/patch/1534/
    LKML-Reference:
    LKML-Reference:
    Signed-off-by: Ralf Baechle

    Kevin Cernekee
     
  • Conflicts:
    include/linux/sched.h

    Merge reason: Add the leftover .35 urgent bits, fix the conflict.

    Signed-off-by: Ingo Molnar

    Ingo Molnar
     
  • …inux-2.6 into perf/core

    Ingo Molnar
     
  • Conflicts:
    kernel/Makefile

    Merge reason: Add the now complete topic, fix the conflict.

    Signed-off-by: Ingo Molnar

    Ingo Molnar
     
  • On my (32-bit x86) machine, sys_init_module() uses 124 bytes of stack
    once load_module() is inlined.

    This effectively reverts ffb4ba76 which inlined it due to stack
    pressure.

    Signed-off-by: Rusty Russell

    Rusty Russell
     
  • This simply hoists more code out of load_module; we also put the
    identification of the extable and dynamic debug table in with the
    others in find_module_sections().

    We move the taint check to the actual add/remove of the dynamic debug
    info: this is certain (find_module_sections is too early).

    Signed-off-by: Rusty Russell
    Cc: Yehuda Sadeh

    Rusty Russell
     
  • Instead of copying and allocating the args and storing it in
    load_info, we can just allocate them right before we need them.

    Signed-off-by: Rusty Russell

    Rusty Russell
     
  • Pass the struct load_info into all the other functions in module
    loading. This neatens things and makes them more consistent.

    Signed-off-by: Rusty Russell

    Rusty Russell
     
  • Restore the stub module_remove_modinfo_attrs, remove the now-unused
    !CONFIG_SYSFS module_sysfs_init.

    Also, rename mod_kobject_remove() to mod_sysfs_teardown() as
    it is the logical counterpart to mod_sysfs_setup now.

    Reported-by: Randy Dunlap
    Signed-off-by: Rusty Russell

    Rusty Russell
     
  • We change the sysfs functions to take struct load_info, and call
    them all in mod_sysfs_setup().

    We also clean up the #ifdefs a little.

    Signed-off-by: Rusty Russell

    Rusty Russell
     
  • layout_and_allocate() does everything up to and including the final
    struct module placement inside the allocated module memory. We have
    to store the symbol layout information in our struct load_info though.

    This avoids the nasty code we had before where 'mod' pointed first
    to the version inside the temporary allocation containing the entire
    file, then later was moved to point to the real struct module: now
    the main code only ever sees the final module address.

    (Includes fix for the Tony Luck-found Linus-diagnosed failure path
    error).

    Signed-off-by: Rusty Russell

    Rusty Russell
     
  • Andrew had the sole pleasure of tickling this bug in linux-next; when we set
    up "info->strtab" it's pointing into the temporary copy of the module. For
    most uses that is fine, but kallsyms keeps a pointer around during module
    load (inside mod->strtab).

    If we oops for some reason inside a module's init function, kallsyms will use
    the mod->strtab pointer into the now-freed temporary module copy.

    (Later oopses work fine: after init we overwrite mod->strtab to point to a
    compacted core-only strtab).

    Reported-by: Andrew "Grumpy" Morton
    Signed-off-by: Rusty "Buggy" Russell
    Tested-by: Andrew "Happy" Morton
    Signed-off-by: Rusty Russell

    Rusty Russell
     
  • Simple refactor causes us to lift struct definition to top of file.

    Signed-off-by: Rusty Russell

    Rusty Russell
     
  • We can't do the find_sec after removing the SHF_ALLOC flags; it won't
    find the sections.

    Signed-off-by: Rusty Russell

    Rusty Russell
     
  • Put all the "rewrite and check section headers" in one place. This
    adds another iteration over the sections, but it's far clearer. We
    iterate once for every find_section() so we already iterate over many
    times.

    Signed-off-by: Rusty Russell

    Rusty Russell