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
Kirill Smelkov
linux
Commits
bd9952f5
Commit
bd9952f5
authored
Oct 20, 2004
by
David S. Miller
Browse files
Options
Browse Files
Download
Plain Diff
Merge nuts.davemloft.net:/disk1/BK/network-2.6
into nuts.davemloft.net:/disk1/BK/net-2.6
parents
e13a55b1
3ace873f
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
23 additions
and
15 deletions
+23
-15
include/linux/netdevice.h
include/linux/netdevice.h
+1
-15
net/core/dev.c
net/core/dev.c
+22
-0
No files found.
include/linux/netdevice.h
View file @
bd9952f5
...
...
@@ -677,6 +677,7 @@ static inline void dev_kfree_skb_any(struct sk_buff *skb)
#define HAVE_NETIF_RX 1
extern
int
netif_rx
(
struct
sk_buff
*
skb
);
extern
int
netif_rx_ni
(
struct
sk_buff
*
skb
);
#define HAVE_NETIF_RECEIVE_SKB 1
extern
int
netif_receive_skb
(
struct
sk_buff
*
skb
);
extern
int
dev_ioctl
(
unsigned
int
cmd
,
void
__user
*
);
...
...
@@ -691,21 +692,6 @@ extern void dev_init(void);
extern
int
netdev_nit
;
/* Post buffer to the network code from _non interrupt_ context.
* see net/core/dev.c for netif_rx description.
*/
static
inline
int
netif_rx_ni
(
struct
sk_buff
*
skb
)
{
int
err
=
netif_rx
(
skb
);
preempt_disable
();
if
(
softirq_pending
(
smp_processor_id
()))
do_softirq
();
preempt_enable
();
return
err
;
}
/* Called by rtnetlink.c:rtnl_unlock() */
extern
void
netdev_run_todo
(
void
);
...
...
net/core/dev.c
View file @
bd9952f5
...
...
@@ -1587,6 +1587,20 @@ int netif_rx(struct sk_buff *skb)
return
NET_RX_DROP
;
}
int
netif_rx_ni
(
struct
sk_buff
*
skb
)
{
int
err
=
netif_rx
(
skb
);
preempt_disable
();
if
(
softirq_pending
(
smp_processor_id
()))
do_softirq
();
preempt_enable
();
return
err
;
}
EXPORT_SYMBOL
(
netif_rx_ni
);
static
__inline__
void
skb_bond
(
struct
sk_buff
*
skb
)
{
struct
net_device
*
dev
=
skb
->
dev
;
...
...
@@ -2871,6 +2885,14 @@ int register_netdevice(struct net_device *dev)
dev
->
features
&=
~
NETIF_F_SG
;
}
/* TSO requires that SG is present as well. */
if
((
dev
->
features
&
NETIF_F_TSO
)
&&
!
(
dev
->
features
&
NETIF_F_SG
))
{
printk
(
"%s: Dropping NETIF_F_TSO since no SG feature.
\n
"
,
dev
->
name
);
dev
->
features
&=
~
NETIF_F_TSO
;
}
/*
* nil rebuild_header routine,
* that should be never called and used as just bug trap.
...
...
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