13 Dec, 2011

7 commits

  • Now that subsys->can_attach() and attach() take @tset instead of
    @task, they can handle per-task operations. Convert
    ->can_attach_task() and ->attach_task() users to use ->can_attach()
    and attach() instead. Most converions are straight-forward.
    Noteworthy changes are,

    * In cgroup_freezer, remove unnecessary NULL assignments to unused
    methods. It's useless and very prone to get out of sync, which
    already happened.

    * In cpuset, PF_THREAD_BOUND test is checked for each task. This
    doesn't make any practical difference but is conceptually cleaner.

    Signed-off-by: Tejun Heo
    Reviewed-by: KAMEZAWA Hiroyuki
    Reviewed-by: Frederic Weisbecker
    Acked-by: Li Zefan
    Cc: Paul Menage
    Cc: Balbir Singh
    Cc: Daisuke Nishimura
    Cc: James Morris
    Cc: Ingo Molnar
    Cc: Peter Zijlstra

    Tejun Heo
     
  • Currently, there's no way to pass multiple tasks to cgroup_subsys
    methods necessitating the need for separate per-process and per-task
    methods. This patch introduces cgroup_taskset which can be used to
    pass multiple tasks and their associated cgroups to cgroup_subsys
    methods.

    Three methods - can_attach(), cancel_attach() and attach() - are
    converted to use cgroup_taskset. This unifies passed parameters so
    that all methods have access to all information. Conversions in this
    patchset are identical and don't introduce any behavior change.

    -v2: documentation updated as per Paul Menage's suggestion.

    Signed-off-by: Tejun Heo
    Reviewed-by: KAMEZAWA Hiroyuki
    Reviewed-by: Frederic Weisbecker
    Acked-by: Paul Menage
    Acked-by: Li Zefan
    Cc: Balbir Singh
    Cc: Daisuke Nishimura
    Cc: KAMEZAWA Hiroyuki
    Cc: James Morris

    Tejun Heo
     
  • cgroup_attach_proc() behaves differently from cgroup_attach_task() in
    the following aspects.

    * All hooks are invoked even if no task is actually being moved.

    * ->can_attach_task() is called for all tasks in the group whether the
    new cgrp is different from the current cgrp or not; however,
    ->attach_task() is skipped if new equals new. This makes the calls
    asymmetric.

    This patch improves old cgroup handling in cgroup_attach_proc() by
    looking up the current cgroup at the head, recording it in the flex
    array along with the task itself, and using it to remove the above two
    differences. This will also ease further changes.

    -v2: nr_todo renamed to nr_migrating_tasks as per Paul Menage's
    suggestion.

    Signed-off-by: Tejun Heo
    Reviewed-by: KAMEZAWA Hiroyuki
    Reviewed-by: Frederic Weisbecker
    Acked-by: Paul Menage
    Acked-by: Li Zefan

    Tejun Heo
     
  • Update cgroup to take advantage of the fack that threadgroup_lock()
    guarantees stable threadgroup.

    * Lock threadgroup even if the target is a single task. This
    guarantees that when the target tasks stay stable during migration
    regardless of the target type.

    * Remove PF_EXITING early exit optimization from attach_task_by_pid()
    and check it in cgroup_task_migrate() instead. The optimization was
    for rather cold path to begin with and PF_EXITING state can be
    trusted throughout migration by checking it after locking
    threadgroup.

    * Don't add PF_EXITING tasks to target task array in
    cgroup_attach_proc(). This ensures that task migration is performed
    only for live tasks.

    * Remove -ESRCH failure path from cgroup_task_migrate(). With the
    above changes, it's guaranteed to be called only for live tasks.

    After the changes, only live tasks are migrated and they're guaranteed
    to stay alive until migration is complete. This removes problems
    caused by exec and exit racing against cgroup migration including
    symmetry among cgroup attach methods and different cgroup methods
    racing each other.

    v2: Oleg pointed out that one more PF_EXITING check can be removed
    from cgroup_attach_proc(). Removed.

    Signed-off-by: Tejun Heo
    Reviewed-by: KAMEZAWA Hiroyuki
    Reviewed-by: Frederic Weisbecker
    Acked-by: Li Zefan
    Cc: Oleg Nesterov
    Cc: Andrew Morton
    Cc: Paul Menage

    Tejun Heo
     
  • threadgroup_lock() protected only protected against new addition to
    the threadgroup, which was inherently somewhat incomplete and
    problematic for its only user cgroup. On-going migration could race
    against exec and exit leading to interesting problems - the symmetry
    between various attach methods, task exiting during method execution,
    ->exit() racing against attach methods, migrating task switching basic
    properties during exec and so on.

    This patch extends threadgroup_lock() such that it protects against
    all three threadgroup altering operations - fork, exit and exec. For
    exit, threadgroup_change_begin/end() calls are added to exit_signals
    around assertion of PF_EXITING. For exec, threadgroup_[un]lock() are
    updated to also grab and release cred_guard_mutex.

    With this change, threadgroup_lock() guarantees that the target
    threadgroup will remain stable - no new task will be added, no new
    PF_EXITING will be set and exec won't happen.

    The next patch will update cgroup so that it can take full advantage
    of this change.

    -v2: beefed up comment as suggested by Frederic.

    -v3: narrowed scope of protection in exit path as suggested by
    Frederic.

    Signed-off-by: Tejun Heo
    Reviewed-by: KAMEZAWA Hiroyuki
    Acked-by: Li Zefan
    Acked-by: Frederic Weisbecker
    Cc: Oleg Nesterov
    Cc: Andrew Morton
    Cc: Paul Menage
    Cc: Linus Torvalds

    Tejun Heo
     
  • Make the following renames to prepare for extension of threadgroup
    locking.

    * s/signal->threadgroup_fork_lock/signal->group_rwsem/
    * s/threadgroup_fork_read_lock()/threadgroup_change_begin()/
    * s/threadgroup_fork_read_unlock()/threadgroup_change_end()/
    * s/threadgroup_fork_write_lock()/threadgroup_lock()/
    * s/threadgroup_fork_write_unlock()/threadgroup_unlock()/

    This patch doesn't cause any behavior change.

    -v2: Rename threadgroup_change_done() to threadgroup_change_end() per
    KAMEZAWA's suggestion.

    Signed-off-by: Tejun Heo
    Reviewed-by: KAMEZAWA Hiroyuki
    Acked-by: Li Zefan
    Cc: Oleg Nesterov
    Cc: Andrew Morton
    Cc: Paul Menage

    Tejun Heo
     
  • cgroup wants to make threadgroup stable while modifying cgroup
    hierarchies which will introduce locking dependency on
    cred_guard_mutex from cgroup_mutex. This unfortunately completes
    circular dependency.

    A. cgroup_mutex -> cred_guard_mutex -> s_type->i_mutex_key -> namespace_sem
    B. namespace_sem -> cgroup_mutex

    B is from cgroup_show_options() and this patch breaks it by
    introducing another mutex cgroup_root_mutex which nests inside
    cgroup_mutex and protects cgroupfs_root.

    Signed-off-by: Tejun Heo
    Reviewed-by: KAMEZAWA Hiroyuki
    Acked-by: Li Zefan
    Cc: Oleg Nesterov

    Tejun Heo
     

09 Dec, 2011

1 commit

  • At present, the functions freezer_count() and freezer_do_not_count()
    impose the restriction that they are effective only for userspace processes.
    However, now, these functions have found more utility than originally
    intended by the commit which introduced it: ba96a0c8 (freezer:
    fix vfork problem). And moreover, even the vfork issue actually does not
    need the above restriction in these functions.

    So, modify these functions to make them work even for kernel threads, so
    that they can be used at other places in the kernel, where the userspace
    restriction doesn't apply.

    Suggested-by: Oleg Nesterov
    Suggested-by: Tejun Heo
    Acked-by: Tejun Heo
    Reviewed-by: Oleg Nesterov
    Signed-off-by: Srivatsa S. Bhat
    Signed-off-by: Rafael J. Wysocki

    Srivatsa S. Bhat
     

07 Dec, 2011

1 commit

  • Allow the freezer to skip wait_on_bit_killable sleeps in the sunrpc
    layer. This should allow suspend and hibernate events to proceed, even
    when there are RPC's pending on the wire.

    Also, wrap the TASK_KILLABLE sleeps in NFS layer in freezer_do_not_count
    and freezer_count calls. This allows the freezer to skip tasks that are
    sleeping while looping on EJUKEBOX or NFS4ERR_DELAY sorts of errors.

    Signed-off-by: Jeff Layton
    Signed-off-by: Rafael J. Wysocki

    Jeff Layton
     

25 Nov, 2011

1 commit


24 Nov, 2011

9 commits

  • * 'pm-freezer' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/misc: (24 commits)
    freezer: fix wait_event_freezable/__thaw_task races
    freezer: kill unused set_freezable_with_signal()
    dmatest: don't use set_freezable_with_signal()
    usb_storage: don't use set_freezable_with_signal()
    freezer: remove unused @sig_only from freeze_task()
    freezer: use lock_task_sighand() in fake_signal_wake_up()
    freezer: restructure __refrigerator()
    freezer: fix set_freezable[_with_signal]() race
    freezer: remove should_send_signal() and update frozen()
    freezer: remove now unused TIF_FREEZE
    freezer: make freezing() test freeze conditions in effect instead of TIF_FREEZE
    cgroup_freezer: prepare for removal of TIF_FREEZE
    freezer: clean up freeze_processes() failure path
    freezer: kill PF_FREEZING
    freezer: test freezable conditions while holding freezer_lock
    freezer: make freezing indicate freeze condition in effect
    freezer: use dedicated lock instead of task_lock() + memory barrier
    freezer: don't distinguish nosig tasks on thaw
    freezer: remove racy clear_freeze_flag() and set PF_NOFREEZE on dead tasks
    freezer: rename thaw_process() to __thaw_task() and simplify the implementation
    ...

    Rafael J. Wysocki
     
  • The hibernation core code forgets to release memory preallocated
    for hibernation if there's an error in its early stages or if test
    modes causing hibernation_snapshot() to return early are used. This
    causes the system to be hardly usable, because the amount of
    preallocated memory is usually huge. Fix this problem.

    Reported-by: Srivatsa S. Bhat
    Signed-off-by: Rafael J. Wysocki
    Acked-by: Srivatsa S. Bhat

    Rafael J. Wysocki
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-ktest:
    ktest: Check parent options for iterated tests

    Linus Torvalds
     
  • * 'i2c-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging:
    i2c: Make i2cdev_notifier_call static
    i2c: Delete ANY_I2C_BUS
    i2c: Fix device name for 10-bit slave address
    i2c-algo-bit: Generate correct i2c address sequence for 10-bit target

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator:
    regulator: TPS65910: Fix VDD1/2 voltage selector count

    Linus Torvalds
     
  • * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux: (31 commits)
    drm: integer overflow in drm_mode_dirtyfb_ioctl()
    drivers/gpu/vga/vgaarb.c: add missing kfree
    drm/radeon/kms/atom: unify i2c gpio table handling
    drm/radeon/kms: fix up gpio i2c mask bits for r4xx for real
    ttm: Don't return the bo reserved on error path
    drm/radeon/kms: add a CS ioctl flag not to rewrite tiling flags in the CS
    drm/i915: Fix inconsistent backlight level during disabled
    drm, i915: Fix memory leak in i915_gem_busy_ioctl().
    drm/i915: Use DPCD value for max DP lanes.
    drm/i915: Initiate DP link training only on the lanes we'll be using
    drm/i915: Remove trailing white space
    drm/i915: Try harder during dp pattern 1 link training
    drm/i915: Make DP prepare/commit consistent with DP dpms
    drm/i915: Let panel power sequencing hardware do its job
    drm/i915: Treat PCH eDP like DP in most places
    drm/i915: Remove link_status field from intel_dp structure
    drm/i915: Move common PCH_PP_CONTROL setup to ironlake_get_pp_control
    drm/i915: Module parameters using '-1' as default must be signed type
    drm/i915: Turn on another required clock gating bit on gen6.
    drm/i915: Turn on a required 3D clock gating bit on Sandybridge.
    ...

    Linus Torvalds
     
  • wait_event_freezable() and friends stop the waiting if try_to_freeze()
    fails. This is not right, we can race with __thaw_task() and in this
    case

    - wait_event_freezable() returns the wrong ERESTARTSYS

    - wait_event_freezable_timeout() can return the positive
    value while condition == F

    Change the code to always check __retval/condition before return.

    Note: with or without this patch the timeout logic looks strange,
    probably we should recalc timeout if try_to_freeze() returns T.

    Signed-off-by: Oleg Nesterov
    Acked-by: Tejun Heo

    Oleg Nesterov
     
  • There's no in-kernel user of set_freezable_with_signal() left. Mixing
    TIF_SIGPENDING with kernel threads can lead to nasty corner cases as
    kernel threads never travel signal delivery path on their own.

    e.g. the current implementation is buggy in the cancelation path of
    __thaw_task(). It calls recalc_sigpending_and_wake() in an attempt to
    clear TIF_SIGPENDING but the function never clears it regardless of
    sigpending state. This means that signallable freezable kthreads may
    continue executing with !freezing() && stuck TIF_SIGPENDING, which can
    be troublesome.

    This patch removes set_freezable_with_signal() along with
    PF_FREEZER_NOSIG and recalc_sigpending*() calls in freezer. User
    tasks get TIF_SIGPENDING, kernel tasks get woken up and the spurious
    sigpending is dealt with in the usual signal delivery path.

    Signed-off-by: Tejun Heo
    Acked-by: Oleg Nesterov

    Tejun Heo
     
  • Commit 981ed70d8e (dmatest: make dmatest threads freezable) made
    dmatest kthread use set_freezable_with_signal(); however, the
    interface is scheduled to be removed in the next merge window.

    The problem is that unlike userland tasks there's no default place
    which handles signal pending state and it isn't clear who owns and/or
    is responsible for clearing TIF_SIGPENDING. For example, in the
    current code, try_to_freeze() clears TIF_SIGPENDING but it isn't sure
    whether it actually owns the TIF_SIGPENDING nor is it race-free -
    ie. the task may continue to run with TIF_SIGPENDING set after the
    freezable section.

    Unfortunately, we don't have wait_for_completion_freezable_timeout().
    This patch open codes it and uses wait_event_freezable_timeout()
    instead and removes timeout reloading - wait_event_freezable_timeout()
    won't return across freezing events (currently racy but fix scheduled)
    and timer doesn't decrement while the task is in freezer. Although
    this does lose timer-reset-over-freezing, given that timeout is
    supposed to be long enough and failure to finish inside is considered
    irrecoverable, I don't think this is worth the complexity.

    While at it, move completion to outer scope and explain that we're
    ignoring dangling pointer problem after timeout. This should give
    slightly better chance at avoiding oops after timeout.

    Signed-off-by: Tejun Heo
    Acked-by: Dan Williams
    Cc: Guennadi Liakhovetski
    Cc: Nicolas Ferre

    Tejun Heo
     

23 Nov, 2011

19 commits

  • Count of selector voltage is required for regulator_set_voltage
    to work via set_voltage_sel. VDD1/2 currently have it as zero,
    so regulator_set_voltage won't work for VDD1/2.
    Update count (n_voltages) for VDD1/2.

    Output Voltage = (step value * 12.5 mV + 562.5 mV) * gain

    With above expr, number of voltages that can be selected is
    step value count * gain count

    constant for gain count will be called VDD1_2_NUM_VOLT_COARSE

    existing constant for step value count is VDD1_2_NUM_VOLTS,
    use VDD1_2_NUM_VOLT_FINE instead to make clear that step value
    is not the only component in deciding selectable voltage count

    Signed-off-by: Afzal Mohammed
    Signed-off-by: Mark Brown

    Afzal Mohammed
     
  • The function i2cdev_notifier_call is used only in i2c-dev file
    making it static.
    Also removes the following sparse warning

    drivers/i2c/i2c-dev.c:582:5: warning: symbol 'i2cdev_notifier_call'
    was not declared. Should it be static?

    Signed-off-by: Shubhrajyoti D
    Signed-off-by: Jean Delvare

    Shubhrajyoti D
     
  • Last piece of code using ANY_I2C_BUS was deleted almost 2 years ago,
    so ANY_I2C_BUS can go away as well.

    Signed-off-by: Jean Delvare

    Jean Delvare
     
  • 10-bit addresses overlap with traditional 7-bit addresses, leading in
    device name collisions. Add an arbitrary offset to 10-bit addresses to
    prevent this collision. The offset was chosen so that the address is
    still easily recognizable.

    Signed-off-by: Jean Delvare
    Acked-by: Wolfram Sang

    Jean Delvare
     
  • The wrong bits were put on the wire, fix that.

    This fixes kernel bug #42562.

    Signed-off-by: Sheng-Hui J. Chu
    Cc: stable@kernel.org
    Signed-off-by: Jean Delvare

    Jeffrey (Sheng-Hui) Chu
     
  • There is a potential integer overflow in drm_mode_dirtyfb_ioctl()
    if userspace passes in a large num_clips. The call to kmalloc would
    allocate a small buffer, and the call to fb->funcs->dirty may result
    in a memory corruption.

    Reported-by: Haogang Chen
    Signed-off-by: Xi Wang
    Cc: stable@kernel.org
    Signed-off-by: Dave Airlie

    Xi Wang
     
  • This reverts commit dc9372808412edbc653a675a526c2ee6c0c14a91.

    As requested by Ben Herrenschmidt:
    "This breaks some powerpc platforms at least. The practice of having
    a node provide an explicit "interrupt-parent" property pointing to
    itself is an old trick that we've used in the past to allow a
    device-node to have interrupts routed to different controllers.

    In that case, the node also contains an interrupt-map, so the node is
    its own parent, the interrupt resolution hits the map, which then can
    route each individual interrupt to a different parent."

    Grant says:
    "Ah, nuts, yes that is broken then. Yes, please revert the commit and
    Rob & I will come up with a better solution.

    Rob, I think it can be done by explicitly checking for np ==
    desc->interrupt_parent in of_irq_init() instead of relying on
    of_irq_find_parent() returning NULL."

    Requested-by: Benjamin Herrenschmidt
    Acked-by: Grant Likely
    Cc: Rob Herring
    Cc: devicetree-discuss@lists.ozlabs.org
    Cc: linuxppc-dev
    Cc: Tanmay Inamdar
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
    mount_subtree() pointless use-after-free
    iio: fix a leak due to improper use of anon_inode_getfd()
    microblaze: bury asm/namei.h

    Linus Torvalds
     
  • kbuf is a buffer that is local to this function, so all of the error paths
    leaving the function should release it.

    Signed-off-by: Julia Lawall
    Cc: Jesper Juhl
    Signed-off-by: Andrew Morton
    Signed-off-by: Dave Airlie

    Julia Lawall
     
  • Split the quirks and i2c_rec assignment into separate
    functions used by both radeon_lookup_i2c_gpio() and
    radeon_atombios_i2c_init(). This avoids duplicating code
    and cases where quirks were only added to one of the
    functions.

    Signed-off-by: Alex Deucher
    Cc: Jean Delvare
    Signed-off-by: Dave Airlie

    Alex Deucher
     
  • Fixes i2c test failures when i2c_algo_bit.bit_test=1.

    The hw doesn't actually require a mask, so just set it
    to the default mask bits for r1xx-r4xx radeon ddc.

    I missed this part the first time through.

    Signed-off-by: Alex Deucher
    Cc: stable@kernel.org
    Cc: Jean Delvare
    Signed-off-by: Dave Airlie

    Alex Deucher
     
  • An unlikely race could case a bo to be returned reserved on an error path.

    Signed-off-by: Thomas Hellstrom
    Reviewed-by: Jerome Glisse
    Signed-off-by: Dave Airlie

    Thomas Hellstrom
     
  • * 'drm-intel-fixes' of git://people.freedesktop.org/~keithp/linux: (25 commits)
    drm/i915: Fix inconsistent backlight level during disabled
    drm, i915: Fix memory leak in i915_gem_busy_ioctl().
    drm/i915: Use DPCD value for max DP lanes.
    drm/i915: Initiate DP link training only on the lanes we'll be using
    drm/i915: Remove trailing white space
    drm/i915: Try harder during dp pattern 1 link training
    drm/i915: Make DP prepare/commit consistent with DP dpms
    drm/i915: Let panel power sequencing hardware do its job
    drm/i915: Treat PCH eDP like DP in most places
    drm/i915: Remove link_status field from intel_dp structure
    drm/i915: Move common PCH_PP_CONTROL setup to ironlake_get_pp_control
    drm/i915: Module parameters using '-1' as default must be signed type
    drm/i915: Turn on another required clock gating bit on gen6.
    drm/i915: Turn on a required 3D clock gating bit on Sandybridge.
    drm/i915: enable cacheable objects on Ivybridge
    drm/i915: add constants to size fence arrays and fields
    drm/i915: Ivybridge still has fences!
    drm/i915: forcewake warning fixes in debugfs
    drm/i915: Fix object refcount leak on mmappable size limit error path.
    drm/i915: Use mode_config.mutex in ironlake_panel_vdd_work
    ...

    Dave Airlie
     
  • d'oh... we'd carefully pinned mnt->mnt_sb down, dropped mnt and attempt
    to grab s_umount on mnt->mnt_sb. The trouble is, *mnt might've been
    overwritten by now...

    Signed-off-by: Al Viro

    Al Viro
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
    Input: ams_delta_serio - include linux/module.h
    Input: elantech - adjust hw_version detection logic
    Input: i8042 - add HP Pavilion dv4s to 'notimeout' and 'nomux' blacklists

    Linus Torvalds
     
  • * git://www.linux-watchdog.org/linux-watchdog:
    watchdog: fix initialisation printout in s3c2410_wdt
    watchdog: Don't overwrite error value in wm831x_wdt_set_timeout()
    watchdog: adx_wdt.c: remove driver

    Linus Torvalds
     
  • * 'bugfixes' of git://git.linux-nfs.org/projects/trondmy/linux-nfs:
    NFS: Revert pnfs ugliness from the generic NFS read code path
    SUNRPC: destroy freshly allocated transport in case of sockaddr init error
    NFS: Fix a regression in the referral code
    nfs: move nfs_file_operations declaration to bottom of file.c (try #2)
    nfs: when attempting to open a directory, fall back on normal lookup (try #5)

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs:
    Btrfs: remove free-space-cache.c WARN during log replay
    Btrfs: sectorsize align offsets in fiemap
    Btrfs: clear pages dirty for io and set them extent mapped
    Btrfs: wait on caching if we're loading the free space cache
    Btrfs: prefix resize related printks with btrfs:
    btrfs: fix stat blocks accounting
    Btrfs: avoid unnecessary bitmap search for cluster setup
    Btrfs: fix to search one more bitmap for cluster setup
    btrfs: mirror_num should be int, not u64
    btrfs: Fix up 32/64-bit compatibility for new ioctls
    Btrfs: fix barrier flushes
    Btrfs: fix tree corruption after multi-thread snapshots and inode_cache flush

    Linus Torvalds
     
  • * 'writeback-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/linux:
    writeback: remove vm_dirties and task->dirties
    writeback: hard throttle 1000+ dd on a slow USB stick
    mm: Make task in balance_dirty_pages() killable

    Linus Torvalds
     

22 Nov, 2011

2 commits

  • * 'staging-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging:
    staging: fix more ET131X build errors
    staging: et131x depends on NET
    staging: slicoss depends on NET
    linux-next: et131x: Fix build error when CONFIG_PM_SLEEP not enabled

    Linus Torvalds
     
  • * 'usb-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (48 commits)
    USB: Fix Corruption issue in USB ftdi driver ftdi_sio.c
    USB: option: add PID of Huawei E173s 3G modem
    OHCI: final fix for NVIDIA problems (I hope)
    USB: option: release new PID for ZTE 3G modem
    usb: Netlogic: Fix HC_LENGTH call in ehci-xls.c
    USB: storage: ene_ub6250: fix compile warnings
    USB: option: add id for 3G dongle Model VT1000 of Viettel
    USB: serial: pl2303: rm duplicate id
    USB: pch_udc: Change company name OKI SEMICONDUCTOR to LAPIS Semiconductor
    USB: pch_udc: Support new device LAPIS Semiconductor ML7831 IOH
    usb-storage: Accept 8020i-protocol commands longer than 12 bytes
    USB: quirks: adding more quirky webcams to avoid squeaky audio
    powerpc/usb: fix type cast for address of ioremap to compatible with 64-bit
    USB: at91: at91-ohci: fix set/get power
    USB: cdc-acm: Fix disconnect() vs close() race
    USB: add quirk for Logitech C600 web cam
    USB: EHCI: fix HUB TT scheduling issue with iso transfer
    USB: XHCI: resume root hubs when the controller resumes
    USB: workaround for bug in old version of GCC
    USB: ark3116 initialisation fix
    ...

    Linus Torvalds