~dannf/ubuntu/+source/linux/+git/xenial:qle-firmware

Last commit made on 2016-09-13
Get this branch:
git clone -b qle-firmware https://git.launchpad.net/~dannf/ubuntu/+source/linux/+git/xenial
Only dann frazier can upload to this branch. If you are dann frazier please log in for upload directions.

Branch merges

Branch information

Name:
qle-firmware
Repository:
lp:~dannf/ubuntu/+source/linux/+git/xenial

Recent commits

7bb158e... by Yuval Mintz <email address hidden>

qed: add MODULE_FIRMWARE()

BugLink: http://bugs.launchpad.net/bugs/1623187

Module is using a binary firmware file and so should be marked as such.

Signed-off-by: Yuval Mintz <email address hidden>
Signed-off-by: David S. Miller <email address hidden>
(cherry picked from commit d43d3f0f393b21ee14c0487d5757edae194c4848)
Signed-off-by: dann frazier <email address hidden>

d316a8a... by Mauricio Faria de Oliveira

powerpc/pseries: use pci_host_bridge.release_fn() to kfree(phb)

BugLink: http://bugs.launchpad.net/bugs/1618151

This patch leverages 'struct pci_host_bridge' from the PCI subsystem
in order to free the pci_controller only after the last reference to
its devices is dropped (avoiding an oops in pcibios_release_device()
if the last reference is dropped after pcibios_free_controller()).

The patch relies on pci_host_bridge.release_fn() (and .release_data),
which is called automatically by the PCI subsystem when the root bus
is released (i.e., the last reference is dropped). Those fields are
set via pci_set_host_bridge_release() (e.g. in the platform-specific
implementation of pcibios_root_bridge_prepare()).

It introduces the 'pcibios_free_controller_deferred()' .release_fn()
and it expects .release_data to hold a pointer to the pci_controller.

The function implictly calls 'pcibios_free_controller()', so an user
must *NOT* explicitly call it if using the new _deferred() callback.

The functionality is enabled for pseries (although it isn't platform
specific, and may be used by cxl).

Details on not-so-elegant design choices:

 - Use 'pci_host_bridge.release_data' field as pointer to associated
   'struct pci_controller' so *not* to 'pci_bus_to_host(bridge->bus)'
   in pcibios_free_controller_deferred().

   That's because pci_remove_root_bus() sets 'host_bridge->bus = NULL'
   (so, if the last reference is released after pci_remove_root_bus()
   runs, which eventually reaches pcibios_free_controller_deferred(),
   that would hit a null pointer dereference).

   The cxl/vphb.c code calls pci_remove_root_bus(), and the cxl folks
   are interested in this fix.

Test-case #1 (hold references)

  # ls -ld /sys/block/sd* | grep -m1 0021:01:00.0
  <...> /sys/block/sdaa -> ../devices/pci0021:01/0021:01:00.0/<...>

  # ls -ld /sys/block/sd* | grep -m1 0021:01:00.1
  <...> /sys/block/sdab -> ../devices/pci0021:01/0021:01:00.1/<...>

  # cat >/dev/sdaa & pid1=$!
  # cat >/dev/sdab & pid2=$!

  # drmgr -w 5 -d 1 -c phb -s 'PHB 33' -r
  Validating PHB DLPAR capability...yes.
  [ 594.306719] pci_hp_remove_devices: PCI: Removing devices on bus 0021:01
  [ 594.306738] pci_hp_remove_devices: Removing 0021:01:00.0...
  ...
  [ 598.236381] pci_hp_remove_devices: Removing 0021:01:00.1...
  ...
  [ 611.972077] pci_bus 0021:01: busn_res: [bus 01-ff] is released
  [ 611.972140] rpadlpar_io: slot PHB 33 removed

  # kill -9 $pid1
  # kill -9 $pid2
  [ 632.918088] pcibios_free_controller_deferred: domain 33, dynamic 1

Test-case #2 (don't hold references)

  # drmgr -w 5 -d 1 -c phb -s 'PHB 33' -r
  Validating PHB DLPAR capability...yes.
  [ 916.357363] pci_hp_remove_devices: PCI: Removing devices on bus 0021:01
  [ 916.357386] pci_hp_remove_devices: Removing 0021:01:00.0...
  ...
  [ 920.566527] pci_hp_remove_devices: Removing 0021:01:00.1...
  ...
  [ 933.955873] pci_bus 0021:01: busn_res: [bus 01-ff] is released
  [ 933.955977] pcibios_free_controller_deferred: domain 33, dynamic 1
  [ 933.955999] rpadlpar_io: slot PHB 33 removed

Suggested-By: Gavin Shan <email address hidden>
Signed-off-by: Mauricio Faria de Oliveira <email address hidden>
Reviewed-by: Gavin Shan <email address hidden>
Reviewed-by: Andrew Donnellan <email address hidden>
Tested-by: Andrew Donnellan <email address hidden> # cxl
Signed-off-by: Benjamin Herrenschmidt <email address hidden>
(cherry picked from commit 2dd9c11b9d4dfbd6c070eab7b81197f65e82f1a0)
Signed-off-by: Tim Gardner <email address hidden>
Acked-by: Kamal Mostafa <email address hidden>
Acked-by: Chris J Arges <email address hidden>

880c817... by Seth Forshee

UBUNTU: SAUCE: (namespace) userns: Export current_in_userns to modules

BugLink: http://bugs.launchpad.net/bugs/1617550

Building fuse as a module fails because this symbol is not
exported.

Signed-off-by: Seth Forshee <email address hidden>
Signed-off-by: Tim Gardner <email address hidden>
Acked-by: Brad Figg <email address hidden>

c4cf5fc... by tglx

blk-mq: Use proper cpumask iterator

BugLink: http://bugs.launchpad.net/bugs/1572630

queue_for_each_ctx() iterates over per_cpu variables under the assumption that
the possible cpu mask cannot have holes. That's wrong as all cpumasks can have
holes. In case there are holes the iteration ends up accessing uninitialized
memory and crashing as a result.

Replace the macro by a proper for_each_possible_cpu() loop and drop the unused
macro blk_ctx_sum() which references queue_for_each_ctx().

Reported-by: Xiong Zhou <email address hidden>
Signed-off-by: Thomas Gleixner <email address hidden>
Signed-off-by: Jens Axboe <email address hidden>
(back ported from commit 897bb0c7f1ea82d7cc882b19790b5e1df00ffc29)
Signed-off-by: Tim Gardner <email address hidden>

 Conflicts:
 block/blk-mq-sysfs.c
Acked-by: Chris J Arges <email address hidden>

4ab4f92... by Raghavendra K T <email address hidden>

blk-mq: Reuse hardware context cpumask for tags

BugLink: http://bugs.launchpad.net/bugs/1572630

hctx->cpumask is already populated and let the tag cpumask follow that
instead of going through a new for loop.

Signed-off-by: Raghavendra K T <email address hidden>
Reviewed-by: Sagi Grimberg <email address hidden>
Signed-off-by: Jens Axboe <email address hidden>
(cherry picked from commit e0e827b9fc71fbed1a9cd246067c2a4dbd3ea220)
Signed-off-by: Eric Desrochers <email address hidden>
Acked-by: Chris J Arges <email address hidden>
Signed-off-by: Tim Gardner <email address hidden>

98bb14a... by Tim Gardner

UBUNTU: Start new release

Ignore: yes
Signed-off-by: Tim Gardner <email address hidden>

698f3f2... by Tim Gardner

UBUNTU: Ubuntu-4.4.0-38.57

Signed-off-by: Tim Gardner <email address hidden>

ca6fe33... by Eric W. Biederman

fs: Call d_automount with the filesystems creds

BugLink: http://bugs.launchpad.net/bugs/1612135

Seth Forshee reported a mount regression in nfs autmounts
with "fs: Add user namespace member to struct super_block".

It turns out that the assumption that current->cred is something
reasonable during mount while necessary to improve support of
unprivileged mounts is wrong in the automount path.

To fix the existing filesystems override current->cred with the
init_cred before calling d_automount and restore current->cred after
d_automount completes.

To support unprivileged mounts would require a more nuanced cred
selection, so fail on unprivileged mounts for the time being. As none
of the filesystems that currently set FS_USERNS_MOUNT implement
d_automount this check is only good for preventing future problems.

Fixes: 6e4eab577a0c ("fs: Add user namespace member to struct super_block")
Tested-by: Seth Forshee <email address hidden>
Signed-off-by: "Eric W. Biederman" <email address hidden>
(backported from commit aeaa4a79ff6a5ed912b7362f206cf8576fca538b)
Signed-off-by: Seth Forshee <email address hidden>
Acked-by: Stefan Bader <email address hidden>
Acked-by: Colin King <email address hidden>
Acked-by: Brad Figg <email address hidden>
Signed-off-by: Tim Gardner <email address hidden>

be687e4... by Seth Forshee

Revert "UBUNTU: SAUCE: (namespace) Bypass sget() capability check for nfs"

BugLink: http://bugs.launchpad.net/bugs/1612135

This reverts commit d15123a5a9e5c9fcb95909ea30699d46035e7734 in
order to replace it with the more generic upstream fix.

Signed-off-by: Seth Forshee <email address hidden>
Acked-by: Stefan Bader <email address hidden>
Acked-by: Colin King <email address hidden>
Acked-by: Brad Figg <email address hidden>
Signed-off-by: Tim Gardner <email address hidden>

0aa7720... by Andy Whitcroft

UBUNTU: SAUCE: overlayfs: fix regression in whiteout detection

The Ubuntu backport of the below commit necessarily had to follow the
changes to is_ovl_whiteout. In the process the wrong dentry was passed
preventing correct detection of legacy whitouts in a rename over a
whitout on some upper filesystem types (at least ramfs):

  commit 11f3710417d026ea2f4fcf362d866342c5274185
  Author: Miklos Szeredi <email address hidden>
  Date: Mon Mar 21 17:31:44 2016 +0100

    ovl: verify upper dentry before unlink and rename

Pass the correct dentry to allow detection of the appropriate whiteout
types.

Fixes: 11f3710417d0 ("ovl: verify upper dentry before unlink and rename") in Ubuntu
BugLink: http://bugs.launchpad.net/bugs/1618572
Signed-off-by: Andy Whitcroft <email address hidden>
Acked-by: Stefan Bader <email address hidden>
Signed-off-by: Tim Gardner <email address hidden>