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.
This commit is contained in:
@@ -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)
|
|||||||
/*
|
/*
|
||||||
* 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 @@
|
|||||||
|
|
||||||
#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;
|
|||||||
#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]); \
|
|||||||
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 {
|
|||||||
|
|
||||||
#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) */
|
||||||
|
Reference in New Issue
Block a user