1. 13 May, 2021 6 commits
  2. 12 May, 2021 2 commits
  3. 11 May, 2021 5 commits
    • Guenter Roeck's avatar
      net/sched: taprio: Drop unnecessary NULL check after container_of · faa5f5da
      Guenter Roeck authored
      The rcu_head pointer passed to taprio_free_sched_cb is never NULL.
      That means that the result of container_of() operations on it is also
      never NULL, even though rcu_head is the first element of the structure
      embedding it. On top of that, it is misleading to perform a NULL check
      on the result of container_of() because the position of the contained
      element could change, which would make the check invalid. Remove the
      unnecessary NULL check.
      
      This change was made automatically with the following Coccinelle script.
      
      @@
      type t;
      identifier v;
      statement s;
      @@
      
      <+...
      (
        t v = container_of(...);
      |
        v = container_of(...);
      )
        ...
        when != v
      - if (\( !v \| v == NULL \) ) s
      ...+>
      Signed-off-by: default avatarGuenter Roeck <linux@roeck-us.net>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      faa5f5da
    • Loic Poulain's avatar
      usb: class: cdc-wdm: WWAN framework integration · cac6fb01
      Loic Poulain authored
      The WWAN framework provides a unified way to handle WWAN/modems and its
      control port(s). It has initially been introduced to support MHI/PCI
      modems, offering the same control protocols as the USB variants such as
      MBIM, QMI, AT... The WWAN framework exposes these control protocols as
      character devices, similarly to cdc-wdm, but in a bus agnostic fashion.
      
      This change adds registration of the USB modem cdc-wdm control endpoints
      to the WWAN framework as standard control ports (wwanXpY...).
      
      Exposing cdc-wdm through WWAN framework normally maintains backward
      compatibility, e.g:
          $ qmicli --device-open-qmi -d /dev/wwan0p1QMI --dms-get-ids
      instead of
          $ qmicli --device-open-qmi -d /dev/cdc-wdm0 --dms-get-ids
      
      However, some tools may rely on cdc-wdm driver/device name for device
      detection. It is then safer to keep the 'legacy' cdc-wdm character
      device to prevent any breakage. This is handled in this change by
      API mutual exclusion, only one access method can be used at a time,
      either cdc-wdm chardev or WWAN API.
      
      Note that unknown channel types (other than MBIM, AT or MBIM) are not
      registered to the WWAN framework.
      Signed-off-by: default avatarLoic Poulain <loic.poulain@linaro.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      cac6fb01
    • Loic Poulain's avatar
      net: wwan: Add unknown port type · bf30396c
      Loic Poulain authored
      Some devices may have ports with unknown type/protocol which need to
      be tagged (though not supported by WWAN core). This will be the case
      for cdc-wdm based drivers.
      Signed-off-by: default avatarLoic Poulain <loic.poulain@linaro.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      bf30396c
    • Zou Wei's avatar
      mISDN: fix possible use-after-free in HFC_cleanup() · 009fc857
      Zou Wei authored
      This module's remove path calls del_timer(). However, that function
      does not wait until the timer handler finishes. This means that the
      timer handler may still be running after the driver's remove function
      has finished, which would result in a use-after-free.
      
      Fix by calling del_timer_sync(), which makes sure the timer handler
      has finished, and unable to re-schedule itself.
      Reported-by: default avatarHulk Robot <hulkci@huawei.com>
      Signed-off-by: default avatarZou Wei <zou_wei@huawei.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      009fc857
    • Zou Wei's avatar
      atm: iphase: fix possible use-after-free in ia_module_exit() · 1c72e6ab
      Zou Wei authored
      This module's remove path calls del_timer(). However, that function
      does not wait until the timer handler finishes. This means that the
      timer handler may still be running after the driver's remove function
      has finished, which would result in a use-after-free.
      
      Fix by calling del_timer_sync(), which makes sure the timer handler
      has finished, and unable to re-schedule itself.
      Reported-by: default avatarHulk Robot <hulkci@huawei.com>
      Signed-off-by: default avatarZou Wei <zou_wei@huawei.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      1c72e6ab
  4. 10 May, 2021 25 commits
  5. 08 May, 2021 2 commits
    • Linus Torvalds's avatar
      Merge tag 'riscv-for-linus-5.13-mw1' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux · b7415964
      Linus Torvalds authored
      Pull RISC-V fixes from Palmer Dabbelt:
      
       - A fix to avoid over-allocating the kernel's mapping on !MMU systems,
         which could lead to up to 2MiB of lost memory
      
       - The SiFive address extension errata only manifest on rv64, they are
         now disabled on rv32 where they are unnecessary
      
       - A pair of late-landing cleanups
      
      * tag 'riscv-for-linus-5.13-mw1' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux:
        riscv: remove unused handle_exception symbol
        riscv: Consistify protect_kernel_linear_mapping_text_rodata() use
        riscv: enable SiFive errata CIP-453 and CIP-1200 Kconfig only if CONFIG_64BIT=y
        riscv: Only extend kernel reservation if mapped read-only
      b7415964
    • Linus Torvalds's avatar
      drm/i915/display: fix compiler warning about array overrun · fec4d427
      Linus Torvalds authored
      intel_dp_check_mst_status() uses a 14-byte array to read the DPRX Event
      Status Indicator data, but then passes that buffer at offset 10 off as
      an argument to drm_dp_channel_eq_ok().
      
      End result: there are only 4 bytes remaining of the buffer, yet
      drm_dp_channel_eq_ok() wants a 6-byte buffer.  gcc-11 correctly warns
      about this case:
      
        drivers/gpu/drm/i915/display/intel_dp.c: In function ‘intel_dp_check_mst_status’:
        drivers/gpu/drm/i915/display/intel_dp.c:3491:22: warning: ‘drm_dp_channel_eq_ok’ reading 6 bytes from a region of size 4 [-Wstringop-overread]
         3491 |                     !drm_dp_channel_eq_ok(&esi[10], intel_dp->lane_count)) {
              |                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        drivers/gpu/drm/i915/display/intel_dp.c:3491:22: note: referencing argument 1 of type ‘const u8 *’ {aka ‘const unsigned char *’}
        In file included from drivers/gpu/drm/i915/display/intel_dp.c:38:
        include/drm/drm_dp_helper.h:1466:6: note: in a call to function ‘drm_dp_channel_eq_ok’
         1466 | bool drm_dp_channel_eq_ok(const u8 link_status[DP_LINK_STATUS_SIZE],
              |      ^~~~~~~~~~~~~~~~~~~~
             6:14 elapsed
      
      This commit just extends the original array by 2 zero-initialized bytes,
      avoiding the warning.
      
      There may be some underlying bug in here that caused this confusion, but
      this is at least no worse than the existing situation that could use
      random data off the stack.
      
      Cc: Jani Nikula <jani.nikula@intel.com>
      Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
      Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
      Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
      Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
      Cc: Dave Airlie <airlied@redhat.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      fec4d427