All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 3.18 00/64] 3.18.88-stable review
@ 2017-12-15  9:21 Greg Kroah-Hartman
  2017-12-15  9:21 ` [PATCH 3.18 01/64] can: kvaser_usb: free buf in error paths Greg Kroah-Hartman
                   ` (61 more replies)
  0 siblings, 62 replies; 64+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-15  9:21 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, torvalds, akpm, linux, shuahkh, patches,
	ben.hutchings, lkft-triage, stable

This is the start of the stable review cycle for the 3.18.88 release.
There are 64 patches in this series, all will be posted as a response
to this one.  If anyone has any issues with these being applied, please
let me know.

Responses should be made by Sun Dec 17 09:21:53 UTC 2017.
Anything received after that time might be too late.

The whole patch series can be found in one patch at:
	kernel.org/pub/linux/kernel/v3.x/stable-review/patch-3.18.88-rc1.gz
or in the git tree and branch at:
  git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-3.18.y
and the diffstat can be found below.

thanks,

greg k-h

-------------
Pseudo-Shortlog of commits:

Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Linux 3.18.88-rc1

Vincent Pelletier <plr.vincent@gmail.com>
    usb: gadget: ffs: Forbid usb_ep_alloc_request from sleeping

Marc Zyngier <marc.zyngier@arm.com>
    arm: KVM: Fix VTTBR_BADDR_MASK BUG_ON off-by-one

Paul Moore <paul@paul-moore.com>
    audit: ensure that 'audit=1' actually enables audit for PID 1

David Howells <dhowells@redhat.com>
    afs: Connect up the CB.ProbeUuid

Majd Dibbiny <majd@mellanox.com>
    IB/mlx5: Assign send CQ and recv CQ of UMR QP

Mark Bloch <markb@mellanox.com>
    IB/mlx4: Increase maximal message size under UD QP

Herbert Xu <herbert@gondor.apana.org.au>
    xfrm: Copy policy family in clone_policy

Arvind Yadav <arvind.yadav.cs@gmail.com>
    atm: horizon: Fix irq release error

Xin Long <lucien.xin@gmail.com>
    sctp: use the right sk after waking up from wait_buf sleep

Xin Long <lucien.xin@gmail.com>
    sctp: do not free asoc when it is already dead in sctp_sendmsg

Pavel Tatashin <pasha.tatashin@oracle.com>
    sparc64/mm: set fields in deferred pages

Chuck Lever <chuck.lever@oracle.com>
    sunrpc: Fix rpc_task_begin trace point

Trond Myklebust <trond.myklebust@primarydata.com>
    NFS: Fix a typo in nfs_rename()

Randy Dunlap <rdunlap@infradead.org>
    dynamic-debug-howto: fix optional/omitted ending line number to be LARGE instead of 0

Stephen Bates <sbates@raithlin.com>
    lib/genalloc.c: make the avail variable an atomic_long_t

Xin Long <lucien.xin@gmail.com>
    route: update fnhe_expires for redirect when the fnhe exists

Xin Long <lucien.xin@gmail.com>
    route: also update fnhe_genid when updating a route cache

Jérémy Lefaure <jeremy.lefaure@lse.epita.fr>
    EDAC, i5000, i5400: Fix definition of NRECMEMB register

Jérémy Lefaure <jeremy.lefaure@lse.epita.fr>
    EDAC, i5000, i5400: Fix use of MTR_DRAM_WIDTH macro

Jan Kara <jack@suse.cz>
    axonram: Fix gendisk handling

Chris Brandt <chris.brandt@renesas.com>
    i2c: riic: fix restart condition

Krzysztof Kozlowski <krzk@kernel.org>
    crypto: s5p-sss - Fix completing crypto request in IRQ handler

WANG Cong <xiyou.wangcong@gmail.com>
    ipv6: reorder icmpv6_init() and ip6_mr_init()

Michal Schmidt <mschmidt@redhat.com>
    bnx2x: fix possible overrun of VFPF multicast addresses array

Blomme, Maarten <Maarten.Blomme@flir.com>
    spi_ks8995: fix "BUG: key accdaa28 not in .data!"

Mark Rutland <mark.rutland@arm.com>
    arm: KVM: Survive unknown traps from guests

Wanpeng Li <wanpeng.li@hotmail.com>
    KVM: nVMX: reset nested_run_pending if the vCPU is going to be reset

Franck Demathieu <fdemathieu@gmail.com>
    irqchip/crossbar: Fix incorrect type of register size

James Smart <jsmart2021@gmail.com>
    scsi: lpfc: Fix crash during Hardware error recovery on SLI3 adapters

Tejun Heo <tj@kernel.org>
    workqueue: trigger WARN if queue_delayed_work() is called with NULL @wq

Tejun Heo <tj@kernel.org>
    libata: drop WARN from protocol error in ata_sff_qc_issue()

Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    USB: gadgetfs: Fix a potential memory leak in 'dev_config()'

John Keeping <john@metanate.com>
    usb: gadget: configs: plug memory leak

Sachin Sant <sachinp@linux.vnet.ibm.com>
    selftest/powerpc: Fix false failures for skipped tests

Sasha Levin <alexander.levin@verizon.com>
    Revert "s390/kbuild: enable modversions for symbols exported from asm"

Sasha Levin <alexander.levin@verizon.com>
    Revert "drm/armada: Fix compile fail"

Eric Dumazet <edumazet@google.com>
    net/packet: fix a race in packet_bind() and packet_notifier()

Hangbin Liu <liuhangbin@gmail.com>
    sit: update frag_off info

Håkon Bugge <Haakon.Bugge@oracle.com>
    rds: Fix NULL pointer dereference in __rds_rdma_map

Dave Martin <Dave.Martin@arm.com>
    arm64: fpsimd: Prevent registers leaking from dead tasks

Andrew Honig <ahonig@google.com>
    KVM: VMX: remove I/O port 0x80 bypass on Intel hosts

Kristina Martsenko <kristina.martsenko@arm.com>
    arm64: KVM: fix VTTBR_BADDR_MASK BUG_ON off-by-one

Laurent Caumont <lcaumont2@gmail.com>
    media: dvb: i2c transfers over usb cannot be done from stack

Daniel Thompson <daniel.thompson@linaro.org>
    kdb: Fix handling of kallsyms_symbol_next() return value

Robin Murphy <robin.murphy@arm.com>
    iommu/vt-d: Fix scatterlist offset handling

Jaejoong Kim <climbbb.kim@gmail.com>
    ALSA: usb-audio: Add check return value for usb_string()

Jaejoong Kim <climbbb.kim@gmail.com>
    ALSA: usb-audio: Fix out-of-bound error

Takashi Iwai <tiwai@suse.de>
    ALSA: seq: Remove spurious WARN_ON() at timer check

Robb Glasser <rglasser@google.com>
    ALSA: pcm: prevent UAF in snd_pcm_info

Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    x86/PCI: Make broadcom_postcore_init() check acpi_disabled

Eric Biggers <ebiggers@google.com>
    X.509: reject invalid BIT STRING for subjectPublicKey

Eric Biggers <ebiggers@google.com>
    KEYS: add missing permission check for request_key() destination

Eric Biggers <ebiggers@google.com>
    ASN.1: check for error from ASN1_OP_END__ACT actions

Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    efi: Move some sysfs files to be read-only by root

William Breathitt Gray <vilhelm.gray@gmail.com>
    isa: Prevent NULL dereference in isa_bus driver callbacks

Paul Meyer <Paul.Meyer@microsoft.com>
    hv: kvp: Avoid reading past allocated blocks from KVP file

weiping zhang <zwp10758@gmail.com>
    virtio: release virtio index when fail to device_register

Martin Kelly <mkelly@xevo.com>
    can: usb_8dev: cancel urb on -EPIPE and -EPROTO

Martin Kelly <mkelly@xevo.com>
    can: esd_usb2: cancel urb on -EPIPE and -EPROTO

Martin Kelly <mkelly@xevo.com>
    can: ems_usb: cancel urb on -EPIPE and -EPROTO

Martin Kelly <mkelly@xevo.com>
    can: kvaser_usb: cancel urb on -EPIPE and -EPROTO

Jimmy Assarsson <jimmyassarsson@gmail.com>
    can: kvaser_usb: ratelimit errors if incomplete messages are received

Jimmy Assarsson <jimmyassarsson@gmail.com>
    can: kvaser_usb: Fix comparison bug in kvaser_usb_read_bulk_callback()

Jimmy Assarsson <jimmyassarsson@gmail.com>
    can: kvaser_usb: free buf in error paths


-------------

Diffstat:

 Makefile                                         |  4 +-
 arch/arm/include/asm/kvm_arm.h                   |  4 +-
 arch/arm/kvm/handle_exit.c                       | 19 ++++---
 arch/arm64/include/asm/kvm_arm.h                 |  3 +-
 arch/arm64/kernel/process.c                      |  9 +++
 arch/powerpc/sysdev/axonram.c                    |  5 +-
 arch/s390/include/asm/asm-prototypes.h           |  8 ---
 arch/sparc/mm/init_64.c                          |  9 ++-
 arch/x86/kvm/vmx.c                               |  9 +--
 arch/x86/pci/broadcom_bus.c                      |  2 +-
 crypto/asymmetric_keys/x509_cert_parser.c        |  2 +
 drivers/ata/libata-sff.c                         |  1 -
 drivers/atm/horizon.c                            |  2 +-
 drivers/base/isa.c                               | 10 ++--
 drivers/crypto/s5p-sss.c                         |  5 +-
 drivers/edac/i5000_edac.c                        |  8 +--
 drivers/edac/i5400_edac.c                        |  9 +--
 drivers/firmware/efi/efi.c                       |  3 +-
 drivers/firmware/efi/runtime-map.c               | 10 ++--
 drivers/gpu/drm/armada/Makefile                  |  2 -
 drivers/i2c/busses/i2c-riic.c                    |  6 +-
 drivers/infiniband/hw/mlx4/qp.c                  |  2 +-
 drivers/infiniband/hw/mlx5/main.c                |  2 +
 drivers/iommu/intel-iommu.c                      |  8 ++-
 drivers/irqchip/irq-crossbar.c                   |  8 +--
 drivers/media/usb/dvb-usb/dibusb-common.c        | 16 +++++-
 drivers/net/can/usb/ems_usb.c                    |  2 +
 drivers/net/can/usb/esd_usb2.c                   |  2 +
 drivers/net/can/usb/kvaser_usb.c                 | 13 +++--
 drivers/net/can/usb/usb_8dev.c                   |  2 +
 drivers/net/ethernet/broadcom/bnx2x/bnx2x_vfpf.c | 23 ++++----
 drivers/net/phy/spi_ks8995.c                     |  1 +
 drivers/scsi/lpfc/lpfc_els.c                     | 14 +++--
 drivers/usb/gadget/configfs.c                    |  1 +
 drivers/usb/gadget/function/f_fs.c               |  2 +-
 drivers/usb/gadget/legacy/inode.c                |  4 +-
 drivers/virtio/virtio.c                          |  2 +
 fs/afs/cmservice.c                               |  3 +
 fs/nfs/dir.c                                     |  2 +-
 include/linux/genalloc.h                         |  3 +-
 include/linux/sysfs.h                            |  6 ++
 kernel/audit.c                                   | 10 ++--
 kernel/debug/kdb/kdb_io.c                        |  2 +-
 kernel/workqueue.c                               |  1 +
 lib/asn1_decoder.c                               |  2 +
 lib/dynamic_debug.c                              |  4 ++
 lib/genalloc.c                                   | 10 ++--
 net/ipv4/route.c                                 | 14 +++--
 net/ipv6/af_inet6.c                              | 10 ++--
 net/ipv6/sit.c                                   |  1 +
 net/packet/af_packet.c                           |  5 ++
 net/rds/rdma.c                                   |  2 +-
 net/sctp/socket.c                                | 38 ++++++++-----
 net/sunrpc/sched.c                               |  3 +-
 net/xfrm/xfrm_policy.c                           |  1 +
 security/keys/request_key.c                      | 46 +++++++++++++---
 sound/core/pcm.c                                 |  2 +
 sound/core/seq/seq_timer.c                       |  2 +-
 sound/usb/mixer.c                                | 13 +++--
 tools/hv/hv_kvp_daemon.c                         | 70 +++++-------------------
 tools/testing/selftests/powerpc/harness.c        |  6 +-
 61 files changed, 288 insertions(+), 200 deletions(-)

^ permalink raw reply	[flat|nested] 64+ messages in thread

* [PATCH 3.18 01/64] can: kvaser_usb: free buf in error paths
  2017-12-15  9:21 [PATCH 3.18 00/64] 3.18.88-stable review Greg Kroah-Hartman
@ 2017-12-15  9:21 ` Greg Kroah-Hartman
  2017-12-15  9:21 ` [PATCH 3.18 02/64] can: kvaser_usb: Fix comparison bug in kvaser_usb_read_bulk_callback() Greg Kroah-Hartman
                   ` (60 subsequent siblings)
  61 siblings, 0 replies; 64+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-15  9:21 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Jimmy Assarsson, Marc Kleine-Budde

3.18-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Jimmy Assarsson <jimmyassarsson@gmail.com>

commit 435019b48033138581a6171093b181fc6b4d3d30 upstream.

The allocated buffer was not freed if usb_submit_urb() failed.

Signed-off-by: Jimmy Assarsson <jimmyassarsson@gmail.com>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/net/can/usb/kvaser_usb.c |    2 ++
 1 file changed, 2 insertions(+)

--- a/drivers/net/can/usb/kvaser_usb.c
+++ b/drivers/net/can/usb/kvaser_usb.c
@@ -602,6 +602,7 @@ static int kvaser_usb_simple_msg_async(s
 	if (err) {
 		netdev_err(netdev, "Error transmitting URB\n");
 		usb_unanchor_urb(urb);
+		kfree(buf);
 		usb_free_urb(urb);
 		kfree(buf);
 		return err;
@@ -1385,6 +1386,7 @@ static netdev_tx_t kvaser_usb_start_xmit
 
 		atomic_dec(&priv->active_tx_urbs);
 		usb_unanchor_urb(urb);
+		kfree(buf);
 
 		stats->tx_dropped++;
 

^ permalink raw reply	[flat|nested] 64+ messages in thread

* [PATCH 3.18 02/64] can: kvaser_usb: Fix comparison bug in kvaser_usb_read_bulk_callback()
  2017-12-15  9:21 [PATCH 3.18 00/64] 3.18.88-stable review Greg Kroah-Hartman
  2017-12-15  9:21 ` [PATCH 3.18 01/64] can: kvaser_usb: free buf in error paths Greg Kroah-Hartman
@ 2017-12-15  9:21 ` Greg Kroah-Hartman
  2017-12-15  9:21 ` [PATCH 3.18 03/64] can: kvaser_usb: ratelimit errors if incomplete messages are received Greg Kroah-Hartman
                   ` (59 subsequent siblings)
  61 siblings, 0 replies; 64+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-15  9:21 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Jimmy Assarsson, Marc Kleine-Budde

3.18-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Jimmy Assarsson <jimmyassarsson@gmail.com>

commit e84f44eb5523401faeb9cc1c97895b68e3cfb78d upstream.

The conditon in the while-loop becomes true when actual_length is less than
2 (MSG_HEADER_LEN). In best case we end up with a former, already
dispatched msg, that got msg->len greater than actual_length. This will
result in a "Format error" error printout.

Problem seen when unplugging a Kvaser USB device connected to a vbox guest.

warning: comparison between signed and unsigned integer expressions
[-Wsign-compare]

Signed-off-by: Jimmy Assarsson <jimmyassarsson@gmail.com>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/net/can/usb/kvaser_usb.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/drivers/net/can/usb/kvaser_usb.c
+++ b/drivers/net/can/usb/kvaser_usb.c
@@ -989,7 +989,7 @@ static void kvaser_usb_read_bulk_callbac
 		goto resubmit_urb;
 	}
 
-	while (pos <= urb->actual_length - MSG_HEADER_LEN) {
+	while (pos <= (int)(urb->actual_length - MSG_HEADER_LEN)) {
 		msg = urb->transfer_buffer + pos;
 
 		/* The Kvaser firmware can only read and write messages that

^ permalink raw reply	[flat|nested] 64+ messages in thread

* [PATCH 3.18 03/64] can: kvaser_usb: ratelimit errors if incomplete messages are received
  2017-12-15  9:21 [PATCH 3.18 00/64] 3.18.88-stable review Greg Kroah-Hartman
  2017-12-15  9:21 ` [PATCH 3.18 01/64] can: kvaser_usb: free buf in error paths Greg Kroah-Hartman
  2017-12-15  9:21 ` [PATCH 3.18 02/64] can: kvaser_usb: Fix comparison bug in kvaser_usb_read_bulk_callback() Greg Kroah-Hartman
@ 2017-12-15  9:21 ` Greg Kroah-Hartman
  2017-12-15  9:21 ` [PATCH 3.18 04/64] can: kvaser_usb: cancel urb on -EPIPE and -EPROTO Greg Kroah-Hartman
                   ` (58 subsequent siblings)
  61 siblings, 0 replies; 64+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-15  9:21 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Jimmy Assarsson, Marc Kleine-Budde

3.18-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Jimmy Assarsson <jimmyassarsson@gmail.com>

commit 8bd13bd522ff7dfa0eb371921aeb417155f7a3be upstream.

Avoid flooding the kernel log with "Formate error", if incomplete message
are received.

Signed-off-by: Jimmy Assarsson <jimmyassarsson@gmail.com>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/net/can/usb/kvaser_usb.c |    7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

--- a/drivers/net/can/usb/kvaser_usb.c
+++ b/drivers/net/can/usb/kvaser_usb.c
@@ -415,8 +415,8 @@ static int kvaser_usb_wait_msg(const str
 			}
 
 			if (pos + tmp->len > actual_len) {
-				dev_err(dev->udev->dev.parent,
-					"Format error\n");
+				dev_err_ratelimited(dev->udev->dev.parent,
+						    "Format error\n");
 				break;
 			}
 
@@ -1007,7 +1007,8 @@ static void kvaser_usb_read_bulk_callbac
 		}
 
 		if (pos + msg->len > urb->actual_length) {
-			dev_err(dev->udev->dev.parent, "Format error\n");
+			dev_err_ratelimited(dev->udev->dev.parent,
+					    "Format error\n");
 			break;
 		}
 

^ permalink raw reply	[flat|nested] 64+ messages in thread

* [PATCH 3.18 04/64] can: kvaser_usb: cancel urb on -EPIPE and -EPROTO
  2017-12-15  9:21 [PATCH 3.18 00/64] 3.18.88-stable review Greg Kroah-Hartman
                   ` (2 preceding siblings ...)
  2017-12-15  9:21 ` [PATCH 3.18 03/64] can: kvaser_usb: ratelimit errors if incomplete messages are received Greg Kroah-Hartman
@ 2017-12-15  9:21 ` Greg Kroah-Hartman
  2017-12-15  9:21 ` [PATCH 3.18 05/64] can: ems_usb: " Greg Kroah-Hartman
                   ` (57 subsequent siblings)
  61 siblings, 0 replies; 64+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-15  9:21 UTC (permalink / raw)
  To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Martin Kelly, Marc Kleine-Budde

3.18-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Martin Kelly <mkelly@xevo.com>

commit 6aa8d5945502baf4687d80de59b7ac865e9e666b upstream.

In mcba_usb, we have observed that when you unplug the device, the driver will
endlessly resubmit failing URBs, which can cause CPU stalls. This issue
is fixed in mcba_usb by catching the codes seen on device disconnect
(-EPIPE and -EPROTO).

This driver also resubmits in the case of -EPIPE and -EPROTO, so fix it
in the same way.

Signed-off-by: Martin Kelly <mkelly@xevo.com>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/net/can/usb/kvaser_usb.c |    2 ++
 1 file changed, 2 insertions(+)

--- a/drivers/net/can/usb/kvaser_usb.c
+++ b/drivers/net/can/usb/kvaser_usb.c
@@ -981,6 +981,8 @@ static void kvaser_usb_read_bulk_callbac
 	case 0:
 		break;
 	case -ENOENT:
+	case -EPIPE:
+	case -EPROTO:
 	case -ESHUTDOWN:
 		return;
 	default:

^ permalink raw reply	[flat|nested] 64+ messages in thread

* [PATCH 3.18 05/64] can: ems_usb: cancel urb on -EPIPE and -EPROTO
  2017-12-15  9:21 [PATCH 3.18 00/64] 3.18.88-stable review Greg Kroah-Hartman
                   ` (3 preceding siblings ...)
  2017-12-15  9:21 ` [PATCH 3.18 04/64] can: kvaser_usb: cancel urb on -EPIPE and -EPROTO Greg Kroah-Hartman
@ 2017-12-15  9:21 ` Greg Kroah-Hartman
  2017-12-15  9:21 ` [PATCH 3.18 06/64] can: esd_usb2: " Greg Kroah-Hartman
                   ` (56 subsequent siblings)
  61 siblings, 0 replies; 64+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-15  9:21 UTC (permalink / raw)
  To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Martin Kelly, Marc Kleine-Budde

3.18-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Martin Kelly <mkelly@xevo.com>

commit bd352e1adfe0d02d3ea7c8e3fb19183dc317e679 upstream.

In mcba_usb, we have observed that when you unplug the device, the driver will
endlessly resubmit failing URBs, which can cause CPU stalls. This issue
is fixed in mcba_usb by catching the codes seen on device disconnect
(-EPIPE and -EPROTO).

This driver also resubmits in the case of -EPIPE and -EPROTO, so fix it
in the same way.

Signed-off-by: Martin Kelly <mkelly@xevo.com>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/net/can/usb/ems_usb.c |    2 ++
 1 file changed, 2 insertions(+)

--- a/drivers/net/can/usb/ems_usb.c
+++ b/drivers/net/can/usb/ems_usb.c
@@ -290,6 +290,8 @@ static void ems_usb_read_interrupt_callb
 
 	case -ECONNRESET: /* unlink */
 	case -ENOENT:
+	case -EPIPE:
+	case -EPROTO:
 	case -ESHUTDOWN:
 		return;
 

^ permalink raw reply	[flat|nested] 64+ messages in thread

* [PATCH 3.18 06/64] can: esd_usb2: cancel urb on -EPIPE and -EPROTO
  2017-12-15  9:21 [PATCH 3.18 00/64] 3.18.88-stable review Greg Kroah-Hartman
                   ` (4 preceding siblings ...)
  2017-12-15  9:21 ` [PATCH 3.18 05/64] can: ems_usb: " Greg Kroah-Hartman
@ 2017-12-15  9:21 ` Greg Kroah-Hartman
  2017-12-15  9:21 ` [PATCH 3.18 07/64] can: usb_8dev: " Greg Kroah-Hartman
                   ` (55 subsequent siblings)
  61 siblings, 0 replies; 64+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-15  9:21 UTC (permalink / raw)
  To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Martin Kelly, Marc Kleine-Budde

3.18-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Martin Kelly <mkelly@xevo.com>

commit 7a31ced3de06e9878e4f9c3abe8f87d9344d8144 upstream.

In mcba_usb, we have observed that when you unplug the device, the driver will
endlessly resubmit failing URBs, which can cause CPU stalls. This issue
is fixed in mcba_usb by catching the codes seen on device disconnect
(-EPIPE and -EPROTO).

This driver also resubmits in the case of -EPIPE and -EPROTO, so fix it
in the same way.

Signed-off-by: Martin Kelly <mkelly@xevo.com>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/net/can/usb/esd_usb2.c |    2 ++
 1 file changed, 2 insertions(+)

--- a/drivers/net/can/usb/esd_usb2.c
+++ b/drivers/net/can/usb/esd_usb2.c
@@ -395,6 +395,8 @@ static void esd_usb2_read_bulk_callback(
 		break;
 
 	case -ENOENT:
+	case -EPIPE:
+	case -EPROTO:
 	case -ESHUTDOWN:
 		return;
 

^ permalink raw reply	[flat|nested] 64+ messages in thread

* [PATCH 3.18 07/64] can: usb_8dev: cancel urb on -EPIPE and -EPROTO
  2017-12-15  9:21 [PATCH 3.18 00/64] 3.18.88-stable review Greg Kroah-Hartman
                   ` (5 preceding siblings ...)
  2017-12-15  9:21 ` [PATCH 3.18 06/64] can: esd_usb2: " Greg Kroah-Hartman
@ 2017-12-15  9:21 ` Greg Kroah-Hartman
  2017-12-15  9:21 ` [PATCH 3.18 08/64] virtio: release virtio index when fail to device_register Greg Kroah-Hartman
                   ` (54 subsequent siblings)
  61 siblings, 0 replies; 64+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-15  9:21 UTC (permalink / raw)
  To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Martin Kelly, Marc Kleine-Budde

3.18-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Martin Kelly <mkelly@xevo.com>

commit 12147edc434c9e4c7c2f5fee2e5519b2e5ac34ce upstream.

In mcba_usb, we have observed that when you unplug the device, the driver will
endlessly resubmit failing URBs, which can cause CPU stalls. This issue
is fixed in mcba_usb by catching the codes seen on device disconnect
(-EPIPE and -EPROTO).

This driver also resubmits in the case of -EPIPE and -EPROTO, so fix it
in the same way.

Signed-off-by: Martin Kelly <mkelly@xevo.com>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/net/can/usb/usb_8dev.c |    2 ++
 1 file changed, 2 insertions(+)

--- a/drivers/net/can/usb/usb_8dev.c
+++ b/drivers/net/can/usb/usb_8dev.c
@@ -527,6 +527,8 @@ static void usb_8dev_read_bulk_callback(
 		break;
 
 	case -ENOENT:
+	case -EPIPE:
+	case -EPROTO:
 	case -ESHUTDOWN:
 		return;
 

^ permalink raw reply	[flat|nested] 64+ messages in thread

* [PATCH 3.18 08/64] virtio: release virtio index when fail to device_register
  2017-12-15  9:21 [PATCH 3.18 00/64] 3.18.88-stable review Greg Kroah-Hartman
                   ` (6 preceding siblings ...)
  2017-12-15  9:21 ` [PATCH 3.18 07/64] can: usb_8dev: " Greg Kroah-Hartman
@ 2017-12-15  9:21 ` Greg Kroah-Hartman
  2017-12-15  9:21 ` [PATCH 3.18 09/64] hv: kvp: Avoid reading past allocated blocks from KVP file Greg Kroah-Hartman
                   ` (53 subsequent siblings)
  61 siblings, 0 replies; 64+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-15  9:21 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, weiping zhang, Cornelia Huck,
	Michael S. Tsirkin

3.18-stable review patch.  If anyone has any objections, please let me know.

------------------

From: weiping zhang <zwp10758@gmail.com>

commit e60ea67bb60459b95a50a156296041a13e0e380e upstream.

index can be reused by other virtio device.

Signed-off-by: weiping zhang <zhangweiping@didichuxing.com>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/virtio/virtio.c |    2 ++
 1 file changed, 2 insertions(+)

--- a/drivers/virtio/virtio.c
+++ b/drivers/virtio/virtio.c
@@ -268,6 +268,8 @@ int register_virtio_device(struct virtio
 	/* device_register() causes the bus infrastructure to look for a
 	 * matching driver. */
 	err = device_register(&dev->dev);
+	if (err)
+		ida_simple_remove(&virtio_index_ida, dev->index);
 out:
 	if (err)
 		add_status(dev, VIRTIO_CONFIG_S_FAILED);

^ permalink raw reply	[flat|nested] 64+ messages in thread

* [PATCH 3.18 09/64] hv: kvp: Avoid reading past allocated blocks from KVP file
  2017-12-15  9:21 [PATCH 3.18 00/64] 3.18.88-stable review Greg Kroah-Hartman
                   ` (7 preceding siblings ...)
  2017-12-15  9:21 ` [PATCH 3.18 08/64] virtio: release virtio index when fail to device_register Greg Kroah-Hartman
@ 2017-12-15  9:21 ` Greg Kroah-Hartman
  2017-12-15  9:21 ` [PATCH 3.18 10/64] isa: Prevent NULL dereference in isa_bus driver callbacks Greg Kroah-Hartman
                   ` (52 subsequent siblings)
  61 siblings, 0 replies; 64+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-15  9:21 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Paul Meyer, Long Li, K. Y. Srinivasan

3.18-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Paul Meyer <Paul.Meyer@microsoft.com>

commit 297d6b6e56c2977fc504c61bbeeaa21296923f89 upstream.

While reading in more than one block (50) of KVP records, the allocation
goes per block, but the reads used the total number of allocated records
(without resetting the pointer/stream). This causes the records buffer to
overrun when the refresh reads more than one block over the previous
capacity (e.g. reading more than 100 KVP records whereas the in-memory
database was empty before).

Fix this by reading the correct number of KVP records from file each time.

Signed-off-by: Paul Meyer <Paul.Meyer@microsoft.com>
Signed-off-by: Long Li <longli@microsoft.com>
Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 tools/hv/hv_kvp_daemon.c |   70 +++++++++--------------------------------------
 1 file changed, 14 insertions(+), 56 deletions(-)

--- a/tools/hv/hv_kvp_daemon.c
+++ b/tools/hv/hv_kvp_daemon.c
@@ -196,11 +196,14 @@ static void kvp_update_mem_state(int poo
 	for (;;) {
 		readp = &record[records_read];
 		records_read += fread(readp, sizeof(struct kvp_record),
-					ENTRIES_PER_BLOCK * num_blocks,
-					filep);
+				ENTRIES_PER_BLOCK * num_blocks - records_read,
+				filep);
 
 		if (ferror(filep)) {
-			syslog(LOG_ERR, "Failed to read file, pool: %d", pool);
+			syslog(LOG_ERR,
+				"Failed to read file, pool: %d; error: %d %s",
+				 pool, errno, strerror(errno));
+			kvp_release_lock(pool);
 			exit(EXIT_FAILURE);
 		}
 
@@ -213,6 +216,7 @@ static void kvp_update_mem_state(int poo
 
 			if (record == NULL) {
 				syslog(LOG_ERR, "malloc failed");
+				kvp_release_lock(pool);
 				exit(EXIT_FAILURE);
 			}
 			continue;
@@ -227,15 +231,11 @@ static void kvp_update_mem_state(int poo
 	fclose(filep);
 	kvp_release_lock(pool);
 }
+
 static int kvp_file_init(void)
 {
 	int  fd;
-	FILE *filep;
-	size_t records_read;
 	char *fname;
-	struct kvp_record *record;
-	struct kvp_record *readp;
-	int num_blocks;
 	int i;
 	int alloc_unit = sizeof(struct kvp_record) * ENTRIES_PER_BLOCK;
 
@@ -249,61 +249,19 @@ static int kvp_file_init(void)
 
 	for (i = 0; i < KVP_POOL_COUNT; i++) {
 		fname = kvp_file_info[i].fname;
-		records_read = 0;
-		num_blocks = 1;
 		sprintf(fname, "%s/.kvp_pool_%d", KVP_CONFIG_LOC, i);
 		fd = open(fname, O_RDWR | O_CREAT | O_CLOEXEC, 0644 /* rw-r--r-- */);
 
 		if (fd == -1)
 			return 1;
 
-
-		filep = fopen(fname, "re");
-		if (!filep) {
-			close(fd);
-			return 1;
-		}
-
-		record = malloc(alloc_unit * num_blocks);
-		if (record == NULL) {
-			fclose(filep);
-			close(fd);
-			return 1;
-		}
-		for (;;) {
-			readp = &record[records_read];
-			records_read += fread(readp, sizeof(struct kvp_record),
-					ENTRIES_PER_BLOCK,
-					filep);
-
-			if (ferror(filep)) {
-				syslog(LOG_ERR, "Failed to read file, pool: %d",
-				       i);
-				exit(EXIT_FAILURE);
-			}
-
-			if (!feof(filep)) {
-				/*
-				 * We have more data to read.
-				 */
-				num_blocks++;
-				record = realloc(record, alloc_unit *
-						num_blocks);
-				if (record == NULL) {
-					fclose(filep);
-					close(fd);
-					return 1;
-				}
-				continue;
-			}
-			break;
-		}
 		kvp_file_info[i].fd = fd;
-		kvp_file_info[i].num_blocks = num_blocks;
-		kvp_file_info[i].records = record;
-		kvp_file_info[i].num_records = records_read;
-		fclose(filep);
-
+		kvp_file_info[i].num_blocks = 1;
+		kvp_file_info[i].records = malloc(alloc_unit);
+		if (kvp_file_info[i].records == NULL)
+			return 1;
+		kvp_file_info[i].num_records = 0;
+		kvp_update_mem_state(i);
 	}
 
 	return 0;

^ permalink raw reply	[flat|nested] 64+ messages in thread

* [PATCH 3.18 10/64] isa: Prevent NULL dereference in isa_bus driver callbacks
  2017-12-15  9:21 [PATCH 3.18 00/64] 3.18.88-stable review Greg Kroah-Hartman
                   ` (8 preceding siblings ...)
  2017-12-15  9:21 ` [PATCH 3.18 09/64] hv: kvp: Avoid reading past allocated blocks from KVP file Greg Kroah-Hartman
@ 2017-12-15  9:21 ` Greg Kroah-Hartman
  2017-12-15  9:21 ` [PATCH 3.18 11/64] efi: Move some sysfs files to be read-only by root Greg Kroah-Hartman
                   ` (51 subsequent siblings)
  61 siblings, 0 replies; 64+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-15  9:21 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, William Breathitt Gray, Linus Torvalds

3.18-stable review patch.  If anyone has any objections, please let me know.

------------------

From: William Breathitt Gray <vilhelm.gray@gmail.com>

commit 5a244727f428a06634f22bb890e78024ab0c89f3 upstream.

The isa_driver structure for an isa_bus device is stored in the device
platform_data member of the respective device structure. This
platform_data member may be reset to NULL if isa_driver match callback
for the device fails, indicating a device unsupported by the ISA driver.

This patch fixes a possible NULL pointer dereference if one of the
isa_driver callbacks to attempted for an unsupported device. This error
should not occur in practice since ISA devices are typically manually
configured and loaded by the users, but we may as well prevent this
error from popping up for the 0day testers.

Fixes: a5117ba7da37 ("[PATCH] Driver model: add ISA bus")
Signed-off-by: William Breathitt Gray <vilhelm.gray@gmail.com>
Acked-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/base/isa.c |   10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

--- a/drivers/base/isa.c
+++ b/drivers/base/isa.c
@@ -39,7 +39,7 @@ static int isa_bus_probe(struct device *
 {
 	struct isa_driver *isa_driver = dev->platform_data;
 
-	if (isa_driver->probe)
+	if (isa_driver && isa_driver->probe)
 		return isa_driver->probe(dev, to_isa_dev(dev)->id);
 
 	return 0;
@@ -49,7 +49,7 @@ static int isa_bus_remove(struct device
 {
 	struct isa_driver *isa_driver = dev->platform_data;
 
-	if (isa_driver->remove)
+	if (isa_driver && isa_driver->remove)
 		return isa_driver->remove(dev, to_isa_dev(dev)->id);
 
 	return 0;
@@ -59,7 +59,7 @@ static void isa_bus_shutdown(struct devi
 {
 	struct isa_driver *isa_driver = dev->platform_data;
 
-	if (isa_driver->shutdown)
+	if (isa_driver && isa_driver->shutdown)
 		isa_driver->shutdown(dev, to_isa_dev(dev)->id);
 }
 
@@ -67,7 +67,7 @@ static int isa_bus_suspend(struct device
 {
 	struct isa_driver *isa_driver = dev->platform_data;
 
-	if (isa_driver->suspend)
+	if (isa_driver && isa_driver->suspend)
 		return isa_driver->suspend(dev, to_isa_dev(dev)->id, state);
 
 	return 0;
@@ -77,7 +77,7 @@ static int isa_bus_resume(struct device
 {
 	struct isa_driver *isa_driver = dev->platform_data;
 
-	if (isa_driver->resume)
+	if (isa_driver && isa_driver->resume)
 		return isa_driver->resume(dev, to_isa_dev(dev)->id);
 
 	return 0;

^ permalink raw reply	[flat|nested] 64+ messages in thread

* [PATCH 3.18 11/64] efi: Move some sysfs files to be read-only by root
  2017-12-15  9:21 [PATCH 3.18 00/64] 3.18.88-stable review Greg Kroah-Hartman
                   ` (9 preceding siblings ...)
  2017-12-15  9:21 ` [PATCH 3.18 10/64] isa: Prevent NULL dereference in isa_bus driver callbacks Greg Kroah-Hartman
@ 2017-12-15  9:21 ` Greg Kroah-Hartman
  2017-12-15  9:21 ` [PATCH 3.18 12/64] ASN.1: check for error from ASN1_OP_END__ACT actions Greg Kroah-Hartman
                   ` (50 subsequent siblings)
  61 siblings, 0 replies; 64+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-15  9:21 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Linus Torvalds, Dave Young,
	Ard Biesheuvel, H. Peter Anvin, Matt Fleming, Peter Zijlstra,
	Thomas Gleixner, linux-efi, Ingo Molnar

3.18-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit af97a77bc01ce49a466f9d4c0125479e2e2230b6 upstream.

Thanks to the scripts/leaking_addresses.pl script, it was found that
some EFI values should not be readable by non-root users.

So make them root-only, and to do that, add a __ATTR_RO_MODE() macro to
make this easier, and use it in other places at the same time.

Reported-by: Linus Torvalds <torvalds@linux-foundation.org>
Tested-by: Dave Young <dyoung@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Matt Fleming <matt@codeblueprint.co.uk>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: linux-efi@vger.kernel.org
Link: http://lkml.kernel.org/r/20171206095010.24170-2-ard.biesheuvel@linaro.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/firmware/efi/efi.c         |    3 +--
 drivers/firmware/efi/runtime-map.c |   10 +++++-----
 include/linux/sysfs.h              |    6 ++++++
 3 files changed, 12 insertions(+), 7 deletions(-)

--- a/drivers/firmware/efi/efi.c
+++ b/drivers/firmware/efi/efi.c
@@ -96,8 +96,7 @@ static ssize_t systab_show(struct kobjec
 	return str - buf;
 }
 
-static struct kobj_attribute efi_attr_systab =
-			__ATTR(systab, 0400, systab_show, NULL);
+static struct kobj_attribute efi_attr_systab = __ATTR_RO_MODE(systab, 0400);
 
 #define EFI_FIELD(var) efi.var
 
--- a/drivers/firmware/efi/runtime-map.c
+++ b/drivers/firmware/efi/runtime-map.c
@@ -67,11 +67,11 @@ static ssize_t map_attr_show(struct kobj
 	return map_attr->show(entry, buf);
 }
 
-static struct map_attribute map_type_attr = __ATTR_RO(type);
-static struct map_attribute map_phys_addr_attr   = __ATTR_RO(phys_addr);
-static struct map_attribute map_virt_addr_attr  = __ATTR_RO(virt_addr);
-static struct map_attribute map_num_pages_attr  = __ATTR_RO(num_pages);
-static struct map_attribute map_attribute_attr  = __ATTR_RO(attribute);
+static struct map_attribute map_type_attr = __ATTR_RO_MODE(type, 0400);
+static struct map_attribute map_phys_addr_attr = __ATTR_RO_MODE(phys_addr, 0400);
+static struct map_attribute map_virt_addr_attr = __ATTR_RO_MODE(virt_addr, 0400);
+static struct map_attribute map_num_pages_attr = __ATTR_RO_MODE(num_pages, 0400);
+static struct map_attribute map_attribute_attr = __ATTR_RO_MODE(attribute, 0400);
 
 /*
  * These are default attributes that are added for every memmap entry.
--- a/include/linux/sysfs.h
+++ b/include/linux/sysfs.h
@@ -82,6 +82,12 @@ struct attribute_group {
 	.show	= _name##_show,						\
 }
 
+#define __ATTR_RO_MODE(_name, _mode) {					\
+	.attr	= { .name = __stringify(_name),				\
+		    .mode = VERIFY_OCTAL_PERMISSIONS(_mode) },		\
+	.show	= _name##_show,						\
+}
+
 #define __ATTR_WO(_name) {						\
 	.attr	= { .name = __stringify(_name), .mode = S_IWUSR },	\
 	.store	= _name##_store,					\

^ permalink raw reply	[flat|nested] 64+ messages in thread

* [PATCH 3.18 12/64] ASN.1: check for error from ASN1_OP_END__ACT actions
  2017-12-15  9:21 [PATCH 3.18 00/64] 3.18.88-stable review Greg Kroah-Hartman
                   ` (10 preceding siblings ...)
  2017-12-15  9:21 ` [PATCH 3.18 11/64] efi: Move some sysfs files to be read-only by root Greg Kroah-Hartman
@ 2017-12-15  9:21 ` Greg Kroah-Hartman
  2017-12-15  9:21 ` [PATCH 3.18 13/64] KEYS: add missing permission check for request_key() destination Greg Kroah-Hartman
                   ` (49 subsequent siblings)
  61 siblings, 0 replies; 64+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-15  9:21 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Eric Biggers, David Howells, James Morris

3.18-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Eric Biggers <ebiggers@google.com>

commit 81a7be2cd69b412ab6aeacfe5ebf1bb6e5bce955 upstream.

asn1_ber_decoder() was ignoring errors from actions associated with the
opcodes ASN1_OP_END_SEQ_ACT, ASN1_OP_END_SET_ACT,
ASN1_OP_END_SEQ_OF_ACT, and ASN1_OP_END_SET_OF_ACT.  In practice, this
meant the pkcs7_note_signed_info() action (since that was the only user
of those opcodes).  Fix it by checking for the error, just like the
decoder does for actions associated with the other opcodes.

This bug allowed users to leak slab memory by repeatedly trying to add a
specially crafted "pkcs7_test" key (requires CONFIG_PKCS7_TEST_KEY).

In theory, this bug could also be used to bypass module signature
verification, by providing a PKCS#7 message that is misparsed such that
a signature's ->authattrs do not contain its ->msgdigest.  But it
doesn't seem practical in normal cases, due to restrictions on the
format of the ->authattrs.

Fixes: 42d5ec27f873 ("X.509: Add an ASN.1 decoder")
Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: David Howells <dhowells@redhat.com>
Reviewed-by: James Morris <james.l.morris@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 lib/asn1_decoder.c |    2 ++
 1 file changed, 2 insertions(+)

--- a/lib/asn1_decoder.c
+++ b/lib/asn1_decoder.c
@@ -422,6 +422,8 @@ next_op:
 			else
 				act = machine[pc + 1];
 			ret = actions[act](context, hdr, 0, data + tdp, len);
+			if (ret < 0)
+				return ret;
 		}
 		pc += asn1_op_lengths[op];
 		goto next_op;

^ permalink raw reply	[flat|nested] 64+ messages in thread

* [PATCH 3.18 13/64] KEYS: add missing permission check for request_key() destination
  2017-12-15  9:21 [PATCH 3.18 00/64] 3.18.88-stable review Greg Kroah-Hartman
                   ` (11 preceding siblings ...)
  2017-12-15  9:21 ` [PATCH 3.18 12/64] ASN.1: check for error from ASN1_OP_END__ACT actions Greg Kroah-Hartman
@ 2017-12-15  9:21 ` Greg Kroah-Hartman
  2017-12-15  9:21 ` [PATCH 3.18 14/64] X.509: reject invalid BIT STRING for subjectPublicKey Greg Kroah-Hartman
                   ` (48 subsequent siblings)
  61 siblings, 0 replies; 64+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-15  9:21 UTC (permalink / raw)
  To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Eric Biggers, David Howells

3.18-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Eric Biggers <ebiggers@google.com>

commit 4dca6ea1d9432052afb06baf2e3ae78188a4410b upstream.

When the request_key() syscall is not passed a destination keyring, it
links the requested key (if constructed) into the "default" request-key
keyring.  This should require Write permission to the keyring.  However,
there is actually no permission check.

This can be abused to add keys to any keyring to which only Search
permission is granted.  This is because Search permission allows joining
the keyring.  keyctl_set_reqkey_keyring(KEY_REQKEY_DEFL_SESSION_KEYRING)
then will set the default request-key keyring to the session keyring.
Then, request_key() can be used to add keys to the keyring.

Both negatively and positively instantiated keys can be added using this
method.  Adding negative keys is trivial.  Adding a positive key is a
bit trickier.  It requires that either /sbin/request-key positively
instantiates the key, or that another thread adds the key to the process
keyring at just the right time, such that request_key() misses it
initially but then finds it in construct_alloc_key().

Fix this bug by checking for Write permission to the keyring in
construct_get_dest_keyring() when the default keyring is being used.

We don't do the permission check for non-default keyrings because that
was already done by the earlier call to lookup_user_key().  Also,
request_key_and_link() is currently passed a 'struct key *' rather than
a key_ref_t, so the "possessed" bit is unavailable.

We also don't do the permission check for the "requestor keyring", to
continue to support the use case described by commit 8bbf4976b59f
("KEYS: Alter use of key instantiation link-to-keyring argument") where
/sbin/request-key recursively calls request_key() to add keys to the
original requestor's destination keyring.  (I don't know of any users
who actually do that, though...)

Fixes: 3e30148c3d52 ("[PATCH] Keys: Make request-key create an authorisation key")
Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: David Howells <dhowells@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 security/keys/request_key.c |   46 +++++++++++++++++++++++++++++++++++---------
 1 file changed, 37 insertions(+), 9 deletions(-)

--- a/security/keys/request_key.c
+++ b/security/keys/request_key.c
@@ -250,11 +250,12 @@ static int construct_key(struct key *key
  * The keyring selected is returned with an extra reference upon it which the
  * caller must release.
  */
-static void construct_get_dest_keyring(struct key **_dest_keyring)
+static int construct_get_dest_keyring(struct key **_dest_keyring)
 {
 	struct request_key_auth *rka;
 	const struct cred *cred = current_cred();
 	struct key *dest_keyring = *_dest_keyring, *authkey;
+	int ret;
 
 	kenter("%p", dest_keyring);
 
@@ -263,6 +264,8 @@ static void construct_get_dest_keyring(s
 		/* the caller supplied one */
 		key_get(dest_keyring);
 	} else {
+		bool do_perm_check = true;
+
 		/* use a default keyring; falling through the cases until we
 		 * find one that we actually have */
 		switch (cred->jit_keyring) {
@@ -277,8 +280,10 @@ static void construct_get_dest_keyring(s
 					dest_keyring =
 						key_get(rka->dest_keyring);
 				up_read(&authkey->sem);
-				if (dest_keyring)
+				if (dest_keyring) {
+					do_perm_check = false;
 					break;
+				}
 			}
 
 		case KEY_REQKEY_DEFL_THREAD_KEYRING:
@@ -313,11 +318,29 @@ static void construct_get_dest_keyring(s
 		default:
 			BUG();
 		}
+
+		/*
+		 * Require Write permission on the keyring.  This is essential
+		 * because the default keyring may be the session keyring, and
+		 * joining a keyring only requires Search permission.
+		 *
+		 * However, this check is skipped for the "requestor keyring" so
+		 * that /sbin/request-key can itself use request_key() to add
+		 * keys to the original requestor's destination keyring.
+		 */
+		if (dest_keyring && do_perm_check) {
+			ret = key_permission(make_key_ref(dest_keyring, 1),
+					     KEY_NEED_WRITE);
+			if (ret) {
+				key_put(dest_keyring);
+				return ret;
+			}
+		}
 	}
 
 	*_dest_keyring = dest_keyring;
 	kleave(" [dk %d]", key_serial(dest_keyring));
-	return;
+	return 0;
 }
 
 /*
@@ -439,11 +462,15 @@ static struct key *construct_key_and_lin
 
 	kenter("");
 
-	user = key_user_lookup(current_fsuid());
-	if (!user)
-		return ERR_PTR(-ENOMEM);
+	ret = construct_get_dest_keyring(&dest_keyring);
+	if (ret)
+		goto error;
 
-	construct_get_dest_keyring(&dest_keyring);
+	user = key_user_lookup(current_fsuid());
+	if (!user) {
+		ret = -ENOMEM;
+		goto error_put_dest_keyring;
+	}
 
 	ret = construct_alloc_key(ctx, dest_keyring, flags, user, &key);
 	key_user_put(user);
@@ -458,7 +485,7 @@ static struct key *construct_key_and_lin
 	} else if (ret == -EINPROGRESS) {
 		ret = 0;
 	} else {
-		goto couldnt_alloc_key;
+		goto error_put_dest_keyring;
 	}
 
 	key_put(dest_keyring);
@@ -468,8 +495,9 @@ static struct key *construct_key_and_lin
 construction_failed:
 	key_negate_and_link(key, key_negative_timeout, NULL, NULL);
 	key_put(key);
-couldnt_alloc_key:
+error_put_dest_keyring:
 	key_put(dest_keyring);
+error:
 	kleave(" = %d", ret);
 	return ERR_PTR(ret);
 }

^ permalink raw reply	[flat|nested] 64+ messages in thread

* [PATCH 3.18 14/64] X.509: reject invalid BIT STRING for subjectPublicKey
  2017-12-15  9:21 [PATCH 3.18 00/64] 3.18.88-stable review Greg Kroah-Hartman
                   ` (12 preceding siblings ...)
  2017-12-15  9:21 ` [PATCH 3.18 13/64] KEYS: add missing permission check for request_key() destination Greg Kroah-Hartman
@ 2017-12-15  9:21 ` Greg Kroah-Hartman
  2017-12-15  9:21 ` [PATCH 3.18 15/64] x86/PCI: Make broadcom_postcore_init() check acpi_disabled Greg Kroah-Hartman
                   ` (47 subsequent siblings)
  61 siblings, 0 replies; 64+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-15  9:21 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Eric Biggers, David Howells, James Morris

3.18-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Eric Biggers <ebiggers@google.com>

commit 0f30cbea005bd3077bd98cd29277d7fc2699c1da upstream.

Adding a specially crafted X.509 certificate whose subjectPublicKey
ASN.1 value is zero-length caused x509_extract_key_data() to set the
public key size to SIZE_MAX, as it subtracted the nonexistent BIT STRING
metadata byte.  Then, x509_cert_parse() called kmemdup() with that bogus
size, triggering the WARN_ON_ONCE() in kmalloc_slab().

This appears to be harmless, but it still must be fixed since WARNs are
never supposed to be user-triggerable.

Fix it by updating x509_cert_parse() to validate that the value has a
BIT STRING metadata byte, and that the byte is 0 which indicates that
the number of bits in the bitstring is a multiple of 8.

It would be nice to handle the metadata byte in asn1_ber_decoder()
instead.  But that would be tricky because in the general case a BIT
STRING could be implicitly tagged, and/or could legitimately have a
length that is not a whole number of bytes.

Here was the WARN (cleaned up slightly):

    WARNING: CPU: 1 PID: 202 at mm/slab_common.c:971 kmalloc_slab+0x5d/0x70 mm/slab_common.c:971
    Modules linked in:
    CPU: 1 PID: 202 Comm: keyctl Tainted: G    B            4.14.0-09238-g1d3b78bbc6e9 #26
    Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.11.0-20171110_100015-anatol 04/01/2014
    task: ffff880033014180 task.stack: ffff8800305c8000
    Call Trace:
     __do_kmalloc mm/slab.c:3706 [inline]
     __kmalloc_track_caller+0x22/0x2e0 mm/slab.c:3726
     kmemdup+0x17/0x40 mm/util.c:118
     kmemdup include/linux/string.h:414 [inline]
     x509_cert_parse+0x2cb/0x620 crypto/asymmetric_keys/x509_cert_parser.c:106
     x509_key_preparse+0x61/0x750 crypto/asymmetric_keys/x509_public_key.c:174
     asymmetric_key_preparse+0xa4/0x150 crypto/asymmetric_keys/asymmetric_type.c:388
     key_create_or_update+0x4d4/0x10a0 security/keys/key.c:850
     SYSC_add_key security/keys/keyctl.c:122 [inline]
     SyS_add_key+0xe8/0x290 security/keys/keyctl.c:62
     entry_SYSCALL_64_fastpath+0x1f/0x96

Fixes: 42d5ec27f873 ("X.509: Add an ASN.1 decoder")
Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: David Howells <dhowells@redhat.com>
Reviewed-by: James Morris <james.l.morris@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 crypto/asymmetric_keys/x509_cert_parser.c |    2 ++
 1 file changed, 2 insertions(+)

--- a/crypto/asymmetric_keys/x509_cert_parser.c
+++ b/crypto/asymmetric_keys/x509_cert_parser.c
@@ -381,6 +381,8 @@ int x509_extract_key_data(void *context,
 	ctx->cert->pub->pkey_algo = PKEY_ALGO_RSA;
 
 	/* Discard the BIT STRING metadata */
+	if (vlen < 1 || *(const u8 *)value != 0)
+		return -EBADMSG;
 	ctx->key = value + 1;
 	ctx->key_size = vlen - 1;
 	return 0;

^ permalink raw reply	[flat|nested] 64+ messages in thread

* [PATCH 3.18 15/64] x86/PCI: Make broadcom_postcore_init() check acpi_disabled
  2017-12-15  9:21 [PATCH 3.18 00/64] 3.18.88-stable review Greg Kroah-Hartman
                   ` (13 preceding siblings ...)
  2017-12-15  9:21 ` [PATCH 3.18 14/64] X.509: reject invalid BIT STRING for subjectPublicKey Greg Kroah-Hartman
@ 2017-12-15  9:21 ` Greg Kroah-Hartman
  2017-12-15  9:21 ` [PATCH 3.18 16/64] ALSA: pcm: prevent UAF in snd_pcm_info Greg Kroah-Hartman
                   ` (46 subsequent siblings)
  61 siblings, 0 replies; 64+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-15  9:21 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Dave Hansen, Rafael J. Wysocki,
	Thomas Gleixner, Bjorn Helgaas, Linux PCI, Ingo Molnar

3.18-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Rafael J. Wysocki <rafael.j.wysocki@intel.com>

commit ddec3bdee05b06f1dda20ded003c3e10e4184cab upstream.

acpi_os_get_root_pointer() may return a valid address even if acpi_disabled
is set, but the host bridge information from the ACPI tables is not going
to be used in that case and the Broadcom host bridge initialization should
not be skipped then, So make broadcom_postcore_init() check acpi_disabled
too to avoid this issue.

Fixes: 6361d72b04d1 (x86/PCI: read Broadcom CNB20LE host bridge info before PCI scan)
Reported-by: Dave Hansen <dave.hansen@linux.intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Bjorn Helgaas <bhelgaas@google.com>
Cc: Linux PCI <linux-pci@vger.kernel.org>
Link: https://lkml.kernel.org/r/3186627.pxZj1QbYNg@aspire.rjw.lan
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 arch/x86/pci/broadcom_bus.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/arch/x86/pci/broadcom_bus.c
+++ b/arch/x86/pci/broadcom_bus.c
@@ -97,7 +97,7 @@ static int __init broadcom_postcore_init
 	 * We should get host bridge information from ACPI unless the BIOS
 	 * doesn't support it.
 	 */
-	if (acpi_os_get_root_pointer())
+	if (!acpi_disabled && acpi_os_get_root_pointer())
 		return 0;
 #endif
 

^ permalink raw reply	[flat|nested] 64+ messages in thread

* [PATCH 3.18 16/64] ALSA: pcm: prevent UAF in snd_pcm_info
  2017-12-15  9:21 [PATCH 3.18 00/64] 3.18.88-stable review Greg Kroah-Hartman
                   ` (14 preceding siblings ...)
  2017-12-15  9:21 ` [PATCH 3.18 15/64] x86/PCI: Make broadcom_postcore_init() check acpi_disabled Greg Kroah-Hartman
@ 2017-12-15  9:21 ` Greg Kroah-Hartman
  2017-12-15  9:21 ` [PATCH 3.18 17/64] ALSA: seq: Remove spurious WARN_ON() at timer check Greg Kroah-Hartman
                   ` (45 subsequent siblings)
  61 siblings, 0 replies; 64+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-15  9:21 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Robb Glasser, Nick Desaulniers, Takashi Iwai

3.18-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Robb Glasser <rglasser@google.com>

commit 362bca57f5d78220f8b5907b875961af9436e229 upstream.

When the device descriptor is closed, the `substream->runtime` pointer
is freed. But another thread may be in the ioctl handler, case
SNDRV_CTL_IOCTL_PCM_INFO. This case calls snd_pcm_info_user() which
calls snd_pcm_info() which accesses the now freed `substream->runtime`.

Note: this fixes CVE-2017-0861

Signed-off-by: Robb Glasser <rglasser@google.com>
Signed-off-by: Nick Desaulniers <ndesaulniers@google.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 sound/core/pcm.c |    2 ++
 1 file changed, 2 insertions(+)

--- a/sound/core/pcm.c
+++ b/sound/core/pcm.c
@@ -150,7 +150,9 @@ static int snd_pcm_control_ioctl(struct
 				err = -ENXIO;
 				goto _error;
 			}
+			mutex_lock(&pcm->open_mutex);
 			err = snd_pcm_info_user(substream, info);
+			mutex_unlock(&pcm->open_mutex);
 		_error:
 			mutex_unlock(&register_mutex);
 			return err;

^ permalink raw reply	[flat|nested] 64+ messages in thread

* [PATCH 3.18 17/64] ALSA: seq: Remove spurious WARN_ON() at timer check
  2017-12-15  9:21 [PATCH 3.18 00/64] 3.18.88-stable review Greg Kroah-Hartman
                   ` (15 preceding siblings ...)
  2017-12-15  9:21 ` [PATCH 3.18 16/64] ALSA: pcm: prevent UAF in snd_pcm_info Greg Kroah-Hartman
@ 2017-12-15  9:21 ` Greg Kroah-Hartman
  2017-12-15  9:21 ` [PATCH 3.18 18/64] ALSA: usb-audio: Fix out-of-bound error Greg Kroah-Hartman
                   ` (44 subsequent siblings)
  61 siblings, 0 replies; 64+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-15  9:21 UTC (permalink / raw)
  To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, syzbot, Takashi Iwai

3.18-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Takashi Iwai <tiwai@suse.de>

commit 43a3542870328601be02fcc9d27b09db467336ef upstream.

The use of snd_BUG_ON() in ALSA sequencer timer may lead to a spurious
WARN_ON() when a slave timer is deployed as its backend and a
corresponding master timer stops meanwhile.  The symptom was triggered
by syzkaller spontaneously.

Since the NULL timer is valid there, rip off snd_BUG_ON().

Reported-by: syzbot <syzkaller@googlegroups.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 sound/core/seq/seq_timer.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/sound/core/seq/seq_timer.c
+++ b/sound/core/seq/seq_timer.c
@@ -355,7 +355,7 @@ static int initialize_timer(struct snd_s
 	unsigned long freq;
 
 	t = tmr->timeri->timer;
-	if (snd_BUG_ON(!t))
+	if (!t)
 		return -EINVAL;
 
 	freq = tmr->preferred_resolution;

^ permalink raw reply	[flat|nested] 64+ messages in thread

* [PATCH 3.18 18/64] ALSA: usb-audio: Fix out-of-bound error
  2017-12-15  9:21 [PATCH 3.18 00/64] 3.18.88-stable review Greg Kroah-Hartman
                   ` (16 preceding siblings ...)
  2017-12-15  9:21 ` [PATCH 3.18 17/64] ALSA: seq: Remove spurious WARN_ON() at timer check Greg Kroah-Hartman
@ 2017-12-15  9:21 ` Greg Kroah-Hartman
  2017-12-15  9:21 ` [PATCH 3.18 19/64] ALSA: usb-audio: Add check return value for usb_string() Greg Kroah-Hartman
                   ` (43 subsequent siblings)
  61 siblings, 0 replies; 64+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-15  9:21 UTC (permalink / raw)
  To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Jaejoong Kim, Takashi Iwai

3.18-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Jaejoong Kim <climbbb.kim@gmail.com>

commit 251552a2b0d454badc8f486e6d79100970c744b0 upstream.

The snd_usb_copy_string_desc() retrieves the usb string corresponding to
the index number through the usb_string(). The problem is that the
usb_string() returns the length of the string (>= 0) when successful, but
it can also return a negative value about the error case or status of
usb_control_msg().

If iClockSource is '0' as shown below, usb_string() will returns -EINVAL.
This will result in '0' being inserted into buf[-22], and the following
KASAN out-of-bound error message will be output.

AudioControl Interface Descriptor:
  bLength                 8
  bDescriptorType        36
  bDescriptorSubtype     10 (CLOCK_SOURCE)
  bClockID                1
  bmAttributes         0x07 Internal programmable Clock (synced to SOF)
  bmControls           0x07
  Clock Frequency Control (read/write)
  Clock Validity Control (read-only)
  bAssocTerminal          0
  iClockSource            0

To fix it, check usb_string()'return value and bail out.

==================================================================
BUG: KASAN: stack-out-of-bounds in parse_audio_unit+0x1327/0x1960 [snd_usb_audio]
Write of size 1 at addr ffff88007e66735a by task systemd-udevd/18376

CPU: 0 PID: 18376 Comm: systemd-udevd Not tainted 4.13.0+ #3
Hardware name: LG Electronics                   15N540-RFLGL/White Tip Mountain, BIOS 15N5
Call Trace:
dump_stack+0x63/0x8d
print_address_description+0x70/0x290
? parse_audio_unit+0x1327/0x1960 [snd_usb_audio]
kasan_report+0x265/0x350
__asan_store1+0x4a/0x50
parse_audio_unit+0x1327/0x1960 [snd_usb_audio]
? save_stack+0xb5/0xd0
? save_stack_trace+0x1b/0x20
? save_stack+0x46/0xd0
? kasan_kmalloc+0xad/0xe0
? kmem_cache_alloc_trace+0xff/0x230
? snd_usb_create_mixer+0xb0/0x4b0 [snd_usb_audio]
? usb_audio_probe+0x4de/0xf40 [snd_usb_audio]
? usb_probe_interface+0x1f5/0x440
? driver_probe_device+0x3ed/0x660
? build_feature_ctl+0xb10/0xb10 [snd_usb_audio]
? save_stack_trace+0x1b/0x20
? init_object+0x69/0xa0
? snd_usb_find_csint_desc+0xa8/0xf0 [snd_usb_audio]
snd_usb_mixer_controls+0x1dc/0x370 [snd_usb_audio]
? build_audio_procunit+0x890/0x890 [snd_usb_audio]
? snd_usb_create_mixer+0xb0/0x4b0 [snd_usb_audio]
? kmem_cache_alloc_trace+0xff/0x230
? usb_ifnum_to_if+0xbd/0xf0
snd_usb_create_mixer+0x25b/0x4b0 [snd_usb_audio]
? snd_usb_create_stream+0x255/0x2c0 [snd_usb_audio]
usb_audio_probe+0x4de/0xf40 [snd_usb_audio]
? snd_usb_autosuspend.part.7+0x30/0x30 [snd_usb_audio]
? __pm_runtime_idle+0x90/0x90
? kernfs_activate+0xa6/0xc0
? usb_match_one_id_intf+0xdc/0x130
? __pm_runtime_set_status+0x2d4/0x450
usb_probe_interface+0x1f5/0x440

Signed-off-by: Jaejoong Kim <climbbb.kim@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 sound/usb/mixer.c |    4 ++++
 1 file changed, 4 insertions(+)

--- a/sound/usb/mixer.c
+++ b/sound/usb/mixer.c
@@ -199,6 +199,10 @@ static int snd_usb_copy_string_desc(stru
 				    int index, char *buf, int maxlen)
 {
 	int len = usb_string(state->chip->dev, index, buf, maxlen - 1);
+
+	if (len < 0)
+		return 0;
+
 	buf[len] = 0;
 	return len;
 }

^ permalink raw reply	[flat|nested] 64+ messages in thread

* [PATCH 3.18 19/64] ALSA: usb-audio: Add check return value for usb_string()
  2017-12-15  9:21 [PATCH 3.18 00/64] 3.18.88-stable review Greg Kroah-Hartman
                   ` (17 preceding siblings ...)
  2017-12-15  9:21 ` [PATCH 3.18 18/64] ALSA: usb-audio: Fix out-of-bound error Greg Kroah-Hartman
@ 2017-12-15  9:21 ` Greg Kroah-Hartman
  2017-12-15  9:21 ` [PATCH 3.18 20/64] iommu/vt-d: Fix scatterlist offset handling Greg Kroah-Hartman
                   ` (42 subsequent siblings)
  61 siblings, 0 replies; 64+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-15  9:21 UTC (permalink / raw)
  To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Jaejoong Kim, Takashi Iwai

3.18-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Jaejoong Kim <climbbb.kim@gmail.com>

commit 89b89d121ffcf8d9546633b98ded9d18b8f75891 upstream.

snd_usb_copy_string_desc() returns zero if usb_string() fails.
In case of failure, we need to check the snd_usb_copy_string_desc()'s
return value and add an exception case

Signed-off-by: Jaejoong Kim <climbbb.kim@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 sound/usb/mixer.c |    9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

--- a/sound/usb/mixer.c
+++ b/sound/usb/mixer.c
@@ -2099,13 +2099,14 @@ static int parse_audio_selector_unit(str
 	if (len)
 		;
 	else if (nameid)
-		snd_usb_copy_string_desc(state, nameid, kctl->id.name,
+		len = snd_usb_copy_string_desc(state, nameid, kctl->id.name,
 					 sizeof(kctl->id.name));
-	else {
+	else
 		len = get_term_name(state, &state->oterm,
 				    kctl->id.name, sizeof(kctl->id.name), 0);
-		if (!len)
-			strlcpy(kctl->id.name, "USB", sizeof(kctl->id.name));
+
+	if (!len) {
+		strlcpy(kctl->id.name, "USB", sizeof(kctl->id.name));
 
 		if (desc->bDescriptorSubtype == UAC2_CLOCK_SELECTOR)
 			append_ctl_name(kctl, " Clock Source");

^ permalink raw reply	[flat|nested] 64+ messages in thread

* [PATCH 3.18 20/64] iommu/vt-d: Fix scatterlist offset handling
  2017-12-15  9:21 [PATCH 3.18 00/64] 3.18.88-stable review Greg Kroah-Hartman
                   ` (18 preceding siblings ...)
  2017-12-15  9:21 ` [PATCH 3.18 19/64] ALSA: usb-audio: Add check return value for usb_string() Greg Kroah-Hartman
@ 2017-12-15  9:21 ` Greg Kroah-Hartman
  2017-12-15  9:21 ` [PATCH 3.18 21/64] kdb: Fix handling of kallsyms_symbol_next() return value Greg Kroah-Hartman
                   ` (41 subsequent siblings)
  61 siblings, 0 replies; 64+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-15  9:21 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Harsh Jain, Robin Murphy, Alex Williamson

3.18-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Robin Murphy <robin.murphy@arm.com>

commit 29a90b70893817e2f2bb3cea40a29f5308e21b21 upstream.

The intel-iommu DMA ops fail to correctly handle scatterlists where
sg->offset is greater than PAGE_SIZE - the IOVA allocation is computed
appropriately based on the page-aligned portion of the offset, but the
mapping is set up relative to sg->page, which means it fails to actually
cover the whole buffer (and in the worst case doesn't cover it at all):

    (sg->dma_address + sg->dma_len) ----+
    sg->dma_address ---------+          |
    iov_pfn------+           |          |
                 |           |          |
                 v           v          v
iova:   a        b        c        d        e        f
        |--------|--------|--------|--------|--------|
                          <...calculated....>
                 [_____mapped______]
pfn:    0        1        2        3        4        5
        |--------|--------|--------|--------|--------|
                 ^           ^          ^
                 |           |          |
    sg->page ----+           |          |
    sg->offset --------------+          |
    (sg->offset + sg->length) ----------+

As a result, the caller ends up overrunning the mapping into whatever
lies beyond, which usually goes badly:

[  429.645492] DMAR: DRHD: handling fault status reg 2
[  429.650847] DMAR: [DMA Write] Request device [02:00.4] fault addr f2682000 ...

Whilst this is a fairly rare occurrence, it can happen from the result
of intermediate scatterlist processing such as scatterwalk_ffwd() in the
crypto layer. Whilst that particular site could be fixed up, it still
seems worthwhile to bring intel-iommu in line with other DMA API
implementations in handling this robustly.

To that end, fix the intel_map_sg() path to line up the mapping
correctly (in units of MM pages rather than VT-d pages to match the
aligned_nrpages() calculation) regardless of the offset, and use
sg_phys() consistently for clarity.

Reported-by: Harsh Jain <Harsh@chelsio.com>
Signed-off-by: Robin Murphy <robin.murphy@arm.com>
Reviewed by: Ashok Raj <ashok.raj@intel.com>
Tested by: Jacob Pan <jacob.jun.pan@intel.com>
Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/iommu/intel-iommu.c |    8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

--- a/drivers/iommu/intel-iommu.c
+++ b/drivers/iommu/intel-iommu.c
@@ -2016,10 +2016,12 @@ static int __domain_mapping(struct dmar_
 		uint64_t tmp;
 
 		if (!sg_res) {
+			unsigned int pgoff = sg->offset & ~PAGE_MASK;
+
 			sg_res = aligned_nrpages(sg->offset, sg->length);
-			sg->dma_address = ((dma_addr_t)iov_pfn << VTD_PAGE_SHIFT) + sg->offset;
+			sg->dma_address = ((dma_addr_t)iov_pfn << VTD_PAGE_SHIFT) + pgoff;
 			sg->dma_length = sg->length;
-			pteval = page_to_phys(sg_page(sg)) | prot;
+			pteval = (sg_phys(sg) - pgoff) | prot;
 			phys_pfn = pteval >> VTD_PAGE_SHIFT;
 		}
 
@@ -3326,7 +3328,7 @@ static int intel_nontranslate_map_sg(str
 
 	for_each_sg(sglist, sg, nelems, i) {
 		BUG_ON(!sg_page(sg));
-		sg->dma_address = page_to_phys(sg_page(sg)) + sg->offset;
+		sg->dma_address = sg_phys(sg);
 		sg->dma_length = sg->length;
 	}
 	return nelems;

^ permalink raw reply	[flat|nested] 64+ messages in thread

* [PATCH 3.18 21/64] kdb: Fix handling of kallsyms_symbol_next() return value
  2017-12-15  9:21 [PATCH 3.18 00/64] 3.18.88-stable review Greg Kroah-Hartman
                   ` (19 preceding siblings ...)
  2017-12-15  9:21 ` [PATCH 3.18 20/64] iommu/vt-d: Fix scatterlist offset handling Greg Kroah-Hartman
@ 2017-12-15  9:21 ` Greg Kroah-Hartman
  2017-12-15  9:21 ` [PATCH 3.18 22/64] media: dvb: i2c transfers over usb cannot be done from stack Greg Kroah-Hartman
                   ` (40 subsequent siblings)
  61 siblings, 0 replies; 64+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-15  9:21 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Dan Carpenter, Daniel Thompson, Jason Wessel

3.18-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Daniel Thompson <daniel.thompson@linaro.org>

commit c07d35338081d107e57cf37572d8cc931a8e32e2 upstream.

kallsyms_symbol_next() returns a boolean (true on success). Currently
kdb_read() tests the return value with an inequality that
unconditionally evaluates to true.

This is fixed in the obvious way and, since the conditional branch is
supposed to be unreachable, we also add a WARN_ON().

Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Daniel Thompson <daniel.thompson@linaro.org>
Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 kernel/debug/kdb/kdb_io.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/kernel/debug/kdb/kdb_io.c
+++ b/kernel/debug/kdb/kdb_io.c
@@ -349,7 +349,7 @@ poll_again:
 			}
 			kdb_printf("\n");
 			for (i = 0; i < count; i++) {
-				if (kallsyms_symbol_next(p_tmp, i) < 0)
+				if (WARN_ON(!kallsyms_symbol_next(p_tmp, i)))
 					break;
 				kdb_printf("%s ", p_tmp);
 				*(p_tmp + len) = '\0';

^ permalink raw reply	[flat|nested] 64+ messages in thread

* [PATCH 3.18 22/64] media: dvb: i2c transfers over usb cannot be done from stack
  2017-12-15  9:21 [PATCH 3.18 00/64] 3.18.88-stable review Greg Kroah-Hartman
                   ` (20 preceding siblings ...)
  2017-12-15  9:21 ` [PATCH 3.18 21/64] kdb: Fix handling of kallsyms_symbol_next() return value Greg Kroah-Hartman
@ 2017-12-15  9:21 ` Greg Kroah-Hartman
  2017-12-15  9:21 ` [PATCH 3.18 23/64] arm64: KVM: fix VTTBR_BADDR_MASK BUG_ON off-by-one Greg Kroah-Hartman
                   ` (39 subsequent siblings)
  61 siblings, 0 replies; 64+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-15  9:21 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Laurent Caumont, Sean Young,
	Mauro Carvalho Chehab

3.18-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Laurent Caumont <lcaumont2@gmail.com>

commit 6d33377f2abbf9f0e561b116dd468d1c3ff36a6a upstream.

Signed-off-by: Laurent Caumont <lcaumont2@gmail.com>
Signed-off-by: Sean Young <sean@mess.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/media/usb/dvb-usb/dibusb-common.c |   16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)

--- a/drivers/media/usb/dvb-usb/dibusb-common.c
+++ b/drivers/media/usb/dvb-usb/dibusb-common.c
@@ -179,8 +179,20 @@ EXPORT_SYMBOL(dibusb_i2c_algo);
 
 int dibusb_read_eeprom_byte(struct dvb_usb_device *d, u8 offs, u8 *val)
 {
-	u8 wbuf[1] = { offs };
-	return dibusb_i2c_msg(d, 0x50, wbuf, 1, val, 1);
+	u8 *buf;
+	int rc;
+
+	buf = kmalloc(2, GFP_KERNEL);
+	if (!buf)
+		return -ENOMEM;
+
+	buf[0] = offs;
+
+	rc = dibusb_i2c_msg(d, 0x50, &buf[0], 1, &buf[1], 1);
+	*val = buf[1];
+	kfree(buf);
+
+	return rc;
 }
 EXPORT_SYMBOL(dibusb_read_eeprom_byte);
 

^ permalink raw reply	[flat|nested] 64+ messages in thread

* [PATCH 3.18 23/64] arm64: KVM: fix VTTBR_BADDR_MASK BUG_ON off-by-one
  2017-12-15  9:21 [PATCH 3.18 00/64] 3.18.88-stable review Greg Kroah-Hartman
                   ` (21 preceding siblings ...)
  2017-12-15  9:21 ` [PATCH 3.18 22/64] media: dvb: i2c transfers over usb cannot be done from stack Greg Kroah-Hartman
@ 2017-12-15  9:21 ` Greg Kroah-Hartman
  2017-12-15  9:21 ` [PATCH 3.18 25/64] arm64: fpsimd: Prevent registers leaking from dead tasks Greg Kroah-Hartman
                   ` (38 subsequent siblings)
  61 siblings, 0 replies; 64+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-15  9:21 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Suzuki K Poulose, Christoffer Dall,
	Kristina Martsenko, Marc Zyngier

3.18-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Kristina Martsenko <kristina.martsenko@arm.com>

commit 26aa7b3b1c0fb3f1a6176a0c1847204ef4355693 upstream.

VTTBR_BADDR_MASK is used to sanity check the size and alignment of the
VTTBR address. It seems to currently be off by one, thereby only
allowing up to 47-bit addresses (instead of 48-bit) and also
insufficiently checking the alignment. This patch fixes it.

As an example, with 4k pages, before this patch we have:

  PHYS_MASK_SHIFT = 48
  VTTBR_X = 37 - 24 = 13
  VTTBR_BADDR_SHIFT = 13 - 1 = 12
  VTTBR_BADDR_MASK = ((1 << 35) - 1) << 12 = 0x00007ffffffff000

Which is wrong, because the mask doesn't allow bit 47 of the VTTBR
address to be set, and only requires the address to be 12-bit (4k)
aligned, while it actually needs to be 13-bit (8k) aligned because we
concatenate two 4k tables.

With this patch, the mask becomes 0x0000ffffffffe000, which is what we
want.

Fixes: 0369f6a34b9f ("arm64: KVM: EL2 register definitions")
Reviewed-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Reviewed-by: Christoffer Dall <christoffer.dall@linaro.org>
Signed-off-by: Kristina Martsenko <kristina.martsenko@arm.com>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 arch/arm64/include/asm/kvm_arm.h |    3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

--- a/arch/arm64/include/asm/kvm_arm.h
+++ b/arch/arm64/include/asm/kvm_arm.h
@@ -160,8 +160,7 @@
 #define VTTBR_X		(37 - VTCR_EL2_T0SZ_40B)
 #endif
 
-#define VTTBR_BADDR_SHIFT (VTTBR_X - 1)
-#define VTTBR_BADDR_MASK  (((UL(1) << (PHYS_MASK_SHIFT - VTTBR_X)) - 1) << VTTBR_BADDR_SHIFT)
+#define VTTBR_BADDR_MASK  (((UL(1) << (PHYS_MASK_SHIFT - VTTBR_X)) - 1) << VTTBR_X)
 #define VTTBR_VMID_SHIFT  (UL(48))
 #define VTTBR_VMID_MASK	  (UL(0xFF) << VTTBR_VMID_SHIFT)
 

^ permalink raw reply	[flat|nested] 64+ messages in thread

* [PATCH 3.18 25/64] arm64: fpsimd: Prevent registers leaking from dead tasks
  2017-12-15  9:21 [PATCH 3.18 00/64] 3.18.88-stable review Greg Kroah-Hartman
                   ` (22 preceding siblings ...)
  2017-12-15  9:21 ` [PATCH 3.18 23/64] arm64: KVM: fix VTTBR_BADDR_MASK BUG_ON off-by-one Greg Kroah-Hartman
@ 2017-12-15  9:21 ` Greg Kroah-Hartman
  2017-12-15  9:21 ` [PATCH 3.18 27/64] sit: update frag_off info Greg Kroah-Hartman
                   ` (37 subsequent siblings)
  61 siblings, 0 replies; 64+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-15  9:21 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Dave Martin, Ard Biesheuvel, Will Deacon

3.18-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Dave Martin <Dave.Martin@arm.com>

commit 071b6d4a5d343046f253a5a8835d477d93992002 upstream.

Currently, loading of a task's fpsimd state into the CPU registers
is skipped if that task's state is already present in the registers
of that CPU.

However, the code relies on the struct fpsimd_state * (and by
extension struct task_struct *) to unambiguously identify a task.

There is a particular case in which this doesn't work reliably:
when a task exits, its task_struct may be recycled to describe a
new task.

Consider the following scenario:

 1) Task P loads its fpsimd state onto cpu C.
        per_cpu(fpsimd_last_state, C) := P;
        P->thread.fpsimd_state.cpu := C;

 2) Task X is scheduled onto C and loads its fpsimd state on C.
        per_cpu(fpsimd_last_state, C) := X;
        X->thread.fpsimd_state.cpu := C;

 3) X exits, causing X's task_struct to be freed.

 4) P forks a new child T, which obtains X's recycled task_struct.
	T == X.
	T->thread.fpsimd_state.cpu == C (inherited from P).

 5) T is scheduled on C.
	T's fpsimd state is not loaded, because
	per_cpu(fpsimd_last_state, C) == T (== X) &&
	T->thread.fpsimd_state.cpu == C.

        (This is the check performed by fpsimd_thread_switch().)

So, T gets X's registers because the last registers loaded onto C
were those of X, in (2).

This patch fixes the problem by ensuring that the sched-in check
fails in (5): fpsimd_flush_task_state(T) is called when T is
forked, so that T->thread.fpsimd_state.cpu == C cannot be true.
This relies on the fact that T is not schedulable until after
copy_thread() completes.

Once T's fpsimd state has been loaded on some CPU C there may still
be other cpus D for which per_cpu(fpsimd_last_state, D) ==
&X->thread.fpsimd_state.  But D is necessarily != C in this case,
and the check in (5) must fail.

An alternative fix would be to do refcounting on task_struct.  This
would result in each CPU holding a reference to the last task whose
fpsimd state was loaded there.  It's not clear whether this is
preferable, and it involves higher overhead than the fix proposed
in this patch.  It would also move all the task_struct freeing
work into the context switch critical section, or otherwise some
deferred cleanup mechanism would need to be introduced, neither of
which seems obviously justified.

Fixes: 005f78cd8849 ("arm64: defer reloading a task's FPSIMD state to userland resume")
Signed-off-by: Dave Martin <Dave.Martin@arm.com>
Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
[will: word-smithed the comment so it makes more sense]
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 arch/arm64/kernel/process.c |    9 +++++++++
 1 file changed, 9 insertions(+)

--- a/arch/arm64/kernel/process.c
+++ b/arch/arm64/kernel/process.c
@@ -250,6 +250,15 @@ int copy_thread(unsigned long clone_flag
 
 	memset(&p->thread.cpu_context, 0, sizeof(struct cpu_context));
 
+	/*
+	 * In case p was allocated the same task_struct pointer as some
+	 * other recently-exited task, make sure p is disassociated from
+	 * any cpu that may have run that now-exited task recently.
+	 * Otherwise we could erroneously skip reloading the FPSIMD
+	 * registers for p.
+	 */
+	fpsimd_flush_task_state(p);
+
 	if (likely(!(p->flags & PF_KTHREAD))) {
 		*childregs = *current_pt_regs();
 		childregs->regs[0] = 0;

^ permalink raw reply	[flat|nested] 64+ messages in thread

* [PATCH 3.18 27/64] sit: update frag_off info
  2017-12-15  9:21 [PATCH 3.18 00/64] 3.18.88-stable review Greg Kroah-Hartman
                   ` (23 preceding siblings ...)
  2017-12-15  9:21 ` [PATCH 3.18 25/64] arm64: fpsimd: Prevent registers leaking from dead tasks Greg Kroah-Hartman
@ 2017-12-15  9:21 ` Greg Kroah-Hartman
  2017-12-15  9:21 ` [PATCH 3.18 28/64] net/packet: fix a race in packet_bind() and packet_notifier() Greg Kroah-Hartman
                   ` (36 subsequent siblings)
  61 siblings, 0 replies; 64+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-15  9:21 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Jianlin Shi, Hangbin Liu,
	Nicolas Dichtel, David S. Miller

3.18-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Hangbin Liu <liuhangbin@gmail.com>


[ Upstream commit f859b4af1c52493ec21173ccc73d0b60029b5b88 ]

After parsing the sit netlink change info, we forget to update frag_off in
ipip6_tunnel_update(). Fix it by assigning frag_off with new value.

Reported-by: Jianlin Shi <jishi@redhat.com>
Signed-off-by: Hangbin Liu <liuhangbin@gmail.com>
Acked-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 net/ipv6/sit.c |    1 +
 1 file changed, 1 insertion(+)

--- a/net/ipv6/sit.c
+++ b/net/ipv6/sit.c
@@ -1093,6 +1093,7 @@ static void ipip6_tunnel_update(struct i
 	ipip6_tunnel_link(sitn, t);
 	t->parms.iph.ttl = p->iph.ttl;
 	t->parms.iph.tos = p->iph.tos;
+	t->parms.iph.frag_off = p->iph.frag_off;
 	if (t->parms.link != p->link) {
 		t->parms.link = p->link;
 		ipip6_tunnel_bind_dev(t->dev);

^ permalink raw reply	[flat|nested] 64+ messages in thread

* [PATCH 3.18 28/64] net/packet: fix a race in packet_bind() and packet_notifier()
  2017-12-15  9:21 [PATCH 3.18 00/64] 3.18.88-stable review Greg Kroah-Hartman
                   ` (24 preceding siblings ...)
  2017-12-15  9:21 ` [PATCH 3.18 27/64] sit: update frag_off info Greg Kroah-Hartman
@ 2017-12-15  9:21 ` Greg Kroah-Hartman
  2017-12-15  9:21 ` [PATCH 3.18 29/64] Revert "drm/armada: Fix compile fail" Greg Kroah-Hartman
                   ` (35 subsequent siblings)
  61 siblings, 0 replies; 64+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-15  9:21 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Eric Dumazet, syzbot,
	Francesco Ruggeri, David S. Miller

3.18-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Eric Dumazet <edumazet@google.com>


[ Upstream commit 15fe076edea787807a7cdc168df832544b58eba6 ]

syzbot reported crashes [1] and provided a C repro easing bug hunting.

When/if packet_do_bind() calls __unregister_prot_hook() and releases
po->bind_lock, another thread can run packet_notifier() and process an
NETDEV_UP event.

This calls register_prot_hook() and hooks again the socket right before
first thread is able to grab again po->bind_lock.

Fixes this issue by temporarily setting po->num to 0, as suggested by
David Miller.

[1]
dev_remove_pack: ffff8801bf16fa80 not found
------------[ cut here ]------------
kernel BUG at net/core/dev.c:7945!  ( BUG_ON(!list_empty(&dev->ptype_all)); )
invalid opcode: 0000 [#1] SMP KASAN
Dumping ftrace buffer:
   (ftrace buffer empty)
Modules linked in:
device syz0 entered promiscuous mode
CPU: 0 PID: 3161 Comm: syzkaller404108 Not tainted 4.14.0+ #190
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
task: ffff8801cc57a500 task.stack: ffff8801cc588000
RIP: 0010:netdev_run_todo+0x772/0xae0 net/core/dev.c:7945
RSP: 0018:ffff8801cc58f598 EFLAGS: 00010293
RAX: ffff8801cc57a500 RBX: dffffc0000000000 RCX: ffffffff841f75b2
RDX: 0000000000000000 RSI: 1ffff100398b1ede RDI: ffff8801bf1f8810
device syz0 entered promiscuous mode
RBP: ffff8801cc58f898 R08: 0000000000000001 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000000 R12: ffff8801bf1f8cd8
R13: ffff8801cc58f870 R14: ffff8801bf1f8780 R15: ffff8801cc58f7f0
FS:  0000000001716880(0000) GS:ffff8801db400000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000000020b13000 CR3: 0000000005e25000 CR4: 00000000001406f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
 rtnl_unlock+0xe/0x10 net/core/rtnetlink.c:106
 tun_detach drivers/net/tun.c:670 [inline]
 tun_chr_close+0x49/0x60 drivers/net/tun.c:2845
 __fput+0x333/0x7f0 fs/file_table.c:210
 ____fput+0x15/0x20 fs/file_table.c:244
 task_work_run+0x199/0x270 kernel/task_work.c:113
 exit_task_work include/linux/task_work.h:22 [inline]
 do_exit+0x9bb/0x1ae0 kernel/exit.c:865
 do_group_exit+0x149/0x400 kernel/exit.c:968
 SYSC_exit_group kernel/exit.c:979 [inline]
 SyS_exit_group+0x1d/0x20 kernel/exit.c:977
 entry_SYSCALL_64_fastpath+0x1f/0x96
RIP: 0033:0x44ad19

Fixes: 30f7ea1c2b5f ("packet: race condition in packet_bind")
Signed-off-by: Eric Dumazet <edumazet@google.com>
Reported-by: syzbot <syzkaller@googlegroups.com>
Cc: Francesco Ruggeri <fruggeri@aristanetworks.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 net/packet/af_packet.c |    5 +++++
 1 file changed, 5 insertions(+)

--- a/net/packet/af_packet.c
+++ b/net/packet/af_packet.c
@@ -2704,6 +2704,10 @@ static int packet_do_bind(struct sock *s
 	if (need_rehook) {
 		if (po->running) {
 			rcu_read_unlock();
+			/* prevents packet_notifier() from calling
+			 * register_prot_hook()
+			 */
+			po->num = 0;
 			__unregister_prot_hook(sk, true);
 			rcu_read_lock();
 			dev_curr = po->prot_hook.dev;
@@ -2712,6 +2716,7 @@ static int packet_do_bind(struct sock *s
 								 dev->ifindex);
 		}
 
+		BUG_ON(po->running);
 		po->num = proto;
 		po->prot_hook.type = proto;
 

^ permalink raw reply	[flat|nested] 64+ messages in thread

* [PATCH 3.18 29/64] Revert "drm/armada: Fix compile fail"
  2017-12-15  9:21 [PATCH 3.18 00/64] 3.18.88-stable review Greg Kroah-Hartman
                   ` (25 preceding siblings ...)
  2017-12-15  9:21 ` [PATCH 3.18 28/64] net/packet: fix a race in packet_bind() and packet_notifier() Greg Kroah-Hartman
@ 2017-12-15  9:21 ` Greg Kroah-Hartman
  2017-12-15  9:21 ` [PATCH 3.18 30/64] Revert "s390/kbuild: enable modversions for symbols exported from asm" Greg Kroah-Hartman
                   ` (34 subsequent siblings)
  61 siblings, 0 replies; 64+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-15  9:21 UTC (permalink / raw)
  To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Sasha Levin

3.18-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Sasha Levin <alexander.levin@verizon.com>


This reverts commit 82f260d472c3b4dbb7324624e395c3e91f73a040.

Not required on < 4.10.

Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/gpu/drm/armada/Makefile |    2 --
 1 file changed, 2 deletions(-)

--- a/drivers/gpu/drm/armada/Makefile
+++ b/drivers/gpu/drm/armada/Makefile
@@ -5,5 +5,3 @@ armada-y	+= armada_510.o
 armada-$(CONFIG_DEBUG_FS) += armada_debugfs.o
 
 obj-$(CONFIG_DRM_ARMADA) := armada.o
-
-CFLAGS_armada_trace.o := -I$(src)

^ permalink raw reply	[flat|nested] 64+ messages in thread

* [PATCH 3.18 30/64] Revert "s390/kbuild: enable modversions for symbols exported from asm"
  2017-12-15  9:21 [PATCH 3.18 00/64] 3.18.88-stable review Greg Kroah-Hartman
                   ` (26 preceding siblings ...)
  2017-12-15  9:21 ` [PATCH 3.18 29/64] Revert "drm/armada: Fix compile fail" Greg Kroah-Hartman
@ 2017-12-15  9:21 ` Greg Kroah-Hartman
  2017-12-15  9:21 ` [PATCH 3.18 31/64] selftest/powerpc: Fix false failures for skipped tests Greg Kroah-Hartman
                   ` (33 subsequent siblings)
  61 siblings, 0 replies; 64+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-15  9:21 UTC (permalink / raw)
  To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Sasha Levin

3.18-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Sasha Levin <alexander.levin@verizon.com>


This reverts commit cabab3f9f5ca077535080b3252e6168935b914af.

Not needed for < 4.9.

Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 arch/s390/include/asm/asm-prototypes.h |    8 --------
 1 file changed, 8 deletions(-)
 delete mode 100644 arch/s390/include/asm/asm-prototypes.h

--- a/arch/s390/include/asm/asm-prototypes.h
+++ /dev/null
@@ -1,8 +0,0 @@
-#ifndef _ASM_S390_PROTOTYPES_H
-
-#include <linux/kvm_host.h>
-#include <linux/ftrace.h>
-#include <asm/fpu/api.h>
-#include <asm-generic/asm-prototypes.h>
-
-#endif /* _ASM_S390_PROTOTYPES_H */

^ permalink raw reply	[flat|nested] 64+ messages in thread

* [PATCH 3.18 31/64] selftest/powerpc: Fix false failures for skipped tests
  2017-12-15  9:21 [PATCH 3.18 00/64] 3.18.88-stable review Greg Kroah-Hartman
                   ` (27 preceding siblings ...)
  2017-12-15  9:21 ` [PATCH 3.18 30/64] Revert "s390/kbuild: enable modversions for symbols exported from asm" Greg Kroah-Hartman
@ 2017-12-15  9:21 ` Greg Kroah-Hartman
  2017-12-15  9:21 ` [PATCH 3.18 32/64] usb: gadget: configs: plug memory leak Greg Kroah-Hartman
                   ` (32 subsequent siblings)
  61 siblings, 0 replies; 64+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-15  9:21 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Sachin Sant, Michael Ellerman, Sasha Levin

3.18-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Sachin Sant <sachinp@linux.vnet.ibm.com>


[ Upstream commit a6d8a21596df041f36f4c2ccc260c459e3e851f1 ]

Tests under alignment subdirectory are skipped when executed on previous
generation hardware, but harness still marks them as failed.

  test: test_copy_unaligned
  tags: git_version:unknown
  [SKIP] Test skipped on line 26
  skip: test_copy_unaligned
  selftests: copy_unaligned [FAIL]

The MAGIC_SKIP_RETURN_VALUE value assigned to rc variable is retained till
the program exit which causes the test to be marked as failed.

This patch resets the value before returning to the main() routine.
With this patch the test o/p is as follows:

  test: test_copy_unaligned
  tags: git_version:unknown
  [SKIP] Test skipped on line 26
  skip: test_copy_unaligned
  selftests: copy_unaligned [PASS]

Signed-off-by: Sachin Sant <sachinp@linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 tools/testing/selftests/powerpc/harness.c |    6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

--- a/tools/testing/selftests/powerpc/harness.c
+++ b/tools/testing/selftests/powerpc/harness.c
@@ -105,9 +105,11 @@ int test_harness(int (test_function)(voi
 
 	rc = run_test(test_function, name);
 
-	if (rc == MAGIC_SKIP_RETURN_VALUE)
+	if (rc == MAGIC_SKIP_RETURN_VALUE) {
 		test_skip(name);
-	else
+		/* so that skipped test is not marked as failed */
+		rc = 0;
+	} else
 		test_finish(name, rc);
 
 	return rc;

^ permalink raw reply	[flat|nested] 64+ messages in thread

* [PATCH 3.18 32/64] usb: gadget: configs: plug memory leak
  2017-12-15  9:21 [PATCH 3.18 00/64] 3.18.88-stable review Greg Kroah-Hartman
                   ` (28 preceding siblings ...)
  2017-12-15  9:21 ` [PATCH 3.18 31/64] selftest/powerpc: Fix false failures for skipped tests Greg Kroah-Hartman
@ 2017-12-15  9:21 ` Greg Kroah-Hartman
  2017-12-15  9:21 ` [PATCH 3.18 33/64] USB: gadgetfs: Fix a potential memory leak in dev_config() Greg Kroah-Hartman
                   ` (31 subsequent siblings)
  61 siblings, 0 replies; 64+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-15  9:21 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, John Keeping, Felipe Balbi, Sasha Levin

3.18-stable review patch.  If anyone has any objections, please let me know.

------------------

From: John Keeping <john@metanate.com>


[ Upstream commit 38355b2a44776c25b0f2ad466e8c51bb805b3032 ]

When binding a gadget to a device, "name" is stored in gi->udc_name, but
this does not happen when unregistering and the string is leaked.

Signed-off-by: John Keeping <john@metanate.com>
Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/usb/gadget/configfs.c |    1 +
 1 file changed, 1 insertion(+)

--- a/drivers/usb/gadget/configfs.c
+++ b/drivers/usb/gadget/configfs.c
@@ -266,6 +266,7 @@ static ssize_t gadget_dev_desc_UDC_store
 		ret = unregister_gadget(gi);
 		if (ret)
 			goto err;
+		kfree(name);
 	} else {
 		if (gi->udc_name) {
 			ret = -EBUSY;

^ permalink raw reply	[flat|nested] 64+ messages in thread

* [PATCH 3.18 33/64] USB: gadgetfs: Fix a potential memory leak in dev_config()
  2017-12-15  9:21 [PATCH 3.18 00/64] 3.18.88-stable review Greg Kroah-Hartman
                   ` (29 preceding siblings ...)
  2017-12-15  9:21 ` [PATCH 3.18 32/64] usb: gadget: configs: plug memory leak Greg Kroah-Hartman
@ 2017-12-15  9:21 ` Greg Kroah-Hartman
  2017-12-15  9:21 ` [PATCH 3.18 34/64] libata: drop WARN from protocol error in ata_sff_qc_issue() Greg Kroah-Hartman
                   ` (30 subsequent siblings)
  61 siblings, 0 replies; 64+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-15  9:21 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Christophe JAILLET, Felipe Balbi,
	Sasha Levin

3.18-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Christophe JAILLET <christophe.jaillet@wanadoo.fr>


[ Upstream commit b6e7aeeaf235901c42ec35de4633c7c69501d303 ]

'kbuf' is allocated just a few lines above using 'memdup_user()'.
If the 'if (dev->buf)' test fails, this memory is never released.

Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/usb/gadget/legacy/inode.c |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

--- a/drivers/usb/gadget/legacy/inode.c
+++ b/drivers/usb/gadget/legacy/inode.c
@@ -1921,8 +1921,10 @@ dev_config (struct file *fd, const char
 
 	spin_lock_irq (&dev->lock);
 	value = -EINVAL;
-	if (dev->buf)
+	if (dev->buf) {
+		kfree(kbuf);
 		goto fail;
+	}
 	dev->buf = kbuf;
 
 	/* full or low speed config */

^ permalink raw reply	[flat|nested] 64+ messages in thread

* [PATCH 3.18 34/64] libata: drop WARN from protocol error in ata_sff_qc_issue()
  2017-12-15  9:21 [PATCH 3.18 00/64] 3.18.88-stable review Greg Kroah-Hartman
                   ` (30 preceding siblings ...)
  2017-12-15  9:21 ` [PATCH 3.18 33/64] USB: gadgetfs: Fix a potential memory leak in dev_config() Greg Kroah-Hartman
@ 2017-12-15  9:21 ` Greg Kroah-Hartman
  2017-12-15  9:21 ` [PATCH 3.18 35/64] workqueue: trigger WARN if queue_delayed_work() is called with NULL @wq Greg Kroah-Hartman
                   ` (29 subsequent siblings)
  61 siblings, 0 replies; 64+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-15  9:21 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Dmitry Vyukov, Tejun Heo, Sasha Levin

3.18-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Tejun Heo <tj@kernel.org>


[ Upstream commit 0580b762a4d6b70817476b90042813f8573283fa ]

ata_sff_qc_issue() expects upper layers to never issue commands on a
command protocol that it doesn't implement.  While the assumption
holds fine with the usual IO path, nothing filters based on the
command protocol in the passthrough path (which was added later),
allowing the warning to be tripped with a passthrough command with the
right (well, wrong) protocol.

Failing with AC_ERR_SYSTEM is the right thing to do anyway.  Remove
the unnecessary WARN.

Reported-by: Dmitry Vyukov <dvyukov@google.com>
Link: http://lkml.kernel.org/r/CACT4Y+bXkvevNZU8uP6X0QVqsj6wNoUA_1exfTSOzc+SmUtMOA@mail.gmail.com
Signed-off-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/ata/libata-sff.c |    1 -
 1 file changed, 1 deletion(-)

--- a/drivers/ata/libata-sff.c
+++ b/drivers/ata/libata-sff.c
@@ -1480,7 +1480,6 @@ unsigned int ata_sff_qc_issue(struct ata
 		break;
 
 	default:
-		WARN_ON_ONCE(1);
 		return AC_ERR_SYSTEM;
 	}
 

^ permalink raw reply	[flat|nested] 64+ messages in thread

* [PATCH 3.18 35/64] workqueue: trigger WARN if queue_delayed_work() is called with NULL @wq
  2017-12-15  9:21 [PATCH 3.18 00/64] 3.18.88-stable review Greg Kroah-Hartman
                   ` (31 preceding siblings ...)
  2017-12-15  9:21 ` [PATCH 3.18 34/64] libata: drop WARN from protocol error in ata_sff_qc_issue() Greg Kroah-Hartman
@ 2017-12-15  9:21 ` Greg Kroah-Hartman
  2017-12-15  9:22 ` [PATCH 3.18 36/64] scsi: lpfc: Fix crash during Hardware error recovery on SLI3 adapters Greg Kroah-Hartman
                   ` (28 subsequent siblings)
  61 siblings, 0 replies; 64+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-15  9:21 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Dave Jones, Tejun Heo, Sasha Levin

3.18-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Tejun Heo <tj@kernel.org>


[ Upstream commit 637fdbae60d6cb9f6e963c1079d7e0445c86ff7d ]

If queue_delayed_work() gets called with NULL @wq, the kernel will
oops asynchronuosly on timer expiration which isn't too helpful in
tracking down the offender.  This actually happened with smc.

__queue_delayed_work() already does several input sanity checks
synchronously.  Add NULL @wq check.

Reported-by: Dave Jones <davej@codemonkey.org.uk>
Link: http://lkml.kernel.org/r/20170227171439.jshx3qplflyrgcv7@codemonkey.org.uk
Signed-off-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 kernel/workqueue.c |    1 +
 1 file changed, 1 insertion(+)

--- a/kernel/workqueue.c
+++ b/kernel/workqueue.c
@@ -1452,6 +1452,7 @@ static void __queue_delayed_work(int cpu
 	struct timer_list *timer = &dwork->timer;
 	struct work_struct *work = &dwork->work;
 
+	WARN_ON_ONCE(!wq);
 	WARN_ON_ONCE(timer->function != delayed_work_timer_fn ||
 		     timer->data != (unsigned long)dwork);
 	WARN_ON_ONCE(timer_pending(timer));

^ permalink raw reply	[flat|nested] 64+ messages in thread

* [PATCH 3.18 36/64] scsi: lpfc: Fix crash during Hardware error recovery on SLI3 adapters
  2017-12-15  9:21 [PATCH 3.18 00/64] 3.18.88-stable review Greg Kroah-Hartman
                   ` (32 preceding siblings ...)
  2017-12-15  9:21 ` [PATCH 3.18 35/64] workqueue: trigger WARN if queue_delayed_work() is called with NULL @wq Greg Kroah-Hartman
@ 2017-12-15  9:22 ` Greg Kroah-Hartman
  2017-12-15  9:22 ` [PATCH 3.18 37/64] irqchip/crossbar: Fix incorrect type of register size Greg Kroah-Hartman
                   ` (27 subsequent siblings)
  61 siblings, 0 replies; 64+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-15  9:22 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Dick Kennedy, James Smart,
	Martin K. Petersen, Sasha Levin

3.18-stable review patch.  If anyone has any objections, please let me know.

------------------

From: James Smart <jsmart2021@gmail.com>


[ Upstream commit 5d181531bc6169e19a02a27d202cf0e982db9d0e ]

if REG_VPI fails, the driver was incorrectly issuing INIT_VFI
(a SLI4 command) on a SLI3 adapter.

Signed-off-by: Dick Kennedy <dick.kennedy@broadcom.com>
Signed-off-by: James Smart <james.smart@broadcom.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/scsi/lpfc/lpfc_els.c |   14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

--- a/drivers/scsi/lpfc/lpfc_els.c
+++ b/drivers/scsi/lpfc/lpfc_els.c
@@ -7265,11 +7265,17 @@ lpfc_cmpl_reg_new_vport(struct lpfc_hba
 			spin_lock_irq(shost->host_lock);
 			vport->fc_flag |= FC_VPORT_NEEDS_REG_VPI;
 			spin_unlock_irq(shost->host_lock);
-			if (vport->port_type == LPFC_PHYSICAL_PORT
-				&& !(vport->fc_flag & FC_LOGO_RCVD_DID_CHNG))
-				lpfc_issue_init_vfi(vport);
-			else
+			if (mb->mbxStatus == MBX_NOT_FINISHED)
+				break;
+			if ((vport->port_type == LPFC_PHYSICAL_PORT) &&
+			    !(vport->fc_flag & FC_LOGO_RCVD_DID_CHNG)) {
+				if (phba->sli_rev == LPFC_SLI_REV4)
+					lpfc_issue_init_vfi(vport);
+				else
+					lpfc_initial_flogi(vport);
+			} else {
 				lpfc_initial_fdisc(vport);
+			}
 			break;
 		}
 	} else {

^ permalink raw reply	[flat|nested] 64+ messages in thread

* [PATCH 3.18 37/64] irqchip/crossbar: Fix incorrect type of register size
  2017-12-15  9:21 [PATCH 3.18 00/64] 3.18.88-stable review Greg Kroah-Hartman
                   ` (33 preceding siblings ...)
  2017-12-15  9:22 ` [PATCH 3.18 36/64] scsi: lpfc: Fix crash during Hardware error recovery on SLI3 adapters Greg Kroah-Hartman
@ 2017-12-15  9:22 ` Greg Kroah-Hartman
  2017-12-15  9:22 ` [PATCH 3.18 39/64] arm: KVM: Survive unknown traps from guests Greg Kroah-Hartman
                   ` (26 subsequent siblings)
  61 siblings, 0 replies; 64+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-15  9:22 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Franck Demathieu, Marc Zyngier, Sasha Levin

3.18-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Franck Demathieu <fdemathieu@gmail.com>


[ Upstream commit 4b9de5da7e120c7f02395da729f0ec77ce7a6044 ]

The 'size' variable is unsigned according to the dt-bindings.
As this variable is used as integer in other places, create a new variable
that allows to fix the following sparse issue (-Wtypesign):

  drivers/irqchip/irq-crossbar.c:279:52: warning: incorrect type in argument 3 (different signedness)
  drivers/irqchip/irq-crossbar.c:279:52:    expected unsigned int [usertype] *out_value
  drivers/irqchip/irq-crossbar.c:279:52:    got int *<noident>

Signed-off-by: Franck Demathieu <fdemathieu@gmail.com>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/irqchip/irq-crossbar.c |    8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

--- a/drivers/irqchip/irq-crossbar.c
+++ b/drivers/irqchip/irq-crossbar.c
@@ -176,7 +176,7 @@ static const struct irq_domain_ops routa
 static int __init crossbar_of_init(struct device_node *node)
 {
 	int i, size, reserved = 0;
-	u32 max = 0, entry;
+	u32 max = 0, entry, reg_size;
 	const __be32 *irqsr;
 	int ret = -ENOMEM;
 
@@ -253,9 +253,9 @@ static int __init crossbar_of_init(struc
 	if (!cb->register_offsets)
 		goto err_irq_map;
 
-	of_property_read_u32(node, "ti,reg-size", &size);
+	of_property_read_u32(node, "ti,reg-size", &reg_size);
 
-	switch (size) {
+	switch (reg_size) {
 	case 1:
 		cb->write = crossbar_writeb;
 		break;
@@ -281,7 +281,7 @@ static int __init crossbar_of_init(struc
 			continue;
 
 		cb->register_offsets[i] = reserved;
-		reserved += size;
+		reserved += reg_size;
 	}
 
 	of_property_read_u32(node, "ti,irqs-safe-map", &cb->safe_map);

^ permalink raw reply	[flat|nested] 64+ messages in thread

* [PATCH 3.18 39/64] arm: KVM: Survive unknown traps from guests
  2017-12-15  9:21 [PATCH 3.18 00/64] 3.18.88-stable review Greg Kroah-Hartman
                   ` (34 preceding siblings ...)
  2017-12-15  9:22 ` [PATCH 3.18 37/64] irqchip/crossbar: Fix incorrect type of register size Greg Kroah-Hartman
@ 2017-12-15  9:22 ` Greg Kroah-Hartman
  2017-12-15  9:22 ` [PATCH 3.18 40/64] spi_ks8995: fix "BUG: key accdaa28 not in .data!" Greg Kroah-Hartman
                   ` (25 subsequent siblings)
  61 siblings, 0 replies; 64+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-15  9:22 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Dave Martin, Suzuki K Poulose,
	Christoffer Dall, Mark Rutland, Marc Zyngier, Sasha Levin

3.18-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Mark Rutland <mark.rutland@arm.com>


[ Upstream commit f050fe7a9164945dd1c28be05bf00e8cfb082ccf ]

Currently we BUG() if we see a HSR.EC value we don't recognise. As
configurable disables/enables are added to the architecture (controlled
by RES1/RES0 bits respectively), with associated synchronous exceptions,
it may be possible for a guest to trigger exceptions with classes that
we don't recognise.

While we can't service these exceptions in a manner useful to the guest,
we can avoid bringing down the host. Per ARM DDI 0406C.c, all currently
unallocated HSR EC encodings are reserved, and per ARM DDI
0487A.k_iss10775, page G6-4395, EC values within the range 0x00 - 0x2c
are reserved for future use with synchronous exceptions, and EC values
within the range 0x2d - 0x3f may be used for either synchronous or
asynchronous exceptions.

The patch makes KVM handle any unknown EC by injecting an UNDEFINED
exception into the guest, with a corresponding (ratelimited) warning in
the host dmesg. We could later improve on this with with a new (opt-in)
exit to the host userspace.

Cc: Dave Martin <dave.martin@arm.com>
Cc: Suzuki K Poulose <suzuki.poulose@arm.com>
Reviewed-by: Christoffer Dall <christoffer.dall@linaro.org>
Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 arch/arm/include/asm/kvm_arm.h |    1 +
 arch/arm/kvm/handle_exit.c     |   19 ++++++++++++-------
 2 files changed, 13 insertions(+), 7 deletions(-)

--- a/arch/arm/include/asm/kvm_arm.h
+++ b/arch/arm/include/asm/kvm_arm.h
@@ -208,6 +208,7 @@
 #define HSR_EC_IABT_HYP	(0x21)
 #define HSR_EC_DABT	(0x24)
 #define HSR_EC_DABT_HYP	(0x25)
+#define HSR_EC_MAX	(0x3f)
 
 #define HSR_WFI_IS_WFE		(1U << 0)
 
--- a/arch/arm/kvm/handle_exit.c
+++ b/arch/arm/kvm/handle_exit.c
@@ -98,7 +98,19 @@ static int kvm_handle_wfx(struct kvm_vcp
 	return 1;
 }
 
+static int kvm_handle_unknown_ec(struct kvm_vcpu *vcpu, struct kvm_run *run)
+{
+	u32 hsr = kvm_vcpu_get_hsr(vcpu);
+
+	kvm_pr_unimpl("Unknown exception class: hsr: %#08x\n",
+		      hsr);
+
+	kvm_inject_undefined(vcpu);
+	return 1;
+}
+
 static exit_handle_fn arm_exit_handlers[] = {
+	[0 ... HSR_EC_MAX]	= kvm_handle_unknown_ec,
 	[HSR_EC_WFI]		= kvm_handle_wfx,
 	[HSR_EC_CP15_32]	= kvm_handle_cp15_32,
 	[HSR_EC_CP15_64]	= kvm_handle_cp15_64,
@@ -120,13 +132,6 @@ static exit_handle_fn kvm_get_exit_handl
 {
 	u8 hsr_ec = kvm_vcpu_trap_get_class(vcpu);
 
-	if (hsr_ec >= ARRAY_SIZE(arm_exit_handlers) ||
-	    !arm_exit_handlers[hsr_ec]) {
-		kvm_err("Unknown exception class: hsr: %#08x\n",
-			(unsigned int)kvm_vcpu_get_hsr(vcpu));
-		BUG();
-	}
-
 	return arm_exit_handlers[hsr_ec];
 }
 

^ permalink raw reply	[flat|nested] 64+ messages in thread

* [PATCH 3.18 40/64] spi_ks8995: fix "BUG: key accdaa28 not in .data!"
  2017-12-15  9:21 [PATCH 3.18 00/64] 3.18.88-stable review Greg Kroah-Hartman
                   ` (35 preceding siblings ...)
  2017-12-15  9:22 ` [PATCH 3.18 39/64] arm: KVM: Survive unknown traps from guests Greg Kroah-Hartman
@ 2017-12-15  9:22 ` Greg Kroah-Hartman
  2017-12-15  9:22 ` [PATCH 3.18 41/64] bnx2x: fix possible overrun of VFPF multicast addresses array Greg Kroah-Hartman
                   ` (24 subsequent siblings)
  61 siblings, 0 replies; 64+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-15  9:22 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Maarten Blomme, David S. Miller, Sasha Levin

3.18-stable review patch.  If anyone has any objections, please let me know.

------------------

From: "Blomme, Maarten" <Maarten.Blomme@flir.com>


[ Upstream commit 4342696df764ec65dcdfbd0c10d90ea52505f8ba ]

Signed-off-by: Maarten Blomme <Maarten.Blomme@flir.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/net/phy/spi_ks8995.c |    1 +
 1 file changed, 1 insertion(+)

--- a/drivers/net/phy/spi_ks8995.c
+++ b/drivers/net/phy/spi_ks8995.c
@@ -332,6 +332,7 @@ static int ks8995_probe(struct spi_devic
 	if (err)
 		return err;
 
+	sysfs_attr_init(&ks->regs_attr.attr);
 	err = sysfs_create_bin_file(&spi->dev.kobj, &ks->regs_attr);
 	if (err) {
 		dev_err(&spi->dev, "unable to create sysfs file, err=%d\n",

^ permalink raw reply	[flat|nested] 64+ messages in thread

* [PATCH 3.18 41/64] bnx2x: fix possible overrun of VFPF multicast addresses array
  2017-12-15  9:21 [PATCH 3.18 00/64] 3.18.88-stable review Greg Kroah-Hartman
                   ` (36 preceding siblings ...)
  2017-12-15  9:22 ` [PATCH 3.18 40/64] spi_ks8995: fix "BUG: key accdaa28 not in .data!" Greg Kroah-Hartman
@ 2017-12-15  9:22 ` Greg Kroah-Hartman
  2017-12-15  9:22 ` [PATCH 3.18 42/64] ipv6: reorder icmpv6_init() and ip6_mr_init() Greg Kroah-Hartman
                   ` (23 subsequent siblings)
  61 siblings, 0 replies; 64+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-15  9:22 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Michal Schmidt, David S. Miller, Sasha Levin

3.18-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Michal Schmidt <mschmidt@redhat.com>


[ Upstream commit 22118d861cec5da6ed525aaf12a3de9bfeffc58f ]

It is too late to check for the limit of the number of VF multicast
addresses after they have already been copied to the req->multicast[]
array, possibly overflowing it.

Do the check before copying.

Also fix the error path to not skip unlocking vf2pf_mutex.

Signed-off-by: Michal Schmidt <mschmidt@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/net/ethernet/broadcom/bnx2x/bnx2x_vfpf.c |   23 +++++++++++------------
 1 file changed, 11 insertions(+), 12 deletions(-)

--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_vfpf.c
+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_vfpf.c
@@ -826,7 +826,7 @@ int bnx2x_vfpf_set_mcast(struct net_devi
 	struct bnx2x *bp = netdev_priv(dev);
 	struct vfpf_set_q_filters_tlv *req = &bp->vf2pf_mbox->req.set_q_filters;
 	struct pfvf_general_resp_tlv *resp = &bp->vf2pf_mbox->resp.general_resp;
-	int rc, i = 0;
+	int rc = 0, i = 0;
 	struct netdev_hw_addr *ha;
 
 	if (bp->state != BNX2X_STATE_OPEN) {
@@ -841,6 +841,15 @@ int bnx2x_vfpf_set_mcast(struct net_devi
 	/* Get Rx mode requested */
 	DP(NETIF_MSG_IFUP, "dev->flags = %x\n", dev->flags);
 
+	/* We support PFVF_MAX_MULTICAST_PER_VF mcast addresses tops */
+	if (netdev_mc_count(dev) > PFVF_MAX_MULTICAST_PER_VF) {
+		DP(NETIF_MSG_IFUP,
+		   "VF supports not more than %d multicast MAC addresses\n",
+		   PFVF_MAX_MULTICAST_PER_VF);
+		rc = -EINVAL;
+		goto out;
+	}
+
 	netdev_for_each_mc_addr(ha, dev) {
 		DP(NETIF_MSG_IFUP, "Adding mcast MAC: %pM\n",
 		   bnx2x_mc_addr(ha));
@@ -848,16 +857,6 @@ int bnx2x_vfpf_set_mcast(struct net_devi
 		i++;
 	}
 
-	/* We support four PFVF_MAX_MULTICAST_PER_VF mcast
-	  * addresses tops
-	  */
-	if (i >= PFVF_MAX_MULTICAST_PER_VF) {
-		DP(NETIF_MSG_IFUP,
-		   "VF supports not more than %d multicast MAC addresses\n",
-		   PFVF_MAX_MULTICAST_PER_VF);
-		return -EINVAL;
-	}
-
 	req->n_multicast = i;
 	req->flags |= VFPF_SET_Q_FILTERS_MULTICAST_CHANGED;
 	req->vf_qid = 0;
@@ -882,7 +881,7 @@ int bnx2x_vfpf_set_mcast(struct net_devi
 out:
 	bnx2x_vfpf_finalize(bp, &req->first_tlv);
 
-	return 0;
+	return rc;
 }
 
 int bnx2x_vfpf_storm_rx_mode(struct bnx2x *bp)

^ permalink raw reply	[flat|nested] 64+ messages in thread

* [PATCH 3.18 42/64] ipv6: reorder icmpv6_init() and ip6_mr_init()
  2017-12-15  9:21 [PATCH 3.18 00/64] 3.18.88-stable review Greg Kroah-Hartman
                   ` (37 preceding siblings ...)
  2017-12-15  9:22 ` [PATCH 3.18 41/64] bnx2x: fix possible overrun of VFPF multicast addresses array Greg Kroah-Hartman
@ 2017-12-15  9:22 ` Greg Kroah-Hartman
  2017-12-15  9:22 ` [PATCH 3.18 43/64] crypto: s5p-sss - Fix completing crypto request in IRQ handler Greg Kroah-Hartman
                   ` (22 subsequent siblings)
  61 siblings, 0 replies; 64+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-15  9:22 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Andrey Konovalov, Cong Wang,
	David S. Miller, Sasha Levin

3.18-stable review patch.  If anyone has any objections, please let me know.

------------------

From: WANG Cong <xiyou.wangcong@gmail.com>


[ Upstream commit 15e668070a64bb97f102ad9cf3bccbca0545cda8 ]

Andrey reported the following kernel crash:

kasan: GPF could be caused by NULL-ptr deref or user memory access
general protection fault: 0000 [#1] SMP KASAN
Dumping ftrace buffer:
   (ftrace buffer empty)
Modules linked in:
CPU: 0 PID: 14446 Comm: syz-executor6 Not tainted 4.10.0+ #82
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs 01/01/2011
task: ffff88001f311700 task.stack: ffff88001f6e8000
RIP: 0010:ip6mr_sk_done+0x15a/0x3d0 net/ipv6/ip6mr.c:1618
RSP: 0018:ffff88001f6ef418 EFLAGS: 00010202
RAX: dffffc0000000000 RBX: 1ffff10003edde8c RCX: ffffc900043ee000
RDX: 0000000000000004 RSI: ffffffff83e3b3f8 RDI: 0000000000000020
RBP: ffff88001f6ef508 R08: fffffbfff0dcc5d8 R09: 0000000000000000
R10: ffffffff86e62ec0 R11: 0000000000000000 R12: 0000000000000000
R13: 0000000000000000 R14: ffff88001f6ef4e0 R15: ffff8800380a0040
FS:  00007f7a52cec700(0000) GS:ffff88003ec00000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 000000000061c500 CR3: 000000001f1ae000 CR4: 00000000000006f0
DR0: 0000000020000000 DR1: 0000000020000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000600
Call Trace:
 rawv6_close+0x4c/0x80 net/ipv6/raw.c:1217
 inet_release+0xed/0x1c0 net/ipv4/af_inet.c:425
 inet6_release+0x50/0x70 net/ipv6/af_inet6.c:432
 sock_release+0x8d/0x1e0 net/socket.c:597
 __sock_create+0x39d/0x880 net/socket.c:1226
 sock_create_kern+0x3f/0x50 net/socket.c:1243
 inet_ctl_sock_create+0xbb/0x280 net/ipv4/af_inet.c:1526
 icmpv6_sk_init+0x163/0x500 net/ipv6/icmp.c:954
 ops_init+0x10a/0x550 net/core/net_namespace.c:115
 setup_net+0x261/0x660 net/core/net_namespace.c:291
 copy_net_ns+0x27e/0x540 net/core/net_namespace.c:396
9pnet_virtio: no channels available for device ./file1
 create_new_namespaces+0x437/0x9b0 kernel/nsproxy.c:106
 unshare_nsproxy_namespaces+0xae/0x1e0 kernel/nsproxy.c:205
 SYSC_unshare kernel/fork.c:2281 [inline]
 SyS_unshare+0x64e/0x1000 kernel/fork.c:2231
 entry_SYSCALL_64_fastpath+0x1f/0xc2

This is because net->ipv6.mr6_tables is not initialized at that point,
ip6mr_rules_init() is not called yet, therefore on the error path when
we iterator the list, we trigger this oops. Fix this by reordering
ip6mr_rules_init() before icmpv6_sk_init().

Reported-by: Andrey Konovalov <andreyknvl@google.com>
Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 net/ipv6/af_inet6.c |   10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

--- a/net/ipv6/af_inet6.c
+++ b/net/ipv6/af_inet6.c
@@ -887,12 +887,12 @@ static int __init inet6_init(void)
 	err = register_pernet_subsys(&inet6_net_ops);
 	if (err)
 		goto register_pernet_fail;
-	err = icmpv6_init();
-	if (err)
-		goto icmp_fail;
 	err = ip6_mr_init();
 	if (err)
 		goto ipmr_fail;
+	err = icmpv6_init();
+	if (err)
+		goto icmp_fail;
 	err = ndisc_init();
 	if (err)
 		goto ndisc_fail;
@@ -1010,10 +1010,10 @@ igmp_fail:
 	ndisc_cleanup();
 ndisc_fail:
 	ip6_mr_cleanup();
-ipmr_fail:
-	icmpv6_cleanup();
 icmp_fail:
 	unregister_pernet_subsys(&inet6_net_ops);
+ipmr_fail:
+	icmpv6_cleanup();
 register_pernet_fail:
 	sock_unregister(PF_INET6);
 	rtnl_unregister_all(PF_INET6);

^ permalink raw reply	[flat|nested] 64+ messages in thread

* [PATCH 3.18 43/64] crypto: s5p-sss - Fix completing crypto request in IRQ handler
  2017-12-15  9:21 [PATCH 3.18 00/64] 3.18.88-stable review Greg Kroah-Hartman
                   ` (38 preceding siblings ...)
  2017-12-15  9:22 ` [PATCH 3.18 42/64] ipv6: reorder icmpv6_init() and ip6_mr_init() Greg Kroah-Hartman
@ 2017-12-15  9:22 ` Greg Kroah-Hartman
  2017-12-15  9:22 ` [PATCH 3.18 44/64] i2c: riic: fix restart condition Greg Kroah-Hartman
                   ` (21 subsequent siblings)
  61 siblings, 0 replies; 64+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-15  9:22 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Krzysztof Kozlowski, Herbert Xu, Sasha Levin

3.18-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Krzysztof Kozlowski <krzk@kernel.org>


[ Upstream commit 07de4bc88ce6a4d898cad9aa4c99c1df7e87702d ]

In a regular interrupt handler driver was finishing the crypt/decrypt
request by calling complete on crypto request.  This is disallowed since
converting to skcipher in commit b286d8b1a690 ("crypto: skcipher - Add
skcipher walk interface") and causes a warning:
	WARNING: CPU: 0 PID: 0 at crypto/skcipher.c:430 skcipher_walk_first+0x13c/0x14c

The interrupt is marked shared but in fact there are no other users
sharing it.  Thus the simplest solution seems to be to just use a
threaded interrupt handler, after converting it to oneshot.

Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/crypto/s5p-sss.c |    5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

--- a/drivers/crypto/s5p-sss.c
+++ b/drivers/crypto/s5p-sss.c
@@ -682,8 +682,9 @@ static int s5p_aes_probe(struct platform
 		dev_warn(dev, "feed control interrupt is not available.\n");
 		goto err_irq;
 	}
-	err = devm_request_irq(dev, pdata->irq_fc, s5p_aes_interrupt,
-			       IRQF_SHARED, pdev->name, pdev);
+	err = devm_request_threaded_irq(dev, pdata->irq_fc, NULL,
+					s5p_aes_interrupt, IRQF_ONESHOT,
+					pdev->name, pdev);
 	if (err < 0) {
 		dev_warn(dev, "feed control interrupt is not available.\n");
 		goto err_irq;

^ permalink raw reply	[flat|nested] 64+ messages in thread

* [PATCH 3.18 44/64] i2c: riic: fix restart condition
  2017-12-15  9:21 [PATCH 3.18 00/64] 3.18.88-stable review Greg Kroah-Hartman
                   ` (39 preceding siblings ...)
  2017-12-15  9:22 ` [PATCH 3.18 43/64] crypto: s5p-sss - Fix completing crypto request in IRQ handler Greg Kroah-Hartman
@ 2017-12-15  9:22 ` Greg Kroah-Hartman
  2017-12-15  9:22 ` [PATCH 3.18 45/64] axonram: Fix gendisk handling Greg Kroah-Hartman
                   ` (20 subsequent siblings)
  61 siblings, 0 replies; 64+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-15  9:22 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Simon Horman, Chris Brandt,
	Simon Horman, Wolfram Sang, Sasha Levin

3.18-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Chris Brandt <chris.brandt@renesas.com>


[ Upstream commit 2501c1bb054290679baad0ff7f4f07c714251f4c ]

While modifying the driver to use the STOP interrupt, the completion of the
intermediate transfers need to wake the driver back up in order to initiate
the next transfer (restart condition). Otherwise you get never ending
interrupts and only the first transfer sent.

Fixes: 71ccea095ea1 ("i2c: riic: correctly finish transfers")
Reported-by: Simon Horman <horms@verge.net.au>
Signed-off-by: Chris Brandt <chris.brandt@renesas.com>
Tested-by: Simon Horman <horms+renesas@verge.net.au>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/i2c/busses/i2c-riic.c |    6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

--- a/drivers/i2c/busses/i2c-riic.c
+++ b/drivers/i2c/busses/i2c-riic.c
@@ -218,8 +218,12 @@ static irqreturn_t riic_tend_isr(int irq
 	}
 
 	if (riic->is_last || riic->err) {
-		riic_clear_set_bit(riic, 0, ICIER_SPIE, RIIC_ICIER);
+		riic_clear_set_bit(riic, ICIER_TEIE, ICIER_SPIE, RIIC_ICIER);
 		writeb(ICCR2_SP, riic->base + RIIC_ICCR2);
+	} else {
+		/* Transfer is complete, but do not send STOP */
+		riic_clear_set_bit(riic, ICIER_TEIE, 0, RIIC_ICIER);
+		complete(&riic->msg_done);
 	}
 
 	return IRQ_HANDLED;

^ permalink raw reply	[flat|nested] 64+ messages in thread

* [PATCH 3.18 45/64] axonram: Fix gendisk handling
  2017-12-15  9:21 [PATCH 3.18 00/64] 3.18.88-stable review Greg Kroah-Hartman
                   ` (40 preceding siblings ...)
  2017-12-15  9:22 ` [PATCH 3.18 44/64] i2c: riic: fix restart condition Greg Kroah-Hartman
@ 2017-12-15  9:22 ` Greg Kroah-Hartman
  2017-12-15  9:22 ` [PATCH 3.18 48/64] route: also update fnhe_genid when updating a route cache Greg Kroah-Hartman
                   ` (19 subsequent siblings)
  61 siblings, 0 replies; 64+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-15  9:22 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Dan Carpenter, Jan Kara, Jens Axboe,
	Sasha Levin

3.18-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Jan Kara <jack@suse.cz>


[ Upstream commit 672a2c87c83649fb0167202342ce85af9a3b4f1c ]

It is invalid to call del_gendisk() when disk->queue is NULL. Fix error
handling in axon_ram_probe() to avoid doing that.

Also del_gendisk() does not drop a reference to gendisk allocated by
alloc_disk(). That has to be done by put_disk(). Add that call where
needed.

Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: Jens Axboe <axboe@fb.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 arch/powerpc/sysdev/axonram.c |    5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

--- a/arch/powerpc/sysdev/axonram.c
+++ b/arch/powerpc/sysdev/axonram.c
@@ -283,7 +283,9 @@ failed:
 			if (bank->disk->major > 0)
 				unregister_blkdev(bank->disk->major,
 						bank->disk->disk_name);
-			del_gendisk(bank->disk);
+			if (bank->disk->flags & GENHD_FL_UP)
+				del_gendisk(bank->disk);
+			put_disk(bank->disk);
 		}
 		device->dev.platform_data = NULL;
 		if (bank->io_addr != 0)
@@ -308,6 +310,7 @@ axon_ram_remove(struct platform_device *
 	device_remove_file(&device->dev, &dev_attr_ecc);
 	free_irq(bank->irq_id, device);
 	del_gendisk(bank->disk);
+	put_disk(bank->disk);
 	iounmap((void __iomem *) bank->io_addr);
 	kfree(bank);
 

^ permalink raw reply	[flat|nested] 64+ messages in thread

* [PATCH 3.18 48/64] route: also update fnhe_genid when updating a route cache
  2017-12-15  9:21 [PATCH 3.18 00/64] 3.18.88-stable review Greg Kroah-Hartman
                   ` (41 preceding siblings ...)
  2017-12-15  9:22 ` [PATCH 3.18 45/64] axonram: Fix gendisk handling Greg Kroah-Hartman
@ 2017-12-15  9:22 ` Greg Kroah-Hartman
  2017-12-15  9:22 ` [PATCH 3.18 49/64] route: update fnhe_expires for redirect when the fnhe exists Greg Kroah-Hartman
                   ` (18 subsequent siblings)
  61 siblings, 0 replies; 64+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-15  9:22 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Hannes Frederic Sowa, Xin Long,
	David S. Miller, Sasha Levin

3.18-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Xin Long <lucien.xin@gmail.com>


[ Upstream commit cebe84c6190d741045a322f5343f717139993c08 ]

Now when ip route flush cache and it turn out all fnhe_genid != genid.
If a redirect/pmtu icmp packet comes and the old fnhe is found and all
it's members but fnhe_genid will be updated.

Then next time when it looks up route and tries to rebind this fnhe to
the new dst, the fnhe will be flushed due to fnhe_genid != genid. It
causes this redirect/pmtu icmp packet acutally not to be applied.

This patch is to also reset fnhe_genid when updating a route cache.

Fixes: 5aad1de5ea2c ("ipv4: use separate genid for next hop exceptions")
Acked-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
Signed-off-by: Xin Long <lucien.xin@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 net/ipv4/route.c |    9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

--- a/net/ipv4/route.c
+++ b/net/ipv4/route.c
@@ -622,9 +622,12 @@ static void update_or_create_fnhe(struct
 	struct fnhe_hash_bucket *hash;
 	struct fib_nh_exception *fnhe;
 	struct rtable *rt;
+	u32 genid, hval;
 	unsigned int i;
 	int depth;
-	u32 hval = fnhe_hashfun(daddr);
+
+	genid = fnhe_genid(dev_net(nh->nh_dev));
+	hval = fnhe_hashfun(daddr);
 
 	spin_lock_bh(&fnhe_lock);
 
@@ -647,6 +650,8 @@ static void update_or_create_fnhe(struct
 	}
 
 	if (fnhe) {
+		if (fnhe->fnhe_genid != genid)
+			fnhe->fnhe_genid = genid;
 		if (gw)
 			fnhe->fnhe_gw = gw;
 		if (pmtu) {
@@ -671,7 +676,7 @@ static void update_or_create_fnhe(struct
 			fnhe->fnhe_next = hash->chain;
 			rcu_assign_pointer(hash->chain, fnhe);
 		}
-		fnhe->fnhe_genid = fnhe_genid(dev_net(nh->nh_dev));
+		fnhe->fnhe_genid = genid;
 		fnhe->fnhe_daddr = daddr;
 		fnhe->fnhe_gw = gw;
 		fnhe->fnhe_pmtu = pmtu;

^ permalink raw reply	[flat|nested] 64+ messages in thread

* [PATCH 3.18 49/64] route: update fnhe_expires for redirect when the fnhe exists
  2017-12-15  9:21 [PATCH 3.18 00/64] 3.18.88-stable review Greg Kroah-Hartman
                   ` (42 preceding siblings ...)
  2017-12-15  9:22 ` [PATCH 3.18 48/64] route: also update fnhe_genid when updating a route cache Greg Kroah-Hartman
@ 2017-12-15  9:22 ` Greg Kroah-Hartman
  2017-12-15  9:22 ` [PATCH 3.18 50/64] lib/genalloc.c: make the avail variable an atomic_long_t Greg Kroah-Hartman
                   ` (17 subsequent siblings)
  61 siblings, 0 replies; 64+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-15  9:22 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Jianlin Shi, Hannes Frederic Sowa,
	Xin Long, David S. Miller, Sasha Levin

3.18-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Xin Long <lucien.xin@gmail.com>


[ Upstream commit e39d5246111399dbc6e11cd39fd8580191b86c47 ]

Now when creating fnhe for redirect, it sets fnhe_expires for this
new route cache. But when updating the exist one, it doesn't do it.
It will cause this fnhe never to be expired.

Paolo already noticed it before, in Jianlin's test case, it became
even worse:

When ip route flush cache, the old fnhe is not to be removed, but
only clean it's members. When redirect comes again, this fnhe will
be found and updated, but never be expired due to fnhe_expires not
being set.

So fix it by simply updating fnhe_expires even it's for redirect.

Fixes: aee06da6726d ("ipv4: use seqlock for nh_exceptions")
Reported-by: Jianlin Shi <jishi@redhat.com>
Acked-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
Signed-off-by: Xin Long <lucien.xin@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 net/ipv4/route.c |    5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

--- a/net/ipv4/route.c
+++ b/net/ipv4/route.c
@@ -654,10 +654,9 @@ static void update_or_create_fnhe(struct
 			fnhe->fnhe_genid = genid;
 		if (gw)
 			fnhe->fnhe_gw = gw;
-		if (pmtu) {
+		if (pmtu)
 			fnhe->fnhe_pmtu = pmtu;
-			fnhe->fnhe_expires = max(1UL, expires);
-		}
+		fnhe->fnhe_expires = max(1UL, expires);
 		/* Update all cached dsts too */
 		rt = rcu_dereference(fnhe->fnhe_rth_input);
 		if (rt)

^ permalink raw reply	[flat|nested] 64+ messages in thread

* [PATCH 3.18 50/64] lib/genalloc.c: make the avail variable an atomic_long_t
  2017-12-15  9:21 [PATCH 3.18 00/64] 3.18.88-stable review Greg Kroah-Hartman
                   ` (43 preceding siblings ...)
  2017-12-15  9:22 ` [PATCH 3.18 49/64] route: update fnhe_expires for redirect when the fnhe exists Greg Kroah-Hartman
@ 2017-12-15  9:22 ` Greg Kroah-Hartman
  2017-12-15  9:22 ` [PATCH 3.18 51/64] dynamic-debug-howto: fix optional/omitted ending line number to be LARGE instead of 0 Greg Kroah-Hartman
                   ` (16 subsequent siblings)
  61 siblings, 0 replies; 64+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-15  9:22 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Stephen Bates, Logan Gunthorpe,
	Mathieu Desnoyers, Daniel Mentz, Jonathan Corbet, Andrew Morton,
	Will Deacon, Linus Torvalds, Sasha Levin

3.18-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Stephen Bates <sbates@raithlin.com>


[ Upstream commit 36a3d1dd4e16bcd0d2ddfb4a2ec7092f0ae0d931 ]

If the amount of resources allocated to a gen_pool exceeds 2^32 then the
avail atomic overflows and this causes problems when clients try and
borrow resources from the pool.  This is only expected to be an issue on
64 bit systems.

Add the <linux/atomic.h> header to pull in atomic_long* operations.  So
that 32 bit systems continue to use atomic32_t but 64 bit systems can
use atomic64_t.

Link: http://lkml.kernel.org/r/1509033843-25667-1-git-send-email-sbates@raithlin.com
Signed-off-by: Stephen Bates <sbates@raithlin.com>
Reviewed-by: Logan Gunthorpe <logang@deltatee.com>
Reviewed-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Reviewed-by: Daniel Mentz <danielmentz@google.com>
Cc: Jonathan Corbet <corbet@lwn.net>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Will Deacon <will.deacon@arm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 include/linux/genalloc.h |    3 ++-
 lib/genalloc.c           |   10 +++++-----
 2 files changed, 7 insertions(+), 6 deletions(-)

--- a/include/linux/genalloc.h
+++ b/include/linux/genalloc.h
@@ -31,6 +31,7 @@
 #define __GENALLOC_H__
 
 #include <linux/spinlock_types.h>
+#include <linux/atomic.h>
 
 struct device;
 struct device_node;
@@ -66,7 +67,7 @@ struct gen_pool {
  */
 struct gen_pool_chunk {
 	struct list_head next_chunk;	/* next chunk in pool */
-	atomic_t avail;
+	atomic_long_t avail;
 	phys_addr_t phys_addr;		/* physical starting address of memory chunk */
 	unsigned long start_addr;	/* start address of memory chunk */
 	unsigned long end_addr;		/* end address of memory chunk (inclusive) */
--- a/lib/genalloc.c
+++ b/lib/genalloc.c
@@ -194,7 +194,7 @@ int gen_pool_add_virt(struct gen_pool *p
 	chunk->phys_addr = phys;
 	chunk->start_addr = virt;
 	chunk->end_addr = virt + size - 1;
-	atomic_set(&chunk->avail, size);
+	atomic_long_set(&chunk->avail, size);
 
 	spin_lock(&pool->lock);
 	list_add_rcu(&chunk->next_chunk, &pool->chunks);
@@ -285,7 +285,7 @@ unsigned long gen_pool_alloc(struct gen_
 	nbits = (size + (1UL << order) - 1) >> order;
 	rcu_read_lock();
 	list_for_each_entry_rcu(chunk, &pool->chunks, next_chunk) {
-		if (size > atomic_read(&chunk->avail))
+		if (size > atomic_long_read(&chunk->avail))
 			continue;
 
 		end_bit = chunk_size(chunk) >> order;
@@ -304,7 +304,7 @@ retry:
 
 		addr = chunk->start_addr + ((unsigned long)start_bit << order);
 		size = nbits << order;
-		atomic_sub(size, &chunk->avail);
+		atomic_long_sub(size, &chunk->avail);
 		break;
 	}
 	rcu_read_unlock();
@@ -370,7 +370,7 @@ void gen_pool_free(struct gen_pool *pool
 			remain = bitmap_clear_ll(chunk->bits, start_bit, nbits);
 			BUG_ON(remain);
 			size = nbits << order;
-			atomic_add(size, &chunk->avail);
+			atomic_long_add(size, &chunk->avail);
 			rcu_read_unlock();
 			return;
 		}
@@ -444,7 +444,7 @@ size_t gen_pool_avail(struct gen_pool *p
 
 	rcu_read_lock();
 	list_for_each_entry_rcu(chunk, &pool->chunks, next_chunk)
-		avail += atomic_read(&chunk->avail);
+		avail += atomic_long_read(&chunk->avail);
 	rcu_read_unlock();
 	return avail;
 }

^ permalink raw reply	[flat|nested] 64+ messages in thread

* [PATCH 3.18 51/64] dynamic-debug-howto: fix optional/omitted ending line number to be LARGE instead of 0
  2017-12-15  9:21 [PATCH 3.18 00/64] 3.18.88-stable review Greg Kroah-Hartman
                   ` (44 preceding siblings ...)
  2017-12-15  9:22 ` [PATCH 3.18 50/64] lib/genalloc.c: make the avail variable an atomic_long_t Greg Kroah-Hartman
@ 2017-12-15  9:22 ` Greg Kroah-Hartman
  2017-12-15  9:22 ` [PATCH 3.18 52/64] NFS: Fix a typo in nfs_rename() Greg Kroah-Hartman
                   ` (15 subsequent siblings)
  61 siblings, 0 replies; 64+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-15  9:22 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Randy Dunlap, Jason Baron,
	Andrew Morton, Linus Torvalds, Sasha Levin

3.18-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Randy Dunlap <rdunlap@infradead.org>


[ Upstream commit 1f3c790bd5989fcfec9e53ad8fa09f5b740c958f ]

line-range is supposed to treat "1-" as "1-endoffile", so
handle the special case by setting last_lineno to UINT_MAX.

Fixes this error:

  dynamic_debug:ddebug_parse_query: last-line:0 < 1st-line:1
  dynamic_debug:ddebug_exec_query: query parse failed

Link: http://lkml.kernel.org/r/10a6a101-e2be-209f-1f41-54637824788e@infradead.org
Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
Acked-by: Jason Baron <jbaron@akamai.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 lib/dynamic_debug.c |    4 ++++
 1 file changed, 4 insertions(+)

--- a/lib/dynamic_debug.c
+++ b/lib/dynamic_debug.c
@@ -353,6 +353,10 @@ static int ddebug_parse_query(char *word
 				if (parse_lineno(last, &query->last_lineno) < 0)
 					return -EINVAL;
 
+				/* special case for last lineno not specified */
+				if (query->last_lineno == 0)
+					query->last_lineno = UINT_MAX;
+
 				if (query->last_lineno < query->first_lineno) {
 					pr_err("last-line:%d < 1st-line:%d\n",
 						query->last_lineno,

^ permalink raw reply	[flat|nested] 64+ messages in thread

* [PATCH 3.18 52/64] NFS: Fix a typo in nfs_rename()
  2017-12-15  9:21 [PATCH 3.18 00/64] 3.18.88-stable review Greg Kroah-Hartman
                   ` (45 preceding siblings ...)
  2017-12-15  9:22 ` [PATCH 3.18 51/64] dynamic-debug-howto: fix optional/omitted ending line number to be LARGE instead of 0 Greg Kroah-Hartman
@ 2017-12-15  9:22 ` Greg Kroah-Hartman
  2017-12-15  9:22 ` [PATCH 3.18 53/64] sunrpc: Fix rpc_task_begin trace point Greg Kroah-Hartman
                   ` (14 subsequent siblings)
  61 siblings, 0 replies; 64+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-15  9:22 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Trond Myklebust, Anna Schumaker, Sasha Levin

3.18-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Trond Myklebust <trond.myklebust@primarydata.com>


[ Upstream commit d803224c84be067754db7fa58a93f36f61566493 ]

On successful rename, the "old_dentry" is retained and is attached to
the "new_dir", so we need to call nfs_set_verifier() accordingly.

Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 fs/nfs/dir.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/fs/nfs/dir.c
+++ b/fs/nfs/dir.c
@@ -2063,7 +2063,7 @@ out:
 		if (new_inode != NULL)
 			nfs_drop_nlink(new_inode);
 		d_move(old_dentry, new_dentry);
-		nfs_set_verifier(new_dentry,
+		nfs_set_verifier(old_dentry,
 					nfs_save_change_attribute(new_dir));
 	} else if (error == -ENOENT)
 		nfs_dentry_handle_enoent(old_dentry);

^ permalink raw reply	[flat|nested] 64+ messages in thread

* [PATCH 3.18 53/64] sunrpc: Fix rpc_task_begin trace point
  2017-12-15  9:21 [PATCH 3.18 00/64] 3.18.88-stable review Greg Kroah-Hartman
                   ` (46 preceding siblings ...)
  2017-12-15  9:22 ` [PATCH 3.18 52/64] NFS: Fix a typo in nfs_rename() Greg Kroah-Hartman
@ 2017-12-15  9:22 ` Greg Kroah-Hartman
  2017-12-15  9:22 ` [PATCH 3.18 54/64] sparc64/mm: set fields in deferred pages Greg Kroah-Hartman
                   ` (13 subsequent siblings)
  61 siblings, 0 replies; 64+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-15  9:22 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Chuck Lever, Anna Schumaker, Sasha Levin

3.18-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Chuck Lever <chuck.lever@oracle.com>


[ Upstream commit b2bfe5915d5fe7577221031a39ac722a0a2a1199 ]

The rpc_task_begin trace point always display a task ID of zero.
Move the trace point call site so that it picks up the new task ID.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 net/sunrpc/sched.c |    3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

--- a/net/sunrpc/sched.c
+++ b/net/sunrpc/sched.c
@@ -273,10 +273,9 @@ static inline void rpc_task_set_debuginf
 
 static void rpc_set_active(struct rpc_task *task)
 {
-	trace_rpc_task_begin(task->tk_client, task, NULL);
-
 	rpc_task_set_debuginfo(task);
 	set_bit(RPC_TASK_ACTIVE, &task->tk_runstate);
+	trace_rpc_task_begin(task->tk_client, task, NULL);
 }
 
 /*

^ permalink raw reply	[flat|nested] 64+ messages in thread

* [PATCH 3.18 54/64] sparc64/mm: set fields in deferred pages
  2017-12-15  9:21 [PATCH 3.18 00/64] 3.18.88-stable review Greg Kroah-Hartman
                   ` (47 preceding siblings ...)
  2017-12-15  9:22 ` [PATCH 3.18 53/64] sunrpc: Fix rpc_task_begin trace point Greg Kroah-Hartman
@ 2017-12-15  9:22 ` Greg Kroah-Hartman
  2017-12-15  9:22 ` [PATCH 3.18 55/64] sctp: do not free asoc when it is already dead in sctp_sendmsg Greg Kroah-Hartman
                   ` (12 subsequent siblings)
  61 siblings, 0 replies; 64+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-15  9:22 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Pavel Tatashin, Steven Sistare,
	Daniel Jordan, Bob Picco, David S. Miller, Michal Hocko,
	Alexander Potapenko, Andrey Ryabinin, Ard Biesheuvel,
	Catalin Marinas, Christian Borntraeger, Dmitry Vyukov,
	Heiko Carstens, H. Peter Anvin, Ingo Molnar, Mark Rutland,
	Matthew Wilcox, Mel Gorman, Michal Hocko, Sam Ravnborg,
	Thomas Gleixner, Will Deacon, Andrew Morton, Linus Torvalds,
	Sasha Levin

3.18-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Pavel Tatashin <pasha.tatashin@oracle.com>


[ Upstream commit 2a20aa171071a334d80c4e5d5af719d8374702fc ]

Without deferred struct page feature (CONFIG_DEFERRED_STRUCT_PAGE_INIT),
flags and other fields in "struct page"es are never changed prior to
first initializing struct pages by going through __init_single_page().

With deferred struct page feature enabled there is a case where we set
some fields prior to initializing:

mem_init() {
     register_page_bootmem_info();
     free_all_bootmem();
     ...
}

When register_page_bootmem_info() is called only non-deferred struct
pages are initialized.  But, this function goes through some reserved
pages which might be part of the deferred, and thus are not yet
initialized.

mem_init
register_page_bootmem_info
register_page_bootmem_info_node
 get_page_bootmem
  .. setting fields here ..
  such as: page->freelist = (void *)type;

free_all_bootmem()
free_low_memory_core_early()
 for_each_reserved_mem_region()
  reserve_bootmem_region()
   init_reserved_page() <- Only if this is deferred reserved page
    __init_single_pfn()
     __init_single_page()
      memset(0) <-- Loose the set fields here

We end up with similar issue as in the previous patch, where currently
we do not observe problem as memory is zeroed.  But, if flag asserts are
changed we can start hitting issues.

Also, because in this patch series we will stop zeroing struct page
memory during allocation, we must make sure that struct pages are
properly initialized prior to using them.

The deferred-reserved pages are initialized in free_all_bootmem().
Therefore, the fix is to switch the above calls.

Link: http://lkml.kernel.org/r/20171013173214.27300-4-pasha.tatashin@oracle.com
Signed-off-by: Pavel Tatashin <pasha.tatashin@oracle.com>
Reviewed-by: Steven Sistare <steven.sistare@oracle.com>
Reviewed-by: Daniel Jordan <daniel.m.jordan@oracle.com>
Reviewed-by: Bob Picco <bob.picco@oracle.com>
Acked-by: David S. Miller <davem@davemloft.net>
Acked-by: Michal Hocko <mhocko@suse.com>
Cc: Alexander Potapenko <glider@google.com>
Cc: Andrey Ryabinin <aryabinin@virtuozzo.com>
Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Christian Borntraeger <borntraeger@de.ibm.com>
Cc: Dmitry Vyukov <dvyukov@google.com>
Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Matthew Wilcox <willy@infradead.org>
Cc: Mel Gorman <mgorman@techsingularity.net>
Cc: Michal Hocko <mhocko@kernel.org>
Cc: Sam Ravnborg <sam@ravnborg.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Will Deacon <will.deacon@arm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 arch/sparc/mm/init_64.c |    9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

--- a/arch/sparc/mm/init_64.c
+++ b/arch/sparc/mm/init_64.c
@@ -2215,10 +2215,17 @@ void __init mem_init(void)
 {
 	high_memory = __va(last_valid_pfn << PAGE_SHIFT);
 
-	register_page_bootmem_info();
 	free_all_bootmem();
 
 	/*
+	 * Must be done after boot memory is put on freelist, because here we
+	 * might set fields in deferred struct pages that have not yet been
+	 * initialized, and free_all_bootmem() initializes all the reserved
+	 * deferred pages for us.
+	 */
+	register_page_bootmem_info();
+
+	/*
 	 * Set up the zero page, mark it reserved, so that page count
 	 * is not manipulated when freeing the page from user ptes.
 	 */

^ permalink raw reply	[flat|nested] 64+ messages in thread

* [PATCH 3.18 55/64] sctp: do not free asoc when it is already dead in sctp_sendmsg
  2017-12-15  9:21 [PATCH 3.18 00/64] 3.18.88-stable review Greg Kroah-Hartman
                   ` (48 preceding siblings ...)
  2017-12-15  9:22 ` [PATCH 3.18 54/64] sparc64/mm: set fields in deferred pages Greg Kroah-Hartman
@ 2017-12-15  9:22 ` Greg Kroah-Hartman
  2017-12-15  9:22 ` [PATCH 3.18 56/64] sctp: use the right sk after waking up from wait_buf sleep Greg Kroah-Hartman
                   ` (11 subsequent siblings)
  61 siblings, 0 replies; 64+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-15  9:22 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Neil Horman, Dmitry Vyukov, Xin Long,
	David S. Miller, Sasha Levin

3.18-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Xin Long <lucien.xin@gmail.com>


[ Upstream commit ca3af4dd28cff4e7216e213ba3b671fbf9f84758 ]

Now in sctp_sendmsg sctp_wait_for_sndbuf could schedule out without
holding sock sk. It means the current asoc can be freed elsewhere,
like when receiving an abort packet.

If the asoc is just created in sctp_sendmsg and sctp_wait_for_sndbuf
returns err, the asoc will be freed again due to new_asoc is not nil.
An use-after-free issue would be triggered by this.

This patch is to fix it by setting new_asoc with nil if the asoc is
already dead when cpu schedules back, so that it will not be freed
again in sctp_sendmsg.

v1->v2:
  set new_asoc as nil in sctp_sendmsg instead of sctp_wait_for_sndbuf.

Suggested-by: Neil Horman <nhorman@tuxdriver.com>
Reported-by: Dmitry Vyukov <dvyukov@google.com>
Signed-off-by: Xin Long <lucien.xin@gmail.com>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 net/sctp/socket.c |   17 ++++++++++++++---
 1 file changed, 14 insertions(+), 3 deletions(-)

--- a/net/sctp/socket.c
+++ b/net/sctp/socket.c
@@ -1950,8 +1950,14 @@ static int sctp_sendmsg(struct kiocb *io
 	timeo = sock_sndtimeo(sk, msg->msg_flags & MSG_DONTWAIT);
 	if (!sctp_wspace(asoc)) {
 		err = sctp_wait_for_sndbuf(asoc, &timeo, msg_len);
-		if (err)
+		if (err) {
+			if (err == -ESRCH) {
+				/* asoc is already dead. */
+				new_asoc = NULL;
+				err = -EPIPE;
+			}
 			goto out_free;
+		}
 	}
 
 	/* If an address is passed with the sendto/sendmsg call, it is used
@@ -6999,10 +7005,11 @@ static int sctp_wait_for_sndbuf(struct s
 	for (;;) {
 		prepare_to_wait_exclusive(&asoc->wait, &wait,
 					  TASK_INTERRUPTIBLE);
+		if (asoc->base.dead)
+			goto do_dead;
 		if (!*timeo_p)
 			goto do_nonblock;
-		if (sk->sk_err || asoc->state >= SCTP_STATE_SHUTDOWN_PENDING ||
-		    asoc->base.dead)
+		if (sk->sk_err || asoc->state >= SCTP_STATE_SHUTDOWN_PENDING)
 			goto do_error;
 		if (signal_pending(current))
 			goto do_interrupted;
@@ -7027,6 +7034,10 @@ out:
 
 	return err;
 
+do_dead:
+	err = -ESRCH;
+	goto out;
+
 do_error:
 	err = -EPIPE;
 	goto out;

^ permalink raw reply	[flat|nested] 64+ messages in thread

* [PATCH 3.18 56/64] sctp: use the right sk after waking up from wait_buf sleep
  2017-12-15  9:21 [PATCH 3.18 00/64] 3.18.88-stable review Greg Kroah-Hartman
                   ` (49 preceding siblings ...)
  2017-12-15  9:22 ` [PATCH 3.18 55/64] sctp: do not free asoc when it is already dead in sctp_sendmsg Greg Kroah-Hartman
@ 2017-12-15  9:22 ` Greg Kroah-Hartman
  2017-12-15  9:22 ` [PATCH 3.18 57/64] atm: horizon: Fix irq release error Greg Kroah-Hartman
                   ` (10 subsequent siblings)
  61 siblings, 0 replies; 64+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-15  9:22 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Neil Horman, Xin Long,
	David S. Miller, Sasha Levin

3.18-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Xin Long <lucien.xin@gmail.com>


[ Upstream commit cea0cc80a6777beb6eb643d4ad53690e1ad1d4ff ]

Commit dfcb9f4f99f1 ("sctp: deny peeloff operation on asocs with threads
sleeping on it") fixed the race between peeloff and wait sndbuf by
checking waitqueue_active(&asoc->wait) in sctp_do_peeloff().

But it actually doesn't work, as even if waitqueue_active returns false
the waiting sndbuf thread may still not yet hold sk lock. After asoc is
peeled off, sk is not asoc->base.sk any more, then to hold the old sk
lock couldn't make assoc safe to access.

This patch is to fix this by changing to hold the new sk lock if sk is
not asoc->base.sk, meanwhile, also set the sk in sctp_sendmsg with the
new sk.

With this fix, there is no more race between peeloff and waitbuf, the
check 'waitqueue_active' in sctp_do_peeloff can be removed.

Thanks Marcelo and Neil for making this clear.

v1->v2:
  fix it by changing to lock the new sock instead of adding a flag in asoc.

Suggested-by: Neil Horman <nhorman@tuxdriver.com>
Signed-off-by: Xin Long <lucien.xin@gmail.com>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 net/sctp/socket.c |   21 +++++++++++----------
 1 file changed, 11 insertions(+), 10 deletions(-)

--- a/net/sctp/socket.c
+++ b/net/sctp/socket.c
@@ -82,8 +82,8 @@
 /* Forward declarations for internal helper functions. */
 static int sctp_writeable(struct sock *sk);
 static void sctp_wfree(struct sk_buff *skb);
-static int sctp_wait_for_sndbuf(struct sctp_association *, long *timeo_p,
-				size_t msg_len);
+static int sctp_wait_for_sndbuf(struct sctp_association *asoc, long *timeo_p,
+				size_t msg_len, struct sock **orig_sk);
 static int sctp_wait_for_packet(struct sock *sk, int *err, long *timeo_p);
 static int sctp_wait_for_connect(struct sctp_association *, long *timeo_p);
 static int sctp_wait_for_accept(struct sock *sk, long timeo);
@@ -1949,7 +1949,8 @@ static int sctp_sendmsg(struct kiocb *io
 
 	timeo = sock_sndtimeo(sk, msg->msg_flags & MSG_DONTWAIT);
 	if (!sctp_wspace(asoc)) {
-		err = sctp_wait_for_sndbuf(asoc, &timeo, msg_len);
+		/* sk can be changed by peel off when waiting for buf. */
+		err = sctp_wait_for_sndbuf(asoc, &timeo, msg_len, &sk);
 		if (err) {
 			if (err == -ESRCH) {
 				/* asoc is already dead. */
@@ -4479,12 +4480,6 @@ int sctp_do_peeloff(struct sock *sk, sct
 	if (!asoc)
 		return -EINVAL;
 
-	/* If there is a thread waiting on more sndbuf space for
-	 * sending on this asoc, it cannot be peeled.
-	 */
-	if (waitqueue_active(&asoc->wait))
-		return -EBUSY;
-
 	/* An association cannot be branched off from an already peeled-off
 	 * socket, nor is this supported for tcp style sockets.
 	 */
@@ -6988,7 +6983,7 @@ void sctp_sock_rfree(struct sk_buff *skb
 
 /* Helper function to wait for space in the sndbuf.  */
 static int sctp_wait_for_sndbuf(struct sctp_association *asoc, long *timeo_p,
-				size_t msg_len)
+				size_t msg_len, struct sock **orig_sk)
 {
 	struct sock *sk = asoc->base.sk;
 	int err = 0;
@@ -7022,11 +7017,17 @@ static int sctp_wait_for_sndbuf(struct s
 		release_sock(sk);
 		current_timeo = schedule_timeout(current_timeo);
 		lock_sock(sk);
+		if (sk != asoc->base.sk) {
+			release_sock(sk);
+			sk = asoc->base.sk;
+			lock_sock(sk);
+		}
 
 		*timeo_p = current_timeo;
 	}
 
 out:
+	*orig_sk = sk;
 	finish_wait(&asoc->wait, &wait);
 
 	/* Release the association's refcnt.  */

^ permalink raw reply	[flat|nested] 64+ messages in thread

* [PATCH 3.18 57/64] atm: horizon: Fix irq release error
  2017-12-15  9:21 [PATCH 3.18 00/64] 3.18.88-stable review Greg Kroah-Hartman
                   ` (50 preceding siblings ...)
  2017-12-15  9:22 ` [PATCH 3.18 56/64] sctp: use the right sk after waking up from wait_buf sleep Greg Kroah-Hartman
@ 2017-12-15  9:22 ` Greg Kroah-Hartman
  2017-12-15  9:22 ` [PATCH 3.18 58/64] xfrm: Copy policy family in clone_policy Greg Kroah-Hartman
                   ` (9 subsequent siblings)
  61 siblings, 0 replies; 64+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-15  9:22 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Arvind Yadav, David S. Miller, Sasha Levin

3.18-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Arvind Yadav <arvind.yadav.cs@gmail.com>


[ Upstream commit bde533f2ea607cbbbe76ef8738b36243939a7bc2 ]

atm_dev_register() can fail here and passed parameters to free irq
which is not initialised. Initialization of 'dev->irq' happened after
the 'goto out_free_irq'. So using 'irq' insted of 'dev->irq' in
free_irq().

Signed-off-by: Arvind Yadav <arvind.yadav.cs@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/atm/horizon.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/drivers/atm/horizon.c
+++ b/drivers/atm/horizon.c
@@ -2828,7 +2828,7 @@ out:
 	return err;
 
 out_free_irq:
-	free_irq(dev->irq, dev);
+	free_irq(irq, dev);
 out_free:
 	kfree(dev);
 out_release:

^ permalink raw reply	[flat|nested] 64+ messages in thread

* [PATCH 3.18 58/64] xfrm: Copy policy family in clone_policy
  2017-12-15  9:21 [PATCH 3.18 00/64] 3.18.88-stable review Greg Kroah-Hartman
                   ` (51 preceding siblings ...)
  2017-12-15  9:22 ` [PATCH 3.18 57/64] atm: horizon: Fix irq release error Greg Kroah-Hartman
@ 2017-12-15  9:22 ` Greg Kroah-Hartman
  2017-12-15  9:22 ` [PATCH 3.18 59/64] IB/mlx4: Increase maximal message size under UD QP Greg Kroah-Hartman
                   ` (8 subsequent siblings)
  61 siblings, 0 replies; 64+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-15  9:22 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, syzbot, Herbert Xu, Steffen Klassert,
	Sasha Levin

3.18-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Herbert Xu <herbert@gondor.apana.org.au>


[ Upstream commit 0e74aa1d79a5bbc663e03a2804399cae418a0321 ]

The syzbot found an ancient bug in the IPsec code.  When we cloned
a socket policy (for example, for a child TCP socket derived from a
listening socket), we did not copy the family field.  This results
in a live policy with a zero family field.  This triggers a BUG_ON
check in the af_key code when the cloned policy is retrieved.

This patch fixes it by copying the family field over.

Reported-by: syzbot <syzkaller@googlegroups.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 net/xfrm/xfrm_policy.c |    1 +
 1 file changed, 1 insertion(+)

--- a/net/xfrm/xfrm_policy.c
+++ b/net/xfrm/xfrm_policy.c
@@ -1345,6 +1345,7 @@ static struct xfrm_policy *clone_policy(
 		newp->xfrm_nr = old->xfrm_nr;
 		newp->index = old->index;
 		newp->type = old->type;
+		newp->family = old->family;
 		memcpy(newp->xfrm_vec, old->xfrm_vec,
 		       newp->xfrm_nr*sizeof(struct xfrm_tmpl));
 		write_lock_bh(&net->xfrm.xfrm_policy_lock);

^ permalink raw reply	[flat|nested] 64+ messages in thread

* [PATCH 3.18 59/64] IB/mlx4: Increase maximal message size under UD QP
  2017-12-15  9:21 [PATCH 3.18 00/64] 3.18.88-stable review Greg Kroah-Hartman
                   ` (52 preceding siblings ...)
  2017-12-15  9:22 ` [PATCH 3.18 58/64] xfrm: Copy policy family in clone_policy Greg Kroah-Hartman
@ 2017-12-15  9:22 ` Greg Kroah-Hartman
  2017-12-15  9:22 ` [PATCH 3.18 60/64] IB/mlx5: Assign send CQ and recv CQ of UMR QP Greg Kroah-Hartman
                   ` (7 subsequent siblings)
  61 siblings, 0 replies; 64+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-15  9:22 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Mark Bloch, Majd Dibbiny,
	Leon Romanovsky, Doug Ledford, Sasha Levin

3.18-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Mark Bloch <markb@mellanox.com>


[ Upstream commit 5f22a1d87c5315a98981ecf93cd8de226cffe6ca ]

Maximal message should be used as a limit to the max message payload allowed,
without the headers. The ConnectX-3 check is done against this value includes
the headers. When the payload is 4K this will cause the NIC to drop packets.

Increase maximal message to 8K as workaround, this shouldn't change current
behaviour because we continue to set the MTU to 4k.

To reproduce;
set MTU to 4296 on the corresponding interface, for example:
ifconfig eth0 mtu 4296 (both server and client)

On server:
ib_send_bw -c UD -d mlx4_0 -s 4096 -n 1000000 -i1 -m 4096

On client:
ib_send_bw -d mlx4_0 -c UD <server_ip> -s 4096 -n 1000000 -i 1 -m 4096

Fixes: 6e0d733d9215 ("IB/mlx4: Allow 4K messages for UD QPs")
Signed-off-by: Mark Bloch <markb@mellanox.com>
Reviewed-by: Majd Dibbiny <majd@mellanox.com>
Signed-off-by: Leon Romanovsky <leon@kernel.org>
Signed-off-by: Doug Ledford <dledford@redhat.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/infiniband/hw/mlx4/qp.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/drivers/infiniband/hw/mlx4/qp.c
+++ b/drivers/infiniband/hw/mlx4/qp.c
@@ -1465,7 +1465,7 @@ static int __mlx4_ib_modify_qp(struct ib
 			context->mtu_msgmax = (IB_MTU_4096 << 5) |
 					      ilog2(dev->dev->caps.max_gso_sz);
 		else
-			context->mtu_msgmax = (IB_MTU_4096 << 5) | 12;
+			context->mtu_msgmax = (IB_MTU_4096 << 5) | 13;
 	} else if (attr_mask & IB_QP_PATH_MTU) {
 		if (attr->path_mtu < IB_MTU_256 || attr->path_mtu > IB_MTU_4096) {
 			pr_err("path MTU (%u) is invalid\n",

^ permalink raw reply	[flat|nested] 64+ messages in thread

* [PATCH 3.18 60/64] IB/mlx5: Assign send CQ and recv CQ of UMR QP
  2017-12-15  9:21 [PATCH 3.18 00/64] 3.18.88-stable review Greg Kroah-Hartman
                   ` (53 preceding siblings ...)
  2017-12-15  9:22 ` [PATCH 3.18 59/64] IB/mlx4: Increase maximal message size under UD QP Greg Kroah-Hartman
@ 2017-12-15  9:22 ` Greg Kroah-Hartman
  2017-12-15  9:22 ` [PATCH 3.18 61/64] afs: Connect up the CB.ProbeUuid Greg Kroah-Hartman
                   ` (6 subsequent siblings)
  61 siblings, 0 replies; 64+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-15  9:22 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Majd Dibbiny, Yishai Hadas,
	Leon Romanovsky, Doug Ledford, Sasha Levin

3.18-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Majd Dibbiny <majd@mellanox.com>


[ Upstream commit 31fde034a8bd964a5c7c1a5663fc87a913158db2 ]

The UMR's QP is created by calling mlx5_ib_create_qp directly, and
therefore the send CQ and the recv CQ on the ibqp weren't assigned.

Assign them right after calling the mlx5_ib_create_qp to assure
that any access to those pointers will work as expected and won't
crash the system as might happen as part of reset flow.

Fixes: e126ba97dba9 ("mlx5: Add driver for Mellanox Connect-IB adapters")
Signed-off-by: Majd Dibbiny <majd@mellanox.com>
Reviewed-by: Yishai Hadas <yishaih@mellanox.com>
Signed-off-by: Leon Romanovsky <leon@kernel.org>
Signed-off-by: Doug Ledford <dledford@redhat.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/infiniband/hw/mlx5/main.c |    2 ++
 1 file changed, 2 insertions(+)

--- a/drivers/infiniband/hw/mlx5/main.c
+++ b/drivers/infiniband/hw/mlx5/main.c
@@ -1099,6 +1099,8 @@ static int create_umr_res(struct mlx5_ib
 	qp->real_qp    = qp;
 	qp->uobject    = NULL;
 	qp->qp_type    = MLX5_IB_QPT_REG_UMR;
+	qp->send_cq    = init_attr->send_cq;
+	qp->recv_cq    = init_attr->recv_cq;
 
 	attr->qp_state = IB_QPS_INIT;
 	attr->port_num = 1;

^ permalink raw reply	[flat|nested] 64+ messages in thread

* [PATCH 3.18 61/64] afs: Connect up the CB.ProbeUuid
  2017-12-15  9:21 [PATCH 3.18 00/64] 3.18.88-stable review Greg Kroah-Hartman
                   ` (54 preceding siblings ...)
  2017-12-15  9:22 ` [PATCH 3.18 60/64] IB/mlx5: Assign send CQ and recv CQ of UMR QP Greg Kroah-Hartman
@ 2017-12-15  9:22 ` Greg Kroah-Hartman
  2017-12-15  9:22 ` [PATCH 3.18 62/64] audit: ensure that audit=1 actually enables audit for PID 1 Greg Kroah-Hartman
                   ` (5 subsequent siblings)
  61 siblings, 0 replies; 64+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-15  9:22 UTC (permalink / raw)
  To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, David Howells, Sasha Levin

3.18-stable review patch.  If anyone has any objections, please let me know.

------------------

From: David Howells <dhowells@redhat.com>


[ Upstream commit f4b3526d83c40dd8bf5948b9d7a1b2c340f0dcc8 ]

The handler for the CB.ProbeUuid operation in the cache manager is
implemented, but isn't listed in the switch-statement of operation
selection, so won't be used.  Fix this by adding it.

Signed-off-by: David Howells <dhowells@redhat.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 fs/afs/cmservice.c |    3 +++
 1 file changed, 3 insertions(+)

--- a/fs/afs/cmservice.c
+++ b/fs/afs/cmservice.c
@@ -115,6 +115,9 @@ bool afs_cm_incoming_call(struct afs_cal
 	case CBProbe:
 		call->type = &afs_SRXCBProbe;
 		return true;
+	case CBProbeUuid:
+		call->type = &afs_SRXCBProbeUuid;
+		return true;
 	case CBTellMeAboutYourself:
 		call->type = &afs_SRXCBTellMeAboutYourself;
 		return true;

^ permalink raw reply	[flat|nested] 64+ messages in thread

* [PATCH 3.18 62/64] audit: ensure that audit=1 actually enables audit for PID 1
  2017-12-15  9:21 [PATCH 3.18 00/64] 3.18.88-stable review Greg Kroah-Hartman
                   ` (55 preceding siblings ...)
  2017-12-15  9:22 ` [PATCH 3.18 61/64] afs: Connect up the CB.ProbeUuid Greg Kroah-Hartman
@ 2017-12-15  9:22 ` Greg Kroah-Hartman
  2017-12-15  9:22 ` [PATCH 3.18 63/64] arm: KVM: Fix VTTBR_BADDR_MASK BUG_ON off-by-one Greg Kroah-Hartman
                   ` (4 subsequent siblings)
  61 siblings, 0 replies; 64+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-15  9:22 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Richard Guy Briggs, Paul Moore, Sasha Levin

3.18-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Paul Moore <paul@paul-moore.com>


[ Upstream commit 173743dd99a49c956b124a74c8aacb0384739a4c ]

Prior to this patch we enabled audit in audit_init(), which is too
late for PID 1 as the standard initcalls are run after the PID 1 task
is forked.  This means that we never allocate an audit_context (see
audit_alloc()) for PID 1 and therefore miss a lot of audit events
generated by PID 1.

This patch enables audit as early as possible to help ensure that when
PID 1 is forked it can allocate an audit_context if required.

Reviewed-by: Richard Guy Briggs <rgb@redhat.com>
Signed-off-by: Paul Moore <paul@paul-moore.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 kernel/audit.c |   10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

--- a/kernel/audit.c
+++ b/kernel/audit.c
@@ -79,13 +79,13 @@ static int	audit_initialized;
 #define AUDIT_OFF	0
 #define AUDIT_ON	1
 #define AUDIT_LOCKED	2
-u32		audit_enabled;
-u32		audit_ever_enabled;
+u32		audit_enabled = AUDIT_OFF;
+u32		audit_ever_enabled = !!AUDIT_OFF;
 
 EXPORT_SYMBOL_GPL(audit_enabled);
 
 /* Default state when kernel boots without any parameters. */
-static u32	audit_default;
+static u32	audit_default = AUDIT_OFF;
 
 /* If auditing cannot proceed, audit_failure selects what happens. */
 static u32	audit_failure = AUDIT_FAIL_PRINTK;
@@ -1173,8 +1173,6 @@ static int __init audit_init(void)
 	skb_queue_head_init(&audit_skb_queue);
 	skb_queue_head_init(&audit_skb_hold_queue);
 	audit_initialized = AUDIT_INITIALIZED;
-	audit_enabled = audit_default;
-	audit_ever_enabled |= !!audit_default;
 
 	audit_log(NULL, GFP_KERNEL, AUDIT_KERNEL, "initialized");
 
@@ -1191,6 +1189,8 @@ static int __init audit_enable(char *str
 	audit_default = !!simple_strtol(str, NULL, 0);
 	if (!audit_default)
 		audit_initialized = AUDIT_DISABLED;
+	audit_enabled = audit_default;
+	audit_ever_enabled = !!audit_enabled;
 
 	pr_info("%s\n", audit_default ?
 		"enabled (after initialization)" : "disabled (until reboot)");

^ permalink raw reply	[flat|nested] 64+ messages in thread

* [PATCH 3.18 63/64] arm: KVM: Fix VTTBR_BADDR_MASK BUG_ON off-by-one
  2017-12-15  9:21 [PATCH 3.18 00/64] 3.18.88-stable review Greg Kroah-Hartman
                   ` (56 preceding siblings ...)
  2017-12-15  9:22 ` [PATCH 3.18 62/64] audit: ensure that audit=1 actually enables audit for PID 1 Greg Kroah-Hartman
@ 2017-12-15  9:22 ` Greg Kroah-Hartman
  2017-12-15  9:22 ` [PATCH 3.18 64/64] usb: gadget: ffs: Forbid usb_ep_alloc_request from sleeping Greg Kroah-Hartman
                   ` (3 subsequent siblings)
  61 siblings, 0 replies; 64+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-15  9:22 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Kristina Martsenko, Christoffer Dall,
	Marc Zyngier

3.18-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Marc Zyngier <marc.zyngier@arm.com>

commit 5553b142be11e794ebc0805950b2e8313f93d718 upstream.

VTTBR_BADDR_MASK is used to sanity check the size and alignment of the
VTTBR address. It seems to currently be off by one, thereby only
allowing up to 39-bit addresses (instead of 40-bit) and also
insufficiently checking the alignment. This patch fixes it.

This patch is the 32bit pendent of Kristina's arm64 fix, and
she deserves the actual kudos for pinpointing that one.

Fixes: f7ed45be3ba52 ("KVM: ARM: World-switch implementation")
Reported-by: Kristina Martsenko <kristina.martsenko@arm.com>
Reviewed-by: Christoffer Dall <christoffer.dall@linaro.org>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 arch/arm/include/asm/kvm_arm.h |    3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

--- a/arch/arm/include/asm/kvm_arm.h
+++ b/arch/arm/include/asm/kvm_arm.h
@@ -161,8 +161,7 @@
 #else
 #define VTTBR_X		(5 - KVM_T0SZ)
 #endif
-#define VTTBR_BADDR_SHIFT (VTTBR_X - 1)
-#define VTTBR_BADDR_MASK  (((1LLU << (40 - VTTBR_X)) - 1) << VTTBR_BADDR_SHIFT)
+#define VTTBR_BADDR_MASK  (((1LLU << (40 - VTTBR_X)) - 1) << VTTBR_X)
 #define VTTBR_VMID_SHIFT  (48LLU)
 #define VTTBR_VMID_MASK	  (0xffLLU << VTTBR_VMID_SHIFT)
 

^ permalink raw reply	[flat|nested] 64+ messages in thread

* [PATCH 3.18 64/64] usb: gadget: ffs: Forbid usb_ep_alloc_request from sleeping
  2017-12-15  9:21 [PATCH 3.18 00/64] 3.18.88-stable review Greg Kroah-Hartman
                   ` (57 preceding siblings ...)
  2017-12-15  9:22 ` [PATCH 3.18 63/64] arm: KVM: Fix VTTBR_BADDR_MASK BUG_ON off-by-one Greg Kroah-Hartman
@ 2017-12-15  9:22 ` Greg Kroah-Hartman
  2017-12-15 11:22 ` [PATCH 3.18 00/64] 3.18.88-stable review Sebastian Gottschall
                   ` (2 subsequent siblings)
  61 siblings, 0 replies; 64+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-15  9:22 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Vincent Pelletier, Felipe Balbi, Siqi Lin

3.18-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Vincent Pelletier <plr.vincent@gmail.com>

commit 30bf90ccdec1da9c8198b161ecbff39ce4e5a9ba upstream.

Found using DEBUG_ATOMIC_SLEEP while submitting an AIO read operation:

[  100.853642] BUG: sleeping function called from invalid context at mm/slab.h:421
[  100.861148] in_atomic(): 1, irqs_disabled(): 1, pid: 1880, name: python
[  100.867954] 2 locks held by python/1880:
[  100.867961]  #0:  (&epfile->mutex){....}, at: [<f8188627>] ffs_mutex_lock+0x27/0x30 [usb_f_fs]
[  100.868020]  #1:  (&(&ffs->eps_lock)->rlock){....}, at: [<f818ad4b>] ffs_epfile_io.isra.17+0x24b/0x590 [usb_f_fs]
[  100.868076] CPU: 1 PID: 1880 Comm: python Not tainted 4.14.0-edison+ #118
[  100.868085] Hardware name: Intel Corporation Merrifield/BODEGA BAY, BIOS 542 2015.01.21:18.19.48
[  100.868093] Call Trace:
[  100.868122]  dump_stack+0x47/0x62
[  100.868156]  ___might_sleep+0xfd/0x110
[  100.868182]  __might_sleep+0x68/0x70
[  100.868217]  kmem_cache_alloc_trace+0x4b/0x200
[  100.868248]  ? dwc3_gadget_ep_alloc_request+0x24/0xe0 [dwc3]
[  100.868302]  dwc3_gadget_ep_alloc_request+0x24/0xe0 [dwc3]
[  100.868343]  usb_ep_alloc_request+0x16/0xc0 [udc_core]
[  100.868386]  ffs_epfile_io.isra.17+0x444/0x590 [usb_f_fs]
[  100.868424]  ? _raw_spin_unlock_irqrestore+0x27/0x40
[  100.868457]  ? kiocb_set_cancel_fn+0x57/0x60
[  100.868477]  ? ffs_ep0_poll+0xc0/0xc0 [usb_f_fs]
[  100.868512]  ffs_epfile_read_iter+0xfe/0x157 [usb_f_fs]
[  100.868551]  ? security_file_permission+0x9c/0xd0
[  100.868587]  ? rw_verify_area+0xac/0x120
[  100.868633]  aio_read+0x9d/0x100
[  100.868692]  ? __fget+0xa2/0xd0
[  100.868727]  ? __might_sleep+0x68/0x70
[  100.868763]  SyS_io_submit+0x471/0x680
[  100.868878]  do_int80_syscall_32+0x4e/0xd0
[  100.868921]  entry_INT80_32+0x2a/0x2a
[  100.868932] EIP: 0xb7fbb676
[  100.868941] EFLAGS: 00000292 CPU: 1
[  100.868951] EAX: ffffffda EBX: b7aa2000 ECX: 00000002 EDX: b7af8368
[  100.868961] ESI: b7fbb660 EDI: b7aab000 EBP: bfb6c658 ESP: bfb6c638
[  100.868973]  DS: 007b ES: 007b FS: 0000 GS: 0033 SS: 007b

Signed-off-by: Vincent Pelletier <plr.vincent@gmail.com>
Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
Signed-off-by: Siqi Lin <siqilin@google.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/usb/gadget/function/f_fs.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/drivers/usb/gadget/function/f_fs.c
+++ b/drivers/usb/gadget/function/f_fs.c
@@ -816,7 +816,7 @@ static ssize_t ffs_epfile_io(struct file
 		}
 
 		if (io_data->aio) {
-			req = usb_ep_alloc_request(ep->ep, GFP_KERNEL);
+			req = usb_ep_alloc_request(ep->ep, GFP_ATOMIC);
 			if (unlikely(!req))
 				goto error_lock;
 

^ permalink raw reply	[flat|nested] 64+ messages in thread

* Re: [PATCH 3.18 00/64] 3.18.88-stable review
  2017-12-15  9:21 [PATCH 3.18 00/64] 3.18.88-stable review Greg Kroah-Hartman
                   ` (58 preceding siblings ...)
  2017-12-15  9:22 ` [PATCH 3.18 64/64] usb: gadget: ffs: Forbid usb_ep_alloc_request from sleeping Greg Kroah-Hartman
@ 2017-12-15 11:22 ` Sebastian Gottschall
  2017-12-15 12:55   ` Greg Kroah-Hartman
  2017-12-15 17:39 ` Guenter Roeck
  2017-12-15 21:18 ` Shuah Khan
  61 siblings, 1 reply; 64+ messages in thread
From: Sebastian Gottschall @ 2017-12-15 11:22 UTC (permalink / raw)
  To: Greg Kroah-Hartman, linux-kernel
  Cc: torvalds, akpm, linux, shuahkh, patches, ben.hutchings,
	lkft-triage, stable

kernel.org/pub/linux/kernel/v3.x/stable-review/patch-3.18.88-rc1.gz

is missing.
same for
4.4


Am 15.12.2017 um 10:21 schrieb Greg Kroah-Hartman:
> This is the start of the stable review cycle for the 3.18.88 release.
> There are 64 patches in this series, all will be posted as a response
> to this one.  If anyone has any issues with these being applied, please
> let me know.
>
> Responses should be made by Sun Dec 17 09:21:53 UTC 2017.
> Anything received after that time might be too late.
>
> The whole patch series can be found in one patch at:
> 	kernel.org/pub/linux/kernel/v3.x/stable-review/patch-3.18.88-rc1.gz
> or in the git tree and branch at:
>    git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-3.18.y
> and the diffstat can be found below.
>
> thanks,
>
> greg k-h
>
> -------------
> Pseudo-Shortlog of commits:
>
> Greg Kroah-Hartman <gregkh@linuxfoundation.org>
>      Linux 3.18.88-rc1
>
> Vincent Pelletier <plr.vincent@gmail.com>
>      usb: gadget: ffs: Forbid usb_ep_alloc_request from sleeping
>
> Marc Zyngier <marc.zyngier@arm.com>
>      arm: KVM: Fix VTTBR_BADDR_MASK BUG_ON off-by-one
>
> Paul Moore <paul@paul-moore.com>
>      audit: ensure that 'audit=1' actually enables audit for PID 1
>
> David Howells <dhowells@redhat.com>
>      afs: Connect up the CB.ProbeUuid
>
> Majd Dibbiny <majd@mellanox.com>
>      IB/mlx5: Assign send CQ and recv CQ of UMR QP
>
> Mark Bloch <markb@mellanox.com>
>      IB/mlx4: Increase maximal message size under UD QP
>
> Herbert Xu <herbert@gondor.apana.org.au>
>      xfrm: Copy policy family in clone_policy
>
> Arvind Yadav <arvind.yadav.cs@gmail.com>
>      atm: horizon: Fix irq release error
>
> Xin Long <lucien.xin@gmail.com>
>      sctp: use the right sk after waking up from wait_buf sleep
>
> Xin Long <lucien.xin@gmail.com>
>      sctp: do not free asoc when it is already dead in sctp_sendmsg
>
> Pavel Tatashin <pasha.tatashin@oracle.com>
>      sparc64/mm: set fields in deferred pages
>
> Chuck Lever <chuck.lever@oracle.com>
>      sunrpc: Fix rpc_task_begin trace point
>
> Trond Myklebust <trond.myklebust@primarydata.com>
>      NFS: Fix a typo in nfs_rename()
>
> Randy Dunlap <rdunlap@infradead.org>
>      dynamic-debug-howto: fix optional/omitted ending line number to be LARGE instead of 0
>
> Stephen Bates <sbates@raithlin.com>
>      lib/genalloc.c: make the avail variable an atomic_long_t
>
> Xin Long <lucien.xin@gmail.com>
>      route: update fnhe_expires for redirect when the fnhe exists
>
> Xin Long <lucien.xin@gmail.com>
>      route: also update fnhe_genid when updating a route cache
>
> Jérémy Lefaure <jeremy.lefaure@lse.epita.fr>
>      EDAC, i5000, i5400: Fix definition of NRECMEMB register
>
> Jérémy Lefaure <jeremy.lefaure@lse.epita.fr>
>      EDAC, i5000, i5400: Fix use of MTR_DRAM_WIDTH macro
>
> Jan Kara <jack@suse.cz>
>      axonram: Fix gendisk handling
>
> Chris Brandt <chris.brandt@renesas.com>
>      i2c: riic: fix restart condition
>
> Krzysztof Kozlowski <krzk@kernel.org>
>      crypto: s5p-sss - Fix completing crypto request in IRQ handler
>
> WANG Cong <xiyou.wangcong@gmail.com>
>      ipv6: reorder icmpv6_init() and ip6_mr_init()
>
> Michal Schmidt <mschmidt@redhat.com>
>      bnx2x: fix possible overrun of VFPF multicast addresses array
>
> Blomme, Maarten <Maarten.Blomme@flir.com>
>      spi_ks8995: fix "BUG: key accdaa28 not in .data!"
>
> Mark Rutland <mark.rutland@arm.com>
>      arm: KVM: Survive unknown traps from guests
>
> Wanpeng Li <wanpeng.li@hotmail.com>
>      KVM: nVMX: reset nested_run_pending if the vCPU is going to be reset
>
> Franck Demathieu <fdemathieu@gmail.com>
>      irqchip/crossbar: Fix incorrect type of register size
>
> James Smart <jsmart2021@gmail.com>
>      scsi: lpfc: Fix crash during Hardware error recovery on SLI3 adapters
>
> Tejun Heo <tj@kernel.org>
>      workqueue: trigger WARN if queue_delayed_work() is called with NULL @wq
>
> Tejun Heo <tj@kernel.org>
>      libata: drop WARN from protocol error in ata_sff_qc_issue()
>
> Christophe JAILLET <christophe.jaillet@wanadoo.fr>
>      USB: gadgetfs: Fix a potential memory leak in 'dev_config()'
>
> John Keeping <john@metanate.com>
>      usb: gadget: configs: plug memory leak
>
> Sachin Sant <sachinp@linux.vnet.ibm.com>
>      selftest/powerpc: Fix false failures for skipped tests
>
> Sasha Levin <alexander.levin@verizon.com>
>      Revert "s390/kbuild: enable modversions for symbols exported from asm"
>
> Sasha Levin <alexander.levin@verizon.com>
>      Revert "drm/armada: Fix compile fail"
>
> Eric Dumazet <edumazet@google.com>
>      net/packet: fix a race in packet_bind() and packet_notifier()
>
> Hangbin Liu <liuhangbin@gmail.com>
>      sit: update frag_off info
>
> Håkon Bugge <Haakon.Bugge@oracle.com>
>      rds: Fix NULL pointer dereference in __rds_rdma_map
>
> Dave Martin <Dave.Martin@arm.com>
>      arm64: fpsimd: Prevent registers leaking from dead tasks
>
> Andrew Honig <ahonig@google.com>
>      KVM: VMX: remove I/O port 0x80 bypass on Intel hosts
>
> Kristina Martsenko <kristina.martsenko@arm.com>
>      arm64: KVM: fix VTTBR_BADDR_MASK BUG_ON off-by-one
>
> Laurent Caumont <lcaumont2@gmail.com>
>      media: dvb: i2c transfers over usb cannot be done from stack
>
> Daniel Thompson <daniel.thompson@linaro.org>
>      kdb: Fix handling of kallsyms_symbol_next() return value
>
> Robin Murphy <robin.murphy@arm.com>
>      iommu/vt-d: Fix scatterlist offset handling
>
> Jaejoong Kim <climbbb.kim@gmail.com>
>      ALSA: usb-audio: Add check return value for usb_string()
>
> Jaejoong Kim <climbbb.kim@gmail.com>
>      ALSA: usb-audio: Fix out-of-bound error
>
> Takashi Iwai <tiwai@suse.de>
>      ALSA: seq: Remove spurious WARN_ON() at timer check
>
> Robb Glasser <rglasser@google.com>
>      ALSA: pcm: prevent UAF in snd_pcm_info
>
> Rafael J. Wysocki <rafael.j.wysocki@intel.com>
>      x86/PCI: Make broadcom_postcore_init() check acpi_disabled
>
> Eric Biggers <ebiggers@google.com>
>      X.509: reject invalid BIT STRING for subjectPublicKey
>
> Eric Biggers <ebiggers@google.com>
>      KEYS: add missing permission check for request_key() destination
>
> Eric Biggers <ebiggers@google.com>
>      ASN.1: check for error from ASN1_OP_END__ACT actions
>
> Greg Kroah-Hartman <gregkh@linuxfoundation.org>
>      efi: Move some sysfs files to be read-only by root
>
> William Breathitt Gray <vilhelm.gray@gmail.com>
>      isa: Prevent NULL dereference in isa_bus driver callbacks
>
> Paul Meyer <Paul.Meyer@microsoft.com>
>      hv: kvp: Avoid reading past allocated blocks from KVP file
>
> weiping zhang <zwp10758@gmail.com>
>      virtio: release virtio index when fail to device_register
>
> Martin Kelly <mkelly@xevo.com>
>      can: usb_8dev: cancel urb on -EPIPE and -EPROTO
>
> Martin Kelly <mkelly@xevo.com>
>      can: esd_usb2: cancel urb on -EPIPE and -EPROTO
>
> Martin Kelly <mkelly@xevo.com>
>      can: ems_usb: cancel urb on -EPIPE and -EPROTO
>
> Martin Kelly <mkelly@xevo.com>
>      can: kvaser_usb: cancel urb on -EPIPE and -EPROTO
>
> Jimmy Assarsson <jimmyassarsson@gmail.com>
>      can: kvaser_usb: ratelimit errors if incomplete messages are received
>
> Jimmy Assarsson <jimmyassarsson@gmail.com>
>      can: kvaser_usb: Fix comparison bug in kvaser_usb_read_bulk_callback()
>
> Jimmy Assarsson <jimmyassarsson@gmail.com>
>      can: kvaser_usb: free buf in error paths
>
>
> -------------
>
> Diffstat:
>
>   Makefile                                         |  4 +-
>   arch/arm/include/asm/kvm_arm.h                   |  4 +-
>   arch/arm/kvm/handle_exit.c                       | 19 ++++---
>   arch/arm64/include/asm/kvm_arm.h                 |  3 +-
>   arch/arm64/kernel/process.c                      |  9 +++
>   arch/powerpc/sysdev/axonram.c                    |  5 +-
>   arch/s390/include/asm/asm-prototypes.h           |  8 ---
>   arch/sparc/mm/init_64.c                          |  9 ++-
>   arch/x86/kvm/vmx.c                               |  9 +--
>   arch/x86/pci/broadcom_bus.c                      |  2 +-
>   crypto/asymmetric_keys/x509_cert_parser.c        |  2 +
>   drivers/ata/libata-sff.c                         |  1 -
>   drivers/atm/horizon.c                            |  2 +-
>   drivers/base/isa.c                               | 10 ++--
>   drivers/crypto/s5p-sss.c                         |  5 +-
>   drivers/edac/i5000_edac.c                        |  8 +--
>   drivers/edac/i5400_edac.c                        |  9 +--
>   drivers/firmware/efi/efi.c                       |  3 +-
>   drivers/firmware/efi/runtime-map.c               | 10 ++--
>   drivers/gpu/drm/armada/Makefile                  |  2 -
>   drivers/i2c/busses/i2c-riic.c                    |  6 +-
>   drivers/infiniband/hw/mlx4/qp.c                  |  2 +-
>   drivers/infiniband/hw/mlx5/main.c                |  2 +
>   drivers/iommu/intel-iommu.c                      |  8 ++-
>   drivers/irqchip/irq-crossbar.c                   |  8 +--
>   drivers/media/usb/dvb-usb/dibusb-common.c        | 16 +++++-
>   drivers/net/can/usb/ems_usb.c                    |  2 +
>   drivers/net/can/usb/esd_usb2.c                   |  2 +
>   drivers/net/can/usb/kvaser_usb.c                 | 13 +++--
>   drivers/net/can/usb/usb_8dev.c                   |  2 +
>   drivers/net/ethernet/broadcom/bnx2x/bnx2x_vfpf.c | 23 ++++----
>   drivers/net/phy/spi_ks8995.c                     |  1 +
>   drivers/scsi/lpfc/lpfc_els.c                     | 14 +++--
>   drivers/usb/gadget/configfs.c                    |  1 +
>   drivers/usb/gadget/function/f_fs.c               |  2 +-
>   drivers/usb/gadget/legacy/inode.c                |  4 +-
>   drivers/virtio/virtio.c                          |  2 +
>   fs/afs/cmservice.c                               |  3 +
>   fs/nfs/dir.c                                     |  2 +-
>   include/linux/genalloc.h                         |  3 +-
>   include/linux/sysfs.h                            |  6 ++
>   kernel/audit.c                                   | 10 ++--
>   kernel/debug/kdb/kdb_io.c                        |  2 +-
>   kernel/workqueue.c                               |  1 +
>   lib/asn1_decoder.c                               |  2 +
>   lib/dynamic_debug.c                              |  4 ++
>   lib/genalloc.c                                   | 10 ++--
>   net/ipv4/route.c                                 | 14 +++--
>   net/ipv6/af_inet6.c                              | 10 ++--
>   net/ipv6/sit.c                                   |  1 +
>   net/packet/af_packet.c                           |  5 ++
>   net/rds/rdma.c                                   |  2 +-
>   net/sctp/socket.c                                | 38 ++++++++-----
>   net/sunrpc/sched.c                               |  3 +-
>   net/xfrm/xfrm_policy.c                           |  1 +
>   security/keys/request_key.c                      | 46 +++++++++++++---
>   sound/core/pcm.c                                 |  2 +
>   sound/core/seq/seq_timer.c                       |  2 +-
>   sound/usb/mixer.c                                | 13 +++--
>   tools/hv/hv_kvp_daemon.c                         | 70 +++++-------------------
>   tools/testing/selftests/powerpc/harness.c        |  6 +-
>   61 files changed, 288 insertions(+), 200 deletions(-)
>
>
>

-- 
Mit freundlichen Grüssen / Regards

Sebastian Gottschall / CTO

NewMedia-NET GmbH - DD-WRT
Firmensitz:  Stubenwaldallee 21a, 64625 Bensheim
Registergericht: Amtsgericht Darmstadt, HRB 25473
Geschäftsführer: Peter Steinhäuser, Christian Scheele
http://www.dd-wrt.com
email: s.gottschall@dd-wrt.com
Tel.: +496251-582650 / Fax: +496251-5826565

^ permalink raw reply	[flat|nested] 64+ messages in thread

* Re: [PATCH 3.18 00/64] 3.18.88-stable review
  2017-12-15 11:22 ` [PATCH 3.18 00/64] 3.18.88-stable review Sebastian Gottschall
@ 2017-12-15 12:55   ` Greg Kroah-Hartman
  0 siblings, 0 replies; 64+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-15 12:55 UTC (permalink / raw)
  To: Sebastian Gottschall
  Cc: linux-kernel, torvalds, akpm, linux, shuahkh, patches,
	ben.hutchings, lkft-triage, stable

On Fri, Dec 15, 2017 at 12:22:06PM +0100, Sebastian Gottschall wrote:
> kernel.org/pub/linux/kernel/v3.x/stable-review/patch-3.18.88-rc1.gz
> 
> is missing.
> same for
> 4.4

Very odd.  I've pushed all of the -rc patches out again, maybe the
mirroring is taking a while to hit the public side of the server, let's
give it a few more minutes...

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 64+ messages in thread

* Re: [PATCH 3.18 00/64] 3.18.88-stable review
  2017-12-15  9:21 [PATCH 3.18 00/64] 3.18.88-stable review Greg Kroah-Hartman
                   ` (59 preceding siblings ...)
  2017-12-15 11:22 ` [PATCH 3.18 00/64] 3.18.88-stable review Sebastian Gottschall
@ 2017-12-15 17:39 ` Guenter Roeck
  2017-12-15 21:18 ` Shuah Khan
  61 siblings, 0 replies; 64+ messages in thread
From: Guenter Roeck @ 2017-12-15 17:39 UTC (permalink / raw)
  To: Greg Kroah-Hartman
  Cc: linux-kernel, torvalds, akpm, shuahkh, patches, ben.hutchings,
	lkft-triage, stable

On Fri, Dec 15, 2017 at 10:21:24AM +0100, Greg Kroah-Hartman wrote:
> This is the start of the stable review cycle for the 3.18.88 release.
> There are 64 patches in this series, all will be posted as a response
> to this one.  If anyone has any issues with these being applied, please
> let me know.
> 
> Responses should be made by Sun Dec 17 09:21:53 UTC 2017.
> Anything received after that time might be too late.
> 

Build results:
	total: 136 pass: 136 fail: 0
Qemu test results:
	total: 112 pass: 112 fail: 0

Details are available at http://kerneltests.org/builders.

Guenter

^ permalink raw reply	[flat|nested] 64+ messages in thread

* Re: [PATCH 3.18 00/64] 3.18.88-stable review
  2017-12-15  9:21 [PATCH 3.18 00/64] 3.18.88-stable review Greg Kroah-Hartman
                   ` (60 preceding siblings ...)
  2017-12-15 17:39 ` Guenter Roeck
@ 2017-12-15 21:18 ` Shuah Khan
  61 siblings, 0 replies; 64+ messages in thread
From: Shuah Khan @ 2017-12-15 21:18 UTC (permalink / raw)
  To: Greg Kroah-Hartman, linux-kernel
  Cc: torvalds, akpm, linux, patches, ben.hutchings, lkft-triage,
	stable, Shuah Khan

On 12/15/2017 02:21 AM, Greg Kroah-Hartman wrote:
> This is the start of the stable review cycle for the 3.18.88 release.
> There are 64 patches in this series, all will be posted as a response
> to this one.  If anyone has any issues with these being applied, please
> let me know.
> 
> Responses should be made by Sun Dec 17 09:21:53 UTC 2017.
> Anything received after that time might be too late.
> 
> The whole patch series can be found in one patch at:
> 	kernel.org/pub/linux/kernel/v3.x/stable-review/patch-3.18.88-rc1.gz
> or in the git tree and branch at:
>   git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-3.18.y
> and the diffstat can be found below.
> 
> thanks,
> 
> greg k-h
> 

Compiled and booted on my test system. No dmesg regressions.

thanks,
-- Shuah

^ permalink raw reply	[flat|nested] 64+ messages in thread

end of thread, other threads:[~2017-12-15 21:18 UTC | newest]

Thread overview: 64+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-12-15  9:21 [PATCH 3.18 00/64] 3.18.88-stable review Greg Kroah-Hartman
2017-12-15  9:21 ` [PATCH 3.18 01/64] can: kvaser_usb: free buf in error paths Greg Kroah-Hartman
2017-12-15  9:21 ` [PATCH 3.18 02/64] can: kvaser_usb: Fix comparison bug in kvaser_usb_read_bulk_callback() Greg Kroah-Hartman
2017-12-15  9:21 ` [PATCH 3.18 03/64] can: kvaser_usb: ratelimit errors if incomplete messages are received Greg Kroah-Hartman
2017-12-15  9:21 ` [PATCH 3.18 04/64] can: kvaser_usb: cancel urb on -EPIPE and -EPROTO Greg Kroah-Hartman
2017-12-15  9:21 ` [PATCH 3.18 05/64] can: ems_usb: " Greg Kroah-Hartman
2017-12-15  9:21 ` [PATCH 3.18 06/64] can: esd_usb2: " Greg Kroah-Hartman
2017-12-15  9:21 ` [PATCH 3.18 07/64] can: usb_8dev: " Greg Kroah-Hartman
2017-12-15  9:21 ` [PATCH 3.18 08/64] virtio: release virtio index when fail to device_register Greg Kroah-Hartman
2017-12-15  9:21 ` [PATCH 3.18 09/64] hv: kvp: Avoid reading past allocated blocks from KVP file Greg Kroah-Hartman
2017-12-15  9:21 ` [PATCH 3.18 10/64] isa: Prevent NULL dereference in isa_bus driver callbacks Greg Kroah-Hartman
2017-12-15  9:21 ` [PATCH 3.18 11/64] efi: Move some sysfs files to be read-only by root Greg Kroah-Hartman
2017-12-15  9:21 ` [PATCH 3.18 12/64] ASN.1: check for error from ASN1_OP_END__ACT actions Greg Kroah-Hartman
2017-12-15  9:21 ` [PATCH 3.18 13/64] KEYS: add missing permission check for request_key() destination Greg Kroah-Hartman
2017-12-15  9:21 ` [PATCH 3.18 14/64] X.509: reject invalid BIT STRING for subjectPublicKey Greg Kroah-Hartman
2017-12-15  9:21 ` [PATCH 3.18 15/64] x86/PCI: Make broadcom_postcore_init() check acpi_disabled Greg Kroah-Hartman
2017-12-15  9:21 ` [PATCH 3.18 16/64] ALSA: pcm: prevent UAF in snd_pcm_info Greg Kroah-Hartman
2017-12-15  9:21 ` [PATCH 3.18 17/64] ALSA: seq: Remove spurious WARN_ON() at timer check Greg Kroah-Hartman
2017-12-15  9:21 ` [PATCH 3.18 18/64] ALSA: usb-audio: Fix out-of-bound error Greg Kroah-Hartman
2017-12-15  9:21 ` [PATCH 3.18 19/64] ALSA: usb-audio: Add check return value for usb_string() Greg Kroah-Hartman
2017-12-15  9:21 ` [PATCH 3.18 20/64] iommu/vt-d: Fix scatterlist offset handling Greg Kroah-Hartman
2017-12-15  9:21 ` [PATCH 3.18 21/64] kdb: Fix handling of kallsyms_symbol_next() return value Greg Kroah-Hartman
2017-12-15  9:21 ` [PATCH 3.18 22/64] media: dvb: i2c transfers over usb cannot be done from stack Greg Kroah-Hartman
2017-12-15  9:21 ` [PATCH 3.18 23/64] arm64: KVM: fix VTTBR_BADDR_MASK BUG_ON off-by-one Greg Kroah-Hartman
2017-12-15  9:21 ` [PATCH 3.18 25/64] arm64: fpsimd: Prevent registers leaking from dead tasks Greg Kroah-Hartman
2017-12-15  9:21 ` [PATCH 3.18 27/64] sit: update frag_off info Greg Kroah-Hartman
2017-12-15  9:21 ` [PATCH 3.18 28/64] net/packet: fix a race in packet_bind() and packet_notifier() Greg Kroah-Hartman
2017-12-15  9:21 ` [PATCH 3.18 29/64] Revert "drm/armada: Fix compile fail" Greg Kroah-Hartman
2017-12-15  9:21 ` [PATCH 3.18 30/64] Revert "s390/kbuild: enable modversions for symbols exported from asm" Greg Kroah-Hartman
2017-12-15  9:21 ` [PATCH 3.18 31/64] selftest/powerpc: Fix false failures for skipped tests Greg Kroah-Hartman
2017-12-15  9:21 ` [PATCH 3.18 32/64] usb: gadget: configs: plug memory leak Greg Kroah-Hartman
2017-12-15  9:21 ` [PATCH 3.18 33/64] USB: gadgetfs: Fix a potential memory leak in dev_config() Greg Kroah-Hartman
2017-12-15  9:21 ` [PATCH 3.18 34/64] libata: drop WARN from protocol error in ata_sff_qc_issue() Greg Kroah-Hartman
2017-12-15  9:21 ` [PATCH 3.18 35/64] workqueue: trigger WARN if queue_delayed_work() is called with NULL @wq Greg Kroah-Hartman
2017-12-15  9:22 ` [PATCH 3.18 36/64] scsi: lpfc: Fix crash during Hardware error recovery on SLI3 adapters Greg Kroah-Hartman
2017-12-15  9:22 ` [PATCH 3.18 37/64] irqchip/crossbar: Fix incorrect type of register size Greg Kroah-Hartman
2017-12-15  9:22 ` [PATCH 3.18 39/64] arm: KVM: Survive unknown traps from guests Greg Kroah-Hartman
2017-12-15  9:22 ` [PATCH 3.18 40/64] spi_ks8995: fix "BUG: key accdaa28 not in .data!" Greg Kroah-Hartman
2017-12-15  9:22 ` [PATCH 3.18 41/64] bnx2x: fix possible overrun of VFPF multicast addresses array Greg Kroah-Hartman
2017-12-15  9:22 ` [PATCH 3.18 42/64] ipv6: reorder icmpv6_init() and ip6_mr_init() Greg Kroah-Hartman
2017-12-15  9:22 ` [PATCH 3.18 43/64] crypto: s5p-sss - Fix completing crypto request in IRQ handler Greg Kroah-Hartman
2017-12-15  9:22 ` [PATCH 3.18 44/64] i2c: riic: fix restart condition Greg Kroah-Hartman
2017-12-15  9:22 ` [PATCH 3.18 45/64] axonram: Fix gendisk handling Greg Kroah-Hartman
2017-12-15  9:22 ` [PATCH 3.18 48/64] route: also update fnhe_genid when updating a route cache Greg Kroah-Hartman
2017-12-15  9:22 ` [PATCH 3.18 49/64] route: update fnhe_expires for redirect when the fnhe exists Greg Kroah-Hartman
2017-12-15  9:22 ` [PATCH 3.18 50/64] lib/genalloc.c: make the avail variable an atomic_long_t Greg Kroah-Hartman
2017-12-15  9:22 ` [PATCH 3.18 51/64] dynamic-debug-howto: fix optional/omitted ending line number to be LARGE instead of 0 Greg Kroah-Hartman
2017-12-15  9:22 ` [PATCH 3.18 52/64] NFS: Fix a typo in nfs_rename() Greg Kroah-Hartman
2017-12-15  9:22 ` [PATCH 3.18 53/64] sunrpc: Fix rpc_task_begin trace point Greg Kroah-Hartman
2017-12-15  9:22 ` [PATCH 3.18 54/64] sparc64/mm: set fields in deferred pages Greg Kroah-Hartman
2017-12-15  9:22 ` [PATCH 3.18 55/64] sctp: do not free asoc when it is already dead in sctp_sendmsg Greg Kroah-Hartman
2017-12-15  9:22 ` [PATCH 3.18 56/64] sctp: use the right sk after waking up from wait_buf sleep Greg Kroah-Hartman
2017-12-15  9:22 ` [PATCH 3.18 57/64] atm: horizon: Fix irq release error Greg Kroah-Hartman
2017-12-15  9:22 ` [PATCH 3.18 58/64] xfrm: Copy policy family in clone_policy Greg Kroah-Hartman
2017-12-15  9:22 ` [PATCH 3.18 59/64] IB/mlx4: Increase maximal message size under UD QP Greg Kroah-Hartman
2017-12-15  9:22 ` [PATCH 3.18 60/64] IB/mlx5: Assign send CQ and recv CQ of UMR QP Greg Kroah-Hartman
2017-12-15  9:22 ` [PATCH 3.18 61/64] afs: Connect up the CB.ProbeUuid Greg Kroah-Hartman
2017-12-15  9:22 ` [PATCH 3.18 62/64] audit: ensure that audit=1 actually enables audit for PID 1 Greg Kroah-Hartman
2017-12-15  9:22 ` [PATCH 3.18 63/64] arm: KVM: Fix VTTBR_BADDR_MASK BUG_ON off-by-one Greg Kroah-Hartman
2017-12-15  9:22 ` [PATCH 3.18 64/64] usb: gadget: ffs: Forbid usb_ep_alloc_request from sleeping Greg Kroah-Hartman
2017-12-15 11:22 ` [PATCH 3.18 00/64] 3.18.88-stable review Sebastian Gottschall
2017-12-15 12:55   ` Greg Kroah-Hartman
2017-12-15 17:39 ` Guenter Roeck
2017-12-15 21:18 ` Shuah Khan

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.