提交 d2c5f06e 编写于 作者: L Linus Torvalds

Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6

* master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6:
  [SPARC]: Clean up asm-sparc/elf.h pollution in userspace.
  [SPARC64]: Fix of_ioremap().
  [SPARC64]: Compute dma_end argument to sabre_pbm_init() correctly.
...@@ -131,8 +131,13 @@ static int of_device_resume(struct device * dev) ...@@ -131,8 +131,13 @@ static int of_device_resume(struct device * dev)
void __iomem *of_ioremap(struct resource *res, unsigned long offset, unsigned long size, char *name) void __iomem *of_ioremap(struct resource *res, unsigned long offset, unsigned long size, char *name)
{ {
unsigned long ret = res->start + offset; unsigned long ret = res->start + offset;
struct resource *r;
if (!request_region(ret, size, name)) if (res->flags & IORESOURCE_MEM)
r = request_mem_region(ret, size, name);
else
r = request_region(ret, size, name);
if (!r)
ret = 0; ret = 0;
return (void __iomem *) ret; return (void __iomem *) ret;
......
...@@ -1465,5 +1465,5 @@ void sabre_init(struct device_node *dp, char *model_name) ...@@ -1465,5 +1465,5 @@ void sabre_init(struct device_node *dp, char *model_name)
/* /*
* Look for APB underneath. * Look for APB underneath.
*/ */
sabre_pbm_init(p, dp, vdma[0], vdma[1]); sabre_pbm_init(p, dp, vdma[0], vdma[0] + vdma[1]);
} }
...@@ -8,11 +8,6 @@ ...@@ -8,11 +8,6 @@
#include <asm/ptrace.h> #include <asm/ptrace.h>
#ifdef __KERNEL__
#include <asm/mbus.h>
#include <asm/uaccess.h>
#endif
/* /*
* Sparc section types * Sparc section types
*/ */
...@@ -77,6 +72,23 @@ typedef unsigned long elf_greg_t; ...@@ -77,6 +72,23 @@ typedef unsigned long elf_greg_t;
#define ELF_NGREG 38 #define ELF_NGREG 38
typedef elf_greg_t elf_gregset_t[ELF_NGREG]; typedef elf_greg_t elf_gregset_t[ELF_NGREG];
typedef struct {
union {
unsigned long pr_regs[32];
double pr_dregs[16];
} pr_fr;
unsigned long __unused;
unsigned long pr_fsr;
unsigned char pr_qcnt;
unsigned char pr_q_entrysize;
unsigned char pr_en;
unsigned int pr_q[64];
} elf_fpregset_t;
#ifdef __KERNEL__
#include <asm/mbus.h>
#include <asm/uaccess.h>
/* Format is: /* Format is:
* G0 --> G7 * G0 --> G7
* O0 --> O7 * O0 --> O7
...@@ -99,20 +111,7 @@ do { unsigned long *dest = &(__elf_regs[0]); \ ...@@ -99,20 +111,7 @@ do { unsigned long *dest = &(__elf_regs[0]); \
dest[34] = src->npc; \ dest[34] = src->npc; \
dest[35] = src->y; \ dest[35] = src->y; \
dest[36] = dest[37] = 0; /* XXX */ \ dest[36] = dest[37] = 0; /* XXX */ \
} while(0); /* Janitors: Don't touch this colon. */ } while(0); /* Janitors: Don't touch this semicolon. */
typedef struct {
union {
unsigned long pr_regs[32];
double pr_dregs[16];
} pr_fr;
unsigned long __unused;
unsigned long pr_fsr;
unsigned char pr_qcnt;
unsigned char pr_q_entrysize;
unsigned char pr_en;
unsigned int pr_q[64];
} elf_fpregset_t;
#define ELF_CORE_COPY_TASK_REGS(__tsk, __elf_regs) \ #define ELF_CORE_COPY_TASK_REGS(__tsk, __elf_regs) \
({ ELF_CORE_COPY_REGS((*(__elf_regs)), (__tsk)->thread.kregs); 1; }) ({ ELF_CORE_COPY_REGS((*(__elf_regs)), (__tsk)->thread.kregs); 1; })
...@@ -165,8 +164,8 @@ typedef struct { ...@@ -165,8 +164,8 @@ typedef struct {
#define ELF_PLATFORM (NULL) #define ELF_PLATFORM (NULL)
#ifdef __KERNEL__
#define SET_PERSONALITY(ex, ibcs2) set_personality((ibcs2)?PER_SVR4:PER_LINUX) #define SET_PERSONALITY(ex, ibcs2) set_personality((ibcs2)?PER_SVR4:PER_LINUX)
#endif
#endif /* __KERNEL__ */
#endif /* !(__ASMSPARC_ELF_H) */ #endif /* !(__ASMSPARC_ELF_H) */
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册