linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 3.18 00/67] 3.18.85-stable review
@ 2017-11-28 10:18 Greg Kroah-Hartman
  2017-11-28 10:19 ` [PATCH 3.18 01/67] s390/disassembler: increase show_code buffer size Greg Kroah-Hartman
                   ` (66 more replies)
  0 siblings, 67 replies; 69+ messages in thread
From: Greg Kroah-Hartman @ 2017-11-28 10:18 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.85 release.
There are 67 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 Thu Nov 30 10:03:41 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.85-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.85-rc1

Juergen Gross <jgross@suse.com>
    xen: xenbus driver must not accept invalid transaction ids

Heiko Carstens <heiko.carstens@de.ibm.com>
    s390/kbuild: enable modversions for symbols exported from asm

Richard Fitzgerald <rf@opensource.wolfsonmicro.com>
    ASoC: wm_adsp: Don't overrun firmware file buffer when reading region data

Pan Bian <bianpan2016@163.com>
    btrfs: return the actual error value from from btrfs_uuid_tree_iterate

Florian Westphal <fw@strlen.de>
    netfilter: nf_tables: fix oob access

Pablo Neira Ayuso <pablo@netfilter.org>
    netfilter: nft_queue: use raw_smp_processor_id()

Pan Bian <bianpan2016@163.com>
    staging: iio: cdc: fix improper return value

Masashi Honma <masashi.honma@gmail.com>
    mac80211: Suppress NEW_PEER_CANDIDATE event if no room

Masashi Honma <masashi.honma@gmail.com>
    mac80211: Remove invalid flag operations in mesh TSF synchronization

Gabriele Mazzotta <gabriele.mzt@gmail.com>
    ALSA: hda - Apply ALC269_FIXUP_NO_SHUTUP on HDA_FIXUP_ACT_PROBE

Daniel Vetter <daniel.vetter@ffwll.ch>
    drm/armada: Fix compile fail

Thomas Preisner <thomas.preisner+linux@fau.de>
    net: 3com: typhoon: typhoon_init_one: fix incorrect return values

Thomas Preisner <thomas.preisner+linux@fau.de>
    net: 3com: typhoon: typhoon_init_one: make return values more specific

Bjorn Helgaas <bhelgaas@google.com>
    PCI: Apply _HPX settings only to relevant devices

Santosh Shilimkar <santosh.shilimkar@oracle.com>
    RDS: RDMA: return appropriate error on rdma map failures

Benjamin Poirier <bpoirier@suse.com>
    e1000e: Separate signaling for link check/link up

Benjamin Poirier <bpoirier@suse.com>
    e1000e: Fix return value test

Benjamin Poirier <bpoirier@suse.com>
    e1000e: Fix error path in link detection

Ben Hutchings <ben.hutchings@codethink.co.uk>
    iio: iio-trig-periodic-rtc: Free trigger resource correctly

Oliver Neukum <oneukum@suse.com>
    USB: fix buffer overflows with parsing CDC headers

Brent Taylor <motobud@gmail.com>
    mtd: nand: Fix writing mtdoops to nand flash.

Tuomas Tynkkynen <tuomas@tuxera.com>
    net/9p: Switch to wait_event_killable()

Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
    media: v4l2-ctrl: Fix flags field on Control events

Sean Young <sean@mess.org>
    media: rc: check for integer overflow

Michele Baldessari <michele@acksyn.org>
    media: Don't do DMA on stack for firmware upload in the AS102 driver

Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
    powerpc/signal: Properly handle return value from uprobe_deny_signal()

John David Anglin <dave.anglin@bell.net>
    parisc: Fix validity check of pointer size argument in new CAS implementation

Brian King <brking@linux.vnet.ibm.com>
    ixgbe: Fix skb list corruption on Power systems

Brian King <brking@linux.vnet.ibm.com>
    fm10k: Use smp_rmb rather than read_barrier_depends

Brian King <brking@linux.vnet.ibm.com>
    i40evf: Use smp_rmb rather than read_barrier_depends

Brian King <brking@linux.vnet.ibm.com>
    ixgbevf: Use smp_rmb rather than read_barrier_depends

Brian King <brking@linux.vnet.ibm.com>
    igbvf: Use smp_rmb rather than read_barrier_depends

Brian King <brking@linux.vnet.ibm.com>
    igb: Use smp_rmb rather than read_barrier_depends

Brian King <brking@linux.vnet.ibm.com>
    i40e: Use smp_rmb rather than read_barrier_depends

Wang YanQing <udknight@gmail.com>
    time: Always make sure wall_to_monotonic isn't positive

Johan Hovold <johan@kernel.org>
    NFC: fix device-allocation error return

Bart Van Assche <bart.vanassche@wdc.com>
    IB/srpt: Do not accept invalid initiator port names

Johan Hovold <johan@kernel.org>
    clk: ti: dra7-atl-clock: fix child-node lookups

Peter Ujfalusi <peter.ujfalusi@ti.com>
    clk: ti: dra7-atl-clock: Fix of_node reference counting

Paolo Bonzini <pbonzini@redhat.com>
    KVM: SVM: obey guest PAT

Ladi Prosek <lprosek@redhat.com>
    KVM: nVMX: set IDTR and GDTR limits when loading L1 host state

Nicholas Bellinger <nab@linux-iscsi.org>
    iscsi-target: Fix non-immediate TMR reference leak

Tuomas Tynkkynen <tuomas@tuxera.com>
    fs/9p: Compare qid.path in v9fs_test_inode

Takashi Iwai <tiwai@suse.de>
    ALSA: timer: Remove kernel warning at compat ioctl error paths

Takashi Iwai <tiwai@suse.de>
    ALSA: usb-audio: Add sanity checks in v2 clock parsers

Takashi Iwai <tiwai@suse.de>
    ALSA: usb-audio: Fix potential out-of-bound access at parsing SU

Takashi Iwai <tiwai@suse.de>
    ALSA: usb-audio: Add sanity checks to FE parser

Theodore Ts'o <tytso@mit.edu>
    ext4: fix interaction between i_size, fallocate, and delalloc after a crash

Andrew Elble <aweits@rit.edu>
    nfsd: deal with revoked delegations appropriately

Chuck Lever <chuck.lever@oracle.com>
    nfs: Fix ugly referral attributes

Joshua Watt <jpewhacker@gmail.com>
    NFS: Fix typo in nomigration mount option

Arnd Bergmann <arnd@arndb.de>
    isofs: fix timestamps beyond 2027

Coly Li <colyli@suse.de>
    bcache: check ca->alloc_thread initialized before wake up it

Dan Carpenter <dan.carpenter@oracle.com>
    eCryptfs: use after free in ecryptfs_release_messaging()

Andreas Rohner <andreas.rohner@gmx.net>
    nilfs2: fix race condition that causes file system corruption

NeilBrown <neilb@suse.com>
    autofs: don't fail mount for transient error

Mirko Parthey <mirko.parthey@web.de>
    MIPS: BCM47XX: Fix LED inversion for WRT54GSv1

Maciej W. Rozycki <macro@mips.com>
    MIPS: Fix an n32 core file generation regset support regression

Hou Tao <houtao1@huawei.com>
    dm: fix race between dm_get_from_kobject() and __dm_destroy()

Eric Biggers <ebiggers@google.com>
    dm bufio: fix integer overflow when limiting maximum cache size

Vijendar Mukunda <Vijendar.Mukunda@amd.com>
    ALSA: hda: Add Raven PCI ID

Philip Derrin <philip@cog.systems>
    ARM: 8721/1: mm: dump: check hardware RO bit for LPAE

Masami Hiramatsu <mhiramat@kernel.org>
    x86/decoder: Add new TEST instruction pattern

Eric Biggers <ebiggers@google.com>
    lib/mpi: call cond_resched() from mpi_powm() loop

Paul E. McKenney <paulmck@linux.vnet.ibm.com>
    sched: Make resched_cpu() unconditional

WANG Cong <xiyou.wangcong@gmail.com>
    ipv6: only call ip6_route_dev_notify() once for NETDEV_UNREGISTER

Vasily Gorbik <gor@linux.vnet.ibm.com>
    s390/disassembler: increase show_code buffer size


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

Diffstat:

 Makefile                                           |  4 ++--
 arch/arm/mm/dump.c                                 |  4 ++--
 arch/mips/bcm47xx/leds.c                           |  2 +-
 arch/mips/kernel/ptrace.c                          | 17 +++++++++++++
 arch/parisc/kernel/syscall.S                       |  6 ++---
 arch/powerpc/kernel/signal.c                       |  2 +-
 arch/s390/include/asm/asm-prototypes.h             |  8 +++++++
 arch/s390/kernel/dis.c                             |  4 ++--
 arch/x86/kvm/svm.c                                 |  7 ++++++
 arch/x86/kvm/vmx.c                                 |  2 ++
 arch/x86/lib/x86-opcode-map.txt                    |  2 +-
 drivers/clk/ti/clk-dra7-atl.c                      |  3 ++-
 drivers/gpu/drm/armada/Makefile                    |  2 ++
 drivers/infiniband/ulp/srpt/ib_srpt.c              |  9 ++++---
 drivers/md/bcache/alloc.c                          |  3 ++-
 drivers/md/dm-bufio.c                              | 15 +++++-------
 drivers/md/dm.c                                    | 12 ++++++----
 drivers/media/rc/ir-lirc-codec.c                   |  9 ++++---
 drivers/media/usb/as102/as102_fw.c                 | 28 +++++++++++++---------
 drivers/media/v4l2-core/v4l2-ctrls.c               | 16 +++++++++----
 drivers/mtd/nand/nand_base.c                       |  9 ++++---
 drivers/net/ethernet/3com/typhoon.c                | 25 ++++++++++---------
 drivers/net/ethernet/intel/e1000e/mac.c            | 11 ++++++---
 drivers/net/ethernet/intel/e1000e/netdev.c         |  4 ++--
 drivers/net/ethernet/intel/e1000e/phy.c            |  7 +++---
 drivers/net/ethernet/intel/fm10k/fm10k_main.c      |  2 +-
 drivers/net/ethernet/intel/i40e/i40e_main.c        |  2 +-
 drivers/net/ethernet/intel/i40e/i40e_txrx.c        |  2 +-
 drivers/net/ethernet/intel/i40evf/i40e_txrx.c      |  2 +-
 drivers/net/ethernet/intel/igb/igb_main.c          |  2 +-
 drivers/net/ethernet/intel/igbvf/netdev.c          |  2 +-
 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c      |  2 +-
 drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c  |  2 +-
 drivers/net/usb/cdc_ether.c                        |  9 ++++++-
 drivers/pci/probe.c                                | 15 ++++++++++--
 drivers/staging/iio/cdc/ad7150.c                   |  2 +-
 .../staging/iio/trigger/iio-trig-periodic-rtc.c    |  6 ++---
 drivers/target/iscsi/iscsi_target.c                |  8 ++++---
 drivers/usb/class/cdc-acm.c                        |  2 +-
 drivers/usb/class/cdc-wdm.c                        |  2 ++
 drivers/xen/xenbus/xenbus_dev_frontend.c           |  2 +-
 fs/9p/vfs_inode.c                                  |  3 +++
 fs/9p/vfs_inode_dotl.c                             |  3 +++
 fs/autofs4/waitq.c                                 | 15 +++++++++++-
 fs/btrfs/uuid-tree.c                               |  4 +---
 fs/ecryptfs/messaging.c                            |  7 +++---
 fs/ext4/extents.c                                  |  6 +++--
 fs/isofs/isofs.h                                   |  2 +-
 fs/isofs/rock.h                                    |  2 +-
 fs/isofs/util.c                                    |  2 +-
 fs/nfs/nfs4proc.c                                  | 18 +++++++-------
 fs/nfs/super.c                                     |  2 +-
 fs/nfsd/nfs4state.c                                | 25 ++++++++++++++++++-
 fs/nilfs2/segment.c                                |  6 +++--
 kernel/sched/core.c                                |  3 +--
 kernel/time/timekeeping.c                          | 13 +++++++---
 lib/mpi/mpi-pow.c                                  |  2 ++
 net/9p/client.c                                    |  3 +--
 net/9p/trans_virtio.c                              | 13 +++++-----
 net/ipv6/route.c                                   |  6 ++++-
 net/mac80211/ieee80211_i.h                         |  1 -
 net/mac80211/mesh.c                                |  3 ---
 net/mac80211/mesh_plink.c                          | 14 ++++++-----
 net/mac80211/mesh_sync.c                           | 11 ---------
 net/netfilter/nf_tables_api.c                      |  2 +-
 net/netfilter/nft_queue.c                          |  2 +-
 net/nfc/core.c                                     |  2 +-
 net/rds/send.c                                     | 11 ++++++++-
 sound/core/timer_compat.c                          | 12 +++++-----
 sound/pci/hda/hda_intel.c                          |  3 +++
 sound/pci/hda/patch_realtek.c                      |  2 +-
 sound/soc/codecs/wm_adsp.c                         | 25 ++++++++++++++++++-
 sound/usb/clock.c                                  |  9 ++++---
 sound/usb/mixer.c                                  | 15 +++++++++++-
 74 files changed, 350 insertions(+), 170 deletions(-)

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

* [PATCH 3.18 01/67] s390/disassembler: increase show_code buffer size
  2017-11-28 10:18 [PATCH 3.18 00/67] 3.18.85-stable review Greg Kroah-Hartman
@ 2017-11-28 10:19 ` Greg Kroah-Hartman
  2017-11-28 10:19 ` [PATCH 3.18 02/67] ipv6: only call ip6_route_dev_notify() once for NETDEV_UNREGISTER Greg Kroah-Hartman
                   ` (65 subsequent siblings)
  66 siblings, 0 replies; 69+ messages in thread
From: Greg Kroah-Hartman @ 2017-11-28 10:19 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Vasily Gorbik, Martin Schwidefsky

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

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

From: Vasily Gorbik <gor@linux.vnet.ibm.com>

commit b192571d1ae375e0bbe0aa3ccfa1a3c3704454b9 upstream.

Current buffer size of 64 is too small. objdump shows that there are
instructions which would require up to 75 bytes buffer (with current
formating). 128 bytes "ought to be enough for anybody".

Also replaces 8 spaces with a single tab to reduce the memory footprint.

Fixes the following KASAN finding:

BUG: KASAN: stack-out-of-bounds in number+0x3fe/0x538
Write of size 1 at addr 000000005a4a75a0 by task bash/1282

CPU: 1 PID: 1282 Comm: bash Not tainted 4.14.0+ #215
Hardware name: IBM 2964 N96 702 (z/VM 6.4.0)
Call Trace:
([<000000000011eeb6>] show_stack+0x56/0x88)
 [<0000000000e1ce1a>] dump_stack+0x15a/0x1b0
 [<00000000004e2994>] print_address_description+0xf4/0x288
 [<00000000004e2cf2>] kasan_report+0x13a/0x230
 [<0000000000e38ae6>] number+0x3fe/0x538
 [<0000000000e3dfe4>] vsnprintf+0x194/0x948
 [<0000000000e3ea42>] sprintf+0xa2/0xb8
 [<00000000001198dc>] print_insn+0x374/0x500
 [<0000000000119346>] show_code+0x4ee/0x538
 [<000000000011f234>] show_registers+0x34c/0x388
 [<000000000011f2ae>] show_regs+0x3e/0xa8
 [<000000000011f502>] die+0x1ea/0x2e8
 [<0000000000138f0e>] do_no_context+0x106/0x168
 [<0000000000139a1a>] do_protection_exception+0x4da/0x7d0
 [<0000000000e55914>] pgm_check_handler+0x16c/0x1c0
 [<000000000090639e>] sysrq_handle_crash+0x46/0x58
([<0000000000000007>] 0x7)
 [<00000000009073fa>] __handle_sysrq+0x102/0x218
 [<0000000000907c06>] write_sysrq_trigger+0xd6/0x100
 [<000000000061d67a>] proc_reg_write+0xb2/0x128
 [<0000000000520be6>] __vfs_write+0xee/0x368
 [<0000000000521222>] vfs_write+0x21a/0x278
 [<000000000052156a>] SyS_write+0xda/0x178
 [<0000000000e555cc>] system_call+0xc4/0x270

The buggy address belongs to the page:
page:000003d1016929c0 count:0 mapcount:0 mapping:          (null) index:0x0
flags: 0x0()
raw: 0000000000000000 0000000000000000 0000000000000000 ffffffff00000000
raw: 0000000000000100 0000000000000200 0000000000000000 0000000000000000
page dumped because: kasan: bad access detected

Memory state around the buggy address:
 000000005a4a7480: 00 00 00 00 00 00 00 00 00 00 00 00 f1 f1 f1 f1
 000000005a4a7500: 00 00 00 00 00 00 00 00 f2 f2 f2 f2 00 00 00 00
>000000005a4a7580: 00 00 00 00 f3 f3 f3 f3 00 00 00 00 00 00 00 00
                               ^
 000000005a4a7600: 00 00 00 00 00 00 00 00 00 00 f1 f1 f1 f1 f8 f8
 000000005a4a7680: f2 f2 f2 f2 f2 f2 f8 f8 f2 f2 f3 f3 f3 f3 00 00
==================================================================

Signed-off-by: Vasily Gorbik <gor@linux.vnet.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 arch/s390/kernel/dis.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

--- a/arch/s390/kernel/dis.c
+++ b/arch/s390/kernel/dis.c
@@ -1997,7 +1997,7 @@ void show_code(struct pt_regs *regs)
 {
 	char *mode = user_mode(regs) ? "User" : "Krnl";
 	unsigned char code[64];
-	char buffer[64], *ptr;
+	char buffer[128], *ptr;
 	mm_segment_t old_fs;
 	unsigned long addr;
 	int start, end, opsize, hops, i;
@@ -2060,7 +2060,7 @@ void show_code(struct pt_regs *regs)
 		start += opsize;
 		printk(buffer);
 		ptr = buffer;
-		ptr += sprintf(ptr, "\n          ");
+		ptr += sprintf(ptr, "\n\t  ");
 		hops++;
 	}
 	printk("\n");

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

* [PATCH 3.18 02/67] ipv6: only call ip6_route_dev_notify() once for NETDEV_UNREGISTER
  2017-11-28 10:18 [PATCH 3.18 00/67] 3.18.85-stable review Greg Kroah-Hartman
  2017-11-28 10:19 ` [PATCH 3.18 01/67] s390/disassembler: increase show_code buffer size Greg Kroah-Hartman
@ 2017-11-28 10:19 ` Greg Kroah-Hartman
  2017-11-28 10:19 ` [PATCH 3.18 03/67] sched: Make resched_cpu() unconditional Greg Kroah-Hartman
                   ` (64 subsequent siblings)
  66 siblings, 0 replies; 69+ messages in thread
From: Greg Kroah-Hartman @ 2017-11-28 10:19 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, jeffy, David Ahern, Cong Wang,
	David S. Miller, Konstantin Khlebnikov

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

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

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

commit 76da0704507bbc51875013f6557877ab308cfd0a upstream.

In commit 242d3a49a2a1 ("ipv6: reorder ip6_route_dev_notifier after ipv6_dev_notf")
I assumed NETDEV_REGISTER and NETDEV_UNREGISTER are paired,
unfortunately, as reported by jeffy, netdev_wait_allrefs()
could rebroadcast NETDEV_UNREGISTER event until all refs are
gone.

We have to add an additional check to avoid this corner case.
For netdev_wait_allrefs() dev->reg_state is NETREG_UNREGISTERED,
for dev_change_net_namespace(), dev->reg_state is
NETREG_REGISTERED. So check for dev->reg_state != NETREG_UNREGISTERED.

Fixes: 242d3a49a2a1 ("ipv6: reorder ip6_route_dev_notifier after ipv6_dev_notf")
Reported-by: jeffy <jeffy.chen@rock-chips.com>
Cc: David Ahern <dsahern@gmail.com>
Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com>
Acked-by: David Ahern <dsahern@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Cc: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 net/ipv6/route.c |    6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

--- a/net/ipv6/route.c
+++ b/net/ipv6/route.c
@@ -2827,7 +2827,11 @@ static int ip6_route_dev_notify(struct n
 		net->ipv6.ip6_blk_hole_entry->dst.dev = dev;
 		net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev);
 #endif
-	 } else if (event == NETDEV_UNREGISTER) {
+	 } else if (event == NETDEV_UNREGISTER &&
+		    dev->reg_state != NETREG_UNREGISTERED) {
+		/* NETDEV_UNREGISTER could be fired for multiple times by
+		 * netdev_wait_allrefs(). Make sure we only call this once.
+		 */
 		in6_dev_put(net->ipv6.ip6_null_entry->rt6i_idev);
 #ifdef CONFIG_IPV6_MULTIPLE_TABLES
 		in6_dev_put(net->ipv6.ip6_prohibit_entry->rt6i_idev);

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

* [PATCH 3.18 03/67] sched: Make resched_cpu() unconditional
  2017-11-28 10:18 [PATCH 3.18 00/67] 3.18.85-stable review Greg Kroah-Hartman
  2017-11-28 10:19 ` [PATCH 3.18 01/67] s390/disassembler: increase show_code buffer size Greg Kroah-Hartman
  2017-11-28 10:19 ` [PATCH 3.18 02/67] ipv6: only call ip6_route_dev_notify() once for NETDEV_UNREGISTER Greg Kroah-Hartman
@ 2017-11-28 10:19 ` Greg Kroah-Hartman
  2017-11-28 10:19 ` [PATCH 3.18 04/67] lib/mpi: call cond_resched() from mpi_powm() loop Greg Kroah-Hartman
                   ` (63 subsequent siblings)
  66 siblings, 0 replies; 69+ messages in thread
From: Greg Kroah-Hartman @ 2017-11-28 10:19 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Neeraj Upadhyay, Paul E. McKenney,
	Steven Rostedt (VMware), Peter Zijlstra (Intel)

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

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

From: Paul E. McKenney <paulmck@linux.vnet.ibm.com>

commit 7c2102e56a3f7d85b5d8f33efbd7aecc1f36fdd8 upstream.

The current implementation of synchronize_sched_expedited() incorrectly
assumes that resched_cpu() is unconditional, which it is not.  This means
that synchronize_sched_expedited() can hang when resched_cpu()'s trylock
fails as follows (analysis by Neeraj Upadhyay):

o	CPU1 is waiting for expedited wait to complete:

	sync_rcu_exp_select_cpus
	     rdp->exp_dynticks_snap & 0x1   // returns 1 for CPU5
	     IPI sent to CPU5

	synchronize_sched_expedited_wait
		 ret = swait_event_timeout(rsp->expedited_wq,
					   sync_rcu_preempt_exp_done(rnp_root),
					   jiffies_stall);

	expmask = 0x20, CPU 5 in idle path (in cpuidle_enter())

o	CPU5 handles IPI and fails to acquire rq lock.

	Handles IPI
	     sync_sched_exp_handler
		 resched_cpu
		     returns while failing to try lock acquire rq->lock
		 need_resched is not set

o	CPU5 calls  rcu_idle_enter() and as need_resched is not set, goes to
	idle (schedule() is not called).

o	CPU 1 reports RCU stall.

Given that resched_cpu() is now used only by RCU, this commit fixes the
assumption by making resched_cpu() unconditional.

Reported-by: Neeraj Upadhyay <neeraju@codeaurora.org>
Suggested-by: Neeraj Upadhyay <neeraju@codeaurora.org>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Acked-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 kernel/sched/core.c |    3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -632,8 +632,7 @@ void resched_cpu(int cpu)
 	struct rq *rq = cpu_rq(cpu);
 	unsigned long flags;
 
-	if (!raw_spin_trylock_irqsave(&rq->lock, flags))
-		return;
+	raw_spin_lock_irqsave(&rq->lock, flags);
 	resched_curr(rq);
 	raw_spin_unlock_irqrestore(&rq->lock, flags);
 }

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

* [PATCH 3.18 04/67] lib/mpi: call cond_resched() from mpi_powm() loop
  2017-11-28 10:18 [PATCH 3.18 00/67] 3.18.85-stable review Greg Kroah-Hartman
                   ` (2 preceding siblings ...)
  2017-11-28 10:19 ` [PATCH 3.18 03/67] sched: Make resched_cpu() unconditional Greg Kroah-Hartman
@ 2017-11-28 10:19 ` Greg Kroah-Hartman
  2017-11-28 10:19 ` [PATCH 3.18 05/67] x86/decoder: Add new TEST instruction pattern Greg Kroah-Hartman
                   ` (62 subsequent siblings)
  66 siblings, 0 replies; 69+ messages in thread
From: Greg Kroah-Hartman @ 2017-11-28 10:19 UTC (permalink / raw)
  To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Eric Biggers, Herbert Xu

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

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

From: Eric Biggers <ebiggers@google.com>

commit 1d9ddde12e3c9bab7f3d3484eb9446315e3571ca upstream.

On a non-preemptible kernel, if KEYCTL_DH_COMPUTE is called with the
largest permitted inputs (16384 bits), the kernel spends 10+ seconds
doing modular exponentiation in mpi_powm() without rescheduling.  If all
threads do it, it locks up the system.  Moreover, it can cause
rcu_sched-stall warnings.

Notwithstanding the insanity of doing this calculation in kernel mode
rather than in userspace, fix it by calling cond_resched() as each bit
from the exponent is processed.  It's still noninterruptible, but at
least it's preemptible now.

Do the cond_resched() once per bit rather than once per MPI limb because
each limb might still easily take 100+ milliseconds on slow CPUs.

Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

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

--- a/lib/mpi/mpi-pow.c
+++ b/lib/mpi/mpi-pow.c
@@ -26,6 +26,7 @@
  *	 however I decided to publish this code under the plain GPL.
  */
 
+#include <linux/sched.h>
 #include <linux/string.h>
 #include "mpi-internal.h"
 #include "longlong.h"
@@ -256,6 +257,7 @@ int mpi_powm(MPI res, MPI base, MPI exp,
 				}
 				e <<= 1;
 				c--;
+				cond_resched();
 			}
 
 			i--;

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

* [PATCH 3.18 05/67] x86/decoder: Add new TEST instruction pattern
  2017-11-28 10:18 [PATCH 3.18 00/67] 3.18.85-stable review Greg Kroah-Hartman
                   ` (3 preceding siblings ...)
  2017-11-28 10:19 ` [PATCH 3.18 04/67] lib/mpi: call cond_resched() from mpi_powm() loop Greg Kroah-Hartman
@ 2017-11-28 10:19 ` Greg Kroah-Hartman
  2017-11-28 10:19 ` [PATCH 3.18 06/67] ARM: 8721/1: mm: dump: check hardware RO bit for LPAE Greg Kroah-Hartman
                   ` (61 subsequent siblings)
  66 siblings, 0 replies; 69+ messages in thread
From: Greg Kroah-Hartman @ 2017-11-28 10:19 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, kbuild test robot, Masami Hiramatsu,
	H. Peter Anvin, Linus Torvalds, Peter Zijlstra, Thomas Gleixner,
	Ingo Molnar

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

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

From: Masami Hiramatsu <mhiramat@kernel.org>

commit 12a78d43de767eaf8fb272facb7a7b6f2dc6a9df upstream.

The kbuild test robot reported this build warning:

  Warning: arch/x86/tools/test_get_len found difference at <jump_table>:ffffffff8103dd2c

  Warning: ffffffff8103dd82: f6 09 d8 testb $0xd8,(%rcx)
  Warning: objdump says 3 bytes, but insn_get_length() says 2
  Warning: decoded and checked 1569014 instructions with 1 warnings

This sequence seems to be a new instruction not in the opcode map in the Intel SDM.

The instruction sequence is "F6 09 d8", means Group3(F6), MOD(00)REG(001)RM(001), and 0xd8.
Intel SDM vol2 A.4 Table A-6 said the table index in the group is "Encoding of Bits 5,4,3 of
the ModR/M Byte (bits 2,1,0 in parenthesis)"

In that table, opcodes listed by the index REG bits as:

  000         001       010 011  100        101        110         111
 TEST Ib/Iz,(undefined),NOT,NEG,MUL AL/rAX,IMUL AL/rAX,DIV AL/rAX,IDIV AL/rAX

So, it seems TEST Ib is assigned to 001.

Add the new pattern.

Reported-by: kbuild test robot <fengguang.wu@intel.com>
Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 arch/x86/lib/x86-opcode-map.txt |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/arch/x86/lib/x86-opcode-map.txt
+++ b/arch/x86/lib/x86-opcode-map.txt
@@ -814,7 +814,7 @@ EndTable
 
 GrpTable: Grp3_1
 0: TEST Eb,Ib
-1:
+1: TEST Eb,Ib
 2: NOT Eb
 3: NEG Eb
 4: MUL AL,Eb

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

* [PATCH 3.18 06/67] ARM: 8721/1: mm: dump: check hardware RO bit for LPAE
  2017-11-28 10:18 [PATCH 3.18 00/67] 3.18.85-stable review Greg Kroah-Hartman
                   ` (4 preceding siblings ...)
  2017-11-28 10:19 ` [PATCH 3.18 05/67] x86/decoder: Add new TEST instruction pattern Greg Kroah-Hartman
@ 2017-11-28 10:19 ` Greg Kroah-Hartman
  2017-11-28 10:19 ` [PATCH 3.18 07/67] ALSA: hda: Add Raven PCI ID Greg Kroah-Hartman
                   ` (60 subsequent siblings)
  66 siblings, 0 replies; 69+ messages in thread
From: Greg Kroah-Hartman @ 2017-11-28 10:19 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Philip Derrin, Neil Dick, Kees Cook,
	Russell King

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

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

From: Philip Derrin <philip@cog.systems>

commit 3b0c0c922ff4be275a8beb87ce5657d16f355b54 upstream.

When CONFIG_ARM_LPAE is set, the PMD dump relies on the software
read-only bit to determine whether a page is writable. This
concealed a bug which left the kernel text section writable
(AP2=0) while marked read-only in the software bit.

In a kernel with the AP2 bug, the dump looks like this:

    ---[ Kernel Mapping ]---
    0xc0000000-0xc0200000           2M RW NX SHD
    0xc0200000-0xc0600000           4M ro x  SHD
    0xc0600000-0xc0800000           2M ro NX SHD
    0xc0800000-0xc4800000          64M RW NX SHD

The fix is to check that the software and hardware bits are both
set before displaying "ro". The dump then shows the true perms:

    ---[ Kernel Mapping ]---
    0xc0000000-0xc0200000           2M RW NX SHD
    0xc0200000-0xc0600000           4M RW x  SHD
    0xc0600000-0xc0800000           2M RW NX SHD
    0xc0800000-0xc4800000          64M RW NX SHD

Fixes: ded947798469 ("ARM: 8109/1: mm: Modify pte_write and pmd_write logic for LPAE")
Signed-off-by: Philip Derrin <philip@cog.systems>
Tested-by: Neil Dick <neil@cog.systems>
Reviewed-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 arch/arm/mm/dump.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

--- a/arch/arm/mm/dump.c
+++ b/arch/arm/mm/dump.c
@@ -126,8 +126,8 @@ static const struct prot_bits section_bi
 		.val	= PMD_SECT_USER,
 		.set	= "USR",
 	}, {
-		.mask	= L_PMD_SECT_RDONLY,
-		.val	= L_PMD_SECT_RDONLY,
+		.mask	= L_PMD_SECT_RDONLY | PMD_SECT_AP2,
+		.val	= L_PMD_SECT_RDONLY | PMD_SECT_AP2,
 		.set	= "ro",
 		.clear	= "RW",
 #elif __LINUX_ARM_ARCH__ >= 6

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

* [PATCH 3.18 07/67] ALSA: hda: Add Raven PCI ID
  2017-11-28 10:18 [PATCH 3.18 00/67] 3.18.85-stable review Greg Kroah-Hartman
                   ` (5 preceding siblings ...)
  2017-11-28 10:19 ` [PATCH 3.18 06/67] ARM: 8721/1: mm: dump: check hardware RO bit for LPAE Greg Kroah-Hartman
@ 2017-11-28 10:19 ` Greg Kroah-Hartman
  2017-11-28 10:19 ` [PATCH 3.18 08/67] dm bufio: fix integer overflow when limiting maximum cache size Greg Kroah-Hartman
                   ` (59 subsequent siblings)
  66 siblings, 0 replies; 69+ messages in thread
From: Greg Kroah-Hartman @ 2017-11-28 10:19 UTC (permalink / raw)
  To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Vijendar Mukunda, Takashi Iwai

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

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

From: Vijendar Mukunda <Vijendar.Mukunda@amd.com>

commit 9ceace3c9c18c67676e75141032a65a8e01f9a7a upstream.

This commit adds PCI ID for Raven platform

Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 sound/pci/hda/hda_intel.c |    3 +++
 1 file changed, 3 insertions(+)

--- a/sound/pci/hda/hda_intel.c
+++ b/sound/pci/hda/hda_intel.c
@@ -2092,6 +2092,9 @@ static const struct pci_device_id azx_id
 	/* AMD Hudson */
 	{ PCI_DEVICE(0x1022, 0x780d),
 	  .driver_data = AZX_DRIVER_GENERIC | AZX_DCAPS_PRESET_ATI_SB },
+	/* AMD Raven */
+	{ PCI_DEVICE(0x1022, 0x15e3),
+	  .driver_data = AZX_DRIVER_GENERIC | AZX_DCAPS_PRESET_ATI_SB },
 	/* ATI HDMI */
 	{ PCI_DEVICE(0x1002, 0x0002),
 	  .driver_data = AZX_DRIVER_ATIHDMI_NS | AZX_DCAPS_PRESET_ATI_HDMI_NS },

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

* [PATCH 3.18 08/67] dm bufio: fix integer overflow when limiting maximum cache size
  2017-11-28 10:18 [PATCH 3.18 00/67] 3.18.85-stable review Greg Kroah-Hartman
                   ` (6 preceding siblings ...)
  2017-11-28 10:19 ` [PATCH 3.18 07/67] ALSA: hda: Add Raven PCI ID Greg Kroah-Hartman
@ 2017-11-28 10:19 ` Greg Kroah-Hartman
  2017-11-28 10:19 ` [PATCH 3.18 09/67] dm: fix race between dm_get_from_kobject() and __dm_destroy() Greg Kroah-Hartman
                   ` (58 subsequent siblings)
  66 siblings, 0 replies; 69+ messages in thread
From: Greg Kroah-Hartman @ 2017-11-28 10:19 UTC (permalink / raw)
  To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Eric Biggers, Mike Snitzer

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

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

From: Eric Biggers <ebiggers@google.com>

commit 74d4108d9e681dbbe4a2940ed8fdff1f6868184c upstream.

The default max_cache_size_bytes for dm-bufio is meant to be the lesser
of 25% of the size of the vmalloc area and 2% of the size of lowmem.
However, on 32-bit systems the intermediate result in the expression

    (VMALLOC_END - VMALLOC_START) * DM_BUFIO_VMALLOC_PERCENT / 100

overflows, causing the wrong result to be computed.  For example, on a
32-bit system where the vmalloc area is 520093696 bytes, the result is
1174405 rather than the expected 130023424, which makes the maximum
cache size much too small (far less than 2% of lowmem).  This causes
severe performance problems for dm-verity users on affected systems.

Fix this by using mult_frac() to correctly multiply by a percentage.  Do
this for all places in dm-bufio that multiply by a percentage.  Also
replace (VMALLOC_END - VMALLOC_START) with VMALLOC_TOTAL, which contrary
to the comment is now defined in include/linux/vmalloc.h.

Depends-on: 9993bc635 ("sched/x86: Fix overflow in cyc2ns_offset")
Fixes: 95d402f057f2 ("dm: add bufio")
Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/md/dm-bufio.c |   15 ++++++---------
 1 file changed, 6 insertions(+), 9 deletions(-)

--- a/drivers/md/dm-bufio.c
+++ b/drivers/md/dm-bufio.c
@@ -876,7 +876,8 @@ static void __get_memory_limit(struct dm
 		buffers = c->minimum_buffers;
 
 	*limit_buffers = buffers;
-	*threshold_buffers = buffers * DM_BUFIO_WRITEBACK_PERCENT / 100;
+	*threshold_buffers = mult_frac(buffers,
+				       DM_BUFIO_WRITEBACK_PERCENT, 100);
 }
 
 /*
@@ -1764,19 +1765,15 @@ static int __init dm_bufio_init(void)
 	memset(&dm_bufio_caches, 0, sizeof dm_bufio_caches);
 	memset(&dm_bufio_cache_names, 0, sizeof dm_bufio_cache_names);
 
-	mem = (__u64)((totalram_pages - totalhigh_pages) *
-		      DM_BUFIO_MEMORY_PERCENT / 100) << PAGE_SHIFT;
+	mem = (__u64)mult_frac(totalram_pages - totalhigh_pages,
+			       DM_BUFIO_MEMORY_PERCENT, 100) << PAGE_SHIFT;
 
 	if (mem > ULONG_MAX)
 		mem = ULONG_MAX;
 
 #ifdef CONFIG_MMU
-	/*
-	 * Get the size of vmalloc space the same way as VMALLOC_TOTAL
-	 * in fs/proc/internal.h
-	 */
-	if (mem > (VMALLOC_END - VMALLOC_START) * DM_BUFIO_VMALLOC_PERCENT / 100)
-		mem = (VMALLOC_END - VMALLOC_START) * DM_BUFIO_VMALLOC_PERCENT / 100;
+	if (mem > mult_frac(VMALLOC_TOTAL, DM_BUFIO_VMALLOC_PERCENT, 100))
+		mem = mult_frac(VMALLOC_TOTAL, DM_BUFIO_VMALLOC_PERCENT, 100);
 #endif
 
 	dm_bufio_default_cache_size = mem;

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

* [PATCH 3.18 09/67] dm: fix race between dm_get_from_kobject() and __dm_destroy()
  2017-11-28 10:18 [PATCH 3.18 00/67] 3.18.85-stable review Greg Kroah-Hartman
                   ` (7 preceding siblings ...)
  2017-11-28 10:19 ` [PATCH 3.18 08/67] dm bufio: fix integer overflow when limiting maximum cache size Greg Kroah-Hartman
@ 2017-11-28 10:19 ` Greg Kroah-Hartman
  2017-11-28 10:19 ` [PATCH 3.18 10/67] MIPS: Fix an n32 core file generation regset support regression Greg Kroah-Hartman
                   ` (57 subsequent siblings)
  66 siblings, 0 replies; 69+ messages in thread
From: Greg Kroah-Hartman @ 2017-11-28 10:19 UTC (permalink / raw)
  To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Hou Tao, Mike Snitzer

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

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

From: Hou Tao <houtao1@huawei.com>

commit b9a41d21dceadf8104812626ef85dc56ee8a60ed upstream.

The following BUG_ON was hit when testing repeat creation and removal of
DM devices:

    kernel BUG at drivers/md/dm.c:2919!
    CPU: 7 PID: 750 Comm: systemd-udevd Not tainted 4.1.44
    Call Trace:
     [<ffffffff81649e8b>] dm_get_from_kobject+0x34/0x3a
     [<ffffffff81650ef1>] dm_attr_show+0x2b/0x5e
     [<ffffffff817b46d1>] ? mutex_lock+0x26/0x44
     [<ffffffff811df7f5>] sysfs_kf_seq_show+0x83/0xcf
     [<ffffffff811de257>] kernfs_seq_show+0x23/0x25
     [<ffffffff81199118>] seq_read+0x16f/0x325
     [<ffffffff811de994>] kernfs_fop_read+0x3a/0x13f
     [<ffffffff8117b625>] __vfs_read+0x26/0x9d
     [<ffffffff8130eb59>] ? security_file_permission+0x3c/0x44
     [<ffffffff8117bdb8>] ? rw_verify_area+0x83/0xd9
     [<ffffffff8117be9d>] vfs_read+0x8f/0xcf
     [<ffffffff81193e34>] ? __fdget_pos+0x12/0x41
     [<ffffffff8117c686>] SyS_read+0x4b/0x76
     [<ffffffff817b606e>] system_call_fastpath+0x12/0x71

The bug can be easily triggered, if an extra delay (e.g. 10ms) is added
between the test of DMF_FREEING & DMF_DELETING and dm_get() in
dm_get_from_kobject().

To fix it, we need to ensure the test of DMF_FREEING & DMF_DELETING and
dm_get() are done in an atomic way, so _minor_lock is used.

The other callers of dm_get() have also been checked to be OK: some
callers invoke dm_get() under _minor_lock, some callers invoke it under
_hash_lock, and dm_start_request() invoke it after increasing
md->open_count.

Signed-off-by: Hou Tao <houtao1@huawei.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/md/dm.c |   12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

--- a/drivers/md/dm.c
+++ b/drivers/md/dm.c
@@ -3033,11 +3033,15 @@ struct mapped_device *dm_get_from_kobjec
 
 	md = container_of(kobj, struct mapped_device, kobj_holder.kobj);
 
-	if (test_bit(DMF_FREEING, &md->flags) ||
-	    dm_deleting_md(md))
-		return NULL;
-
+	spin_lock(&_minor_lock);
+	if (test_bit(DMF_FREEING, &md->flags) || dm_deleting_md(md)) {
+		md = NULL;
+		goto out;
+	}
 	dm_get(md);
+out:
+	spin_unlock(&_minor_lock);
+
 	return md;
 }
 

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

* [PATCH 3.18 10/67] MIPS: Fix an n32 core file generation regset support regression
  2017-11-28 10:18 [PATCH 3.18 00/67] 3.18.85-stable review Greg Kroah-Hartman
                   ` (8 preceding siblings ...)
  2017-11-28 10:19 ` [PATCH 3.18 09/67] dm: fix race between dm_get_from_kobject() and __dm_destroy() Greg Kroah-Hartman
@ 2017-11-28 10:19 ` Greg Kroah-Hartman
  2017-11-28 10:19 ` [PATCH 3.18 12/67] autofs: dont fail mount for transient error Greg Kroah-Hartman
                   ` (56 subsequent siblings)
  66 siblings, 0 replies; 69+ messages in thread
From: Greg Kroah-Hartman @ 2017-11-28 10:19 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Maciej W. Rozycki, Ralf Baechle,
	Djordje Todorovic, linux-mips, James Hogan

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

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

From: Maciej W. Rozycki <macro@mips.com>

commit 547da673173de51f73887377eb275304775064ad upstream.

Fix a commit 7aeb753b5353 ("MIPS: Implement task_user_regset_view.")
regression, then activated by commit 6a9c001b7ec3 ("MIPS: Switch ELF
core dumper to use regsets.)", that caused n32 processes to dump o32
core files by failing to set the EF_MIPS_ABI2 flag in the ELF core file
header's `e_flags' member:

$ file tls-core
tls-core: ELF 32-bit MSB executable, MIPS, N32 MIPS64 rel2 version 1 (SYSV), [...]
$ ./tls-core
Aborted (core dumped)
$ file core
core: ELF 32-bit MSB core file MIPS, MIPS-I version 1 (SYSV), SVR4-style
$

Previously the flag was set as the result of a:

statement placed in arch/mips/kernel/binfmt_elfn32.c, however in the
regset case, i.e. when CORE_DUMP_USE_REGSET is set, ELF_CORE_EFLAGS is
no longer used by `fill_note_info' in fs/binfmt_elf.c, and instead the
`->e_flags' member of the regset view chosen is.  We have the views
defined in arch/mips/kernel/ptrace.c, however only an o32 and an n64
one, and the latter is used for n32 as well.  Consequently an o32 core
file is incorrectly dumped from n32 processes (the ELF32 vs ELF64 class
is chosen elsewhere, and the 32-bit one is correctly selected for n32).

Correct the issue then by defining an n32 regset view and using it as
appropriate.  Issue discovered in GDB testing.

Fixes: 7aeb753b5353 ("MIPS: Implement task_user_regset_view.")
Signed-off-by: Maciej W. Rozycki <macro@mips.com>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Djordje Todorovic <djordje.todorovic@rt-rk.com>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/17617/
Signed-off-by: James Hogan <jhogan@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 arch/mips/kernel/ptrace.c |   17 +++++++++++++++++
 1 file changed, 17 insertions(+)

--- a/arch/mips/kernel/ptrace.c
+++ b/arch/mips/kernel/ptrace.c
@@ -522,6 +522,19 @@ static const struct user_regset_view use
 	.n		= ARRAY_SIZE(mips64_regsets),
 };
 
+#ifdef CONFIG_MIPS32_N32
+
+static const struct user_regset_view user_mipsn32_view = {
+	.name		= "mipsn32",
+	.e_flags	= EF_MIPS_ABI2,
+	.e_machine	= ELF_ARCH,
+	.ei_osabi	= ELF_OSABI,
+	.regsets	= mips64_regsets,
+	.n		= ARRAY_SIZE(mips64_regsets),
+};
+
+#endif /* CONFIG_MIPS32_N32 */
+
 #endif /* CONFIG_64BIT */
 
 const struct user_regset_view *task_user_regset_view(struct task_struct *task)
@@ -533,6 +546,10 @@ const struct user_regset_view *task_user
 	if (test_tsk_thread_flag(task, TIF_32BIT_REGS))
 		return &user_mips_view;
 #endif
+#ifdef CONFIG_MIPS32_N32
+	if (test_tsk_thread_flag(task, TIF_32BIT_ADDR))
+		return &user_mipsn32_view;
+#endif
 	return &user_mips64_view;
 #endif
 }

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

* [PATCH 3.18 12/67] autofs: dont fail mount for transient error
  2017-11-28 10:18 [PATCH 3.18 00/67] 3.18.85-stable review Greg Kroah-Hartman
                   ` (9 preceding siblings ...)
  2017-11-28 10:19 ` [PATCH 3.18 10/67] MIPS: Fix an n32 core file generation regset support regression Greg Kroah-Hartman
@ 2017-11-28 10:19 ` Greg Kroah-Hartman
  2017-11-28 10:19 ` [PATCH 3.18 13/67] nilfs2: fix race condition that causes file system corruption Greg Kroah-Hartman
                   ` (55 subsequent siblings)
  66 siblings, 0 replies; 69+ messages in thread
From: Greg Kroah-Hartman @ 2017-11-28 10:19 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, NeilBrown, Ian Kent, Andrew Morton,
	Linus Torvalds

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

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

From: NeilBrown <neilb@suse.com>

commit ecc0c469f27765ed1e2b967be0aa17cee1a60b76 upstream.

Currently if the autofs kernel module gets an error when writing to the
pipe which links to the daemon, then it marks the whole moutpoint as
catatonic, and it will stop working.

It is possible that the error is transient.  This can happen if the
daemon is slow and more than 16 requests queue up.  If a subsequent
process tries to queue a request, and is then signalled, the write to
the pipe will return -ERESTARTSYS and autofs will take that as total
failure.

So change the code to assess -ERESTARTSYS and -ENOMEM as transient
failures which only abort the current request, not the whole mountpoint.

It isn't a crash or a data corruption, but having autofs mountpoints
suddenly stop working is rather inconvenient.

Ian said:

: And given the problems with a half dozen (or so) user space applications
: consuming large amounts of CPU under heavy mount and umount activity this
: could happen more easily than we expect.

Link: http://lkml.kernel.org/r/87y3norvgp.fsf@notabene.neil.brown.name
Signed-off-by: NeilBrown <neilb@suse.com>
Acked-by: Ian Kent <raven@themaw.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 fs/autofs4/waitq.c |   15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

--- a/fs/autofs4/waitq.c
+++ b/fs/autofs4/waitq.c
@@ -87,7 +87,8 @@ static int autofs4_write(struct autofs_s
 		spin_unlock_irqrestore(&current->sighand->siglock, flags);
 	}
 
-	return (bytes > 0);
+	/* if 'wr' returned 0 (impossible) we assume -EIO (safe) */
+	return bytes == 0 ? 0 : wr < 0 ? wr : -EIO;
 }
 	
 static void autofs4_notify_daemon(struct autofs_sb_info *sbi,
@@ -101,6 +102,7 @@ static void autofs4_notify_daemon(struct
 	} pkt;
 	struct file *pipe = NULL;
 	size_t pktsz;
+	int ret;
 
 	DPRINTK("wait id = 0x%08lx, name = %.*s, type=%d",
 		(unsigned long) wq->wait_queue_token, wq->name.len, wq->name.name, type);
@@ -173,7 +175,18 @@ static void autofs4_notify_daemon(struct
 	mutex_unlock(&sbi->wq_mutex);
 
 	if (autofs4_write(sbi, pipe, &pkt, pktsz))
+	switch (ret = autofs4_write(sbi, pipe, &pkt, pktsz)) {
+	case 0:
+		break;
+	case -ENOMEM:
+	case -ERESTARTSYS:
+		/* Just fail this one */
+		autofs4_wait_release(sbi, wq->wait_queue_token, ret);
+		break;
+	default:
 		autofs4_catatonic_mode(sbi);
+		break;
+	}
 	fput(pipe);
 }
 

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

* [PATCH 3.18 13/67] nilfs2: fix race condition that causes file system corruption
  2017-11-28 10:18 [PATCH 3.18 00/67] 3.18.85-stable review Greg Kroah-Hartman
                   ` (10 preceding siblings ...)
  2017-11-28 10:19 ` [PATCH 3.18 12/67] autofs: dont fail mount for transient error Greg Kroah-Hartman
@ 2017-11-28 10:19 ` Greg Kroah-Hartman
  2017-11-28 10:19 ` [PATCH 3.18 14/67] eCryptfs: use after free in ecryptfs_release_messaging() Greg Kroah-Hartman
                   ` (54 subsequent siblings)
  66 siblings, 0 replies; 69+ messages in thread
From: Greg Kroah-Hartman @ 2017-11-28 10:19 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Andreas Rohner, Ryusuke Konishi,
	Andrew Morton, Linus Torvalds

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

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

From: Andreas Rohner <andreas.rohner@gmx.net>

commit 31ccb1f7ba3cfe29631587d451cf5bb8ab593550 upstream.

There is a race condition between nilfs_dirty_inode() and
nilfs_set_file_dirty().

When a file is opened, nilfs_dirty_inode() is called to update the
access timestamp in the inode.  It calls __nilfs_mark_inode_dirty() in a
separate transaction.  __nilfs_mark_inode_dirty() caches the ifile
buffer_head in the i_bh field of the inode info structure and marks it
as dirty.

After some data was written to the file in another transaction, the
function nilfs_set_file_dirty() is called, which adds the inode to the
ns_dirty_files list.

Then the segment construction calls nilfs_segctor_collect_dirty_files(),
which goes through the ns_dirty_files list and checks the i_bh field.
If there is a cached buffer_head in i_bh it is not marked as dirty
again.

Since nilfs_dirty_inode() and nilfs_set_file_dirty() use separate
transactions, it is possible that a segment construction that writes out
the ifile occurs in-between the two.  If this happens the inode is not
on the ns_dirty_files list, but its ifile block is still marked as dirty
and written out.

In the next segment construction, the data for the file is written out
and nilfs_bmap_propagate() updates the b-tree.  Eventually the bmap root
is written into the i_bh block, which is not dirty, because it was
written out in another segment construction.

As a result the bmap update can be lost, which leads to file system
corruption.  Either the virtual block address points to an unallocated
DAT block, or the DAT entry will be reused for something different.

The error can remain undetected for a long time.  A typical error
message would be one of the "bad btree" errors or a warning that a DAT
entry could not be found.

This bug can be reproduced reliably by a simple benchmark that creates
and overwrites millions of 4k files.

Link: http://lkml.kernel.org/r/1509367935-3086-2-git-send-email-konishi.ryusuke@lab.ntt.co.jp
Signed-off-by: Andreas Rohner <andreas.rohner@gmx.net>
Signed-off-by: Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
Tested-by: Andreas Rohner <andreas.rohner@gmx.net>
Tested-by: Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 fs/nilfs2/segment.c |    6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

--- a/fs/nilfs2/segment.c
+++ b/fs/nilfs2/segment.c
@@ -1884,8 +1884,6 @@ static int nilfs_segctor_collect_dirty_f
 					      "failed to get inode block.\n");
 				return err;
 			}
-			mark_buffer_dirty(ibh);
-			nilfs_mdt_mark_dirty(ifile);
 			spin_lock(&nilfs->ns_inode_lock);
 			if (likely(!ii->i_bh))
 				ii->i_bh = ibh;
@@ -1894,6 +1892,10 @@ static int nilfs_segctor_collect_dirty_f
 			goto retry;
 		}
 
+		// Always redirty the buffer to avoid race condition
+		mark_buffer_dirty(ii->i_bh);
+		nilfs_mdt_mark_dirty(ifile);
+
 		clear_bit(NILFS_I_QUEUED, &ii->i_state);
 		set_bit(NILFS_I_BUSY, &ii->i_state);
 		list_move_tail(&ii->i_dirty, &sci->sc_dirty_files);

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

* [PATCH 3.18 14/67] eCryptfs: use after free in ecryptfs_release_messaging()
  2017-11-28 10:18 [PATCH 3.18 00/67] 3.18.85-stable review Greg Kroah-Hartman
                   ` (11 preceding siblings ...)
  2017-11-28 10:19 ` [PATCH 3.18 13/67] nilfs2: fix race condition that causes file system corruption Greg Kroah-Hartman
@ 2017-11-28 10:19 ` Greg Kroah-Hartman
  2017-11-28 10:19 ` [PATCH 3.18 15/67] bcache: check ca->alloc_thread initialized before wake up it Greg Kroah-Hartman
                   ` (53 subsequent siblings)
  66 siblings, 0 replies; 69+ messages in thread
From: Greg Kroah-Hartman @ 2017-11-28 10:19 UTC (permalink / raw)
  To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Dan Carpenter, Tyler Hicks

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

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

From: Dan Carpenter <dan.carpenter@oracle.com>

commit db86be3a12d0b6e5c5b51c2ab2a48f06329cb590 upstream.

We're freeing the list iterator so we should be using the _safe()
version of hlist_for_each_entry().

Fixes: 88b4a07e6610 ("[PATCH] eCryptfs: Public key transport mechanism")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Tyler Hicks <tyhicks@canonical.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 fs/ecryptfs/messaging.c |    7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

--- a/fs/ecryptfs/messaging.c
+++ b/fs/ecryptfs/messaging.c
@@ -442,15 +442,16 @@ void ecryptfs_release_messaging(void)
 	}
 	if (ecryptfs_daemon_hash) {
 		struct ecryptfs_daemon *daemon;
+		struct hlist_node *n;
 		int i;
 
 		mutex_lock(&ecryptfs_daemon_hash_mux);
 		for (i = 0; i < (1 << ecryptfs_hash_bits); i++) {
 			int rc;
 
-			hlist_for_each_entry(daemon,
-					     &ecryptfs_daemon_hash[i],
-					     euid_chain) {
+			hlist_for_each_entry_safe(daemon, n,
+						  &ecryptfs_daemon_hash[i],
+						  euid_chain) {
 				rc = ecryptfs_exorcise_daemon(daemon);
 				if (rc)
 					printk(KERN_ERR "%s: Error whilst "

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

* [PATCH 3.18 15/67] bcache: check ca->alloc_thread initialized before wake up it
  2017-11-28 10:18 [PATCH 3.18 00/67] 3.18.85-stable review Greg Kroah-Hartman
                   ` (12 preceding siblings ...)
  2017-11-28 10:19 ` [PATCH 3.18 14/67] eCryptfs: use after free in ecryptfs_release_messaging() Greg Kroah-Hartman
@ 2017-11-28 10:19 ` Greg Kroah-Hartman
  2017-11-28 10:19 ` [PATCH 3.18 16/67] isofs: fix timestamps beyond 2027 Greg Kroah-Hartman
                   ` (52 subsequent siblings)
  66 siblings, 0 replies; 69+ messages in thread
From: Greg Kroah-Hartman @ 2017-11-28 10:19 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Coly Li, Jorg Bornschein,
	Kent Overstreet, Michael Lyle, Jens Axboe

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

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

From: Coly Li <colyli@suse.de>

commit 91af8300d9c1d7c6b6a2fd754109e08d4798b8d8 upstream.

In bcache code, sysfs entries are created before all resources get
allocated, e.g. allocation thread of a cache set.

There is posibility for NULL pointer deference if a resource is accessed
but which is not initialized yet. Indeed Jorg Bornschein catches one on
cache set allocation thread and gets a kernel oops.

The reason for this bug is, when bch_bucket_alloc() is called during
cache set registration and attaching, ca->alloc_thread is not properly
allocated and initialized yet, call wake_up_process() on ca->alloc_thread
triggers NULL pointer deference failure. A simple and fast fix is, before
waking up ca->alloc_thread, checking whether it is allocated, and only
wake up ca->alloc_thread when it is not NULL.

Signed-off-by: Coly Li <colyli@suse.de>
Reported-by: Jorg Bornschein <jb@capsec.org>
Cc: Kent Overstreet <kent.overstreet@gmail.com>
Reviewed-by: Michael Lyle <mlyle@lyle.org>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/md/bcache/alloc.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

--- a/drivers/md/bcache/alloc.c
+++ b/drivers/md/bcache/alloc.c
@@ -406,7 +406,8 @@ long bch_bucket_alloc(struct cache *ca,
 
 	finish_wait(&ca->set->bucket_wait, &w);
 out:
-	wake_up_process(ca->alloc_thread);
+	if (ca->alloc_thread)
+		wake_up_process(ca->alloc_thread);
 
 	trace_bcache_alloc(ca, reserve);
 

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

* [PATCH 3.18 16/67] isofs: fix timestamps beyond 2027
  2017-11-28 10:18 [PATCH 3.18 00/67] 3.18.85-stable review Greg Kroah-Hartman
                   ` (13 preceding siblings ...)
  2017-11-28 10:19 ` [PATCH 3.18 15/67] bcache: check ca->alloc_thread initialized before wake up it Greg Kroah-Hartman
@ 2017-11-28 10:19 ` Greg Kroah-Hartman
  2017-11-28 10:19 ` [PATCH 3.18 17/67] NFS: Fix typo in nomigration mount option Greg Kroah-Hartman
                   ` (51 subsequent siblings)
  66 siblings, 0 replies; 69+ messages in thread
From: Greg Kroah-Hartman @ 2017-11-28 10:19 UTC (permalink / raw)
  To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Arnd Bergmann, Jan Kara

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

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

From: Arnd Bergmann <arnd@arndb.de>

commit 34be4dbf87fc3e474a842305394534216d428f5d upstream.

isofs uses a 'char' variable to load the number of years since
1900 for an inode timestamp. On architectures that use a signed
char type by default, this results in an invalid date for
anything beyond 2027.

This changes the function argument to a 'u8' array, which
is defined the same way on all architectures, and unambiguously
lets us use years until 2155.

This should be backported to all kernels that might still be
in use by that date.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 fs/isofs/isofs.h |    2 +-
 fs/isofs/rock.h  |    2 +-
 fs/isofs/util.c  |    2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

--- a/fs/isofs/isofs.h
+++ b/fs/isofs/isofs.h
@@ -103,7 +103,7 @@ static inline unsigned int isonum_733(ch
 	/* Ignore bigendian datum due to broken mastering programs */
 	return get_unaligned_le32(p);
 }
-extern int iso_date(char *, int);
+extern int iso_date(u8 *, int);
 
 struct inode;		/* To make gcc happy */
 
--- a/fs/isofs/rock.h
+++ b/fs/isofs/rock.h
@@ -65,7 +65,7 @@ struct RR_PL_s {
 };
 
 struct stamp {
-	char time[7];
+	__u8 time[7];		/* actually 6 unsigned, 1 signed */
 } __attribute__ ((packed));
 
 struct RR_TF_s {
--- a/fs/isofs/util.c
+++ b/fs/isofs/util.c
@@ -14,7 +14,7 @@
  * to GMT.  Thus  we should always be correct.
  */
 
-int iso_date(char * p, int flag)
+int iso_date(u8 *p, int flag)
 {
 	int year, month, day, hour, minute, second, tz;
 	int crtime, days, i;

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

* [PATCH 3.18 17/67] NFS: Fix typo in nomigration mount option
  2017-11-28 10:18 [PATCH 3.18 00/67] 3.18.85-stable review Greg Kroah-Hartman
                   ` (14 preceding siblings ...)
  2017-11-28 10:19 ` [PATCH 3.18 16/67] isofs: fix timestamps beyond 2027 Greg Kroah-Hartman
@ 2017-11-28 10:19 ` Greg Kroah-Hartman
  2017-11-28 10:19 ` [PATCH 3.18 18/67] nfs: Fix ugly referral attributes Greg Kroah-Hartman
                   ` (50 subsequent siblings)
  66 siblings, 0 replies; 69+ messages in thread
From: Greg Kroah-Hartman @ 2017-11-28 10:19 UTC (permalink / raw)
  To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Joshua Watt, Anna Schumaker

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

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

From: Joshua Watt <jpewhacker@gmail.com>

commit f02fee227e5f21981152850744a6084ff3fa94ee upstream.

The option was incorrectly masking off all other options.

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 fs/nfs/super.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/fs/nfs/super.c
+++ b/fs/nfs/super.c
@@ -1321,7 +1321,7 @@ static int nfs_parse_mount_options(char
 			mnt->options |= NFS_OPTION_MIGRATION;
 			break;
 		case Opt_nomigration:
-			mnt->options &= NFS_OPTION_MIGRATION;
+			mnt->options &= ~NFS_OPTION_MIGRATION;
 			break;
 
 		/*

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

* [PATCH 3.18 18/67] nfs: Fix ugly referral attributes
  2017-11-28 10:18 [PATCH 3.18 00/67] 3.18.85-stable review Greg Kroah-Hartman
                   ` (15 preceding siblings ...)
  2017-11-28 10:19 ` [PATCH 3.18 17/67] NFS: Fix typo in nomigration mount option Greg Kroah-Hartman
@ 2017-11-28 10:19 ` Greg Kroah-Hartman
  2017-11-28 10:19 ` [PATCH 3.18 19/67] nfsd: deal with revoked delegations appropriately Greg Kroah-Hartman
                   ` (49 subsequent siblings)
  66 siblings, 0 replies; 69+ messages in thread
From: Greg Kroah-Hartman @ 2017-11-28 10:19 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Pradeep Thomas, Chuck Lever, Anna Schumaker

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

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

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

commit c05cefcc72416a37eba5a2b35f0704ed758a9145 upstream.

Before traversing a referral and performing a mount, the mounted-on
directory looks strange:

dr-xr-xr-x. 2 4294967294 4294967294 0 Dec 31  1969 dir.0

nfs4_get_referral is wiping out any cached attributes with what was
returned via GETATTR(fs_locations), but the bit mask for that
operation does not request any file attributes.

Retrieve owner and timestamp information so that the memcpy in
nfs4_get_referral fills in more attributes.

Changes since v1:
- Don't request attributes that the client unconditionally replaces
- Request only MOUNTED_ON_FILEID or FILEID attribute, not both
- encode_fs_locations() doesn't use the third bitmask word

Fixes: 6b97fd3da1ea ("NFSv4: Follow a referral")
Suggested-by: Pradeep Thomas <pradeepthomas@gmail.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 fs/nfs/nfs4proc.c |   18 ++++++++----------
 1 file changed, 8 insertions(+), 10 deletions(-)

--- a/fs/nfs/nfs4proc.c
+++ b/fs/nfs/nfs4proc.c
@@ -243,15 +243,12 @@ const u32 nfs4_fsinfo_bitmap[3] = { FATT
 };
 
 const u32 nfs4_fs_locations_bitmap[3] = {
-	FATTR4_WORD0_TYPE
-	| FATTR4_WORD0_CHANGE
+	FATTR4_WORD0_CHANGE
 	| FATTR4_WORD0_SIZE
 	| FATTR4_WORD0_FSID
 	| FATTR4_WORD0_FILEID
 	| FATTR4_WORD0_FS_LOCATIONS,
-	FATTR4_WORD1_MODE
-	| FATTR4_WORD1_NUMLINKS
-	| FATTR4_WORD1_OWNER
+	FATTR4_WORD1_OWNER
 	| FATTR4_WORD1_OWNER_GROUP
 	| FATTR4_WORD1_RAWDEV
 	| FATTR4_WORD1_SPACE_USED
@@ -6143,9 +6140,7 @@ static int _nfs4_proc_fs_locations(struc
 				   struct page *page)
 {
 	struct nfs_server *server = NFS_SERVER(dir);
-	u32 bitmask[3] = {
-		[0] = FATTR4_WORD0_FSID | FATTR4_WORD0_FS_LOCATIONS,
-	};
+	u32 bitmask[3];
 	struct nfs4_fs_locations_arg args = {
 		.dir_fh = NFS_FH(dir),
 		.name = name,
@@ -6164,12 +6159,15 @@ static int _nfs4_proc_fs_locations(struc
 
 	dprintk("%s: start\n", __func__);
 
+	bitmask[0] = nfs4_fattr_bitmap[0] | FATTR4_WORD0_FS_LOCATIONS;
+	bitmask[1] = nfs4_fattr_bitmap[1];
+
 	/* Ask for the fileid of the absent filesystem if mounted_on_fileid
 	 * is not supported */
 	if (NFS_SERVER(dir)->attr_bitmask[1] & FATTR4_WORD1_MOUNTED_ON_FILEID)
-		bitmask[1] |= FATTR4_WORD1_MOUNTED_ON_FILEID;
+		bitmask[0] &= ~FATTR4_WORD0_FILEID;
 	else
-		bitmask[0] |= FATTR4_WORD0_FILEID;
+		bitmask[1] &= ~FATTR4_WORD1_MOUNTED_ON_FILEID;
 
 	nfs_fattr_init(&fs_locations->fattr);
 	fs_locations->server = server;

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

* [PATCH 3.18 19/67] nfsd: deal with revoked delegations appropriately
  2017-11-28 10:18 [PATCH 3.18 00/67] 3.18.85-stable review Greg Kroah-Hartman
                   ` (16 preceding siblings ...)
  2017-11-28 10:19 ` [PATCH 3.18 18/67] nfs: Fix ugly referral attributes Greg Kroah-Hartman
@ 2017-11-28 10:19 ` Greg Kroah-Hartman
  2017-11-28 10:19 ` [PATCH 3.18 20/67] ext4: fix interaction between i_size, fallocate, and delalloc after a crash Greg Kroah-Hartman
                   ` (48 subsequent siblings)
  66 siblings, 0 replies; 69+ messages in thread
From: Greg Kroah-Hartman @ 2017-11-28 10:19 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Andrew Elble, Trond Myklebust,
	J. Bruce Fields

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

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

From: Andrew Elble <aweits@rit.edu>

commit 95da1b3a5aded124dd1bda1e3cdb876184813140 upstream.

If a delegation has been revoked by the server, operations using that
delegation should error out with NFS4ERR_DELEG_REVOKED in the >4.1
case, and NFS4ERR_BAD_STATEID otherwise.

The server needs NFSv4.1 clients to explicitly free revoked delegations.
If the server returns NFS4ERR_DELEG_REVOKED, the client will do that;
otherwise it may just forget about the delegation and be unable to
recover when it later sees SEQ4_STATUS_RECALLABLE_STATE_REVOKED set on a
SEQUENCE reply.  That can cause the Linux 4.1 client to loop in its
stage manager.

Signed-off-by: Andrew Elble <aweits@rit.edu>
Reviewed-by: Trond Myklebust <trond.myklebust@primarydata.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 fs/nfsd/nfs4state.c |   25 ++++++++++++++++++++++++-
 1 file changed, 24 insertions(+), 1 deletion(-)

--- a/fs/nfsd/nfs4state.c
+++ b/fs/nfsd/nfs4state.c
@@ -3602,7 +3602,8 @@ static struct nfs4_delegation *find_dele
 {
 	struct nfs4_stid *ret;
 
-	ret = find_stateid_by_type(cl, s, NFS4_DELEG_STID);
+	ret = find_stateid_by_type(cl, s,
+				NFS4_DELEG_STID|NFS4_REVOKED_DELEG_STID);
 	if (!ret)
 		return NULL;
 	return delegstateid(ret);
@@ -3625,6 +3626,12 @@ nfs4_check_deleg(struct nfs4_client *cl,
 	deleg = find_deleg_stateid(cl, &open->op_delegate_stateid);
 	if (deleg == NULL)
 		goto out;
+	if (deleg->dl_stid.sc_type == NFS4_REVOKED_DELEG_STID) {
+		nfs4_put_stid(&deleg->dl_stid);
+		if (cl->cl_minorversion)
+			status = nfserr_deleg_revoked;
+		goto out;
+	}
 	flags = share_access_to_flags(open->op_share_access);
 	status = nfs4_check_delegmode(deleg, flags);
 	if (status) {
@@ -4451,6 +4458,16 @@ nfsd4_lookup_stateid(struct nfsd4_compou
 		     struct nfs4_stid **s, struct nfsd_net *nn)
 {
 	__be32 status;
+	bool return_revoked = false;
+
+	/*
+	 *  only return revoked delegations if explicitly asked.
+	 *  otherwise we report revoked or bad_stateid status.
+	 */
+	if (typemask & NFS4_REVOKED_DELEG_STID)
+		return_revoked = true;
+	else if (typemask & NFS4_DELEG_STID)
+		typemask |= NFS4_REVOKED_DELEG_STID;
 
 	if (ZERO_STATEID(stateid) || ONE_STATEID(stateid))
 		return nfserr_bad_stateid;
@@ -4465,6 +4482,12 @@ nfsd4_lookup_stateid(struct nfsd4_compou
 	*s = find_stateid_by_type(cstate->clp, stateid, typemask);
 	if (!*s)
 		return nfserr_bad_stateid;
+	if (((*s)->sc_type == NFS4_REVOKED_DELEG_STID) && !return_revoked) {
+		nfs4_put_stid(*s);
+		if (cstate->minorversion)
+			return nfserr_deleg_revoked;
+		return nfserr_bad_stateid;
+	}
 	return nfs_ok;
 }
 

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

* [PATCH 3.18 20/67] ext4: fix interaction between i_size, fallocate, and delalloc after a crash
  2017-11-28 10:18 [PATCH 3.18 00/67] 3.18.85-stable review Greg Kroah-Hartman
                   ` (17 preceding siblings ...)
  2017-11-28 10:19 ` [PATCH 3.18 19/67] nfsd: deal with revoked delegations appropriately Greg Kroah-Hartman
@ 2017-11-28 10:19 ` Greg Kroah-Hartman
  2017-11-28 10:19 ` [PATCH 3.18 21/67] ALSA: usb-audio: Add sanity checks to FE parser Greg Kroah-Hartman
                   ` (47 subsequent siblings)
  66 siblings, 0 replies; 69+ messages in thread
From: Greg Kroah-Hartman @ 2017-11-28 10:19 UTC (permalink / raw)
  To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Theodore Tso, Amir Goldstein

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

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

From: Theodore Ts'o <tytso@mit.edu>

commit 51e3ae81ec58e95f10a98ef3dd6d7bce5d8e35a2 upstream.

If there are pending writes subject to delayed allocation, then i_size
will show size after the writes have completed, while i_disksize
contains the value of i_size on the disk (since the writes have not
been persisted to disk).

If fallocate(2) is called with the FALLOC_FL_KEEP_SIZE flag, either
with or without the FALLOC_FL_ZERO_RANGE flag set, and the new size
after the fallocate(2) is between i_size and i_disksize, then after a
crash, if a journal commit has resulted in the changes made by the
fallocate() call to be persisted after a crash, but the delayed
allocation write has not resolved itself, i_size would not be updated,
and this would cause the following e2fsck complaint:

Inode 12, end of extent exceeds allowed value
	(logical block 33, physical block 33441, len 7)

This can only take place on a sparse file, where the fallocate(2) call
is allocating blocks in a range which is before a pending delayed
allocation write which is extending i_size.  Since this situation is
quite rare, and the window in which the crash must take place is
typically < 30 seconds, in practice this condition will rarely happen.

Nevertheless, it can be triggered in testing, and in particular by
xfstests generic/456.

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Reported-by: Amir Goldstein <amir73il@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 fs/ext4/extents.c |    6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

--- a/fs/ext4/extents.c
+++ b/fs/ext4/extents.c
@@ -4807,7 +4807,8 @@ static long ext4_zero_range(struct file
 	}
 
 	if (!(mode & FALLOC_FL_KEEP_SIZE) &&
-	     offset + len > i_size_read(inode)) {
+	    (offset + len > i_size_read(inode) ||
+	     offset + len > EXT4_I(inode)->i_disksize)) {
 		new_size = offset + len;
 		ret = inode_newsize_ok(inode, new_size);
 		if (ret)
@@ -4951,7 +4952,8 @@ long ext4_fallocate(struct file *file, i
 	}
 
 	if (!(mode & FALLOC_FL_KEEP_SIZE) &&
-	     offset + len > i_size_read(inode)) {
+	    (offset + len > i_size_read(inode) ||
+	     offset + len > EXT4_I(inode)->i_disksize)) {
 		new_size = offset + len;
 		ret = inode_newsize_ok(inode, new_size);
 		if (ret)

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

* [PATCH 3.18 21/67] ALSA: usb-audio: Add sanity checks to FE parser
  2017-11-28 10:18 [PATCH 3.18 00/67] 3.18.85-stable review Greg Kroah-Hartman
                   ` (18 preceding siblings ...)
  2017-11-28 10:19 ` [PATCH 3.18 20/67] ext4: fix interaction between i_size, fallocate, and delalloc after a crash Greg Kroah-Hartman
@ 2017-11-28 10:19 ` Greg Kroah-Hartman
  2017-11-28 10:19 ` [PATCH 3.18 22/67] ALSA: usb-audio: Fix potential out-of-bound access at parsing SU Greg Kroah-Hartman
                   ` (46 subsequent siblings)
  66 siblings, 0 replies; 69+ messages in thread
From: Greg Kroah-Hartman @ 2017-11-28 10:19 UTC (permalink / raw)
  To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Andrey Konovalov, Takashi Iwai

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

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

From: Takashi Iwai <tiwai@suse.de>

commit d937cd6790a2bef2d07b500487646bd794c039bb upstream.

When the usb-audio descriptor contains the malformed feature unit
description with a too short length, the driver may access
out-of-bounds.  Add a sanity check of the header size at the beginning
of parse_audio_feature_unit().

Fixes: 23caaf19b11e ("ALSA: usb-mixer: Add support for Audio Class v2.0")
Reported-by: Andrey Konovalov <andreyknvl@google.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

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

--- a/sound/usb/mixer.c
+++ b/sound/usb/mixer.c
@@ -1373,6 +1373,12 @@ static int parse_audio_feature_unit(stru
 	__u8 *bmaControls;
 
 	if (state->mixer->protocol == UAC_VERSION_1) {
+		if (hdr->bLength < 7) {
+			usb_audio_err(state->chip,
+				      "unit %u: invalid UAC_FEATURE_UNIT descriptor\n",
+				      unitid);
+			return -EINVAL;
+		}
 		csize = hdr->bControlSize;
 		if (!csize) {
 			usb_audio_dbg(state->chip,
@@ -1390,6 +1396,12 @@ static int parse_audio_feature_unit(stru
 		}
 	} else {
 		struct uac2_feature_unit_descriptor *ftr = _ftr;
+		if (hdr->bLength < 6) {
+			usb_audio_err(state->chip,
+				      "unit %u: invalid UAC_FEATURE_UNIT descriptor\n",
+				      unitid);
+			return -EINVAL;
+		}
 		csize = 4;
 		channels = (hdr->bLength - 6) / 4 - 1;
 		bmaControls = ftr->bmaControls;

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

* [PATCH 3.18 22/67] ALSA: usb-audio: Fix potential out-of-bound access at parsing SU
  2017-11-28 10:18 [PATCH 3.18 00/67] 3.18.85-stable review Greg Kroah-Hartman
                   ` (19 preceding siblings ...)
  2017-11-28 10:19 ` [PATCH 3.18 21/67] ALSA: usb-audio: Add sanity checks to FE parser Greg Kroah-Hartman
@ 2017-11-28 10:19 ` Greg Kroah-Hartman
  2017-11-28 10:19 ` [PATCH 3.18 23/67] ALSA: usb-audio: Add sanity checks in v2 clock parsers Greg Kroah-Hartman
                   ` (45 subsequent siblings)
  66 siblings, 0 replies; 69+ messages in thread
From: Greg Kroah-Hartman @ 2017-11-28 10:19 UTC (permalink / raw)
  To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Takashi Iwai

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

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

From: Takashi Iwai <tiwai@suse.de>

commit f658f17b5e0e339935dca23e77e0f3cad591926b upstream.

The usb-audio driver may trigger an out-of-bound access at parsing a
malformed selector unit, as it checks the header length only after
evaluating bNrInPins field, which can be already above the given
length.  Fix it by adding the length check beforehand.

Fixes: 99fc86450c43 ("ALSA: usb-mixer: parse descriptors with structs")
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

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

--- a/sound/usb/mixer.c
+++ b/sound/usb/mixer.c
@@ -2018,7 +2018,8 @@ static int parse_audio_selector_unit(str
 	const struct usbmix_name_map *map;
 	char **namelist;
 
-	if (!desc->bNrInPins || desc->bLength < 5 + desc->bNrInPins) {
+	if (desc->bLength < 5 || !desc->bNrInPins ||
+	    desc->bLength < 5 + desc->bNrInPins) {
 		usb_audio_err(state->chip,
 			"invalid SELECTOR UNIT descriptor %d\n", unitid);
 		return -EINVAL;

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

* [PATCH 3.18 23/67] ALSA: usb-audio: Add sanity checks in v2 clock parsers
  2017-11-28 10:18 [PATCH 3.18 00/67] 3.18.85-stable review Greg Kroah-Hartman
                   ` (20 preceding siblings ...)
  2017-11-28 10:19 ` [PATCH 3.18 22/67] ALSA: usb-audio: Fix potential out-of-bound access at parsing SU Greg Kroah-Hartman
@ 2017-11-28 10:19 ` Greg Kroah-Hartman
  2017-11-28 10:19 ` [PATCH 3.18 24/67] ALSA: timer: Remove kernel warning at compat ioctl error paths Greg Kroah-Hartman
                   ` (44 subsequent siblings)
  66 siblings, 0 replies; 69+ messages in thread
From: Greg Kroah-Hartman @ 2017-11-28 10:19 UTC (permalink / raw)
  To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Andrey Konovalov, Takashi Iwai

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

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

From: Takashi Iwai <tiwai@suse.de>

commit 0a62d6c966956d77397c32836a5bbfe3af786fc1 upstream.

The helper functions to parse and look for the clock source, selector
and multiplier unit may return the descriptor with a too short length
than required, while there is no sanity check in the caller side.
Add some sanity checks in the parsers, at least, to guarantee the
given descriptor size, for avoiding the potential crashes.

Fixes: 79f920fbff56 ("ALSA: usb-audio: parse clock topology of UAC2 devices")
Reported-by: Andrey Konovalov <andreyknvl@google.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 sound/usb/clock.c |    9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

--- a/sound/usb/clock.c
+++ b/sound/usb/clock.c
@@ -43,7 +43,7 @@ static struct uac_clock_source_descripto
 	while ((cs = snd_usb_find_csint_desc(ctrl_iface->extra,
 					     ctrl_iface->extralen,
 					     cs, UAC2_CLOCK_SOURCE))) {
-		if (cs->bClockID == clock_id)
+		if (cs->bLength >= sizeof(*cs) && cs->bClockID == clock_id)
 			return cs;
 	}
 
@@ -59,8 +59,11 @@ static struct uac_clock_selector_descrip
 	while ((cs = snd_usb_find_csint_desc(ctrl_iface->extra,
 					     ctrl_iface->extralen,
 					     cs, UAC2_CLOCK_SELECTOR))) {
-		if (cs->bClockID == clock_id)
+		if (cs->bLength >= sizeof(*cs) && cs->bClockID == clock_id) {
+			if (cs->bLength < 5 + cs->bNrInPins)
+				return NULL;
 			return cs;
+		}
 	}
 
 	return NULL;
@@ -75,7 +78,7 @@ static struct uac_clock_multiplier_descr
 	while ((cs = snd_usb_find_csint_desc(ctrl_iface->extra,
 					     ctrl_iface->extralen,
 					     cs, UAC2_CLOCK_MULTIPLIER))) {
-		if (cs->bClockID == clock_id)
+		if (cs->bLength >= sizeof(*cs) && cs->bClockID == clock_id)
 			return cs;
 	}
 

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

* [PATCH 3.18 24/67] ALSA: timer: Remove kernel warning at compat ioctl error paths
  2017-11-28 10:18 [PATCH 3.18 00/67] 3.18.85-stable review Greg Kroah-Hartman
                   ` (21 preceding siblings ...)
  2017-11-28 10:19 ` [PATCH 3.18 23/67] ALSA: usb-audio: Add sanity checks in v2 clock parsers Greg Kroah-Hartman
@ 2017-11-28 10:19 ` Greg Kroah-Hartman
  2017-11-28 10:19 ` [PATCH 3.18 25/67] fs/9p: Compare qid.path in v9fs_test_inode Greg Kroah-Hartman
                   ` (43 subsequent siblings)
  66 siblings, 0 replies; 69+ messages in thread
From: Greg Kroah-Hartman @ 2017-11-28 10:19 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 3d4e8303f2c747c8540a0a0126d0151514f6468b upstream.

Some timer compat ioctls have NULL checks of timer instance with
snd_BUG_ON() that bring up WARN_ON() when the debug option is set.
Actually the condition can be met in the normal situation and it's
confusing and bad to spew kernel warnings with stack trace there.
Let's remove snd_BUG_ON() invocation and replace with the simple
checks.  Also, correct the error code to EBADFD to follow the native
ioctl error handling.

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/timer_compat.c |   12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

--- a/sound/core/timer_compat.c
+++ b/sound/core/timer_compat.c
@@ -40,11 +40,11 @@ static int snd_timer_user_info_compat(st
 	struct snd_timer *t;
 
 	tu = file->private_data;
-	if (snd_BUG_ON(!tu->timeri))
-		return -ENXIO;
+	if (!tu->timeri)
+		return -EBADFD;
 	t = tu->timeri->timer;
-	if (snd_BUG_ON(!t))
-		return -ENXIO;
+	if (!t)
+		return -EBADFD;
 	memset(&info, 0, sizeof(info));
 	info.card = t->card ? t->card->number : -1;
 	if (t->hw.flags & SNDRV_TIMER_HW_SLAVE)
@@ -73,8 +73,8 @@ static int snd_timer_user_status_compat(
 	struct snd_timer_status32 status;
 	
 	tu = file->private_data;
-	if (snd_BUG_ON(!tu->timeri))
-		return -ENXIO;
+	if (!tu->timeri)
+		return -EBADFD;
 	memset(&status, 0, sizeof(status));
 	status.tstamp.tv_sec = tu->tstamp.tv_sec;
 	status.tstamp.tv_nsec = tu->tstamp.tv_nsec;

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

* [PATCH 3.18 25/67] fs/9p: Compare qid.path in v9fs_test_inode
  2017-11-28 10:18 [PATCH 3.18 00/67] 3.18.85-stable review Greg Kroah-Hartman
                   ` (22 preceding siblings ...)
  2017-11-28 10:19 ` [PATCH 3.18 24/67] ALSA: timer: Remove kernel warning at compat ioctl error paths Greg Kroah-Hartman
@ 2017-11-28 10:19 ` Greg Kroah-Hartman
  2017-11-28 10:19 ` [PATCH 3.18 26/67] iscsi-target: Fix non-immediate TMR reference leak Greg Kroah-Hartman
                   ` (42 subsequent siblings)
  66 siblings, 0 replies; 69+ messages in thread
From: Greg Kroah-Hartman @ 2017-11-28 10:19 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Latchesar Ionkov, Tuomas Tynkkynen, Al Viro

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

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

From: Tuomas Tynkkynen <tuomas@tuxera.com>

commit 8ee031631546cf2f7859cc69593bd60bbdd70b46 upstream.

Commit fd2421f54423 ("fs/9p: When doing inode lookup compare qid details
and inode mode bits.") transformed v9fs_qid_iget() to use iget5_locked()
instead of iget_locked(). However, the test() callback is not checking
fid.path at all, which means that a lookup in the inode cache can now
accidentally locate a completely wrong inode from the same inode hash
bucket if the other fields (qid.type and qid.version) match.

Fixes: fd2421f54423 ("fs/9p: When doing inode lookup compare qid details and inode mode bits.")
Reviewed-by: Latchesar Ionkov <lucho@ionkov.net>
Signed-off-by: Tuomas Tynkkynen <tuomas@tuxera.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 fs/9p/vfs_inode.c      |    3 +++
 fs/9p/vfs_inode_dotl.c |    3 +++
 2 files changed, 6 insertions(+)

--- a/fs/9p/vfs_inode.c
+++ b/fs/9p/vfs_inode.c
@@ -483,6 +483,9 @@ static int v9fs_test_inode(struct inode
 
 	if (v9inode->qid.type != st->qid.type)
 		return 0;
+
+	if (v9inode->qid.path != st->qid.path)
+		return 0;
 	return 1;
 }
 
--- a/fs/9p/vfs_inode_dotl.c
+++ b/fs/9p/vfs_inode_dotl.c
@@ -87,6 +87,9 @@ static int v9fs_test_inode_dotl(struct i
 
 	if (v9inode->qid.type != st->qid.type)
 		return 0;
+
+	if (v9inode->qid.path != st->qid.path)
+		return 0;
 	return 1;
 }
 

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

* [PATCH 3.18 26/67] iscsi-target: Fix non-immediate TMR reference leak
  2017-11-28 10:18 [PATCH 3.18 00/67] 3.18.85-stable review Greg Kroah-Hartman
                   ` (23 preceding siblings ...)
  2017-11-28 10:19 ` [PATCH 3.18 25/67] fs/9p: Compare qid.path in v9fs_test_inode Greg Kroah-Hartman
@ 2017-11-28 10:19 ` Greg Kroah-Hartman
  2017-11-28 10:19 ` [PATCH 3.18 27/67] KVM: nVMX: set IDTR and GDTR limits when loading L1 host state Greg Kroah-Hartman
                   ` (41 subsequent siblings)
  66 siblings, 0 replies; 69+ messages in thread
From: Greg Kroah-Hartman @ 2017-11-28 10:19 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Mike Christie, Hannes Reinecke,
	Nicholas Bellinger

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

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

From: Nicholas Bellinger <nab@linux-iscsi.org>

commit 3fc9fb13a4b2576aeab86c62fd64eb29ab68659c upstream.

This patch fixes a se_cmd->cmd_kref reference leak that can
occur when a non immediate TMR is proceeded our of command
sequence number order, and CMDSN_LOWER_THAN_EXP is returned
by iscsit_sequence_cmd().

To address this bug, call target_put_sess_cmd() during this
special case following what iscsit_process_scsi_cmd() does
upon CMDSN_LOWER_THAN_EXP.

Cc: Mike Christie <mchristi@redhat.com>
Cc: Hannes Reinecke <hare@suse.com>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/target/iscsi/iscsi_target.c |    8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

--- a/drivers/target/iscsi/iscsi_target.c
+++ b/drivers/target/iscsi/iscsi_target.c
@@ -1915,12 +1915,14 @@ attach:
 
 	if (!(hdr->opcode & ISCSI_OP_IMMEDIATE)) {
 		int cmdsn_ret = iscsit_sequence_cmd(conn, cmd, buf, hdr->cmdsn);
-		if (cmdsn_ret == CMDSN_HIGHER_THAN_EXP)
+		if (cmdsn_ret == CMDSN_HIGHER_THAN_EXP) {
 			out_of_order_cmdsn = 1;
-		else if (cmdsn_ret == CMDSN_LOWER_THAN_EXP)
+		} else if (cmdsn_ret == CMDSN_LOWER_THAN_EXP) {
+			target_put_sess_cmd(&cmd->se_cmd);
 			return 0;
-		else if (cmdsn_ret == CMDSN_ERROR_CANNOT_RECOVER)
+		} else if (cmdsn_ret == CMDSN_ERROR_CANNOT_RECOVER) {
 			return -1;
+		}
 	}
 	iscsit_ack_from_expstatsn(conn, be32_to_cpu(hdr->exp_statsn));
 

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

* [PATCH 3.18 27/67] KVM: nVMX: set IDTR and GDTR limits when loading L1 host state
  2017-11-28 10:18 [PATCH 3.18 00/67] 3.18.85-stable review Greg Kroah-Hartman
                   ` (24 preceding siblings ...)
  2017-11-28 10:19 ` [PATCH 3.18 26/67] iscsi-target: Fix non-immediate TMR reference leak Greg Kroah-Hartman
@ 2017-11-28 10:19 ` Greg Kroah-Hartman
  2017-11-28 10:19 ` [PATCH 3.18 29/67] clk: ti: dra7-atl-clock: Fix of_node reference counting Greg Kroah-Hartman
                   ` (40 subsequent siblings)
  66 siblings, 0 replies; 69+ messages in thread
From: Greg Kroah-Hartman @ 2017-11-28 10:19 UTC (permalink / raw)
  To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Ladi Prosek, Paolo Bonzini

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

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

From: Ladi Prosek <lprosek@redhat.com>

commit 21f2d551183847bc7fbe8d866151d00cdad18752 upstream.

Intel SDM 27.5.2 Loading Host Segment and Descriptor-Table Registers:

"The GDTR and IDTR limits are each set to FFFFH."

Signed-off-by: Ladi Prosek <lprosek@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 arch/x86/kvm/vmx.c |    2 ++
 1 file changed, 2 insertions(+)

--- a/arch/x86/kvm/vmx.c
+++ b/arch/x86/kvm/vmx.c
@@ -8929,6 +8929,8 @@ static void load_vmcs12_host_state(struc
 	vmcs_writel(GUEST_SYSENTER_EIP, vmcs12->host_ia32_sysenter_eip);
 	vmcs_writel(GUEST_IDTR_BASE, vmcs12->host_idtr_base);
 	vmcs_writel(GUEST_GDTR_BASE, vmcs12->host_gdtr_base);
+	vmcs_write32(GUEST_IDTR_LIMIT, 0xFFFF);
+	vmcs_write32(GUEST_GDTR_LIMIT, 0xFFFF);
 
 	/* If not VM_EXIT_CLEAR_BNDCFGS, the L2 value propagates to L1.  */
 	if (vmcs12->vm_exit_controls & VM_EXIT_CLEAR_BNDCFGS)

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

* [PATCH 3.18 29/67] clk: ti: dra7-atl-clock: Fix of_node reference counting
  2017-11-28 10:18 [PATCH 3.18 00/67] 3.18.85-stable review Greg Kroah-Hartman
                   ` (25 preceding siblings ...)
  2017-11-28 10:19 ` [PATCH 3.18 27/67] KVM: nVMX: set IDTR and GDTR limits when loading L1 host state Greg Kroah-Hartman
@ 2017-11-28 10:19 ` Greg Kroah-Hartman
  2017-11-28 10:19 ` [PATCH 3.18 30/67] clk: ti: dra7-atl-clock: fix child-node lookups Greg Kroah-Hartman
                   ` (39 subsequent siblings)
  66 siblings, 0 replies; 69+ messages in thread
From: Greg Kroah-Hartman @ 2017-11-28 10:19 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Peter Ujfalusi, Nishanth Menon, Stephen Boyd

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

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

From: Peter Ujfalusi <peter.ujfalusi@ti.com>

commit 660e1551939931657808d47838a3f443c0e83fd0 upstream.

of_find_node_by_name() will call of_node_put() on the node so we need to
get it first to avoid warnings.
The cfg_node needs to be put after we have finished processing the
properties.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Tested-by: Nishanth Menon <nm@ti.com>
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/clk/ti/clk-dra7-atl.c |    2 ++
 1 file changed, 2 insertions(+)

--- a/drivers/clk/ti/clk-dra7-atl.c
+++ b/drivers/clk/ti/clk-dra7-atl.c
@@ -259,6 +259,7 @@ static int of_dra7_atl_clk_probe(struct
 
 		/* Get configuration for the ATL instances */
 		snprintf(prop, sizeof(prop), "atl%u", i);
+		of_node_get(node);
 		cfg_node = of_find_node_by_name(node, prop);
 		if (cfg_node) {
 			ret = of_property_read_u32(cfg_node, "bws",
@@ -272,6 +273,7 @@ static int of_dra7_atl_clk_probe(struct
 				atl_write(cinfo, DRA7_ATL_AWSMUX_REG(i),
 					  cdesc->aws);
 			}
+			of_node_put(cfg_node);
 		}
 
 		cdesc->probed = true;

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

* [PATCH 3.18 30/67] clk: ti: dra7-atl-clock: fix child-node lookups
  2017-11-28 10:18 [PATCH 3.18 00/67] 3.18.85-stable review Greg Kroah-Hartman
                   ` (26 preceding siblings ...)
  2017-11-28 10:19 ` [PATCH 3.18 29/67] clk: ti: dra7-atl-clock: Fix of_node reference counting Greg Kroah-Hartman
@ 2017-11-28 10:19 ` Greg Kroah-Hartman
  2017-11-28 10:19 ` [PATCH 3.18 31/67] IB/srpt: Do not accept invalid initiator port names Greg Kroah-Hartman
                   ` (38 subsequent siblings)
  66 siblings, 0 replies; 69+ messages in thread
From: Greg Kroah-Hartman @ 2017-11-28 10:19 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Peter Ujfalusi, Johan Hovold, Stephen Boyd

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

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

From: Johan Hovold <johan@kernel.org>

commit 33ec6dbc5a02677509d97fe36cd2105753f0f0ea upstream.

Fix child node-lookup during probe, which ended up searching the whole
device tree depth-first starting at parent rather than just matching on
its children.

Note that the original premature free of the parent node has already
been fixed separately, but that fix was apparently never backported to
stable.

Fixes: 9ac33b0ce81f ("CLK: TI: Driver for DRA7 ATL (Audio Tracking Logic)")
Fixes: 660e15519399 ("clk: ti: dra7-atl-clock: Fix of_node reference counting")
Cc: Peter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: Johan Hovold <johan@kernel.org>
Acked-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/clk/ti/clk-dra7-atl.c |    3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

--- a/drivers/clk/ti/clk-dra7-atl.c
+++ b/drivers/clk/ti/clk-dra7-atl.c
@@ -259,8 +259,7 @@ static int of_dra7_atl_clk_probe(struct
 
 		/* Get configuration for the ATL instances */
 		snprintf(prop, sizeof(prop), "atl%u", i);
-		of_node_get(node);
-		cfg_node = of_find_node_by_name(node, prop);
+		cfg_node = of_get_child_by_name(node, prop);
 		if (cfg_node) {
 			ret = of_property_read_u32(cfg_node, "bws",
 						   &cdesc->bws);

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

* [PATCH 3.18 31/67] IB/srpt: Do not accept invalid initiator port names
  2017-11-28 10:18 [PATCH 3.18 00/67] 3.18.85-stable review Greg Kroah-Hartman
                   ` (27 preceding siblings ...)
  2017-11-28 10:19 ` [PATCH 3.18 30/67] clk: ti: dra7-atl-clock: fix child-node lookups Greg Kroah-Hartman
@ 2017-11-28 10:19 ` Greg Kroah-Hartman
  2017-11-28 10:19 ` [PATCH 3.18 32/67] NFC: fix device-allocation error return Greg Kroah-Hartman
                   ` (37 subsequent siblings)
  66 siblings, 0 replies; 69+ messages in thread
From: Greg Kroah-Hartman @ 2017-11-28 10:19 UTC (permalink / raw)
  To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Bart Van Assche, Doug Ledford

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

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

From: Bart Van Assche <bart.vanassche@wdc.com>

commit c70ca38960399a63d5c048b7b700612ea321d17e upstream.

Make srpt_parse_i_port_id() return a negative value if hex2bin()
fails.

Fixes: commit a42d985bd5b2 ("ib_srpt: Initial SRP Target merge for v3.3-rc1")
Signed-off-by: Bart Van Assche <bart.vanassche@wdc.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/infiniband/ulp/srpt/ib_srpt.c |    9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

--- a/drivers/infiniband/ulp/srpt/ib_srpt.c
+++ b/drivers/infiniband/ulp/srpt/ib_srpt.c
@@ -3522,7 +3522,7 @@ static int srpt_parse_i_port_id(u8 i_por
 {
 	const char *p;
 	unsigned len, count, leading_zero_bytes;
-	int ret, rc;
+	int ret;
 
 	p = name;
 	if (strncasecmp(p, "0x", 2) == 0)
@@ -3534,10 +3534,9 @@ static int srpt_parse_i_port_id(u8 i_por
 	count = min(len / 2, 16U);
 	leading_zero_bytes = 16 - count;
 	memset(i_port_id, 0, leading_zero_bytes);
-	rc = hex2bin(i_port_id + leading_zero_bytes, p, count);
-	if (rc < 0)
-		pr_debug("hex2bin failed for srpt_parse_i_port_id: %d\n", rc);
-	ret = 0;
+	ret = hex2bin(i_port_id + leading_zero_bytes, p, count);
+	if (ret < 0)
+		pr_debug("hex2bin failed for srpt_parse_i_port_id: %d\n", ret);
 out:
 	return ret;
 }

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

* [PATCH 3.18 32/67] NFC: fix device-allocation error return
  2017-11-28 10:18 [PATCH 3.18 00/67] 3.18.85-stable review Greg Kroah-Hartman
                   ` (28 preceding siblings ...)
  2017-11-28 10:19 ` [PATCH 3.18 31/67] IB/srpt: Do not accept invalid initiator port names Greg Kroah-Hartman
@ 2017-11-28 10:19 ` Greg Kroah-Hartman
  2017-11-28 10:19 ` [PATCH 3.18 33/67] time: Always make sure wall_to_monotonic isnt positive Greg Kroah-Hartman
                   ` (36 subsequent siblings)
  66 siblings, 0 replies; 69+ messages in thread
From: Greg Kroah-Hartman @ 2017-11-28 10:19 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Dan Carpenter, Johan Hovold, Samuel Ortiz

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

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

From: Johan Hovold <johan@kernel.org>

commit c45e3e4c5b134b081e8af362109905427967eb19 upstream.

A recent change fixing NFC device allocation itself introduced an
error-handling bug by returning an error pointer in case device-id
allocation failed. This is clearly broken as the callers still expected
NULL to be returned on errors as detected by Dan's static checker.

Fix this up by returning NULL in the event that we've run out of memory
when allocating a new device id.

Note that the offending commit is marked for stable (3.8) so this fix
needs to be backported along with it.

Fixes: 20777bc57c34 ("NFC: fix broken device allocation")
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Johan Hovold <johan@kernel.org>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 net/nfc/core.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/net/nfc/core.c
+++ b/net/nfc/core.c
@@ -1074,7 +1074,7 @@ struct nfc_dev *nfc_allocate_device(stru
 err_free_dev:
 	kfree(dev);
 
-	return ERR_PTR(rc);
+	return NULL;
 }
 EXPORT_SYMBOL(nfc_allocate_device);
 

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

* [PATCH 3.18 33/67] time: Always make sure wall_to_monotonic isnt positive
  2017-11-28 10:18 [PATCH 3.18 00/67] 3.18.85-stable review Greg Kroah-Hartman
                   ` (29 preceding siblings ...)
  2017-11-28 10:19 ` [PATCH 3.18 32/67] NFC: fix device-allocation error return Greg Kroah-Hartman
@ 2017-11-28 10:19 ` Greg Kroah-Hartman
  2017-11-28 10:19 ` [PATCH 3.18 34/67] i40e: Use smp_rmb rather than read_barrier_depends Greg Kroah-Hartman
                   ` (35 subsequent siblings)
  66 siblings, 0 replies; 69+ messages in thread
From: Greg Kroah-Hartman @ 2017-11-28 10:19 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Prarit Bhargava, Richard Cochran,
	Ingo Molnar, Thomas Gleixner, Wang YanQing, John Stultz,
	Harsh Shandilya

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

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

From: Wang YanQing <udknight@gmail.com>

commit e1d7ba8735551ed79c7a0463a042353574b96da3 upstream.

Two issues were found on an IMX6 development board without an
enabled RTC device(resulting in the boot time and monotonic
time being initialized to 0).

Issue 1:exportfs -a generate:
       "exportfs: /opt/nfs/arm does not support NFS export"
Issue 2:cat /proc/stat:
       "btime 4294967236"

The same issues can be reproduced on x86 after running the
following code:
	int main(void)
	{
	    struct timeval val;
	    int ret;

	    val.tv_sec = 0;
	    val.tv_usec = 0;
	    ret = settimeofday(&val, NULL);
	    return 0;
	}

Two issues are different symptoms of same problem:
The reason is a positive wall_to_monotonic pushes boot time back
to the time before Epoch, and getboottime will return negative
value.

In symptom 1:
          negative boot time cause get_expiry() to overflow time_t
          when input expire time is 2147483647, then cache_flush()
          always clears entries just added in ip_map_parse.
In symptom 2:
          show_stat() uses "unsigned long" to print negative btime
          value returned by getboottime.

This patch fix the problem by prohibiting time from being set to a value which
would cause a negative boot time. As a result one can't set the CLOCK_REALTIME
time prior to (1970 + system uptime).

Cc: Prarit Bhargava <prarit@redhat.com>
Cc: Richard Cochran <richardcochran@gmail.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Wang YanQing <udknight@gmail.com>
[jstultz: reworded commit message]
[msfjarvis: Backport to 3.18 as we are missing the do_settimeofday64
function the upstream commit patches, so we apply the changes to
do_settimeofday]
Signed-off-by: John Stultz <john.stultz@linaro.org>
Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 kernel/time/timekeeping.c |   13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

--- a/kernel/time/timekeeping.c
+++ b/kernel/time/timekeeping.c
@@ -712,6 +712,7 @@ int do_settimeofday(const struct timespe
 	struct timekeeper *tk = &tk_core.timekeeper;
 	struct timespec64 ts_delta, xt, tmp;
 	unsigned long flags;
+	int ret = 0;
 
 	if (!timespec_valid_strict(tv))
 		return -EINVAL;
@@ -725,11 +726,16 @@ int do_settimeofday(const struct timespe
 	ts_delta.tv_sec = tv->tv_sec - xt.tv_sec;
 	ts_delta.tv_nsec = tv->tv_nsec - xt.tv_nsec;
 
+	if (timespec64_compare(&tk->wall_to_monotonic, &ts_delta) > 0) {
+		ret = -EINVAL;
+		goto out;
+	}
+
 	tk_set_wall_to_mono(tk, timespec64_sub(tk->wall_to_monotonic, ts_delta));
 
 	tmp = timespec_to_timespec64(*tv);
 	tk_set_xtime(tk, &tmp);
-
+out:
 	timekeeping_update(tk, TK_CLEAR_NTP | TK_MIRROR | TK_CLOCK_WAS_SET);
 
 	write_seqcount_end(&tk_core.seq);
@@ -738,7 +744,7 @@ int do_settimeofday(const struct timespe
 	/* signal hrtimers about time change */
 	clock_was_set();
 
-	return 0;
+	return ret;
 }
 EXPORT_SYMBOL(do_settimeofday);
 
@@ -767,7 +773,8 @@ int timekeeping_inject_offset(struct tim
 
 	/* Make sure the proposed value is valid */
 	tmp = timespec64_add(tk_xtime(tk),  ts64);
-	if (!timespec64_valid_strict(&tmp)) {
+	if (timespec64_compare(&tk->wall_to_monotonic, &ts64) > 0 ||
+		!timespec64_valid_strict(&tmp)) {
 		ret = -EINVAL;
 		goto error;
 	}

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

* [PATCH 3.18 34/67] i40e: Use smp_rmb rather than read_barrier_depends
  2017-11-28 10:18 [PATCH 3.18 00/67] 3.18.85-stable review Greg Kroah-Hartman
                   ` (30 preceding siblings ...)
  2017-11-28 10:19 ` [PATCH 3.18 33/67] time: Always make sure wall_to_monotonic isnt positive Greg Kroah-Hartman
@ 2017-11-28 10:19 ` Greg Kroah-Hartman
  2017-11-28 10:19 ` [PATCH 3.18 35/67] igb: " Greg Kroah-Hartman
                   ` (34 subsequent siblings)
  66 siblings, 0 replies; 69+ messages in thread
From: Greg Kroah-Hartman @ 2017-11-28 10:19 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Brian King, Jesse Brandeburg,
	Andrew Bowers, Jeff Kirsher

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

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

From: Brian King <brking@linux.vnet.ibm.com>

commit 52c6912fde0133981ee50ba08808f257829c4c93 upstream.

The original issue being fixed in this patch was seen with the ixgbe
driver, but the same issue exists with i40e as well, as the code is
very similar. read_barrier_depends is not sufficient to ensure
loads following it are not speculatively loaded out of order
by the CPU, which can result in stale data being loaded, causing
potential system crashes.

Signed-off-by: Brian King <brking@linux.vnet.ibm.com>
Acked-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/net/ethernet/intel/i40e/i40e_main.c |    2 +-
 drivers/net/ethernet/intel/i40e/i40e_txrx.c |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

--- a/drivers/net/ethernet/intel/i40e/i40e_main.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c
@@ -3214,7 +3214,7 @@ static bool i40e_clean_fdir_tx_irq(struc
 			break;
 
 		/* prevent any other reads prior to eop_desc */
-		read_barrier_depends();
+		smp_rmb();
 
 		/* if the descriptor isn't done, no work yet to do */
 		if (!(eop_desc->cmd_type_offset_bsz &
--- a/drivers/net/ethernet/intel/i40e/i40e_txrx.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_txrx.c
@@ -688,7 +688,7 @@ static bool i40e_clean_tx_irq(struct i40
 			break;
 
 		/* prevent any other reads prior to eop_desc */
-		read_barrier_depends();
+		smp_rmb();
 
 		/* we have caught up to head, no work left to do */
 		if (tx_head == tx_desc)

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

* [PATCH 3.18 35/67] igb: Use smp_rmb rather than read_barrier_depends
  2017-11-28 10:18 [PATCH 3.18 00/67] 3.18.85-stable review Greg Kroah-Hartman
                   ` (31 preceding siblings ...)
  2017-11-28 10:19 ` [PATCH 3.18 34/67] i40e: Use smp_rmb rather than read_barrier_depends Greg Kroah-Hartman
@ 2017-11-28 10:19 ` Greg Kroah-Hartman
  2017-11-28 10:19 ` [PATCH 3.18 36/67] igbvf: " Greg Kroah-Hartman
                   ` (33 subsequent siblings)
  66 siblings, 0 replies; 69+ messages in thread
From: Greg Kroah-Hartman @ 2017-11-28 10:19 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Brian King, Jesse Brandeburg,
	Aaron Brown, Jeff Kirsher

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

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

From: Brian King <brking@linux.vnet.ibm.com>

commit c4cb99185b4cc96c0a1c70104dc21ae14d7e7f28 upstream.

The original issue being fixed in this patch was seen with the ixgbe
driver, but the same issue exists with igb as well, as the code is
very similar. read_barrier_depends is not sufficient to ensure
loads following it are not speculatively loaded out of order
by the CPU, which can result in stale data being loaded, causing
potential system crashes.

Signed-off-by: Brian King <brking@linux.vnet.ibm.com>
Acked-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/net/ethernet/intel/igb/igb_main.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/drivers/net/ethernet/intel/igb/igb_main.c
+++ b/drivers/net/ethernet/intel/igb/igb_main.c
@@ -6383,7 +6383,7 @@ static bool igb_clean_tx_irq(struct igb_
 			break;
 
 		/* prevent any other reads prior to eop_desc */
-		read_barrier_depends();
+		smp_rmb();
 
 		/* if DD is not set pending work has not been completed */
 		if (!(eop_desc->wb.status & cpu_to_le32(E1000_TXD_STAT_DD)))

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

* [PATCH 3.18 36/67] igbvf: Use smp_rmb rather than read_barrier_depends
  2017-11-28 10:18 [PATCH 3.18 00/67] 3.18.85-stable review Greg Kroah-Hartman
                   ` (32 preceding siblings ...)
  2017-11-28 10:19 ` [PATCH 3.18 35/67] igb: " Greg Kroah-Hartman
@ 2017-11-28 10:19 ` Greg Kroah-Hartman
  2017-11-28 10:19 ` [PATCH 3.18 37/67] ixgbevf: " Greg Kroah-Hartman
                   ` (32 subsequent siblings)
  66 siblings, 0 replies; 69+ messages in thread
From: Greg Kroah-Hartman @ 2017-11-28 10:19 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Brian King, Jesse Brandeburg,
	Aaron Brown, Jeff Kirsher

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

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

From: Brian King <brking@linux.vnet.ibm.com>

commit 1e1f9ca546556e508d021545861f6b5fc75a95fe upstream.

The original issue being fixed in this patch was seen with the ixgbe
driver, but the same issue exists with igbvf as well, as the code is
very similar. read_barrier_depends is not sufficient to ensure
loads following it are not speculatively loaded out of order
by the CPU, which can result in stale data being loaded, causing
potential system crashes.

Signed-off-by: Brian King <brking@linux.vnet.ibm.com>
Acked-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/net/ethernet/intel/igbvf/netdev.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/drivers/net/ethernet/intel/igbvf/netdev.c
+++ b/drivers/net/ethernet/intel/igbvf/netdev.c
@@ -808,7 +808,7 @@ static bool igbvf_clean_tx_irq(struct ig
 			break;
 
 		/* prevent any other reads prior to eop_desc */
-		read_barrier_depends();
+		smp_rmb();
 
 		/* if DD is not set pending work has not been completed */
 		if (!(eop_desc->wb.status & cpu_to_le32(E1000_TXD_STAT_DD)))

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

* [PATCH 3.18 37/67] ixgbevf: Use smp_rmb rather than read_barrier_depends
  2017-11-28 10:18 [PATCH 3.18 00/67] 3.18.85-stable review Greg Kroah-Hartman
                   ` (33 preceding siblings ...)
  2017-11-28 10:19 ` [PATCH 3.18 36/67] igbvf: " Greg Kroah-Hartman
@ 2017-11-28 10:19 ` Greg Kroah-Hartman
  2017-11-28 10:19 ` [PATCH 3.18 38/67] i40evf: " Greg Kroah-Hartman
                   ` (31 subsequent siblings)
  66 siblings, 0 replies; 69+ messages in thread
From: Greg Kroah-Hartman @ 2017-11-28 10:19 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Brian King, Jesse Brandeburg,
	Andrew Bowers, Jeff Kirsher

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

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

From: Brian King <brking@linux.vnet.ibm.com>

commit ae0c585d93dfaf923d2c7eb44b2c3ab92854ea9b upstream.

The original issue being fixed in this patch was seen with the ixgbe
driver, but the same issue exists with ixgbevf as well, as the code is
very similar. read_barrier_depends is not sufficient to ensure
loads following it are not speculatively loaded out of order
by the CPU, which can result in stale data being loaded, causing
potential system crashes.

Signed-off-by: Brian King <brking@linux.vnet.ibm.com>
Acked-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
+++ b/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
@@ -249,7 +249,7 @@ static bool ixgbevf_clean_tx_irq(struct
 			break;
 
 		/* prevent any other reads prior to eop_desc */
-		read_barrier_depends();
+		smp_rmb();
 
 		/* if DD is not set pending work has not been completed */
 		if (!(eop_desc->wb.status & cpu_to_le32(IXGBE_TXD_STAT_DD)))

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

* [PATCH 3.18 38/67] i40evf: Use smp_rmb rather than read_barrier_depends
  2017-11-28 10:18 [PATCH 3.18 00/67] 3.18.85-stable review Greg Kroah-Hartman
                   ` (34 preceding siblings ...)
  2017-11-28 10:19 ` [PATCH 3.18 37/67] ixgbevf: " Greg Kroah-Hartman
@ 2017-11-28 10:19 ` Greg Kroah-Hartman
  2017-11-28 10:19 ` [PATCH 3.18 39/67] fm10k: " Greg Kroah-Hartman
                   ` (30 subsequent siblings)
  66 siblings, 0 replies; 69+ messages in thread
From: Greg Kroah-Hartman @ 2017-11-28 10:19 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Brian King, Jesse Brandeburg,
	Andrew Bowers, Jeff Kirsher

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

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

From: Brian King <brking@linux.vnet.ibm.com>

commit f72271e2a0ae4277d53c4053f5eed8bb346ba38a upstream.

The original issue being fixed in this patch was seen with the ixgbe
driver, but the same issue exists with i40evf as well, as the code is
very similar. read_barrier_depends is not sufficient to ensure
loads following it are not speculatively loaded out of order
by the CPU, which can result in stale data being loaded, causing
potential system crashes.

Signed-off-by: Brian King <brking@linux.vnet.ibm.com>
Acked-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/net/ethernet/intel/i40evf/i40e_txrx.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/drivers/net/ethernet/intel/i40evf/i40e_txrx.c
+++ b/drivers/net/ethernet/intel/i40evf/i40e_txrx.c
@@ -222,7 +222,7 @@ static bool i40e_clean_tx_irq(struct i40
 			break;
 
 		/* prevent any other reads prior to eop_desc */
-		read_barrier_depends();
+		smp_rmb();
 
 		/* we have caught up to head, no work left to do */
 		if (tx_head == tx_desc)

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

* [PATCH 3.18 39/67] fm10k: Use smp_rmb rather than read_barrier_depends
  2017-11-28 10:18 [PATCH 3.18 00/67] 3.18.85-stable review Greg Kroah-Hartman
                   ` (35 preceding siblings ...)
  2017-11-28 10:19 ` [PATCH 3.18 38/67] i40evf: " Greg Kroah-Hartman
@ 2017-11-28 10:19 ` Greg Kroah-Hartman
  2017-11-28 10:19 ` [PATCH 3.18 40/67] ixgbe: Fix skb list corruption on Power systems Greg Kroah-Hartman
                   ` (29 subsequent siblings)
  66 siblings, 0 replies; 69+ messages in thread
From: Greg Kroah-Hartman @ 2017-11-28 10:19 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Brian King, Jesse Brandeburg, Jeff Kirsher

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

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

From: Brian King <brking@linux.vnet.ibm.com>

commit 7b8edcc685b5e2c3c37aa13dc50a88e84a5bfef8 upstream.

The original issue being fixed in this patch was seen with the ixgbe
driver, but the same issue exists with fm10k as well, as the code is
very similar. read_barrier_depends is not sufficient to ensure
loads following it are not speculatively loaded out of order
by the CPU, which can result in stale data being loaded, causing
potential system crashes.

Signed-off-by: Brian King <brking@linux.vnet.ibm.com>
Acked-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/net/ethernet/intel/fm10k/fm10k_main.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/drivers/net/ethernet/intel/fm10k/fm10k_main.c
+++ b/drivers/net/ethernet/intel/fm10k/fm10k_main.c
@@ -1218,7 +1218,7 @@ static bool fm10k_clean_tx_irq(struct fm
 			break;
 
 		/* prevent any other reads prior to eop_desc */
-		read_barrier_depends();
+		smp_rmb();
 
 		/* if DD is not set pending work has not been completed */
 		if (!(eop_desc->flags & FM10K_TXD_FLAG_DONE))

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

* [PATCH 3.18 40/67] ixgbe: Fix skb list corruption on Power systems
  2017-11-28 10:18 [PATCH 3.18 00/67] 3.18.85-stable review Greg Kroah-Hartman
                   ` (36 preceding siblings ...)
  2017-11-28 10:19 ` [PATCH 3.18 39/67] fm10k: " Greg Kroah-Hartman
@ 2017-11-28 10:19 ` Greg Kroah-Hartman
  2017-11-28 10:19 ` [PATCH 3.18 41/67] parisc: Fix validity check of pointer size argument in new CAS implementation Greg Kroah-Hartman
                   ` (28 subsequent siblings)
  66 siblings, 0 replies; 69+ messages in thread
From: Greg Kroah-Hartman @ 2017-11-28 10:19 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Brian King, Jesse Brandeburg,
	Andrew Bowers, Jeff Kirsher

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

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

From: Brian King <brking@linux.vnet.ibm.com>

commit 0a9a17e3bb4564caf4bfe2a6783ae1287667d188 upstream.

This patch fixes an issue seen on Power systems with ixgbe which results
in skb list corruption and an eventual kernel oops. The following is what
was observed:

CPU 1                                   CPU2
============================            ============================
1: ixgbe_xmit_frame_ring                ixgbe_clean_tx_irq
2:  first->skb = skb                     eop_desc = tx_buffer->next_to_watch
3:  ixgbe_tx_map                         read_barrier_depends()
4:   wmb                                 check adapter written status bit
5:   first->next_to_watch = tx_desc      napi_consume_skb(tx_buffer->skb ..);
6:   writel(i, tx_ring->tail);

The read_barrier_depends is insufficient to ensure that tx_buffer->skb does not
get loaded prior to tx_buffer->next_to_watch, which then results in loading
a stale skb pointer. This patch replaces the read_barrier_depends with
smp_rmb to ensure loads are ordered with respect to the load of
tx_buffer->next_to_watch.

Signed-off-by: Brian King <brking@linux.vnet.ibm.com>
Acked-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
@@ -1080,7 +1080,7 @@ static bool ixgbe_clean_tx_irq(struct ix
 			break;
 
 		/* prevent any other reads prior to eop_desc */
-		read_barrier_depends();
+		smp_rmb();
 
 		/* if DD is not set pending work has not been completed */
 		if (!(eop_desc->wb.status & cpu_to_le32(IXGBE_TXD_STAT_DD)))

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

* [PATCH 3.18 41/67] parisc: Fix validity check of pointer size argument in new CAS implementation
  2017-11-28 10:18 [PATCH 3.18 00/67] 3.18.85-stable review Greg Kroah-Hartman
                   ` (37 preceding siblings ...)
  2017-11-28 10:19 ` [PATCH 3.18 40/67] ixgbe: Fix skb list corruption on Power systems Greg Kroah-Hartman
@ 2017-11-28 10:19 ` Greg Kroah-Hartman
  2017-11-28 10:19 ` [PATCH 3.18 42/67] powerpc/signal: Properly handle return value from uprobe_deny_signal() Greg Kroah-Hartman
                   ` (27 subsequent siblings)
  66 siblings, 0 replies; 69+ messages in thread
From: Greg Kroah-Hartman @ 2017-11-28 10:19 UTC (permalink / raw)
  To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, John David Anglin, Helge Deller

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

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

From: John David Anglin <dave.anglin@bell.net>

commit 05f016d2ca7a4fab99d5d5472168506ddf95e74f upstream.

As noted by Christoph Biedl, passing a pointer size of 4 in the new CAS
implementation causes a kernel crash.  The attached patch corrects the
off by one error in the argument validity check.

In reviewing the code, I noticed that we only perform word operations
with the pointer size argument.  The subi instruction intentionally uses
a word condition on 64-bit kernels.  Nullification was used instead of a
cmpib instruction as the branch should never be taken.  The shlw
pseudo-operation generates a depw,z instruction and it clears the target
before doing a shift left word deposit.  Thus, we don't need to clip the
upper 32 bits of this argument on 64-bit kernels.

Tested with a gcc testsuite run with a 64-bit kernel.  The gcc atomic
code in libgcc is the only direct user of the new CAS implementation
that I am aware of.

Signed-off-by: John David Anglin <dave.anglin@bell.net>
Signed-off-by: Helge Deller <deller@gmx.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 arch/parisc/kernel/syscall.S |    6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

--- a/arch/parisc/kernel/syscall.S
+++ b/arch/parisc/kernel/syscall.S
@@ -688,15 +688,15 @@ cas_action:
 	/* ELF32 Process entry path */
 lws_compare_and_swap_2:
 #ifdef CONFIG_64BIT
-	/* Clip the input registers */
+	/* Clip the input registers. We don't need to clip %r23 as we
+	   only use it for word operations */
 	depdi	0, 31, 32, %r26
 	depdi	0, 31, 32, %r25
 	depdi	0, 31, 32, %r24
-	depdi	0, 31, 32, %r23
 #endif
 
 	/* Check the validity of the size pointer */
-	subi,>>= 4, %r23, %r0
+	subi,>>= 3, %r23, %r0
 	b,n	lws_exit_nosys
 
 	/* Jump to the functions which will load the old and new values into

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

* [PATCH 3.18 42/67] powerpc/signal: Properly handle return value from uprobe_deny_signal()
  2017-11-28 10:18 [PATCH 3.18 00/67] 3.18.85-stable review Greg Kroah-Hartman
                   ` (38 preceding siblings ...)
  2017-11-28 10:19 ` [PATCH 3.18 41/67] parisc: Fix validity check of pointer size argument in new CAS implementation Greg Kroah-Hartman
@ 2017-11-28 10:19 ` Greg Kroah-Hartman
  2017-11-28 10:19 ` [PATCH 3.18 43/67] media: Dont do DMA on stack for firmware upload in the AS102 driver Greg Kroah-Hartman
                   ` (26 subsequent siblings)
  66 siblings, 0 replies; 69+ messages in thread
From: Greg Kroah-Hartman @ 2017-11-28 10:19 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Anton Blanchard, Naveen N. Rao,
	Michael Ellerman

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

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

From: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>

commit 46725b17f1c6c815a41429259b3f070c01e71bc1 upstream.

When a uprobe is installed on an instruction that we currently do not
emulate, we copy the instruction into a xol buffer and single step
that instruction. If that instruction generates a fault, we abort the
single stepping before invoking the signal handler. Once the signal
handler is done, the uprobe trap is hit again since the instruction is
retried and the process repeats.

We use uprobe_deny_signal() to detect if the xol instruction triggered
a signal. If so, we clear TIF_SIGPENDING and set TIF_UPROBE so that the
signal is not handled until after the single stepping is aborted. In
this case, uprobe_deny_signal() returns true and get_signal() ends up
returning 0. However, in do_signal(), we are not looking at the return
value, but depending on ksig.sig for further action, all with an
uninitialized ksig that is not touched in this scenario. Fix the same
by initializing ksig.sig to 0.

Fixes: 129b69df9c90 ("powerpc: Use get_signal() signal_setup_done()")
Reported-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 arch/powerpc/kernel/signal.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/arch/powerpc/kernel/signal.c
+++ b/arch/powerpc/kernel/signal.c
@@ -102,7 +102,7 @@ static void check_syscall_restart(struct
 static void do_signal(struct pt_regs *regs)
 {
 	sigset_t *oldset = sigmask_to_save();
-	struct ksignal ksig;
+	struct ksignal ksig = { .sig = 0 };
 	int ret;
 	int is32 = is_32bit_task();
 

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

* [PATCH 3.18 43/67] media: Dont do DMA on stack for firmware upload in the AS102 driver
  2017-11-28 10:18 [PATCH 3.18 00/67] 3.18.85-stable review Greg Kroah-Hartman
                   ` (39 preceding siblings ...)
  2017-11-28 10:19 ` [PATCH 3.18 42/67] powerpc/signal: Properly handle return value from uprobe_deny_signal() Greg Kroah-Hartman
@ 2017-11-28 10:19 ` Greg Kroah-Hartman
  2017-11-28 10:19 ` [PATCH 3.18 44/67] media: rc: check for integer overflow Greg Kroah-Hartman
                   ` (25 subsequent siblings)
  66 siblings, 0 replies; 69+ messages in thread
From: Greg Kroah-Hartman @ 2017-11-28 10:19 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Michele Baldessari, Mauro Carvalho Chehab

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

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

From: Michele Baldessari <michele@acksyn.org>

commit b3120d2cc447ee77b9d69bf4ad7b452c9adb4d39 upstream.

Firmware load on AS102 is using the stack which is not allowed any
longer. We currently fail with:

kernel: transfer buffer not dma capable
kernel: ------------[ cut here ]------------
kernel: WARNING: CPU: 0 PID: 598 at drivers/usb/core/hcd.c:1595 usb_hcd_map_urb_for_dma+0x41d/0x620
kernel: Modules linked in: amd64_edac_mod(-) edac_mce_amd as102_fe dvb_as102(+) kvm_amd kvm snd_hda_codec_realtek dvb_core snd_hda_codec_generic snd_hda_codec_hdmi snd_hda_intel snd_hda_codec irqbypass crct10dif_pclmul crc32_pclmul snd_hda_core snd_hwdep snd_seq ghash_clmulni_intel sp5100_tco fam15h_power wmi k10temp i2c_piix4 snd_seq_device snd_pcm snd_timer parport_pc parport tpm_infineon snd tpm_tis soundcore tpm_tis_core tpm shpchp acpi_cpufreq xfs libcrc32c amdgpu amdkfd amd_iommu_v2 radeon hid_logitech_hidpp i2c_algo_bit drm_kms_helper crc32c_intel ttm drm r8169 mii hid_logitech_dj
kernel: CPU: 0 PID: 598 Comm: systemd-udevd Not tainted 4.13.10-200.fc26.x86_64 #1
kernel: Hardware name: ASUS All Series/AM1I-A, BIOS 0505 03/13/2014
kernel: task: ffff979933b24c80 task.stack: ffffaf83413a4000
kernel: RIP: 0010:usb_hcd_map_urb_for_dma+0x41d/0x620
systemd-fsck[659]: /dev/sda2: clean, 49/128016 files, 268609/512000 blocks
kernel: RSP: 0018:ffffaf83413a7728 EFLAGS: 00010282
systemd-udevd[604]: link_config: autonegotiation is unset or enabled, the speed and duplex are not writable.
kernel: RAX: 000000000000001f RBX: ffff979930bce780 RCX: 0000000000000000
kernel: RDX: 0000000000000000 RSI: ffff97993ec0e118 RDI: ffff97993ec0e118
kernel: RBP: ffffaf83413a7768 R08: 000000000000039a R09: 0000000000000000
kernel: R10: 0000000000000001 R11: 00000000ffffffff R12: 00000000fffffff5
kernel: R13: 0000000001400000 R14: 0000000000000001 R15: ffff979930806800
kernel: FS:  00007effaca5c8c0(0000) GS:ffff97993ec00000(0000) knlGS:0000000000000000
kernel: CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
kernel: CR2: 00007effa9fca962 CR3: 0000000233089000 CR4: 00000000000406f0
kernel: Call Trace:
kernel:  usb_hcd_submit_urb+0x493/0xb40
kernel:  ? page_cache_tree_insert+0x100/0x100
kernel:  ? xfs_iunlock+0xd5/0x100 [xfs]
kernel:  ? xfs_file_buffered_aio_read+0x57/0xc0 [xfs]
kernel:  usb_submit_urb+0x22d/0x560
kernel:  usb_start_wait_urb+0x6e/0x180
kernel:  usb_bulk_msg+0xb8/0x160
kernel:  as102_send_ep1+0x49/0xe0 [dvb_as102]
kernel:  ? devres_add+0x3f/0x50
kernel:  as102_firmware_upload.isra.0+0x1dc/0x210 [dvb_as102]
kernel:  as102_fw_upload+0xb6/0x1f0 [dvb_as102]
kernel:  as102_dvb_register+0x2af/0x2d0 [dvb_as102]
kernel:  as102_usb_probe+0x1f3/0x260 [dvb_as102]
kernel:  usb_probe_interface+0x124/0x300
kernel:  driver_probe_device+0x2ff/0x450
kernel:  __driver_attach+0xa4/0xe0
kernel:  ? driver_probe_device+0x450/0x450
kernel:  bus_for_each_dev+0x6e/0xb0
kernel:  driver_attach+0x1e/0x20
kernel:  bus_add_driver+0x1c7/0x270
kernel:  driver_register+0x60/0xe0
kernel:  usb_register_driver+0x81/0x150
kernel:  ? 0xffffffffc0807000
kernel:  as102_usb_driver_init+0x1e/0x1000 [dvb_as102]
kernel:  do_one_initcall+0x50/0x190
kernel:  ? __vunmap+0x81/0xb0
kernel:  ? kfree+0x154/0x170
kernel:  ? kmem_cache_alloc_trace+0x15f/0x1c0
kernel:  ? do_init_module+0x27/0x1e9
kernel:  do_init_module+0x5f/0x1e9
kernel:  load_module+0x2602/0x2c30
kernel:  SYSC_init_module+0x170/0x1a0
kernel:  ? SYSC_init_module+0x170/0x1a0
kernel:  SyS_init_module+0xe/0x10
kernel:  do_syscall_64+0x67/0x140
kernel:  entry_SYSCALL64_slow_path+0x25/0x25
kernel: RIP: 0033:0x7effab6cf3ea
kernel: RSP: 002b:00007fff5cfcbbc8 EFLAGS: 00000246 ORIG_RAX: 00000000000000af
kernel: RAX: ffffffffffffffda RBX: 00005569e0b83760 RCX: 00007effab6cf3ea
kernel: RDX: 00007effac2099c5 RSI: 0000000000009a13 RDI: 00005569e0b98c50
kernel: RBP: 00007effac2099c5 R08: 00005569e0b83ed0 R09: 0000000000001d80
kernel: R10: 00007effab98db00 R11: 0000000000000246 R12: 00005569e0b98c50
kernel: R13: 00005569e0b81c60 R14: 0000000000020000 R15: 00005569dfadfdf7
kernel: Code: 48 39 c8 73 30 80 3d 59 60 9d 00 00 41 bc f5 ff ff ff 0f 85 26 ff ff ff 48 c7 c7 b8 6b d0 92 c6 05 3f 60 9d 00 01 e8 24 3d ad ff <0f> ff 8b 53 64 e9 09 ff ff ff 65 48 8b 0c 25 00 d3 00 00 48 8b
kernel: ---[ end trace c4cae366180e70ec ]---
kernel: as10x_usb: error during firmware upload part1

Let's allocate the the structure dynamically so we can get the firmware
loaded correctly:
[   14.243057] as10x_usb: firmware: as102_data1_st.hex loaded with success
[   14.500777] as10x_usb: firmware: as102_data2_st.hex loaded with success

Signed-off-by: Michele Baldessari <michele@acksyn.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/media/usb/as102/as102_fw.c |   28 +++++++++++++++++-----------
 1 file changed, 17 insertions(+), 11 deletions(-)

--- a/drivers/media/usb/as102/as102_fw.c
+++ b/drivers/media/usb/as102/as102_fw.c
@@ -101,18 +101,23 @@ static int as102_firmware_upload(struct
 				 unsigned char *cmd,
 				 const struct firmware *firmware) {
 
-	struct as10x_fw_pkt_t fw_pkt;
+	struct as10x_fw_pkt_t *fw_pkt;
 	int total_read_bytes = 0, errno = 0;
 	unsigned char addr_has_changed = 0;
 
+	fw_pkt = kmalloc(sizeof(*fw_pkt), GFP_KERNEL);
+	if (!fw_pkt)
+		return -ENOMEM;
+
+
 	for (total_read_bytes = 0; total_read_bytes < firmware->size; ) {
 		int read_bytes = 0, data_len = 0;
 
 		/* parse intel hex line */
 		read_bytes = parse_hex_line(
 				(u8 *) (firmware->data + total_read_bytes),
-				fw_pkt.raw.address,
-				fw_pkt.raw.data,
+				fw_pkt->raw.address,
+				fw_pkt->raw.data,
 				&data_len,
 				&addr_has_changed);
 
@@ -122,28 +127,28 @@ static int as102_firmware_upload(struct
 		/* detect the end of file */
 		total_read_bytes += read_bytes;
 		if (total_read_bytes == firmware->size) {
-			fw_pkt.u.request[0] = 0x00;
-			fw_pkt.u.request[1] = 0x03;
+			fw_pkt->u.request[0] = 0x00;
+			fw_pkt->u.request[1] = 0x03;
 
 			/* send EOF command */
 			errno = bus_adap->ops->upload_fw_pkt(bus_adap,
 							     (uint8_t *)
-							     &fw_pkt, 2, 0);
+							     fw_pkt, 2, 0);
 			if (errno < 0)
 				goto error;
 		} else {
 			if (!addr_has_changed) {
 				/* prepare command to send */
-				fw_pkt.u.request[0] = 0x00;
-				fw_pkt.u.request[1] = 0x01;
+				fw_pkt->u.request[0] = 0x00;
+				fw_pkt->u.request[1] = 0x01;
 
-				data_len += sizeof(fw_pkt.u.request);
-				data_len += sizeof(fw_pkt.raw.address);
+				data_len += sizeof(fw_pkt->u.request);
+				data_len += sizeof(fw_pkt->raw.address);
 
 				/* send cmd to device */
 				errno = bus_adap->ops->upload_fw_pkt(bus_adap,
 								     (uint8_t *)
-								     &fw_pkt,
+								     fw_pkt,
 								     data_len,
 								     0);
 				if (errno < 0)
@@ -152,6 +157,7 @@ static int as102_firmware_upload(struct
 		}
 	}
 error:
+	kfree(fw_pkt);
 	return (errno == 0) ? total_read_bytes : errno;
 }
 

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

* [PATCH 3.18 44/67] media: rc: check for integer overflow
  2017-11-28 10:18 [PATCH 3.18 00/67] 3.18.85-stable review Greg Kroah-Hartman
                   ` (40 preceding siblings ...)
  2017-11-28 10:19 ` [PATCH 3.18 43/67] media: Dont do DMA on stack for firmware upload in the AS102 driver Greg Kroah-Hartman
@ 2017-11-28 10:19 ` Greg Kroah-Hartman
  2017-11-28 10:19 ` [PATCH 3.18 45/67] media: v4l2-ctrl: Fix flags field on Control events Greg Kroah-Hartman
                   ` (24 subsequent siblings)
  66 siblings, 0 replies; 69+ messages in thread
From: Greg Kroah-Hartman @ 2017-11-28 10:19 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Sean Young, Mauro Carvalho Chehab

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

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

From: Sean Young <sean@mess.org>

commit 3e45067f94bbd61dec0619b1c32744eb0de480c8 upstream.

The ioctl LIRC_SET_REC_TIMEOUT would set a timeout of 704ns if called
with a timeout of 4294968us.

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/rc/ir-lirc-codec.c |    9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

--- a/drivers/media/rc/ir-lirc-codec.c
+++ b/drivers/media/rc/ir-lirc-codec.c
@@ -289,11 +289,14 @@ static long ir_lirc_ioctl(struct file *f
 		if (!dev->max_timeout)
 			return -ENOSYS;
 
+		/* Check for multiply overflow */
+		if (val > U32_MAX / 1000)
+			return -EINVAL;
+
 		tmp = val * 1000;
 
-		if (tmp < dev->min_timeout ||
-		    tmp > dev->max_timeout)
-				return -EINVAL;
+		if (tmp < dev->min_timeout || tmp > dev->max_timeout)
+			return -EINVAL;
 
 		dev->timeout = tmp;
 		break;

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

* [PATCH 3.18 45/67] media: v4l2-ctrl: Fix flags field on Control events
  2017-11-28 10:18 [PATCH 3.18 00/67] 3.18.85-stable review Greg Kroah-Hartman
                   ` (41 preceding siblings ...)
  2017-11-28 10:19 ` [PATCH 3.18 44/67] media: rc: check for integer overflow Greg Kroah-Hartman
@ 2017-11-28 10:19 ` Greg Kroah-Hartman
  2017-11-28 10:19 ` [PATCH 3.18 46/67] net/9p: Switch to wait_event_killable() Greg Kroah-Hartman
                   ` (23 subsequent siblings)
  66 siblings, 0 replies; 69+ messages in thread
From: Greg Kroah-Hartman @ 2017-11-28 10:19 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Dimitrios Katsaros,
	Ricardo Ribalda Delgado, Hans Verkuil, Mauro Carvalho Chehab

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

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

From: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>

commit 9cac9d2fb2fe0e0cadacdb94415b3fe49e3f724f upstream.

VIDIOC_DQEVENT and VIDIOC_QUERY_EXT_CTRL should give the same output for
the control flags field.

This patch creates a new function user_flags(), that calculates the user
exported flags value (which is different than the kernel internal flags
structure). This function is then used by all the code that exports the
internal flags to userspace.

Reported-by: Dimitrios Katsaros <patcherwork@gmail.com>
Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/media/v4l2-core/v4l2-ctrls.c |   16 ++++++++++++----
 1 file changed, 12 insertions(+), 4 deletions(-)

--- a/drivers/media/v4l2-core/v4l2-ctrls.c
+++ b/drivers/media/v4l2-core/v4l2-ctrls.c
@@ -1196,6 +1196,16 @@ void v4l2_ctrl_fill(u32 id, const char *
 }
 EXPORT_SYMBOL(v4l2_ctrl_fill);
 
+static u32 user_flags(const struct v4l2_ctrl *ctrl)
+{
+	u32 flags = ctrl->flags;
+
+	if (ctrl->is_ptr)
+		flags |= V4L2_CTRL_FLAG_HAS_PAYLOAD;
+
+	return flags;
+}
+
 static void fill_event(struct v4l2_event *ev, struct v4l2_ctrl *ctrl, u32 changes)
 {
 	memset(ev->reserved, 0, sizeof(ev->reserved));
@@ -1203,7 +1213,7 @@ static void fill_event(struct v4l2_event
 	ev->id = ctrl->id;
 	ev->u.ctrl.changes = changes;
 	ev->u.ctrl.type = ctrl->type;
-	ev->u.ctrl.flags = ctrl->flags;
+	ev->u.ctrl.flags = user_flags(ctrl);
 	if (ctrl->is_ptr)
 		ev->u.ctrl.value64 = 0;
 	else
@@ -2540,10 +2550,8 @@ int v4l2_query_ext_ctrl(struct v4l2_ctrl
 	else
 		qc->id = ctrl->id;
 	strlcpy(qc->name, ctrl->name, sizeof(qc->name));
-	qc->flags = ctrl->flags;
+	qc->flags = user_flags(ctrl);
 	qc->type = ctrl->type;
-	if (ctrl->is_ptr)
-		qc->flags |= V4L2_CTRL_FLAG_HAS_PAYLOAD;
 	qc->elem_size = ctrl->elem_size;
 	qc->elems = ctrl->elems;
 	qc->nr_of_dims = ctrl->nr_of_dims;

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

* [PATCH 3.18 46/67] net/9p: Switch to wait_event_killable()
  2017-11-28 10:18 [PATCH 3.18 00/67] 3.18.85-stable review Greg Kroah-Hartman
                   ` (42 preceding siblings ...)
  2017-11-28 10:19 ` [PATCH 3.18 45/67] media: v4l2-ctrl: Fix flags field on Control events Greg Kroah-Hartman
@ 2017-11-28 10:19 ` Greg Kroah-Hartman
  2017-11-28 10:19 ` [PATCH 3.18 47/67] mtd: nand: Fix writing mtdoops to nand flash Greg Kroah-Hartman
                   ` (22 subsequent siblings)
  66 siblings, 0 replies; 69+ messages in thread
From: Greg Kroah-Hartman @ 2017-11-28 10:19 UTC (permalink / raw)
  To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Tuomas Tynkkynen, Al Viro

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

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

From: Tuomas Tynkkynen <tuomas@tuxera.com>

commit 9523feac272ccad2ad8186ba4fcc89103754de52 upstream.

Because userspace gets Very Unhappy when calls like stat() and execve()
return -EINTR on 9p filesystem mounts. For instance, when bash is
looking in PATH for things to execute and some SIGCHLD interrupts
stat(), bash can throw a spurious 'command not found' since it doesn't
retry the stat().

In practice, hitting the problem is rare and needs a really
slow/bogged down 9p server.

Signed-off-by: Tuomas Tynkkynen <tuomas@tuxera.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>


---
 net/9p/client.c       |    3 +--
 net/9p/trans_virtio.c |   13 ++++++-------
 2 files changed, 7 insertions(+), 9 deletions(-)

--- a/net/9p/client.c
+++ b/net/9p/client.c
@@ -753,8 +753,7 @@ p9_client_rpc(struct p9_client *c, int8_
 	}
 again:
 	/* Wait for the response */
-	err = wait_event_interruptible(*req->wq,
-				       req->status >= REQ_STATUS_RCVD);
+	err = wait_event_killable(*req->wq, req->status >= REQ_STATUS_RCVD);
 
 	/*
 	 * Make sure our req is coherent with regard to updates in other
--- a/net/9p/trans_virtio.c
+++ b/net/9p/trans_virtio.c
@@ -292,8 +292,8 @@ req_retry:
 		if (err == -ENOSPC) {
 			chan->ring_bufs_avail = 0;
 			spin_unlock_irqrestore(&chan->lock, flags);
-			err = wait_event_interruptible(*chan->vc_wq,
-							chan->ring_bufs_avail);
+			err = wait_event_killable(*chan->vc_wq,
+						  chan->ring_bufs_avail);
 			if (err  == -ERESTARTSYS)
 				return err;
 
@@ -324,7 +324,7 @@ static int p9_get_mapped_pages(struct vi
 		 * Other zc request to finish here
 		 */
 		if (atomic_read(&vp_pinned) >= chan->p9_max_pages) {
-			err = wait_event_interruptible(vp_wq,
+			err = wait_event_killable(vp_wq,
 			      (atomic_read(&vp_pinned) < chan->p9_max_pages));
 			if (err == -ERESTARTSYS)
 				return err;
@@ -454,8 +454,8 @@ req_retry_pinned:
 		if (err == -ENOSPC) {
 			chan->ring_bufs_avail = 0;
 			spin_unlock_irqrestore(&chan->lock, flags);
-			err = wait_event_interruptible(*chan->vc_wq,
-						       chan->ring_bufs_avail);
+			err = wait_event_killable(*chan->vc_wq,
+						  chan->ring_bufs_avail);
 			if (err  == -ERESTARTSYS)
 				goto err_out;
 
@@ -472,8 +472,7 @@ req_retry_pinned:
 	virtqueue_kick(chan->vq);
 	spin_unlock_irqrestore(&chan->lock, flags);
 	p9_debug(P9_DEBUG_TRANS, "virtio request kicked\n");
-	err = wait_event_interruptible(*req->wq,
-				       req->status >= REQ_STATUS_RCVD);
+	err = wait_event_killable(*req->wq, req->status >= REQ_STATUS_RCVD);
 	/*
 	 * Non kernel buffers are pinned, unpin them
 	 */

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

* [PATCH 3.18 47/67] mtd: nand: Fix writing mtdoops to nand flash.
  2017-11-28 10:18 [PATCH 3.18 00/67] 3.18.85-stable review Greg Kroah-Hartman
                   ` (43 preceding siblings ...)
  2017-11-28 10:19 ` [PATCH 3.18 46/67] net/9p: Switch to wait_event_killable() Greg Kroah-Hartman
@ 2017-11-28 10:19 ` Greg Kroah-Hartman
  2017-11-28 10:19 ` [PATCH 3.18 48/67] USB: fix buffer overflows with parsing CDC headers Greg Kroah-Hartman
                   ` (21 subsequent siblings)
  66 siblings, 0 replies; 69+ messages in thread
From: Greg Kroah-Hartman @ 2017-11-28 10:19 UTC (permalink / raw)
  To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Brent Taylor, Boris Brezillon

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

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

From: Brent Taylor <motobud@gmail.com>

commit 30863e38ebeb500a31cecee8096fb5002677dd9b upstream.

When mtdoops calls mtd_panic_write(), it eventually calls
panic_nand_write() in nand_base.c. In order to properly wait for the
nand chip to be ready in panic_nand_wait(), the chip must first be
selected.

When using the atmel nand flash controller, a panic would occur due to
a NULL pointer exception.

Fixes: 2af7c6539931 ("mtd: Add panic_write for NAND flashes")
Signed-off-by: Brent Taylor <motobud@gmail.com>
Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>


---
 drivers/mtd/nand/nand_base.c |    9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

--- a/drivers/mtd/nand/nand_base.c
+++ b/drivers/mtd/nand/nand_base.c
@@ -2501,15 +2501,18 @@ static int panic_nand_write(struct mtd_i
 			    size_t *retlen, const uint8_t *buf)
 {
 	struct nand_chip *chip = mtd->priv;
+	int chipnr = (int)(to >> chip->chip_shift);
 	struct mtd_oob_ops ops;
 	int ret;
 
-	/* Wait for the device to get ready */
-	panic_nand_wait(mtd, chip, 400);
-
 	/* Grab the device */
 	panic_nand_get_device(chip, mtd, FL_WRITING);
 
+	chip->select_chip(mtd, chipnr);
+
+	/* Wait for the device to get ready */
+	panic_nand_wait(mtd, chip, 400);
+
 	ops.len = len;
 	ops.datbuf = (uint8_t *)buf;
 	ops.oobbuf = NULL;

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

* [PATCH 3.18 48/67] USB: fix buffer overflows with parsing CDC headers
  2017-11-28 10:18 [PATCH 3.18 00/67] 3.18.85-stable review Greg Kroah-Hartman
                   ` (44 preceding siblings ...)
  2017-11-28 10:19 ` [PATCH 3.18 47/67] mtd: nand: Fix writing mtdoops to nand flash Greg Kroah-Hartman
@ 2017-11-28 10:19 ` Greg Kroah-Hartman
  2017-11-28 10:19 ` [PATCH 3.18 49/67] iio: iio-trig-periodic-rtc: Free trigger resource correctly Greg Kroah-Hartman
                   ` (20 subsequent siblings)
  66 siblings, 0 replies; 69+ messages in thread
From: Greg Kroah-Hartman @ 2017-11-28 10:19 UTC (permalink / raw)
  To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Oliver Neukum

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

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

From: Oliver Neukum <oneukum@suse.com>

Parsing CDC headers a buffer overflow cannot just be prevented
by checking that the remainder of the buffer is longer than minimum
length. The size of the fields to be parsed must be figured in, too.

In newer kernels this issue has been fixed at a central location with

commit 2e1c42391ff2556387b3cb6308b24f6f65619feb
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Thu Sep 21 16:58:48 2017 +0200

    USB: core: harden cdc_parse_cdc_header

on anything older the parsing had not been centralised, so a separate
fix for each driver is necessary.

Signed-off-by: Oliver Neukum <oneukum@suse.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/net/usb/cdc_ether.c |    9 ++++++++-
 drivers/usb/class/cdc-acm.c |    2 +-
 drivers/usb/class/cdc-wdm.c |    2 ++
 3 files changed, 11 insertions(+), 2 deletions(-)

--- a/drivers/net/usb/cdc_ether.c
+++ b/drivers/net/usb/cdc_ether.c
@@ -171,6 +171,8 @@ int usbnet_generic_cdc_bind(struct usbne
 				dev_dbg(&intf->dev, "extra CDC header\n");
 				goto bad_desc;
 			}
+			if (len < sizeof(struct usb_cdc_header_desc))
+				break;
 			info->header = (void *) buf;
 			if (info->header->bLength != sizeof(*info->header)) {
 				dev_dbg(&intf->dev, "CDC header len %u\n",
@@ -184,6 +186,8 @@ int usbnet_generic_cdc_bind(struct usbne
 			 */
 			if (rndis) {
 				struct usb_cdc_acm_descriptor *acm;
+				if (len < sizeof(struct usb_cdc_acm_descriptor))
+					break;
 
 				acm = (void *) buf;
 				if (acm->bmCapabilities) {
@@ -200,6 +204,8 @@ int usbnet_generic_cdc_bind(struct usbne
 				dev_dbg(&intf->dev, "extra CDC union\n");
 				goto bad_desc;
 			}
+			if (len < sizeof(struct usb_cdc_union_desc))
+				break;
 			info->u = (void *) buf;
 			if (info->u->bLength != sizeof(*info->u)) {
 				dev_dbg(&intf->dev, "CDC union len %u\n",
@@ -258,6 +264,8 @@ int usbnet_generic_cdc_bind(struct usbne
 				dev_dbg(&intf->dev, "extra CDC ether\n");
 				goto bad_desc;
 			}
+			if (len < sizeof(struct usb_cdc_ether_desc))
+				break;
 			info->ether = (void *) buf;
 			if (info->ether->bLength != sizeof(*info->ether)) {
 				dev_dbg(&intf->dev, "CDC ether len %u\n",
@@ -275,7 +283,6 @@ int usbnet_generic_cdc_bind(struct usbne
 				dev_dbg(&intf->dev, "extra MDLM descriptor\n");
 				goto bad_desc;
 			}
-
 			desc = (void *)buf;
 
 			if (desc->bLength != sizeof(*desc))
--- a/drivers/usb/class/cdc-acm.c
+++ b/drivers/usb/class/cdc-acm.c
@@ -1139,7 +1139,7 @@ static int acm_probe(struct usb_interfac
 		}
 	}
 
-	while (buflen > 0) {
+	while (buflen >= 3) { /* minimum length making sense */
 		elength = buffer[0];
 		if (!elength) {
 			dev_err(&intf->dev, "skipping garbage byte\n");
--- a/drivers/usb/class/cdc-wdm.c
+++ b/drivers/usb/class/cdc-wdm.c
@@ -891,6 +891,8 @@ static int wdm_probe(struct usb_interfac
 		case USB_CDC_HEADER_TYPE:
 			break;
 		case USB_CDC_DMM_TYPE:
+			if (buflen < sizeof(struct usb_cdc_dmm_desc))
+				break;
 			dmhd = (struct usb_cdc_dmm_desc *)buffer;
 			maxcom = le16_to_cpu(dmhd->wMaxCommand);
 			dev_dbg(&intf->dev,

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

* [PATCH 3.18 49/67] iio: iio-trig-periodic-rtc: Free trigger resource correctly
  2017-11-28 10:18 [PATCH 3.18 00/67] 3.18.85-stable review Greg Kroah-Hartman
                   ` (45 preceding siblings ...)
  2017-11-28 10:19 ` [PATCH 3.18 48/67] USB: fix buffer overflows with parsing CDC headers Greg Kroah-Hartman
@ 2017-11-28 10:19 ` Greg Kroah-Hartman
  2017-11-28 10:19 ` [PATCH 3.18 50/67] e1000e: Fix error path in link detection Greg Kroah-Hartman
                   ` (19 subsequent siblings)
  66 siblings, 0 replies; 69+ messages in thread
From: Greg Kroah-Hartman @ 2017-11-28 10:19 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: Greg Kroah-Hartman, Alison Schofield, Jonathan Cameron, Ben Hutchings

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

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

From: Ben Hutchings <ben.hutchings@codethink.co.uk>

This is based on upstream commit 10e840dfb0b7, which did not touch the
iio-trig-periodic-rtc driver because it has been removed upstream.

The following explanation comes from that commit:

    These stand-alone trigger drivers were using iio_trigger_put()
    where they should have been using iio_trigger_free().  The
    iio_trigger_put() adds a module_put which is bad since they
    never did a module_get.

    In the sysfs driver, module_get/put's are used as triggers are
    added & removed. This extra module_put() occurs on an error path
    in the probe routine (probably rare).

    In the bfin-timer & interrupt trigger drivers, the module resources
    are not explicitly managed, so it's doing a put on something that
    was never get'd.  It occurs on the probe error path and on the
    remove path (not so rare).

    Tested with the sysfs trigger driver.
    The bfin & interrupt drivers were build tested & inspected only.

This was build tested only.

Cc: Alison Schofield <amsfield22@gmail.com>
Cc: Jonathan Cameron <jic23@kernel.org>
Signed-off-by: Ben Hutchings <ben.hutchings@codethink.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/staging/iio/trigger/iio-trig-periodic-rtc.c |    6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

--- a/drivers/staging/iio/trigger/iio-trig-periodic-rtc.c
+++ b/drivers/staging/iio/trigger/iio-trig-periodic-rtc.c
@@ -137,7 +137,7 @@ static int iio_trig_periodic_rtc_probe(s
 		trig_info = kzalloc(sizeof(*trig_info), GFP_KERNEL);
 		if (!trig_info) {
 			ret = -ENOMEM;
-			goto error_put_trigger_and_remove_from_list;
+			goto error_free_trigger_and_remove_from_list;
 		}
 		iio_trigger_set_drvdata(trig, trig_info);
 		trig->ops = &iio_prtc_trigger_ops;
@@ -164,9 +164,9 @@ error_close_rtc:
 	rtc_class_close(trig_info->rtc);
 error_free_trig_info:
 	kfree(trig_info);
-error_put_trigger_and_remove_from_list:
+error_free_trigger_and_remove_from_list:
 	list_del(&trig->alloc_list);
-	iio_trigger_put(trig);
+	iio_trigger_free(trig);
 error_free_completed_registrations:
 	list_for_each_entry_safe(trig,
 				 trig2,

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

* [PATCH 3.18 50/67] e1000e: Fix error path in link detection
  2017-11-28 10:18 [PATCH 3.18 00/67] 3.18.85-stable review Greg Kroah-Hartman
                   ` (46 preceding siblings ...)
  2017-11-28 10:19 ` [PATCH 3.18 49/67] iio: iio-trig-periodic-rtc: Free trigger resource correctly Greg Kroah-Hartman
@ 2017-11-28 10:19 ` Greg Kroah-Hartman
  2017-11-28 10:19 ` [PATCH 3.18 51/67] e1000e: Fix return value test Greg Kroah-Hartman
                   ` (18 subsequent siblings)
  66 siblings, 0 replies; 69+ messages in thread
From: Greg Kroah-Hartman @ 2017-11-28 10:19 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Benjamin Poirier, Aaron Brown,
	Jeff Kirsher, Amit Pundir

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

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

From: Benjamin Poirier <bpoirier@suse.com>

commit c4c40e51f9c32c6dd8adf606624c930a1c4d9bbb upstream.

In case of error from e1e_rphy(), the loop will exit early and "success"
will be set to true erroneously.

Signed-off-by: Benjamin Poirier <bpoirier@suse.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/net/ethernet/intel/e1000e/phy.c |    7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

--- a/drivers/net/ethernet/intel/e1000e/phy.c
+++ b/drivers/net/ethernet/intel/e1000e/phy.c
@@ -1744,6 +1744,7 @@ s32 e1000e_phy_has_link_generic(struct e
 	s32 ret_val = 0;
 	u16 i, phy_status;
 
+	*success = false;
 	for (i = 0; i < iterations; i++) {
 		/* Some PHYs require the MII_BMSR register to be read
 		 * twice due to the link bit being sticky.  No harm doing
@@ -1763,16 +1764,16 @@ s32 e1000e_phy_has_link_generic(struct e
 		ret_val = e1e_rphy(hw, MII_BMSR, &phy_status);
 		if (ret_val)
 			break;
-		if (phy_status & BMSR_LSTATUS)
+		if (phy_status & BMSR_LSTATUS) {
+			*success = true;
 			break;
+		}
 		if (usec_interval >= 1000)
 			msleep(usec_interval / 1000);
 		else
 			udelay(usec_interval);
 	}
 
-	*success = (i < iterations);
-
 	return ret_val;
 }
 

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

* [PATCH 3.18 51/67] e1000e: Fix return value test
  2017-11-28 10:18 [PATCH 3.18 00/67] 3.18.85-stable review Greg Kroah-Hartman
                   ` (47 preceding siblings ...)
  2017-11-28 10:19 ` [PATCH 3.18 50/67] e1000e: Fix error path in link detection Greg Kroah-Hartman
@ 2017-11-28 10:19 ` Greg Kroah-Hartman
  2017-11-28 10:19 ` [PATCH 3.18 52/67] e1000e: Separate signaling for link check/link up Greg Kroah-Hartman
                   ` (17 subsequent siblings)
  66 siblings, 0 replies; 69+ messages in thread
From: Greg Kroah-Hartman @ 2017-11-28 10:19 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Benjamin Poirier, Aaron Brown,
	Jeff Kirsher, Amit Pundir

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

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

From: Benjamin Poirier <bpoirier@suse.com>

commit d3509f8bc7b0560044c15f0e3ecfde1d9af757a6 upstream.

All the helpers return -E1000_ERR_PHY.

Signed-off-by: Benjamin Poirier <bpoirier@suse.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/net/ethernet/intel/e1000e/netdev.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/drivers/net/ethernet/intel/e1000e/netdev.c
+++ b/drivers/net/ethernet/intel/e1000e/netdev.c
@@ -4862,7 +4862,7 @@ static bool e1000e_has_link(struct e1000
 		break;
 	}
 
-	if ((ret_val == E1000_ERR_PHY) && (hw->phy.type == e1000_phy_igp_3) &&
+	if ((ret_val == -E1000_ERR_PHY) && (hw->phy.type == e1000_phy_igp_3) &&
 	    (er32(CTRL) & E1000_PHY_CTRL_GBE_DISABLE)) {
 		/* See e1000_kmrn_lock_loss_workaround_ich8lan() */
 		e_info("Gigabit has been disabled, downgrading speed\n");

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

* [PATCH 3.18 52/67] e1000e: Separate signaling for link check/link up
  2017-11-28 10:18 [PATCH 3.18 00/67] 3.18.85-stable review Greg Kroah-Hartman
                   ` (48 preceding siblings ...)
  2017-11-28 10:19 ` [PATCH 3.18 51/67] e1000e: Fix return value test Greg Kroah-Hartman
@ 2017-11-28 10:19 ` Greg Kroah-Hartman
  2017-11-28 10:19 ` [PATCH 3.18 53/67] RDS: RDMA: return appropriate error on rdma map failures Greg Kroah-Hartman
                   ` (16 subsequent siblings)
  66 siblings, 0 replies; 69+ messages in thread
From: Greg Kroah-Hartman @ 2017-11-28 10:19 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Lennart Sorensen, Benjamin Poirier,
	Aaron Brown, Jeff Kirsher, Amit Pundir

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

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

From: Benjamin Poirier <bpoirier@suse.com>

commit 19110cfbb34d4af0cdfe14cd243f3b09dc95b013 upstream.

Lennart reported the following race condition:

\ e1000_watchdog_task
    \ e1000e_has_link
        \ hw->mac.ops.check_for_link() === e1000e_check_for_copper_link
            /* link is up */
            mac->get_link_status = false;

                            /* interrupt */
                            \ e1000_msix_other
                                hw->mac.get_link_status = true;

        link_active = !hw->mac.get_link_status
        /* link_active is false, wrongly */

This problem arises because the single flag get_link_status is used to
signal two different states: link status needs checking and link status is
down.

Avoid the problem by using the return value of .check_for_link to signal
the link status to e1000e_has_link().

Reported-by: Lennart Sorensen <lsorense@csclub.uwaterloo.ca>
Signed-off-by: Benjamin Poirier <bpoirier@suse.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/net/ethernet/intel/e1000e/mac.c    |   11 ++++++++---
 drivers/net/ethernet/intel/e1000e/netdev.c |    2 +-
 2 files changed, 9 insertions(+), 4 deletions(-)

--- a/drivers/net/ethernet/intel/e1000e/mac.c
+++ b/drivers/net/ethernet/intel/e1000e/mac.c
@@ -410,6 +410,9 @@ void e1000e_clear_hw_cntrs_base(struct e
  *  Checks to see of the link status of the hardware has changed.  If a
  *  change in link status has been detected, then we read the PHY registers
  *  to get the current speed/duplex if link exists.
+ *
+ *  Returns a negative error code (-E1000_ERR_*) or 0 (link down) or 1 (link
+ *  up).
  **/
 s32 e1000e_check_for_copper_link(struct e1000_hw *hw)
 {
@@ -423,7 +426,7 @@ s32 e1000e_check_for_copper_link(struct
 	 * Change or Rx Sequence Error interrupt.
 	 */
 	if (!mac->get_link_status)
-		return 0;
+		return 1;
 
 	/* First we want to see if the MII Status Register reports
 	 * link.  If so, then we want to get the current speed/duplex
@@ -461,10 +464,12 @@ s32 e1000e_check_for_copper_link(struct
 	 * different link partner.
 	 */
 	ret_val = e1000e_config_fc_after_link_up(hw);
-	if (ret_val)
+	if (ret_val) {
 		e_dbg("Error configuring flow control\n");
+		return ret_val;
+	}
 
-	return ret_val;
+	return 1;
 }
 
 /**
--- a/drivers/net/ethernet/intel/e1000e/netdev.c
+++ b/drivers/net/ethernet/intel/e1000e/netdev.c
@@ -4844,7 +4844,7 @@ static bool e1000e_has_link(struct e1000
 	case e1000_media_type_copper:
 		if (hw->mac.get_link_status) {
 			ret_val = hw->mac.ops.check_for_link(hw);
-			link_active = !hw->mac.get_link_status;
+			link_active = ret_val > 0;
 		} else {
 			link_active = true;
 		}

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

* [PATCH 3.18 53/67] RDS: RDMA: return appropriate error on rdma map failures
  2017-11-28 10:18 [PATCH 3.18 00/67] 3.18.85-stable review Greg Kroah-Hartman
                   ` (49 preceding siblings ...)
  2017-11-28 10:19 ` [PATCH 3.18 52/67] e1000e: Separate signaling for link check/link up Greg Kroah-Hartman
@ 2017-11-28 10:19 ` Greg Kroah-Hartman
  2017-11-28 10:19 ` [PATCH 3.18 54/67] PCI: Apply _HPX settings only to relevant devices Greg Kroah-Hartman
                   ` (15 subsequent siblings)
  66 siblings, 0 replies; 69+ messages in thread
From: Greg Kroah-Hartman @ 2017-11-28 10:19 UTC (permalink / raw)
  To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Santosh Shilimkar, Sasha Levin

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

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

From: Santosh Shilimkar <santosh.shilimkar@oracle.com>


[ Upstream commit 584a8279a44a800dea5a5c1e9d53a002e03016b4 ]

The first message to a remote node should prompt a new
connection even if it is RDMA operation. For RDMA operation
the MR mapping can fail because connections is not yet up.

Since the connection establishment is asynchronous,
we make sure the map failure because of unavailable
connection reach to the user by appropriate error code.
Before returning to the user, lets trigger the connection
so that its ready for the next retry.

Signed-off-by: Santosh Shilimkar <santosh.shilimkar@oracle.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 net/rds/send.c |   11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

--- a/net/rds/send.c
+++ b/net/rds/send.c
@@ -903,6 +903,11 @@ static int rds_cmsg_send(struct rds_sock
 			ret = rds_cmsg_rdma_map(rs, rm, cmsg);
 			if (!ret)
 				*allocated_mr = 1;
+			else if (ret == -ENODEV)
+				/* Accommodate the get_mr() case which can fail
+				 * if connection isn't established yet.
+				 */
+				ret = -EAGAIN;
 			break;
 		case RDS_CMSG_ATOMIC_CSWP:
 		case RDS_CMSG_ATOMIC_FADD:
@@ -1011,8 +1016,12 @@ int rds_sendmsg(struct kiocb *iocb, stru
 
 	/* Parse any control messages the user may have included. */
 	ret = rds_cmsg_send(rs, rm, msg, &allocated_mr);
-	if (ret)
+	if (ret) {
+		/* Trigger connection so that its ready for the next retry */
+		if (ret ==  -EAGAIN)
+			rds_conn_connect_if_down(conn);
 		goto out;
+	}
 
 	if (rm->rdma.op_active && !conn->c_trans->xmit_rdma) {
 		printk_ratelimited(KERN_NOTICE "rdma_op %p conn xmit_rdma %p\n",

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

* [PATCH 3.18 54/67] PCI: Apply _HPX settings only to relevant devices
  2017-11-28 10:18 [PATCH 3.18 00/67] 3.18.85-stable review Greg Kroah-Hartman
                   ` (50 preceding siblings ...)
  2017-11-28 10:19 ` [PATCH 3.18 53/67] RDS: RDMA: return appropriate error on rdma map failures Greg Kroah-Hartman
@ 2017-11-28 10:19 ` Greg Kroah-Hartman
  2017-11-28 10:19 ` [PATCH 3.18 55/67] net: 3com: typhoon: typhoon_init_one: make return values more specific Greg Kroah-Hartman
                   ` (14 subsequent siblings)
  66 siblings, 0 replies; 69+ messages in thread
From: Greg Kroah-Hartman @ 2017-11-28 10:19 UTC (permalink / raw)
  To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Bjorn Helgaas, Sasha Levin

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

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

From: Bjorn Helgaas <bhelgaas@google.com>


[ Upstream commit 977509f7c5c6fb992ffcdf4291051af343b91645 ]

Previously we didn't check the type of device before trying to apply Type 1
(PCI-X) or Type 2 (PCIe) Setting Records from _HPX.

We don't support PCI-X Setting Records, so this was harmless, but the
warning was useless.

We do support PCIe Setting Records, and we didn't check whether a device
was PCIe before applying settings.  I don't think anything bad happened on
non-PCIe devices because pcie_capability_clear_and_set_word(),
pcie_cap_has_lnkctl(), etc., would fail before doing any harm.  But it's
ugly to depend on those internals.

Check the device type before attempting to apply Type 1 and Type 2 Setting
Records (Type 0 records are applicable to PCI, PCI-X, and PCIe devices).

A side benefit is that this prevents useless "not supported" warnings when
a BIOS supplies a Type 1 (PCI-X) Setting Record and we try to apply it to
every single device:

  pci 0000:00:00.0: PCI-X settings not supported

After this patch, we'll get the warning only when a BIOS supplies a Type 1
record and we have a PCI-X device to which it should be applied.

Link: https://bugzilla.kernel.org/show_bug.cgi?id=187731
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/pci/probe.c |   15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

--- a/drivers/pci/probe.c
+++ b/drivers/pci/probe.c
@@ -1329,8 +1329,16 @@ static void program_hpp_type0(struct pci
 
 static void program_hpp_type1(struct pci_dev *dev, struct hpp_type1 *hpp)
 {
-	if (hpp)
-		dev_warn(&dev->dev, "PCI-X settings not supported\n");
+	int pos;
+
+	if (!hpp)
+		return;
+
+	pos = pci_find_capability(dev, PCI_CAP_ID_PCIX);
+	if (!pos)
+		return;
+
+	dev_warn(&dev->dev, "PCI-X settings not supported\n");
 }
 
 static void program_hpp_type2(struct pci_dev *dev, struct hpp_type2 *hpp)
@@ -1341,6 +1349,9 @@ static void program_hpp_type2(struct pci
 	if (!hpp)
 		return;
 
+	if (!pci_is_pcie(dev))
+		return;
+
 	if (hpp->revision > 1) {
 		dev_warn(&dev->dev, "PCIe settings rev %d not supported\n",
 			 hpp->revision);

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

* [PATCH 3.18 55/67] net: 3com: typhoon: typhoon_init_one: make return values more specific
  2017-11-28 10:18 [PATCH 3.18 00/67] 3.18.85-stable review Greg Kroah-Hartman
                   ` (51 preceding siblings ...)
  2017-11-28 10:19 ` [PATCH 3.18 54/67] PCI: Apply _HPX settings only to relevant devices Greg Kroah-Hartman
@ 2017-11-28 10:19 ` Greg Kroah-Hartman
  2017-11-28 10:19 ` [PATCH 3.18 56/67] net: 3com: typhoon: typhoon_init_one: fix incorrect return values Greg Kroah-Hartman
                   ` (13 subsequent siblings)
  66 siblings, 0 replies; 69+ messages in thread
From: Greg Kroah-Hartman @ 2017-11-28 10:19 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Thomas Preisner, Milan Stephan,
	David S. Miller, Sasha Levin

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

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

From: Thomas Preisner <thomas.preisner+linux@fau.de>


[ Upstream commit 6b6bbb5922a4b1d4b58125a572da91010295fba3 ]

In some cases the return value of a failing function is not being used
and the function typhoon_init_one() returns another negative error code
instead.

Signed-off-by: Thomas Preisner <thomas.preisner+linux@fau.de>
Signed-off-by: Milan Stephan <milan.stephan+linux@fau.de>
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/3com/typhoon.c |   16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

--- a/drivers/net/ethernet/3com/typhoon.c
+++ b/drivers/net/ethernet/3com/typhoon.c
@@ -2366,9 +2366,9 @@ typhoon_init_one(struct pci_dev *pdev, c
 	 * 4) Get the hardware address.
 	 * 5) Put the card to sleep.
 	 */
-	if (typhoon_reset(ioaddr, WaitSleep) < 0) {
+	err = typhoon_reset(ioaddr, WaitSleep);
+	if (err < 0) {
 		err_msg = "could not reset 3XP";
-		err = -EIO;
 		goto error_out_dma;
 	}
 
@@ -2382,16 +2382,16 @@ typhoon_init_one(struct pci_dev *pdev, c
 	typhoon_init_interface(tp);
 	typhoon_init_rings(tp);
 
-	if(typhoon_boot_3XP(tp, TYPHOON_STATUS_WAITING_FOR_HOST) < 0) {
+	err = typhoon_boot_3XP(tp, TYPHOON_STATUS_WAITING_FOR_HOST);
+	if (err < 0) {
 		err_msg = "cannot boot 3XP sleep image";
-		err = -EIO;
 		goto error_out_reset;
 	}
 
 	INIT_COMMAND_WITH_RESPONSE(&xp_cmd, TYPHOON_CMD_READ_MAC_ADDRESS);
-	if(typhoon_issue_command(tp, 1, &xp_cmd, 1, xp_resp) < 0) {
+	err = typhoon_issue_command(tp, 1, &xp_cmd, 1, xp_resp);
+	if (err < 0) {
 		err_msg = "cannot read MAC address";
-		err = -EIO;
 		goto error_out_reset;
 	}
 
@@ -2424,9 +2424,9 @@ typhoon_init_one(struct pci_dev *pdev, c
 	if(xp_resp[0].numDesc != 0)
 		tp->capabilities |= TYPHOON_WAKEUP_NEEDS_RESET;
 
-	if(typhoon_sleep(tp, PCI_D3hot, 0) < 0) {
+	err = typhoon_sleep(tp, PCI_D3hot, 0);
+	if (err < 0) {
 		err_msg = "cannot put adapter to sleep";
-		err = -EIO;
 		goto error_out_reset;
 	}
 

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

* [PATCH 3.18 56/67] net: 3com: typhoon: typhoon_init_one: fix incorrect return values
  2017-11-28 10:18 [PATCH 3.18 00/67] 3.18.85-stable review Greg Kroah-Hartman
                   ` (52 preceding siblings ...)
  2017-11-28 10:19 ` [PATCH 3.18 55/67] net: 3com: typhoon: typhoon_init_one: make return values more specific Greg Kroah-Hartman
@ 2017-11-28 10:19 ` Greg Kroah-Hartman
  2017-11-28 10:19 ` [PATCH 3.18 57/67] drm/armada: Fix compile fail Greg Kroah-Hartman
                   ` (12 subsequent siblings)
  66 siblings, 0 replies; 69+ messages in thread
From: Greg Kroah-Hartman @ 2017-11-28 10:19 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Pan Bian, Thomas Preisner,
	Milan Stephan, David S. Miller, Sasha Levin

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

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

From: Thomas Preisner <thomas.preisner+linux@fau.de>


[ Upstream commit 107fded7bf616ad6f46823d98b8ed6405d7adf2d ]

In a few cases the err-variable is not set to a negative error code if a
function call in typhoon_init_one() fails and thus 0 is returned
instead.
It may be better to set err to the appropriate negative error
code before returning.

Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=188841

Reported-by: Pan Bian <bianpan2016@163.com>
Signed-off-by: Thomas Preisner <thomas.preisner+linux@fau.de>
Signed-off-by: Milan Stephan <milan.stephan+linux@fau.de>
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/3com/typhoon.c |    9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

--- a/drivers/net/ethernet/3com/typhoon.c
+++ b/drivers/net/ethernet/3com/typhoon.c
@@ -2398,8 +2398,9 @@ typhoon_init_one(struct pci_dev *pdev, c
 	*(__be16 *)&dev->dev_addr[0] = htons(le16_to_cpu(xp_resp[0].parm1));
 	*(__be32 *)&dev->dev_addr[2] = htonl(le32_to_cpu(xp_resp[0].parm2));
 
-	if(!is_valid_ether_addr(dev->dev_addr)) {
+	if (!is_valid_ether_addr(dev->dev_addr)) {
 		err_msg = "Could not obtain valid ethernet address, aborting";
+		err = -EIO;
 		goto error_out_reset;
 	}
 
@@ -2407,7 +2408,8 @@ typhoon_init_one(struct pci_dev *pdev, c
 	 * later when we print out the version reported.
 	 */
 	INIT_COMMAND_WITH_RESPONSE(&xp_cmd, TYPHOON_CMD_READ_VERSIONS);
-	if(typhoon_issue_command(tp, 1, &xp_cmd, 3, xp_resp) < 0) {
+	err = typhoon_issue_command(tp, 1, &xp_cmd, 3, xp_resp);
+	if (err < 0) {
 		err_msg = "Could not get Sleep Image version";
 		goto error_out_reset;
 	}
@@ -2449,7 +2451,8 @@ typhoon_init_one(struct pci_dev *pdev, c
 	dev->features = dev->hw_features |
 		NETIF_F_HW_VLAN_CTAG_RX | NETIF_F_RXCSUM;
 
-	if(register_netdev(dev) < 0) {
+	err = register_netdev(dev);
+	if (err < 0) {
 		err_msg = "unable to register netdev";
 		goto error_out_reset;
 	}

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

* [PATCH 3.18 57/67] drm/armada: Fix compile fail
  2017-11-28 10:18 [PATCH 3.18 00/67] 3.18.85-stable review Greg Kroah-Hartman
                   ` (53 preceding siblings ...)
  2017-11-28 10:19 ` [PATCH 3.18 56/67] net: 3com: typhoon: typhoon_init_one: fix incorrect return values Greg Kroah-Hartman
@ 2017-11-28 10:19 ` Greg Kroah-Hartman
  2017-11-28 10:19 ` [PATCH 3.18 58/67] ALSA: hda - Apply ALC269_FIXUP_NO_SHUTUP on HDA_FIXUP_ACT_PROBE Greg Kroah-Hartman
                   ` (11 subsequent siblings)
  66 siblings, 0 replies; 69+ messages in thread
From: Greg Kroah-Hartman @ 2017-11-28 10:19 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Russell King, Chris Wilson,
	Daniel Vetter, Sasha Levin

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

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

From: Daniel Vetter <daniel.vetter@ffwll.ch>


[ Upstream commit 7357f89954b6d005df6ab8929759e78d7d9a80f9 ]

I reported the include issue for tracepoints a while ago, but nothing
seems to have happened. Now it bit us, since the drm_mm_print
conversion was broken for armada. Fix it, so I can re-enable armada
in the drm-misc build configs.

v2: Rebase just the compile fix on top of Chris' build fix.

Cc: Russell King <rmk+kernel@armlinux.org.uk>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Acked: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1483115932-19584-1-git-send-email-daniel.vetter@ffwll.ch
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 insertions(+)

--- a/drivers/gpu/drm/armada/Makefile
+++ b/drivers/gpu/drm/armada/Makefile
@@ -5,3 +5,5 @@ 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] 69+ messages in thread

* [PATCH 3.18 58/67] ALSA: hda - Apply ALC269_FIXUP_NO_SHUTUP on HDA_FIXUP_ACT_PROBE
  2017-11-28 10:18 [PATCH 3.18 00/67] 3.18.85-stable review Greg Kroah-Hartman
                   ` (54 preceding siblings ...)
  2017-11-28 10:19 ` [PATCH 3.18 57/67] drm/armada: Fix compile fail Greg Kroah-Hartman
@ 2017-11-28 10:19 ` Greg Kroah-Hartman
  2017-11-28 10:19 ` [PATCH 3.18 59/67] mac80211: Remove invalid flag operations in mesh TSF synchronization Greg Kroah-Hartman
                   ` (10 subsequent siblings)
  66 siblings, 0 replies; 69+ messages in thread
From: Greg Kroah-Hartman @ 2017-11-28 10:19 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Gabriele Mazzotta, Takashi Iwai, Sasha Levin

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

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

From: Gabriele Mazzotta <gabriele.mzt@gmail.com>


[ Upstream commit 972aa2c708703c21f14eb958b37e82aae2530e44 ]

Setting shutup when the action is HDA_FIXUP_ACT_PRE_PROBE might
not have the desired effect since it could be overridden by
another more generic shutup function. Prevent this by setting
the more specific shutup function on HDA_FIXUP_ACT_PROBE.

Signed-off-by: Gabriele Mazzotta <gabriele.mzt@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 sound/pci/hda/patch_realtek.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -4289,7 +4289,7 @@ static void alc_no_shutup(struct hda_cod
 static void alc_fixup_no_shutup(struct hda_codec *codec,
 				const struct hda_fixup *fix, int action)
 {
-	if (action == HDA_FIXUP_ACT_PRE_PROBE) {
+	if (action == HDA_FIXUP_ACT_PROBE) {
 		struct alc_spec *spec = codec->spec;
 		spec->shutup = alc_no_shutup;
 	}

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

* [PATCH 3.18 59/67] mac80211: Remove invalid flag operations in mesh TSF synchronization
  2017-11-28 10:18 [PATCH 3.18 00/67] 3.18.85-stable review Greg Kroah-Hartman
                   ` (55 preceding siblings ...)
  2017-11-28 10:19 ` [PATCH 3.18 58/67] ALSA: hda - Apply ALC269_FIXUP_NO_SHUTUP on HDA_FIXUP_ACT_PROBE Greg Kroah-Hartman
@ 2017-11-28 10:19 ` Greg Kroah-Hartman
  2017-11-28 10:19 ` [PATCH 3.18 60/67] mac80211: Suppress NEW_PEER_CANDIDATE event if no room Greg Kroah-Hartman
                   ` (9 subsequent siblings)
  66 siblings, 0 replies; 69+ messages in thread
From: Greg Kroah-Hartman @ 2017-11-28 10:19 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Masashi Honma, Johannes Berg, Sasha Levin

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

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

From: Masashi Honma <masashi.honma@gmail.com>


[ Upstream commit 76f43b4c0a9337af22827d78de4f2b8fd5328489 ]

mesh_sync_offset_adjust_tbtt() implements Extensible synchronization
framework ([1] 13.13.2 Extensible synchronization framework). It shall
not operate the flag "TBTT Adjusting subfield" ([1] 8.4.2.100.8 Mesh
Capability), since it is used only for MBCA ([1] 13.13.4 Mesh beacon
collision avoidance, see 13.13.4.4.3 TBTT scanning and adjustment
procedures for detail). So this patch remove the flag operations.

[1] IEEE Std 802.11 2012

Signed-off-by: Masashi Honma <masashi.honma@gmail.com>
[remove adjusting_tbtt entirely, since it's now unused]
Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 net/mac80211/ieee80211_i.h |    1 -
 net/mac80211/mesh.c        |    3 ---
 net/mac80211/mesh_sync.c   |   11 -----------
 3 files changed, 15 deletions(-)

--- a/net/mac80211/ieee80211_i.h
+++ b/net/mac80211/ieee80211_i.h
@@ -640,7 +640,6 @@ struct ieee80211_if_mesh {
 	const struct ieee80211_mesh_sync_ops *sync_ops;
 	s64 sync_offset_clockdrift_max;
 	spinlock_t sync_offset_lock;
-	bool adjusting_tbtt;
 	/* mesh power save */
 	enum nl80211_mesh_power_mode nonpeer_pm;
 	int ps_peers_light_sleep;
--- a/net/mac80211/mesh.c
+++ b/net/mac80211/mesh.c
@@ -289,8 +289,6 @@ int mesh_add_meshconf_ie(struct ieee8021
 	/* Mesh PS mode. See IEEE802.11-2012 8.4.2.100.8 */
 	*pos |= ifmsh->ps_peers_deep_sleep ?
 			IEEE80211_MESHCONF_CAPAB_POWER_SAVE_LEVEL : 0x00;
-	*pos++ |= ifmsh->adjusting_tbtt ?
-			IEEE80211_MESHCONF_CAPAB_TBTT_ADJUSTING : 0x00;
 	*pos++ = 0x00;
 
 	return 0;
@@ -790,7 +788,6 @@ int ieee80211_start_mesh(struct ieee8021
 	ifmsh->mesh_cc_id = 0;	/* Disabled */
 	/* register sync ops from extensible synchronization framework */
 	ifmsh->sync_ops = ieee80211_mesh_sync_ops_get(ifmsh->mesh_sp_id);
-	ifmsh->adjusting_tbtt = false;
 	ifmsh->sync_offset_clockdrift_max = 0;
 	set_bit(MESH_WORK_HOUSEKEEPING, &ifmsh->wrkq_flags);
 	ieee80211_mesh_root_setup(ifmsh);
--- a/net/mac80211/mesh_sync.c
+++ b/net/mac80211/mesh_sync.c
@@ -119,7 +119,6 @@ static void mesh_sync_offset_rx_bcn_pres
 	 */
 
 	if (elems->mesh_config && mesh_peer_tbtt_adjusting(elems)) {
-		clear_sta_flag(sta, WLAN_STA_TOFFSET_KNOWN);
 		msync_dbg(sdata, "STA %pM : is adjusting TBTT\n",
 			  sta->sta.addr);
 		goto no_sync;
@@ -168,11 +167,9 @@ static void mesh_sync_offset_adjust_tbtt
 					 struct beacon_data *beacon)
 {
 	struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh;
-	u8 cap;
 
 	WARN_ON(ifmsh->mesh_sp_id != IEEE80211_SYNC_METHOD_NEIGHBOR_OFFSET);
 	WARN_ON(!rcu_read_lock_held());
-	cap = beacon->meshconf->meshconf_cap;
 
 	spin_lock_bh(&ifmsh->sync_offset_lock);
 
@@ -186,21 +183,13 @@ static void mesh_sync_offset_adjust_tbtt
 			  "TBTT : kicking off TBTT adjustment with clockdrift_max=%lld\n",
 			  ifmsh->sync_offset_clockdrift_max);
 		set_bit(MESH_WORK_DRIFT_ADJUST, &ifmsh->wrkq_flags);
-
-		ifmsh->adjusting_tbtt = true;
 	} else {
 		msync_dbg(sdata,
 			  "TBTT : max clockdrift=%lld; too small to adjust\n",
 			  (long long)ifmsh->sync_offset_clockdrift_max);
 		ifmsh->sync_offset_clockdrift_max = 0;
-
-		ifmsh->adjusting_tbtt = false;
 	}
 	spin_unlock_bh(&ifmsh->sync_offset_lock);
-
-	beacon->meshconf->meshconf_cap = ifmsh->adjusting_tbtt ?
-			IEEE80211_MESHCONF_CAPAB_TBTT_ADJUSTING | cap :
-			~IEEE80211_MESHCONF_CAPAB_TBTT_ADJUSTING & cap;
 }
 
 static const struct sync_method sync_methods[] = {

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

* [PATCH 3.18 60/67] mac80211: Suppress NEW_PEER_CANDIDATE event if no room
  2017-11-28 10:18 [PATCH 3.18 00/67] 3.18.85-stable review Greg Kroah-Hartman
                   ` (56 preceding siblings ...)
  2017-11-28 10:19 ` [PATCH 3.18 59/67] mac80211: Remove invalid flag operations in mesh TSF synchronization Greg Kroah-Hartman
@ 2017-11-28 10:19 ` Greg Kroah-Hartman
  2017-11-28 10:20 ` [PATCH 3.18 61/67] staging: iio: cdc: fix improper return value Greg Kroah-Hartman
                   ` (8 subsequent siblings)
  66 siblings, 0 replies; 69+ messages in thread
From: Greg Kroah-Hartman @ 2017-11-28 10:19 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Masashi Honma, Johannes Berg, Sasha Levin

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

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

From: Masashi Honma <masashi.honma@gmail.com>


[ Upstream commit 11197d006bcfabf0173a7820a163fcaac420d10e ]

Previously, kernel sends NEW_PEER_CANDIDATE event to user land even if
the found peer does not have any room to accept other peer. This causes
continuous connection trials.

Signed-off-by: Masashi Honma <masashi.honma@gmail.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 net/mac80211/mesh_plink.c |   14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

--- a/net/mac80211/mesh_plink.c
+++ b/net/mac80211/mesh_plink.c
@@ -448,12 +448,14 @@ mesh_sta_info_alloc(struct ieee80211_sub
 
 	/* Userspace handles station allocation */
 	if (sdata->u.mesh.user_mpm ||
-	    sdata->u.mesh.security & IEEE80211_MESH_SEC_AUTHED)
-		cfg80211_notify_new_peer_candidate(sdata->dev, addr,
-						   elems->ie_start,
-						   elems->total_len,
-						   GFP_KERNEL);
-	else
+	    sdata->u.mesh.security & IEEE80211_MESH_SEC_AUTHED) {
+		if (mesh_peer_accepts_plinks(elems) &&
+		    mesh_plink_availables(sdata))
+			cfg80211_notify_new_peer_candidate(sdata->dev, addr,
+							   elems->ie_start,
+							   elems->total_len,
+							   GFP_KERNEL);
+	} else
 		sta = __mesh_sta_info_alloc(sdata, addr);
 
 	return sta;

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

* [PATCH 3.18 61/67] staging: iio: cdc: fix improper return value
  2017-11-28 10:18 [PATCH 3.18 00/67] 3.18.85-stable review Greg Kroah-Hartman
                   ` (57 preceding siblings ...)
  2017-11-28 10:19 ` [PATCH 3.18 60/67] mac80211: Suppress NEW_PEER_CANDIDATE event if no room Greg Kroah-Hartman
@ 2017-11-28 10:20 ` Greg Kroah-Hartman
  2017-11-28 10:20 ` [PATCH 3.18 62/67] netfilter: nft_queue: use raw_smp_processor_id() Greg Kroah-Hartman
                   ` (7 subsequent siblings)
  66 siblings, 0 replies; 69+ messages in thread
From: Greg Kroah-Hartman @ 2017-11-28 10:20 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Pan Bian, Jonathan Cameron, Sasha Levin

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

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

From: Pan Bian <bianpan2016@163.com>


[ Upstream commit 91ca1a8c584f55857b1f6ab20a1d3a1ce7a559bb ]

At the end of function ad7150_write_event_config(), directly returns 0.
As a result, the errors will be ignored by the callers. It may be better
to return variable "ret".

Signed-off-by: Pan Bian <bianpan2016@163.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/staging/iio/cdc/ad7150.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/drivers/staging/iio/cdc/ad7150.c
+++ b/drivers/staging/iio/cdc/ad7150.c
@@ -275,7 +275,7 @@ static int ad7150_write_event_config(str
 error_ret:
 	mutex_unlock(&chip->state_lock);
 
-	return 0;
+	return ret;
 }
 
 static int ad7150_read_event_value(struct iio_dev *indio_dev,

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

* [PATCH 3.18 62/67] netfilter: nft_queue: use raw_smp_processor_id()
  2017-11-28 10:18 [PATCH 3.18 00/67] 3.18.85-stable review Greg Kroah-Hartman
                   ` (58 preceding siblings ...)
  2017-11-28 10:20 ` [PATCH 3.18 61/67] staging: iio: cdc: fix improper return value Greg Kroah-Hartman
@ 2017-11-28 10:20 ` Greg Kroah-Hartman
  2017-11-28 10:20 ` [PATCH 3.18 63/67] netfilter: nf_tables: fix oob access Greg Kroah-Hartman
                   ` (6 subsequent siblings)
  66 siblings, 0 replies; 69+ messages in thread
From: Greg Kroah-Hartman @ 2017-11-28 10:20 UTC (permalink / raw)
  To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Pablo Neira Ayuso, Sasha Levin

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

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

From: Pablo Neira Ayuso <pablo@netfilter.org>


[ Upstream commit c2e756ff9e699865d294cdc112acfc36419cf5cc ]

Using smp_processor_id() causes splats with PREEMPT_RCU:

[19379.552780] BUG: using smp_processor_id() in preemptible [00000000] code: ping/32389
[19379.552793] caller is debug_smp_processor_id+0x17/0x19
[...]
[19379.552823] Call Trace:
[19379.552832]  [<ffffffff81274e9e>] dump_stack+0x67/0x90
[19379.552837]  [<ffffffff8129a4d4>] check_preemption_disabled+0xe5/0xf5
[19379.552842]  [<ffffffff8129a4fb>] debug_smp_processor_id+0x17/0x19
[19379.552849]  [<ffffffffa07c42dd>] nft_queue_eval+0x35/0x20c [nft_queue]

No need to disable preemption since we only fetch the numeric value, so
let's use raw_smp_processor_id() instead.

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 net/netfilter/nft_queue.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/net/netfilter/nft_queue.c
+++ b/net/netfilter/nft_queue.c
@@ -37,7 +37,7 @@ static void nft_queue_eval(const struct
 
 	if (priv->queues_total > 1) {
 		if (priv->flags & NFT_QUEUE_FLAG_CPU_FANOUT) {
-			int cpu = smp_processor_id();
+			int cpu = raw_smp_processor_id();
 
 			queue = priv->queuenum + cpu % priv->queues_total;
 		} else {

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

* [PATCH 3.18 63/67] netfilter: nf_tables: fix oob access
  2017-11-28 10:18 [PATCH 3.18 00/67] 3.18.85-stable review Greg Kroah-Hartman
                   ` (59 preceding siblings ...)
  2017-11-28 10:20 ` [PATCH 3.18 62/67] netfilter: nft_queue: use raw_smp_processor_id() Greg Kroah-Hartman
@ 2017-11-28 10:20 ` Greg Kroah-Hartman
  2017-11-28 10:20 ` [PATCH 3.18 64/67] btrfs: return the actual error value from from btrfs_uuid_tree_iterate Greg Kroah-Hartman
                   ` (5 subsequent siblings)
  66 siblings, 0 replies; 69+ messages in thread
From: Greg Kroah-Hartman @ 2017-11-28 10:20 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Florian Westphal, Pablo Neira Ayuso,
	Sasha Levin

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

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

From: Florian Westphal <fw@strlen.de>


[ Upstream commit 3e38df136e453aa69eb4472108ebce2fb00b1ba6 ]

BUG: KASAN: slab-out-of-bounds in nf_tables_rule_destroy+0xf1/0x130 at addr ffff88006a4c35c8
Read of size 8 by task nft/1607

When we've destroyed last valid expr, nft_expr_next() returns an invalid expr.
We must not dereference it unless it passes != nft_expr_last() check.

Signed-off-by: Florian Westphal <fw@strlen.de>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 net/netfilter/nf_tables_api.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/net/netfilter/nf_tables_api.c
+++ b/net/netfilter/nf_tables_api.c
@@ -1869,7 +1869,7 @@ static void nf_tables_rule_destroy(const
 	 * is called on error from nf_tables_newrule().
 	 */
 	expr = nft_expr_first(rule);
-	while (expr->ops && expr != nft_expr_last(rule)) {
+	while (expr != nft_expr_last(rule) && expr->ops) {
 		nf_tables_expr_destroy(ctx, expr);
 		expr = nft_expr_next(expr);
 	}

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

* [PATCH 3.18 64/67] btrfs: return the actual error value from  from btrfs_uuid_tree_iterate
  2017-11-28 10:18 [PATCH 3.18 00/67] 3.18.85-stable review Greg Kroah-Hartman
                   ` (60 preceding siblings ...)
  2017-11-28 10:20 ` [PATCH 3.18 63/67] netfilter: nf_tables: fix oob access Greg Kroah-Hartman
@ 2017-11-28 10:20 ` Greg Kroah-Hartman
  2017-11-28 10:20 ` [PATCH 3.18 65/67] ASoC: wm_adsp: Dont overrun firmware file buffer when reading region data Greg Kroah-Hartman
                   ` (4 subsequent siblings)
  66 siblings, 0 replies; 69+ messages in thread
From: Greg Kroah-Hartman @ 2017-11-28 10:20 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Pan Bian, Omar Sandoval,
	David Sterba, Sasha Levin

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

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

From: Pan Bian <bianpan2016@163.com>


[ Upstream commit 73ba39ab9307340dc98ec3622891314bbc09cc2e ]

In function btrfs_uuid_tree_iterate(), errno is assigned to variable ret
on errors. However, it directly returns 0. It may be better to return
ret. This patch also removes the warning, because the caller already
prints a warning.

Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=188731
Signed-off-by: Pan Bian <bianpan2016@163.com>
Reviewed-by: Omar Sandoval <osandov@fb.com>
[ edited subject ]
Signed-off-by: David Sterba <dsterba@suse.com>

Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 fs/btrfs/uuid-tree.c |    4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

--- a/fs/btrfs/uuid-tree.c
+++ b/fs/btrfs/uuid-tree.c
@@ -348,7 +348,5 @@ skip:
 
 out:
 	btrfs_free_path(path);
-	if (ret)
-		btrfs_warn(fs_info, "btrfs_uuid_tree_iterate failed %d", ret);
-	return 0;
+	return ret;
 }

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

* [PATCH 3.18 65/67] ASoC: wm_adsp: Dont overrun firmware file buffer when reading region data
  2017-11-28 10:18 [PATCH 3.18 00/67] 3.18.85-stable review Greg Kroah-Hartman
                   ` (61 preceding siblings ...)
  2017-11-28 10:20 ` [PATCH 3.18 64/67] btrfs: return the actual error value from from btrfs_uuid_tree_iterate Greg Kroah-Hartman
@ 2017-11-28 10:20 ` Greg Kroah-Hartman
  2017-11-28 10:20 ` [PATCH 3.18 66/67] s390/kbuild: enable modversions for symbols exported from asm Greg Kroah-Hartman
                   ` (3 subsequent siblings)
  66 siblings, 0 replies; 69+ messages in thread
From: Greg Kroah-Hartman @ 2017-11-28 10:20 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Richard Fitzgerald, Mark Brown, Sasha Levin

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

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

From: Richard Fitzgerald <rf@opensource.wolfsonmicro.com>


[ Upstream commit 1cab2a84f470e15ecc8e5143bfe9398c6e888032 ]

Protect against corrupt firmware files by ensuring that the length we
get for the data in a region actually lies within the available firmware
file data buffer.

Signed-off-by: Richard Fitzgerald <rf@opensource.wolfsonmicro.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 sound/soc/codecs/wm_adsp.c |   25 ++++++++++++++++++++++++-
 1 file changed, 24 insertions(+), 1 deletion(-)

--- a/sound/soc/codecs/wm_adsp.c
+++ b/sound/soc/codecs/wm_adsp.c
@@ -532,7 +532,7 @@ static int wm_adsp_load(struct wm_adsp *
 	const struct wmfw_region *region;
 	const struct wm_adsp_region *mem;
 	const char *region_name;
-	char *file, *text;
+	char *file, *text = NULL;
 	struct wm_adsp_buf *buf;
 	unsigned int reg;
 	int regions = 0;
@@ -677,10 +677,21 @@ static int wm_adsp_load(struct wm_adsp *
 			 regions, le32_to_cpu(region->len), offset,
 			 region_name);
 
+		if ((pos + le32_to_cpu(region->len) + sizeof(*region)) >
+		    firmware->size) {
+			adsp_err(dsp,
+				 "%s.%d: %s region len %d bytes exceeds file length %zu\n",
+				 file, regions, region_name,
+				 le32_to_cpu(region->len), firmware->size);
+			ret = -EINVAL;
+			goto out_fw;
+		}
+
 		if (text) {
 			memcpy(text, region->data, le32_to_cpu(region->len));
 			adsp_info(dsp, "%s: %s\n", file, text);
 			kfree(text);
+			text = NULL;
 		}
 
 		if (reg) {
@@ -737,6 +748,7 @@ out_fw:
 	regmap_async_complete(regmap);
 	wm_adsp_buf_free(&buf_list);
 	release_firmware(firmware);
+	kfree(text);
 out:
 	kfree(file);
 
@@ -1316,6 +1328,17 @@ static int wm_adsp_load_coeff(struct wm_
 		}
 
 		if (reg) {
+			if ((pos + le32_to_cpu(blk->len) + sizeof(*blk)) >
+			    firmware->size) {
+				adsp_err(dsp,
+					 "%s.%d: %s region len %d bytes exceeds file length %zu\n",
+					 file, blocks, region_name,
+					 le32_to_cpu(blk->len),
+					 firmware->size);
+				ret = -EINVAL;
+				goto out_fw;
+			}
+
 			buf = wm_adsp_buf_alloc(blk->data,
 						le32_to_cpu(blk->len),
 						&buf_list);

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

* [PATCH 3.18 66/67] s390/kbuild: enable modversions for symbols exported from asm
  2017-11-28 10:18 [PATCH 3.18 00/67] 3.18.85-stable review Greg Kroah-Hartman
                   ` (62 preceding siblings ...)
  2017-11-28 10:20 ` [PATCH 3.18 65/67] ASoC: wm_adsp: Dont overrun firmware file buffer when reading region data Greg Kroah-Hartman
@ 2017-11-28 10:20 ` Greg Kroah-Hartman
  2017-11-28 10:20 ` [PATCH 3.18 67/67] xen: xenbus driver must not accept invalid transaction ids Greg Kroah-Hartman
                   ` (2 subsequent siblings)
  66 siblings, 0 replies; 69+ messages in thread
From: Greg Kroah-Hartman @ 2017-11-28 10:20 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Heiko Carstens, Martin Schwidefsky,
	Sasha Levin

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

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

From: Heiko Carstens <heiko.carstens@de.ibm.com>


[ Upstream commit cabab3f9f5ca077535080b3252e6168935b914af ]

s390 version of commit 334bb7738764 ("x86/kbuild: enable modversions
for symbols exported from asm") so we get also rid of all these
warnings:

WARNING: EXPORT symbol "_mcount" [vmlinux] version generation failed, symbol will not be versioned.
WARNING: EXPORT symbol "memcpy" [vmlinux] version generation failed, symbol will not be versioned.
WARNING: EXPORT symbol "memmove" [vmlinux] version generation failed, symbol will not be versioned.
WARNING: EXPORT symbol "memset" [vmlinux] version generation failed, symbol will not be versioned.
WARNING: EXPORT symbol "save_fpu_regs" [vmlinux] version generation failed, symbol will not be versioned.
WARNING: EXPORT symbol "sie64a" [vmlinux] version generation failed, symbol will not be versioned.
WARNING: EXPORT symbol "sie_exit" [vmlinux] version generation failed, symbol will not be versioned.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
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 insertions(+)
 create mode 100644 arch/s390/include/asm/asm-prototypes.h

--- /dev/null
+++ b/arch/s390/include/asm/asm-prototypes.h
@@ -0,0 +1,8 @@
+#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] 69+ messages in thread

* [PATCH 3.18 67/67] xen: xenbus driver must not accept invalid transaction ids
  2017-11-28 10:18 [PATCH 3.18 00/67] 3.18.85-stable review Greg Kroah-Hartman
                   ` (63 preceding siblings ...)
  2017-11-28 10:20 ` [PATCH 3.18 66/67] s390/kbuild: enable modversions for symbols exported from asm Greg Kroah-Hartman
@ 2017-11-28 10:20 ` Greg Kroah-Hartman
  2017-11-28 19:37 ` [PATCH 3.18 00/67] 3.18.85-stable review Shuah Khan
  2017-11-28 21:50 ` Guenter Roeck
  66 siblings, 0 replies; 69+ messages in thread
From: Greg Kroah-Hartman @ 2017-11-28 10:20 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Juergen Gross, Boris Ostrovsky, Sasha Levin

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

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

From: Juergen Gross <jgross@suse.com>


[ Upstream commit 639b08810d6ad74ded2c5f6e233c4fcb9d147168 ]

When accessing Xenstore in a transaction the user is specifying a
transaction id which he normally obtained from Xenstore when starting
the transaction. Xenstore is validating a transaction id against all
known transaction ids of the connection the request came in. As all
requests of a domain not being the one where Xenstore lives share
one connection, validation of transaction ids of different users of
Xenstore in that domain should be done by the kernel of that domain
being the multiplexer between the Xenstore users in that domain and
Xenstore.

In order to prohibit one Xenstore user "hijacking" a transaction from
another user the xenbus driver has to verify a given transaction id
against all known transaction ids of the user before forwarding it to
Xenstore.

Signed-off-by: Juergen Gross <jgross@suse.com>
Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Signed-off-by: Juergen Gross <jgross@suse.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/xen/xenbus/xenbus_dev_frontend.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/drivers/xen/xenbus/xenbus_dev_frontend.c
+++ b/drivers/xen/xenbus/xenbus_dev_frontend.c
@@ -316,7 +316,7 @@ static int xenbus_write_transaction(unsi
 			rc = -ENOMEM;
 			goto out;
 		}
-	} else if (msg_type == XS_TRANSACTION_END) {
+	} else if (u->u.msg.tx_id != 0) {
 		list_for_each_entry(trans, &u->transactions, list)
 			if (trans->handle.id == u->u.msg.tx_id)
 				break;

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

* Re: [PATCH 3.18 00/67] 3.18.85-stable review
  2017-11-28 10:18 [PATCH 3.18 00/67] 3.18.85-stable review Greg Kroah-Hartman
                   ` (64 preceding siblings ...)
  2017-11-28 10:20 ` [PATCH 3.18 67/67] xen: xenbus driver must not accept invalid transaction ids Greg Kroah-Hartman
@ 2017-11-28 19:37 ` Shuah Khan
  2017-11-29  6:33   ` Greg Kroah-Hartman
  2017-11-28 21:50 ` Guenter Roeck
  66 siblings, 1 reply; 69+ messages in thread
From: Shuah Khan @ 2017-11-28 19:37 UTC (permalink / raw)
  To: Greg Kroah-Hartman, linux-kernel
  Cc: torvalds, akpm, linux, patches, ben.hutchings, lkft-triage,
	stable, Shuah Khan

On 11/28/2017 03:18 AM, Greg Kroah-Hartman wrote:
> This is the start of the stable review cycle for the 3.18.85 release.
> There are 67 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 Thu Nov 30 10:03:41 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.85-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] 69+ messages in thread

* Re: [PATCH 3.18 00/67] 3.18.85-stable review
  2017-11-28 10:18 [PATCH 3.18 00/67] 3.18.85-stable review Greg Kroah-Hartman
                   ` (65 preceding siblings ...)
  2017-11-28 19:37 ` [PATCH 3.18 00/67] 3.18.85-stable review Shuah Khan
@ 2017-11-28 21:50 ` Guenter Roeck
  66 siblings, 0 replies; 69+ messages in thread
From: Guenter Roeck @ 2017-11-28 21:50 UTC (permalink / raw)
  To: Greg Kroah-Hartman
  Cc: linux-kernel, torvalds, akpm, shuahkh, patches, ben.hutchings,
	lkft-triage, stable

On Tue, Nov 28, 2017 at 11:18:59AM +0100, Greg Kroah-Hartman wrote:
> This is the start of the stable review cycle for the 3.18.85 release.
> There are 67 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 Thu Nov 30 10:03:41 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] 69+ messages in thread

* Re: [PATCH 3.18 00/67] 3.18.85-stable review
  2017-11-28 19:37 ` [PATCH 3.18 00/67] 3.18.85-stable review Shuah Khan
@ 2017-11-29  6:33   ` Greg Kroah-Hartman
  0 siblings, 0 replies; 69+ messages in thread
From: Greg Kroah-Hartman @ 2017-11-29  6:33 UTC (permalink / raw)
  To: Shuah Khan
  Cc: linux-kernel, torvalds, akpm, linux, patches, ben.hutchings,
	lkft-triage, stable

On Tue, Nov 28, 2017 at 12:37:40PM -0700, Shuah Khan wrote:
> On 11/28/2017 03:18 AM, Greg Kroah-Hartman wrote:
> > This is the start of the stable review cycle for the 3.18.85 release.
> > There are 67 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 Thu Nov 30 10:03:41 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.85-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 for testing all of these and letting me know.

greg k-h

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

end of thread, other threads:[~2017-11-29  6:33 UTC | newest]

Thread overview: 69+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-11-28 10:18 [PATCH 3.18 00/67] 3.18.85-stable review Greg Kroah-Hartman
2017-11-28 10:19 ` [PATCH 3.18 01/67] s390/disassembler: increase show_code buffer size Greg Kroah-Hartman
2017-11-28 10:19 ` [PATCH 3.18 02/67] ipv6: only call ip6_route_dev_notify() once for NETDEV_UNREGISTER Greg Kroah-Hartman
2017-11-28 10:19 ` [PATCH 3.18 03/67] sched: Make resched_cpu() unconditional Greg Kroah-Hartman
2017-11-28 10:19 ` [PATCH 3.18 04/67] lib/mpi: call cond_resched() from mpi_powm() loop Greg Kroah-Hartman
2017-11-28 10:19 ` [PATCH 3.18 05/67] x86/decoder: Add new TEST instruction pattern Greg Kroah-Hartman
2017-11-28 10:19 ` [PATCH 3.18 06/67] ARM: 8721/1: mm: dump: check hardware RO bit for LPAE Greg Kroah-Hartman
2017-11-28 10:19 ` [PATCH 3.18 07/67] ALSA: hda: Add Raven PCI ID Greg Kroah-Hartman
2017-11-28 10:19 ` [PATCH 3.18 08/67] dm bufio: fix integer overflow when limiting maximum cache size Greg Kroah-Hartman
2017-11-28 10:19 ` [PATCH 3.18 09/67] dm: fix race between dm_get_from_kobject() and __dm_destroy() Greg Kroah-Hartman
2017-11-28 10:19 ` [PATCH 3.18 10/67] MIPS: Fix an n32 core file generation regset support regression Greg Kroah-Hartman
2017-11-28 10:19 ` [PATCH 3.18 12/67] autofs: dont fail mount for transient error Greg Kroah-Hartman
2017-11-28 10:19 ` [PATCH 3.18 13/67] nilfs2: fix race condition that causes file system corruption Greg Kroah-Hartman
2017-11-28 10:19 ` [PATCH 3.18 14/67] eCryptfs: use after free in ecryptfs_release_messaging() Greg Kroah-Hartman
2017-11-28 10:19 ` [PATCH 3.18 15/67] bcache: check ca->alloc_thread initialized before wake up it Greg Kroah-Hartman
2017-11-28 10:19 ` [PATCH 3.18 16/67] isofs: fix timestamps beyond 2027 Greg Kroah-Hartman
2017-11-28 10:19 ` [PATCH 3.18 17/67] NFS: Fix typo in nomigration mount option Greg Kroah-Hartman
2017-11-28 10:19 ` [PATCH 3.18 18/67] nfs: Fix ugly referral attributes Greg Kroah-Hartman
2017-11-28 10:19 ` [PATCH 3.18 19/67] nfsd: deal with revoked delegations appropriately Greg Kroah-Hartman
2017-11-28 10:19 ` [PATCH 3.18 20/67] ext4: fix interaction between i_size, fallocate, and delalloc after a crash Greg Kroah-Hartman
2017-11-28 10:19 ` [PATCH 3.18 21/67] ALSA: usb-audio: Add sanity checks to FE parser Greg Kroah-Hartman
2017-11-28 10:19 ` [PATCH 3.18 22/67] ALSA: usb-audio: Fix potential out-of-bound access at parsing SU Greg Kroah-Hartman
2017-11-28 10:19 ` [PATCH 3.18 23/67] ALSA: usb-audio: Add sanity checks in v2 clock parsers Greg Kroah-Hartman
2017-11-28 10:19 ` [PATCH 3.18 24/67] ALSA: timer: Remove kernel warning at compat ioctl error paths Greg Kroah-Hartman
2017-11-28 10:19 ` [PATCH 3.18 25/67] fs/9p: Compare qid.path in v9fs_test_inode Greg Kroah-Hartman
2017-11-28 10:19 ` [PATCH 3.18 26/67] iscsi-target: Fix non-immediate TMR reference leak Greg Kroah-Hartman
2017-11-28 10:19 ` [PATCH 3.18 27/67] KVM: nVMX: set IDTR and GDTR limits when loading L1 host state Greg Kroah-Hartman
2017-11-28 10:19 ` [PATCH 3.18 29/67] clk: ti: dra7-atl-clock: Fix of_node reference counting Greg Kroah-Hartman
2017-11-28 10:19 ` [PATCH 3.18 30/67] clk: ti: dra7-atl-clock: fix child-node lookups Greg Kroah-Hartman
2017-11-28 10:19 ` [PATCH 3.18 31/67] IB/srpt: Do not accept invalid initiator port names Greg Kroah-Hartman
2017-11-28 10:19 ` [PATCH 3.18 32/67] NFC: fix device-allocation error return Greg Kroah-Hartman
2017-11-28 10:19 ` [PATCH 3.18 33/67] time: Always make sure wall_to_monotonic isnt positive Greg Kroah-Hartman
2017-11-28 10:19 ` [PATCH 3.18 34/67] i40e: Use smp_rmb rather than read_barrier_depends Greg Kroah-Hartman
2017-11-28 10:19 ` [PATCH 3.18 35/67] igb: " Greg Kroah-Hartman
2017-11-28 10:19 ` [PATCH 3.18 36/67] igbvf: " Greg Kroah-Hartman
2017-11-28 10:19 ` [PATCH 3.18 37/67] ixgbevf: " Greg Kroah-Hartman
2017-11-28 10:19 ` [PATCH 3.18 38/67] i40evf: " Greg Kroah-Hartman
2017-11-28 10:19 ` [PATCH 3.18 39/67] fm10k: " Greg Kroah-Hartman
2017-11-28 10:19 ` [PATCH 3.18 40/67] ixgbe: Fix skb list corruption on Power systems Greg Kroah-Hartman
2017-11-28 10:19 ` [PATCH 3.18 41/67] parisc: Fix validity check of pointer size argument in new CAS implementation Greg Kroah-Hartman
2017-11-28 10:19 ` [PATCH 3.18 42/67] powerpc/signal: Properly handle return value from uprobe_deny_signal() Greg Kroah-Hartman
2017-11-28 10:19 ` [PATCH 3.18 43/67] media: Dont do DMA on stack for firmware upload in the AS102 driver Greg Kroah-Hartman
2017-11-28 10:19 ` [PATCH 3.18 44/67] media: rc: check for integer overflow Greg Kroah-Hartman
2017-11-28 10:19 ` [PATCH 3.18 45/67] media: v4l2-ctrl: Fix flags field on Control events Greg Kroah-Hartman
2017-11-28 10:19 ` [PATCH 3.18 46/67] net/9p: Switch to wait_event_killable() Greg Kroah-Hartman
2017-11-28 10:19 ` [PATCH 3.18 47/67] mtd: nand: Fix writing mtdoops to nand flash Greg Kroah-Hartman
2017-11-28 10:19 ` [PATCH 3.18 48/67] USB: fix buffer overflows with parsing CDC headers Greg Kroah-Hartman
2017-11-28 10:19 ` [PATCH 3.18 49/67] iio: iio-trig-periodic-rtc: Free trigger resource correctly Greg Kroah-Hartman
2017-11-28 10:19 ` [PATCH 3.18 50/67] e1000e: Fix error path in link detection Greg Kroah-Hartman
2017-11-28 10:19 ` [PATCH 3.18 51/67] e1000e: Fix return value test Greg Kroah-Hartman
2017-11-28 10:19 ` [PATCH 3.18 52/67] e1000e: Separate signaling for link check/link up Greg Kroah-Hartman
2017-11-28 10:19 ` [PATCH 3.18 53/67] RDS: RDMA: return appropriate error on rdma map failures Greg Kroah-Hartman
2017-11-28 10:19 ` [PATCH 3.18 54/67] PCI: Apply _HPX settings only to relevant devices Greg Kroah-Hartman
2017-11-28 10:19 ` [PATCH 3.18 55/67] net: 3com: typhoon: typhoon_init_one: make return values more specific Greg Kroah-Hartman
2017-11-28 10:19 ` [PATCH 3.18 56/67] net: 3com: typhoon: typhoon_init_one: fix incorrect return values Greg Kroah-Hartman
2017-11-28 10:19 ` [PATCH 3.18 57/67] drm/armada: Fix compile fail Greg Kroah-Hartman
2017-11-28 10:19 ` [PATCH 3.18 58/67] ALSA: hda - Apply ALC269_FIXUP_NO_SHUTUP on HDA_FIXUP_ACT_PROBE Greg Kroah-Hartman
2017-11-28 10:19 ` [PATCH 3.18 59/67] mac80211: Remove invalid flag operations in mesh TSF synchronization Greg Kroah-Hartman
2017-11-28 10:19 ` [PATCH 3.18 60/67] mac80211: Suppress NEW_PEER_CANDIDATE event if no room Greg Kroah-Hartman
2017-11-28 10:20 ` [PATCH 3.18 61/67] staging: iio: cdc: fix improper return value Greg Kroah-Hartman
2017-11-28 10:20 ` [PATCH 3.18 62/67] netfilter: nft_queue: use raw_smp_processor_id() Greg Kroah-Hartman
2017-11-28 10:20 ` [PATCH 3.18 63/67] netfilter: nf_tables: fix oob access Greg Kroah-Hartman
2017-11-28 10:20 ` [PATCH 3.18 64/67] btrfs: return the actual error value from from btrfs_uuid_tree_iterate Greg Kroah-Hartman
2017-11-28 10:20 ` [PATCH 3.18 65/67] ASoC: wm_adsp: Dont overrun firmware file buffer when reading region data Greg Kroah-Hartman
2017-11-28 10:20 ` [PATCH 3.18 66/67] s390/kbuild: enable modversions for symbols exported from asm Greg Kroah-Hartman
2017-11-28 10:20 ` [PATCH 3.18 67/67] xen: xenbus driver must not accept invalid transaction ids Greg Kroah-Hartman
2017-11-28 19:37 ` [PATCH 3.18 00/67] 3.18.85-stable review Shuah Khan
2017-11-29  6:33   ` Greg Kroah-Hartman
2017-11-28 21:50 ` Guenter Roeck

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).