1. 21 Mar, 2012 4 commits
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid · d464c92b
      Linus Torvalds authored
      Pull HID updates from Jiri Kosina:
       "It contains HID driver updates all over the place -- a lot of new
        hardware support especially in the multitouch area, including generic
        handling of all multitouch devices by the hid-multitiouch driver
        automatically."
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid: (42 commits)
        HID: multitouch: add PID for Fructel product
        HID: wacom: Add reporting of wheel for Intuos4 WL
        HID: wacom: Replace __set_bit with input_set_capability
        HID: tivo: add support for BT-version (0x1200)
        HID: wacom: Reset stylus buttons - Intuos4 WL
        HID: multitouch: detect serial protocol
        HID: handle all multitouch devices through hid-multitouch
        HID: multitouch: fix handling of buggy reports descriptors for Dell ST2220T
        HID: make it possible to force hid-core claim the device
        HID: multitouch: add support for eGalax 0x722a
        HID: usbhid: add quirk no_get for quanta 3008 devices
        HID: multitouch: add more eGalax devices
        HID: multitouch: add new PID from Ideacom
        HID: multitouch: add support for Atmel maXTouch 03eb:2118
        HID: waltop: Add support for tablet with PID 0038
        HID: waltop: Replace original rdescs with links
        HID: uclogic: Replace original rdescs with links
        HID: wacom: Add pad buttons reporting on Intuos4 WL
        HID: wacom: report distance for Intuos4 WL
        HID: kye: Add support for 3 tablets
        ...
      d464c92b
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next · 3b59bf08
      Linus Torvalds authored
      Pull networking merge from David Miller:
       "1) Move ixgbe driver over to purely page based buffering on receive.
           From Alexander Duyck.
      
        2) Add receive packet steering support to e1000e, from Bruce Allan.
      
        3) Convert TCP MD5 support over to RCU, from Eric Dumazet.
      
        4) Reduce cpu usage in handling out-of-order TCP packets on modern
           systems, also from Eric Dumazet.
      
        5) Support the IP{,V6}_UNICAST_IF socket options, making the wine
           folks happy, from Erich Hoover.
      
        6) Support VLAN trunking from guests in hyperv driver, from Haiyang
           Zhang.
      
        7) Support byte-queue-limtis in r8169, from Igor Maravic.
      
        8) Outline code intended for IP_RECVTOS in IP_PKTOPTIONS existed but
           was never properly implemented, Jiri Benc fixed that.
      
        9) 64-bit statistics support in r8169 and 8139too, from Junchang Wang.
      
        10) Support kernel side dump filtering by ctmark in netfilter
            ctnetlink, from Pablo Neira Ayuso.
      
        11) Support byte-queue-limits in gianfar driver, from Paul Gortmaker.
      
        12) Add new peek socket options to assist with socket migration, from
            Pavel Emelyanov.
      
        13) Add sch_plug packet scheduler whose queue is controlled by
            userland daemons using explicit freeze and release commands.  From
            Shriram Rajagopalan.
      
        14) Fix FCOE checksum offload handling on transmit, from Yi Zou."
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1846 commits)
        Fix pppol2tp getsockname()
        Remove printk from rds_sendmsg
        ipv6: fix incorrent ipv6 ipsec packet fragment
        cpsw: Hook up default ndo_change_mtu.
        net: qmi_wwan: fix build error due to cdc-wdm dependecy
        netdev: driver: ethernet: Add TI CPSW driver
        netdev: driver: ethernet: add cpsw address lookup engine support
        phy: add am79c874 PHY support
        mlx4_core: fix race on comm channel
        bonding: send igmp report for its master
        fs_enet: Add MPC5125 FEC support and PHY interface selection
        net: bpf_jit: fix BPF_S_LDX_B_MSH compilation
        net: update the usage of CHECKSUM_UNNECESSARY
        fcoe: use CHECKSUM_UNNECESSARY instead of CHECKSUM_PARTIAL on tx
        net: do not do gso for CHECKSUM_UNNECESSARY in netif_needs_gso
        ixgbe: Fix issues with SR-IOV loopback when flow control is disabled
        net/hyperv: Fix the code handling tx busy
        ixgbe: fix namespace issues when FCoE/DCB is not enabled
        rtlwifi: Remove unused ETH_ADDR_LEN defines
        igbvf: Use ETH_ALEN
        ...
      
      Fix up fairly trivial conflicts in drivers/isdn/gigaset/interface.c and
      drivers/net/usb/{Kconfig,qmi_wwan.c} as per David.
      3b59bf08
    • Linus Torvalds's avatar
      Merge branch 'for-3.4' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq · e45836fa
      Linus Torvalds authored
      Pull workqueue changes from Tejun Heo:
       "This contains only one commit which cleans up UP allocation path a
        bit."
      
      * 'for-3.4' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq:
        workqueue: use percpu allocator for cwq on UP
      e45836fa
    • Linus Torvalds's avatar
      Merge branch 'for-3.4' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup · 0d9cabdc
      Linus Torvalds authored
      Pull cgroup changes from Tejun Heo:
       "Out of the 8 commits, one fixes a long-standing locking issue around
        tasklist walking and others are cleanups."
      
      * 'for-3.4' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup:
        cgroup: Walk task list under tasklist_lock in cgroup_enable_task_cg_list
        cgroup: Remove wrong comment on cgroup_enable_task_cg_list()
        cgroup: remove cgroup_subsys argument from callbacks
        cgroup: remove extra calls to find_existing_css_set
        cgroup: replace tasklist_lock with rcu_read_lock
        cgroup: simplify double-check locking in cgroup_attach_proc
        cgroup: move struct cgroup_pidlist out from the header file
        cgroup: remove cgroup_attach_task_current_cg()
      0d9cabdc
  2. 20 Mar, 2012 25 commits
    • Oleg Nesterov's avatar
      exec: move de_thread()->setmax_mm_hiwater_rss() into exec_mmap() · 701085b2
      Oleg Nesterov authored
      Minor cleanup. de_thread()->setmax_mm_hiwater_rss() looks a bit
      strange, move it into exec_mmap() which plays with old_mm.
      Signed-off-by: default avatarOleg Nesterov <oleg@redhat.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      701085b2
    • Oleg Nesterov's avatar
      exit_signal: fix the "parent has changed security domain" logic · b6e238dc
      Oleg Nesterov authored
      exit_notify() changes ->exit_signal if the parent already did exec.
      This doesn't really work, we are not going to send the signal now
      if there is another live thread or the exiting task is traced. The
      parent can exec before the last dies or the tracer detaches.
      
      Move this check into do_notify_parent() which actually sends the
      signal.
      
      The user-visible change is that we do not change ->exit_signal,
      and thus the exiting task is still "clone children" for
      do_wait()->eligible_child(__WCLONE). Hopefully this is fine, the
      current logic is racy anyway.
      Signed-off-by: default avatarOleg Nesterov <oleg@redhat.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      b6e238dc
    • Oleg Nesterov's avatar
      exit_signal: simplify the "we have changed execution domain" logic · e6368253
      Oleg Nesterov authored
      exit_notify() checks "tsk->self_exec_id != tsk->parent_exec_id"
      to handle the "we have changed execution domain" case.
      
      We can change do_thread() to always set ->exit_signal = SIGCHLD
      and remove this check to simplify the code.
      
      We could change setup_new_exec() instead, this looks more logical
      because it increments ->self_exec_id. But note that de_thread()
      already resets ->exit_signal if it changes the leader, let's keep
      both changes close to each other.
      
      Note that we change ->exit_signal lockless, this changes the rules.
      Thereafter ->exit_signal is not stable under tasklist but this is
      fine, the only possible change is OLDSIG -> SIGCHLD. This can race
      with eligible_child() but the race is harmless. We can race with
      reparent_leader() which changes our ->exit_signal in parallel, but
      it does the same change to SIGCHLD.
      
      The noticeable user-visible change is that the execing task is not
      "visible" to do_wait()->eligible_child(__WCLONE) right after exec.
      To me this looks more logical, and this is consistent with mt case.
      Signed-off-by: default avatarOleg Nesterov <oleg@redhat.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      e6368253
    • Oleg Nesterov's avatar
      CLONE_PARENT shouldn't allow to set ->exit_signal · 5f8aadd8
      Oleg Nesterov authored
      The child must not control its ->exit_signal, it is the parent who
      decides which signal the child should use for notification.
      
      This means that CLONE_PARENT should not use "clone_flags & CSIGNAL",
      the forking task is the sibling of the new process and their parent
      doesn't control exit_signal in this case.
      
      This patch uses ->exit_signal of the forking process, but perhaps
      we should simply use SIGCHLD.
      
      We read group_leader->exit_signal lockless, this can race with the
      ORIGINAL_SIGNAL -> SIGCHLD transition, but this is fine.
      
      Potentially this change allows to kill self_exec_id/parent_exec_id.
      Signed-off-by: default avatarOleg Nesterov <oleg@redhat.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      5f8aadd8
    • Benjamin LaHaise's avatar
      Fix pppol2tp getsockname() · bbdb32cb
      Benjamin LaHaise authored
      While testing L2TP functionality, I came across a bug in getsockname().  The
      IP address returned within the pppol2tp_addr's addr memember was not being
      set to the IP  address in use.  This bug is caused by using inet_sk() on the
      wrong socket (the L2TP socket rather than the underlying UDP socket), and was
      likely introduced during the addition of L2TPv3 support.
      Signed-off-by: default avatarBenjamin LaHaise <bcrl@kvack.org>
      Signed-off-by: default avatarJames Chapman <jchapman@katalix.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      bbdb32cb
    • Dave Jones's avatar
      Remove printk from rds_sendmsg · a6506e14
      Dave Jones authored
      no socket layer outputs a message for this error and neither should rds.
      Signed-off-by: default avatarDave Jones <davej@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      a6506e14
    • Linus Torvalds's avatar
      Merge tag 'usb-3.3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb · ed378a52
      Linus Torvalds authored
      Pull USB merge for 3.4-rc1 from Greg KH:
       "Here's the big USB merge for the 3.4-rc1 merge window.
      
        Lots of gadget driver reworks here, driver updates, xhci changes, some
        new drivers added, usb-serial core reworking to fix some bugs, and
        other various minor things.
      
        There are some patches touching arch code, but they have all been
        acked by the various arch maintainers."
      
      * tag 'usb-3.3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (302 commits)
        net: qmi_wwan: add support for ZTE MF820D
        USB: option: add ZTE MF820D
        usb: gadget: f_fs: Remove lock is held before freeing checks
        USB: option: make interface blacklist work again
        usb/ub: deprecate & schedule for removal the "Low Performance USB Block" driver
        USB: ohci-pxa27x: add clk_prepare/clk_unprepare calls
        USB: use generic platform driver on ath79
        USB: EHCI: Add a generic platform device driver
        USB: OHCI: Add a generic platform device driver
        USB: ftdi_sio: new PID: LUMEL PD12
        USB: ftdi_sio: add support for FT-X series devices
        USB: serial: mos7840: Fixed MCS7820 device attach problem
        usb: Don't make USB_ARCH_HAS_{XHCI,OHCI,EHCI} depend on USB_SUPPORT.
        usb gadget: fix a section mismatch when compiling g_ffs with CONFIG_USB_FUNCTIONFS_ETH
        USB: ohci-nxp: Remove i2c_write(), use smbus
        USB: ohci-nxp: Support for LPC32xx
        USB: ohci-nxp: Rename symbols from pnx4008 to nxp
        USB: OHCI-HCD: Rename ohci-pnx4008 to ohci-nxp
        usb: gadget: Kconfig: fix typo for 'different'
        usb: dwc3: pci: fix another failure path in dwc3_pci_probe()
        ...
      ed378a52
    • Linus Torvalds's avatar
      Merge tag 'tty-3.3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty · 843ec558
      Linus Torvalds authored
      Pull TTY/serial patches from Greg KH:
       "tty and serial merge for 3.4-rc1
      
        Here's the big serial and tty merge for the 3.4-rc1 tree.
      
        There's loads of fixes and reworks in here from Jiri for the tty
        layer, and a number of patches from Alan to help try to wrestle the vt
        layer into a sane model.
      
        Other than that, lots of driver updates and fixes, and other minor
        stuff, all detailed in the shortlog."
      
      * tag 'tty-3.3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: (132 commits)
        serial: pxa: add clk_prepare/clk_unprepare calls
        TTY: Wrong unicode value copied in con_set_unimap()
        serial: PL011: clear pending interrupts
        serial: bfin-uart: Don't access tty circular buffer in TX DMA interrupt after it is reset.
        vt: NULL dereference in vt_do_kdsk_ioctl()
        tty: serial: vt8500: fix annotations for probe/remove
        serial: remove back and forth conversions in serial_out_sync
        serial: use serial_port_in/out vs serial_in/out in 8250
        serial: introduce generic port in/out helpers
        serial: reduce number of indirections in 8250 code
        serial: delete useless void casts in 8250.c
        serial: make 8250's serial_in shareable to other drivers.
        serial: delete last unused traces of pausing I/O in 8250
        pch_uart: Add module parameter descriptions
        pch_uart: Use existing default_baud in setup_console
        pch_uart: Add user_uartclk parameter
        pch_uart: Add Fish River Island II uart clock quirks
        pch_uart: Use uartclk instead of base_baud
        mpc5200b/uart: select more tolerant uart prescaler on low baudrates
        tty: moxa: fix bit test in moxa_start()
        ...
      843ec558
    • Linus Torvalds's avatar
      Merge tag 'staging-3.3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging · 71e7ff25
      Linus Torvalds authored
      Pull big staging driver updates from Greg KH:
       "Here is the big drivers/staging/ merge for 3.4-rc1
      
        Lots of new driver updates here, with the addition of a few new ones,
        and only one moving out of the staging tree to the "real" part of the
        kernel (the hyperv scsi driver, acked by the scsi maintainer).
      
        There are also loads of cleanups, fixes, and other minor things in
        here, all self-contained in the drivers/staging/ tree.
      
        Overall we reversed the recent trend by adding more lines than we
        removed:
         379 files changed, 37952 insertions(+), 14153 deletions(-)"
      
      * tag 'staging-3.3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (360 commits)
        staging/zmem: Use lockdep_assert_held instead of spin_is_locked
        Staging: rtl8187se: r8180_wx.c: Cleaned up comments
        Staging: rtl8187se: r8180_wx.c: Removed old comments
        Staging: rtl8187se: r8180_dm.c: Removed old comments
        Staging: android: ram_console.c:
        Staging: rtl8187se: r8180_dm.c: Fix comments
        Staging: rtl8187se: r8180_dm.c: Fix spacing issues
        Staging: rtl8187se: r8180_dm.c Fixed indentation issues
        Staging: rtl8187se: r8180_dm.c: Fix brackets
        Staging: rtl8187se: r8180_dm.c: Removed spaces before tab stop
        staging: vme: fix section mismatches in linux-next 20120314
        Staging: rtl8187se: r8180_core.c: Fix some long line issues
        Staging: rtl8187se: r8180_core.c: Fix some spacing issues
        Staging: rtl8187se: r8180_core.c: Removed trailing spaces
        staging: mei: remove driver internal versioning
        Staging: rtl8187se: r8180_core.c: Cleaned up if statement
        staging: ozwpan depends on NET
        staging: ozwpan: added maintainer for ozwpan driver
        staging/mei: propagate error codes up in the write flow
        drivers:staging:mei Fix some typos in staging/mei
        ...
      71e7ff25
    • Linus Torvalds's avatar
      Merge tag 'driver-core-3.3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core · 4a522463
      Linus Torvalds authored
      Pull driver core patches for 3.4-rc1 from Greg KH:
       "Here's the big driver core merge for 3.4-rc1.
      
        Lots of various things here, sysfs fixes/tweaks (with the nlink
        breakage reverted), dynamic debugging updates, w1 drivers, hyperv
        driver updates, and a variety of other bits and pieces, full
        information in the shortlog."
      
      * tag 'driver-core-3.3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (78 commits)
        Tools: hv: Support enumeration from all the pools
        Tools: hv: Fully support the new KVP verbs in the user level daemon
        Drivers: hv: Support the newly introduced KVP messages in the driver
        Drivers: hv: Add new message types to enhance KVP
        regulator: Support driver probe deferral
        Revert "sysfs: Kill nlink counting."
        uevent: send events in correct order according to seqnum (v3)
        driver core: minor comment formatting cleanups
        driver core: move the deferred probe pointer into the private area
        drivercore: Add driver probe deferral mechanism
        DS2781 Maxim Stand-Alone Fuel Gauge battery and w1 slave drivers
        w1_bq27000: Only one thread can access the bq27000 at a time.
        w1_bq27000 - remove w1_bq27000_write
        w1_bq27000: remove unnecessary NULL test.
        sysfs: Fix memory leak in sysfs_sd_setsecdata().
        intel_idle: Revert change of auto_demotion_disable_flags for Nehalem
        w1: Fix w1_bq27000
        driver-core: documentation: fix up Greg's email address
        powernow-k6: Really enable auto-loading
        powernow-k7: Fix CPU family number
        ...
      4a522463
    • Linus Torvalds's avatar
      Merge tag 'char-misc-3.3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc · 9f9d2760
      Linus Torvalds authored
      Pull char and misc patches for 3.4-rc1 from Greg KH:
       "Not much here, just a few minor fixes and some conversions to the
        module_*_driver() functions, making the codebase smaller."
      
      * tag 'char-misc-3.3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc:
        misc: bmp085: Use unsigned long to store jiffies
        char/ramoops: included linux/err.h twice
        misc: bmp085: Handle jiffies overflow correctly
        misc: fsa9480: Remove obsolete cleanup for clientdata
        char: Fix typo in tlclk.c
        char: Fix typo in viotape.c
        cs5535-mfgpt: don't call __init function from __devinit
        MISC: convert drivers/misc/* to use module_spi_driver()
        MISC: convert drivers/misc/* to use module_i2c_driver()
        MISC: convert drivers/misc/* to use module_platform_driver()
      9f9d2760
    • Dan Carpenter's avatar
      AFS: checking wrong bit in afs_readpages() · ad2a8e60
      Dan Carpenter authored
      We should be testing "if (vnode->flags & (1 << 4))" instead of
      "if (vnode->flags & 4) {".  The current test checks if the data was
      modified instead of deleted.
      Signed-off-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      ad2a8e60
    • Linus Torvalds's avatar
      Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 161f7a71
      Linus Torvalds authored
      Pull timer changes for v3.4 from Ingo Molnar
      
      * 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (32 commits)
        ntp: Fix integer overflow when setting time
        math: Introduce div64_long
        cs5535-clockevt: Allow the MFGPT IRQ to be shared
        cs5535-clockevt: Don't ignore MFGPT on SMP-capable kernels
        x86/time: Eliminate unused irq0_irqs counter
        clocksource: scx200_hrt: Fix the build
        x86/tsc: Reduce the TSC sync check time for core-siblings
        timer: Fix bad idle check on irq entry
        nohz: Remove ts->Einidle checks before restarting the tick
        nohz: Remove update_ts_time_stat from tick_nohz_start_idle
        clockevents: Leave the broadcast device in shutdown mode when not needed
        clocksource: Load the ACPI PM clocksource asynchronously
        clocksource: scx200_hrt: Convert scx200 to use clocksource_register_hz
        clocksource: Get rid of clocksource_calc_mult_shift()
        clocksource: dbx500: convert to clocksource_register_hz()
        clocksource: scx200_hrt:  use pr_<level> instead of printk
        time: Move common updates to a function
        time: Reorder so the hot data is together
        time: Remove most of xtime_lock usage in timekeeping.c
        ntp: Add ntp_lock to replace xtime_locking
        ...
      161f7a71
    • Linus Torvalds's avatar
      Merge branch 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 2ba68940
      Linus Torvalds authored
      Pull scheduler changes for v3.4 from Ingo Molnar
      
      * 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (27 commits)
        printk: Make it compile with !CONFIG_PRINTK
        sched/x86: Fix overflow in cyc2ns_offset
        sched: Fix nohz load accounting -- again!
        sched: Update yield() docs
        printk/sched: Introduce special printk_sched() for those awkward moments
        sched/nohz: Correctly initialize 'next_balance' in 'nohz' idle balancer
        sched: Cleanup cpu_active madness
        sched: Fix load-balance wreckage
        sched: Clean up parameter passing of proc_sched_autogroup_set_nice()
        sched: Ditch per cgroup task lists for load-balancing
        sched: Rename load-balancing fields
        sched: Move load-balancing arguments into helper struct
        sched/rt: Do not submit new work when PI-blocked
        sched/rt: Prevent idle task boosting
        sched/wait: Add __wake_up_all_locked() API
        sched/rt: Document scheduler related skip-resched-check sites
        sched/rt: Use schedule_preempt_disabled()
        sched/rt: Add schedule_preempt_disabled()
        sched/rt: Do not throttle when PI boosting
        sched/rt: Keep period timer ticking when rt throttling is active
        ...
      2ba68940
    • Linus Torvalds's avatar
      Merge branch 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 9c2b957d
      Linus Torvalds authored
      Pull perf events changes for v3.4 from Ingo Molnar:
      
       - New "hardware based branch profiling" feature both on the kernel and
         the tooling side, on CPUs that support it.  (modern x86 Intel CPUs
         with the 'LBR' hardware feature currently.)
      
         This new feature is basically a sophisticated 'magnifying glass' for
         branch execution - something that is pretty difficult to extract from
         regular, function histogram centric profiles.
      
         The simplest mode is activated via 'perf record -b', and the result
         looks like this in perf report:
      
      	$ perf record -b any_call,u -e cycles:u branchy
      
      	$ perf report -b --sort=symbol
      	    52.34%  [.] main                   [.] f1
      	    24.04%  [.] f1                     [.] f3
      	    23.60%  [.] f1                     [.] f2
      	     0.01%  [k] _IO_new_file_xsputn    [k] _IO_file_overflow
      	     0.01%  [k] _IO_vfprintf_internal  [k] _IO_new_file_xsputn
      	     0.01%  [k] _IO_vfprintf_internal  [k] strchrnul
      	     0.01%  [k] __printf               [k] _IO_vfprintf_internal
      	     0.01%  [k] main                   [k] __printf
      
         This output shows from/to branch columns and shows the highest
         percentage (from,to) jump combinations - i.e.  the most likely taken
         branches in the system.  "branches" can also include function calls
         and any other synchronous and asynchronous transitions of the
         instruction pointer that are not 'next instruction' - such as system
         calls, traps, interrupts, etc.
      
         This feature comes with (hopefully intuitive) flat ascii and TUI
         support in perf report.
      
       - Various 'perf annotate' visual improvements for us assembly junkies.
         It will now recognize function calls in the TUI and by hitting enter
         you can follow the call (recursively) and back, amongst other
         improvements.
      
       - Multiple threads/processes recording support in perf record, perf
         stat, perf top - which is activated via a comma-list of PIDs:
      
      	perf top -p 21483,21485
      	perf stat -p 21483,21485 -ddd
      	perf record -p 21483,21485
      
       - Support for per UID views, via the --uid paramter to perf top, perf
         report, etc.  For example 'perf top --uid mingo' will only show the
         tasks that I am running, excluding other users, root, etc.
      
       - Jump label restructurings and improvements - this includes the
         factoring out of the (hopefully much clearer) include/linux/static_key.h
         generic facility:
      
      	struct static_key key = STATIC_KEY_INIT_FALSE;
      
      	...
      
      	if (static_key_false(&key))
      	        do unlikely code
      	else
      	        do likely code
      
      	...
      	static_key_slow_inc();
      	...
      	static_key_slow_inc();
      	...
      
         The static_key_false() branch will be generated into the code with as
         little impact to the likely code path as possible.  the
         static_key_slow_*() APIs flip the branch via live kernel code patching.
      
         This facility can now be used more widely within the kernel to
         micro-optimize hot branches whose likelihood matches the static-key
         usage and fast/slow cost patterns.
      
       - SW function tracer improvements: perf support and filtering support.
      
       - Various hardenings of the perf.data ABI, to make older perf.data's
         smoother on newer tool versions, to make new features integrate more
         smoothly, to support cross-endian recording/analyzing workflows
         better, etc.
      
       - Restructuring of the kprobes code, the splitting out of 'optprobes',
         and a corner case bugfix.
      
       - Allow the tracing of kernel console output (printk).
      
       - Improvements/fixes to user-space RDPMC support, allowing user-space
         self-profiling code to extract PMU counts without performing any
         system calls, while playing nice with the kernel side.
      
       - 'perf bench' improvements
      
       - ... and lots of internal restructurings, cleanups and fixes that made
         these features possible.  And, as usual this list is incomplete as
         there were also lots of other improvements
      
      * 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (120 commits)
        perf report: Fix annotate double quit issue in branch view mode
        perf report: Remove duplicate annotate choice in branch view mode
        perf/x86: Prettify pmu config literals
        perf report: Enable TUI in branch view mode
        perf report: Auto-detect branch stack sampling mode
        perf record: Add HEADER_BRANCH_STACK tag
        perf record: Provide default branch stack sampling mode option
        perf tools: Make perf able to read files from older ABIs
        perf tools: Fix ABI compatibility bug in print_event_desc()
        perf tools: Enable reading of perf.data files from different ABI rev
        perf: Add ABI reference sizes
        perf report: Add support for taken branch sampling
        perf record: Add support for sampling taken branch
        perf tools: Add code to support PERF_SAMPLE_BRANCH_STACK
        x86/kprobes: Split out optprobe related code to kprobes-opt.c
        x86/kprobes: Fix a bug which can modify kernel code permanently
        x86/kprobes: Fix instruction recovery on optimized path
        perf: Add callback to flush branch_stack on context switch
        perf: Disable PERF_SAMPLE_BRANCH_* when not supported
        perf/x86: Add LBR software filter support for Intel CPUs
        ...
      9c2b957d
    • Linus Torvalds's avatar
      Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 0bbfcaff
      Linus Torvalds authored
      Pull irq/core changes for v3.4 from Ingo Molnar
      
      * 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        genirq: Remove paranoid warnons and bogus fixups
        genirq: Flush the irq thread on synchronization
        genirq: Get rid of unnecessary IRQTF_DIED flag
        genirq: No need to check IRQTF_DIED before stopping a thread handler
        genirq: Get rid of unnecessary irqaction field in task_struct
        genirq: Fix incorrect check for forced IRQ thread handler
        softirq: Reduce invoke_softirq() code duplication
        genirq: Fix long-term regression in genirq irq_set_irq_type() handling
        x86-32/irq: Don't switch to irq stack for a user-mode irq
      0bbfcaff
    • Linus Torvalds's avatar
      Merge branch 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 5928a2b6
      Linus Torvalds authored
      Pull RCU changes for v3.4 from Ingo Molnar.  The major features of this
      series are:
      
       - making RCU more aggressive about entering dyntick-idle mode in order
         to improve energy efficiency
      
       - converting a few more call_rcu()s to kfree_rcu()s
      
       - applying a number of rcutree fixes and cleanups to rcutiny
      
       - removing CONFIG_SMP #ifdefs from treercu
      
       - allowing RCU CPU stall times to be set via sysfs
      
       - adding CPU-stall capability to rcutorture
      
       - adding more RCU-abuse diagnostics
      
       - updating documentation
      
       - fixing yet more issues located by the still-ongoing top-to-bottom
         inspection of RCU, this time with a special focus on the CPU-hotplug
         code path.
      
      * 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (48 commits)
        rcu: Stop spurious warnings from synchronize_sched_expedited
        rcu: Hold off RCU_FAST_NO_HZ after timer posted
        rcu: Eliminate softirq-mediated RCU_FAST_NO_HZ idle-entry loop
        rcu: Add RCU_NONIDLE() for idle-loop RCU read-side critical sections
        rcu: Allow nesting of rcu_idle_enter() and rcu_idle_exit()
        rcu: Remove redundant check for rcu_head misalignment
        PTR_ERR should be called before its argument is cleared.
        rcu: Convert WARN_ON_ONCE() in rcu_lock_acquire() to lockdep
        rcu: Trace only after NULL-pointer check
        rcu: Call out dangers of expedited RCU primitives
        rcu: Rework detection of use of RCU by offline CPUs
        lockdep: Add CPU-idle/offline warning to lockdep-RCU splat
        rcu: No interrupt disabling for rcu_prepare_for_idle()
        rcu: Move synchronize_sched_expedited() to rcutree.c
        rcu: Check for illegal use of RCU from offlined CPUs
        rcu: Update stall-warning documentation
        rcu: Add CPU-stall capability to rcutorture
        rcu: Make documentation give more realistic rcutorture duration
        rcutorture: Permit holding off CPU-hotplug operations during boot
        rcu: Print scheduling-clock information on RCU CPU stall-warning messages
        ...
      5928a2b6
    • Jiri Kosina's avatar
      Merge branch 'upstream' into for-linus · 4a247a41
      Jiri Kosina authored
      Conflicts:
      	drivers/hid/Makefile
      4a247a41
    • Andreas Nielsen's avatar
      HID: multitouch: add PID for Fructel product · 4d5df5d1
      Andreas Nielsen authored
      Adds multitouch support for the Gametel Android game controller.
      
      The multitouch events are emulated by the Gametel device. Each physical button
      is configured to generate a MT event on a specific coordinate. This seems to be
      the only way for us to support Android games that doesn't support HID gamepads.
      It is possible to inject MT events at Android level, but this requires root on
      the phone.
      Signed-off-by: default avatarAndreas Nielsen <eas@svep.se>
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      4d5df5d1
    • Jiri Kosina's avatar
      77aa8e65
    • Jiri Kosina's avatar
    • Gao feng's avatar
      ipv6: fix incorrent ipv6 ipsec packet fragment · 1f85851e
      Gao feng authored
      Since commit 299b0767(ipv6: Fix IPsec slowpath fragmentation problem)
      In func ip6_append_data,after call skb_put(skb, fraglen + dst_exthdrlen)
      the skb->len contains dst_exthdrlen,and we don't reduce dst_exthdrlen at last
      This will make fraggap>0 in next "while cycle",and cause the size of skb incorrent
      
      Fix this by reserve headroom for dst_exthdrlen.
      Signed-off-by: default avatarGao feng <gaofeng@cn.fujitsu.com>
      Acked-by: default avatarSteffen Klassert <steffen.klassert@secunet.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      1f85851e
    • David S. Miller's avatar
      5c473ed2
    • Linus Torvalds's avatar
      Merge branch 'core-locking-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 5ed59af8
      Linus Torvalds authored
      Pull core/locking changes for v3.4 from Ingo Molnar
      
      * 'core-locking-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        futex: Simplify return logic
        futex: Cover all PI opcodes with cmpxchg enabled check
      5ed59af8
    • Linus Torvalds's avatar
      Merge branch 'core-iommu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · b7f077d7
      Linus Torvalds authored
      Pull core/iommu changes for v3.4 from Ingo Molnar
      
      * 'core-iommu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/iommu/intel: Increase the number of iommus supported to MAX_IO_APICS
        x86/iommu/intel: Fix identity mapping for sandy bridge
      b7f077d7
  3. 19 Mar, 2012 11 commits
    • Linus Torvalds's avatar
      Merge branch 'dcache-word-accesses' · b0e37d7a
      Linus Torvalds authored
      * branch 'dcache-word-accesses':
        vfs: use 'unsigned long' accesses for dcache name comparison and hashing
      
      This does the name hashing and lookup using word-sized accesses when
      that is efficient, namely on x86 (although any little-endian machine
      with good unaligned accesses would do).
      
      It does very much depend on little-endian logic, but it's a very hot
      couple of functions under some real loads, and this patch improves the
      performance of __d_lookup_rcu() and link_path_walk() by up to about 30%.
      Giving a 10% improvement on some very pathname-heavy benchmarks.
      
      Because we do make unaligned accesses past the filename, the
      optimization is disabled when CONFIG_DEBUG_PAGEALLOC is active, and we
      effectively depend on the fact that on x86 we don't really ever have the
      last page of usable RAM followed immediately by any IO memory (due to
      ACPI tables, BIOS buffer areas etc).
      
      Some of the bit operations we do are a bit "subtle".  It's commented,
      but you do need to really think about the code.  Or just consider it
      black magic.
      
      Thanks to people on G+ for some of the optimized bit tricks.
      b0e37d7a
    • Linus Torvalds's avatar
      vfs: get rid of batshit-insane pointless dentry hash calculations · 6d7d1a0d
      Linus Torvalds authored
      For some odd historical reason, the final mixing round for the dentry
      cache hash table lookup had an insane "xor with big constant" logic.  In
      two places.
      
      The big constant that is being xor'ed is GOLDEN_RATIO_PRIME, which is a
      fairly random-looking number that is designed to be *multiplied* with so
      that the bits get spread out over a whole long-word.
      
      But xor'ing with it is insane.  It doesn't really even change the hash -
      it really only shifts the hash around in the hash table.  To make
      matters worse, the insane big constant is different on 32-bit and 64-bit
      builds, even though the name hash bits we use are always 32-bit (and the
      bits from the pointer we mix in effectively are too).
      
      It's all total voodoo programming, in other words.
      
      Now, some testing and analysis of the hash chains shows that the rest of
      the hash function seems to be fairly good.  It does pick the right bits
      of the parent dentry pointer, for example, and while it's generally a
      bad idea to use an xor to mix down the upper bits (because if there is a
      repeating pattern, the xor can cause "destructive interference"), it
      seems to not have been a disaster.
      
      For example, replacing the hash with the normal "hash_long()" code (that
      uses the GOLDEN_RATIO_PRIME constant correctly, btw) actually just makes
      the hash worse.  The hand-picked hash knew which bits of the pointer had
      the highest entropy, and hash_long() ends up mixing bits less optimally
      at least in some trivial tests.
      
      So the hash function overall seems fine, it just has that really odd
      "shift result around by a constant xor".
      
      So get rid of the silly xor, and replace the down-mixing of the bits
      with an add instead of an xor that tends to not have the same kind of
      destructive interference issues.  Some stats on the resulting hash
      chains shows that they look statistically identical before and after,
      but the code is simpler and no longer makes you go "WTF?".
      
      Also, the incoming hash really is just "unsigned int", not a long, and
      there's no real point to worry about the high 26 bits of the dentry
      pointer for the 64-bit case, because they are all going to be identical
      anyway.
      
      So also change the hashing to be done in the more natural 'unsigned int'
      that is the real size of the actual hashed data anyway.
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      6d7d1a0d
    • Bjørn Mork's avatar
      net: qmi_wwan: fix build error due to cdc-wdm dependecy · 74cba4a8
      Bjørn Mork authored
      Fixes:
      
      drivers/built-in.o: In function `qmi_wwan_bind_shared':
      qmi_wwan.c:(.text+0x25b686): undefined reference to `usb_cdc_wdm_register'
      make[1]: *** [.tmp_vmlinux1] Error 1
      Reported-by: default avatarRandy Dunlap <rdunlap@xenotime.net>
      Signed-off-by: default avatarBjørn Mork <bjorn@mork.no>
      Acked-by: default avatarRandy Dunlap <rdunlap@xenotime.net>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      74cba4a8
    • Mugunthan V N's avatar
      netdev: driver: ethernet: Add TI CPSW driver · df828598
      Mugunthan V N authored
      This patch adds support for TI's CPSW driver.
      
      The three port switch gigabit ethernet subsystem provides ethernet packet
      communication and can be configured as an ethernet switch. Supports
      10/100/1000 Mbps.
      Signed-off-by: default avatarCyril Chemparathy <cyril@ti.com>
      Signed-off-by: default avatarSriramakrishnan A G <srk@ti.com>
      Signed-off-by: default avatarMugunthan V N <mugunthanvnm@ti.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      df828598
    • Mugunthan V N's avatar
      netdev: driver: ethernet: add cpsw address lookup engine support · db82173f
      Mugunthan V N authored
      TI CPSW ethernet switch has a built-in address lookup engine.  This patch adds
      the code necessary for programming this module.
      Signed-off-by: default avatarCyril Chemparathy <cyril@ti.com>
      Signed-off-by: default avatarMugunthan V N <mugunthanvnm@ti.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      db82173f
    • Heiko Schocher's avatar
      phy: add am79c874 PHY support · 49099122
      Heiko Schocher authored
      Signed-off-by: default avatarHeiko Schocher <hs@denx.de>
      Signed-off-by: default avatarAnatolij Gustschin <agust@denx.de>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      49099122
    • Eugenia Emantayev's avatar
      mlx4_core: fix race on comm channel · 58a3de05
      Eugenia Emantayev authored
      Prevent race condition between commands on comm channel.
      Happened while unloading the driver when switching from
      event to polling mode. VF got completion on the last command
      before switching to polling mode, but toggle was not changed.
      After the fix - VF will not write the next command before
      toggle is updated.
      Signed-off-by: default avatarEugenia Emantayev <eugenia@mellanox.co.il>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      58a3de05
    • Peter Pan(潘卫平)'s avatar
      bonding: send igmp report for its master · 1c3ac428
      Peter Pan(潘卫平) authored
      Liang Zheng(lzheng@redhat.com) found that in the following topo,
      bonding does not send igmp report when we trigger a fail-over of bonding.
      
      eth0--
            |-- bond0 -- br0
      eth1--
      
      modprobe bonding mode=1 miimon=100 resend_igmp=10
      ifconfig bond0 up
      ifenslave bond0 eth0 eth1
      
      brctl addbr br0
      ifconfig br0 192.168.100.2/24 up
      brctl addif br0 bond0
      
      Add 192.168.100.2(br0) into a multicast group, like 224.10.10.10,
      then trigger a fali-over in bonding.
      You can see that parameter "resend_igmp" does not work.
      
      The reason is that when we add br0 into a multicast group,
      it does not propagate multicast knowledge down to its ports.
      
      If we choose to propagate multicast knowledge down to all ports for bridge,
      then we have to track every change that is done to bridge, and keep a backup
      for all ports. It is hard to track, I think.
      
      Instead I choose to modify bonding to send igmp report for its master.
      
      Changelog:
      V2: correct comments
      V3: move this check into bond_resend_igmp_join_requests()
      V4: only send igmp reports if bond is enslaved to a bridge
      Signed-off-by: default avatarWeiping Pan <panweiping3@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      1c3ac428
    • Vladimir Ermakov's avatar
      fs_enet: Add MPC5125 FEC support and PHY interface selection · ba568335
      Vladimir Ermakov authored
      Add compatible string for MPC5125 FEC. The FEC on MPC5125 additionally
      supports RMII PHY interface. Configure controller/PHY interface type
      according to the optional phy-connection-type property in the ethernet
      node. This property should be either "rmii" or "mii".
      Signed-off-by: default avatarVladimir Ermakov <vooon341@gmail.com>
      Signed-off-by: default avatarAnatolij Gustschin <agust@denx.de>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ba568335
    • Eric Dumazet's avatar
      net: bpf_jit: fix BPF_S_LDX_B_MSH compilation · dc72d99d
      Eric Dumazet authored
      Matt Evans spotted that x86 bpf_jit was incorrectly handling negative
      constant offsets in BPF_S_LDX_B_MSH instruction.
      
      We need to abort JIT compilation like we do in common_load so that
      filter uses the interpreter code and can call __load_pointer()
      
      Reference: http://lists.openwall.net/netdev/2011/07/19/11
      
      Thanks to Indan Zupancic to bring back this issue.
      Reported-by: default avatarMatt Evans <matt@ozlabs.org>
      Reported-by: default avatarIndan Zupancic <indan@nul.nu>
      Signed-off-by: default avatarEric Dumazet <eric.dumazet@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      dc72d99d
    • Yi Zou's avatar
      net: update the usage of CHECKSUM_UNNECESSARY · 3af79302
      Yi Zou authored
      As suggested by Ben, this adds the clarification on the usage of
      CHECKSUM_UNNECESSARY on the outgoing patch. Also add the usage
      description of NETIF_F_FCOE_CRC and CHECKSUM_UNNECESSARY
      for the kernel FCoE protocol driver.
      
      This is a follow-up to the following:
      http://patchwork.ozlabs.org/patch/147315/Signed-off-by: default avatarYi Zou <yi.zou@intel.com>
      Cc: Ben Hutchings <bhutchings@solarflare.com>
      Cc: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
      Cc: www.Open-FCoE.org <devel@open-fcoe.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      3af79302