Commit graph

798,688 commits

Author SHA1 Message Date
Jason Yan
437207d369 scsi: libsas: check the ata device status by ata_dev_enabled()
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>
2018-09-25 21:20:23 -04:00
Jason Yan
32c850bf58 scsi: libsas: always unregister the old device if going to discover new
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>
2018-09-25 21:20:23 -04:00
Jason Yan
640208a1c9 scsi: libsas: make the lldd_port_deformed method optional
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>
2018-09-25 21:20:23 -04:00
Jason Yan
986d7dbc41 scsi: libsas: delete dead code in scsi_transport_sas.c
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>
2018-09-25 21:20:23 -04:00
Colin Ian King
6868aa76dc scsi: megaraid: fix spelling mistake "maibox" -> "mailbox"
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>
2018-09-25 20:59:27 -04:00
Nathan Chancellor
adb11023a5 scsi: FlashPoint: Remove unnecessary parentheses
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>
2018-09-25 20:45:53 -04:00
zhong jiang
048a864e53 scsi: hpsa: Use vmemdup_user to replace the open code
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>
2018-09-25 20:44:21 -04:00
YueHaibing
7d20b6a272 nfsd: remove set but not used variable 'dirp'
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>
2018-09-25 20:35:13 -04:00
Olga Kornievskaia
e0639dc580 NFSD introduce async copy feature
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>
2018-09-25 20:34:54 -04:00
Olga Kornievskaia
885e2bf3ea NFSD OFFLOAD_CANCEL xdr
Signed-off-by: Olga Kornievskaia <kolga@netapp.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
2018-09-25 20:34:54 -04:00
Olga Kornievskaia
6308bc98e8 NFSD OFFLOAD_STATUS xdr
Signed-off-by: Olga Kornievskaia <kolga@netapp.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
2018-09-25 20:34:54 -04:00
Olga Kornievskaia
9eb190fca8 NFSD CB_OFFLOAD xdr
Signed-off-by: Olga Kornievskaia <kolga@netapp.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
2018-09-25 20:34:54 -04:00
Yasha Cherikovsky
c55213eac2
MIPS/head: Store ELF appended dtb in a global variable too
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
2018-09-25 16:27:24 -07:00
Yasha Cherikovsky
62a83c55ea
MIPS/head: Add comments after #endif and #else
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
2018-09-25 16:27:19 -07:00
Susobhan Dey
bb830add19 nvme: properly propagate errors in nvme_mpath_init
Signed-off-by: Susobhan Dey <susobhan.dey@gmail.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
2018-09-25 16:21:40 -07:00
Christoph Hellwig
1a0afc14b5 Revert "dma-mapping: clear dev->dma_ops in arch_teardown_dma_ops"
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>
2018-09-25 15:12:26 -07:00
Christoph Hellwig
974c24c5be dma-mapping: add the missing ARCH_HAS_SYNC_DMA_FOR_CPU_ALL declaration
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>
2018-09-25 15:11:58 -07:00
Doug Ledford
c6ce580716 RDMA/umem: Fix potential addition overflow
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>
2018-09-25 15:19:06 -06:00
Doug Ledford
3312d1c6bd RDMA/umem: Minor optimizations
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>
2018-09-25 15:19:06 -06:00
Parav Pandit
5c5702e259 RDMA/core: Set right entry state before releasing reference
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>
2018-09-25 15:01:09 -06:00
Zhao Qiang
96fc74333f soc: fsl: qe: Fix copy/paste bug in ucc_get_tdm_sync_shift()
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>
2018-09-25 13:57:26 -07:00
Alexandre Belloni
64e9e22e68 soc: fsl: qbman: qman: avoid allocating from non existing gen_pool
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>
2018-09-25 13:57:25 -07:00
Olof Johansson
0faa7d1b86 AT91 defconfig for 4.20
- addition of sama5 I2S
  - addition of generic ADC resistive touchscreen
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEXx9Viay1+e7J/aM4AyWl4gNJNJIFAluqEaMACgkQAyWl4gNJ
 NJLrixAAjUI+vQk0GkIALkR9xHKNKIkDvhq3Q5FDVpG/GkUsmtlk0ahxiGGX641I
 Dth99wGxVQK8qvWWa+F3byf5c/kZDZmF/+mf4MMfAwyESxQpGv0JW0nerpKBjm12
 x+3x6xu5iuNhMjPvu8gWHetECKP5LWlcn47ibIpvXAKn7EcmxmkaC9PJFFNleyXH
 ZqDZl+89B2kaGSkREw/aS9NAxZ0iquyjWC9S6rATxwlB0HkxRNRy7KcrRzERGN8n
 YA4eZELM+6xU4GE31Wng+tOb1TxwWzmnmyFrKoqYwAiXSxD/ebLX9zZTPDkdfZzY
 v2Uyqw0Yiyu9ktosjodOPFj9M4D+kPELcxUH7fDLB3EmRv3iXXOILLiEUWRdlqzi
 TYd2q2oIA+c1SOEeEBZ/83fQZNQXPzOSZnKUE2enjnCsCzTZw8fjYqA5w9ONqBhB
 D5QIyYSYqNPVcNFCvxWmMPQFCsfNDG2f4Q0ilEXjSMasuUxAi6yyjO/LrzijNpc5
 TptoM6Csv1Y3IEeaOiE1Yav0Ty/RV9iWAZrc2cy0J2F5zhLQa2mSHcjh3iF+Uq18
 LISmNq66/h/EQBNon99/Djp2XrCx1cZD4Um/Z9VTtKJex2IT7zoH4DDcjv1peowv
 Nlt1Fmmx33fm8xcQEPQH01z9JYIKI/gv1bzhQ5mVJESIspWN8AE=
 =74Nn
 -----END PGP SIGNATURE-----

Merge tag 'at91-4.20-defconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/at91/linux into next/defconfig

AT91 defconfig for 4.20

 - addition of sama5 I2S
 - addition of generic ADC resistive touchscreen

* tag 'at91-4.20-defconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/at91/linux:
  ARM: multi_v7_defconfig: add Atmel I2S driver
  ARM: configs: at91: Add I2S driver to sama5
  ARM: multi_v7_defconfig: add generic resistive touchscreen
  ARM: configs: at91: add generic resistive touchscreen to sama5

Signed-off-by: Olof Johansson <olof@lixom.net>
2018-09-25 13:53:00 -07:00
Olof Johansson
1a677ff4ce 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
 -----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>
2018-09-25 13:51:16 -07:00
Yishai Hadas
e8ef090a61 IB/mlx5: Destroy the DEVX object upon error flow
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>
2018-09-25 14:49:17 -06:00
Olof Johansson
a64240a625 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.
 -----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>
2018-09-25 13:49:08 -07:00
Olof Johansson
47188a858a SoCFPGA DTS updates for v4.20, part 2
- Fix I2C bus unit-address warning with new DTC checks
 - Add reset properties for timers
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABAgAGBQJbqP/GAAoJEBmUBAuBoyj0m6wP/i5dZ0d/Gpv0JjxbGbBZ/naQ
 88hjSjEp5vIWriuLNA+rfnCkfure/iNj4hjEsq09/Y4zjS2lBqm+WLzifDXWbQ0B
 QEEAJVECm4lRmbnW8Qb3lxWWM9nfVgFPJll3CdB5b/6z8pfM+nisaa39+9urxkkF
 XdOW84Aatjtfw+PDaOpBhIONCU0MOfhvlHiQrZXX2uvGI5qF5Y4SORujLHA8Z4z1
 8oJLj9o6amGo6Vu8g2Zr75obZ3my5QVesLSTAfG5sbtUxikRKdx5iMnEo5aXJbqI
 39TnO4HfefBq2kUL5H6i7SyLG0+u6UJGCe+16Y1vRDSQfUVpeJk9q8wOZfztM5rm
 JYK6RiWYgzySamFjkSVxMYc/DQIg8tscDRhCFwlPb1AxE4w3dQRBgvttSl+WFWKu
 1SMhPke/xOyXqZOzGmlcYHtc7gYjS5vG+mMkM3tJ5FHpd5O4Fuk1EpNoYnIZ5bxZ
 F/ky0mbpnZ9qArYL2btCKHoH8rSqr/nCyw9QMlRc2R9WxPTJzoB1GvmP9dI9J2Sc
 u/tc+6SQgIR02Qb5mtLVKP08jv5D78fSZlJ1mr0e055onSTZwFymPw3PcHt0X+R0
 kCRdTLA7ahkxQZJmGpOvu6181TyS6604iq3kF7EKBJe8UBlCwmaT1bGrBDlPLwsm
 wzdQvONgRWBfW1wXTJAA
 =DFl8
 -----END PGP SIGNATURE-----

Merge tag 'socfpga_updates_for_v4.20_part2' of git://git.kernel.org/pub/scm/linux/kernel/git/dinguyen/linux into next/dt

SoCFPGA DTS updates for v4.20, part 2
- Fix I2C bus unit-address warning with new DTC checks
- Add reset properties for timers

* tag 'socfpga_updates_for_v4.20_part2' of git://git.kernel.org/pub/scm/linux/kernel/git/dinguyen/linux:
  ARM: dts: socfpga: add timer resets for SoCFPGA platform
  ARM: dts: socfpga: Fix I2C bus unit-address error

Signed-off-by: Olof Johansson <olof@lixom.net>
2018-09-25 13:48:25 -07:00
Mark Bloch
a9360abd3d IB/uverbs: Free uapi on destroy
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>
2018-09-25 14:47:33 -06:00
Olof Johansson
200a00d85c STi DT update:
_ 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>
2018-09-25 13:40:44 -07:00
Olof Johansson
28544e611b AT91 DT for 4.20
- 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>
2018-09-25 13:38:31 -07:00
Nathan Chancellor
1b571086e8 iw_cxgb4: Use proper enumerated type in c4iw_bar2_addrs
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>
2018-09-25 14:37:17 -06:00
Mark Bloch
0430e74f9f RDMA/mlx5: Remove superfluous version print
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>
2018-09-25 14:36:50 -06:00
Colin Ian King
e3b00e9c30 IB/usnic: fix spelling mistake "unvalid" -> "invalid"
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>
2018-09-25 14:35:06 -06:00
Olof Johansson
d7f59da42c AT91 SoC for 4.20
- rename MAINTAINERS entries and change maintainers
  - two pm cleanups
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEXx9Viay1+e7J/aM4AyWl4gNJNJIFAluqDi4ACgkQAyWl4gNJ
 NJKhgA/+MkjWntscudEQw4J6Yo+vvGNy62yHDvZu1EGl/mf6W2jxzjhpjHPMUCkk
 7AH+Frvhff0EkluiclZ3QgIFPvmFWBRT5oOhWF3cnKta1awFn/fwyRsAW1cXeWUL
 WxIUuiOiUA+47pLOwFAgwKeZDBzr34vXuRKJmt0HN4DsUd8tu71ma1VrKj2s2oSI
 7hFIyFwWf2yVI2C85G5NV/84KxmdvTBZjVYUx2hDG7lRa7PHylo2RXkU53kLP8bn
 e+69F+olK+q2zMUkg8RcaDf2lYdDiPT1ycdcCKtn4xDFkx6Z0cJkAVRJ0NuTZDVn
 zLINQuCzAwL0BmxWMwM/5XX5Hks+z6HTqgMsmIy6BoiIS+shVkXBD6w9mIb6S5MP
 Lj7pfXWOlivlexDo1k5k6O8AbzRMCBifpNKe1HXYd49QqVx//h8yWBfab0E4JtBV
 ZeOKZruehvrwr+No4WgMgwmFld+oJ12vwx2xZqhxgLpyR7yp7TaoSkw0nKrvAvfc
 XBhseHBDTGlbQbn4wFnpNxTcFrqMT4++sjsAU/FWj81JGZszQpwztC8MJEeBq/yF
 xlUAiPhVwOdcZzdbHZKfyRS6yHBzBr4FdOdKrRlb0Jrxey2/qAXK/9scgbaMakAv
 s6Odp8zCsO4hDBRKDKqw+8m7Id+KaPLbzs5urdaoC6FZLMWc/78=
 =whZ3
 -----END PGP SIGNATURE-----

Merge tag 'at91-4.20-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/at91/linux into next/soc

AT91 SoC for 4.20

 - rename MAINTAINERS entries and change maintainers
 - two pm cleanups

* tag 'at91-4.20-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/at91/linux:
  MAINTAINERS: sdhci: move the Microchip entry to proper location
  MAINTAINERS: move former ATMEL entries to proper MICROCHIP location
  MAINTAINERS: remove the / ATMEL string from MICROCHIP entries
  MAINTAINERS: iio: add co-maintainer to SAMA5D2-compatible ADC driver
  MAINTAINERS: pwm: add entry for Microchip pwm driver
  MAINTAINERS: dmaengine: add files to Microchip dma entry
  MAINTAINERS: USB: change maintainer for Microchip USBA gadget driver
  MAINTAINERS: ASoC: change maintainer for Microchip ALSA drivers
  MAINTAINERS: media: change Microchip ISI, ISC maintainers
  MAINTAINERS: update entry for Microchip NAND driver support
  MAINTAINERS: ARM: at91: add co-maintainer for ARM/Microchip
  ARM: at91: pm: call put_device instead of of_node_put in at91_pm_config_ws
  ARM: at91: pm: remove pm_bu initialization in at91_pm_backup_init()

Signed-off-by: Olof Johansson <olof@lixom.net>
2018-09-25 13:33:02 -07:00
Nathan Chancellor
b5bb425871 arm64: percpu: Initialize ret in the default case
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>
2018-09-25 13:26:48 -07:00
Olof Johansson
1e25ee6d80 AT91 drivers for 4.20
- 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>
2018-09-25 13:19:52 -07:00
Tonghao Zhang
4c1ef72e9b PCI/MSI: Warn and return error if driver enables MSI/MSI-X twice
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>
2018-09-25 15:17:39 -05:00
Björn Töpel
3ab52af58f i40e: disallow changing the number of descriptors when AF_XDP is on
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>
2018-09-25 13:16:19 -07:00
Björn Töpel
411dc16ff1 i40e: clean zero-copy XDP Rx ring on shutdown/reset
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>
2018-09-25 13:15:16 -07:00
Jakub Kicinski
f5bd91388e net: xsk: add a simple buffer reuse queue
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>
2018-09-25 13:13:15 -07:00
Björn Töpel
9dbb137045 i40e: clean zero-copy XDP Tx ring on shutdown/reset
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>
2018-09-25 13:10:24 -07:00
Patryk Małek
679b05c053 i40e: Remove unused msglen parameter from virtchnl functions
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>
2018-09-25 13:08:42 -07:00
Sergey Nemov
fd835129ab i40e: fix double 'NIC Link is Down' messages
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>
2018-09-25 13:06:50 -07:00
Yishai Hadas
ba1a057da2 IB/mlx5: Set valid umem bit on DEVX
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>
2018-09-25 14:06:38 -06:00
Yishai Hadas
d2d19121ae IB/mlx5: Set uid as part of TD commands
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>
2018-09-25 14:06:38 -06:00
Yishai Hadas
d00614c057 IB/mlx5: Set uid as part of XRCD commands
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>
2018-09-25 14:06:04 -06:00
Yishai Hadas
cf50a7863b IB/mlx5: Set uid as part of CQ creation
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>
2018-09-25 14:06:04 -06:00
Yishai Hadas
58895f0d18 IB/mlx5: Set uid upon PD allocation
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>
2018-09-25 14:06:04 -06:00
Yishai Hadas
5deba86ee2 IB/mlx5: Set uid as part of RQT commands
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>
2018-09-25 14:06:04 -06:00
Yishai Hadas
1cd6dbd32f IB/mlx5: Set uid as part of TIS commands
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>
2018-09-25 14:06:04 -06:00