When ata device IDENTIFY failed, the ata device status is ATA_DEV_UNKNOWN. The
libata reported like:
[113518.620433] ata5.00: qc timeout (cmd 0xec)
[113518.653646] ata5.00: failed to IDENTIFY (I/O error, err_mask=0x4)
But libsas verifies the device status by ata_dev_disabled(), which skipped
ATA_DEV_UNKNOWN. This will make libsas think the ata device probing succeed
the device cannot be actually brought up. And even the new bcast of this
device will be considered as flutter and will not probe this device again.
Change ata_dev_disabled() to !ata_dev_enabled() so that libsas can deal with
this if the ata device probe failed. New bcasts can let us try to probe the
device again and bring it up if it is fine to IDENTIFY.
Tested-by: Zhou Yupeng <zhouyupeng1@huawei.com>
Signed-off-by: Jason Yan <yanaijie@huawei.com>
CC: John Garry <john.garry@huawei.com>
CC: Johannes Thumshirn <jthumshirn@suse.de>
CC: Ewan Milne <emilne@redhat.com>
CC: Christoph Hellwig <hch@lst.de>
CC: Tomas Henzl <thenzl@redhat.com>
CC: Dan Williams <dan.j.williams@intel.com>
CC: Hannes Reinecke <hare@suse.com>
Reviewed-by: John Garry <john.garry@huawei.com>
Reviewed-by: Hannes Reinecke <hare@suse.com>
Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
If we went into sas_rediscover_dev() the attached_sas_addr was already insured
not to be zero. So it's unnecessary to check if the attached_sas_addr is zero.
And although if the sas address is not changed, we always have to unregister
the old device when we are going to register a new one. We cannot just leave
the device there and bring up the new.
Signed-off-by: Jason Yan <yanaijie@huawei.com>
CC: chenxiang <chenxiang66@hisilicon.com>
CC: John Garry <john.garry@huawei.com>
CC: Johannes Thumshirn <jthumshirn@suse.de>
CC: Ewan Milne <emilne@redhat.com>
CC: Christoph Hellwig <hch@lst.de>
CC: Tomas Henzl <thenzl@redhat.com>
CC: Dan Williams <dan.j.williams@intel.com>
CC: Hannes Reinecke <hare@suse.com>
Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
Reviewed-by: Hannes Reinecke <hare@suse.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Now LLDDs have to implement lldd_port_deformed method otherwise NULL
dereference will happen. Make it optional and remove the dummy implementation
in hisi_sas.
Signed-off-by: Jason Yan <yanaijie@huawei.com>
CC: John Garry <john.garry@huawei.com>
CC: Johannes Thumshirn <jthumshirn@suse.de>
CC: Ewan Milne <emilne@redhat.com>
CC: Christoph Hellwig <hch@lst.de>
CC: Tomas Henzl <thenzl@redhat.com>
CC: Dan Williams <dan.j.williams@intel.com>
CC: Hannes Reinecke <hare@suse.com>
Acked-by: John Garry <john.garry@huawei.com>
Reviewed-by: Hannes Reinecke <hare@suse.com>
Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This code is dead and no clue implies that it will be back again.
Signed-off-by: Jason Yan <yanaijie@huawei.com>
CC: John Garry <john.garry@huawei.com>
CC: Johannes Thumshirn <jthumshirn@suse.de>
CC: Ewan Milne <emilne@redhat.com>
CC: Christoph Hellwig <hch@lst.de>
CC: Tomas Henzl <thenzl@redhat.com>
CC: Dan Williams <dan.j.williams@intel.com>
CC: Hannes Reinecke <hare@suse.com>
Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
Reviewed-by: John Garry <john.garry@huawei.com>
Reviewed-by: Hannes Reinecke <hare@suse.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Trivial fix to spelling mistake in warning message and comments
Signed-off-by: Colin Ian King <colin.king@canonical.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Clang warns when multiple pairs of parentheses are used for a single
conditional statement.
In file included from drivers/scsi/BusLogic.c:57:
drivers/scsi/FlashPoint.c:2947:34: warning: equality comparison with extraneous parentheses [-Wparentheses-equality]
if ((currSCCB->Sccb_scsistat == SELECT_SN_ST)) {
~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
drivers/scsi/FlashPoint.c:2947:34: note: remove extraneous parentheses around the comparison to silence this warning
if ((currSCCB->Sccb_scsistat == SELECT_SN_ST)) {
~ ^ ~
drivers/scsi/FlashPoint.c:2947:34: note: use '=' to turn this equality comparison into an assignment
if ((currSCCB->Sccb_scsistat == SELECT_SN_ST)) {
^~
=
drivers/scsi/FlashPoint.c:2956:39: warning: equality comparison with extraneous parentheses [-Wparentheses-equality]
else if ((currSCCB->Sccb_scsistat ==
~~~~~~~~~~~~~~~~~~~~~~~~^~
drivers/scsi/FlashPoint.c:2956:39: note: remove extraneous parentheses around the comparison to silence this warning
else if ((currSCCB->Sccb_scsistat ==
~ ^
drivers/scsi/FlashPoint.c:2956:39: note: use '=' to turn this equality comparison into an assignment
else if ((currSCCB->Sccb_scsistat ==
^~
=
2 warnings generated.
Link: https://github.com/ClangBuiltLinux/linux/issues/156
Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
Acked-by: Khalid Aziz <khalid@gonehiking.org>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
vmemdup_user is better than duplicating its implementation, So just replace
the open code.
The issue is detected with the help of Coccinelle.
Tested-by: Don Brace <don.brace@microsemi.com>
Acked-by: Don Brace <don.brace@microsemi.com>
Signed-off-by: zhong jiang <zhongjiang@huawei.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Fixes gcc '-Wunused-but-set-variable' warning:
fs/nfsd/vfs.c: In function 'nfsd_create':
fs/nfsd/vfs.c:1279:16: warning:
variable 'dirp' set but not used [-Wunused-but-set-variable]
Signed-off-by: YueHaibing <yuehaibing@huawei.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Upon receiving a request for async copy, create a new kthread. If we
get asynchronous request, make sure to copy the needed arguments/state
from the stack before starting the copy. Then start the thread and reply
back to the client indicating copy is asynchronous.
nfsd_copy_file_range() will copy in a loop over the total number of
bytes is needed to copy. In case a failure happens in the middle, we
ignore the error and return how much we copied so far. Once done
creating a workitem for the callback workqueue and send CB_OFFLOAD with
the results.
The lifetime of the copy stateid is bound to the vfs copy. This way we
don't need to keep the nfsd_net structure for the callback. We could
keep it around longer so that an OFFLOAD_STATUS that came late would
still get results, but clients should be able to deal without that.
We handle OFFLOAD_CANCEL by sending a signal to the copy thread and
calling kthread_stop.
A client should cancel any ongoing copies before calling DESTROY_CLIENT;
if not, we return a CLIENT_BUSY error.
If the client is destroyed for some other reason (lease expiration, or
server shutdown), we must clean up any ongoing copies ourselves.
Signed-off-by: Olga Kornievskaia <kolga@netapp.com>
[colin.king@canonical.com: fix leak in error case]
[bfields@fieldses.org: remove signalling, merge patches]
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Since commit 15f37e1588 ("MIPS: store the appended
dtb address in a variable"),
in kernels with MIPS_RAW_APPENDED_DTB=y, the early boot code detects
the dtb and stores it in the 'fw_passed_dtb' variable.
However, the dtb is not stored in 'fw_passed_dtb' in kernels with
MIPS_ELF_APPENDED_DTB=y.
Under MIPS_ELF_APPENDED_DTB=y, the dtb is also located in the
__appended_dtb section, so we just need to update the #ifdef.
This will allow to access the dtb in a more uniform way.
Fixes: 15f37e1588 ("MIPS: store the appended dtb address in a variable")
Signed-off-by: Yasha Cherikovsky <yasha.che3@gmail.com>
Signed-off-by: Paul Burton <paul.burton@mips.com>
Patchwork: https://patchwork.linux-mips.org/patch/20803/
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Paul Burton <paul.burton@mips.com>
Cc: James Hogan <jhogan@kernel.org>
Cc: linux-mips@linux-mips.org
Cc: linux-kernel@vger.kernel.org
It makes the code more readable, especially in the nested ifdefs.
Signed-off-by: Yasha Cherikovsky <yasha.che3@gmail.com>
Signed-off-by: Paul Burton <paul.burton@mips.com>
Patchwork: https://patchwork.linux-mips.org/patch/20802/
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Paul Burton <paul.burton@mips.com>
Cc: James Hogan <jhogan@kernel.org>
Cc: linux-mips@linux-mips.org
Cc: linux-kernel@vger.kernel.org
This reverts commit 46053c7368.
This change breaks architectures setting up dma_ops in their own magic
way and not using arch_setup_dma_ops, so revert it.
Reported-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Christoph Hellwig <hch@lst.de>
The patch adding the infrastructure failed to actually add the symbol
declaration, oops..
Fixes: faef87723a ("dma-noncoherent: add a arch_sync_dma_for_cpu_all hook")
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Paul Burton <paul.burton@mips.com>
Acked-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Given a large enough memory allocation, it is possible to wrap the
pinned_vm counter. Check for addition overflow to prevent such
eventualities.
Fixes: 40ddacf2dd ("RDMA/umem: Don't hold mmap_sem for too long")
Reported-by: Jason Gunthorpe <jgg@ziepe.ca>
Signed-off-by: Doug Ledford <dledford@redhat.com>
Reviewed-by: Leon Romanovsky <leonro@mellanox.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
Noticed while reviewing commit d4b4dd1b97 ("RDMA/umem: Do not use
current->tgid to track the mm_struct") patch. Why would we take a lock,
adjust a protected variable, drop the lock, and *then* check the input
into our protected variable adjustment? Then we have to take the lock
again on our error unwind. Let's just check the input early and skip
taking the locks needlessly if the input isn't valid.
It was also noticed that we set mm = current->mm, we then never modify
mm, but we still go back and reference current->mm a number of times
needlessly. Be consistent in using the stored reference in mm.
Signed-off-by: Doug Ledford <dledford@redhat.com>
Reviewed-by: Leon Romanovsky <leonro@mellanox.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
Currently add_modify_gid() for IB link layer has followong issue
in cache update path.
When GID update event occurs, core releases reference to the GID
table without updating its state and/or entry pointer.
CPU-0 CPU-1
------ -----
ib_cache_update() IPoIB ULP
add_modify_gid() [..]
put_gid_entry()
refcnt = 0, but
state = valid,
entry is valid.
(work item is not yet executed).
ipoib_create_ah()
rdma_create_ah()
rdma_get_gid_attr() <--
Tries to acquire gid_attr
which has refcnt = 0.
This is incorrect.
GID entry state and entry pointer is provides the accurate GID enty
state. Such fields must be updated with rwlock to protect against
readers and, such fields must be in sane state before refcount can drop
to zero. Otherwise above race condition can happen leading to
use-after-free situation.
Following backtrace has been observed when cache update for an IB port
is triggered while IPoIB ULP is creating an AH.
Therefore, when updating GID entry, first mark a valid entry as invalid
through state and set the barrier so that no callers can acquired
the GID entry, followed by release reference to it.
refcount_t: increment on 0; use-after-free.
WARNING: CPU: 4 PID: 29106 at lib/refcount.c:153 refcount_inc_checked+0x30/0x50
Workqueue: ib-comp-unb-wq ib_cq_poll_work [ib_core]
RIP: 0010:refcount_inc_checked+0x30/0x50
RSP: 0018:ffff8802ad36f600 EFLAGS: 00010082
RAX: 0000000000000000 RBX: 0000000000000000 RCX: 0000000000000000
RDX: 0000000000000002 RSI: 0000000000000008 RDI: ffffffff86710100
RBP: ffff8802d6e60a30 R08: ffffed005d67bf8b R09: ffffed005d67bf8b
R10: 0000000000000001 R11: ffffed005d67bf8a R12: ffff88027620cee8
R13: ffff8802d6e60988 R14: ffff8802d6e60a78 R15: 0000000000000202
FS: 0000000000000000(0000) GS:ffff8802eb200000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007f3ab35e5c88 CR3: 00000002ce84a000 CR4: 00000000000006e0
IPv6: ADDRCONF(NETDEV_CHANGE): ib1: link becomes ready
Call Trace:
rdma_get_gid_attr+0x220/0x310 [ib_core]
? lock_acquire+0x145/0x3a0
rdma_fill_sgid_attr+0x32c/0x470 [ib_core]
rdma_create_ah+0x89/0x160 [ib_core]
? rdma_fill_sgid_attr+0x470/0x470 [ib_core]
? ipoib_create_ah+0x52/0x260 [ib_ipoib]
ipoib_create_ah+0xf5/0x260 [ib_ipoib]
ipoib_mcast_join_complete+0xbbe/0x2540 [ib_ipoib]
Fixes: b150c3862d ("IB/core: Introduce GID entry reference counts")
Signed-off-by: Parav Pandit <parav@mellanox.com>
Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
There is a copy and paste bug so we accidentally use the RX_ shift when
we're in TX_ mode.
Fixes: bb8b2062af ("fsl/qe: setup clock source for TDM mode")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com>
Signed-off-by: Li Yang <leoyang.li@nxp.com>
(cherry picked from commit 3cb31b634052ed458922e0c8e2b4b093d7fb60b9)
Signed-off-by: Olof Johansson <olof@lixom.net>
If the qman driver didn't probe, calling qman_alloc_fqid_range,
qman_alloc_pool_range or qman_alloc_cgrid_range (as done in dpaa_eth) will
pass a NULL pointer to gen_pool_alloc, leading to a NULL pointer
dereference.
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Reviewed-by: Roy Pledge <roy.pledge@nxp.com>
Signed-off-by: Li Yang <leoyang.li@nxp.com>
(cherry picked from commit f72487a2788aa70c3aee1d0ebd5470de9bac953a)
Signed-off-by: Olof Johansson <olof@lixom.net>
intended for 4.19, please pull the following:
- Florian fixes the PPI and SPI interrupts in the BCM63138 (DSL) SoC DTS
-----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEm+Rq3+YGJdiR9yuFh9CWnEQHBwQFAlupKGwACgkQh9CWnEQH
BwTgvQ/+KShazu6K/28nduCtvnDCDbro8UYHxweo97UmeeEYIJ9g41ubKxEtWHUF
s/vNojpv0xlPEDKogHsBfsE6L0S3jNjG5dx1lvJgrJDlaTabtGybM3xRoOkB+xGs
y7QNTfBcVPOBJjOrUSmh/1CIirBm+yQjSYgg8/YLJWZCy/FRgSd7koTKHAql/Ppw
xWjG83djIFnWxTs7Hbp0cHQP9Z4kpWo9tuWkyOXeiDR0CMTtFjdKwMPkw4GHOInQ
68FK75mDROnno9TwtWGylw2op8JRzSqRaX6aDQnXn8xzP7D+ngRRUWlLNOQutuO1
RX8+qx5ItUMi6vTc3zOm4NJk1WvWSyiiTO2fHLjZ29e+ODy0gi6cZCb8E4gSJK1W
nS3KFDdqw0hPh4rCOGKe20KqaY0jd/hN1FLjXIA9YRYQJb0aZR1iW+U8PmahNyEb
9O2zUEUJebFoZWOta4ISnJMKhXNawHGf3f6U24kqMCg/3qJt4NKFn2MjdsXraqij
nd/biK0M6JhlHwHTV4sVEN7f86anESz1H8T9AB9MWkzlTNvW7narWQEJCiVGp/16
FDufrM0cNX9mVcBOprzmDpMiY+YiKOP2nrKIlTPaaa/qsxhOr2qZT8KmzlmdRQWU
Aj/sbaPRPF+882sDSEbLYpl/aE90zYgiLe2S1PfOVRZ5YrJws0E=
=FoxN
-----END PGP SIGNATURE-----
Merge tag 'arm-soc/for-4.19/devicetree-fixes' of https://github.com/Broadcom/stblinux into fixes
This pull request contains Broadcom ARM-based SoCs Device Tree changes
intended for 4.19, please pull the following:
- Florian fixes the PPI and SPI interrupts in the BCM63138 (DSL) SoC DTS
* tag 'arm-soc/for-4.19/devicetree-fixes' of https://github.com/Broadcom/stblinux:
ARM: dts: BCM63xx: Fix incorrect interrupt specifiers
Signed-off-by: Olof Johansson <olof@lixom.net>
Upon DEVX object creation the object must be destroyed upon a follows
error flow.
Fixes: 7efce3691d ("IB/mlx5: Add obj create and destroy functionality")
Signed-off-by: Yishai Hadas <yishaih@mellanox.com>
Reviewed-by: Artemy Kovalyov <artemyko@mellanox.com>
Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
1. Bring up DSI and HDMI on Exynos5250 Arndale.
2. Use the new way of setting external wakeup interrupts on S5Pv210.
3. Use proper cpufreq suspend OPP to fix suspend/wakeup from RAM on Snow
Chromebook (Exynos5250).
4. Fully describe regualtors on Odroid XU3-family boards.
5. Fix sound in Snow-rev5 Chromebook.
6. Fix regulators configuration on Peach Pi/Pit Chromebooks (Exynos5420)
which should be always on.
7. Fix pull control on PMIC interrupt lines on multiple boards which
essentially fixes waking up by RTC.
8. Add PMIC interrupts on Exynos4210 UniversalC210 board.
9. Add external SD card support for Trats board (Exynos4210).
10. Correct audio subsystem parent clock on Peach Chromebooks.
11. Minor cleanups.
-----BEGIN PGP SIGNATURE-----
iQJEBAABCgAuFiEE3dJiKD0RGyM7briowTdm5oaLg9cFAlupHJgQHGtyemtAa2Vy
bmVsLm9yZwAKCRDBN2bmhouD1wggD/wL+vNEkmLLxuIj3oBGqT1tyCIZ9a0DbKMN
6wardJnkR7gcf2RuH0j/9AaEezP1Tj/xPpDBHMAK1NylAFgxt/+LDbBkuu/8Du6j
lCj8MD43yt6qzT9gWRdQGeUjDV+2a60pzhxi67zcbRjLat5cuZyv/ips3FPDfuep
xe4vPbnGe8KlG/ZpyHVLzzNx3R6lwtF9JRppO52GkFMSyrf2KlFOGEztSP0HV5iG
s3KPut8N7lH3dpGuewy6I9jZ4aGPPeBAWMoK63/HRkLxlHoGFevg/l1LEQP6TL+X
Z/AYAUfWEKxnWZvtO4jbFH0fEGNm1Qn+6TRHibxsGd9mU0P8o4qdO0Wtc1VbmNtF
q0Oc1qw5nvnnzLXqwTA0Z98nsJzAV4oZcsFKgyNk5knSKan4I6UDDTpLw4xLQp3k
gG6+rnf0WmAckKkQou3381rIEfCpAPjrfKYjfaw7di+P93den3q6m59DNR16xIRt
ZxrH9az0lK5k2eSKxh9jH4GVhA9azqYYZzrayEXdshlwnjRGzT0OWvtD+AmMOVm9
Y1dtb/BkJO7NXmIz0f2Syb3ztHIY/phkADOz9hD/tZXlaUAopKEoQG+e4dWqVawG
7kb4y8SjOctji1JO2uThRvtJT16TEf8PTOBhbco5FGYn5TjtZNl/GybFcbeEq3Kz
Yq0uifhWSg==
=WT7h
-----END PGP SIGNATURE-----
Merge tag 'samsung-dt-4.20-2' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux into next/dt
Samsung DTS ARM changes for v4.20
1. Bring up DSI and HDMI on Exynos5250 Arndale.
2. Use the new way of setting external wakeup interrupts on S5Pv210.
3. Use proper cpufreq suspend OPP to fix suspend/wakeup from RAM on Snow
Chromebook (Exynos5250).
4. Fully describe regualtors on Odroid XU3-family boards.
5. Fix sound in Snow-rev5 Chromebook.
6. Fix regulators configuration on Peach Pi/Pit Chromebooks (Exynos5420)
which should be always on.
7. Fix pull control on PMIC interrupt lines on multiple boards which
essentially fixes waking up by RTC.
8. Add PMIC interrupts on Exynos4210 UniversalC210 board.
9. Add external SD card support for Trats board (Exynos4210).
10. Correct audio subsystem parent clock on Peach Chromebooks.
11. Minor cleanups.
* tag 'samsung-dt-4.20-2' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux:
ARM: dts: exynos: Correct audio subsystem parent clock on Peach Chromebooks
ARM: dts: exynos: Add external SD card support for Trats board
ARM: dts: exynos: Disable pull control for PMIC IRQ line on Artik5 board
ARM: dts: exynos: Disable pull control for S5M8767 PMIC
ARM: dts: exynos: Remove double SD card detect pin inversion
ARM: dts: exynos: Add missing PMIC interrupts on UniversalC210 board
ARM: dts: exynos: Disable pull control for MAX8997 interrupts on Origen
ARM: dts: exynos: Fix regulators configuration on Peach Pi/Pit Chromebooks
ARM: dts: exynos: Fix sound in Snow-rev5 Chromebook
ARM: dts: exynos: Add LDO28 regulator on Exynos5422 Odroid boards
ARM: dts: exynos: Disable unused PMIC regulators on Exynos5422 Odroid boards
ARM: dts: exynos: Add unused PMIC regulators on Exynos5422 Odroid boards
ARM: dts: exynos: Add missing used PMIC regulators on Exynos5422 Odroid boards
ARM: dts: exynos: Mark 1 GHz CPU OPP as suspend OPP on Exynos5250
ARM: dts: exynos: Convert exynos5250.dtsi to opp-v2 bindings
ARM: dts: s5pv210: Switch to S5Pv210 specific pinctrl wakeup compatible
ARM: dts: exynos: Fix HDMI-HPD line handling on Arndale
ARM: dts: exynos: Use i2c-gpio for HDMI-DDC on Arndale
ARM: dts: exynos: Add DSI and panel nodes on Arndale
ARM: dts: exynos: Add DSI node on Exynos5250
Signed-off-by: Olof Johansson <olof@lixom.net>
Make sure we free struct uverbs_api once we clean the radix tree. It was
allocated by uverbs_alloc_api().
Fixes: 9ed3e5f447 ("IB/uverbs: Build the specs into a radix tree at runtime")
Reported-by: Bart Van Assche <bvanassche@acm.org>
Signed-off-by: Mark Bloch <markb@mellanox.com>
Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
_ Change syntax of multiple DAI links
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQIcBAABAgAGBQJbql2xAAoJEMrHeC97M/+mPDkP/0+Ogx1B1WTRYaXpVPX3iJKq
EejAmNjTdjVcYQGha2gulwneMzDIpqCBhPmQYUFd4XDqTVh0gJnzexgmEIWN3YiK
6I9NEuYJzjX4UzyNHFA8S+VZsrI/Vd67oKiHwKX4013orYF90I/egDGKtduEXn4l
YLiDVzXduIgnv3Jv4+Yk0g5z+QnEArnc21Din9cll0JOa7+KwB0VMJ6DA+hUf5De
jqtetAw5gGvWsuSKRAEswUw+KbAQu5E7ZBpY4WsDbdTTBxk+xjAMWxRuPiLrJddf
w1qY29xqL5yOOI//F74T64LrTMNNvu3G+tj6pU0ML6WPGTWlYcTHFdbgkFE7kL0E
OXqgWCoKegUCtdMJyWzk+TMxQqzxM9TrWjAO/k5P1jPb0LkhlWIi26eTDlCkIsWq
Gy4Uw9aAMRC5NypkpEjplm0ppiyrYlNVXMTOSFSADOHseoqUOvcBG+MnagxZzIDi
UkUxmja1+FuEqLOayLf/OEuflqFB4RlIfqk1FsFc8z8A9zbJQgejjgoyiLXdIb24
6VxJRG3xd3DNDPh30/U/j0SCdg3XW/TSiCLLibX1wR8p+V/96VOC+/o1IWdW7oJz
rCWviUK84yMAHG+O0Vy3BHyQWo0TUGEQd+HVMINhQRcubBVhfrfofihtn7wSpOyr
BZIK7xdrHMGG5lpCxRoh
=mMf1
-----END PGP SIGNATURE-----
Merge tag 'sti-dt-for-v4.20-round1' of git://git.kernel.org/pub/scm/linux/kernel/git/pchotard/sti into next/dt
STi DT update:
_ Change syntax of multiple DAI links
* tag 'sti-dt-for-v4.20-round1' of git://git.kernel.org/pub/scm/linux/kernel/git/pchotard/sti:
ARM: dts: stih410: change syntax of multiple DAI
Signed-off-by: Olof Johansson <olof@lixom.net>
- warning fiwes from Rob
- many updates for the axentia boards
- ADC, I2S and touch screen support for sama5d2
-----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEXx9Viay1+e7J/aM4AyWl4gNJNJIFAluqEKUACgkQAyWl4gNJ
NJKNng//cHQkaXVeKopKCu53fceBmUfE8VLAc+YPBeXgLkZE+cAB1easg9c1nwiB
QzjkA3Wg3eI5CZURyGjSKK4oLddekdnL/cWKJ7ekQEOgXXWgcc54cVLZgi8i32yT
1uyJP0gooUe0nDNuH/8ifar8BIGcCZIHmcePSUQz5yyubczrplUrRmHEp1zfn7e6
rmJhKmGJcL9Wa7YnARWJjHI5rGjBL901Z0EOa9Jno8Sgr5VAWQ5GQ5rITz2zCVqQ
DPQHSTIsvPGuaMKD3bOBA3bUTtMBu8aKmYHOnHehLW3NLUnNeGlbBRqZP8Wh0wAA
jr67yuK7yggTS8qrnmZrJ79Fc/v4G5ghg1xd2oJu0qcd8KSv/9Xz3pPZa8zY9jbR
HuQR0LKD3zyNp/T4GHAagTOuIyK0dlSbphJVzqbPjFVgNUt6f6QKcJes2SCQOdFk
2jQtDN9bNjPDjBbBXRJQ+S1V/K3ItSkeN/ypAmfNOfjEgjgnrOu/0K8HScWRHqBX
8CvaC6SFAVvJN78ahTypQMeadarAZlzoXSlDGwSVT4FwZBSIwTxgHWnegZKzqhcw
+ThGw5YdBulGwnhyVlq8RDLw61x+t4b16NxODO8sed7PTwlDe6vMURDgRk7tvyeW
ZHGB9iqlaHYSfd0Bcom1wkQEfbnEWTTBc/1QLVTAxouW5IJ0PAw=
=jsRK
-----END PGP SIGNATURE-----
Merge tag 'at91-4.20-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/at91/linux into next/dt
AT91 DT for 4.20
- warning fiwes from Rob
- many updates for the axentia boards
- ADC, I2S and touch screen support for sama5d2
* tag 'at91-4.20-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/at91/linux:
arm: dts: sama5d2: Update coresight bindings for hardware ports
ARM: dts: at91: sama5d27_som1_ek: add adc regulators
ARM: dts: atmel: Fix I2C and SPI bus warnings
ARM: dts: at91: sama5d4: add labels to soc dtsi for derivative boards
ARM: dts: at91: tse850: drop three indentation levels
ARM: dts: at91: nattis: drop three indentation levels
ARM: dts: at91: nattis: describe the lvds panel
ARM: dts: at91: nattis: move pinctrls for the lvds chip to the lvds node
ARM: dts: at91: nattis: state the actual lvds-encoder chip
ARM: dts: at91: nattis: make the SD-card slot work
ARM: dts: at91: nattis: set the PRLUD and HIPOW signals low
ARM: dts: at91/trivial: remove old NAND bindings leftover in sama5d2
ARM: dts: at91/trivial: Fix USART1 definition for at91sam9g45
ARM: dts: at91: sama5d2 Xplained: add pin muxing for I2S
ARM: dts: at91: sama5d2: add nodes for I2S controllers
ARM: dts: at91: sama5d2: add I2S clock muxing nodes
ARM: dts: at91: sama5d2: Add resistive touch device
ARM: dts: at91: sama5d2: add channel cells for ADC device
Signed-off-by: Olof Johansson <olof@lixom.net>
Clang warns when one enumerated type is implicitly converted to another.
drivers/infiniband/hw/cxgb4/qp.c:287:8: warning: implicit conversion
from enumeration type 'enum t4_bar2_qtype' to different enumeration type
'enum cxgb4_bar2_qtype' [-Wenum-conversion]
T4_BAR2_QTYPE_EGRESS,
^~~~~~~~~~~~~~~~~~~~
c4iw_bar2_addrs expects a value from enum cxgb4_bar2_qtype so use the
corresponding values from that type so Clang is satisfied without changing
the meaning of the code.
T4_BAR2_QTYPE_EGRESS = CXGB4_BAR2_QTYPE_EGRESS = 0
T4_BAR2_QTYPE_INGRESS = CXGB4_BAR2_QTYPE_INGRESS = 1
Reported-by: Nick Desaulniers <ndesaulniers@google.com>
Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
Acked-by: Steve Wise <swise@opengridcomputing.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
When profiles were introduced to MLX5 IB an unneeded version print when
creating an MLX5 IB device was added. Remove the print, we still have a
printk for driver version in mlx5_ib_add().
Fixes: 16c1975f10 ("IB/mlx5: Create profile infrastructure to add and remove stages")
Signed-off-by: Mark Bloch <markb@mellanox.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
Trivial fix to spelling mistake in usnic_err error message.
Signed-off-by: Colin Ian King <colin.king@canonical.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
Clang warns that if the default case is taken, ret will be
uninitialized.
./arch/arm64/include/asm/percpu.h:196:2: warning: variable 'ret' is used
uninitialized whenever switch default is taken
[-Wsometimes-uninitialized]
default:
^~~~~~~
./arch/arm64/include/asm/percpu.h:200:9: note: uninitialized use occurs
here
return ret;
^~~
./arch/arm64/include/asm/percpu.h:157:19: note: initialize the variable
'ret' to silence this warning
unsigned long ret, loop;
^
= 0
This warning appears several times while building the erofs filesystem.
While it's not strictly wrong, the BUILD_BUG will prevent this from
becoming a true problem. Initialize ret to 0 in the default case right
before the BUILD_BUG to silence all of these warnings.
Reported-by: Prasad Sodagudi <psodagud@codeaurora.org>
Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
Signed-off-by: Dennis Zhou <dennis@kernel.org>
- use struct_size in atmel-ebi
-----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEXx9Viay1+e7J/aM4AyWl4gNJNJIFAluqDFYACgkQAyWl4gNJ
NJIY1w//eeDj6dzDM6cEQ20Kq9AGNVgrWwZEbWciAMZpjnqsQK0Rv/vwxQjWZk2k
rcTdWOYCYrPgpTDlTln2EfxJVtlF7J7wQTqtMK4qKAmCHcPgBDI6+Z56UgS+IC1T
pqm1v6SK6dyZ/AOnHqJwboHogtFJSTqTnPl0neUKBHURuszRvF1rHtxYpWUHHUu7
xrI7XkgwPP1IEdxnK1NQZI/VGYmYR9FzeR62w3zGP0vmcluW6pIzJBU8bGpP1Ny1
0c9PM/nH00JGsxj/TQBBgQCrk6n6wxfdPcY3az5RShuGUq23qJ6DM+cs5or5OFgF
AcXq2yih8WXD/qv0/22uPJtg/rGcDVvoD5VmoDhSt0hQ/EPMYdPn4csfOHEYjmY0
mxLqrtOriUC9wLjq92qhukHSH2tmBHtNdElShYXm3gRaYAzZ8++I9UAM2SE4fmvw
uAOeU1uA/70d1r1L6tVgFbBO9x7KT2VkoGLMNFuweXzh3F10KwDpgDpcpXmpmhrv
EIjjVljG0lPvOIXXfA4e9mUOKv4spQPwi/ANbRTCEEX59ko1AaP3SXHQAqeLsWlP
0vTEmj8owGjpAh54+LB1pPjSfvwf0Xr4MsaPpkLnzAxYJaxpug0riLXARZiIYpYo
GJ48mQnOmZL5D44tZhKuulsxtDfWofzfpm6lCSmKgj6cQ9oV5lQ=
=qeqW
-----END PGP SIGNATURE-----
Merge tag 'at91-4.20-drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/at91/linux into next/drivers
AT91 drivers for 4.20
- use struct_size in atmel-ebi
* tag 'at91-4.20-drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/at91/linux:
memory: atmel-ebi: Use struct_size() in devm_kzalloc()
Signed-off-by: Olof Johansson <olof@lixom.net>
It is a serious driver defect to enable MSI or MSI-X more than once. Doing
so may panic the kernel as in the stack trace below:
Call Trace:
sysfs_add_one+0xa5/0xd0
create_dir+0x7c/0xe0
sysfs_create_subdir+0x1c/0x20
internal_create_group+0x6d/0x290
sysfs_create_groups+0x4a/0xa0
populate_msi_sysfs+0x1cd/0x210
pci_enable_msix+0x31c/0x3e0
igbuio_pci_open+0x72/0x300 [igb_uio]
uio_open+0xcc/0x120 [uio]
chrdev_open+0xa1/0x1e0
[...]
do_sys_open+0xf3/0x1f0
SyS_open+0x1e/0x20
system_call_fastpath+0x16/0x1b
---[ end trace 11042e2848880209 ]---
Kernel panic - not syncing: stack-protector: Kernel stack is corrupted in: ffffffffa056b4fa
We want to keep the WARN_ON() and stack trace so the driver can be fixed,
but we can avoid the kernel panic by returning an error. We may still get
warnings like this:
Call Trace:
pci_enable_msix+0x3c9/0x3e0
igbuio_pci_open+0x72/0x300 [igb_uio]
uio_open+0xcc/0x120 [uio]
chrdev_open+0xa1/0x1e0
[...]
do_sys_open+0xf3/0x1f0
SyS_open+0x1e/0x20
system_call_fastpath+0x16/0x1b
------------[ cut here ]------------
WARNING: at fs/sysfs/dir.c:526 sysfs_add_one+0xa5/0xd0()
sysfs: cannot create duplicate filename '/devices/pci0000:00/0000:00:03.0/0000:01:00.1/msi_irqs'
Signed-off-by: Tonghao Zhang <xiangxia.m.yue@gmail.com>
[bhelgaas: changelog, fix patch whitespace, remove !!]
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
When an AF_XDP UMEM is attached to any of the Rx rings, we disallow a
user to change the number of descriptors via e.g. "ethtool -G IFNAME".
Otherwise, the size of the stash/reuse queue can grow unbounded, which
would result in OOM or leaking userspace buffers.
Signed-off-by: Björn Töpel <bjorn.topel@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Outstanding Rx descriptors are temporarily stored on a stash/reuse
queue. When/if the HW rings comes up again, entries from the stash are
used to re-populate the ring.
The latter required some restructuring of the allocation scheme for
the AF_XDP zero-copy implementation. There is now a fast, and a slow
allocation. The "fast allocation" is used from the fast-path and
obtains free buffers from the fill ring and the internal recycle
mechanism. The "slow allocation" is only used in ring setup, and
obtains buffers from the fill ring and the stash (if any).
Signed-off-by: Björn Töpel <bjorn.topel@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
XSK UMEM is strongly single producer single consumer so reuse of
frames is challenging. Add a simple "stash" of FILL packets to
reuse for drivers to optionally make use of. This is useful
when driver has to free (ndo_stop) or resize a ring with an active
AF_XDP ZC socket.
Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
When the zero-copy enabled XDP Tx ring is torn down, due to
configuration changes, outstanding frames on the hardware descriptor
ring are queued on the completion ring.
The completion ring has a back-pressure mechanism that will guarantee
that there is sufficient space on the ring.
Signed-off-by: Björn Töpel <bjorn.topel@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
msglen parameter seems to be unused in several virtchnl function.
This patch removes it from signatures of those functions.
Signed-off-by: Patryk Małek <patryk.malek@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
When isup is false meaning that interface is going to shut down
set new speed to 0 to avoid double 'NIC Link is Down' messages.
Signed-off-by: Sergey Nemov <sergey.nemov@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Set valid umem bit on DEVX commands that use umem.
This will enforce the umem usage by the firmware and not the 'pas' info.
Signed-off-by: Yishai Hadas <yishaih@mellanox.com>
Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
Set uid as part of TD commands so that the firmware can
manage the TD object in a secured way.
Signed-off-by: Yishai Hadas <yishaih@mellanox.com>
Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
Set uid as part of XRCD commands so that the firmware can manage the
XRCD object in a secured way.
That will enable using an XRCD that was created by verbs application
to be used by the DEVX flow in case the uid is equal.
Signed-off-by: Yishai Hadas <yishaih@mellanox.com>
Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
Set uid as part of CQ creation so that the firmware can manage the
CQ object in a secured way.
The uid for the destroy and the modify commands is set by mlx5_core.
This will enable using a CQ that was created by verbs application to
be used by the DEVX flow in case the uid is equal.
Signed-off-by: Yishai Hadas <yishaih@mellanox.com>
Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
Set uid as part of PD allocation, this uid is used for other mlx5
objects upon calling the firmware.
Signed-off-by: Yishai Hadas <yishaih@mellanox.com>
Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
Set uid as part of RQT commands so that the firmware can manage the
RQT object in a secured way.
That will enable using an RQT that was created by verbs application
to be used by the DEVX flow in case the uid is equal.
Signed-off-by: Yishai Hadas <yishaih@mellanox.com>
Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
Set uid as part of TIS commands so that the firmware can manage the
TIS object in a secured way.
That will enable using a TIS that was created by verbs application
to be used by the DEVX flow in case the uid is equal.
Signed-off-by: Yishai Hadas <yishaih@mellanox.com>
Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>