Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
5403c8a2
K
Kernel
项目概览
openeuler
/
Kernel
1 年多 前同步成功
通知
8
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
Kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
5403c8a2
编写于
1月 31, 2011
作者:
D
David S. Miller
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
上级
c79b9e49
c4c93106
变更
14
隐藏空白更改
内联
并排
Showing
14 changed file
with
131 addition
and
63 deletion
+131
-63
drivers/net/bnx2x/bnx2x.h
drivers/net/bnx2x/bnx2x.h
+2
-2
drivers/net/bnx2x/bnx2x_link.c
drivers/net/bnx2x/bnx2x_link.c
+18
-47
drivers/net/bnx2x/bnx2x_main.c
drivers/net/bnx2x/bnx2x_main.c
+11
-7
drivers/net/can/Kconfig
drivers/net/can/Kconfig
+1
-1
include/linux/Kbuild
include/linux/Kbuild
+1
-0
include/linux/caif/Kbuild
include/linux/caif/Kbuild
+2
-0
include/linux/mroute.h
include/linux/mroute.h
+1
-0
include/net/sock.h
include/net/sock.h
+2
-0
net/batman-adv/vis.c
net/batman-adv/vis.c
+8
-6
net/core/dev.c
net/core/dev.c
+1
-0
net/core/rtnetlink.c
net/core/rtnetlink.c
+3
-0
net/ipv4/af_inet.c
net/ipv4/af_inet.c
+16
-0
net/ipv4/ipmr.c
net/ipv4/ipmr.c
+46
-0
net/ipv4/raw.c
net/ipv4/raw.c
+19
-0
未找到文件。
drivers/net/bnx2x/bnx2x.h
浏览文件 @
5403c8a2
...
...
@@ -22,8 +22,8 @@
* (you will need to reboot afterwards) */
/* #define BNX2X_STOP_ON_ERROR */
#define DRV_MODULE_VERSION "1.62.00-
4
"
#define DRV_MODULE_RELDATE "2011/01/
18
"
#define DRV_MODULE_VERSION "1.62.00-
5
"
#define DRV_MODULE_RELDATE "2011/01/
30
"
#define BNX2X_BC_VER 0x040200
#define BNX2X_MULTI_QUEUE
...
...
drivers/net/bnx2x/bnx2x_link.c
浏览文件 @
5403c8a2
...
...
@@ -3948,48 +3948,6 @@ static u8 bnx2x_8073_8727_external_rom_boot(struct bnx2x *bp,
return
rc
;
}
static
void
bnx2x_8073_set_xaui_low_power_mode
(
struct
bnx2x
*
bp
,
struct
bnx2x_phy
*
phy
)
{
u16
val
;
bnx2x_cl45_read
(
bp
,
phy
,
MDIO_PMA_DEVAD
,
MDIO_PMA_REG_8073_CHIP_REV
,
&
val
);
if
(
val
==
0
)
{
/* Mustn't set low power mode in 8073 A0 */
return
;
}
/* Disable PLL sequencer (use read-modify-write to clear bit 13) */
bnx2x_cl45_read
(
bp
,
phy
,
MDIO_XS_DEVAD
,
MDIO_XS_PLL_SEQUENCER
,
&
val
);
val
&=
~
(
1
<<
13
);
bnx2x_cl45_write
(
bp
,
phy
,
MDIO_XS_DEVAD
,
MDIO_XS_PLL_SEQUENCER
,
val
);
/* PLL controls */
bnx2x_cl45_write
(
bp
,
phy
,
MDIO_XS_DEVAD
,
0x805E
,
0x1077
);
bnx2x_cl45_write
(
bp
,
phy
,
MDIO_XS_DEVAD
,
0x805D
,
0x0000
);
bnx2x_cl45_write
(
bp
,
phy
,
MDIO_XS_DEVAD
,
0x805C
,
0x030B
);
bnx2x_cl45_write
(
bp
,
phy
,
MDIO_XS_DEVAD
,
0x805B
,
0x1240
);
bnx2x_cl45_write
(
bp
,
phy
,
MDIO_XS_DEVAD
,
0x805A
,
0x2490
);
/* Tx Controls */
bnx2x_cl45_write
(
bp
,
phy
,
MDIO_XS_DEVAD
,
0x80A7
,
0x0C74
);
bnx2x_cl45_write
(
bp
,
phy
,
MDIO_XS_DEVAD
,
0x80A6
,
0x9041
);
bnx2x_cl45_write
(
bp
,
phy
,
MDIO_XS_DEVAD
,
0x80A5
,
0x4640
);
/* Rx Controls */
bnx2x_cl45_write
(
bp
,
phy
,
MDIO_XS_DEVAD
,
0x80FE
,
0x01C4
);
bnx2x_cl45_write
(
bp
,
phy
,
MDIO_XS_DEVAD
,
0x80FD
,
0x9249
);
bnx2x_cl45_write
(
bp
,
phy
,
MDIO_XS_DEVAD
,
0x80FC
,
0x2015
);
/* Enable PLL sequencer (use read-modify-write to set bit 13) */
bnx2x_cl45_read
(
bp
,
phy
,
MDIO_XS_DEVAD
,
MDIO_XS_PLL_SEQUENCER
,
&
val
);
val
|=
(
1
<<
13
);
bnx2x_cl45_write
(
bp
,
phy
,
MDIO_XS_DEVAD
,
MDIO_XS_PLL_SEQUENCER
,
val
);
}
/******************************************************************/
/* BCM8073 PHY SECTION */
/******************************************************************/
...
...
@@ -4148,8 +4106,6 @@ static u8 bnx2x_8073_config_init(struct bnx2x_phy *phy,
bnx2x_8073_set_pause_cl37
(
params
,
phy
,
vars
);
bnx2x_8073_set_xaui_low_power_mode
(
bp
,
phy
);
bnx2x_cl45_read
(
bp
,
phy
,
MDIO_PMA_DEVAD
,
MDIO_PMA_REG_M8051_MSGOUT_REG
,
&
tmp1
);
...
...
@@ -6519,6 +6475,18 @@ static void bnx2x_848xx_set_link_led(struct bnx2x_phy *phy,
MDIO_PMA_DEVAD
,
MDIO_PMA_REG_8481_LED1_MASK
,
0x80
);
/* Tell LED3 to blink on source */
bnx2x_cl45_read
(
bp
,
phy
,
MDIO_PMA_DEVAD
,
MDIO_PMA_REG_8481_LINK_SIGNAL
,
&
val
);
val
&=
~
(
7
<<
6
);
val
|=
(
1
<<
6
);
/* A83B[8:6]= 1 */
bnx2x_cl45_write
(
bp
,
phy
,
MDIO_PMA_DEVAD
,
MDIO_PMA_REG_8481_LINK_SIGNAL
,
val
);
}
break
;
}
...
...
@@ -7720,10 +7688,13 @@ static u8 bnx2x_8073_common_init_phy(struct bnx2x *bp,
struct
bnx2x_phy
phy
[
PORT_MAX
];
struct
bnx2x_phy
*
phy_blk
[
PORT_MAX
];
u16
val
;
s8
port
;
s8
port
=
0
;
s8
port_of_path
=
0
;
bnx2x_ext_phy_hw_reset
(
bp
,
0
);
u32
swap_val
,
swap_override
;
swap_val
=
REG_RD
(
bp
,
NIG_REG_PORT_SWAP
);
swap_override
=
REG_RD
(
bp
,
NIG_REG_STRAP_OVERRIDE
);
port
^=
(
swap_val
&&
swap_override
);
bnx2x_ext_phy_hw_reset
(
bp
,
port
);
/* PART1 - Reset both phys */
for
(
port
=
PORT_MAX
-
1
;
port
>=
PORT_0
;
port
--
)
{
u32
shmem_base
,
shmem2_base
;
...
...
drivers/net/bnx2x/bnx2x_main.c
浏览文件 @
5403c8a2
...
...
@@ -5296,10 +5296,6 @@ static int bnx2x_init_hw_common(struct bnx2x *bp, u32 load_code)
}
}
bp
->
port
.
need_hw_lock
=
bnx2x_hw_lock_required
(
bp
,
bp
->
common
.
shmem_base
,
bp
->
common
.
shmem2_base
);
bnx2x_setup_fan_failure_detection
(
bp
);
/* clear PXP2 attentions */
...
...
@@ -5503,9 +5499,6 @@ static int bnx2x_init_hw_port(struct bnx2x *bp)
bnx2x_init_block
(
bp
,
MCP_BLOCK
,
init_stage
);
bnx2x_init_block
(
bp
,
DMAE_BLOCK
,
init_stage
);
bp
->
port
.
need_hw_lock
=
bnx2x_hw_lock_required
(
bp
,
bp
->
common
.
shmem_base
,
bp
->
common
.
shmem2_base
);
if
(
bnx2x_fan_failure_det_req
(
bp
,
bp
->
common
.
shmem_base
,
bp
->
common
.
shmem2_base
,
port
))
{
u32
reg_addr
=
(
port
?
MISC_REG_AEU_ENABLE1_FUNC_1_OUT_0
:
...
...
@@ -8379,6 +8372,17 @@ static void __devinit bnx2x_get_port_hwinfo(struct bnx2x *bp)
(
ext_phy_type
!=
PORT_HW_CFG_XGXS_EXT_PHY_TYPE_NOT_CONN
))
bp
->
mdio
.
prtad
=
XGXS_EXT_PHY_ADDR
(
ext_phy_config
);
/*
* Check if hw lock is required to access MDC/MDIO bus to the PHY(s)
* In MF mode, it is set to cover self test cases
*/
if
(
IS_MF
(
bp
))
bp
->
port
.
need_hw_lock
=
1
;
else
bp
->
port
.
need_hw_lock
=
bnx2x_hw_lock_required
(
bp
,
bp
->
common
.
shmem_base
,
bp
->
common
.
shmem2_base
);
}
static
void
__devinit
bnx2x_get_mac_hwinfo
(
struct
bnx2x
*
bp
)
...
...
drivers/net/can/Kconfig
浏览文件 @
5403c8a2
...
...
@@ -23,7 +23,7 @@ config CAN_SLCAN
As only the sending and receiving of CAN frames is implemented, this
driver should work with the (serial/USB) CAN hardware from:
www.canusb.com / www.can232.com / www.mictronic
.com
/ www.canhack.de
www.canusb.com / www.can232.com / www.mictronic
s.de
/ www.canhack.de
Userspace tools to attach the SLCAN line discipline (slcan_attach,
slcand) can be found in the can-utils at the SocketCAN SVN, see
...
...
include/linux/Kbuild
浏览文件 @
5403c8a2
header-y += byteorder/
header-y += can/
header-y += caif/
header-y += dvb/
header-y += hdlc/
header-y += isdn/
...
...
include/linux/caif/Kbuild
0 → 100644
浏览文件 @
5403c8a2
header-y += caif_socket.h
header-y += if_caif.h
include/linux/mroute.h
浏览文件 @
5403c8a2
...
...
@@ -150,6 +150,7 @@ static inline int ip_mroute_opt(int opt)
extern
int
ip_mroute_setsockopt
(
struct
sock
*
,
int
,
char
__user
*
,
unsigned
int
);
extern
int
ip_mroute_getsockopt
(
struct
sock
*
,
int
,
char
__user
*
,
int
__user
*
);
extern
int
ipmr_ioctl
(
struct
sock
*
sk
,
int
cmd
,
void
__user
*
arg
);
extern
int
ipmr_compat_ioctl
(
struct
sock
*
sk
,
unsigned
int
cmd
,
void
__user
*
arg
);
extern
int
ip_mr_init
(
void
);
#else
static
inline
...
...
include/net/sock.h
浏览文件 @
5403c8a2
...
...
@@ -753,6 +753,8 @@ struct proto {
int
level
,
int
optname
,
char
__user
*
optval
,
int
__user
*
option
);
int
(
*
compat_ioctl
)(
struct
sock
*
sk
,
unsigned
int
cmd
,
unsigned
long
arg
);
#endif
int
(
*
sendmsg
)(
struct
kiocb
*
iocb
,
struct
sock
*
sk
,
struct
msghdr
*
msg
,
size_t
len
);
...
...
net/batman-adv/vis.c
浏览文件 @
5403c8a2
...
...
@@ -64,6 +64,7 @@ static void free_info(struct kref *ref)
spin_unlock_bh
(
&
bat_priv
->
vis_list_lock
);
kfree_skb
(
info
->
skb_packet
);
kfree
(
info
);
}
/* Compare two vis packets, used by the hashing algorithm */
...
...
@@ -268,10 +269,10 @@ int vis_seq_print_text(struct seq_file *seq, void *offset)
buff_pos
+=
sprintf
(
buff
+
buff_pos
,
"%pM,"
,
entry
->
addr
);
for
(
i
=
0
;
i
<
packet
->
entries
;
i
++
)
for
(
j
=
0
;
j
<
packet
->
entries
;
j
++
)
buff_pos
+=
vis_data_read_entry
(
buff
+
buff_pos
,
&
entries
[
i
],
&
entries
[
j
],
entry
->
addr
,
entry
->
primary
);
...
...
@@ -444,7 +445,7 @@ static struct vis_info *add_packet(struct bat_priv *bat_priv,
info
);
if
(
hash_added
<
0
)
{
/* did not work (for some reason) */
kref_put
(
&
old_
info
->
refcount
,
free_info
);
kref_put
(
&
info
->
refcount
,
free_info
);
info
=
NULL
;
}
...
...
@@ -815,7 +816,7 @@ static void send_vis_packets(struct work_struct *work)
container_of
(
work
,
struct
delayed_work
,
work
);
struct
bat_priv
*
bat_priv
=
container_of
(
delayed_work
,
struct
bat_priv
,
vis_work
);
struct
vis_info
*
info
,
*
temp
;
struct
vis_info
*
info
;
spin_lock_bh
(
&
bat_priv
->
vis_hash_lock
);
purge_vis_packets
(
bat_priv
);
...
...
@@ -825,8 +826,9 @@ static void send_vis_packets(struct work_struct *work)
send_list_add
(
bat_priv
,
bat_priv
->
my_vis_info
);
}
list_for_each_entry_safe
(
info
,
temp
,
&
bat_priv
->
vis_send_list
,
send_list
)
{
while
(
!
list_empty
(
&
bat_priv
->
vis_send_list
))
{
info
=
list_first_entry
(
&
bat_priv
->
vis_send_list
,
typeof
(
*
info
),
send_list
);
kref_get
(
&
info
->
refcount
);
spin_unlock_bh
(
&
bat_priv
->
vis_hash_lock
);
...
...
net/core/dev.c
浏览文件 @
5403c8a2
...
...
@@ -3564,6 +3564,7 @@ static void napi_reuse_skb(struct napi_struct *napi, struct sk_buff *skb)
__skb_pull
(
skb
,
skb_headlen
(
skb
));
skb_reserve
(
skb
,
NET_IP_ALIGN
-
skb_headroom
(
skb
));
skb
->
vlan_tci
=
0
;
skb
->
dev
=
napi
->
dev
;
napi
->
skb
=
skb
;
}
...
...
net/core/rtnetlink.c
浏览文件 @
5403c8a2
...
...
@@ -1704,6 +1704,9 @@ static int rtnl_newlink(struct sk_buff *skb, struct nlmsghdr *nlh, void *arg)
snprintf
(
ifname
,
IFNAMSIZ
,
"%s%%d"
,
ops
->
kind
);
dest_net
=
rtnl_link_get_net
(
net
,
tb
);
if
(
IS_ERR
(
dest_net
))
return
PTR_ERR
(
dest_net
);
dev
=
rtnl_create_link
(
net
,
dest_net
,
ifname
,
ops
,
tb
);
if
(
IS_ERR
(
dev
))
...
...
net/ipv4/af_inet.c
浏览文件 @
5403c8a2
...
...
@@ -880,6 +880,19 @@ int inet_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg)
}
EXPORT_SYMBOL
(
inet_ioctl
);
#ifdef CONFIG_COMPAT
int
inet_compat_ioctl
(
struct
socket
*
sock
,
unsigned
int
cmd
,
unsigned
long
arg
)
{
struct
sock
*
sk
=
sock
->
sk
;
int
err
=
-
ENOIOCTLCMD
;
if
(
sk
->
sk_prot
->
compat_ioctl
)
err
=
sk
->
sk_prot
->
compat_ioctl
(
sk
,
cmd
,
arg
);
return
err
;
}
#endif
const
struct
proto_ops
inet_stream_ops
=
{
.
family
=
PF_INET
,
.
owner
=
THIS_MODULE
,
...
...
@@ -903,6 +916,7 @@ const struct proto_ops inet_stream_ops = {
#ifdef CONFIG_COMPAT
.
compat_setsockopt
=
compat_sock_common_setsockopt
,
.
compat_getsockopt
=
compat_sock_common_getsockopt
,
.
compat_ioctl
=
inet_compat_ioctl
,
#endif
};
EXPORT_SYMBOL
(
inet_stream_ops
);
...
...
@@ -929,6 +943,7 @@ const struct proto_ops inet_dgram_ops = {
#ifdef CONFIG_COMPAT
.
compat_setsockopt
=
compat_sock_common_setsockopt
,
.
compat_getsockopt
=
compat_sock_common_getsockopt
,
.
compat_ioctl
=
inet_compat_ioctl
,
#endif
};
EXPORT_SYMBOL
(
inet_dgram_ops
);
...
...
@@ -959,6 +974,7 @@ static const struct proto_ops inet_sockraw_ops = {
#ifdef CONFIG_COMPAT
.
compat_setsockopt
=
compat_sock_common_setsockopt
,
.
compat_getsockopt
=
compat_sock_common_getsockopt
,
.
compat_ioctl
=
inet_compat_ioctl
,
#endif
};
...
...
net/ipv4/ipmr.c
浏览文件 @
5403c8a2
...
...
@@ -60,6 +60,7 @@
#include <linux/notifier.h>
#include <linux/if_arp.h>
#include <linux/netfilter_ipv4.h>
#include <linux/compat.h>
#include <net/ipip.h>
#include <net/checksum.h>
#include <net/netlink.h>
...
...
@@ -1434,6 +1435,51 @@ int ipmr_ioctl(struct sock *sk, int cmd, void __user *arg)
}
}
#ifdef CONFIG_COMPAT
struct
compat_sioc_sg_req
{
struct
in_addr
src
;
struct
in_addr
grp
;
compat_ulong_t
pktcnt
;
compat_ulong_t
bytecnt
;
compat_ulong_t
wrong_if
;
};
int
ipmr_compat_ioctl
(
struct
sock
*
sk
,
unsigned
int
cmd
,
void
__user
*
arg
)
{
struct
sioc_sg_req
sr
;
struct
mfc_cache
*
c
;
struct
net
*
net
=
sock_net
(
sk
);
struct
mr_table
*
mrt
;
mrt
=
ipmr_get_table
(
net
,
raw_sk
(
sk
)
->
ipmr_table
?
:
RT_TABLE_DEFAULT
);
if
(
mrt
==
NULL
)
return
-
ENOENT
;
switch
(
cmd
)
{
case
SIOCGETSGCNT
:
if
(
copy_from_user
(
&
sr
,
arg
,
sizeof
(
sr
)))
return
-
EFAULT
;
rcu_read_lock
();
c
=
ipmr_cache_find
(
mrt
,
sr
.
src
.
s_addr
,
sr
.
grp
.
s_addr
);
if
(
c
)
{
sr
.
pktcnt
=
c
->
mfc_un
.
res
.
pkt
;
sr
.
bytecnt
=
c
->
mfc_un
.
res
.
bytes
;
sr
.
wrong_if
=
c
->
mfc_un
.
res
.
wrong_if
;
rcu_read_unlock
();
if
(
copy_to_user
(
arg
,
&
sr
,
sizeof
(
sr
)))
return
-
EFAULT
;
return
0
;
}
rcu_read_unlock
();
return
-
EADDRNOTAVAIL
;
default:
return
-
ENOIOCTLCMD
;
}
}
#endif
static
int
ipmr_device_event
(
struct
notifier_block
*
this
,
unsigned
long
event
,
void
*
ptr
)
{
...
...
net/ipv4/raw.c
浏览文件 @
5403c8a2
...
...
@@ -76,6 +76,7 @@
#include <linux/seq_file.h>
#include <linux/netfilter.h>
#include <linux/netfilter_ipv4.h>
#include <linux/compat.h>
static
struct
raw_hashinfo
raw_v4_hashinfo
=
{
.
lock
=
__RW_LOCK_UNLOCKED
(
raw_v4_hashinfo
.
lock
),
...
...
@@ -838,6 +839,23 @@ static int raw_ioctl(struct sock *sk, int cmd, unsigned long arg)
}
}
#ifdef CONFIG_COMPAT
static
int
compat_raw_ioctl
(
struct
sock
*
sk
,
unsigned
int
cmd
,
unsigned
long
arg
)
{
switch
(
cmd
)
{
case
SIOCOUTQ
:
case
SIOCINQ
:
return
-
ENOIOCTLCMD
;
default:
#ifdef CONFIG_IP_MROUTE
return
ipmr_compat_ioctl
(
sk
,
cmd
,
compat_ptr
(
arg
));
#else
return
-
ENOIOCTLCMD
;
#endif
}
}
#endif
struct
proto
raw_prot
=
{
.
name
=
"RAW"
,
.
owner
=
THIS_MODULE
,
...
...
@@ -860,6 +878,7 @@ struct proto raw_prot = {
#ifdef CONFIG_COMPAT
.
compat_setsockopt
=
compat_raw_setsockopt
,
.
compat_getsockopt
=
compat_raw_getsockopt
,
.
compat_ioctl
=
compat_raw_ioctl
,
#endif
};
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录