Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1760565AbbKUOFn (ORCPT ); Sat, 21 Nov 2015 09:05:43 -0500 Received: from m50-133.163.com ([123.125.50.133]:60552 "EHLO m50-133.163.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1760208AbbKUOFe (ORCPT ); Sat, 21 Nov 2015 09:05:34 -0500 From: Geliang Tang To: David Airlie , lkp@intel.com Cc: Geliang Tang , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, kbuild-all@01.org Subject: [PATCH v2] drm/mm: rewrite drm_mm_for_each_hole Date: Sat, 21 Nov 2015 22:04:04 +0800 Message-Id: <5d23398953dc718e7bd17a559b5ac2a9cae72bf6.1448114127.git.geliangtang@163.com> X-Mailer: git-send-email 2.5.0 In-Reply-To: <201511211859.4WwE6vlY%fengguang.wu@intel.com> X-CM-TRANSID: DdGowEDpilrYeVBW6Pd1AQ--.11774S3 X-Coremail-Antispam: 1Uf129KBjvJXoW7ZF1DZr18Cw47CrW5AFyfXrb_yoW5Jr48pF sxCFZIvw4kK3yrG348JFZrGF15Zw4DWF18G3yq9F4xGFnrKr48Wa4UGr1jyrWUCrs3Ww15 JayjgFyqga1jv37anT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDUYxBIdaVFxhVjvjDU0xZFpf9x07UzVbkUUUUU= X-Originating-IP: [115.45.185.14] X-CM-SenderInfo: 5jhoxtpqjwt0rj6rljoofrz/1tbivwS5mVWBOex-BQABsh Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2631 Lines: 62 When backwards is 0, __drm_mm_for_each_hole is same as drm_mm_for_each_hole. So I rewrite drm_mm_for_each_hole by using __drm_mm_for_each_hole. Signed-off-by: Geliang Tang --- Changes in v2: - fix make htmldocs warning --- include/drm/drm_mm.h | 23 +++++++++-------------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/include/drm/drm_mm.h b/include/drm/drm_mm.h index 0de6290..a58cc6c 100644 --- a/include/drm/drm_mm.h +++ b/include/drm/drm_mm.h @@ -180,6 +180,14 @@ static inline u64 drm_mm_hole_node_end(struct drm_mm_node *hole_node) &(mm)->head_node.node_list, \ node_list) +#define __drm_mm_for_each_hole(entry, mm, hole_start, hole_end, backwards) \ + for (entry = list_entry((backwards) ? (mm)->hole_stack.prev : (mm)->hole_stack.next, struct drm_mm_node, hole_stack); \ + &entry->hole_stack != &(mm)->hole_stack ? \ + hole_start = drm_mm_hole_node_start(entry), \ + hole_end = drm_mm_hole_node_end(entry), \ + 1 : 0; \ + entry = list_entry((backwards) ? entry->hole_stack.prev : entry->hole_stack.next, struct drm_mm_node, hole_stack)) + /** * drm_mm_for_each_hole - iterator to walk over all holes * @entry: drm_mm_node used internally to track progress @@ -200,20 +208,7 @@ static inline u64 drm_mm_hole_node_end(struct drm_mm_node *hole_node) * going backwards. */ #define drm_mm_for_each_hole(entry, mm, hole_start, hole_end) \ - for (entry = list_entry((mm)->hole_stack.next, struct drm_mm_node, hole_stack); \ - &entry->hole_stack != &(mm)->hole_stack ? \ - hole_start = drm_mm_hole_node_start(entry), \ - hole_end = drm_mm_hole_node_end(entry), \ - 1 : 0; \ - entry = list_entry(entry->hole_stack.next, struct drm_mm_node, hole_stack)) - -#define __drm_mm_for_each_hole(entry, mm, hole_start, hole_end, backwards) \ - for (entry = list_entry((backwards) ? (mm)->hole_stack.prev : (mm)->hole_stack.next, struct drm_mm_node, hole_stack); \ - &entry->hole_stack != &(mm)->hole_stack ? \ - hole_start = drm_mm_hole_node_start(entry), \ - hole_end = drm_mm_hole_node_end(entry), \ - 1 : 0; \ - entry = list_entry((backwards) ? entry->hole_stack.prev : entry->hole_stack.next, struct drm_mm_node, hole_stack)) + __drm_mm_for_each_hole(entry, mm, hole_start, hole_end, 0) /* * Basic range manager support (drm_mm.c) -- 2.5.0 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/