@@ -403,8 +403,8 @@ static void igb_dump(struct igb_adapter *adapter)
403
403
buffer_info = & tx_ring -> tx_buffer_info [tx_ring -> next_to_clean ];
404
404
pr_info (" %5d %5X %5X %016llX %04X %p %016llX\n" ,
405
405
n , tx_ring -> next_to_use , tx_ring -> next_to_clean ,
406
- (u64 )buffer_info -> dma ,
407
- buffer_info -> length ,
406
+ (u64 )dma_unmap_addr ( buffer_info , dma ) ,
407
+ dma_unmap_len ( buffer_info , len ) ,
408
408
buffer_info -> next_to_watch ,
409
409
(u64 )buffer_info -> time_stamp );
410
410
}
@@ -455,8 +455,8 @@ static void igb_dump(struct igb_adapter *adapter)
455
455
" %04X %p %016llX %p%s\n" , i ,
456
456
le64_to_cpu (u0 -> a ),
457
457
le64_to_cpu (u0 -> b ),
458
- (u64 )buffer_info -> dma ,
459
- buffer_info -> length ,
458
+ (u64 )dma_unmap_addr ( buffer_info , dma ) ,
459
+ dma_unmap_len ( buffer_info , len ) ,
460
460
buffer_info -> next_to_watch ,
461
461
(u64 )buffer_info -> time_stamp ,
462
462
buffer_info -> skb , next_desc );
@@ -465,7 +465,8 @@ static void igb_dump(struct igb_adapter *adapter)
465
465
print_hex_dump (KERN_INFO , "" ,
466
466
DUMP_PREFIX_ADDRESS ,
467
467
16 , 1 , buffer_info -> skb -> data ,
468
- buffer_info -> length , true);
468
+ dma_unmap_len (buffer_info , len ),
469
+ true);
469
470
}
470
471
}
471
472
@@ -3198,20 +3199,20 @@ void igb_unmap_and_free_tx_resource(struct igb_ring *ring,
3198
3199
{
3199
3200
if (tx_buffer -> skb ) {
3200
3201
dev_kfree_skb_any (tx_buffer -> skb );
3201
- if (tx_buffer -> dma )
3202
+ if (dma_unmap_len ( tx_buffer , len ) )
3202
3203
dma_unmap_single (ring -> dev ,
3203
- tx_buffer -> dma ,
3204
- tx_buffer -> length ,
3204
+ dma_unmap_addr ( tx_buffer , dma ) ,
3205
+ dma_unmap_len ( tx_buffer , len ) ,
3205
3206
DMA_TO_DEVICE );
3206
- } else if (tx_buffer -> dma ) {
3207
+ } else if (dma_unmap_len ( tx_buffer , len ) ) {
3207
3208
dma_unmap_page (ring -> dev ,
3208
- tx_buffer -> dma ,
3209
- tx_buffer -> length ,
3209
+ dma_unmap_addr ( tx_buffer , dma ) ,
3210
+ dma_unmap_len ( tx_buffer , len ) ,
3210
3211
DMA_TO_DEVICE );
3211
3212
}
3212
3213
tx_buffer -> next_to_watch = NULL ;
3213
3214
tx_buffer -> skb = NULL ;
3214
- tx_buffer -> dma = 0 ;
3215
+ dma_unmap_len_set ( tx_buffer , len , 0 ) ;
3215
3216
/* buffer_info must be completely set up in the transmit path */
3216
3217
}
3217
3218
@@ -4206,7 +4207,7 @@ static void igb_tx_map(struct igb_ring *tx_ring,
4206
4207
const u8 hdr_len )
4207
4208
{
4208
4209
struct sk_buff * skb = first -> skb ;
4209
- struct igb_tx_buffer * tx_buffer_info ;
4210
+ struct igb_tx_buffer * tx_buffer ;
4210
4211
union e1000_adv_tx_desc * tx_desc ;
4211
4212
dma_addr_t dma ;
4212
4213
struct skb_frag_struct * frag = & skb_shinfo (skb )-> frags [0 ];
@@ -4227,8 +4228,8 @@ static void igb_tx_map(struct igb_ring *tx_ring,
4227
4228
goto dma_error ;
4228
4229
4229
4230
/* record length, and DMA address */
4230
- first -> length = size ;
4231
- first -> dma = dma ;
4231
+ dma_unmap_len_set ( first , len , size ) ;
4232
+ dma_unmap_addr_set ( first , dma , dma ) ;
4232
4233
tx_desc -> read .buffer_addr = cpu_to_le64 (dma );
4233
4234
4234
4235
for (;;) {
@@ -4270,9 +4271,9 @@ static void igb_tx_map(struct igb_ring *tx_ring,
4270
4271
if (dma_mapping_error (tx_ring -> dev , dma ))
4271
4272
goto dma_error ;
4272
4273
4273
- tx_buffer_info = & tx_ring -> tx_buffer_info [i ];
4274
- tx_buffer_info -> length = size ;
4275
- tx_buffer_info -> dma = dma ;
4274
+ tx_buffer = & tx_ring -> tx_buffer_info [i ];
4275
+ dma_unmap_len_set ( tx_buffer , len , size ) ;
4276
+ dma_unmap_addr_set ( tx_buffer , dma , dma ) ;
4276
4277
4277
4278
tx_desc -> read .olinfo_status = 0 ;
4278
4279
tx_desc -> read .buffer_addr = cpu_to_le64 (dma );
@@ -4323,9 +4324,9 @@ static void igb_tx_map(struct igb_ring *tx_ring,
4323
4324
4324
4325
/* clear dma mappings for failed tx_buffer_info map */
4325
4326
for (;;) {
4326
- tx_buffer_info = & tx_ring -> tx_buffer_info [i ];
4327
- igb_unmap_and_free_tx_resource (tx_ring , tx_buffer_info );
4328
- if (tx_buffer_info == first )
4327
+ tx_buffer = & tx_ring -> tx_buffer_info [i ];
4328
+ igb_unmap_and_free_tx_resource (tx_ring , tx_buffer );
4329
+ if (tx_buffer == first )
4329
4330
break ;
4330
4331
if (i == 0 )
4331
4332
i = tx_ring -> count ;
@@ -5716,18 +5717,19 @@ static bool igb_clean_tx_irq(struct igb_q_vector *q_vector)
5716
5717
5717
5718
/* free the skb */
5718
5719
dev_kfree_skb_any (tx_buffer -> skb );
5719
- tx_buffer -> skb = NULL ;
5720
5720
5721
5721
/* unmap skb header data */
5722
5722
dma_unmap_single (tx_ring -> dev ,
5723
- tx_buffer -> dma ,
5724
- tx_buffer -> length ,
5723
+ dma_unmap_addr ( tx_buffer , dma ) ,
5724
+ dma_unmap_len ( tx_buffer , len ) ,
5725
5725
DMA_TO_DEVICE );
5726
5726
5727
+ /* clear tx_buffer data */
5728
+ tx_buffer -> skb = NULL ;
5729
+ dma_unmap_len_set (tx_buffer , len , 0 );
5730
+
5727
5731
/* clear last DMA location and unmap remaining buffers */
5728
5732
while (tx_desc != eop_desc ) {
5729
- tx_buffer -> dma = 0 ;
5730
-
5731
5733
tx_buffer ++ ;
5732
5734
tx_desc ++ ;
5733
5735
i ++ ;
@@ -5738,17 +5740,15 @@ static bool igb_clean_tx_irq(struct igb_q_vector *q_vector)
5738
5740
}
5739
5741
5740
5742
/* unmap any remaining paged data */
5741
- if (tx_buffer -> dma ) {
5743
+ if (dma_unmap_len ( tx_buffer , len ) ) {
5742
5744
dma_unmap_page (tx_ring -> dev ,
5743
- tx_buffer -> dma ,
5744
- tx_buffer -> length ,
5745
+ dma_unmap_addr ( tx_buffer , dma ) ,
5746
+ dma_unmap_len ( tx_buffer , len ) ,
5745
5747
DMA_TO_DEVICE );
5748
+ dma_unmap_len_set (tx_buffer , len , 0 );
5746
5749
}
5747
5750
}
5748
5751
5749
- /* clear last DMA location */
5750
- tx_buffer -> dma = 0 ;
5751
-
5752
5752
/* move us one more past the eop_desc for start of next pkt */
5753
5753
tx_buffer ++ ;
5754
5754
tx_desc ++ ;
0 commit comments