linux/drivers/char/agp
FUJITA Tomonori f405d2c023 x86/agp: Fix agp_amd64_init() initialization with CONFIG_GART_IOMMU enabled
with CONFIG_GART_IOMMU enabled drivers/char/agp/amd64-agp.c has:

 #ifndef CONFIG_GART_IOMMU
 module_init(agp_amd64_init);
 module_exit(agp_amd64_cleanup);
 #endif

agp_amd64_init() was called via gart_iommu_init with
CONFIG_GART_IOMMU=y agp_amd64_init() was called via module_init
with CONFIG_GART_IOMMU=n

The commit 75f1cdf1dd changes the
x86 dma initialization routine: gart_iommu_init() is called only
when GART IOMMU is detected. So when GART IOMMU isn't detected,
agp_amd64_init isn't called.

Marin Mitov reported this issue:

 http://marc.info/?l=linux-kernel&m=126192729110083&w=2

With this patch, agp_amd64_init() is always called via
module_init (the above ifndef is removed). If agp_amd64_init()
is called via gart_iommu_init() earlier, agp_amd64_init()
finishes without doing anything (when it is called via
module_init).

Reported-by: Marin Mitov <mitov@issp.bas.bg>
Tested-by: Marin Mitov <mitov@issp.bas.bg>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Cc: davej@redhat.com
LKML-Reference: <20091228181118C.fujita.tomonori@lab.ntt.co.jp>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
2009-12-30 11:52:04 +01:00
..
agp.h const: mark struct vm_struct_operations 2009-09-27 11:39:25 -07:00
ali-agp.c agp: kill phys_to_gart() and gart_to_phys() 2009-08-03 09:05:00 +01:00
alpha-agp.c const: mark struct vm_struct_operations 2009-09-27 11:39:25 -07:00
amd64-agp.c x86/agp: Fix agp_amd64_init() initialization with CONFIG_GART_IOMMU enabled 2009-12-30 11:52:04 +01:00
amd-k7-agp.c agp: kill phys_to_gart() and gart_to_phys() 2009-08-03 09:05:00 +01:00
ati-agp.c agp: kill phys_to_gart() and gart_to_phys() 2009-08-03 09:05:00 +01:00
backend.c mm: replace various uses of num_physpages by totalram_pages 2009-09-22 07:17:38 -07:00
compat_ioctl.c
compat_ioctl.h
efficeon-agp.c agp: kill phys_to_gart() and gart_to_phys() 2009-08-03 09:05:00 +01:00
frontend.c agp: Remove the BKL from agp_open 2009-10-14 17:36:54 +02:00
generic.c agp: kill phys_to_gart() and gart_to_phys() 2009-08-03 09:05:00 +01:00
hp-agp.c Merge branch 'acpica' into release 2009-09-19 01:45:22 -04:00
i460-agp.c agp: kill phys_to_gart() and gart_to_phys() 2009-08-03 09:05:00 +01:00
intel-agp.c Merge remote branch 'anholt/drm-intel-next' into drm-linus 2009-12-10 15:44:19 +10:00
isoch.c
Kconfig agp/amd64: Remove GART dependency on AGP_AMD64 2009-10-29 17:29:40 +01:00
Makefile
nvidia-agp.c agp: kill phys_to_gart() and gart_to_phys() 2009-08-03 09:05:00 +01:00
parisc-agp.c agp: parisc-agp.c - use correct page_mask function 2009-10-03 01:27:56 -04:00
sgi-agp.c agp: kill phys_to_gart() and gart_to_phys() 2009-08-03 09:05:00 +01:00
sis-agp.c agp: enable optimized agp_alloc_pages methods 2008-08-22 06:07:33 +02:00
sworks-agp.c agp: kill phys_to_gart() and gart_to_phys() 2009-08-03 09:05:00 +01:00
uninorth-agp.c agp/uninorth: Unify U3 and pre-U3 insert_memory and remove_memory hooks. 2009-12-09 17:09:30 +11:00
via-agp.c Update email addresses. 2008-10-20 12:50:03 -07:00