[PATCH] - Eliminate machvec calls to null functions

From: Jack Steiner
Date: Wed Jul 07 2004 - 15:19:08 EST


Here is a patch to eliminate calls to null platform vectors for
non-GENERIC kernels.

If this looks ok, then I'll update the tlb_migrate patch &
resubmit it. (Apply this machvec patch first...)




Signed-off-by: Jack Steiner <steiner@xxxxxxx>




Index: linux/include/asm-ia64/machvec.h
===================================================================
--- linux.orig/include/asm-ia64/machvec.h
+++ linux/include/asm-ia64/machvec.h
@@ -69,12 +69,20 @@ typedef unsigned short ia64_mv_readw_rel
typedef unsigned int ia64_mv_readl_relaxed_t (void *);
typedef unsigned long ia64_mv_readq_relaxed_t (void *);

-extern void machvec_noop (void);
extern void machvec_setup (char **);
extern void machvec_timer_interrupt (int, void *, struct pt_regs *);
extern void machvec_dma_sync_single (struct device *, dma_addr_t, size_t, int);
extern void machvec_dma_sync_sg (struct device *, struct scatterlist *, int, int);

+#ifdef CONFIG_IA64_GENERIC
+# define machvec_noop(noop_function) noop_function
+#else
+# define machvec_null(...)
+# define machvec_noop(noop_function) machvec_null
+#endif
+extern void machvec_noop_void (void);
+
+
# if defined (CONFIG_IA64_HP_SIM)
# include <asm/machvec_hpsim.h>
# elif defined (CONFIG_IA64_DIG)
@@ -245,10 +253,10 @@ extern ia64_mv_dma_supported swiotlb_dm
# define platform_setup machvec_setup
#endif
#ifndef platform_cpu_init
-# define platform_cpu_init machvec_noop
+# define platform_cpu_init machvec_noop(machvec_noop_void)
#endif
#ifndef platform_irq_init
-# define platform_irq_init machvec_noop
+# define platform_irq_init machvec_noop(machvec_noop_void)
#endif

#ifndef platform_send_ipi
Index: linux/arch/ia64/kernel/machvec.c
===================================================================
--- linux.orig/arch/ia64/kernel/machvec.c
+++ linux/arch/ia64/kernel/machvec.c
@@ -44,10 +44,10 @@ machvec_init (const char *name)
#endif /* CONFIG_IA64_GENERIC */

void
-machvec_noop (void)
+machvec_noop_void (void)
{
}
-EXPORT_SYMBOL(machvec_noop);
+EXPORT_SYMBOL(machvec_noop_void);

void
machvec_setup (char **arg)
Index: linux/include/asm-ia64/machvec_sn2.h
===================================================================
--- linux.orig/include/asm-ia64/machvec_sn2.h
+++ linux/include/asm-ia64/machvec_sn2.h
@@ -101,7 +101,7 @@ extern ia64_mv_dma_supported sn_dma_sup
#define platform_irq_desc sn_irq_desc
#define platform_irq_to_vector sn_irq_to_vector
#define platform_local_vector_to_irq sn_local_vector_to_irq
-#define platform_dma_init machvec_noop
+#define platform_dma_init machvec_noop_void
#define platform_dma_alloc_coherent sn_dma_alloc_coherent
#define platform_dma_free_coherent sn_dma_free_coherent
#define platform_dma_map_single sn_dma_map_single
Index: linux/include/asm-ia64/machvec_hpzx1.h
===================================================================
--- linux.orig/include/asm-ia64/machvec_hpzx1.h
+++ linux/include/asm-ia64/machvec_hpzx1.h
@@ -21,7 +21,7 @@ extern ia64_mv_dma_mapping_error sba_dma
*/
#define platform_name "hpzx1"
#define platform_setup sba_setup
-#define platform_dma_init machvec_noop
+#define platform_dma_init machvec_noop_void
#define platform_dma_alloc_coherent sba_alloc_coherent
#define platform_dma_free_coherent sba_free_coherent
#define platform_dma_map_single sba_map_single


--
Thanks

Jack Steiner (steiner@xxxxxxx) 651-683-5302
Principal Engineer SGI - Silicon Graphics, Inc.


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/