From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [RFCv1 08/12] drm: Refactor object property check code Date: Mon, 7 Oct 2013 16:47:48 +0300 Message-ID: <20131007134748.GK9395@intel.com> References: <1381020350-1125-1-git-send-email-robdclark@gmail.com> <1381020350-1125-9-git-send-email-robdclark@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id 9EFC7E7474 for ; Mon, 7 Oct 2013 06:47:53 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1381020350-1125-9-git-send-email-robdclark@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: dri-devel-bounces+sf-dri-devel=m.gmane.org@lists.freedesktop.org Errors-To: dri-devel-bounces+sf-dri-devel=m.gmane.org@lists.freedesktop.org To: Rob Clark Cc: dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org On Sat, Oct 05, 2013 at 08:45:46PM -0400, Rob Clark wrote: > From: Ville Syrj=E4l=E4 > = > Refactor the code to check whether an object has a specific property > to a new function. > = > v1: original > v2: rebase on atomic -- Rob Clark > = > Signed-off-by: Ville Syrj=E4l=E4 > --- > drivers/gpu/drm/drm_crtc.c | 25 ++++++++++++++----------- > 1 file changed, 14 insertions(+), 11 deletions(-) > = > diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c > index c0546e8..776edf3 100644 > --- a/drivers/gpu/drm/drm_crtc.c > +++ b/drivers/gpu/drm/drm_crtc.c > @@ -3374,6 +3374,19 @@ static int drm_mode_set_obj_prop(struct drm_mode_o= bject *obj, > return -EINVAL; > } > = > +static bool object_has_prop(const struct drm_mode_object *obj, u32 prop_= id) > +{ > + int i; > + > + if (!obj->properties) > + return false; > + > + for (i =3D 0; i < obj->properties->count; i++) > + if (obj->properties->ids[i] =3D=3D prop_id) > + return true; > + return false; > +} > + > /* call with mode_config mutex held */ > static int drm_mode_set_obj_prop_id(struct drm_device *dev, void *state, > uint32_t obj_id, uint32_t obj_type, > @@ -3382,19 +3395,9 @@ static int drm_mode_set_obj_prop_id(struct drm_dev= ice *dev, void *state, > struct drm_mode_object *arg_obj; > struct drm_mode_object *prop_obj; > struct drm_property *property; > - int i; > = > arg_obj =3D drm_mode_object_find(dev, obj_id, obj_type); > - if (!arg_obj) > - return -EINVAL; > - if (!arg_obj->properties) > - return -EINVAL; > - > - for (i =3D 0; i < arg_obj->properties->count; i++) > - if (arg_obj->properties->ids[i] =3D=3D prop_id) > - break; > - > - if (i =3D=3D arg_obj->properties->count) > + if (!(arg_obj && object_has_prop(arg_obj, prop_id))) > return -EINVAL; -ENOENT would actually seem more appropriate here. > = > prop_obj =3D drm_mode_object_find(dev, prop_id, > -- = > 1.8.3.1 -- = Ville Syrj=E4l=E4 Intel OTC