Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
* master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6: [TCP]: Fix minisock tcp_create_openreq_child() typo. [TCP]: Document several sysctls. [NET]: Fix kfree(skb) [NET]: Handle disabled preemption in gfp_any() [BRIDGE]: Fix locking of set path cost. [IPV6]: /proc/net/anycast6 unbalanced inet6_dev refcnt [IPX]: Remove ancient changelog [IPX]: Remove outdated information from Kconfig [NET]: Revert socket.h/stat.h ifdef hacks. [IPV6]: anycast refcnt fix [XFRM] xfrm_user: Fix return values of xfrm_add_sa_expire.
This commit is contained in:
commit
fb7d404566
|
@ -147,6 +147,11 @@ tcp_available_congestion_control - STRING
|
|||
More congestion control algorithms may be available as modules,
|
||||
but not loaded.
|
||||
|
||||
tcp_base_mss - INTEGER
|
||||
The initial value of search_low to be used by Packetization Layer
|
||||
Path MTU Discovery (MTU probing). If MTU probing is enabled,
|
||||
this is the inital MSS used by the connection.
|
||||
|
||||
tcp_congestion_control - STRING
|
||||
Set the congestion control algorithm to be used for new
|
||||
connections. The algorithm "reno" is always available, but
|
||||
|
@ -243,6 +248,27 @@ tcp_mem - vector of 3 INTEGERs: min, pressure, max
|
|||
Defaults are calculated at boot time from amount of available
|
||||
memory.
|
||||
|
||||
tcp_moderate_rcvbuf - BOOLEAN
|
||||
If set, TCP performs receive buffer autotuning, attempting to
|
||||
automatically size the buffer (no greater than tcp_rmem[2]) to
|
||||
match the size required by the path for full throughput. Enabled by
|
||||
default.
|
||||
|
||||
tcp_mtu_probing - INTEGER
|
||||
Controls TCP Packetization-Layer Path MTU Discovery. Takes three
|
||||
values:
|
||||
0 - Disabled
|
||||
1 - Disabled by default, enabled when an ICMP black hole detected
|
||||
2 - Always enabled, use initial MSS of tcp_base_mss.
|
||||
|
||||
tcp_no_metrics_save - BOOLEAN
|
||||
By default, TCP saves various connection metrics in the route cache
|
||||
when the connection closes, so that connections established in the
|
||||
near future can use these to set initial conditions. Usually, this
|
||||
increases overall performance, but may sometimes cause performance
|
||||
degredation. If set, TCP will not cache metrics on closing
|
||||
connections.
|
||||
|
||||
tcp_orphan_retries - INTEGER
|
||||
How may times to retry before killing TCP connection, closed
|
||||
by our side. Default value 7 corresponds to ~50sec-16min
|
||||
|
|
|
@ -16,7 +16,7 @@ struct __kernel_sockaddr_storage {
|
|||
/* _SS_MAXSIZE value minus size of ss_family */
|
||||
} __attribute__ ((aligned(_K_SS_ALIGNSIZE))); /* force desired alignment */
|
||||
|
||||
#ifdef __KERNEL__
|
||||
#if defined(__KERNEL__) || !defined(__GLIBC__) || (__GLIBC__ < 2)
|
||||
|
||||
#include <asm/socket.h> /* arch-dependent defines */
|
||||
#include <linux/sockios.h> /* the SIOCxxx I/O controls */
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
|
||||
#endif
|
||||
|
||||
#ifdef __KERNEL__
|
||||
#if defined(__KERNEL__) || !defined(__GLIBC__) || (__GLIBC__ < 2)
|
||||
|
||||
#define S_IFMT 00170000
|
||||
#define S_IFSOCK 0140000
|
||||
|
|
|
@ -1278,7 +1278,7 @@ static inline int sock_writeable(const struct sock *sk)
|
|||
|
||||
static inline gfp_t gfp_any(void)
|
||||
{
|
||||
return in_softirq() ? GFP_ATOMIC : GFP_KERNEL;
|
||||
return in_atomic() ? GFP_ATOMIC : GFP_KERNEL;
|
||||
}
|
||||
|
||||
static inline long sock_rcvtimeo(const struct sock *sk, int noblock)
|
||||
|
|
|
@ -291,12 +291,11 @@ static int old_dev_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
|
|||
if (!capable(CAP_NET_ADMIN))
|
||||
return -EPERM;
|
||||
|
||||
spin_lock_bh(&br->lock);
|
||||
if ((p = br_get_port(br, args[1])) == NULL)
|
||||
ret = -EINVAL;
|
||||
else
|
||||
br_stp_set_path_cost(p, args[2]);
|
||||
spin_unlock_bh(&br->lock);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
|
|
@ -2037,7 +2037,7 @@ struct sk_buff *skb_segment(struct sk_buff *skb, int features)
|
|||
err:
|
||||
while ((skb = segs)) {
|
||||
segs = skb->next;
|
||||
kfree(skb);
|
||||
kfree_skb(skb);
|
||||
}
|
||||
return ERR_PTR(err);
|
||||
}
|
||||
|
|
|
@ -269,7 +269,7 @@ void dccp_write_xmit(struct sock *sk, int block)
|
|||
err);
|
||||
} else {
|
||||
dccp_pr_debug("packet discarded\n");
|
||||
kfree(skb);
|
||||
kfree_skb(skb);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -381,7 +381,7 @@ struct sock *tcp_create_openreq_child(struct sock *sk, struct request_sock *req,
|
|||
if (newsk != NULL) {
|
||||
const struct inet_request_sock *ireq = inet_rsk(req);
|
||||
struct tcp_request_sock *treq = tcp_rsk(req);
|
||||
struct inet_connection_sock *newicsk = inet_csk(sk);
|
||||
struct inet_connection_sock *newicsk = inet_csk(newsk);
|
||||
struct tcp_sock *newtp;
|
||||
|
||||
/* Now setup tcp_sock */
|
||||
|
|
|
@ -400,6 +400,8 @@ static void dev_forward_change(struct inet6_dev *idev)
|
|||
ipv6_dev_mc_dec(dev, &addr);
|
||||
}
|
||||
for (ifa=idev->addr_list; ifa; ifa=ifa->if_next) {
|
||||
if (ifa->flags&IFA_F_TENTATIVE)
|
||||
continue;
|
||||
if (idev->cnf.forwarding)
|
||||
addrconf_join_anycast(ifa);
|
||||
else
|
||||
|
|
|
@ -461,6 +461,7 @@ static inline struct ifacaddr6 *ac6_get_first(struct seq_file *seq)
|
|||
break;
|
||||
}
|
||||
read_unlock_bh(&idev->lock);
|
||||
in6_dev_put(idev);
|
||||
}
|
||||
return im;
|
||||
}
|
||||
|
|
|
@ -1,101 +0,0 @@
|
|||
Revision 0.21: Uses the new generic socket option code.
|
||||
|
||||
Revision 0.22: Gcc clean ups and drop out device registration. Use the
|
||||
new multi-protocol edition of hard_header
|
||||
|
||||
Revision 0.23: IPX /proc by Mark Evans. Adding a route will
|
||||
will overwrite any existing route to the same network.
|
||||
|
||||
Revision 0.24: Supports new /proc with no 4K limit
|
||||
|
||||
Revision 0.25: Add ephemeral sockets, passive local network
|
||||
identification, support for local net 0 and
|
||||
multiple datalinks <Greg Page>
|
||||
|
||||
Revision 0.26: Device drop kills IPX routes via it. (needed for module)
|
||||
|
||||
Revision 0.27: Autobind <Mark Evans>
|
||||
|
||||
Revision 0.28: Small fix for multiple local networks <Thomas Winder>
|
||||
|
||||
Revision 0.29: Assorted major errors removed <Mark Evans>
|
||||
Small correction to promisc mode error fix <Alan Cox>
|
||||
Asynchronous I/O support. Changed to use notifiers
|
||||
and the newer packet_type stuff. Assorted major
|
||||
fixes <Alejandro Liu>
|
||||
|
||||
Revision 0.30: Moved to net/ipx/... <Alan Cox>
|
||||
Don't set address length on recvfrom that errors.
|
||||
Incorrect verify_area.
|
||||
|
||||
Revision 0.31: New sk_buffs. This still needs a lot of
|
||||
testing. <Alan Cox>
|
||||
|
||||
Revision 0.32: Using sock_alloc_send_skb, firewall hooks. <Alan Cox>
|
||||
Supports sendmsg/recvmsg
|
||||
|
||||
Revision 0.33: Internal network support, routing changes, uses a
|
||||
protocol private area for ipx data.
|
||||
|
||||
Revision 0.34: Module support. <Jim Freeman>
|
||||
|
||||
Revision 0.35: Checksum support. <Neil Turton>, hooked in by <Alan Cox>
|
||||
Handles WIN95 discovery packets <Volker Lendecke>
|
||||
|
||||
Revision 0.36: Internal bump up for 2.1
|
||||
|
||||
Revision 0.37: Began adding POSIXisms.
|
||||
|
||||
Revision 0.38: Asynchronous socket stuff made current.
|
||||
|
||||
Revision 0.39: SPX interfaces
|
||||
|
||||
Revision 0.40: Tiny SIOCGSTAMP fix (chris@cybernet.co.nz)
|
||||
|
||||
Revision 0.41: 802.2TR removed (p.norton@computer.org)
|
||||
Fixed connecting to primary net,
|
||||
Automatic binding on send & receive,
|
||||
Martijn van Oosterhout <kleptogimp@geocities.com>
|
||||
|
||||
Revision 042: Multithreading - use spinlocks and refcounting to
|
||||
protect some structures: ipx_interface sock list, list
|
||||
of ipx interfaces, etc.
|
||||
Bugfixes - do refcounting on net_devices, check function
|
||||
results, etc. Thanks to davem and freitag for
|
||||
suggestions and guidance.
|
||||
Arnaldo Carvalho de Melo <acme@conectiva.com.br>,
|
||||
November, 2000
|
||||
|
||||
Revision 043: Shared SKBs, don't mangle packets, some cleanups
|
||||
Arnaldo Carvalho de Melo <acme@conectiva.com.br>,
|
||||
December, 2000
|
||||
|
||||
Revision 044: Call ipxitf_hold on NETDEV_UP - acme
|
||||
|
||||
Revision 045: fix PPROP routing bug - acme
|
||||
|
||||
Revision 046: Further fixes to PPROP, ipxitf_create_internal was
|
||||
doing an unneeded MOD_INC_USE_COUNT, implement
|
||||
sysctl for ipx_pprop_broacasting, fix the ipx sysctl
|
||||
handling, making it dynamic, some cleanups, thanks to
|
||||
Petr Vandrovec for review and good suggestions. (acme)
|
||||
|
||||
Revision 047: Cleanups, CodingStyle changes, move the ncp connection
|
||||
hack out of line - acme
|
||||
|
||||
Revision 048: Use sk->protinfo to store the pointer to IPX private
|
||||
area, remove af_ipx from sk->protinfo and move ipx_opt
|
||||
to include/net/ipx.h, use IPX_SK like DecNET, etc - acme
|
||||
|
||||
Revision 049: SPX support dropped, see comment in ipx_create - acme
|
||||
|
||||
Revision 050: Use seq_file for proc stuff, moving it to ipx_proc.c - acme
|
||||
|
||||
Other fixes:
|
||||
|
||||
Protect the module by a MOD_INC_USE_COUNT/MOD_DEC_USE_COUNT pair. Also, now
|
||||
usage count is managed this way:
|
||||
-Count one if the auto_interface mode is on
|
||||
-Count one per configured interface
|
||||
|
||||
Jacques Gelinas (jacques@solucorp.qc.ca)
|
|
@ -16,8 +16,7 @@ config IPX
|
|||
support", below.
|
||||
|
||||
IPX is similar in scope to IP, while SPX, which runs on top of IPX,
|
||||
is similar to TCP. There is also experimental support for SPX in
|
||||
Linux (see "SPX networking", below).
|
||||
is similar to TCP.
|
||||
|
||||
To turn your Linux box into a fully featured NetWare file server and
|
||||
IPX router, say Y here and fetch either lwared from
|
||||
|
@ -26,9 +25,6 @@ config IPX
|
|||
information, read the IPX-HOWTO available from
|
||||
<http://www.tldp.org/docs.html#howto>.
|
||||
|
||||
General information about how to connect Linux, Windows machines and
|
||||
Macs is on the WWW at <http://www.eats.com/linux_mac_win.html>.
|
||||
|
||||
The IPX driver would enlarge your kernel by about 16 KB. To compile
|
||||
this driver as a module, choose M here: the module will be called ipx.
|
||||
Unless you want to integrate your Linux box with a local Novell
|
||||
|
|
|
@ -197,13 +197,12 @@ EXPORT_SYMBOL_GPL(nfnetlink_has_listeners);
|
|||
|
||||
int nfnetlink_send(struct sk_buff *skb, u32 pid, unsigned group, int echo)
|
||||
{
|
||||
gfp_t allocation = in_interrupt() ? GFP_ATOMIC : GFP_KERNEL;
|
||||
int err = 0;
|
||||
|
||||
NETLINK_CB(skb).dst_group = group;
|
||||
if (echo)
|
||||
atomic_inc(&skb->users);
|
||||
netlink_broadcast(nfnl, skb, pid, group, allocation);
|
||||
netlink_broadcast(nfnl, skb, pid, group, gfp_any());
|
||||
if (echo)
|
||||
err = netlink_unicast(nfnl, skb, pid, MSG_DONTWAIT);
|
||||
|
||||
|
|
|
@ -173,7 +173,7 @@ static int netlbl_unlabel_list(struct sk_buff *skb, struct genl_info *info)
|
|||
return 0;
|
||||
|
||||
list_failure:
|
||||
kfree(ans_skb);
|
||||
kfree_skb(ans_skb);
|
||||
return ret_val;
|
||||
}
|
||||
|
||||
|
|
|
@ -1401,7 +1401,7 @@ static int xfrm_get_ae(struct sk_buff *skb, struct nlmsghdr *nlh,
|
|||
|
||||
x = xfrm_state_lookup(&id->daddr, id->spi, id->proto, id->family);
|
||||
if (x == NULL) {
|
||||
kfree(r_skb);
|
||||
kfree_skb(r_skb);
|
||||
return -ESRCH;
|
||||
}
|
||||
|
||||
|
@ -1557,14 +1557,13 @@ static int xfrm_add_sa_expire(struct sk_buff *skb, struct nlmsghdr *nlh,
|
|||
struct xfrm_usersa_info *p = &ue->state;
|
||||
|
||||
x = xfrm_state_lookup(&p->id.daddr, p->id.spi, p->id.proto, p->family);
|
||||
err = -ENOENT;
|
||||
|
||||
err = -ENOENT;
|
||||
if (x == NULL)
|
||||
return err;
|
||||
|
||||
err = -EINVAL;
|
||||
|
||||
spin_lock_bh(&x->lock);
|
||||
err = -EINVAL;
|
||||
if (x->km.state != XFRM_STATE_VALID)
|
||||
goto out;
|
||||
km_state_expired(x, ue->hard, current->pid);
|
||||
|
@ -1574,6 +1573,7 @@ static int xfrm_add_sa_expire(struct sk_buff *skb, struct nlmsghdr *nlh,
|
|||
xfrm_audit_log(NETLINK_CB(skb).loginuid, NETLINK_CB(skb).sid,
|
||||
AUDIT_MAC_IPSEC_DELSA, 1, NULL, x);
|
||||
}
|
||||
err = 0;
|
||||
out:
|
||||
spin_unlock_bh(&x->lock);
|
||||
xfrm_state_put(x);
|
||||
|
|
Loading…
Reference in a new issue