Received: by 10.223.185.116 with SMTP id b49csp3504167wrg; Mon, 5 Mar 2018 23:34:48 -0800 (PST) X-Google-Smtp-Source: AG47ELukCRt6NG6KqvvQmIZuK1MnRIqzZXp0nDZTV0zg2HbkSJAZW6gu+nE1zMZb9fEmczWqZt/1 X-Received: by 2002:a17:902:aa83:: with SMTP id d3-v6mr15713413plr.36.1520321688091; Mon, 05 Mar 2018 23:34:48 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1520321688; cv=none; d=google.com; s=arc-20160816; b=TwC14iOqXLNYGlsw5Ee0QkSBssjE0x96dD9almOJoJhThmq5DMWfK+0KgFW2qd3y+J cJJ9qCdJARVwhKqqWhhReDf6+Tfq4ndK3sMCtUzZZa+894xMXg2HPchqnLZlrJMoL8cJ stNTXMsBOZ78CqEz9mSORLOG1+VXFadWd+oNb6IT/T55XBRPQLDVW3QZoBv24FKn+LuP S/jPug5+enX8zxzXjM0rS+Jepec5c6ctFURwGI9/tjDjzsXiKN/XU370oJcowUD3ZMdk rwKc1N2JAKTIOsdFWDj/B0vLAKh0KKWI6WQYNrDxWcL1o5h5Gg7TG1iou2mht/MXgYRh Jd1A== 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:mail-followup-to :message-id:subject:cc:to:from:date:dkim-signature :arc-authentication-results; bh=gyU5KzZc1t/4PMD1d85gA3mgNY/4jqjvWi5A4w3TwIM=; b=Ro+2gVjlsDKzqAVMa+CbLeeR6+84y5hLSUh3gVJ+T8mdljcxt0qTG42LAJFkzDMnsw WsXaDJXwQHuMqfWHDr1TiIqdV0v/ai/5VwrBxoyyHMe/BkCO6xR42bD7tgvE47QEZtue XBgPVtkqGKfLLcG4ellJMq/hW/cyRPiLiH9BRtDZF1yGd8fs91Yf2vdVA+zMXHHe5ebz nKvI16cQjt0cI9PpNxyxh3lNQff8y76sdtklaXfBBzjUrJkNyzS8jY/9YhN5ItBNKx6D HhQNmlba6aSBv8sO8ioEd5JefPLeVR5hT7GE1ag5UQbRNW1rQUsOICkAVHykZLHeKnfL B23w== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@ffwll.ch header.s=google header.b=Y9g/Khpx; 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 s70si9498612pgc.244.2018.03.05.23.34.32; Mon, 05 Mar 2018 23:34:48 -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=fail header.i=@ffwll.ch header.s=google header.b=Y9g/Khpx; 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 S1750864AbeCFHdj (ORCPT + 99 others); Tue, 6 Mar 2018 02:33:39 -0500 Received: from mail-wm0-f66.google.com ([74.125.82.66]:39951 "EHLO mail-wm0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750769AbeCFHdh (ORCPT ); Tue, 6 Mar 2018 02:33:37 -0500 Received: by mail-wm0-f66.google.com with SMTP id t6so20270529wmt.5 for ; Mon, 05 Mar 2018 23:33:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=sender:date:from:to:cc:subject:message-id:mail-followup-to :references:mime-version:content-disposition:in-reply-to:user-agent; bh=gyU5KzZc1t/4PMD1d85gA3mgNY/4jqjvWi5A4w3TwIM=; b=Y9g/KhpxKiudb3Wtc1KziTj8AEyc0YKBFjdRpnanjdb4agLHcSYgWv6MjoJ7h/lyr3 NpWK0lJ8GSxICbURvkxB5rdzhbiRU2/XGLqMt6z+2hPkI/Sy53GjdnCclZ0Ms+KKFksu H0Aq/6b/3ClU9NPoe8QtkKGzJFa0sQsCcFKxU= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:date:from:to:cc:subject:message-id :mail-followup-to:references:mime-version:content-disposition :in-reply-to:user-agent; bh=gyU5KzZc1t/4PMD1d85gA3mgNY/4jqjvWi5A4w3TwIM=; b=CevlHXLM+mau3n8x3JrDzBFoReuTTEtvOqi9t1hchkMTuaI45SxOB9gBhSEtxRAcj4 mfg+edmlv6ZowvPPJoOQXdNNmOf3WN8l3RIbixOGngEitLJ60u0kf/zEPPNWDoH1Vy3L cEEr88R0/+pIyNunOjJ4QjzJ8mAxP8qfUIaBy+kNBMYeXZf1mzFr8MjYAtOsw+FHpW9T 33OynQtAJjXthj3Hmy2poZixIDCBC1Q6RDXmO5c1GzSFwH2jjwB6tTKjCTEVlKLJNqso YQY6qSxS7inY9vazAD8Cn46Q2t8i444xBUp7zd8h4cvAgxYWPdvOriCZMwZ5Fc88MCP9 Q1wg== X-Gm-Message-State: AElRT7GlAiztLZWQwt1MRJ+6IwS9uxLU3cdl7s7gNOqNDIaTgjwSFSfI HXOCEgl+FwO6l3ymyxgqKG3PbPx8 X-Received: by 10.80.144.5 with SMTP id b5mr12539080eda.118.1520321616087; Mon, 05 Mar 2018 23:33:36 -0800 (PST) Received: from phenom.ffwll.local ([2a02:168:5635:0:39d2:f87e:2033:9f6]) by smtp.gmail.com with ESMTPSA id p26sm12139631edm.41.2018.03.05.23.33.35 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Mon, 05 Mar 2018 23:33:35 -0800 (PST) Date: Tue, 6 Mar 2018 08:33:33 +0100 From: Daniel Vetter To: Rob Clark Cc: dri-devel@lists.freedesktop.org, David Airlie , linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH 1/4] drm/atomic: integrate modeset lock with private objects Message-ID: <20180306073333.GS22212@phenom.ffwll.local> Mail-Followup-To: Rob Clark , dri-devel@lists.freedesktop.org, David Airlie , linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org References: <20180221143730.30285-1-robdclark@gmail.com> <20180221143730.30285-2-robdclark@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20180221143730.30285-2-robdclark@gmail.com> X-Operating-System: Linux phenom 4.14.0-3-amd64 User-Agent: Mutt/1.9.3 (2018-01-21) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Feb 21, 2018 at 09:37:21AM -0500, Rob Clark wrote: > Follow the same pattern of locking as with other state objects. This > avoids boilerplate in the driver. > > Signed-off-by: Rob Clark Please also adjust the kernel doc, and I think we can remove the locking WARN_ON in drm_atomic_get_mst_topology_state after this patch (plus again adjust the kerneldoc for that please). Otherwise I think this makes sense, and ecnourages reasonable semantics for driver private state objects. -Daniel > --- > drivers/gpu/drm/drm_atomic.c | 9 ++++++++- > include/drm/drm_atomic.h | 5 +++++ > 2 files changed, 13 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c > index fc8c4da409ff..004e621ab307 100644 > --- a/drivers/gpu/drm/drm_atomic.c > +++ b/drivers/gpu/drm/drm_atomic.c > @@ -1078,6 +1078,8 @@ drm_atomic_private_obj_init(struct drm_private_obj *obj, > { > memset(obj, 0, sizeof(*obj)); > > + drm_modeset_lock_init(&obj->lock); > + > obj->state = state; > obj->funcs = funcs; > } > @@ -1093,6 +1095,7 @@ void > drm_atomic_private_obj_fini(struct drm_private_obj *obj) > { > obj->funcs->atomic_destroy_state(obj, obj->state); > + drm_modeset_lock_fini(&obj->lock); > } > EXPORT_SYMBOL(drm_atomic_private_obj_fini); > > @@ -1113,7 +1116,7 @@ struct drm_private_state * > drm_atomic_get_private_obj_state(struct drm_atomic_state *state, > struct drm_private_obj *obj) > { > - int index, num_objs, i; > + int index, num_objs, i, ret; > size_t size; > struct __drm_private_objs_state *arr; > struct drm_private_state *obj_state; > @@ -1122,6 +1125,10 @@ drm_atomic_get_private_obj_state(struct drm_atomic_state *state, > if (obj == state->private_objs[i].ptr) > return state->private_objs[i].state; > > + ret = drm_modeset_lock(&obj->lock, state->acquire_ctx); > + if (ret) > + return ERR_PTR(ret); > + > num_objs = state->num_private_objs + 1; > size = sizeof(*state->private_objs) * num_objs; > arr = krealloc(state->private_objs, size, GFP_KERNEL); > diff --git a/include/drm/drm_atomic.h b/include/drm/drm_atomic.h > index 09076a625637..9ae53b73c9d2 100644 > --- a/include/drm/drm_atomic.h > +++ b/include/drm/drm_atomic.h > @@ -218,6 +218,11 @@ struct drm_private_state_funcs { > * &drm_modeset_lock is required to duplicate and update this object's state. > */ > struct drm_private_obj { > + /** > + * @lock: Modeset lock to protect the state object. > + */ > + struct drm_modeset_lock lock; > + > /** > * @state: Current atomic state for this driver private object. > */ > -- > 2.14.3 > > _______________________________________________ > dri-devel mailing list > dri-devel@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/dri-devel -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch