Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
kernel_linux
提交
7143b7d4
K
kernel_linux
项目概览
OpenHarmony
/
kernel_linux
上一次同步 4 年多
通知
15
Star
8
Fork
2
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
kernel_linux
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
7143b7d4
编写于
5月 05, 2011
作者:
D
David S. Miller
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Conflicts: drivers/net/tg3.c
上级
90864fbc
87e9af6c
变更
28
隐藏空白更改
内联
并排
Showing
28 changed file
with
170 addition
and
66 deletion
+170
-66
MAINTAINERS
MAINTAINERS
+1
-1
drivers/net/amd8111e.c
drivers/net/amd8111e.c
+1
-1
drivers/net/bnx2.c
drivers/net/bnx2.c
+2
-0
drivers/net/can/sja1000/sja1000.c
drivers/net/can/sja1000/sja1000.c
+1
-1
drivers/net/ftmac100.c
drivers/net/ftmac100.c
+4
-4
drivers/net/mii.c
drivers/net/mii.c
+4
-0
drivers/net/tg3.c
drivers/net/tg3.c
+6
-2
drivers/net/usb/cdc_ether.c
drivers/net/usb/cdc_ether.c
+12
-2
drivers/net/usb/smsc95xx.c
drivers/net/usb/smsc95xx.c
+1
-1
drivers/net/usb/usbnet.c
drivers/net/usb/usbnet.c
+15
-3
drivers/net/veth.c
drivers/net/veth.c
+12
-0
drivers/net/wireless/b43/main.c
drivers/net/wireless/b43/main.c
+1
-0
drivers/net/wireless/iwlegacy/iwl-4965-tx.c
drivers/net/wireless/iwlegacy/iwl-4965-tx.c
+12
-6
drivers/net/wireless/iwlegacy/iwl-led.c
drivers/net/wireless/iwlegacy/iwl-led.c
+19
-1
drivers/net/wireless/iwlegacy/iwl4965-base.c
drivers/net/wireless/iwlegacy/iwl4965-base.c
+4
-4
drivers/net/wireless/iwlwifi/iwl-agn-tx.c
drivers/net/wireless/iwlwifi/iwl-agn-tx.c
+11
-6
include/linux/usb/usbnet.h
include/linux/usb/usbnet.h
+1
-0
net/core/dev.c
net/core/dev.c
+3
-3
net/dsa/Kconfig
net/dsa/Kconfig
+2
-2
net/dsa/mv88e6131.c
net/dsa/mv88e6131.c
+21
-5
net/ipv4/devinet.c
net/ipv4/devinet.c
+1
-1
net/ipv4/fib_trie.c
net/ipv4/fib_trie.c
+0
-3
net/ipv4/ip_fragment.c
net/ipv4/ip_fragment.c
+15
-16
net/ipv6/addrconf.c
net/ipv6/addrconf.c
+1
-1
net/ipv6/esp6.c
net/ipv6/esp6.c
+1
-1
net/unix/af_unix.c
net/unix/af_unix.c
+15
-1
net/xfrm/xfrm_replay.c
net/xfrm/xfrm_replay.c
+1
-1
net/xfrm/xfrm_user.c
net/xfrm/xfrm_user.c
+3
-0
未找到文件。
MAINTAINERS
浏览文件 @
7143b7d4
...
...
@@ -6551,7 +6551,7 @@ S: Maintained
F: drivers/usb/host/uhci*
USB "USBNET" DRIVER FRAMEWORK
M:
David Brownell <dbrownell@users.sourceforge.net
>
M:
Oliver Neukum <oneukum@suse.de
>
L: netdev@vger.kernel.org
W: http://www.linux-usb.org/usbnet
S: Maintained
...
...
drivers/net/amd8111e.c
浏览文件 @
7143b7d4
...
...
@@ -106,7 +106,7 @@ MODULE_DESCRIPTION ("AMD8111 based 10/100 Ethernet Controller. Driver Version "M
MODULE_LICENSE
(
"GPL"
);
MODULE_DEVICE_TABLE
(
pci
,
amd8111e_pci_tbl
);
module_param_array
(
speed_duplex
,
int
,
NULL
,
0
);
MODULE_PARM_DESC
(
speed_duplex
,
"Set device speed and duplex modes, 0: Auto Negoti
t
ate, 1: 10Mbps Half Duplex, 2: 10Mbps Full Duplex, 3: 100Mbps Half Duplex, 4: 100Mbps Full Duplex"
);
MODULE_PARM_DESC
(
speed_duplex
,
"Set device speed and duplex modes, 0: Auto Negotiate, 1: 10Mbps Half Duplex, 2: 10Mbps Full Duplex, 3: 100Mbps Half Duplex, 4: 100Mbps Full Duplex"
);
module_param_array
(
coalesce
,
bool
,
NULL
,
0
);
MODULE_PARM_DESC
(
coalesce
,
"Enable or Disable interrupt coalescing, 1: Enable, 0: Disable"
);
module_param_array
(
dynamic_ipg
,
bool
,
NULL
,
0
);
...
...
drivers/net/bnx2.c
浏览文件 @
7143b7d4
...
...
@@ -8357,6 +8357,8 @@ bnx2_remove_one(struct pci_dev *pdev)
unregister_netdev
(
dev
);
del_timer_sync
(
&
bp
->
timer
);
if
(
bp
->
mips_firmware
)
release_firmware
(
bp
->
mips_firmware
);
if
(
bp
->
rv2p_firmware
)
...
...
drivers/net/can/sja1000/sja1000.c
浏览文件 @
7143b7d4
...
...
@@ -346,10 +346,10 @@ static void sja1000_rx(struct net_device *dev)
|
(
priv
->
read_reg
(
priv
,
REG_ID2
)
>>
5
);
}
cf
->
can_dlc
=
get_can_dlc
(
fi
&
0x0F
);
if
(
fi
&
FI_RTR
)
{
id
|=
CAN_RTR_FLAG
;
}
else
{
cf
->
can_dlc
=
get_can_dlc
(
fi
&
0x0F
);
for
(
i
=
0
;
i
<
cf
->
can_dlc
;
i
++
)
cf
->
data
[
i
]
=
priv
->
read_reg
(
priv
,
dreg
++
);
}
...
...
drivers/net/ftmac100.c
浏览文件 @
7143b7d4
...
...
@@ -139,11 +139,11 @@ static int ftmac100_reset(struct ftmac100 *priv)
* that hardware reset completed (what the f*ck).
* We still need to wait for a while.
*/
u
sleep_range
(
500
,
10
00
);
u
delay
(
5
00
);
return
0
;
}
u
sleep_range
(
1000
,
10
000
);
u
delay
(
1
000
);
}
netdev_err
(
netdev
,
"software reset failed
\n
"
);
...
...
@@ -772,7 +772,7 @@ static int ftmac100_mdio_read(struct net_device *netdev, int phy_id, int reg)
if
((
phycr
&
FTMAC100_PHYCR_MIIRD
)
==
0
)
return
phycr
&
FTMAC100_PHYCR_MIIRDATA
;
u
sleep_range
(
100
,
10
00
);
u
delay
(
1
00
);
}
netdev_err
(
netdev
,
"mdio read timed out
\n
"
);
...
...
@@ -801,7 +801,7 @@ static void ftmac100_mdio_write(struct net_device *netdev, int phy_id, int reg,
if
((
phycr
&
FTMAC100_PHYCR_MIIWR
)
==
0
)
return
;
u
sleep_range
(
100
,
10
00
);
u
delay
(
1
00
);
}
netdev_err
(
netdev
,
"mdio write timed out
\n
"
);
...
...
drivers/net/mii.c
浏览文件 @
7143b7d4
...
...
@@ -49,6 +49,10 @@ static u32 mii_get_an(struct mii_if_info *mii, u16 addr)
result
|=
ADVERTISED_100baseT_Half
;
if
(
advert
&
ADVERTISE_100FULL
)
result
|=
ADVERTISED_100baseT_Full
;
if
(
advert
&
ADVERTISE_PAUSE_CAP
)
result
|=
ADVERTISED_Pause
;
if
(
advert
&
ADVERTISE_PAUSE_ASYM
)
result
|=
ADVERTISED_Asym_Pause
;
return
result
;
}
...
...
drivers/net/tg3.c
浏览文件 @
7143b7d4
...
...
@@ -12747,8 +12747,10 @@ static void __devinit tg3_get_eeprom_hw_cfg(struct tg3 *tp)
if
(
val
&
VCPU_CFGSHDW_ASPM_DBNC
)
tg3_flag_set
(
tp
,
ASPM_WORKAROUND
);
if
((
val
&
VCPU_CFGSHDW_WOL_ENABLE
)
&&
(
val
&
VCPU_CFGSHDW_WOL_MAGPKT
))
(
val
&
VCPU_CFGSHDW_WOL_MAGPKT
))
{
tg3_flag_set
(
tp
,
WOL_ENABLE
);
device_set_wakeup_enable
(
&
tp
->
pdev
->
dev
,
true
);
}
goto
done
;
}
...
...
@@ -12881,8 +12883,10 @@ static void __devinit tg3_get_eeprom_hw_cfg(struct tg3 *tp)
tg3_flag_clear
(
tp
,
WOL_CAP
);
if
(
tg3_flag
(
tp
,
WOL_CAP
)
&&
(
nic_cfg
&
NIC_SRAM_DATA_CFG_WOL_ENABLE
))
(
nic_cfg
&
NIC_SRAM_DATA_CFG_WOL_ENABLE
))
{
tg3_flag_set
(
tp
,
WOL_ENABLE
);
device_set_wakeup_enable
(
&
tp
->
pdev
->
dev
,
true
);
}
if
(
cfg2
&
(
1
<<
17
))
tp
->
phy_flags
|=
TG3_PHYFLG_CAPACITIVE_COUPLING
;
...
...
drivers/net/usb/cdc_ether.c
浏览文件 @
7143b7d4
...
...
@@ -460,7 +460,7 @@ static const struct driver_info cdc_info = {
.
manage_power
=
cdc_manage_power
,
};
static
const
struct
driver_info
mbm
_info
=
{
static
const
struct
driver_info
wwan
_info
=
{
.
description
=
"Mobile Broadband Network Device"
,
.
flags
=
FLAG_WWAN
,
.
bind
=
usbnet_cdc_bind
,
...
...
@@ -471,6 +471,7 @@ static const struct driver_info mbm_info = {
/*-------------------------------------------------------------------------*/
#define HUAWEI_VENDOR_ID 0x12D1
static
const
struct
usb_device_id
products
[]
=
{
/*
...
...
@@ -587,8 +588,17 @@ static const struct usb_device_id products [] = {
},
{
USB_INTERFACE_INFO
(
USB_CLASS_COMM
,
USB_CDC_SUBCLASS_MDLM
,
USB_CDC_PROTO_NONE
),
.
driver_info
=
(
unsigned
long
)
&
mbm
_info
,
.
driver_info
=
(
unsigned
long
)
&
wwan
_info
,
},
{
/* Various Huawei modems with a network port like the UMG1831 */
.
match_flags
=
USB_DEVICE_ID_MATCH_VENDOR
|
USB_DEVICE_ID_MATCH_INT_INFO
,
.
idVendor
=
HUAWEI_VENDOR_ID
,
.
bInterfaceClass
=
USB_CLASS_COMM
,
.
bInterfaceSubClass
=
USB_CDC_SUBCLASS_ETHERNET
,
.
bInterfaceProtocol
=
255
,
.
driver_info
=
(
unsigned
long
)
&
wwan_info
,
},
{
},
// END
};
...
...
drivers/net/usb/smsc95xx.c
浏览文件 @
7143b7d4
...
...
@@ -690,7 +690,7 @@ static int smsc95xx_phy_initialize(struct usbnet *dev)
msleep
(
10
);
bmcr
=
smsc95xx_mdio_read
(
dev
->
net
,
dev
->
mii
.
phy_id
,
MII_BMCR
);
timeout
++
;
}
while
((
bmcr
&
MII_BMCR
)
&&
(
timeout
<
100
));
}
while
((
bmcr
&
BMCR_RESET
)
&&
(
timeout
<
100
));
if
(
timeout
>=
100
)
{
netdev_warn
(
dev
->
net
,
"timeout on PHY Reset"
);
...
...
drivers/net/usb/usbnet.c
浏览文件 @
7143b7d4
...
...
@@ -645,6 +645,7 @@ int usbnet_stop (struct net_device *net)
struct
driver_info
*
info
=
dev
->
driver_info
;
int
retval
;
clear_bit
(
EVENT_DEV_OPEN
,
&
dev
->
flags
);
netif_stop_queue
(
net
);
netif_info
(
dev
,
ifdown
,
dev
->
net
,
...
...
@@ -736,6 +737,7 @@ int usbnet_open (struct net_device *net)
}
}
set_bit
(
EVENT_DEV_OPEN
,
&
dev
->
flags
);
netif_start_queue
(
net
);
netif_info
(
dev
,
ifup
,
dev
->
net
,
"open: enable queueing (rx %d, tx %d) mtu %d %s framing
\n
"
,
...
...
@@ -1259,6 +1261,9 @@ void usbnet_disconnect (struct usb_interface *intf)
if
(
dev
->
driver_info
->
unbind
)
dev
->
driver_info
->
unbind
(
dev
,
intf
);
usb_kill_urb
(
dev
->
interrupt
);
usb_free_urb
(
dev
->
interrupt
);
free_netdev
(
net
);
usb_put_dev
(
xdev
);
}
...
...
@@ -1498,6 +1503,10 @@ int usbnet_resume (struct usb_interface *intf)
int
retval
;
if
(
!--
dev
->
suspend_count
)
{
/* resume interrupt URBs */
if
(
dev
->
interrupt
&&
test_bit
(
EVENT_DEV_OPEN
,
&
dev
->
flags
))
usb_submit_urb
(
dev
->
interrupt
,
GFP_NOIO
);
spin_lock_irq
(
&
dev
->
txq
.
lock
);
while
((
res
=
usb_get_from_anchor
(
&
dev
->
deferred
)))
{
...
...
@@ -1516,9 +1525,12 @@ int usbnet_resume (struct usb_interface *intf)
smp_mb
();
clear_bit
(
EVENT_DEV_ASLEEP
,
&
dev
->
flags
);
spin_unlock_irq
(
&
dev
->
txq
.
lock
);
if
(
!
(
dev
->
txq
.
qlen
>=
TX_QLEN
(
dev
)))
netif_start_queue
(
dev
->
net
);
tasklet_schedule
(
&
dev
->
bh
);
if
(
test_bit
(
EVENT_DEV_OPEN
,
&
dev
->
flags
))
{
if
(
!
(
dev
->
txq
.
qlen
>=
TX_QLEN
(
dev
)))
netif_start_queue
(
dev
->
net
);
tasklet_schedule
(
&
dev
->
bh
);
}
}
return
0
;
}
...
...
drivers/net/veth.c
浏览文件 @
7143b7d4
...
...
@@ -368,6 +368,17 @@ static int veth_newlink(struct net *src_net, struct net_device *dev,
if
(
tb
[
IFLA_ADDRESS
]
==
NULL
)
random_ether_addr
(
dev
->
dev_addr
);
if
(
tb
[
IFLA_IFNAME
])
nla_strlcpy
(
dev
->
name
,
tb
[
IFLA_IFNAME
],
IFNAMSIZ
);
else
snprintf
(
dev
->
name
,
IFNAMSIZ
,
DRV_NAME
"%%d"
);
if
(
strchr
(
dev
->
name
,
'%'
))
{
err
=
dev_alloc_name
(
dev
,
dev
->
name
);
if
(
err
<
0
)
goto
err_alloc_name
;
}
err
=
register_netdevice
(
dev
);
if
(
err
<
0
)
goto
err_register_dev
;
...
...
@@ -387,6 +398,7 @@ static int veth_newlink(struct net *src_net, struct net_device *dev,
err_register_dev:
/* nothing to do */
err_alloc_name:
err_configure_peer:
unregister_netdevice
(
peer
);
return
err
;
...
...
drivers/net/wireless/b43/main.c
浏览文件 @
7143b7d4
...
...
@@ -72,6 +72,7 @@ MODULE_FIRMWARE("b43/ucode11.fw");
MODULE_FIRMWARE
(
"b43/ucode13.fw"
);
MODULE_FIRMWARE
(
"b43/ucode14.fw"
);
MODULE_FIRMWARE
(
"b43/ucode15.fw"
);
MODULE_FIRMWARE
(
"b43/ucode16_mimo.fw"
);
MODULE_FIRMWARE
(
"b43/ucode5.fw"
);
MODULE_FIRMWARE
(
"b43/ucode9.fw"
);
...
...
drivers/net/wireless/iwlegacy/iwl-4965-tx.c
浏览文件 @
7143b7d4
...
...
@@ -316,12 +316,18 @@ int iwl4965_tx_skb(struct iwl_priv *priv, struct sk_buff *skb)
hdr_len
=
ieee80211_hdrlen
(
fc
);
/* Find index into station table for destination station */
sta_id
=
iwl_legacy_sta_id_or_broadcast
(
priv
,
ctx
,
info
->
control
.
sta
);
if
(
sta_id
==
IWL_INVALID_STATION
)
{
IWL_DEBUG_DROP
(
priv
,
"Dropping - INVALID STATION: %pM
\n
"
,
hdr
->
addr1
);
goto
drop_unlock
;
/* For management frames use broadcast id to do not break aggregation */
if
(
!
ieee80211_is_data
(
fc
))
sta_id
=
ctx
->
bcast_sta_id
;
else
{
/* Find index into station table for destination station */
sta_id
=
iwl_legacy_sta_id_or_broadcast
(
priv
,
ctx
,
info
->
control
.
sta
);
if
(
sta_id
==
IWL_INVALID_STATION
)
{
IWL_DEBUG_DROP
(
priv
,
"Dropping - INVALID STATION: %pM
\n
"
,
hdr
->
addr1
);
goto
drop_unlock
;
}
}
IWL_DEBUG_TX
(
priv
,
"station Id %d
\n
"
,
sta_id
);
...
...
drivers/net/wireless/iwlegacy/iwl-led.c
浏览文件 @
7143b7d4
...
...
@@ -48,8 +48,21 @@ module_param(led_mode, int, S_IRUGO);
MODULE_PARM_DESC
(
led_mode
,
"0=system default, "
"1=On(RF On)/Off(RF Off), 2=blinking"
);
/* Throughput OFF time(ms) ON time (ms)
* >300 25 25
* >200 to 300 40 40
* >100 to 200 55 55
* >70 to 100 65 65
* >50 to 70 75 75
* >20 to 50 85 85
* >10 to 20 95 95
* >5 to 10 110 110
* >1 to 5 130 130
* >0 to 1 167 167
* <=0 SOLID ON
*/
static
const
struct
ieee80211_tpt_blink
iwl_blink
[]
=
{
{
.
throughput
=
0
*
1024
-
1
,
.
blink_time
=
334
},
{
.
throughput
=
0
,
.
blink_time
=
334
},
{
.
throughput
=
1
*
1024
-
1
,
.
blink_time
=
260
},
{
.
throughput
=
5
*
1024
-
1
,
.
blink_time
=
220
},
{
.
throughput
=
10
*
1024
-
1
,
.
blink_time
=
190
},
...
...
@@ -101,6 +114,11 @@ static int iwl_legacy_led_cmd(struct iwl_priv *priv,
if
(
priv
->
blink_on
==
on
&&
priv
->
blink_off
==
off
)
return
0
;
if
(
off
==
0
)
{
/* led is SOLID_ON */
on
=
IWL_LED_SOLID
;
}
IWL_DEBUG_LED
(
priv
,
"Led blink time compensation=%u
\n
"
,
priv
->
cfg
->
base_params
->
led_compensation
);
led_cmd
.
on
=
iwl_legacy_blink_compensation
(
priv
,
on
,
...
...
drivers/net/wireless/iwlegacy/iwl4965-base.c
浏览文件 @
7143b7d4
...
...
@@ -2992,15 +2992,15 @@ static void iwl4965_bg_txpower_work(struct work_struct *work)
struct
iwl_priv
*
priv
=
container_of
(
work
,
struct
iwl_priv
,
txpower_work
);
mutex_lock
(
&
priv
->
mutex
);
/* If a scan happened to start before we got here
* then just return; the statistics notification will
* kick off another scheduled work to compensate for
* any temperature delta we missed here. */
if
(
test_bit
(
STATUS_EXIT_PENDING
,
&
priv
->
status
)
||
test_bit
(
STATUS_SCANNING
,
&
priv
->
status
))
return
;
mutex_lock
(
&
priv
->
mutex
);
goto
out
;
/* Regardless of if we are associated, we must reconfigure the
* TX power since frames can be sent on non-radar channels while
...
...
@@ -3010,7 +3010,7 @@ static void iwl4965_bg_txpower_work(struct work_struct *work)
/* Update last_temperature to keep is_calib_needed from running
* when it isn't needed... */
priv
->
last_temperature
=
priv
->
temperature
;
out:
mutex_unlock
(
&
priv
->
mutex
);
}
...
...
drivers/net/wireless/iwlwifi/iwl-agn-tx.c
浏览文件 @
7143b7d4
...
...
@@ -582,12 +582,17 @@ int iwlagn_tx_skb(struct iwl_priv *priv, struct sk_buff *skb)
hdr_len
=
ieee80211_hdrlen
(
fc
);
/* Find index into station table for destination station */
sta_id
=
iwl_sta_id_or_broadcast
(
priv
,
ctx
,
info
->
control
.
sta
);
if
(
sta_id
==
IWL_INVALID_STATION
)
{
IWL_DEBUG_DROP
(
priv
,
"Dropping - INVALID STATION: %pM
\n
"
,
hdr
->
addr1
);
goto
drop_unlock
;
/* For management frames use broadcast id to do not break aggregation */
if
(
!
ieee80211_is_data
(
fc
))
sta_id
=
ctx
->
bcast_sta_id
;
else
{
/* Find index into station table for destination station */
sta_id
=
iwl_sta_id_or_broadcast
(
priv
,
ctx
,
info
->
control
.
sta
);
if
(
sta_id
==
IWL_INVALID_STATION
)
{
IWL_DEBUG_DROP
(
priv
,
"Dropping - INVALID STATION: %pM
\n
"
,
hdr
->
addr1
);
goto
drop_unlock
;
}
}
IWL_DEBUG_TX
(
priv
,
"station Id %d
\n
"
,
sta_id
);
...
...
include/linux/usb/usbnet.h
浏览文件 @
7143b7d4
...
...
@@ -68,6 +68,7 @@ struct usbnet {
# define EVENT_RX_PAUSED 5
# define EVENT_DEV_WAKING 6
# define EVENT_DEV_ASLEEP 7
# define EVENT_DEV_OPEN 8
};
static
inline
struct
usb_driver
*
driver_of
(
struct
usb_interface
*
intf
)
...
...
net/core/dev.c
浏览文件 @
7143b7d4
...
...
@@ -4783,7 +4783,7 @@ static int dev_ifsioc_locked(struct net *net, struct ifreq *ifr, unsigned int cm
* is never reached
*/
WARN_ON
(
1
);
err
=
-
E
INVAL
;
err
=
-
E
NOTTY
;
break
;
}
...
...
@@ -5051,7 +5051,7 @@ int dev_ioctl(struct net *net, unsigned int cmd, void __user *arg)
/* Set the per device memory buffer space.
* Not applicable in our case */
case
SIOCSIFLINK
:
return
-
E
INVAL
;
return
-
E
NOTTY
;
/*
* Unknown or private ioctl.
...
...
@@ -5072,7 +5072,7 @@ int dev_ioctl(struct net *net, unsigned int cmd, void __user *arg)
/* Take care of Wireless Extensions */
if
(
cmd
>=
SIOCIWFIRST
&&
cmd
<=
SIOCIWLAST
)
return
wext_handle_ioctl
(
net
,
&
ifr
,
cmd
,
arg
);
return
-
E
INVAL
;
return
-
E
NOTTY
;
}
}
...
...
net/dsa/Kconfig
浏览文件 @
7143b7d4
...
...
@@ -41,12 +41,12 @@ config NET_DSA_MV88E6XXX_NEED_PPU
default n
config NET_DSA_MV88E6131
bool "Marvell 88E6095/6095F/6131 ethernet switch chip support"
bool "Marvell 88E60
85/60
95/6095F/6131 ethernet switch chip support"
select NET_DSA_MV88E6XXX
select NET_DSA_MV88E6XXX_NEED_PPU
select NET_DSA_TAG_DSA
---help---
This enables support for the Marvell 88E6095/6095F/6131
This enables support for the Marvell 88E60
85/60
95/6095F/6131
ethernet switch chips.
config NET_DSA_MV88E6123_61_65
...
...
net/dsa/mv88e6131.c
浏览文件 @
7143b7d4
...
...
@@ -207,8 +207,15 @@ static int mv88e6131_setup_port(struct dsa_switch *ds, int p)
* mode, but do not enable forwarding of unknown unicasts.
*/
val
=
0x0433
;
if
(
p
==
dsa_upstream_port
(
ds
))
if
(
p
==
dsa_upstream_port
(
ds
))
{
val
|=
0x0104
;
/*
* On 6085, unknown multicast forward is controlled
* here rather than in Port Control 2 register.
*/
if
(
ps
->
id
==
ID_6085
)
val
|=
0x0008
;
}
if
(
ds
->
dsa_port_mask
&
(
1
<<
p
))
val
|=
0x0100
;
REG_WRITE
(
addr
,
0x04
,
val
);
...
...
@@ -251,10 +258,19 @@ static int mv88e6131_setup_port(struct dsa_switch *ds, int p)
* If this is the upstream port for this switch, enable
* forwarding of unknown multicast addresses.
*/
val
=
0x0080
|
dsa_upstream_port
(
ds
);
if
(
p
==
dsa_upstream_port
(
ds
))
val
|=
0x0040
;
REG_WRITE
(
addr
,
0x08
,
val
);
if
(
ps
->
id
==
ID_6085
)
/*
* on 6085, bits 3:0 are reserved, bit 6 control ARP
* mirroring, and multicast forward is handled in
* Port Control register.
*/
REG_WRITE
(
addr
,
0x08
,
0x0080
);
else
{
val
=
0x0080
|
dsa_upstream_port
(
ds
);
if
(
p
==
dsa_upstream_port
(
ds
))
val
|=
0x0040
;
REG_WRITE
(
addr
,
0x08
,
val
);
}
/*
* Rate Control: disable ingress rate limiting.
...
...
net/ipv4/devinet.c
浏览文件 @
7143b7d4
...
...
@@ -1680,7 +1680,7 @@ static void __devinet_sysctl_unregister(struct ipv4_devconf *cnf)
return
;
cnf
->
sysctl
=
NULL
;
unregister_sysctl_table
(
t
->
sysctl_header
);
unregister_
net_
sysctl_table
(
t
->
sysctl_header
);
kfree
(
t
->
dev_name
);
kfree
(
t
);
}
...
...
net/ipv4/fib_trie.c
浏览文件 @
7143b7d4
...
...
@@ -1998,9 +1998,6 @@ struct fib_table *fib_trie_table(u32 id)
t
=
(
struct
trie
*
)
tb
->
tb_data
;
memset
(
t
,
0
,
sizeof
(
*
t
));
if
(
id
==
RT_TABLE_LOCAL
)
pr_info
(
"IPv4 FIB: Using LC-trie version %s
\n
"
,
VERSION
);
return
tb
;
}
...
...
net/ipv4/ip_fragment.c
浏览文件 @
7143b7d4
...
...
@@ -223,31 +223,30 @@ static void ip_expire(unsigned long arg)
if
((
qp
->
q
.
last_in
&
INET_FRAG_FIRST_IN
)
&&
qp
->
q
.
fragments
!=
NULL
)
{
struct
sk_buff
*
head
=
qp
->
q
.
fragments
;
const
struct
iphdr
*
iph
;
int
err
;
rcu_read_lock
();
head
->
dev
=
dev_get_by_index_rcu
(
net
,
qp
->
iif
);
if
(
!
head
->
dev
)
goto
out_rcu_unlock
;
/* skb dst is stale, drop it, and perform route lookup again */
skb_dst_drop
(
head
);
iph
=
ip_hdr
(
head
);
err
=
ip_route_input_noref
(
head
,
iph
->
daddr
,
iph
->
saddr
,
iph
->
tos
,
head
->
dev
);
if
(
err
)
goto
out_rcu_unlock
;
/*
* Only
search router table for the head fragment,
*
when defraging timeout at PRE_ROUTING HOOK
.
* Only
an end host needs to send an ICMP
*
"Fragment Reassembly Timeout" message, per RFC792
.
*/
if
(
qp
->
user
==
IP_DEFRAG_CONNTRACK_IN
&&
!
skb_dst
(
head
))
{
const
struct
iphdr
*
iph
=
ip_hdr
(
head
);
int
err
=
ip_route_input
(
head
,
iph
->
daddr
,
iph
->
saddr
,
iph
->
tos
,
head
->
dev
);
if
(
unlikely
(
err
))
goto
out_rcu_unlock
;
/*
* Only an end host needs to send an ICMP
* "Fragment Reassembly Timeout" message, per RFC792.
*/
if
(
skb_rtable
(
head
)
->
rt_type
!=
RTN_LOCAL
)
goto
out_rcu_unlock
;
if
(
qp
->
user
==
IP_DEFRAG_CONNTRACK_IN
&&
skb_rtable
(
head
)
->
rt_type
!=
RTN_LOCAL
)
goto
out_rcu_unlock
;
}
/* Send an ICMP "Fragment Reassembly Timeout" message. */
icmp_send
(
head
,
ICMP_TIME_EXCEEDED
,
ICMP_EXC_FRAGTIME
,
0
);
...
...
net/ipv6/addrconf.c
浏览文件 @
7143b7d4
...
...
@@ -4539,7 +4539,7 @@ static void __addrconf_sysctl_unregister(struct ipv6_devconf *p)
t
=
p
->
sysctl
;
p
->
sysctl
=
NULL
;
unregister_sysctl_table
(
t
->
sysctl_header
);
unregister_
net_
sysctl_table
(
t
->
sysctl_header
);
kfree
(
t
->
dev_name
);
kfree
(
t
);
}
...
...
net/ipv6/esp6.c
浏览文件 @
7143b7d4
...
...
@@ -371,7 +371,7 @@ static int esp6_input(struct xfrm_state *x, struct sk_buff *skb)
iv
=
esp_tmp_iv
(
aead
,
tmp
,
seqhilen
);
req
=
esp_tmp_req
(
aead
,
iv
);
asg
=
esp_req_sg
(
aead
,
req
);
sg
=
asg
+
1
;
sg
=
asg
+
sglists
;
skb
->
ip_summed
=
CHECKSUM_NONE
;
...
...
net/unix/af_unix.c
浏览文件 @
7143b7d4
...
...
@@ -524,6 +524,8 @@ static int unix_dgram_connect(struct socket *, struct sockaddr *,
int
,
int
);
static
int
unix_seqpacket_sendmsg
(
struct
kiocb
*
,
struct
socket
*
,
struct
msghdr
*
,
size_t
);
static
int
unix_seqpacket_recvmsg
(
struct
kiocb
*
,
struct
socket
*
,
struct
msghdr
*
,
size_t
,
int
);
static
const
struct
proto_ops
unix_stream_ops
=
{
.
family
=
PF_UNIX
,
...
...
@@ -583,7 +585,7 @@ static const struct proto_ops unix_seqpacket_ops = {
.
setsockopt
=
sock_no_setsockopt
,
.
getsockopt
=
sock_no_getsockopt
,
.
sendmsg
=
unix_seqpacket_sendmsg
,
.
recvmsg
=
unix_
dgram
_recvmsg
,
.
recvmsg
=
unix_
seqpacket
_recvmsg
,
.
mmap
=
sock_no_mmap
,
.
sendpage
=
sock_no_sendpage
,
};
...
...
@@ -1699,6 +1701,18 @@ static int unix_seqpacket_sendmsg(struct kiocb *kiocb, struct socket *sock,
return
unix_dgram_sendmsg
(
kiocb
,
sock
,
msg
,
len
);
}
static
int
unix_seqpacket_recvmsg
(
struct
kiocb
*
iocb
,
struct
socket
*
sock
,
struct
msghdr
*
msg
,
size_t
size
,
int
flags
)
{
struct
sock
*
sk
=
sock
->
sk
;
if
(
sk
->
sk_state
!=
TCP_ESTABLISHED
)
return
-
ENOTCONN
;
return
unix_dgram_recvmsg
(
iocb
,
sock
,
msg
,
size
,
flags
);
}
static
void
unix_copy_addr
(
struct
msghdr
*
msg
,
struct
sock
*
sk
)
{
struct
unix_sock
*
u
=
unix_sk
(
sk
);
...
...
net/xfrm/xfrm_replay.c
浏览文件 @
7143b7d4
...
...
@@ -532,7 +532,7 @@ int xfrm_init_replay(struct xfrm_state *x)
if
(
replay_esn
)
{
if
(
replay_esn
->
replay_window
>
replay_esn
->
bmp_len
*
sizeof
(
__u32
))
replay_esn
->
bmp_len
*
sizeof
(
__u32
)
*
8
)
return
-
EINVAL
;
if
((
x
->
props
.
flags
&
XFRM_STATE_ESN
)
&&
x
->
replay_esn
)
...
...
net/xfrm/xfrm_user.c
浏览文件 @
7143b7d4
...
...
@@ -124,6 +124,9 @@ static inline int verify_replay(struct xfrm_usersa_info *p,
{
struct
nlattr
*
rt
=
attrs
[
XFRMA_REPLAY_ESN_VAL
];
if
((
p
->
flags
&
XFRM_STATE_ESN
)
&&
!
rt
)
return
-
EINVAL
;
if
(
!
rt
)
return
0
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录