28 Jan, 2021

5 commits


25 Jan, 2021

3 commits


22 Jan, 2021

9 commits


21 Jan, 2021

5 commits

  • In case no job rings are available, secure memory structures are not
    initialized, since caam_jr_probe()->init_misc_func()->caam_sm_startup()
    is not called.
    This could happen if all job ring devices bind to the jr uio driver
    instead of the caam/jr driver.
    Running sm_test in this case will lead to a crash.

    Add a check to verify that SM has been initialized - if not the tests
    will be skipped.

    Reported-by: Gaurav Jain
    Signed-off-by: Horia Geantă
    Reviewed-by: Gaurav Jain

    Horia Geantă
     
  • Introduction
    ===

    Currently we are facing some limitations in the caam/jr module lifecycle.
    There are some discussion in upstream:
    Link: https://lore.kernel.org/linux-crypto/20190904023515.7107-13-andrew.smirnov@gmail.com
    Link: https://lore.kernel.org/linux-crypto/20191105151353.6522-1-andrew.smirnov@gmail.com
    but in the end it all seems to get down to implementations not being able
    to gracefully unregister crypto algorithms from crypto API while there are
    users / allocated tfms (cra_refcnt > 1).

    [*] OTOH functionalities in caam/jr that don't interact with crypto API
    (like Secure Memory or black keys / blobs generation) don't face this
    limitation.

    Issue at hand
    ===

    When unloading the caam_jr module, the .remove callback for the last JR
    device exits with -EBUSY (see "Introduction" above) and doesn't perform
    the clean-up (crypto algorithms unregistering etc.).

    One side effect of this is leeding to an oops, which occurs due to a
    corruption in the linked list of "misc devices"
    (drivers/char/misc.c - misc_list):
    1. caam_jr module is unloaded without calling unregister_algs()->
    caam_keygen_exit()->misc_deregister() for the last job ring device;
    this leaves a dangling entry in the misc_list double-linked list
    2. rng_core module is unloaded and calls misc_deregister(); this implies
    removing the corresponding entry in the misc_list; while doing this the
    dangling entry is accessed - which leads to an oops since the address is
    no longer valid (address points to the caam_jr module address space,
    but caam_jr has been previously unloaded).

    Fix this by moving the clean-up of non-crypto related functionalities [*]
    before crypto related ones.

    Fixes: 3af836d4b311 ("MLK-24420-3 crypto: caam - add ioctl calls for black keys and blobs generation")
    Signed-off-by: Horia Geantă
    Reviewed-by: Gaurav Jain

    Horia Geantă
     
  • In case of long format of qDMA command descriptor, there are one frame
    descriptor, three entries in the frame list and two data entries. So the
    size of dma_pool_create for these three fields should be the same with
    the total size of entries respectively, or the contents may be overwritten
    by the next allocated descriptor.

    Signed-off-by: Guanhua Gao

    Guanhua Gao
     
  • Remove all usage for vidioc_int_g_chip_ident
    in camera sensor driver to meet GKI requirement.

    Change-Id: Id808f748913257fe9e3422c50ba54d2506f1506f
    Signed-off-by: yang.tian

    yang.tian
     
  • Revert "MLK-9662 [V4L2 Capture] Revert patch to
    re-add support for _G_CHIP_IDENT"

    This reverts commit 2c0076d850dc595327f50a292e5ca88452b4217c.

    Change-Id: Idc2f61d729b9f289d0c91054dc03794a5e8095d4
    Signed-off-by: yang.tian

    yang.tian
     

20 Jan, 2021

18 commits

  • This is the 5.10.9 stable release

    * tag 'v5.10.9': (153 commits)
    Linux 5.10.9
    netfilter: nf_nat: Fix memleak in nf_nat_init
    netfilter: conntrack: fix reading nf_conntrack_buckets
    ...

    Signed-off-by: Jason Liu

    Jason Liu
     
  • This is the 5.10.8 stable release

    * tag 'v5.10.8': (104 commits)
    Linux 5.10.8
    tools headers UAPI: Sync linux/fscrypt.h with the kernel sources
    drm/panfrost: Remove unused variables in panfrost_job_close()
    ...

    Signed-off-by: Jason Liu

    Jason Liu
     
  • This is the 5.10.7 stable release

    * tag 'v5.10.7': (144 commits)
    Linux 5.10.7
    scsi: target: Fix XCOPY NAA identifier lookup
    rtlwifi: rise completion at the last step of firmware callback
    ...

    Signed-off-by: Jason Liu

    Jason Liu
     
  • This is the 5.10.6 stable release

    * tag 'v5.10.6': (21 commits)
    Linux 5.10.6
    mwifiex: Fix possible buffer overflows in mwifiex_cmd_802_11_ad_hoc_start
    exec: Transform exec_update_mutex into a rw_semaphore
    ...

    Signed-off-by: Jason Liu

    Conflicts:
    drivers/rtc/rtc-pcf2127.c

    Jason Liu
     
  • Because the dprc related driver need to probe and init before DPU driver probe
    and init. The DPU driver cannot work normally when do defer probe before dprc
    driver init. This issue is introduced into car related image because of boot
    time optimization patch.
    The probe order depends on Makefile order. So change the Makefile order to make
    dprc driver init before DPU driver init.

    Error Log as below and it will reboot:
    [ 7.781433] [drm] [CRTC:67:crtc-1] dpu_crtc_atomic_enable: wait for safety shdld done timeout
    [ 8.805426] [drm] [CRTC:67:crtc-1] dpu_crtc_atomic_enable: wait for content shdld done timeout

    Change-Id: Ib8167bcc92531fd6b906ec4039f40d6989ae3c20
    Signed-off-by: Zhang Bo

    Zhang Bo
     
  • This is the 5.10.5 stable release

    * tag 'v5.10.5': (63 commits)
    Linux 5.10.5
    device-dax: Fix range release
    ext4: avoid s_mb_prefetch to be zero in individual scenarios
    ...

    Signed-off-by: Jason Liu

    Jason Liu
     
  • Change-Id: I5a8e84f5b691a352ad4ab138927f4ff98e07ab18

    Ji Luo
     
  • This is a gpio driver to control the PINs which are managed by scu fw.

    Signed-off-by: Shenwei Wang

    Shenwei Wang
     
  • Changes in 5.10.9
    btrfs: reloc: fix wrong file extent type check to avoid false ENOENT
    btrfs: prevent NULL pointer dereference in extent_io_tree_panic
    ALSA: hda/realtek: fix right sounds and mute/micmute LEDs for HP machines
    ALSA: doc: Fix reference to mixart.rst
    ASoC: AMD Renoir - add DMI entry for Lenovo ThinkPad X395
    ASoC: dapm: remove widget from dirty list on free
    x86/hyperv: check cpu mask after interrupt has been disabled
    drm/amdgpu: add green_sardine device id (v2)
    drm/amdgpu: fix DRM_INFO flood if display core is not supported (bug 210921)
    Revert "drm/amd/display: Fixed Intermittent blue screen on OLED panel"
    drm/amdgpu: add new device id for Renior
    drm/i915: Allow the sysadmin to override security mitigations
    drm/i915/gt: Limit VFE threads based on GT
    drm/i915/backlight: fix CPU mode backlight takeover on LPT
    drm/bridge: sii902x: Refactor init code into separate function
    dt-bindings: display: sii902x: Add supply bindings
    drm/bridge: sii902x: Enable I/O and core VCC supplies if present
    tracing/kprobes: Do the notrace functions check without kprobes on ftrace
    tools/bootconfig: Add tracing_on support to helper scripts
    ext4: use IS_ERR instead of IS_ERR_OR_NULL and set inode null when IS_ERR
    ext4: fix wrong list_splice in ext4_fc_cleanup
    ext4: fix bug for rename with RENAME_WHITEOUT
    cifs: check pointer before freeing
    cifs: fix interrupted close commands
    riscv: Drop a duplicated PAGE_KERNEL_EXEC
    riscv: return -ENOSYS for syscall -1
    riscv: Fixup CONFIG_GENERIC_TIME_VSYSCALL
    riscv: Fix KASAN memory mapping.
    mips: fix Section mismatch in reference
    mips: lib: uncached: fix non-standard usage of variable 'sp'
    MIPS: boot: Fix unaligned access with CONFIG_MIPS_RAW_APPENDED_DTB
    MIPS: Fix malformed NT_FILE and NT_SIGINFO in 32bit coredumps
    MIPS: relocatable: fix possible boot hangup with KASLR enabled
    RDMA/ocrdma: Fix use after free in ocrdma_dealloc_ucontext_pd()
    ACPI: scan: Harden acpi_device_add() against device ID overflows
    xen/privcmd: allow fetching resource sizes
    compiler.h: Raise minimum version of GCC to 5.1 for arm64
    mm/vmalloc.c: fix potential memory leak
    mm/hugetlb: fix potential missing huge page size info
    mm/process_vm_access.c: include compat.h
    dm raid: fix discard limits for raid1
    dm snapshot: flush merged data before committing metadata
    dm integrity: fix flush with external metadata device
    dm integrity: fix the maximum number of arguments
    dm crypt: use GFP_ATOMIC when allocating crypto requests from softirq
    dm crypt: do not wait for backlogged crypto request completion in softirq
    dm crypt: do not call bio_endio() from the dm-crypt tasklet
    dm crypt: defer decryption to a tasklet if interrupts disabled
    stmmac: intel: change all EHL/TGL to auto detect phy addr
    r8152: Add Lenovo Powered USB-C Travel Hub
    btrfs: tree-checker: check if chunk item end overflows
    ext4: don't leak old mountpoint samples
    io_uring: don't take files/mm for a dead task
    io_uring: drop mm and files after task_work_run
    ARC: build: remove non-existing bootpImage from KBUILD_IMAGE
    ARC: build: add uImage.lzma to the top-level target
    ARC: build: add boot_targets to PHONY
    ARC: build: move symlink creation to arch/arc/Makefile to avoid race
    ARM: omap2: pmic-cpcap: fix maximum voltage to be consistent with defaults on xt875
    ath11k: fix crash caused by NULL rx_channel
    netfilter: ipset: fixes possible oops in mtype_resize
    ath11k: qmi: try to allocate a big block of DMA memory first
    btrfs: fix async discard stall
    btrfs: merge critical sections of discard lock in workfn
    btrfs: fix transaction leak and crash after RO remount caused by qgroup rescan
    regulator: bd718x7: Add enable times
    ethernet: ucc_geth: fix definition and size of ucc_geth_tx_global_pram
    ARM: dts: ux500/golden: Set display max brightness
    habanalabs: adjust pci controller init to new firmware
    habanalabs/gaudi: retry loading TPC f/w on -EINTR
    habanalabs: register to pci shutdown callback
    staging: spmi: hisi-spmi-controller: Fix some error handling paths
    spi: altera: fix return value for altera_spi_txrx()
    habanalabs: Fix memleak in hl_device_reset
    hwmon: (pwm-fan) Ensure that calculation doesn't discard big period values
    lib/raid6: Let $(UNROLL) rules work with macOS userland
    kconfig: remove 'kvmconfig' and 'xenconfig' shorthands
    spi: fix the divide by 0 error when calculating xfer waiting time
    io_uring: drop file refs after task cancel
    bfq: Fix computation of shallow depth
    arch/arc: add copy_user_page() to to fix build error on ARC
    misdn: dsp: select CONFIG_BITREVERSE
    net: ethernet: fs_enet: Add missing MODULE_LICENSE
    selftests: fix the return value for UDP GRO test
    nvme-pci: mark Samsung PM1725a as IGNORE_DEV_SUBNQN
    nvme: avoid possible double fetch in handling CQE
    nvmet-rdma: Fix list_del corruption on queue establishment failure
    drm/amd/display: fix sysfs amdgpu_current_backlight_pwm NULL pointer issue
    drm/amdgpu: fix a GPU hang issue when remove device
    drm/amd/pm: fix the failure when change power profile for renoir
    drm/amdgpu: fix potential memory leak during navi12 deinitialization
    usb: typec: Fix copy paste error for NVIDIA alt-mode description
    iommu/vt-d: Fix lockdep splat in sva bind()/unbind()
    ACPI: scan: add stub acpi_create_platform_device() for !CONFIG_ACPI
    drm/msm: Call msm_init_vram before binding the gpu
    ARM: picoxcell: fix missing interrupt-parent properties
    poll: fix performance regression due to out-of-line __put_user()
    rcu-tasks: Move RCU-tasks initialization to before early_initcall()
    bpf: Simplify task_file_seq_get_next()
    bpf: Save correct stopping point in file seq iteration
    x86/sev-es: Fix SEV-ES OUT/IN immediate opcode vc handling
    cfg80211: select CONFIG_CRC32
    nvme-fc: avoid calling _nvme_fc_abort_outstanding_ios from interrupt context
    iommu/vt-d: Update domain geometry in iommu_ops.at(de)tach_dev
    net/mlx5e: CT: Use per flow counter when CT flow accounting is enabled
    net/mlx5: Fix passing zero to 'PTR_ERR'
    net/mlx5: E-Switch, fix changing vf VLANID
    blk-mq-debugfs: Add decode for BLK_MQ_F_TAG_HCTX_SHARED
    mm: fix clear_refs_write locking
    mm: don't play games with pinned pages in clear_page_refs
    mm: don't put pinned pages into the swap cache
    perf intel-pt: Fix 'CPU too large' error
    dump_common_audit_data(): fix racy accesses to ->d_name
    ASoC: meson: axg-tdm-interface: fix loopback
    ASoC: meson: axg-tdmin: fix axg skew offset
    ASoC: Intel: fix error code cnl_set_dsp_D0()
    nvmet-rdma: Fix NULL deref when setting pi_enable and traddr INADDR_ANY
    nvme: don't intialize hwmon for discovery controllers
    nvme-tcp: fix possible data corruption with bio merges
    nvme-tcp: Fix warning with CONFIG_DEBUG_PREEMPT
    NFS4: Fix use-after-free in trace_event_raw_event_nfs4_set_lock
    pNFS: We want return-on-close to complete when evicting the inode
    pNFS: Mark layout for return if return-on-close was not sent
    pNFS: Stricter ordering of layoutget and layoutreturn
    NFS: Adjust fs_context error logging
    NFS/pNFS: Don't call pnfs_free_bucket_lseg() before removing the request
    NFS/pNFS: Don't leak DS commits in pnfs_generic_retry_commit()
    NFS/pNFS: Fix a leak of the layout 'plh_outstanding' counter
    NFS: nfs_delegation_find_inode_server must first reference the superblock
    NFS: nfs_igrab_and_active must first reference the superblock
    scsi: ufs: Fix possible power drain during system suspend
    ext4: fix superblock checksum failure when setting password salt
    RDMA/restrack: Don't treat as an error allocation ID wrapping
    RDMA/usnic: Fix memleak in find_free_vf_and_create_qp_grp
    bnxt_en: Improve stats context resource accounting with RDMA driver loaded.
    RDMA/mlx5: Fix wrong free of blue flame register on error
    IB/mlx5: Fix error unwinding when set_has_smi_cap fails
    umount(2): move the flag validity checks first
    dm zoned: select CONFIG_CRC32
    drm/i915/dsi: Use unconditional msleep for the panel_on_delay when there is no reset-deassert MIPI-sequence
    drm/i915/icl: Fix initing the DSI DSC power refcount during HW readout
    drm/i915/gt: Restore clear-residual mitigations for Ivybridge, Baytrail
    mm, slub: consider rest of partial list if acquire_slab() fails
    riscv: Trace irq on only interrupt is enabled
    iommu/vt-d: Fix unaligned addresses for intel_flush_svm_range_dev()
    net: sunrpc: interpret the return value of kstrtou32 correctly
    selftests: netfilter: Pass family parameter "-f" to conntrack tool
    dm: eliminate potential source of excessive kernel log noise
    ALSA: fireface: Fix integer overflow in transmit_midi_msg()
    ALSA: firewire-tascam: Fix integer overflow in midi_port_work()
    netfilter: conntrack: fix reading nf_conntrack_buckets
    netfilter: nf_nat: Fix memleak in nf_nat_init
    Linux 5.10.9

    Signed-off-by: Greg Kroah-Hartman
    Change-Id: I609e501511889081e03d2d18ee7e1be95406f396

    Greg Kroah-Hartman
     
  • commit 0378c625afe80eb3f212adae42cc33c9f6f31abf upstream.

    There wasn't ever a real need to log an error in the kernel log for
    ioctls issued with insufficient permissions. Simply return an error
    and if an admin/user is sufficiently motivated they can enable DM's
    dynamic debugging to see an explanation for why the ioctls were
    disallowed.

    Reported-by: Nir Soffer
    Fixes: e980f62353c6 ("dm: don't allow ioctls to targets that don't map to whole devices")
    Signed-off-by: Mike Snitzer
    Signed-off-by: Greg Kroah-Hartman

    Mike Snitzer
     
  • commit 2d6ffc63f12417b979955a5b22ad9a76d2af5de9 upstream.

    The VT-d hardware will ignore those Addr bits which have been masked by
    the AM field in the PASID-based-IOTLB invalidation descriptor. As the
    result, if the starting address in the descriptor is not aligned with
    the address mask, some IOTLB caches might not invalidate. Hence people
    will see below errors.

    [ 1093.704661] dmar_fault: 29 callbacks suppressed
    [ 1093.704664] DMAR: DRHD: handling fault status reg 3
    [ 1093.712738] DMAR: [DMA Read] Request device [7a:02.0] PASID 2
    fault addr 7f81c968d000 [fault reason 113]
    SM: Present bit in first-level paging entry is clear

    Fix this by using aligned address for PASID-based-IOTLB invalidation.

    Fixes: 1c4f88b7f1f9 ("iommu/vt-d: Shared virtual address in scalable mode")
    Reported-and-tested-by: Guo Kaijie
    Signed-off-by: Lu Baolu
    Link: https://lore.kernel.org/r/20201231005323.2178523-2-baolu.lu@linux.intel.com
    Signed-off-by: Will Deacon
    Signed-off-by: Greg Kroah-Hartman

    Lu Baolu
     
  • commit 09aa9e45863e9e25dfbf350bae89fc3c2964482c upstream.

    The mitigation is required for all gen7 platforms, now that it does not
    cause GPU hangs, restore it for Ivybridge and Baytrail.

    Fixes: 47f8253d2b89 ("drm/i915/gen7: Clear all EU/L3 residual contexts")
    Signed-off-by: Chris Wilson
    Cc: Mika Kuoppala
    Cc: Prathap Kumar Valsan
    Cc: Akeem G Abodunrin
    Cc: Bloomfield Jon
    Reviewed-by: Akeem G Abodunrin
    Reviewed-by: Rodrigo Vivi
    Link: https://patchwork.freedesktop.org/patch/msgid/20210111225220.3483-2-chris@chris-wilson.co.uk
    (cherry picked from commit 008ead6ef8f588a8c832adfe9db201d9be5fd410)
    Signed-off-by: Jani Nikula
    Signed-off-by: Greg Kroah-Hartman

    Chris Wilson
     
  • commit 2af5268180410b874fc06be91a1b2fbb22b1be0c upstream.

    For an enabled DSC during HW readout the corresponding power reference
    is taken along the CRTC power domain references in
    get_crtc_power_domains(). Remove the incorrect get ref from the DSI
    encoder hook.

    Fixes: 2b68392e638d ("drm/i915/dsi: add support for DSC")
    Cc: Vandita Kulkarni
    Cc: Jani Nikula
    Signed-off-by: Imre Deak
    Reviewed-by: Anshuman Gupta
    Link: https://patchwork.freedesktop.org/patch/msgid/20201209153952.3397959-1-imre.deak@intel.com
    (cherry picked from commit 3a9ec563a4ff770ae647f6ee539810f1866866c9)
    Signed-off-by: Jani Nikula
    Signed-off-by: Greg Kroah-Hartman

    Imre Deak
     
  • …eset-deassert MIPI-sequence

    commit 00cb645fd7e29bdd20967cd20fa8f77bcdf422f9 upstream.

    Commit 25b4620ee822 ("drm/i915/dsi: Skip delays for v3 VBTs in vid-mode")
    added an intel_dsi_msleep() helper which skips sleeping if the
    MIPI-sequences have a version of 3 or newer and the panel is in vid-mode;
    and it moved a bunch of msleep-s over to this new helper.

    This was based on my reading of the big comment around line 730 which
    starts with "Panel enable/disable sequences from the VBT spec.",
    where the "v3 video mode seq" column does not have any wait t# entries.

    Given that this code has been used on a lot of different devices without
    issues until now, it seems that my interpretation of the spec here is
    mostly correct.

    But now I have encountered one device, an Acer Aspire Switch 10 E
    SW3-016, where the panel will not light up unless we do actually honor the
    panel_on_delay after exexuting the MIPI_SEQ_PANEL_ON sequence.

    What seems to set this model apart is that it is lacking a
    MIPI_SEQ_DEASSERT_RESET sequence, which is where the power-on
    delay usually happens.

    Fix the panel not lighting up on this model by using an unconditional
    msleep(panel_on_delay) instead of intel_dsi_msleep() when there is
    no MIPI_SEQ_DEASSERT_RESET sequence.

    Fixes: 25b4620ee822 ("drm/i915/dsi: Skip delays for v3 VBTs in vid-mode")
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20201118124058.26021-1-hdegoede@redhat.com
    (cherry picked from commit 6fdb335f1c9c0845b50625de1624d8445c4c4a07)
    Signed-off-by: Jani Nikula <jani.nikula@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    Hans de Goede
     
  • commit b690bd546b227c32b860dae985a18bed8aa946fe upstream.

    Without crc32 support, this driver fails to link:

    arm-linux-gnueabi-ld: drivers/md/dm-zoned-metadata.o: in function `dmz_write_sb':
    dm-zoned-metadata.c:(.text+0xe98): undefined reference to `crc32_le'
    arm-linux-gnueabi-ld: drivers/md/dm-zoned-metadata.o: in function `dmz_check_sb':
    dm-zoned-metadata.c:(.text+0x7978): undefined reference to `crc32_le'

    Fixes: 3b1a94c88b79 ("dm zoned: drive-managed zoned block device target")
    Signed-off-by: Arnd Bergmann
    Reviewed-by: Damien Le Moal
    Signed-off-by: Mike Snitzer
    Signed-off-by: Greg Kroah-Hartman

    Arnd Bergmann
     
  • commit 2cb091f6293df898b47f4e0f2e54324e2bbaf816 upstream.

    When set_has_smi_cap() fails, multiport master cleanup is missed. Fix it
    by doing the correct error unwinding goto.

    Fixes: a989ea01cb10 ("RDMA/mlx5: Move SMI caps logic")
    Link: https://lore.kernel.org/r/20210113121703.559778-3-leon@kernel.org
    Signed-off-by: Parav Pandit
    Signed-off-by: Leon Romanovsky
    Signed-off-by: Jason Gunthorpe
    Signed-off-by: Greg Kroah-Hartman

    Parav Pandit
     
  • commit 1c3aa6bd0b823105c2030af85d92d158e815d669 upstream.

    If the allocation of the fast path blue flame register fails, the driver
    should free the regular blue flame register allocated a statement above,
    not the one that it just failed to allocate.

    Fixes: 16c1975f1032 ("IB/mlx5: Create profile infrastructure to add and remove stages")
    Link: https://lore.kernel.org/r/20210113121703.559778-6-leon@kernel.org
    Reported-by: Hans Petter Selasky
    Signed-off-by: Mark Bloch
    Signed-off-by: Leon Romanovsky
    Signed-off-by: Jason Gunthorpe
    Signed-off-by: Greg Kroah-Hartman

    Mark Bloch
     
  • commit 869c4d5eb1e6fbda66aa790c48bdb946d71494a0 upstream.

    The function bnxt_get_ulp_stat_ctxs() does not count the stats contexts
    used by the RDMA driver correctly when the RDMA driver is freeing the
    MSIX vectors. It assumes that if the RDMA driver is registered, the
    additional stats contexts will be needed. This is not true when the
    RDMA driver is about to unregister and frees the MSIX vectors.

    This slight error leads to over accouting of the stats contexts needed
    after the RDMA driver has unloaded. This will cause some firmware
    warning and error messages in dmesg during subsequent config. changes
    or ifdown/ifup.

    Fix it by properly accouting for extra stats contexts only if the
    RDMA driver is registered and MSIX vectors have been successfully
    requested.

    Fixes: c027c6b4e91f ("bnxt_en: get rid of num_stat_ctxs variable")
    Reviewed-by: Yongping Zhang
    Reviewed-by: Pavan Chebbi
    Signed-off-by: Michael Chan
    Signed-off-by: Jakub Kicinski
    Signed-off-by: Greg Kroah-Hartman

    Michael Chan