1. 30 Sep, 2021 2 commits
    • Linus Torvalds's avatar
      Merge tag 'gpio-fixes-for-v5.15-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux · 115f6134
      Linus Torvalds authored
      Pull gpio fixes from Bartosz Golaszewski:
       "A single fix for the gpio-pca953x driver and two commits updating the
        MAINTAINERS entries for Mun Yew Tham (GPIO specific) and myself
        (treewide after a change in professional situation).
      
        Summary:
      
         - don't ignore I2C errors in gpio-pca953x
      
         - update MAINTAINERS entries for Mun Yew Tham and myself"
      
      * tag 'gpio-fixes-for-v5.15-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux:
        MAINTAINERS: Update Mun Yew Tham as Altera Pio Driver maintainer
        MAINTAINERS: update my email address
        gpio: pca953x: do not ignore i2c errors
      115f6134
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma · 78c56e53
      Linus Torvalds authored
      Pull rdma fixes from Jason Gunthorpe:
       "Not much too exciting here, although two syzkaller bugs that seem to
        have 9 lives may have finally been squashed.
      
        Several core bugs and a batch of driver bug fixes:
      
         - Fix compilation problems in qib and hfi1
      
         - Do not corrupt the joined multicast group state when using
           SEND_ONLY
      
         - Several CMA bugs, a reference leak for listening and two syzkaller
           crashers
      
         - Various bug fixes for irdma
      
         - Fix a Sleeping while atomic bug in usnic
      
         - Properly sanitize kernel pointers in dmesg
      
         - Two bugs in the 64b CQE support for hns"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma:
        RDMA/hns: Add the check of the CQE size of the user space
        RDMA/hns: Fix the size setting error when copying CQE in clean_cq()
        RDMA/hfi1: Fix kernel pointer leak
        RDMA/usnic: Lock VF with mutex instead of spinlock
        RDMA/hns: Work around broken constant propagation in gcc 8
        RDMA/cma: Ensure rdma_addr_cancel() happens before issuing more requests
        RDMA/cma: Do not change route.addr.src_addr.ss_family
        RDMA/irdma: Report correct WC error when there are MW bind errors
        RDMA/irdma: Report correct WC error when transport retry counter is exceeded
        RDMA/irdma: Validate number of CQ entries on create CQ
        RDMA/irdma: Skip CQP ring during a reset
        MAINTAINERS: Update Broadcom RDMA maintainers
        RDMA/cma: Fix listener leak in rdma_cma_listen_on_all() failure
        IB/cma: Do not send IGMP leaves for sendonly Multicast groups
        IB/qib: Fix clang confusion of NULL pointer comparison
      78c56e53
  2. 29 Sep, 2021 5 commits
  3. 28 Sep, 2021 8 commits
  4. 27 Sep, 2021 19 commits
    • Linus Torvalds's avatar
      Merge tag 'perf-tools-fixes-for-v5.15-2021-09-27' of... · 0513e464
      Linus Torvalds authored
      Merge tag 'perf-tools-fixes-for-v5.15-2021-09-27' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux
      
      Pull more perf tools fixes from Arnaldo Carvalho de Melo:
      
       - Fix 'perf test' DWARF unwind for optimized builds.
      
       - Fix 'perf test' 'Object code reading' when dealing with samples in
         @plt symbols.
      
       - Fix off-by-one directory paths in the ARM support code.
      
       - Fix error message to eliminate confusion in 'perf config' when first
         creating a config file.
      
       - 'perf iostat' fix for system wide operation.
      
       - Fix printing of metrics when 'perf iostat' is used with one or more
         iio_root_ports and unconnected cpus (using -C).
      
       - Fix several typos in the documentation files.
      
       - Fix spelling mistake "icach" -> "icache" in the power8 JSON vendor
         files.
      
      * tag 'perf-tools-fixes-for-v5.15-2021-09-27' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux:
        perf iostat: Fix Segmentation fault from NULL 'struct perf_counts_values *'
        perf iostat: Use system-wide mode if the target cpu_list is unspecified
        perf config: Refine error message to eliminate confusion
        perf doc: Fix typos all over the place
        perf arm: Fix off-by-one directory paths.
        perf vendor events powerpc: Fix spelling mistake "icach" -> "icache"
        perf tests: Fix flaky test 'Object code reading'
        perf test: Fix DWARF unwind for optimized builds.
      0513e464
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm · 9cccec2b
      Linus Torvalds authored
      Pull kvm fixes from Paolo Bonzini:
       "A bit late... I got sidetracked by back-from-vacation routines and
        conferences. But most of these patches are already a few weeks old and
        things look more calm on the mailing list than what this pull request
        would suggest.
      
        x86:
      
         - missing TLB flush
      
         - nested virtualization fixes for SMM (secure boot on nested
           hypervisor) and other nested SVM fixes
      
         - syscall fuzzing fixes
      
         - live migration fix for AMD SEV
      
         - mirror VMs now work for SEV-ES too
      
         - fixes for reset
      
         - possible out-of-bounds access in IOAPIC emulation
      
         - fix enlightened VMCS on Windows 2022
      
        ARM:
      
         - Add missing FORCE target when building the EL2 object
      
         - Fix a PMU probe regression on some platforms
      
        Generic:
      
         - KCSAN fixes
      
        selftests:
      
         - random fixes, mostly for clang compilation"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (43 commits)
        selftests: KVM: Explicitly use movq to read xmm registers
        selftests: KVM: Call ucall_init when setting up in rseq_test
        KVM: Remove tlbs_dirty
        KVM: X86: Synchronize the shadow pagetable before link it
        KVM: X86: Fix missed remote tlb flush in rmap_write_protect()
        KVM: x86: nSVM: don't copy virt_ext from vmcb12
        KVM: x86: nSVM: test eax for 4K alignment for GP errata workaround
        KVM: x86: selftests: test simultaneous uses of V_IRQ from L1 and L0
        KVM: x86: nSVM: restore int_vector in svm_clear_vintr
        kvm: x86: Add AMD PMU MSRs to msrs_to_save_all[]
        KVM: x86: nVMX: re-evaluate emulation_required on nested VM exit
        KVM: x86: nVMX: don't fail nested VM entry on invalid guest state if !from_vmentry
        KVM: x86: VMX: synthesize invalid VM exit when emulating invalid guest state
        KVM: x86: nSVM: refactor svm_leave_smm and smm_enter_smm
        KVM: x86: SVM: call KVM_REQ_GET_NESTED_STATE_PAGES on exit from SMM mode
        KVM: x86: reset pdptrs_from_userspace when exiting smm
        KVM: x86: nSVM: restore the L1 host state prior to resuming nested guest on SMM exit
        KVM: nVMX: Filter out all unsupported controls when eVMCS was activated
        KVM: KVM: Use cpumask_available() to check for NULL cpumask when kicking vCPUs
        KVM: Clean up benign vcpu->cpu data races when kicking vCPUs
        ...
      9cccec2b
    • Linus Torvalds's avatar
      Merge tag 'media/v5.15-2' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media · e6609f2c
      Linus Torvalds authored
      Pull media fixes from Mauro Carvalho Chehab:
       "A couple of driver fixes:
      
         - hantro: Fix check for single irq
      
         - cedrus: Fix SUNXI tile size calculation
      
         - s5p-jpeg: rename JPEG marker constants to prevent build warnings
      
         - ir_toy: prevent device from hanging during transmit"
      
      * tag 'media/v5.15-2' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media:
        media: ir_toy: prevent device from hanging during transmit
        media: s5p-jpeg: rename JPEG marker constants to prevent build warnings
        media: cedrus: Fix SUNXI tile size calculation
        media: hantro: Fix check for single irq
      e6609f2c
    • Jackie Liu's avatar
      watchdog/sb_watchdog: fix compilation problem due to COMPILE_TEST · c388a189
      Jackie Liu authored
      Compiling sb_watchdog needs to clearly define SIBYTE_HDR_FEATURES.
      In arch/mips/sibyte/Platform like:
      
        cflags-$(CONFIG_SIBYTE_BCM112X) +=                                      \
                      -I$(srctree)/arch/mips/include/asm/mach-sibyte          \
                      -DSIBYTE_HDR_FEATURES=SIBYTE_HDR_FMASK_1250_112x_ALL
      
      Otherwise, SIBYTE_HDR_FEATURES is SIBYTE_HDR_FMASK_ALL.
      SIBYTE_HDR_FMASK_ALL is mean:
      
       #define SIBYTE_HDR_FMASK_ALL  SIBYTE_HDR_FMASK_1250_ALL | SIBYTE_HDR_FMASK_112x_ALL \
      				     | SIBYTE_HDR_FMASK_1480_ALL)
      
      So, If not limited to CPU_SB1, we will get such an error:
      
        arch/mips/include/asm/sibyte/bcm1480_scd.h:261: error: "M_SPC_CFG_CLEAR" redefined [-Werror]
        arch/mips/include/asm/sibyte/bcm1480_scd.h:262: error: "M_SPC_CFG_ENABLE" redefined [-Werror]
      
      Fixes: da2a68b3 ("watchdog: Enable COMPILE_TEST where possible")
      Signed-off-by: default avatarJackie Liu <liuyun01@kylinos.cn>
      Reviewed-by: default avatarGuenter Roeck <linux@roeck-us.net>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      c388a189
    • Linus Torvalds's avatar
      vboxfs: fix broken legacy mount signature checking · 9b3b353e
      Linus Torvalds authored
      Commit 9d682ea6 ("vboxsf: Fix the check for the old binary
      mount-arguments struct") was meant to fix a build error due to sign
      mismatch in 'char' and the use of character constants, but it just moved
      the error elsewhere, in that on some architectures characters and signed
      and on others they are unsigned, and that's just how the C standard
      works.
      
      The proper fix is a simple "don't do that then".  The code was just
      being silly and odd, and it should never have cared about signed vs
      unsigned characters in the first place, since what it is testing is not
      four "characters", but four bytes.
      
      And the way to compare four bytes is by using "memcmp()".
      
      Which compilers will know to just turn into a single 32-bit compare with
      a constant, as long as you don't have crazy debug options enabled.
      
      Link: https://lore.kernel.org/lkml/20210927094123.576521-1-arnd@kernel.org/
      Cc: Arnd Bergmann <arnd@kernel.org>
      Cc: Hans de Goede <hdegoede@redhat.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      9b3b353e
    • Wenpeng Liang's avatar
      RDMA/hns: Add the check of the CQE size of the user space · e671f0ec
      Wenpeng Liang authored
      If the CQE size of the user space is not the size supported by the
      hardware, the creation of CQ should be stopped.
      
      Fixes: 09a5f210 ("RDMA/hns: Add support for CQE in size of 64 Bytes")
      Link: https://lore.kernel.org/r/20210927125557.15031-3-liangwenpeng@huawei.comSigned-off-by: default avatarWenpeng Liang <liangwenpeng@huawei.com>
      Signed-off-by: default avatarJason Gunthorpe <jgg@nvidia.com>
      e671f0ec
    • Wenpeng Liang's avatar
      RDMA/hns: Fix the size setting error when copying CQE in clean_cq() · cc26aee1
      Wenpeng Liang authored
      The size of CQE is different for different versions of hardware, so the
      driver needs to specify the size of CQE explicitly.
      
      Fixes: 09a5f210 ("RDMA/hns: Add support for CQE in size of 64 Bytes")
      Link: https://lore.kernel.org/r/20210927125557.15031-2-liangwenpeng@huawei.comSigned-off-by: default avatarWenpeng Liang <liangwenpeng@huawei.com>
      Signed-off-by: default avatarJason Gunthorpe <jgg@nvidia.com>
      cc26aee1
    • Guo Zhi's avatar
      RDMA/hfi1: Fix kernel pointer leak · 7d5cfafe
      Guo Zhi authored
      Pointers should be printed with %p or %px rather than cast to 'unsigned
      long long' and printed with %llx.  Change %llx to %p to print the secured
      pointer.
      
      Fixes: 042a00f9 ("IB/{ipoib,hfi1}: Add a timeout handler for rdma_netdev")
      Link: https://lore.kernel.org/r/20210922134857.619602-1-qtxuning1999@sjtu.edu.cnSigned-off-by: default avatarGuo Zhi <qtxuning1999@sjtu.edu.cn>
      Acked-by: default avatarMike Marciniszyn <mike.marciniszyn@cornelisnetworks.com>
      Signed-off-by: default avatarJason Gunthorpe <jgg@nvidia.com>
      7d5cfafe
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid · 42d43c92
      Linus Torvalds authored
      Pull HID fixes from Jiri Kosina:
      
       - NULL pointer dereference fixes in amd_sfh driver (Basavaraj Natikar,
         Evgeny Novikov)
      
       - data processing fix for hid-u2fzero (Andrej Shadura)
      
       - fix for out-of-bounds write in hid-betop (F.A.Sulaiman)
      
       - new device IDs / device-specific quirks
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid:
        HID: amd_sfh: Fix potential NULL pointer dereference
        HID: u2fzero: ignore incomplete packets without data
        HID: amd_sfh: Fix potential NULL pointer dereference
        HID: wacom: Add new Intuos BT (CTL-4100WL/CTL-6100WL) device IDs
        HID: apple: Fix logical maximum and usage maximum of Magic Keyboard JIS
        HID: betop: fix slab-out-of-bounds Write in betop_probe
      42d43c92
    • Randy Dunlap's avatar
      NIOS2: setup.c: drop unused variable 'dram_start' · 9523b33c
      Randy Dunlap authored
      This is a nuisance when CONFIG_WERROR is set, so drop the variable
      declaration since the code that used it was removed.
      
      ../arch/nios2/kernel/setup.c: In function 'setup_arch':
      ../arch/nios2/kernel/setup.c:152:13: warning: unused variable 'dram_start' [-Wunused-variable]
        152 |         int dram_start;
      
      Fixes: 7f7bc20b ("nios2: Don't use _end for calculating min_low_pfn")
      Signed-off-by: default avatarRandy Dunlap <rdunlap@infradead.org>
      Reported-by: default avatarkernel test robot <lkp@intel.com>
      Reviewed-by: default avatarMike Rapoport <rppt@linux.ibm.com>
      Cc: Andreas Oetken <andreas.oetken@siemens.com>
      Signed-off-by: default avatarDinh Nguyen <dinguyen@kernel.org>
      9523b33c
    • Like Xu's avatar
      perf iostat: Fix Segmentation fault from NULL 'struct perf_counts_values *' · 4da8b121
      Like Xu authored
      If the 'perf iostat' user specifies two or more iio_root_ports and also
      specifies the cpu(s) by -C which is not *connected to all* the above iio
      ports, the iostat_print_metric() will run into trouble:
      
      For example:
      
        $ perf iostat list
        S0-uncore_iio_0<0000:16>
        S1-uncore_iio_0<0000:97> # <--- CPU 1 is located in the socket S0
      
        $ perf iostat 0000:16,0000:97 -C 1 -- ls
        port 	Inbound Read(MB)	Inbound Write(MB)	Outbound Read(MB)	Outbound
        Write(MB) ../perf-iostat: line 12: 104418 Segmentation fault
        (core dumped) perf stat --iostat$DELIMITER$*
      
      The core-dump stack says, in the above corner case, the returned
      (struct perf_counts_values *) count will be NULL, and the caller
      iostat_print_metric() apparently doesn't not handle this case.
      
        433	struct perf_counts_values *count = perf_counts(evsel->counts, die, 0);
        434
        435	if (count->run && count->ena) {
        (gdb) p count
        $1 = (struct perf_counts_values *) 0x0
      
      The deeper reason is that there are actually no statistics from the user
      specified pair "iostat 0000:X, -C (disconnected) Y ", but let's fix it with
      minimum cost by adding a NULL check in the user space.
      
      Fixes: f9ed693e ("perf stat: Enable iostat mode for x86 platforms")
      Signed-off-by: default avatarLike Xu <likexu@tencent.com>
      Cc: Alexander Antonov <alexander.antonov@linux.intel.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Ian Rogers <irogers@google.com>
      Cc: Jiri Olsa <jolsa@redhat.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/20210927081115.39568-2-likexu@tencent.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      4da8b121
    • Like Xu's avatar
      perf iostat: Use system-wide mode if the target cpu_list is unspecified · e4fe5d73
      Like Xu authored
      An iostate use case like "perf iostat 0000:16,0000:97 -- ls" should be
      implemented to work in system-wide mode to ensure that the output from
      print_header() is consistent with the user documentation perf-iostat.txt,
      rather than incorrectly assuming that the kernel does not support it:
      
       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.
      
      This error is easily fixed by assigning system-wide mode by default
      for IOSTAT_RUN only when the target cpu_list is unspecified.
      
      Fixes: f07952b1 ("perf stat: Basic support for iostat in perf")
      Signed-off-by: default avatarLike Xu <likexu@tencent.com>
      Cc: Alexander Antonov <alexander.antonov@linux.intel.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Ian Rogers <irogers@google.com>
      Cc: Jiri Olsa <jolsa@redhat.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/20210927081115.39568-1-likexu@tencent.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      e4fe5d73
    • Like Xu's avatar
      perf config: Refine error message to eliminate confusion · a827c007
      Like Xu authored
      If there is no configuration file at first, the user can write any pair
      of "key.subkey=value" to the newly created configuration file, while
      value validation against a valid configurable key is *deferred* until
      the next execution or the implied execution of "perf config ... ".
      
      For example:
      
        $ rm ~/.perfconfig
        $ perf config call-graph.dump-size=65529
        $ cat ~/.perfconfig
        # this file is auto-generated.
        [call-graph]
       	dump-size = 65529
        $ perf config call-graph.dump-size=2048
        callchain: Incorrect stack dump size (max 65528): 65529
        Error: wrong config key-value pair call-graph.dump-size=65529
      
      The user might expect that the second value 2048 is valid and can be
      updated to the configuration file, but the error message is very
      confusing because the first value 65529 is not reported as an error
      during the last configuration.
      
      It is recommended not to change the current behavior of delayed
      validation (as more effort is needed), but to refine the original error
      message to *clearly indicate* that the cause of the error is the
      configuration file.
      Signed-off-by: default avatarLike Xu <likexu@tencent.com>
      Acked-by: default avatarIan Rogers <irogers@google.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Link: http://lore.kernel.org/lkml/20210924115817.58689-1-likexu@tencent.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      a827c007
    • Like Xu's avatar
      perf doc: Fix typos all over the place · 4da6552c
      Like Xu authored
      Considering that perf and its subcommands have so many parameters, the
      documentation is always the first stop for perf beginners. Fixing some
      spelling errors will relax the eyes of some readers a little bit.
      
       s/specicfication/specification/
       s/caheline/cacheline/
       s/tranasaction/transaction/
       s/complan/complain/
       s/sched_wakep/sched_wakeup/
       s/possble/possible/
       s/methology/methodology/
      Signed-off-by: default avatarLike Xu <likexu@tencent.com>
      Acked-by: default avatarIan Rogers <irogers@google.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Jonathan Corbet <corbet@lwn.net>
      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/20210924081942.38368-1-likexu@tencent.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      4da6552c
    • Ian Rogers's avatar
      perf arm: Fix off-by-one directory paths. · c6613bd4
      Ian Rogers authored
      Relative path include works in the regular build due to -I paths but may
      fail in other situations.
      
      v2. Rebase. Comments on v1 were that we should handle include paths
          differently and it is agreed that can be a sensible refactor but
          beyond the scope of this change.
      https://lore.kernel.org/lkml/20210504191227.793712-1-irogers@google.com/Signed-off-by: default avatarIan Rogers <irogers@google.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: John Garry <john.garry@huawei.com>
      Cc: Leo Yan <leo.yan@linaro.org>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Mathieu Poirier <mathieu.poirier@linaro.org>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
      Cc: Stephane Eranian <eranian@google.com>
      Cc: Will Deacon <will@kernel.org>
      Cc: linux-arm-kernel@lists.infradead.org
      Link: http://lore.kernel.org/lkml/20210923154254.737657-1-irogers@google.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      c6613bd4
    • Colin Ian King's avatar
      perf vendor events powerpc: Fix spelling mistake "icach" -> "icache" · 774f2c08
      Colin Ian King authored
      There is a spelling mistake in the description text, fix it.
      Signed-off-by: default avatarColin King <colin.king@canonical.com>
      Acked-by: default avatarIan Rogers <irogers@google.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: kernel-janitors@vger.kernel.org
      Link: http://lore.kernel.org/lkml/20210916081314.41751-1-colin.king@canonical.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      774f2c08
    • James Clark's avatar
      perf tests: Fix flaky test 'Object code reading' · 0f892fd1
      James Clark authored
      This test occasionally fails on aarch64 when a sample is taken in
      free@plt and it fails with "Bytes read differ from those read by
      objdump".
      
      This is because that symbol is near a section boundary in the elf file.
      Despite the -z option to always output zeros, objdump uses
      bfd_map_over_sections() to iterate through the elf file so it doesn't
      see outside of the sections where these zeros are and can't print them.
      
      For example this boundary proceeds free@plt in libc with a gap of 48
      bytes between .plt and .text:
      
        objdump -d -z --start-address=0x23cc8 --stop-address=0x23d08 libc-2.30.so
      
        libc-2.30.so:     file format elf64-littleaarch64
      
        Disassembly of section .plt:
      
        0000000000023cc8 <*ABS*+0x7fd00@plt+0x8>:
           23cc8:	91018210 	add	x16, x16, #0x60
           23ccc:	d61f0220 	br	x17
      
        Disassembly of section .text:
      
        0000000000023d00 <abort@@GLIBC_2.17-0x98>:
           23d00:	a9bf7bfd 	stp	x29, x30, [sp, #-16]!
           23d04:	910003fd 	mov	x29, sp
      
      Taking a sample in free@plt is very rare because it is so small, but the
      test can be forced to fail almost every time on any platform by linking
      the test with a shared library that has a single empty function and
      calling it in a loop.
      
      The fix is to zero the buffers so that when there is a jump in the
      addresses output by objdump, zeros are already filled in between.
      Signed-off-by: default avatarJames Clark <james.clark@arm.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Link: http://lore.kernel.org/lkml/20210906152238.3415467-1-james.clark@arm.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      0f892fd1
    • Ian Rogers's avatar
      perf test: Fix DWARF unwind for optimized builds. · 5c34aea3
      Ian Rogers authored
      To ensure the stack frames are on the stack tail calls optimizations
      need to be inhibited. If your compiler supports an attribute use it,
      otherwise use an asm volatile barrier.
      
      The barrier fix was suggested here:
      https://lore.kernel.org/lkml/20201028081123.GT2628@hirez.programming.kicks-ass.net/
      Tested with an optimized clang build and by forcing the asm barrier
      route with an optimized clang build.
      
      A GCC bug tracking a proper disable_tail_calls is:
      https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97831
      
      Fixes: 9ae1e990 ("perf tools: Remove broken __no_tail_call
             attribute")
      
      v2. is a rebase. The original fix patch generated quite a lot of
          discussion over the right place for the fix:
          https://lore.kernel.org/lkml/20201114000803.909530-1-irogers@google.com/
          The patch reflects my preference of it being near the use, so that
          future code cleanups don't break this somewhat special usage.
      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: Ard Biesheuvel <ardb@kernel.org>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Miguel Ojeda <ojeda@kernel.org>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Stephane Eranian <eranian@google.com>
      Cc: clang-built-linux@googlegroups.com
      Link: http://lore.kernel.org/lkml/20210922173812.456348-1-irogers@google.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      5c34aea3
    • Basavaraj Natikar's avatar
      HID: amd_sfh: Fix potential NULL pointer dereference · 88a04049
      Basavaraj Natikar authored
      The cl_data field of a privdata must be allocated and updated before
      using in amd_sfh_hid_client_init() function.
      
      Hence handling NULL pointer cl_data accordingly.
      
      Fixes: d46ef750 ("HID: amd_sfh: Fix potential NULL pointer dereference")
      Signed-off-by: default avatarBasavaraj Natikar <Basavaraj.Natikar@amd.com>
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      88a04049
  5. 26 Sep, 2021 6 commits