Received: by 2002:ab2:6857:0:b0:1ef:ffd0:ce49 with SMTP id l23csp2387825lqp; Sun, 24 Mar 2024 17:11:59 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCWz1bUGdABHFZOoez5+4w/HR8QF4ySHTwFi2mof/515tOxNouZxROh17FzK6Y75+qNEd2de248ZzcfSWQTIMkpAlL4/KH0G08+nwNzKbA== X-Google-Smtp-Source: AGHT+IEpg1ZcPlvVHrr8bSqVK3cwpbCFWauL8lfuHNKLo9pNn4DHYcwY5m+wSDRyJp8yiU2YcJ70 X-Received: by 2002:a17:907:9722:b0:a47:48d7:d393 with SMTP id jg34-20020a170907972200b00a4748d7d393mr4394086ejc.33.1711325519209; Sun, 24 Mar 2024 17:11:59 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1711325519; cv=pass; d=google.com; s=arc-20160816; b=ge1eTEH54rvZ5QE4hdW2L8V9CAaA8780yw02csAB2Yb676G8SD7TjAtgYBs72haJ1H +tZ4s1ax4Nd6O/Zuws2y40P0rYrsswHgjuvyJFuK0HT5B4J0g97TJ+zebbXatPWADo+9 UbqcJscEfpZdzmvPhtn9yp8+RzJJwQabYvHUcx59pPm5GaXWneOs0X5mpPbNzYULzZUY ZjhUGm/hZKUrolBtmRIHlguQnmieZBW9R5YmGHNmKuNMlz52aH8W39QKBztZaAJLrcEL tKfqRDTOQrnB0Fbc3btNWxhOVuCSJEHQBblFkF/O2Zzi19A9eu4TnY3V/hATA9qLcaN0 xRcg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=xqzBWAbrBtsVYZRsIqEGXBAeJ0wUHgyKgMwX6YsFyN0=; fh=lOyx5AzavUiVcpxmMVfcSQxzdUcu4fk1ggU5J5TNGiA=; b=Ni5Kec5syidfpZDSXiCHfemHSDBb7HMvLb6N2wAoJIPQneAVFnZymroRX2y60GS3Y4 7wCupkqRAA0AZm30HqpUx5ZTCinuGyOEb9ocBu3na/8x3imOe042my/Fc5LsiyUYI/Gk QTVwfS/LW71EJQkYrho6lHqOY+bHpSCfQttA2F7+RwZo5l5U+qsOXi0eIPfDYcqWukuF Wbnn2h4L4UVhM6zeIvp1wOcfmdan0SETq1NpH80/5uwnmDYEYIJph8Qt1g5Un1Gl46e5 HEggELxc+zVY5png8nOrFEpVU/d+qsvwDktLdVMw9A9frOKUnOQV2XdkIgaQI2iGHKd5 Zybw==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=PBu56VIi; arc=pass (i=1 dkim=pass dkdomain=kernel.org); spf=pass (google.com: domain of linux-kernel+bounces-113333-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) smtp.mailfrom="linux-kernel+bounces-113333-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from am.mirrors.kernel.org (am.mirrors.kernel.org. [147.75.80.249]) by mx.google.com with ESMTPS id sh19-20020a1709076e9300b00a4747432905si1621817ejc.258.2024.03.24.17.11.59 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 24 Mar 2024 17:11:59 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-113333-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) client-ip=147.75.80.249; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=PBu56VIi; arc=pass (i=1 dkim=pass dkdomain=kernel.org); spf=pass (google.com: domain of linux-kernel+bounces-113333-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) smtp.mailfrom="linux-kernel+bounces-113333-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by am.mirrors.kernel.org (Postfix) with ESMTPS id 4D24D1F22021 for ; Mon, 25 Mar 2024 00:11:57 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 505C0196DFB; Sun, 24 Mar 2024 22:42:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="PBu56VIi" Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 547A86D1A8; Sun, 24 Mar 2024 22:42:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320134; cv=none; b=BHjsgYR0QGKj+jubkMu5Yi6GPz79+wxF+buu7xJ2+JVSe9TBlNDZtwEBFQourEN1SQfYzh/pg1SXAPXbY8LmrHque94rGDZJhyGBbbDzkswqvv33OqbSiyrmcaX0dF2N9XOtI/8tXQYk4ut8ClkQ1WQUNnJQimFVyAAKzuIqtM8= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320134; c=relaxed/simple; bh=yYTK3GBeBJ6pb6nFTxDchYYPTvh21mQVFBwD5goDuPQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=nk8F58cYpALXEYAbdvIpMgX2cspm1rh1oXvP2VRmHmsdL5Vy6Ybpt5HcuzrBPw8vsdg1uow5ehdDjMtbouP+z0QtxvdayuWb1298vKFd1Rp1N8BLNKJ2Uhwg29BThACoU9t8xthq7ot/NkTeSXwbwohwmCQfOu76lBWYWiWaXZY= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=PBu56VIi; arc=none smtp.client-ip=10.30.226.201 Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8D902C43399; Sun, 24 Mar 2024 22:42:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320134; bh=yYTK3GBeBJ6pb6nFTxDchYYPTvh21mQVFBwD5goDuPQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=PBu56VIiTtw4NGvWbLAPbcCnWmtkJkL4ELezcR2FXnd4I2ycPGXoahy438MVmLQ8l YHOGXSgVfmKtK5+ukP8BEM50mIoqrY7p73HPVGeTln9i53NxZxN4SiImqrvzKIU0fN LxkRvmuRjIE0xbev7ZzqeVNiBMyszaHR7F50Pn6YiDZkhj7SYALZre5yd/hrGysZQl LxWs8GJ4j19eh1R8UoyORyJBwer9M4BFr/pBcxEU19StWd/Ev2UkHFQSEvSfF8f+hT 1T9pEIHGr2Tbk/2PWXxXvXpuEqr3qG/7spqdWFfv5U2vE5GlVDfGI2hZtb145jhQYB /w9bzcXJOx4fg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Arnd Bergmann , Hans Verkuil , Sasha Levin Subject: [PATCH 6.8 442/715] media: pvrusb2: fix pvr2_stream_callback casts Date: Sun, 24 Mar 2024 18:30:21 -0400 Message-ID: <20240324223455.1342824-443-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324223455.1342824-1-sashal@kernel.org> References: <20240324223455.1342824-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: 8bit From: Arnd Bergmann [ Upstream commit 30baa4a96b23add91a87305baaeba82c4e109e1f ] clang-16 complains about a control flow integrity (KCFI) issue in pvrusb2, which casts three different prototypes into pvr2_stream_callback: drivers/media/usb/pvrusb2/pvrusb2-v4l2.c:1070:30: error: cast from 'void (*)(struct pvr2_v4l2_fh *)' to 'pvr2_stream_callback' (aka 'void (*)(void *)') converts to incompatible function type [-Werror,-Wcast-function-type-strict] 1070 | pvr2_stream_set_callback(sp,(pvr2_stream_callback)pvr2_v4l2_notify,fh); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/media/usb/pvrusb2/pvrusb2-context.c:110:6: error: cast from 'void (*)(struct pvr2_context *)' to 'void (*)(void *)' converts to incompatible function type [-Werror,-Wcast-function-type-strict] 110 | (void (*)(void *))pvr2_context_notify, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/media/usb/pvrusb2/pvrusb2-dvb.c:152:6: error: cast from 'void (*)(struct pvr2_dvb_adapter *)' to 'pvr2_stream_callback' (aka 'void (*)(void *)') converts to incompatible function type [-Werror,-Wcast-function-type-strict] 152 | (pvr2_stream_callback) pvr2_dvb_notify, adap); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Change the functions to actually take a void* argument so the cast is no longer needed. Fixes: bb8ce9d9143c ("V4L/DVB (7682): pvrusb2-dvb: finish up stream & buffer handling") Signed-off-by: Arnd Bergmann Signed-off-by: Hans Verkuil Signed-off-by: Sasha Levin --- drivers/media/usb/pvrusb2/pvrusb2-context.c | 8 ++++---- drivers/media/usb/pvrusb2/pvrusb2-dvb.c | 6 ++++-- drivers/media/usb/pvrusb2/pvrusb2-v4l2.c | 6 ++++-- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/drivers/media/usb/pvrusb2/pvrusb2-context.c b/drivers/media/usb/pvrusb2/pvrusb2-context.c index 1764674de98bc..58f2f3ff10ee2 100644 --- a/drivers/media/usb/pvrusb2/pvrusb2-context.c +++ b/drivers/media/usb/pvrusb2/pvrusb2-context.c @@ -90,8 +90,10 @@ static void pvr2_context_destroy(struct pvr2_context *mp) } -static void pvr2_context_notify(struct pvr2_context *mp) +static void pvr2_context_notify(void *ptr) { + struct pvr2_context *mp = ptr; + pvr2_context_set_notify(mp,!0); } @@ -106,9 +108,7 @@ static void pvr2_context_check(struct pvr2_context *mp) pvr2_trace(PVR2_TRACE_CTXT, "pvr2_context %p (initialize)", mp); /* Finish hardware initialization */ - if (pvr2_hdw_initialize(mp->hdw, - (void (*)(void *))pvr2_context_notify, - mp)) { + if (pvr2_hdw_initialize(mp->hdw, pvr2_context_notify, mp)) { mp->video_stream.stream = pvr2_hdw_get_video_stream(mp->hdw); /* Trigger interface initialization. By doing this diff --git a/drivers/media/usb/pvrusb2/pvrusb2-dvb.c b/drivers/media/usb/pvrusb2/pvrusb2-dvb.c index 26811efe0fb58..9a9bae21c6147 100644 --- a/drivers/media/usb/pvrusb2/pvrusb2-dvb.c +++ b/drivers/media/usb/pvrusb2/pvrusb2-dvb.c @@ -88,8 +88,10 @@ static int pvr2_dvb_feed_thread(void *data) return stat; } -static void pvr2_dvb_notify(struct pvr2_dvb_adapter *adap) +static void pvr2_dvb_notify(void *ptr) { + struct pvr2_dvb_adapter *adap = ptr; + wake_up(&adap->buffer_wait_data); } @@ -149,7 +151,7 @@ static int pvr2_dvb_stream_do_start(struct pvr2_dvb_adapter *adap) } pvr2_stream_set_callback(pvr->video_stream.stream, - (pvr2_stream_callback) pvr2_dvb_notify, adap); + pvr2_dvb_notify, adap); ret = pvr2_stream_set_buffer_count(stream, PVR2_DVB_BUFFER_COUNT); if (ret < 0) return ret; diff --git a/drivers/media/usb/pvrusb2/pvrusb2-v4l2.c b/drivers/media/usb/pvrusb2/pvrusb2-v4l2.c index d195bd6a2248b..d608b793fa847 100644 --- a/drivers/media/usb/pvrusb2/pvrusb2-v4l2.c +++ b/drivers/media/usb/pvrusb2/pvrusb2-v4l2.c @@ -1033,8 +1033,10 @@ static int pvr2_v4l2_open(struct file *file) } -static void pvr2_v4l2_notify(struct pvr2_v4l2_fh *fhp) +static void pvr2_v4l2_notify(void *ptr) { + struct pvr2_v4l2_fh *fhp = ptr; + wake_up(&fhp->wait_data); } @@ -1067,7 +1069,7 @@ static int pvr2_v4l2_iosetup(struct pvr2_v4l2_fh *fh) hdw = fh->channel.mc_head->hdw; sp = fh->pdi->stream->stream; - pvr2_stream_set_callback(sp,(pvr2_stream_callback)pvr2_v4l2_notify,fh); + pvr2_stream_set_callback(sp, pvr2_v4l2_notify, fh); pvr2_hdw_set_stream_type(hdw,fh->pdi->config); if ((ret = pvr2_hdw_set_streaming(hdw,!0)) < 0) return ret; return pvr2_ioread_set_enabled(fh->rhp,!0); -- 2.43.0