提交 b1847a04 编写于 作者: 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:
  [SPARC64]: Fix inline directive in pci_iommu.c
  [SPARC64]: Fix arg passing to compat_sys_ipc().
  [SPARC]: Fix section mismatch warnings in pci.c and pcic.c
  [SUNRPC]: Make sure on-stack cmsg buffer is properly aligned.
  [SPARC]: avoid CHILD_MAX and OPEN_MAX constants
  [SPARC64]: Fix SBUS IOMMU allocation code.
...@@ -601,7 +601,7 @@ pcic_fill_irq(struct linux_pcic *pcic, struct pci_dev *dev, int node) ...@@ -601,7 +601,7 @@ pcic_fill_irq(struct linux_pcic *pcic, struct pci_dev *dev, int node)
/* /*
* Normally called from {do_}pci_scan_bus... * Normally called from {do_}pci_scan_bus...
*/ */
void __init pcibios_fixup_bus(struct pci_bus *bus) void __devinit pcibios_fixup_bus(struct pci_bus *bus)
{ {
struct pci_dev *dev; struct pci_dev *dev;
int i, has_io, has_mem; int i, has_io, has_mem;
...@@ -842,7 +842,7 @@ static void watchdog_reset() { ...@@ -842,7 +842,7 @@ static void watchdog_reset() {
/* /*
* Other archs parse arguments here. * Other archs parse arguments here.
*/ */
char * __init pcibios_setup(char *str) char * __devinit pcibios_setup(char *str)
{ {
return str; return str;
} }
......
...@@ -910,7 +910,7 @@ asmlinkage long sunos_sysconf (int name) ...@@ -910,7 +910,7 @@ asmlinkage long sunos_sysconf (int name)
ret = ARG_MAX; ret = ARG_MAX;
break; break;
case _SC_CHILD_MAX: case _SC_CHILD_MAX:
ret = -1; /* no limit */ ret = current->signal->rlim[RLIMIT_NPROC].rlim_cur;
break; break;
case _SC_CLK_TCK: case _SC_CLK_TCK:
ret = HZ; ret = HZ;
...@@ -919,7 +919,7 @@ asmlinkage long sunos_sysconf (int name) ...@@ -919,7 +919,7 @@ asmlinkage long sunos_sysconf (int name)
ret = NGROUPS_MAX; ret = NGROUPS_MAX;
break; break;
case _SC_OPEN_MAX: case _SC_OPEN_MAX:
ret = OPEN_MAX; ret = current->signal->rlim[RLIMIT_NOFILE].rlim_cur;
break; break;
case _SC_JOB_CONTROL: case _SC_JOB_CONTROL:
ret = 1; /* yes, we do support job control */ ret = 1; /* yes, we do support job control */
......
...@@ -327,7 +327,7 @@ static int __init pcibios_init(void) ...@@ -327,7 +327,7 @@ static int __init pcibios_init(void)
subsys_initcall(pcibios_init); subsys_initcall(pcibios_init);
void pcibios_fixup_bus(struct pci_bus *pbus) void __devinit pcibios_fixup_bus(struct pci_bus *pbus)
{ {
struct pci_pbm_info *pbm = pbus->sysdata; struct pci_pbm_info *pbm = pbus->sysdata;
...@@ -405,7 +405,7 @@ void pcibios_bus_to_resource(struct pci_dev *pdev, struct resource *res, ...@@ -405,7 +405,7 @@ void pcibios_bus_to_resource(struct pci_dev *pdev, struct resource *res,
} }
EXPORT_SYMBOL(pcibios_bus_to_resource); EXPORT_SYMBOL(pcibios_bus_to_resource);
char * __init pcibios_setup(char *str) char * __devinit pcibios_setup(char *str)
{ {
return str; return str;
} }
......
...@@ -64,7 +64,7 @@ static void __iommu_flushall(struct pci_iommu *iommu) ...@@ -64,7 +64,7 @@ static void __iommu_flushall(struct pci_iommu *iommu)
#define IOPTE_IS_DUMMY(iommu, iopte) \ #define IOPTE_IS_DUMMY(iommu, iopte) \
((iopte_val(*iopte) & IOPTE_PAGE) == (iommu)->dummy_page_pa) ((iopte_val(*iopte) & IOPTE_PAGE) == (iommu)->dummy_page_pa)
static void inline iopte_make_dummy(struct pci_iommu *iommu, iopte_t *iopte) static inline void iopte_make_dummy(struct pci_iommu *iommu, iopte_t *iopte)
{ {
unsigned long val = iopte_val(*iopte); unsigned long val = iopte_val(*iopte);
......
此差异已折叠。
...@@ -91,7 +91,6 @@ SIGN1(sys32_select, compat_sys_select, %o0) ...@@ -91,7 +91,6 @@ SIGN1(sys32_select, compat_sys_select, %o0)
SIGN1(sys32_mkdir, sys_mkdir, %o1) SIGN1(sys32_mkdir, sys_mkdir, %o1)
SIGN3(sys32_futex, compat_sys_futex, %o1, %o2, %o5) SIGN3(sys32_futex, compat_sys_futex, %o1, %o2, %o5)
SIGN1(sys32_sysfs, compat_sys_sysfs, %o0) SIGN1(sys32_sysfs, compat_sys_sysfs, %o0)
SIGN3(sys32_ipc, compat_sys_ipc, %o1, %o2, %o3)
SIGN2(sys32_sendfile, compat_sys_sendfile, %o0, %o1) SIGN2(sys32_sendfile, compat_sys_sendfile, %o0, %o1)
SIGN2(sys32_sendfile64, compat_sys_sendfile64, %o0, %o1) SIGN2(sys32_sendfile64, compat_sys_sendfile64, %o0, %o1)
SIGN1(sys32_prctl, sys_prctl, %o0) SIGN1(sys32_prctl, sys_prctl, %o0)
......
...@@ -871,7 +871,7 @@ asmlinkage s32 sunos_sysconf (int name) ...@@ -871,7 +871,7 @@ asmlinkage s32 sunos_sysconf (int name)
ret = ARG_MAX; ret = ARG_MAX;
break; break;
case _SC_CHILD_MAX: case _SC_CHILD_MAX:
ret = -1; /* no limit */ ret = current->signal->rlim[RLIMIT_NPROC].rlim_cur;
break; break;
case _SC_CLK_TCK: case _SC_CLK_TCK:
ret = HZ; ret = HZ;
...@@ -880,7 +880,7 @@ asmlinkage s32 sunos_sysconf (int name) ...@@ -880,7 +880,7 @@ asmlinkage s32 sunos_sysconf (int name)
ret = NGROUPS_MAX; ret = NGROUPS_MAX;
break; break;
case _SC_OPEN_MAX: case _SC_OPEN_MAX:
ret = OPEN_MAX; ret = current->signal->rlim[RLIMIT_NOFILE].rlim_cur;
break; break;
case _SC_JOB_CONTROL: case _SC_JOB_CONTROL:
ret = 1; /* yes, we do support job control */ ret = 1; /* yes, we do support job control */
......
...@@ -62,7 +62,7 @@ sys_call_table32: ...@@ -62,7 +62,7 @@ sys_call_table32:
/*200*/ .word sys32_ssetmask, sys_sigsuspend, compat_sys_newlstat, sys_uselib, compat_sys_old_readdir /*200*/ .word sys32_ssetmask, sys_sigsuspend, compat_sys_newlstat, sys_uselib, compat_sys_old_readdir
.word sys32_readahead, sys32_socketcall, sys32_syslog, sys32_lookup_dcookie, sys32_fadvise64 .word sys32_readahead, sys32_socketcall, sys32_syslog, sys32_lookup_dcookie, sys32_fadvise64
/*210*/ .word sys32_fadvise64_64, sys32_tgkill, sys32_waitpid, sys_swapoff, compat_sys_sysinfo /*210*/ .word sys32_fadvise64_64, sys32_tgkill, sys32_waitpid, sys_swapoff, compat_sys_sysinfo
.word sys32_ipc, sys32_sigreturn, sys_clone, sys32_ioprio_get, compat_sys_adjtimex .word compat_sys_ipc, sys32_sigreturn, sys_clone, sys32_ioprio_get, compat_sys_adjtimex
/*220*/ .word sys32_sigprocmask, sys_ni_syscall, sys32_delete_module, sys_ni_syscall, sys32_getpgid /*220*/ .word sys32_sigprocmask, sys_ni_syscall, sys32_delete_module, sys_ni_syscall, sys32_getpgid
.word sys32_bdflush, sys32_sysfs, sys_nis_syscall, sys32_setfsuid16, sys32_setfsgid16 .word sys32_bdflush, sys32_sysfs, sys_nis_syscall, sys32_setfsuid16, sys32_setfsgid16
/*230*/ .word sys32_select, compat_sys_time, sys32_splice, compat_sys_stime, compat_sys_statfs64 /*230*/ .word sys32_select, compat_sys_time, sys32_splice, compat_sys_stime, compat_sys_statfs64
......
...@@ -363,8 +363,10 @@ asmlinkage int solaris_sysconf(int id) ...@@ -363,8 +363,10 @@ asmlinkage int solaris_sysconf(int id)
{ {
switch (id) { switch (id) {
case SOLARIS_CONFIG_NGROUPS: return NGROUPS_MAX; case SOLARIS_CONFIG_NGROUPS: return NGROUPS_MAX;
case SOLARIS_CONFIG_CHILD_MAX: return -1; /* no limit */ case SOLARIS_CONFIG_CHILD_MAX:
case SOLARIS_CONFIG_OPEN_FILES: return OPEN_MAX; return current->signal->rlim[RLIMIT_NPROC].rlim_cur;
case SOLARIS_CONFIG_OPEN_FILES:
return current->signal->rlim[RLIMIT_NOFILE].rlim_cur;
case SOLARIS_CONFIG_POSIX_VER: return 199309; case SOLARIS_CONFIG_POSIX_VER: return 199309;
case SOLARIS_CONFIG_PAGESIZE: return PAGE_SIZE; case SOLARIS_CONFIG_PAGESIZE: return PAGE_SIZE;
case SOLARIS_CONFIG_XOPEN_VER: return 3; case SOLARIS_CONFIG_XOPEN_VER: return 3;
......
...@@ -452,6 +452,8 @@ union svc_pktinfo_u { ...@@ -452,6 +452,8 @@ union svc_pktinfo_u {
struct in_pktinfo pkti; struct in_pktinfo pkti;
struct in6_pktinfo pkti6; struct in6_pktinfo pkti6;
}; };
#define SVC_PKTINFO_SPACE \
CMSG_SPACE(sizeof(union svc_pktinfo_u))
static void svc_set_cmsg_data(struct svc_rqst *rqstp, struct cmsghdr *cmh) static void svc_set_cmsg_data(struct svc_rqst *rqstp, struct cmsghdr *cmh)
{ {
...@@ -491,8 +493,11 @@ svc_sendto(struct svc_rqst *rqstp, struct xdr_buf *xdr) ...@@ -491,8 +493,11 @@ svc_sendto(struct svc_rqst *rqstp, struct xdr_buf *xdr)
struct svc_sock *svsk = rqstp->rq_sock; struct svc_sock *svsk = rqstp->rq_sock;
struct socket *sock = svsk->sk_sock; struct socket *sock = svsk->sk_sock;
int slen; int slen;
char buffer[CMSG_SPACE(sizeof(union svc_pktinfo_u))]; union {
struct cmsghdr *cmh = (struct cmsghdr *)buffer; struct cmsghdr hdr;
long all[SVC_PKTINFO_SPACE / sizeof(long)];
} buffer;
struct cmsghdr *cmh = &buffer.hdr;
int len = 0; int len = 0;
int result; int result;
int size; int size;
...@@ -745,8 +750,11 @@ svc_udp_recvfrom(struct svc_rqst *rqstp) ...@@ -745,8 +750,11 @@ svc_udp_recvfrom(struct svc_rqst *rqstp)
struct svc_sock *svsk = rqstp->rq_sock; struct svc_sock *svsk = rqstp->rq_sock;
struct svc_serv *serv = svsk->sk_server; struct svc_serv *serv = svsk->sk_server;
struct sk_buff *skb; struct sk_buff *skb;
char buffer[CMSG_SPACE(sizeof(union svc_pktinfo_u))]; union {
struct cmsghdr *cmh = (struct cmsghdr *)buffer; struct cmsghdr hdr;
long all[SVC_PKTINFO_SPACE / sizeof(long)];
} buffer;
struct cmsghdr *cmh = &buffer.hdr;
int err, len; int err, len;
struct msghdr msg = { struct msghdr msg = {
.msg_name = svc_addr(rqstp), .msg_name = svc_addr(rqstp),
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册