prevent suspend when iommu is used
PATCH 1/1 prevent suspend when iommu is used
commit cd76374e9de4501acc74f833dc6cb5e7a5dca115
Author: Pavel Machek <[email protected]> Date: Thu May 29 00:30:21 2008 -0700
suspend-vs-iommu: prevent suspend if we could not resume
iommu/gart support misses suspend/resume code, which can do bad stuff, including memory corruption on resume. Prevent system suspend in case we would be unable to resume.
Signed-off-by Pavel Machek <[email protected]>
Tested-by Patrick <[email protected]>
Signed-off-by Andrew Morton <[email protected]>
Signed-off-by Ingo Molnar <[email protected]>
arch/x86/kernel/pci-gart_64.c +30 -1
@@ -26,6 +26,7 @@ #include <linux/bitops.h>#include <linux/kdebug.h> #include <linux/scatterlist.h> #include <linux/iommu-helper.h> +#include <linux/sysdev.h> #include <asm/atomic.h> #include <asm/io.h> #include <asm/mtrr.h>
@@ -548,6 +549,28 @@ static __init unsigned read_aperture(strreturn aper_base; } +static int gart_resume (struct sys_device *dev) +{ +return 0 ; +} + +static int gart_suspend (struct sys_device *dev,pm_message_t state) +{ +return -EINVAL ; +} + +static struct sysdev_class gart_sysdev_class = { + .name ="gart" , + .suspend = gart_suspend, + .resume = gart_resume, + +}; + +static struct sys_device device_gart = { + .id =0 , + .cls = &gart_sysdev_class, +}; +/* * Private Northbridge GATT initialization in case we cannot use the * AGP driver for some reason.
@@ -558,7 +581,7 @@ static __init int init_k8_gatt(struct agunsigned aper_base, new_aper_base;struct pci_dev *dev;void *gatt; -int i; +int i, error;printk (KERN_INFO "PCI-DMA: Disabling AGP.\n" ); aper_size = aper_base = info->aper_size =0 ;
@@ -606,6 +629,12 @@ static __init int init_k8_gatt(struct agpci_write_config_dword (dev,0x90 , ctl); } + + error =sysdev_class_register (&gart_sysdev_class); +if (!error) + error =sysdev_register (&device_gart); +if (error) +panic ("Could not register gart_sysdev -- would corrupt data on next suspend" );flush_gart (); printk(KERN_INFO "PCI-DMA: aperture base @ %x size %u KB\n",
Signature · 2 lines
(english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html