From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756086AbdIGUjO (ORCPT ); Thu, 7 Sep 2017 16:39:14 -0400 Received: from mail-qt0-f179.google.com ([209.85.216.179]:35400 "EHLO mail-qt0-f179.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755725AbdIGUjN (ORCPT ); Thu, 7 Sep 2017 16:39:13 -0400 X-Google-Smtp-Source: AOwi7QD8k+GpJjGkerp3CVsHyzf/TRnfgr4etDwiaDdXSxV4AcSyfKFsfZp/uqTgBDvqSDmrGWJW4g== Date: Thu, 7 Sep 2017 13:39:09 -0700 From: Tejun Heo To: Eric Biggers Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Andrew Morton , Chris Wilson , Dmitry Vyukov , Matthew Wilcox , dri-devel@lists.freedesktop.org, stable@vger.kernel.org Subject: Re: [PATCH] idr: remove WARN_ON_ONCE() when trying to replace negative ID Message-ID: <20170907203909.GV1774378@devbig577.frc2.facebook.com> References: <20170906235306.20534-1-ebiggers3@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20170906235306.20534-1-ebiggers3@gmail.com> User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Sep 06, 2017 at 04:53:06PM -0700, Eric Biggers wrote: > From: Eric Biggers > > IDR only supports non-negative IDs. There used to be a > 'WARN_ON_ONCE(id < 0)' in idr_replace(), but it was intentionally > removed by commit 2e1c9b286765 ("idr: remove WARN_ON_ONCE() on negative > IDs"). Then it was added back by commit 0a835c4f090a ("Reimplement IDR > and IDA using the radix tree"). However it seems that adding it back > was a mistake, given that some users such as drm_gem_handle_delete() > (DRM_IOCTL_GEM_CLOSE) pass in a value from userspace to idr_replace(), > allowing the WARN_ON_ONCE to be triggered. drm_gem_handle_delete() > actually just wants idr_replace() to return an error code if the ID is > not allocated, including in the case where the ID is invalid (negative). Acked-by: Tejun Heo Thanks. -- tejun