Commit graph

824682 commits

Author SHA1 Message Date
Jiri Pirko
1eadbd3ab9 selftests: spectrum-2: Extend and move trace helpers
Allow to specify number of trace hits and move helpers
to the beginning of the file.

Signed-off-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: Ido Schimmel <idosch@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2019-01-30 10:00:40 -08:00
Jiri Pirko
a97cfe4de1 mlxsw: spectrum_acl: Add C-TCAM spill tracepoint
Add some visibility to the rule addition process and trace whenever rule
spilled into C-TCAM.

Signed-off-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: Ido Schimmel <idosch@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2019-01-30 10:00:40 -08:00
Jiri Pirko
cb56e21467 mlxsw: spectrum_acl: Include delta bits into hashtable key
Currently only ERP mask masked bits in key are considered for
the hashtable key. That leads to false negative collisions
and fallbacks to C-TCAM in case two keys differ only in delta bits.

Fix this by taking full encoded key as a hashtable key,
including delta bits.

Reported-by: Nir Dotan <nird@mellanox.com>
Signed-off-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: Ido Schimmel <idosch@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2019-01-30 10:00:40 -08:00
Chris Wilson
6e11ea9de9 drm/amdgpu: Transfer fences to dmabuf importer
amdgpu only uses shared-fences internally, but dmabuf importers rely on
implicit write hazard tracking via the reservation_object.fence_excl.
For example, the importer use the write hazard for timing a page flip to
only occur after the exporter has finished flushing its write into the
surface. As such, on exporting a dmabuf, we must either flush all
outstanding fences (for we do not know which are writes and should have
been exclusive) or alternatively create a new exclusive fence that is
the composite of all the existing shared fences, and so will only be
signaled when all earlier fences are signaled (ensuring that we can not
be signaled before the completion of any earlier write).

v2: reservation_object is already locked by amdgpu_bo_reserve()
v3: Replace looping with get_fences_rcu and special case the promotion
of a single shared fence directly to an exclusive fence, bypassing the
fence array.
v4: Drop the fence array ref after assigning to reservation_object

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=107341
Testcase: igt/amd_prime/amd-to-i915
References: 8e94a46c17 ("drm/amdgpu: Attach exclusive fence to prime exported bo's. (v5)")
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Alex Deucher <alexander.deucher@amd.com>
Cc: "Christian König" <christian.koenig@amd.com>
Reviewed-by: "Christian König" <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2019-01-30 12:52:44 -05:00
Linus Torvalds
1c0490ce90 IOMMU Fixes for Linux v5.0-rc4
A few more fixes this time:
 
 	- Two patches to fix the error path of the map_sg implementation
 	  of the AMD IOMMU driver.
 
 	- Also a missing IOTLB flush is fixed in the AMD IOMMU driver.
 
 	- Memory leak fix for the Intel IOMMU driver.
 
 	- Fix a regression in the Mediatek IOMMU driver which caused
 	  device initialization to fail (seen as broken HDMI output).
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2
 
 iQIcBAABAgAGBQJcUbw6AAoJECvwRC2XARrjlhQP/1tvg9nam673Otx45FnmvKUk
 7Bu5oLRXo67zBA9NqYZKaENFLTzb9TneyalSoiMwWfZTSaLTFgleieeT6iij1uU+
 D4TEpXF7Jc87Zm7pPASuWHGEu3XR0dKja4pukVHnH0vRXlOhKsP6MrmEUj2+5ZrJ
 RBXSX4a9Q6Ros2OxjnxJNxo8oekJQV0TiKtafzSUqPHnF4QLHLisuCe3z2DLwtsg
 NHwis0Fgrb9ljM+pxEBYmeG9UXxfdvG2wlmYwrJvhoK+lmsjq1HjG5afxyMYvHSU
 daK+mBvZ4HHLCe5oVY+BaMo8De1g1spqT2klWZecgr0FDXQdovdkYipSun6TZO/i
 2dv8QvMkCwFwLfReJj1AV6qf83zR3Sn/rb4MKqo0/K9xlHc3WxVoN20Tcikwg6wN
 5bPucgNkpavJxiODjfd6iiBC0K7SAOnvkiACySSXe5daL/Oi9c9q6izy7Z1z1D7q
 UomvUCGyIj01drG+YC9m1eH4dqILTiDJGA5mrdtoAEDFYwYtp+354fF3u0x2sCsb
 g87KV4RdAMuXRKWdxdsfw1BFNliHo4QcGDQk54bwN2t4X6hkOiq9jLMVcm4R+Fwy
 IcCoS0BXVdbD0PZXeb2M4CHkxsV7AIU7Drj2/fb4pmjuMb22Z7228yRCsIIYzGcM
 qq2AnNS1J0Z9BsxIItWO
 =kSY5
 -----END PGP SIGNATURE-----

Merge tag 'iommu-fixes-v5.0-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu

Pull IOMMU fixes from Joerg Roedel:
 "A few more fixes this time:

   - Two patches to fix the error path of the map_sg implementation of
     the AMD IOMMU driver.

   - Also a missing IOTLB flush is fixed in the AMD IOMMU driver.

   - Memory leak fix for the Intel IOMMU driver.

   - Fix a regression in the Mediatek IOMMU driver which caused device
     initialization to fail (seen as broken HDMI output)"

* tag 'iommu-fixes-v5.0-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu:
  iommu/amd: Fix IOMMU page flush when detach device from a domain
  iommu/mediatek: Use correct fwspec in mtk_iommu_add_device()
  iommu/vt-d: Fix memory leak in intel_iommu_put_resv_regions()
  iommu/amd: Unmap all mapped pages in error path of map_sg
  iommu/amd: Call free_iova_fast with pfn in map_sg
2019-01-30 09:30:03 -08:00
Linus Torvalds
877ef51d53 GPIO fixes for the v5.0 series:
- Fix timestamps on nested IRQs
 - Handle IRQs properly in multiple instances of PCF857x
 - Use the right data register and IRQ type setting in the
   Spreadtrum GPIO driver
 - Let the value argument work properly when setting direction
   in the Altera GPIO driver
 - Mask interrupts properly in the vf610 driver
 -----BEGIN PGP SIGNATURE-----
 
 iQIcBAABAgAGBQJcUWhGAAoJEEEQszewGV1z4YkQAITz3B6BAgXLjk0zKvJldjD8
 gCt0BL9ZcwCJAinJjlAGT4DVQyZzzwd1jEXCeZli0KDDu8TJPamr3S6BXRJ4YP49
 cC/k5kz61N1v1I5u9n6VoYd644BdBgn89JyRZ3SpKFf/zQHN73FhasA3yacQB2PN
 ZvW/2feGpXEkXNJ4472kbsayz3e8gEnyLB8xH/SPcwLL/gHWOCuTuze6733rv8GN
 oqqR0Ghxn4cR4gOHcoF10Z9PXMqYRIrltQlOlFQDsioKdfWGJEQWoF9ilVjuZ/fr
 NuHDa5von0ZGwqsJMs6unUODraQCr6P9UEKVULrrJprcWW+XUyQ7pgM8RjDGfqfJ
 r8GVn3f30JqsJGvx6fthKx0w4e6aZlHhBkremQELSXtvEcAp3DUCRxA6y+kvht6e
 QvhTg6SlxpLf0BfwDxmLwnL/Jy7vTXex13DzRN2fntax93dIHLGaydbhQPSN3dXg
 Mu+hySBY4kOoX175QKorvSfg93xbxpT8mCuaWi8+NsNq2R2I3Vhjoy17O0AZ9vwa
 36CtN0BowJG8lD8ociO3F4ivUiqkuT/Gp2GqSy+St0gPbLfdZq4uznpXOTmLWSzJ
 2yBKbhYVzCaiTjRY3E2T9pSXs8Yesa89Y5Maq9xhkKAi6vXoujRUfDAyT4YrO2Ji
 318DMBIpy+pa2LuX/BnJ
 =2T7w
 -----END PGP SIGNATURE-----

Merge tag 'gpio-v5.0-3' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio

Pull GPIO fixes from Linus Walleij:
 "Here is a bunch of GPIO fixes for the v5.0 series. I was helped out by
  Bartosz in collecting these fixes, for which I am very grateful, the
  biggest achievement in GPIO right now is work distribution.

  There is one serious core fix (timestamping) and a bunch of driver
  fixes:

   - Fix timestamps on nested IRQs

   - Handle IRQs properly in multiple instances of PCF857x

   - Use the right data register and IRQ type setting in the Spreadtrum
     GPIO driver

   - Let the value argument work properly when setting direction in the
     Altera GPIO driver

   - Mask interrupts properly in the vf610 driver"

* tag 'gpio-v5.0-3' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio:
  gpio: vf610: Mask all GPIO interrupts
  gpio: altera-a10sr: Set proper output level for direction_output
  gpio: sprd: Fix incorrect irq type setting for the async EIC
  gpio: sprd: Fix the incorrect data register
  gpiolib: fix line event timestamps for nested irqs
  gpio: pcf857x: Fix interrupts on multiple instances
2019-01-30 09:23:21 -08:00
Eric W. Biederman
532b618bdf btrfs: On error always free subvol_name in btrfs_mount
The subvol_name is allocated in btrfs_parse_subvol_options and is
consumed and freed in mount_subvol.  Add a free to the error paths that
don't call mount_subvol so that it is guaranteed that subvol_name is
freed when an error happens.

Fixes: 312c89fbca ("btrfs: cleanup btrfs_mount() using btrfs_mount_root()")
Cc: stable@vger.kernel.org # v4.19+
Reviewed-by: Nikolay Borisov <nborisov@suse.com>
Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
2019-01-30 18:16:47 +01:00
David Sterba
c7cc64a985 btrfs: clean up pending block groups when transaction commit aborts
The fstests generic/475 stresses transaction aborts and can reveal
space accounting or use-after-free bugs regarding block goups.

In this case the pending block groups that remain linked to the
structures after transaction commit aborts in the middle.

The corrupted slabs lead to failures in following tests, eg. generic/476

  [ 8172.752887] BUG: unable to handle kernel NULL pointer dereference at 0000000000000058
  [ 8172.755799] #PF error: [normal kernel read fault]
  [ 8172.757571] PGD 661ae067 P4D 661ae067 PUD 3db8e067 PMD 0
  [ 8172.759000] Oops: 0000 [#1] PREEMPT SMP
  [ 8172.760209] CPU: 0 PID: 39 Comm: kswapd0 Tainted: G        W         5.0.0-rc2-default #408
  [ 8172.762495] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.11.2-0-gf9626cc-prebuilt.qemu-project.org 04/01/2014
  [ 8172.765772] RIP: 0010:shrink_page_list+0x2f9/0xe90
  [ 8172.770453] RSP: 0018:ffff967f00663b18 EFLAGS: 00010287
  [ 8172.771184] RAX: 0000000000000000 RBX: ffff967f00663c20 RCX: 0000000000000000
  [ 8172.772850] RDX: 0000000000000000 RSI: 0000000000000001 RDI: ffff8c0620ab20e0
  [ 8172.774629] RBP: ffff967f00663dd8 R08: 0000000000000000 R09: 0000000000000000
  [ 8172.776094] R10: ffff8c0620ab22f8 R11: ffff8c063f772688 R12: ffff967f00663b78
  [ 8172.777533] R13: ffff8c063f625600 R14: ffff8c063f625608 R15: dead000000000200
  [ 8172.778886] FS:  0000000000000000(0000) GS:ffff8c063d400000(0000) knlGS:0000000000000000
  [ 8172.780545] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
  [ 8172.781787] CR2: 0000000000000058 CR3: 000000004e962000 CR4: 00000000000006f0
  [ 8172.783547] Call Trace:
  [ 8172.784112]  shrink_inactive_list+0x194/0x410
  [ 8172.784747]  shrink_node_memcg.constprop.85+0x3a5/0x6a0
  [ 8172.785472]  shrink_node+0x62/0x1e0
  [ 8172.786011]  balance_pgdat+0x216/0x460
  [ 8172.786577]  kswapd+0xe3/0x4a0
  [ 8172.787085]  ? finish_wait+0x80/0x80
  [ 8172.787795]  ? balance_pgdat+0x460/0x460
  [ 8172.788799]  kthread+0x116/0x130
  [ 8172.789640]  ? kthread_create_on_node+0x60/0x60
  [ 8172.790323]  ret_from_fork+0x24/0x30
  [ 8172.794253] CR2: 0000000000000058

or accounting errors at umount time:

  [ 8159.537251] WARNING: CPU: 2 PID: 19031 at fs/btrfs/extent-tree.c:5987 btrfs_free_block_groups+0x3d5/0x410 [btrfs]
  [ 8159.543325] CPU: 2 PID: 19031 Comm: umount Tainted: G        W         5.0.0-rc2-default #408
  [ 8159.545472] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.11.2-0-gf9626cc-prebuilt.qemu-project.org 04/01/2014
  [ 8159.548155] RIP: 0010:btrfs_free_block_groups+0x3d5/0x410 [btrfs]
  [ 8159.554030] RSP: 0018:ffff967f079cbde8 EFLAGS: 00010206
  [ 8159.555144] RAX: 0000000001000000 RBX: ffff8c06366cf800 RCX: 0000000000000000
  [ 8159.556730] RDX: 0000000000000002 RSI: 0000000000000001 RDI: ffff8c06255ad800
  [ 8159.558279] RBP: ffff8c0637ac0000 R08: 0000000000000001 R09: 0000000000000000
  [ 8159.559797] R10: 0000000000000000 R11: 0000000000000001 R12: ffff8c0637ac0108
  [ 8159.561296] R13: ffff8c0637ac0158 R14: 0000000000000000 R15: dead000000000100
  [ 8159.562852] FS:  00007f7f693b9fc0(0000) GS:ffff8c063d800000(0000) knlGS:0000000000000000
  [ 8159.564839] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
  [ 8159.566160] CR2: 00007f7f68fab7b0 CR3: 000000000aec7000 CR4: 00000000000006e0
  [ 8159.567898] Call Trace:
  [ 8159.568597]  close_ctree+0x17f/0x350 [btrfs]
  [ 8159.569628]  generic_shutdown_super+0x64/0x100
  [ 8159.570808]  kill_anon_super+0x14/0x30
  [ 8159.571857]  btrfs_kill_super+0x12/0xa0 [btrfs]
  [ 8159.573063]  deactivate_locked_super+0x29/0x60
  [ 8159.574234]  cleanup_mnt+0x3b/0x70
  [ 8159.575176]  task_work_run+0x98/0xc0
  [ 8159.576177]  exit_to_usermode_loop+0x83/0x90
  [ 8159.577315]  do_syscall_64+0x15b/0x180
  [ 8159.578339]  entry_SYSCALL_64_after_hwframe+0x49/0xbe

This fix is based on 2 Josef's patches that used sideefects of
btrfs_create_pending_block_groups, this fix introduces the helper that
does what we need.

CC: stable@vger.kernel.org # 4.4+
CC: Josef Bacik <josef@toxicpanda.com>
Reviewed-by: Nikolay Borisov <nborisov@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
2019-01-30 18:16:47 +01:00
Al Viro
92900e5160 btrfs: fix potential oops in device_list_add
alloc_fs_devices() can return ERR_PTR(-ENOMEM), so dereferencing its
result before the check for IS_ERR() is a bad idea.

Fixes: d1a6300282 ("btrfs: add members to fs_devices to track fsid changes")
Reviewed-by: Nikolay Borisov <nborisov@suse.com>
Reviewed-by: Anand Jain <anand.jain@oracle.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
2019-01-30 18:16:40 +01:00
Arnd Bergmann
9ba24e9ca7 ASPEED device tree updates for 5.1
- New machine: Inspur ON5263M5, an Intel Xeon OCP compute node
 
  - Misc device tree updates from the OpenBMC project
 
  - #iterrupt-cells fix for GPIO controller
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEE+nHMAt9PCBDH63wBa3ZZB4FHcJ4FAlxRJCwACgkQa3ZZB4FH
 cJ7RwQ//b+Gd0Y/BqmaLj6SaSid100qvISm5se4FiGy23hvZ3F6cjcjO7AF75IdA
 X/q5n57MBEvADPlhr4ykhnf8ToRUK88BD20AWeiKDW08D34gsrmgkgHjq8tTyTad
 6OKzr2GQgUeNOfQfCZLatbRRmJ+fOVUpJsm3DgeTkpYPk5SlcZj/kT0hdT9meSSj
 Ej5Fb/2H+DBVMGCroHw6R7B3LDSeC5ob0zvxqLkBed4j2J7GH5YAM36Dknn2KeUU
 Cy3ctMLoxEnuWYV1AzDCnpltm2t/BZO4bpN0mcdqe4wm342aTXsFATgbq2hE7bIE
 m90obfOLFlcqtkbGPm6kRveb8Kk3rOQnBmllPvDou64vtn7mkJj+2MSKlzdoQ31I
 p1We30NVWIaJud+howWN1R7mVnlaK8AkKLUD9GLu+QmjMdDJR4qv2Q1q+bh7a/nV
 +56EG3P5XUh2kV/zahvKNFWlKnrZGIWuImzhfaNbxRYrnsMWn1i/MCYykQnRJDN+
 kNKDz3RuTaz3DFLL+aLnv4R4sOicRTPenZaJRH4t8Z0UH4mVIkkhwbW9BV0WjiMj
 u9gMoHfVB4c86CZwxrKKN1STPw4ZLya2QSKP8dO9j65XucusxXlwERRH7LaDsU/O
 qVLjElJHjEHWijgSLWfDbEqzXdM3JH7jhePpdjnDp2YTR3+VC3k=
 =udij
 -----END PGP SIGNATURE-----

Merge tag 'aspeed-5.1-devicetree' of git://git.kernel.org/pub/scm/linux/kernel/git/joel/aspeed into arm/dt

ASPEED device tree updates for 5.1

 - New machine: Inspur ON5263M5, an Intel Xeon OCP compute node

 - Misc device tree updates from the OpenBMC project

 - #interrupt-cells fix for GPIO controller

* tag 'aspeed-5.1-devicetree' of git://git.kernel.org/pub/scm/linux/kernel/git/joel/aspeed:
  ARM: dts: aspeed: quanta-q71l: enable uart1
  ARM: dts: aspeed: quanta-q71l: enable lpc_ctrl node
  ARM: dts: aspeed: tiogapass: Add uarts for SoL
  ARM: dts: aspeed: tiogapass: Add LPC devices
  ARM: dts: aspeed: Add Inspur on5263m5 BMC
  ARM: dts: aspeed: tiogapass: Add sensors
  ARM: dts: aspeed: tiogapass: Enable KCS
  ARM: dts: aspeed: Add KCS support for LPC BMC
  ARM: dts: aspeed: Add #interrupt-cells property to gpio controllers
  ARM: dts: aspeed-palmetto: Add i2c OCC hwmon node
  ARM: dts: aspeed: stardragon4800: Add power supply

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2019-01-30 18:11:44 +01:00
Daniel Vetter
e57924d4ae drm/doc: Task to rename CMA helpers
I'm kinda fed up explaining why the have a confusing name :-)

v2: Fix typo that Eric Engestrom spotted.

Cc: Noralf Trønnes <noralf@tronnes.org>
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Acked-by: Noralf Trønnes <noralf@tronnes.org>
Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190129132153.28844-1-daniel.vetter@ffwll.ch
2019-01-30 18:02:10 +01:00
Daniel Vetter
77086014c8 drm/doc: fix VRR_ENABLED casing
Yes it's inconsitent with vrr_capable, but this is the actual uapi as
exercise by igt.

Fixes: ab7a664f7a ("drm: Document variable refresh properties")
Cc: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
Cc: Harry Wentland <harry.wentland@amd.com>
Cc: Pekka Paalanen <pekka.paalanen@collabora.com>
Cc: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190130163006.28945-3-daniel.vetter@ffwll.ch
2019-01-30 17:59:15 +01:00
Arnd Bergmann
0b03e47d52 Allwinner DT64 changes for 5.1
A few small improvements for the A64 this cycle:
 
   - ARM PMU added
   - Allwinner ARM architected timer workaround enabled
     This works around timer value wrapping found in the Allwinner
     implementation of the ARM architected timer.
 -----BEGIN PGP SIGNATURE-----
 
 iQJCBAABCgAsFiEE2nN1m/hhnkhOWjtHOJpUIZwPJDAFAlxMUGQOHHdlbnNAY3Np
 ZS5vcmcACgkQOJpUIZwPJDCGGxAAuUtNvuwQBrt++tyjDbyszNF2zJi36YCt6y0F
 /iUboYj/BC+vuAxoKxW9ZWlvo1LPT2imWX566VaozSh5ZyLLQDRdh+A7wz2muXZq
 S4/biqO56gLaFO/CXoDFfzgzQ5ukCNexW1rRFUYc0Yp6GcOboKgFOGliS6n2fMTF
 tz+JuY4txa2GL0Zfo+IFZvNl//4lZ9eoqBVIHW1vGbALVHpDdQCrs+lf2XVr8Kf2
 m4SyJVTFtvvtrRUZRnSIb6PhbzTuXOgdbwxEAYKSC+7i+y2AgvqlQljUWejckEow
 aP58Fpc7uVS8U5cGmctA3rsOQv5hWF/U13PZaSv6ddHs6PbMp3S07rnaFMJs7Ar7
 7Q6njNbS1Gig1r/Mt+gOwWHHd3njRFO26eQzl5JErAhdk0DPcYU62py0YMnmj+T9
 dFBrzSMuoI2T2KQxEwhv0+eXbWdr4cxQdL6nr7gtgqsLiVP46hXlOawWEfdKExdM
 gd+qVauSNhmADC42OxQKttwXLsp6I3B76277LPvaJ80OPhHKMBdFfovjSVSojava
 VLyxMCkZqIeQfZgXkHw8XELtJb1FEt3BxaZIUvSGsUuLOMHLuOs9ucIBIp0Zxy6I
 Ob95Or4SwihI4os7NU3fvhmXWaEAKA0Ouc+ESLCbyO0JArNwdV8FYMO+AVU/zvOR
 kizf2BU=
 =kZwf
 -----END PGP SIGNATURE-----

Merge tag 'sunxi-dt64-for-5.1' of git://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux into arm/dt

Allwinner DT64 changes for 5.1

A few small improvements for the A64 this cycle:

  - ARM PMU added
  - Allwinner ARM architected timer workaround enabled
    This works around timer value wrapping found in the Allwinner
    implementation of the ARM architected timer.

* tag 'sunxi-dt64-for-5.1' of git://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux:
  arm64: dts: allwinner: a64: Enable A64 timer workaround
  arm64: dts: allwinner: a64: Fix a typo
  arm64: dts: allwinner: a64: Add PMU node

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2019-01-30 17:57:55 +01:00
Honghui Zhang
b2fb5cc574 PCI: Rely on config space header type, not class code
The PCI configuration space header type tells us whether the device is a
bridge, a CardBus bridge, or a normal device, and defines the layout of the
rest of the header (PCI r3.0 sec 6.1, PCIe r4.0 sec 7.5.1.1.9).

When we rely on the header format, e.g., when we're dealing with bridge
windows, we should check the header type, not the class code.  The class
code is loosely related to the header type, but is often incorrect and the
spec doesn't actually require it to be related to the header format.

Suggested-by: Bjorn Helgaas <bhelgaas@google.com>
Signed-off-by: Honghui Zhang <honghui.zhang@mediatek.com>
[bhelgaas: changelog, keep the PCI_CLASS_BRIDGE_HOST check]
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
2019-01-30 10:57:08 -06:00
Arnd Bergmann
0f7be8f5bd Allwinner DT changes for 5.1
As usual, this is a random assortment of changes:
 
   - ARM PMU is enabled on the A10
   - The first usage of the PIO pinbank regulator supplies added,
     for the Bananapi
   - Broadcom-based Bluetooth enabled on the Bananapi M2 Magic and M2
     Ultra, using the serdev bindings
   - Video codec added for the A10
   - Display pipeline for the A23 added and enabled for the generic Q8
     tablets
 -----BEGIN PGP SIGNATURE-----
 
 iQJCBAABCgAsFiEE2nN1m/hhnkhOWjtHOJpUIZwPJDAFAlxMT8UOHHdlbnNAY3Np
 ZS5vcmcACgkQOJpUIZwPJDBJwBAA0oV72+9UecBbk+S/HNvSpPS7pL6qEPiMcLtQ
 6ucS8zAPvb5oc9TkEdsraddjBlGFppQjPa+fp+9hYMzdSGJflTrTmFdQwet25JT4
 WXn6dBpTUcdx5vPaDAq97ynStzl1Nwl9Gc/KBhNtSNlG6Z4Cyz3WplEODMpPsV32
 ffoGRVeox3kYJJveawXiUehQwGZfPvnA0y4Njr2M8UprhKLevEazYM5NBfvrwN0Z
 3ufHM8cOpfef6lPA9asZ5DK8w5YFENE3a0QcLTY+iBCYxXa1ir8zRg/F9hdUm21H
 dGbEdiQOvmSq3JBrZlYwvx1DF+NdTeKIBOsa3SNJccrFzSnZGHz9QJV73mlejNzF
 SAptA5vNJa3BtF5g6wKUJjIwFnWSglL7AozVZ/ns+bZi11efpK7iJdzQxyl6cAUS
 CcncLt5Ftr1uZZMsiCRDjN1g2wrJSJd6U3zIAYRSMwQIF0j0SNGrtG0kgVo113SQ
 Hy4lsdcfIkRMxeahziSBXl54JN/QLaPwlFMfZhFQ//0pC0eGhZrF/BKOSW2w2LQA
 PfJBf3h+VUWUSkjOc9EohHhlxFjd7FrHKXLYtMhcynHSFnTKUytDe6O6+hXm/f/e
 4sJm5L2mXc1Mk1jK+sAxbChXcgyWByxAVpWKytse8cMyfotrJAssKckMGRDUH1Dn
 CocWmC0=
 =WU3N
 -----END PGP SIGNATURE-----

Merge tag 'sunxi-dt-for-5.1' of git://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux into arm/dt

Allwinner DT changes for 5.1

As usual, this is a random assortment of changes:

  - ARM PMU is enabled on the A10
  - The first usage of the PIO pinbank regulator supplies added,
    for the Bananapi
  - Broadcom-based Bluetooth enabled on the Bananapi M2 Magic and M2
    Ultra, using the serdev bindings
  - Video codec added for the A10
  - Display pipeline for the A23 added and enabled for the generic Q8
    tablets

* tag 'sunxi-dt-for-5.1' of git://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux:
  ARM: dts: sun8i-a23-q8: Set compatible string for LCD panel
  ARM: dts: sun8i-q8-common: Enable display pipeline with RGB LCD panel
  ARM: dts: sun8i-a23: Add compatible strings to display pipeline device nodes
  ARM: dts: sun8i-a33: Move display pipeline nodes to a23/a33 common dtsi
  ARM: dts: sun8i-a23-a33: Move NAND controller device node to sort by address
  ARM: dts: sun4i-a10: Add Video Engine and reserved memory nodes
  ARM: dts: sun4i: Add support for the C1 SRAM region with the SRAM controller
  ARM: dts: sunxi: bananapi-m2-plus: Add Bluetooth device node
  ARM: dts: sun8i: r40: bananapi-m2-ultra: Add Bluetooth device node
  ARM: dts: sun8i: r40: bananapi-m2-ultra: Fix WiFi regulator definitions
  ARM: dts: sun8i: r40: Add pinmux setting for CLK_OUT_A
  ARM: dts: sun8i: r40: Add pinmux settings for UART3 on PG pingroup
  ARM: dts: sun7i: bananapi: Add GPIO banks regulators
  ARM: dts: sun4i-a10: Add PMU node

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2019-01-30 17:57:00 +01:00
Arnd Bergmann
d2849a5871 Renesas ARM64 Based SoC DT Updates for v5.1
R-Car H3 (r8a7795) SoC
 - Sort i2c and pciec0 nodes within soc node
 R-Car H3 (r8a7795) and M3-W (r8a7796) SoCs
 - Remove BUSIF0 settings from rcar_sound,ssi
 
 R-Car M3-W (r8a7796) based Salvator-XS board
 - Convert to new LVDS DT bindings
 
 R-Car H3 (r8a7795), M3-W (r8a7796) and M3-N (r8a77965) based ULCB boards
 - Use audio-graph-card to allow secondary sound device on kingfisher
   daugher board
 - Add HDMI sound support
 
 Kingfisher daughterboard for R-Car H3 (r8a7795), M3-W (r8a7796) and M3-N
 (r8a77965) based ULCB boards
 - Add pcm3168 sound codec
 
 R-Car E3 (r8a77990) SoC
 - Enable DMA for SCIF2
 
 R-Car E3 (r8a77990) based Ebisu board
 - HS400 for onboard eMMC
 - Use simple-audio-card rather than simple-scu-audio-card
 - Correct EthernetAVB phy mode as rgmii
 - Add backlight and follow-up to correct duplicate regulator number
 
 R-Car V3M (r8a77970) based v3msk starter kit
 - Specify EtherAVB PHY IRQ now that GPIO support is present
 
 R-Car D3 (r8a77995) based draak board
 - Set better backlight levels
 
 RZ/G2M (r8a774a1) SoC
 - Correct hsusb reg size
 
 RZ/G2E (r8a774c0) SoC
 - Intial SoC DT
 - Add: and SYS-DMAC controller, SCIF, HSCIF, INTC-EX
   PFC, GPIO, Ethernet AVB, watchdog, secondary CA3 core, SDHI,
   I2C, IIC-DVFS, IPMU, CAN, thermal, MSIOF, audio, PWM, display output,
   USB2.0, USB-DMAC, HSUSB, USB3.0, IPMMU, PCIe, VIN and CSI-2 support
 - A follow-up patch included in this pull-request enables DMA for SCIF2
   so that DMA is enabled for all SCIF nodes
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEE4nzZofWswv9L/nKF189kaWo3T74FAlxIKlEACgkQ189kaWo3
 T76URw/+LUjkNY2Erik3Q82UJUqgtVcVOaDz831K+5lN2vGNo+5mUdGlE1H97OeY
 +PG0w0Eg9xjLPB/wyRRBd6436FvdP2tnnJDhQTIuKKV9Ee76XGXJOKuuNH4LymqN
 XU6iMXDG4CqTPWSOpb6WzxCiWUvUVJAw6SvRETAKngRpVKIUb+4ieJdjVUFI/OuL
 AEyOBAd59qjHffVmV1MaRrwp1VT4oj2S1zoz/w/625WywxvtYvURkxAlXa93GOqI
 3VEGihdrUVMvbN6pjJ1QKe0sVIw1BXzBI2CKfo4AfW1PpnNKNxwIpV45JEiP8N7J
 UWTObgbjhejUMQBSh1bCk1hEESMp0iB2rkHYlqW8W7xkYpGP925MnRPKBNMNDTux
 khnKMznJLLU1rbbGUA2dvHtbR9pOHmdzMar3/N3VKSa69qilawkhWg/Kxjx3+CbM
 N5T7SHl0fwaMxY3TjQf759GzQ5DigJImHwuahI0ORu+Wceh1SdaWeq6kA+ZF9A0E
 l8ZOxJaZBDctcdpdShJGqBO2VXdXv8dSAhVJQ2Ln7I0gFNY8KffIW1LzrFx5c5Wk
 3JVQ57BCuMDUK59h/aKXfMApjgSahoGdsvNPCmyoseiw+2xkPPqM/sXnTXu0AYKS
 yoVtQ/oumNfBTg8Aaqj1tBezps1XLMNsG04h29iU1rrjka6GG+E=
 =HPzD
 -----END PGP SIGNATURE-----

Merge tag 'renesas-arm64-dt-for-v5.1' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into arm/dt

Renesas ARM64 Based SoC DT Updates for v5.1

R-Car H3 (r8a7795) SoC
- Sort i2c and pciec0 nodes within soc node
R-Car H3 (r8a7795) and M3-W (r8a7796) SoCs
- Remove BUSIF0 settings from rcar_sound,ssi

R-Car M3-W (r8a7796) based Salvator-XS board
- Convert to new LVDS DT bindings

R-Car H3 (r8a7795), M3-W (r8a7796) and M3-N (r8a77965) based ULCB boards
- Use audio-graph-card to allow secondary sound device on kingfisher
  daugher board
- Add HDMI sound support

Kingfisher daughterboard for R-Car H3 (r8a7795), M3-W (r8a7796) and M3-N
(r8a77965) based ULCB boards
- Add pcm3168 sound codec

R-Car E3 (r8a77990) SoC
- Enable DMA for SCIF2

R-Car E3 (r8a77990) based Ebisu board
- HS400 for onboard eMMC
- Use simple-audio-card rather than simple-scu-audio-card
- Correct EthernetAVB phy mode as rgmii
- Add backlight and follow-up to correct duplicate regulator number

R-Car V3M (r8a77970) based v3msk starter kit
- Specify EtherAVB PHY IRQ now that GPIO support is present

R-Car D3 (r8a77995) based draak board
- Set better backlight levels

RZ/G2M (r8a774a1) SoC
- Correct hsusb reg size

RZ/G2E (r8a774c0) SoC
- Intial SoC DT
- Add: and SYS-DMAC controller, SCIF, HSCIF, INTC-EX
  PFC, GPIO, Ethernet AVB, watchdog, secondary CA3 core, SDHI,
  I2C, IIC-DVFS, IPMU, CAN, thermal, MSIOF, audio, PWM, display output,
  USB2.0, USB-DMAC, HSUSB, USB3.0, IPMMU, PCIe, VIN and CSI-2 support
- A follow-up patch included in this pull-request enables DMA for SCIF2
  so that DMA is enabled for all SCIF nodes

* tag 'renesas-arm64-dt-for-v5.1' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas: (44 commits)
  arm64: dts: renesas: r8a77990: ebisu: Enable HS400 of SDHI3
  arm64: dts: renesas: r8a77990: Enable DMA for SCIF2
  arm64: dts: renesas: r8a774c0: Enable DMA for SCIF2
  arm64: dts: renesas: r8a77990: ebisu: Fix backlight regulator numbering
  arm64: dts: renesas: v3msk: specify EtherAVB PHY IRQ
  arm64: dts: renesas: r8a77990-ebisu: use simple-audio-card
  arm64: dts: renesas: r8a7796: remove BUSIF0 settings from rcar_sound,ssi
  arm64: dts: renesas: r8a7795: remove BUSIF0 settings from rcar_sound,ssi
  arm64: dts: renesas: ulcb-kf: add pcm3168 sound codec
  arm64: dts: renesas: ulcb: add HDMI sound support
  arm64: dts: renesas: ulcb: use audio-graph-card
  arm64: dts: renesas: r8a7796: salvator-xs: Convert to new LVDS DT bindings
  arm64: dts: renesas: r8a77990: Sort i2c nodes within soc node
  arm64: dts: renesas: r8a77990: sort pciec0 node within soc node
  arm64: dts: renesas: r8a774a1: Fix hsusb reg size
  arm64: dts: renesas: r8a774c0: Add VIN and CSI-2 device nodes
  arm64: dts: renesas: r8a774c0: Add PCIe device node
  arm64: dts: renesas: r8a774c0: Connect RZ/G2E Audio-DMAC to IPMMU
  arm64: dts: renesas: r8a774c0: Connect RZ/G2E AVB to IPMMU
  arm64: dts: renesas: r8a774c0: Connect RZ/G2E SYS-DMAC to IPMMU
  ...

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2019-01-30 17:55:11 +01:00
Arnd Bergmann
4165ef5d00 This updates the Integrator DTS files with the device
tree nodes required by the DRM driver.
 -----BEGIN PGP SIGNATURE-----
 
 iQIcBAABAgAGBQJcSB8wAAoJEEEQszewGV1zSikP/A8ZqQ5iBsKRH7VE0QS/UsSQ
 tG58ZpzpJLfYw/YT/Ah7jjehbPbD23s/eRHOIXPry1+KNx3Oq2F6BZLpR5A9dtdM
 PsZRlDsOF61JHsYLnBW6vO5yKdS4Ll2YGM0Z0c85XsTJwpZ0INZzkqTn/Yavb5s0
 ExTTMOe7Xz8gZ9sQl0bfk4Nax+VFKasIezDcqz9s3udg834SBJdmqm3R/pp5Azhv
 6cbL0zF1A9S+y/joY2Q9OAfuaSA1rTb5lgj5cv9d/edf5E3lDND1jBzCsT2PDsVu
 RRhOlYa5RKZRrbkWeI97ptpFRiQYyI+Rouy+YRM5NiTWzNXrNrvpnJ3DD4x6oJO3
 0HE2kEcE6z/b4vHiaH3HDi0/Gfgm6R3ee4d1nvQPhowqHHgfJlCwPOWYTIWC+cU3
 rVZ7avxAejoitaPNf8X/XlSclHvTOcnC56mgpYXMT5TKk6v4L5FjInakNPGc5aME
 Hv70YYbhpHoml1l5KvwkbyxIIOnEMmd9rqGGFJSRO2zzAR7vJihDxFKfbVPQiawM
 S6OI0k75QCrMem35OuSgRxCCJrHXbZHP9UdlM4vjFjtolnOOWkg4l2gkVvnhpjBH
 tDQQYVea3jX0Cd8ureA5vZ1HbGx7lEipApeMZ+u8xiN4Xa3o8yuKevbDkx67NR0X
 SZEhrEXmhqOh0sMSgrqP
 =ezF7
 -----END PGP SIGNATURE-----

Merge tag 'integrator-dts-v5.1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-integrator into arm/dt

This updates the Integrator DTS files with the device
tree nodes required by the DRM driver.

* tag 'integrator-dts-v5.1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-integrator:
  ARM: dts: Augment panel setting for Integrator/CP

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2019-01-30 17:52:44 +01:00
Arnd Bergmann
acf14c5474 This add the new display driver and DRM driver device
nodes to the Nomadik NHK8815.
 -----BEGIN PGP SIGNATURE-----
 
 iQIcBAABAgAGBQJcOO4dAAoJEEEQszewGV1zTjIP/3XbnlpdDVjyzx3EvPq7Lv+g
 LmfT+7NvGc1rcRVD3EK+9qOgUNyERUG2suLkmUwiC3HgwGoASnXp0KLt0D2CquWh
 7XK79WT1+l/0c7CSti3TNnypOGQID3ExrYqN8wTakT9ctbMXqL/0tRfhoUoZIAVC
 JWqja3hFb4YiVBIYn4cIIDiDqY9eNFxChCLD1yEb2O78HjYvQL0OAJv6YiDWz8J6
 zOFls6CSlgnLuAKbfZwynS7mAVXI9KqX7uW4PrWZu7TQtNAqLZGRKT/zAY5XZ/hB
 WkLZjI0r3yx/FE3x05BZEYvO5cqrXVlC3pKPsj5+h9jDAnkvDnI/reXsh1iAEvo5
 u/lNg/JQcN13ubq3RH4Qh6qsGKh5Hq6Yrz/wh5BWulRkN5lks99TyiUwC+gUBd1N
 MDjacHi6ZVubPjbYvMYNMl9KSnoZdM+i9bciEIR/H24AxYOp7ahYMVjB4Gyv/20A
 4VoasTSBDa6BYPljiOggRbUQv+WbABvlBnjGnz1QWR+SNTMtm+nmyQ2+HTTbZa0W
 +RjMbmjG/8f5/f8HWZ0U0NQc01PmDZ+Zv2XyHf6nvciitDmtjqlYTKz11QpF87/a
 cFzdb7gihuHMqc5stc64fCjAiaq2rapxKtve0GAaaxU6DLksoQyeG7ilWt7HPeqd
 hGTKrUeJdjBFRBnvXi12
 =PIyf
 -----END PGP SIGNATURE-----

Merge tag 'nomadik-dts-v5.1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-nomadik into arm/dt

This add the new display driver and DRM driver device
nodes to the Nomadik NHK8815.

* tag 'nomadik-dts-v5.1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-nomadik:
  ARM: dts: nomadik: Augment NHK15 panel setting

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2019-01-30 17:47:38 +01:00
Du Changbin
01b37f851c PCI: Make pci_size() return real BAR size
Currently, the pci_size() function actually returns 'size-1'.  Make it
return real size to avoid confusion.

Signed-off-by: Du Changbin <changbin.du@gmail.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
2019-01-30 10:44:18 -06:00
Gustavo A. R. Silva
bd4d73a1db drm/savage: mark expected switch fall-throughs
In preparation to enabling -Wimplicit-fallthrough, mark switch cases
where we are expecting to fall through.

This patch fixes the following warnings:

drivers/gpu/drm/savage/savage_state.c:301:8: warning: this statement may fall through [-Wimplicit-fallthrough=]
drivers/gpu/drm/savage/savage_state.c:438:8: warning: this statement may fall through [-Wimplicit-fallthrough=]
drivers/gpu/drm/savage/savage_state.c:559:8: warning: this statement may fall through [-Wimplicit-fallthrough=]
drivers/gpu/drm/savage/savage_state.c:697:8: warning: this statement may fall through [-Wimplicit-fallthrough=]

Warning level 3 was used: -Wimplicit-fallthrough=3

This patch is part of the ongoing efforts to enabling
-Wimplicit-fallthrough.

Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: https://patchwork.freedesktop.org/patch/msgid/20190129202005.GA25789@embeddedor
2019-01-30 17:35:29 +01:00
Gustavo A. R. Silva
88c12a0211 drm/via: mark expected switch fall-throughs
In preparation to enabling -Wimplicit-fallthrough, mark switch cases
where we are expecting to fall through.

This patch fixes the following warnings:

drivers/gpu/drm/via/via_dmablit.c:179:3: warning: this statement may fall through [-Wimplicit-fallthrough=]
drivers/gpu/drm/via/via_dmablit.c:185:3: warning: this statement may fall through [-Wimplicit-fallthrough=]
drivers/gpu/drm/via/via_dmablit.c:187:3: warning: this statement may fall through [-Wimplicit-fallthrough=]
drivers/gpu/drm/via/via_dmablit.c:195:3: warning: this statement may fall through [-Wimplicit-fallthrough=]

Warning level 3 was used: -Wimplicit-fallthrough=3

This patch is part of the ongoing efforts to enabling
-Wimplicit-fallthrough.

Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: https://patchwork.freedesktop.org/patch/msgid/20190129201742.GA25660@embeddedor
2019-01-30 17:35:29 +01:00
Rob Herring
31af04cd60 arm64: dts: Remove inconsistent use of 'arm,armv8' compatible string
The 'arm,armv8' compatible string is only for software models. It adds
little value otherwise and is inconsistently used as a fallback on some
platforms. Remove it from those platforms.

This fixes warnings generated by the DT schema.

Reported-by: Michal Simek <michal.simek@xilinx.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Acked-by: Antoine Tenart <antoine.tenart@bootlin.com>
Acked-by: Nishanth Menon <nm@ti.com>
Acked-by: Maxime Ripard <maxime.ripard@bootlin.com>
Acked-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Acked-by: Chanho Min <chanho.min@lge.com>
Acked-by: Krzysztof Kozlowski <krzk@kernel.org>
Acked-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Acked-by: Gregory CLEMENT <gregory.clement@bootlin.com>
Acked-by: Thierry Reding <treding@nvidia.com>
Acked-by: Heiko Stuebner <heiko@sntech.de>
Acked-by: Simon Horman <horms+renesas@verge.net.au>
Acked-by: Tero Kristo <t-kristo@ti.com>
Acked-by: Wei Xu <xuwei5@hisilicon.com>
Acked-by: Liviu Dudau <liviu.dudau@arm.com>
Acked-by: Matthias Brugger <matthias.bgg@gmail.com>
Acked-by: Michal Simek <michal.simek@xilinx.com>
Acked-by: Scott Branden <scott.branden@broadcom.com>
Acked-by: Kevin Hilman <khilman@baylibre.com>
Acked-by: Chunyan Zhang <zhang.lyra@gmail.com>
Acked-by: Robert Richter <rrichter@cavium.com>
Acked-by: Jisheng Zhang <Jisheng.Zhang@synaptics.com>
Acked-by: Dinh Nguyen <dinguyen@kernel.org>
Signed-off-by: Rob Herring <robh@kernel.org>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2019-01-30 17:34:36 +01:00
Peter Xu
1a9eb9b98f iommu/vt-d: Remove change_pte notifier
The change_pte() interface is tailored for PFN updates, while the
other notifier invalidate_range() should be enough for Intel IOMMU
cache flushing.  Actually we've done similar thing for AMD IOMMU
already in 8301da53fb ("iommu/amd: Remove change_pte mmu_notifier
call-back", 2014-07-30) but the Intel IOMMU driver still have it.

Signed-off-by: Peter Xu <peterx@redhat.com>
Signed-off-by: Joerg Roedel <jroedel@suse.de>
2019-01-30 17:31:36 +01:00
Peter Xu
5a63f0adeb iommu/amd: Remove clear_flush_young notifier
AMD IOMMU driver is using the clear_flush_young() to do cache flushing
but that's actually already covered by invalidate_range().  Remove the
extra notifier and the chunks.

Signed-off-by: Peter Xu <peterx@redhat.com>
Signed-off-by: Joerg Roedel <jroedel@suse.de>
2019-01-30 17:30:46 +01:00
Rob Herring
abe60a3a7a ARM: dts: Kill off skeleton{64}.dtsi
Remove the usage of skeleton.dtsi in the remaining dts files. It was
deprecated since commit 9c0da3cc61 ("ARM: dts: explicitly mark
skeleton.dtsi as deprecated"). This will make adding a unit-address to
memory nodes easier.

The main tricky part to removing skeleton.dtsi is we could end up with
no /memory node at all when a bootloader depends on one being present. I
hacked up dtc to check for this condition.

Acked-by: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Reviewed-by: Matthias Brugger <matthias.bgg@gmail.com>
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
Acked-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Acked-by: Neil Armstrong <narmstrong@baylibre.com>
Acked-by: Antoine Tenart <antoine.tenart@bootlin.com>
Acked-by: Alexandre TORGUE <alexandre.torgue@st.com>
Acked-by: Robert Jarzmik <robert.jarzmik@free.fr>
Acked-by: Vladimir Zapolskiy <vz@mleia.com>
Tested-by: Kevin Hilman <khilman@baylibre.com>
Reviewed-by: Kevin Hilman <khilman@baylibre.com>
Tested-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Reviewed-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Signed-off-by: Rob Herring <robh@kernel.org>
Reviewed-by: Gregory CLEMENT <gregory.clement@bootlin.com>
Tested-by: Gregory CLEMENT <gregory.clement@bootlin.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2019-01-30 17:30:31 +01:00
Arnd Bergmann
6569df3d62 STM32 DT updates for v4.21, round 1
Highlights:
 ----------
 
 -MPU STM32MP157 platform update:
  -Declare DMAs for timers
  -Add sleep support for CAN
  -Split CAN RAM mapping between the 2 FDCAN instances
  -Add support of thermal sensor (DTS)
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABAgAGBQJcBQ9HAAoJEH+ayWryHnCFhkIP/2hX4e+FYtqSJOUkSu9LL5tf
 FmqKnDcA7VWpE2lkWrwv8faYQ/BTJ0v5J6reCUhXntomcOZtCyWv+MllbgANEHrL
 UWRakenbOe5vSZR5v2SapV0zX/AKZl2o7WUmtnjq1hf9sopeVVVWfLObx8HmwVmA
 Q8S/7lqqPntapb0JSPGUr8cI3nuXfTHlRl1x8YIq8e0LfKPyF9euprmXtkZ01rwu
 YTFvBogRJfVMxT9VWqLtEU4DWsluqKobNU6Xq06/cN+81aS3iUaNR1dprMwURoWq
 yE22y876y2Ytgj5Y2PcxlGO+7w9RbLHEPgF1Gx+yM8Tu4m2jq6V8peVAw4814ow1
 ALduE+/iQ/zGUvHkyyIRkl01y03H1OburA/WoTrkbOeppESUMH+mW5rF9rW+kEtR
 RSoik3YnWKD8pcmKNk4HNNhKRaLmhPDif5EDrF66c5QpMoDlJbnZ2n1pBZJMCboQ
 ASNF7zWUxbshw+o9TDdbkF0nu/IsRlO+t+CXiTPHJ4WzWVWra+2DAMMnrgjZH62Q
 2i6+jRFQdhNmWNhvz4Gspm5v1bptllXjBGlg3TZ9c38l2hVWyTFi03777EJtrj8h
 b6ZLeK0qfXaBH8Ix/BZ9d6FmVpBntTh/vTNyWCJqywVwO4YA2C/5xBjbL9NH9zFV
 /GKMyE1fKI9pziO9REu2
 =660S
 -----END PGP SIGNATURE-----

Merge tag 'stm32-dt-for-v4.21-1' of git://git.kernel.org/pub/scm/linux/kernel/git/atorgue/stm32 into arm/dt

STM32 DT updates for v4.21, round 1

Highlights:
----------

-MPU STM32MP157 platform update:
 -Declare DMAs for timers
 -Add sleep support for CAN
 -Split CAN RAM mapping between the 2 FDCAN instances
 -Add support of thermal sensor (DTS)

* tag 'stm32-dt-for-v4.21-1' of git://git.kernel.org/pub/scm/linux/kernel/git/atorgue/stm32:
  ARM: dts: stm32: add thermal sensor support on STM32MP157c
  ARM: dts: stm32: add can1 sleep pins muxing on stm32mp157c-ev1 board
  ARM: dts: stm32: add can1 sleep pins muxing
  ARM: dts: stm32: change CAN RAM mapping on stm32mp157c
  ARM: dts: stm32: don't use timers dmas on stm32mp157c-ev1
  ARM: dts: stm32: don't use timers dmas on stm32mp157c-ed1
  ARM: dts: stm32: Add dmas to timer on stm32mp157c

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2019-01-30 17:27:59 +01:00
Jerry Snitselaar
2e6c6a8657 iommu/amd: Print reason for iommu_map_page failure in map_sg
Since there are multiple possible failures in iommu_map_page
it would be useful to know which case is being hit when the
error message is printed in map_sg. While here, fix up checkpatch
complaint about using function name in a string instead of
__func__.

Cc: Joerg Roedel <joro@8bytes.org>
Signed-off-by: Jerry Snitselaar <jsnitsel@redhat.com>
Signed-off-by: Joerg Roedel <jroedel@suse.de>
2019-01-30 17:26:24 +01:00
Lu Baolu
8950dcd83a iommu/vt-d: Leave scalable mode default off
Commit 765b6a98c1 ("iommu/vt-d: Enumerate the scalable
mode capability") enables VT-d scalable mode if hardware
advertises the capability. As we will bring up different
features and use cases to upstream in different patch
series, it will leave some intermediate kernel versions
which support partial features. Hence, end user might run
into problems when they use such kernels on bare metals
or virtualization environments.

This leaves scalable mode default off and end users could
turn it on with "intel-iommu=sm_on" only when they have
clear ideas about which scalable features are supported
in the kernel.

Cc: Liu Yi L <yi.l.liu@intel.com>
Cc: Jacob Pan <jacob.jun.pan@linux.intel.com>
Suggested-by: Ashok Raj <ashok.raj@intel.com>
Suggested-by: Kevin Tian <kevin.tian@intel.com>
Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com>
Signed-off-by: Joerg Roedel <jroedel@suse.de>
2019-01-30 17:23:58 +01:00
Logan Gunthorpe
21d5d27c04 iommu/vt-d: Implement dma_[un]map_resource()
Currently the Intel IOMMU uses the default dma_[un]map_resource()
implementations does nothing and simply returns the physical address
unmodified.

However, this doesn't create the IOVA entries necessary for addresses
mapped this way to work when the IOMMU is enabled. Thus, when the
IOMMU is enabled, drivers relying on dma_map_resource() will trigger
DMAR errors. We see this when running ntb_transport with the IOMMU
enabled, DMA, and switchtec hardware.

The implementation for intel_map_resource() is nearly identical to
intel_map_page(), we just have to re-create __intel_map_single().
dma_unmap_resource() uses intel_unmap_page() directly as the
functions are identical.

Signed-off-by: Logan Gunthorpe <logang@deltatee.com>
Cc: David Woodhouse <dwmw2@infradead.org>
Cc: Joerg Roedel <joro@8bytes.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Joerg Roedel <jroedel@suse.de>
2019-01-30 17:23:04 +01:00
Jianchao Wang
85bd6e61f3 blk-mq: fix a hung issue when fsync
Florian reported a io hung issue when fsync(). It should be
triggered by following race condition.

data + post flush         a flush

blk_flush_complete_seq
  case REQ_FSEQ_DATA
    blk_flush_queue_rq
    issued to driver      blk_mq_dispatch_rq_list
                            try to issue a flush req
                            failed due to NON-NCQ command
                            .queue_rq return BLK_STS_DEV_RESOURCE

request completion
  req->end_io // doesn't check RESTART
  mq_flush_data_end_io
    case REQ_FSEQ_POSTFLUSH
      blk_kick_flush
        do nothing because previous flush
        has not been completed
     blk_mq_run_hw_queue
                              insert rq to hctx->dispatch
                              due to RESTART is still set, do nothing

To fix this, replace the blk_mq_run_hw_queue in mq_flush_data_end_io
with blk_mq_sched_restart to check and clear the RESTART flag.

Fixes: bd166ef1 (blk-mq-sched: add framework for MQ capable IO schedulers)
Reported-by: Florian Stecker <m19@florianstecker.de>
Tested-by: Florian Stecker <m19@florianstecker.de>
Signed-off-by: Jianchao Wang <jianchao.w.wang@oracle.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2019-01-30 08:53:54 -07:00
Tetsuo Handa
2e3c18d0ad block: pass no-op callback to INIT_WORK().
syzbot is hitting flush_work() warning caused by commit 4d43d395fe
("workqueue: Try to catch flush_work() without INIT_WORK().") [1].
Although that commit did not expect INIT_WORK(NULL) case, calling
flush_work() without setting a valid callback should be avoided anyway.
Fix this problem by setting a no-op callback instead of NULL.

[1] https://syzkaller.appspot.com/bug?id=e390366bc48bc82a7c668326e0663be3b91cbd29

Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Reported-and-tested-by: syzbot <syzbot+ba2a929dcf8e704c180e@syzkaller.appspotmail.com>
Cc: Tejun Heo <tj@kernel.org>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2019-01-30 08:53:20 -07:00
Axel Lin
5358db5478
regulator: max77650: Fix include files
This is a platform driver, no need to include linux/i2c.h.
Include linux/of.h for of_match_ptr.

Signed-off-by: Axel Lin <axel.lin@ingics.com>
Reviewed-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
2019-01-30 15:20:05 +00:00
Marek Vasut
75455e258e rtc: abx80x: Configure reserved bits in RV1805
The RV1805 uses smaller package than the AB1805, discern those two
chips based on the compatible value and configure reserved bits in
the RV1805 to prevent current leakage and accidental test mode entry.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Alexandre Belloni <alexandre.belloni@free-electrons.com>
To: linux-rtc@vger.kernel.org
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
2019-01-30 16:09:36 +01:00
Marek Vasut
a26ec8857d dt-bindings: rtc: Add RV1805 to abracon,abx80x bindings
Add compatible string for Microcrystal RV1805 RTC, which is compatible
with AB1805. The RV1805 uses smaller 10 pin package, while the AB1805
uses larger 16pin package, however the die inside the chip is the same.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Alexandre Belloni <alexandre.belloni@free-electrons.com>
Cc: Rob Herring <robh+dt@kernel.org>
To: devicetree@vger.kernel.org
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
2019-01-30 16:07:54 +01:00
Jiri Slaby
5a064d398f x86/asm/suspend: Drop ENTRY from local data
ENTRY is intended for functions and shall be paired with ENDPROC. ENTRY
also aligns symbols which creates unnecessary holes between data.

So drop ENTRY from saved_eip in wakeup_32 and many saved_* in wakeup_64,
as these symbols are local only.

One could've used SYM_DATA_LOCAL for these symbols, but it was
discouraged earlier:

  https://lkml.kernel.org/r/20170427124310.GC23352@amd

Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Signed-off-by: Borislav Petkov <bp@suse.de>
Acked-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Acked-by: Pavel Machek <pavel@ucw.cz>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Len Brown <len.brown@intel.com>
Cc: linux-arch@vger.kernel.org
Cc: linux-pm@vger.kernel.org
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: x86-ml <x86@kernel.org>
Link: https://lkml.kernel.org/r/20190130124711.12463-3-jslaby@suse.cz
2019-01-30 16:07:10 +01:00
Paul Elder
c418fd6c01 usb: gadget: musb: fix short isoc packets with inventra dma
Handling short packets (length < max packet size) in the Inventra DMA
engine in the MUSB driver causes the MUSB DMA controller to hang. An
example of a problem that is caused by this problem is when streaming
video out of a UVC gadget, only the first video frame is transferred.

For short packets (mode-0 or mode-1 DMA), MUSB_TXCSR_TXPKTRDY must be
set manually by the driver. This was previously done in musb_g_tx
(musb_gadget.c), but incorrectly (all csr flags were cleared, and only
MUSB_TXCSR_MODE and MUSB_TXCSR_TXPKTRDY were set). Fixing that problem
allows some requests to be transferred correctly, but multiple requests
were often put together in one USB packet, and caused problems if the
packet size was not a multiple of 4. Instead, set MUSB_TXCSR_TXPKTRDY
in dma_controller_irq (musbhsdma.c), just like host mode transfers.

This topic was originally tackled by Nicolas Boichat [0] [1] and is
discussed further at [2] as part of his GSoC project [3].

[0] https://groups.google.com/forum/?hl=en#!topic/beagleboard-gsoc/k8Azwfp75CU
[1] b0be3b6cc1:beagleboard-usbsniffer-kernel.git;a=patch;h=b0be3b6cc195ba732189b04f1d43ec843c3e54c9
[2] http://beagleboard-usbsniffer.blogspot.com/2010/07/musb-isochronous-transfers-fixed.html
[3] http://elinux.org/BeagleBoard/GSoC/USBSniffer

Fixes: 550a7375fe ("USB: Add MUSB and TUSB support")
Signed-off-by: Paul Elder <paul.elder@ideasonboard.com>
Signed-off-by: Bin Liu <b-liu@ti.com>
Cc: stable <stable@vger.kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-01-30 15:48:10 +01:00
Vincent Whitchurch
5aa608348f mic: vop: Fix broken virtqueues
VOP is broken in mainline since commit 1ce9e6055f ("virtio_ring:
introduce packed ring support"); attempting to use the virtqueues leads
to various kernel crashes.  I'm testing it with my not-yet-merged
loopback patches, but even the in-tree MIC hardware cannot work.

The problem is not in the referenced commit per se, but is due to the
following hack in vop_find_vq() which depends on the layout of private
structures in other source files, which that commit happened to change:

  /*
   * To reassign the used ring here we are directly accessing
   * struct vring_virtqueue which is a private data structure
   * in virtio_ring.c. At the minimum, a BUILD_BUG_ON() in
   * vring_new_virtqueue() would ensure that
   *  (&vq->vring == (struct vring *) (&vq->vq + 1));
   */
  vr = (struct vring *)(vq + 1);
  vr->used = used;

Fix vop by using __vring_new_virtqueue() to create the needed vring
layout from the start, instead of attempting to patch in the used ring
later.  __vring_new_virtqueue() was added way back in commit
2a2d1382fe ("virtio: Add improved queue allocation API") in order to
address mic's usecase, according to the commit message.

Fixes: 1ce9e6055f ("virtio_ring: introduce packed ring support")
Signed-off-by: Vincent Whitchurch <vincent.whitchurch@axis.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-01-30 15:42:26 +01:00
Michael Straube
1c516c54ac staging: rtl8188eu: refactor rtw_reset_securitypriv()
Move the declaration of 'psec_priv' out of the else path and use it
in the if path as well to improve readability. Also clears line over
80 characters checkpatch warnings.

Suggested-by: Joe Perches <joe@perches.com>
Signed-off-by: Michael Straube <straube.linux@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-01-30 15:40:58 +01:00
Michael Straube
46c36e5a03 staging: rtl8188eu: &array[0] -> array
Change '&array[0]' to just 'array' in rtw_reset_securitypriv().

Signed-off-by: Michael Straube <straube.linux@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-01-30 15:40:58 +01:00
Michael Straube
d8e2a9a58e staging: rtl8188eu: remove unncessary asignment to cleanup long line
Instead of first asign 'wrqu.data.length = p - buff' use 'p - buff'
directly in min_t() in the subsequent asignment. Clears a line over
80 characters checkpatch warning.

Signed-off-by: Michael Straube <straube.linux@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-01-30 15:40:58 +01:00
Michael Straube
0a6286668b staging: rtl8188eu: cleanup declarations in mlme_linux.c
Replace tabs with spaces in declarations to cleanup whitespace.

Signed-off-by: Michael Straube <straube.linux@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-01-30 15:40:58 +01:00
Michael Straube
b543e1fdd1 staging: rtl8188eu: remove unnecessary initializations
The local variables backup_index, backup_counter and backup_time
in rtw_reset_securitypriv() are all asigned before their uses, so
initialization to zero is not necessary.

Signed-off-by: Michael Straube <straube.linux@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-01-30 15:40:58 +01:00
Michael Straube
48a254d7ff staging: rtl8188eu: cleanup comments in mlme_linux.c
Cleanup comments to avoid lines over 80 characters
and follow kernel style for block comments.

Signed-off-by: Michael Straube <straube.linux@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-01-30 15:40:58 +01:00
Adham Abozaeid
59fb805f5a staging: wilc1000: remove redundant reset of station statistics
Driver sends configuration wids to reset connection statistics in the
device, but the device already resets it when starting a new connection

Signed-off-by: Adham Abozaeid <adham.abozaeid@microchip.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-01-30 15:40:57 +01:00
Gao Xiang
516c115c91 staging: erofs: complete POSIX ACL support
Let's add .get_acl() to read the file's acl from its xattrs
to make POSIX ACL usable.

Here is the on-disk detail,
fullname: system.posix_acl_access
struct erofs_xattr_entry:
        .e_name_len = 0
        .e_name_index = EROFS_XATTR_INDEX_POSIX_ACL_ACCESS (2)

fullname: system.posix_acl_default
struct erofs_xattr_entry:
	.e_name_len = 0
	.e_name_index = EROFS_XATTR_INDEX_POSIX_ACL_DEFAULT (3)

Reviewed-by: Chao Yu <yuchao0@huawei.com>
Signed-off-by: Gao Xiang <gaoxiang25@huawei.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-01-30 15:38:50 +01:00
Gao Xiang
a24df1f62f staging: erofs: use xattr_prefix to wrap up
Let's use xattr_prefix instead of open code.
No logic changes.

Reviewed-by: Chao Yu <yuchao0@huawei.com>
Signed-off-by: Gao Xiang <gaoxiang25@huawei.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-01-30 15:38:50 +01:00
Nishad Kamdar
f2829d070f staging: mt7621-pinctrl: Test devm_kzalloc for failure while improving the code
This patch tests the return of devm_kzalloc for failure and
improves the code.

Signed-off-by: Nishad Kamdar <nishadkamdar@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-01-30 15:38:50 +01:00
Cezary Kierzyk
6ffcce4178 staging: rtlwifi: replace ---help--- with help in Kconfig
This patch fixes the checkpatch.pl warning:

WARNING: prefer 'help' over '---help---' for new help texts

Signed-off-by: Cezary Kierzyk <virdipravum.n008d3v@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-01-30 15:38:50 +01:00
Felipe Cardoso Resende
c30019fa31 drivers: staging: rtlwifi: Start statement on a tabstop
Fix the following checkpatch.pl warning:
        WARNING: Statements should start on a tabstop
        #208: FILE: pci.h:208:
        +	/*ASPM*/ u8 const_pci_aspm;

Signed-off-by: Felipe Cardoso Resende <felipecardoso.fcr@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-01-30 15:38:50 +01:00
Michiel Schuurmans
0fa82deb5a Staging: rtl8192e: Replaced spaces with tab.
Replaced the spaces with tabs as suggested by checkpatch.

Signed-off-by: Michiel Schuurmans <michielschuurmans@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-01-30 15:38:50 +01:00