From patchwork Mon May 7 18:09:46 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sami Tolvanen X-Patchwork-Id: 49367 X-Patchwork-Delegate: hverkuil@xs4all.nl Received: from vger.kernel.org ([209.132.180.67]) by www.linuxtv.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fFkaR-0006Oc-67; Mon, 07 May 2018 18:10:11 +0000 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752660AbeEGSJ5 (ORCPT + 1 other); Mon, 7 May 2018 14:09:57 -0400 Received: from mail-pl0-f65.google.com ([209.85.160.65]:33043 "EHLO mail-pl0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752524AbeEGSJ4 (ORCPT ); Mon, 7 May 2018 14:09:56 -0400 Received: by mail-pl0-f65.google.com with SMTP id w12-v6so209371plp.0 for ; Mon, 07 May 2018 11:09:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=qFglisbUqjCez0mUoADunua3q1V4UaolCE1l93xz1Bk=; b=nYXiD9+ggJB1QpgenyI0deqTgN6Swo9or/usLjMJWaBfXmrIdJAOkqcXwra3KDBt3h iXMprj/8PRogObExWhFtJO43RidDhlsdr6GBLOwq2g5dxHyZRUgFtq+uGXnCBTdB1HW6 7/jfkLaf0IItyY2PO/jAhhnnRtgx/i05bKb0W48N2/8nOfgiainEkkjYysXaS7bPRwCO xjcqJ1YVET0QNdvUx5u8OGibp9eGh7NAsxcXcNHLgXhRWNHuzliUDzabvTCwodr5ysUz 6SuensnG3ZybL5NB/JjHHiUP1BsfhQmcUZjGga13OiZv/fk157ZGeTeLKzn1+mkd8Zuz o28w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=qFglisbUqjCez0mUoADunua3q1V4UaolCE1l93xz1Bk=; b=QReHC/ZdKw8GLp1js54hwZBmP5tBqtNZIy+wqYUT1UT4SJrsusEnICRp89tI7gMJi8 Rg2HOMvGy9lLktNmIqJ70rb7IzM2bYKJhQlUDuL8Du0H/XPdhG/LBnyv7FR3QErT/qvB 4/kzaI8J7OMA0wc8idBH+9s8fjs9ZiU3Mws+MG554qzkQOY3lKbk7RVqvMEU7RGR4K9t 3CNlObkH/+7iHQS3qtJOWybBs/MIGMJqq2omlnWzhauaVH+/1NIH3L8q7JOARTs3Gzdc mvUZz+5ZvtylqLRepfUMyKpH0U/Y+Gj5MN8/fJ7FnzBH8yR4enWTmsq9dToEfbKn9rC9 Uvag== X-Gm-Message-State: ALQs6tAoR5JYzW127KEGCh104M372UgCniOcLlMcsxUhqmAO94M6/R14 jHPD0OtuWUpMMstzYst58Y7PEg== X-Google-Smtp-Source: AB8JxZrVcaesXbBy0UlcMHc0uLcadUYlc9nGZUrI/pDporUITpfbFNAn9mQPrNKKLl1623vdbuO6CA== X-Received: by 2002:a63:6f41:: with SMTP id k62-v6mr30181036pgc.73.1525716595151; Mon, 07 May 2018 11:09:55 -0700 (PDT) Received: from samitolvanen.mtv.corp.google.com ([2620:0:1000:1611:a74b:912:9321:d674]) by smtp.gmail.com with ESMTPSA id x25sm12170375pfn.11.2018.05.07.11.09.54 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 07 May 2018 11:09:54 -0700 (PDT) From: Sami Tolvanen To: Sakari Ailus Cc: Mauro Carvalho Chehab , Kees Cook , linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, Sami Tolvanen Subject: [PATCH v2] media: media-device: fix ioctl function types Date: Mon, 7 May 2018 11:09:46 -0700 Message-Id: <20180507180946.104340-1-samitolvanen@google.com> X-Mailer: git-send-email 2.17.0.441.gb46fe60e1d-goog In-Reply-To: <20180507104509.lq4ep22fm6h53gra@valkosipuli.retiisi.org.uk> References: <20180507104509.lq4ep22fm6h53gra@valkosipuli.retiisi.org.uk> Sender: linux-media-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org This change fixes function types for media device ioctls to avoid indirect call mismatches with Control-Flow Integrity checking. Signed-off-by: Sami Tolvanen Acked-by: Sakari Ailus --- drivers/media/media-device.c | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/drivers/media/media-device.c b/drivers/media/media-device.c index 35e81f7c0d2f1..ae59c31775557 100644 --- a/drivers/media/media-device.c +++ b/drivers/media/media-device.c @@ -54,9 +54,10 @@ static int media_device_close(struct file *filp) return 0; } -static int media_device_get_info(struct media_device *dev, - struct media_device_info *info) +static long media_device_get_info(struct media_device *dev, void *arg) { + struct media_device_info *info = arg; + memset(info, 0, sizeof(*info)); if (dev->driver_name[0]) @@ -93,9 +94,9 @@ static struct media_entity *find_entity(struct media_device *mdev, u32 id) return NULL; } -static long media_device_enum_entities(struct media_device *mdev, - struct media_entity_desc *entd) +static long media_device_enum_entities(struct media_device *mdev, void *arg) { + struct media_entity_desc *entd = arg; struct media_entity *ent; ent = find_entity(mdev, entd->id); @@ -146,9 +147,9 @@ static void media_device_kpad_to_upad(const struct media_pad *kpad, upad->flags = kpad->flags; } -static long media_device_enum_links(struct media_device *mdev, - struct media_links_enum *links) +static long media_device_enum_links(struct media_device *mdev, void *arg) { + struct media_links_enum *links = arg; struct media_entity *entity; entity = find_entity(mdev, links->entity); @@ -195,9 +196,9 @@ static long media_device_enum_links(struct media_device *mdev, return 0; } -static long media_device_setup_link(struct media_device *mdev, - struct media_link_desc *linkd) +static long media_device_setup_link(struct media_device *mdev, void *arg) { + struct media_link_desc *linkd = arg; struct media_link *link = NULL; struct media_entity *source; struct media_entity *sink; @@ -225,9 +226,9 @@ static long media_device_setup_link(struct media_device *mdev, return __media_entity_setup_link(link, linkd->flags); } -static long media_device_get_topology(struct media_device *mdev, - struct media_v2_topology *topo) +static long media_device_get_topology(struct media_device *mdev, void *arg) { + struct media_v2_topology *topo = arg; struct media_entity *entity; struct media_interface *intf; struct media_pad *pad;