arm_iommu_alloc_attrs meeting the kernel NULL pointer

hello:
when I open the camera streaming then meeting this kernel mistakes :

[ 57.257543] Unable to handle kernel NULL pointer dereference at virtual address 00000010
[ 57.265706] pgd = ffffffc1da3ad000
[ 57.269126] [00000010] *pgd=0000000255ac1003, *pud=0000000255ac1003, *pmd=0000000000000000
[ 57.277468] Internal error: Oops: 96000006 [#1] PREEMPT SMP
[ 57.283026] Modules linked in:
[ 57.286082] CPU: 0 PID: 1761 Comm: yavta Not tainted 4.4.15 #46
[ 57.291987] Hardware name: quill (DT)
[ 57.295638] task: ffffffc1c9e90000 ti: ffffffc1d5a5c000 task.ti: ffffffc1d5a5c000
[ 57.303107] PC is at arm_iommu_alloc_attrs+0x264/0x510
[ 57.308233] LR is at arm_iommu_alloc_attrs+0x254/0x510
[ 57.313357] pc : [] lr : [] pstate: 00000145
[ 57.317018] ITE2 : tegra_i2c_xfer_msg line 1475
[ 57.386883] sp : ffffffc1d5a5fa20
[ 57.390187] x29: ffffffc1d5a5fa20 x28: 00000000024000c0
[ 57.395502] x27: ffffffc1d2b17498 x26: ffffffc000f4ccd8
[ 57.400816] x25: ffffffc000bd8a18 x24: ffffffc000bd8000
[ 57.406130] x23: ffffffc000f4c000 x22: 0000000000000000
[ 57.411445] x21: ffffffc1f5e0c810 x20: ffffffc000bd8a18
[ 57.416759] x19: 0000000000000000 x18: 0000000000000a03
[ 57.422073] x17: 0000007faaf63340 x16: ffffffc0001de29c
[ 57.427387] x15: 0000007fab02fcc0 x14: 0ffffffffffffffe
[ 57.432702] x13: 0000000000000028 x12: ffffffc001262000
[ 57.438017] x11: 0000000000000002 x10: ffffffc001262130
[ 57.443331] x9 : 0000000000001135 x8 : 3220656e696c2073
[ 57.448644] x7 : 0000000000000000 x6 : ffffffc0013e12cd
[ 57.453958] x5 : 0000000000000010 x4 : 0000000000000001
[ 57.459270] x3 : ffffffc1d5a5f890 x2 : 0000000000000000
[ 57.464584] x1 : 0000000000000000 x0 : 000000005f300000

[ 57.471382] Process yavta (pid: 1761, stack limit = 0xffffffc1d5a5c020)
[ 57.477979] Call trace:
[ 57.480418] [] arm_iommu_alloc_attrs+0x264/0x510
[ 57.486585] [] vb2_dc_alloc+0xa4/0x174
[ 57.491885] [] __vb2_queue_alloc+0xfc/0x44c
[ 57.497618] [] vb2_core_reqbufs+0x134/0x2f0
[ 57.503350] [] vb2_ioctl_reqbufs+0x70/0xa0
[ 57.508995] [] v4l_reqbufs+0x4c/0x58
[ 57.514121] [] __video_do_ioctl+0x224/0x298
[ 57.519853] [] video_usercopy+0x22c/0x574
[ 57.525411] [] video_ioctl2+0x14/0x1c
[ 57.530624] [] v4l2_ioctl+0xbc/0xcc
[ 57.535664] [] do_vfs_ioctl+0x31c/0x5b4
[ 57.541048] [] SyS_ioctl+0x84/0x98
[ 57.546002] [] el0_svc_naked+0x24/0x28
[ 57.551301] —[ end trace 75d48c8fc2848c9f ]—

@msrli
Would you give more detail information. Like what command cause it?

I had found the problem;
when i run ioctl(dev->fd, VIDIOC_REQBUFS, &rb); without run Set fmt. Track drive found that functions tegra_channel_queue_setup paramer sizes return 0.
because when calling get_aligned_buffer_size, found the chan->size_align is 0 After roundup calculation wil lead to the result is 0