From patchwork Tue Jul 14 16:07:30 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Daniel Vetter X-Patchwork-Id: 6788071 Return-Path: X-Original-To: patchwork-intel-gfx@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork1.web.kernel.org (Postfix) with ESMTP id 34A299F3E6 for ; Tue, 14 Jul 2015 16:04:57 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 4F4B9205CB for ; Tue, 14 Jul 2015 16:04:56 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) by mail.kernel.org (Postfix) with ESMTP id 4D1C0205B9 for ; Tue, 14 Jul 2015 16:04:55 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id B350E6E7CB; Tue, 14 Jul 2015 09:04:54 -0700 (PDT) X-Original-To: intel-gfx@lists.freedesktop.org Delivered-To: intel-gfx@lists.freedesktop.org Received: from mail-wi0-f170.google.com (mail-wi0-f170.google.com [209.85.212.170]) by gabe.freedesktop.org (Postfix) with ESMTPS id 2E7A06E7C7 for ; Tue, 14 Jul 2015 09:04:53 -0700 (PDT) Received: by wibud3 with SMTP id ud3so18460728wib.0 for ; Tue, 14 Jul 2015 09:04:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=BFnYf/IVm12UrTcBm/GRu+wVVZuhBKTsF41gzH0tVG8=; b=L3T5AYcuWEvz/Q100M81pzuHy01Y5NRSU7qsItVEelfQxgar6pIUXeGNs5B3i6gLrl 0U5Vs7Gh8sMzJtrH8OnNYABKlEXwCAVSzk/BF7mczacMlTjxKR+aA+lxwUpFwgn6xkwl Irynr9ALvOxuaKmPRWYE17w67H/im/Ih0lrBY= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=BFnYf/IVm12UrTcBm/GRu+wVVZuhBKTsF41gzH0tVG8=; b=JxT2Wea/MupRtV9TSC/SAGXVARksI8Z6qtYEtXY707niOBWk7XJbcP+EI3/2s1OtbO s02LwsdgyBwWEJPbcg+TbivbNPk+hHSL/dgLlw4MV4PKW4gtw70fODyoLiYfu5jntjez DmXr0jEwQTltQPdrMNfK1+qwo4mbpaBNIePpv2nRxnmaP0G8ue+JyPvOCIQw95wqggU8 GD96xxQD8n5TWMNYVFE3Dqf7rLL9JYYIM8cA30mF9I2PY810pQii+ObZuf14OxqWC/DE 2koibyVNtUmfPBPyzuHhgOoHR9Mxig5NcfYbKqlTaxU2DOFRTvyvAfEZRTIVBfOHArYc Zlug== X-Gm-Message-State: ALoCoQmUuxMs0DksTvHM9PTDx2RKErS7Bhbi+GHP6KRtlit65XCCe0eyQk1NsWhuPkUsHP7oZNf6 X-Received: by 10.194.5.103 with SMTP id r7mr77543192wjr.47.1436889891645; Tue, 14 Jul 2015 09:04:51 -0700 (PDT) Received: from phenom.ffwll.local (212-51-149-109.fiber7.init7.net. [212.51.149.109]) by smtp.gmail.com with ESMTPSA id hd6sm21529662wib.19.2015.07.14.09.04.50 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 14 Jul 2015 09:04:50 -0700 (PDT) From: Daniel Vetter To: Intel Graphics Development Date: Tue, 14 Jul 2015 18:07:30 +0200 Message-Id: <1436890050-25438-1-git-send-email-daniel.vetter@ffwll.ch> X-Mailer: git-send-email 2.1.4 In-Reply-To: <1436864371-20518-2-git-send-email-daniel.vetter@ffwll.ch> References: <1436864371-20518-2-git-send-email-daniel.vetter@ffwll.ch> Cc: Daniel Vetter , Daniel Vetter Subject: [Intel-gfx] [PATCH] drm/i915: Use expcitly fixed type in compat32 structs X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" X-Spam-Status: No, score=-5.5 required=5.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_MED,RP_MATCHES_RCVD,T_DKIM_INVALID,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP I was confused shortly whether the compat was needed for the int, until I noticed the pointer in the original. Also remove typedef. v2: Review from Chris. - Add comments. - Also change the int param in the original structure. Cc: Chris Wilson Signed-off-by: Daniel Vetter Reviewed-by: Chris Wilson --- drivers/gpu/drm/i915/i915_ioc32.c | 13 +++++++++---- include/uapi/drm/i915_drm.h | 6 +++++- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/drm/i915/i915_ioc32.c b/drivers/gpu/drm/i915/i915_ioc32.c index 6eec2221b44e..a5a2d5b3f44b 100644 --- a/drivers/gpu/drm/i915/i915_ioc32.c +++ b/drivers/gpu/drm/i915/i915_ioc32.c @@ -35,15 +35,20 @@ #include #include "i915_drv.h" -typedef struct drm_i915_getparam32 { - int param; +struct drm_i915_getparam32 { + s32 param; + /* + * We screwed up the generic ioctl struct here and used a variable-sized + * pointer. Use u32 in the compat struct to match the 32bit pointer + * userspace expects. + */ u32 value; -} drm_i915_getparam32_t; +}; static int compat_i915_getparam(struct file *file, unsigned int cmd, unsigned long arg) { - drm_i915_getparam32_t req32; + struct drm_i915_getparam32 req32; drm_i915_getparam_t __user *request; if (copy_from_user(&req32, (void __user *)arg, sizeof(req32))) diff --git a/include/uapi/drm/i915_drm.h b/include/uapi/drm/i915_drm.h index e7c29f1659ad..192027b4f031 100644 --- a/include/uapi/drm/i915_drm.h +++ b/include/uapi/drm/i915_drm.h @@ -358,7 +358,11 @@ typedef struct drm_i915_irq_wait { #define I915_PARAM_HAS_RESOURCE_STREAMER 36 typedef struct drm_i915_getparam { - int param; + s32 param; + /* + * WARNING: Using pointers instead of fixed-size u64 means we need to write + * compat32 code. Don't repeat this mistake. + */ int __user *value; } drm_i915_getparam_t;