The io_mem_pfn field was added in ea642c3216cb2a60d1c0e760ae47ee85c9c16447 and
is used unconditionally. Most drivers were updated to set it to the default
implementation ttm_bo_default_io_mem_pfn, but hibmc was not.
This fixes crash in ttm_bo_vm_fault when hibmc driver is used.
> [SRU Justification]
> On Artful kernels, X fails to start and a kernel splat is printed.
> This is because ea642c3216cb ("drm/ttm: add io_mem_pfn callback") is
> incomplete: the hisilicon hibmc driver does not contain the callback
> and so the kernel tries to execute code at NULL.
> There is a discussion and potential fix at
> https://lists.freedesktop.org/archives/dri-devel/2017-November/159002.html > The fix hasn't landed yet and it looks like they're going to
> re-engineer the entire section instead.
> Rather than wait for that and deal with the massive regression
> potential, the fix I have picked to submit is very very minimal and
> touches only hibmc.
> [Regression Potential]
> Minimal - fix only touches hibmc driver. Tested on D05 board.
> Install patched kernel, try to start X. If it succeeds, the fix
> works. If there's a kernel splat and X does not start, the fix does
> not work.
> HiSilicon would really like this fix in Artful in such time so that
> when the next 16.04 point release ships in February, the HWE kernel
> will work with Xorg.
> Michal Srb (1):
> UBUNTU: SAUCE: drm: hibmc: Initialize the hibmc_bo_driver.io_mem_pfn
> drivers/gpu/drm/hisilicon/hibmc/hibmc_ttm.c | 1 +
> 1 file changed, 1 insertion(+)