viafb: fix ioremap_nocache error handling
Correct the returned error code for remapping the video framebuffer. Introduce error handling for remapping MMIO register address space to avoid a NULL pointer dereference. Disable hardware acceleration if remapping MMIO register address space failed as those registers are only used for hardware acceleration. Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de> Cc: Scott Fang <ScottFang@viatech.com.cn> Cc: Joseph Chan <JosephChan@via.com.tw> Cc: Harald Welte <laforge@gnumonks.org> Cc: Jonathan Corbet <corbet@lwn.net> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
09cf11806e
commit
bc6932bb4a
@ -2134,12 +2134,16 @@ static int __devinit via_pci_probe(void)
|
|||||||
|
|
||||||
if (!viaparinfo->fbmem_virt) {
|
if (!viaparinfo->fbmem_virt) {
|
||||||
printk(KERN_INFO "ioremap failed\n");
|
printk(KERN_INFO "ioremap failed\n");
|
||||||
return -1;
|
return -ENOMEM;
|
||||||
}
|
}
|
||||||
|
|
||||||
viafb_get_mmio_info(&viaparinfo->mmio_base, &viaparinfo->mmio_len);
|
viafb_get_mmio_info(&viaparinfo->mmio_base, &viaparinfo->mmio_len);
|
||||||
viaparinfo->io_virt = ioremap_nocache(viaparinfo->mmio_base,
|
viaparinfo->io_virt = ioremap_nocache(viaparinfo->mmio_base,
|
||||||
viaparinfo->mmio_len);
|
viaparinfo->mmio_len);
|
||||||
|
if (!viaparinfo->io_virt) {
|
||||||
|
printk(KERN_WARNING "ioremap failed: hardware acceleration disabled\n");
|
||||||
|
viafb_accel = 0;
|
||||||
|
}
|
||||||
|
|
||||||
viafbinfo->node = 0;
|
viafbinfo->node = 0;
|
||||||
viafbinfo->fbops = &viafb_ops;
|
viafbinfo->fbops = &viafb_ops;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user