Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
linux
Commits
84e35d55
Commit
84e35d55
authored
Nov 24, 2003
by
Linus Torvalds
Browse files
Options
Browse Files
Download
Plain Diff
Merge master.kernel.org:/home/davem/BK/net-2.5
into home.osdl.org:/home/torvalds/v2.5/linux
parents
d05fe5ad
72eb3cb0
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
36 additions
and
13 deletions
+36
-13
drivers/net/pppoe.c
drivers/net/pppoe.c
+2
-1
include/net/sock.h
include/net/sock.h
+11
-1
net/econet/af_econet.c
net/econet/af_econet.c
+6
-3
net/ipv6/mcast.c
net/ipv6/mcast.c
+17
-8
No files found.
drivers/net/pppoe.c
View file @
84e35d55
...
@@ -352,7 +352,8 @@ static int pppoe_rcv_core(struct sock *sk, struct sk_buff *skb)
...
@@ -352,7 +352,8 @@ static int pppoe_rcv_core(struct sock *sk, struct sk_buff *skb)
if
(
!
__pppoe_xmit
(
relay_po
->
sk
,
skb
))
if
(
!
__pppoe_xmit
(
relay_po
->
sk
,
skb
))
goto
abort_put
;
goto
abort_put
;
}
else
{
}
else
{
sock_queue_rcv_skb
(
sk
,
skb
);
if
(
sock_queue_rcv_skb
(
sk
,
skb
))
goto
abort_kfree
;
}
}
return
NET_RX_SUCCESS
;
return
NET_RX_SUCCESS
;
...
...
include/net/sock.h
View file @
84e35d55
...
@@ -917,6 +917,7 @@ static inline void skb_set_owner_r(struct sk_buff *skb, struct sock *sk)
...
@@ -917,6 +917,7 @@ static inline void skb_set_owner_r(struct sk_buff *skb, struct sock *sk)
static
inline
int
sock_queue_rcv_skb
(
struct
sock
*
sk
,
struct
sk_buff
*
skb
)
static
inline
int
sock_queue_rcv_skb
(
struct
sock
*
sk
,
struct
sk_buff
*
skb
)
{
{
int
err
=
0
;
int
err
=
0
;
int
skb_len
;
/* Cast skb->rcvbuf to unsigned... It's pointless, but reduces
/* Cast skb->rcvbuf to unsigned... It's pointless, but reduces
number of warnings when compiling with -W --ANK
number of warnings when compiling with -W --ANK
...
@@ -937,9 +938,18 @@ static inline int sock_queue_rcv_skb(struct sock *sk, struct sk_buff *skb)
...
@@ -937,9 +938,18 @@ static inline int sock_queue_rcv_skb(struct sock *sk, struct sk_buff *skb)
skb
->
dev
=
NULL
;
skb
->
dev
=
NULL
;
skb_set_owner_r
(
skb
,
sk
);
skb_set_owner_r
(
skb
,
sk
);
/* Cache the SKB length before we tack it onto the receive
* queue. Once it is added it no longer belongs to us and
* may be freed by other threads of control pulling packets
* from the queue.
*/
skb_len
=
skb
->
len
;
skb_queue_tail
(
&
sk
->
sk_receive_queue
,
skb
);
skb_queue_tail
(
&
sk
->
sk_receive_queue
,
skb
);
if
(
!
sock_flag
(
sk
,
SOCK_DEAD
))
if
(
!
sock_flag
(
sk
,
SOCK_DEAD
))
sk
->
sk_data_ready
(
sk
,
skb
->
len
);
sk
->
sk_data_ready
(
sk
,
skb
_
len
);
out:
out:
return
err
;
return
err
;
}
}
...
...
net/econet/af_econet.c
View file @
84e35d55
...
@@ -1041,12 +1041,15 @@ static int econet_rcv(struct sk_buff *skb, struct net_device *dev, struct packet
...
@@ -1041,12 +1041,15 @@ static int econet_rcv(struct sk_buff *skb, struct net_device *dev, struct packet
if
(
!
sk
)
if
(
!
sk
)
goto
drop
;
goto
drop
;
return
ec_queue_packet
(
sk
,
skb
,
edev
->
net
,
hdr
->
src_stn
,
hdr
->
cb
,
if
(
ec_queue_packet
(
sk
,
skb
,
edev
->
net
,
hdr
->
src_stn
,
hdr
->
cb
,
hdr
->
port
);
hdr
->
port
))
goto
drop
;
return
0
;
drop:
drop:
kfree_skb
(
skb
);
kfree_skb
(
skb
);
return
0
;
return
NET_RX_DROP
;
}
}
static
struct
packet_type
econet_packet_type
=
{
static
struct
packet_type
econet_packet_type
=
{
...
...
net/ipv6/mcast.c
View file @
84e35d55
...
@@ -47,6 +47,9 @@
...
@@ -47,6 +47,9 @@
#include <linux/proc_fs.h>
#include <linux/proc_fs.h>
#include <linux/seq_file.h>
#include <linux/seq_file.h>
#include <linux/netfilter.h>
#include <linux/netfilter_ipv6.h>
#include <net/sock.h>
#include <net/sock.h>
#include <net/snmp.h>
#include <net/snmp.h>
...
@@ -1270,6 +1273,7 @@ static void mld_sendpack(struct sk_buff *skb)
...
@@ -1270,6 +1273,7 @@ static void mld_sendpack(struct sk_buff *skb)
struct
mld2_report
*
pmr
=
(
struct
mld2_report
*
)
skb
->
h
.
raw
;
struct
mld2_report
*
pmr
=
(
struct
mld2_report
*
)
skb
->
h
.
raw
;
int
payload_len
,
mldlen
;
int
payload_len
,
mldlen
;
struct
inet6_dev
*
idev
=
in6_dev_get
(
skb
->
dev
);
struct
inet6_dev
*
idev
=
in6_dev_get
(
skb
->
dev
);
int
err
;
payload_len
=
skb
->
tail
-
(
unsigned
char
*
)
skb
->
nh
.
ipv6h
-
payload_len
=
skb
->
tail
-
(
unsigned
char
*
)
skb
->
nh
.
ipv6h
-
sizeof
(
struct
ipv6hdr
);
sizeof
(
struct
ipv6hdr
);
...
@@ -1278,8 +1282,10 @@ static void mld_sendpack(struct sk_buff *skb)
...
@@ -1278,8 +1282,10 @@ static void mld_sendpack(struct sk_buff *skb)
pmr
->
csum
=
csum_ipv6_magic
(
&
pip6
->
saddr
,
&
pip6
->
daddr
,
mldlen
,
pmr
->
csum
=
csum_ipv6_magic
(
&
pip6
->
saddr
,
&
pip6
->
daddr
,
mldlen
,
IPPROTO_ICMPV6
,
csum_partial
(
skb
->
h
.
raw
,
mldlen
,
0
));
IPPROTO_ICMPV6
,
csum_partial
(
skb
->
h
.
raw
,
mldlen
,
0
));
dev_queue_xmit
(
skb
);
err
=
NF_HOOK
(
PF_INET6
,
NF_IP6_LOCAL_OUT
,
skb
,
NULL
,
skb
->
dev
,
ICMP6_INC_STATS
(
idev
,
Icmp6OutMsgs
);
dev_queue_xmit
);
if
(
!
err
)
ICMP6_INC_STATS
(
idev
,
Icmp6OutMsgs
);
if
(
likely
(
idev
!=
NULL
))
if
(
likely
(
idev
!=
NULL
))
in6_dev_put
(
idev
);
in6_dev_put
(
idev
);
}
}
...
@@ -1608,12 +1614,15 @@ static void igmp6_send(struct in6_addr *addr, struct net_device *dev, int type)
...
@@ -1608,12 +1614,15 @@ static void igmp6_send(struct in6_addr *addr, struct net_device *dev, int type)
idev
=
in6_dev_get
(
skb
->
dev
);
idev
=
in6_dev_get
(
skb
->
dev
);
dev_queue_xmit
(
skb
);
err
=
NF_HOOK
(
PF_INET6
,
NF_IP6_LOCAL_OUT
,
skb
,
NULL
,
skb
->
dev
,
if
(
type
==
ICMPV6_MGM_REDUCTION
)
dev_queue_xmit
);
ICMP6_INC_STATS
(
idev
,
Icmp6OutGroupMembReductions
);
if
(
!
err
)
{
else
if
(
type
==
ICMPV6_MGM_REDUCTION
)
ICMP6_INC_STATS
(
idev
,
Icmp6OutGroupMembResponses
);
ICMP6_INC_STATS
(
idev
,
Icmp6OutGroupMembReductions
);
ICMP6_INC_STATS
(
idev
,
Icmp6OutMsgs
);
else
ICMP6_INC_STATS
(
idev
,
Icmp6OutGroupMembResponses
);
ICMP6_INC_STATS
(
idev
,
Icmp6OutMsgs
);
}
if
(
likely
(
idev
!=
NULL
))
if
(
likely
(
idev
!=
NULL
))
in6_dev_put
(
idev
);
in6_dev_put
(
idev
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment