From nobody Mon Jun 15 06:29:31 2026 Received: from mail-ed1-f44.google.com (mail-ed1-f44.google.com [209.85.208.44]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 06A9E27CCE0 for ; Wed, 8 Apr 2026 13:46:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775656008; cv=none; b=YDkZ5QvEYEMnKHYSXTSZmCc1mZs0yGj6iI5soWsiGGH/B6dvNf5gqkoz2Pk6ntLp8ZpxzXiSAAe/G+Gm+zsBNdWE2Owal8Zn5XOVs7pYX6VtxrHaO9VGzGD2+7QC7v/0gIA6LmVaIMu44LiiyETMuD/BHczgJGphtoaQWYZ+q+8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775656008; c=relaxed/simple; bh=jl7Cuyt34o0NcWX8WaIo6AQwpEqbpJ4o5N6K1DX5ndI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=hEyFpZ1ySeXe2w5LFj6iLBY9mRSGZZLKdHz2cTGzUtVqYgRQjtjqSCVNKr6o0jsvd43ituPoqnHhKwqE6EmG+2y3ct98rf7UQgE0n5Tae3XmIjV/QklnPGRi6uom3VNnq5mCQsqRNitb/K0SKzvNVhfihXI6O9NlxIb2NBg7TWA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=aVKWwFmt; arc=none smtp.client-ip=209.85.208.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="aVKWwFmt" Received: by mail-ed1-f44.google.com with SMTP id 4fb4d7f45d1cf-66f3093a9c7so4285291a12.0 for ; Wed, 08 Apr 2026 06:46:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1775656003; x=1776260803; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=DUmfkfwX20TMwPCgedZQDhcOhsvVso9IX2Cpow+Wj6Q=; b=aVKWwFmtZKRgfcAEOBPyXWwyJhJ6lctFKmVEeqz/MG7BPoabBRZd7sSaAOIWCnLS0r r97yJVdObja8FFsx0Snzv9G/jCne0kr+AYTOTp11NtnNubXXSbW7/2F1ksHybHooHTyi yG6q8wwL45TV6rrmAJJ0cHYsILSTE3vfME6Qe4hkXXGLMvgUVdm70AxgFnyu21Xqo6xn 6vPYI3/RWLRVjeuSV6+z+PsoB6KZ/3pbr4OnwClWIL0T4VvARh13kUf75Z12FJjX1501 CFpl9tjO3w4pkGx4q0GkR+2/GeKCnEgFVAN6A3DWLf95taIqryCuSMO+EhFyj/Rk+fuJ TK1w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775656003; x=1776260803; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=DUmfkfwX20TMwPCgedZQDhcOhsvVso9IX2Cpow+Wj6Q=; b=K95LarPTk7HtlQ+wSdNDvVsTVGoZBYrFzX4Qmog4Npuj2MIV5D0fjxhJXi/u23AmBb Spc1UmsGdcwzuZC2fAOQjsTY2AGdKbxkWApL0o5bAwhIP8bIYN64kXz4OFc4Qbq8E0W9 xz4eJ4h59O7D9hgaV4OwgiEeI4E7gXeV5k0GpHT39y88vNpL8WBGyd7REpBo+GlIN/Ys Br89J6dH8LEJ7H+E2BBv4H2wvRZwRpsuP0iS4MODDqpPhaYiMF9XKF3FsDjmMkCvGVXX rXOVs6Xcg6x2lmbUlAnAEmLPiZoUy+3S8Ii0P56gqCKbGhLW9ztmJ64mZ5gE9vn+Inz4 dQiQ== X-Gm-Message-State: AOJu0Yz0dfP5oD+YCHm5EMie6c4Cc30Hvsyvr/zNQcfKnhqk6gjOE0Vx gz3K8wMRQ1+dJ+JdSHy2TFJX4JhHKKjY+gnFfdzfErljQIWpMjomRetvC9sPa3mJnYg= X-Gm-Gg: AeBDieuSoBuhx20wEJFE53PH+q6ZAo72xN2LhbzgGDrvC7tG5YKKDoE7zUygnHyvKIk 0kB+lIZFuDcji6bK0cFghY9rYgnOT/+6lfAXD3KN8BU3H/jODqbKRKdIYNiv8cFJH3LN65jOFnY hRC5nqKzfdXuGXeshdC++Q8BfbT0dlIbsgmWYzPtAIvbnJZUysMdF1IycxxSZVBHh8rSS5NQ+mn BZJmpFj8pzUaHYP/3QqXi15XcJp13G42wrSmOdQ3wgkQ3m964KaD3rc6K+gF6FparoujKwoTakw AhCx28fv5YBhPhRC/snF5OsA6l+TLrBCm3cnffdx+zd7zsuPNVwZIOUe97/OLHLOEQC7L0DpEGD wilqq0GvtSeXdlgsaID6ULkQjPD9l63Xbchh7FrRBlhssctctIAuaSQf5HIfACPuXTlXGc/scq2 WAr/aW9qstbbHnjwhk2sJefQtye4imYeLaveWBZ8JT4QYVIukmeAh/NIr51vReQ2sc/FcSWYpNK F4ihrmouJoCdu7QJip4TnLX7wM3EHINjTrzBxD6er14JEn9G/WCVaeUi5yd/MZPxTgAuVYuLZHU 6ttiTKqvNwFZlX708CC5flfyhXIgmUwTetkCKO+HzTl2yMY+hOXbFV0ePooPTyA3QYc10+8mcy8 0j16cQQmrTXfIBbsR X-Received: by 2002:a17:907:7201:b0:b9c:8499:e949 with SMTP id a640c23a62f3a-b9c8499f038mr1014745166b.27.1775656002939; Wed, 08 Apr 2026 06:46:42 -0700 (PDT) Received: from cs-280612103108-default.europe-west4-b.c.od237066db22328bb-tp.internal (52.200.204.35.bc.googleusercontent.com. [35.204.200.52]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b9c3d028955sm648787566b.61.2026.04.08.06.46.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 08 Apr 2026 06:46:42 -0700 (PDT) From: Joshua Crofts To: andriy.shevchenko@intel.com Cc: linux-kernel@vger.kernel.org, linux-media@vger.kernel.org, linux-staging@lists.linux.dev, Joshua Crofts Subject: [RFC] media: atomisp: change copy_from_compatible to iov_iter Date: Wed, 8 Apr 2026 13:46:11 +0000 Message-ID: <20260408134612.1380-1-joshua.crofts1@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Since the atomisp driver concerns transferring video data, it would probably be better to use an iov_iter than copy_to_user calls (scatter-gather i/o and better pointer safety). Per yesterday's emails, I'm sending an an example of a function in atomisp_cmd.c where I've implemented iov_iter usage. Note, this isn't a patch, more of a question whether this style of changing the copy_to_user calls is valid (or if I'm writing garbage code). I'd rather get your opinion than submitting a patch first. Thanks for your response! Signed-off-by: Joshua Crofts --- drivers/staging/media/atomisp/pci/atomisp_cmd.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/drivers/staging/media/atomisp/pci/atomisp_cmd.c b/drivers/stag= ing/media/atomisp/pci/atomisp_cmd.c index b3e971be0e..3b987e8e8c 100644 --- a/drivers/staging/media/atomisp/pci/atomisp_cmd.c +++ b/drivers/staging/media/atomisp/pci/atomisp_cmd.c @@ -15,6 +15,7 @@ #include #include #include +#include =20 #include =20 @@ -1676,7 +1677,8 @@ int atomisp_3a_stat(struct atomisp_sub_device *asd, i= nt flag, { struct atomisp_device *isp =3D asd->isp; struct atomisp_s3a_buf *s3a_buf; - unsigned long ret; + struct iov_iter iter; + int ret; =20 if (flag !=3D 0) return -EINVAL; @@ -1709,13 +1711,12 @@ int atomisp_3a_stat(struct atomisp_sub_device *asd,= int flag, config->exp_id =3D s3a_buf->s3a_data->exp_id; config->isp_config_id =3D s3a_buf->s3a_data->isp_config_id; =20 - ret =3D copy_to_user(config->data, asd->params.s3a_user_stat->data, - asd->params.s3a_output_bytes); - if (ret) { - dev_err(isp->dev, "copy to user failed: copied %lu bytes\n", - ret); + ret =3D import_ubuf(ITER_DEST, (void __user *)config->data, asd->params.s= 3a_output_bytes, &iter); + if (ret) + return ret; + + if (copy_to_iter(asd->params.s3a_user_stat->data, asd->params.s3a_output_= bytes, &iter) !=3D asd->params.s3a_output_bytes) return -EFAULT; - } =20 /* Move to free buffer list */ list_del_init(&s3a_buf->list); --=20 2.47.3