Skip to content

Commit d1998ef

Browse files
Ben CollinsLinus Torvalds
authored andcommitted
[PATCH] ib_verbs: Use explicit if-else statements to avoid errors with do-while macros
At least on PPC, the "op ? op : dma" construct causes a compile failure because the dma_* is a do{}while(0) macro. This turns all of them into proper if/else to avoid this problem. Signed-off-by: Ben Collins <bcollins@ubuntu.com> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
1 parent cc01644 commit d1998ef

File tree

1 file changed

+39
-31
lines changed

1 file changed

+39
-31
lines changed

include/rdma/ib_verbs.h

Lines changed: 39 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1456,9 +1456,9 @@ struct ib_mr *ib_get_dma_mr(struct ib_pd *pd, int mr_access_flags);
14561456
*/
14571457
static inline int ib_dma_mapping_error(struct ib_device *dev, u64 dma_addr)
14581458
{
1459-
return dev->dma_ops ?
1460-
dev->dma_ops->mapping_error(dev, dma_addr) :
1461-
dma_mapping_error(dma_addr);
1459+
if (dev->dma_ops)
1460+
return dev->dma_ops->mapping_error(dev, dma_addr);
1461+
return dma_mapping_error(dma_addr);
14621462
}
14631463

14641464
/**
@@ -1472,9 +1472,9 @@ static inline u64 ib_dma_map_single(struct ib_device *dev,
14721472
void *cpu_addr, size_t size,
14731473
enum dma_data_direction direction)
14741474
{
1475-
return dev->dma_ops ?
1476-
dev->dma_ops->map_single(dev, cpu_addr, size, direction) :
1477-
dma_map_single(dev->dma_device, cpu_addr, size, direction);
1475+
if (dev->dma_ops)
1476+
return dev->dma_ops->map_single(dev, cpu_addr, size, direction);
1477+
return dma_map_single(dev->dma_device, cpu_addr, size, direction);
14781478
}
14791479

14801480
/**
@@ -1488,8 +1488,9 @@ static inline void ib_dma_unmap_single(struct ib_device *dev,
14881488
u64 addr, size_t size,
14891489
enum dma_data_direction direction)
14901490
{
1491-
dev->dma_ops ?
1492-
dev->dma_ops->unmap_single(dev, addr, size, direction) :
1491+
if (dev->dma_ops)
1492+
dev->dma_ops->unmap_single(dev, addr, size, direction);
1493+
else
14931494
dma_unmap_single(dev->dma_device, addr, size, direction);
14941495
}
14951496

@@ -1507,9 +1508,9 @@ static inline u64 ib_dma_map_page(struct ib_device *dev,
15071508
size_t size,
15081509
enum dma_data_direction direction)
15091510
{
1510-
return dev->dma_ops ?
1511-
dev->dma_ops->map_page(dev, page, offset, size, direction) :
1512-
dma_map_page(dev->dma_device, page, offset, size, direction);
1511+
if (dev->dma_ops)
1512+
return dev->dma_ops->map_page(dev, page, offset, size, direction);
1513+
return dma_map_page(dev->dma_device, page, offset, size, direction);
15131514
}
15141515

15151516
/**
@@ -1523,8 +1524,9 @@ static inline void ib_dma_unmap_page(struct ib_device *dev,
15231524
u64 addr, size_t size,
15241525
enum dma_data_direction direction)
15251526
{
1526-
dev->dma_ops ?
1527-
dev->dma_ops->unmap_page(dev, addr, size, direction) :
1527+
if (dev->dma_ops)
1528+
dev->dma_ops->unmap_page(dev, addr, size, direction);
1529+
else
15281530
dma_unmap_page(dev->dma_device, addr, size, direction);
15291531
}
15301532

@@ -1539,9 +1541,9 @@ static inline int ib_dma_map_sg(struct ib_device *dev,
15391541
struct scatterlist *sg, int nents,
15401542
enum dma_data_direction direction)
15411543
{
1542-
return dev->dma_ops ?
1543-
dev->dma_ops->map_sg(dev, sg, nents, direction) :
1544-
dma_map_sg(dev->dma_device, sg, nents, direction);
1544+
if (dev->dma_ops)
1545+
return dev->dma_ops->map_sg(dev, sg, nents, direction);
1546+
return dma_map_sg(dev->dma_device, sg, nents, direction);
15451547
}
15461548

15471549
/**
@@ -1555,8 +1557,9 @@ static inline void ib_dma_unmap_sg(struct ib_device *dev,
15551557
struct scatterlist *sg, int nents,
15561558
enum dma_data_direction direction)
15571559
{
1558-
dev->dma_ops ?
1559-
dev->dma_ops->unmap_sg(dev, sg, nents, direction) :
1560+
if (dev->dma_ops)
1561+
dev->dma_ops->unmap_sg(dev, sg, nents, direction);
1562+
else
15601563
dma_unmap_sg(dev->dma_device, sg, nents, direction);
15611564
}
15621565

@@ -1568,8 +1571,9 @@ static inline void ib_dma_unmap_sg(struct ib_device *dev,
15681571
static inline u64 ib_sg_dma_address(struct ib_device *dev,
15691572
struct scatterlist *sg)
15701573
{
1571-
return dev->dma_ops ?
1572-
dev->dma_ops->dma_address(dev, sg) : sg_dma_address(sg);
1574+
if (dev->dma_ops)
1575+
return dev->dma_ops->dma_address(dev, sg);
1576+
return sg_dma_address(sg);
15731577
}
15741578

15751579
/**
@@ -1580,8 +1584,9 @@ static inline u64 ib_sg_dma_address(struct ib_device *dev,
15801584
static inline unsigned int ib_sg_dma_len(struct ib_device *dev,
15811585
struct scatterlist *sg)
15821586
{
1583-
return dev->dma_ops ?
1584-
dev->dma_ops->dma_len(dev, sg) : sg_dma_len(sg);
1587+
if (dev->dma_ops)
1588+
return dev->dma_ops->dma_len(dev, sg);
1589+
return sg_dma_len(sg);
15851590
}
15861591

15871592
/**
@@ -1596,8 +1601,9 @@ static inline void ib_dma_sync_single_for_cpu(struct ib_device *dev,
15961601
size_t size,
15971602
enum dma_data_direction dir)
15981603
{
1599-
dev->dma_ops ?
1600-
dev->dma_ops->sync_single_for_cpu(dev, addr, size, dir) :
1604+
if (dev->dma_ops)
1605+
dev->dma_ops->sync_single_for_cpu(dev, addr, size, dir);
1606+
else
16011607
dma_sync_single_for_cpu(dev->dma_device, addr, size, dir);
16021608
}
16031609

@@ -1613,8 +1619,9 @@ static inline void ib_dma_sync_single_for_device(struct ib_device *dev,
16131619
size_t size,
16141620
enum dma_data_direction dir)
16151621
{
1616-
dev->dma_ops ?
1617-
dev->dma_ops->sync_single_for_device(dev, addr, size, dir) :
1622+
if (dev->dma_ops)
1623+
dev->dma_ops->sync_single_for_device(dev, addr, size, dir);
1624+
else
16181625
dma_sync_single_for_device(dev->dma_device, addr, size, dir);
16191626
}
16201627

@@ -1630,9 +1637,9 @@ static inline void *ib_dma_alloc_coherent(struct ib_device *dev,
16301637
u64 *dma_handle,
16311638
gfp_t flag)
16321639
{
1633-
return dev->dma_ops ?
1634-
dev->dma_ops->alloc_coherent(dev, size, dma_handle, flag) :
1635-
dma_alloc_coherent(dev->dma_device, size, dma_handle, flag);
1640+
if (dev->dma_ops)
1641+
return dev->dma_ops->alloc_coherent(dev, size, dma_handle, flag);
1642+
return dma_alloc_coherent(dev->dma_device, size, dma_handle, flag);
16361643
}
16371644

16381645
/**
@@ -1646,8 +1653,9 @@ static inline void ib_dma_free_coherent(struct ib_device *dev,
16461653
size_t size, void *cpu_addr,
16471654
u64 dma_handle)
16481655
{
1649-
dev->dma_ops ?
1650-
dev->dma_ops->free_coherent(dev, size, cpu_addr, dma_handle) :
1656+
if (dev->dma_ops)
1657+
dev->dma_ops->free_coherent(dev, size, cpu_addr, dma_handle);
1658+
else
16511659
dma_free_coherent(dev->dma_device, size, cpu_addr, dma_handle);
16521660
}
16531661

0 commit comments

Comments
 (0)