Skip to content
  1. Sep 19, 2021
    • Ian Rogers's avatar
      libperf evsel: Make use of FD robust. · aba5daeb
      Ian Rogers authored
      
      
      FD uses xyarray__entry that may return NULL if an index is out of
      bounds. If NULL is returned then a segv happens as FD unconditionally
      dereferences the pointer. This was happening in a case of with perf
      iostat as shown below. The fix is to make FD an "int*" rather than an
      int and handle the NULL case as either invalid input or a closed fd.
      
        $ sudo gdb --args perf stat --iostat  list
        ...
        Breakpoint 1, perf_evsel__alloc_fd (evsel=0x5555560951a0, ncpus=1, nthreads=1) at evsel.c:50
        50      {
        (gdb) bt
         #0  perf_evsel__alloc_fd (evsel=0x5555560951a0, ncpus=1, nthreads=1) at evsel.c:50
         #1  0x000055555585c188 in evsel__open_cpu (evsel=0x5555560951a0, cpus=0x555556093410,
            threads=0x555556086fb0, start_cpu=0, end_cpu=1) at util/evsel.c:1792
         #2  0x000055555585cfb2 in evsel__open (evsel=0x5555560951a0, cpus=0x0, threads=0x555556086fb0)
            at util/evsel.c:2045
         #3  0x000055555585d0db in evsel__open_per_thread (evsel=0x5555560951a0, threads=0x555556086fb0)
            at util/evsel.c:2065
         #4  0x00005555558ece64 in create_perf_stat_counter (evsel=0x5555560951a0,
            config=0x555555c34700 <stat_config>, target=0x555555c2f1c0 <target>, cpu=0) at util/stat.c:590
         #5  0x000055555578e927 in __run_perf_stat (argc=1, argv=0x7fffffffe4a0, run_idx=0)
            at builtin-stat.c:833
         #6  0x000055555578f3c6 in run_perf_stat (argc=1, argv=0x7fffffffe4a0, run_idx=0)
            at builtin-stat.c:1048
         #7  0x0000555555792ee5 in cmd_stat (argc=1, argv=0x7fffffffe4a0) at builtin-stat.c:2534
         #8  0x0000555555835ed3 in run_builtin (p=0x555555c3f540 <commands+288>, argc=3,
            argv=0x7fffffffe4a0) at perf.c:313
         #9  0x0000555555836154 in handle_internal_command (argc=3, argv=0x7fffffffe4a0) at perf.c:365
         #10 0x000055555583629f in run_argv (argcp=0x7fffffffe2ec, argv=0x7fffffffe2e0) at perf.c:409
         #11 0x0000555555836692 in main (argc=3, argv=0x7fffffffe4a0) at perf.c:539
        ...
        (gdb) c
        Continuing.
        Error:
        The sys_perf_event_open() syscall returned with 22 (Invalid argument) for event (uncore_iio_0/event=0x83,umask=0x04,ch_mask=0xF,fc_mask=0x07/).
        /bin/dmesg | grep -i perf may provide additional information.
      
        Program received signal SIGSEGV, Segmentation fault.
        0x00005555559b03ea in perf_evsel__close_fd_cpu (evsel=0x5555560951a0, cpu=1) at evsel.c:166
        166                     if (FD(evsel, cpu, thread) >= 0)
      
      v3. fixes a bug in perf_evsel__run_ioctl where the sense of a branch was
          backward.
      
      Signed-off-by: default avatarIan Rogers <irogers@google.com>
      Acked-by: default avatarJiri Olsa <jolsa@redhat.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Stephane Eranian <eranian@google.com>
      Link: http://lore.kernel.org/lkml/20210918054440.2350466-1-irogers@google.com
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      aba5daeb
    • Michael Petlan's avatar
      perf machine: Initialize srcline string member in add_location struct · 57f0ff05
      Michael Petlan authored
      It's later supposed to be either a correct address or NULL. Without the
      initialization, it may contain an undefined value which results in the
      following segmentation fault:
      
        # perf top --sort comm -g --ignore-callees=do_idle
      
      terminates with:
      
        #0  0x00007ffff56b7685 in __strlen_avx2 () from /lib64/libc.so.6
        #1  0x00007ffff55e3802 in strdup () from /lib64/libc.so.6
        #2  0x00005555558cb139 in hist_entry__init (callchain_size=<optimized out>, sample_self=true, template=0x7fffde7fb110, he=0x7fffd801c250) at util/hist.c:489
        #3  hist_entry__new (template=template@entry=0x7fffde7fb110, sample_self=sample_self@entry=true) at util/hist.c:564
        #4  0x00005555558cb4ba in hists__findnew_entry (hists=hists@entry=0x5555561d9e38, entry=entry@entry=0x7fffde7fb110, al=al@entry=0x7fffde7fb420,
            sample_self=sample_self@entry=true) at util/hist.c:657
        #5  0x00005555558cba1b in __hists__add_entry (hists=hists@entry=0x5555561d9e38, al=0x7fffde7fb420, sym_parent=<optimized out>, bi=bi@entry=0x0, mi=mi@entry=0x0,
            sample=sample@entry=0x7fffde7fb4b0, sample_self=true, ops=0x0, block_info=0x0) at util/hist.c:288
        #6  0x00005555558cbb70 in hists__add_entry (sample_self=true, sample=0x7fffde7fb4b0, mi=0x0, bi=0x0, sym_parent=<optimized out>, al=<optimized out>, hists=0x5555561d9e38)
            at util/hist.c:1056
        #7  iter_add_single_cumulative_entry (iter=0x7fffde7fb460, al=<optimized out>) at util/hist.c:1056
        #8  0x00005555558cc8a4 in hist_entry_iter__add (iter=iter@entry=0x7fffde7fb460, al=al@entry=0x7fffde7fb420, max_stack_depth=<optimized out>, arg=arg@entry=0x7fffffff7db0)
            at util/hist.c:1231
        #9  0x00005555557cdc9a in perf_event__process_sample (machine=<optimized out>, sample=0x7fffde7fb4b0, evsel=<optimized out>, event=<optimized out>, tool=0x7fffffff7db0)
            at builtin-top.c:842
        #10 deliver_event (qe=<optimized out>, qevent=<optimized out>) at builtin-top.c:1202
        #11 0x00005555558a9318 in do_flush (show_progress=false, oe=0x7fffffff80e0) at util/ordered-events.c:244
        #12 __ordered_events__flush (oe=oe@entry=0x7fffffff80e0, how=how@entry=OE_FLUSH__TOP, timestamp=timestamp@entry=0) at util/ordered-events.c:323
        #13 0x00005555558a9789 in __ordered_events__flush (timestamp=<optimized out>, how=<optimized out>, oe=<optimized out>) at util/ordered-events.c:339
        #14 ordered_events__flush (how=OE_FLUSH__TOP, oe=0x7fffffff80e0) at util/ordered-events.c:341
        #15 ordered_events__flush (oe=oe@entry=0x7fffffff80e0, how=how@entry=OE_FLUSH__TOP) at util/ordered-events.c:339
        #16 0x00005555557cd631 in process_thread (arg=0x7fffffff7db0) at builtin-top.c:1114
        #17 0x00007ffff7bb817a in start_thread () from /lib64/libpthread.so.0
        #18 0x00007ffff5656dc3 in clone () from /lib64/libc.so.6
      
      If you look at the frame #2, the code is:
      
      488	 if (he->srcline) {
      489          he->srcline = strdup(he->srcline);
      490          if (he->srcline == NULL)
      491              goto err_rawdata;
      492	 }
      
      If he->srcline is not NULL (it is not NULL if it is uninitialized rubbish),
      it gets strdupped and strdupping a rubbish random string causes the problem.
      
      Also, if you look at the commit 1fb7d06a
      
      , it adds the srcline property
      into the struct, but not initializing it everywhere needed.
      
      Committer notes:
      
      Now I see, when using --ignore-callees=do_idle we end up here at line
      2189 in add_callchain_ip():
      
      2181         if (al.sym != NULL) {
      2182                 if (perf_hpp_list.parent && !*parent &&
      2183                     symbol__match_regex(al.sym, &parent_regex))
      2184                         *parent = al.sym;
      2185                 else if (have_ignore_callees && root_al &&
      2186                   symbol__match_regex(al.sym, &ignore_callees_regex)) {
      2187                         /* Treat this symbol as the root,
      2188                            forgetting its callees. */
      2189                         *root_al = al;
      2190                         callchain_cursor_reset(cursor);
      2191                 }
      2192         }
      
      And the al that doesn't have the ->srcline field initialized will be
      copied to the root_al, so then, back to:
      
      1211 int hist_entry_iter__add(struct hist_entry_iter *iter, struct addr_location *al,
      1212                          int max_stack_depth, void *arg)
      1213 {
      1214         int err, err2;
      1215         struct map *alm = NULL;
      1216
      1217         if (al)
      1218                 alm = map__get(al->map);
      1219
      1220         err = sample__resolve_callchain(iter->sample, &callchain_cursor, &iter->parent,
      1221                                         iter->evsel, al, max_stack_depth);
      1222         if (err) {
      1223                 map__put(alm);
      1224                 return err;
      1225         }
      1226
      1227         err = iter->ops->prepare_entry(iter, al);
      1228         if (err)
      1229                 goto out;
      1230
      1231         err = iter->ops->add_single_entry(iter, al);
      1232         if (err)
      1233                 goto out;
      1234
      
      That al at line 1221 is what hist_entry_iter__add() (called from
      sample__resolve_callchain()) saw as 'root_al', and then:
      
              iter->ops->add_single_entry(iter, al);
      
      will go on with al->srcline with a bogus value, I'll add the above
      sequence to the cset and apply, thanks!
      
      Signed-off-by: default avatarMichael Petlan <mpetlan@redhat.com>
      CC: Milian Wolff <milian.wolff@kdab.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Fixes: 1fb7d06a
      
       ("perf report Use srcline from callchain for hist entries")
      Link: https //lore.kernel.org/r/20210719145332.29747-1-mpetlan@redhat.com
      Reported-by: default avatarJuri Lelli <jlelli@redhat.com>
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      57f0ff05
    • Adrian Hunter's avatar
      perf script: Fix ip display when type != attr->type · ff6f41fb
      Adrian Hunter authored
      
      
      set_print_ip_opts() was not being called when type != attr->type
      because there is not a one-to-one relationship between output types
      and attr->type. That resulted in ip not printing.
      
      The attr_type() function is removed, and the match of attr->type to
      output type is corrected.
      
      Example on ADL using taskset to select an atom cpu:
      
       # perf record -e cpu_atom/cpu-cycles/ taskset 0x1000 uname
       Linux
       [ perf record: Woken up 1 times to write data ]
       [ perf record: Captured and wrote 0.003 MB perf.data (7 samples) ]
      
       Before:
      
        # perf script | head
               taskset   428 [-01] 10394.179041:          1 cpu_atom/cpu-cycles/:
               taskset   428 [-01] 10394.179043:          1 cpu_atom/cpu-cycles/:
               taskset   428 [-01] 10394.179044:         11 cpu_atom/cpu-cycles/:
               taskset   428 [-01] 10394.179045:        407 cpu_atom/cpu-cycles/:
               taskset   428 [-01] 10394.179046:      16789 cpu_atom/cpu-cycles/:
               taskset   428 [-01] 10394.179052:     676300 cpu_atom/cpu-cycles/:
                 uname   428 [-01] 10394.179278:    4079859 cpu_atom/cpu-cycles/:
      
       After:
      
        # perf script | head
               taskset   428 10394.179041:          1 cpu_atom/cpu-cycles/:  ffffffff95a0bb97 __intel_pmu_enable_all.constprop.48+0x47 ([kernel.kallsyms])
               taskset   428 10394.179043:          1 cpu_atom/cpu-cycles/:  ffffffff95a0bb97 __intel_pmu_enable_all.constprop.48+0x47 ([kernel.kallsyms])
               taskset   428 10394.179044:         11 cpu_atom/cpu-cycles/:  ffffffff95a0bb97 __intel_pmu_enable_all.constprop.48+0x47 ([kernel.kallsyms])
               taskset   428 10394.179045:        407 cpu_atom/cpu-cycles/:  ffffffff95a0bb97 __intel_pmu_enable_all.constprop.48+0x47 ([kernel.kallsyms])
               taskset   428 10394.179046:      16789 cpu_atom/cpu-cycles/:  ffffffff95a0bb97 __intel_pmu_enable_all.constprop.48+0x47 ([kernel.kallsyms])
               taskset   428 10394.179052:     676300 cpu_atom/cpu-cycles/:      7f829ef73800 cfree+0x0 (/lib/libc-2.32.so)
                 uname   428 10394.179278:    4079859 cpu_atom/cpu-cycles/:  ffffffff95bae912 vma_interval_tree_remove+0x1f2 ([kernel.kallsyms])
      
      Signed-off-by: default avatarAdrian Hunter <adrian.hunter@intel.com>
      Reviewed-by: default avatarKan Liang <kan.liang@linux.intel.com>
      Cc: Jin Yao <yao.jin@linux.intel.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Link: http://lore.kernel.org/lkml/20210911133053.15682-1-adrian.hunter@intel.com
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      ff6f41fb
    • Ravi Bangoria's avatar
      perf annotate: Fix fused instr logic for assembly functions · 7efbcc8c
      Ravi Bangoria authored
      
      
      Some x86 microarchitectures fuse a subset of cmp/test/ALU instructions
      with branch instructions, and thus perf annotate highlight such valid
      pairs as fused.
      
      When annotated with source, perf uses struct disasm_line to contain
      either source or instruction line from objdump output. Usually, a C
      statement generates multiple instructions which include such
      cmp/test/ALU + branch instruction pairs. But in case of assembly
      function, each individual assembly source line generate one
      instruction.
      
      The 'perf annotate' instruction fusion logic assumes the previous
      disasm_line as the previous instruction line, which is wrong because,
      for assembly function, previous disasm_line contains source line.  And
      thus perf fails to highlight valid fused instruction pairs for assembly
      functions.
      
      Fix it by searching backward until we find an instruction line and
      consider that disasm_line as fused with current branch instruction.
      
      Before:
               │    cmpq    %rcx, RIP+8(%rsp)
          0.00 │      cmp    %rcx,0x88(%rsp)
               │    je      .Lerror_bad_iret      <--- Source line
          0.14 │   ┌──je     b4                   <--- Instruction line
               │   │movl    %ecx, %eax
      
      After:
               │    cmpq    %rcx, RIP+8(%rsp)
          0.00 │   ┌──cmp    %rcx,0x88(%rsp)
               │   │je      .Lerror_bad_iret
          0.14 │   ├──je     b4
               │   │movl    %ecx, %eax
      
      Reviewed-by: default avatarJin Yao <yao.jin@linux.intel.com>
      Signed-off-by: default avatarRavi Bangoria <ravi.bangoria@amd.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Kim Phillips <kim.phillips@amd.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Link: https //lore.kernel.org/r/20210911043854.8373-1-ravi.bangoria@amd.com
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      7efbcc8c
    • Linus Torvalds's avatar
      Merge tag 's390-5.15-3' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux · 93ff9f13
      Linus Torvalds authored
      Pull s390 fixes from Vasily Gorbik:
      
       - Fix potential out-of-range access during secure boot facility
         detection.
      
       - Fully validate the VMA before calling follow_pte() in pci code.
      
       - Remove arch specific WARN_DYNAMIC_STACK config option.
      
       - Fix zcrypto kernel doc comments.
      
       - Update defconfigs.
      
      * tag 's390-5.15-3' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
        s390: remove WARN_DYNAMIC_STACK
        s390/ap: fix kernel doc comments
        s390: update defconfigs
        s390/sclp: fix Secure-IPL facility detection
        s390/pci_mmio: fully validate the VMA before calling follow_pte()
      93ff9f13
    • Linus Torvalds's avatar
      Merge tag 'devicetree-fixes-for-5.15-2' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux · d1a88690
      Linus Torvalds authored
      Pull devicetree fixes from Rob Herring:
      
       - Revert fw_devlink tracking 'phy-handle' links. This broke at least a
         few platforms. A better solution is being worked on.
      
       - Add Samsung UFS binding which fell thru the cracks
      
       - Doc reference fixes from Mauro
      
       - Fix for restricted DMA error handling
      
      * tag 'devicetree-fixes-for-5.15-2' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux:
        dt-bindings: arm: Fix Toradex compatible typo
        of: restricted dma: Fix condition for rmem init
        dt-bindings: arm: mediatek: mmsys: update mediatek,mmsys.yaml reference
        dt-bindings: net: dsa: sja1105: update nxp,sja1105.yaml reference
        dt-bindings: ufs: Add bindings for Samsung ufs host
        Revert "of: property: fw_devlink: Add support for "phy-handle" property"
      d1a88690
    • Linus Torvalds's avatar
      tgafb: clarify dependencies · cd395d52
      Linus Torvalds authored
      
      
      The TGA boards were based on the DECchip 21030 PCI graphics accelerator
      used mainly for alpha, and existed in a TURBOchannel (TC) version for
      the DECstation (MIPS) workstations.
      
      However, the config option for the TGA code is a bit confused, and says
      
      	depends on FB && (ALPHA || TC)
      
      because people didn't really want to enable the option for random PCI
      environments, so the "ALPHA" stands in for that case (while the TC case
      is then the MIPS DECstation case).
      
      So that config dependency is kind of a mixture of architecture and bus
      choices.  But it's incorrect, in that there were non-PCI-based alpha
      hardware, and then the driver just causes warnings:
      
        drivers/video/fbdev/tgafb.c:1532:13: error: ‘tgafb_unregister’ defined but not used [-Werror=unused-function]
         1532 | static void tgafb_unregister(struct device *dev)
              |             ^~~~~~~~~~~~~~~~
        drivers/video/fbdev/tgafb.c:1387:12: error: ‘tgafb_register’ defined but not used [-Werror=unused-function]
         1387 | static int tgafb_register(struct device *dev)
              |            ^~~~~~~~~~~~~~
      
      so let's make the config option dependencies a bit more explict:
      
      	depends on FB
      	depends on PCI || TC
      	depends on ALPHA || TC
      
      where that first "FB" is the software configuration dependency, the
      second "PCI || TC" is the hardware bus dependency, while that final
      "ALPHA || TC" dependency is the "don't bother asking except for these
      situations.
      
      We could make that third case have "COMPILE_TEST" as an option, and mark
      the register/unregister functions as __maybe_unused, but I'm not sure
      it's really worth it.
      
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      cd395d52
    • Linus Torvalds's avatar
      alpha: make 'Jensen' IO functions build again · cc9d3aaa
      Linus Torvalds authored
      
      
      The Jensen IO functions are overly copmplicated because some of the IO
      addresses refer to special 'local IO' ports, and they get accessed
      differently.
      
      That then makes gcc not actually inline them, and since they were marked
      "extern inline" when included through the regular <asm/io.h> path, and
      then only marked "inline" when included from sys_jensen.c, you never
      necessarily got a body for the IO functions at all.
      
      The intent of the sys_jensen.c code is to actually get the non-inlined
      copy generated, so remove the 'inline' from the magic macro that is
      supposed to sort this all out.
      
      Also, do not mix 'extern inline' functions (that may or may not be
      inlined and will not generate a function body if they are not) with
      'static inline' (that _will_ generate a function body when not inlined).
      Because gcc will complain about this situation:
      
         error: ‘jensen_bus_outb’ is static but used in inline function ‘jensen_outb’ which is not static
      
      because gcc basically doesn't know whether to generate a body for that
      static inline function or not for that call site.
      
      So make all of these use that __EXTERN_INLINE marker.  Gcc will
      generally not inline these things on use, and then generate the function
      body out-of-line in sys_jensen.c.
      
      This makes the core IO functions build for the alpha Jensen config.
      
      Not that the rest then builds, because it turns out Jensen also doesn't
      enable PCI, which then makes other drievrs very unhappy, but that's a
      separate issue.
      
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      cc9d3aaa
    • Linus Torvalds's avatar
      spi: Fix tegra20 build with CONFIG_PM=n · efafec27
      Linus Torvalds authored
      
      
      Without CONFIG_PM enabled, the SET_RUNTIME_PM_OPS() macro ends up being
      empty, and the only use of tegra_slink_runtime_{resume,suspend} goes
      away, resulting in
      
        drivers/spi/spi-tegra20-slink.c:1200:12: error: ‘tegra_slink_runtime_resume’ defined but not used [-Werror=unused-function]
         1200 | static int tegra_slink_runtime_resume(struct device *dev)
              |            ^~~~~~~~~~~~~~~~~~~~~~~~~~
        drivers/spi/spi-tegra20-slink.c:1188:12: error: ‘tegra_slink_runtime_suspend’ defined but not used [-Werror=unused-function]
         1188 | static int tegra_slink_runtime_suspend(struct device *dev)
              |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~
      
      mark the functions __maybe_unused to make the build happy.
      
      This hits the alpha allmodconfig build (and others).
      
      Reported-by: default avatarGuenter Roeck <linux@roeck-us.net>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      efafec27
  2. Sep 18, 2021
    • David Heidelberg's avatar
      dt-bindings: arm: Fix Toradex compatible typo · 55c21d57
      David Heidelberg authored
      Fix board compatible typo reported by dtbs_check.
      
      Fixes: f4d1577e
      
       ("dt-bindings: arm: Convert Tegra board/soc bindings to json-schema")
      Signed-off-by: default avatarDavid Heidelberg <david@ixit.cz>
      Link: https://lore.kernel.org/r/20210912165120.188490-1-david@ixit.cz
      Signed-off-by: default avatarRob Herring <robh@kernel.org>
      55c21d57
    • David Brazdil's avatar
      of: restricted dma: Fix condition for rmem init · 31c8025f
      David Brazdil authored
      of_dma_set_restricted_buffer fails to handle negative return values from
      of_property_count_elems_of_size, e.g. when the property does not exist.
      This results in an attempt to assign a non-existent reserved memory
      region to the device and a warning being printed. Fix the condition to
      take negative values into account.
      
      Fixes: f3cfd136
      
       ("of: restricted dma: Don't fail device probe on rmem init failure")
      Cc: Will Deacon <will@kernel.org>
      Signed-off-by: default avatarDavid Brazdil <dbrazdil@google.com>
      Acked-by: default avatarWill Deacon <will@kernel.org>
      Link: https://lore.kernel.org/r/20210917131423.2760155-1-dbrazdil@google.com
      Signed-off-by: default avatarRob Herring <robh@kernel.org>
      31c8025f
    • Linus Torvalds's avatar
      Merge tag 'pm-5.15-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 4357f03d
      Linus Torvalds authored
      Pull power management fixes from Rafael Wysocki:
       "These fix two cpufreq issues, one in the intel_pstate driver and one
        in the core.
      
        Specifics:
      
         - Prevent intel_pstate from avoiding to use HWP, even if instructed
           to do so via the kernel command line, when HWP has been enabled
           already by the platform firmware (Doug Smythies).
      
         - Prevent use-after-free from occurring in the schedutil cpufreq
           governor on exit by fixing a core helper function that attempts to
           access memory associated with a kobject after calling kobject_put()
           on it (James Morse)"
      
      * tag 'pm-5.15-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        cpufreq: schedutil: Destroy mutex before kobject_put() frees the memory
        cpufreq: intel_pstate: Override parameters if HWP forced by BIOS
      4357f03d
    • Linus Torvalds's avatar
      Merge tag 'dma-mapping-5.15-1' of git://git.infradead.org/users/hch/dma-mapping · b9b11b13
      Linus Torvalds authored
      Pull dma-mapping fixes from Christoph Hellwig:
      
       - page align size in sparc32 arch_dma_alloc (Andreas Larsson)
      
       - tone down a new dma-debug message (Hamza Mahfooz)
      
       - fix the kerneldoc for dma_map_sg_attrs (me)
      
      * tag 'dma-mapping-5.15-1' of git://git.infradead.org/users/hch/dma-mapping:
        sparc32: page align size in arch_dma_alloc
        dma-debug: prevent an error message from causing runtime problems
        dma-mapping: fix the kerneldoc for dma_map_sg_attrs
      b9b11b13
    • Linus Torvalds's avatar
      Merge tag 'pci-v5.15-fixes-1' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci · 7639afad
      Linus Torvalds authored
      Pull PCI fixes from Bjorn Helgaas:
      
       - Defer VPD sizing until we actually need the contents; fixes a
         boot-time slowdown reported by Dave Jones (Bjorn Helgaas)
      
       - Stop clobbering OF fwnodes when we look for an ACPI fwnode; fixes a
         virtio-iommu boot regression (Jean-Philippe Brucker)
      
       - Add AMD GPU multi-function power dependencies; fixes runtime power
         management, including GPU resume and temp and fan sensor issues (Evan
         Quan)
      
       - Update VMD maintainer to Nirmal Patel (Jon Derrick)
      
      * tag 'pci-v5.15-fixes-1' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci:
        MAINTAINERS: Add Nirmal Patel as VMD maintainer
        PCI: Add AMD GPU multi-function power dependencies
        PCI/ACPI: Don't reset a fwnode set by OF
        PCI/VPD: Defer VPD sizing until first access
      7639afad
    • Linus Torvalds's avatar
      Merge tag 'iov_iter.3-5.15-2021-09-17' of git://git.kernel.dk/linux-block · ddf21bd8
      Linus Torvalds authored
      Pull io_uring iov_iter retry fixes from Jens Axboe:
       "This adds a helper to save/restore iov_iter state, and modifies
        io_uring to use it.
      
        After that is done, we can now kill the iter->truncated addition that
        we added for this release. The io_uring change is being overly
        cautious with the save/restore/advance, but better safe than sorry and
        we can always improve that and reduce the overhead if it proves to be
        of concern. The only case to be worried about in this regard is huge
        IO, where iteration can take a while to iterate segments.
      
        I spent some time writing test cases, and expanded the coverage quite
        a bit from the last posting of this. liburing carries this regression
        test case now:
      
            https://git.kernel.dk/cgit/liburing/tree/test/file-verify.c
      
        which exercises all of this. It now also supports provided buffers,
        and explicitly tests for end-of-file/device truncation as well.
      
        On top of that, Pavel sanitized the IOPOLL retry path to follow the
        exact same pattern as normal IO"
      
      * tag 'iov_iter.3-5.15-2021-09-17' of git://git.kernel.dk/linux-block:
        io_uring: move iopoll reissue into regular IO path
        Revert "iov_iter: track truncated size"
        io_uring: use iov_iter state save/restore helpers
        iov_iter: add helper to save iov_iter state
      ddf21bd8
    • Linus Torvalds's avatar
      Merge tag 'io_uring-5.15-2021-09-17' of git://git.kernel.dk/linux-block · 0bc7eb03
      Linus Torvalds authored
      Pull io_uring fixes from Jens Axboe:
       "Mostly fixes for regressions in this cycle, but also a few fixes that
        predate this release.
      
        The odd one out is a tweak to the direct files added in this release,
        where attempting to reuse a slot is allowed instead of needing an
        explicit removal of that slot first. It's a considerable improvement
        in usability to that API, hence I'm sending it for -rc2.
      
         - io-wq race fix and cleanup (Hao)
      
         - loop_rw_iter() type fix
      
         - SQPOLL max worker race fix
      
         - Allow poll arm for O_NONBLOCK files, fixing a case where it's
           impossible to properly use io_uring if you cannot modify the file
           flags
      
         - Allow direct open to simply reuse a slot, instead of needing it
           explicitly removed first (Pavel)
      
         - Fix a case where we missed signal mask restoring in cqring_wait, if
           we hit -EFAULT (Xiaoguang)"
      
      * tag 'io_uring-5.15-2021-09-17' of git://git.kernel.dk/linux-block:
        io_uring: allow retry for O_NONBLOCK if async is supported
        io_uring: auto-removal for direct open/accept
        io_uring: fix missing sigmask restore in io_cqring_wait()
        io_uring: pin SQPOLL data before unlocking ring lock
        io-wq: provide IO_WQ_* constants for IORING_REGISTER_IOWQ_MAX_WORKERS arg items
        io-wq: fix potential race of acct->nr_workers
        io-wq: code clean of io_wqe_create_worker()
        io_uring: ensure symmetry in handling iter types in loop_rw_iter()
      0bc7eb03
    • Linus Torvalds's avatar
      Merge tag 'block-5.15-2021-09-17' of git://git.kernel.dk/linux-block · 36d6753b
      Linus Torvalds authored
      Pull block fixes from Jens Axboe:
      
       - NVMe pull request via Christoph:
             - fix ANA state updates when a namespace is not present (Anton
               Eidelman)
             - nvmet: fix a width vs precision bug in
               nvmet_subsys_attr_serial_show (Dan Carpenter)
             - avoid race in shutdown namespace removal (Daniel Wagner)
             - fix io_work priority inversion in nvme-tcp (Keith Busch)
             - destroy cm id before destroy qp to avoid use after free (Ruozhu
               Li)
      
       - blk-integrity profile registration fixes (Christoph, Lihong)
      
       - blk-cgroup UAF fix (Li)
      
       - blk-mq tag iterator fix (Ming)
      
       - blkcg memory leak fix (Yanfei)
      
      * tag 'block-5.15-2021-09-17' of git://git.kernel.dk/linux-block:
        blk-cgroup: fix UAF by grabbing blkcg lock before destroying blkg pd
        blkcg: fix memory leak in blk_iolatency_init
        nvme: remove the call to nvme_update_disk_info in nvme_ns_remove
        block: flush the integrity workqueue in blk_integrity_unregister
        block: check if a profile is actually registered in blk_integrity_unregister
        nvme-tcp: fix io_work priority inversion
        nvme-rdma: destroy cm id before destroy qp to avoid use after free
        nvme-multipath: fix ANA state updates when a namespace is not present
        nvme: avoid race in shutdown namespace removal
        nvmet: fix a width vs precision bug in nvmet_subsys_attr_serial_show()
        blk-mq: avoid to iterate over stale request
      36d6753b
  3. Sep 17, 2021
    • Linus Torvalds's avatar
      Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · 7f2cd141
      Linus Torvalds authored
      Pull arm64 fixes and cleanups from Catalin Marinas:
      
       - Fix the memset() size when re-initialising the SVE state.
      
       - Mark __stack_chk_guard as __ro_after_init.
      
       - Remove duplicate include.
      
      * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
        arm64: Mark __stack_chk_guard as __ro_after_init
        arm64/kernel: remove duplicate include in process.c
        arm64/sve: Use correct size when reinitialising SVE state
      7f2cd141
    • Linus Torvalds's avatar
      Merge tag 'for-linus-5.15b-rc2-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip · c6460dae
      Linus Torvalds authored
      Pull xen fixes from Juergen Gross:
      
       - The first hunk of a Xen swiotlb fixup series fixing multiple minor
         issues and doing some small cleanups
      
       - Some further Xen related fixes avoiding WARN() splats when running as
         Xen guests or dom0
      
       - A Kconfig fix allowing the pvcalls frontend to be built as a module
      
      * tag 'for-linus-5.15b-rc2-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
        swiotlb-xen: drop DEFAULT_NSLABS
        swiotlb-xen: arrange to have buffer info logged
        swiotlb-xen: drop leftover __ref
        swiotlb-xen: limit init retries
        swiotlb-xen: suppress certain init retries
        swiotlb-xen: maintain slab count properly
        swiotlb-xen: fix late init retry
        swiotlb-xen: avoid double free
        xen/pvcalls: backend can be a module
        xen: fix usage of pmd_populate in mremap for pv guests
        xen: reset legacy rtc flag for PV domU
        PM: base: power: don't try to use non-existing RTC for storing data
        xen/balloon: use a kernel thread instead a workqueue
      c6460dae
    • Mauro Carvalho Chehab's avatar
      dt-bindings: arm: mediatek: mmsys: update mediatek,mmsys.yaml reference · c8087adc
      Mauro Carvalho Chehab authored
      Changeset cba3c40d ("dt-bindings: arm: mediatek: mmsys: convert to YAML format")
      renamed: Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.txt
      to: Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.yaml.
      
      Update its cross-reference accordingly.
      
      Fixes: cba3c40d
      
       ("dt-bindings: arm: mediatek: mmsys: convert to YAML format")
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+huawei@kernel.org>
      Signed-off-by: default avatarRob Herring <robh@kernel.org>
      Link: https://lore.kernel.org/r/a87eb079a73e8ab41cdf6e40e80b1d1f868da6bd.1631785820.git.mchehab+huawei@kernel.org
      c8087adc
    • Mauro Carvalho Chehab's avatar
      dt-bindings: net: dsa: sja1105: update nxp,sja1105.yaml reference · a11de925
      Mauro Carvalho Chehab authored
      Changeset 62568bdb ("dt-bindings: net: dsa: sja1105: convert to YAML schema")
      renamed: Documentation/devicetree/bindings/net/dsa/sja1105.txt
      to: Documentation/devicetree/bindings/net/dsa/nxp,sja1105.yaml.
      
      Update its cross-reference accordingly.
      
      Fixes: 62568bdb
      
       ("dt-bindings: net: dsa: sja1105: convert to YAML schema")
      Reviewed-by: default avatarVladimir Oltean <vladimir.oltean@nxp.com>
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+huawei@kernel.org>
      Signed-off-by: default avatarRob Herring <robh@kernel.org>
      Link: https://lore.kernel.org/r/994ce6c6358746ff600459822b9f6e336db933c9.1631785820.git.mchehab+huawei@kernel.org
      a11de925
    • Linus Torvalds's avatar
      Merge tag 'drm-fixes-2021-09-17' of git://anongit.freedesktop.org/drm/drm · bdb575f8
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "Slightly busier than usual rc2, but mostly scattered amdgpu fixes,
        some i915 and etnaviv resolves an MMU/runtime PM blowup.
      
        amdgpu:
         - UBSAN fix
         - Powerplay table update fix
         - Fix use after free in BO moves
         - Debugfs init fixes
         - vblank workqueue fixes for headless devices
         - FPU fixes
         - sysfs_emit fixes
         - SMU updates for cyan skillfish
         - Backlight fixes when DMCU is not initialized
         - DP MST fixes
         - HDCP compliance fix
         - Link training fix
         - Runtime pm fix
         - Panel orientation fixes
         - Display GPUVM fix for yellow carp
         - Add missing license
      
        amdkfd:
         - Drop PCI atomics requirement if proper firmware is available
         - Suspend/resume fixes for IOMMUv2 cases
      
        radeon:
         - AGP fix
      
        i915:
         - Propagate DP link training error returns
         - Use max link params for eDP 1.3 and earlier
         - Build warning fixes
         - Gem selftest fixes
         - Ensure wakeref is held before hardware access
      
        etnaviv:
         - MMU context vs runtime PM fix"
      
      * tag 'drm-fixes-2021-09-17' of git://anongit.freedesktop.org/drm/drm: (44 commits)
        drm/amdgpu/display: add a proper license to dc_link_dp.c
        drm/amd/display: Fix white screen page fault for gpuvm
        amd/display: enable panel orientation quirks
        drm/amdgpu: Demote TMZ unsupported log message from warning to info
        drm/amdgpu: Drop inline from amdgpu_ras_eeprom_max_record_count
        drm/amd/pm: fix runpm hang when amdgpu loaded prior to sound driver
        drm/radeon: pass drm dev radeon_agp_head_init directly
        drm/amdgpu: move iommu_resume before ip init/resume
        drm/amdgpu: add amdgpu_amdkfd_resume_iommu
        drm/amdkfd: separate kfd_iommu_resume from kfd_resume
        drm/amd/display: Link training retry fix for abort case
        drm/amd/display: Fix unstable HPCP compliance on Chrome Barcelo
        drm/amd/display: dsc mst 2 4K displays go dark with 2 lane HBR3
        drm/amd/display: Get backlight from PWM if DMCU is not initialized
        drm/amdkfd: make needs_pcie_atomics FW-version dependent
        drm/amdgpu: add manual sclk/vddc setting support for cyan skilfish(v3)
        drm/amdgpu: add some pptable funcs for cyan skilfish(v3)
        drm/amdgpu: update SMU driver interface for cyan skilfish(v3)
        drm/amdgpu: update SMU PPSMC for cyan skilfish
        drm/amdgpu: fix sysfs_emit/sysfs_emit_at warnings(v2)
        ...
      bdb575f8
    • Linus Torvalds's avatar
      Merge tag 'net-5.15-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net · fc0c0548
      Linus Torvalds authored
      Pull networking fixes from Jakub Kicinski:
       "Including fixes from bpf.
      
        Current release - regressions:
      
         - vhost_net: fix OoB on sendmsg() failure
      
         - mlx5: bridge, fix uninitialized variable usage
      
         - bnxt_en: fix error recovery regression
      
        Current release - new code bugs:
      
         - bpf, mm: fix lockdep warning triggered by stack_map_get_build_id_offset()
      
        Previous releases - regressions:
      
         - r6040: restore MDIO clock frequency after MAC reset
      
         - tcp: fix tp->undo_retrans accounting in tcp_sacktag_one()
      
         - dsa: flush switchdev workqueue before tearing down CPU/DSA ports
      
        Previous releases - always broken:
      
         - ptp: dp83640: don't define PAGE0, avoid compiler warning
      
         - igc: fix tunnel segmentation offloads
      
         - phylink: update SFP selected interface on advertising changes
      
         - stmmac: fix system hang caused by eee_ctrl_timer during suspend/resume
      
         - mlx5e: fix mutual exclusion between CQE compression and HW TS
      
        Misc:
      
         - bpf, cgroups: fix cgroup v2 fallback on v1/v2 mixed mode
      
         - sfc: fallback for lack of xdp tx queues
      
         - hns3: add option to turn off page pool feature"
      
      * tag 'net-5.15-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (67 commits)
        mlxbf_gige: clear valid_polarity upon open
        igc: fix tunnel offloading
        net/{mlx5|nfp|bnxt}: Remove unnecessary RTNL lock assert
        net: wan: wanxl: define CROSS_COMPILE_M68K
        selftests: nci: replace unsigned int with int
        net: dsa: flush switchdev workqueue before tearing down CPU/DSA ports
        Revert "net: phy: Uniform PHY driver access"
        net: dsa: destroy the phylink instance on any error in dsa_slave_phy_setup
        ptp: dp83640: don't define PAGE0
        bnx2x: Fix enabling network interfaces without VFs
        Revert "Revert "ipv4: fix memory leaks in ip_cmsg_send() callers""
        tcp: fix tp->undo_retrans accounting in tcp_sacktag_one()
        net-caif: avoid user-triggerable WARN_ON(1)
        bpf, selftests: Add test case for mixed cgroup v1/v2
        bpf, selftests: Add cgroup v1 net_cls classid helpers
        bpf, cgroups: Fix cgroup v2 fallback on v1/v2 mixed mode
        bpf: Add oversize check before call kvcalloc()
        net: hns3: fix the timing issue of VF clearing interrupt sources
        net: hns3: fix the exception when query imp info
        net: hns3: disable mac in flr process
        ...
      fc0c0548
    • Dave Airlie's avatar
      Merge tag 'amd-drm-fixes-5.15-2021-09-16' of... · 109f7ea9
      Dave Airlie authored
      
      Merge tag 'amd-drm-fixes-5.15-2021-09-16' of https://gitlab.freedesktop.org/agd5f/linux into drm-fixes
      
      amd-drm-fixes-5.15-2021-09-16:
      
      amdgpu:
      - UBSAN fix
      - Powerplay table update fix
      - Fix use after free in BO moves
      - Debugfs init fixes
      - vblank workqueue fixes for headless devices
      - FPU fixes
      - sysfs_emit fixes
      - SMU updates for cyan skillfish
      - Backlight fixes when DMCU is not initialized
      - DP MST fixes
      - HDCP compliance fix
      - Link training fix
      - Runtime pm fix
      - Panel orientation fixes
      - Display GPUVM fix for yellow carp
      - Add missing license
      
      amdkfd:
      - Drop PCI atomics requirement if proper firmware is available
      - Suspend/resume fixes for IOMMUv2 cases
      
      radeon:
      - AGP fix
      
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      From: Alex Deucher <alexander.deucher@amd.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20210916140611.59816-1-alexander.deucher@amd.com
      109f7ea9
    • Dave Airlie's avatar
      Merge tag 'drm-intel-fixes-2021-09-16' of... · 11654b37
      Dave Airlie authored
      
      Merge tag 'drm-intel-fixes-2021-09-16' of ssh://git.freedesktop.org/git/drm/drm-intel into drm-fixes
      
      drm/i915 fixes for v5.15-rc2:
      - Propagate DP link training error returns
      - Use max link params for eDP 1.3 and earlier
      - Build warning fixes
      - Gem selftest fixes
      - Ensure wakeref is held before hardware access
      
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      From: Jani Nikula <jani.nikula@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/8735q4wsu7.fsf@intel.com
      11654b37
    • Guenter Roeck's avatar
      net: 6pack: Fix tx timeout and slot time · 3c0d2a46
      Guenter Roeck authored
      
      
      tx timeout and slot time are currently specified in units of HZ.  On
      Alpha, HZ is defined as 1024.  When building alpha:allmodconfig, this
      results in the following error message.
      
        drivers/net/hamradio/6pack.c: In function 'sixpack_open':
        drivers/net/hamradio/6pack.c:71:41: error:
        	unsigned conversion from 'int' to 'unsigned char'
        	changes value from '256' to '0'
      
      In the 6PACK protocol, tx timeout is specified in units of 10 ms and
      transmitted over the wire:
      
          https://www.linux-ax25.org/wiki/6PACK
      
      Defining a value dependent on HZ doesn't really make sense, and
      presumably comes from the (very historical) situation where HZ was
      originally 100.
      
      Note that the SIXP_SLOTTIME use explicitly is about 10ms granularity:
      
              mod_timer(&sp->tx_t, jiffies + ((when + 1) * HZ) / 100);
      
      and the SIXP_TXDELAY walue is sent as a byte over the wire.
      
      Signed-off-by: default avatarGuenter Roeck <linux@roeck-us.net>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      3c0d2a46
    • Dave Airlie's avatar
      Merge branch 'etnaviv/fixes' of https://git.pengutronix.de/git/lst/linux into drm-fixes · da4ce47e
      Dave Airlie authored
      
      
      Fixes a very annoying issue where the driver view of the MMU state gets
      out of sync with the actual hardware state across a runtime PM cycle,
      so we end up restarting the GPU with the wrong (potentially already
      freed) MMU context. Hilarity ensues.
      
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      From: Lucas Stach <l.stach@pengutronix.de>
      Link: https://patchwork.freedesktop.org/patch/msgid/729a561b6cfed090457bcc856a9e14ed6209fe21.camel@pengutronix.de
      da4ce47e
    • Arnd Bergmann's avatar
      drm/rockchip: cdn-dp-core: Make cdn_dp_core_resume __maybe_unused · 040b8907
      Arnd Bergmann authored
      With the new static annotation, the compiler warns when the functions
      are actually unused:
      
         drivers/gpu/drm/rockchip/cdn-dp-core.c:1123:12: error: 'cdn_dp_resume' defined but not used [-Werror=unused-function]
          1123 | static int cdn_dp_resume(struct device *dev)
               |            ^~~~~~~~~~~~~
      
      Mark them __maybe_unused to suppress that warning as well.
      
      [ Not so 'new' static annotations any more, and I removed the part of
        the patch that added __maybe_unused to cdn_dp_suspend(), because it's
        used by the shutdown/remove code.
      
        So only the resume function ends up possibly unused if CONFIG_PM isn't
        set     - Linus ]
      
      Fixes: 7c49abb4
      
       ("drm/rockchip: cdn-dp-core: Make cdn_dp_core_suspend/resume static")
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Reviewed-by: default avatarEnric Balletbo i Serra <enric.balletbo@collabora.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      040b8907
    • Guenter Roeck's avatar
      cpufreq: vexpress: Drop unused variable · b60cee5b
      Guenter Roeck authored
      arm:allmodconfig fails to build with the following error.
      
        drivers/cpufreq/vexpress-spc-cpufreq.c:454:13: error:
      					unused variable 'cur_cluster'
      
      Remove the unused variable.
      
      Fixes: bb8c26d9
      
       ("cpufreq: vexpress: Set CPUFREQ_IS_COOLING_DEV flag")
      Cc: Viresh Kumar <viresh.kumar@linaro.org>
      Signed-off-by: default avatarGuenter Roeck <linux@roeck-us.net>
      Reviewed-by: default avatarKees Cook <keescook@chromium.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      b60cee5b
    • Guenter Roeck's avatar
      alpha: Declare virt_to_phys and virt_to_bus parameter as pointer to volatile · 35a3f4ef
      Guenter Roeck authored
      
      
      Some drivers pass a pointer to volatile data to virt_to_bus() and
      virt_to_phys(), and that works fine.  One exception is alpha.  This
      results in a number of compile errors such as
      
        drivers/net/wan/lmc/lmc_main.c: In function 'lmc_softreset':
        drivers/net/wan/lmc/lmc_main.c:1782:50: error:
      	passing argument 1 of 'virt_to_bus' discards 'volatile'
      	qualifier from pointer target type
      
        drivers/atm/ambassador.c: In function 'do_loader_command':
        drivers/atm/ambassador.c:1747:58: error:
      	passing argument 1 of 'virt_to_bus' discards 'volatile'
      	qualifier from pointer target type
      
      Declare the parameter of virt_to_phys and virt_to_bus as pointer to
      volatile to fix the problem.
      
      Signed-off-by: default avatarGuenter Roeck <linux@roeck-us.net>
      Acked-by: default avatarArnd Bergmann <arnd@arndb.de>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      35a3f4ef
    • Linus Torvalds's avatar
      3com 3c515: make it compile on 64-bit architectures · db71f8fb
      Linus Torvalds authored
      
      
      This driver isn't enabled most places because of the ISA config
      dependency, but alpha still has it.  And I think the 'Jensen' actually
      did have an ISA slot.
      
      However, it doesn't build cleanly, because the "Vortex bus master" code
      just casts the skb->data pointer to 'int':
      
              outl((int) (skb->data), ioaddr + Wn7_MasterAddr);
      
      which is all kinds of broken.  Even on a good old traditional PC/AT it
      would be broken because the high bits will be random kernel address
      bits, but presumably the hardware ignores those bits.  I mean, it's ISA.
      We're talking 16MB dma limits. The "good old days".
      
      Make the build happy with this kind of craziness by using the proper
      isa_virt_to_bus() handling that the full bus master code uses anyway
      (the Vortex bus mastering is a limited special case).
      
      Who knows, this might even work.
      
      Reported-by: default avatarGuenter Roeck <linux@roeck-us.net>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      db71f8fb
    • Linus Torvalds's avatar
      Merge tag 'for-5.15/parisc-4' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux · 5fe983d3
      Linus Torvalds authored
      Pull parisc fix from Helge Deller:
       "Fix a build warning when using the PAGE0 pointer"
      
      * tag 'for-5.15/parisc-4' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux:
        parisc: Use absolute_pointer() to define PAGE0
      5fe983d3
    • Linus Torvalds's avatar
      Merge tag 'm68k-for-v5.15-tag2' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k · 077a6ccf
      Linus Torvalds authored
      Pull m68k fixes from Geert Uytterhoeven:
      
       - Warning fixes to mitigate CONFIG_WERROR=y
      
      * tag 'm68k-for-v5.15-tag2' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k:
        m68k: mvme: Remove overdue #warnings in RTC handling
        m68k: Double cast io functions to unsigned long
      077a6ccf
    • Dan Li's avatar
      arm64: Mark __stack_chk_guard as __ro_after_init · 9fcb2e93
      Dan Li authored
      
      
      __stack_chk_guard is setup once while init stage and never changed
      after that.
      
      Although the modification of this variable at runtime will usually
      cause the kernel to crash (so does the attacker), it should be marked
      as __ro_after_init, and it should not affect performance if it is
      placed in the ro_after_init section.
      
      Signed-off-by: default avatarDan Li <ashimida@linux.alibaba.com>
      Acked-by: default avatarMark Rutland <mark.rutland@arm.com>
      Link: https://lore.kernel.org/r/1631612642-102881-1-git-send-email-ashimida@linux.alibaba.com
      Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      9fcb2e93
    • Lv Ruyi's avatar
      arm64/kernel: remove duplicate include in process.c · 861dc4f5
      Lv Ruyi authored
      
      
      Remove all but the first include of linux/sched.h from process.c
      
      Reported-by: default avatarZeal Robot <zealci@zte.com.cn>
      Signed-off-by: default avatarLv Ruyi <lv.ruyi@zte.com.cn>
      Acked-by: default avatarMark Rutland <mark.rutland@arm.com>
      Link: https://lore.kernel.org/r/20210902011126.29828-1-lv.ruyi@zte.com.cn
      Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      861dc4f5
    • Mark Brown's avatar
      arm64/sve: Use correct size when reinitialising SVE state · e35ac9d0
      Mark Brown authored
      When we need a buffer for SVE register state we call sve_alloc() to make
      sure that one is there. In order to avoid repeated allocations and frees
      we keep the buffer around unless we change vector length and just memset()
      it to ensure a clean register state. The function that deals with this
      takes the task to operate on as an argument, however in the case where we
      do a memset() we initialise using the SVE state size for the current task
      rather than the task passed as an argument.
      
      This is only an issue in the case where we are setting the register state
      for a task via ptrace and the task being configured has a different vector
      length to the task tracing it. In the case where the buffer is larger in
      the traced process we will leak old state from the traced process to
      itself, in the case where the buffer is smaller in the traced process we
      will overflow the buffer and corrupt memory.
      
      Fixes: bc0ee476
      
       ("arm64/sve: Core task context handling")
      Cc: <stable@vger.kernel.org> # 4.15.x
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      Link: https://lore.kernel.org/r/20210909165356.10675-1-broonie@kernel.org
      Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      e35ac9d0
  4. Sep 16, 2021