mirror of
https://github.com/torvalds/linux.git
synced 2024-11-01 01:31:44 +00:00
Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6
* 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6: [IA64] update sn2 defconfig [IA64] Add mca recovery failure messages [IA64-SGI] fix SGI Altix tioce_reserve_m32() bug [IA64] enable dumps to capture second page of kernel stack [IA64-SGI] - Reduce overhead of reading sn_topology [IA64-SGI] - Fix discover of nearest cpu node to IO node [IA64] IOC4 config option ordering [IA64] Setup an IA64 specific reclaim distance [IA64] eliminate compile time warnings [IA64] eliminate compile time warnings [IA64-SGI] SN SAL call to inject memory errors [IA64] - Fix MAX_PXM_DOMAINS for systems with > 256 nodes [IA64] Remove unused variable in sn_sal.h [IA64] Remove redundant NULL checks before kfree [IA64] wire up compat_sys_adjtimex()
This commit is contained in:
commit
37e53db8aa
@ -413,6 +413,8 @@ config IA64_PALINFO
|
||||
config SGI_SN
|
||||
def_bool y if (IA64_SGI_SN2 || IA64_GENERIC)
|
||||
|
||||
source "drivers/sn/Kconfig"
|
||||
|
||||
source "drivers/firmware/Kconfig"
|
||||
|
||||
source "fs/Kconfig.binfmt"
|
||||
|
@ -1,7 +1,7 @@
|
||||
#
|
||||
# Automatically generated make config: don't edit
|
||||
# Linux kernel version: 2.6.16-rc5
|
||||
# Mon Feb 27 16:06:38 2006
|
||||
# Linux kernel version: 2.6.17-rc3
|
||||
# Thu Apr 27 11:48:23 2006
|
||||
#
|
||||
|
||||
#
|
||||
@ -24,6 +24,7 @@ CONFIG_SYSCTL=y
|
||||
# CONFIG_AUDIT is not set
|
||||
# CONFIG_IKCONFIG is not set
|
||||
CONFIG_CPUSETS=y
|
||||
CONFIG_RELAY=y
|
||||
CONFIG_INITRAMFS_SOURCE=""
|
||||
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
|
||||
# CONFIG_EMBEDDED is not set
|
||||
@ -38,10 +39,6 @@ CONFIG_BASE_FULL=y
|
||||
CONFIG_FUTEX=y
|
||||
CONFIG_EPOLL=y
|
||||
CONFIG_SHMEM=y
|
||||
CONFIG_CC_ALIGN_FUNCTIONS=0
|
||||
CONFIG_CC_ALIGN_LABELS=0
|
||||
CONFIG_CC_ALIGN_LOOPS=0
|
||||
CONFIG_CC_ALIGN_JUMPS=0
|
||||
CONFIG_SLAB=y
|
||||
# CONFIG_TINY_SHMEM is not set
|
||||
CONFIG_BASE_SMALL=0
|
||||
@ -53,7 +50,6 @@ CONFIG_BASE_SMALL=0
|
||||
CONFIG_MODULES=y
|
||||
CONFIG_MODULE_UNLOAD=y
|
||||
# CONFIG_MODULE_FORCE_UNLOAD is not set
|
||||
CONFIG_OBSOLETE_MODPARM=y
|
||||
# CONFIG_MODVERSIONS is not set
|
||||
# CONFIG_MODULE_SRCVERSION_ALL is not set
|
||||
CONFIG_KMOD=y
|
||||
@ -62,6 +58,7 @@ CONFIG_STOP_MACHINE=y
|
||||
#
|
||||
# Block layer
|
||||
#
|
||||
# CONFIG_BLK_DEV_IO_TRACE is not set
|
||||
|
||||
#
|
||||
# IO Schedulers
|
||||
@ -84,8 +81,10 @@ CONFIG_64BIT=y
|
||||
CONFIG_MMU=y
|
||||
CONFIG_SWIOTLB=y
|
||||
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
|
||||
CONFIG_GENERIC_FIND_NEXT_BIT=y
|
||||
CONFIG_GENERIC_CALIBRATE_DELAY=y
|
||||
CONFIG_TIME_INTERPOLATION=y
|
||||
CONFIG_DMI=y
|
||||
CONFIG_EFI=y
|
||||
CONFIG_GENERIC_IOMAP=y
|
||||
CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
|
||||
@ -116,7 +115,6 @@ CONFIG_IA64_SGI_SN_XP=m
|
||||
CONFIG_FORCE_MAX_ZONEORDER=17
|
||||
CONFIG_SMP=y
|
||||
CONFIG_NR_CPUS=1024
|
||||
CONFIG_IA64_NR_NODES=256
|
||||
# CONFIG_HOTPLUG_CPU is not set
|
||||
CONFIG_SCHED_SMT=y
|
||||
CONFIG_PREEMPT=y
|
||||
@ -136,6 +134,7 @@ CONFIG_ARCH_FLATMEM_ENABLE=y
|
||||
CONFIG_ARCH_SPARSEMEM_ENABLE=y
|
||||
CONFIG_ARCH_DISCONTIGMEM_DEFAULT=y
|
||||
CONFIG_NUMA=y
|
||||
CONFIG_NODES_SHIFT=8
|
||||
CONFIG_VIRTUAL_MEM_MAP=y
|
||||
CONFIG_HOLES_IN_ZONE=y
|
||||
CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID=y
|
||||
@ -187,7 +186,6 @@ CONFIG_ACPI_SYSTEM=y
|
||||
CONFIG_PCI=y
|
||||
CONFIG_PCI_DOMAINS=y
|
||||
# CONFIG_PCI_MSI is not set
|
||||
CONFIG_PCI_LEGACY_PROC=y
|
||||
# CONFIG_PCI_DEBUG is not set
|
||||
|
||||
#
|
||||
@ -231,6 +229,7 @@ CONFIG_SYN_COOKIES=y
|
||||
# CONFIG_INET_AH is not set
|
||||
# CONFIG_INET_ESP is not set
|
||||
# CONFIG_INET_IPCOMP is not set
|
||||
# CONFIG_INET_XFRM_TUNNEL is not set
|
||||
# CONFIG_INET_TUNNEL is not set
|
||||
CONFIG_INET_DIAG=m
|
||||
CONFIG_INET_TCP_DIAG=m
|
||||
@ -238,9 +237,11 @@ CONFIG_INET_TCP_DIAG=m
|
||||
CONFIG_TCP_CONG_BIC=y
|
||||
CONFIG_IPV6=m
|
||||
# CONFIG_IPV6_PRIVACY is not set
|
||||
# CONFIG_IPV6_ROUTER_PREF is not set
|
||||
# CONFIG_INET6_AH is not set
|
||||
# CONFIG_INET6_ESP is not set
|
||||
# CONFIG_INET6_IPCOMP is not set
|
||||
# CONFIG_INET6_XFRM_TUNNEL is not set
|
||||
# CONFIG_INET6_TUNNEL is not set
|
||||
# CONFIG_IPV6_TUNNEL is not set
|
||||
# CONFIG_NETFILTER is not set
|
||||
@ -468,9 +469,14 @@ CONFIG_SCSI_SATA_VITESSE=y
|
||||
# CONFIG_SCSI_INIA100 is not set
|
||||
# CONFIG_SCSI_SYM53C8XX_2 is not set
|
||||
# CONFIG_SCSI_IPR is not set
|
||||
# CONFIG_SCSI_QLOGIC_FC is not set
|
||||
CONFIG_SCSI_QLOGIC_1280=y
|
||||
# CONFIG_SCSI_QLA_FC is not set
|
||||
CONFIG_SCSI_QLA_FC=y
|
||||
CONFIG_SCSI_QLA2XXX_EMBEDDED_FIRMWARE=y
|
||||
# CONFIG_SCSI_QLA21XX is not set
|
||||
CONFIG_SCSI_QLA22XX=y
|
||||
CONFIG_SCSI_QLA2300=y
|
||||
CONFIG_SCSI_QLA2322=y
|
||||
# CONFIG_SCSI_QLA24XX is not set
|
||||
# CONFIG_SCSI_LPFC is not set
|
||||
# CONFIG_SCSI_DC395x is not set
|
||||
# CONFIG_SCSI_DC390T is not set
|
||||
@ -486,6 +492,7 @@ CONFIG_MD_RAID0=y
|
||||
CONFIG_MD_RAID1=y
|
||||
# CONFIG_MD_RAID10 is not set
|
||||
CONFIG_MD_RAID5=y
|
||||
# CONFIG_MD_RAID5_RESHAPE is not set
|
||||
# CONFIG_MD_RAID6 is not set
|
||||
CONFIG_MD_MULTIPATH=y
|
||||
# CONFIG_MD_FAULTY is not set
|
||||
@ -694,6 +701,7 @@ CONFIG_EFI_RTC=y
|
||||
# Ftape, the floppy tape device driver
|
||||
#
|
||||
CONFIG_AGP=y
|
||||
# CONFIG_AGP_VIA is not set
|
||||
CONFIG_AGP_SGI_TIOCA=y
|
||||
# CONFIG_DRM is not set
|
||||
CONFIG_RAW_DRIVER=m
|
||||
@ -734,10 +742,6 @@ CONFIG_MMTIMER=y
|
||||
# Misc devices
|
||||
#
|
||||
|
||||
#
|
||||
# Multimedia Capabilities Port drivers
|
||||
#
|
||||
|
||||
#
|
||||
# Multimedia devices
|
||||
#
|
||||
@ -747,6 +751,7 @@ CONFIG_MMTIMER=y
|
||||
# Digital Video Broadcasting Devices
|
||||
#
|
||||
# CONFIG_DVB is not set
|
||||
# CONFIG_USB_DABUSB is not set
|
||||
|
||||
#
|
||||
# Graphics support
|
||||
@ -757,6 +762,7 @@ CONFIG_MMTIMER=y
|
||||
# Console display driver support
|
||||
#
|
||||
CONFIG_VGA_CONSOLE=y
|
||||
# CONFIG_VGACON_SOFT_SCROLLBACK is not set
|
||||
CONFIG_DUMMY_CONSOLE=y
|
||||
|
||||
#
|
||||
@ -769,6 +775,7 @@ CONFIG_DUMMY_CONSOLE=y
|
||||
#
|
||||
CONFIG_USB_ARCH_HAS_HCD=y
|
||||
CONFIG_USB_ARCH_HAS_OHCI=y
|
||||
CONFIG_USB_ARCH_HAS_EHCI=y
|
||||
CONFIG_USB=m
|
||||
# CONFIG_USB_DEBUG is not set
|
||||
|
||||
@ -829,9 +836,7 @@ CONFIG_USB_HIDINPUT=y
|
||||
# CONFIG_USB_ACECAD is not set
|
||||
# CONFIG_USB_KBTAB is not set
|
||||
# CONFIG_USB_POWERMATE is not set
|
||||
# CONFIG_USB_MTOUCH is not set
|
||||
# CONFIG_USB_ITMTOUCH is not set
|
||||
# CONFIG_USB_EGALAX is not set
|
||||
# CONFIG_USB_TOUCHSCREEN is not set
|
||||
# CONFIG_USB_YEALINK is not set
|
||||
# CONFIG_USB_XPAD is not set
|
||||
# CONFIG_USB_ATI_REMOTE is not set
|
||||
@ -845,15 +850,6 @@ CONFIG_USB_HIDINPUT=y
|
||||
# CONFIG_USB_MDC800 is not set
|
||||
# CONFIG_USB_MICROTEK is not set
|
||||
|
||||
#
|
||||
# USB Multimedia devices
|
||||
#
|
||||
# CONFIG_USB_DABUSB is not set
|
||||
|
||||
#
|
||||
# Video4Linux support is needed for USB Multimedia device support
|
||||
#
|
||||
|
||||
#
|
||||
# USB Network Adapters
|
||||
#
|
||||
@ -904,6 +900,19 @@ CONFIG_USB_MON=y
|
||||
#
|
||||
# CONFIG_MMC is not set
|
||||
|
||||
#
|
||||
# LED devices
|
||||
#
|
||||
# CONFIG_NEW_LEDS is not set
|
||||
|
||||
#
|
||||
# LED drivers
|
||||
#
|
||||
|
||||
#
|
||||
# LED Triggers
|
||||
#
|
||||
|
||||
#
|
||||
# InfiniBand support
|
||||
#
|
||||
@ -911,9 +920,10 @@ CONFIG_INFINIBAND=m
|
||||
# CONFIG_INFINIBAND_USER_MAD is not set
|
||||
CONFIG_INFINIBAND_USER_ACCESS=m
|
||||
CONFIG_INFINIBAND_MTHCA=m
|
||||
# CONFIG_INFINIBAND_MTHCA_DEBUG is not set
|
||||
CONFIG_INFINIBAND_MTHCA_DEBUG=y
|
||||
CONFIG_INFINIBAND_IPOIB=m
|
||||
# CONFIG_INFINIBAND_IPOIB_DEBUG is not set
|
||||
CONFIG_INFINIBAND_IPOIB_DEBUG=y
|
||||
# CONFIG_INFINIBAND_IPOIB_DEBUG_DATA is not set
|
||||
CONFIG_INFINIBAND_SRP=m
|
||||
|
||||
#
|
||||
@ -923,9 +933,14 @@ CONFIG_SGI_IOC4=y
|
||||
CONFIG_SGI_IOC3=y
|
||||
|
||||
#
|
||||
# EDAC - error detection and reporting (RAS)
|
||||
# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
|
||||
#
|
||||
|
||||
#
|
||||
# Real Time Clock
|
||||
#
|
||||
# CONFIG_RTC_CLASS is not set
|
||||
|
||||
#
|
||||
# File systems
|
||||
#
|
||||
@ -997,7 +1012,6 @@ CONFIG_TMPFS=y
|
||||
CONFIG_HUGETLBFS=y
|
||||
CONFIG_HUGETLB_PAGE=y
|
||||
CONFIG_RAMFS=y
|
||||
CONFIG_RELAYFS_FS=m
|
||||
# CONFIG_CONFIGFS_FS is not set
|
||||
|
||||
#
|
||||
|
@ -35,6 +35,9 @@ extern void ia64_elf32_init (struct pt_regs *regs);
|
||||
|
||||
static void elf32_set_personality (void);
|
||||
|
||||
static unsigned long __attribute ((unused))
|
||||
randomize_stack_top(unsigned long stack_top);
|
||||
|
||||
#define setup_arg_pages(bprm,tos,exec) ia32_setup_arg_pages(bprm,exec)
|
||||
#define elf_map elf32_map
|
||||
|
||||
|
@ -334,7 +334,7 @@ ia32_syscall_table:
|
||||
data8 sys_setdomainname
|
||||
data8 sys32_newuname
|
||||
data8 sys32_modify_ldt
|
||||
data8 sys_ni_syscall /* adjtimex */
|
||||
data8 compat_sys_adjtimex
|
||||
data8 sys32_mprotect /* 125 */
|
||||
data8 compat_sys_sigprocmask
|
||||
data8 sys_ni_syscall /* create_module */
|
||||
|
@ -62,6 +62,11 @@ typedef enum {
|
||||
ISOLATE_NONE
|
||||
} isolate_status_t;
|
||||
|
||||
typedef enum {
|
||||
MCA_NOT_RECOVERED = 0,
|
||||
MCA_RECOVERED = 1
|
||||
} recovery_status_t;
|
||||
|
||||
/*
|
||||
* This pool keeps pointers to the section part of SAL error record
|
||||
*/
|
||||
@ -71,6 +76,18 @@ static struct {
|
||||
int max_idx; /* Maximum index of section pointer list pool */
|
||||
} slidx_pool;
|
||||
|
||||
static int
|
||||
fatal_mca(const char *fmt, ...)
|
||||
{
|
||||
va_list args;
|
||||
|
||||
va_start(args, fmt);
|
||||
vprintk(fmt, args);
|
||||
va_end(args);
|
||||
|
||||
return MCA_NOT_RECOVERED;
|
||||
}
|
||||
|
||||
/**
|
||||
* mca_page_isolate - isolate a poisoned page in order not to use it later
|
||||
* @paddr: poisoned memory location
|
||||
@ -424,7 +441,7 @@ recover_from_read_error(slidx_table_t *slidx,
|
||||
|
||||
/* Is target address valid? */
|
||||
if (!pbci->tv)
|
||||
return 0;
|
||||
return fatal_mca(KERN_ALERT "MCA: target address not valid\n");
|
||||
|
||||
/*
|
||||
* cpu read or memory-mapped io read
|
||||
@ -442,7 +459,7 @@ recover_from_read_error(slidx_table_t *slidx,
|
||||
|
||||
/* Is minstate valid? */
|
||||
if (!peidx_bottom(peidx) || !(peidx_bottom(peidx)->valid.minstate))
|
||||
return 0;
|
||||
return fatal_mca(KERN_ALERT "MCA: minstate not valid\n");
|
||||
psr1 =(struct ia64_psr *)&(peidx_minstate_area(peidx)->pmsa_ipsr);
|
||||
psr2 =(struct ia64_psr *)&(peidx_minstate_area(peidx)->pmsa_xpsr);
|
||||
|
||||
@ -476,12 +493,13 @@ recover_from_read_error(slidx_table_t *slidx,
|
||||
psr2->bn = 1;
|
||||
psr2->i = 0;
|
||||
|
||||
return 1;
|
||||
return MCA_RECOVERED;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return 0;
|
||||
return fatal_mca(KERN_ALERT "MCA: kernel context not recovered,"
|
||||
" iip 0x%lx\n", pmsa->pmsa_iip);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -567,13 +585,13 @@ recover_from_processor_error(int platform, slidx_table_t *slidx,
|
||||
* The machine check is corrected.
|
||||
*/
|
||||
if (psp->cm == 1)
|
||||
return 1;
|
||||
return MCA_RECOVERED;
|
||||
|
||||
/*
|
||||
* The error was not contained. Software must be reset.
|
||||
*/
|
||||
if (psp->us || psp->ci == 0)
|
||||
return 0;
|
||||
return fatal_mca(KERN_ALERT "MCA: error not contained\n");
|
||||
|
||||
/*
|
||||
* The cache check and bus check bits have four possible states
|
||||
@ -584,20 +602,22 @@ recover_from_processor_error(int platform, slidx_table_t *slidx,
|
||||
* 1 1 Memory error, attempt recovery
|
||||
*/
|
||||
if (psp->bc == 0 || pbci == NULL)
|
||||
return 0;
|
||||
return fatal_mca(KERN_ALERT "MCA: No bus check\n");
|
||||
|
||||
/*
|
||||
* Sorry, we cannot handle so many.
|
||||
*/
|
||||
if (peidx_bus_check_num(peidx) > 1)
|
||||
return 0;
|
||||
return fatal_mca(KERN_ALERT "MCA: Too many bus checks\n");
|
||||
/*
|
||||
* Well, here is only one bus error.
|
||||
*/
|
||||
if (pbci->ib || pbci->cc)
|
||||
return 0;
|
||||
if (pbci->ib)
|
||||
return fatal_mca(KERN_ALERT "MCA: Internal Bus error\n");
|
||||
if (pbci->cc)
|
||||
return fatal_mca(KERN_ALERT "MCA: Cache-cache error\n");
|
||||
if (pbci->eb && pbci->bsi > 0)
|
||||
return 0;
|
||||
return fatal_mca(KERN_ALERT "MCA: External bus check fatal status\n");
|
||||
|
||||
/*
|
||||
* This is a local MCA and estimated as recoverble external bus error.
|
||||
@ -609,7 +629,7 @@ recover_from_processor_error(int platform, slidx_table_t *slidx,
|
||||
/*
|
||||
* On account of strange SAL error record, we cannot recover.
|
||||
*/
|
||||
return 0;
|
||||
return fatal_mca(KERN_ALERT "MCA: Strange SAL record\n");
|
||||
}
|
||||
|
||||
/**
|
||||
@ -638,12 +658,10 @@ mca_try_to_recover(void *rec, struct ia64_sal_os_state *sos)
|
||||
|
||||
/* Now, OS can recover when there is one processor error section */
|
||||
if (n_proc_err > 1)
|
||||
return 0;
|
||||
else if (n_proc_err == 0) {
|
||||
return fatal_mca(KERN_ALERT "MCA: Too Many Errors\n");
|
||||
else if (n_proc_err == 0)
|
||||
/* Weird SAL record ... We need not to recover */
|
||||
|
||||
return 1;
|
||||
}
|
||||
return fatal_mca(KERN_ALERT "MCA: Weird SAL record\n");
|
||||
|
||||
/* Make index of processor error section */
|
||||
mca_make_peidx((sal_log_processor_info_t*)
|
||||
@ -654,7 +672,7 @@ mca_try_to_recover(void *rec, struct ia64_sal_os_state *sos)
|
||||
|
||||
/* Check whether MCA is global or not */
|
||||
if (is_mca_global(&peidx, &pbci, sos))
|
||||
return 0;
|
||||
return fatal_mca(KERN_ALERT "MCA: global MCA\n");
|
||||
|
||||
/* Try to recover a processor error */
|
||||
return recover_from_processor_error(platform_err, &slidx, &peidx,
|
||||
|
@ -305,13 +305,10 @@ static struct kobj_type cache_ktype_percpu_entry = {
|
||||
|
||||
static void __cpuinit cpu_cache_sysfs_exit(unsigned int cpu)
|
||||
{
|
||||
if (all_cpu_cache_info[cpu].cache_leaves) {
|
||||
kfree(all_cpu_cache_info[cpu].cache_leaves);
|
||||
all_cpu_cache_info[cpu].cache_leaves = NULL;
|
||||
}
|
||||
kfree(all_cpu_cache_info[cpu].cache_leaves);
|
||||
all_cpu_cache_info[cpu].cache_leaves = NULL;
|
||||
all_cpu_cache_info[cpu].num_cache_leaves = 0;
|
||||
memset(&all_cpu_cache_info[cpu].kobj, 0, sizeof(struct kobject));
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -31,7 +31,6 @@
|
||||
#include <asm/irq.h>
|
||||
#include <asm/hw_irq.h>
|
||||
|
||||
|
||||
/*
|
||||
* Low-level SAL-based PCI configuration access functions. Note that SAL
|
||||
* calls are already serialized (via sal_lock), so we don't need another
|
||||
@ -707,7 +706,7 @@ int ia64_pci_legacy_read(struct pci_bus *bus, u16 port, u32 *val, u8 size)
|
||||
*
|
||||
* Simply writes @size bytes of @val to @port.
|
||||
*/
|
||||
int ia64_pci_legacy_write(struct pci_dev *bus, u16 port, u32 val, u8 size)
|
||||
int ia64_pci_legacy_write(struct pci_bus *bus, u16 port, u32 val, u8 size)
|
||||
{
|
||||
int ret = size;
|
||||
|
||||
|
@ -284,6 +284,8 @@ static int sn_hwperf_get_nearest_node_objdata(struct sn_hwperf_object_info *objb
|
||||
/* find nearest node with cpus and nearest memory */
|
||||
for (router=NULL, j=0; j < op->ports; j++) {
|
||||
dest = sn_hwperf_findobj_id(objbuf, nobj, ptdata[j].conn_id);
|
||||
if (dest && SN_HWPERF_IS_ROUTER(dest))
|
||||
router = dest;
|
||||
if (!dest || SN_HWPERF_FOREIGN(dest) ||
|
||||
!SN_HWPERF_IS_NODE(dest) || SN_HWPERF_IS_IONODE(dest)) {
|
||||
continue;
|
||||
@ -299,8 +301,6 @@ static int sn_hwperf_get_nearest_node_objdata(struct sn_hwperf_object_info *objb
|
||||
*near_mem_node = c;
|
||||
found_mem++;
|
||||
}
|
||||
if (SN_HWPERF_IS_ROUTER(dest))
|
||||
router = dest;
|
||||
}
|
||||
|
||||
if (router && (!found_cpu || !found_mem)) {
|
||||
@ -493,7 +493,7 @@ static int sn_topology_show(struct seq_file *s, void *d)
|
||||
* numalink ports
|
||||
*/
|
||||
sz = obj->ports * sizeof(struct sn_hwperf_port_info);
|
||||
if ((ptdata = vmalloc(sz)) == NULL)
|
||||
if ((ptdata = kmalloc(sz, GFP_KERNEL)) == NULL)
|
||||
return -ENOMEM;
|
||||
e = ia64_sn_hwperf_op(sn_hwperf_master_nasid,
|
||||
SN_HWPERF_ENUM_PORTS, obj->id, sz,
|
||||
@ -541,7 +541,7 @@ static int sn_topology_show(struct seq_file *s, void *d)
|
||||
(SN_HWPERF_IS_NL3ROUTER(obj) ||
|
||||
SN_HWPERF_IS_NL3ROUTER(p)) ? "LLP3" : "LLP4");
|
||||
}
|
||||
vfree(ptdata);
|
||||
kfree(ptdata);
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
@ -136,9 +136,7 @@ xpc_get_rsvd_page_pa(int nasid)
|
||||
}
|
||||
|
||||
if (L1_CACHE_ALIGN(len) > buf_len) {
|
||||
if (buf_base != NULL) {
|
||||
kfree(buf_base);
|
||||
}
|
||||
kfree(buf_base);
|
||||
buf_len = L1_CACHE_ALIGN(len);
|
||||
buf = (u64) xpc_kmalloc_cacheline_aligned(buf_len,
|
||||
GFP_KERNEL, &buf_base);
|
||||
@ -159,9 +157,7 @@ xpc_get_rsvd_page_pa(int nasid)
|
||||
}
|
||||
}
|
||||
|
||||
if (buf_base != NULL) {
|
||||
kfree(buf_base);
|
||||
}
|
||||
kfree(buf_base);
|
||||
|
||||
if (status != SALRET_OK) {
|
||||
rp_pa = 0;
|
||||
|
@ -682,9 +682,6 @@ tioce_reserve_m32(struct tioce_kernel *ce_kern, u64 base, u64 limit)
|
||||
int ate_index, last_ate, ps;
|
||||
struct tioce *ce_mmr;
|
||||
|
||||
if (!TIOCE_M32_ADDR(base))
|
||||
return;
|
||||
|
||||
ce_mmr = (struct tioce *)ce_kern->ce_common->ce_pcibus.bs_base;
|
||||
ps = ce_kern->ce_ate3240_pagesize;
|
||||
ate_index = ATE_PAGE(base, ps);
|
||||
@ -693,6 +690,9 @@ tioce_reserve_m32(struct tioce_kernel *ce_kern, u64 base, u64 limit)
|
||||
if (ate_index < 64)
|
||||
ate_index = 64;
|
||||
|
||||
if (last_ate >= TIOCE_NUM_M3240_ATES)
|
||||
last_ate = TIOCE_NUM_M3240_ATES - 1;
|
||||
|
||||
while (ate_index <= last_ate) {
|
||||
u64 ate;
|
||||
|
||||
|
@ -68,8 +68,6 @@ source "drivers/leds/Kconfig"
|
||||
|
||||
source "drivers/infiniband/Kconfig"
|
||||
|
||||
source "drivers/sn/Kconfig"
|
||||
|
||||
source "drivers/edac/Kconfig"
|
||||
|
||||
source "drivers/rtc/Kconfig"
|
||||
|
@ -110,9 +110,8 @@ extern void prefill_possible_map(void);
|
||||
extern int additional_cpus;
|
||||
|
||||
#ifdef CONFIG_ACPI_NUMA
|
||||
/* Proximity bitmap length; _PXM is at most 255 (8 bit)*/
|
||||
#ifdef CONFIG_IA64_NR_NODES
|
||||
#define MAX_PXM_DOMAINS CONFIG_IA64_NR_NODES
|
||||
#if MAX_NUMNODES > 256
|
||||
#define MAX_PXM_DOMAINS MAX_NUMNODES
|
||||
#else
|
||||
#define MAX_PXM_DOMAINS (256)
|
||||
#endif
|
||||
|
@ -347,9 +347,11 @@ extern ia64_mv_dma_supported swiotlb_dma_supported;
|
||||
#endif
|
||||
#ifndef platform_pci_legacy_read
|
||||
# define platform_pci_legacy_read ia64_pci_legacy_read
|
||||
extern int ia64_pci_legacy_read(struct pci_bus *bus, u16 port, u32 *val, u8 size);
|
||||
#endif
|
||||
#ifndef platform_pci_legacy_write
|
||||
# define platform_pci_legacy_write ia64_pci_legacy_write
|
||||
extern int ia64_pci_legacy_write(struct pci_bus *bus, u16 port, u32 val, u8 size);
|
||||
#endif
|
||||
#ifndef platform_inb
|
||||
# define platform_inb __ia64_inb
|
||||
|
@ -45,8 +45,12 @@ struct sn_hwperf_object_info {
|
||||
#define SN_HWPERF_IS_NODE(x) ((x) && strstr((x)->name, "SHub"))
|
||||
#define SN_HWPERF_IS_NODE_SHUB2(x) ((x) && strstr((x)->name, "SHub 2."))
|
||||
#define SN_HWPERF_IS_IONODE(x) ((x) && strstr((x)->name, "TIO"))
|
||||
#define SN_HWPERF_IS_ROUTER(x) ((x) && strstr((x)->name, "Router"))
|
||||
#define SN_HWPERF_IS_NL3ROUTER(x) ((x) && strstr((x)->name, "NL3Router"))
|
||||
#define SN_HWPERF_IS_NL4ROUTER(x) ((x) && strstr((x)->name, "NL4Router"))
|
||||
#define SN_HWPERF_IS_OLDROUTER(x) ((x) && strstr((x)->name, "Router"))
|
||||
#define SN_HWPERF_IS_ROUTER(x) (SN_HWPERF_IS_NL3ROUTER(x) || \
|
||||
SN_HWPERF_IS_NL4ROUTER(x) || \
|
||||
SN_HWPERF_IS_OLDROUTER(x))
|
||||
#define SN_HWPERF_FOREIGN(x) ((x) && !(x)->sn_hwp_this_part && !(x)->sn_hwp_is_shared)
|
||||
#define SN_HWPERF_SAME_OBJTYPE(x,y) ((SN_HWPERF_IS_NODE(x) && SN_HWPERF_IS_NODE(y)) ||\
|
||||
(SN_HWPERF_IS_IONODE(x) && SN_HWPERF_IS_IONODE(y)) ||\
|
||||
|
@ -8,7 +8,7 @@
|
||||
* License. See the file "COPYING" in the main directory of this archive
|
||||
* for more details.
|
||||
*
|
||||
* Copyright (c) 2000-2005 Silicon Graphics, Inc. All rights reserved.
|
||||
* Copyright (c) 2000-2006 Silicon Graphics, Inc. All rights reserved.
|
||||
*/
|
||||
|
||||
|
||||
@ -85,6 +85,7 @@
|
||||
|
||||
#define SN_SAL_GET_PROM_FEATURE_SET 0x02000065
|
||||
#define SN_SAL_SET_OS_FEATURE_SET 0x02000066
|
||||
#define SN_SAL_INJECT_ERROR 0x02000067
|
||||
|
||||
/*
|
||||
* Service-specific constants
|
||||
@ -705,10 +706,8 @@ static inline int
|
||||
sn_change_memprotect(u64 paddr, u64 len, u64 perms, u64 *nasid_array)
|
||||
{
|
||||
struct ia64_sal_retval ret_stuff;
|
||||
int cnodeid;
|
||||
unsigned long irq_flags;
|
||||
|
||||
cnodeid = nasid_to_cnodeid(get_node_number(paddr));
|
||||
local_irq_save(irq_flags);
|
||||
ia64_sal_oemcall_nolock(&ret_stuff, SN_SAL_MEMPROTECT, paddr, len,
|
||||
(u64)nasid_array, perms, 0, 0, 0);
|
||||
@ -1140,4 +1139,16 @@ ia64_sn_set_os_feature(int feature)
|
||||
return rv.status;
|
||||
}
|
||||
|
||||
static inline int
|
||||
sn_inject_error(u64 paddr, u64 *data, u64 *ecc)
|
||||
{
|
||||
struct ia64_sal_retval ret_stuff;
|
||||
unsigned long irq_flags;
|
||||
|
||||
local_irq_save(irq_flags);
|
||||
ia64_sal_oemcall_nolock(&ret_stuff, SN_SAL_INJECT_ERROR, paddr, (u64)data,
|
||||
(u64)ecc, 0, 0, 0, 0);
|
||||
local_irq_restore(irq_flags);
|
||||
return ret_stuff.status;
|
||||
}
|
||||
#endif /* _ASM_IA64_SN_SN_SAL_H */
|
||||
|
@ -67,7 +67,7 @@ struct thread_info {
|
||||
#define end_of_stack(p) (unsigned long *)((void *)(p) + IA64_RBS_OFFSET)
|
||||
|
||||
#define __HAVE_ARCH_TASK_STRUCT_ALLOCATOR
|
||||
#define alloc_task_struct() ((task_t *)__get_free_pages(GFP_KERNEL, KERNEL_STACK_SIZE_ORDER))
|
||||
#define alloc_task_struct() ((task_t *)__get_free_pages(GFP_KERNEL | __GFP_COMP, KERNEL_STACK_SIZE_ORDER))
|
||||
#define free_task_struct(tsk) free_pages((unsigned long) (tsk), KERNEL_STACK_SIZE_ORDER)
|
||||
|
||||
#endif /* !__ASSEMBLY */
|
||||
|
@ -22,6 +22,11 @@
|
||||
/* Nodes w/o CPUs are preferred for memory allocations, see build_zonelists */
|
||||
#define PENALTY_FOR_NODE_WITH_CPUS 255
|
||||
|
||||
/*
|
||||
* Distance above which we begin to use zone reclaim
|
||||
*/
|
||||
#define RECLAIM_DISTANCE 15
|
||||
|
||||
/*
|
||||
* Returns the number of the node containing CPU 'cpu'
|
||||
*/
|
||||
|
Loading…
Reference in New Issue
Block a user