Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp71411imu; Mon, 10 Dec 2018 16:22:12 -0800 (PST) X-Google-Smtp-Source: AFSGD/VxTxPKOXoEmbOfceGD2CgtcKMdvGr1xi/wxUqBmQKSZvYWpcdXr9abT3ZjrIRdPPNWDP4O X-Received: by 2002:a62:1c96:: with SMTP id c144mr14272868pfc.129.1544487732199; Mon, 10 Dec 2018 16:22:12 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1544487732; cv=none; d=google.com; s=arc-20160816; b=WlI6vKScQNoifMNSkzz2S1JpvEU7N9oIHT+NqoutK037qB4fx7HTQjKKX616l6wyPq QBNzR1B8zUJ04V/l3qdUGu1T9M47+OJcRw4OvP5LNDLcnlkj1k2fTvDdMGarH24HfNzQ x0zsmaOMv4WY6p+EpKAV5CNhKGlv71znvE/m8RgjvRYVT+XwZHne9tSzFh1q82bhOiiu M6B+bjkWxp2MtNDtP2Vht0MsSUyQPF/PAjo6x3p87t7Hvv9FbJzMz2SkIcipolvC6OXJ krnx92USXbjrPB7gamHz3SadV2ue1g2KkJgYpFeRGLieIwHAfEmU6fCr7R3qSJJg/14O SAkQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=XZeKzG0rq+OwDUq77h0PCqKPkscSqV9vbz/akwP1/Zc=; b=WxLfe9wp+cJkdiv1qFTJmCW+jPAWUurb7FYXdTmUVKx0Bu+4lfWCEC4IHgwrX7XszN 9jfCBtnO0OB7DSo3YJb1NaEbrniCsnjXx+cSNtRFPztwieqwG2xBnuxA1+vRUJbglnKL kTmQUYNgPJZ9vwa5oo61efW1hbSDVikwBKNFBr3tloidBW0p86r/d7xgB1BliCLTKTVL wVCIZleUwD/JTxWnx/293gm4viQArWsuHXZo++1/G4BceXeYUysFt7LsR011EJwm/3b5 CpL+DrfkWqxyANsyG7NWiaT9LJAsgO5RcqmDIP/Te3nPHqkzoeQAinRcBdaXVjIJccuf UwFg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=S7Gw+k2P; 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; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id x187si11148192pgx.241.2018.12.10.16.21.57; Mon, 10 Dec 2018 16:22:12 -0800 (PST) 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; dkim=pass header.i=@gmail.com header.s=20161025 header.b=S7Gw+k2P; 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; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729073AbeLJXSo (ORCPT + 99 others); Mon, 10 Dec 2018 18:18:44 -0500 Received: from mail-it1-f195.google.com ([209.85.166.195]:56024 "EHLO mail-it1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726841AbeLJXSo (ORCPT ); Mon, 10 Dec 2018 18:18:44 -0500 Received: by mail-it1-f195.google.com with SMTP id o19so670313itg.5 for ; Mon, 10 Dec 2018 15:18:43 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=XZeKzG0rq+OwDUq77h0PCqKPkscSqV9vbz/akwP1/Zc=; b=S7Gw+k2PxLiTsmg+UiS8lBcud7uHqtNnXAuU6LqCQD+VZeKd0UEP7MhS2x6hZ6hKO6 lcjtWKVnvSaoucp4CE58PCoYf249CSySYyiE3WSGa6P6FBYmcVL5kp1LbApMT2YbvWz6 QIxYEHcNXGeomAsN8I4Od1mjqvP9vvoPVygUgdN7L7ZO95DSftNYl5JIET1G38My0IgH 8sIL+o5+lHxe6vypEnqU+QlE8rgXXI0DENjn9IKVocojZcdH86ySiCB4gLbpZy/9LDY6 izqjFqwYtU05KIIlmqnBzcrLm/m9LVy6c2U7uiZbJYHkBRKoug599f4UQ2W3jrmif/RU HoVA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=XZeKzG0rq+OwDUq77h0PCqKPkscSqV9vbz/akwP1/Zc=; b=iorP20EgTXKCl2EyDASQdXnAXbzbI1SVlUALvCQnnQfwx1qEBpO8ZutwGCkrhuSenQ 9I6mM4p0t5UAjNNZfec/n6/rZydF/CZSxKzBLA5LBk9k/jiLCmLws+L44yYSFa0XInuD zHx1bedlv3oniJqhUAwxN5EdmQydXRGP990P941sK/lcCAR8Y4d2ySp+lt3FS4k9FVB0 12PiIvZTqi9YfJb/IhqisFSQdV3uHb5H0xdjmiK+2ap9tE2O72TQHmgHYiNc1MsaZxyl /Cllom+eMeXlgm6JgCacvcrMek42abXoEJ8VIXKmeUFzRnmpvz86/CZZsVZ56uDkLF0e uXDA== X-Gm-Message-State: AA+aEWYbDhCgZKNsj4N/rG9omUlTp+yOYFyRXFfEA7Dq13HwQ/2n53uE Qx+Dn9cPir/KXhDzgd7Xmp6AZQGKpFqE3fR6Ac8= X-Received: by 2002:a02:5618:: with SMTP id o24mr14015831jab.111.1544483922856; Mon, 10 Dec 2018 15:18:42 -0800 (PST) MIME-Version: 1.0 References: <20181210215203.1936171-1-arnd@arndb.de> In-Reply-To: <20181210215203.1936171-1-arnd@arndb.de> From: Oliver Date: Tue, 11 Dec 2018 10:18:31 +1100 Message-ID: Subject: Re: [PATCH] powerpc: eeh_event: convert semaphore to completion To: Arnd Bergmann Cc: Russell Currey , Sam Bobroff , Benjamin Herrenschmidt , Paul Mackerras , Michael Ellerman , aik@ozlabs.ru, linuxppc-dev , Linux Kernel Mailing List Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Dec 11, 2018 at 8:52 AM Arnd Bergmann wrote: > > For this use case, completions and semaphores are equivalent, > but semaphores are an awkward interface that should generally > be avoided, so use the completion instead. IIRC Sam has been reworking the locking used inside of EEH so this is probably going to clash with his changes. Converting to a completion is probably a good idea, but we might want to do it as a part of his series since it's going to collide with this anyway. Sam, what do you think? > > Signed-off-by: Arnd Bergmann > --- > arch/powerpc/kernel/eeh_event.c | 9 +++------ > 1 file changed, 3 insertions(+), 6 deletions(-) > > diff --git a/arch/powerpc/kernel/eeh_event.c b/arch/powerpc/kernel/eeh_event.c > index 61c9356bf9c9..227e57f980df 100644 > --- a/arch/powerpc/kernel/eeh_event.c > +++ b/arch/powerpc/kernel/eeh_event.c > @@ -35,7 +35,7 @@ > */ > > static DEFINE_SPINLOCK(eeh_eventlist_lock); > -static struct semaphore eeh_eventlist_sem; > +static DECLARE_COMPLETION(eeh_eventlist_event); > static LIST_HEAD(eeh_eventlist); > > /** > @@ -55,7 +55,7 @@ static int eeh_event_handler(void * dummy) > struct eeh_pe *pe; > > while (!kthread_should_stop()) { > - if (down_interruptible(&eeh_eventlist_sem)) > + if (wait_for_completion_interruptible(&eeh_eventlist_event)) > break; > > /* Fetch EEH event from the queue */ > @@ -102,9 +102,6 @@ int eeh_event_init(void) > struct task_struct *t; > int ret = 0; > > - /* Initialize semaphore */ > - sema_init(&eeh_eventlist_sem, 0); > - > t = kthread_run(eeh_event_handler, NULL, "eehd"); > if (IS_ERR(t)) { > ret = PTR_ERR(t); > @@ -142,7 +139,7 @@ int eeh_send_failure_event(struct eeh_pe *pe) > spin_unlock_irqrestore(&eeh_eventlist_lock, flags); > > /* For EEH deamon to knick in */ > - up(&eeh_eventlist_sem); > + complete(&eeh_eventlist_event); > > return 0; > } > -- > 2.20.0 >