Commit e720b735 authored by Tony Luck's avatar Tony Luck

Merge agluck-lia64.sc.intel.com:/data/home/aegl/BK/Linus

into agluck-lia64.sc.intel.com:/data/home/aegl/BK/linux-ia64-release-2.6.9
parents bc633e90 8731cfe5
This diff is collapsed.
...@@ -437,8 +437,9 @@ acpi_numa_arch_fixup (void) ...@@ -437,8 +437,9 @@ acpi_numa_arch_fixup (void)
{ {
int i, j, node_from, node_to; int i, j, node_from, node_to;
/* If there's no SRAT, fix the phys_id */ /* If there's no SRAT, fix the phys_id and mark node 0 online */
if (srat_num_cpus == 0) { if (srat_num_cpus == 0) {
node_set_online(0);
node_cpuid[0].phys_id = hard_smp_processor_id(); node_cpuid[0].phys_id = hard_smp_processor_id();
return; return;
} }
......
...@@ -2286,7 +2286,7 @@ pfm_smpl_buffer_alloc(struct task_struct *task, pfm_context_t *ctx, unsigned lon ...@@ -2286,7 +2286,7 @@ pfm_smpl_buffer_alloc(struct task_struct *task, pfm_context_t *ctx, unsigned lon
* if ((mm->total_vm << PAGE_SHIFT) + len> task->rlim[RLIMIT_AS].rlim_cur) * if ((mm->total_vm << PAGE_SHIFT) + len> task->rlim[RLIMIT_AS].rlim_cur)
* return -ENOMEM; * return -ENOMEM;
*/ */
if (size > task->rlim[RLIMIT_MEMLOCK].rlim_cur) return -EAGAIN; if (size > task->rlim[RLIMIT_MEMLOCK].rlim_cur) return -ENOMEM;
/* /*
* We do the easy to undo allocations first. * We do the easy to undo allocations first.
...@@ -2601,7 +2601,7 @@ pfm_task_incompatible(pfm_context_t *ctx, struct task_struct *task) ...@@ -2601,7 +2601,7 @@ pfm_task_incompatible(pfm_context_t *ctx, struct task_struct *task)
*/ */
if (task == current) return 0; if (task == current) return 0;
if (task->state != TASK_STOPPED) { if ((task->state != TASK_STOPPED) && (task->state != TASK_TRACED)) {
DPRINT(("cannot attach to non-stopped task [%d] state=%ld\n", task->pid, task->state)); DPRINT(("cannot attach to non-stopped task [%d] state=%ld\n", task->pid, task->state));
return -EBUSY; return -EBUSY;
} }
...@@ -4755,7 +4755,7 @@ pfm_check_task_state(pfm_context_t *ctx, int cmd, unsigned long flags) ...@@ -4755,7 +4755,7 @@ pfm_check_task_state(pfm_context_t *ctx, int cmd, unsigned long flags)
* the task must be stopped. * the task must be stopped.
*/ */
if (PFM_CMD_STOPPED(cmd)) { if (PFM_CMD_STOPPED(cmd)) {
if (task->state != TASK_STOPPED) { if ((task->state != TASK_STOPPED) && (task->state != TASK_TRACED)) {
DPRINT(("[%d] task not in stopped state\n", task->pid)); DPRINT(("[%d] task not in stopped state\n", task->pid));
return -EBUSY; return -EBUSY;
} }
......
This diff is collapsed.
...@@ -34,6 +34,7 @@ ...@@ -34,6 +34,7 @@
#define SN_SAL_NO_FAULT_ZONE_PHYSICAL 0x02000011 #define SN_SAL_NO_FAULT_ZONE_PHYSICAL 0x02000011
#define SN_SAL_PRINT_ERROR 0x02000012 #define SN_SAL_PRINT_ERROR 0x02000012
#define SN_SAL_SET_ERROR_HANDLING_FEATURES 0x0200001a // reentrant #define SN_SAL_SET_ERROR_HANDLING_FEATURES 0x0200001a // reentrant
#define SN_SAL_GET_FIT_COMPT 0x0200001b // reentrant
#define SN_SAL_CONSOLE_PUTC 0x02000021 #define SN_SAL_CONSOLE_PUTC 0x02000021
#define SN_SAL_CONSOLE_GETC 0x02000022 #define SN_SAL_CONSOLE_GETC 0x02000022
#define SN_SAL_CONSOLE_PUTS 0x02000023 #define SN_SAL_CONSOLE_PUTS 0x02000023
...@@ -107,12 +108,13 @@ ...@@ -107,12 +108,13 @@
/* /*
* SN_SAL_GET_PARTITION_ADDR return constants * SAL Error Codes
*/ */
#define SALRET_MORE_PASSES 1 #define SALRET_MORE_PASSES 1
#define SALRET_OK 0 #define SALRET_OK 0
#define SALRET_INVALID_ARG -2 #define SALRET_NOT_IMPLEMENTED (-1)
#define SALRET_ERROR -3 #define SALRET_INVALID_ARG (-2)
#define SALRET_ERROR (-3)
/* /*
* SN_SAL_SET_ERROR_HANDLING_FEATURES bit settings * SN_SAL_SET_ERROR_HANDLING_FEATURES bit settings
...@@ -829,6 +831,34 @@ ia64_sn_irtr_intr_disable(nasid_t nasid, int subch, u64 intr) ...@@ -829,6 +831,34 @@ ia64_sn_irtr_intr_disable(nasid_t nasid, int subch, u64 intr)
return (int) rv.v0; return (int) rv.v0;
} }
/**
* ia64_sn_get_fit_compt - read a FIT entry from the PROM header
* @nasid: NASID of node to read
* @index: FIT entry index to be retrieved (0..n)
* @fitentry: 16 byte buffer where FIT entry will be stored.
* @banbuf: optional buffer for retrieving banner
* @banlen: length of banner buffer
*
* Access to the physical PROM chips needs to be serialized since reads and
* writes can't occur at the same time, so we need to call into the SAL when
* we want to look at the FIT entries on the chips.
*
* Returns:
* %SALRET_OK if ok
* %SALRET_INVALID_ARG if index too big
* %SALRET_NOT_IMPLEMENTED if running on older PROM
* ??? if nasid invalid OR banner buffer not large enough
*/
static inline int
ia64_sn_get_fit_compt(u64 nasid, u64 index, void *fitentry, void *banbuf,
u64 banlen)
{
struct ia64_sal_retval rv;
SAL_CALL_NOLOCK(rv, SN_SAL_GET_FIT_COMPT, nasid, index, fitentry,
banbuf, banlen, 0, 0);
return (int) rv.status;
}
/* /*
* Initialize the SAL components of the system controller * Initialize the SAL components of the system controller
* communication driver; specifically pass in a sizable buffer that * communication driver; specifically pass in a sizable buffer that
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment