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
06fb4e70
Commit
06fb4e70
authored
Aug 30, 2015
by
David S. Miller
Browse files
Options
Browse Files
Download
Plain Diff
Merge
git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
parents
2573d788
f892a84c
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
47 additions
and
15 deletions
+47
-15
drivers/net/bonding/bond_main.c
drivers/net/bonding/bond_main.c
+0
-2
drivers/net/ethernet/renesas/ravb_main.c
drivers/net/ethernet/renesas/ravb_main.c
+1
-1
drivers/net/ethernet/renesas/sh_eth.c
drivers/net/ethernet/renesas/sh_eth.c
+1
-3
drivers/net/ethernet/smsc/smsc911x.c
drivers/net/ethernet/smsc/smsc911x.c
+4
-1
include/uapi/linux/netlink.h
include/uapi/linux/netlink.h
+1
-0
net/netlink/af_netlink.c
net/netlink/af_netlink.c
+26
-5
net/sctp/sm_make_chunk.c
net/sctp/sm_make_chunk.c
+13
-2
net/sctp/sm_sideeffect.c
net/sctp/sm_sideeffect.c
+1
-1
No files found.
drivers/net/bonding/bond_main.c
View file @
06fb4e70
...
@@ -979,7 +979,6 @@ static void bond_poll_controller(struct net_device *bond_dev)
...
@@ -979,7 +979,6 @@ static void bond_poll_controller(struct net_device *bond_dev)
if
(
bond_3ad_get_active_agg_info
(
bond
,
&
ad_info
))
if
(
bond_3ad_get_active_agg_info
(
bond
,
&
ad_info
))
return
;
return
;
rcu_read_lock_bh
();
bond_for_each_slave_rcu
(
bond
,
slave
,
iter
)
{
bond_for_each_slave_rcu
(
bond
,
slave
,
iter
)
{
ops
=
slave
->
dev
->
netdev_ops
;
ops
=
slave
->
dev
->
netdev_ops
;
if
(
!
bond_slave_is_up
(
slave
)
||
!
ops
->
ndo_poll_controller
)
if
(
!
bond_slave_is_up
(
slave
)
||
!
ops
->
ndo_poll_controller
)
...
@@ -1000,7 +999,6 @@ static void bond_poll_controller(struct net_device *bond_dev)
...
@@ -1000,7 +999,6 @@ static void bond_poll_controller(struct net_device *bond_dev)
ops
->
ndo_poll_controller
(
slave
->
dev
);
ops
->
ndo_poll_controller
(
slave
->
dev
);
up
(
&
ni
->
dev_lock
);
up
(
&
ni
->
dev_lock
);
}
}
rcu_read_unlock_bh
();
}
}
static
void
bond_netpoll_cleanup
(
struct
net_device
*
bond_dev
)
static
void
bond_netpoll_cleanup
(
struct
net_device
*
bond_dev
)
...
...
drivers/net/ethernet/renesas/ravb_main.c
View file @
06fb4e70
...
@@ -1659,7 +1659,7 @@ static int ravb_probe(struct platform_device *pdev)
...
@@ -1659,7 +1659,7 @@ static int ravb_probe(struct platform_device *pdev)
ndev
->
dma
=
-
1
;
ndev
->
dma
=
-
1
;
irq
=
platform_get_irq
(
pdev
,
0
);
irq
=
platform_get_irq
(
pdev
,
0
);
if
(
irq
<
0
)
{
if
(
irq
<
0
)
{
error
=
-
ENODEV
;
error
=
irq
;
goto
out_release
;
goto
out_release
;
}
}
ndev
->
irq
=
irq
;
ndev
->
irq
=
irq
;
...
...
drivers/net/ethernet/renesas/sh_eth.c
View file @
06fb4e70
...
@@ -3089,10 +3089,8 @@ static int sh_eth_drv_probe(struct platform_device *pdev)
...
@@ -3089,10 +3089,8 @@ static int sh_eth_drv_probe(struct platform_device *pdev)
ndev
->
dma
=
-
1
;
ndev
->
dma
=
-
1
;
ret
=
platform_get_irq
(
pdev
,
0
);
ret
=
platform_get_irq
(
pdev
,
0
);
if
(
ret
<
0
)
{
if
(
ret
<
0
)
ret
=
-
ENODEV
;
goto
out_release
;
goto
out_release
;
}
ndev
->
irq
=
ret
;
ndev
->
irq
=
ret
;
SET_NETDEV_DEV
(
ndev
,
&
pdev
->
dev
);
SET_NETDEV_DEV
(
ndev
,
&
pdev
->
dev
);
...
...
drivers/net/ethernet/smsc/smsc911x.c
View file @
06fb4e70
...
@@ -2428,7 +2428,10 @@ static int smsc911x_drv_probe(struct platform_device *pdev)
...
@@ -2428,7 +2428,10 @@ static int smsc911x_drv_probe(struct platform_device *pdev)
res_size
=
resource_size
(
res
);
res_size
=
resource_size
(
res
);
irq
=
platform_get_irq
(
pdev
,
0
);
irq
=
platform_get_irq
(
pdev
,
0
);
if
(
irq
<=
0
)
{
if
(
irq
==
-
EPROBE_DEFER
)
{
retval
=
-
EPROBE_DEFER
;
goto
out_0
;
}
else
if
(
irq
<=
0
)
{
pr_warn
(
"Could not allocate irq resource
\n
"
);
pr_warn
(
"Could not allocate irq resource
\n
"
);
retval
=
-
ENODEV
;
retval
=
-
ENODEV
;
goto
out_0
;
goto
out_0
;
...
...
include/uapi/linux/netlink.h
View file @
06fb4e70
...
@@ -110,6 +110,7 @@ struct nlmsgerr {
...
@@ -110,6 +110,7 @@ struct nlmsgerr {
#define NETLINK_TX_RING 7
#define NETLINK_TX_RING 7
#define NETLINK_LISTEN_ALL_NSID 8
#define NETLINK_LISTEN_ALL_NSID 8
#define NETLINK_LIST_MEMBERSHIPS 9
#define NETLINK_LIST_MEMBERSHIPS 9
#define NETLINK_CAP_ACK 10
struct
nl_pktinfo
{
struct
nl_pktinfo
{
__u32
group
;
__u32
group
;
...
...
net/netlink/af_netlink.c
View file @
06fb4e70
...
@@ -84,6 +84,7 @@ struct listeners {
...
@@ -84,6 +84,7 @@ struct listeners {
#define NETLINK_F_BROADCAST_SEND_ERROR 0x4
#define NETLINK_F_BROADCAST_SEND_ERROR 0x4
#define NETLINK_F_RECV_NO_ENOBUFS 0x8
#define NETLINK_F_RECV_NO_ENOBUFS 0x8
#define NETLINK_F_LISTEN_ALL_NSID 0x10
#define NETLINK_F_LISTEN_ALL_NSID 0x10
#define NETLINK_F_CAP_ACK 0x20
static
inline
int
netlink_is_kernel
(
struct
sock
*
sk
)
static
inline
int
netlink_is_kernel
(
struct
sock
*
sk
)
{
{
...
@@ -610,11 +611,11 @@ static void netlink_increment_head(struct netlink_ring *ring)
...
@@ -610,11 +611,11 @@ static void netlink_increment_head(struct netlink_ring *ring)
static
void
netlink_forward_ring
(
struct
netlink_ring
*
ring
)
static
void
netlink_forward_ring
(
struct
netlink_ring
*
ring
)
{
{
unsigned
int
head
=
ring
->
head
,
pos
=
head
;
unsigned
int
head
=
ring
->
head
;
const
struct
nl_mmap_hdr
*
hdr
;
const
struct
nl_mmap_hdr
*
hdr
;
do
{
do
{
hdr
=
__netlink_lookup_frame
(
ring
,
pos
);
hdr
=
__netlink_lookup_frame
(
ring
,
ring
->
head
);
if
(
hdr
->
nm_status
==
NL_MMAP_STATUS_UNUSED
)
if
(
hdr
->
nm_status
==
NL_MMAP_STATUS_UNUSED
)
break
;
break
;
if
(
hdr
->
nm_status
!=
NL_MMAP_STATUS_SKIP
)
if
(
hdr
->
nm_status
!=
NL_MMAP_STATUS_SKIP
)
...
@@ -2258,6 +2259,13 @@ static int netlink_setsockopt(struct socket *sock, int level, int optname,
...
@@ -2258,6 +2259,13 @@ static int netlink_setsockopt(struct socket *sock, int level, int optname,
nlk
->
flags
&=
~
NETLINK_F_LISTEN_ALL_NSID
;
nlk
->
flags
&=
~
NETLINK_F_LISTEN_ALL_NSID
;
err
=
0
;
err
=
0
;
break
;
break
;
case
NETLINK_CAP_ACK
:
if
(
val
)
nlk
->
flags
|=
NETLINK_F_CAP_ACK
;
else
nlk
->
flags
&=
~
NETLINK_F_CAP_ACK
;
err
=
0
;
break
;
default:
default:
err
=
-
ENOPROTOOPT
;
err
=
-
ENOPROTOOPT
;
}
}
...
@@ -2332,6 +2340,16 @@ static int netlink_getsockopt(struct socket *sock, int level, int optname,
...
@@ -2332,6 +2340,16 @@ static int netlink_getsockopt(struct socket *sock, int level, int optname,
netlink_table_ungrab
();
netlink_table_ungrab
();
break
;
break
;
}
}
case
NETLINK_CAP_ACK
:
if
(
len
<
sizeof
(
int
))
return
-
EINVAL
;
len
=
sizeof
(
int
);
val
=
nlk
->
flags
&
NETLINK_F_CAP_ACK
?
1
:
0
;
if
(
put_user
(
len
,
optlen
)
||
put_user
(
val
,
optval
))
return
-
EFAULT
;
err
=
0
;
break
;
default:
default:
err
=
-
ENOPROTOOPT
;
err
=
-
ENOPROTOOPT
;
}
}
...
@@ -2873,9 +2891,12 @@ void netlink_ack(struct sk_buff *in_skb, struct nlmsghdr *nlh, int err)
...
@@ -2873,9 +2891,12 @@ void netlink_ack(struct sk_buff *in_skb, struct nlmsghdr *nlh, int err)
struct
nlmsghdr
*
rep
;
struct
nlmsghdr
*
rep
;
struct
nlmsgerr
*
errmsg
;
struct
nlmsgerr
*
errmsg
;
size_t
payload
=
sizeof
(
*
errmsg
);
size_t
payload
=
sizeof
(
*
errmsg
);
struct
netlink_sock
*
nlk
=
nlk_sk
(
NETLINK_CB
(
in_skb
).
sk
);
/* error messages get the original request appened */
/* Error messages get the original request appened, unless the user
if
(
err
)
* requests to cap the error message.
*/
if
(
!
(
nlk
->
flags
&
NETLINK_F_CAP_ACK
)
&&
err
)
payload
+=
nlmsg_len
(
nlh
);
payload
+=
nlmsg_len
(
nlh
);
skb
=
netlink_alloc_skb
(
in_skb
->
sk
,
nlmsg_total_size
(
payload
),
skb
=
netlink_alloc_skb
(
in_skb
->
sk
,
nlmsg_total_size
(
payload
),
...
@@ -2898,7 +2919,7 @@ void netlink_ack(struct sk_buff *in_skb, struct nlmsghdr *nlh, int err)
...
@@ -2898,7 +2919,7 @@ void netlink_ack(struct sk_buff *in_skb, struct nlmsghdr *nlh, int err)
NLMSG_ERROR
,
payload
,
0
);
NLMSG_ERROR
,
payload
,
0
);
errmsg
=
nlmsg_data
(
rep
);
errmsg
=
nlmsg_data
(
rep
);
errmsg
->
error
=
err
;
errmsg
->
error
=
err
;
memcpy
(
&
errmsg
->
msg
,
nlh
,
err
?
nlh
->
nlmsg_len
:
sizeof
(
*
nlh
));
memcpy
(
&
errmsg
->
msg
,
nlh
,
payload
>
sizeof
(
*
errmsg
)
?
nlh
->
nlmsg_len
:
sizeof
(
*
nlh
));
netlink_unicast
(
in_skb
->
sk
,
skb
,
NETLINK_CB
(
in_skb
).
portid
,
MSG_DONTWAIT
);
netlink_unicast
(
in_skb
->
sk
,
skb
,
NETLINK_CB
(
in_skb
).
portid
,
MSG_DONTWAIT
);
}
}
EXPORT_SYMBOL
(
netlink_ack
);
EXPORT_SYMBOL
(
netlink_ack
);
...
...
net/sctp/sm_make_chunk.c
View file @
06fb4e70
...
@@ -3090,8 +3090,19 @@ static __be16 sctp_process_asconf_param(struct sctp_association *asoc,
...
@@ -3090,8 +3090,19 @@ static __be16 sctp_process_asconf_param(struct sctp_association *asoc,
sctp_assoc_set_primary
(
asoc
,
asconf
->
transport
);
sctp_assoc_set_primary
(
asoc
,
asconf
->
transport
);
sctp_assoc_del_nonprimary_peers
(
asoc
,
sctp_assoc_del_nonprimary_peers
(
asoc
,
asconf
->
transport
);
asconf
->
transport
);
}
else
return
SCTP_ERROR_NO_ERROR
;
sctp_assoc_del_peer
(
asoc
,
&
addr
);
}
/* If the address is not part of the association, the
* ASCONF-ACK with Error Cause Indication Parameter
* which including cause of Unresolvable Address should
* be sent.
*/
peer
=
sctp_assoc_lookup_paddr
(
asoc
,
&
addr
);
if
(
!
peer
)
return
SCTP_ERROR_DNS_FAILED
;
sctp_assoc_rm_peer
(
asoc
,
peer
);
break
;
break
;
case
SCTP_PARAM_SET_PRIMARY
:
case
SCTP_PARAM_SET_PRIMARY
:
/* ADDIP Section 4.2.4
/* ADDIP Section 4.2.4
...
...
net/sctp/sm_sideeffect.c
View file @
06fb4e70
...
@@ -954,7 +954,7 @@ static void sctp_cmd_del_non_primary(struct sctp_association *asoc)
...
@@ -954,7 +954,7 @@ static void sctp_cmd_del_non_primary(struct sctp_association *asoc)
t
=
list_entry
(
pos
,
struct
sctp_transport
,
transports
);
t
=
list_entry
(
pos
,
struct
sctp_transport
,
transports
);
if
(
!
sctp_cmp_addr_exact
(
&
t
->
ipaddr
,
if
(
!
sctp_cmp_addr_exact
(
&
t
->
ipaddr
,
&
asoc
->
peer
.
primary_addr
))
{
&
asoc
->
peer
.
primary_addr
))
{
sctp_assoc_
del_peer
(
asoc
,
&
t
->
ipaddr
);
sctp_assoc_
rm_peer
(
asoc
,
t
);
}
}
}
}
}
}
...
...
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