Received: by 2002:ac0:a5a6:0:0:0:0:0 with SMTP id m35-v6csp366932imm; Sat, 1 Sep 2018 05:34:17 -0700 (PDT) X-Google-Smtp-Source: ANB0VdZAi7JKAn9perASeptt3p3DKTLGKkRnJKJk0WxjK+eevqDlyRqMYMBlFmwaMP4MxUpZQLOm X-Received: by 2002:a62:d113:: with SMTP id z19-v6mr20428460pfg.98.1535805257864; Sat, 01 Sep 2018 05:34:17 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1535805257; cv=none; d=google.com; s=arc-20160816; b=lsiG6AHfKeg5hdcPeBXwvSi83xtf1+lHGh6MPVOMeLbJb/NV48SjjG5Ft5zf8/ZB1g WWObR9kl5KuB9pQAF8Hbe4kz+JtGf8PUFT0B7VqGUas1K4kFv0iT0Zz+G0VZuNcfz/kQ f6FLVgurGvZ+It6K2lnGj28s9d+zsCMXsrbTuYU/eBHrsl5psE1ziSvf5h3Jt1XbaABP CfqLZp40jBp5weQs5Jzgye2AMuJt3V89x6fUzmbxFfi84K7Vs6Mdi3JCF7cDrtygp1Yx rIjdY4QSAuRX+DITHs6qbBIZlwOhallG0B/1Qdt2BcRzzlVlRBbImW68Coh35vGNzbVa YTPg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:date:subject:user-agent:message-id :references:cc:in-reply-to:from:to:content-transfer-encoding :mime-version:arc-authentication-results; bh=75Hs4htxPIAIk3VyW7mlvwrRbzb503nu53hTpFP6DIk=; b=1J0IjRwAX9TvqjJHumvsBhs0ZvYmZbE/54uR2V7lVgvsiwQjMhtI5iFidYaKVE6BC7 fbn5ITZEdxDnwFtkDQXtz6z4mz1LC0VHcvfc3+/0uwTFRWIe5owqnW2szQ47dKrHBtPi LewJsm1/rnZB7g5TTV7tGATQrKx4y1l0mQfrVavo64QdX3MH/4Cwbp9YvpBQOHZ5CRMw 0+P25Y5KZyp77l/J1IsxvkbN3e+89Vkl2Ag2vuq6NwATM3muwF7tLMj1tNRQRyM8JdVa t9UL1emXa1QR/2Ts+bssbYattYiBQapLxkROhQ6LyNdTkoNp6E6hDcsd0VQhpb5JkOrU dfPQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id h20-v6si11909552pgh.573.2018.09.01.05.34.02; Sat, 01 Sep 2018 05:34:17 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727352AbeIAQoy convert rfc822-to-8bit (ORCPT + 99 others); Sat, 1 Sep 2018 12:44:54 -0400 Received: from mail.fireflyinternet.com ([109.228.58.192]:52917 "EHLO fireflyinternet.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726991AbeIAQoy (ORCPT ); Sat, 1 Sep 2018 12:44:54 -0400 X-Default-Received-SPF: pass (skip=forwardok (res=PASS)) x-ip-name=78.156.65.138; Received: from localhost (unverified [78.156.65.138]) by fireflyinternet.com (Firefly Internet (M1)) with ESMTP (TLS) id 13468153-1500050 for multiple; Sat, 01 Sep 2018 13:32:56 +0100 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8BIT To: Jia-Ju Bai , airlied@linux.ie, gustavo@padovan.org, maarten.lankhorst@linux.intel.com, seanpaul@chromium.org From: Chris Wilson In-Reply-To: <20180901122041.2357-1-baijiaju1990@gmail.com> Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Jia-Ju Bai References: <20180901122041.2357-1-baijiaju1990@gmail.com> Message-ID: <153580517420.12034.2035309606925619207@skylake-alporthouse-com> User-Agent: alot/0.6 Subject: Re: [PATCH] gpu: drm: drm_mm: Fix a sleep-in-atomic-context bug in show_leaks() Date: Sat, 01 Sep 2018 13:32:54 +0100 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Quoting Jia-Ju Bai (2018-09-01 13:20:41) > The driver may sleep with holding a spinlock. > > The function call paths (from bottom to top) in Linux-4.16 are: > > [FUNC] kmalloc(GFP_KERNEL) > drivers/gpu/drm/drm_mm.c, 130: > kmalloc in show_leaks > drivers/gpu/drm/drm_mm.c, 913: > show_leaks in drm_mm_takedown > drivers/gpu/drm/drm_vma_manager.c, 107: > drm_mm_takedown in drm_vma_offset_manager_destroy > drivers/gpu/drm/drm_vma_manager.c, 106: > _raw_write_lock in drm_vma_offset_manager_destroy > > [FUNC] kmalloc(GFP_KERNEL) > drivers/gpu/drm/drm_mm.c, 130: > kmalloc in show_leaks > drivers/gpu/drm/drm_mm.c, 913: > show_leaks in drm_mm_takedown > drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c, 71: > drm_mm_takedown in amdgpu_vram_mgr_fini > drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c, 70: > spin_lock in amdgpu_vram_mgr_fini > > [FUNC] kmalloc(GFP_KERNEL) > drivers/gpu/drm/drm_mm.c, 130: > kmalloc in show_leaks > drivers/gpu/drm/drm_mm.c, 913: > show_leaks in drm_mm_takedown > drivers/gpu/drm/ttm/ttm_bo_manager.c, 128: > drm_mm_takedown in ttm_bo_man_takedown > drivers/gpu/drm/ttm/ttm_bo_manager.c, 126: > spin_lock in ttm_bo_man_takedown > > To fix this bug, GFP_KERNEL is replaced with GFP_ATOMIC. The bug are above, since those spinlocks do not protect the data and imply use-after-free. -Chris