Skip to contentSkip to conversation

mm/dmapool.c: Replace open-coded list_first_entry()

PATCH Superseded Andy Shevchenko 2 participants 3 messages Aug 12, 2020 – Aug 13, 2020

Subsystems (2)

v1 of 2 Superseded Latest is v2 →

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 mm/dmapool.c: Replace open-coded list_first_entry()

There is a place in the code where open-coded version of list_first_entry() is used. Replace that with the standard macro.

While here, separate definitions from the code to avoid a churn by janitors.

---
 mm/dmapool.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
mm/dmapool.c +2 -2
index f9fb9bbd733e..049ac1459714 100644
@@ -283,8 +283,8 @@ void dma_pool_destroy(struct dma_pool *pool)
 
 	while (!list_empty(&pool->page_list)) {
 		struct dma_page *page;
-		page = list_entry(pool->page_list.next,
-				  struct dma_page, page_list);
+
+		page = list_first_entry(&pool->page_list, struct dma_page, page_list);
 		if (is_page_busy(page)) {
 			if (pool->dev)
 				dev_err(pool->dev,
Signature · 1 line
2.28.0
#1 lore raw

mm/dmapool.c void dma_pool_destroy(struct dma_pool *pool) · line 287

Quoted 6 lines · Andy Shevchenko
mm/dmapool.c +2 -2
 	while (!list_empty(&pool->page_list)) {
 		struct dma_page *page;
-		page = list_entry(pool->page_list.next,
-				  struct dma_page, page_list);
+
+		page = list_first_entry(&pool->page_list, struct dma_page, page_list);

Eh, I'd rather see this as:

		struct dma_page *page = list_first_entry(&pool->page_list,
				struct dma_page, page_list);
#2 lore raw
Quoted 10 lines · Matthew Wilcox

mm/dmapool.c void dma_pool_destroy(struct dma_pool *pool) · line 287

Quoted 6 lines · Andy Shevchenko
mm/dmapool.c +2 -2
 	while (!list_empty(&pool->page_list)) {
 		struct dma_page *page;
-		page = list_entry(pool->page_list.next,
-				  struct dma_page, page_list);
+
+		page = list_first_entry(&pool->page_list, struct dma_page, page_list);

Eh, I'd rather see this as:

Quoted 2 lines
		struct dma_page *page = list_first_entry(&pool->page_list,
				struct dma_page, page_list);

On the second thought we may convert the entire loop to use list_for_each_entry_safe() since there is no locking in between, we should be fine.

Signature · 2 lines
With Best Regards,
Andy Shevchenko