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
b1109bf0
Commit
b1109bf0
authored
Feb 09, 2010
by
David S. Miller
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
parents
889b8f96
44bfce5c
Changes
27
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
27 changed files
with
165 additions
and
143 deletions
+165
-143
MAINTAINERS
MAINTAINERS
+1
-0
drivers/bluetooth/btmrvl_sdio.c
drivers/bluetooth/btmrvl_sdio.c
+1
-0
drivers/net/ax88796.c
drivers/net/ax88796.c
+1
-1
drivers/net/cxgb3/sge.c
drivers/net/cxgb3/sge.c
+12
-8
drivers/net/igb/igb_main.c
drivers/net/igb/igb_main.c
+5
-15
include/net/netns/conntrack.h
include/net/netns/conntrack.h
+3
-0
include/net/netns/ipv4.h
include/net/netns/ipv4.h
+1
-0
net/bluetooth/hci_conn.c
net/bluetooth/hci_conn.c
+3
-0
net/bluetooth/hci_event.c
net/bluetooth/hci_event.c
+1
-0
net/bluetooth/hidp/core.c
net/bluetooth/hidp/core.c
+24
-25
net/bluetooth/hidp/hidp.h
net/bluetooth/hidp/hidp.h
+3
-1
net/bluetooth/rfcomm/core.c
net/bluetooth/rfcomm/core.c
+6
-2
net/core/dst.c
net/core/dst.c
+2
-0
net/core/pktgen.c
net/core/pktgen.c
+1
-0
net/ipv4/netfilter/arp_tables.c
net/ipv4/netfilter/arp_tables.c
+2
-2
net/ipv4/netfilter/ip_tables.c
net/ipv4/netfilter/ip_tables.c
+2
-2
net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c
net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c
+1
-1
net/ipv4/netfilter/nf_conntrack_l3proto_ipv4_compat.c
net/ipv4/netfilter/nf_conntrack_l3proto_ipv4_compat.c
+2
-2
net/ipv4/netfilter/nf_nat_core.c
net/ipv4/netfilter/nf_nat_core.c
+9
-13
net/ipv6/netfilter/ip6_tables.c
net/ipv6/netfilter/ip6_tables.c
+2
-2
net/irda/irnet/irnet_ppp.c
net/irda/irnet/irnet_ppp.c
+4
-1
net/netfilter/nf_conntrack_core.c
net/netfilter/nf_conntrack_core.c
+63
-53
net/netfilter/nf_conntrack_expect.c
net/netfilter/nf_conntrack_expect.c
+2
-2
net/netfilter/nf_conntrack_helper.c
net/netfilter/nf_conntrack_helper.c
+1
-1
net/netfilter/nf_conntrack_netlink.c
net/netfilter/nf_conntrack_netlink.c
+1
-1
net/netfilter/nf_conntrack_standalone.c
net/netfilter/nf_conntrack_standalone.c
+4
-3
net/sched/Kconfig
net/sched/Kconfig
+8
-8
No files found.
MAINTAINERS
View file @
b1109bf0
...
@@ -3836,6 +3836,7 @@ NETWORKING DRIVERS
...
@@ -3836,6 +3836,7 @@ NETWORKING DRIVERS
L: netdev@vger.kernel.org
L: netdev@vger.kernel.org
W: http://www.linuxfoundation.org/en/Net
W: http://www.linuxfoundation.org/en/Net
T: git git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6.git
T: git git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6.git
T: git git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6.git
S: Odd Fixes
S: Odd Fixes
F: drivers/net/
F: drivers/net/
F: include/linux/if_*
F: include/linux/if_*
...
...
drivers/bluetooth/btmrvl_sdio.c
View file @
b1109bf0
...
@@ -808,6 +808,7 @@ static int btmrvl_sdio_host_to_card(struct btmrvl_private *priv,
...
@@ -808,6 +808,7 @@ static int btmrvl_sdio_host_to_card(struct btmrvl_private *priv,
exit:
exit:
sdio_release_host
(
card
->
func
);
sdio_release_host
(
card
->
func
);
kfree
(
tmpbuf
);
return
ret
;
return
ret
;
}
}
...
...
drivers/net/ax88796.c
View file @
b1109bf0
...
@@ -921,7 +921,7 @@ static int ax_probe(struct platform_device *pdev)
...
@@ -921,7 +921,7 @@ static int ax_probe(struct platform_device *pdev)
size
=
(
res
->
end
-
res
->
start
)
+
1
;
size
=
(
res
->
end
-
res
->
start
)
+
1
;
ax
->
mem2
=
request_mem_region
(
res
->
start
,
size
,
pdev
->
name
);
ax
->
mem2
=
request_mem_region
(
res
->
start
,
size
,
pdev
->
name
);
if
(
ax
->
mem
==
NULL
)
{
if
(
ax
->
mem
2
==
NULL
)
{
dev_err
(
&
pdev
->
dev
,
"cannot reserve registers
\n
"
);
dev_err
(
&
pdev
->
dev
,
"cannot reserve registers
\n
"
);
ret
=
-
ENXIO
;
ret
=
-
ENXIO
;
goto
exit_mem1
;
goto
exit_mem1
;
...
...
drivers/net/cxgb3/sge.c
View file @
b1109bf0
...
@@ -2080,6 +2080,7 @@ static void lro_add_page(struct adapter *adap, struct sge_qset *qs,
...
@@ -2080,6 +2080,7 @@ static void lro_add_page(struct adapter *adap, struct sge_qset *qs,
struct
sge_fl
*
fl
,
int
len
,
int
complete
)
struct
sge_fl
*
fl
,
int
len
,
int
complete
)
{
{
struct
rx_sw_desc
*
sd
=
&
fl
->
sdesc
[
fl
->
cidx
];
struct
rx_sw_desc
*
sd
=
&
fl
->
sdesc
[
fl
->
cidx
];
struct
port_info
*
pi
=
netdev_priv
(
qs
->
netdev
);
struct
sk_buff
*
skb
=
NULL
;
struct
sk_buff
*
skb
=
NULL
;
struct
cpl_rx_pkt
*
cpl
;
struct
cpl_rx_pkt
*
cpl
;
struct
skb_frag_struct
*
rx_frag
;
struct
skb_frag_struct
*
rx_frag
;
...
@@ -2117,11 +2118,18 @@ static void lro_add_page(struct adapter *adap, struct sge_qset *qs,
...
@@ -2117,11 +2118,18 @@ static void lro_add_page(struct adapter *adap, struct sge_qset *qs,
if
(
!
nr_frags
)
{
if
(
!
nr_frags
)
{
offset
=
2
+
sizeof
(
struct
cpl_rx_pkt
);
offset
=
2
+
sizeof
(
struct
cpl_rx_pkt
);
qs
->
lro_va
=
sd
->
pg_chunk
.
va
+
2
;
cpl
=
qs
->
lro_va
=
sd
->
pg_chunk
.
va
+
2
;
}
len
-=
offset
;
prefetch
(
qs
->
lro_va
);
if
((
pi
->
rx_offload
&
T3_RX_CSUM
)
&&
cpl
->
csum_valid
&&
cpl
->
csum
==
htons
(
0xffff
))
{
skb
->
ip_summed
=
CHECKSUM_UNNECESSARY
;
qs
->
port_stats
[
SGE_PSTAT_RX_CSUM_GOOD
]
++
;
}
else
skb
->
ip_summed
=
CHECKSUM_NONE
;
}
else
cpl
=
qs
->
lro_va
;
len
-=
offset
;
rx_frag
+=
nr_frags
;
rx_frag
+=
nr_frags
;
rx_frag
->
page
=
sd
->
pg_chunk
.
page
;
rx_frag
->
page
=
sd
->
pg_chunk
.
page
;
...
@@ -2137,12 +2145,8 @@ static void lro_add_page(struct adapter *adap, struct sge_qset *qs,
...
@@ -2137,12 +2145,8 @@ static void lro_add_page(struct adapter *adap, struct sge_qset *qs,
return
;
return
;
skb_record_rx_queue
(
skb
,
qs
-
&
adap
->
sge
.
qs
[
0
]);
skb_record_rx_queue
(
skb
,
qs
-
&
adap
->
sge
.
qs
[
0
]);
skb
->
ip_summed
=
CHECKSUM_UNNECESSARY
;
cpl
=
qs
->
lro_va
;
if
(
unlikely
(
cpl
->
vlan_valid
))
{
if
(
unlikely
(
cpl
->
vlan_valid
))
{
struct
net_device
*
dev
=
qs
->
netdev
;
struct
port_info
*
pi
=
netdev_priv
(
dev
);
struct
vlan_group
*
grp
=
pi
->
vlan_grp
;
struct
vlan_group
*
grp
=
pi
->
vlan_grp
;
if
(
likely
(
grp
!=
NULL
))
{
if
(
likely
(
grp
!=
NULL
))
{
...
...
drivers/net/igb/igb_main.c
View file @
b1109bf0
...
@@ -421,6 +421,8 @@ static void igb_assign_vector(struct igb_q_vector *q_vector, int msix_vector)
...
@@ -421,6 +421,8 @@ static void igb_assign_vector(struct igb_q_vector *q_vector, int msix_vector)
msixbm
=
E1000_EICR_RX_QUEUE0
<<
rx_queue
;
msixbm
=
E1000_EICR_RX_QUEUE0
<<
rx_queue
;
if
(
tx_queue
>
IGB_N0_QUEUE
)
if
(
tx_queue
>
IGB_N0_QUEUE
)
msixbm
|=
E1000_EICR_TX_QUEUE0
<<
tx_queue
;
msixbm
|=
E1000_EICR_TX_QUEUE0
<<
tx_queue
;
if
(
!
adapter
->
msix_entries
&&
msix_vector
==
0
)
msixbm
|=
E1000_EIMS_OTHER
;
array_wr32
(
E1000_MSIXBM
(
0
),
msix_vector
,
msixbm
);
array_wr32
(
E1000_MSIXBM
(
0
),
msix_vector
,
msixbm
);
q_vector
->
eims_value
=
msixbm
;
q_vector
->
eims_value
=
msixbm
;
break
;
break
;
...
@@ -877,7 +879,6 @@ static int igb_request_irq(struct igb_adapter *adapter)
...
@@ -877,7 +879,6 @@ static int igb_request_irq(struct igb_adapter *adapter)
{
{
struct
net_device
*
netdev
=
adapter
->
netdev
;
struct
net_device
*
netdev
=
adapter
->
netdev
;
struct
pci_dev
*
pdev
=
adapter
->
pdev
;
struct
pci_dev
*
pdev
=
adapter
->
pdev
;
struct
e1000_hw
*
hw
=
&
adapter
->
hw
;
int
err
=
0
;
int
err
=
0
;
if
(
adapter
->
msix_entries
)
{
if
(
adapter
->
msix_entries
)
{
...
@@ -909,20 +910,7 @@ static int igb_request_irq(struct igb_adapter *adapter)
...
@@ -909,20 +910,7 @@ static int igb_request_irq(struct igb_adapter *adapter)
igb_setup_all_tx_resources
(
adapter
);
igb_setup_all_tx_resources
(
adapter
);
igb_setup_all_rx_resources
(
adapter
);
igb_setup_all_rx_resources
(
adapter
);
}
else
{
}
else
{
switch
(
hw
->
mac
.
type
)
{
igb_assign_vector
(
adapter
->
q_vector
[
0
],
0
);
case
e1000_82575
:
wr32
(
E1000_MSIXBM
(
0
),
(
E1000_EICR_RX_QUEUE0
|
E1000_EICR_TX_QUEUE0
|
E1000_EIMS_OTHER
));
break
;
case
e1000_82580
:
case
e1000_82576
:
wr32
(
E1000_IVAR0
,
E1000_IVAR_VALID
);
break
;
default:
break
;
}
}
}
if
(
adapter
->
flags
&
IGB_FLAG_HAS_MSI
)
{
if
(
adapter
->
flags
&
IGB_FLAG_HAS_MSI
)
{
...
@@ -1140,6 +1128,8 @@ int igb_up(struct igb_adapter *adapter)
...
@@ -1140,6 +1128,8 @@ int igb_up(struct igb_adapter *adapter)
}
}
if
(
adapter
->
msix_entries
)
if
(
adapter
->
msix_entries
)
igb_configure_msix
(
adapter
);
igb_configure_msix
(
adapter
);
else
igb_assign_vector
(
adapter
->
q_vector
[
0
],
0
);
/* Clear any pending interrupts. */
/* Clear any pending interrupts. */
rd32
(
E1000_ICR
);
rd32
(
E1000_ICR
);
...
...
include/net/netns/conntrack.h
View file @
b1109bf0
...
@@ -11,6 +11,8 @@ struct nf_conntrack_ecache;
...
@@ -11,6 +11,8 @@ struct nf_conntrack_ecache;
struct
netns_ct
{
struct
netns_ct
{
atomic_t
count
;
atomic_t
count
;
unsigned
int
expect_count
;
unsigned
int
expect_count
;
unsigned
int
htable_size
;
struct
kmem_cache
*
nf_conntrack_cachep
;
struct
hlist_nulls_head
*
hash
;
struct
hlist_nulls_head
*
hash
;
struct
hlist_head
*
expect_hash
;
struct
hlist_head
*
expect_hash
;
struct
hlist_nulls_head
unconfirmed
;
struct
hlist_nulls_head
unconfirmed
;
...
@@ -28,5 +30,6 @@ struct netns_ct {
...
@@ -28,5 +30,6 @@ struct netns_ct {
#endif
#endif
int
hash_vmalloc
;
int
hash_vmalloc
;
int
expect_vmalloc
;
int
expect_vmalloc
;
char
*
slabname
;
};
};
#endif
#endif
include/net/netns/ipv4.h
View file @
b1109bf0
...
@@ -40,6 +40,7 @@ struct netns_ipv4 {
...
@@ -40,6 +40,7 @@ struct netns_ipv4 {
struct
xt_table
*
iptable_security
;
struct
xt_table
*
iptable_security
;
struct
xt_table
*
nat_table
;
struct
xt_table
*
nat_table
;
struct
hlist_head
*
nat_bysource
;
struct
hlist_head
*
nat_bysource
;
unsigned
int
nat_htable_size
;
int
nat_vmalloced
;
int
nat_vmalloced
;
#endif
#endif
...
...
net/bluetooth/hci_conn.c
View file @
b1109bf0
...
@@ -377,6 +377,9 @@ struct hci_conn *hci_connect(struct hci_dev *hdev, int type, bdaddr_t *dst, __u8
...
@@ -377,6 +377,9 @@ struct hci_conn *hci_connect(struct hci_dev *hdev, int type, bdaddr_t *dst, __u8
if
(
acl
->
state
==
BT_CONNECTED
&&
if
(
acl
->
state
==
BT_CONNECTED
&&
(
sco
->
state
==
BT_OPEN
||
sco
->
state
==
BT_CLOSED
))
{
(
sco
->
state
==
BT_OPEN
||
sco
->
state
==
BT_CLOSED
))
{
acl
->
power_save
=
1
;
hci_conn_enter_active_mode
(
acl
);
if
(
lmp_esco_capable
(
hdev
))
if
(
lmp_esco_capable
(
hdev
))
hci_setup_sync
(
sco
,
acl
->
handle
);
hci_setup_sync
(
sco
,
acl
->
handle
);
else
else
...
...
net/bluetooth/hci_event.c
View file @
b1109bf0
...
@@ -1699,6 +1699,7 @@ static inline void hci_sync_conn_complete_evt(struct hci_dev *hdev, struct sk_bu
...
@@ -1699,6 +1699,7 @@ static inline void hci_sync_conn_complete_evt(struct hci_dev *hdev, struct sk_bu
break
;
break
;
case
0x1c
:
/* SCO interval rejected */
case
0x1c
:
/* SCO interval rejected */
case
0x1a
:
/* Unsupported Remote Feature */
case
0x1f
:
/* Unspecified error */
case
0x1f
:
/* Unspecified error */
if
(
conn
->
out
&&
conn
->
attempt
<
2
)
{
if
(
conn
->
out
&&
conn
->
attempt
<
2
)
{
conn
->
pkt_type
=
(
hdev
->
esco_type
&
SCO_ESCO_MASK
)
|
conn
->
pkt_type
=
(
hdev
->
esco_type
&
SCO_ESCO_MASK
)
|
...
...
net/bluetooth/hidp/core.c
View file @
b1109bf0
...
@@ -703,29 +703,9 @@ static void hidp_close(struct hid_device *hid)
...
@@ -703,29 +703,9 @@ static void hidp_close(struct hid_device *hid)
static
int
hidp_parse
(
struct
hid_device
*
hid
)
static
int
hidp_parse
(
struct
hid_device
*
hid
)
{
{
struct
hidp_session
*
session
=
hid
->
driver_data
;
struct
hidp_session
*
session
=
hid
->
driver_data
;
struct
hidp_connadd_req
*
req
=
session
->
req
;
unsigned
char
*
buf
;
int
ret
;
buf
=
kmalloc
(
req
->
rd_size
,
GFP_KERNEL
);
if
(
!
buf
)
return
-
ENOMEM
;
if
(
copy_from_user
(
buf
,
req
->
rd_data
,
req
->
rd_size
))
{
kfree
(
buf
);
return
-
EFAULT
;
}
ret
=
hid_parse_report
(
session
->
hid
,
buf
,
req
->
rd_size
);
kfree
(
buf
);
if
(
ret
)
return
ret
;
session
->
req
=
NULL
;
return
0
;
return
hid_parse_report
(
session
->
hid
,
session
->
rd_data
,
session
->
rd_size
);
}
}
static
int
hidp_start
(
struct
hid_device
*
hid
)
static
int
hidp_start
(
struct
hid_device
*
hid
)
...
@@ -770,12 +750,24 @@ static int hidp_setup_hid(struct hidp_session *session,
...
@@ -770,12 +750,24 @@ static int hidp_setup_hid(struct hidp_session *session,
bdaddr_t
src
,
dst
;
bdaddr_t
src
,
dst
;
int
err
;
int
err
;
session
->
rd_data
=
kzalloc
(
req
->
rd_size
,
GFP_KERNEL
);
if
(
!
session
->
rd_data
)
return
-
ENOMEM
;
if
(
copy_from_user
(
session
->
rd_data
,
req
->
rd_data
,
req
->
rd_size
))
{
err
=
-
EFAULT
;
goto
fault
;
}
session
->
rd_size
=
req
->
rd_size
;
hid
=
hid_allocate_device
();
hid
=
hid_allocate_device
();
if
(
IS_ERR
(
hid
))
if
(
IS_ERR
(
hid
))
{
return
PTR_ERR
(
hid
);
err
=
PTR_ERR
(
hid
);
goto
fault
;
}
session
->
hid
=
hid
;
session
->
hid
=
hid
;
session
->
req
=
req
;
hid
->
driver_data
=
session
;
hid
->
driver_data
=
session
;
baswap
(
&
src
,
&
bt_sk
(
session
->
ctrl_sock
->
sk
)
->
src
);
baswap
(
&
src
,
&
bt_sk
(
session
->
ctrl_sock
->
sk
)
->
src
);
...
@@ -806,6 +798,10 @@ static int hidp_setup_hid(struct hidp_session *session,
...
@@ -806,6 +798,10 @@ static int hidp_setup_hid(struct hidp_session *session,
hid_destroy_device
(
hid
);
hid_destroy_device
(
hid
);
session
->
hid
=
NULL
;
session
->
hid
=
NULL
;
fault:
kfree
(
session
->
rd_data
);
session
->
rd_data
=
NULL
;
return
err
;
return
err
;
}
}
...
@@ -900,6 +896,9 @@ int hidp_add_connection(struct hidp_connadd_req *req, struct socket *ctrl_sock,
...
@@ -900,6 +896,9 @@ int hidp_add_connection(struct hidp_connadd_req *req, struct socket *ctrl_sock,
session
->
hid
=
NULL
;
session
->
hid
=
NULL
;
}
}
kfree
(
session
->
rd_data
);
session
->
rd_data
=
NULL
;
purge:
purge:
skb_queue_purge
(
&
session
->
ctrl_transmit
);
skb_queue_purge
(
&
session
->
ctrl_transmit
);
skb_queue_purge
(
&
session
->
intr_transmit
);
skb_queue_purge
(
&
session
->
intr_transmit
);
...
...
net/bluetooth/hidp/hidp.h
View file @
b1109bf0
...
@@ -154,7 +154,9 @@ struct hidp_session {
...
@@ -154,7 +154,9 @@ struct hidp_session {
struct
sk_buff_head
ctrl_transmit
;
struct
sk_buff_head
ctrl_transmit
;
struct
sk_buff_head
intr_transmit
;
struct
sk_buff_head
intr_transmit
;
struct
hidp_connadd_req
*
req
;
/* Report descriptor */
__u8
*
rd_data
;
uint
rd_size
;
};
};
static
inline
void
hidp_schedule
(
struct
hidp_session
*
session
)
static
inline
void
hidp_schedule
(
struct
hidp_session
*
session
)
...
...
net/bluetooth/rfcomm/core.c
View file @
b1109bf0
...
@@ -252,7 +252,6 @@ static void rfcomm_session_timeout(unsigned long arg)
...
@@ -252,7 +252,6 @@ static void rfcomm_session_timeout(unsigned long arg)
BT_DBG
(
"session %p state %ld"
,
s
,
s
->
state
);
BT_DBG
(
"session %p state %ld"
,
s
,
s
->
state
);
set_bit
(
RFCOMM_TIMED_OUT
,
&
s
->
flags
);
set_bit
(
RFCOMM_TIMED_OUT
,
&
s
->
flags
);
rfcomm_session_put
(
s
);
rfcomm_schedule
(
RFCOMM_SCHED_TIMEO
);
rfcomm_schedule
(
RFCOMM_SCHED_TIMEO
);
}
}
...
@@ -1151,6 +1150,10 @@ static int rfcomm_recv_ua(struct rfcomm_session *s, u8 dlci)
...
@@ -1151,6 +1150,10 @@ static int rfcomm_recv_ua(struct rfcomm_session *s, u8 dlci)
break
;
break
;
case
BT_DISCONN
:
case
BT_DISCONN
:
/* When socket is closed and we are not RFCOMM
* initiator rfcomm_process_rx already calls
* rfcomm_session_put() */
if
(
s
->
sock
->
sk
->
sk_state
!=
BT_CLOSED
)
rfcomm_session_put
(
s
);
rfcomm_session_put
(
s
);
break
;
break
;
}
}
...
@@ -1920,6 +1923,7 @@ static inline void rfcomm_process_sessions(void)
...
@@ -1920,6 +1923,7 @@ static inline void rfcomm_process_sessions(void)
if
(
test_and_clear_bit
(
RFCOMM_TIMED_OUT
,
&
s
->
flags
))
{
if
(
test_and_clear_bit
(
RFCOMM_TIMED_OUT
,
&
s
->
flags
))
{
s
->
state
=
BT_DISCONN
;
s
->
state
=
BT_DISCONN
;
rfcomm_send_disc
(
s
,
0
);
rfcomm_send_disc
(
s
,
0
);
rfcomm_session_put
(
s
);
continue
;
continue
;
}
}
...
...
net/core/dst.c
View file @
b1109bf0
...
@@ -17,6 +17,7 @@
...
@@ -17,6 +17,7 @@
#include <linux/string.h>
#include <linux/string.h>
#include <linux/types.h>
#include <linux/types.h>
#include <net/net_namespace.h>
#include <net/net_namespace.h>
#include <linux/sched.h>
#include <net/dst.h>
#include <net/dst.h>
...
@@ -79,6 +80,7 @@ static void dst_gc_task(struct work_struct *work)
...
@@ -79,6 +80,7 @@ static void dst_gc_task(struct work_struct *work)
while
((
dst
=
next
)
!=
NULL
)
{
while
((
dst
=
next
)
!=
NULL
)
{
next
=
dst
->
next
;
next
=
dst
->
next
;
prefetch
(
&
next
->
next
);
prefetch
(
&
next
->
next
);
cond_resched
();
if
(
likely
(
atomic_read
(
&
dst
->
__refcnt
)))
{
if
(
likely
(
atomic_read
(
&
dst
->
__refcnt
)))
{
last
->
next
=
dst
;
last
->
next
=
dst
;
last
=
dst
;
last
=
dst
;
...
...
net/core/pktgen.c
View file @
b1109bf0
...
@@ -3524,6 +3524,7 @@ static int pktgen_thread_worker(void *arg)
...
@@ -3524,6 +3524,7 @@ static int pktgen_thread_worker(void *arg)
wait_event_interruptible_timeout
(
t
->
queue
,
wait_event_interruptible_timeout
(
t
->
queue
,
t
->
control
!=
0
,
t
->
control
!=
0
,
HZ
/
10
);
HZ
/
10
);
try_to_freeze
();
continue
;
continue
;
}
}
...
...
net/ipv4/netfilter/arp_tables.c
View file @
b1109bf0
...
@@ -925,10 +925,10 @@ static int get_info(struct net *net, void __user *user, int *len, int compat)
...
@@ -925,10 +925,10 @@ static int get_info(struct net *net, void __user *user, int *len, int compat)
if
(
t
&&
!
IS_ERR
(
t
))
{
if
(
t
&&
!
IS_ERR
(
t
))
{
struct
arpt_getinfo
info
;
struct
arpt_getinfo
info
;
const
struct
xt_table_info
*
private
=
t
->
private
;
const
struct
xt_table_info
*
private
=
t
->
private
;
#ifdef CONFIG_COMPAT
#ifdef CONFIG_COMPAT
if
(
compat
)
{
struct
xt_table_info
tmp
;
struct
xt_table_info
tmp
;
if
(
compat
)
{
ret
=
compat_table_info
(
private
,
&
tmp
);
ret
=
compat_table_info
(
private
,
&
tmp
);
xt_compat_flush_offsets
(
NFPROTO_ARP
);
xt_compat_flush_offsets
(
NFPROTO_ARP
);
private
=
&
tmp
;
private
=
&
tmp
;
...
...
net/ipv4/netfilter/ip_tables.c
View file @
b1109bf0
...
@@ -1132,10 +1132,10 @@ static int get_info(struct net *net, void __user *user, int *len, int compat)
...
@@ -1132,10 +1132,10 @@ static int get_info(struct net *net, void __user *user, int *len, int compat)
if
(
t
&&
!
IS_ERR
(
t
))
{
if
(
t
&&
!
IS_ERR
(
t
))
{
struct
ipt_getinfo
info
;
struct
ipt_getinfo
info
;
const
struct
xt_table_info
*
private
=
t
->
private
;
const
struct
xt_table_info
*
private
=
t
->
private
;
#ifdef CONFIG_COMPAT
#ifdef CONFIG_COMPAT
if
(
compat
)
{
struct
xt_table_info
tmp
;
struct
xt_table_info
tmp
;
if
(
compat
)
{
ret
=
compat_table_info
(
private
,
&
tmp
);
ret
=
compat_table_info
(
private
,
&
tmp
);
xt_compat_flush_offsets
(
AF_INET
);
xt_compat_flush_offsets
(
AF_INET
);
private
=
&
tmp
;
private
=
&
tmp
;
...
...
net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c
View file @
b1109bf0
...
@@ -210,7 +210,7 @@ static ctl_table ip_ct_sysctl_table[] = {
...
@@ -210,7 +210,7 @@ static ctl_table ip_ct_sysctl_table[] = {
},
},
{
{
.
procname
=
"ip_conntrack_buckets"
,
.
procname
=
"ip_conntrack_buckets"
,
.
data
=
&
nf_conntrack_
htable_size
,
.
data
=
&
init_net
.
ct
.
htable_size
,
.
maxlen
=
sizeof
(
unsigned
int
),
.
maxlen
=
sizeof
(
unsigned
int
),
.
mode
=
0444
,
.
mode
=
0444
,
.
proc_handler
=
proc_dointvec
,
.
proc_handler
=
proc_dointvec
,
...
...
net/ipv4/netfilter/nf_conntrack_l3proto_ipv4_compat.c
View file @
b1109bf0
...
@@ -32,7 +32,7 @@ static struct hlist_nulls_node *ct_get_first(struct seq_file *seq)
...
@@ -32,7 +32,7 @@ static struct hlist_nulls_node *ct_get_first(struct seq_file *seq)
struct
hlist_nulls_node
*
n
;
struct
hlist_nulls_node
*
n
;
for
(
st
->
bucket
=
0
;
for
(
st
->
bucket
=
0
;
st
->
bucket
<
n
f_conntrack_
htable_size
;
st
->
bucket
<
n
et
->
ct
.
htable_size
;
st
->
bucket
++
)
{
st
->
bucket
++
)
{
n
=
rcu_dereference
(
net
->
ct
.
hash
[
st
->
bucket
].
first
);
n
=
rcu_dereference
(
net
->
ct
.
hash
[
st
->
bucket
].
first
);
if
(
!
is_a_nulls
(
n
))
if
(
!
is_a_nulls
(
n
))
...
@@ -50,7 +50,7 @@ static struct hlist_nulls_node *ct_get_next(struct seq_file *seq,
...
@@ -50,7 +50,7 @@ static struct hlist_nulls_node *ct_get_next(struct seq_file *seq,
head
=
rcu_dereference
(
head
->
next
);
head
=
rcu_dereference
(
head
->
next
);
while
(
is_a_nulls
(
head
))
{
while
(
is_a_nulls
(
head
))
{
if
(
likely
(
get_nulls_value
(
head
)
==
st
->
bucket
))
{
if
(
likely
(
get_nulls_value
(
head
)
==
st
->
bucket
))
{
if
(
++
st
->
bucket
>=
n
f_conntrack_
htable_size
)
if
(
++
st
->
bucket
>=
n
et
->
ct
.
htable_size
)
return
NULL
;
return
NULL
;
}
}
head
=
rcu_dereference
(
net
->
ct
.
hash
[
st
->
bucket
].
first
);
head
=
rcu_dereference
(
net
->
ct
.
hash
[
st
->
bucket
].
first
);
...
...
net/ipv4/netfilter/nf_nat_core.c
View file @
b1109bf0
...
@@ -35,9 +35,6 @@ static DEFINE_SPINLOCK(nf_nat_lock);
...
@@ -35,9 +35,6 @@ static DEFINE_SPINLOCK(nf_nat_lock);
static
struct
nf_conntrack_l3proto
*
l3proto
__read_mostly
;
static
struct
nf_conntrack_l3proto
*
l3proto
__read_mostly
;
/* Calculated at init based on memory size */
static
unsigned
int
nf_nat_htable_size
__read_mostly
;
#define MAX_IP_NAT_PROTO 256
#define MAX_IP_NAT_PROTO 256
static
const
struct
nf_nat_protocol
*
nf_nat_protos
[
MAX_IP_NAT_PROTO
]
static
const
struct
nf_nat_protocol
*
nf_nat_protos
[
MAX_IP_NAT_PROTO
]
__read_mostly
;
__read_mostly
;
...
@@ -72,7 +69,7 @@ EXPORT_SYMBOL_GPL(nf_nat_proto_put);
...
@@ -72,7 +69,7 @@ EXPORT_SYMBOL_GPL(nf_nat_proto_put);
/* We keep an extra hash for each conntrack, for fast searching. */
/* We keep an extra hash for each conntrack, for fast searching. */
static
inline
unsigned
int
static
inline
unsigned
int
hash_by_src
(
const
struct
nf_conntrack_tuple
*
tuple
)
hash_by_src
(
const
struct
n
et
*
net
,
const
struct
n
f_conntrack_tuple
*
tuple
)
{
{
unsigned
int
hash
;
unsigned
int
hash
;
...
@@ -80,7 +77,7 @@ hash_by_src(const struct nf_conntrack_tuple *tuple)
...
@@ -80,7 +77,7 @@ hash_by_src(const struct nf_conntrack_tuple *tuple)
hash
=
jhash_3words
((
__force
u32
)
tuple
->
src
.
u3
.
ip
,
hash
=
jhash_3words
((
__force
u32
)
tuple
->
src
.
u3
.
ip
,
(
__force
u32
)
tuple
->
src
.
u
.
all
,
(
__force
u32
)
tuple
->
src
.
u
.
all
,
tuple
->
dst
.
protonum
,
0
);
tuple
->
dst
.
protonum
,
0
);
return
((
u64
)
hash
*
n
f_
nat_htable_size
)
>>
32
;
return
((
u64
)
hash
*
n
et
->
ipv4
.
nat_htable_size
)
>>
32
;
}
}
/* Is this tuple already taken? (not by us) */
/* Is this tuple already taken? (not by us) */
...
@@ -147,7 +144,7 @@ find_appropriate_src(struct net *net,
...
@@ -147,7 +144,7 @@ find_appropriate_src(struct net *net,
struct
nf_conntrack_tuple
*
result
,
struct
nf_conntrack_tuple
*
result
,
const
struct
nf_nat_range
*
range
)
const
struct
nf_nat_range
*
range
)
{
{
unsigned
int
h
=
hash_by_src
(
tuple
);
unsigned
int
h
=
hash_by_src
(
net
,
tuple
);
const
struct
nf_conn_nat
*
nat
;
const
struct
nf_conn_nat
*
nat
;
const
struct
nf_conn
*
ct
;
const
struct
nf_conn
*
ct
;
const
struct
hlist_node
*
n
;
const
struct
hlist_node
*
n
;
...
@@ -330,7 +327,7 @@ nf_nat_setup_info(struct nf_conn *ct,
...
@@ -330,7 +327,7 @@ nf_nat_setup_info(struct nf_conn *ct,
if
(
have_to_hash
)
{
if
(
have_to_hash
)
{
unsigned
int
srchash
;
unsigned
int
srchash
;
srchash
=
hash_by_src
(
&
ct
->
tuplehash
[
IP_CT_DIR_ORIGINAL
].
tuple
);
srchash
=
hash_by_src
(
net
,
&
ct
->
tuplehash
[
IP_CT_DIR_ORIGINAL
].
tuple
);
spin_lock_bh
(
&
nf_nat_lock
);
spin_lock_bh
(
&
nf_nat_lock
);
/* nf_conntrack_alter_reply might re-allocate exntension aera */
/* nf_conntrack_alter_reply might re-allocate exntension aera */
nat
=
nfct_nat
(
ct
);
nat
=
nfct_nat
(
ct
);
...
@@ -679,7 +676,9 @@ nfnetlink_parse_nat_setup(struct nf_conn *ct,
...
@@ -679,7 +676,9 @@ nfnetlink_parse_nat_setup(struct nf_conn *ct,
static
int
__net_init
nf_nat_net_init
(
struct
net
*
net
)
static
int
__net_init
nf_nat_net_init
(
struct
net
*
net
)
{
{
net
->
ipv4
.
nat_bysource
=
nf_ct_alloc_hashtable
(
&
nf_nat_htable_size
,
/* Leave them the same for the moment. */
net
->
ipv4
.
nat_htable_size
=
net
->
ct
.
htable_size
;
net
->
ipv4
.
nat_bysource
=
nf_ct_alloc_hashtable
(
&
net
->
ipv4
.
nat_htable_size
,
&
net
->
ipv4
.
nat_vmalloced
,
0
);
&
net
->
ipv4
.
nat_vmalloced
,
0
);
if
(
!
net
->
ipv4
.
nat_bysource
)
if
(
!
net
->
ipv4
.
nat_bysource
)
return
-
ENOMEM
;
return
-
ENOMEM
;
...
@@ -703,7 +702,7 @@ static void __net_exit nf_nat_net_exit(struct net *net)
...
@@ -703,7 +702,7 @@ static void __net_exit nf_nat_net_exit(struct net *net)
nf_ct_iterate_cleanup
(
net
,
&
clean_nat
,
NULL
);
nf_ct_iterate_cleanup
(
net
,
&
clean_nat
,
NULL
);
synchronize_rcu
();
synchronize_rcu
();
nf_ct_free_hashtable
(
net
->
ipv4
.
nat_bysource
,
net
->
ipv4
.
nat_vmalloced
,
nf_ct_free_hashtable
(
net
->
ipv4
.
nat_bysource
,
net
->
ipv4
.
nat_vmalloced
,
n
f_
nat_htable_size
);
n
et
->
ipv4
.
nat_htable_size
);
}
}
static
struct
pernet_operations
nf_nat_net_ops
=
{
static
struct
pernet_operations
nf_nat_net_ops
=
{
...
@@ -724,9 +723,6 @@ static int __init nf_nat_init(void)
...
@@ -724,9 +723,6 @@ static int __init nf_nat_init(void)
return
ret
;
return
ret
;
}
}
/* Leave them the same for the moment. */
nf_nat_htable_size
=
nf_conntrack_htable_size
;
ret
=
register_pernet_subsys
(
&
nf_nat_net_ops
);
ret
=
register_pernet_subsys
(
&
nf_nat_net_ops
);
if
(
ret
<
0
)
if
(
ret
<
0
)
goto
cleanup_extend
;
goto
cleanup_extend
;
...
...
net/ipv6/netfilter/ip6_tables.c
View file @
b1109bf0
...
@@ -1164,10 +1164,10 @@ static int get_info(struct net *net, void __user *user, int *len, int compat)
...
@@ -1164,10 +1164,10 @@ static int get_info(struct net *net, void __user *user, int *len, int compat)
if
(
t
&&
!
IS_ERR
(
t
))
{
if
(
t
&&
!
IS_ERR
(
t
))
{
struct
ip6t_getinfo
info
;
struct
ip6t_getinfo
info
;
const
struct
xt_table_info
*
private
=
t
->
private
;
const
struct
xt_table_info
*
private
=
t
->
private
;
#ifdef CONFIG_COMPAT
#ifdef CONFIG_COMPAT
if
(
compat
)
{
struct
xt_table_info
tmp
;
struct
xt_table_info
tmp
;
if
(
compat
)
{
ret
=
compat_table_info
(
private
,
&
tmp
);
ret
=
compat_table_info
(
private
,
&
tmp
);
xt_compat_flush_offsets
(
AF_INET6
);
xt_compat_flush_offsets
(
AF_INET6
);
private
=
&
tmp
;
private
=
&
tmp
;
...
...
net/irda/irnet/irnet_ppp.c
View file @
b1109bf0
...
@@ -698,15 +698,18 @@ dev_irnet_ioctl(
...
@@ -698,15 +698,18 @@ dev_irnet_ioctl(
/* Query PPP channel and unit number */
/* Query PPP channel and unit number */
case
PPPIOCGCHAN
:
case
PPPIOCGCHAN
:
lock_kernel
();
if
(
ap
->
ppp_open
&&
!
put_user
(
ppp_channel_index
(
&
ap
->
chan
),
if
(
ap
->
ppp_open
&&
!
put_user
(
ppp_channel_index
(
&
ap
->
chan
),
(
int
__user
*
)
argp
))
(
int
__user
*
)
argp
))
err
=
0
;
err
=
0
;
unlock_kernel
();
break
;
break
;
case
PPPIOCGUNIT
:
case
PPPIOCGUNIT
:
lock_kernel
();
lock_kernel
();
if
(
ap
->
ppp_open
&&
!
put_user
(
ppp_unit_number
(
&
ap
->
chan
),
if
(
ap
->
ppp_open
&&
!
put_user
(
ppp_unit_number
(
&
ap
->
chan
),
(
int
__user
*
)
argp
))
(
int
__user
*
)
argp
))
err
=
0
;
err
=
0
;
unlock_kernel
();
break
;
break
;
/* All these ioctls can be passed both directly and from ppp_generic,
/* All these ioctls can be passed both directly and from ppp_generic,
...
...
net/netfilter/nf_conntrack_core.c
View file @
b1109bf0
This diff is collapsed.
Click to expand it.
net/netfilter/nf_conntrack_expect.c
View file @
b1109bf0
...
@@ -569,7 +569,7 @@ static void exp_proc_remove(struct net *net)
...
@@ -569,7 +569,7 @@ static void exp_proc_remove(struct net *net)
#endif
/* CONFIG_PROC_FS */
#endif
/* CONFIG_PROC_FS */
}
}
module_param_named
(
expect_hashsize
,
nf_ct_expect_hsize
,
uint
,
0
6
00
);
module_param_named
(
expect_hashsize
,
nf_ct_expect_hsize
,
uint
,
0
4
00
);
int
nf_conntrack_expect_init
(
struct
net
*
net
)
int
nf_conntrack_expect_init
(
struct
net
*
net
)
{
{
...
@@ -577,7 +577,7 @@ int nf_conntrack_expect_init(struct net *net)
...
@@ -577,7 +577,7 @@ int nf_conntrack_expect_init(struct net *net)
if
(
net_eq
(
net
,
&
init_net
))
{
if
(
net_eq
(
net
,
&
init_net
))
{
if
(
!
nf_ct_expect_hsize
)
{
if
(
!
nf_ct_expect_hsize
)
{
nf_ct_expect_hsize
=
n
f_conntrack_
htable_size
/
256
;
nf_ct_expect_hsize
=
n
et
->
ct
.
htable_size
/
256
;
if
(
!
nf_ct_expect_hsize
)
if
(
!
nf_ct_expect_hsize
)
nf_ct_expect_hsize
=
1
;
nf_ct_expect_hsize
=
1
;
}
}
...
...
net/netfilter/nf_conntrack_helper.c
View file @
b1109bf0
...
@@ -192,7 +192,7 @@ static void __nf_conntrack_helper_unregister(struct nf_conntrack_helper *me,
...
@@ -192,7 +192,7 @@ static void __nf_conntrack_helper_unregister(struct nf_conntrack_helper *me,
/* Get rid of expecteds, set helpers to NULL. */
/* Get rid of expecteds, set helpers to NULL. */
hlist_nulls_for_each_entry
(
h
,
nn
,
&
net
->
ct
.
unconfirmed
,
hnnode
)
hlist_nulls_for_each_entry
(
h
,
nn
,
&
net
->
ct
.
unconfirmed
,
hnnode
)
unhelp
(
h
,
me
);
unhelp
(
h
,
me
);
for
(
i
=
0
;
i
<
n
f_conntrack_
htable_size
;
i
++
)
{
for
(
i
=
0
;
i
<
n
et
->
ct
.
htable_size
;
i
++
)
{
hlist_nulls_for_each_entry
(
h
,
nn
,
&
net
->
ct
.
hash
[
i
],
hnnode
)
hlist_nulls_for_each_entry
(
h
,
nn
,
&
net
->
ct
.
hash
[
i
],
hnnode
)
unhelp
(
h
,
me
);
unhelp
(
h
,
me
);
}
}
...
...
net/netfilter/nf_conntrack_netlink.c
View file @
b1109bf0
...
@@ -594,7 +594,7 @@ ctnetlink_dump_table(struct sk_buff *skb, struct netlink_callback *cb)
...
@@ -594,7 +594,7 @@ ctnetlink_dump_table(struct sk_buff *skb, struct netlink_callback *cb)
rcu_read_lock
();
rcu_read_lock
();
last
=
(
struct
nf_conn
*
)
cb
->
args
[
1
];
last
=
(
struct
nf_conn
*
)
cb
->
args
[
1
];
for
(;
cb
->
args
[
0
]
<
nf_conntrack_
htable_size
;
cb
->
args
[
0
]
++
)
{
for
(;
cb
->
args
[
0
]
<
init_net
.
ct
.
htable_size
;
cb
->
args
[
0
]
++
)
{
restart:
restart:
hlist_nulls_for_each_entry_rcu
(
h
,
n
,
&
init_net
.
ct
.
hash
[
cb
->
args
[
0
]],
hlist_nulls_for_each_entry_rcu
(
h
,
n
,
&
init_net
.
ct
.
hash
[
cb
->
args
[
0
]],
hnnode
)
{
hnnode
)
{
...
...
net/netfilter/nf_conntrack_standalone.c
View file @
b1109bf0
...
@@ -51,7 +51,7 @@ static struct hlist_nulls_node *ct_get_first(struct seq_file *seq)
...
@@ -51,7 +51,7 @@ static struct hlist_nulls_node *ct_get_first(struct seq_file *seq)
struct
hlist_nulls_node
*
n
;
struct
hlist_nulls_node
*
n
;
for
(
st
->
bucket
=
0
;
for
(
st
->
bucket
=
0
;
st
->
bucket
<
n
f_conntrack_
htable_size
;
st
->
bucket
<
n
et
->
ct
.
htable_size
;
st
->
bucket
++
)
{
st
->
bucket
++
)
{
n
=
rcu_dereference
(
net
->
ct
.
hash
[
st
->
bucket
].
first
);
n
=
rcu_dereference
(
net
->
ct
.
hash
[
st
->
bucket
].
first
);
if
(
!
is_a_nulls
(
n
))
if
(
!
is_a_nulls
(
n
))
...
@@ -69,7 +69,7 @@ static struct hlist_nulls_node *ct_get_next(struct seq_file *seq,
...
@@ -69,7 +69,7 @@ static struct hlist_nulls_node *ct_get_next(struct seq_file *seq,
head
=
rcu_dereference
(
head
->
next
);
head
=
rcu_dereference
(
head
->
next
);
while
(
is_a_nulls
(
head
))
{
while
(
is_a_nulls
(
head
))
{
if
(
likely
(
get_nulls_value
(
head
)
==
st
->
bucket
))
{
if
(
likely
(
get_nulls_value
(
head
)
==
st
->
bucket
))
{
if
(
++
st
->
bucket
>=
n
f_conntrack_
htable_size
)
if
(
++
st
->
bucket
>=
n
et
->
ct
.
htable_size
)
return
NULL
;
return
NULL
;
}
}
head
=
rcu_dereference
(
net
->
ct
.
hash
[
st
->
bucket
].
first
);
head
=
rcu_dereference
(
net
->
ct
.
hash
[
st
->
bucket
].
first
);
...
@@ -355,7 +355,7 @@ static ctl_table nf_ct_sysctl_table[] = {
...
@@ -355,7 +355,7 @@ static ctl_table nf_ct_sysctl_table[] = {
},
},
{
{
.
procname
=
"nf_conntrack_buckets"
,
.
procname
=
"nf_conntrack_buckets"
,
.
data
=
&
nf_conntrack_
htable_size
,
.
data
=
&
init_net
.
ct
.
htable_size
,
.
maxlen
=
sizeof
(
unsigned
int
),
.
maxlen
=
sizeof
(
unsigned
int
),
.
mode
=
0444
,
.
mode
=
0444
,
.
proc_handler
=
proc_dointvec
,
.
proc_handler
=
proc_dointvec
,
...
@@ -421,6 +421,7 @@ static int nf_conntrack_standalone_init_sysctl(struct net *net)
...
@@ -421,6 +421,7 @@ static int nf_conntrack_standalone_init_sysctl(struct net *net)
goto
out_kmemdup
;
goto
out_kmemdup
;
table
[
1
].
data
=
&
net
->
ct
.
count
;
table
[
1
].
data
=
&
net
->
ct
.
count
;
table
[
2
].
data
=
&
net
->
ct
.
htable_size
;
table
[
3
].
data
=
&
net
->
ct
.
sysctl_checksum
;
table
[
3
].
data
=
&
net
->
ct
.
sysctl_checksum
;
table
[
4
].
data
=
&
net
->
ct
.
sysctl_log_invalid
;
table
[
4
].
data
=
&
net
->
ct
.
sysctl_log_invalid
;
...
...
net/sched/Kconfig
View file @
b1109bf0
...
@@ -433,7 +433,7 @@ config NET_ACT_POLICE
...
@@ -433,7 +433,7 @@ config NET_ACT_POLICE
module.
module.
To compile this code as a module, choose M here: the
To compile this code as a module, choose M here: the
module will be called police.
module will be called
act_
police.
config NET_ACT_GACT
config NET_ACT_GACT
tristate "Generic actions"
tristate "Generic actions"
...
@@ -443,7 +443,7 @@ config NET_ACT_GACT
...
@@ -443,7 +443,7 @@ config NET_ACT_GACT
accepting packets.
accepting packets.
To compile this code as a module, choose M here: the
To compile this code as a module, choose M here: the
module will be called gact.
module will be called
act_
gact.
config GACT_PROB
config GACT_PROB
bool "Probability support"
bool "Probability support"
...
@@ -459,7 +459,7 @@ config NET_ACT_MIRRED
...
@@ -459,7 +459,7 @@ config NET_ACT_MIRRED
other devices.
other devices.
To compile this code as a module, choose M here: the
To compile this code as a module, choose M here: the
module will be called mirred.
module will be called
act_
mirred.
config NET_ACT_IPT
config NET_ACT_IPT
tristate "IPtables targets"
tristate "IPtables targets"
...
@@ -469,7 +469,7 @@ config NET_ACT_IPT
...
@@ -469,7 +469,7 @@ config NET_ACT_IPT
classification.
classification.
To compile this code as a module, choose M here: the
To compile this code as a module, choose M here: the
module will be called ipt.
module will be called
act_
ipt.
config NET_ACT_NAT
config NET_ACT_NAT
tristate "Stateless NAT"
tristate "Stateless NAT"
...
@@ -479,7 +479,7 @@ config NET_ACT_NAT
...
@@ -479,7 +479,7 @@ config NET_ACT_NAT
netfilter for NAT unless you know what you are doing.
netfilter for NAT unless you know what you are doing.
To compile this code as a module, choose M here: the
To compile this code as a module, choose M here: the
module will be called nat.
module will be called
act_
nat.
config NET_ACT_PEDIT
config NET_ACT_PEDIT
tristate "Packet Editing"
tristate "Packet Editing"
...
@@ -488,7 +488,7 @@ config NET_ACT_PEDIT
...
@@ -488,7 +488,7 @@ config NET_ACT_PEDIT
Say Y here if you want to mangle the content of packets.
Say Y here if you want to mangle the content of packets.
To compile this code as a module, choose M here: the
To compile this code as a module, choose M here: the
module will be called pedit.
module will be called
act_
pedit.
config NET_ACT_SIMP
config NET_ACT_SIMP
tristate "Simple Example (Debug)"
tristate "Simple Example (Debug)"
...
@@ -502,7 +502,7 @@ config NET_ACT_SIMP
...
@@ -502,7 +502,7 @@ config NET_ACT_SIMP
If unsure, say N.
If unsure, say N.
To compile this code as a module, choose M here: the
To compile this code as a module, choose M here: the
module will be called simple.
module will be called
act_
simple.
config NET_ACT_SKBEDIT
config NET_ACT_SKBEDIT
tristate "SKB Editing"
tristate "SKB Editing"
...
@@ -513,7 +513,7 @@ config NET_ACT_SKBEDIT
...
@@ -513,7 +513,7 @@ config NET_ACT_SKBEDIT
If unsure, say N.
If unsure, say N.
To compile this code as a module, choose M here: the
To compile this code as a module, choose M here: the
module will be called skbedit.
module will be called
act_
skbedit.
config NET_CLS_IND
config NET_CLS_IND
bool "Incoming device classification"
bool "Incoming device classification"
...
...
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