VIDEO: cyberpro: pci_request_regions needs a persistent name

Don't pass a name pointer from the kernel stack, it will not survive
and will result in corrupted /proc/iomem output.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
This commit is contained in:
Russell King 2009-12-24 13:36:21 +00:00
parent e8b8f5ef90
commit ed5a35acbb

View file

@ -1573,15 +1573,15 @@ cyberpro_pci_probe(struct pci_dev *dev, const struct pci_device_id *id)
if (err) if (err)
return err; return err;
err = pci_request_regions(dev, name);
if (err)
return err;
err = -ENOMEM; err = -ENOMEM;
cfb = cyberpro_alloc_fb_info(id->driver_data, name); cfb = cyberpro_alloc_fb_info(id->driver_data, name);
if (!cfb) if (!cfb)
goto failed_release; goto failed_release;
err = pci_request_regions(dev, cfb->fb.fix.id);
if (err)
goto failed_regions;
cfb->dev = dev; cfb->dev = dev;
cfb->region = pci_ioremap_bar(dev, 0); cfb->region = pci_ioremap_bar(dev, 0);
if (!cfb->region) if (!cfb->region)
@ -1633,10 +1633,10 @@ cyberpro_pci_probe(struct pci_dev *dev, const struct pci_device_id *id)
failed: failed:
iounmap(cfb->region); iounmap(cfb->region);
failed_ioremap: failed_ioremap:
pci_release_regions(dev);
failed_regions:
cyberpro_free_fb_info(cfb); cyberpro_free_fb_info(cfb);
failed_release: failed_release:
pci_release_regions(dev);
return err; return err;
} }