The fault is in drm_set_busid. It's a NULL pointer reference. I'm not
seeing this so it may be savage specific. The only place I can see
where you could get a NULL reference is if the PCI driver didn't set a
name, dev->pdev->driver->name. Can you add a debug statement and check
if there is one? The trap looks like it is in a sprintf.

static int drm_set_busid(drm_device_t * dev)
{
        if (dev->unique != NULL)
                return EBUSY;

        dev->unique_len = 20;
        dev->unique = drm_alloc(dev->unique_len + 1, DRM_MEM_DRIVER);
        if (dev->unique == NULL)
                return ENOMEM;

        snprintf(dev->unique, dev->unique_len, "pci:%04x:%02x:%02x.%d",
                 dev->pci_domain, dev->pci_bus, dev->pci_slot, dev->pci_func);

        dev->devname = drm_alloc(strlen(dev->pdev->driver->name) + dev->unique_len + 2,
                                 DRM_MEM_DRIVER);
        if (dev->devname == NULL)
                return ENOMEM;

        sprintf(dev->devname, "[EMAIL PROTECTED]", dev->pdev->driver->name, 
dev->unique);

        return 0;
}

-- 
Jon Smirl
[EMAIL PROTECTED]


-------------------------------------------------------
This SF.net email is sponsored by: IT Product Guide on ITManagersJournal
Use IT products in your business? Tell us what you think of them. Give us
Your Opinions, Get Free ThinkGeek Gift Certificates! Click to find out more
http://productguide.itmanagersjournal.com/guidepromo.tmpl
--
_______________________________________________
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to