Received: by 2002:a05:6a10:413:0:0:0:0 with SMTP id 19csp1026138pxp; Sun, 20 Mar 2022 04:07:44 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwkZpXh6/Cg1RIGcxgdSGHb95uUq1dIiCVlhUYrMSztsSBXu5dU3zWg0UDvAI9eM+e1/GMt X-Received: by 2002:a50:9505:0:b0:416:4496:5ec4 with SMTP id u5-20020a509505000000b0041644965ec4mr18397477eda.309.1647774464128; Sun, 20 Mar 2022 04:07:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1647774464; cv=none; d=google.com; s=arc-20160816; b=xWFDtb7Zt8xjRMeFeDOZp+kQgUrYqu7kl2sacsrjE1pgSqxhv8lA7uxPXqHJjoOFyt j0zl9JAPgcqd+nhxPFhcHsuIzNY27ogbJHf2f4+odFhxkSpNHXAzXA7uJDBQ9rnJrwcj WcgbGsEuSRd+Hrxjj6sm/0ggOdzqaYKTQeiusuTuGhyImuAccGmWXOgTJFmae98P+oVL ngcwC2Fl7hQmEE6MDHClqn0vR3Y17gCN9Lp30Gm5dc1i2AXN6k+RByROxIF+TuORJ40W 2yilSb7balhMnWOdA6iQneQZhq3BqX1cy6pCjUlJlzPw232r/eb35Fh1EixgSL1RNGoF tanw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:message-id:date:subject:cc:to:from :dkim-signature; bh=QzDLV0cCeAb+rv+fxj0RGmela1ApQSWzei1cauVEwFA=; b=ZIFY26n8sxL5iZ+EefX+mw/9X/4ctfZSn0KxLpjJ4zfR2y2gxnvqOptAEYdInpziof HYLev0XbyxxZWZQ5zJinO7OJw+P7rkJ6E4qSKBz28ZbpXTv/lENS11SGzC/5LBtyuPG6 mAeDkQoIDm8ZF673TdQxtFoMINpfHFv9K1D7UD4DQNqhssR1gZNZ/LmHpILECOlJ6cDY 6qDRghOBFmbK4aO861SYtbIU5MyKm5oVzvyBFkmFZQ/4asGMcW/8YH5LM4e4vHPdKUpl OXXbxodH6sbyd9fbQxuOI+YM0G5v8ye1vNUyoZp4Q+6XAXCHbI0EgcbZCJwk7T2qZWBG zHqw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=LEVXNTeZ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id hb38-20020a170907162600b006df76385cc3si6386718ejc.355.2022.03.20.04.06.54; Sun, 20 Mar 2022 04:07:44 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=LEVXNTeZ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S242406AbiCSHdP (ORCPT + 99 others); Sat, 19 Mar 2022 03:33:15 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57388 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240305AbiCSHdN (ORCPT ); Sat, 19 Mar 2022 03:33:13 -0400 Received: from mail-pg1-x536.google.com (mail-pg1-x536.google.com [IPv6:2607:f8b0:4864:20::536]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1F47812FF8B for ; Sat, 19 Mar 2022 00:31:53 -0700 (PDT) Received: by mail-pg1-x536.google.com with SMTP id q19so6621219pgm.6 for ; Sat, 19 Mar 2022 00:31:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id; bh=QzDLV0cCeAb+rv+fxj0RGmela1ApQSWzei1cauVEwFA=; b=LEVXNTeZJJ80nn6qVqrPjCAcSkk/56tEmue/nPO2/9UaeSJgvFWzXfIFRecH5iE4E3 WNUnWW2FcXS6nhGW7Qz0yr19v5QN36AmkPB/xP0YyNJFTL/LNX9OXsZHHzfjtXozSPHu 2rmlM7OOZD0bzRcGj+d0TSmQ9xZAMJyPvXgVmivjyNWZARh1l9uca/IA+QVR6Pr21xMw cr/rVjdkDM0PIP5m4rtUTDFQKYWxfqR5424AiBoIC5fmpk0Vw9KJkP0KIV92HQNhSzqI wfuEjNXXHmFnn1SHyvhh+zHf5Mzw3Yvb7j32ptAEfGJbB64TVCqp0RkQFFpJW9yutlW5 66Ug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=QzDLV0cCeAb+rv+fxj0RGmela1ApQSWzei1cauVEwFA=; b=LciCBjkHD2TffFqd++IQfo34h+Y6bKPLGOzYmDLX3GG1rYAdoQMAZ1vBLjJRZLTq9S mVn8/srPLFjB2wf1dZSTBUw1PN9ez4ORRzmGeEZL1E/zpRdG6nRx2RpFTXpZga+O/bEm wRttnt0ef9P88OCTxkUfK02KFAddBuPQhz0qhYRR0G3L+hVApLwIJrZpimVjBY+TnpOQ tuDdlqLQ4ZDeiREMOkcbaJ3blq2v9J1gTPxVC/WZ0x5ISIoKgAG64u7hLcMTeF4SYryB X8lV7Qraw5mLMeSLnvYVz2P3P1v+PYZr1/Dm/v/zOP3LDgOfnQ6sWcwGjLUVwb7qPUar biCg== X-Gm-Message-State: AOAM533cxLWLbyO3S1unOVMdZlioscVBUU5p1gpKXhy71Gb+9cuZSCmH rEujp48rAmEkLdTJScVhdDBgGrk37zNj8g== X-Received: by 2002:a05:6a00:24cd:b0:4f7:2340:a6cf with SMTP id d13-20020a056a0024cd00b004f72340a6cfmr13894631pfv.36.1647675112656; Sat, 19 Mar 2022 00:31:52 -0700 (PDT) Received: from ubuntu.huawei.com ([119.3.119.18]) by smtp.googlemail.com with ESMTPSA id s30-20020a056a001c5e00b004f73f27aa40sm11358882pfw.161.2022.03.19.00.31.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 19 Mar 2022 00:31:52 -0700 (PDT) From: Xiaomeng Tong To: christian.koenig@amd.com, ray.huang@amd.com, airlied@linux.ie, daniel@ffwll.ch Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Xiaomeng Tong Subject: [PATCH] ttm: remove check of list iterator against head outside the loop Date: Sat, 19 Mar 2022 15:31:43 +0800 Message-Id: <20220319073143.30184-1-xiam0nd.tong@gmail.com> X-Mailer: git-send-email 2.17.1 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM, RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org When list_for_each_entry() completes the iteration over the whole list without breaking the loop, the iterator value will be a bogus pointer computed based on the head element. While it is safe to use the pointer to determine if it was computed based on the head element with &pos->member == head, using the iterator variable after the loop should be avoided. In preparation to limiting the scope of a list iterator to the list traversal loop, use a dedicated pointer to point to the found element [1]. Link: https://lore.kernel.org/all/YhdfEIwI4EdtHdym@kroah.com/ Signed-off-by: Xiaomeng Tong --- drivers/gpu/drm/ttm/ttm_bo.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/drivers/gpu/drm/ttm/ttm_bo.c b/drivers/gpu/drm/ttm/ttm_bo.c index db3dc7ef5382..413b5bbf2414 100644 --- a/drivers/gpu/drm/ttm/ttm_bo.c +++ b/drivers/gpu/drm/ttm/ttm_bo.c @@ -673,36 +673,36 @@ int ttm_mem_evict_first(struct ttm_device *bdev, struct ww_acquire_ctx *ticket) { struct ttm_buffer_object *bo = NULL, *busy_bo = NULL; + struct ttm_buffer_object *iter; bool locked = false; unsigned i; int ret; spin_lock(&bdev->lru_lock); for (i = 0; i < TTM_MAX_BO_PRIORITY; ++i) { - list_for_each_entry(bo, &man->lru[i], lru) { + list_for_each_entry(iter, &man->lru[i], lru) { bool busy; - if (!ttm_bo_evict_swapout_allowable(bo, ctx, place, + if (!ttm_bo_evict_swapout_allowable(iter, ctx, place, &locked, &busy)) { if (busy && !busy_bo && ticket != - dma_resv_locking_ctx(bo->base.resv)) - busy_bo = bo; + dma_resv_locking_ctx(iter->base.resv)) + busy_bo = iter; continue; } - if (!ttm_bo_get_unless_zero(bo)) { + if (!ttm_bo_get_unless_zero(iter)) { if (locked) - dma_resv_unlock(bo->base.resv); + dma_resv_unlock(iter->base.resv); continue; } + + bo = iter; break; } - /* If the inner loop terminated early, we have our candidate */ - if (&bo->lru != &man->lru[i]) + if (bo) break; - - bo = NULL; } if (!bo) { -- 2.17.1