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
fb412d40
Commit
fb412d40
authored
Feb 05, 2005
by
Linus Torvalds
Browse files
Options
Browse Files
Download
Plain Diff
Merge
bk://kernel.bkbits.net/davem/net-2.6
into ppc970.osdl.org:/home/torvalds/v2.6/linux
parents
80b8bedf
077a63ea
Changes
10
Show whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
72 additions
and
29 deletions
+72
-29
Documentation/filesystems/proc.txt
Documentation/filesystems/proc.txt
+5
-4
drivers/net/tg3.c
drivers/net/tg3.c
+26
-14
drivers/net/tg3.h
drivers/net/tg3.h
+1
-0
include/linux/skbuff.h
include/linux/skbuff.h
+5
-9
include/linux/sysctl.h
include/linux/sysctl.h
+1
-0
include/net/dst.h
include/net/dst.h
+1
-0
net/core/dst.c
net/core/dst.c
+2
-0
net/ipv4/route.c
net/ipv4/route.c
+11
-0
net/sched/sch_ingress.c
net/sched/sch_ingress.c
+19
-1
net/xfrm/xfrm_algo.c
net/xfrm/xfrm_algo.c
+1
-1
No files found.
Documentation/filesystems/proc.txt
View file @
fb412d40
...
...
@@ -1709,12 +1709,13 @@ flush
Writing to this file results in a flush of the routing cache.
gc_elasticity, gc_interval, gc_min_interval, gc_tresh, gc_timeout,
gc_thresh, gc_thresh1, gc_thresh2, gc_thresh3
--------------------------------------------------------------
gc_elasticity, gc_interval, gc_min_interval_ms, gc_timeout, gc_thresh
---------------------------------------------------------------------
Values to control the frequency and behavior of the garbage collection
algorithm for the routing cache.
algorithm for the routing cache. gc_min_interval is deprecated and replaced
by gc_min_interval_ms.
max_size
--------
...
...
drivers/net/tg3.c
View file @
fb412d40
...
...
@@ -60,8 +60,8 @@
#define DRV_MODULE_NAME "tg3"
#define PFX DRV_MODULE_NAME ": "
#define DRV_MODULE_VERSION "3.
19
"
#define DRV_MODULE_RELDATE "
January 26
, 2005"
#define DRV_MODULE_VERSION "3.
20
"
#define DRV_MODULE_RELDATE "
February 2
, 2005"
#define TG3_DEF_MAC_MODE 0
#define TG3_DEF_RX_MODE 0
...
...
@@ -2146,8 +2146,9 @@ static int tg3_setup_fiber_hw_autoneg(struct tg3 *tp, u32 mac_status)
if
(
tr32
(
TG3PCI_DUAL_MAC_CTRL
)
&
DUAL_MAC_CTRL_ID
)
port_a
=
0
;
serdes_cfg
=
tr32
(
MAC_SERDES_CFG
)
&
((
1
<<
23
)
|
(
1
<<
22
)
|
(
1
<<
21
)
|
(
1
<<
20
));
/* preserve bits 0-11,13,14 for signal pre-emphasis */
/* preserve bits 20-23 for voltage regulator */
serdes_cfg
=
tr32
(
MAC_SERDES_CFG
)
&
0x00f06fff
;
}
sg_dig_ctrl
=
tr32
(
SG_DIG_CTRL
);
...
...
@@ -2158,9 +2159,9 @@ static int tg3_setup_fiber_hw_autoneg(struct tg3 *tp, u32 mac_status)
u32
val
=
serdes_cfg
;
if
(
port_a
)
val
|=
0xc010
88
0
;
val
|=
0xc010
00
0
;
else
val
|=
0x4010
88
0
;
val
|=
0x4010
00
0
;
tw32_f
(
MAC_SERDES_CFG
,
val
);
}
tw32_f
(
SG_DIG_CTRL
,
0x01388400
);
...
...
@@ -2183,7 +2184,7 @@ static int tg3_setup_fiber_hw_autoneg(struct tg3 *tp, u32 mac_status)
if
(
sg_dig_ctrl
!=
expected_sg_dig_ctrl
)
{
if
(
workaround
)
tw32_f
(
MAC_SERDES_CFG
,
serdes_cfg
|
0xc011
88
0
);
tw32_f
(
MAC_SERDES_CFG
,
serdes_cfg
|
0xc011
00
0
);
tw32_f
(
SG_DIG_CTRL
,
expected_sg_dig_ctrl
|
(
1
<<
30
));
udelay
(
5
);
tw32_f
(
SG_DIG_CTRL
,
expected_sg_dig_ctrl
);
...
...
@@ -2224,9 +2225,9 @@ static int tg3_setup_fiber_hw_autoneg(struct tg3 *tp, u32 mac_status)
u32
val
=
serdes_cfg
;
if
(
port_a
)
val
|=
0xc010
88
0
;
val
|=
0xc010
00
0
;
else
val
|=
0x4010
88
0
;
val
|=
0x4010
00
0
;
tw32_f
(
MAC_SERDES_CFG
,
val
);
}
...
...
@@ -2234,8 +2235,12 @@ static int tg3_setup_fiber_hw_autoneg(struct tg3 *tp, u32 mac_status)
tw32_f
(
SG_DIG_CTRL
,
0x01388400
);
udelay
(
40
);
/* Link parallel detection - link is up */
/* only if we have PCS_SYNC and not */
/* receiving config code words */
mac_status
=
tr32
(
MAC_STATUS
);
if
(
mac_status
&
MAC_STATUS_PCS_SYNCED
)
{
if
((
mac_status
&
MAC_STATUS_PCS_SYNCED
)
&&
!
(
mac_status
&
MAC_STATUS_RCVD_CFG
))
{
tg3_setup_flow_control
(
tp
,
0
,
0
);
current_link_up
=
1
;
}
...
...
@@ -5416,8 +5421,10 @@ static int tg3_reset_hw(struct tg3 *tp)
udelay
(
10
);
if
(
tp
->
tg3_flags2
&
TG3_FLG2_PHY_SERDES
)
{
if
(
GET_ASIC_REV
(
tp
->
pci_chip_rev_id
)
==
ASIC_REV_5704
)
{
if
((
GET_ASIC_REV
(
tp
->
pci_chip_rev_id
)
==
ASIC_REV_5704
)
&&
!
(
tp
->
tg3_flags2
&
TG3_FLG2_SERDES_PREEMPHASIS
))
{
/* Set drive transmission level to 1.2V */
/* only if the signal pre-emphasis bit is not set */
val
=
tr32
(
MAC_SERDES_CFG
);
val
&=
0xfffff000
;
val
|=
0x880
;
...
...
@@ -7513,6 +7520,8 @@ static int __devinit tg3_phy_probe(struct tg3 *tp)
tg3_read_mem
(
tp
,
NIC_SRAM_DATA_CFG
,
&
nic_cfg
);
tp
->
nic_sram_data_cfg
=
nic_cfg
;
tg3_read_mem
(
tp
,
NIC_SRAM_DATA_CFG_2
,
&
cfg2
);
eeprom_signature_found
=
1
;
if
((
nic_cfg
&
NIC_SRAM_DATA_CFG_PHY_TYPE_MASK
)
==
...
...
@@ -7531,8 +7540,7 @@ static int __devinit tg3_phy_probe(struct tg3 *tp)
eeprom_phy_id
=
0
;
if
(
GET_ASIC_REV
(
tp
->
pci_chip_rev_id
)
==
ASIC_REV_5750
)
{
tg3_read_mem
(
tp
,
NIC_SRAM_DATA_CFG_2
,
&
led_cfg
);
led_cfg
&=
(
NIC_SRAM_DATA_CFG_LED_MODE_MASK
|
led_cfg
=
cfg2
&
(
NIC_SRAM_DATA_CFG_LED_MODE_MASK
|
SHASTA_EXT_LED_MODE_MASK
);
}
else
led_cfg
=
nic_cfg
&
NIC_SRAM_DATA_CFG_LED_MODE_MASK
;
...
...
@@ -7590,9 +7598,13 @@ static int __devinit tg3_phy_probe(struct tg3 *tp)
if
(
nic_cfg
&
NIC_SRAM_DATA_CFG_FIBER_WOL
)
tp
->
tg3_flags
|=
TG3_FLAG_SERDES_WOL_CAP
;
tg3_read_mem
(
tp
,
NIC_SRAM_DATA_PHY_ID
,
&
cfg2
);
if
(
cfg2
&
(
1
<<
17
))
tp
->
tg3_flags2
|=
TG3_FLG2_CAPACITIVE_COUPLING
;
/* serdes signal pre-emphasis in register 0x590 set by */
/* bootcode if bit 18 is set */
if
(
cfg2
&
(
1
<<
18
))
tp
->
tg3_flags2
|=
TG3_FLG2_SERDES_PREEMPHASIS
;
}
/* Reading the PHY ID register can conflict with ASF
...
...
drivers/net/tg3.h
View file @
fb412d40
...
...
@@ -2106,6 +2106,7 @@ struct tg3 {
#define TG3_FLG2_CAPACITIVE_COUPLING 0x00004000
#define TG3_FLG2_FLASH 0x00008000
#define TG3_FLG2_HW_TSO 0x00010000
#define TG3_FLG2_SERDES_PREEMPHASIS 0x00020000
u32
split_mode_max_reqs
;
#define SPLIT_MODE_5704_MAX_REQ 3
...
...
include/linux/skbuff.h
View file @
fb412d40
...
...
@@ -353,17 +353,13 @@ static inline struct sk_buff *skb_get(struct sk_buff *skb)
*/
static
inline
void
kfree_skb
(
struct
sk_buff
*
skb
)
{
if
(
atomic_read
(
&
skb
->
users
)
==
1
||
atomic_dec_and_test
(
&
skb
->
users
))
if
(
likely
(
atomic_read
(
&
skb
->
users
)
==
1
))
smp_rmb
();
else
if
(
likely
(
!
atomic_dec_and_test
(
&
skb
->
users
)))
return
;
__kfree_skb
(
skb
);
}
/* Use this if you didn't touch the skb state [for fast switching] */
static
inline
void
kfree_skb_fast
(
struct
sk_buff
*
skb
)
{
if
(
atomic_read
(
&
skb
->
users
)
==
1
||
atomic_dec_and_test
(
&
skb
->
users
))
kfree_skbmem
(
skb
);
}
/**
* skb_cloned - is the buffer a clone
* @skb: buffer to check
...
...
include/linux/sysctl.h
View file @
fb412d40
...
...
@@ -365,6 +365,7 @@ enum {
NET_IPV4_ROUTE_MIN_PMTU
=
16
,
NET_IPV4_ROUTE_MIN_ADVMSS
=
17
,
NET_IPV4_ROUTE_SECRET_INTERVAL
=
18
,
NET_IPV4_ROUTE_GC_MIN_INTERVAL_MS
=
19
,
};
enum
...
...
include/net/dst.h
View file @
fb412d40
...
...
@@ -147,6 +147,7 @@ void dst_release(struct dst_entry * dst)
{
if
(
dst
)
{
WARN_ON
(
atomic_read
(
&
dst
->
__refcnt
)
<
1
);
smp_mb__before_atomic_dec
();
atomic_dec
(
&
dst
->
__refcnt
);
}
}
...
...
net/core/dst.c
View file @
fb412d40
...
...
@@ -169,6 +169,8 @@ struct dst_entry *dst_destroy(struct dst_entry * dst)
struct
neighbour
*
neigh
;
struct
hh_cache
*
hh
;
smp_rmb
();
again:
neigh
=
dst
->
neighbour
;
hh
=
dst
->
hh
;
...
...
net/ipv4/route.c
View file @
fb412d40
...
...
@@ -2529,6 +2529,8 @@ ctl_table ipv4_route_table[] = {
.
proc_handler
=
&
proc_dointvec
,
},
{
/* Deprecated. Use gc_min_interval_ms */
.
ctl_name
=
NET_IPV4_ROUTE_GC_MIN_INTERVAL
,
.
procname
=
"gc_min_interval"
,
.
data
=
&
ip_rt_gc_min_interval
,
...
...
@@ -2537,6 +2539,15 @@ ctl_table ipv4_route_table[] = {
.
proc_handler
=
&
proc_dointvec_jiffies
,
.
strategy
=
&
sysctl_jiffies
,
},
{
.
ctl_name
=
NET_IPV4_ROUTE_GC_MIN_INTERVAL_MS
,
.
procname
=
"gc_min_interval_ms"
,
.
data
=
&
ip_rt_gc_min_interval
,
.
maxlen
=
sizeof
(
unsigned
long
),
.
mode
=
0644
,
.
proc_handler
=
&
proc_doulongvec_ms_jiffies_minmax
,
.
strategy
=
&
sysctl_jiffies
,
},
{
.
ctl_name
=
NET_IPV4_ROUTE_GC_TIMEOUT
,
.
procname
=
"gc_timeout"
,
...
...
net/sched/sch_ingress.c
View file @
fb412d40
...
...
@@ -14,6 +14,7 @@
#include <linux/netdevice.h>
#include <linux/rtnetlink.h>
#include <linux/netfilter_ipv4.h>
#include <linux/netfilter_ipv6.h>
#include <linux/netfilter.h>
#include <linux/smp.h>
#include <net/pkt_sched.h>
...
...
@@ -271,6 +272,14 @@ static struct nf_hook_ops ing_ops = {
.
priority
=
NF_IP_PRI_FILTER
+
1
,
};
static
struct
nf_hook_ops
ing6_ops
=
{
.
hook
=
ing_hook
,
.
owner
=
THIS_MODULE
,
.
pf
=
PF_INET6
,
.
hooknum
=
NF_IP6_PRE_ROUTING
,
.
priority
=
NF_IP6_PRI_FILTER
+
1
,
};
#endif
#endif
...
...
@@ -297,6 +306,12 @@ static int ingress_init(struct Qdisc *sch,struct rtattr *opt)
return
-
EINVAL
;
}
nf_registered
++
;
if
(
nf_register_hook
(
&
ing6_ops
)
<
0
)
{
printk
(
"IPv6 ingress qdisc registration error, "
\
"disabling IPv6 support.
\n
"
);
}
else
nf_registered
++
;
}
#endif
#endif
...
...
@@ -408,8 +423,11 @@ static void __exit ingress_module_exit(void)
unregister_qdisc
(
&
ingress_qdisc_ops
);
#ifndef CONFIG_NET_CLS_ACT
#ifdef CONFIG_NETFILTER
if
(
nf_registered
)
if
(
nf_registered
)
{
nf_unregister_hook
(
&
ing_ops
);
if
(
nf_registered
>
1
)
nf_unregister_hook
(
&
ing6_ops
);
}
#endif
#endif
}
...
...
net/xfrm/xfrm_algo.c
View file @
fb412d40
...
...
@@ -357,7 +357,7 @@ static struct xfrm_algo_desc *xfrm_get_byname(struct xfrm_algo_desc *list,
return
NULL
;
for
(
i
=
0
;
i
<
entries
;
i
++
)
{
if
(
!
strcmp
(
name
,
list
[
i
].
name
))
if
(
strcmp
(
name
,
list
[
i
].
name
))
continue
;
if
(
list
[
i
].
available
)
...
...
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