ANDROID: ion: Fix buffer_lock mutex initialization

Running with lockdep, I saw:

[   95.326037] DEBUG_LOCKS_WARN_ON(lock->magic != lock)
[   95.326067] WARNING: CPU: 6 PID: 814 at kernel/locking/mutex.c:938 __mutex_lock+0x608/0x8d8
[   95.339515] Modules linked in: xhci_plat_hcd xhci_pci xhci_hcd ufs_qcom syscon_reboot_mode spmi_pmic_arb snd_soc_hdmi_codec smsm smem sdhci_msm sdhci_pltfm sdhci rf
[   95.405115] CPU: 6 PID: 814 Comm: NDK MediaCodec_ Tainted: G W         5.4.0-rc7-mainline-00568-gd48a35356edb #1095
[   95.416246] Hardware name: Thundercomm Dragonboard 845c (DT)
[   95.421960] pstate: 60400005 (nZCv daif +PAN -UAO)
[   95.426806] pc : __mutex_lock+0x608/0x8d8
[   95.430868] lr : __mutex_lock+0x608/0x8d8
[   95.434933] sp : ffffffc0133c3a90
...
[   95.518865] Call trace:
[   95.521354]  __mutex_lock+0x608/0x8d8
[   95.525059]  mutex_lock_nested+0x3c/0x50
[   95.529070]  ion_buffer_alloc+0x230/0x330
[   95.533136]  ion_dmabuf_alloc+0x6c/0xf8
[   95.537034]  ion_ioctl+0x220/0x418
[   95.540622]  do_vfs_ioctl+0xc4/0xa20
[   95.544255]  ksys_ioctl+0x8c/0xa0
[   95.547841]  __arm64_sys_ioctl+0x28/0x38
[   95.551850]  el0_svc_common.constprop.2+0x7c/0x198
[   95.556693]  el0_svc_handler+0x80/0xa0
[   95.560495]  el0_svc+0x8/0xc
[   95.563430] irq event stamp: 7881
[   95.567894] hardirqs last  enabled at (7881): [<ffffffd0d1edfc78>] __slab_alloc.isra.83.constprop.90+0x80/0xc8
[   95.578008] hardirqs last disabled at (7880): [<ffffffd0d1edfc3c>] __slab_alloc.isra.83.constprop.90+0x44/0xc8
[   95.588098] softirqs last  enabled at (7780): [<ffffffd0d1c820bc>] __do_softirq+0x49c/0x608
[   95.596529] softirqs last disabled at (7771): [<ffffffd0d1cc1df8>] irq_exit+0x140/0x148
[   95.604613] ---[ end trace 206552022d1ff2b8 ]---

After digging around, I realized the ion_device buffer_lock
isn't being properly initialized. So this patch corrects that.

Signed-off-by: John Stultz <john.stultz@linaro.org>
Change-Id: Id3381006b23c370f90a7e5efd6efe5448ebe87c5
1 file changed