diff options
author | Arnaldo Carvalho de Melo <acme@mandriva.com> | 2005-10-29 09:10:35 +0400 |
---|---|---|
committer | Arnaldo Carvalho de Melo <acme@mandriva.com> | 2005-10-29 09:10:35 +0400 |
commit | fc228a04a4c01bbb2f898e180a14f9a976001f79 (patch) | |
tree | c6015f399aac7f0566dfadb984d843fe67175329 /arch/ia64/hp/common/hwsw_iommu.c | |
parent | 9fcc2e8a752f7d3d889114221b67c459557823e9 (diff) | |
parent | 8a212ab6b8a4ccc6f3c3d1beba5f92655c576404 (diff) | |
download | linux-fc228a04a4c01bbb2f898e180a14f9a976001f79.tar.xz |
Merge branch 'master' of /pub/scm/linux/kernel/git/torvalds/linux-2.6
Diffstat (limited to 'arch/ia64/hp/common/hwsw_iommu.c')
-rw-r--r-- | arch/ia64/hp/common/hwsw_iommu.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/arch/ia64/hp/common/hwsw_iommu.c b/arch/ia64/hp/common/hwsw_iommu.c index 1ba02baf2f94..a5a5637507be 100644 --- a/arch/ia64/hp/common/hwsw_iommu.c +++ b/arch/ia64/hp/common/hwsw_iommu.c @@ -17,7 +17,7 @@ #include <asm/machvec.h> /* swiotlb declarations & definitions: */ -extern void swiotlb_init_with_default_size (size_t size); +extern int swiotlb_late_init_with_default_size (size_t size); extern ia64_mv_dma_alloc_coherent swiotlb_alloc_coherent; extern ia64_mv_dma_free_coherent swiotlb_free_coherent; extern ia64_mv_dma_map_single swiotlb_map_single; @@ -67,7 +67,16 @@ void hwsw_init (void) { /* default to a smallish 2MB sw I/O TLB */ - swiotlb_init_with_default_size (2 * (1<<20)); + if (swiotlb_late_init_with_default_size (2 * (1<<20)) != 0) { +#ifdef CONFIG_IA64_GENERIC + /* Better to have normal DMA than panic */ + printk(KERN_WARNING "%s: Failed to initialize software I/O TLB," + " reverting to hpzx1 platform vector\n", __FUNCTION__); + machvec_init("hpzx1"); +#else + panic("Unable to initialize software I/O TLB services"); +#endif + } } void * |