Received: by 2002:a25:f815:0:0:0:0:0 with SMTP id u21csp2083960ybd; Mon, 24 Jun 2019 00:05:40 -0700 (PDT) X-Google-Smtp-Source: APXvYqwVkdnTwpGP8TvpFykZ5zN/g+YWJS+mLwvsGZjDOwCazxuJGX/ubUjFeLitd40vLnL46CYD X-Received: by 2002:a17:90a:1d8:: with SMTP id 24mr23420892pjd.70.1561359940722; Mon, 24 Jun 2019 00:05:40 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1561359940; cv=none; d=google.com; s=arc-20160816; b=M0c4iFROmp82t91ee9x8WeRr+3qYFV6JJfo1hCtj4sDQ/sMZGeqTuTH73OR6OTUMph ikgjiznt0bbRR6BuRSRD2Q11OEZgP9YEAMpEZe8haSSyR5wov5sCM4Z63vqbUmnKrDv2 j94fBM5iUXueMNw/NZaLdavdQFGvsBSZfD7dYnjj9y4F1W1we65fL38QxwMgO/sksV3J +7b3CPtSuHWFJx7cFnI358EuFLqH9nmMJ7dp1zQWstVfI5uwQMiUuzxKSA4hM0h1SBo0 jwNyuwc/08HZmwdgpkXh93SQs70yO4iJuAIND1b+WfwHE3Q0RIz4UrWkxaGVhFFLFe5e Oa5w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date; bh=5cVbtLLnGDTIQkvCx/7wIyyIfRdBB0rtESu8su79aFA=; b=D6Odp+sz8kKEtvjASRGXWxs048cI8nE9ZJ6KQ4UDS7JZtLvwBmXqyhYmogqm9dQCLE G8Zj/zQ5vnt9suZyUUWEFNJ5/eXbp880gkfB0dMXZ7P1tVb5Y4VCXg3sFBj3MEmdgUu5 X2CT0E6LKC8B+4hY1jotqQtsIt49wUVRFEgymg4KZcMKkTKBgE/d3E5hROT/hIJj13BQ 5itcURMmDPzM2WiJxPQ4sCpYLXzkFgPeDW4NO8qT6W5LcnSqhW7899p+4Kjdk5xiy5tE FZ9mN/HTVQmsuY15lYnm6xQdB3HRzUE2+c9YSJN981n1HOyLBEcnE7GyEMUsuTBa8lqr zeug== 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 cx20si10225719pjb.97.2019.06.24.00.04.56; Mon, 24 Jun 2019 00:05:40 -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 S1726534AbfFXGpD (ORCPT + 99 others); Mon, 24 Jun 2019 02:45:03 -0400 Received: from 178.115.242.59.static.drei.at ([178.115.242.59]:43903 "EHLO mail.osadl.at" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725267AbfFXGpD (ORCPT ); Mon, 24 Jun 2019 02:45:03 -0400 X-Greylist: delayed 389 seconds by postgrey-1.27 at vger.kernel.org; Mon, 24 Jun 2019 02:45:02 EDT Received: by mail.osadl.at (Postfix, from userid 1001) id C37BB5C02F0; Mon, 24 Jun 2019 08:37:18 +0200 (CEST) Date: Mon, 24 Jun 2019 08:37:18 +0200 From: Nicholas Mc Guire To: Christophe JAILLET Cc: eric@anholt.net, stefan.wahren@i2se.com, gregkh@linuxfoundation.org, f.fainelli@gmail.com, rjui@broadcom.com, sbranden@broadcom.com, bcm-kernel-feedback-list@broadcom.com, tuomas.tynkkynen@iki.fi, inf.braun@fau.de, tobias.buettner@fau.de, hofrat@osadl.org, linux-rpi-kernel@lists.infradead.org, linux-arm-kernel@lists.infradead.org, devel@driverdev.osuosl.org, linux-kernel@vger.kernel.org, kernel-janitors@vger.kernel.org Subject: Re: [PATCH] staging: bcm2835-camera: Avoid apotential sleep while holding a spin_lock Message-ID: <20190624063718.GD31913@osadl.at> References: <20190624053351.5217-1-christophe.jaillet@wanadoo.fr> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20190624053351.5217-1-christophe.jaillet@wanadoo.fr> User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Jun 24, 2019 at 07:33:51AM +0200, Christophe JAILLET wrote: > Do not allocate memory with GFP_KERNEL when holding a spin_lock, it may > sleep. Use GFP_NOWAIT instead. > checking for this in the rest of the kernel with a cocci spatch virtual report @nonatomic@ position p; identifier var; @@ spin_lock(...) ... when != spin_unlock(...) * var = idr_alloc@p(...,GFP_KERNEL); ... when != spin_unlock(...) spin_unlock(...); this seems to be the only instance of this specific problem. > Fixes: 950fd867c635 ("staging: bcm2835-camera: Replace open-coded idr with a struct idr.") The GFP_KERNEL actually was there befor this patch so not sure if this Fixes ref is correct - I think the GFP_KERNEL was introduced in: 4e6bafdfb9f3 ("staging: bcm2835_camera: Use a mapping table for context field of mmal_msg_header") > Signed-off-by: Christophe JAILLET Reviewed-by: Nicholas Mc Guire > --- > drivers/staging/vc04_services/bcm2835-camera/mmal-vchiq.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/staging/vc04_services/bcm2835-camera/mmal-vchiq.c b/drivers/staging/vc04_services/bcm2835-camera/mmal-vchiq.c > index 16af735af5c3..438d548c6e24 100644 > --- a/drivers/staging/vc04_services/bcm2835-camera/mmal-vchiq.c > +++ b/drivers/staging/vc04_services/bcm2835-camera/mmal-vchiq.c > @@ -186,7 +186,7 @@ get_msg_context(struct vchiq_mmal_instance *instance) > */ > spin_lock(&instance->context_map_lock); > handle = idr_alloc(&instance->context_map, msg_context, > - 0, 0, GFP_KERNEL); > + 0, 0, GFP_NOWAIT); > spin_unlock(&instance->context_map_lock); > > if (handle < 0) { > -- > 2.20.1 >