aboutsummaryrefslogtreecommitdiffstats
path: root/include/asm-ia64
diff options
context:
space:
mode:
Diffstat (limited to 'include/asm-ia64')
-rw-r--r--include/asm-ia64/acpi.h4
-rw-r--r--include/asm-ia64/asmmacro.h11
-rw-r--r--include/asm-ia64/atomic.h8
-rw-r--r--include/asm-ia64/cache.h2
-rw-r--r--include/asm-ia64/linkage.h8
-rw-r--r--include/asm-ia64/machvec_dig.h2
-rw-r--r--include/asm-ia64/numa.h2
-rw-r--r--include/asm-ia64/numnodes.h13
-rw-r--r--include/asm-ia64/page.h2
-rw-r--r--include/asm-ia64/pal.h3
-rw-r--r--include/asm-ia64/poll.h1
-rw-r--r--include/asm-ia64/processor.h1
-rw-r--r--include/asm-ia64/sn/l1.h3
-rw-r--r--include/asm-ia64/sn/pcibr_provider.h1
-rw-r--r--include/asm-ia64/sn/pcidev.h1
-rw-r--r--include/asm-ia64/sn/sn_feature_sets.h3
-rw-r--r--include/asm-ia64/sn/sn_sal.h28
-rw-r--r--include/asm-ia64/system.h2
18 files changed, 68 insertions, 27 deletions
diff --git a/include/asm-ia64/acpi.h b/include/asm-ia64/acpi.h
index f7a517654308..d734585a23cf 100644
--- a/include/asm-ia64/acpi.h
+++ b/include/asm-ia64/acpi.h
@@ -111,7 +111,11 @@ extern int additional_cpus;
111 111
112#ifdef CONFIG_ACPI_NUMA 112#ifdef CONFIG_ACPI_NUMA
113/* Proximity bitmap length; _PXM is at most 255 (8 bit)*/ 113/* Proximity bitmap length; _PXM is at most 255 (8 bit)*/
114#ifdef CONFIG_IA64_NR_NODES
115#define MAX_PXM_DOMAINS CONFIG_IA64_NR_NODES
116#else
114#define MAX_PXM_DOMAINS (256) 117#define MAX_PXM_DOMAINS (256)
118#endif
115extern int __devinitdata pxm_to_nid_map[MAX_PXM_DOMAINS]; 119extern int __devinitdata pxm_to_nid_map[MAX_PXM_DOMAINS];
116extern int __initdata nid_to_pxm_map[MAX_NUMNODES]; 120extern int __initdata nid_to_pxm_map[MAX_NUMNODES];
117#endif 121#endif
diff --git a/include/asm-ia64/asmmacro.h b/include/asm-ia64/asmmacro.h
index 77af457f4ad7..d4cec32083d8 100644
--- a/include/asm-ia64/asmmacro.h
+++ b/include/asm-ia64/asmmacro.h
@@ -51,6 +51,17 @@ name:
51 [99:] x 51 [99:] x
52 52
53/* 53/*
54 * Tag MCA recoverable instruction ranges.
55 */
56
57 .section "__mca_table", "a" // declare section & section attributes
58 .previous
59
60# define MCA_RECOVER_RANGE(y) \
61 .xdata4 "__mca_table", y-., 99f-.; \
62 [99:]
63
64/*
54 * Mark instructions that need a load of a virtual address patched to be 65 * Mark instructions that need a load of a virtual address patched to be
55 * a load of a physical address. We use this either in critical performance 66 * a load of a physical address. We use this either in critical performance
56 * path (ivt.S - TLB miss processing) or in places where it might not be 67 * path (ivt.S - TLB miss processing) or in places where it might not be
diff --git a/include/asm-ia64/atomic.h b/include/asm-ia64/atomic.h
index d3e0dfa99e1f..569ec7574baf 100644
--- a/include/asm-ia64/atomic.h
+++ b/include/asm-ia64/atomic.h
@@ -95,8 +95,14 @@ ia64_atomic64_sub (__s64 i, atomic64_t *v)
95({ \ 95({ \
96 int c, old; \ 96 int c, old; \
97 c = atomic_read(v); \ 97 c = atomic_read(v); \
98 while (c != (u) && (old = atomic_cmpxchg((v), c, c + (a))) != c) \ 98 for (;;) { \
99 if (unlikely(c == (u))) \
100 break; \
101 old = atomic_cmpxchg((v), c, c + (a)); \
102 if (likely(old == c)) \
103 break; \
99 c = old; \ 104 c = old; \
105 } \
100 c != (u); \ 106 c != (u); \
101}) 107})
102#define atomic_inc_not_zero(v) atomic_add_unless((v), 1, 0) 108#define atomic_inc_not_zero(v) atomic_add_unless((v), 1, 0)
diff --git a/include/asm-ia64/cache.h b/include/asm-ia64/cache.h
index 40dd25195d65..f0a104db8f20 100644
--- a/include/asm-ia64/cache.h
+++ b/include/asm-ia64/cache.h
@@ -25,4 +25,6 @@
25# define SMP_CACHE_BYTES (1 << 3) 25# define SMP_CACHE_BYTES (1 << 3)
26#endif 26#endif
27 27
28#define __read_mostly __attribute__((__section__(".data.read_mostly")))
29
28#endif /* _ASM_IA64_CACHE_H */ 30#endif /* _ASM_IA64_CACHE_H */
diff --git a/include/asm-ia64/linkage.h b/include/asm-ia64/linkage.h
index 14cd72cd8007..ef22a45c1890 100644
--- a/include/asm-ia64/linkage.h
+++ b/include/asm-ia64/linkage.h
@@ -1,6 +1,14 @@
1#ifndef __ASM_LINKAGE_H 1#ifndef __ASM_LINKAGE_H
2#define __ASM_LINKAGE_H 2#define __ASM_LINKAGE_H
3 3
4#ifndef __ASSEMBLY__
5
4#define asmlinkage CPP_ASMLINKAGE __attribute__((syscall_linkage)) 6#define asmlinkage CPP_ASMLINKAGE __attribute__((syscall_linkage))
5 7
8#else
9
10#include <asm/asmmacro.h>
11
12#endif
13
6#endif 14#endif
diff --git a/include/asm-ia64/machvec_dig.h b/include/asm-ia64/machvec_dig.h
index 4dc8522c974f..8a0752f40987 100644
--- a/include/asm-ia64/machvec_dig.h
+++ b/include/asm-ia64/machvec_dig.h
@@ -2,7 +2,6 @@
2#define _ASM_IA64_MACHVEC_DIG_h 2#define _ASM_IA64_MACHVEC_DIG_h
3 3
4extern ia64_mv_setup_t dig_setup; 4extern ia64_mv_setup_t dig_setup;
5extern ia64_mv_irq_init_t dig_irq_init;
6 5
7/* 6/*
8 * This stuff has dual use! 7 * This stuff has dual use!
@@ -13,6 +12,5 @@ extern ia64_mv_irq_init_t dig_irq_init;
13 */ 12 */
14#define platform_name "dig" 13#define platform_name "dig"
15#define platform_setup dig_setup 14#define platform_setup dig_setup
16#define platform_irq_init dig_irq_init
17 15
18#endif /* _ASM_IA64_MACHVEC_DIG_h */ 16#endif /* _ASM_IA64_MACHVEC_DIG_h */
diff --git a/include/asm-ia64/numa.h b/include/asm-ia64/numa.h
index 3ae128fe0823..dae6aeb7b119 100644
--- a/include/asm-ia64/numa.h
+++ b/include/asm-ia64/numa.h
@@ -23,7 +23,7 @@
23 23
24#include <asm/mmzone.h> 24#include <asm/mmzone.h>
25 25
26extern u8 cpu_to_node_map[NR_CPUS] __cacheline_aligned; 26extern u16 cpu_to_node_map[NR_CPUS] __cacheline_aligned;
27extern cpumask_t node_to_cpu_mask[MAX_NUMNODES] __cacheline_aligned; 27extern cpumask_t node_to_cpu_mask[MAX_NUMNODES] __cacheline_aligned;
28 28
29/* Stuff below this line could be architecture independent */ 29/* Stuff below this line could be architecture independent */
diff --git a/include/asm-ia64/numnodes.h b/include/asm-ia64/numnodes.h
index 21cff4da5485..e9d356f549d9 100644
--- a/include/asm-ia64/numnodes.h
+++ b/include/asm-ia64/numnodes.h
@@ -3,13 +3,18 @@
3 3
4#ifdef CONFIG_IA64_DIG 4#ifdef CONFIG_IA64_DIG
5/* Max 8 Nodes */ 5/* Max 8 Nodes */
6#define NODES_SHIFT 3 6# define NODES_SHIFT 3
7#elif defined(CONFIG_IA64_HP_ZX1) || defined(CONFIG_IA64_HP_ZX1_SWIOTLB) 7#elif defined(CONFIG_IA64_HP_ZX1) || defined(CONFIG_IA64_HP_ZX1_SWIOTLB)
8/* Max 32 Nodes */ 8/* Max 32 Nodes */
9#define NODES_SHIFT 5 9# define NODES_SHIFT 5
10#elif defined(CONFIG_IA64_SGI_SN2) || defined(CONFIG_IA64_GENERIC) 10#elif defined(CONFIG_IA64_SGI_SN2) || defined(CONFIG_IA64_GENERIC)
11/* Max 256 Nodes */ 11# if CONFIG_IA64_NR_NODES == 256
12#define NODES_SHIFT 8 12# define NODES_SHIFT 8
13# elif CONFIG_IA64_NR_NODES <= 512
14# define NODES_SHIFT 9
15# elif CONFIG_IA64_NR_NODES <= 1024
16# define NODES_SHIFT 10
17# endif
13#endif 18#endif
14 19
15#endif /* _ASM_MAX_NUMNODES_H */ 20#endif /* _ASM_MAX_NUMNODES_H */
diff --git a/include/asm-ia64/page.h b/include/asm-ia64/page.h
index 3ab27333dae4..6e9aa23250c4 100644
--- a/include/asm-ia64/page.h
+++ b/include/asm-ia64/page.h
@@ -149,7 +149,7 @@ typedef union ia64_va {
149 | (REGION_OFFSET(x) >> (HPAGE_SHIFT-PAGE_SHIFT))) 149 | (REGION_OFFSET(x) >> (HPAGE_SHIFT-PAGE_SHIFT)))
150# define HUGETLB_PAGE_ORDER (HPAGE_SHIFT - PAGE_SHIFT) 150# define HUGETLB_PAGE_ORDER (HPAGE_SHIFT - PAGE_SHIFT)
151# define is_hugepage_only_range(mm, addr, len) \ 151# define is_hugepage_only_range(mm, addr, len) \
152 (REGION_NUMBER(addr) == RGN_HPAGE && \ 152 (REGION_NUMBER(addr) == RGN_HPAGE || \
153 REGION_NUMBER((addr)+(len)-1) == RGN_HPAGE) 153 REGION_NUMBER((addr)+(len)-1) == RGN_HPAGE)
154extern unsigned int hpage_shift; 154extern unsigned int hpage_shift;
155#endif 155#endif
diff --git a/include/asm-ia64/pal.h b/include/asm-ia64/pal.h
index 7708ec669a33..4e7e6f23b08c 100644
--- a/include/asm-ia64/pal.h
+++ b/include/asm-ia64/pal.h
@@ -1640,8 +1640,7 @@ ia64_pal_logical_to_phys(u64 proc_number, pal_logical_to_physical_t *mapping)
1640 1640
1641 if (iprv.status == PAL_STATUS_SUCCESS) 1641 if (iprv.status == PAL_STATUS_SUCCESS)
1642 { 1642 {
1643 if (proc_number == 0) 1643 mapping->overview.overview_data = iprv.v0;
1644 mapping->overview.overview_data = iprv.v0;
1645 mapping->ppli1.ppli1_data = iprv.v1; 1644 mapping->ppli1.ppli1_data = iprv.v1;
1646 mapping->ppli2.ppli2_data = iprv.v2; 1645 mapping->ppli2.ppli2_data = iprv.v2;
1647 } 1646 }
diff --git a/include/asm-ia64/poll.h b/include/asm-ia64/poll.h
index 160258a0528d..bcaf9f140242 100644
--- a/include/asm-ia64/poll.h
+++ b/include/asm-ia64/poll.h
@@ -21,6 +21,7 @@
21#define POLLWRBAND 0x0200 21#define POLLWRBAND 0x0200
22#define POLLMSG 0x0400 22#define POLLMSG 0x0400
23#define POLLREMOVE 0x1000 23#define POLLREMOVE 0x1000
24#define POLLRDHUP 0x2000
24 25
25struct pollfd { 26struct pollfd {
26 int fd; 27 int fd;
diff --git a/include/asm-ia64/processor.h b/include/asm-ia64/processor.h
index 128fefd8056f..b3bd58e80690 100644
--- a/include/asm-ia64/processor.h
+++ b/include/asm-ia64/processor.h
@@ -181,7 +181,6 @@ DECLARE_PER_CPU(struct cpuinfo_ia64, cpu_info);
181#define local_cpu_data (&__ia64_per_cpu_var(cpu_info)) 181#define local_cpu_data (&__ia64_per_cpu_var(cpu_info))
182#define cpu_data(cpu) (&per_cpu(cpu_info, cpu)) 182#define cpu_data(cpu) (&per_cpu(cpu_info, cpu))
183 183
184extern void identify_cpu (struct cpuinfo_ia64 *);
185extern void print_cpu_info (struct cpuinfo_ia64 *); 184extern void print_cpu_info (struct cpuinfo_ia64 *);
186 185
187typedef struct { 186typedef struct {
diff --git a/include/asm-ia64/sn/l1.h b/include/asm-ia64/sn/l1.h
index e3b819110d47..344bf44bb356 100644
--- a/include/asm-ia64/sn/l1.h
+++ b/include/asm-ia64/sn/l1.h
@@ -34,6 +34,8 @@
34#define L1_BRICKTYPE_IA 0x6b /* k */ 34#define L1_BRICKTYPE_IA 0x6b /* k */
35#define L1_BRICKTYPE_ATHENA 0x2b /* + */ 35#define L1_BRICKTYPE_ATHENA 0x2b /* + */
36#define L1_BRICKTYPE_DAYTONA 0x7a /* z */ 36#define L1_BRICKTYPE_DAYTONA 0x7a /* z */
37#define L1_BRICKTYPE_1932 0x2c /* . */
38#define L1_BRICKTYPE_191010 0x2e /* , */
37 39
38/* board type response codes */ 40/* board type response codes */
39#define L1_BOARDTYPE_IP69 0x0100 /* CA */ 41#define L1_BOARDTYPE_IP69 0x0100 /* CA */
@@ -46,5 +48,4 @@
46#define L1_BOARDTYPE_DAYTONA 0x0800 /* AD */ 48#define L1_BOARDTYPE_DAYTONA 0x0800 /* AD */
47#define L1_BOARDTYPE_INVAL (-1) /* invalid brick type */ 49#define L1_BOARDTYPE_INVAL (-1) /* invalid brick type */
48 50
49
50#endif /* _ASM_IA64_SN_L1_H */ 51#endif /* _ASM_IA64_SN_L1_H */
diff --git a/include/asm-ia64/sn/pcibr_provider.h b/include/asm-ia64/sn/pcibr_provider.h
index a601d3af39b6..51260ab70d91 100644
--- a/include/asm-ia64/sn/pcibr_provider.h
+++ b/include/asm-ia64/sn/pcibr_provider.h
@@ -144,4 +144,5 @@ extern int sal_pcibr_slot_enable(struct pcibus_info *soft, int device,
144 void *resp); 144 void *resp);
145extern int sal_pcibr_slot_disable(struct pcibus_info *soft, int device, 145extern int sal_pcibr_slot_disable(struct pcibus_info *soft, int device,
146 int action, void *resp); 146 int action, void *resp);
147extern u16 sn_ioboard_to_pci_bus(struct pci_bus *pci_bus);
147#endif 148#endif
diff --git a/include/asm-ia64/sn/pcidev.h b/include/asm-ia64/sn/pcidev.h
index 38cdffbc4c7b..eac3561574be 100644
--- a/include/asm-ia64/sn/pcidev.h
+++ b/include/asm-ia64/sn/pcidev.h
@@ -76,6 +76,7 @@ extern void sn_pci_controller_fixup(int segment, int busnum,
76 struct pci_bus *bus); 76 struct pci_bus *bus);
77extern void sn_bus_store_sysdata(struct pci_dev *dev); 77extern void sn_bus_store_sysdata(struct pci_dev *dev);
78extern void sn_bus_free_sysdata(void); 78extern void sn_bus_free_sysdata(void);
79extern void sn_generate_path(struct pci_bus *pci_bus, char *address);
79extern void sn_pci_fixup_slot(struct pci_dev *dev); 80extern void sn_pci_fixup_slot(struct pci_dev *dev);
80extern void sn_pci_unfixup_slot(struct pci_dev *dev); 81extern void sn_pci_unfixup_slot(struct pci_dev *dev);
81extern void sn_irq_lh_init(void); 82extern void sn_irq_lh_init(void);
diff --git a/include/asm-ia64/sn/sn_feature_sets.h b/include/asm-ia64/sn/sn_feature_sets.h
index ff33e3bd3f8e..30dcfa442e53 100644
--- a/include/asm-ia64/sn/sn_feature_sets.h
+++ b/include/asm-ia64/sn/sn_feature_sets.h
@@ -30,8 +30,7 @@ extern int sn_prom_feature_available(int id);
30 30
31#define PRF_PAL_CACHE_FLUSH_SAFE 0 31#define PRF_PAL_CACHE_FLUSH_SAFE 0
32#define PRF_DEVICE_FLUSH_LIST 1 32#define PRF_DEVICE_FLUSH_LIST 1
33 33#define PRF_HOTPLUG_SUPPORT 2
34
35 34
36/* --------------------- OS Features -------------------------------*/ 35/* --------------------- OS Features -------------------------------*/
37 36
diff --git a/include/asm-ia64/sn/sn_sal.h b/include/asm-ia64/sn/sn_sal.h
index e77f0c9b7d3d..244449df7411 100644
--- a/include/asm-ia64/sn/sn_sal.h
+++ b/include/asm-ia64/sn/sn_sal.h
@@ -907,18 +907,22 @@ ia64_sn_sysctl_tio_clock_reset(nasid_t nasid)
907/* 907/*
908 * Get the associated ioboard type for a given nasid. 908 * Get the associated ioboard type for a given nasid.
909 */ 909 */
910static inline int 910static inline s64
911ia64_sn_sysctl_ioboard_get(nasid_t nasid) 911ia64_sn_sysctl_ioboard_get(nasid_t nasid, u16 *ioboard)
912{ 912{
913 struct ia64_sal_retval rv; 913 struct ia64_sal_retval isrv;
914 SAL_CALL_REENTRANT(rv, SN_SAL_SYSCTL_OP, SAL_SYSCTL_OP_IOBOARD, 914 SAL_CALL_REENTRANT(isrv, SN_SAL_SYSCTL_OP, SAL_SYSCTL_OP_IOBOARD,
915 nasid, 0, 0, 0, 0, 0); 915 nasid, 0, 0, 0, 0, 0);
916 if (rv.v0 != 0) 916 if (isrv.v0 != 0) {
917 return (int)rv.v0; 917 *ioboard = isrv.v0;
918 if (rv.v1 != 0) 918 return isrv.status;
919 return (int)rv.v1; 919 }
920 920 if (isrv.v1 != 0) {
921 return 0; 921 *ioboard = isrv.v1;
922 return isrv.status;
923 }
924
925 return isrv.status;
922} 926}
923 927
924/** 928/**
@@ -1037,7 +1041,7 @@ ia64_sn_get_sn_info(int fc, u8 *shubtype, u16 *nasid_bitmask, u8 *nasid_shift,
1037 1041
1038/***** BEGIN HACK - temp til old proms no longer supported ********/ 1042/***** BEGIN HACK - temp til old proms no longer supported ********/
1039 if (ret_stuff.status == SALRET_NOT_IMPLEMENTED) { 1043 if (ret_stuff.status == SALRET_NOT_IMPLEMENTED) {
1040 int nasid = get_sapicid() & 0xfff;; 1044 int nasid = get_sapicid() & 0xfff;
1041#define SH_SHUB_ID_NODES_PER_BIT_MASK 0x001f000000000000UL 1045#define SH_SHUB_ID_NODES_PER_BIT_MASK 0x001f000000000000UL
1042#define SH_SHUB_ID_NODES_PER_BIT_SHFT 48 1046#define SH_SHUB_ID_NODES_PER_BIT_SHFT 48
1043 if (shubtype) *shubtype = 0; 1047 if (shubtype) *shubtype = 0;
diff --git a/include/asm-ia64/system.h b/include/asm-ia64/system.h
index cd4233d66f15..2f3620593687 100644
--- a/include/asm-ia64/system.h
+++ b/include/asm-ia64/system.h
@@ -265,6 +265,8 @@ void sched_cacheflush(void);
265 265
266#define arch_align_stack(x) (x) 266#define arch_align_stack(x) (x)
267 267
268void default_idle(void);
269
268#endif /* __KERNEL__ */ 270#endif /* __KERNEL__ */
269 271
270#endif /* __ASSEMBLY__ */ 272#endif /* __ASSEMBLY__ */