Bug 36744

Summary: [NVA5] BUG: unable to handle kernel NULL pointer dereference
Product: xorg Reporter: Patrice Mandin <patmandin>
Component: Driver/nouveauAssignee: Nouveau Project <nouveau>
Status: RESOLVED FIXED QA Contact: Xorg Project Team <xorg-team>
Severity: normal    
Priority: medium    
Version: unspecified   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
Kernel log none

Description Patrice Mandin 2011-05-01 09:07:17 UTC
Created attachment 46222 [details]
Kernel log

Since commit e5ca5dec3111772ade1cbbead50c0c594a49778d (bisected, drm/nouveau: remove remnants of nouveau_pgraph_engine) to nouveau/linux-2.6, I get NULL pointer dereference when starting kernel.
Comment 1 Patrice Mandin 2011-05-06 13:08:25 UTC
Booting kernel without 'nouveau.noaccel=1' makes it work. So it appears the noaccel case has been broken by said git commit.
Comment 2 Patrice Mandin 2011-05-23 02:11:14 UTC
In nouveau_card_init() function (nouveau_state.c file), engine->fifo.init() function is not called when nouveau_noaccel is enabled.

On NV50/NVA0 cards, engine->fifo.init = nv50_fifo_init (nv50_fifo.c file) and this function is responsible to fill pfifo->playlist array, which is not done with nouveau_noaccel enabled.

When nv50_fifo_playlist_update() is called, accessing pfifo->playlist (which was not initialized) triggers the NULL pointer dereference.
Comment 3 Patrice Mandin 2011-05-25 01:54:45 UTC
Fixed in git nouveau/linux-2.6 repository. Thanks darktama.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.