Commit 962bf880 authored by Linus Torvalds's avatar Linus Torvalds

Merge bk://kernel.bkbits.net/davem/sparc-2.5

into home.transmeta.com:/home/torvalds/v2.5/linux
parents c4090743 b3602488
...@@ -36,7 +36,8 @@ KERNELRELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION) ...@@ -36,7 +36,8 @@ KERNELRELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)
SUBARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ -e s/arm.*/arm/ -e s/sa110/arm/) SUBARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ -e s/arm.*/arm/ -e s/sa110/arm/)
ARCH := $(SUBARCH) ARCH := $(SUBARCH)
KERNELPATH=kernel-$(shell echo $(KERNELRELEASE) | sed -e "s/-//g") # Remove hyphens since they have special meaning in RPM filenames
KERNELPATH=kernel-$(subst -,,$(KERNELRELEASE))
UTS_MACHINE := $(ARCH) UTS_MACHINE := $(ARCH)
...@@ -355,7 +356,7 @@ LDFLAGS_vmlinux += -T arch/$(ARCH)/vmlinux.lds.s ...@@ -355,7 +356,7 @@ LDFLAGS_vmlinux += -T arch/$(ARCH)/vmlinux.lds.s
# It's a three stage process: # It's a three stage process:
# o .tmp_vmlinux1 has all symbols and sections, but __kallsyms is # o .tmp_vmlinux1 has all symbols and sections, but __kallsyms is
# empty # empty
# Running kallsyms on that gives as .tmp_kallsyms1.o with # Running kallsyms on that gives us .tmp_kallsyms1.o with
# the right size # the right size
# o .tmp_vmlinux2 now has a __kallsyms section of the right size, # o .tmp_vmlinux2 now has a __kallsyms section of the right size,
# but due to the added section, some addresses have shifted # but due to the added section, some addresses have shifted
...@@ -689,7 +690,7 @@ defconfig: scripts/kconfig/conf ...@@ -689,7 +690,7 @@ defconfig: scripts/kconfig/conf
# make clean Delete all automatically generated files, including # make clean Delete all automatically generated files, including
# tools and firmware. # tools and firmware.
# make mrproper Delete the current configuration, and related files # make mrproper Delete the current configuration, and related files
# Any core files spread around is deleted as well # Any core files spread around are deleted as well
# make distclean Remove editor backup files, patch leftover files and the like # make distclean Remove editor backup files, patch leftover files and the like
# Files removed with 'make clean' # Files removed with 'make clean'
...@@ -884,9 +885,9 @@ if_changed_dep = $(if $(strip $? $(filter-out FORCE $(wildcard $^),$^)\ ...@@ -884,9 +885,9 @@ if_changed_dep = $(if $(strip $? $(filter-out FORCE $(wildcard $^),$^)\
$(filter-out $(cmd_$(1)),$(cmd_$@))\ $(filter-out $(cmd_$(1)),$(cmd_$@))\
$(filter-out $(cmd_$@),$(cmd_$(1)))),\ $(filter-out $(cmd_$@),$(cmd_$(1)))),\
@set -e; \ @set -e; \
$(if $($(quiet)cmd_$(1)),echo ' $($(quiet)cmd_$(1))';) \ $(if $($(quiet)cmd_$(1)),echo ' $(subst ','\'',$($(quiet)cmd_$(1)))';) \
$(cmd_$(1)); \ $(cmd_$(1)); \
scripts/fixdep $(depfile) $@ '$(cmd_$(1))' > $(@D)/.$(@F).tmp; \ scripts/fixdep $(depfile) $@ '$(subst $$,$$$$,$(subst ','\'',$(cmd_$(1))))' > $(@D)/.$(@F).tmp; \
rm -f $(depfile); \ rm -f $(depfile); \
mv -f $(@D)/.$(@F).tmp $(@D)/.$(@F).cmd) mv -f $(@D)/.$(@F).tmp $(@D)/.$(@F).cmd)
...@@ -913,19 +914,19 @@ define update-if-changed ...@@ -913,19 +914,19 @@ define update-if-changed
fi fi
endef endef
# Shorthand for $(Q)$(MAKE) -f scripts/Makefile.build obj= # Shorthand for $(Q)$(MAKE) -f scripts/Makefile.build obj=dir
# Usage: # Usage:
# $(Q)$(MAKE) $(build)=dir # $(Q)$(MAKE) $(build)=dir
build := -f scripts/Makefile.build obj build := -f scripts/Makefile.build obj
# Shorthand for $(Q)$(MAKE) scripts/Makefile.clean obj=dir # Shorthand for $(Q)$(MAKE) -f scripts/Makefile.clean obj=dir
# Usage: # Usage:
# $(Q)$(MAKE) $(clean)=dir # $(Q)$(MAKE) $(clean)=dir
clean := -f scripts/Makefile.clean obj clean := -f scripts/Makefile.clean obj
# $(call descend,<dir>,<target>) # $(call descend,<dir>,<target>)
# Recursively call a sub-make in <dir> with target <target> # Recursively call a sub-make in <dir> with target <target>
# Usage is deprecated, because make do not see this as an invocation of make. # Usage is deprecated, because make does not see this as an invocation of make.
descend =$(Q)$(MAKE) -f scripts/Makefile.build obj=$(1) $(2) descend =$(Q)$(MAKE) -f scripts/Makefile.build obj=$(1) $(2)
FORCE: FORCE:
...@@ -146,7 +146,7 @@ xdr_decode_time3(u32 *p, struct timespec *timep) ...@@ -146,7 +146,7 @@ xdr_decode_time3(u32 *p, struct timespec *timep)
static u32 * static u32 *
xdr_decode_fattr(u32 *p, struct nfs_fattr *fattr) xdr_decode_fattr(u32 *p, struct nfs_fattr *fattr)
{ {
unsigned int type; unsigned int type, major, minor;
int fmode; int fmode;
type = ntohl(*p++); type = ntohl(*p++);
...@@ -160,9 +160,12 @@ xdr_decode_fattr(u32 *p, struct nfs_fattr *fattr) ...@@ -160,9 +160,12 @@ xdr_decode_fattr(u32 *p, struct nfs_fattr *fattr)
fattr->gid = ntohl(*p++); fattr->gid = ntohl(*p++);
p = xdr_decode_hyper(p, &fattr->size); p = xdr_decode_hyper(p, &fattr->size);
p = xdr_decode_hyper(p, &fattr->du.nfs3.used); p = xdr_decode_hyper(p, &fattr->du.nfs3.used);
/* Turn remote device info into Linux-specific dev_t */ /* Turn remote device info into Linux-specific dev_t */
fattr->rdev = ntohl(*p++) << MINORBITS; major = ntohl(*p++);
fattr->rdev |= ntohl(*p++) & MINORMASK; minor = ntohl(*p++);
fattr->rdev = MKDEV(major, minor);
p = xdr_decode_hyper(p, &fattr->fsid_u.nfs3); p = xdr_decode_hyper(p, &fattr->fsid_u.nfs3);
p = xdr_decode_hyper(p, &fattr->fileid); p = xdr_decode_hyper(p, &fattr->fileid);
p = xdr_decode_time3(p, &fattr->atime); p = xdr_decode_time3(p, &fattr->atime);
...@@ -412,8 +415,8 @@ nfs3_xdr_mknodargs(struct rpc_rqst *req, u32 *p, struct nfs3_mknodargs *args) ...@@ -412,8 +415,8 @@ nfs3_xdr_mknodargs(struct rpc_rqst *req, u32 *p, struct nfs3_mknodargs *args)
*p++ = htonl(args->type); *p++ = htonl(args->type);
p = xdr_encode_sattr(p, args->sattr); p = xdr_encode_sattr(p, args->sattr);
if (args->type == NF3CHR || args->type == NF3BLK) { if (args->type == NF3CHR || args->type == NF3BLK) {
*p++ = htonl(args->rdev >> MINORBITS); *p++ = htonl(MAJOR(args->rdev));
*p++ = htonl(args->rdev & MINORMASK); *p++ = htonl(MINOR(args->rdev));
} }
req->rq_slen = xdr_adjust_iovec(req->rq_svec, p); req->rq_slen = xdr_adjust_iovec(req->rq_svec, p);
......
...@@ -1385,13 +1385,14 @@ decode_getattr(struct xdr_stream *xdr, struct nfs4_getattr *getattr) ...@@ -1385,13 +1385,14 @@ decode_getattr(struct xdr_stream *xdr, struct nfs4_getattr *getattr)
dprintk("read_attrs: gid=%d\n", (int)nfp->gid); dprintk("read_attrs: gid=%d\n", (int)nfp->gid);
} }
if (bmval1 & FATTR4_WORD1_RAWDEV) { if (bmval1 & FATTR4_WORD1_RAWDEV) {
READ_BUF(8); uint32_t major, minor;
len += 8;
READ32(dummy32); READ_BUF(8);
nfp->rdev = (dummy32 << MINORBITS); len += 8;
READ32(dummy32); READ32(major);
nfp->rdev |= (dummy32 & MINORMASK); READ32(minor);
dprintk("read_attrs: rdev=%d\n", nfp->rdev); nfp->rdev = MKDEV(major, minor);
dprintk("read_attrs: rdev=0x%x\n", nfp->rdev);
} }
if (bmval1 & FATTR4_WORD1_SPACE_AVAIL) { if (bmval1 & FATTR4_WORD1_SPACE_AVAIL) {
READ_BUF(8); READ_BUF(8);
......
...@@ -13,9 +13,30 @@ extern rwlock_t unix_table_lock; ...@@ -13,9 +13,30 @@ extern rwlock_t unix_table_lock;
extern atomic_t unix_tot_inflight; extern atomic_t unix_tot_inflight;
static inline unix_socket *first_unix_socket(int *i)
{
for (*i = 0; *i <= UNIX_HASH_SIZE; (*i)++) {
if (unix_socket_table[*i])
return unix_socket_table[*i];
}
return NULL;
}
static inline unix_socket *next_unix_socket(int *i, unix_socket *s)
{
/* More in this chain? */
if (s->next)
return s->next;
/* Look for next non-empty chain. */
for ((*i)++; *i <= UNIX_HASH_SIZE; (*i)++) {
if (unix_socket_table[*i])
return unix_socket_table[*i];
}
return NULL;
}
#define forall_unix_sockets(i, s) for (i=0; i<=UNIX_HASH_SIZE; i++) \ #define forall_unix_sockets(i, s) \
for (s=unix_socket_table[i]; s; s=s->next) for (s = first_unix_socket(&(i)); s; s = next_unix_socket(&(i),(s)))
struct unix_address struct unix_address
{ {
......
...@@ -338,6 +338,7 @@ static int econet_sendmsg(struct kiocb *iocb, struct socket *sock, ...@@ -338,6 +338,7 @@ static int econet_sendmsg(struct kiocb *iocb, struct socket *sock,
eb = (struct ec_cb *)&skb->cb; eb = (struct ec_cb *)&skb->cb;
/* BUG: saddr may be NULL */
eb->cookie = saddr->cookie; eb->cookie = saddr->cookie;
eb->sec = *saddr; eb->sec = *saddr;
eb->sent = ec_tx_done; eb->sent = ec_tx_done;
......
...@@ -37,10 +37,10 @@ static struct ...@@ -37,10 +37,10 @@ static struct
} initial_table __initdata } initial_table __initdata
= { { "filter", FILTER_VALID_HOOKS, 3, = { { "filter", FILTER_VALID_HOOKS, 3,
sizeof(struct arpt_standard) * 2 + sizeof(struct arpt_error), sizeof(struct arpt_standard) * 2 + sizeof(struct arpt_error),
{ [NF_ARP_IN] 0, { [NF_ARP_IN] = 0,
[NF_ARP_OUT] sizeof(struct arpt_standard) }, [NF_ARP_OUT] = sizeof(struct arpt_standard) },
{ [NF_ARP_IN] 0, { [NF_ARP_IN] = 0,
[NF_ARP_OUT] sizeof(struct arpt_standard), }, [NF_ARP_OUT] = sizeof(struct arpt_standard), },
0, NULL, { } }, 0, NULL, { } },
{ {
/* ARP_IN */ /* ARP_IN */
......
...@@ -160,10 +160,10 @@ static int (*mangle[])(struct sk_buff **, u_int32_t, u_int16_t, ...@@ -160,10 +160,10 @@ static int (*mangle[])(struct sk_buff **, u_int32_t, u_int16_t,
unsigned int, unsigned int,
struct ip_conntrack *, struct ip_conntrack *,
enum ip_conntrack_info) enum ip_conntrack_info)
= { [IP_CT_FTP_PORT] mangle_rfc959_packet, = { [IP_CT_FTP_PORT] = mangle_rfc959_packet,
[IP_CT_FTP_PASV] mangle_rfc959_packet, [IP_CT_FTP_PASV] = mangle_rfc959_packet,
[IP_CT_FTP_EPRT] mangle_eprt_packet, [IP_CT_FTP_EPRT] = mangle_eprt_packet,
[IP_CT_FTP_EPSV] mangle_epsv_packet [IP_CT_FTP_EPSV] = mangle_epsv_packet
}; };
static int ftp_data_fixup(const struct ip_ct_ftp_expect *ct_ftp_info, static int ftp_data_fixup(const struct ip_ct_ftp_expect *ct_ftp_info,
......
...@@ -56,12 +56,12 @@ static struct ...@@ -56,12 +56,12 @@ static struct
} nat_initial_table __initdata } nat_initial_table __initdata
= { { "nat", NAT_VALID_HOOKS, 4, = { { "nat", NAT_VALID_HOOKS, 4,
sizeof(struct ipt_standard) * 3 + sizeof(struct ipt_error), sizeof(struct ipt_standard) * 3 + sizeof(struct ipt_error),
{ [NF_IP_PRE_ROUTING] 0, { [NF_IP_PRE_ROUTING] = 0,
[NF_IP_POST_ROUTING] sizeof(struct ipt_standard), [NF_IP_POST_ROUTING] = sizeof(struct ipt_standard),
[NF_IP_LOCAL_OUT] sizeof(struct ipt_standard) * 2 }, [NF_IP_LOCAL_OUT] = sizeof(struct ipt_standard) * 2 },
{ [NF_IP_PRE_ROUTING] 0, { [NF_IP_PRE_ROUTING] = 0,
[NF_IP_POST_ROUTING] sizeof(struct ipt_standard), [NF_IP_POST_ROUTING] = sizeof(struct ipt_standard),
[NF_IP_LOCAL_OUT] sizeof(struct ipt_standard) * 2 }, [NF_IP_LOCAL_OUT] = sizeof(struct ipt_standard) * 2 },
0, NULL, { } }, 0, NULL, { } },
{ {
/* PRE_ROUTING */ /* PRE_ROUTING */
......
...@@ -35,12 +35,12 @@ static struct ...@@ -35,12 +35,12 @@ static struct
} initial_table __initdata } initial_table __initdata
= { { "filter", FILTER_VALID_HOOKS, 4, = { { "filter", FILTER_VALID_HOOKS, 4,
sizeof(struct ipt_standard) * 3 + sizeof(struct ipt_error), sizeof(struct ipt_standard) * 3 + sizeof(struct ipt_error),
{ [NF_IP_LOCAL_IN] 0, { [NF_IP_LOCAL_IN] = 0,
[NF_IP_FORWARD] sizeof(struct ipt_standard), [NF_IP_FORWARD] = sizeof(struct ipt_standard),
[NF_IP_LOCAL_OUT] sizeof(struct ipt_standard) * 2 }, [NF_IP_LOCAL_OUT] = sizeof(struct ipt_standard) * 2 },
{ [NF_IP_LOCAL_IN] 0, { [NF_IP_LOCAL_IN] = 0,
[NF_IP_FORWARD] sizeof(struct ipt_standard), [NF_IP_FORWARD] = sizeof(struct ipt_standard),
[NF_IP_LOCAL_OUT] sizeof(struct ipt_standard) * 2 }, [NF_IP_LOCAL_OUT] = sizeof(struct ipt_standard) * 2 },
0, NULL, { } }, 0, NULL, { } },
{ {
/* LOCAL_IN */ /* LOCAL_IN */
......
...@@ -48,16 +48,16 @@ static struct ...@@ -48,16 +48,16 @@ static struct
} initial_table __initdata } initial_table __initdata
= { { "mangle", MANGLE_VALID_HOOKS, 6, = { { "mangle", MANGLE_VALID_HOOKS, 6,
sizeof(struct ipt_standard) * 5 + sizeof(struct ipt_error), sizeof(struct ipt_standard) * 5 + sizeof(struct ipt_error),
{ [NF_IP_PRE_ROUTING] 0, { [NF_IP_PRE_ROUTING] = 0,
[NF_IP_LOCAL_IN] sizeof(struct ipt_standard), [NF_IP_LOCAL_IN] = sizeof(struct ipt_standard),
[NF_IP_FORWARD] sizeof(struct ipt_standard) * 2, [NF_IP_FORWARD] = sizeof(struct ipt_standard) * 2,
[NF_IP_LOCAL_OUT] sizeof(struct ipt_standard) * 3, [NF_IP_LOCAL_OUT] = sizeof(struct ipt_standard) * 3,
[NF_IP_POST_ROUTING] sizeof(struct ipt_standard) * 4 }, [NF_IP_POST_ROUTING] = sizeof(struct ipt_standard) * 4 },
{ [NF_IP_PRE_ROUTING] 0, { [NF_IP_PRE_ROUTING] = 0,
[NF_IP_LOCAL_IN] sizeof(struct ipt_standard), [NF_IP_LOCAL_IN] = sizeof(struct ipt_standard),
[NF_IP_FORWARD] sizeof(struct ipt_standard) * 2, [NF_IP_FORWARD] = sizeof(struct ipt_standard) * 2,
[NF_IP_LOCAL_OUT] sizeof(struct ipt_standard) * 3, [NF_IP_LOCAL_OUT] = sizeof(struct ipt_standard) * 3,
[NF_IP_POST_ROUTING] sizeof(struct ipt_standard) * 4 }, [NF_IP_POST_ROUTING] = sizeof(struct ipt_standard) * 4 },
0, NULL, { } }, 0, NULL, { } },
{ {
/* PRE_ROUTING */ /* PRE_ROUTING */
......
...@@ -99,7 +99,7 @@ fold_field(void *mib[], int nr) ...@@ -99,7 +99,7 @@ fold_field(void *mib[], int nr)
*((unsigned long *) (((void *) per_cpu_ptr(mib[0], i)) + *((unsigned long *) (((void *) per_cpu_ptr(mib[0], i)) +
sizeof (unsigned long) * nr)); sizeof (unsigned long) * nr));
res += res +=
*((unsigned long *) (((void *) per_cpu_ptr(mib[0], i)) + *((unsigned long *) (((void *) per_cpu_ptr(mib[1], i)) +
sizeof (unsigned long) * nr)); sizeof (unsigned long) * nr));
} }
return res; return res;
......
...@@ -1522,7 +1522,8 @@ void tcp_send_probe0(struct sock *sk) ...@@ -1522,7 +1522,8 @@ void tcp_send_probe0(struct sock *sk)
} }
if (err <= 0) { if (err <= 0) {
tp->backoff++; if (tp->backoff < sysctl_tcp_retries2)
tp->backoff++;
tp->probes_out++; tp->probes_out++;
tcp_reset_xmit_timer (sk, TCP_TIME_PROBE0, tcp_reset_xmit_timer (sk, TCP_TIME_PROBE0,
min(tp->rto << tp->backoff, TCP_RTO_MAX)); min(tp->rto << tp->backoff, TCP_RTO_MAX));
......
...@@ -35,12 +35,12 @@ static struct ...@@ -35,12 +35,12 @@ static struct
} initial_table __initdata } initial_table __initdata
= { { "filter", FILTER_VALID_HOOKS, 4, = { { "filter", FILTER_VALID_HOOKS, 4,
sizeof(struct ip6t_standard) * 3 + sizeof(struct ip6t_error), sizeof(struct ip6t_standard) * 3 + sizeof(struct ip6t_error),
{ [NF_IP6_LOCAL_IN] 0, { [NF_IP6_LOCAL_IN] = 0,
[NF_IP6_FORWARD] sizeof(struct ip6t_standard), [NF_IP6_FORWARD] = sizeof(struct ip6t_standard),
[NF_IP6_LOCAL_OUT] sizeof(struct ip6t_standard) * 2 }, [NF_IP6_LOCAL_OUT] = sizeof(struct ip6t_standard) * 2 },
{ [NF_IP6_LOCAL_IN] 0, { [NF_IP6_LOCAL_IN] = 0,
[NF_IP6_FORWARD] sizeof(struct ip6t_standard), [NF_IP6_FORWARD] = sizeof(struct ip6t_standard),
[NF_IP6_LOCAL_OUT] sizeof(struct ip6t_standard) * 2 }, [NF_IP6_LOCAL_OUT] = sizeof(struct ip6t_standard) * 2 },
0, NULL, { } }, 0, NULL, { } },
{ {
/* LOCAL_IN */ /* LOCAL_IN */
......
...@@ -45,16 +45,16 @@ static struct ...@@ -45,16 +45,16 @@ static struct
} initial_table __initdata } initial_table __initdata
= { { "mangle", MANGLE_VALID_HOOKS, 6, = { { "mangle", MANGLE_VALID_HOOKS, 6,
sizeof(struct ip6t_standard) * 5 + sizeof(struct ip6t_error), sizeof(struct ip6t_standard) * 5 + sizeof(struct ip6t_error),
{ [NF_IP6_PRE_ROUTING] 0, { [NF_IP6_PRE_ROUTING] = 0,
[NF_IP6_LOCAL_IN] sizeof(struct ip6t_standard), [NF_IP6_LOCAL_IN] = sizeof(struct ip6t_standard),
[NF_IP6_FORWARD] sizeof(struct ip6t_standard) * 2, [NF_IP6_FORWARD] = sizeof(struct ip6t_standard) * 2,
[NF_IP6_LOCAL_OUT] sizeof(struct ip6t_standard) * 3, [NF_IP6_LOCAL_OUT] = sizeof(struct ip6t_standard) * 3,
[NF_IP6_POST_ROUTING] sizeof(struct ip6t_standard) * 4}, [NF_IP6_POST_ROUTING] = sizeof(struct ip6t_standard) * 4},
{ [NF_IP6_PRE_ROUTING] 0, { [NF_IP6_PRE_ROUTING] = 0,
[NF_IP6_LOCAL_IN] sizeof(struct ip6t_standard), [NF_IP6_LOCAL_IN] = sizeof(struct ip6t_standard),
[NF_IP6_FORWARD] sizeof(struct ip6t_standard) * 2, [NF_IP6_FORWARD] = sizeof(struct ip6t_standard) * 2,
[NF_IP6_LOCAL_OUT] sizeof(struct ip6t_standard) * 3, [NF_IP6_LOCAL_OUT] = sizeof(struct ip6t_standard) * 3,
[NF_IP6_POST_ROUTING] sizeof(struct ip6t_standard) * 4}, [NF_IP6_POST_ROUTING] = sizeof(struct ip6t_standard) * 4},
0, NULL, { } }, 0, NULL, { } },
{ {
/* PRE_ROUTING */ /* PRE_ROUTING */
......
...@@ -116,7 +116,7 @@ gred_enqueue(struct sk_buff *skb, struct Qdisc* sch) ...@@ -116,7 +116,7 @@ gred_enqueue(struct sk_buff *skb, struct Qdisc* sch)
} }
if ( ((skb->tc_index&0xf) > t->DPs) || !(q=t->tab[skb->tc_index&0xf])) { if ( ((skb->tc_index&0xf) > (t->DPs -1)) || !(q=t->tab[skb->tc_index&0xf])) {
printk("GRED: setting to default (%d)\n ",t->def); printk("GRED: setting to default (%d)\n ",t->def);
if (!(q=t->tab[t->def])) { if (!(q=t->tab[t->def])) {
DPRINTK("GRED: setting to default FAILED! dropping!! " DPRINTK("GRED: setting to default FAILED! dropping!! "
......
...@@ -218,8 +218,9 @@ void x25_transmit_clear_request(struct x25_neigh *nb, unsigned int lci, ...@@ -218,8 +218,9 @@ void x25_transmit_clear_request(struct x25_neigh *nb, unsigned int lci,
dptr = skb_put(skb, X25_STD_MIN_LEN + 2); dptr = skb_put(skb, X25_STD_MIN_LEN + 2);
*dptr++ = ((lci >> 8) & 0x0F) | nb->extended ? X25_GFI_EXTSEQ : *dptr++ = ((lci >> 8) & 0x0F) | (nb->extended ?
X25_GFI_STDSEQ; X25_GFI_EXTSEQ :
X25_GFI_STDSEQ);
*dptr++ = (lci >> 0) & 0xFF; *dptr++ = (lci >> 0) & 0xFF;
*dptr++ = X25_CLEAR_REQUEST; *dptr++ = X25_CLEAR_REQUEST;
*dptr++ = cause; *dptr++ = cause;
......
...@@ -94,7 +94,7 @@ define rule_vcc_o_c ...@@ -94,7 +94,7 @@ define rule_vcc_o_c
else \ else \
$(CPP) -D__GENKSYMS__ $(c_flags) $< \ $(CPP) -D__GENKSYMS__ $(c_flags) $< \
| $(GENKSYMS) -k $(VERSION).$(PATCHLEVEL).$(SUBLEVEL) \ | $(GENKSYMS) -k $(VERSION).$(PATCHLEVEL).$(SUBLEVEL) \
| sed -n 's/\#define __ver_\(\w*\)\W*\(\w*\)/__crc_\1 = 0x\2 ;/gp' \ | sed -n 's/\#define __ver_\([^ ]*\)[ ]*\([^ ]*\)/__crc_\1 = 0x\2 ;/gp' \
> $(@D)/.tmp_$(@F:.o=.ver); \ > $(@D)/.tmp_$(@F:.o=.ver); \
\ \
$(LD) $(LDFLAGS) -r -o $@ $(@D)/.tmp_$(@F) \ $(LD) $(LDFLAGS) -r -o $@ $(@D)/.tmp_$(@F) \
......
...@@ -165,7 +165,7 @@ cmd_ld = $(LD) $(LDFLAGS) $(EXTRA_LDFLAGS) $(LDFLAGS_$(@F)) \ ...@@ -165,7 +165,7 @@ cmd_ld = $(LD) $(LDFLAGS) $(EXTRA_LDFLAGS) $(LDFLAGS_$(@F)) \
# --------------------------------------------------------------------------- # ---------------------------------------------------------------------------
quiet_cmd_objcopy = OBJCOPY $@ quiet_cmd_objcopy = OBJCOPY $@
cmd_objcopy = $(OBJCOPY) $(OBJCOPYFLAGS) $< $@ cmd_objcopy = $(OBJCOPY) $(OBJCOPYFLAGS) $(OBJCOPYFLAGS_$(@F)) $< $@
# Gzip # Gzip
# --------------------------------------------------------------------------- # ---------------------------------------------------------------------------
...@@ -178,14 +178,16 @@ cmd_gzip = gzip -f -9 < $< > $@ ...@@ -178,14 +178,16 @@ cmd_gzip = gzip -f -9 < $< > $@
# =========================================================================== # ===========================================================================
# function to only execute the passed command if necessary # function to only execute the passed command if necessary
# >'< substitution is for echo to work, >$< substitution to preserve $ when reloading .cmd file
# note: when using inline perl scripts [perl -e '...$$t=1;...'] in $(cmd_xxx) double $$ your perl vars
if_changed = $(if $(strip $? \ if_changed = $(if $(strip $? \
$(filter-out $(cmd_$(1)),$(cmd_$@))\ $(filter-out $(cmd_$(1)),$(cmd_$@))\
$(filter-out $(cmd_$@),$(cmd_$(1)))),\ $(filter-out $(cmd_$@),$(cmd_$(1)))),\
@set -e; \ @set -e; \
$(if $($(quiet)cmd_$(1)),echo ' $($(quiet)cmd_$(1))';) \ $(if $($(quiet)cmd_$(1)),echo ' $(subst ','\'',$($(quiet)cmd_$(1)))';) \
$(cmd_$(1)); \ $(cmd_$(1)); \
echo 'cmd_$@ := $(cmd_$(1))' > $(@D)/.$(@F).cmd) echo 'cmd_$@ := $(subst $$,$$$$,$(subst ','\'',$(cmd_$(1))))' > $(@D)/.$(@F).cmd)
# execute the command and also postprocess generated .d dependencies # execute the command and also postprocess generated .d dependencies
...@@ -195,9 +197,9 @@ if_changed_dep = $(if $(strip $? $(filter-out FORCE $(wildcard $^),$^)\ ...@@ -195,9 +197,9 @@ if_changed_dep = $(if $(strip $? $(filter-out FORCE $(wildcard $^),$^)\
$(filter-out $(cmd_$(1)),$(cmd_$@))\ $(filter-out $(cmd_$(1)),$(cmd_$@))\
$(filter-out $(cmd_$@),$(cmd_$(1)))),\ $(filter-out $(cmd_$@),$(cmd_$(1)))),\
@set -e; \ @set -e; \
$(if $($(quiet)cmd_$(1)),echo ' $($(quiet)cmd_$(1))';) \ $(if $($(quiet)cmd_$(1)),echo ' $(subst ','\'',$($(quiet)cmd_$(1)))';) \
$(cmd_$(1)); \ $(cmd_$(1)); \
scripts/fixdep $(depfile) $@ '$(cmd_$(1))' > $(@D)/.$(@F).tmp; \ scripts/fixdep $(depfile) $@ '$(subst $$,$$$$,$(subst ','\'',$(cmd_$(1))))' > $(@D)/.$(@F).tmp; \
rm -f $(depfile); \ rm -f $(depfile); \
mv -f $(@D)/.$(@F).tmp $(@D)/.$(@F).cmd) mv -f $(@D)/.$(@F).tmp $(@D)/.$(@F).cmd)
......
...@@ -9,11 +9,12 @@ include scripts/Makefile.lib ...@@ -9,11 +9,12 @@ include scripts/Makefile.lib
# #
__modules := $(shell cd $(MODVERDIR); cat *.mod) __modules := $(shell cat /dev/null $(wildcard $(MODVERDIR)/*.mod))
modules := $(patsubst %.o,%.ko,$(wildcard $(__modules:.ko=.o))) modules := $(patsubst %.o,%.ko,$(wildcard $(__modules:.ko=.o)))
ifneq ($(filter-out $(modules),$(__modules)),) ifneq ($(filter-out $(modules),$(__modules)),)
$(warning *** Uh-oh, you have stale module entries. You messed with SUBDIRS, don't complain if something goes wrong.) $(warning *** Uh-oh, you have stale module entries. You messed with SUBDIRS,)
$(warning do not complain if something goes wrong.)
endif endif
__modversions: $(modules) __modversions: $(modules)
......
...@@ -277,6 +277,8 @@ void do_config_file(char *filename) ...@@ -277,6 +277,8 @@ void do_config_file(char *filename)
parse_config_file(map, st.st_size); parse_config_file(map, st.st_size);
munmap(map, st.st_size); munmap(map, st.st_size);
close(fd);
} }
void parse_dep_file(void *map, size_t len) void parse_dep_file(void *map, size_t len)
...@@ -346,6 +348,8 @@ void print_deps(void) ...@@ -346,6 +348,8 @@ void print_deps(void)
parse_dep_file(map, st.st_size); parse_dep_file(map, st.st_size);
munmap(map, st.st_size); munmap(map, st.st_size);
close(fd);
} }
void traps(void) void traps(void)
......
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