24 May, 2011

24 commits

  • The non-mmu kmap_no.c has been removed. So we can move kmap_mm.c
    back to being the only kmap.c.

    Signed-off-by: Greg Ungerer

    Greg Ungerer
     
  • The implementation of iounmap() and __ioremap() for non-mmu m68k is
    trivial. We can inline them in m68knommu headers and remove the trivial
    implementations.

    Signed-off-by: Greg Ungerer

    Greg Ungerer
     
  • None of the m68knommu platforms will ever use kernel_set_cachemode().
    And it is specific to a couple of m68k devices. So remove it.

    Signed-off-by: Greg Ungerer

    Greg Ungerer
     
  • We don't need an arch/m68k/lib/checksum.c wrapper to include the correct
    mmu or non-mmu version of the checksum code. Let the Makefile just build
    the appropriate one.

    Signed-off-by: Greg Ungerer

    Greg Ungerer
     
  • Merging the mmu and non-mmu directories we ended up with duplicate
    implementations of memcpy(). One is a little more optimized for the
    >= 68020 case, but that can easily be inserted into a single
    implementation of memcpy(). Clean up the exporting of this symbol
    too, otherwise we end up exporting it twice on a no-mmu build.

    Signed-off-by: Greg Ungerer
    Acked-by: Geert Uytterhoeven

    Greg Ungerer
     
  • Merging the mmu and non-mmu directories we ended up with duplicate
    implementations of memset(). One is a little more optimized for the
    >= 68020 case, but that can easily be inserted into a single
    implementation of memset(). Clean up the exporting of this symbol
    too, otherwise we end up exporting it twice on a no-mmu build.

    Signed-off-by: Greg Ungerer
    Acked-by: Geert Uytterhoeven

    Greg Ungerer
     
  • Merging the mmu and non-mmu directories we ended up with duplicate
    (and identical) implementations of memmove(). Remove one of them.

    Signed-off-by: Greg Ungerer
    Acked-by: Geert Uytterhoeven

    Greg Ungerer
     
  • We can easily support the slight differences in libs needed by the
    mmu and non-mmu builds in a single Makefile, so merge them back into
    a single file again.

    Signed-off-by: Greg Ungerer
    Acked-by: Geert Uytterhoeven

    Greg Ungerer
     
  • The implementation of gcc's muldi3 support function differs only in
    the use of the machine's 64 bit sized mul or not. (It isn't based
    on using an MMU or not). Merge the current mmu and non-mmu versions
    of arc/m68k/lib/muldi3 and use the appropriate pre-processor
    conditionals to get the right version for all m68k processor types.

    Signed-off-by: Greg Ungerer
    Acked-by: Geert Uytterhoeven

    Greg Ungerer
     
  • * 'x86-apic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    x86, apic: Include module.h header in apic_flat_64.c
    x86, apic: Make apic drivers static
    x86, apic: Clean up bigsmp apic selection code
    x86, apic: Use .apicdrivers section for the apic drivers list
    x86, apic: Introduce .apicdrivers section to find the list of apic drivers
    x86, x2apic: Move the common bits to x2apic.h
    x86, x2apic: Minimize IPI register writes using cluster groups
    x86, x2apic: Track the x2apic cluster sibling map
    x86, x2apic: Remove duplicate code for IPI mask routines
    x86, apic: Use probe routines to simplify apic selection
    x86, ioapic: Consolidate mp_ioapic_routing[] into 'struct ioapic'
    x86, ioapic: Consolidate gsi routing info into 'struct ioapic'
    x86, ioapic: Consolidate mp_ioapics[] into 'struct ioapic'
    x86, ioapic: Consolidate ioapic_saved_data[] into 'struct ioapic'
    x86, ioapic: Add struct ioapic
    x86, ioapic: Remove duplicate code for saving/restoring RTEs
    x86, ioapic: Use ioapic_saved_data while enabling intr-remapping
    x86, ioapic: Allocate ioapic_saved_data early
    x86, ioapic: Fix potential resume deadlock

    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:
    sched: Increase SCHED_LOAD_SCALE resolution
    sched: Introduce SCHED_POWER_SCALE to scale cpu_power calculations
    sched: Cleanup set_load_weight()

    Linus Torvalds
     
  • * 'staging-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6: (970 commits)
    staging: usbip: replace usbip_u{dbg,err,info} and printk with dev_ and pr_
    staging:iio: Trivial kconfig reorganization and uniformity improvements.
    staging:iio:documenation partial update.
    staging:iio: use pollfunc allocation helpers in remaining drivers.
    staging:iio:max1363 misc cleanups and use of for_each_bit_set to simplify event code spitting out.
    staging:iio: implement an iio_info structure to take some of the constant elements out of iio_dev.
    staging:iio:meter:ade7758: Use private data space from iio_allocate_device
    staging:iio:accel:lis3l02dq make write_reg_8 take value not a pointer to value.
    staging:iio: ring core cleanups + check if read_last available in lis3l02dq
    staging:iio:core cleanup: squash tiny wrappers and use dev_set_name to handle creation of event interface name.
    staging:iio: poll func allocation clean up.
    staging:iio:ad7780 trivial unused header cleanup.
    staging:iio:adc: AD7780: Use private data space from iio_allocate_device + trivial fixes
    staging:iio:adc:AD7780: Convert to new channel registration method
    staging:iio:adc: AD7606: Drop dev_data in favour of iio_priv()
    staging:iio:adc: AD7606: Consitently use indio_dev
    staging:iio: Rip out helper for software rings.
    staging:iio:adc:AD7298: Use private data space from iio_allocate_device
    staging:iio: rationalization of different buffer implementation hooks.
    staging:iio:imu:adis16400 avoid allocating rx, tx, and state separately from iio_dev.
    ...

    Fix up trivial conflicts in
    - drivers/staging/intel_sst/intelmid.c: patches applied in both branches
    - drivers/staging/rt2860/common/cmm_data_{pci,usb}.c: removed vs spelling
    - drivers/staging/usbip/vhci_sysfs.c: trivial header file inclusion

    Linus Torvalds
     
  • * 'usb-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6: (205 commits)
    USB: EHCI: Remove SPARC_LEON {read,write}_be definitions from ehci.h
    USB: UHCI: Support big endian GRUSBHC HC
    sparc: add {read,write}*_be routines
    USB: UHCI: Add support for big endian descriptors
    USB: UHCI: Use ACCESS_ONCE rather than using a full compiler barrier
    USB: UHCI: Add support for big endian mmio
    usb-storage: Correct adjust_quirks to include latest flags
    usb/isp1760: Fix possible unlink problems
    usb/isp1760: Move function isp1760_endpoint_disable() within file.
    USB: remove remaining usages of hcd->state from usbcore and fix regression
    usb: musb: ux500: add configuration and build options for ux500 dma
    usb: musb: ux500: add dma glue layer for ux500
    usb: musb: ux500: add dma name for ux500
    usb: musb: ux500: add ux500 specific code for gadget side
    usb: musb: fix compile error
    usb-storage: fix up the unusual_realtek device list
    USB: gadget: f_audio: Fix invalid dereference of initdata
    EHCI: don't rescan interrupt QHs needlessly
    OHCI: fix regression caused by nVidia shutdown workaround
    USB: OTG: msm: Free VCCCX regulator even if we can't set the voltage
    ...

    Linus Torvalds
     
  • apic_flat_64.c needs to include module.h because it uses
    EXPORT_SYMBOL_GPL().

    This fixes these warnings on some !SMP randconfigs:

    arch/x86/kernel/apic/apic_flat_64.c:31: warning: data definition has no type or storage class
    arch/x86/kernel/apic/apic_flat_64.c:31: warning: type defaults to 'int' in declaration of 'EXPORT_SYMBOL_GPL'
    arch/x86/kernel/apic/apic_flat_64.c:31: warning: parameter names (without types) in function declaration

    Signed-off-by: Randy Dunlap
    Cc: Stephen Rothwell
    Link: http://lkml.kernel.org/r/20110523104300.dd532a99.randy.dunlap@oracle.com
    Signed-off-by: Ingo Molnar

    Randy Dunlap
     
  • * 'tty-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty-2.6: (48 commits)
    serial: 8250_pci: add support for Cronyx Omega PCI multiserial board.
    tty/serial: Fix break handling for PORT_TEGRA
    tty/serial: Add explicit PORT_TEGRA type
    n_tracerouter and n_tracesink ldisc additions.
    Intel PTI implementaiton of MIPI 1149.7.
    Kernel documentation for the PTI feature.
    export kernel call get_task_comm().
    tty: Remove to support serial for S5P6442
    pch_phub: Support new device ML7223
    8250_pci: Add support for the Digi/IBM PCIe 2-port Adapter
    ASoC: Update cx20442 for TTY API change
    pch_uart: Support new device ML7223 IOH
    parport: Use request_muxed_region for IT87 probe and lock
    tty/serial: add support for Xilinx PS UART
    n_gsm: Use print_hex_dump_bytes
    drivers/tty/moxa.c: Put correct tty value
    TTY: tty_io, annotate locking functions
    TTY: serial_core, remove superfluous set_task_state
    TTY: serial_core, remove invalid test
    Char: moxa, fix locking in moxa_write
    ...

    Fix up trivial conflicts in drivers/bluetooth/hci_ldisc.c and
    drivers/tty/serial/Makefile.

    I did the hci_ldisc thing as an evil merge, cleaning things up.

    Linus Torvalds
     
  • cpu_sibling_mask() is not defined unless CONFIG_SMP is defined, so it
    must not be used directly in the code without ifdef protection.

    To solve the problem and avoid ifdefs in the code, define
    for_each_sibling() and use it instead.

    Signed-off-by: Guenter Roeck
    Cc: Fenghua Yu
    Cc: Durgadoss R
    Signed-off-by: Linus Torvalds

    Guenter Roeck
     
  • * 'timers-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    hrtimers: Reorder clock bases
    hrtimers: Avoid touching inactive timer bases
    hrtimers: Make struct hrtimer_cpu_base layout less stupid
    timerfd: Manage cancelable timers in timerfd
    clockevents: Move C3 stop test outside lock
    alarmtimer: Drop device refcount after rtc_open()
    alarmtimer: Check return value of class_find_device()
    timerfd: Allow timers to be cancelled when clock was set
    hrtimers: Prepare for cancel on clock was set timers

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/slab-2.6:
    slub: Deal with hyperthetical case of PAGE_SIZE > 2M
    slub: Remove node check in slab_free
    slub: avoid label inside conditional
    slub: Make CONFIG_DEBUG_PAGE_ALLOC work with new fastpath
    slub: Avoid warning for !CONFIG_SLUB_DEBUG
    slub: Remove CONFIG_CMPXCHG_LOCAL ifdeffery
    slub: Move debug handlign in __slab_free
    slub: Move node determination out of hotpath
    slub: Eliminate repeated use of c->page through a new page variable
    slub: get_map() function to establish map of free objects in a slab
    slub: Use NUMA_NO_NODE in get_partial
    slub: Fix a typo in config name

    Linus Torvalds
     
  • Conflicts:
    mm/slub.c

    Pekka Enberg
     
  • * 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/staging:
    hwmon: (coretemp) Fix checkpatch errors
    hwmon: Remove pkgtemp driver
    hwmon: (coretemp) Merge pkgtemp with coretemp
    hwmon: (pmbus) Add support for Analog Devices ADM1275
    hwmon: (pmbus) Support for TI UCD90xxx series Sequencer and System Health Controllers
    hwmon: (pmbus) Add support for TI UCD9200 series of PWM System Controllers
    hwmon: (pmbus) Use device specific function to read fan configuration
    hwmon: (pmbus) Expand scope of device specific get_status function
    hwmon: (pmbus) Introduce infrastructure to detect sensors and limit registers
    hwmon: Driver for MAX16065 System Manager and compatibles
    hwmon: (sht15) add support for CRC validation
    hwmon: (sht15) add support for the status register
    hwmon: (sht15) clean-up the probe function
    hwmon: (sht15) general code clean-up
    hwmon: Add support for MAX6642

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

    * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    perf tools: Fix sample size bit operations
    perf tools: Fix ommitted mmap data update on remap
    watchdog: Change the default timeout and configure nmi watchdog period based on watchdog_thresh
    watchdog: Disable watchdog when thresh is zero
    watchdog: Only disable/enable watchdog if neccessary
    watchdog: Fix rounding bug in get_sample_period()
    perf tools: Propagate event parse error handling
    perf tools: Robustify dynamic sample content fetch
    perf tools: Pre-check sample size before parsing
    perf tools: Move evlist sample helpers to evlist area
    perf tools: Remove junk code in mmap size handling
    perf tools: Check we are able to read the event size on mmap

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (39 commits)
    b43: fix comment typo reqest -> request
    Haavard Skinnemoen has left Atmel
    cris: typo in mach-fs Makefile
    Kconfig: fix copy/paste-ism for dell-wmi-aio driver
    doc: timers-howto: fix a typo ("unsgined")
    perf: Only include annotate.h once in tools/perf/util/ui/browsers/annotate.c
    md, raid5: Fix spelling error in comment ('Ofcourse' --> 'Of course').
    treewide: fix a few typos in comments
    regulator: change debug statement be consistent with the style of the rest
    Revert "arm: mach-u300/gpio: Fix mem_region resource size miscalculations"
    audit: acquire creds selectively to reduce atomic op overhead
    rtlwifi: don't touch with treewide double semicolon removal
    treewide: cleanup continuations and remove logging message whitespace
    ath9k_hw: don't touch with treewide double semicolon removal
    include/linux/leds-regulator.h: fix syntax in example code
    tty: fix typo in descripton of tty_termios_encode_baud_rate
    xtensa: remove obsolete BKL kernel option from defconfig
    m68k: fix comment typo 'occcured'
    arch:Kconfig.locks Remove unused config option.
    treewide: remove extra semicolons
    ...

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid: (36 commits)
    HID: hid-multitouch: cosmetic changes, sort classes and devices
    HID: hid-multitouch: class MT_CLS_STANTUM is redundant with MT_CLS_CONFIDENCE
    HID: hid-multitouch: add support for Unitec panels
    HID: hid-multitouch: add support for Touch International panels
    HID: hid-multitouch: add support for GoodTouch panels
    HID: hid-multitouch: add support for CVTouch panels
    HID: hid-multitouch: add support for ActionStar panels
    HID: hiddev: fix race between hiddev_disconnect and hiddev_release
    HID: magicmouse: ignore 'ivalid report id' while switching modes
    HID: fix a crash in hid_report_raw_event() function.
    HID: hid-multitouch: add support for Elo TouchSystems 2515 IntelliTouch Plus
    HID: assorted usage updates from hut 1.12
    HID: roccat: fix actual/startup profile sysfs attribute in koneplus
    HID: hid-multitouch: Add support for Lumio panels
    HID: 'name' and 'phys' in 'struct hid_device' can never be NULL
    HID: hid-multitouch: add support for Ilitek dual-touch panel
    HID: picolcd: Avoid compile warning/error triggered by copy_from_user()
    HID: add support for Logitech G27 wheel
    HID: hiddev: fix error path in hiddev_read when interrupted
    HID: add support for Sony Navigation Controller
    ...

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/apm:
    apm-emulation: apm_mutex breaks ACK; remove it
    APM: take over maintainership

    Linus Torvalds
     

23 May, 2011

16 commits

  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6: (346 commits)
    ASoC: core: Don't set "(null)" as a driver name
    ALSA: hda - Use LPIB for ATI/AMD chipsets as default
    Revert "ALSA: hda - Use position_fix=3 as default for AMD chipsets"
    ASoC: Tegra: Fix compile when debugfs not enabled
    ASoC: spdif-dit: Add missing MODULE_*
    SOUND: OSS: Remove Au1550 driver.
    ALSA: hda - add Intel Panther Point HDMI codec id
    ALSA: emu10k1 - Add dB range to Bass and Treble for SB Live!
    ALSA: hda - Remove PCM mixer elements from Virtual Master of realtek
    ALSA: hda - Fix input-src parse in patch_analog.c
    ASoC: davinci-mcasp: enable ping-pong SRAM buffers
    ASoC: add iPAQ hx4700 machine driver
    ASoC: Asahi Kasei AK4641 codec driver
    ALSA: hda - Enable Realtek ALC269 codec input layer beep
    ALSA: intel8x0m: enable AMD8111 modem
    ALSA: HDA: Add jack detection for HDMI
    ALSA: sound, core, pcm_lib: fix xrun_log
    ASoC: Max98095: Move existing NULL check before pointer dereference.
    ALSA: sound, core, pcm_lib: xrun_log: log also in_interrupt
    ALSA: usb-audio - Add support for USB X-Fi S51 Pro
    ...

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

    * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    x86: Eliminate various 'set but not used' warnings
    x86, SMEP: Fix section mismatch warnings
    x86, amd: Use _safe() msr access for GartTlbWlk disable code

    Linus Torvalds
     
  • 02e352287a4 (block: rescan partitions on invalidated devices on
    -ENOMEDIA too) relocated partition rescan above explicit bd_set_size()
    to simplify condition check. As rescan_partitions() does its own bdev
    size setting, this doesn't break anything; however,
    rescan_partitions() prints out the following messages when adjusting
    bdev size, which can be confusing.

    sda: detected capacity change from 0 to 146815737856
    sdb: detected capacity change from 0 to 146815737856

    This patch restores the original order and remove the warning
    messages.

    stable: Please apply together with 02e352287a4 (block: rescan
    partitions on invalidated devices on -ENOMEDIA too).

    Signed-off-by: Tejun Heo
    Reported-by: Tony Luck
    Tested-by: Tony Luck
    Cc: stable@kernel.org
    Signed-off-by: Linus Torvalds

    Tejun Heo
     
  • * 'kvm-updates/2.6.40' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (131 commits)
    KVM: MMU: Use ptep_user for cmpxchg_gpte()
    KVM: Fix kvm mmu_notifier initialization order
    KVM: Add documentation for KVM_CAP_NR_VCPUS
    KVM: make guest mode entry to be rcu quiescent state
    KVM: x86 emulator: Make jmp far emulation into a separate function
    KVM: x86 emulator: Rename emulate_grpX() to em_grpX()
    KVM: x86 emulator: Remove unused arg from emulate_pop()
    KVM: x86 emulator: Remove unused arg from writeback()
    KVM: x86 emulator: Remove unused arg from read_descriptor()
    KVM: x86 emulator: Remove unused arg from seg_override()
    KVM: Validate userspace_addr of memslot when registered
    KVM: MMU: Clean up gpte reading with copy_from_user()
    KVM: PPC: booke: add sregs support
    KVM: PPC: booke: save/restore VRSAVE (a.k.a. USPRG0)
    KVM: PPC: use ticks, not usecs, for exit timing
    KVM: PPC: fix exit accounting for SPRs, tlbwe, tlbsx
    KVM: PPC: e500: emulate SVR
    KVM: VMX: Cache vmcs segment fields
    KVM: x86 emulator: consolidate segment accessors
    KVM: VMX: Avoid reading %rip unnecessarily when handling exceptions
    ...

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (27 commits)
    bnx2x: allow device properly initialize after hotplug
    bnx2x: fix DMAE timeout according to hw specifications
    bnx2x: properly handle CFC DEL in cnic flow
    bnx2x: call dev_kfree_skb_any instead of dev_kfree_skb
    net: filter: move forward declarations to avoid compile warnings
    pktgen: refactor pg_init() code
    pktgen: use vzalloc_node() instead of vmalloc_node() + memset()
    net: skb_trim explicitely check the linearity instead of data_len
    ipv4: Give backtrace in ip_rt_bug().
    net: avoid synchronize_rcu() in dev_deactivate_many
    net: remove synchronize_net() from netdev_set_master()
    rtnetlink: ignore NETDEV_RELEASE and NETDEV_JOIN event
    net: rename NETDEV_BONDING_DESLAVE to NETDEV_RELEASE
    bridge: call NETDEV_JOIN notifiers when add a slave
    netpoll: disable netpoll when enslave a device
    macvlan: Forward unicast frames in bridge mode to lowerdev
    net: Remove linux/prefetch.h include from linux/skbuff.h
    ipv4: Include linux/prefetch.h in fib_trie.c
    netlabel: Remove prefetches from list handlers.
    drivers/net: add prefetch header for prefetch users
    ...

    Fixed up prefetch parts: removed a few duplicate prefetch.h includes,
    fixed the location of the igb prefetch.h, took my version of the
    skbuff.h code without the extra parentheses etc.

    Linus Torvalds
     
  • * 'exec_rm_compat' of git://git.kernel.org/pub/scm/linux/kernel/git/oleg/misc:
    exec: document acct_arg_size()
    exec: unify do_execve/compat_do_execve code
    exec: introduce struct user_arg_ptr
    exec: introduce get_user_arg_ptr() helper

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-fixes:
    GFS2: Wait properly when flushing the ail list
    GFS2: Wipe directory hash table metadata when deallocating a directory

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-ktest:
    ktest: Allow options to be used by other options
    ktest: Create variables for the ktest config files
    ktest: Reboot after each patchcheck run
    ktest: Reboot to good kernel after every bisect run
    ktest: If test failed due to timeout, print that
    ktest: Fix post install command

    Linus Torvalds
     
  • The ordering of the clock bases is historical due to the
    CLOCK_REALTIME and CLOCK_MONOTONIC constants. Now the hrtimer bases
    have their own enumeration due to the gap between CLOCK_MONOTONIC and
    CLOCK_BOOTTIME. So we can be more clever as most timers end up on the
    CLOCK_MONOTONIC base due to the virtue of POSIX declaring that
    relative CLOCK_REALTIME timers are not affected by time changes. In
    desktop environments this is slowly changing as applications switch to
    absolute timers, but I've observed empty CLOCK_REALTIME bases often
    enough. There is no performance penalty or overhead when
    CLOCK_REALTIME timers are active, but in case they are not we don't
    skip over a full cache line.

    Signed-off-by: Thomas Gleixner
    Reviewed-by: Peter Zijlstra

    Thomas Gleixner
     
  • Instead of iterating over all possible timer bases avoid it by marking
    the active bases in the cpu base.

    Signed-off-by: Thomas Gleixner
    Reviewed-by: Peter Zijlstra

    Thomas Gleixner
     
  • In the HIGHRES=y case we access the members at the end of struct
    hrtimer_cpu_base first and then the one at the beginning. Move the
    hrtimer data to front, so we have linear progressing access.

    Signed-off-by: Thomas Gleixner
    Reviewed-by: Peter Zijlstra

    Thomas Gleixner
     
  • Peter is concerned about the extra scan of CLOCK_REALTIME_COS in the
    timer interrupt. Yes, I did not think about it, because the solution
    was so elegant. I didn't like the extra list in timerfd when it was
    proposed some time ago, but with a rcu based list the list walk it's
    less horrible than the original global lock, which was held over the
    list iteration.

    Requested-by: Peter Zijlstra
    Signed-off-by: Thomas Gleixner
    Reviewed-by: Peter Zijlstra

    Thomas Gleixner
     
  • What we want is to count the number of bits in the mask,
    not some other random operation written in the middle
    of the night.

    Signed-off-by: Frederic Weisbecker
    Cc: Peter Zijlstra
    Cc: Arnaldo Carvalho de Melo
    Cc: Stephane Eranian
    Link: http://lkml.kernel.org/r/1306148788-6179-2-git-send-email-fweisbec@gmail.com
    [ Fixed perf_event__names[] alignment which was nearby and hurting my eyes ... ]
    Signed-off-by: Ingo Molnar

    Frederic Weisbecker
     
  • Commit eac9eacee16 "perf tools: Check we are able to read the event
    size on mmap" brought a check to ensure we can read the size of the
    event before dereferencing it, and do a remap otherwise to move the
    buffer forward.

    However that remap was ommitting all the necessary work to
    update the new page offset, head, and to unmap previous pages,
    etc...

    To fix this, gather all the code that fetches the event in a
    seperate helper which does all the necessary checks about the
    header/event size and tells us anytime a remap is needed.

    Signed-off-by: Frederic Weisbecker
    Cc: Peter Zijlstra
    Cc: Arnaldo Carvalho de Melo
    Cc: Stephane Eranian
    Link: http://lkml.kernel.org/r/1306148788-6179-3-git-send-email-fweisbec@gmail.com
    Signed-off-by: Ingo Molnar

    Frederic Weisbecker
     
  • apm_mutex is locked by a process (e.g. apm -s) at the start of apm_ioctl() and
    remains locked while pm_suspend() is called. Any subsequent process trying to
    ACK the suspend (e.g. apmd) is then blocked at the start of apm_ioctl(),
    causing the suspend to be delayed for 5 seconds in apm_suspend_notifier()
    while the ACK times out. In short, ACKs don't work.

    The driver's data structures are sufficiently protected by assorted locks. And
    pm_suspend() has its own mutex to prevent reentrancy. Consequently there is no
    obvious requirement for apm_mutex, which evolved from earlier BKL calls. So
    let's remove it.

    Signed-off-by: Paul Parsons
    Acked-by: Rafael J. Wysocki
    Signed-off-by: Jiri Kosina

    Paul Parsons
     
  • Jiri Kosina