Re: [PATCH 4/5] drm/i915/guc: Don't try to create log runtime if there is no log

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Quoting Michal Wajdeczko (2018-01-31 17:32:39)
> In case of GuC initialization failure we may continue with driver
> load, but we wrongly assume that GuC is fully functional. This
> leads to the BUG as we attempt to access non-existing log vma.
> 
> [26386.121085] BUG: unable to handle kernel NULL pointer dereference at 00000000000000a0
> [26386.121225] IP: guc_log_runtime_create+0x23/0xe0 [i915]
> [26386.121763] Call Trace:
> [26386.121870]  guc_log_late_setup+0xfd/0x140 [i915]
> [26386.121969]  i915_driver_load+0x7ab/0x1730 [i915]
> [26386.122069]  i915_pci_probe+0x2d/0x90 [i915]
> [26386.122089]  pci_device_probe+0x9c/0x120
> [26386.122107]  driver_probe_device+0x2a9/0x490
> [26386.122126]  __driver_attach+0xd9/0xe0
> [26386.122143]  ? driver_probe_device+0x490/0x490
> [26386.122158]  bus_for_each_dev+0x57/0x90
> [26386.122175]  bus_add_driver+0x1eb/0x260
> [26386.122190]  ? 0xffffffffa069a000
> [26386.122206]  driver_register+0x52/0xc0
> [26386.122220]  ? 0xffffffffa069a000
> [26386.122234]  do_one_initcall+0x39/0x170
> [26386.122252]  ? kmem_cache_alloc_trace+0x1fd/0x2e0
> [26386.122273]  do_init_module+0x56/0x1ec
> [26386.122289]  load_module+0x219e/0x2550
> [26386.122309]  ? vfs_read+0x121/0x140
> [26386.122331]  ? SyS_finit_module+0xa5/0xe0
> [26386.122346]  SyS_finit_module+0xa5/0xe0
> [26386.122371]  entry_SYSCALL_64_fastpath+0x22/0x8f
> 
> Signed-off-by: Michal Wajdeczko <michal.wajdeczko@xxxxxxxxx>
> Cc: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx>
> Cc: Michal Winiarski <michal.winiarski@xxxxxxxxx>
> Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio@xxxxxxxxx>
> Cc: Sagar Arun Kamble <sagar.a.kamble@xxxxxxxxx>
> ---
>  drivers/gpu/drm/i915/intel_guc_log.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/intel_guc_log.c b/drivers/gpu/drm/i915/intel_guc_log.c
> index 3fbe93a..fdb1895 100644
> --- a/drivers/gpu/drm/i915/intel_guc_log.c
> +++ b/drivers/gpu/drm/i915/intel_guc_log.c
> @@ -395,6 +395,9 @@ static int guc_log_runtime_create(struct intel_guc *guc)
>         void *vaddr;
>         int ret;
>  
> +       if (!guc->log.vma)
> +               return -ENODEV;
> +
>         lockdep_assert_held(&dev_priv->drm.struct_mutex);

We like to keep the caller precondition guards at the start of the
function, so I reversed this pair of lines.

I've pushed the two BUG fixes that Sagar reviewed. The fault injection
is a good idea, but I've left it alone while there is a question on a
couple of the patches. Thanks for the patches and review, looking
forward to the next series :)
-Chris
_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/intel-gfx




[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux