1. 08 Oct, 2014 40 commits
    • Rasmus Villemoes's avatar
      kcmp: fix standard comparison bug · 73b1b78d
      Rasmus Villemoes authored
      commit acbbe6fb upstream.
      
      The C operator <= defines a perfectly fine total ordering on the set of
      values representable in a long.  However, unlike its namesake in the
      integers, it is not translation invariant, meaning that we do not have
      "b <= c" iff "a+b <= a+c" for all a,b,c.
      
      This means that it is always wrong to try to boil down the relationship
      between two longs to a question about the sign of their difference,
      because the resulting relation [a LEQ b iff a-b <= 0] is neither
      anti-symmetric or transitive.  The former is due to -LONG_MIN==LONG_MIN
      (take any two a,b with a-b = LONG_MIN; then a LEQ b and b LEQ a, but a !=
      b).  The latter can either be seen observing that x LEQ x+1 for all x,
      implying x LEQ x+1 LEQ x+2 ...  LEQ x-1 LEQ x; or more directly with the
      simple example a=LONG_MIN, b=0, c=1, for which a-b < 0, b-c < 0, but a-c >
      0.
      
      Note that it makes absolutely no difference that a transmogrying bijection
      has been applied before the comparison is done.  In fact, had the
      obfuscation not been done, one could probably not observe the bug
      (assuming all values being compared always lie in one half of the address
      space, the mathematical value of a-b is always representable in a long).
      As it stands, one can easily obtain three file descriptors exhibiting the
      non-transitivity of kcmp().
      
      Side note 1: I can't see that ensuring the MSB of the multiplier is
      set serves any purpose other than obfuscating the obfuscating code.
      
      Side note 2:
      #include <stdio.h>
      #include <stdlib.h>
      #include <string.h>
      #include <fcntl.h>
      #include <unistd.h>
      #include <assert.h>
      #include <sys/syscall.h>
      
      enum kcmp_type {
              KCMP_FILE,
              KCMP_VM,
              KCMP_FILES,
              KCMP_FS,
              KCMP_SIGHAND,
              KCMP_IO,
              KCMP_SYSVSEM,
              KCMP_TYPES,
      };
      pid_t pid;
      
      int kcmp(pid_t pid1, pid_t pid2, int type,
      	 unsigned long idx1, unsigned long idx2)
      {
      	return syscall(SYS_kcmp, pid1, pid2, type, idx1, idx2);
      }
      int cmp_fd(int fd1, int fd2)
      {
      	int c = kcmp(pid, pid, KCMP_FILE, fd1, fd2);
      	if (c < 0) {
      		perror("kcmp");
      		exit(1);
      	}
      	assert(0 <= c && c < 3);
      	return c;
      }
      int cmp_fdp(const void *a, const void *b)
      {
      	static const int normalize[] = {0, -1, 1};
      	return normalize[cmp_fd(*(int*)a, *(int*)b)];
      }
      #define MAX 100 /* This is plenty; I've seen it trigger for MAX==3 */
      int main(int argc, char *argv[])
      {
      	int r, s, count = 0;
      	int REL[3] = {0,0,0};
      	int fd[MAX];
      	pid = getpid();
      	while (count < MAX) {
      		r = open("/dev/null", O_RDONLY);
      		if (r < 0)
      			break;
      		fd[count++] = r;
      	}
      	printf("opened %d file descriptors\n", count);
      	for (r = 0; r < count; ++r) {
      		for (s = r+1; s < count; ++s) {
      			REL[cmp_fd(fd[r], fd[s])]++;
      		}
      	}
      	printf("== %d\t< %d\t> %d\n", REL[0], REL[1], REL[2]);
      	qsort(fd, count, sizeof(fd[0]), cmp_fdp);
      	memset(REL, 0, sizeof(REL));
      
      	for (r = 0; r < count; ++r) {
      		for (s = r+1; s < count; ++s) {
      			REL[cmp_fd(fd[r], fd[s])]++;
      		}
      	}
      	printf("== %d\t< %d\t> %d\n", REL[0], REL[1], REL[2]);
      	return (REL[0] + REL[2] != 0);
      }
      Signed-off-by: default avatarRasmus Villemoes <linux@rasmusvillemoes.dk>
      Reviewed-by: default avatarCyrill Gorcunov <gorcunov@openvz.org>
      "Eric W. Biederman" <ebiederm@xmission.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      Signed-off-by: default avatarKamal Mostafa <kamal@canonical.com>
      73b1b78d
    • Nicolas Iooss's avatar
      eventpoll: fix uninitialized variable in epoll_ctl · 18abd109
      Nicolas Iooss authored
      commit c680e41b upstream.
      
      When calling epoll_ctl with operation EPOLL_CTL_DEL, structure epds is
      not initialized but ep_take_care_of_epollwakeup reads its event field.
      When this unintialized field has EPOLLWAKEUP bit set, a capability check
      is done for CAP_BLOCK_SUSPEND in ep_take_care_of_epollwakeup.  This
      produces unexpected messages in the audit log, such as (on a system
      running SELinux):
      
          type=AVC msg=audit(1408212798.866:410): avc:  denied
          { block_suspend } for  pid=7754 comm="dbus-daemon" capability=36
          scontext=unconfined_u:unconfined_r:unconfined_t
          tcontext=unconfined_u:unconfined_r:unconfined_t
          tclass=capability2 permissive=1
      
          type=SYSCALL msg=audit(1408212798.866:410): arch=c000003e syscall=233
          success=yes exit=0 a0=3 a1=2 a2=9 a3=7fffd4d66ec0 items=0 ppid=1
          pid=7754 auid=1000 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0
          fsgid=0 tty=(none) ses=3 comm="dbus-daemon"
          exe="/usr/bin/dbus-daemon"
          subj=unconfined_u:unconfined_r:unconfined_t key=(null)
      
      ("arch=c000003e syscall=233 a1=2" means "epoll_ctl(op=EPOLL_CTL_DEL)")
      
      Remove use of epds in epoll_ctl when op == EPOLL_CTL_DEL.
      
      Fixes: 4d7e30d9 ("epoll: Add a flag, EPOLLWAKEUP, to prevent suspend while epoll events are ready")
      Signed-off-by: default avatarNicolas Iooss <nicolas.iooss_linux@m4x.org>
      Cc: Alexander Viro <viro@zeniv.linux.org.uk>
      Cc: Arve Hjønnevåg <arve@android.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      Signed-off-by: default avatarKamal Mostafa <kamal@canonical.com>
      18abd109
    • Joe Lawrence's avatar
      usb: hub: take hub->hdev reference when processing from eventlist · 9b5d4c19
      Joe Lawrence authored
      commit c605f3cd upstream.
      
      During surprise device hotplug removal tests, it was observed that
      hub_events may try to call usb_lock_device on a device that has already
      been freed. Protect the usb_device by taking out a reference (under the
      hub_event_lock) when hub_events pulls it off the list, returning the
      reference after hub_events is finished using it.
      Signed-off-by: default avatarJoe Lawrence <joe.lawrence@stratus.com>
      Suggested-by: David Bulkow <david.bulkow@stratus.com> for using kref
      Suggested-by: Alan Stern <stern@rowland.harvard.edu> for placement
      Acked-by: default avatarAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      Signed-off-by: default avatarKamal Mostafa <kamal@canonical.com>
      9b5d4c19
    • John Sung's avatar
      Input: serport - add compat handling for SPIOCSTYPE ioctl · 25328c6d
      John Sung authored
      commit a80d8b02 upstream.
      
      When running a 32-bit inputattach utility in a 64-bit system, there will be
      error code "inputattach: can't set device type". This is caused by the
      serport device driver not supporting compat_ioctl, so that SPIOCSTYPE ioctl
      fails.
      Signed-off-by: default avatarJohn Sung <penmount.touch@gmail.com>
      Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
      Signed-off-by: default avatarKamal Mostafa <kamal@canonical.com>
      25328c6d
    • Sage Weil's avatar
      libceph: gracefully handle large reply messages from the mon · 158524e4
      Sage Weil authored
      commit 73c3d481 upstream.
      
      We preallocate a few of the message types we get back from the mon.  If we
      get a larger message than we are expecting, fall back to trying to allocate
      a new one instead of blindly using the one we have.
      Signed-off-by: default avatarSage Weil <sage@redhat.com>
      Reviewed-by: default avatarIlya Dryomov <ilya.dryomov@inktank.com>
      Signed-off-by: default avatarKamal Mostafa <kamal@canonical.com>
      158524e4
    • Anssi Hannula's avatar
      dm cache: fix race causing dirty blocks to be marked as clean · 2cf00e26
      Anssi Hannula authored
      commit 40aa978e upstream.
      
      When a writeback or a promotion of a block is completed, the cell of
      that block is removed from the prison, the block is marked as clean, and
      the clear_dirty() callback of the cache policy is called.
      
      Unfortunately, performing those actions in this order allows an incoming
      new write bio for that block to come in before clearing the dirty status
      is completed and therefore possibly causing one of these two scenarios:
      
      Scenario A:
      
      Thread 1                      Thread 2
      cell_defer()                  .
      - cell removed from prison    .
      - detained bios queued        .
      .                             incoming write bio
      .                             remapped to cache
      .                             set_dirty() called,
      .                               but block already dirty
      .                               => it does nothing
      clear_dirty()                 .
      - block marked clean          .
      - policy clear_dirty() called .
      
      Result: Block is marked clean even though it is actually dirty. No
      writeback will occur.
      
      Scenario B:
      
      Thread 1                      Thread 2
      cell_defer()                  .
      - cell removed from prison    .
      - detained bios queued        .
      clear_dirty()                 .
      - block marked clean          .
      .                             incoming write bio
      .                             remapped to cache
      .                             set_dirty() called
      .                             - block marked dirty
      .                             - policy set_dirty() called
      - policy clear_dirty() called .
      
      Result: Block is properly marked as dirty, but policy thinks it is clean
      and therefore never asks us to writeback it.
      This case is visible in "dmsetup status" dirty block count (which
      normally decreases to 0 on a quiet device).
      
      Fix these issues by calling clear_dirty() before calling cell_defer().
      Incoming bios for that block will then be detained in the cell and
      released only after clear_dirty() has completed, so the race will not
      occur.
      
      Found by inspecting the code after noticing spurious dirty counts
      (scenario B).
      Signed-off-by: default avatarAnssi Hannula <anssi.hannula@iki.fi>
      Acked-by: default avatarJoe Thornber <ejt@redhat.com>
      Signed-off-by: default avatarMike Snitzer <snitzer@redhat.com>
      Signed-off-by: default avatarKamal Mostafa <kamal@canonical.com>
      2cf00e26
    • Alex Deucher's avatar
      drm/radeon/dpm: set the thermal type properly for special configs · bedaf63f
      Alex Deucher authored
      commit ff437792 upstream.
      
      On systems with special thermal configurations make sure we make
      note of the thermal setup.  This is required for proper firmware
      configuration on these systems.
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      Signed-off-by: default avatarKamal Mostafa <kamal@canonical.com>
      bedaf63f
    • Cong Wang's avatar
      nfs: fix kernel warning when removing proc entry · 9784e963
      Cong Wang authored
      commit 21e81002 upstream.
      
      I saw the following kernel warning:
      
      [ 1852.321222] ------------[ cut here ]------------
      [ 1852.326527] WARNING: CPU: 0 PID: 118 at fs/proc/generic.c:521 remove_proc_entry+0x154/0x16b()
      [ 1852.335630] remove_proc_entry: removing non-empty directory 'fs/nfsfs', leaking at least 'volumes'
      [ 1852.344084] CPU: 0 PID: 118 Comm: kworker/u8:2 Not tainted 3.16.0+ #540
      [ 1852.350036] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
      [ 1852.354992] Workqueue: netns cleanup_net
      [ 1852.358701]  0000000000000000 ffff880116f2fbd0 ffffffff819c03e9 ffff880116f2fc18
      [ 1852.366474]  ffff880116f2fc08 ffffffff810744ee ffffffff811e0e6e ffff8800d4e96238
      [ 1852.373507]  ffffffff81dbe665 ffff8800d46a5948 0000000000000005 ffff880116f2fc68
      [ 1852.380224] Call Trace:
      [ 1852.381976]  [<ffffffff819c03e9>] dump_stack+0x4d/0x66
      [ 1852.385495]  [<ffffffff810744ee>] warn_slowpath_common+0x7a/0x93
      [ 1852.389869]  [<ffffffff811e0e6e>] ? remove_proc_entry+0x154/0x16b
      [ 1852.393987]  [<ffffffff8107457b>] warn_slowpath_fmt+0x4c/0x4e
      [ 1852.397999]  [<ffffffff811e0e6e>] remove_proc_entry+0x154/0x16b
      [ 1852.402034]  [<ffffffff8129c73d>] nfs_fs_proc_net_exit+0x53/0x56
      [ 1852.406136]  [<ffffffff812a103b>] nfs_net_exit+0x12/0x1d
      [ 1852.409774]  [<ffffffff81785bc9>] ops_exit_list+0x44/0x55
      [ 1852.413529]  [<ffffffff81786389>] cleanup_net+0xee/0x182
      [ 1852.417198]  [<ffffffff81088c9e>] process_one_work+0x209/0x40d
      [ 1852.502320]  [<ffffffff81088bf7>] ? process_one_work+0x162/0x40d
      [ 1852.587629]  [<ffffffff810890c1>] worker_thread+0x1f0/0x2c7
      [ 1852.673291]  [<ffffffff81088ed1>] ? process_scheduled_works+0x2f/0x2f
      [ 1852.759470]  [<ffffffff8108e079>] kthread+0xc9/0xd1
      [ 1852.843099]  [<ffffffff8109427f>] ? finish_task_switch+0x3a/0xce
      [ 1852.926518]  [<ffffffff8108dfb0>] ? __kthread_parkme+0x61/0x61
      [ 1853.008565]  [<ffffffff819cbeac>] ret_from_fork+0x7c/0xb0
      [ 1853.076477]  [<ffffffff8108dfb0>] ? __kthread_parkme+0x61/0x61
      [ 1853.140653] ---[ end trace 69c4c6617f78e32d ]---
      
      It looks wrong that we add "/proc/net/nfsfs" in nfs_fs_proc_net_init()
      while remove "/proc/fs/nfsfs" in nfs_fs_proc_net_exit().
      
      Fixes: commit 65b38851 (NFS: Fix /proc/fs/nfsfs/servers and /proc/fs/nfsfs/volumes)
      Cc: Eric W. Biederman <ebiederm@xmission.com>
      Cc: Trond Myklebust <trond.myklebust@primarydata.com>
      Cc: Dan Aloni <dan@kernelim.com>
      Signed-off-by: default avatarCong Wang <xiyou.wangcong@gmail.com>
      [Trond: replace uses of remove_proc_entry() with remove_proc_subtree()
      as suggested by Al Viro]
      Signed-off-by: default avatarTrond Myklebust <trond.myklebust@primarydata.com>
      Signed-off-by: default avatarKamal Mostafa <kamal@canonical.com>
      9784e963
    • Thomas Pugliese's avatar
      uwb: init beacon cache entry before registering uwb device · 1bda1ada
      Thomas Pugliese authored
      commit 675f0ab2 upstream.
      
      Make sure the uwb_dev->bce entry is set before calling uwb_dev_add in
      uwbd_dev_onair so that usermode will only see the device after it is
      properly initialized.  This fixes a kernel panic that can occur if
      usermode tries to access the IEs sysfs attribute of a UWB device before
      the driver has had a chance to set the beacon cache entry.
      Signed-off-by: default avatarThomas Pugliese <thomas.pugliese@gmail.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      Signed-off-by: default avatarKamal Mostafa <kamal@canonical.com>
      1bda1ada
    • Taylor Braun-Jones's avatar
      USB: ftdi_sio: Add support for GE Healthcare Nemo Tracker device · 08837404
      Taylor Braun-Jones authored
      commit 9c491c37 upstream.
      Signed-off-by: default avatarTaylor Braun-Jones <taylor.braun-jones@ge.com>
      Cc: Johan Hovold <johan@kernel.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      Signed-off-by: default avatarKamal Mostafa <kamal@canonical.com>
      08837404
    • Hans de Goede's avatar
      Input: elantech - fix detection of touchpad on ASUS s301l · 92f3f4c5
      Hans de Goede authored
      commit 271329b3 upstream.
      
      Adjust Elantech signature validation to account fo rnewer models of
      touchpads.
      Reported-and-tested-by: default avatarMàrius Monton <marius.monton@gmail.com>
      Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
      Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
      Signed-off-by: default avatarKamal Mostafa <kamal@canonical.com>
      92f3f4c5
    • Felipe Balbi's avatar
      usb: host: xhci: fix compliance mode workaround · 6d17be06
      Felipe Balbi authored
      commit 96908589 upstream.
      
      Commit 71c731a2 (usb: host: xhci: Fix Compliance Mode
      on SN65LVP3502CP Hardware) implemented a workaround
      for a known issue with Texas Instruments' USB 3.0
      redriver IC but it left a condition where any xHCI
      host would be taken out of reset if port was placed
      in compliance mode and there was no device connected
      to the port.
      
      That condition would trigger a fake connection to a
      non-existent device so that usbcore would trigger a
      warm reset of the port, thus taking the link out of
      reset.
      
      This has the side-effect of preventing any xHCI host
      connected to a Linux machine from starting and running
      the USB 3.0 Electrical Compliance Suite because the
      port will mysteriously taken out of compliance mode
      and, thus, xHCI won't step through the necessary
      compliance patterns for link validation.
      
      This patch fixes the issue by just adding a missing
      check for XHCI_COMP_MODE_QUIRK inside
      xhci_hub_report_usb3_link_state() when PORT_CAS isn't
      set.
      
      This patch should be backported to all kernels containing
      commit 71c731a2.
      
      Fixes: 71c731a2 (usb: host: xhci: Fix Compliance Mode on SN65LVP3502CP Hardware)
      Cc: Alexis R. Cortes <alexis.cortes@ti.com>
      Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
      Acked-by: default avatarMathias Nyman <mathias.nyman@linux.intel.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      Signed-off-by: default avatarKamal Mostafa <kamal@canonical.com>
      6d17be06
    • Russell King's avatar
      imx-drm: ipuv3-plane: fix ipu_plane_dpms() · 9980ceea
      Russell King authored
      commit 3a44a205 upstream.
      
      When unbinding imx-drm, the following oops was observed:
      
      Unable to handle kernel NULL pointer dereference at virtual address 00000004
      pgd = e995c000
      [00000004] *pgd=4fea5831
      Internal error: Oops: 817 [#1] SMP ARM
      Modules linked in: bnep rfcomm bluetooth nfsd exportfs hid_cypress brcmfmac brcmutil snd_soc_fsl_ssi snd_soc_fsl_spdif imx_pcm_fiq imx_pcm_dma snd_soc_sgtl5000 imx_sdma imx2_wdt imx_ldb(C) imx_thermal snd_soc_imx_sgtl5000 snd_soc_imx_spdif snd_soc_imx_audmux
      CPU: 1 PID: 779 Comm: bash Tainted: G         C    3.16.0-rc2+ #1230
      task: ea9eb180 ti: ea378000 task.ti: ea378000
      PC is at ipu_dp_put+0x10/0x18
      LR is at ipu_plane_dpms+0x60/0x8c
      pc : [<c0350d20>]    lr : [<c04bd9e8>]    psr: 200f0013
      sp : ea379d80  ip : ea379d90  fp : ea379d8c
      r10: 00100100  r9 : 00000000  r8 : 00200200
      r7 : e9ba0264  r6 : e9ba01f8  r5 : 00000000  r4 : ea34b800
      r3 : 00000000  r2 : 00000000  r1 : 0000009b  r0 : 00000000
      Flags: nzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
      Control: 10c53c7d  Table: 3995c04a  DAC: 00000015
      Process bash (pid: 779, stack limit = 0xea378240)
      Stack: (0xea379d80 to 0xea37a000)
      ...
      Backtrace:
      [<c0350d10>] (ipu_dp_put) from [<c04bd9e8>] (ipu_plane_dpms+0x60/0x8c)
      [<c04bd988>] (ipu_plane_dpms) from [<c04bda40>] (ipu_disable_plane+0x2c/0x60)
      [<c04bda14>] (ipu_disable_plane) from [<c04bda9c>] (ipu_plane_destroy+0x28/0x60)
      [<c04bda74>] (ipu_plane_destroy) from [<c033ff84>] (drm_mode_config_cleanup+0x1b8/0x250)
      [<c033fdcc>] (drm_mode_config_cleanup) from [<c04bc234>] (imx_drm_driver_unload+0x44/0x4c)
      [<c04bc1f0>] (imx_drm_driver_unload) from [<c03394a4>] (drm_dev_unregister+0x2c/0xa0)
      [<c0339478>] (drm_dev_unregister) from [<c0339f8c>] (drm_put_dev+0x30/0x6c)
      [<c0339f5c>] (drm_put_dev) from [<c04bc1cc>] (imx_drm_unbind+0x14/0x18)
      [<c04bc1b8>] (imx_drm_unbind) from [<c03530b4>] (component_master_del+0xbc/0xd8)
      ...
      Code: e1a0c00d e92dd800 e24cb004 e3a03000 (e5c03004)
      
      This is caused by a missing check in ipu_plane_dpms for a NULL pointer.
      
      Fixes: b8d181e4 ("staging: drm/imx: add drm plane support")
      Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      Signed-off-by: default avatarKamal Mostafa <kamal@canonical.com>
      9980ceea
    • Alex Deucher's avatar
      drm/radeon: add connector quirk for fujitsu board · 7d3fc6cc
      Alex Deucher authored
      commit 1952f24d upstream.
      
      Vbios connector table lists non-existent VGA port.
      
      Bug:
      https://bugs.freedesktop.org/show_bug.cgi?id=83184Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      Signed-off-by: default avatarKamal Mostafa <kamal@canonical.com>
      7d3fc6cc
    • Christian König's avatar
      drm/radeon: fix semaphore value init · c94c7804
      Christian König authored
      commit f229407d upstream.
      
      Semaphore values have 64 bits, not 32. This fixes a very subtle bug
      that disables synchronization when the upper 32bits wasn't zero.
      Signed-off-by: default avatarChristian König <christian.koenig@amd.com>
      Reviewed-By: default avatarGrigori Goronzy <greg@chown.ath.cx>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      Signed-off-by: default avatarKamal Mostafa <kamal@canonical.com>
      c94c7804
    • J. Bruce Fields's avatar
      lockd: fix rpcbind crash on lockd startup failure · 8cfed8df
      J. Bruce Fields authored
      commit 7c17705e upstream.
      
      Nikita Yuschenko reported that booting a kernel with init=/bin/sh and
      then nfs mounting without portmap or rpcbind running using a busybox
      mount resulted in:
      
        # mount -t nfs 10.30.130.21:/opt /mnt
        svc: failed to register lockdv1 RPC service (errno 111).
        lockd_up: makesock failed, error=-111
        Unable to handle kernel paging request for data at address 0x00000030
        Faulting instruction address: 0xc055e65c
        Oops: Kernel access of bad area, sig: 11 [#1]
        MPC85xx CDS
        Modules linked in:
        CPU: 0 PID: 1338 Comm: mount Not tainted 3.10.44.cge #117
        task: cf29cea0 ti: cf35c000 task.ti: cf35c000
        NIP: c055e65c LR: c0566490 CTR: c055e648
        REGS: cf35dad0 TRAP: 0300   Not tainted  (3.10.44.cge)
        MSR: 00029000 <CE,EE,ME>  CR: 22442488  XER: 20000000
        DEAR: 00000030, ESR: 00000000
      
        GPR00: c05606f4 cf35db80 cf29cea0 cf0ded80 cf0dedb8 00000001 1dec3086
        00000000
        GPR08: 00000000 c07b1640 00000007 1dec3086 22442482 100b9758 00000000
        10090ae8
        GPR16: 00000000 000186a5 00000000 00000000 100c3018 bfa46edc 100b0000
        bfa46ef0
        GPR24: cf386ae0 c07834f0 00000000 c0565f88 00000001 cf0dedb8 00000000
        cf0ded80
        NIP [c055e65c] call_start+0x14/0x34
        LR [c0566490] __rpc_execute+0x70/0x250
        Call Trace:
        [cf35db80] [00000080] 0x80 (unreliable)
        [cf35dbb0] [c05606f4] rpc_run_task+0x9c/0xc4
        [cf35dbc0] [c0560840] rpc_call_sync+0x50/0xb8
        [cf35dbf0] [c056ee90] rpcb_register_call+0x54/0x84
        [cf35dc10] [c056f24c] rpcb_register+0xf8/0x10c
        [cf35dc70] [c0569e18] svc_unregister.isra.23+0x100/0x108
        [cf35dc90] [c0569e38] svc_rpcb_cleanup+0x18/0x30
        [cf35dca0] [c0198c5c] lockd_up+0x1dc/0x2e0
        [cf35dcd0] [c0195348] nlmclnt_init+0x2c/0xc8
        [cf35dcf0] [c015bb5c] nfs_start_lockd+0x98/0xec
        [cf35dd20] [c015ce6c] nfs_create_server+0x1e8/0x3f4
        [cf35dd90] [c0171590] nfs3_create_server+0x10/0x44
        [cf35dda0] [c016528c] nfs_try_mount+0x158/0x1e4
        [cf35de20] [c01670d0] nfs_fs_mount+0x434/0x8c8
        [cf35de70] [c00cd3bc] mount_fs+0x20/0xbc
        [cf35de90] [c00e4f88] vfs_kern_mount+0x50/0x104
        [cf35dec0] [c00e6e0c] do_mount+0x1d0/0x8e0
        [cf35df10] [c00e75ac] SyS_mount+0x90/0xd0
        [cf35df40] [c000ccf4] ret_from_syscall+0x0/0x3c
      
      The addition of svc_shutdown_net() resulted in two calls to
      svc_rpcb_cleanup(); the second is no longer necessary and crashes when
      it calls rpcb_register_call with clnt=NULL.
      Reported-by: default avatarNikita Yushchenko <nyushchenko@dev.rtsoft.ru>
      Fixes: 679b033d "lockd: ensure we tear down any live sockets when socket creation fails during lockd_up"
      Acked-by: default avatarJeff Layton <jlayton@primarydata.com>
      Signed-off-by: default avatarJ. Bruce Fields <bfields@redhat.com>
      Signed-off-by: default avatarKamal Mostafa <kamal@canonical.com>
      8cfed8df
    • Ville Syrjälä's avatar
      drm/i915: Wait for vblank before enabling the TV encoder · b65a0c29
      Ville Syrjälä authored
      commit 7a98948f upstream.
      
      The vblank waits in intel_tv_detect_type() are timing out for some
      reason. This is a regression caused removing seemingly useless vblank
      waits from the modeset seqeuence in:
      
       commit 56ef52ca
       Author: Ville Syrjälä <ville.syrjala@linux.intel.com>
       Date:   Thu May 8 19:23:15 2014 +0300
      
          drm/i915: Kill vblank waits after pipe enable on gmch platforms
      
      So it turns out they weren't all entirely useless. Apparently the pipe
      has to go through one full frame before we enable the TV port. Add a
      vblank wait to intel_enable_tv() to make sure that happens.
      
      Another approach was attempted by placing the vblank wait just after
      enabling the port. The theory behind that attempt was that we need to
      let the port stay enabled for one full frame before disabling it again
      during load detection. But that didn't work, and we definitely must
      have the vblank wait before enabling the port.
      
      Cc: Alan Bartlett <ajb@elrepo.org>
      Tested-by: default avatarAlan Bartlett <ajb@elrepo.org>
      Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=79311Signed-off-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
      Reviewed-by: default avatarDaniel Vetter <daniel@ffwll.ch>
      Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
      Signed-off-by: default avatarKamal Mostafa <kamal@canonical.com>
      b65a0c29
    • Chris Wilson's avatar
      drm/i915: Evict CS TLBs between batches · b1e65c03
      Chris Wilson authored
      commit c4d69da1 upstream.
      
      Running igt, I was encountering the invalid TLB bug on my 845g, despite
      that it was using the CS workaround. Examining the w/a buffer in the
      error state, showed that the copy from the user batch into the
      workaround itself was suffering from the invalid TLB bug (the first
      cacheline was broken with the first two words reversed). Time to try a
      fresh approach. This extends the workaround to write into each page of
      our scratch buffer in order to overflow the TLB and evict the invalid
      entries. This could be refined to only do so after we update the GTT,
      but for simplicity, we do it before each batch.
      
      I suspect this supersedes our current workaround, but for safety keep
      doing both.
      
      v2: The magic number shall be 2.
      
      This doesn't conclusively prove that it is the mythical TLB bug we've
      been trying to workaround for so long, that it requires touching a number
      of pages to prevent the corruption indicates to me that it is TLB
      related, but the corruption (the reversed cacheline) is more subtle than
      a TLB bug, where we would expect it to read the wrong page entirely.
      
      Oh well, it prevents a reliable hang for me and so probably for others
      as well.
      Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
      Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
      Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
      Reviewed-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
      [ kamal: backport to 3.13-stable: context ]
      Signed-off-by: default avatarKamal Mostafa <kamal@canonical.com>
      b1e65c03
    • Lee, Chun-Yi's avatar
      ACPI / RTC: Fix CMOS RTC opregion handler accesses to wrong addresses · 01f226e3
      Lee, Chun-Yi authored
      commit 9389f46e upstream.
      
      The value64 parameter is an u64 point that used to transfer the value
      for write to CMOS, or used to return the value that's read from CMOS.
      
      The value64 is an u64 point, so don't need get address again. It causes
      acpi_cmos_rtc_space_handler always return 0 to reader and didn't write
      expected value to CMOS.
      Signed-off-by: default avatarLee, Chun-Yi <jlee@suse.com>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      Signed-off-by: default avatarKamal Mostafa <kamal@canonical.com>
      01f226e3
    • Daniel Vetter's avatar
      drm/i915: Fix EIO/wedged handling in gem fault handler · 7f517234
      Daniel Vetter authored
      commit 2232f031 upstream.
      
      In
      
      commit 1f83fee0
      Author: Daniel Vetter <daniel.vetter@ffwll.ch>
      Date:   Thu Nov 15 17:17:22 2012 +0100
      
          drm/i915: clear up wedged transitions
      
      I've accidentally inverted the EIO/wedged handling in the fault
      handler: We want to return the EIO as a SIGBUS only if it's not
      because of the gpu having died, to prevent userspace from unduly
      dying.
      
      In my defence the comment right above is completely misleading, so fix
      both.
      
      v2: Drop the WARN_ON, it's not actually a bug to e.g. receive an -EIO
      when swap-in fails.
      
      v3: Don't remove too much ... oops.
      Reported-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
      Cc: Chris Wilson <chris@chris-wilson.co.uk>
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@intel.com>
      Reviewed-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
      Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
      [ kamal: backport to 3.13-stable: context ]
      Signed-off-by: default avatarKamal Mostafa <kamal@canonical.com>
      7f517234
    • Murali Karicheri's avatar
      ahci: add pcid for Marvel 0x9182 controller · 5ccf886b
      Murali Karicheri authored
      commit c5edfff9 upstream.
      
      Keystone K2E EVM uses Marvel 0x9182 controller. This requires support
      for the ID in the ahci driver.
      Signed-off-by: default avatarMurali Karicheri <m-karicheri2@ti.com>
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Cc: Santosh Shilimkar <santosh.shilimkar@ti.com>
      Signed-off-by: default avatarKamal Mostafa <kamal@canonical.com>
      5ccf886b
    • Varun Sethi's avatar
      iommu/fsl: Fix warning resulting from adding PCI device twice · a720a951
      Varun Sethi authored
      commit 5a9137a6 upstream.
      
      iommu_group_get_for_dev determines the iommu group for the PCI device and adds
      the device to the group.
      
      In the PAMU driver we were again adding the device to the same group without checking
      if the device already had an iommu group. This resulted in the following warning.
      
      sysfs: cannot create duplicate filename '/devices/ffe200000.pcie/pci0000:00/0000:00:00.0/iommu_group'
      ------------[ cut here ]------------
      WARNING: at fs/sysfs/dir.c:31
      Modules linked in:
      CPU: 0 PID: 1 Comm: swapper/0 Not tainted 3.17.0-rc3-00002-g7505ceaf-dirty #126
      task: c0000001fe0a0000 ti: c0000001fe044000 task.ti: c0000001fe044000
      NIP: c00000000018879c LR: c000000000188798 CTR: c00000000001ea50
      REGS: c0000001fe047040 TRAP: 0700   Not tainted  (3.17.0-rc3-00002-g7505ceaf-dirty)
      MSR: 0000000080029000 <CE,EE,ME>  CR: 24ad8e22  XER: 20000000
      SOFTE: 1
      GPR00: c000000000188798 c0000001fe0472c0 c0000000009a52e0 0000000000000065
      GPR04: 0000000000000001 0000000000000000 3a30303a00000000 0000000027000000
      GPR08: 2f696f6d00000000 c0000000008d3830 c0000000009b3938 c0000000009bb3d0
      GPR12: 0000000028ad8e24 c00000000fff4000 c00000000000205c 0000000000000000
      GPR16: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
      GPR20: 0000000000000000 0000000000000000 0000000000000000 c0000000008a4c70
      GPR24: c0000000007e9010 c0000001fe0140a8 ffffffffffffffef 0000000000000001
      GPR28: c0000001fe22ebb8 c0000000007e9010 c00000000090bf10 c0000001fe220000
      NIP [c00000000018879c] .sysfs_warn_dup+0x74/0xa4
      LR [c000000000188798] .sysfs_warn_dup+0x70/0xa4
      Call Trace:
      [c0000001fe0472c0] [c000000000188798] .sysfs_warn_dup+0x70/0xa4 (unreliable)
      [c0000001fe047350] [c000000000188d34] .sysfs_do_create_link_sd.clone.2+0x168/0x174
      [c0000001fe047400] [c0000000004b3cf8] .iommu_group_add_device+0x78/0x244
      [c0000001fe0474b0] [c0000000004b6964] .fsl_pamu_add_device+0x88/0x1a8
      [c0000001fe047570] [c0000000004b3960] .iommu_bus_notifier+0xdc/0x15c
      [c0000001fe047600] [c000000000059848] .notifier_call_chain+0x8c/0xe8
      [c0000001fe0476a0] [c000000000059d04] .__blocking_notifier_call_chain+0x58/0x84
      [c0000001fe047750] [c00000000036619c] .device_add+0x464/0x5c8
      [c0000001fe047820] [c000000000300ebc] .pci_device_add+0x14c/0x17c
      [c0000001fe0478c0] [c000000000300fbc] .pci_scan_single_device+0xd0/0xf4
      [c0000001fe047970] [c00000000030104c] .pci_scan_slot+0x6c/0x18c
      [c0000001fe047a10] [c00000000030226c] .pci_scan_child_bus+0x40/0x114
      [c0000001fe047ac0] [c000000000021974] .pcibios_scan_phb+0x240/0x2c8
      [c0000001fe047b70] [c00000000085a970] .pcibios_init+0x64/0xc8
      [c0000001fe047c00] [c000000000001884] .do_one_initcall+0xbc/0x224
      [c0000001fe047d00] [c000000000852d50] .kernel_init_freeable+0x14c/0x21c
      [c0000001fe047db0] [c000000000002078] .kernel_init+0x1c/0xfa4
      [c0000001fe047e30] [c000000000000884] .ret_from_kernel_thread+0x58/0xd4
      Instruction dump:
      7c7f1b79 4182001c 7fe4fb78 7f83e378 38a01000 4bffc905 60000000 7c641b78
      e87e8008 7fa5eb78 48482ff5 60000000 <0fe00000> 7fe3fb78 4bf7bd39 60000000
      Signed-off-by: default avatarVarun Sethi <Varun.Sethi@freescale.com>
      Signed-off-by: default avatarJoerg Roedel <jroedel@suse.de>
      Signed-off-by: default avatarKamal Mostafa <kamal@canonical.com>
      a720a951
    • Felipe Balbi's avatar
      usb: dwc3: omap: fix ordering for runtime pm calls · af57e4cf
      Felipe Balbi authored
      commit 81a60b7f upstream.
      
      we don't to gate clocks until our children are
      done with their remove path.
      
      Fixes: af310e96 (usb: dwc3: omap: use runtime API's to enable clocks)
      Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
      Signed-off-by: default avatarKamal Mostafa <kamal@canonical.com>
      af57e4cf
    • Felipe Balbi's avatar
      usb: dwc3: core: fix ordering for PHY suspend · 64a2b7c9
      Felipe Balbi authored
      commit dc99f16f upstream.
      
      We can't suspend the PHYs before dwc3_core_exit_mode()
      has been called, that's because the host and/or device
      sides might still need to communicate with the far end
      link partner.
      
      Fixes: 8ba007a9 (usb: dwc3: core: enable the USB2 and USB3 phy in probe)
      Suggested-by: default avatarAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
      [ kamal: backport to 3.13-stable: context ]
      Signed-off-by: default avatarKamal Mostafa <kamal@canonical.com>
      64a2b7c9
    • Felipe Balbi's avatar
      usb: dwc3: core: fix order of PM runtime calls · f8e3c382
      Felipe Balbi authored
      commit fed33afc upstream.
      
      Currently, we disable pm_runtime before all register
      accesses are done, this is dangerous and might lead
      to abort exceptions due to the driver trying to access
      a register which is clocked by a clock which was long
      gated.
      
      Fix that by moving pm_runtime_put_sync() and pm_runtime_disable()
      as the last thing we do before returning from our ->remove()
      method.
      
      Fixes: 72246da4 (usb: Introduce DesignWare USB3 DRD Driver)
      Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
      Signed-off-by: default avatarKamal Mostafa <kamal@canonical.com>
      f8e3c382
    • Keith Busch's avatar
      block: Fix dev_t minor allocation lifetime · e4c2359a
      Keith Busch authored
      commit 2da78092 upstream.
      
      Releases the dev_t minor when all references are closed to prevent
      another device from acquiring the same major/minor.
      
      Since the partition's release may be invoked from call_rcu's soft-irq
      context, the ext_dev_idr's mutex had to be replaced with a spinlock so
      as not so sleep.
      Signed-off-by: default avatarKeith Busch <keith.busch@intel.com>
      Signed-off-by: default avatarJens Axboe <axboe@fb.com>
      Signed-off-by: default avatarKamal Mostafa <kamal@canonical.com>
      e4c2359a
    • Sudeep Holla's avatar
      arm64: use irq_set_affinity with force=false when migrating irqs · 20f111c9
      Sudeep Holla authored
      commit 3d8afe30 upstream.
      
      The arm64 interrupt migration code on cpu offline calls
      irqchip.irq_set_affinity() with the argument force=true. Originally
      this argument had no effect because it was not used by any interrupt
      chip driver and there was no semantics defined.
      
      This changed with commit 01f8fa4f ("genirq: Allow forcing cpu
      affinity of interrupts") which made the force argument useful to route
      interrupts to not yet online cpus without checking the target cpu
      against the cpu online mask. The following commit ffde1de6
      ("irqchip: gic: Support forced affinity setting") implemented this for
      the GIC interrupt controller.
      
      As a consequence the cpu offline irq migration fails if CPU0 is
      offlined, because CPU0 is still set in the affinity mask and the
      validation against cpu online mask is skipped to the force argument
      being true. The following first_cpu(mask) selection always selects
      CPU0 as the target.
      
      Commit 601c9421("arm64: use cpu_online_mask when using forced
      irq_set_affinity") intended to fix the above mentioned issue but
      introduced another issue where affinity can be migrated to a wrong
      CPU due to unconditional copy of cpu_online_mask.
      
      As with for arm, solve the issue by calling irq_set_affinity() with
      force=false from the CPU offline irq migration code so the GIC driver
      validates the affinity mask against CPU online mask and therefore
      removes CPU0 from the possible target candidates. Also revert the
      changes done in the commit 601c9421 as it's no longer needed.
      
      Tested on Juno platform.
      
      Fixes: 601c9421("arm64: use cpu_online_mask when using forced
      	irq_set_affinity")
      Signed-off-by: default avatarSudeep Holla <sudeep.holla@arm.com>
      Acked-by: default avatarMark Rutland <mark.rutland@arm.com>
      Cc: Catalin Marinas <catalin.marinas@arm.com>
      Cc: Will Deacon <will.deacon@arm.com>
      Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
      [ kamal: backport to 3.13-stable: only need the irq_set_affinity(false) fix ]
      Signed-off-by: default avatarKamal Mostafa <kamal@canonical.com>
      20f111c9
    • Thierry Reding's avatar
      usb: phy: tegra: Avoid use of sizeof(void) · c29fa411
      Thierry Reding authored
      commit 9ce9ec95 upstream.
      
      The PHY configuration is stored in an opaque "config" field, but when
      allocating the structure, its proper size needs to be known. In the case
      of UTMI, the proper structure is tegra_utmip_config of which a local
      variable already exists, so we can use that to obtain the size from.
      
      Fixes the following warning from the sparse checker:
      
      	drivers/usb/phy/phy-tegra-usb.c:882:17: warning: expression using sizeof(void)
      
      Fixes: 81d5dfe6 (usb: phy: tegra: Read UTMIP parameters from device tree)
      Signed-off-by: default avatarThierry Reding <treding@nvidia.com>
      Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
      Signed-off-by: default avatarKamal Mostafa <kamal@canonical.com>
      c29fa411
    • Rasmus Villemoes's avatar
      usb: gadget: fusb300_udc.h: Fix typo in include guard · f231af38
      Rasmus Villemoes authored
      commit f0798d6a upstream.
      
      Clearly this was meant to be an include guard, but a trailing
      underscore was missing. It has been this way since the file was
      introduced in 0fe6f1d1 ("usb: udc: add Faraday fusb300 driver").
      
      Fixes: 0fe6f1d1 ("usb: udc: add Faraday fusb300 driver")
      Signed-off-by: default avatarRasmus Villemoes <linux@rasmusvillemoes.dk>
      Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
      Signed-off-by: default avatarKamal Mostafa <kamal@canonical.com>
      f231af38
    • Ross Lagerwall's avatar
      xen/manage: Always freeze/thaw processes when suspend/resuming · e33fc19d
      Ross Lagerwall authored
      commit 61a734d3 upstream.
      
      Always freeze processes when suspending and thaw processes when resuming
      to prevent a race noticeable with HVM guests.
      
      This prevents a deadlock where the khubd kthread (which is designed to
      be freezable) acquires a usb device lock and then tries to allocate
      memory which requires the disk which hasn't been resumed yet.
      Meanwhile, the xenwatch thread deadlocks waiting for the usb device
      lock.
      
      Freezing processes fixes this because the khubd thread is only thawed
      after the xenwatch thread finishes resuming all the devices.
      Signed-off-by: default avatarRoss Lagerwall <ross.lagerwall@citrix.com>
      Signed-off-by: default avatarDavid Vrabel <david.vrabel@citrix.com>
      Signed-off-by: default avatarKamal Mostafa <kamal@canonical.com>
      e33fc19d
    • Vladimir Murzin's avatar
      iommu/arm-smmu: remove pgtable_page_{c,d}tor() · 3133646c
      Vladimir Murzin authored
      commit 93b14135 upstream.
      
      If split page table lock for PTE tables is enabled (CONFIG_SPLIT_PTLOCK_CPUS
      <=NR_CPUS) pgtable_page_ctor() leads to non-atomic allocation for ptlock with
      a spinlock held, resulting in:
      
      ------------[ cut here ]------------
      WARNING: CPU: 0 PID: 466 at kernel/locking/lockdep.c:2742 lockdep_trace_alloc+0xd8/0xf4()
      DEBUG_LOCKS_WARN_ON(irqs_disabled_flags(flags))
      Modules linked in:
      CPU: 0 PID: 466 Comm: dma0chan0-copy0 Not tainted 3.16.0-3d47efb-clean-pl330-dma_test-ve-a15-a32-slr-m
      c-on-3+ #55
      [<80014748>] (unwind_backtrace) from [<80011640>] (show_stack+0x10/0x14)
      [<80011640>] (show_stack) from [<802bf864>] (dump_stack+0x80/0xb4)
      [<802bf864>] (dump_stack) from [<8002385c>] (warn_slowpath_common+0x64/0x88)
      [<8002385c>] (warn_slowpath_common) from [<80023914>] (warn_slowpath_fmt+0x30/0x40)
      [<80023914>] (warn_slowpath_fmt) from [<8005d818>] (lockdep_trace_alloc+0xd8/0xf4)
      [<8005d818>] (lockdep_trace_alloc) from [<800d3d78>] (kmem_cache_alloc+0x24/0x144)
      [<800d3d78>] (kmem_cache_alloc) from [<800bfae4>] (ptlock_alloc+0x18/0x2c)
      [<800bfae4>] (ptlock_alloc) from [<802b1ec0>] (arm_smmu_handle_mapping+0x4c0/0x690)
      [<802b1ec0>] (arm_smmu_handle_mapping) from [<802b0cd8>] (iommu_map+0xe0/0x148)
      [<802b0cd8>] (iommu_map) from [<80019098>] (arm_coherent_iommu_map_page+0x160/0x278)
      [<80019098>] (arm_coherent_iommu_map_page) from [<801f4d78>] (dmatest_func+0x60c/0x1098)
      [<801f4d78>] (dmatest_func) from [<8003f8ac>] (kthread+0xcc/0xe8)
      [<8003f8ac>] (kthread) from [<8000e868>] (ret_from_fork+0x14/0x2c)
      ---[ end trace ce0d27e6f434acf8 ]--
      
      Split page tables lock is not used in the driver. In fact, page tables are
      guarded with domain lock, so remove calls to pgtable_page_{c,d}tor().
      Signed-off-by: default avatarVladimir Murzin <vladimir.murzin@arm.com>
      Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
      Signed-off-by: default avatarKamal Mostafa <kamal@canonical.com>
      3133646c
    • Olav Haugan's avatar
      iommu/arm-smmu: fix programming of SMMU_CBn_TCR for stage 1 · 8a210e06
      Olav Haugan authored
      commit 1fc870c7 upstream.
      
      Stage-1 context banks do not have the SMMU_CBn_TCR[SL0] field since it
      is only applicable to stage-2 context banks.
      
      This patch ensures that we don't set the reserved TCR bits for stage-1
      translations.
      Signed-off-by: default avatarOlav Haugan <ohaugan@codeaurora.org>
      Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
      Signed-off-by: default avatarKamal Mostafa <kamal@canonical.com>
      8a210e06
    • Bjørn Mork's avatar
      USB: sierra: add 1199:68AA device ID · 746cf085
      Bjørn Mork authored
      commit 5b3da692 upstream.
      
      This VID:PID is used for some Direct IP devices behaving
      identical to the already supported 0F3D:68AA devices.
      Reported-by: default avatarLars Melin <larsm17@gmail.com>
      Signed-off-by: default avatarBjørn Mork <bjorn@mork.no>
      Signed-off-by: default avatarJohan Hovold <johan@kernel.org>
      Signed-off-by: default avatarKamal Mostafa <kamal@canonical.com>
      746cf085
    • Bjørn Mork's avatar
      USB: sierra: avoid CDC class functions on "68A3" devices · 04b59f67
      Bjørn Mork authored
      commit 049255f5 upstream.
      
      Sierra Wireless Direct IP devices using the 68A3 product ID
      can be configured for modes including a CDC ECM class function.
      The known example uses interface numbers 12 and 13 for the ECM
      control and data interfaces respectively, consistent with CDC
      MBIM function interface numbering on other Sierra devices.
      
      It seems cleaner to restrict this driver to the ff/ff/ff
      vendor specific interfaces rather than increasing the already
      long interface number blacklist.  This should be more future
      proof if Sierra adds more class functions using interface
      numbers not yet in the blacklist.
      Signed-off-by: default avatarBjørn Mork <bjorn@mork.no>
      Signed-off-by: default avatarJohan Hovold <johan@kernel.org>
      Signed-off-by: default avatarKamal Mostafa <kamal@canonical.com>
      04b59f67
    • Johan Hovold's avatar
      USB: ftdi_sio: add support for NOVITUS Bono E thermal printer · dfb40b30
      Johan Hovold authored
      commit ee444609 upstream.
      
      Add device id for NOVITUS Bono E thermal printer.
      Reported-by: default avatarEmanuel Koczwara <poczta@emanuelkoczwara.pl>
      Signed-off-by: default avatarJohan Hovold <johan@kernel.org>
      Signed-off-by: default avatarKamal Mostafa <kamal@canonical.com>
      dfb40b30
    • Johan Hovold's avatar
      USB: zte_ev: fix removed PIDs · c45e9631
      Johan Hovold authored
      commit 4df0ea41 upstream.
      
      Add back some PIDs that were mistakingly remove when reverting commit
      73228a05 ("USB: option,zte_ev: move most ZTE CDMA devices to
      zte_ev"), which apparently did more than its commit message claimed in
      that it not only moved some PIDs from option to zte_ev but also added
      some new ones.
      
      Fixes: 63a901c0 ("Revert "USB: option,zte_ev: move most ZTE CDMA
      devices to zte_ev"")
      Reported-by: default avatarLei Liu <lei35151@163.com>
      Signed-off-by: default avatarKamal Mostafa <kamal@canonical.com>
      c45e9631
    • Emmanuel Grumbach's avatar
      Revert "iwlwifi: dvm: don't enable CTS to self" · 568984f1
      Emmanuel Grumbach authored
      commit f47f46d7 upstream.
      
      This reverts commit 43d826ca.
      
      This commit caused packet loss.
      Signed-off-by: default avatarEmmanuel Grumbach <emmanuel.grumbach@intel.com>
      Signed-off-by: default avatarKamal Mostafa <kamal@canonical.com>
      568984f1
    • James Ralston's avatar
      ata_piix: Add Device IDs for Intel 9 Series PCH · e0975076
      James Ralston authored
      commit 6cad1376 upstream.
      
      This patch adds the IDE mode SATA Device IDs for the Intel 9 Series PCH.
      Signed-off-by: default avatarJames Ralston <james.d.ralston@intel.com>
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Signed-off-by: default avatarKamal Mostafa <kamal@canonical.com>
      e0975076
    • James Ralston's avatar
      ahci: Add Device IDs for Intel 9 Series PCH · 30a85808
      James Ralston authored
      commit 1b071a09 upstream.
      
      This patch adds the AHCI mode SATA Device IDs for the Intel 9 Series PCH.
      Signed-off-by: default avatarJames Ralston <james.d.ralston@intel.com>
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Signed-off-by: default avatarKamal Mostafa <kamal@canonical.com>
      30a85808
    • Johannes Berg's avatar
      Revert "mac80211: disable uAPSD if all ACs are under ACM" · 9bf14e45
      Johannes Berg authored
      commit bb512ad0 upstream.
      
      This reverts commit 24aa11ab.
      
      That commit was wrong since it uses data that hasn't even been set
      up yet, but might be a hold-over from a previous connection.
      
      Additionally, it seems like a driver-specific workaround that
      shouldn't have been in mac80211 to start with.
      
      Fixes: 24aa11ab ("mac80211: disable uAPSD if all ACs are under ACM")
      Reviewed-by: default avatarLuciano Coelho <luciano.coelho@intel.com>
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: default avatarKamal Mostafa <kamal@canonical.com>
      9bf14e45