commit f0cd77ded5127168b1b83ca2f366ee17e9c0586f
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Sat Jul 15 12:17:55 2017 +0200

    Linux 4.9.38

commit fb2dc28cf20a25707b2165d7227d09d33fc44f7a
Author: Maciej S. Szmigiero <mail@maciej.szmigiero.name>
Date:   Sat Jul 2 20:27:46 2016 -0300

    saa7134: fix warm Medion 7134 EEPROM read
    
    commit 5a91206ff0d0548939f3e85a65fb76b400fb0e89 upstream.
    
    When saa7134 module driving a Medion 7134 card is reloaded reads of this
    card EEPROM (required for automatic detection of tuner model) will be
    corrupted due to I2C gate in DVB-T demod being left closed.
    This sometimes also happens on first saa7134 module load after a warm
    reboot.
    
    Fix this by opening this I2C gate before doing EEPROM read during i2c
    initialization.
    
    Signed-off-by: Maciej S. Szmigiero <mail@maciej.szmigiero.name>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
    Cc: Oliver Hartkopp <socketcan@hartkopp.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 81ba752aa4761261e9caa32c6706703286b96e98
Author: Mikulas Patocka <mpatocka@redhat.com>
Date:   Tue Jul 4 19:04:23 2017 -0400

    x86/mm/pat: Don't report PAT on CPUs that don't support it
    
    commit 99c13b8c8896d7bcb92753bf0c63a8de4326e78d upstream.
    
    The pat_enabled() logic is broken on CPUs which do not support PAT and
    where the initialization code fails to call pat_init(). Due to that the
    enabled flag stays true and pat_enabled() returns true wrongfully.
    
    As a consequence the mappings, e.g. for Xorg, are set up with the wrong
    caching mode and the required MTRR setups are omitted.
    
    To cure this the following changes are required:
    
      1) Make pat_enabled() return true only if PAT initialization was
         invoked and successful.
    
      2) Invoke init_cache_modes() unconditionally in setup_arch() and
         remove the extra callsites in pat_disable() and the pat disabled
         code path in pat_init().
    
    Also rename __pat_enabled to pat_disabled to reflect the real purpose of
    this variable.
    
    Fixes: 9cd25aac1f44 ("x86/mm/pat: Emulate PAT when it is disabled")
    Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Cc: Bernhard Held <berny156@gmx.de>
    Cc: Denys Vlasenko <dvlasenk@redhat.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Brian Gerst <brgerst@gmail.com>
    Cc: "Luis R. Rodriguez" <mcgrof@suse.com>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Andy Lutomirski <luto@kernel.org>
    Cc: Josh Poimboeuf <jpoimboe@redhat.com>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Link: http://lkml.kernel.org/r/alpine.LRH.2.02.1707041749300.3456@file01.intranet.prod.int.rdu2.redhat.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c0d3a7bdc7c29e2c34e9d6580d28c0cec6973182
Author: Chao Yu <yuchao0@huawei.com>
Date:   Fri Jun 23 01:08:22 2017 -0400

    ext4: check return value of kstrtoull correctly in reserved_clusters_store
    
    commit 1ea1516fbbab2b30bf98c534ecaacba579a35208 upstream.
    
    kstrtoull returns 0 on success, however, in reserved_clusters_store we
    will return -EINVAL if kstrtoull returns 0, it makes us fail to update
    reserved_clusters value through sysfs.
    
    Fixes: 76d33bca5581b1dd5c3157fa168db849a784ada4
    Signed-off-by: Chao Yu <yuchao0@huawei.com>
    Signed-off-by: Miao Xie <miaoxie@huawei.com>
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 716986547f1f052a7f49b5e5502e76db3a32d3e7
Author: Jason A. Donenfeld <Jason@zx2c4.com>
Date:   Sun Jun 11 23:20:23 2017 +0200

    crypto: rsa-pkcs1pad - use constant time memory comparison for MACs
    
    commit fec17cb2231733174e039ad9054fa16bb358e2ec upstream.
    
    Otherwise, we enable all sorts of forgeries via timing attack.
    
    Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
    Suggested-by: Stephan Müller <smueller@chronox.de>
    Cc: Herbert Xu <herbert@gondor.apana.org.au>
    Cc: linux-crypto@vger.kernel.org
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0d6758f74a469ff34e353ddd9bf3229afff7915b
Author: Horia Geantă <horia.geanta@nxp.com>
Date:   Mon Jun 19 11:44:45 2017 +0300

    crypto: caam - fix gfp allocation flags (part I)
    
    commit 42cfcafb91dabb0f9d9e08396c39824535948c67 upstream.
    
    Changes in the SW cts (ciphertext stealing) code in
    commit 0605c41cc53ca ("crypto: cts - Convert to skcipher")
    revealed a problem in the CAAM driver:
    when cts(cbc(aes)) is executed and cts runs in SW,
    cbc(aes) is offloaded in CAAM; cts encrypts the last block
    in atomic context and CAAM incorrectly decides to use GFP_KERNEL
    for memory allocation.
    
    Fix this by allowing GFP_KERNEL (sleeping) only when MAY_SLEEP flag is
    set, i.e. remove MAY_BACKLOG flag.
    
    We split the fix in two parts - first is sent to -stable, while the
    second is not (since there is no known failure case).
    
    Link: http://lkml.kernel.org/g/20170602122446.2427-1-david@sigma-star.at
    Reported-by: David Gstir <david@sigma-star.at>
    Signed-off-by: Horia Geantă <horia.geanta@nxp.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 090661e4073d4eea3f9644f48193d6791fed9b1d
Author: Ian Abbott <abbotti@mev.co.uk>
Date:   Fri Jun 16 19:35:34 2017 +0100

    staging: comedi: fix clean-up of comedi_class in comedi_init()
    
    commit a9332e9ad09c2644c99058fcf6ae2f355e93ce74 upstream.
    
    There is a clean-up bug in the core comedi module initialization
    functions, `comedi_init()`.  If the `comedi_num_legacy_minors` module
    parameter is non-zero (and valid), it creates that many "legacy" devices
    and registers them in SysFS.  A failure causes the function to clean up
    and return an error.  Unfortunately, it fails to destroy the "comedi"
    class that was created earlier.  Fix it by adding a call to
    `class_destroy(comedi_class)` at the appropriate place in the clean-up
    sequence.
    
    Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 80c965cbd28032aa941a431d7c69d9f5c1a5ff34
Author: Malcolm Priestley <tvboxspy@gmail.com>
Date:   Sat Apr 29 13:03:44 2017 +0100

    staging: vt6556: vnt_start Fix missing call to vnt_key_init_table.
    
    commit dc32190f2cd41c7dba25363ea7d618d4f5172b4e upstream.
    
    The key table is not intialized correctly without this call.
    
    Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5497d74e75f8b33bc0777d3550c0159b66f0d3fa
Author: Kirill Tkhai <ktkhai@virtuozzo.com>
Date:   Fri Jun 16 16:44:34 2017 +0300

    locking/rwsem-spinlock: Fix EINTR branch in __down_write_common()
    
    commit a0c4acd2c220376b4e9690e75782d0c0afdaab9f upstream.
    
    If a writer could been woken up, the above branch
    
            if (sem->count == 0)
                    break;
    
    would have moved us to taking the sem. So, it's
    not the time to wake a writer now, and only readers
    are allowed now. Thus, 0 must be passed to __rwsem_do_wake().
    
    Next, __rwsem_do_wake() wakes readers unconditionally.
    But we mustn't do that if the sem is owned by writer
    in the moment. Otherwise, writer and reader own the sem
    the same time, which leads to memory corruption in
    callers.
    
    rwsem-xadd.c does not need that, as:
    
      1) the similar check is made lockless there,
      2) in __rwsem_mark_wake::try_reader_grant we test,
    
    that sem is not owned by writer.
    
    Signed-off-by: Kirill Tkhai <ktkhai@virtuozzo.com>
    Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Niklas Cassel <niklas.cassel@axis.com>
    Cc: Peter Zijlstra (Intel) <peterz@infradead.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Fixes: 17fcbd590d0c "locking/rwsem: Fix down_write_killable() for CONFIG_RWSEM_GENERIC_SPINLOCK=y"
    Link: http://lkml.kernel.org/r/149762063282.19811.9129615532201147826.stgit@localhost.localdomain
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3953403ca660817a33e7f7ad65a265facc0e59c7
Author: Jason Yan <yanaijie@huawei.com>
Date:   Fri Mar 10 11:27:23 2017 +0800

    md: fix super_offset endianness in super_1_rdev_size_change
    
    commit 3fb632e40d7667d8bedfabc28850ac06d5493f54 upstream.
    
    The sb->super_offset should be big-endian, but the rdev->sb_start is in
    host byte order, so fix this by adding cpu_to_le64.
    
    Signed-off-by: Jason Yan <yanaijie@huawei.com>
    Signed-off-by: Shaohua Li <shli@fb.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9a37d02c497cd839beee3e0cab0fc606bcfe08bf
Author: Jason Yan <yanaijie@huawei.com>
Date:   Fri Mar 10 11:49:12 2017 +0800

    md: fix incorrect use of lexx_to_cpu in does_sb_need_changing
    
    commit 1345921393ba23b60d3fcf15933e699232ad25ae upstream.
    
    The sb->layout is of type __le32, so we shoud use le32_to_cpu.
    
    Signed-off-by: Jason Yan <yanaijie@huawei.com>
    Signed-off-by: Shaohua Li <shli@fb.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ce02effed0ec8f8702af643726a601bb06cd0aa9
Author: Masami Hiramatsu <mhiramat@kernel.org>
Date:   Wed Jan 11 15:00:47 2017 +0900

    perf probe: Add error checks to offline probe post-processing
    
    commit 3e96dac7c956089d3f23aca98c4dfca57b6aaf8a upstream.
    
    Add error check codes on post processing and improve it for offline
    probe events as:
    
     - post processing fails if no matched symbol found in map(-ENOENT)
       or strdup() failed(-ENOMEM).
    
     - Even if the symbol name is the same, it updates symbol address
       and offset.
    
    Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Link: http://lkml.kernel.org/r/148411443738.9978.4617979132625405545.stgit@devbox
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Krister Johansen <kjlx@templeofstupid.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 364973599e2e24b2f64f555a746215b4697de1ae
Author: Masami Hiramatsu <mhiramat@kernel.org>
Date:   Wed Jan 4 12:30:19 2017 +0900

    perf probe: Fix to probe on gcc generated symbols for offline kernel
    
    commit 8a937a25a7e3c19d5fb3f9d92f605cf5fda219d8 upstream.
    
    Fix perf-probe to show probe definition on gcc generated symbols for
    offline kernel (including cross-arch kernel image).
    
    gcc sometimes optimizes functions and generate new symbols with suffixes
    such as ".constprop.N" or ".isra.N" etc. Since those symbol names are
    not recorded in DWARF, we have to find correct generated symbols from
    offline ELF binary to probe on it (kallsyms doesn't correct it).  For
    online kernel or uprobes we don't need it because those are rebased on
    _text, or a section relative address.
    
    E.g. Without this:
    
      $ perf probe -k build-arm/vmlinux -F __slab_alloc*
      __slab_alloc.constprop.9
      $ perf probe -k build-arm/vmlinux -D __slab_alloc
      p:probe/__slab_alloc __slab_alloc+0
    
    If you put above definition on target machine, it should fail
    because there is no __slab_alloc in kallsyms.
    
    With this fix, perf probe shows correct probe definition on
    __slab_alloc.constprop.9:
    
      $ perf probe -k build-arm/vmlinux -D __slab_alloc
      p:probe/__slab_alloc __slab_alloc.constprop.9+0
    
    Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Link: http://lkml.kernel.org/r/148350060434.19001.11864836288580083501.stgit@devbox
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Krister Johansen <kjlx@templeofstupid.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cd206153672a96640a4288b5b838634fea23d8ce
Author: Wang YanQing <udknight@gmail.com>
Date:   Sun Feb 12 10:46:55 2017 +0800

    perf scripting perl: Fix compile error with some perl5 versions
    
    commit d7dd112ea5cacf91ae72c0714c3b911eb6016fea upstream.
    
    Fix below compile error:
    
      CC       util/scripting-engines/trace-event-perl.o
      In file included from /usr/lib/perl5/5.22.2/i686-linux/CORE/perl.h:5673:0,
                       from util/scripting-engines/trace-event-perl.c:31:
      /usr/lib/perl5/5.22.2/i686-linux/CORE/inline.h: In function 'S__is_utf8_char_slow':
      /usr/lib/perl5/5.22.2/i686-linux/CORE/inline.h:270:5: error: nested extern declaration of 'Perl___notused' [-Werror=nested-externs]
              dTHX;   /* The function called below requires thread context */
                                 ^
      cc1: all warnings being treated as errors
    
    After digging perl5 repository, I find out that we will meet this
    compile error with perl from v5.21.1 to v5.25.4
    
    Signed-off-by: Wang YanQing <udknight@gmail.com>
    Acked-by: Jiri Olsa <jolsa@kernel.org>
    Link: http://lkml.kernel.org/r/20170212024655.GA15997@udknight
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b9175b3fa90cf77ebebdb4d86fb7089b7495ca2a
Author: Arnaldo Carvalho de Melo <acme@redhat.com>
Date:   Wed Feb 8 21:57:22 2017 -0300

    perf header: Fix handling of PERF_EVENT_UPDATE__SCALE
    
    commit 8434a2ec13d5c8cb25716950bfbf7c9d7b64628a upstream.
    
    In commit daeecbc0c431 ("perf tools: Add event_update event scale type"), the
    handling of PERF_EVENT_UPDATE__SCALE cast struct event_update_event->data to a
    pointer to event_update_event_scale, uses some field from this casted struct
    and then ends up falling through to the handling of another event type,
    PERF_EVENT_UPDATE__CPUS were it casts that ev->data to yet another type, oops,
    fix it by inserting the missing break.
    
    Noticed when building perf using gcc 7 on Fedora Rawhide:
    
      util/header.c: In function 'perf_event__process_event_update':
      util/header.c:3207:16: error: this statement may fall through [-Werror=implicit-fallthrough=]
         evsel->scale = ev_scale->scale;
         ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
      util/header.c:3208:2: note: here
        case PERF_EVENT_UPDATE__CPUS:
        ^~~~
    
    This wasn't noticed because probably PERF_EVENT_UPDATE__CPUS comes after
    PERF_EVENT_UPDATE__SCALE, so we would just create a bogus evsel->own_cpus when
    processing a PERF_EVENT_UPDATE__SCALE to then leak it and create a new cpu map
    with the correct data.
    
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Kan Liang <kan.liang@intel.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Fixes: daeecbc0c431 ("perf tools: Add event_update event scale type")
    Link: http://lkml.kernel.org/n/tip-lukcf9hdj092ax2914ss95at@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 15c249c85d57d269860154df129b0234f30c9f8b
Author: Arnaldo Carvalho de Melo <acme@redhat.com>
Date:   Thu Feb 9 14:39:42 2017 -0300

    perf bench numa: Avoid possible truncation when using snprintf()
    
    commit 3aff8ba0a4c9c9191bb788171a1c54778e1246a2 upstream.
    
    Addressing this warning from gcc 7:
    
        CC       /tmp/build/perf/bench/numa.o
      bench/numa.c: In function '__bench_numa':
      bench/numa.c:1582:42: error: '%d' directive output may be truncated writing between 1 and 10 bytes into a region of size between 8 and 17 [-Werror=format-truncation=]
           snprintf(tname, 32, "process%d:thread%d", p, t);
                                                ^~
      bench/numa.c:1582:25: note: directive argument in the range [0, 2147483647]
           snprintf(tname, 32, "process%d:thread%d", p, t);
                               ^~~~~~~~~~~~~~~~~~~~
      In file included from /usr/include/stdio.h:939:0,
                       from bench/../util/util.h:47,
                       from bench/../builtin.h:4,
                       from bench/numa.c:11:
      /usr/include/bits/stdio2.h:64:10: note: '__builtin___snprintf_chk' output between 17 and 35 bytes into a destination of size 32
         return __builtin___snprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1,
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
              __bos (__s), __fmt, __va_arg_pack ());
              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      cc1: all warnings being treated as errors
    
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Petr Holasek <pholasek@redhat.com>
    Cc: Wang Nan <wangnan0@huawei.com>
    Link: http://lkml.kernel.org/n/tip-twa37vsfqcie5gwpqwnjuuz9@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b246fc09a2232a26f348cd625d7b1d57b14b18fb
Author: Arnaldo Carvalho de Melo <acme@redhat.com>
Date:   Thu Feb 9 14:48:46 2017 -0300

    perf tests: Avoid possible truncation with dirent->d_name + snprintf
    
    commit 2e2bbc039fad9eabad6c4c1a473c8b2554cdd2d4 upstream.
    
    Addressing a few cases spotted by a new warning in gcc 7:
    
      tests/parse-events.c: In function 'test_pmu_events':
      tests/parse-events.c:1790:39: error: '%s' directive output may be truncated writing up to 255 bytes into a region of size 90 [-Werror=format-truncation=]
         snprintf(name, MAX_NAME, "cpu/event=%s/u", ent->d_name);
                                           ^~
      In file included from /usr/include/stdio.h:939:0,
                       from /git/linux/tools/perf/util/map.h:9,
                       from /git/linux/tools/perf/util/symbol.h:7,
                       from /git/linux/tools/perf/util/evsel.h:10,
                       from tests/parse-events.c:3:
      /usr/include/bits/stdio2.h:64:10: note: '__builtin___snprintf_chk' output between 13 and 268 bytes into a destination of size 100
         return __builtin___snprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1,
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
              __bos (__s), __fmt, __va_arg_pack ());
              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      tests/parse-events.c:1798:29: error: '%s' directive output may be truncated writing up to 255 bytes into a region of size 100 [-Werror=format-truncation=]
         snprintf(name, MAX_NAME, "%s:u,cpu/event=%s/u", ent->d_name, ent->d_name);
    
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Wang Nan <wangnan0@huawei.com>
    Fixes: 945aea220bb8 ("perf tests: Move test objects into 'tests' directory")
    Link: http://lkml.kernel.org/n/tip-ty4q2p8zp1dp3mskvubxskm5@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 93a3c47d033a2aafd98dddbb0b0b035f852522ab
Author: Arnaldo Carvalho de Melo <acme@redhat.com>
Date:   Thu Feb 9 15:22:22 2017 -0300

    perf intel-pt: Use __fallthrough
    
    commit 7ea6856d6f5629d742edc23b8b76e6263371ef45 upstream.
    
    To address new warnings emmited by gcc 7, e.g.::
    
        CC       /tmp/build/perf/util/intel-pt-decoder/intel-pt-pkt-decoder.o
        CC       /tmp/build/perf/tests/parse-events.o
      util/intel-pt-decoder/intel-pt-pkt-decoder.c: In function 'intel_pt_pkt_desc':
      util/intel-pt-decoder/intel-pt-pkt-decoder.c:499:6: error: this statement may fall through [-Werror=implicit-fallthrough=]
         if (!(packet->count))
            ^
      util/intel-pt-decoder/intel-pt-pkt-decoder.c:501:2: note: here
        case INTEL_PT_CYC:
        ^~~~
        CC       /tmp/build/perf/util/intel-pt-decoder/intel-pt-decoder.o
      cc1: all warnings being treated as errors
    
    Acked-by: Andi Kleen <ak@linux.intel.com>
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Wang Nan <wangnan0@huawei.com>
    Link: http://lkml.kernel.org/n/tip-mf0hw789pu9x855us5l32c83@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 055237857974d5abd3f35962a4572386d1876fe5
Author: Arnaldo Carvalho de Melo <acme@redhat.com>
Date:   Wed Feb 8 17:01:46 2017 -0300

    perf thread_map: Correctly size buffer used with dirent->dt_name
    
    commit bdf23a9a190d7ecea092fd5c4aabb7d4bd0a9980 upstream.
    
    The size of dirent->dt_name is NAME_MAX + 1, but the size for the 'path'
    buffer is hard coded at 256, which may truncate it because we also
    prepend "/proc/", so that all that into account and thank gcc 7 for this
    warning:
    
      /git/linux/tools/perf/util/thread_map.c: In function 'thread_map__new_by_uid':
      /git/linux/tools/perf/util/thread_map.c:119:39: error: '%s' directive output may be truncated writing up to 255 bytes into a region of size 250 [-Werror=format-truncation=]
         snprintf(path, sizeof(path), "/proc/%s", dirent->d_name);
                                             ^~
      In file included from /usr/include/stdio.h:939:0,
                       from /git/linux/tools/perf/util/thread_map.c:5:
      /usr/include/bits/stdio2.h:64:10: note: '__builtin___snprintf_chk' output between 7 and 262 bytes into a destination of size 256
         return __builtin___snprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1,
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
              __bos (__s), __fmt, __va_arg_pack ());
              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Wang Nan <wangnan0@huawei.com>
    Link: http://lkml.kernel.org/n/tip-csy0r8zrvz5efccgd4k12c82@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a814c7d1d8f4232e3c12f954d7b1789616258189
Author: Arnaldo Carvalho de Melo <acme@redhat.com>
Date:   Wed Feb 8 17:01:46 2017 -0300

    perf top: Use __fallthrough
    
    commit 7b0214b702ad8e124e039a317beeebb3f020d125 upstream.
    
    The implicit fall through case label here is intended, so let us inform
    that to gcc >= 7:
    
        CC       /tmp/build/perf/builtin-top.o
      builtin-top.c: In function 'display_thread':
      builtin-top.c:644:7: error: this statement may fall through [-Werror=implicit-fallthrough=]
          if (errno == EINTR)
             ^
      builtin-top.c:647:3: note: here
         default:
       ^~~~~~~
    
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Wang Nan <wangnan0@huawei.com>
    Link: http://lkml.kernel.org/n/tip-lmcfnnyx9ic0m6j0aud98p4e@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 94218786b3ba106014a2e523907ea72cd316627f
Author: Arnaldo Carvalho de Melo <acme@redhat.com>
Date:   Wed Feb 8 17:01:46 2017 -0300

    tools strfilter: Use __fallthrough
    
    commit d64b721d27aef3fbeb16ecda9dd22ee34818ff70 upstream.
    
    The implicit fall through case label here is intended, so let us inform
    that to gcc >= 7:
    
      util/strfilter.c: In function 'strfilter_node__sprint':
      util/strfilter.c:270:6: error: this statement may fall through [-Werror=implicit-fallthrough=]
         if (len < 0)
            ^
      util/strfilter.c:272:2: note: here
        case '!':
        ^~~~
      cc1: all warnings being treated as errors
    
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Wang Nan <wangnan0@huawei.com>
    Link: http://lkml.kernel.org/n/tip-z2dpywg7u8fim000hjfbpyfm@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 76efd703014fbf446ca5115588322758724a42c9
Author: Arnaldo Carvalho de Melo <acme@redhat.com>
Date:   Wed Feb 8 17:01:46 2017 -0300

    tools string: Use __fallthrough in perf_atoll()
    
    commit 94bdd5edb34e472980d1e18b4600d6fb92bd6b0a upstream.
    
    The implicit fall through case label here is intended, so let us inform
    that to gcc >= 7:
    
        CC       /tmp/build/perf/util/string.o
      util/string.c: In function 'perf_atoll':
      util/string.c:22:7: error: this statement may fall through [-Werror=implicit-fallthrough=]
          if (*p)
             ^
      util/string.c:24:3: note: here
         case '\0':
         ^~~~
    
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Wang Nan <wangnan0@huawei.com>
    Link: http://lkml.kernel.org/n/tip-0ophb30v9apkk6o95el0rqlq@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit dae518419a4247ce624b417db7a46c656215373d
Author: Arnaldo Carvalho de Melo <acme@redhat.com>
Date:   Wed Feb 8 17:01:46 2017 -0300

    tools include: Add a __fallthrough statement
    
    commit b5bf1733d6a391c4e90ea8f8468d83023be74a2a upstream.
    
    For cases where implicit fall through case labels are intended,
    to let us inform that to gcc >= 7:
    
        CC       /tmp/build/perf/util/string.o
      util/string.c: In function 'perf_atoll':
      util/string.c:22:7: error: this statement may fall through [-Werror=implicit-fallthrough=]
          if (*p)
             ^
      util/string.c:24:3: note: here
         case '\0':
         ^~~~
    
    So we introduce:
    
      #define __fallthrough __attribute__ ((fallthrough))
    
    And use it in such cases.
    
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Wang Nan <wangnan0@huawei.com>
    Cc: William Cohen <wcohen@redhat.com>
    Link: http://lkml.kernel.org/n/tip-qnpig0xfop4hwv6k4mv1wts5@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b635182b4f41d5c5d7c9e059f6ee336f02921cb9
Author: Josh Zimmerman <joshz@google.com>
Date:   Sun Jun 25 14:53:24 2017 -0700

    tpm: Issue a TPM2_Shutdown for TPM2 devices.
    
    commit d1bd4a792d3961a04e6154118816b00167aad91a upstream.
    
    If a TPM2 loses power without a TPM2_Shutdown command being issued (a
    "disorderly reboot"), it may lose some state that has yet to be
    persisted to NVRam, and will increment the DA counter. After the DA
    counter gets sufficiently large, the TPM will lock the user out.
    
    NOTE: This only changes behavior on TPM2 devices. Since TPM1 uses sysfs,
    and sysfs relies on implicit locking on chip->ops, it is not safe to
    allow this code to run in TPM1, or to add sysfs support to TPM2, until
    that locking is made explicit.
    
    Signed-off-by: Josh Zimmerman <joshz@google.com>
    Fixes: 74d6b3ceaa17 ("tpm: fix suspend/resume paths for TPM 2.0")
    Reviewed-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
    Tested-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
    Signed-off-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
    Signed-off-by: James Morris <james.l.morris@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5a1e1c62f37e83657b570953cab9855f17fcbc7d
Author: Josh Zimmerman <joshz@google.com>
Date:   Sun Jun 25 14:53:23 2017 -0700

    Add "shutdown" to "struct class".
    
    commit f77af15165847406b15d8f70c382c4cb15846b2a upstream.
    
    The TPM class has some common shutdown code that must be executed for
    all drivers. This adds some needed functionality for that.
    
    Signed-off-by: Josh Zimmerman <joshz@google.com>
    Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Fixes: 74d6b3ceaa17 ("tpm: fix suspend/resume paths for TPM 2.0")
    Reviewed-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
    Tested-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
    Signed-off-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
    Signed-off-by: James Morris <james.l.morris@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e6952841ade0f937750c7748a812cb403bd744b0
Author: Cong Wang <xiyou.wangcong@gmail.com>
Date:   Sun Jul 9 13:19:55 2017 -0700

    mqueue: fix a use-after-free in sys_mq_notify()
    
    commit f991af3daabaecff34684fd51fac80319d1baad1 upstream.
    
    The retry logic for netlink_attachskb() inside sys_mq_notify()
    is nasty and vulnerable:
    
    1) The sock refcnt is already released when retry is needed
    2) The fd is controllable by user-space because we already
       release the file refcnt
    
    so we when retry but the fd has been just closed by user-space
    during this small window, we end up calling netlink_detachskb()
    on the error path which releases the sock again, later when
    the user-space closes this socket a use-after-free could be
    triggered.
    
    Setting 'sock' to NULL here should be sufficient to fix it.
    
    Reported-by: GeneBlue <geneblue.mail@gmail.com>
    Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Cc: Manfred Spraul <manfred@colorfullife.com>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
