Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
raspberrypi-kernel
提交
986eaa90
R
raspberrypi-kernel
项目概览
openeuler
/
raspberrypi-kernel
通知
13
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
raspberrypi-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
986eaa90
编写于
13年前
作者:
D
David S. Miller
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'master' of ../netdev-next/
上级
4bc71cb9
ab7e11d9
变更
20
隐藏空白更改
内联
并排
Showing
20 changed file
with
81 addition
and
91 deletion
+81
-91
drivers/net/ethernet/3com/3c59x.c
drivers/net/ethernet/3com/3c59x.c
+4
-3
drivers/net/ethernet/aeroflex/greth.c
drivers/net/ethernet/aeroflex/greth.c
+4
-8
drivers/net/ethernet/alteon/acenic.c
drivers/net/ethernet/alteon/acenic.c
+3
-3
drivers/net/ethernet/atheros/atl1c/atl1c_main.c
drivers/net/ethernet/atheros/atl1c/atl1c_main.c
+4
-5
drivers/net/ethernet/atheros/atl1e/atl1e_main.c
drivers/net/ethernet/atheros/atl1e/atl1e_main.c
+5
-6
drivers/net/ethernet/atheros/atlx/atl1.c
drivers/net/ethernet/atheros/atlx/atl1.c
+2
-3
drivers/net/ethernet/brocade/bna/bnad.c
drivers/net/ethernet/brocade/bna/bnad.c
+2
-2
drivers/net/ethernet/cisco/enic/enic_main.c
drivers/net/ethernet/cisco/enic/enic_main.c
+7
-7
drivers/net/ethernet/emulex/benet/be_main.c
drivers/net/ethernet/emulex/benet/be_main.c
+5
-5
drivers/net/ethernet/freescale/gianfar.c
drivers/net/ethernet/freescale/gianfar.c
+5
-5
drivers/net/ethernet/intel/e1000/e1000_main.c
drivers/net/ethernet/intel/e1000/e1000_main.c
+9
-7
drivers/net/ethernet/intel/e1000e/netdev.c
drivers/net/ethernet/intel/e1000e/netdev.c
+3
-4
drivers/net/ethernet/intel/igb/igb_main.c
drivers/net/ethernet/intel/igb/igb_main.c
+1
-4
drivers/net/ethernet/intel/igbvf/netdev.c
drivers/net/ethernet/intel/igbvf/netdev.c
+1
-4
drivers/net/ethernet/intel/ixgb/ixgb_main.c
drivers/net/ethernet/intel/ixgb/ixgb_main.c
+3
-3
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
+1
-2
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
+4
-6
drivers/net/ethernet/nvidia/forcedeth.c
drivers/net/ethernet/nvidia/forcedeth.c
+10
-4
drivers/net/ethernet/realtek/8139cp.c
drivers/net/ethernet/realtek/8139cp.c
+1
-2
drivers/net/ethernet/sun/cassini.c
drivers/net/ethernet/sun/cassini.c
+7
-8
未找到文件。
drivers/net/ethernet/3com/3c59x.c
浏览文件 @
986eaa90
...
...
@@ -2179,9 +2179,10 @@ boomerang_start_xmit(struct sk_buff *skb, struct net_device *dev)
skb_frag_t
*
frag
=
&
skb_shinfo
(
skb
)
->
frags
[
i
];
vp
->
tx_ring
[
entry
].
frag
[
i
+
1
].
addr
=
cpu_to_le32
(
pci_map_single
(
VORTEX_PCI
(
vp
),
(
void
*
)
page_address
(
frag
->
page
)
+
frag
->
page_offset
,
frag
->
size
,
PCI_DMA_TODEVICE
));
cpu_to_le32
(
pci_map_single
(
VORTEX_PCI
(
vp
),
(
void
*
)
skb_frag_address
(
frag
),
frag
->
size
,
PCI_DMA_TODEVICE
));
if
(
i
==
skb_shinfo
(
skb
)
->
nr_frags
-
1
)
vp
->
tx_ring
[
entry
].
frag
[
i
+
1
].
length
=
cpu_to_le32
(
frag
->
size
|
LAST_FRAG
);
...
...
This diff is collapsed.
Click to expand it.
drivers/net/ethernet/aeroflex/greth.c
浏览文件 @
986eaa90
...
...
@@ -113,9 +113,8 @@ static void greth_print_tx_packet(struct sk_buff *skb)
for
(
i
=
0
;
i
<
skb_shinfo
(
skb
)
->
nr_frags
;
i
++
)
{
print_hex_dump
(
KERN_DEBUG
,
"TX: "
,
DUMP_PREFIX_OFFSET
,
16
,
1
,
phys_to_virt
(
page_to_phys
(
skb_shinfo
(
skb
)
->
frags
[
i
].
page
))
+
skb_shinfo
(
skb
)
->
frags
[
i
].
page_offset
,
length
,
true
);
skb_frag_address
(
&
skb_shinfo
(
skb
)
->
frags
[
i
]),
skb_shinfo
(
skb
)
->
frags
[
i
].
size
,
true
);
}
}
...
...
@@ -528,11 +527,8 @@ greth_start_xmit_gbit(struct sk_buff *skb, struct net_device *dev)
greth_write_bd
(
&
bdp
->
stat
,
status
);
dma_addr
=
dma_map_page
(
greth
->
dev
,
frag
->
page
,
frag
->
page_offset
,
frag
->
size
,
DMA_TO_DEVICE
);
dma_addr
=
skb_frag_dma_map
(
greth
->
dev
,
frag
,
0
,
frag
->
size
,
DMA_TO_DEVICE
);
if
(
unlikely
(
dma_mapping_error
(
greth
->
dev
,
dma_addr
)))
goto
frag_map_error
;
...
...
This diff is collapsed.
Click to expand it.
drivers/net/ethernet/alteon/acenic.c
浏览文件 @
986eaa90
...
...
@@ -2485,9 +2485,9 @@ static netdev_tx_t ace_start_xmit(struct sk_buff *skb,
info
=
ap
->
skb
->
tx_skbuff
+
idx
;
desc
=
ap
->
tx_ring
+
idx
;
mapping
=
pci_map_page
(
ap
->
pdev
,
frag
->
page
,
frag
->
page_offset
,
frag
->
size
,
PCI_DMA_TODEVICE
);
mapping
=
skb_frag_dma_map
(
&
ap
->
pdev
->
dev
,
frag
,
0
,
frag
->
size
,
PCI_DMA_TODEVICE
);
flagsize
=
(
frag
->
size
<<
16
);
if
(
skb
->
ip_summed
==
CHECKSUM_PARTIAL
)
...
...
This diff is collapsed.
Click to expand it.
drivers/net/ethernet/atheros/atl1c/atl1c_main.c
浏览文件 @
986eaa90
...
...
@@ -2180,11 +2180,10 @@ static void atl1c_tx_map(struct atl1c_adapter *adapter,
buffer_info
=
atl1c_get_tx_buffer
(
adapter
,
use_tpd
);
buffer_info
->
length
=
frag
->
size
;
buffer_info
->
dma
=
pci_map_page
(
adapter
->
pdev
,
frag
->
page
,
frag
->
page_offset
,
buffer_info
->
length
,
PCI_DMA_TODEVICE
);
buffer_info
->
dma
=
skb_frag_dma_map
(
&
adapter
->
pdev
->
dev
,
frag
,
0
,
buffer_info
->
length
,
PCI_DMA_TODEVICE
);
ATL1C_SET_BUFFER_STATE
(
buffer_info
,
ATL1C_BUFFER_BUSY
);
ATL1C_SET_PCIMAP_TYPE
(
buffer_info
,
ATL1C_PCIMAP_PAGE
,
ATL1C_PCIMAP_TODEVICE
);
...
...
This diff is collapsed.
Click to expand it.
drivers/net/ethernet/atheros/atl1e/atl1e_main.c
浏览文件 @
986eaa90
...
...
@@ -1765,12 +1765,11 @@ static void atl1e_tx_map(struct atl1e_adapter *adapter,
MAX_TX_BUF_LEN
:
buf_len
;
buf_len
-=
tx_buffer
->
length
;
tx_buffer
->
dma
=
pci_map_page
(
adapter
->
pdev
,
frag
->
page
,
frag
->
page_offset
+
(
i
*
MAX_TX_BUF_LEN
),
tx_buffer
->
length
,
PCI_DMA_TODEVICE
);
tx_buffer
->
dma
=
skb_frag_dma_map
(
&
adapter
->
pdev
->
dev
,
frag
,
(
i
*
MAX_TX_BUF_LEN
),
tx_buffer
->
length
,
PCI_DMA_TODEVICE
);
ATL1E_SET_PCIMAP_TYPE
(
tx_buffer
,
ATL1E_TX_PCIMAP_PAGE
);
use_tpd
->
buffer_addr
=
cpu_to_le64
(
tx_buffer
->
dma
);
use_tpd
->
word2
=
(
use_tpd
->
word2
&
(
~
TPD_BUFLEN_MASK
))
|
...
...
This diff is collapsed.
Click to expand it.
drivers/net/ethernet/atheros/atlx/atl1.c
浏览文件 @
986eaa90
...
...
@@ -2283,9 +2283,8 @@ static void atl1_tx_map(struct atl1_adapter *adapter, struct sk_buff *skb,
buffer_info
->
length
=
(
buf_len
>
ATL1_MAX_TX_BUF_LEN
)
?
ATL1_MAX_TX_BUF_LEN
:
buf_len
;
buf_len
-=
buffer_info
->
length
;
buffer_info
->
dma
=
pci_map_page
(
adapter
->
pdev
,
frag
->
page
,
frag
->
page_offset
+
(
i
*
ATL1_MAX_TX_BUF_LEN
),
buffer_info
->
dma
=
skb_frag_dma_map
(
&
adapter
->
pdev
->
dev
,
frag
,
i
*
ATL1_MAX_TX_BUF_LEN
,
buffer_info
->
length
,
PCI_DMA_TODEVICE
);
if
(
++
next_to_use
==
tpd_ring
->
count
)
...
...
This diff is collapsed.
Click to expand it.
drivers/net/ethernet/brocade/bna/bnad.c
浏览文件 @
986eaa90
...
...
@@ -2753,8 +2753,8 @@ bnad_start_xmit(struct sk_buff *skb, struct net_device *netdev)
BUG_ON
(
!
(
size
<=
BFI_TX_MAX_DATA_PER_VECTOR
));
txqent
->
vector
[
vect_id
].
length
=
htons
(
size
);
dma_addr
=
dma_map_page
(
&
bnad
->
pcidev
->
dev
,
frag
->
page
,
frag
->
page_offset
,
size
,
DMA_TO_DEVICE
);
dma_addr
=
skb_frag_dma_map
(
&
bnad
->
pcidev
->
dev
,
frag
,
0
,
size
,
DMA_TO_DEVICE
);
dma_unmap_addr_set
(
&
unmap_q
->
unmap_array
[
unmap_prod
],
dma_addr
,
dma_addr
);
BNA_SET_DMA_ADDR
(
dma_addr
,
&
txqent
->
vector
[
vect_id
].
host_addr
);
...
...
This diff is collapsed.
Click to expand it.
drivers/net/ethernet/cisco/enic/enic_main.c
浏览文件 @
986eaa90
...
...
@@ -591,9 +591,9 @@ static inline void enic_queue_wq_skb_cont(struct enic *enic,
for
(
frag
=
skb_shinfo
(
skb
)
->
frags
;
len_left
;
frag
++
)
{
len_left
-=
frag
->
size
;
enic_queue_wq_desc_cont
(
wq
,
skb
,
pci_map_page
(
enic
->
pdev
,
frag
->
page
,
frag
->
page_offset
,
frag
->
size
,
PCI_DMA_TODEVICE
),
skb_frag_dma_map
(
&
enic
->
pdev
->
dev
,
frag
,
0
,
frag
->
size
,
PCI_DMA_TODEVICE
),
frag
->
size
,
(
len_left
==
0
),
/* EOP? */
loopback
);
...
...
@@ -705,14 +705,14 @@ static inline void enic_queue_wq_skb_tso(struct enic *enic,
for
(
frag
=
skb_shinfo
(
skb
)
->
frags
;
len_left
;
frag
++
)
{
len_left
-=
frag
->
size
;
frag_len_left
=
frag
->
size
;
offset
=
frag
->
page_offset
;
offset
=
0
;
while
(
frag_len_left
)
{
len
=
min
(
frag_len_left
,
(
unsigned
int
)
WQ_ENET_MAX_DESC_LEN
);
dma_addr
=
pci_map_page
(
enic
->
pdev
,
frag
->
page
,
offset
,
len
,
PCI_DMA_TODEVICE
);
dma_addr
=
skb_frag_dma_map
(
&
enic
->
pdev
->
dev
,
frag
,
offset
,
len
,
PCI_DMA_TODEVICE
);
enic_queue_wq_desc_cont
(
wq
,
skb
,
dma_addr
,
len
,
...
...
This diff is collapsed.
Click to expand it.
drivers/net/ethernet/emulex/benet/be_main.c
浏览文件 @
986eaa90
...
...
@@ -638,8 +638,8 @@ static int make_tx_wrbs(struct be_adapter *adapter, struct be_queue_info *txq,
for
(
i
=
0
;
i
<
skb_shinfo
(
skb
)
->
nr_frags
;
i
++
)
{
struct
skb_frag_struct
*
frag
=
&
skb_shinfo
(
skb
)
->
frags
[
i
];
busaddr
=
dma_map_page
(
dev
,
frag
->
page
,
frag
->
page_offset
,
frag
->
size
,
DMA_TO_DEVICE
);
busaddr
=
skb_frag_dma_map
(
dev
,
frag
,
0
,
frag
->
size
,
DMA_TO_DEVICE
);
if
(
dma_mapping_error
(
dev
,
busaddr
))
goto
dma_err
;
wrb
=
queue_head_node
(
txq
);
...
...
@@ -1066,7 +1066,7 @@ static void skb_fill_rx_data(struct be_adapter *adapter, struct be_rx_obj *rxo,
skb
->
tail
+=
curr_frag_len
;
}
else
{
skb_shinfo
(
skb
)
->
nr_frags
=
1
;
skb_
shinfo
(
skb
)
->
frags
[
0
].
page
=
page_info
->
page
;
skb_
frag_set_page
(
skb
,
0
,
page_info
->
page
)
;
skb_shinfo
(
skb
)
->
frags
[
0
].
page_offset
=
page_info
->
page_offset
+
hdr_len
;
skb_shinfo
(
skb
)
->
frags
[
0
].
size
=
curr_frag_len
-
hdr_len
;
...
...
@@ -1091,7 +1091,7 @@ static void skb_fill_rx_data(struct be_adapter *adapter, struct be_rx_obj *rxo,
if
(
page_info
->
page_offset
==
0
)
{
/* Fresh page */
j
++
;
skb_
shinfo
(
skb
)
->
frags
[
j
].
page
=
page_info
->
page
;
skb_
frag_set_page
(
skb
,
j
,
page_info
->
page
)
;
skb_shinfo
(
skb
)
->
frags
[
j
].
page_offset
=
page_info
->
page_offset
;
skb_shinfo
(
skb
)
->
frags
[
j
].
size
=
0
;
...
...
@@ -1173,7 +1173,7 @@ static void be_rx_compl_process_gro(struct be_adapter *adapter,
if
(
i
==
0
||
page_info
->
page_offset
==
0
)
{
/* First frag or Fresh page */
j
++
;
skb_
shinfo
(
skb
)
->
frags
[
j
].
page
=
page_info
->
page
;
skb_
frag_set_page
(
skb
,
j
,
page_info
->
page
)
;
skb_shinfo
(
skb
)
->
frags
[
j
].
page_offset
=
page_info
->
page_offset
;
skb_shinfo
(
skb
)
->
frags
[
j
].
size
=
0
;
...
...
This diff is collapsed.
Click to expand it.
drivers/net/ethernet/freescale/gianfar.c
浏览文件 @
986eaa90
...
...
@@ -2140,11 +2140,11 @@ static int gfar_start_xmit(struct sk_buff *skb, struct net_device *dev)
if
(
i
==
nr_frags
-
1
)
lstatus
|=
BD_LFLAG
(
TXBD_LAST
|
TXBD_INTERRUPT
);
bufaddr
=
dma_map_page
(
&
priv
->
ofdev
->
dev
,
skb_shinfo
(
skb
)
->
frags
[
i
].
page
,
skb_shinfo
(
skb
)
->
frags
[
i
].
page_offset
,
length
,
DMA_TO_DEVICE
);
bufaddr
=
skb_frag_dma_map
(
&
priv
->
ofdev
->
dev
,
&
skb_shinfo
(
skb
)
->
frags
[
i
]
,
0
,
length
,
DMA_TO_DEVICE
);
/* set the TxBD length and buffer pointer */
txbdp
->
bufPtr
=
bufaddr
;
...
...
This diff is collapsed.
Click to expand it.
drivers/net/ethernet/intel/e1000/e1000_main.c
浏览文件 @
986eaa90
...
...
@@ -2911,9 +2911,10 @@ static int e1000_tx_map(struct e1000_adapter *adapter,
frag
=
&
skb_shinfo
(
skb
)
->
frags
[
f
];
len
=
frag
->
size
;
offset
=
frag
->
page_offset
;
offset
=
0
;
while
(
len
)
{
unsigned
long
bufend
;
i
++
;
if
(
unlikely
(
i
==
tx_ring
->
count
))
i
=
0
;
...
...
@@ -2927,18 +2928,19 @@ static int e1000_tx_map(struct e1000_adapter *adapter,
/* Workaround for potential 82544 hang in PCI-X.
* Avoid terminating buffers within evenly-aligned
* dwords. */
bufend
=
(
unsigned
long
)
page_to_phys
(
skb_frag_page
(
frag
));
bufend
+=
offset
+
size
-
1
;
if
(
unlikely
(
adapter
->
pcix_82544
&&
!
((
unsigned
long
)(
page_to_phys
(
frag
->
page
)
+
offset
+
size
-
1
)
&
4
)
&&
size
>
4
))
!
(
bufend
&
4
)
&&
size
>
4
))
size
-=
4
;
buffer_info
->
length
=
size
;
buffer_info
->
time_stamp
=
jiffies
;
buffer_info
->
mapped_as_page
=
true
;
buffer_info
->
dma
=
dma_map_page
(
&
pdev
->
dev
,
frag
->
page
,
offset
,
size
,
DMA_TO_DEVICE
);
buffer_info
->
dma
=
skb_frag_dma_map
(
&
pdev
->
dev
,
frag
,
offset
,
size
,
DMA_TO_DEVICE
);
if
(
dma_mapping_error
(
&
pdev
->
dev
,
buffer_info
->
dma
))
goto
dma_error
;
buffer_info
->
next_to_watch
=
i
;
...
...
This diff is collapsed.
Click to expand it.
drivers/net/ethernet/intel/e1000e/netdev.c
浏览文件 @
986eaa90
...
...
@@ -4677,7 +4677,7 @@ static int e1000_tx_map(struct e1000_adapter *adapter,
frag
=
&
skb_shinfo
(
skb
)
->
frags
[
f
];
len
=
frag
->
size
;
offset
=
frag
->
page_offset
;
offset
=
0
;
while
(
len
)
{
i
++
;
...
...
@@ -4690,9 +4690,8 @@ static int e1000_tx_map(struct e1000_adapter *adapter,
buffer_info
->
length
=
size
;
buffer_info
->
time_stamp
=
jiffies
;
buffer_info
->
next_to_watch
=
i
;
buffer_info
->
dma
=
dma_map_page
(
&
pdev
->
dev
,
frag
->
page
,
offset
,
size
,
DMA_TO_DEVICE
);
buffer_info
->
dma
=
skb_frag_dma_map
(
&
pdev
->
dev
,
frag
,
offset
,
size
,
DMA_TO_DEVICE
);
buffer_info
->
mapped_as_page
=
true
;
if
(
dma_mapping_error
(
&
pdev
->
dev
,
buffer_info
->
dma
))
goto
dma_error
;
...
...
This diff is collapsed.
Click to expand it.
drivers/net/ethernet/intel/igb/igb_main.c
浏览文件 @
986eaa90
...
...
@@ -4174,10 +4174,7 @@ static inline int igb_tx_map_adv(struct igb_ring *tx_ring, struct sk_buff *skb,
buffer_info
->
time_stamp
=
jiffies
;
buffer_info
->
next_to_watch
=
i
;
buffer_info
->
mapped_as_page
=
true
;
buffer_info
->
dma
=
dma_map_page
(
dev
,
frag
->
page
,
frag
->
page_offset
,
len
,
buffer_info
->
dma
=
skb_frag_dma_map
(
dev
,
frag
,
0
,
len
,
DMA_TO_DEVICE
);
if
(
dma_mapping_error
(
dev
,
buffer_info
->
dma
))
goto
dma_error
;
...
...
This diff is collapsed.
Click to expand it.
drivers/net/ethernet/intel/igbvf/netdev.c
浏览文件 @
986eaa90
...
...
@@ -2061,10 +2061,7 @@ static inline int igbvf_tx_map_adv(struct igbvf_adapter *adapter,
buffer_info
->
time_stamp
=
jiffies
;
buffer_info
->
next_to_watch
=
i
;
buffer_info
->
mapped_as_page
=
true
;
buffer_info
->
dma
=
dma_map_page
(
&
pdev
->
dev
,
frag
->
page
,
frag
->
page_offset
,
len
,
buffer_info
->
dma
=
skb_frag_dma_map
(
&
pdev
->
dev
,
frag
,
0
,
len
,
DMA_TO_DEVICE
);
if
(
dma_mapping_error
(
&
pdev
->
dev
,
buffer_info
->
dma
))
goto
dma_error
;
...
...
This diff is collapsed.
Click to expand it.
drivers/net/ethernet/intel/ixgb/ixgb_main.c
浏览文件 @
986eaa90
...
...
@@ -1341,7 +1341,7 @@ ixgb_tx_map(struct ixgb_adapter *adapter, struct sk_buff *skb,
frag
=
&
skb_shinfo
(
skb
)
->
frags
[
f
];
len
=
frag
->
size
;
offset
=
frag
->
page_offset
;
offset
=
0
;
while
(
len
)
{
i
++
;
...
...
@@ -1361,8 +1361,8 @@ ixgb_tx_map(struct ixgb_adapter *adapter, struct sk_buff *skb,
buffer_info
->
time_stamp
=
jiffies
;
buffer_info
->
mapped_as_page
=
true
;
buffer_info
->
dma
=
dma_map_page
(
&
pdev
->
dev
,
frag
->
pag
e
,
offset
,
size
,
DMA_TO_DEVICE
);
skb_frag_dma_map
(
&
pdev
->
dev
,
frag
,
offset
,
siz
e
,
DMA_TO_DEVICE
);
if
(
dma_mapping_error
(
&
pdev
->
dev
,
buffer_info
->
dma
))
goto
dma_error
;
buffer_info
->
next_to_watch
=
0
;
...
...
This diff is collapsed.
Click to expand it.
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
浏览文件 @
986eaa90
...
...
@@ -6494,8 +6494,7 @@ static void ixgbe_tx_map(struct ixgbe_ring *tx_ring,
offset
=
0
;
tx_flags
|=
IXGBE_TX_FLAGS_MAPPED_AS_PAGE
;
dma
=
dma_map_page
(
dev
,
frag
->
page
,
frag
->
page_offset
,
size
,
DMA_TO_DEVICE
);
dma
=
skb_frag_dma_map
(
dev
,
frag
,
0
,
size
,
DMA_TO_DEVICE
);
if
(
dma_mapping_error
(
dev
,
dma
))
goto
dma_error
;
...
...
This diff is collapsed.
Click to expand it.
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
浏览文件 @
986eaa90
...
...
@@ -2918,18 +2918,16 @@ static int ixgbevf_tx_map(struct ixgbevf_adapter *adapter,
frag
=
&
skb_shinfo
(
skb
)
->
frags
[
f
];
len
=
min
((
unsigned
int
)
frag
->
size
,
total
);
offset
=
frag
->
page_offset
;
offset
=
0
;
while
(
len
)
{
tx_buffer_info
=
&
tx_ring
->
tx_buffer_info
[
i
];
size
=
min
(
len
,
(
unsigned
int
)
IXGBE_MAX_DATA_PER_TXD
);
tx_buffer_info
->
length
=
size
;
tx_buffer_info
->
dma
=
dma_map_page
(
&
adapter
->
pdev
->
dev
,
frag
->
page
,
offset
,
size
,
DMA_TO_DEVICE
);
tx_buffer_info
->
dma
=
skb_frag_dma_map
(
&
adapter
->
pdev
->
dev
,
frag
,
offset
,
size
,
DMA_TO_DEVICE
);
tx_buffer_info
->
mapped_as_page
=
true
;
if
(
dma_mapping_error
(
&
pdev
->
dev
,
tx_buffer_info
->
dma
))
goto
dma_error
;
...
...
This diff is collapsed.
Click to expand it.
drivers/net/ethernet/nvidia/forcedeth.c
浏览文件 @
986eaa90
...
...
@@ -2146,8 +2146,11 @@ static netdev_tx_t nv_start_xmit(struct sk_buff *skb, struct net_device *dev)
prev_tx
=
put_tx
;
prev_tx_ctx
=
np
->
put_tx_ctx
;
bcnt
=
(
size
>
NV_TX2_TSO_MAX_SIZE
)
?
NV_TX2_TSO_MAX_SIZE
:
size
;
np
->
put_tx_ctx
->
dma
=
pci_map_page
(
np
->
pci_dev
,
frag
->
page
,
frag
->
page_offset
+
offset
,
bcnt
,
PCI_DMA_TODEVICE
);
np
->
put_tx_ctx
->
dma
=
skb_frag_dma_map
(
&
np
->
pci_dev
->
dev
,
frag
,
offset
,
bcnt
,
PCI_DMA_TODEVICE
);
np
->
put_tx_ctx
->
dma_len
=
bcnt
;
np
->
put_tx_ctx
->
dma_single
=
0
;
put_tx
->
buf
=
cpu_to_le32
(
np
->
put_tx_ctx
->
dma
);
...
...
@@ -2257,8 +2260,11 @@ static netdev_tx_t nv_start_xmit_optimized(struct sk_buff *skb,
prev_tx
=
put_tx
;
prev_tx_ctx
=
np
->
put_tx_ctx
;
bcnt
=
(
size
>
NV_TX2_TSO_MAX_SIZE
)
?
NV_TX2_TSO_MAX_SIZE
:
size
;
np
->
put_tx_ctx
->
dma
=
pci_map_page
(
np
->
pci_dev
,
frag
->
page
,
frag
->
page_offset
+
offset
,
bcnt
,
PCI_DMA_TODEVICE
);
np
->
put_tx_ctx
->
dma
=
skb_frag_dma_map
(
&
np
->
pci_dev
->
dev
,
frag
,
offset
,
bcnt
,
PCI_DMA_TODEVICE
);
np
->
put_tx_ctx
->
dma_len
=
bcnt
;
np
->
put_tx_ctx
->
dma_single
=
0
;
put_tx
->
bufhigh
=
cpu_to_le32
(
dma_high
(
np
->
put_tx_ctx
->
dma
));
...
...
This diff is collapsed.
Click to expand it.
drivers/net/ethernet/realtek/8139cp.c
浏览文件 @
986eaa90
...
...
@@ -784,8 +784,7 @@ static netdev_tx_t cp_start_xmit (struct sk_buff *skb,
len
=
this_frag
->
size
;
mapping
=
dma_map_single
(
&
cp
->
pdev
->
dev
,
((
void
*
)
page_address
(
this_frag
->
page
)
+
this_frag
->
page_offset
),
skb_frag_address
(
this_frag
),
len
,
PCI_DMA_TODEVICE
);
eor
=
(
entry
==
(
CP_TX_RING_SIZE
-
1
))
?
RingEnd
:
0
;
...
...
This diff is collapsed.
Click to expand it.
drivers/net/ethernet/sun/cassini.c
浏览文件 @
986eaa90
...
...
@@ -2048,8 +2048,8 @@ static int cas_rx_process_pkt(struct cas *cp, struct cas_rx_comp *rxc,
skb
->
truesize
+=
hlen
-
swivel
;
skb
->
len
+=
hlen
-
swivel
;
get_page
(
page
->
buffer
);
frag
->
page
=
page
->
buffer
;
__skb_frag_set_page
(
frag
,
page
->
buffer
);
__skb_frag_ref
(
frag
)
;
frag
->
page_offset
=
off
;
frag
->
size
=
hlen
-
swivel
;
...
...
@@ -2072,8 +2072,8 @@ static int cas_rx_process_pkt(struct cas *cp, struct cas_rx_comp *rxc,
skb
->
len
+=
hlen
;
frag
++
;
get_page
(
page
->
buffer
);
frag
->
page
=
page
->
buffer
;
__skb_frag_set_page
(
frag
,
page
->
buffer
);
__skb_frag_ref
(
frag
)
;
frag
->
page_offset
=
0
;
frag
->
size
=
hlen
;
RX_USED_ADD
(
page
,
hlen
+
cp
->
crc_size
);
...
...
@@ -2830,9 +2830,8 @@ static inline int cas_xmit_tx_ringN(struct cas *cp, int ring,
skb_frag_t
*
fragp
=
&
skb_shinfo
(
skb
)
->
frags
[
frag
];
len
=
fragp
->
size
;
mapping
=
pci_map_page
(
cp
->
pdev
,
fragp
->
page
,
fragp
->
page_offset
,
len
,
PCI_DMA_TODEVICE
);
mapping
=
skb_frag_dma_map
(
&
cp
->
pdev
->
dev
,
fragp
,
0
,
len
,
PCI_DMA_TODEVICE
);
tabort
=
cas_calc_tabort
(
cp
,
fragp
->
page_offset
,
len
);
if
(
unlikely
(
tabort
))
{
...
...
@@ -2843,7 +2842,7 @@ static inline int cas_xmit_tx_ringN(struct cas *cp, int ring,
ctrl
,
0
);
entry
=
TX_DESC_NEXT
(
ring
,
entry
);
addr
=
cas_page_map
(
fragp
->
page
);
addr
=
cas_page_map
(
skb_frag_page
(
fragp
)
);
memcpy
(
tx_tiny_buf
(
cp
,
ring
,
entry
),
addr
+
fragp
->
page_offset
+
len
-
tabort
,
tabort
);
...
...
This diff is collapsed.
Click to expand it.
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录
新手
引导
客服
返回
顶部