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
7fcdf327
Commit
7fcdf327
authored
Jan 31, 2006
by
Linus Torvalds
Browse files
Options
Browse Files
Download
Plain Diff
Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
parents
f7dd16bf
2c74088e
Changes
13
Show whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
122 additions
and
60 deletions
+122
-60
arch/powerpc/platforms/powermac/feature.c
arch/powerpc/platforms/powermac/feature.c
+4
-2
drivers/net/sungem.c
drivers/net/sungem.c
+30
-25
include/linux/netfilter/x_tables.h
include/linux/netfilter/x_tables.h
+15
-1
net/core/dev.c
net/core/dev.c
+3
-2
net/core/filter.c
net/core/filter.c
+3
-3
net/core/skbuff.c
net/core/skbuff.c
+5
-3
net/ipv4/igmp.c
net/ipv4/igmp.c
+0
-1
net/ipv4/tcp_htcp.c
net/ipv4/tcp_htcp.c
+0
-1
net/ipv6/mcast.c
net/ipv6/mcast.c
+47
-9
net/key/af_key.c
net/key/af_key.c
+2
-0
net/packet/af_packet.c
net/packet/af_packet.c
+8
-8
net/sctp/sm_statefuns.c
net/sctp/sm_statefuns.c
+4
-4
net/sctp/socket.c
net/sctp/socket.c
+1
-1
No files found.
arch/powerpc/platforms/powermac/feature.c
View file @
7fcdf327
...
...
@@ -910,16 +910,18 @@ core99_gmac_phy_reset(struct device_node *node, long param, long value)
macio
->
type
!=
macio_intrepid
)
return
-
ENODEV
;
printk
(
KERN_DEBUG
"Hard reset of PHY chip ...
\n
"
);
LOCK
(
flags
);
MACIO_OUT8
(
KL_GPIO_ETH_PHY_RESET
,
KEYLARGO_GPIO_OUTPUT_ENABLE
);
(
void
)
MACIO_IN8
(
KL_GPIO_ETH_PHY_RESET
);
UNLOCK
(
flags
);
m
delay
(
10
);
m
sleep
(
10
);
LOCK
(
flags
);
MACIO_OUT8
(
KL_GPIO_ETH_PHY_RESET
,
/*KEYLARGO_GPIO_OUTPUT_ENABLE | */
KEYLARGO_GPIO_OUTOUT_DATA
);
UNLOCK
(
flags
);
m
delay
(
10
);
m
sleep
(
10
);
return
0
;
}
...
...
drivers/net/sungem.c
View file @
7fcdf327
...
...
@@ -1653,36 +1653,40 @@ static void gem_init_rings(struct gem *gp)
/* Init PHY interface and start link poll state machine */
static
void
gem_init_phy
(
struct
gem
*
gp
)
{
u32
mifcfg
;
u32
mif
_
cfg
;
/* Revert MIF CFG setting done on stop_phy */
mifcfg
=
readl
(
gp
->
regs
+
MIF_CFG
);
mifcfg
&=
~
MIF_CFG_BBMODE
;
writel
(
mifcfg
,
gp
->
regs
+
MIF_CFG
);
mif_cfg
=
readl
(
gp
->
regs
+
MIF_CFG
);
mif_cfg
&=
~
(
MIF_CFG_PSELECT
|
MIF_CFG_POLL
|
MIF_CFG_BBMODE
|
MIF_CFG_MDI1
);
mif_cfg
|=
MIF_CFG_MDI0
;
writel
(
mif_cfg
,
gp
->
regs
+
MIF_CFG
);
writel
(
PCS_DMODE_MGM
,
gp
->
regs
+
PCS_DMODE
);
writel
(
MAC_XIFCFG_OE
,
gp
->
regs
+
MAC_XIFCFG
);
if
(
gp
->
pdev
->
vendor
==
PCI_VENDOR_ID_APPLE
)
{
int
i
;
u16
ctrl
;
/* Those delay sucks, the HW seem to love them though, I'll
* serisouly consider breaking some locks here to be able
* to schedule instead
*/
for
(
i
=
0
;
i
<
3
;
i
++
)
{
#ifdef CONFIG_PPC_PMAC
pmac_call_feature
(
PMAC_FTR_GMAC_PHY_RESET
,
gp
->
of_node
,
0
,
0
);
msleep
(
20
);
#endif
/* Some PHYs used by apple have problem getting back to us,
* we do an additional reset here
/* Some PHYs used by apple have problem getting back
* to us, we do an additional reset here
*/
phy_write
(
gp
,
MII_BMCR
,
BMCR_RESET
);
msleep
(
20
);
if
(
phy_read
(
gp
,
MII_BMCR
)
!=
0xffff
)
for
(
i
=
0
;
i
<
50
;
i
++
)
{
if
(
(
phy_read
(
gp
,
MII_BMCR
)
&
BMCR_RESET
)
==
0
)
break
;
if
(
i
==
2
)
msleep
(
10
);
}
if
(
i
==
50
)
printk
(
KERN_WARNING
"%s: GMAC PHY not responding !
\n
"
,
gp
->
dev
->
name
);
}
/* Make sure isolate is off */
ctrl
=
phy_read
(
gp
,
MII_BMCR
);
if
(
ctrl
&
BMCR_ISOLATE
)
phy_write
(
gp
,
MII_BMCR
,
ctrl
&
~
BMCR_ISOLATE
);
}
if
(
gp
->
pdev
->
vendor
==
PCI_VENDOR_ID_SUN
&&
...
...
@@ -2119,7 +2123,7 @@ static void gem_reinit_chip(struct gem *gp)
/* Must be invoked with no lock held. */
static
void
gem_stop_phy
(
struct
gem
*
gp
,
int
wol
)
{
u32
mifcfg
;
u32
mif
_
cfg
;
unsigned
long
flags
;
/* Let the chip settle down a bit, it seems that helps
...
...
@@ -2130,9 +2134,9 @@ static void gem_stop_phy(struct gem *gp, int wol)
/* Make sure we aren't polling PHY status change. We
* don't currently use that feature though
*/
mifcfg
=
readl
(
gp
->
regs
+
MIF_CFG
);
mifcfg
&=
~
MIF_CFG_POLL
;
writel
(
mifcfg
,
gp
->
regs
+
MIF_CFG
);
mif
_
cfg
=
readl
(
gp
->
regs
+
MIF_CFG
);
mif
_
cfg
&=
~
MIF_CFG_POLL
;
writel
(
mif
_
cfg
,
gp
->
regs
+
MIF_CFG
);
if
(
wol
&&
gp
->
has_wol
)
{
unsigned
char
*
e
=
&
gp
->
dev
->
dev_addr
[
0
];
...
...
@@ -2182,7 +2186,8 @@ static void gem_stop_phy(struct gem *gp, int wol)
/* According to Apple, we must set the MDIO pins to this begnign
* state or we may 1) eat more current, 2) damage some PHYs
*/
writel
(
mifcfg
|
MIF_CFG_BBMODE
,
gp
->
regs
+
MIF_CFG
);
mif_cfg
=
0
;
writel
(
mif_cfg
|
MIF_CFG_BBMODE
,
gp
->
regs
+
MIF_CFG
);
writel
(
0
,
gp
->
regs
+
MIF_BBCLK
);
writel
(
0
,
gp
->
regs
+
MIF_BBDATA
);
writel
(
0
,
gp
->
regs
+
MIF_BBOENAB
);
...
...
include/linux/netfilter/x_tables.h
View file @
7fcdf327
...
...
@@ -19,7 +19,21 @@ struct xt_get_revision
/* For standard target */
#define XT_RETURN (-NF_REPEAT - 1)
#define XT_ALIGN(s) (((s) + (__alignof__(u_int64_t)-1)) & ~(__alignof__(u_int64_t)-1))
/* this is a dummy structure to find out the alignment requirement for a struct
* containing all the fundamental data types that are used in ipt_entry,
* ip6t_entry and arpt_entry. This sucks, and it is a hack. It will be my
* personal pleasure to remove it -HW
*/
struct
_xt_align
{
u_int8_t
u8
;
u_int16_t
u16
;
u_int32_t
u32
;
u_int64_t
u64
;
};
#define XT_ALIGN(s) (((s) + (__alignof__(struct _xt_align)-1)) \
& ~(__alignof__(struct _xt_align)-1))
/* Standard return verdict, or do jump. */
#define XT_STANDARD_TARGET ""
...
...
net/core/dev.c
View file @
7fcdf327
...
...
@@ -2543,13 +2543,14 @@ int dev_ioctl(unsigned int cmd, void __user *arg)
case
SIOCBONDENSLAVE
:
case
SIOCBONDRELEASE
:
case
SIOCBONDSETHWADDR
:
case
SIOCBONDSLAVEINFOQUERY
:
case
SIOCBONDINFOQUERY
:
case
SIOCBONDCHANGEACTIVE
:
case
SIOCBRADDIF
:
case
SIOCBRDELIF
:
if
(
!
capable
(
CAP_NET_ADMIN
))
return
-
EPERM
;
/* fall through */
case
SIOCBONDSLAVEINFOQUERY
:
case
SIOCBONDINFOQUERY
:
dev_load
(
ifr
.
ifr_name
);
rtnl_lock
();
ret
=
dev_ifsioc
(
&
ifr
,
cmd
);
...
...
net/core/filter.c
View file @
7fcdf327
net/core/skbuff.c
View file @
7fcdf327
...
...
@@ -135,13 +135,15 @@ void skb_under_panic(struct sk_buff *skb, int sz, void *here)
struct
sk_buff
*
__alloc_skb
(
unsigned
int
size
,
gfp_t
gfp_mask
,
int
fclone
)
{
kmem_cache_t
*
cache
;
struct
skb_shared_info
*
shinfo
;
struct
sk_buff
*
skb
;
u8
*
data
;
cache
=
fclone
?
skbuff_fclone_cache
:
skbuff_head_cache
;
/* Get the HEAD */
skb
=
kmem_cache_alloc
(
fclone
?
skbuff_fclone_cache
:
skbuff_head_cache
,
gfp_mask
&
~
__GFP_DMA
);
skb
=
kmem_cache_alloc
(
cache
,
gfp_mask
&
~
__GFP_DMA
);
if
(
!
skb
)
goto
out
;
...
...
@@ -180,7 +182,7 @@ struct sk_buff *__alloc_skb(unsigned int size, gfp_t gfp_mask,
out:
return
skb
;
nodata:
kmem_cache_free
(
skbuff_head_
cache
,
skb
);
kmem_cache_free
(
cache
,
skb
);
skb
=
NULL
;
goto
out
;
}
...
...
net/ipv4/igmp.c
View file @
7fcdf327
...
...
@@ -970,7 +970,6 @@ int igmp_rcv(struct sk_buff *skb)
case
IGMP_MTRACE_RESP
:
break
;
default:
NETDEBUG
(
KERN_DEBUG
"New IGMP type=%d, why we do not know about it?
\n
"
,
ih
->
type
);
}
drop:
...
...
net/ipv4/tcp_htcp.c
View file @
7fcdf327
...
...
@@ -230,7 +230,6 @@ static void htcp_cong_avoid(struct sock *sk, u32 ack, u32 rtt,
if
(
tp
->
snd_cwnd
<
tp
->
snd_cwnd_clamp
)
tp
->
snd_cwnd
++
;
tp
->
snd_cwnd_cnt
=
0
;
ca
->
ccount
++
;
}
}
}
...
...
net/ipv6/mcast.c
View file @
7fcdf327
...
...
@@ -1252,8 +1252,7 @@ int igmp6_event_query(struct sk_buff *skb)
}
}
else
{
for
(
ma
=
idev
->
mc_list
;
ma
;
ma
=
ma
->
next
)
{
if
(
group_type
!=
IPV6_ADDR_ANY
&&
!
ipv6_addr_equal
(
group
,
&
ma
->
mca_addr
))
if
(
!
ipv6_addr_equal
(
group
,
&
ma
->
mca_addr
))
continue
;
spin_lock_bh
(
&
ma
->
mca_lock
);
if
(
ma
->
mca_flags
&
MAF_TIMER_RUNNING
)
{
...
...
@@ -1271,7 +1270,6 @@ int igmp6_event_query(struct sk_buff *skb)
mld_marksources
(
ma
,
ntohs
(
mlh2
->
nsrcs
),
mlh2
->
srcs
))
igmp6_group_queried
(
ma
,
max_delay
);
spin_unlock_bh
(
&
ma
->
mca_lock
);
if
(
group_type
!=
IPV6_ADDR_ANY
)
break
;
}
}
...
...
@@ -1351,7 +1349,7 @@ static int is_in(struct ifmcaddr6 *pmc, struct ip6_sf_list *psf, int type,
* in all filters
*/
if
(
psf
->
sf_count
[
MCAST_INCLUDE
])
return
0
;
return
type
==
MLD2_MODE_IS_INCLUDE
;
return
pmc
->
mca_sfcount
[
MCAST_EXCLUDE
]
==
psf
->
sf_count
[
MCAST_EXCLUDE
];
}
...
...
@@ -1966,7 +1964,7 @@ static void sf_markstate(struct ifmcaddr6 *pmc)
static
int
sf_setstate
(
struct
ifmcaddr6
*
pmc
)
{
struct
ip6_sf_list
*
psf
;
struct
ip6_sf_list
*
psf
,
*
dpsf
;
int
mca_xcount
=
pmc
->
mca_sfcount
[
MCAST_EXCLUDE
];
int
qrv
=
pmc
->
idev
->
mc_qrv
;
int
new_in
,
rv
;
...
...
@@ -1978,10 +1976,50 @@ static int sf_setstate(struct ifmcaddr6 *pmc)
!
psf
->
sf_count
[
MCAST_INCLUDE
];
}
else
new_in
=
psf
->
sf_count
[
MCAST_INCLUDE
]
!=
0
;
if
(
new_in
!=
psf
->
sf_oldin
)
{
if
(
new_in
)
{
if
(
!
psf
->
sf_oldin
)
{
struct
ip6_sf_list
*
prev
=
0
;
for
(
dpsf
=
pmc
->
mca_tomb
;
dpsf
;
dpsf
=
dpsf
->
sf_next
)
{
if
(
ipv6_addr_equal
(
&
dpsf
->
sf_addr
,
&
psf
->
sf_addr
))
break
;
prev
=
dpsf
;
}
if
(
dpsf
)
{
if
(
prev
)
prev
->
sf_next
=
dpsf
->
sf_next
;
else
pmc
->
mca_tomb
=
dpsf
->
sf_next
;
kfree
(
dpsf
);
}
psf
->
sf_crcount
=
qrv
;
rv
++
;
}
}
else
if
(
psf
->
sf_oldin
)
{
psf
->
sf_crcount
=
0
;
/*
* add or update "delete" records if an active filter
* is now inactive
*/
for
(
dpsf
=
pmc
->
mca_tomb
;
dpsf
;
dpsf
=
dpsf
->
sf_next
)
if
(
ipv6_addr_equal
(
&
dpsf
->
sf_addr
,
&
psf
->
sf_addr
))
break
;
if
(
!
dpsf
)
{
dpsf
=
(
struct
ip6_sf_list
*
)
kmalloc
(
sizeof
(
*
dpsf
),
GFP_ATOMIC
);
if
(
!
dpsf
)
continue
;
*
dpsf
=
*
psf
;
/* pmc->mca_lock held by callers */
dpsf
->
sf_next
=
pmc
->
mca_tomb
;
pmc
->
mca_tomb
=
dpsf
;
}
dpsf
->
sf_crcount
=
qrv
;
rv
++
;
}
}
return
rv
;
}
...
...
net/key/af_key.c
View file @
7fcdf327
...
...
@@ -1620,6 +1620,7 @@ static int key_notify_sa_flush(struct km_event *c)
return
-
ENOBUFS
;
hdr
=
(
struct
sadb_msg
*
)
skb_put
(
skb
,
sizeof
(
struct
sadb_msg
));
hdr
->
sadb_msg_satype
=
pfkey_proto2satype
(
c
->
data
.
proto
);
hdr
->
sadb_msg_type
=
SADB_FLUSH
;
hdr
->
sadb_msg_seq
=
c
->
seq
;
hdr
->
sadb_msg_pid
=
c
->
pid
;
hdr
->
sadb_msg_version
=
PF_KEY_V2
;
...
...
@@ -2385,6 +2386,7 @@ static int key_notify_policy_flush(struct km_event *c)
if
(
!
skb_out
)
return
-
ENOBUFS
;
hdr
=
(
struct
sadb_msg
*
)
skb_put
(
skb_out
,
sizeof
(
struct
sadb_msg
));
hdr
->
sadb_msg_type
=
SADB_X_SPDFLUSH
;
hdr
->
sadb_msg_seq
=
c
->
seq
;
hdr
->
sadb_msg_pid
=
c
->
pid
;
hdr
->
sadb_msg_version
=
PF_KEY_V2
;
...
...
net/packet/af_packet.c
View file @
7fcdf327
...
...
@@ -365,7 +365,7 @@ static int packet_sendmsg_spkt(struct kiocb *iocb, struct socket *sock,
*/
err
=
-
EMSGSIZE
;
if
(
len
>
dev
->
mtu
+
dev
->
hard_header_len
)
if
(
len
>
dev
->
mtu
+
dev
->
hard_header_len
)
goto
out_unlock
;
err
=
-
ENOBUFS
;
...
...
@@ -935,7 +935,7 @@ static int packet_bind_spkt(struct socket *sock, struct sockaddr *uaddr, int add
* Check legality
*/
if
(
addr_len
!=
sizeof
(
struct
sockaddr
))
if
(
addr_len
!=
sizeof
(
struct
sockaddr
))
return
-
EINVAL
;
strlcpy
(
name
,
uaddr
->
sa_data
,
sizeof
(
name
));
...
...
@@ -1092,7 +1092,7 @@ static int packet_recvmsg(struct kiocb *iocb, struct socket *sock,
* retries.
*/
if
(
skb
==
NULL
)
if
(
skb
==
NULL
)
goto
out
;
/*
...
...
@@ -1392,7 +1392,7 @@ static int packet_getsockopt(struct socket *sock, int level, int optname,
if
(
level
!=
SOL_PACKET
)
return
-
ENOPROTOOPT
;
if
(
get_user
(
len
,
optlen
))
if
(
get_user
(
len
,
optlen
))
return
-
EFAULT
;
if
(
len
<
0
)
...
...
net/sctp/sm_statefuns.c
View file @
7fcdf327
...
...
@@ -884,7 +884,7 @@ sctp_disposition_t sctp_sf_sendbeat_8_3(const struct sctp_endpoint *ep,
{
struct
sctp_transport
*
transport
=
(
struct
sctp_transport
*
)
arg
;
if
(
asoc
->
overall_error_count
>
asoc
->
max_retrans
)
{
if
(
asoc
->
overall_error_count
>
=
asoc
->
max_retrans
)
{
/* CMD_ASSOC_FAILED calls CMD_DELETE_TCB. */
sctp_add_cmd_sf
(
commands
,
SCTP_CMD_ASSOC_FAILED
,
SCTP_U32
(
SCTP_ERROR_NO_ERROR
));
...
...
@@ -2122,7 +2122,7 @@ static sctp_disposition_t sctp_sf_do_5_2_6_stale(const struct sctp_endpoint *ep,
struct
sctp_bind_addr
*
bp
;
int
attempts
=
asoc
->
init_err_counter
+
1
;
if
(
attempts
>
=
asoc
->
max_init_attempts
)
{
if
(
attempts
>
asoc
->
max_init_attempts
)
{
sctp_add_cmd_sf
(
commands
,
SCTP_CMD_INIT_FAILED
,
SCTP_U32
(
SCTP_ERROR_STALE_COOKIE
));
return
SCTP_DISPOSITION_DELETE_TCB
;
...
...
@@ -4640,7 +4640,7 @@ sctp_disposition_t sctp_sf_t1_init_timer_expire(const struct sctp_endpoint *ep,
SCTP_DEBUG_PRINTK
(
"Timer T1 expired (INIT).
\n
"
);
if
(
attempts
<
asoc
->
max_init_attempts
)
{
if
(
attempts
<
=
asoc
->
max_init_attempts
)
{
bp
=
(
struct
sctp_bind_addr
*
)
&
asoc
->
base
.
bind_addr
;
repl
=
sctp_make_init
(
asoc
,
bp
,
GFP_ATOMIC
,
0
);
if
(
!
repl
)
...
...
@@ -4697,7 +4697,7 @@ sctp_disposition_t sctp_sf_t1_cookie_timer_expire(const struct sctp_endpoint *ep
SCTP_DEBUG_PRINTK
(
"Timer T1 expired (COOKIE-ECHO).
\n
"
);
if
(
attempts
<
asoc
->
max_init_attempts
)
{
if
(
attempts
<
=
asoc
->
max_init_attempts
)
{
repl
=
sctp_make_cookie_echo
(
asoc
,
NULL
);
if
(
!
repl
)
return
SCTP_DISPOSITION_NOMEM
;
...
...
net/sctp/socket.c
View file @
7fcdf327
...
...
@@ -5426,7 +5426,7 @@ static int sctp_wait_for_connect(struct sctp_association *asoc, long *timeo_p)
return
err
;
do_error:
if
(
asoc
->
init_err_counter
+
1
>
=
asoc
->
max_init_attempts
)
if
(
asoc
->
init_err_counter
+
1
>
asoc
->
max_init_attempts
)
err
=
-
ETIMEDOUT
;
else
err
=
-
ECONNREFUSED
;
...
...
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