From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f45.google.com (mail-io1-f45.google.com [209.85.166.45]) (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 93D0E13FF6 for ; Thu, 11 Apr 2024 15:31:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849495; cv=none; b=Uwc5sVbGFme2GojjVC/oHRRWU8f0DKTmJyBflqN884bVBGbfGI2XsXGx2Ko5eISVSY97L1X8Qqc5j6g6uyGAJ+qCCFKwmgvWshucVWVxXz9XmUl33WF2lAAu6vPZM7R6TRWn8JVlCADnvK7CqTRNVJvRK/i+SwmgcXya8mhfrdM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849495; c=relaxed/simple; bh=x+u/nQhNU1iu7Dza7OxlrgPFrNgRW9j3PCiLFVmM26Y=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=oZm3uu5hmRozbsM/9qbiQukr5D9Td1X5IKazidUzYbhNTc7e7KGwPH3IZyW84rFbrYyja2iVO08/5UAXNAio0+4UJHgB1GEnf3Y/5zHFg1y/My3yfCwydK6wzD3x7ur9tPHAN1L9svmDDVa609qf8QZ6VCaGja4B3KvZOb1MghE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=Udmx4d/b; arc=none smtp.client-ip=209.85.166.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="Udmx4d/b" Received: by mail-io1-f45.google.com with SMTP id ca18e2360f4ac-7d6812b37a6so8836739f.0 for ; Thu, 11 Apr 2024 08:31:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849490; x=1713454290; 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=c7iZENkO3MAymxhOjZv2YM3OJXd/PaTjjUhgyV5xd68=; b=Udmx4d/brKQ33YDX9n4saq7ia2J4rST2Qr+KcRXKzzcMeHTFkV1UvcaW1Z5QDLwGkW hAGsMyNkBl5L0HwM7GxkQSMKDQZXTPiOoNgUiBUP93J/z0Pirly+zyp692sJKMHsH07g yfNykkzfSShEDRUJOvr16l8J1RZ7h7RN9F7XmEeL9GO8Ldj04amOcDHBnwxI/l2Cc31g Uz517WL/GePvKV2KXYG972C2uXndn9jR/a7B/jrpebuz8oLkQCxkZ9dn7PuhT7nb2vk1 DKEEEPlmpUt4kvxXipXDv9nb/CA/3dq7R2GvGpZplw5mKOp0WDa/TcsSfoLEzkbFS8Iq EURA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849490; x=1713454290; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=c7iZENkO3MAymxhOjZv2YM3OJXd/PaTjjUhgyV5xd68=; b=bimteybEUJ4cJdnUl7mD/NPH0Gf/kkjFXQwDFdJMNCWXtCG3zAvpTdO0Kren4jNLkG Qf5vAP5IPOokIVrOBo+/qu1WGlKGWiI4YL8tbCK0nmpoTVBoOem5FKEhcAIK3J+uNQ2F llTpH5Ovi58CnKGW1OIVJOh6QEIRXzxv1EYrvbJ0Bv7hgFc+6MHTRHq8P46vdih/fVb0 07sVz5oXjb817ZotMJhmI2UsToScVwGhr75ooGV6vPhWvBy9uFKko3UG9DHqPjkQWGtz dfK+B5HfErdU9NRJ+N/JXCI0jnhZTfKbjzv97x9UjdlTDqFh0LQHdGVxlSmredd1xEg6 tuZQ== X-Gm-Message-State: AOJu0YzGdEkAfxHCqjAQx87UmKvTmx1wE8ZknCuU8cljY5UUvUBXTH3h 5Nn5lqD8MVxgQFoDQqQECfnJ44VCNUEp3akGc3JcdaGVsmYpHvpRNS1hmsr6MOLRYITeiIXNuf0 4 X-Google-Smtp-Source: AGHT+IErTnU8QFnrp/rGRKRLn8HhGGI5TaJA2GcbiawgKU7lxIE6UiShgCAX+0tq4ehuocGabe9SeQ== X-Received: by 2002:a5e:9907:0:b0:7d6:751f:192 with SMTP id t7-20020a5e9907000000b007d6751f0192mr167498ioj.2.1712849489814; Thu, 11 Apr 2024 08:31:29 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.31.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:31:29 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 001/437] fs: split do_loop_readv_writev() into separate read/write side helpers Date: Thu, 11 Apr 2024 09:12:21 -0600 Message-ID: <20240411153126.16201-2-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" No functional changes, just in preparation for using these separately. Signed-off-by: Jens Axboe --- fs/read_write.c | 43 +++++++++++++++++++++++++++++++++---------- 1 file changed, 33 insertions(+), 10 deletions(-) diff --git a/fs/read_write.c b/fs/read_write.c index d4c036e82b6c..82ec75937b08 100644 --- a/fs/read_write.c +++ b/fs/read_write.c @@ -746,8 +746,10 @@ static ssize_t do_iter_readv_writev(struct file *filp,= struct iov_iter *iter, } =20 /* Do it by hand, with file-ops */ -static ssize_t do_loop_readv_writev(struct file *filp, struct iov_iter *it= er, - loff_t *ppos, int type, rwf_t flags) +static ssize_t do_loop_readv(struct file *file, struct iov_iter *iter, + loff_t *ppos, rwf_t flags, + ssize_t (*read)(struct file *, char __user *, + size_t, loff_t *)) { ssize_t ret =3D 0; =20 @@ -757,14 +759,35 @@ static ssize_t do_loop_readv_writev(struct file *filp= , struct iov_iter *iter, while (iov_iter_count(iter)) { ssize_t nr; =20 - if (type =3D=3D READ) { - nr =3D filp->f_op->read(filp, iter_iov_addr(iter), - iter_iov_len(iter), ppos); - } else { - nr =3D filp->f_op->write(filp, iter_iov_addr(iter), - iter_iov_len(iter), ppos); + nr =3D read(file, iter_iov_addr(iter), iter_iov_len(iter), ppos); + if (nr < 0) { + if (!ret) + ret =3D nr; + break; } + ret +=3D nr; + if (nr !=3D iter_iov_len(iter)) + break; + iov_iter_advance(iter, nr); + } + + return ret; +} + +static ssize_t do_loop_writev(struct file *file, struct iov_iter *iter, + loff_t *ppos, rwf_t flags, + ssize_t (*write)(struct file *, const char __user *, + size_t, loff_t *)) +{ + ssize_t ret =3D 0; + + if (flags & ~RWF_HIPRI) + return -EOPNOTSUPP; + + while (iov_iter_count(iter)) { + ssize_t nr; =20 + nr =3D write(file, iter_iov_addr(iter), iter_iov_len(iter), ppos); if (nr < 0) { if (!ret) ret =3D nr; @@ -931,7 +954,7 @@ static ssize_t vfs_readv(struct file *file, const struc= t iovec __user *vec, if (file->f_op->read_iter) ret =3D do_iter_readv_writev(file, &iter, pos, READ, flags); else - ret =3D do_loop_readv_writev(file, &iter, pos, READ, flags); + ret =3D do_loop_readv(file, &iter, pos, flags, file->f_op->read); out: if (ret >=3D 0) fsnotify_access(file); @@ -970,7 +993,7 @@ static ssize_t vfs_writev(struct file *file, const stru= ct iovec __user *vec, if (file->f_op->write_iter) ret =3D do_iter_readv_writev(file, &iter, pos, WRITE, flags); else - ret =3D do_loop_readv_writev(file, &iter, pos, WRITE, flags); + ret =3D do_loop_writev(file, &iter, pos, flags, file->f_op->write); if (ret > 0) fsnotify_modify(file); file_end_write(file); --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f49.google.com (mail-io1-f49.google.com [209.85.166.49]) (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 842061400B for ; Thu, 11 Apr 2024 15:31:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849495; cv=none; b=GZSNnQv0fWipwj9H982IKiaYQztxj6ehIvQ8WKFW+Yq/J4/f/0hd1gp/PuJmRQVH0QM1VgvhCEZc/xg4mRa/7s3udb9s5zLY2rtyoDtXGiD8JI9vmCMNMLd4cWW9aiFgsaSXq16JPlO/qZ/v2/KHw3iUXjlXITd5tZXIdoEz/yQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849495; c=relaxed/simple; bh=KNF16j1wWRHp7QL9dlpe230fqxnk/ID08XGeyGDW3Fo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=eqMtZU/CCNQhDvPQUHpDQp1WbZ6I7Puw6ct4XA0HA6WxAOORaG7JFDFuIsHpBdDqZH6Yd9FetUcs9Uy6PCAV7NQZWOi1bnFHLbU/V6nnbO2iwA8M84m0AAWt3TvJKKZAd5GZGQaB0k1X7jgabc3zc7HHsutIQ04fYPM/ZID+xFM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=C+Xipf6l; arc=none smtp.client-ip=209.85.166.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="C+Xipf6l" Received: by mail-io1-f49.google.com with SMTP id ca18e2360f4ac-7c8e4c0412dso69471839f.1 for ; Thu, 11 Apr 2024 08:31:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849490; x=1713454290; 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=siJ0q22m4N60RaUsv3MSDvS2FSwhfuD2Ji6r6b8RrnE=; b=C+Xipf6lHz7Ht2uIiPAWtFD5zabTOd7SnayD5GXrxEzLUDXMuG9FlUBk7O9tBq0Xvl EiCfnZqBvpRc6QvKWpO5CPEB6ZaHh8gcfvHskdSWEFGIfPKJoMizLmw/5ICAC0xH4HRY kMz5I+BzGebLU6mEaiwOG4eMQF4TZAZdPNlVZCujnGIjkPLS82CGVtZvjMBkH5MkmGJn WYVGiMBd3Uu5lIOAEewIVkWmlY63C0b5zTefQlRK8pENWzzii5uspJnFyLqxTdZCcm15 I5AP2+VLi9BrToiSprdfmAKuJBWGsKM3W9QvJqnBMHHD8bpe2k7KYrNKAomYMdXSxL9D /Ncg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849490; x=1713454290; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=siJ0q22m4N60RaUsv3MSDvS2FSwhfuD2Ji6r6b8RrnE=; b=Gq3Qg2tnvElKJemBTUcRno3rzGKjpqm9vivEqOo9OKoT1iu18xPrnVmYjZ6IO6oows TmRY5slpsVwCWcwIfoNJYaoGZ8sQnWp3n8TFE7AilrhNY29X56LY/LqUeARoTL1iPmpz vGobaic9EtS/Zuo7CGvqVr29b0opY9z6cnLzhQRZmUbQt7VjxAK3/m7cVU8sRKWI4Cvi 5UMVZAxnTcnqtzANv3ilECN/oekI742YSpHWFm/xIC4VZvHrZAhM8oCITG1MEa3loOIz QqUskG9V5BBrh3+lcb66nxDG8t6Ypw5MK1QPMnwLnv06lg++hUYaRZ90vHPux9OMW8tN 1Y+Q== X-Gm-Message-State: AOJu0YyVBpbLQCQt+2kZ+rP8lpPWe8nI9gFHffFh70RoT0F8Q16iVxSs YfbrAfrH1XS/38v+UbU7DIGUno8Z5Ajm0qTGQSpHohaCOMcAlbUCUcgvwvg3SH3JJ3FxphNq9an k X-Google-Smtp-Source: AGHT+IHSEwWPNkGz6RFsJUyvtJz5TmYfwSwjzDjeEl/S+aKbzVoEIcp0vxQZ95ip9xvY33n9KK7dxg== X-Received: by 2002:a05:6602:84:b0:7d6:9d75:6de2 with SMTP id h4-20020a056602008400b007d69d756de2mr29422iob.2.1712849490498; Thu, 11 Apr 2024 08:31:30 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.31.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:31:30 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 002/437] fs: add generic read/write iterator helpers Date: Thu, 11 Apr 2024 09:12:22 -0600 Message-ID: <20240411153126.16201-3-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" We already do this internally for vfs_readv() and vfs_writev(), which need to check what method to use. Add generic helpers for this so that drivers can do this themselves, if they haven't converted to using the read/write iterator file_operations hooks just yet. Signed-off-by: Jens Axboe --- fs/read_write.c | 18 ++++++++++++++++++ include/linux/fs.h | 6 ++++++ 2 files changed, 24 insertions(+) diff --git a/fs/read_write.c b/fs/read_write.c index 82ec75937b08..1d035293607b 100644 --- a/fs/read_write.c +++ b/fs/read_write.c @@ -802,6 +802,24 @@ static ssize_t do_loop_writev(struct file *file, struc= t iov_iter *iter, return ret; } =20 +/* generic read side helper for drivers converting to ->read_iter() */ +ssize_t vfs_read_iter(struct kiocb *iocb, struct iov_iter *to, + ssize_t (*read)(struct file *, char __user *, + size_t, loff_t *)) +{ + return do_loop_readv(iocb->ki_filp, to, &iocb->ki_pos, 0, read); +} +EXPORT_SYMBOL(vfs_read_iter); + +/* generic write side helper for drivers converting to ->write_iter() */ +ssize_t vfs_write_iter(struct kiocb *iocb, struct iov_iter *from, + ssize_t (*write)(struct file *, const char __user *, + size_t, loff_t *)) +{ + return do_loop_writev(iocb->ki_filp, from, &iocb->ki_pos, 0, write); +} +EXPORT_SYMBOL(vfs_write_iter); + ssize_t vfs_iocb_iter_read(struct file *file, struct kiocb *iocb, struct iov_iter *iter) { diff --git a/include/linux/fs.h b/include/linux/fs.h index 8dfd53b52744..fd862985a309 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -2119,6 +2119,12 @@ extern ssize_t vfs_read(struct file *, char __user *= , size_t, loff_t *); extern ssize_t vfs_write(struct file *, const char __user *, size_t, loff_= t *); extern ssize_t vfs_copy_file_range(struct file *, loff_t , struct file *, loff_t, size_t, unsigned int); +ssize_t vfs_write_iter(struct kiocb *iocb, struct iov_iter *from, + ssize_t (*write)(struct file *, const char __user *, + size_t, loff_t *)); +ssize_t vfs_read_iter(struct kiocb *iocb, struct iov_iter *to, + ssize_t (*read)(struct file *, char __user *, + size_t, loff_t *)); int __generic_remap_file_range_prep(struct file *file_in, loff_t pos_in, struct file *file_out, loff_t pos_out, loff_t *len, unsigned int remap_flags, --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f43.google.com (mail-io1-f43.google.com [209.85.166.43]) (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 808A214012 for ; Thu, 11 Apr 2024 15:31:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849497; cv=none; b=DEHQWORCzoWjPFY1BRbYgFM8PD1xHCa18iG1Qr6VfUsVlOVHRlGH17e6hQz2dRC+KXftiOrursLtDqTiXnEyKiVby7l4Q8cd39cH+uOYx1ypSW9ifIDdHnNgVJAdbeeIvM6dYEjqVczHHzc6lFS52z5/GElpWNIgRzDxwLLiBo8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849497; c=relaxed/simple; bh=cxewkZyxRElYmBVpDBfnzLzE9Qi5Af8AY4SLKQB4suA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=GOH4HaqEG7+OXohWipOJFkxWzxRjU5bDOsawEASjE25REGCGWasL0q6VIuntDe9EcjeIvE/VWCfpWvNvJElPnNNVe6sGD+kuJ4h1sIWy5DZ/wFXpOvC48DFpe2jwNQnPvDgGgNELrMPPA1WBqYuwaxIApt4Et7dczT2RzgXS720= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=MLiTucjT; arc=none smtp.client-ip=209.85.166.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="MLiTucjT" Received: by mail-io1-f43.google.com with SMTP id ca18e2360f4ac-7cb9dd46babso81829539f.1 for ; Thu, 11 Apr 2024 08:31:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849493; x=1713454293; 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=vF7rljSyWSXVyabtJWrttCeWBftBj9OG2VAhwMADVj4=; b=MLiTucjTPhCwJzW9rX0LyKeyiRyQUbPdoxj9gdxUu77bbcfASnAxVUJpRMvGtk/0gQ hT8qihVirZS91vexQSXDN+Mm5a+mA65PKuhOQBVJNyhjOCE6qfNr07qqJmAnU8p1nKBY /TYquLI4dnbJqpS8x4t9jKEztfTjLKhUVK/gI7LlfqPGaPaZFHLvLFLuwlH/K9thYW24 qBe2oZlnB3y4wj3TlCoJojSJ7qVtPxKULDNFsuniORoon4l9ax+0mc/m5xVKSfg+Q1Sl oe/T9jvtrQYAxswFtHcxR7LAgoyFNNcvdbkJDt5TpfIS0ygphWFP+pUjhBjN+AQ8SfQL D4uw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849493; x=1713454293; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=vF7rljSyWSXVyabtJWrttCeWBftBj9OG2VAhwMADVj4=; b=XPxr9HjCEL+BRndQKIJ98f6Djwo881UIRJfAUvl24c1g2odS5BnlWvEk8glOhB/Mq8 WPXH7V85P+I4x7KyTrkqe8dYkHqVOA9fXpZt9KPooXECGxJdGPO5M3DSCyJi1nBl5uyF N9F1jf/gUpe0CuyX2EDknKRu7dxqlIbh7X/EiJsGMyJC0XmMjsVEF94X81eZ95hZCuPA yWKuXYUslTLuiu1UPCZpXGMKtwtonrGnGnAxuja1AwQb2Fq0VuIcZQ0jZTuojL2EskgN 1YXJ7UD4Mv5TFHpArM96OyAtJfWU8Ew5ihyEzkW+/4li9nudf6YATsV/bV+W2c0JiNG0 Djqw== X-Gm-Message-State: AOJu0Yz/wQdPoptGEBYdPtzg49yNbYSn0MCtPiQhTl4oSVpGPLWUyVCy x+v+4zpp899r6oBgXdieh1QfHjLWPA5vPTcfJYd8ayhSxyF8Q9dc/6ip0qXFCMolQYpKObKF6Tn 6 X-Google-Smtp-Source: AGHT+IHL07y7tk9NAT2xCfJWz8ws6u5vrK5l9/JHjQwJXCuH/jjbMnQXq3p3+2diesUY/1sdOfA4yQ== X-Received: by 2002:a6b:4e14:0:b0:7d6:631d:7b0 with SMTP id c20-20020a6b4e14000000b007d6631d07b0mr170561iob.1.1712849493038; Thu, 11 Apr 2024 08:31:33 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.31.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:31:30 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 003/437] fs: add helpers for defining read/write iterator helpers Date: Thu, 11 Apr 2024 09:12:23 -0600 Message-ID: <20240411153126.16201-4-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" To ease conversion for drivers, add helpers that allow a driver to simply wrap their existing read/write file_operations hook and turn it into one that is appropriate for ->read_iter() or ->write_iter(). Signed-off-by: Jens Axboe --- include/linux/fs.h | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/include/linux/fs.h b/include/linux/fs.h index fd862985a309..72de0b1d5647 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -2141,6 +2141,22 @@ extern loff_t vfs_dedupe_file_range_one(struct file = *src_file, loff_t src_pos, struct file *dst_file, loff_t dst_pos, loff_t len, unsigned int remap_flags); =20 +/* + * Drivers can use these to ease transition to using ->read_iter() instead + * of ->read(), and ->write_iter() instead of ->write(). Ideally these will + * go away one day. + */ +#define FOPS_READ_ITER_HELPER(name) \ +static ssize_t name## _iter(struct kiocb *iocb, struct iov_iter *to) \ +{ \ + return vfs_read_iter(iocb, to, name); \ +} +#define FOPS_WRITE_ITER_HELPER(name) \ +static ssize_t name## _iter(struct kiocb *iocb, struct iov_iter *from) \ +{ \ + return vfs_write_iter(iocb, from, name); \ +} + /** * enum freeze_holder - holder of the freeze * @FREEZE_HOLDER_KERNEL: kernel wants to freeze or thaw filesystem --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f43.google.com (mail-io1-f43.google.com [209.85.166.43]) (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 56A6115E85 for ; Thu, 11 Apr 2024 15:31:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849498; cv=none; b=WxYHkNuBmLhs91BU1XoRsEJIz3nVpC0E1pTHF+ZzrsPyBK/kToAB7iuqH7avsjK8Zt21BiB3T3hm8X3ouI2fFccA89fCEkT3QV1ZfM+qhO8Wm0vbw2ss8Md7EUkiQyEMAKYTPamJLk6fjaQR6pbwz6uUz14vDIBGwKX6WRPilxE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849498; c=relaxed/simple; bh=zl9Msdkd0nKzFoMLDCdsFP4j4tTnGoCIX29BIyR8eJQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=EYyaVjbCAgw2u8iLw65bxo34+TfGCgiL0ljY2UfMhDfaGIWOqxRtFMAVRcmbKJwcH1Mexf23TKXJlkef7sTAaU4Q/a+Jd5mIPdUvd10QzMs2QAXnf0IWDvRLWhXlaj5uGRFFC2Nh51E9XTI4JXqexAQIthXosRdYq8M74n/Nyco= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=Nry89w5o; arc=none smtp.client-ip=209.85.166.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="Nry89w5o" Received: by mail-io1-f43.google.com with SMTP id ca18e2360f4ac-7c8e4c0412dso69474339f.1 for ; Thu, 11 Apr 2024 08:31:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849495; x=1713454295; 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=4y1MiOXGemo/TYam3ZjcBOEptr5sK5Ww3DxqkARLkVA=; b=Nry89w5o0NzJsYHsdZGweo/b+scWzyHZ+uc2rn6IEwTaXGab8Uq+igF7vFYQewUFVe 11GBYFr91edzBJwzrZlPxTJbjDDs2azMroAh57poRUVQrMuOWX4gn3sQrvPntTZ3v1zS X+UCiZQTVQJ0530BalnN4McJdJlcnktqo6Q5aTJ/DXT6TBz25Y3hsmgHcRpNMK/ze6DU WfGpm9UyEMfRQr7M1h01wSRsz2ag5Vu2K2ZT0egNNdO/JMB5cQIi5MNnevDa2NArtkCh aGzicfNmZqZE55G8udoHbk4WIxMkAyUqZEKboe6saXT2nmq+s8hQ+QX1N9ja/ppipk8S 8auQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849495; x=1713454295; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=4y1MiOXGemo/TYam3ZjcBOEptr5sK5Ww3DxqkARLkVA=; b=ShzxvFa+3mYNG126eTNmaw82ioXmF+9bp1iml/SiANKZlghDyd4beyVtsNGAymkpff enuyd9+F1QnX8N1GHDsVYfjK4geLZcudu5nXsunMPh0q3BiCeMl6lQAOo8NE8umseY5k te/3mGn918F0F8ijrQx2hZkhso2jaQH5LkWyOeYrjWV/LQrNKPIIHhB5p63WJ92mMXOu gn/aTtoooHCWi1j2+kp+SdU1js1PSVImHI9Lg5FYzZmdgYyhFrimefHRnlyu9uOePeTH T7bSwiQscIVX7mnNE9HY+IdvetL01ffqUF4PdW/gPXnsS7C5lpujYfNiJJTXMpUoCo9g FMQg== X-Gm-Message-State: AOJu0Yw8HkhBPlWJV+l+7NPZppd9z125I6WMY2D2CIpB5m4EfoClZ4ac VcGcksHG5SiFdIX4KxcmO66Zz6r/iH/k7w1tbt2hVvjG6K/xIEmxL6a9AF0CNlMx4E15eZv1EQB M X-Google-Smtp-Source: AGHT+IFQ3QOTzL5/dGQPgVmdYNRGJWtEW/djL7xOVilycMQmk8ilbkP+TblwbyajMiq7Kbm6TUjd1w== X-Received: by 2002:a05:6e02:1d87:b0:36a:fba4:ec45 with SMTP id h7-20020a056e021d8700b0036afba4ec45mr3413130ila.3.1712849494840; Thu, 11 Apr 2024 08:31:34 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.31.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:31:33 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 004/437] fs: add simple_copy_{to,from}_iter() helpers Date: Thu, 11 Apr 2024 09:12:24 -0600 Message-ID: <20240411153126.16201-5-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" While doing so, rename the networking helper that has the same name. Signed-off-by: Jens Axboe --- fs/libfs.c | 73 ++++++++++++++++++++++++++++++++++++++++++++- include/linux/fs.h | 5 ++++ net/core/datagram.c | 10 +++---- 3 files changed, 82 insertions(+), 6 deletions(-) diff --git a/fs/libfs.c b/fs/libfs.c index 3a6f2cb364f8..074cfacc377f 100644 --- a/fs/libfs.c +++ b/fs/libfs.c @@ -1102,13 +1102,84 @@ ssize_t simple_write_to_buffer(void *to, size_t ava= ilable, loff_t *ppos, if (count > available - pos) count =3D available - pos; res =3D copy_from_user(to + pos, from, count); + if (res < 0) + return res; + count -=3D res; + *ppos =3D pos + count; + return count; +} +EXPORT_SYMBOL(simple_write_to_buffer); + +/** + * simple_copy_to_iter - copy data userspace to iter + * @from: the buffer to read from + * @ppos: the current position in the buffer + * @count: the maximum number of bytes to copy + * @to: the iov_iter to copy to + * + * The simple_copy_to_iter() function reads up to @count bytes from the + * buffer @from at offset @ppos into the user space address starting at @t= o. + * + * On success, the number of bytes copied is returned, or negative value is + * returned on error. + **/ +ssize_t simple_copy_to_iter(const void *from, loff_t *ppos, size_t count, + struct iov_iter *to) +{ + size_t available =3D iov_iter_count(to); + loff_t pos =3D *ppos; + size_t ret; + + if (pos < 0) + return -EINVAL; + if (pos >=3D available || !count) + return 0; + if (count > available - pos) + count =3D available - pos; + ret =3D copy_to_iter(from + pos, count, to); + if (ret < 0) + return ret; + count -=3D ret; + *ppos =3D pos + count; + return count; +} +EXPORT_SYMBOL(simple_copy_to_iter); + +/** + * simple_copy_from_iter - copy data from iter to user space buffer + * @to: the buffer to write to + * @available: the size of the buffer + * @ppos: the current position in the buffer + * @from: the user space buffer to read from + * @count: the maximum number of bytes to read + * + * The simple_write_to_buffer() function reads up to @count bytes from the= user + * space address starting at @from into the buffer @to at offset @ppos. + * + * On success, the number of bytes written is returned and the offset @ppo= s is + * advanced by this number, or negative value is returned on error. + **/ +ssize_t simple_copy_from_iter(void *to, loff_t *ppos, size_t count, + struct iov_iter *from) +{ + size_t available =3D iov_iter_count(to); + loff_t pos =3D *ppos; + size_t res; + + if (pos < 0) + return -EINVAL; + if (pos >=3D available || !count) + return 0; + if (count > available - pos) + count =3D available - pos; + res =3D copy_from_iter(to + pos, count, from); if (res =3D=3D count) return -EFAULT; count -=3D res; *ppos =3D pos + count; return count; } -EXPORT_SYMBOL(simple_write_to_buffer); +EXPORT_SYMBOL(simple_copy_from_iter); =20 /** * memory_read_from_buffer - copy data from the buffer diff --git a/include/linux/fs.h b/include/linux/fs.h index 72de0b1d5647..f75049fa1d50 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -3353,6 +3353,11 @@ extern ssize_t simple_read_from_buffer(void __user *= to, size_t count, extern ssize_t simple_write_to_buffer(void *to, size_t available, loff_t *= ppos, const void __user *from, size_t count); =20 +ssize_t simple_copy_to_iter(const void *from, loff_t *ppos, size_t count, + struct iov_iter *to); +ssize_t simple_copy_from_iter(void *to, loff_t *ppos, size_t count, + struct iov_iter *from); + struct offset_ctx { struct maple_tree mt; unsigned long next_offset; diff --git a/net/core/datagram.c b/net/core/datagram.c index a8b625abe242..3dfdddeaf695 100644 --- a/net/core/datagram.c +++ b/net/core/datagram.c @@ -399,7 +399,7 @@ int skb_kill_datagram(struct sock *sk, struct sk_buff *= skb, unsigned int flags) } EXPORT_SYMBOL(skb_kill_datagram); =20 -INDIRECT_CALLABLE_DECLARE(static size_t simple_copy_to_iter(const void *ad= dr, +INDIRECT_CALLABLE_DECLARE(static size_t __simple_copy_to_iter(const void *= addr, size_t bytes, void *data __always_unused, struct iov_iter *i)); @@ -417,7 +417,7 @@ static int __skb_datagram_iter(const struct sk_buff *sk= b, int offset, if (copy > 0) { if (copy > len) copy =3D len; - n =3D INDIRECT_CALL_1(cb, simple_copy_to_iter, + n =3D INDIRECT_CALL_1(cb, __simple_copy_to_iter, skb->data + offset, copy, data, to); offset +=3D n; if (n !=3D copy) @@ -440,7 +440,7 @@ static int __skb_datagram_iter(const struct sk_buff *sk= b, int offset, =20 if (copy > len) copy =3D len; - n =3D INDIRECT_CALL_1(cb, simple_copy_to_iter, + n =3D INDIRECT_CALL_1(cb, __simple_copy_to_iter, vaddr + skb_frag_off(frag) + offset - start, copy, data, to); kunmap(page); @@ -526,7 +526,7 @@ int skb_copy_and_hash_datagram_iter(const struct sk_buf= f *skb, int offset, } EXPORT_SYMBOL(skb_copy_and_hash_datagram_iter); =20 -static size_t simple_copy_to_iter(const void *addr, size_t bytes, +static size_t __simple_copy_to_iter(const void *addr, size_t bytes, void *data __always_unused, struct iov_iter *i) { return copy_to_iter(addr, bytes, i); @@ -544,7 +544,7 @@ int skb_copy_datagram_iter(const struct sk_buff *skb, i= nt offset, { trace_skb_copy_datagram_iovec(skb, len); return __skb_datagram_iter(skb, offset, to, len, false, - simple_copy_to_iter, NULL); + __simple_copy_to_iter, NULL); } EXPORT_SYMBOL(skb_copy_datagram_iter); =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-il1-f180.google.com (mail-il1-f180.google.com [209.85.166.180]) (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 3ADAB17C66 for ; Thu, 11 Apr 2024 15:31:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.180 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849499; cv=none; b=lGsCoQB267JznzTsgP7UoK96/+gp3Cmo8IUfuv6KJc/Db0A3YFm07K54E6pLXvrZmn2w0cyUGaGmAQL+m14GLuk8Vtmjhc/JeIQLISW6C0m0BI3Ljew1puQLt1es/PDJlEBU8FR01uwPlXhAAYQAirqWveu+SGJvn23WFcKc3v4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849499; c=relaxed/simple; bh=sMDFBW3zRYhbJtL4VOoVGjo1NEw38bdXVkujq/zHJqQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=epTV3mRUTcWklZOMPUUbGIDFfVkxMVwP4MlexCe7B1Ff9RDpCuepXmZdbHhfuvwnHlbg21Kdy0Shi6+USdBbDkxzgBavcwPgIP17Lhsw3bKFF1TM/Ipj3bQFw2zKwmJ3GHVHlrhzxfUUWxQUf0ITmz0TPTZdlG5AAPqytTe0Z1g= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=wm8hg58f; arc=none smtp.client-ip=209.85.166.180 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="wm8hg58f" Received: by mail-il1-f180.google.com with SMTP id e9e14a558f8ab-36a1c0bf9faso4607835ab.1 for ; Thu, 11 Apr 2024 08:31:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849497; x=1713454297; 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=qcJKg3dUprDfAl9aQ3Nn+s/bQ9YKDokhdxZS/KpvLRk=; b=wm8hg58fZ2nebOuKTQkzBLx1nZ8uF2X26x97QNPDltHHbOaskPguYBtOPHXX0l3Ac8 3hEFzXRkIh6FBBfNTLg/8sEQpshr25YDiQgFpB0Mq7Nk8gH8C6/c/Whrm2snsh2/1ZeZ re/yXuWfhP9lbmMMdUjLTg2WusZASUqv8LRNiJq5K0/ElMFQzoGEIcU4AKrgL1cztwEK cufquyFBsf5MxAaoXGZ9FZS0BMpjWUt9qmfCT3j9tSGsam++rj63jSCr9MrR60V0nqKy +XJvoxUJTvWtxE7Mla0lL37qg3hmZOm7Mml6qYmvmLjmaMzM0YAH3IU21TUr1S6hsH/j dqFQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849497; x=1713454297; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=qcJKg3dUprDfAl9aQ3Nn+s/bQ9YKDokhdxZS/KpvLRk=; b=WcSbJlw7IeRXJQdLscQMhj7phnbAQut1lJl7y8gZP2qnu+LVpkZv1yRDDQL0LbJv+u YYDbzWfcWiz+W0ZVzPr+jiwh3z577wTDUIzehWPDJ94lGYBV56Tb6BUltjE0D52y0TGY iFSUNZj0chwWqr4wODkfJ/QGtVLyOalbt3QHDqNHKkPNdt9Db5lJ2jKqvNbCk3m5aRCN hAQ+68A50U47IUvej+N/Vzea0amfVqFUkIL0+4UKOHqNe/C+CDLF6V2Emx/3uvIEtNj4 QxNlIHR/gohIW3K+HhRgIEjd5Lrq2QVmCDR/H3d+f3MdmBBQTlSQENJeTh5IXiDLXSgw kLhw== X-Gm-Message-State: AOJu0YyIAZmEz2lNkoW6jePWd8HBQy/8WkIPsWATbPBpfXeYEIH1RE9i Gb9e5MTyMCxfDB//rqgX1aIzakvDopw2/o2hUqtEuMolN3C58aPDMm3sO//mjERzcKaJJZHshzt c X-Google-Smtp-Source: AGHT+IFmv7WX/xf4bBGpnBWshwlKmNSTByFuNkK/HLYUxfdD+WtzdBBNpSKh8VfIJUDZICKWjreOuQ== X-Received: by 2002:a92:b10d:0:b0:36a:3ee8:b9f0 with SMTP id t13-20020a92b10d000000b0036a3ee8b9f0mr4225572ilh.0.1712849496832; Thu, 11 Apr 2024 08:31:36 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.31.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:31:35 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 005/437] uio: add get/put_iter helpers Date: Thu, 11 Apr 2024 09:12:25 -0600 Message-ID: <20240411153126.16201-6-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" For users that currently do put_user(val, uaddr) or get_user(val, uaddr), add iterator versions that do the same thing. Signed-off-by: Jens Axboe --- include/linux/uio.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/include/linux/uio.h b/include/linux/uio.h index 7020adedfa08..ed1711201597 100644 --- a/include/linux/uio.h +++ b/include/linux/uio.h @@ -215,6 +215,9 @@ bool copy_to_iter_full(const void *addr, size_t bytes, = struct iov_iter *i) return false; } =20 +#define put_iter(val, to) !copy_to_iter_full(&(val), sizeof((val)), to) +#define get_iter(val, from) !copy_from_iter_full(&(val), sizeof((val)), fr= om) + static __always_inline __must_check bool copy_from_iter_full(void *addr, size_t bytes, struct iov_iter *i) { --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f54.google.com (mail-io1-f54.google.com [209.85.166.54]) (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 DF08C175B6 for ; Thu, 11 Apr 2024 15:31:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849501; cv=none; b=R0Y15mZQSeX7RCFd9lq7BntFnkPoLkpIOYSB92+xkSaHf3bAHpLh6xhIApIg46SJK/ZixUEaQygi8wqn8wrD8AVd13bT4je2PFAQFczJz9IYRjhZEc3zEy87tFAaXKjkly/MAUCndAGtN06yf8KLpzbqEda2HpGwNbooI1BUoKM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849501; c=relaxed/simple; bh=lByMAmP/bbUffqCYETCfwR/ZFzEcR8ezQkT43ZT+D/I=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=bcaiQwkJCzx2sXjuYnzuJiX37UUPDYjCk336oHMyKj/yTeh0wXdcbnhy1bRh6zbU5GUlbGT7/UUpF4k8BsaACBvlQeRhUOWhkrqDCMIb7MmIhwY3PMjVLzex9LZiGDdVYeUZARPAaIOsYMpWbeC8to23Ofj0FW7smBpeD4K+HD4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=vcofsKwE; arc=none smtp.client-ip=209.85.166.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="vcofsKwE" Received: by mail-io1-f54.google.com with SMTP id ca18e2360f4ac-7d6812b37a6so8839739f.0 for ; Thu, 11 Apr 2024 08:31:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849498; x=1713454298; 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=LyjmCiDv8/AuWdWDdC9UIgQd/LSQc+QJ5y9KcOhexxA=; b=vcofsKwEh2jbb19x5tE7fdUMkxKQHR3rS+rCy4G9fX8dLsQJHfrSMQ10cBhj3hjj/g OOpHEw8muEfkHucV6Os2Wi3Ni8lig/0unEpG7IMZUF7hGhlXZgrwrM+OACK32hmVbOrc wwn+zy0IA4JJDHpkqbCvFFh1tT7AauMcIMxdpDotLaBvsIjw2BgGWWRVAI+eVuX7oX2P wIdXLfu9X165mVT5K6aAd+wxYnVza4HYtHhg0DyciAIkz6jvtNYGMlN4oWiW99jrQoPM 5eSjqF1x3X13qPq8gnz4Hpz58L/L0NVaHWaL92BYk84sbDfCMRy3rCqQ3LUx2mU+IFFj GO9g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849498; x=1713454298; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=LyjmCiDv8/AuWdWDdC9UIgQd/LSQc+QJ5y9KcOhexxA=; b=uKoPd4O5p7D+5+qV0ayKXFoIeYI0hA/jQjgOWceqa1kWkMNX22dUWWRkvHV8auYJR2 610oTMr98YBG0pTq2q9WTCo2qx9nt0WbiOfpWUQeXUB07aWfDeQ3yfGxKPFfN/Dr0L0F hzcUZVpLmNKGU45uWkq/hW6bf42fK2CBcUMldZD6HR9lfbvMtyua+sCKabXI+jw45bxT XL1r/XP5yrvjk1m8RfaSj7A85b36kEKbngrieFa9TIHB6MWHm2Vs5zXtC4arfqs+JQlC vdsqZ6/fN7mkDaTi2NAc8EZPg8j8dAdzS4h29h4dHNrzsF4s3Qx9S4CL2W4nXMdCGoB1 m+kg== X-Gm-Message-State: AOJu0YyzbnR9wZ8Py17//qLvDY1cnQYvIeWk1k1va3Al/wTLMXn6+vXP wKdA0iRnzetl68fLW98wUYpnpJMCDtiYFc7xDjHvTXCuC1xpglLng/qdbTyRMZsE+xhx/R92HoP h X-Google-Smtp-Source: AGHT+IF/Zv6/M+w5OgViYuucAryQKlmVBuJXmIK75XBDzS3pMuqbLpNdJs8sjmzCUnM4NMrqCLatpQ== X-Received: by 2002:a05:6602:21d7:b0:7d6:9ddf:5095 with SMTP id c23-20020a05660221d700b007d69ddf5095mr1225ioc.1.1712849498660; Thu, 11 Apr 2024 08:31:38 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.31.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:31:37 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 006/437] fs: add uio.h to fs.h Date: Thu, 11 Apr 2024 09:12:26 -0600 Message-ID: <20240411153126.16201-7-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Most conversions will end up pulling in fs.h already, but not uio.h. As the fs iterators will need that, just include it from fs.h rather than need to add it everywhere. It's pretty natural to need user copy helpers for read/write operators anyway. Signed-off-by: Jens Axboe --- include/linux/fs.h | 1 + 1 file changed, 1 insertion(+) diff --git a/include/linux/fs.h b/include/linux/fs.h index f75049fa1d50..5806cea7a3ac 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -45,6 +45,7 @@ #include #include #include +#include =20 #include #include --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f44.google.com (mail-io1-f44.google.com [209.85.166.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 B26A42556E for ; Thu, 11 Apr 2024 15:31:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849504; cv=none; b=f1mMsiBTNPdcFUBor+uEY4ifQkD/mnep5GIME1ss08jClEexuPa/aX0frvsXN+tz+GB6sIktd0/Zq8f3qEm9/0OvGJOCG56Sjk/qeuItnQB1xB1xtzS1JMqKdVLDKuwwWnyxQv5vS6Mmkm+TajVC3yUqLYYdfln5YCP6AQPSY4Q= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849504; c=relaxed/simple; bh=TZBv3QxQEHQifRazqOUvpuU1rG3ph2R3aVTk3X9Gap0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=FC3ja+bOI/8MrL0JWdXuo7U104SDrTlJFt+M4sISxIvkz81Xss2Qs06js7k8BrFecdDBY3B8Rvwy2d7hqV1j3O1xXvOOZZT4ES9E7r4v86s2z0ZPvAVM0EU7MaXw1Q4/4g/uKjZ+CtLJj2B/95eiddZXwDk3AOMEHAbNUozGp+c= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=g/tCYKRS; arc=none smtp.client-ip=209.85.166.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="g/tCYKRS" Received: by mail-io1-f44.google.com with SMTP id ca18e2360f4ac-7d0772bb5ffso180583239f.0 for ; Thu, 11 Apr 2024 08:31:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849500; x=1713454300; 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=vnTaAM7cR5Yq5Ow6bam+JWxgxFhkDbGidFejqzVzbL8=; b=g/tCYKRS4Gmfowos5Xy4WF98hwrGj8aGi010fS5yC/rsdTDOylQ27kAm8iIJbLmSgT 97NFfrnsiLt8MEnEv06QwYmaYxMn63YmHeXmTcSOjyD1AOCxwaBgjwt/1bgCoGF2fkoB m8l+PC6DyjdMEYFtWiU7f/GqZpn7pE5hu3rdgpzV8hDbSDrKL+Yy/Q7L8tfskMKu1MK9 h7G8URRWolNkqw/UdZw+eV0Dbpb1BEDfrK98uHBpaem5fEEgMHrPNiyGUjlp53amjzE+ +5DeFIdg+2IKw0N/yH0EUoi1kXe8CNUAj5BE2W4tRKOChduX9+qfoaO5MHaOrA3+9AcD kFDQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849500; x=1713454300; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=vnTaAM7cR5Yq5Ow6bam+JWxgxFhkDbGidFejqzVzbL8=; b=drHNVq6J5byvSpiUdO6saZuZ/1VYRBY5RZl8dcZJfuFaAwtnjE8VkJnhDNnVj7pAs/ W64ECY3YGrvTojHFHaRRylX98fayzZCEu8MHItAUlgFzFwi9JvstUH+v5XvFJG8zOA3J I91ucJitz7J34z5mINo4K65cqbshfui/6uzasH3+fdMtwZFPaRPFAjaCyim4MYxfJaDw xQHrVhjjpVbi9YuUKoEcMbTJwATxRzyjht9SzV403T+8e7wTpZhetLiVusSqtYRpkyHM s/VI3CNoRyeGdHzc7/51uDxCs4tkU6fCNAs7f5yA/VDDxouoKK8o3vHMoeZSIpPeB4NG 7hlg== X-Gm-Message-State: AOJu0YwaGN9GiE08NM20IX6bhNVXfAsXSWwT//SoXsDs4huco//EcdBr OGJyn8zUlj3nuz4Lr/xEioNOy9q4tZHheLfV32cR3sWvWQtPy5Uzz8YVNA4ktrh41eDpJe/+ayI G X-Google-Smtp-Source: AGHT+IHCYhbVjeiN6ZbVGZ5FXT6s+PbBwUNcZSjkCcgCxerd5TEJ92G6njbB511lBWV6yPsPhU9+ZQ== X-Received: by 2002:a92:c56f:0:b0:369:e37d:541f with SMTP id b15-20020a92c56f000000b00369e37d541fmr6975632ilj.1.1712849500395; Thu, 11 Apr 2024 08:31:40 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.31.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:31:38 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 007/437] mm/util: add iterdup_nul() and iterdup() helpers Date: Thu, 11 Apr 2024 09:12:27 -0600 Message-ID: <20240411153126.16201-8-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" This is identical to the memdup variants, except it operates on a struct iov_iter rather than a direct user pointer. Signed-off-by: Jens Axboe --- include/linux/string.h | 4 +++ mm/util.c | 57 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 61 insertions(+) diff --git a/include/linux/string.h b/include/linux/string.h index 9ba8b4597009..1983d2bf8840 100644 --- a/include/linux/string.h +++ b/include/linux/string.h @@ -18,6 +18,10 @@ extern void *memdup_user(const void __user *, size_t); extern void *vmemdup_user(const void __user *, size_t); extern void *memdup_user_nul(const void __user *, size_t); =20 +struct iov_iter; +void *iterdup_nul(struct iov_iter *, size_t); +void *iterdup(struct iov_iter *, size_t); + /** * memdup_array_user - duplicate array from user space * @src: source address in user space diff --git a/mm/util.c b/mm/util.c index 669397235787..5d701cf693b0 100644 --- a/mm/util.c +++ b/mm/util.c @@ -224,6 +224,32 @@ void *memdup_user(const void __user *src, size_t len) } EXPORT_SYMBOL(memdup_user); =20 +/** + * iterdup - duplicate memory region + * + * @src: source iov_iter + * @len: number of bytes to copy + * + * Return: an ERR_PTR() on failure. Result is physically + * contiguous, to be freed by kfree(). + */ +void *iterdup(struct iov_iter *src, size_t len) +{ + void *p; + + p =3D kmalloc_track_caller(len, GFP_USER | __GFP_NOWARN); + if (!p) + return ERR_PTR(-ENOMEM); + + if (!copy_from_iter_full(p, len, src)) { + kfree(p); + return ERR_PTR(-EFAULT); + } + + return p; +} +EXPORT_SYMBOL(iterdup); + /** * vmemdup_user - duplicate memory region from user space * @@ -312,6 +338,37 @@ void *memdup_user_nul(const void __user *src, size_t l= en) } EXPORT_SYMBOL(memdup_user_nul); =20 +/** + * iterdup_nul - duplicate memory region from iov_iter and NUL-terminate + * + * @src: source address to copy from + * @len: number of bytes to copy + * + * Return: an ERR_PTR() on failure. + */ +void *iterdup_nul(struct iov_iter *src, size_t len) +{ + char *p; + + /* + * Always use GFP_KERNEL, since copy_from_iter_full() can sleep and + * cause pagefault, which makes it pointless to use GFP_NOFS + * or GFP_ATOMIC. + */ + p =3D kmalloc_track_caller(len + 1, GFP_KERNEL); + if (!p) + return ERR_PTR(-ENOMEM); + + if (!copy_from_iter_full(p, len, src)) { + kfree(p); + return ERR_PTR(-EFAULT); + } + p[len] =3D '\0'; + + return p; +} +EXPORT_SYMBOL(iterdup_nul); + /* Check if the vma is being used as a stack by this task */ int vma_is_stack_for_current(struct vm_area_struct *vma) { --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f44.google.com (mail-io1-f44.google.com [209.85.166.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 5A7C82CCD7 for ; Thu, 11 Apr 2024 15:31:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849504; cv=none; b=hxw9yIKClyIhwVrIxNvocgX9uVLCxwrpaaL2GnojzhsMFcGf4X20JsqhHfSJyh/KCrzdY5uOAVRjfPuc3JbPTc4IGrySM3r2CRFN1UsOQVNkjrLoRJd8qkslBd3zGy0+ZqM6XLVYtHyZOQM+c4jMfc1i+oGSGEfjDBI/CAZUzrc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849504; c=relaxed/simple; bh=K4xrpBkBULCPGCK6Fk/4G7Z9fGrD0D6lk+vhi/Trff0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ru3DOo6zJedyISEBQkU3uvncmN3OI3yeCRAWN++dgr9hcrqUOgNRZpIxiXviFx4TZJEMTLij4UUwzL+OudfQQ0UmfQNqmeXMxDP5268TuVl4we/LicNZQDBsjftdGTj8RPpLUnBNzDq+okklZtMEEON8XiGNgRTpfHXQrdC08OQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=McIhebS8; arc=none smtp.client-ip=209.85.166.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="McIhebS8" Received: by mail-io1-f44.google.com with SMTP id ca18e2360f4ac-7d6112ba6baso57929239f.1 for ; Thu, 11 Apr 2024 08:31:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849502; x=1713454302; 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=VCogxoXjyeDKdqdv8xf2XbvXdN+C9HMoIzzJ43HJyBA=; b=McIhebS8/O+HgZ86ruanw3ewFK9mjOZ/Zdu5E6+ZGquDJkSbqGJl+61hQNmkqRx6Zn J0QQR7mSIOHe9y5ZwHXCGjriSY7yWgoXMlw305BY130uh6OokGYw8/y+EOVPuLPHbzZ0 tqSe1WTZw15z3Lzom9U3Xv4m5Yx0FYC3IDVkhKngjWSV0zOx4YKQ2JFbmjpfUHtKg5hs 536AnFy5xsMLYnvPXOIpnDdhbZ3720TrjHqo0dAWs4kKI+MQqpC4svEQ/pRi+rmYbQXC FHXKuS5sjoMPsGL93i5u/vmUqKVCpesKM6ytj0w4Xv9g+1i90IW/v8AKkHZM4eYVwkBh l4Hg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849502; x=1713454302; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=VCogxoXjyeDKdqdv8xf2XbvXdN+C9HMoIzzJ43HJyBA=; b=HvGto1ckKaCZIn/W8jagNKYv9bpiX9FGmDinrWYY1XgddF9tdnwht2hhW/rDtak1UM cDzjG7MH0jrDw2enIFfvSJ2nj5KMXQjdavE08LP889KLnqSQfhTiPHaUJuOuQwbJt1Vk Ys48YgG4Z+NYTlH+91iFeuWFwnWk0c7O0Jp22mPtq5ecWD1NoWY9bUOkYEaf5iWyWVvs Rot7JdqTrAsqWocBCtA3rJBpNmnCuodCLqdlhOvFwWctKJ4KKGrHkDte+VAnCmuLQMCG L6ZOakFuko3yqJjoNHoyODp9LlEEKZjoL363EtQQIN3PXwxGM4dEcT+jFSMKcT2dkBNs 1A6w== X-Gm-Message-State: AOJu0YynLpJebshXPdqS1gS4FxkjVfVWrn1T7r1O0flNt4SJ4nfxnQll mELsSjvMiVB+AWKpcSwznKhFP4w9NvAfoELvKQr9iI6mII/b9tuKR6umPc3Sj8vxOVKJTMwLqRB I X-Google-Smtp-Source: AGHT+IEtZS1r6Bk6xm7fg8NTSPTSjrP+olCBtoLNIzwnalxIr/A8HbHVHSNMkkkWKwX0QphZrC3QiQ== X-Received: by 2002:a6b:cd08:0:b0:7d5:fe3e:90ff with SMTP id d8-20020a6bcd08000000b007d5fe3e90ffmr197551iog.0.1712849502160; Thu, 11 Apr 2024 08:31:42 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.31.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:31:40 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 008/437] kstrtox: add iov_iter versions of the string conversion helpers Date: Thu, 11 Apr 2024 09:12:28 -0600 Message-ID: <20240411153126.16201-9-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- include/linux/kstrtox.h | 25 +++++++++++++++++++++++++ lib/kstrtox.c | 40 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 65 insertions(+) diff --git a/include/linux/kstrtox.h b/include/linux/kstrtox.h index 7fcf29a4e0de..229e0162849a 100644 --- a/include/linux/kstrtox.h +++ b/include/linux/kstrtox.h @@ -109,11 +109,26 @@ int __must_check kstrtou8_from_user(const char __user= *s, size_t count, unsigned int __must_check kstrtos8_from_user(const char __user *s, size_t count, un= signed int base, s8 *res); int __must_check kstrtobool_from_user(const char __user *s, size_t count, = bool *res); =20 +struct iov_iter; +int __must_check kstrtoull_from_iter(struct iov_iter *s, size_t count, uns= igned int base, unsigned long long *res); +int __must_check kstrtoul_from_iter(struct iov_iter *s, size_t count, unsi= gned int base, unsigned long *res); +int __must_check kstrtol_from_iter(struct iov_iter *s, size_t count, unsig= ned int base, long *res); +int __must_check kstrtouint_from_iter(struct iov_iter *s, size_t count, un= signed int base, unsigned int *res); +int __must_check kstrtoint_from_iter(struct iov_iter *s, size_t count, uns= igned int base, int *res); +int __must_check kstrtou16_from_iter(struct iov_iter *s, size_t count, uns= igned int base, u16 *res); +int __must_check kstrtou8_from_iter(struct iov_iter *s, size_t count, unsi= gned int base, u8 *res); +int __must_check kstrtobool_from_iter(struct iov_iter *src, size_t count, = bool *res); + static inline int __must_check kstrtou64_from_user(const char __user *s, s= ize_t count, unsigned int base, u64 *res) { return kstrtoull_from_user(s, count, base, res); } =20 +static inline int __must_check kstrtou64_from_iter(struct iov_iter *src, s= ize_t count, unsigned int base, u64 *res) +{ + return kstrtoull_from_iter(src, count, base, res); +} + static inline int __must_check kstrtos64_from_user(const char __user *s, s= ize_t count, unsigned int base, s64 *res) { return kstrtoll_from_user(s, count, base, res); @@ -124,11 +139,21 @@ static inline int __must_check kstrtou32_from_user(co= nst char __user *s, size_t return kstrtouint_from_user(s, count, base, res); } =20 +static inline int __must_check kstrtou32_from_iter(struct iov_iter *src, s= ize_t count, unsigned int base, u32 *res) +{ + return kstrtouint_from_iter(src, count, base, res); +} + static inline int __must_check kstrtos32_from_user(const char __user *s, s= ize_t count, unsigned int base, s32 *res) { return kstrtoint_from_user(s, count, base, res); } =20 +static inline int __must_check kstrtos32_from_iter(struct iov_iter *src, s= ize_t count, unsigned int base, s32 *res) +{ + return kstrtoint_from_iter(src, count, base, res); +} + /* * Use kstrto instead. * diff --git a/lib/kstrtox.c b/lib/kstrtox.c index d586e6af5e5a..111231cb4148 100644 --- a/lib/kstrtox.c +++ b/lib/kstrtox.c @@ -19,6 +19,7 @@ #include #include #include +#include =20 #include "kstrtox.h" =20 @@ -405,6 +406,23 @@ int kstrtobool_from_user(const char __user *s, size_t = count, bool *res) } EXPORT_SYMBOL(kstrtobool_from_user); =20 +/* + * Like kstrtobool_from_user(), but takes a source iov_iter rather than a + * buffer. + */ +int kstrtobool_from_iter(struct iov_iter *src, size_t count, bool *res) +{ + /* Longest string needed to differentiate, newline, terminator */ + char buf[4]; + + count =3D min(count, sizeof(buf) - 1); + if (!copy_from_iter_full(buf, count, src)) + return -EFAULT; + buf[count] =3D '\0'; + return kstrtobool(buf, res); +} +EXPORT_SYMBOL(kstrtobool_from_iter); + #define kstrto_from_user(f, g, type) \ int f(const char __user *s, size_t count, unsigned int base, type *res) \ { \ @@ -429,3 +447,25 @@ kstrto_from_user(kstrtou16_from_user, kstrtou16, u16); kstrto_from_user(kstrtos16_from_user, kstrtos16, s16); kstrto_from_user(kstrtou8_from_user, kstrtou8, u8); kstrto_from_user(kstrtos8_from_user, kstrtos8, s8); + +#define kstrto_from_iter(f, g, type) \ +int f(struct iov_iter *s, size_t count, unsigned int base, type *res) \ +{ \ + /* sign, base 2 representation, newline, terminator */ \ + char buf[1 + sizeof(type) * 8 + 1 + 1]; \ + \ + count =3D min(count, sizeof(buf) - 1); \ + if (!copy_from_iter_full(buf, count, s)) \ + return -EFAULT; \ + buf[count] =3D '\0'; \ + return g(buf, base, res); \ +} \ +EXPORT_SYMBOL(f) + +kstrto_from_iter(kstrtoull_from_iter, kstrtoull, unsigned long long); +kstrto_from_iter(kstrtoul_from_iter, kstrtoul, unsigned long); +kstrto_from_iter(kstrtol_from_iter, kstrtol, long); +kstrto_from_iter(kstrtouint_from_iter, kstrtouint, unsigned int); +kstrto_from_iter(kstrtoint_from_iter, kstrtoint, int); +kstrto_from_iter(kstrtou16_from_iter, kstrtou16, u16); +kstrto_from_iter(kstrtou8_from_iter, kstrtou8, u8); --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f47.google.com (mail-io1-f47.google.com [209.85.166.47]) (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 5B8BE38DF7 for ; Thu, 11 Apr 2024 15:31:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849506; cv=none; b=tZEe7kDNmG3H4aCv+D5YmBDVVU48nLjWWAvYQ0sVA0cxuDRcbrcUxRvyqTVUKwRqKjEHDw5U9giEz+MVe5p11/KKSpQMwSVxc5q+If2L4SCG/U7FYAGxTgs+5x+w4VhknQDnxyCThwTmAL5SAboxINE4K9qQsdkRStOmB5/kpE8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849506; c=relaxed/simple; bh=U22C9D/LInc7C2oeWdLmF/wXFNRG/xDLkpPjGRcoAec=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=fHMDmYf3B/XrpFTGxsr0WXKLqLj599eDqjBFjQdXgDNHCvSumVJG139uoqVztSBPAWI/wgt+wbbqmuLafN7aonMakcZH1tCFfCqzfjmbWJP2Cp5Q5sN8Njx8ZLr6GisDQ6DeY8VRS1+L19PbBlZaO2GhXp429prbGMJVSoGlkvk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=pcrC4wDK; arc=none smtp.client-ip=209.85.166.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="pcrC4wDK" Received: by mail-io1-f47.google.com with SMTP id ca18e2360f4ac-7d6812b37a6so8841739f.0 for ; Thu, 11 Apr 2024 08:31:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849504; x=1713454304; 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=gE+vEDqkpaPZEXq5NJ/4gSUFtsdV5kd2xHyDuYSLUuY=; b=pcrC4wDKn5fT39q1+k71o8+1wxXnPqic50WJTzuoG1ALz+BVlWY/q5tIIhmTwSLu6Q /V4XFVRSoajgQiOe8lqjYNzRCDMXfbkjxjSfyB+vtBfwx3lmXzKdl+AxNuMHmH2AJ2bH aOn/jVd23IZ9L1iBz7w+KZ4n/yk+TdYctidCCWucVK3KTXkBJ3ooizmNdPCdToWJ8R1O 6ZQwuUYxBCndfRnBvAoI9d+XqFRmPxufTd8Db+VslUtRyoJFEovhKcLsUYoNb2TxVmFh Qvkl3xy9OuqSQzAKf/K2ojiqK8PDbDSk2HgZ4khSEuSgi4bkMPKivBxaI7HMxlXTDoQZ 15hQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849504; x=1713454304; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=gE+vEDqkpaPZEXq5NJ/4gSUFtsdV5kd2xHyDuYSLUuY=; b=GsyRIth0PG+BS3OWuppxz3yTV9eW+ohH6vzwhRCi0Mck1S+78a2zJGB37OXWCBYscK WLpjMNZoSeM0CPlt91vbpTqdeE+u/Zjzdpk8oyeRQfezw7RL4urzqgO9LA21QzEtMhs/ QZRINQrj45zq1KP5GBzZR8EcdGUtmu3LdmR8VD628JbZxZwShQgZI2/MzQd+P5T/G4VD UqmyjKwcbLe1c8jSC3O0J9oXlK4R4UfvxDpRS9YoZ8as1qXFzAp4ccOO14adnwepJHo3 49krFNTMytMmF6/uCkqxZRiNGn1ezx2r6VRvXTY7gFKsA4GV/LPj8XWgndoZAvtKl2TD Ntiw== X-Gm-Message-State: AOJu0YxW8lqbu2R462UrEMany2kaM3OIwC1ci8CQj25UKKvWa+Xu701I hGJdPIHP+KOb56U3Zd2FlVkpzowmAJaCrxBOFWlQa7jHMkYl1wPFmbFAHLzgCP1fQDlec960K3i z X-Google-Smtp-Source: AGHT+IF+9ZzyNb1WG/5Th9vkX/4w9kckmlgMyAQDznwI6RY2aBU5XzpQINIUy0oJU+iZFBQhGBYblQ== X-Received: by 2002:a92:d352:0:b0:36a:1275:4aeb with SMTP id a18-20020a92d352000000b0036a12754aebmr5871283ilh.1.1712849504197; Thu, 11 Apr 2024 08:31:44 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.31.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:31:42 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 009/437] lib/string_helpers: split __parse_int_array() into a helper Date: Thu, 11 Apr 2024 09:12:29 -0600 Message-ID: <20240411153126.16201-10-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" No functional changes, just in preparation for providing an iter based version. Signed-off-by: Jens Axboe --- lib/string_helpers.c | 44 +++++++++++++++++++++++++------------------- 1 file changed, 25 insertions(+), 19 deletions(-) diff --git a/lib/string_helpers.c b/lib/string_helpers.c index 69ba49b853c7..77f942809556 100644 --- a/lib/string_helpers.c +++ b/lib/string_helpers.c @@ -138,29 +138,11 @@ int string_get_size(u64 size, u64 blk_size, const enu= m string_size_units units, } EXPORT_SYMBOL(string_get_size); =20 -/** - * parse_int_array_user - Split string into a sequence of integers - * @from: The user space buffer to read from - * @count: The maximum number of bytes to read - * @array: Returned pointer to sequence of integers - * - * On success @array is allocated and initialized with a sequence of - * integers extracted from the @from plus an additional element that - * begins the sequence and specifies the integers count. - * - * Caller takes responsibility for freeing @array when it is no longer - * needed. - */ -int parse_int_array_user(const char __user *from, size_t count, int **arra= y) +static int __parse_int_array(char *buf, int **array) { int *ints, nints; - char *buf; int ret =3D 0; =20 - buf =3D memdup_user_nul(from, count); - if (IS_ERR(buf)) - return PTR_ERR(buf); - get_options(buf, 0, &nints); if (!nints) { ret =3D -ENOENT; @@ -180,6 +162,30 @@ int parse_int_array_user(const char __user *from, size= _t count, int **array) kfree(buf); return ret; } + +/** + * parse_int_array_user - Split string into a sequence of integers + * @from: The user space buffer to read from + * @count: The maximum number of bytes to read + * @array: Returned pointer to sequence of integers + * + * On success @array is allocated and initialized with a sequence of + * integers extracted from the @from plus an additional element that + * begins the sequence and specifies the integers count. + * + * Caller takes responsibility for freeing @array when it is no longer + * needed. + */ +int parse_int_array_user(const char __user *from, size_t count, int **arra= y) +{ + char *buf; + + buf =3D memdup_user_nul(from, count); + if (IS_ERR(buf)) + return PTR_ERR(buf); + + return __parse_int_array(buf, array); +} EXPORT_SYMBOL(parse_int_array_user); =20 static bool unescape_space(char **src, char **dst) --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f43.google.com (mail-io1-f43.google.com [209.85.166.43]) (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 440173D0A9 for ; Thu, 11 Apr 2024 15:31:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849508; cv=none; b=gN/QsiqibN8n0ZMPIGHqVe4Km6pjvPSDkjuPxb+abOy/1bIvZg/fKf7CMzMiVYvzx32yZbATyzfIUDOM16cMMkjEQt5FvkxoUuzakm4M7uP2YHtA3SVj8teXyxHL3Z9kJqcks0U5rfhhAODRk23M2e1CJFz5IVBAbbNhNGHVE9c= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849508; c=relaxed/simple; bh=VBDJgnrPF2tVaWfyB6lISyxfNKzKEUryj7Q+6p+Wuww=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=OVO+IAIgx7zDT0Grh6xfe/5B4g4bYi7fhZ3OKhxZ7s9ZoVw6hASU1yV3/e6GZplTaztMJ3Tf9wR5wP2tC01J2ZKK1pBxd04ZHY3893g7Z510Rp5s83bWLnTOGEsqbfbBa/kfl2R2da8wotW1usly137KjeWgB+FtJmOU5kCWyOo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=XDmIsfwf; arc=none smtp.client-ip=209.85.166.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="XDmIsfwf" Received: by mail-io1-f43.google.com with SMTP id ca18e2360f4ac-7d67d1073easo9690739f.0 for ; Thu, 11 Apr 2024 08:31:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849506; x=1713454306; 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=78h3OU/20E4GNiyf/egzrMDAZ6rqzVufo+cQ/mhUEoI=; b=XDmIsfwfuD7r8fRK2CuSOfE1GKdYQYZlJkMRdnLWkZuU0pKaeY5Iw1vlnwRqUFw345 ZU5mqhWXzpkgnH9nUxBgnixtRTiOqN2FaPKvjj2AoS61qgDIo/MU73Sv8UqNVohp0gDv AN1QLQdZDkcz7rG8oWogT/smhocX4D5q1d2syOFHTvP2RcWMqMR7nU63L+1TyTAHQJ9o cnnUTRGOz1bj/TVfseFRccv7KrdQaGVTATUowS0yHFqGIS8VruW/eh8pvFguGpC6kG9u +rS4lmobsDl1POa/glulCuNOUtcfvRHGRP8M4DD6V3aJz72xa6hHs1MXAkPR0rFKNGi7 +2hQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849506; x=1713454306; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=78h3OU/20E4GNiyf/egzrMDAZ6rqzVufo+cQ/mhUEoI=; b=UFONqKAsPdDDOyG2ZGjFikr2AUSu2WSk4DXTC7i7cFlBNk7paR1usgVdrjqhO8QWxJ ds2WSyRJnbUg9sbm4QwyQOwolu9RbBAthEUkwAAyfpjATnMNqCuLxCNZNzINT8s6IjnR j0HTLlrLinZlkRaevyo3JTqW125/SR1w65HsMx8OdiuXkysBAt/bfmtE4BEClhIVSn5/ vi6VHJs6EPCbNyKUtMKNEUso7xyGw+suhSYjfynY9F0lowv3mszk8PkI+Mw9Nvn4b2lW DFDR59XJk1yKZMZhlInDMZHkBp4JwhbbpTysMEpJA34bWJdZe/1iLOFXzxOrFnN5NjeI Ln5A== X-Gm-Message-State: AOJu0YxfzxLjJ+Jz1S56HLvQNpUwmTrbkdT7ePtxF9r+TaSiayixj/rY k2Ah69QJqWo7DBdLrGSeWOj5wVFzJfhxRH7vXnnHCrxciQNS+S8sQYISkMM0Q53Gx10NTuWeQKq / X-Google-Smtp-Source: AGHT+IGNSvD1OcD474lUWgvq3VCpVCwPEO0ef92nmToIhW7gKazt6rOVV/gKY1Z85lx9tzN0RRF4tA== X-Received: by 2002:a92:2c10:0:b0:36a:2d25:3d82 with SMTP id t16-20020a922c10000000b0036a2d253d82mr6149003ile.0.1712849505872; Thu, 11 Apr 2024 08:31:45 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.31.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:31:44 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 010/437] lib/string_helpers: add parse_int_array_iter() Date: Thu, 11 Apr 2024 09:12:30 -0600 Message-ID: <20240411153126.16201-11-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Works just like parse_int_array_user(), except it takes and iov_iter instead of a ubuf + length. Signed-off-by: Jens Axboe --- include/linux/string_helpers.h | 2 ++ lib/string_helpers.c | 19 +++++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/include/linux/string_helpers.h b/include/linux/string_helpers.h index e93fbb5b0c01..f38157114fc0 100644 --- a/include/linux/string_helpers.h +++ b/include/linux/string_helpers.h @@ -11,6 +11,7 @@ struct device; struct file; struct task_struct; +struct iov_iter; =20 static inline bool string_is_terminated(const char *s, int len) { @@ -32,6 +33,7 @@ int string_get_size(u64 size, u64 blk_size, const enum st= ring_size_units units, char *buf, int len); =20 int parse_int_array_user(const char __user *from, size_t count, int **arra= y); +int parse_int_array_iter(struct iov_iter *from, int **array); =20 #define UNESCAPE_SPACE BIT(0) #define UNESCAPE_OCTAL BIT(1) diff --git a/lib/string_helpers.c b/lib/string_helpers.c index 77f942809556..ced4f77dc5e8 100644 --- a/lib/string_helpers.c +++ b/lib/string_helpers.c @@ -188,6 +188,25 @@ int parse_int_array_user(const char __user *from, size= _t count, int **array) } EXPORT_SYMBOL(parse_int_array_user); =20 +/** + * parse_int_array_iter - Split string into a sequence of integers + * @from: The iov_iter buffer to read from + * @array: Returned pointer to sequence of integers + * + * See @parse_int_array_user, this is just the iov_iter variant. + */ +int parse_int_array_iter(struct iov_iter *from, int **array) +{ + char *buf; + + buf =3D iterdup_nul(from, iov_iter_count(from)); + if (IS_ERR(buf)) + return PTR_ERR(buf); + + return __parse_int_array(buf, array); +} +EXPORT_SYMBOL(parse_int_array_iter); + static bool unescape_space(char **src, char **dst) { char *p =3D *dst, *q =3D *src; --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f49.google.com (mail-io1-f49.google.com [209.85.166.49]) (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 C6F923D994 for ; Thu, 11 Apr 2024 15:31:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849510; cv=none; b=WAaNG8j5lZSueUJNAZdiQn66b8xx0DbNkyzpZNZEtB19iADaPSNkI0Sbu9V49SMZRmIqGybo4kPOb2s/GIG17mwnUbgJEq7Em+taTgh5ZeX6tZBa+QHCCWRXeecbYTzCLQ2LfDW0NTUN/C4spfUocBHBCZwhj7qz16e1QXQbTnU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849510; c=relaxed/simple; bh=YFSjkIyMvV/B3c/pNdT/UFmxAspHxJVXohBIvw0zUWU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=AYt4NwLdQFzzzCrzwUkOadXndT6SXq4h7EUTQktiCLcgTFPa8vNvclqShKfUZjIgkJrt07947OVBbV+UzKVb0rmEIp5QNZc7nXi9xoZMvaSlnuFza4KICFjGDhxLUgNzZZOsa5MKqgbipIS7NyIfcrUR/V6fNym3pLwWsM+WBag= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=W6XMIGeq; arc=none smtp.client-ip=209.85.166.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="W6XMIGeq" Received: by mail-io1-f49.google.com with SMTP id ca18e2360f4ac-7d67d1073easo9691539f.0 for ; Thu, 11 Apr 2024 08:31:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849507; x=1713454307; 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=83kOshJJaLZ7SIF5wsRq6xBjLbldVO/DvvsYIUNmSyA=; b=W6XMIGeqazkaXpiE/Qx39Aksxg/PI4jHjnfUN5XMtThXGOZF33OS1NP9xFzqZWvnvp B4HlpjvLWI0LlCpYz6f46AjBZiXnZGdK9pMDoWuCNA3TuM6qwfe4lP9sGWlnCT6Rkhvy qulMDMueOY2xW6h39AdFgjZNRDwm1u2Hd3jKsu9WjItuQrYrtn026hatvX4JHLVZkAR6 DqLdML/Ixs11BGr2YVkC7fONRM4msE/PhYRs+teyPprMoaL+8WyvqKak7ReGQT9bL7O7 AHIeiFtgtNJJ50kXGSP5htKP5XcV9crBmLdV53FgaHeARyi2tK8PCUAGzxGhRELYI0K3 o5tw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849507; x=1713454307; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=83kOshJJaLZ7SIF5wsRq6xBjLbldVO/DvvsYIUNmSyA=; b=YLbgyBO5mUxD4UmCLTc7knAC3lv0YRDWjh+8OgYnly7tw6PE2cX1HlIMCXZN9UPikf vHJb32JAqJCh3796o558V8EFydvKAP7QstlOACOeI8D105ORWDqofL7Y4tGYdcLn3LP3 Yo+aGnQ1WKhwk4YIvVuAs2Uq/EWc5GQfiEugiBOSc3I88q8JWlsI10CyjG+LjZVA8g9u uNi4k0fcZigQEYTnrh3wjW9JpaY6rqYHGmZmHPdt5BO9GX38azeoaoM08KhV0b2uGZqq 4zVgPvqPA52ExdZibjpUKbLuymf85Ncqd0GMYdUULmH8tYYA081O/1fkMVcnGjGCRApc Ot8A== X-Gm-Message-State: AOJu0YwRCyTjrr5Juh526mEcheAdAbAJK8DXV3od9h+tWkmBqiDJhXzd N74ht7w0CAZPVeBeeadRYSFzJ33v2sL2TgKWCqES8C7vMyX4nuYMkc2uj5/T1LK1RcIiq/rX5x2 q X-Google-Smtp-Source: AGHT+IHcO/jMt0Sh+JGzqMXL4SJO/qgQ3K6VAzpv+CKJ3Mn5pqWNcXGbM2mQvi+fQGiUa6CqzVNKVA== X-Received: by 2002:a6b:c34e:0:b0:7d6:7b7c:8257 with SMTP id t75-20020a6bc34e000000b007d67b7c8257mr201026iof.0.1712849507619; Thu, 11 Apr 2024 08:31:47 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.31.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:31:46 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 011/437] virtio_console: convert to read/write iterator helpers Date: Thu, 11 Apr 2024 09:12:31 -0600 Message-ID: <20240411153126.16201-12-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Add stub read/write iterators which just use the VFS helpers, and kill the ->read() and ->write() usage. Signed-off-by: Jens Axboe --- drivers/char/virtio_console.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/char/virtio_console.c b/drivers/char/virtio_console.c index 035f89f1a251..154934eb9ae9 100644 --- a/drivers/char/virtio_console.c +++ b/drivers/char/virtio_console.c @@ -771,6 +771,7 @@ static ssize_t port_fops_read(struct file *filp, char _= _user *ubuf, =20 return fill_readbuf(port, ubuf, count, true); } +FOPS_READ_ITER_HELPER(port_fops_read); =20 static int wait_port_writable(struct port *port, bool nonblock) { @@ -844,6 +845,7 @@ static ssize_t port_fops_write(struct file *filp, const= char __user *ubuf, out: return ret; } +FOPS_WRITE_ITER_HELPER(port_fops_write); =20 struct sg_list { unsigned int n; @@ -1087,8 +1089,8 @@ static int port_fops_fasync(int fd, struct file *filp= , int mode) static const struct file_operations port_fops =3D { .owner =3D THIS_MODULE, .open =3D port_fops_open, - .read =3D port_fops_read, - .write =3D port_fops_write, + .read_iter =3D port_fops_read_iter, + .write_iter =3D port_fops_write_iter, .splice_write =3D port_fops_splice_write, .poll =3D port_fops_poll, .release =3D port_fops_release, --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f47.google.com (mail-io1-f47.google.com [209.85.166.47]) (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 A27043FB1C for ; Thu, 11 Apr 2024 15:31:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849512; cv=none; b=r6CPGJ1mcgxCU9/OscYo8h0b544yqh8hoJyfPurO3yvk5jjmDTyvye5A4yLXxfkhMp52nlqJOJmfCESpNtvf0xU2oCa2LLS2EjaGSIPe5GlAON2MnOIlANakXgwKY+nW7+54aBoxE5tFNf+olwakmXqhxTp/fZNqDcsTYbNGEmg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849512; c=relaxed/simple; bh=cHwNtPSO4l9UcgbnVRkBJekVjoSEK2X5F+I523oZ65A=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=L9Ey0uVGO6m6aikDSc3JAlX/niwZGNSJpYXkYgRP+NSO57d9LmUxSzWPnYxO1E08rEyUkj+1WHxHCAw6uEdXXeiIUOcX+ON/xpa1acBZEp6ca790DayPQlhhqmKwjzdZFG/b8w8P3Pc9j3ezY4EMbZUeOgUYN3k8BBeO04KT9lc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=dKVzgqzC; arc=none smtp.client-ip=209.85.166.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="dKVzgqzC" Received: by mail-io1-f47.google.com with SMTP id ca18e2360f4ac-7d0772bb5ffso180585339f.0 for ; Thu, 11 Apr 2024 08:31:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849509; x=1713454309; 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=ewHA3RTUIDnyZGZEA9VPS2PhyM7qn+xOwc2x/PdL7Ak=; b=dKVzgqzCsh/6gU3VET4lRxgR6XQuR6BxZQnGtkiqV4RmjU/NP+5FasiNqtdFe9cPcn 4JauJZYac2uwZRuA2ha0MjGdTDTgyKmhJuaQbqpY3DKU4B6NO68Gm9cKhfpLeH58+Cxz ZrTQZlVqkpAORPTgwouxX0a33bRwmagQbSZH4VqbGxgTOjTLbE2hNFXeE3YWWJfFcrsd VOaQeqrE0HIhW1Yb0qnXru6IjM2IflXUz8LW/rLOlkeJf6ybV+v/mrQKgev0ViJcSffJ 5tKvXXQKcyF2geupG4UrN8kmhjiiYYr1B1sEuSRmvvJASIAOJgE6jd2vk3sii389Vq/a HuiQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849509; x=1713454309; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ewHA3RTUIDnyZGZEA9VPS2PhyM7qn+xOwc2x/PdL7Ak=; b=PwdBxl0G4YsR9vppa/37L+ZcV5lv/7ROogQhPPpJAbOtPf5gTpPzsTYlWfDna555Qy 6VFwy+KmpNGCV0jz0wapJLttbA6k3rhq/t31kKQfbpl4OiS8kv/V91exrVswqS5FpKDj 2SMIH+QedulrLh7z2cjMhEahhG8UUc7DAKEMl4vCuBCLH1Ezr6JV7gSIMj5y/S5IjnSS PjNoEAbpeYopC0Co6v32z4DSSyldhHyUhsa0S0vniA7x/rh9UHwZCmDs0ZtGfjlOIJ34 OtPGTqF3d2h7Ap621auocKx/C6Uqb7VY3EdUc2V9UD01BUnvfsHLEgNin3D1xF3zj2/W r09Q== X-Gm-Message-State: AOJu0YxTvdcrUTk4/Dtj86Vpnq8B+wehwAkZqkSaBedtly416Q4N576k acWygz09QAHJr1V5OdoDsAusXXJtrVxMAug9ruXVzvUHOrOikf26Gh2VQ/bTns5SKlryfjq4CHr L X-Google-Smtp-Source: AGHT+IHPNClr/AxM+RpUvIM8DRJoCqBmVgVIiH9+RuPt+cqJusK0mX98D86/OawZ3vXByIRgfVJO+g== X-Received: by 2002:a05:6602:4ed7:b0:7d5:ddc8:504d with SMTP id gk23-20020a0566024ed700b007d5ddc8504dmr176643iob.0.1712849509392; Thu, 11 Apr 2024 08:31:49 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.31.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:31:47 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 012/437] char/adi: convert to read/write iterators Date: Thu, 11 Apr 2024 09:12:32 -0600 Message-ID: <20240411153126.16201-13-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/char/adi.c | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/drivers/char/adi.c b/drivers/char/adi.c index 751d7cc0da1b..941188be2385 100644 --- a/drivers/char/adi.c +++ b/drivers/char/adi.c @@ -51,10 +51,10 @@ static int read_mcd_tag(unsigned long addr) return ver; } =20 -static ssize_t adi_read(struct file *file, char __user *buf, - size_t count, loff_t *offp) +static ssize_t adi_read(struct kiocb *iocb, struct iov_iter *to) { size_t ver_buf_sz, bytes_read =3D 0; + size_t count =3D iov_iter_count(to); int ver_buf_idx =3D 0; loff_t offset; u8 *ver_buf; @@ -65,7 +65,7 @@ static ssize_t adi_read(struct file *file, char __user *b= uf, if (!ver_buf) return -ENOMEM; =20 - offset =3D (*offp) * adi_blksize(); + offset =3D iocb->ki_pos * adi_blksize(); =20 while (bytes_read < count) { ret =3D read_mcd_tag(offset); @@ -77,8 +77,7 @@ static ssize_t adi_read(struct file *file, char __user *b= uf, offset +=3D adi_blksize(); =20 if (ver_buf_idx >=3D ver_buf_sz) { - if (copy_to_user(buf + bytes_read, ver_buf, - ver_buf_sz)) { + if (!copy_to_iter_full(ver_buf, ver_buf_sz, to)) { ret =3D -EFAULT; goto out; } @@ -91,7 +90,7 @@ static ssize_t adi_read(struct file *file, char __user *b= uf, } } =20 - (*offp) +=3D bytes_read; + iocb->ki_pos +=3D bytes_read; ret =3D bytes_read; out: kfree(ver_buf); @@ -128,10 +127,10 @@ static int set_mcd_tag(unsigned long addr, u8 ver) return ver; } =20 -static ssize_t adi_write(struct file *file, const char __user *buf, - size_t count, loff_t *offp) +static ssize_t adi_write(struct kiocb *iocb, struct iov_iter *from) { size_t ver_buf_sz, bytes_written =3D 0; + size_t count =3D iov_iter_count(from); loff_t offset; u8 *ver_buf; ssize_t ret; @@ -145,11 +144,10 @@ static ssize_t adi_write(struct file *file, const cha= r __user *buf, if (!ver_buf) return -ENOMEM; =20 - offset =3D (*offp) * adi_blksize(); + offset =3D iocb->ki_pos * adi_blksize(); =20 do { - if (copy_from_user(ver_buf, &buf[bytes_written], - ver_buf_sz)) { + if (!copy_from_iter_full(ver_buf, ver_buf_sz, from)) { ret =3D -EFAULT; goto out; } @@ -166,7 +164,7 @@ static ssize_t adi_write(struct file *file, const char = __user *buf, ver_buf_sz =3D min(count - bytes_written, (size_t)MAX_BUF_SZ); } while (bytes_written < count); =20 - (*offp) +=3D bytes_written; + iocb->ki_pos +=3D bytes_written; ret =3D bytes_written; out: __asm__ __volatile__("membar #Sync"); @@ -207,8 +205,8 @@ static const struct file_operations adi_fops =3D { .owner =3D THIS_MODULE, .llseek =3D adi_llseek, .open =3D adi_open, - .read =3D adi_read, - .write =3D adi_write, + .read_iter =3D adi_read, + .write_iter =3D adi_write, }; =20 static struct miscdevice adi_miscdev =3D { --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f50.google.com (mail-io1-f50.google.com [209.85.166.50]) (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 7076F40870 for ; Thu, 11 Apr 2024 15:31:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849513; cv=none; b=XD3jMTw0kegJ+QEUnBvCxToU5S8mi5gLyooWJUKKYz8CKWiw+XqcEpsiDFK6PGwZdo+PK8FqTFa8/HQ0YfFwQ5hQG9lcVjmOEKd3CAx038XwYIcYOvBpLVUGrEn9/Y6iyS9qnaziL9fYSgvHUJ345BfV9JRKgwvM/0U/wED+plA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849513; c=relaxed/simple; bh=0BbIai3xcoBMm6AX7CtizvK5uk1tBG0zn92zXX7H6gI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ucTJhqWcLaBD9Xk/RpmszMQICC8bnoFgr/DIUVqcy6+dwHhm/hItDEhxxMtkP2vCpGF5mhcJ54/p1eerI+V35p6ws/dqtRaQ7y+wz6gDQ6s9rn2VBznDaLvCimrbeSgIQSi6ljxerl9gYs2o0BELOWY1jLWAccIvpKF1/wd1H2E= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=1/FyNbSU; arc=none smtp.client-ip=209.85.166.50 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="1/FyNbSU" Received: by mail-io1-f50.google.com with SMTP id ca18e2360f4ac-7d0772bb5ffso180585739f.0 for ; Thu, 11 Apr 2024 08:31:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849511; x=1713454311; 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=RAtR2mhDsnYSMCpP/HQol96/PSpuexfwRhsrrIksyFM=; b=1/FyNbSU69Js0zJxJDdHEkvI5pscHO56XsenNR1leP7dwkyBBxefvSYSLT/CnjdZif WEvssdHOTWTyLfSeGrAoI+HwuYvX+dbB9Q4Dfc5nRWX3Ofx6u8U4e5syEmoSe+8UYjGP UVp9pAWbTgHbj4/8oYcRsxrVJFtnAA+OWH5c7u1DBj0JNmOMoV8nXHU9RcBXEtfI2CNr Csu1GfnVnMAQKVKUxmjJDKqEjdgOsE7tSkfM0cunqJnnkAw/lWMZqqYh8BVhYrpZAH6N MQmMt0sIOYJbmFrK9IoTe3Fk4FYT6Znyu3aFY6V1y/mG0N4DqqCLu4d2htL0R8zDGfjY IdTg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849511; x=1713454311; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=RAtR2mhDsnYSMCpP/HQol96/PSpuexfwRhsrrIksyFM=; b=c2bGOiATMmNNcXJYb4vSjsJcLGKy6DXVGMwbTQJ3Q/4UhZZMpLs7BH1rgiKfGU46Ee SFczJcS9Wnl9IpHQsUW6vATMzrJi/FEVAoghhX8TuzVwiMu/MgBU7OXvWDq6pTK34OnK z2MeYH8+32WV6YwJRpRPhUluniNevX8hR1mK0i4ZKGbnoOw8Wbv771sqeB0J354JH0RC +qoTe6PS7XRbJdDlm5k2+pRic18vCm4aXz7y2XWH/uom4fxfW2FOq0jOekhNi7SwXT9L 1RG5Ec+pv+OdsPap6oUGqx5X/BUK1at747XQihn1lt9/VE+giKnng3CWTpTkv2K4Cs05 EVaA== X-Gm-Message-State: AOJu0Yy78FBo1uTXB5bAXQg4gzTWiZ4nBIYIWBIOOSJPQ8nq2tzStB8F gDGXR1LtR3aw0iTU4tOegW4HFqrIROvh17loz9dP+yQAeiK5dlrpri+XOAoPBXwssHYLcWbNV97 o X-Google-Smtp-Source: AGHT+IGGM2PRznFIekb0G+/kIHXXmeEVV/8kDzhczLXSVgKJuYLtjxASpFSx1O4nd6jHSL9nCB2tSg== X-Received: by 2002:a6b:4e14:0:b0:7d6:631d:7b0 with SMTP id c20-20020a6b4e14000000b007d6631d07b0mr171892iob.1.1712849511189; Thu, 11 Apr 2024 08:31:51 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.31.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:31:49 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 013/437] char/apm-emulation: convert to read/write iterators Date: Thu, 11 Apr 2024 09:12:33 -0600 Message-ID: <20240411153126.16201-14-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/char/apm-emulation.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/drivers/char/apm-emulation.c b/drivers/char/apm-emulation.c index e795390b070f..6b0ea84cf9c6 100644 --- a/drivers/char/apm-emulation.c +++ b/drivers/char/apm-emulation.c @@ -31,6 +31,7 @@ #include #include #include +#include =20 /* * One option can be changed at boot time as follows: @@ -200,9 +201,11 @@ static void queue_event(apm_event_t event) wake_up_interruptible(&apm_waitqueue); } =20 -static ssize_t apm_read(struct file *fp, char __user *buf, size_t count, l= off_t *ppos) +static ssize_t apm_read(struct kiocb *iocb, struct iov_iter *to) { + struct file *fp =3D iocb->ki_filp; struct apm_user *as =3D fp->private_data; + size_t count =3D iov_iter_count(to); apm_event_t event; int i =3D count, ret =3D 0; =20 @@ -218,7 +221,7 @@ static ssize_t apm_read(struct file *fp, char __user *b= uf, size_t count, loff_t event =3D queue_get_event(&as->queue); =20 ret =3D -EFAULT; - if (copy_to_user(buf, &event, sizeof(event))) + if (!copy_to_iter_full(&event, sizeof(event), to)) break; =20 mutex_lock(&state_lock); @@ -227,7 +230,6 @@ static ssize_t apm_read(struct file *fp, char __user *b= uf, size_t count, loff_t as->suspend_state =3D SUSPEND_READ; mutex_unlock(&state_lock); =20 - buf +=3D sizeof(event); i -=3D sizeof(event); } =20 @@ -379,7 +381,7 @@ static int apm_open(struct inode * inode, struct file *= filp) =20 static const struct file_operations apm_bios_fops =3D { .owner =3D THIS_MODULE, - .read =3D apm_read, + .read_iter =3D apm_read, .poll =3D apm_poll, .unlocked_ioctl =3D apm_ioctl, .open =3D apm_open, --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f50.google.com (mail-io1-f50.google.com [209.85.166.50]) (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 7C6214207D for ; Thu, 11 Apr 2024 15:31:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849515; cv=none; b=Vf5ENib9AR+6gxVkKr7MLACvty3i9PWh5VdZd6WXPBpo5J7DKkLsTUzv2HV1eZZltH7xi3ProcAFAsuXnRBHWyXnfatTxICcZptEXQ+szPPsv8KwN+R6fe4muZ262off7z2j5czJHRWI3OQCeY2+ZmxXJASpLQdSimD5rhX9MZw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849515; c=relaxed/simple; bh=J3ZRmS/kDm6SwyFvzMdRfKQv+UZSkFjqVo0zbnBiUNk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=gA4E74QGhcUTbuRt8dospmGi17okwZC5jH8pDbw0rpDK3O7reIZLxeTzzDoqkMdZTmA9G6ld5FHRQoup4pyktO/81FTohqs5zoqLzn97DsrlsqTY7W87KxLHsUi+8vp3ycTwI7imXYv54/F/rbaK7my5XA9boAuH0OjwNRpfAOs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=q0a3Gw1b; arc=none smtp.client-ip=209.85.166.50 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="q0a3Gw1b" Received: by mail-io1-f50.google.com with SMTP id ca18e2360f4ac-7cc0e831e11so170414339f.1 for ; Thu, 11 Apr 2024 08:31:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849513; x=1713454313; 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=ZL6EZ74fam3Jx/eLwHx98Jvd5reprRiIoAdDHUBvKk8=; b=q0a3Gw1bfOs70uXXnHc5phcrsGpX4JizkO2hECIFEeFc98aiGmESGKFPH8o9MXMQKB 9hPjsV3SoRW/xeLhE019xgDeDYBpm+gGCFIaqeA/OFINJagX/drn2UZuSDd8ChzMNxgk IoVAoGUJB73pQT4noAqHTvfk4fogKl9dLYdTu7vyUtDMZiY5y0Ib8LQ7vmYubiOoT7fj NTzBpgXP0+Xzon0ZrhY9co5h1/8YEl0dUZxJ2o8+l0WticMU46nRC1FTrbLATCrCvRX2 G1K3Akx9eaXkw2zem6AhckQQzGleUxFqVgt2L25CXbAsNfa3v5E0jDpR8yJb0TtCqXTk iRmw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849513; x=1713454313; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ZL6EZ74fam3Jx/eLwHx98Jvd5reprRiIoAdDHUBvKk8=; b=k9rtTAJ3/bm0UV3uNgddmDpwuodbrghSk2kK1vK65TCNS7SN+stLWK+ytoiKszUhDM N6VLxkC1aejefZYb7NRBmExuiKK9918NZddYyISLwiJhA3chj6w+QWvG6s6kxOGz/AW6 qMtiSBRxK+EBfId2F9wC+07GrI2Ai9uY2HYpQKu1SKKXJcgNYe++8fk7PROYXRNpwdu1 OWur78WUBmeMpS3sFOUpd6dj3iMAeajUZ0/l8vaEi/WHN2hWJ+5+pb+nOP8KPnnycF6D +JZhfzk4qwysvQQ7lDW3Qt2X+GEuaBPLZDfWOm3u8gpAQr+f24aLv7xCtBz41ozSOgHh 8yyQ== X-Gm-Message-State: AOJu0YzOoHhXjhJiTte/A9qDxxVSSRbRbPQBQ1N9Nwnwq49gQQo+D6jB HyA1fvsiHl24pUntxFmyotpnBg/dLfyEvn8UuIK7/SLehL6Mj/gHCBWd6bpvWCJxre2k1pdMP5a p X-Google-Smtp-Source: AGHT+IEnXrUxK5hqmuMIbt1Slc0M5tsdshnceqv6keuouDTZDysIB0Q8chaIfFGDZ8qg+D0z55euCg== X-Received: by 2002:a6b:5b10:0:b0:7d0:bd2b:43ba with SMTP id v16-20020a6b5b10000000b007d0bd2b43bamr209645ioh.0.1712849513342; Thu, 11 Apr 2024 08:31:53 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.31.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:31:51 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 014/437] char/applicom: convert to read/write iterators Date: Thu, 11 Apr 2024 09:12:34 -0600 Message-ID: <20240411153126.16201-15-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/char/applicom.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/drivers/char/applicom.c b/drivers/char/applicom.c index 69314532f38c..9a1e5f7111b1 100644 --- a/drivers/char/applicom.c +++ b/drivers/char/applicom.c @@ -109,11 +109,14 @@ static ssize_t ac_write (struct file *, const char __= user *, size_t, loff_t *); static long ac_ioctl(struct file *, unsigned int, unsigned long); static irqreturn_t ac_interrupt(int, void *); =20 +FOPS_READ_ITER_HELPER(ac_read); +FOPS_WRITE_ITER_HELPER(ac_write); + static const struct file_operations ac_fops =3D { .owner =3D THIS_MODULE, .llseek =3D no_llseek, - .read =3D ac_read, - .write =3D ac_write, + .read_iter =3D ac_read_iter, + .write_iter =3D ac_write_iter, .unlocked_ioctl =3D ac_ioctl, }; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f46.google.com (mail-io1-f46.google.com [209.85.166.46]) (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 368CB446B2 for ; Thu, 11 Apr 2024 15:31:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849517; cv=none; b=NSzET1r+JksSbqvnvCXdNdcZuufnIMw/OnI+Gi+yyCalvG7F60xitQhqzZdtn4dmT7+ux3HLgY365zIhq5dPAdTXkPNqSua5zSRz8E+DQL5l8OUNfHsJnlxhksqVu4wWvHKwTHwpvV3By1pRJS9VygiwAffj6C9mY81xunc2j1U= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849517; c=relaxed/simple; bh=cIEXLdC2HWL+2599YuKJuBEQEfjnMr/riJhIib9YLes=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=BzWRn33UYAiXctYg07D4OSYXw45CcTdS5r8pu4s799VI82wF1vBdvs+iBThI3IYD2FE+mXPhMPpNXF01i9FPZdVEZskd347H6t6ICVIQorcwyZktLOOlTS2g8SMoL/YRVHY1IyD9DqlFDmUTrKW+RTlk2CIlK52Lrv11sBozsBI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=2nEmea6o; arc=none smtp.client-ip=209.85.166.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="2nEmea6o" Received: by mail-io1-f46.google.com with SMTP id ca18e2360f4ac-7d67d1073easo9694839f.0 for ; Thu, 11 Apr 2024 08:31:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849515; x=1713454315; 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=aqlXo04DZnbgap02/34Lt7vrJx13e1dXnLr969j/Z1o=; b=2nEmea6oGiavoLXMUeD5kx6HvQZiKSNjJbww/xcFL1vtr6p7/kC89VFMLiKEA7fz/5 wmwRrzHMf/K0isptkzxozt/nYJnIb3xBRgwMhinkBjRbFKdwZ9gwDOIr8x3LNOzMPeQF Yt0qUGg3KAUF3wzvrfVTvExA86piaz0qjZcmddP1Z8xL4Jq0QSHVpiEwlDWyd5rNH7oA vaLhujD4/YVNIluXtJJfpt/CLTc1lfjt03lQnHxNyeIXdUcPCLwKZS+eliuaPEPZtYQp W/dN3cmyTKIh/FOCixtLiMEqkyAGLTdvX8Y0K9n88hBTHxGI+QNwohKBZ6wzXUykdnCh xsZQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849515; x=1713454315; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=aqlXo04DZnbgap02/34Lt7vrJx13e1dXnLr969j/Z1o=; b=g7F6GBc2gbCfkLmelvLsOXw7DvhGFGDsLrLQIlC7K6f4PQwmGzk/hsl/9Bpy7jsCk/ ai4VLnHX8Wq0WBaKwP+6uC0XzpzikRXamv10ZIKzO6zoIo4P4yLFCBlzdJ+OfvCbHMyn St5JN97RYhdVhrm7SVg2XaKoV8ZW4/8+JqokeaZvqt+yAYC7iWMgR5+WiHpiB5QZ5IzC X72HyZbOIQ/xaniff2kWS10UEDRaz2spTdTc63aVE5OzEybcEK+r8hD8kGqDpe+YD92d Vy8ogiZ0Hz146IhKcc0YwIMCarjvXz+b8m8New47uXLIiF0YmyUYoG9lupp+NuUNCrdQ MO0w== X-Gm-Message-State: AOJu0YyZf3uTeViNurpA2abSsIzZuebjwvnqv2TOmDhNo3eryPlsG4EN UtP5lKMJD7dPzhFhXMRLekTMRI0TmLVP5Vd8bpC6e1DzFG6yFPj+dIG37DYuVv9eJYNgCE+RPV7 f X-Google-Smtp-Source: AGHT+IGRpLE3SAXNqdWcksFptHr0UWrot6a4oAAUBi5j/58C5txxrB905LGQwxBvfVZd086rVgi45Q== X-Received: by 2002:a6b:7b05:0:b0:7d6:60dc:bc8e with SMTP id l5-20020a6b7b05000000b007d660dcbc8emr182167iop.1.1712849515062; Thu, 11 Apr 2024 08:31:55 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.31.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:31:53 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 015/437] char/nsc_gpio: convert to read/write iterators Date: Thu, 11 Apr 2024 09:12:35 -0600 Message-ID: <20240411153126.16201-16-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/char/nsc_gpio.c | 22 ++++++++++++++++------ include/linux/nsc_gpio.h | 8 ++------ 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/drivers/char/nsc_gpio.c b/drivers/char/nsc_gpio.c index da930c72bc74..0df6fb1232cd 100644 --- a/drivers/char/nsc_gpio.c +++ b/drivers/char/nsc_gpio.c @@ -39,8 +39,8 @@ void nsc_gpio_dump(struct nsc_gpio_ops *amp, unsigned ind= ex) amp->gpio_get(index), amp->gpio_current(index)); } =20 -ssize_t nsc_gpio_write(struct file *file, const char __user *data, - size_t len, loff_t *ppos) +static ssize_t nsc_gpio_write(struct file *file, const char __user *data, + size_t len, loff_t *ppos) { unsigned m =3D iminor(file_inode(file)); struct nsc_gpio_ops *amp =3D file->private_data; @@ -102,8 +102,8 @@ ssize_t nsc_gpio_write(struct file *file, const char __= user *data, return len; } =20 -ssize_t nsc_gpio_read(struct file *file, char __user * buf, - size_t len, loff_t * ppos) +static ssize_t nsc_gpio_read(struct file *file, char __user * buf, size_t = len, + loff_t * ppos) { unsigned m =3D iminor(file_inode(file)); int value; @@ -116,9 +116,19 @@ ssize_t nsc_gpio_read(struct file *file, char __user *= buf, return 1; } =20 +ssize_t nsc_gpio_read_iter(struct kiocb *iocb, struct iov_iter *to) +{ + return vfs_read_iter(iocb, to, nsc_gpio_read); +} +EXPORT_SYMBOL(nsc_gpio_read_iter); + +ssize_t nsc_gpio_write_iter(struct kiocb *iocb, struct iov_iter *from) +{ + return vfs_write_iter(iocb, from, nsc_gpio_write); +} +EXPORT_SYMBOL(nsc_gpio_write_iter); + /* common file-ops routines for both scx200_gpio and pc87360_gpio */ -EXPORT_SYMBOL(nsc_gpio_write); -EXPORT_SYMBOL(nsc_gpio_read); EXPORT_SYMBOL(nsc_gpio_dump); =20 static int __init nsc_gpio_init(void) diff --git a/include/linux/nsc_gpio.h b/include/linux/nsc_gpio.h index d7a04a6e3783..a97111b2e85d 100644 --- a/include/linux/nsc_gpio.h +++ b/include/linux/nsc_gpio.h @@ -31,11 +31,7 @@ struct nsc_gpio_ops { struct device* dev; /* for dev_dbg() support, set in init */ }; =20 -extern ssize_t nsc_gpio_write(struct file *file, const char __user *data, - size_t len, loff_t *ppos); - -extern ssize_t nsc_gpio_read(struct file *file, char __user *buf, - size_t len, loff_t *ppos); - +ssize_t nsc_gpio_write_iter(struct kiocb *iocb, struct iov_iter *from); +ssize_t nsc_gpio_read_iter(struct kiocb *iocb, struct iov_iter *to); extern void nsc_gpio_dump(struct nsc_gpio_ops *amp, unsigned index); =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f54.google.com (mail-io1-f54.google.com [209.85.166.54]) (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 CB7D34597C for ; Thu, 11 Apr 2024 15:31:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849519; cv=none; b=IkfE3uLFeIGjZWBIyik94dCmcqBgluLbIWUhkAGv1AgLoprkbIdFHMMcD8Hh+j6Y/N3vAq2Ywt8Lh0qgLpoEarYoM6zQW8+oYbiU8ljUffBxn8HYLpXOwnbVNJ4ururZfEcnjNqB0hgeZJVvww5AvYQDEFWdkLTWVYEFZ+LURoc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849519; c=relaxed/simple; bh=cmjfSl6h2Whcjmz7Pi4Wg6GZ+a1urQb2foAZ77bll40=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Xbpo1gqxIMxqjqWENC04+LWmqNRTpDACLXb1BJGypC+02Dh+N0m+fXTyjbrkzIA4+PY/anyUHDACYbqhYi341pEsGtvGzWzPNo335fR9R2mSym/6dQBXF5NszCOL2ItG7JfAasvWP4mhWp5n7FwZGZxQOe00wgZPYwwchtFqapE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=DdWff7QD; arc=none smtp.client-ip=209.85.166.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="DdWff7QD" Received: by mail-io1-f54.google.com with SMTP id ca18e2360f4ac-7c8e4c0412dso69481839f.1 for ; Thu, 11 Apr 2024 08:31:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849516; x=1713454316; 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=ExyYpOJNnR+7CCKMJKo086UwisuZaMhOO8s4npoyeko=; b=DdWff7QDeff4p4QnPxEycR5kQ3LBzHeyceir7ov4r9YKj4TvYPpv6wgYMbeZvJ/VTh E3c59KNmku7mjZHTAYcWCve16eU9gFnHXx+nYZOHIH8BweT5Gb/frhmNQioraxoAf4FP RlE4tR/v+C/ivdOHNT4qQm7FDHmjbLBHHc9zCVu9snPEI0mEPsipkMF4Ab73GcdMtObp xq0I9Dv7gWeBD6p9Dz3Et10VFqlHSy9/HcRriwjP78YGTiNW2QNHsGz5PU9X+e5TIIoh JwqvKe+Oxr3If/qhl/Nz8aTREw1h8fX6c7irUn7qrZQZJR8BWoB6NVfiRTyD4LAuBCnN n6fQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849516; x=1713454316; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ExyYpOJNnR+7CCKMJKo086UwisuZaMhOO8s4npoyeko=; b=n0KyHUmvxIjDzqIASKiGQRpJM3KKXQ6T9GWwgZk0J4U7zKPo5rjL+cc5TP+2uSkK+r NOATItGhHVL5FKEdIgK/nDqgXeeaO2+8We8RUquJu6R37+zn82Y15TuMbMkjmym6JTCU N0Z8HzsMPzHsbDHMR73JmqETA2XwbO3qTsTKhmpkodduQOjOXT6MRc0QZpZxUXjDVfdl 7SSLd/xcQiUHkcxPmdqFU+1m8zKAzb4oMPJtycKqFjAhhskfQaL4RikSmTcifcd5YNLs 5fTJVPfx+A+B7ZGwFmlawG2XNzx6FJbteryQov54+Kv/Sp8IrqMK0S97HZunEkxapUOl n7Mg== X-Gm-Message-State: AOJu0YxQlGb0KvctEO/FXQv9KEZnw2Y3ULEziXXtPUaXX13r2U49yZDp IFpz5t109QxumhDoTOYecmf2m4W2MHSliwvcaE8SYmqJtgxaNrWr3DvfUkJroywyuknASZHwMH1 P X-Google-Smtp-Source: AGHT+IGGhSmXzbNPmsg/v4Pl2XcjR1eHKqkf/OSLorUrLq+gX7Uin13kS6vc3rZJfy9eLP3CgRseyA== X-Received: by 2002:a6b:7b05:0:b0:7d6:60dc:bc8e with SMTP id l5-20020a6b7b05000000b007d660dcbc8emr182249iop.1.1712849516616; Thu, 11 Apr 2024 08:31:56 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.31.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:31:55 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 016/437] char/dsp1620: convert to read/write iterators Date: Thu, 11 Apr 2024 09:12:36 -0600 Message-ID: <20240411153126.16201-17-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/char/ds1620.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/drivers/char/ds1620.c b/drivers/char/ds1620.c index cf89a9631107..036f1db308d2 100644 --- a/drivers/char/ds1620.c +++ b/drivers/char/ds1620.c @@ -216,8 +216,7 @@ static int ds1620_open(struct inode *inode, struct file= *file) return stream_open(inode, file); } =20 -static ssize_t -ds1620_read(struct file *file, char __user *buf, size_t count, loff_t *ptr) +static ssize_t ds1620_read(struct kiocb *iocb, struct iov_iter *to) { signed int cur_temp; signed char cur_temp_degF; @@ -227,7 +226,7 @@ ds1620_read(struct file *file, char __user *buf, size_t= count, loff_t *ptr) /* convert to Fahrenheit, as per wdt.c */ cur_temp_degF =3D (cur_temp * 9) / 5 + 32; =20 - if (copy_to_user(buf, &cur_temp_degF, 1)) + if (!copy_to_iter_full(&cur_temp_degF, 1, to)) return -EFAULT; =20 return 1; @@ -351,7 +350,7 @@ static int ds1620_proc_therm_show(struct seq_file *m, v= oid *v) static const struct file_operations ds1620_fops =3D { .owner =3D THIS_MODULE, .open =3D ds1620_open, - .read =3D ds1620_read, + .read_iter =3D ds1620_read, .unlocked_ioctl =3D ds1620_unlocked_ioctl, .llseek =3D no_llseek, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f43.google.com (mail-io1-f43.google.com [209.85.166.43]) (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 9314346535 for ; Thu, 11 Apr 2024 15:31:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849520; cv=none; b=SfGHNNsvSmB+ZqdINnBoqBEi3Oe2JkA5mpQtbB5BTC1nbvi7PZKkUrHIK1A1YjEB8Bk9WfXi9mid5CQNTRhAZ6y/kzoxnAV5uzx7u6Hyo3LpXr0KcuLr/EIFbAdyYiq9Tpop6WBWNO0MrFvGrBteF5HfNyf+COuxIMdvmOfd6kA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849520; c=relaxed/simple; bh=hhjDHri+qBqTDz94sx0jZF+iaEm7tv/4uXBbAVa23OA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=j7bmiHwYKVPvY41LivjHFPAbWtYd5dU4ihvU2m/ANtRIbxvLwHdEpVUKrIJpPrTm1WcHj5dF/QHyYal/6Bg1XdOSTHLxP5qTkSM5NeC35GyYBBpux8JpJP0xNsvOEPrXTOCwNvP36iplWuYMODk8bTlvqWhSCK6aY56PEsHsyx8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=rB4A28kH; arc=none smtp.client-ip=209.85.166.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="rB4A28kH" Received: by mail-io1-f43.google.com with SMTP id ca18e2360f4ac-7c8e4c0412dso69482339f.1 for ; Thu, 11 Apr 2024 08:31:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849518; x=1713454318; 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=SIUVHlwQacz3yyXKg2OpE4bMkgCuLl5Zzk6sSz6RfrU=; b=rB4A28kHS+7HuJBvrs8KU+X4P6iB8ppEY/ReFnGr+Nd6W9I++vbr0u8u4whmJyyAJo CFs3+lhBJQEEmkUwanmHJWSgifKQSNB3da2TFsgQtW52Ui3ljDyxO4ox9VxB8W1OA7PE 7NSodXn0CsNTx2tBqJ6dOYtq47Fv4hy8P4g9W4I2W7kKSKSH9zvIp/srXydvVUrdQT1R K/CctwytKXOWggtfUeWJibq2aLxz4iYD0uQ0TrvvYFsLSJIkWVoTkZNl6I8ZUkrWc/RA idV5CF7wpgUpyd4RAWk7hb2PT9vQzhj2Cmpwk7aRF0Jy6zMgHoXNY8hHcdIgAfKGJcR2 2Z6Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849518; x=1713454318; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=SIUVHlwQacz3yyXKg2OpE4bMkgCuLl5Zzk6sSz6RfrU=; b=h5dFGPkeFEKIWc3suKONRBFaslPRGfBc86d6s+HEezfnLg8vrj8DVtNv6jIrw7vH7e Gc1zWtzlUYKFPExMtCvUIE1ntjN/YGAZiXX106qFwr+h8ZG+r8Z4cLWJcsY4zsQJCfgz 6VbwOp4/V+u/S7BVaP8RKjw0GcpwfnFoHopLmMReKeHJXe2lRoEZ3rtFPK5hlpIIr5/3 P3oQMAGRP74J5JjeYJH29DIQR4Hb9Vp4f9XK3z96eaDFjq87/2wpWoU8RS/C3bsdLIo8 NcrdrUzdJJ1y0XhplM75CXrwNLlSPRPsrQjnH3cQNpXaRJtkeblwY4IYG1oNT/XZLa3Y fRnA== X-Gm-Message-State: AOJu0YwOahryOYUIihGwCC99uAQt46RMABRadOSd+NjbLZccOAcvIEAw HuSFDE0esLltNLNvDcRqgAaNDX518JB/1+tE6nhDJ45F6Cywtue2QrB1x9ySG6hRu/6VAdVq62l e X-Google-Smtp-Source: AGHT+IGDd3dLPGTeWxTzhP69WgO05OT8mDPgW4etQYmjBC8F5YrU7+Nwuq3pPZCPyMfUz6ekqorvSg== X-Received: by 2002:a6b:c34e:0:b0:7d6:7b7c:8257 with SMTP id t75-20020a6bc34e000000b007d67b7c8257mr201717iof.0.1712849518416; Thu, 11 Apr 2024 08:31:58 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.31.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:31:56 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 017/437] char/dsp56k: convert to read/write iterators Date: Thu, 11 Apr 2024 09:12:37 -0600 Message-ID: <20240411153126.16201-18-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/char/dsp56k.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/char/dsp56k.c b/drivers/char/dsp56k.c index bda27e595da1..14f0f284c944 100644 --- a/drivers/char/dsp56k.c +++ b/drivers/char/dsp56k.c @@ -242,6 +242,7 @@ static ssize_t dsp56k_read(struct file *file, char __us= er *buf, size_t count, return -ENXIO; } } +FOPS_READ_ITER_HELPER(dsp56k_read); =20 static ssize_t dsp56k_write(struct file *file, const char __user *buf, siz= e_t count, loff_t *ppos) @@ -304,6 +305,7 @@ static ssize_t dsp56k_write(struct file *file, const ch= ar __user *buf, size_t co return -ENXIO; } } +FOPS_WRITE_ITER_HELPER(dsp56k_write); =20 static long dsp56k_ioctl(struct file *file, unsigned int cmd, unsigned long arg) @@ -480,8 +482,8 @@ static int dsp56k_release(struct inode *inode, struct f= ile *file) =20 static const struct file_operations dsp56k_fops =3D { .owner =3D THIS_MODULE, - .read =3D dsp56k_read, - .write =3D dsp56k_write, + .read_iter =3D dsp56k_read_iter, + .write_iter =3D dsp56k_write_iter, .unlocked_ioctl =3D dsp56k_ioctl, .open =3D dsp56k_open, .release =3D dsp56k_release, --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f53.google.com (mail-io1-f53.google.com [209.85.166.53]) (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 F321647A40 for ; Thu, 11 Apr 2024 15:32:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849522; cv=none; b=hco9/uRUeDD6Dru0XzkouvNurh4KMegriBp7kopbeynbxwr1SoMPDQGYat6Ew3i3+7tL/hRiBHOu9ULIOADNh1sJ6YEviW14s3HUVxDGKzUK4AE0DcjKKejSDoUOglxS4fwpMZhLCigFdJYR/qGWu4xiHVUGXSYFLo0tWzAbr2c= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849522; c=relaxed/simple; bh=b6BJ6bdYgKcmSRPu3h2ZBMnIlJhAsaOnXN294n0w57Q=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ZNE8k+sZqrtKi6IriIvevu9+Kj7FXsM8/xeVAsOCGIlpDykmZMH8yD8bpo8fDcjY9TGLiLnNvGXnDrVNxTLC7NToIFZ+dUp0YCb7CVRTJUlbDG2z2AXTIH74b8W/Pnmy0UuakdROnyzD5GCOJmP+N/XMERmibSDhboNjlPupeGc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=LoyugoHs; arc=none smtp.client-ip=209.85.166.53 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="LoyugoHs" Received: by mail-io1-f53.google.com with SMTP id ca18e2360f4ac-7d5ed700c2dso16097139f.0 for ; Thu, 11 Apr 2024 08:32:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849520; x=1713454320; 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=VW34PY8bhtWaLL10H9ZPJKMPMEp/LIC7us+UOvg4OgI=; b=LoyugoHs7iyLOK4LGQ3jcvGMa24AZ0tY/2+VQKyfls11AwZazo3K1vzkOt2z2nd+fV hm00OkwBA9B1gGVPxRp2EWVQh8yJQp3m+TNM+hbTbELQl19QkRF21Sb28lVz9dbe4hxX 9YoELneNWYsIJYkwNEDHLbKDlXzZfdhYtI85Zw4h8ZlgI025jV667sKTe+lmpHVj0oNA 61le3tOzzVaUBGEdsfOelH2COTSfL0QbAXqkakkB1FPGE0u0GNTjlNpx+NrC43MV85gY 9A5I2V2xRQuMQGDuP6KXKGY4CtvKdO8zckKzT8zm5garqESpom0eYxdhFsLlLODxml4A oyFA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849520; x=1713454320; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=VW34PY8bhtWaLL10H9ZPJKMPMEp/LIC7us+UOvg4OgI=; b=ffpu3+fCh9r7OTCL6NNf7C+oCcyeIfQug/RB6XAjzXaryGCoLcDXQ/+4mw0fT3zIF7 27o1Zm1LjBjpewg+mMMXa/2++9uy2czvxL2x4joEoE/CACEncyAQwfdbeNR7QPb72hR6 OdgPt859p3CAUN7rIVvFJ3DgOtBLJwc51dsKO1TuR0nOdVJADiPR7Kb/SMNWYINC1ui2 y+NicJtzV6l43gw3kzF5MldEJ56YG4BPD+VW3XtakgnCzzovRpwzDe/XNWX8wZPLOnaP qeAc61zvEHPZAteIrGpSA3vSXQFUN5crhOxlwwcEi6vTsSjr1earBHzU5Sryu3Cu/vFM wlug== X-Gm-Message-State: AOJu0YyKN6JZ75pBe5xbNN3XGlo+BEpZdv6p44oWtMenJFunXQc+xqNZ 3eC7DZBLyGsNnZWqA/aKhmE4seB8Gowv0f/1JQQ2ER9U+S0wBX/EZzpoI6WEQQbFkZczV81tkiy D X-Google-Smtp-Source: AGHT+IEYia7GGaSTRbfcGC/W4pV+Z3t+Kj8quO0C0QSCXGrUoUWhUy7zFkpKFPLeoR0r61cTT+2ojA== X-Received: by 2002:a6b:f312:0:b0:7d5:de23:13a9 with SMTP id m18-20020a6bf312000000b007d5de2313a9mr147854ioh.1.1712849519873; Thu, 11 Apr 2024 08:31:59 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.31.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:31:58 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 018/437] char/dtlk: convert to read/write iterators Date: Thu, 11 Apr 2024 09:12:38 -0600 Message-ID: <20240411153126.16201-19-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/char/dtlk.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/char/dtlk.c b/drivers/char/dtlk.c index 6946c1cad9f6..60858db14c43 100644 --- a/drivers/char/dtlk.c +++ b/drivers/char/dtlk.c @@ -101,8 +101,8 @@ static long dtlk_ioctl(struct file *file, static const struct file_operations dtlk_fops =3D { .owner =3D THIS_MODULE, - .read =3D dtlk_read, - .write =3D dtlk_write, + .read_iter =3D dtlk_read_iter, + .write_iter =3D dtlk_write_iter, .poll =3D dtlk_poll, .unlocked_ioctl =3D dtlk_ioctl, .open =3D dtlk_open, @@ -155,6 +155,7 @@ static ssize_t dtlk_read(struct file *file, char __user= *buf, TRACE_RET; return -EAGAIN; } +FOPS_READ_ITER_HELPER(dtlk_read); =20 static ssize_t dtlk_write(struct file *file, const char __user *buf, size_t count, loff_t * ppos) @@ -228,6 +229,7 @@ static ssize_t dtlk_write(struct file *file, const char= __user *buf, TRACE_RET; return -EAGAIN; } +FOPS_WRITE_ITER_HELPER(dtlk_write); =20 static __poll_t dtlk_poll(struct file *file, poll_table * wait) { --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f44.google.com (mail-io1-f44.google.com [209.85.166.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 C5045175AE for ; Thu, 11 Apr 2024 15:32:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849524; cv=none; b=NMhEQvMLpg7nLwIYXHeA1oJfrNRbVb9SjPoXTjPTSXO6WUdByW4do5dZGzVNWR+5BOkYa9giTaRcMrTQ2Ai5M8b6M0qjA4uUBc82S2DHCnPQ+FMWr4955TE3sTP8qMLMbliDYn630lfEVe9Wsow4a+OI4NTyEVwH70DIyfI7eTI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849524; c=relaxed/simple; bh=QBiDVzSin8HPfW0uBG0g4Ul1ewVi2wp/GU6MLCcmEaI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=PXVDCe0JdJ7uOr1t1iU8HjqwT6fMdAj/nKqipmY83EZrdJRveeK9OK6y4WWWvw4/IE/UMuR8JdOOYVdIhd+T8QiKzqK9id1LKGS1KRGgl7e7qPe82vrn2/mZa8Cuyd4FtcpqPDJZrGv6plfiSzppIBzHK4fkTlhGW76a+FG5vSU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=nOEAYCat; arc=none smtp.client-ip=209.85.166.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="nOEAYCat" Received: by mail-io1-f44.google.com with SMTP id ca18e2360f4ac-7d6112ba6baso57938339f.1 for ; Thu, 11 Apr 2024 08:32:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849521; x=1713454321; 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=Gbggku78E3fbHQKVUkS5Ce4TOh7ympwjV4l2OQYW8+o=; b=nOEAYCatldmJ+9ceSAR51Wf8y70Dypd3X2S4awAXdY5ZhBqQWfonn5EpQDFlZXDF1O sX6nEGc3qM0CSenFkHyx2QUDbE+X63HO6sKZga+X7BdBpQDo4MTjB5Jj14CDBN1noayU v2O+eAyxbKp2p/sI2yQuTH9vozUfo9Iqm9m5VDwgZeZEicLJjETwZ0KHER0vKYqnNm78 6P25SgQYD0rA1Z1h0YhXSwWjmggKYB3/AefvssMdDu0nv/ZumabXs2Sk0l7Tf6BPjkUp bi4DY0ueDDkiY0nwx/JBisnqLr11tH/L9kfNOfktnvZGYyIpphL8f5TdnM8/vZ8dTQP3 r6EA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849521; x=1713454321; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Gbggku78E3fbHQKVUkS5Ce4TOh7ympwjV4l2OQYW8+o=; b=H0h0tXun5PKCWzKRrWTmd5J04/vrYP+1+gT5/uR486hrztWUry+p1DToM3m13WOfGD JWwlRLmwZkkQWfxoH14JThQ4+evpLjbXAMYkZoGkDDA2go3HxLwcVrziLGNpzhZTZL2X QMNTqXQS27LvBG7L6vXCiJmFkIeD/tHYLs2u3naUpo0JzXDuXFAXOEej4FSe6uMWa8BF AY+4QiWYun0y5d+AwW7UVubrKacLVq/KxOA3nyeGlz80QF0PhiRd61feaInecvvYBfTr 4bTDEsLU2iigcYlxgMMabg6CGfcy+u0rhaNVHAWP0wH3ctSasgu+Lbc9+NyI1+VZfX7P 5Qlw== X-Gm-Message-State: AOJu0Yw0nuWqRUcy3rBPugAEUQLm5TxWYet0xUBNxvuB2Y0bS0wZUdW/ VN7Ynut867EfSOsJOh9FPH+JJa2GMzv/QlZ25xqZZWXpbTJpqkalVWmDTiILzDGMFtvtRhWgEbR g X-Google-Smtp-Source: AGHT+IECVRxB69nG714WegAG2l4K5mxu7VW8ZiRT1dpZ/JBO5U8RN+c56UOg+n4m9b6x8LnRGkAVUg== X-Received: by 2002:a05:6602:38d:b0:7d6:513b:254 with SMTP id f13-20020a056602038d00b007d6513b0254mr168976iov.2.1712849521459; Thu, 11 Apr 2024 08:32:01 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.32.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:32:00 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 019/437] char/hpet: convert to read/write iterators Date: Thu, 11 Apr 2024 09:12:39 -0600 Message-ID: <20240411153126.16201-20-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/char/hpet.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/char/hpet.c b/drivers/char/hpet.c index d51fc8321d41..68a3ab149e72 100644 --- a/drivers/char/hpet.c +++ b/drivers/char/hpet.c @@ -303,6 +303,7 @@ hpet_read(struct file *file, char __user *buf, size_t c= ount, loff_t * ppos) =20 return retval; } +FOPS_READ_ITER_HELPER(hpet_read); =20 static __poll_t hpet_poll(struct file *file, poll_table * wait) { @@ -677,7 +678,7 @@ hpet_compat_ioctl(struct file *file, unsigned int cmd, = unsigned long arg) static const struct file_operations hpet_fops =3D { .owner =3D THIS_MODULE, .llseek =3D no_llseek, - .read =3D hpet_read, + .read_iter =3D hpet_read_iter, .poll =3D hpet_poll, .unlocked_ioctl =3D hpet_ioctl, #ifdef CONFIG_COMPAT --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-il1-f176.google.com (mail-il1-f176.google.com [209.85.166.176]) (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 7124D3FBAC for ; Thu, 11 Apr 2024 15:32:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.176 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849525; cv=none; b=lqnGjYeCNdHil3+rAKBmk6rzIDrxo0vJCQe0zV1eTWFeaCA1mONqb+8Ma37LSvF2+3pk8NfJprInHIfN9Wn/Qr1AVpB5p4tPY36uEQdl8Ifa7IygUUfJTQBBO+dV2StePh3uN0iGZK6x/o4E7oWn0pjGyt+u4sqK+6lInJgn9rU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849525; c=relaxed/simple; bh=ODL8Qc6Qxk64Ikichns/9t2AN2UvFOfrmKdPSjlw50w=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Kvoz59M1NscdBO2pRGI496W95Wf3EcUh6NMO19WTH0/fECBC5xF/dMX/MPfT0cMJhzhX+eYtF0VUvNMo5zZpLrlIwI7AEBNANYtgb5aZ9jsTRsZN/HRrWreFkvT1sm9xv8vzJNG2U7+GMvbO5DRJLRYUxiQXnvUlQ7Ncvdn1KzQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=WX0FuDOs; arc=none smtp.client-ip=209.85.166.176 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="WX0FuDOs" Received: by mail-il1-f176.google.com with SMTP id e9e14a558f8ab-36a34b68277so105065ab.0 for ; Thu, 11 Apr 2024 08:32:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849523; x=1713454323; 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=HgsmHLXf46AC60qodwDWVXJd+Quh9W4tnnD4KDeL7e0=; b=WX0FuDOscsMpPAmVBkHPz51EXSnVmNmAJ98gQo/rv+6eSAaFWSiKrm2ZkFj6kom4DX Aj6kL3pgq/r9C24yKNQEpKOfB98Q1vRGj7tzCR4HBKLrMu9+OypL9ZNTzn9UHzMkacWK F/lipalPluiQwmQDJbfdHaWdS+AAXpsXAhYrukjQBPpusyuqEXlRQ2FByNcbq4VRidif tJui/7/ddoVznjuGWsgrYEOlS5V4Ee04dBytDnVW5jAmiGpBINC5t2zyQN6hG1+sXtsz 3iHNF2/IQxiRJ1Wp1pPyxPB/zUPM4E7YagF+yaAP3QlWt9I9M6pXmKAVbXEFIzsP8jjP jORw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849523; x=1713454323; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=HgsmHLXf46AC60qodwDWVXJd+Quh9W4tnnD4KDeL7e0=; b=ATOpbHR0VXepU50fEn9vzcmSRg89kZoKoTF39hwec9Lc6CdxKHrp3qeIZNlvdz5Dfw F8vb3L/G35gnHo9kmkKjMIuqmDxooCWS4tf2xBtj5gFKIPcFawcgbl2R4xORr2iKGDCU nFIWRCV6BChBL0hc0Vewb0cJCOysFgqRaSb4SXOtN5jIFPnzH0oLjewHYTcRZXQ+h4vV iV8EJ9BTCi1DM/yZC2/jkoBfYOlCEFFiB1eFxVCkbCZJTbGZ4+gSsWsYlVWqtCjlnd7A 8FJdbqHelXx8BkeoM54uZKOl+OyDm8k5m53OptArEfazqAAgPvniHU41iqwNa/mJxLvu y22Q== X-Gm-Message-State: AOJu0Yx6bI+SscHvJA1JisOgq0a1FXfvUp3EAvO1HcxvcYzS7Egx0yjK v2BOcGe4dlovfRooU+wD1e/rRI77kFhQOAvT8kYokJFMRG1cHZBxZgvP4Rbbz3poDBpQXMkk44k x X-Google-Smtp-Source: AGHT+IFqOE6yIiq/cRDFkY6LvcvF+nD6R7Rn08enOtCZtSeR57SMusn1AsolOPDd2plFPpe8dUAuFA== X-Received: by 2002:a92:de05:0:b0:368:b52b:b449 with SMTP id x5-20020a92de05000000b00368b52bb449mr5459539ilm.0.1712849523125; Thu, 11 Apr 2024 08:32:03 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.32.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:32:01 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 020/437] char/hw_random: convert to read/write iterators Date: Thu, 11 Apr 2024 09:12:40 -0600 Message-ID: <20240411153126.16201-21-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/char/hw_random/core.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/char/hw_random/core.c b/drivers/char/hw_random/core.c index a3bbdd6e60fc..810c3dd013b0 100644 --- a/drivers/char/hw_random/core.c +++ b/drivers/char/hw_random/core.c @@ -290,11 +290,12 @@ static ssize_t rng_dev_read(struct file *filp, char _= _user *buf, put_rng(rng); goto out; } +FOPS_READ_ITER_HELPER(rng_dev_read); =20 static const struct file_operations rng_chrdev_ops =3D { .owner =3D THIS_MODULE, .open =3D rng_dev_open, - .read =3D rng_dev_read, + .read_iter =3D rng_dev_read_iter, .llseek =3D noop_llseek, }; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f46.google.com (mail-io1-f46.google.com [209.85.166.46]) (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 B185D481B4 for ; Thu, 11 Apr 2024 15:32:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849528; cv=none; b=bZD7de3TluMBqbKYM2kPnTZDfEwUGNxX6gdJ9rbKbg4f1gTrkoiOgnJQeZhIrYFdoa8QdPUGMbJFj53jk7UMQTBJjMR46yUgg5UiXkGHXSpOFOjNS6mzGBXxhGcuwzXxUQG4HZ/EA3wsx3kKmB7gEjJTHe7ASHRZ4kG4yIdCiQc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849528; c=relaxed/simple; bh=mBIHrHSx0t1Gu8X++/2wE1bS/peUOddMrWDqDawEdEQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=AoeFadHmWNuIMSASKhOFGBPdrgAdLLHe+SRO1h9xbg5t0JIlHORLz2NpPVECyfGrhWE6BG/H3W5kRwcKXIeiE7D5QqZB8MSUl8CN6Rplhuj+Eim5csBvoZfdTmJkPYxb6lDBqESY9rp4voSeTn9a4Kr3HOaJQ8FB7DxXQFEpgRw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=Zv/ZZfuW; arc=none smtp.client-ip=209.85.166.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="Zv/ZZfuW" Received: by mail-io1-f46.google.com with SMTP id ca18e2360f4ac-7d5ed700c2dso16098339f.0 for ; Thu, 11 Apr 2024 08:32:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849525; x=1713454325; 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=f2l6h/jCu8YubbMk7Y4sKs4D1pQIix1cvMgP8JlWQTk=; b=Zv/ZZfuWIAN1bizlDPK9Rp3QqEQjaHS4CaOWNjxl9m6NXwAbmKQ+x+FDezO6peu9To wFVD1IPGvDEe8BgNtNr/nuvI3Ms36/5JpRzzfUuEhtrrLRY1u+wowzbnE7cbTQw5JR/W pMlQZKCS76+8wjqJnxEFFBgJAIdsKWwCEpEI6NM3Jp7fcKS+EN06LAI8+Mj/l4DsiYAb VnSTphDAOCZZwJySpXnmj7xA13cdpVxdJJcBZbPy7P++4t3rI3vskuT+zH1vjd8oH/zI j6/Qrr4C6Hp7NMyiM1psWjtdF1mu/vTWNk5hnfIWgb17F6fBWnSoe8EaF0gxvjJ4ReVF rXlg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849525; x=1713454325; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=f2l6h/jCu8YubbMk7Y4sKs4D1pQIix1cvMgP8JlWQTk=; b=hqp1o0Z2Ffv6GbolUL3WorKODdAWgJosDigrVoRwir0HVuJStaifJxwNE1TWAaDHAI PKTuHRWU3PzPZBawwxrDu1hXd4p0I5tA1qULjMoKaQ25JZYQZ+IuIBs5GKwPBzdNbyki VXboGbZb0E+l2Il/4TntEA+jYRIa/L+LW0QOrAmtQB7gusPtK6Vfydt9qWbs4QguB/+V DtKt6OX8wPMy2x5RVIAFzxld7FDjWErc/fzZZVyw8SybDHJq7u5bwWoPQXklxe0vW1id ekFa1YUwm/wcjihV7hwRu0xnaHPpOW6qCQXaxC4Wc3UDfPV8yEiiOkgN9BhtWnljwwwp MvfA== X-Gm-Message-State: AOJu0YyvbFMjLr4hLtnsvY1crGK9Ex39Ip070nFauGh83WGxjeaKsowJ TMk81NGN17PLkHpT12bDUB0r0ReZCUVbhPNYpnEMnx2czyJUAV4sU3LQxplHwojWrsUAMfPsFqu Z X-Google-Smtp-Source: AGHT+IEn9kx7aES2I5uP8b+SHKHJtQQRCy1KF63sdUmtkcYEPlFtiKWDcG5UMW2RZJn7sbd1CorbQA== X-Received: by 2002:a6b:f312:0:b0:7d5:de23:13a9 with SMTP id m18-20020a6bf312000000b007d5de2313a9mr148153ioh.1.1712849524925; Thu, 11 Apr 2024 08:32:04 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.32.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:32:03 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 021/437] char/ipmi: convert to read/write iterators Date: Thu, 11 Apr 2024 09:12:41 -0600 Message-ID: <20240411153126.16201-22-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/char/ipmi/bt-bmc.c | 27 +++++++++++++-------------- drivers/char/ipmi/ipmb_dev_int.c | 19 ++++++++++--------- drivers/char/ipmi/ipmi_watchdog.c | 16 ++++++++-------- drivers/char/ipmi/kcs_bmc_cdev_ipmi.c | 23 ++++++++++++----------- drivers/char/ipmi/ssif_bmc.c | 25 ++++++++++++++----------- 5 files changed, 57 insertions(+), 53 deletions(-) diff --git a/drivers/char/ipmi/bt-bmc.c b/drivers/char/ipmi/bt-bmc.c index 7450904e330a..d8b2e513ed2a 100644 --- a/drivers/char/ipmi/bt-bmc.c +++ b/drivers/char/ipmi/bt-bmc.c @@ -15,6 +15,7 @@ #include #include #include +#include =20 /* * This is a BMC device used to communicate to the host @@ -172,17 +173,17 @@ static int bt_bmc_open(struct inode *inode, struct fi= le *file) * Length NetFn/LUN Seq Cmd Data * */ -static ssize_t bt_bmc_read(struct file *file, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t bt_bmc_read(struct kiocb *iocb, struct iov_iter *to) { - struct bt_bmc *bt_bmc =3D file_bt_bmc(file); + struct bt_bmc *bt_bmc =3D file_bt_bmc(iocb->ki_filp); + size_t count =3D iov_iter_count(to); u8 len; int len_byte =3D 1; u8 kbuffer[BT_BMC_BUFFER_SIZE]; ssize_t ret =3D 0; ssize_t nread; =20 - WARN_ON(*ppos); + WARN_ON(iocb->ki_pos); =20 if (wait_event_interruptible(bt_bmc->queue, bt_inb(bt_bmc, BT_CTRL) & BT_CTRL_H2B_ATN)) @@ -215,12 +216,11 @@ static ssize_t bt_bmc_read(struct file *file, char __= user *buf, =20 bt_readn(bt_bmc, kbuffer + len_byte, nread); =20 - if (copy_to_user(buf, kbuffer, nread + len_byte)) { + if (!copy_to_iter_full(kbuffer, nread + len_byte, to)) { ret =3D -EFAULT; break; } len -=3D nread; - buf +=3D nread + len_byte; ret +=3D nread + len_byte; len_byte =3D 0; } @@ -238,10 +238,10 @@ static ssize_t bt_bmc_read(struct file *file, char __= user *buf, * Byte 1 Byte 2 Byte 3 Byte 4 Byte 5 Byte 6:N * Length NetFn/LUN Seq Cmd Code Data */ -static ssize_t bt_bmc_write(struct file *file, const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t bt_bmc_write(struct kiocb *iocb, struct iov_iter *from) { - struct bt_bmc *bt_bmc =3D file_bt_bmc(file); + struct bt_bmc *bt_bmc =3D file_bt_bmc(iocb->ki_filp); + size_t count =3D iov_iter_count(from); u8 kbuffer[BT_BMC_BUFFER_SIZE]; ssize_t ret =3D 0; ssize_t nwritten; @@ -252,7 +252,7 @@ static ssize_t bt_bmc_write(struct file *file, const ch= ar __user *buf, if (count < 5) return -EINVAL; =20 - WARN_ON(*ppos); + WARN_ON(iocb->ki_pos); =20 /* * There's no interrupt for clearing bmc busy so we have to @@ -275,7 +275,7 @@ static ssize_t bt_bmc_write(struct file *file, const ch= ar __user *buf, =20 while (count) { nwritten =3D min_t(ssize_t, count, sizeof(kbuffer)); - if (copy_from_user(&kbuffer, buf, nwritten)) { + if (!copy_from_iter_full(&kbuffer, nwritten, from)) { ret =3D -EFAULT; break; } @@ -283,7 +283,6 @@ static ssize_t bt_bmc_write(struct file *file, const ch= ar __user *buf, bt_writen(bt_bmc, kbuffer, nwritten); =20 count -=3D nwritten; - buf +=3D nwritten; ret +=3D nwritten; } =20 @@ -338,8 +337,8 @@ static __poll_t bt_bmc_poll(struct file *file, poll_tab= le *wait) static const struct file_operations bt_bmc_fops =3D { .owner =3D THIS_MODULE, .open =3D bt_bmc_open, - .read =3D bt_bmc_read, - .write =3D bt_bmc_write, + .read_iter =3D bt_bmc_read, + .write_iter =3D bt_bmc_write, .release =3D bt_bmc_release, .poll =3D bt_bmc_poll, .unlocked_ioctl =3D bt_bmc_ioctl, diff --git a/drivers/char/ipmi/ipmb_dev_int.c b/drivers/char/ipmi/ipmb_dev_= int.c index 49100845fcb7..5344095e32a0 100644 --- a/drivers/char/ipmi/ipmb_dev_int.c +++ b/drivers/char/ipmi/ipmb_dev_int.c @@ -71,11 +71,11 @@ static inline struct ipmb_dev *to_ipmb_dev(struct file = *file) return container_of(file->private_data, struct ipmb_dev, miscdev); } =20 -static ssize_t ipmb_read(struct file *file, char __user *buf, size_t count, - loff_t *ppos) +static ssize_t ipmb_read(struct kiocb *iocb, struct iov_iter *to) { - struct ipmb_dev *ipmb_dev =3D to_ipmb_dev(file); + struct ipmb_dev *ipmb_dev =3D to_ipmb_dev(iocb->ki_filp); struct ipmb_request_elem *queue_elem; + size_t count =3D iov_iter_count(to); struct ipmb_msg msg; ssize_t ret =3D 0; =20 @@ -86,7 +86,7 @@ static ssize_t ipmb_read(struct file *file, char __user *= buf, size_t count, while (list_empty(&ipmb_dev->request_queue)) { spin_unlock_irq(&ipmb_dev->lock); =20 - if (file->f_flags & O_NONBLOCK) + if (iocb->ki_filp->f_flags & O_NONBLOCK) return -EAGAIN; =20 ret =3D wait_event_interruptible(ipmb_dev->wait_queue, @@ -107,7 +107,7 @@ static ssize_t ipmb_read(struct file *file, char __user= *buf, size_t count, spin_unlock_irq(&ipmb_dev->lock); =20 count =3D min_t(size_t, count, msg.len + 1); - if (copy_to_user(buf, &msg, count)) + if (!copy_to_iter_full(&msg, count, to)) ret =3D -EFAULT; =20 return ret < 0 ? ret : count; @@ -176,6 +176,7 @@ static ssize_t ipmb_write(struct file *file, const char= __user *buf, =20 return ret < 0 ? ret : count; } +FOPS_WRITE_ITER_HELPER(ipmb_write); =20 static __poll_t ipmb_poll(struct file *file, poll_table *wait) { @@ -193,10 +194,10 @@ static __poll_t ipmb_poll(struct file *file, poll_tab= le *wait) } =20 static const struct file_operations ipmb_fops =3D { - .owner =3D THIS_MODULE, - .read =3D ipmb_read, - .write =3D ipmb_write, - .poll =3D ipmb_poll, + .owner =3D THIS_MODULE, + .read_iter =3D ipmb_read, + .write_iter =3D ipmb_write_iter, + .poll =3D ipmb_poll, }; =20 /* Called with ipmb_dev->lock held. */ diff --git a/drivers/char/ipmi/ipmi_watchdog.c b/drivers/char/ipmi/ipmi_wat= chdog.c index 9a459257489f..001a6b522ce4 100644 --- a/drivers/char/ipmi/ipmi_watchdog.c +++ b/drivers/char/ipmi/ipmi_watchdog.c @@ -37,6 +37,7 @@ #include #include #include +#include =20 #ifdef CONFIG_X86 /* @@ -777,12 +778,11 @@ static ssize_t ipmi_write(struct file *file, } return len; } +FOPS_WRITE_ITER_HELPER(ipmi_write); =20 -static ssize_t ipmi_read(struct file *file, - char __user *buf, - size_t count, - loff_t *ppos) +static ssize_t ipmi_read(struct kiocb *iocb, struct iov_iter *to) { + size_t count =3D iov_iter_count(to); int rv =3D 0; wait_queue_entry_t wait; =20 @@ -795,7 +795,7 @@ static ssize_t ipmi_read(struct file *file, */ spin_lock_irq(&ipmi_read_lock); if (!data_to_read) { - if (file->f_flags & O_NONBLOCK) { + if (iocb->ki_filp->f_flags & O_NONBLOCK) { rv =3D -EAGAIN; goto out; } @@ -821,7 +821,7 @@ static ssize_t ipmi_read(struct file *file, spin_unlock_irq(&ipmi_read_lock); =20 if (rv =3D=3D 0) { - if (copy_to_user(buf, &data_to_read, 1)) + if (!copy_to_iter_full(&data_to_read, 1, to)) rv =3D -EFAULT; else rv =3D 1; @@ -895,9 +895,9 @@ static int ipmi_close(struct inode *ino, struct file *f= ilep) =20 static const struct file_operations ipmi_wdog_fops =3D { .owner =3D THIS_MODULE, - .read =3D ipmi_read, + .read_iter =3D ipmi_read, .poll =3D ipmi_poll, - .write =3D ipmi_write, + .write_iter =3D ipmi_write_iter, .unlocked_ioctl =3D ipmi_unlocked_ioctl, .compat_ioctl =3D compat_ptr_ioctl, .open =3D ipmi_open, diff --git a/drivers/char/ipmi/kcs_bmc_cdev_ipmi.c b/drivers/char/ipmi/kcs_= bmc_cdev_ipmi.c index cf670e891966..1cd9b4c1fec9 100644 --- a/drivers/char/ipmi/kcs_bmc_cdev_ipmi.c +++ b/drivers/char/ipmi/kcs_bmc_cdev_ipmi.c @@ -16,6 +16,7 @@ #include #include #include +#include =20 #include "kcs_bmc_client.h" =20 @@ -317,15 +318,15 @@ static __poll_t kcs_bmc_ipmi_poll(struct file *filp, = poll_table *wait) return mask; } =20 -static ssize_t kcs_bmc_ipmi_read(struct file *filp, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t kcs_bmc_ipmi_read(struct kiocb *iocb, struct iov_iter *to) { - struct kcs_bmc_ipmi *priv =3D to_kcs_bmc(filp); + struct kcs_bmc_ipmi *priv =3D to_kcs_bmc(iocb->ki_filp); + size_t count =3D iov_iter_count(to); bool data_avail; size_t data_len; ssize_t ret; =20 - if (!(filp->f_flags & O_NONBLOCK)) + if (!(iocb->ki_filp->f_flags & O_NONBLOCK)) wait_event_interruptible(priv->queue, priv->data_in_avail); =20 @@ -356,7 +357,7 @@ static ssize_t kcs_bmc_ipmi_read(struct file *filp, cha= r __user *buf, goto out_unlock; } =20 - if (copy_to_user(buf, priv->kbuffer, data_len)) { + if (!copy_to_iter_full(priv->kbuffer, data_len, to)) { ret =3D -EFAULT; goto out_unlock; } @@ -379,10 +380,10 @@ static ssize_t kcs_bmc_ipmi_read(struct file *filp, c= har __user *buf, return ret; } =20 -static ssize_t kcs_bmc_ipmi_write(struct file *filp, const char __user *bu= f, - size_t count, loff_t *ppos) +static ssize_t kcs_bmc_ipmi_write(struct kiocb *iocb, struct iov_iter *fro= m) { - struct kcs_bmc_ipmi *priv =3D to_kcs_bmc(filp); + struct kcs_bmc_ipmi *priv =3D to_kcs_bmc(iocb->ki_filp); + size_t count =3D iov_iter_count(from); ssize_t ret; =20 /* a minimum response size '3' : netfn + cmd + ccode */ @@ -391,7 +392,7 @@ static ssize_t kcs_bmc_ipmi_write(struct file *filp, co= nst char __user *buf, =20 mutex_lock(&priv->mutex); =20 - if (copy_from_user(priv->kbuffer, buf, count)) { + if (!copy_from_iter_full(priv->kbuffer, count, from)) { ret =3D -EFAULT; goto out_unlock; } @@ -459,8 +460,8 @@ static int kcs_bmc_ipmi_release(struct inode *inode, st= ruct file *filp) static const struct file_operations kcs_bmc_ipmi_fops =3D { .owner =3D THIS_MODULE, .open =3D kcs_bmc_ipmi_open, - .read =3D kcs_bmc_ipmi_read, - .write =3D kcs_bmc_ipmi_write, + .read_iter =3D kcs_bmc_ipmi_read, + .write_iter =3D kcs_bmc_ipmi_write, .release =3D kcs_bmc_ipmi_release, .poll =3D kcs_bmc_ipmi_poll, .unlocked_ioctl =3D kcs_bmc_ipmi_ioctl, diff --git a/drivers/char/ipmi/ssif_bmc.c b/drivers/char/ipmi/ssif_bmc.c index 56346fb32872..9a907c84d182 100644 --- a/drivers/char/ipmi/ssif_bmc.c +++ b/drivers/char/ipmi/ssif_bmc.c @@ -130,9 +130,10 @@ static const char *state_to_string(enum ssif_state sta= te) } =20 /* Handle SSIF message that will be sent to user */ -static ssize_t ssif_bmc_read(struct file *file, char __user *buf, size_t c= ount, loff_t *ppos) +static ssize_t ssif_bmc_read(struct kiocb *iocb, struct iov_iter *to) { - struct ssif_bmc_ctx *ssif_bmc =3D to_ssif_bmc(file); + struct ssif_bmc_ctx *ssif_bmc =3D to_ssif_bmc(iocb->ki_filp); + size_t count =3D iov_iter_count(to); struct ipmi_ssif_msg msg; unsigned long flags; ssize_t ret; @@ -140,7 +141,7 @@ static ssize_t ssif_bmc_read(struct file *file, char __= user *buf, size_t count, spin_lock_irqsave(&ssif_bmc->lock, flags); while (!ssif_bmc->request_available) { spin_unlock_irqrestore(&ssif_bmc->lock, flags); - if (file->f_flags & O_NONBLOCK) + if (iocb->ki_filp->f_flags & O_NONBLOCK) return -EAGAIN; ret =3D wait_event_interruptible(ssif_bmc->wait_queue, ssif_bmc->request_available); @@ -162,17 +163,19 @@ static ssize_t ssif_bmc_read(struct file *file, char = __user *buf, size_t count, ssif_bmc->request_available =3D false; spin_unlock_irqrestore(&ssif_bmc->lock, flags); =20 - ret =3D copy_to_user(buf, &msg, count); + ret =3D -EFAULT; + if (copy_to_iter_full(&msg, count, to)) + ret =3D 0; } =20 return (ret < 0) ? ret : count; } =20 /* Handle SSIF message that is written by user */ -static ssize_t ssif_bmc_write(struct file *file, const char __user *buf, s= ize_t count, - loff_t *ppos) +static ssize_t ssif_bmc_write(struct kiocb *iocb, struct iov_iter *from) { - struct ssif_bmc_ctx *ssif_bmc =3D to_ssif_bmc(file); + struct ssif_bmc_ctx *ssif_bmc =3D to_ssif_bmc(iocb->ki_filp); + size_t count =3D iov_iter_count(from); struct ipmi_ssif_msg msg; unsigned long flags; ssize_t ret; @@ -180,7 +183,7 @@ static ssize_t ssif_bmc_write(struct file *file, const = char __user *buf, size_t if (count > sizeof(struct ipmi_ssif_msg)) return -EINVAL; =20 - if (copy_from_user(&msg, buf, count)) + if (!copy_from_iter_full(&msg, count, from)) return -EFAULT; =20 if (!msg.len || count < sizeof_field(struct ipmi_ssif_msg, len) + msg.len) @@ -189,7 +192,7 @@ static ssize_t ssif_bmc_write(struct file *file, const = char __user *buf, size_t spin_lock_irqsave(&ssif_bmc->lock, flags); while (ssif_bmc->response_in_progress) { spin_unlock_irqrestore(&ssif_bmc->lock, flags); - if (file->f_flags & O_NONBLOCK) + if (iocb->ki_filp->f_flags & O_NONBLOCK) return -EAGAIN; ret =3D wait_event_interruptible(ssif_bmc->wait_queue, !ssif_bmc->response_in_progress); @@ -275,8 +278,8 @@ static int ssif_bmc_release(struct inode *inode, struct= file *file) static const struct file_operations ssif_bmc_fops =3D { .owner =3D THIS_MODULE, .open =3D ssif_bmc_open, - .read =3D ssif_bmc_read, - .write =3D ssif_bmc_write, + .read_iter =3D ssif_bmc_read, + .write_iter =3D ssif_bmc_write, .release =3D ssif_bmc_release, .poll =3D ssif_bmc_poll, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f51.google.com (mail-io1-f51.google.com [209.85.166.51]) (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 2C019481C6 for ; Thu, 11 Apr 2024 15:32:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849528; cv=none; b=gYNDiux8ztuXIBWh/vdyZocdcnU5SFcT6sZ9HlDpe7LFyNAfGd44cvRZtp9HX4/2n9CD/XYJZfDHV1fPDbjQ08PEN9EYM8G/ExSo9eOjytMuGpAiiUiba9NkduA4FM67buXTBLuIjn/jeRC1atUhRAi3U4mG5Hrnu01lHkViXFw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849528; c=relaxed/simple; bh=TIg6/xRT1sF2uz3iDSlDLHbUI07ew3w55/s+64nRfV8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=E8IJiHoRTYKGl7GJCY2MzOW0EMhLPWEFYGNY3u606nypZOVN8W2kt0Q66B+6qWCPFRIYdfubeo1WW1pYYvNmWJWiRJ+rVzEyqzJH0LOcm8StJNu5WC3yDVSaaoQFvLAxJ32IU2EAxnM0Sq4GQ9Wj3OlvqRaFLv3IveMFehqvOII= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=ez1gL4pw; arc=none smtp.client-ip=209.85.166.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="ez1gL4pw" Received: by mail-io1-f51.google.com with SMTP id ca18e2360f4ac-7d6812b37a6so8849039f.0 for ; Thu, 11 Apr 2024 08:32:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849526; x=1713454326; 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=AEIqreAhrWHWiNMJ3bjnYGKI5wqJlayBXmXujNYutLg=; b=ez1gL4pwlEyMCyQR2Zirsbqd7MrMj8Xz31E18QCzs8FqdAU74+dvbvMiVzHCktYddE yPi056SSpFwyJgCtiTdOpfSDW5dyvLGVc1EvulEhxEodj5i6mroYB2rIkJby7q8sh0Uf qejLos2HarmFyZgHS/EgfvGPKWlEezeoMCpxHaPMELO0MIYfrWl2meH4GlToLvvHnWtQ a3ZoeeL2XHuaYEUlZWxuuR02j5oWlwe+b6Jc4E/POW+0fdolET5lidxItc+Gqej90rgj 1BSybtS/DWH4ABlRZVIuI2fkeXh9R2DN8JsAhU5ykrJX6Tq7RCOOVWcXHOVsTtmdRQLq kxgw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849526; x=1713454326; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=AEIqreAhrWHWiNMJ3bjnYGKI5wqJlayBXmXujNYutLg=; b=ljK1irn9grFM5lbBRVRLbD9tA4YVt8Q9OMpwYkp136Z75kj56Z/u3WtRSRoshmhr8a URWqRqgpm1XEhJpCNoGOcWwHtlYZ/hwy9iQWjBZ2a28K4w5xT0y+APt/I6Rm9efeKI+2 ljMgdLTJi2HRxv+R8tJlqBLwlQYA0dlywUTtPLVQEeCi5jCGIikOfuHCqYhrVvhbQLA8 1oLWVal07h3W/1RHyVw8gX/p03M6yTtcXl29t0hizRasDLKmEzqyEfDbmuzxsdI60CHX bh7Vg7l6a31K9wtoS38sssmxaViTrP9HE47cHk7FuhrW/fiihQQ3iZ6kh48IizUn1Xer GKlw== X-Gm-Message-State: AOJu0Yw4QqM86RXfYdUi+1QOCpDZUPQQteT8hYFh+7h1dZsxFFrLzP6d I+zxJ/08Lg0AzSKh21+LKnDqaIBMEPElPiEZ5OQ5Fn9Z5T1J/bCiYCt7B1m863BTeG2XhHiMoF5 o X-Google-Smtp-Source: AGHT+IES27zf7b+QjVz8qu+U8JgrFMdX8B/9/TvD1n6gnb6LfTBJJ2czbrnOTW1DjjgViqiyVk+zAQ== X-Received: by 2002:a05:6602:21d7:b0:7d6:9ddf:5095 with SMTP id c23-20020a05660221d700b007d69ddf5095mr2844ioc.1.1712849525775; Thu, 11 Apr 2024 08:32:05 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.32.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:32:05 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 022/437] char/tpm: convert to read/write iterators Date: Thu, 11 Apr 2024 09:12:42 -0600 Message-ID: <20240411153126.16201-23-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/char/tpm/eventlog/common.c | 2 +- drivers/char/tpm/tpm-dev-common.c | 26 +++++++++++++------------- drivers/char/tpm/tpm-dev.c | 4 ++-- drivers/char/tpm/tpm-dev.h | 6 ++---- drivers/char/tpm/tpm_vtpm_proxy.c | 20 ++++++++++---------- drivers/char/tpm/tpmrm-dev.c | 4 ++-- 6 files changed, 30 insertions(+), 32 deletions(-) diff --git a/drivers/char/tpm/eventlog/common.c b/drivers/char/tpm/eventlog= /common.c index 639c3f395a5a..5df887f7b119 100644 --- a/drivers/char/tpm/eventlog/common.c +++ b/drivers/char/tpm/eventlog/common.c @@ -66,7 +66,7 @@ static int tpm_bios_measurements_release(struct inode *in= ode, static const struct file_operations tpm_bios_measurements_ops =3D { .owner =3D THIS_MODULE, .open =3D tpm_bios_measurements_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D tpm_bios_measurements_release, }; diff --git a/drivers/char/tpm/tpm-dev-common.c b/drivers/char/tpm/tpm-dev-c= ommon.c index 30b4c288c1bb..6cb20cb43ac0 100644 --- a/drivers/char/tpm/tpm-dev-common.c +++ b/drivers/char/tpm/tpm-dev-common.c @@ -122,10 +122,10 @@ void tpm_common_open(struct file *file, struct tpm_ch= ip *chip, file->private_data =3D priv; } =20 -ssize_t tpm_common_read(struct file *file, char __user *buf, - size_t size, loff_t *off) +ssize_t tpm_common_read_iter(struct kiocb *iocb, struct iov_iter *to) { - struct file_priv *priv =3D file->private_data; + struct file_priv *priv =3D iocb->ki_filp->private_data; + size_t size =3D iov_iter_count(to); ssize_t ret_size =3D 0; int rc; =20 @@ -140,21 +140,21 @@ ssize_t tpm_common_read(struct file *file, char __use= r *buf, goto out; } =20 - rc =3D copy_to_user(buf, priv->data_buffer + *off, ret_size); + rc =3D !copy_to_iter_full(priv->data_buffer + iocb->ki_pos, ret_size, to= ); if (rc) { memset(priv->data_buffer, 0, TPM_BUFSIZE); priv->response_length =3D 0; ret_size =3D -EFAULT; } else { - memset(priv->data_buffer + *off, 0, ret_size); + memset(priv->data_buffer + iocb->ki_pos, 0, ret_size); priv->response_length -=3D ret_size; - *off +=3D ret_size; + iocb->ki_pos +=3D ret_size; } } =20 out: if (!priv->response_length) { - *off =3D 0; + iocb->ki_pos =3D 0; del_timer_sync(&priv->user_read_timer); flush_work(&priv->timeout_work); } @@ -162,10 +162,10 @@ ssize_t tpm_common_read(struct file *file, char __use= r *buf, return ret_size; } =20 -ssize_t tpm_common_write(struct file *file, const char __user *buf, - size_t size, loff_t *off) +ssize_t tpm_common_write_iter(struct kiocb *iocb, struct iov_iter *from) { - struct file_priv *priv =3D file->private_data; + struct file_priv *priv =3D iocb->ki_filp->private_data; + size_t size =3D iov_iter_count(from); int ret =3D 0; =20 if (size > TPM_BUFSIZE) @@ -183,7 +183,7 @@ ssize_t tpm_common_write(struct file *file, const char = __user *buf, goto out; } =20 - if (copy_from_user(priv->data_buffer, buf, size)) { + if (!copy_from_iter_full(priv->data_buffer, size, from)) { ret =3D -EFAULT; goto out; } @@ -196,7 +196,7 @@ ssize_t tpm_common_write(struct file *file, const char = __user *buf, =20 priv->response_length =3D 0; priv->response_read =3D false; - *off =3D 0; + iocb->ki_pos =3D 0; =20 /* * If in nonblocking mode schedule an async job to send @@ -204,7 +204,7 @@ ssize_t tpm_common_write(struct file *file, const char = __user *buf, * In case of error the err code will be returned in * the subsequent read call. */ - if (file->f_flags & O_NONBLOCK) { + if (iocb->ki_filp->f_flags & O_NONBLOCK) { priv->command_enqueued =3D true; queue_work(tpm_dev_wq, &priv->async_work); mutex_unlock(&priv->buffer_mutex); diff --git a/drivers/char/tpm/tpm-dev.c b/drivers/char/tpm/tpm-dev.c index e2c0baa69fef..2f499c38fef5 100644 --- a/drivers/char/tpm/tpm-dev.c +++ b/drivers/char/tpm/tpm-dev.c @@ -61,8 +61,8 @@ const struct file_operations tpm_fops =3D { .owner =3D THIS_MODULE, .llseek =3D no_llseek, .open =3D tpm_open, - .read =3D tpm_common_read, - .write =3D tpm_common_write, + .read_iter =3D tpm_common_read_iter, + .write_iter =3D tpm_common_write_iter, .poll =3D tpm_common_poll, .release =3D tpm_release, }; diff --git a/drivers/char/tpm/tpm-dev.h b/drivers/char/tpm/tpm-dev.h index f3742bcc73e3..bc02b9509724 100644 --- a/drivers/char/tpm/tpm-dev.h +++ b/drivers/char/tpm/tpm-dev.h @@ -23,10 +23,8 @@ struct file_priv { =20 void tpm_common_open(struct file *file, struct tpm_chip *chip, struct file_priv *priv, struct tpm_space *space); -ssize_t tpm_common_read(struct file *file, char __user *buf, - size_t size, loff_t *off); -ssize_t tpm_common_write(struct file *file, const char __user *buf, - size_t size, loff_t *off); +ssize_t tpm_common_read_iter(struct kiocb *iocb, struct iov_iter *to); +ssize_t tpm_common_write_iter(struct kiocb *iocb, struct iov_iter *from); __poll_t tpm_common_poll(struct file *file, poll_table *wait); =20 void tpm_common_release(struct file *file, struct file_priv *priv); diff --git a/drivers/char/tpm/tpm_vtpm_proxy.c b/drivers/char/tpm/tpm_vtpm_= proxy.c index 11c502039faf..70d51ccb9a98 100644 --- a/drivers/char/tpm/tpm_vtpm_proxy.c +++ b/drivers/char/tpm/tpm_vtpm_proxy.c @@ -69,10 +69,10 @@ static void vtpm_proxy_delete_device(struct proxy_dev *= proxy_dev); * Return: * Number of bytes read or negative error code */ -static ssize_t vtpm_proxy_fops_read(struct file *filp, char __user *buf, - size_t count, loff_t *off) +static ssize_t vtpm_proxy_fops_read(struct kiocb *iocb, struct iov_iter *t= o) { - struct proxy_dev *proxy_dev =3D filp->private_data; + struct proxy_dev *proxy_dev =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(to); size_t len; int sig, rc; =20 @@ -98,7 +98,7 @@ static ssize_t vtpm_proxy_fops_read(struct file *filp, ch= ar __user *buf, return -EIO; } =20 - rc =3D copy_to_user(buf, proxy_dev->buffer, len); + rc =3D !copy_to_iter_full(proxy_dev->buffer, len, to); memset(proxy_dev->buffer, 0, len); proxy_dev->req_len =3D 0; =20 @@ -124,10 +124,10 @@ static ssize_t vtpm_proxy_fops_read(struct file *filp= , char __user *buf, * Return: * Number of bytes read or negative error value */ -static ssize_t vtpm_proxy_fops_write(struct file *filp, const char __user = *buf, - size_t count, loff_t *off) +static ssize_t vtpm_proxy_fops_write(struct kiocb *iocb, struct iov_iter *= from) { - struct proxy_dev *proxy_dev =3D filp->private_data; + struct proxy_dev *proxy_dev =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); =20 mutex_lock(&proxy_dev->buf_lock); =20 @@ -146,7 +146,7 @@ static ssize_t vtpm_proxy_fops_write(struct file *filp,= const char __user *buf, =20 proxy_dev->req_len =3D 0; =20 - if (copy_from_user(proxy_dev->buffer, buf, count)) { + if (!copy_from_iter_full(proxy_dev->buffer, count, from)) { mutex_unlock(&proxy_dev->buf_lock); return -EFAULT; } @@ -244,8 +244,8 @@ static int vtpm_proxy_fops_release(struct inode *inode,= struct file *filp) static const struct file_operations vtpm_proxy_fops =3D { .owner =3D THIS_MODULE, .llseek =3D no_llseek, - .read =3D vtpm_proxy_fops_read, - .write =3D vtpm_proxy_fops_write, + .read_iter =3D vtpm_proxy_fops_read, + .write_iter =3D vtpm_proxy_fops_write, .poll =3D vtpm_proxy_fops_poll, .release =3D vtpm_proxy_fops_release, }; diff --git a/drivers/char/tpm/tpmrm-dev.c b/drivers/char/tpm/tpmrm-dev.c index eef0fb06ea83..f1f5cc0ba627 100644 --- a/drivers/char/tpm/tpmrm-dev.c +++ b/drivers/char/tpm/tpmrm-dev.c @@ -48,8 +48,8 @@ const struct file_operations tpmrm_fops =3D { .owner =3D THIS_MODULE, .llseek =3D no_llseek, .open =3D tpmrm_open, - .read =3D tpm_common_read, - .write =3D tpm_common_write, + .read_iter =3D tpm_common_read_iter, + .write_iter =3D tpm_common_write_iter, .poll =3D tpm_common_poll, .release =3D tpmrm_release, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f54.google.com (mail-io1-f54.google.com [209.85.166.54]) (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 8F86F482F6 for ; Thu, 11 Apr 2024 15:32:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849530; cv=none; b=Z2fRzsXXnm+tfjzsV2zyEzzk3V8zpJISB5s+isRyiG827ZpWLCHCqgc47Iic8s8hazkwUDSpU3mUm5Oului6u5XCcuAxYnSCKiRmyY6fqPYBpFwadJQVRR8KJNpaBveXyu+jrlGljc2IE60hG2Q70hIIM2+UwoNJ2/DdP/p9Sxc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849530; c=relaxed/simple; bh=xICqHCjzfHBwb/QiGFJqKkISN2X0IlBXhm1832PuaTw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=MI8oank/JMJcykGaBdC3QH1DZP2hwzwlETbhER7wIw4InMQX1HYA2ta74XOX82O9uQV6vYBl1xUP0ubjFaEMf60sdTR1xnAZxPzhAX5eXzOsa99w22+cXqrtIrr4nAlsYnxwZ1DO7zMbZRtwcRTQSg1O+t0ljJSh9+8f/xoAm18= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=tqi6z58i; arc=none smtp.client-ip=209.85.166.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="tqi6z58i" Received: by mail-io1-f54.google.com with SMTP id ca18e2360f4ac-7cc0e831e11so170419339f.1 for ; Thu, 11 Apr 2024 08:32:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849527; x=1713454327; 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=PN6bUVPnEm3H8TD658GyI4+no5MCoynBBxVbj0/z+Lw=; b=tqi6z58iyX3U3g3bztoS3j52sq4XbTOj+HjnHx1DVpGVN61ajLExtfmUkfwbOa942O zVqtH3Cbk4GPvjo7E+PzzALFFm7+bwO4HXuJaRa3nBA9rN+Xpf6a4Rt9Pd2aAY9dmHFj D/nbrgojZD7si39+USBX8CZj41hnhx1/MuQ9n+DcKAQv0OGcSxpKt7qFBCowKMPZiH65 j9UGvZCq+hbr75TeGiWeeZEZObSbIADBVRMe7/qGm+ZrdZiRWVgOF7fH8FYdWXStXusc K4P4V9QECpGyN+rWbeYYKCngUx3G2QmKJ2rqRjb+0WCmK29KYR2XXy3gw/aGV3cj4ijN C7ew== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849527; x=1713454327; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=PN6bUVPnEm3H8TD658GyI4+no5MCoynBBxVbj0/z+Lw=; b=OsrAlX5QQNBU6mwDPop8UcQR95D2jYzolcg7AltPLHHXtNHrGRrRvHQhCOl+jDm9t4 ytBXGNcltGjsT4/RZif78sB1p/Tur/n6tn033hrHCdhM1bOHZGPZ+NOBdQ4Z/2Mt3dVa 5rIZNMiDHlXHQHmQbmBdZFJKO/abUMANRV3kisWcrq77cQzfB6RW/ubbZ2VVmMuqqgqC 5XF8uUCI9SjQ8LjOJzlQ/oPdIor77mccNPs5S5ib0Rgf6fUdm/NAZUrRpRo0W9+a7b5Q qllsRUzAlOZxH8XDqHv1NyQkiHStXCzVhTekVjdRP3R1f/RsojYnM3BDqwMb6HUKstHM HTQQ== X-Gm-Message-State: AOJu0Yx/tiRYB817gruHJr5wo9ugs08FKrALCzC0QLyCpI4X53TC7QSj CEpsdEM0sXUarZtEXl1rRXCeJUaMKCLtoULflyplVCXQOfgKqRpiiRuJfhvCYAnbRo7Rs3MAq3L A X-Google-Smtp-Source: AGHT+IG1/PHUsIscy9t8ZYoBv89xMqRlTYqYbk2ueSZom6t6azDKdu4UDxh2WWJeccAFPBGqsQthSQ== X-Received: by 2002:a6b:5b10:0:b0:7d0:bd2b:43ba with SMTP id v16-20020a6b5b10000000b007d0bd2b43bamr210552ioh.0.1712849527347; Thu, 11 Apr 2024 08:32:07 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.32.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:32:06 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 023/437] char/lp: convert to read/write iterators Date: Thu, 11 Apr 2024 09:12:43 -0600 Message-ID: <20240411153126.16201-24-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/char/lp.c | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/drivers/char/lp.c b/drivers/char/lp.c index 2f171d14b9b5..3967115f6c75 100644 --- a/drivers/char/lp.c +++ b/drivers/char/lp.c @@ -298,10 +298,11 @@ static int lp_wait_ready(int minor, int nonblock) return error; } =20 -static ssize_t lp_write(struct file *file, const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t lp_write(struct kiocb *iocb, struct iov_iter *from) { + struct file *file =3D iocb->ki_filp; unsigned int minor =3D iminor(file_inode(file)); + size_t count =3D iov_iter_count(from); struct parport *port =3D lp_table[minor].dev->port; char *kbuf =3D lp_table[minor].lp_buffer; ssize_t retv =3D 0; @@ -324,7 +325,7 @@ static ssize_t lp_write(struct file *file, const char _= _user *buf, if (mutex_lock_interruptible(&lp_table[minor].port_mutex)) return -EINTR; =20 - if (copy_from_user(kbuf, buf, copy_size)) { + if (!copy_from_iter_full(kbuf, copy_size, from)) { retv =3D -EFAULT; goto out_unlock; } @@ -347,7 +348,6 @@ static ssize_t lp_write(struct file *file, const char _= _user *buf, if (written > 0) { copy_size -=3D written; count -=3D written; - buf +=3D written; retv +=3D written; } =20 @@ -391,7 +391,7 @@ static ssize_t lp_write(struct file *file, const char _= _user *buf, if (copy_size > LP_BUFFER_SIZE) copy_size =3D LP_BUFFER_SIZE; =20 - if (copy_from_user(kbuf, buf, copy_size)) { + if (!copy_from_iter_full(kbuf, copy_size, from)) { if (retv =3D=3D 0) retv =3D -EFAULT; break; @@ -416,9 +416,10 @@ static ssize_t lp_write(struct file *file, const char = __user *buf, #ifdef CONFIG_PARPORT_1284 =20 /* Status readback conforming to ieee1284 */ -static ssize_t lp_read(struct file *file, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t lp_read(struct kiocb *iocb, struct iov_iter *to) { + struct file *file =3D iocb->ki_filp; + size_t count =3D iov_iter_count(to); DEFINE_WAIT(wait); unsigned int minor=3Diminor(file_inode(file)); struct parport *port =3D lp_table[minor].dev->port; @@ -485,7 +486,7 @@ static ssize_t lp_read(struct file *file, char __user *= buf, out: lp_release_parport(&lp_table[minor]); =20 - if (retval > 0 && copy_to_user(buf, kbuf, retval)) + if (retval > 0 && !copy_to_iter_full(kbuf, retval, to)) retval =3D -EFAULT; =20 mutex_unlock(&lp_table[minor].port_mutex); @@ -785,7 +786,7 @@ static long lp_compat_ioctl(struct file *file, unsigned= int cmd, =20 static const struct file_operations lp_fops =3D { .owner =3D THIS_MODULE, - .write =3D lp_write, + .write_iter =3D lp_write, .unlocked_ioctl =3D lp_ioctl, #ifdef CONFIG_COMPAT .compat_ioctl =3D lp_compat_ioctl, @@ -793,7 +794,7 @@ static const struct file_operations lp_fops =3D { .open =3D lp_open, .release =3D lp_release, #ifdef CONFIG_PARPORT_1284 - .read =3D lp_read, + .read_iter =3D lp_read, #endif .llseek =3D noop_llseek, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f48.google.com (mail-io1-f48.google.com [209.85.166.48]) (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 3FE054AEE4 for ; Thu, 11 Apr 2024 15:32:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849531; cv=none; b=WrpS7qGQg2Z7ulN2TJBwvmZtSsFOH4WXVQcePZcT3YtsirCjgEIJwfN711FF/M28dhAfEGTv6EEdq70GQ93ELIg1zurxGDS999Th7+X4WfcMMTRpN8Zod7+yLjLnw8JQby7ItPY6t5WDk+y7/zJ7nWp/Cd6yS5aR+5VIwX240uY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849531; c=relaxed/simple; bh=V4OjKlhW+1r1w596hsTLaY2KUU1d/5CE0khjue5wnpo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=lDoTMUV/FTPouHT6atyodb7rG1rDl6OYwbVTjNQCnZIBs7/THR0a0AdustvKbyXX+WxzTrQ+iZ8mwv0kFSvfXOW2rv4iMXcn5+VVl8LYWR5ULhvvgeS1CSKJgSo0Ul921xOYINZowqNY0/MZLX91JlqmYhTFIQFmJzIzwvs5OPU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=lhCySkFl; arc=none smtp.client-ip=209.85.166.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="lhCySkFl" Received: by mail-io1-f48.google.com with SMTP id ca18e2360f4ac-7cc0e831e11so170420139f.1 for ; Thu, 11 Apr 2024 08:32:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849529; x=1713454329; 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=gHGMPVjYkcCZSLtyI9o+5xRAMWVV6AJ4ug8MxTGe0WM=; b=lhCySkFlOXPnFPCbduLNeqNOQZrj23LFJtHXdbn3m9wk67dWmkhsFs0y/woxEWO4s1 jtF+51Z+m6vyaBbM8ZBOPzGM/Hlw6QZNOOqB9bBuNOqKXwzE82ZZD8AUcC5UUxoO4vUa RZLAwzj/3ONNpt1bzPj3gJ21NGhwrQZmfE08W5dEZw36eLfb9Wb9xVC6/M7f7v0bl/zs eejeTMyzK7m5jgrjiO9T8fp6iFcK07wwQWqBryhcb/OQS6k7wwYFjtzLhGHCIV48jHmu 6aJMwY81H5oTMsHoj8zY06nwMPDdRCifYhb4LFwyMAX2/62bWXuh4Yg/Yv8f/xpf7VYO jDhg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849529; x=1713454329; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=gHGMPVjYkcCZSLtyI9o+5xRAMWVV6AJ4ug8MxTGe0WM=; b=Te/VeJNqlvDeB2wllB/wnCEWAcgVB0XfEXofMaG1Hcjqb6VBPmDdUDcVnn/zONmx1D PaqC5ecuA87qbenX0wto+3lPPGFqLFkb1Rwg80k4TFH9h4ZeD7fXhzCNa0zCeses6upo 2PCCxFYyH2RtK4UuCyznzl46AkkStdUIId/qhfdEdwOWO8DStzL0MhMq87R55Leywqc6 66Zt5g0RlRf6651jY0JyOt34E+PD/P8LgFugjZPw1OkEpomcghgwJbnK1KT5Rw8yxRXt Yaz/x3o/UcnQB/inHl9Lvarfy+gQ93/HR/9hW50AwGPdXTpq3fzazVBq9LQZwBXNKBVX CQbg== X-Gm-Message-State: AOJu0YzI2gmUC84mOjvYjloOwFWXKKGtLKwyaocCoXB5FTy13++9AtRG +M0wvy3UOoz/QobAo2R4r6m+0yYgQQlssjjgc0CLWDRU/2cBima/V+bcI1Kmw6oohlx1pmnM7P2 c X-Google-Smtp-Source: AGHT+IG4nApm7JmA7yhgIWAnTjLoKu5kVDNGDNRK7JpOsywQJdhM+Ao2jS30cAsWY6H1h1QKuNP+cg== X-Received: by 2002:a05:6e02:b26:b0:368:974b:f7c7 with SMTP id e6-20020a056e020b2600b00368974bf7c7mr7608037ilu.0.1712849529182; Thu, 11 Apr 2024 08:32:09 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.32.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:32:07 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 024/437] char/mem: convert to read/write iterators Date: Thu, 11 Apr 2024 09:12:44 -0600 Message-ID: <20240411153126.16201-25-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/char/mem.c | 106 ++++++++++++--------------------------------- 1 file changed, 27 insertions(+), 79 deletions(-) diff --git a/drivers/char/mem.c b/drivers/char/mem.c index 3c6670cf905f..00ab09ad98e6 100644 --- a/drivers/char/mem.c +++ b/drivers/char/mem.c @@ -183,16 +183,17 @@ static ssize_t read_mem(struct file *file, char __use= r *buf, kfree(bounce); return err; } +FOPS_READ_ITER_HELPER(read_mem); =20 -static ssize_t write_mem(struct file *file, const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t write_mem(struct kiocb *iocb, struct iov_iter *from) { - phys_addr_t p =3D *ppos; + size_t count =3D iov_iter_count(from); + phys_addr_t p =3D iocb->ki_pos; ssize_t written, sz; unsigned long copied; void *ptr; =20 - if (p !=3D *ppos) + if (p !=3D iocb->ki_pos) return -EFBIG; =20 if (!valid_phys_addr_range(p, count)) @@ -235,7 +236,7 @@ static ssize_t write_mem(struct file *file, const char = __user *buf, return -EFAULT; } =20 - copied =3D copy_from_user(ptr, buf, sz); + copied =3D copy_from_iter(ptr, sz, from); unxlate_dev_mem_ptr(p, ptr); if (copied) { written +=3D sz - copied; @@ -245,7 +246,6 @@ static ssize_t write_mem(struct file *file, const char = __user *buf, } } =20 - buf +=3D sz; p +=3D sz; count -=3D sz; written +=3D sz; @@ -253,7 +253,7 @@ static ssize_t write_mem(struct file *file, const char = __user *buf, break; } =20 - *ppos +=3D written; + iocb->ki_pos +=3D written; return written; } =20 @@ -383,58 +383,39 @@ static int mmap_mem(struct file *file, struct vm_area= _struct *vma) return 0; } =20 -static ssize_t read_port(struct file *file, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t read_port(struct kiocb *iocb, struct iov_iter *to) { - unsigned long i =3D *ppos; - char __user *tmp =3D buf; + unsigned long i =3D iocb->ki_pos, org_i =3D i; + size_t count =3D iov_iter_count(to); =20 - if (!access_ok(buf, count)) - return -EFAULT; while (count-- > 0 && i < 65536) { - if (__put_user(inb(i), tmp) < 0) + char val =3D inb(i); + if (put_iter(val, to)) return -EFAULT; i++; - tmp++; } - *ppos =3D i; - return tmp-buf; + iocb->ki_pos =3D i; + return i - org_i; } =20 -static ssize_t write_port(struct file *file, const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t write_port(struct kiocb *iocb, struct iov_iter *from) { - unsigned long i =3D *ppos; - const char __user *tmp =3D buf; + unsigned long i =3D iocb->ki_pos, org_i =3D i; + size_t count =3D iov_iter_count(from); =20 - if (!access_ok(buf, count)) - return -EFAULT; while (count-- > 0 && i < 65536) { char c; =20 - if (__get_user(c, tmp)) { - if (tmp > buf) + if (get_iter(c, from)) { + if (i !=3D org_i) break; return -EFAULT; } outb(c, i); i++; - tmp++; } - *ppos =3D i; - return tmp-buf; -} - -static ssize_t read_null(struct file *file, char __user *buf, - size_t count, loff_t *ppos) -{ - return 0; -} - -static ssize_t write_null(struct file *file, const char __user *buf, - size_t count, loff_t *ppos) -{ - return count; + iocb->ki_pos =3D i; + return i - org_i; } =20 static ssize_t read_iter_null(struct kiocb *iocb, struct iov_iter *to) @@ -490,33 +471,6 @@ static ssize_t read_iter_zero(struct kiocb *iocb, stru= ct iov_iter *iter) return written; } =20 -static ssize_t read_zero(struct file *file, char __user *buf, - size_t count, loff_t *ppos) -{ - size_t cleared =3D 0; - - while (count) { - size_t chunk =3D min_t(size_t, count, PAGE_SIZE); - size_t left; - - left =3D clear_user(buf + cleared, chunk); - if (unlikely(left)) { - cleared +=3D (chunk - left); - if (!cleared) - return -EFAULT; - break; - } - cleared +=3D chunk; - count -=3D chunk; - - if (signal_pending(current)) - break; - cond_resched(); - } - - return cleared; -} - static int mmap_zero(struct file *file, struct vm_area_struct *vma) { #ifndef CONFIG_MMU @@ -550,8 +504,7 @@ static unsigned long get_unmapped_area_zero(struct file= *file, #endif } =20 -static ssize_t write_full(struct file *file, const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t write_full_iter(struct kiocb *iocb, struct iov_iter *from) { return -ENOSPC; } @@ -626,15 +579,14 @@ static int open_port(struct inode *inode, struct file= *filp) =20 #define zero_lseek null_lseek #define full_lseek null_lseek -#define write_zero write_null #define write_iter_zero write_iter_null #define splice_write_zero splice_write_null #define open_mem open_port =20 static const struct file_operations __maybe_unused mem_fops =3D { .llseek =3D memory_lseek, - .read =3D read_mem, - .write =3D write_mem, + .read_iter =3D read_mem_iter, + .write_iter =3D write_mem, .mmap =3D mmap_mem, .open =3D open_mem, #ifndef CONFIG_MMU @@ -645,8 +597,6 @@ static const struct file_operations __maybe_unused mem_= fops =3D { =20 static const struct file_operations null_fops =3D { .llseek =3D null_lseek, - .read =3D read_null, - .write =3D write_null, .read_iter =3D read_iter_null, .write_iter =3D write_iter_null, .splice_write =3D splice_write_null, @@ -655,16 +605,14 @@ static const struct file_operations null_fops =3D { =20 static const struct file_operations __maybe_unused port_fops =3D { .llseek =3D memory_lseek, - .read =3D read_port, - .write =3D write_port, + .read_iter =3D read_port, + .write_iter =3D write_port, .open =3D open_port, }; =20 static const struct file_operations zero_fops =3D { .llseek =3D zero_lseek, - .write =3D write_zero, .read_iter =3D read_iter_zero, - .read =3D read_zero, .write_iter =3D write_iter_zero, .splice_read =3D copy_splice_read, .splice_write =3D splice_write_zero, @@ -678,7 +626,7 @@ static const struct file_operations zero_fops =3D { static const struct file_operations full_fops =3D { .llseek =3D full_lseek, .read_iter =3D read_iter_zero, - .write =3D write_full, + .write_iter =3D write_full_iter, .splice_read =3D copy_splice_read, }; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f53.google.com (mail-io1-f53.google.com [209.85.166.53]) (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 208B24D59E for ; Thu, 11 Apr 2024 15:32:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849533; cv=none; b=NIWpsG76UmHQRqxIePlj4au1IpKgDyQF0afK1JDW1IVdpUp61oGE4Vfr6RwO8ziqCtvNG0NdLq48SQqOYsf5XnNDG2O9XqcmAmiHEp9EQJCPxLChd9o6b+EBHqTo61dGopmnl16ZVC2/JRKepvWaEjOupsqtB9OWmV4tN/G2jyE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849533; c=relaxed/simple; bh=SzIlWvqYCnlTet5gr/Tc5LnJFfs+akMvm3OzizTAikE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ES2JhilLymbPOEx5Hpg8m5hfYGOua9O5iGQzX1dBS+Osjk4+4Ozow63ekHmUEtF7q8ISovzpNT3LqW7tRjOaaVRmVxSqAbN0AZ/tPwGisUzGpGzkAMBBqlEeGf9cwLWx/B3rxbzBwSPZmpiTzrtIsOl+iAYn2TEuNaWi1tz45B8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=b0INj07D; arc=none smtp.client-ip=209.85.166.53 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="b0INj07D" Received: by mail-io1-f53.google.com with SMTP id ca18e2360f4ac-7c8e4c0412dso69486739f.1 for ; Thu, 11 Apr 2024 08:32:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849531; x=1713454331; 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=6AQorYsUBJJg+lN24NJvdf2Zg9AjBizq3/2LSD+5mik=; b=b0INj07Dy03ub55rrQhPNNpCepls/6cLlBQm3wBCysM/JA6vmfcAEWEmf6ft9mTwRT fiIoD59w3CkWLFQ+qrzPrrs0MVulMHezjAN6HS4XGiOvP8NecJ+Rbw9Cx8VAl1b4paSC J3WpbHEPQAJdDKbnZwhDgeYgtZ8lrVDKRiWhAHgNtJd0o+iYJAzgG7H5o6JLM9iIloqQ rghOegyST+GQLEmBrol5cRFUwP2t562lDHa5I7PNEACbrBzWkcV2syU+96+9QQ/W73U4 MIpujoT9fHsMuHZeDBhIoHGuKtH0m4NNpH/+CAV18ijOmsKSv350PzXZOXMpIhnoekcL 8GUQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849531; x=1713454331; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=6AQorYsUBJJg+lN24NJvdf2Zg9AjBizq3/2LSD+5mik=; b=G6RLWFvv3VTDiPeVlpRF3ikwmyEZsYEdgJB7DQ16OWkeCw1IeC9fRQyYyN07OUzj/t 82fRhDgyeUufP41JZEWvjUAKDRCZjO0nD1Cef+b2/T5nRjfnm0WR/3qoyh7Gwha9P4/1 mWW0I0lFBKGiE7valF6pPIpyt/DdeuYGh6EOl+HhMwL4HMPRsSWzQRwYgHAXAWwcHcwE dAWSC5xYAWSTJZVuaLjnMOUagLo15aG+b5FxJhn5lN4ZdMUGhdd/7pmx7cIJdoHLaPZ6 uw2XpwuH35H8EExJQxYj5sVc6fPXnQcGU6hZ+f4JApWQHK4pPrzDKseNvvGLQlJtG9B6 9imQ== X-Gm-Message-State: AOJu0YwUFP7YZf0lUWBt2GgMQzfI0r71ll/ySIfiTP33VSPDU5cyGUH5 BS9O7wLm0EkqN/iRGjil2MH0amK54erEhmldTsNMFx113thS7j3TlqFNIvUNElYfaJb39cmJYer D X-Google-Smtp-Source: AGHT+IEAQdAET2G9jFQV5s5JIv6IGJlKcgAe3k1XevwTzuzOZ/jeblflatm8M0UOcNIl9x0lKu61Kg== X-Received: by 2002:a05:6602:84:b0:7d6:9d75:6de2 with SMTP id h4-20020a056602008400b007d69d756de2mr31179iob.2.1712849530943; Thu, 11 Apr 2024 08:32:10 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.32.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:32:09 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 025/437] char/mwave: convert to read/write iterators Date: Thu, 11 Apr 2024 09:12:45 -0600 Message-ID: <20240411153126.16201-26-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/char/mwave/mwavedd.c | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) diff --git a/drivers/char/mwave/mwavedd.c b/drivers/char/mwave/mwavedd.c index 11272d605ecd..34b00a663d22 100644 --- a/drivers/char/mwave/mwavedd.c +++ b/drivers/char/mwave/mwavedd.c @@ -411,25 +411,14 @@ static long mwave_ioctl(struct file *file, unsigned i= nt iocmd, } =20 =20 -static ssize_t mwave_read(struct file *file, char __user *buf, size_t coun= t, - loff_t * ppos) +static ssize_t mwave_read(struct kiocb *iocb, struct iov_iter *to) { - PRINTK_5(TRACE_MWAVE, - "mwavedd::mwave_read entry file %p, buf %p, count %zx ppos %p\n", - file, buf, count, ppos); - return -EINVAL; } =20 =20 -static ssize_t mwave_write(struct file *file, const char __user *buf, - size_t count, loff_t * ppos) +static ssize_t mwave_write(struct kiocb *iocb, struct iov_iter *from) { - PRINTK_5(TRACE_MWAVE, - "mwavedd::mwave_write entry file %p, buf %p," - " count %zx ppos %p\n", - file, buf, count, ppos); - return -EINVAL; } =20 @@ -481,8 +470,8 @@ static int register_serial_portandirq(unsigned int port= , int irq) =20 static const struct file_operations mwave_fops =3D { .owner =3D THIS_MODULE, - .read =3D mwave_read, - .write =3D mwave_write, + .read_iter =3D mwave_read, + .write_iter =3D mwave_write, .unlocked_ioctl =3D mwave_ioctl, .open =3D mwave_open, .release =3D mwave_close, --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f48.google.com (mail-io1-f48.google.com [209.85.166.48]) (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 BE8F150243 for ; Thu, 11 Apr 2024 15:32:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849536; cv=none; b=ubieO1+1k14EaA40ZnjRPMPSMKrMhUpYMv/JGq8qNp5/sNAfdB9UncV4e0h6gQdcZFeqjBk1x5ZxTE+G7ffAznbif+kQYL10xPVtnsUA8NY8DHZoX/fy2Dn4KQhg838T0DvklE2I1vZoSRnIg5jl/hL+UIM12+xEgBFK5oCMx8E= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849536; c=relaxed/simple; bh=1Ne3GYTNmD19frt4WVZrUXPlca0CwwIPoNwmXUgiDAE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=caooodLncrY/chHvhfHYE7Ha/GZUhuWQ0QoruQLyyB2l3BDznRTIKSOAfKK+RV1YoMGuScOWuB3Q7HfZxr+XP9B4KZL04RrYFtxbPTKBopldYCrcjWCDwRtSLsvxjv1YRb+OfjBgD5nWsTRIhjqG0NEq2kRHU2RCS9A1LLjDLkg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=FMILJu+C; arc=none smtp.client-ip=209.85.166.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="FMILJu+C" Received: by mail-io1-f48.google.com with SMTP id ca18e2360f4ac-7d0772bb5ffso180592539f.0 for ; Thu, 11 Apr 2024 08:32:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849533; x=1713454333; 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=w1303vnIG3Y/o3u9Ot8CcMYe7zIKBSqHSL40+rHCxfA=; b=FMILJu+CGQSfnUE2iVRQmk43thJxFR7ijlE4ooEnjME0V7cCU4pKDt3jrMKqHHtN3V Oy8SPdAW5XmhKwjyP3r9Ny3UTlSclRqZwbinV9LqTGwniFbFoq294hGQxfTEUHaHod1b ZVY+gNEZMjLeNidWdmZs/xXcjOTq0Ybw/XaZAFcy4a4czvgCCNp4xihmMYOEK9P0XPYR O1sx2XGjAhlAnwEklvQntoJdgVxG2hnFeH3PdopgbeSCVXF1+864qzTSRUDgVsCLKQ7m ISjLykiycGBWOo0r6xbYBi4/NN48dRD1qVSlz6my8NDIZm3iaiXHS2YvWR7KAtKNEtlf 1nAg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849533; x=1713454333; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=w1303vnIG3Y/o3u9Ot8CcMYe7zIKBSqHSL40+rHCxfA=; b=ho4oJWadZkKvkjXhy2dw0ChNH9vEYPfRAoxE9a4DtpYGTeihdtwvVhTX678O4OC7eP E9emGSuWIfHkKhO/YKJjqinKo91gSR3kPZD+a6ac+jueWBQ3xvejRFNStq34lyeViiz3 JR7OX/SdORFtFnJOXa6U+zCGlFUaTexR6DBTS23YbdGmd0S8T6E+/mIrrE0Y1h9+2giM sMNpNLmbTyB/nsBoHtQU3kQ8I0soqW9I8wLEySR5qbNjb9SHzoquCAK1EOGL1DvDQKUO HiGq6JUAr5PdKLJsmJHxwlfFZ4EpgbQRPt3lwRj5Aq2lcke0I1IsrMivDeQCPcAqm1ex 4dxQ== X-Gm-Message-State: AOJu0YxPrU+osoy3TDnmnMRoHHnlSRSJOIRWIpIGkK3Z6XrH31VZKzPc DV4e7FMqQPQNc3hajs9+IHTplm1+oDHJXX5UETrX6RxtaBHMdPYz4i3R4VSIT1AvEtrouKxnGj6 7 X-Google-Smtp-Source: AGHT+IFVELhPTvCgr8COf/cZdsQM0+iMN9kXfCZhTAsdkg5ZzNco8D0vZW8yge0k6MkE0IidQLnWzQ== X-Received: by 2002:a6b:4e14:0:b0:7d6:631d:7b0 with SMTP id c20-20020a6b4e14000000b007d6631d07b0mr173425iob.1.1712849532856; Thu, 11 Apr 2024 08:32:12 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.32.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:32:11 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 026/437] char/nvram: convert to read/write iterators Date: Thu, 11 Apr 2024 09:12:46 -0600 Message-ID: <20240411153126.16201-27-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/char/nvram.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/drivers/char/nvram.c b/drivers/char/nvram.c index e9f694b36871..911370aa2a1a 100644 --- a/drivers/char/nvram.c +++ b/drivers/char/nvram.c @@ -225,29 +225,29 @@ static loff_t nvram_misc_llseek(struct file *file, lo= ff_t offset, int origin) nvram_size); } =20 -static ssize_t nvram_misc_read(struct file *file, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t nvram_misc_read(struct kiocb *iocb, struct iov_iter *to) { + size_t count =3D iov_iter_count(to); char *tmp; ssize_t ret; =20 =20 - if (*ppos >=3D nvram_size) + if (iocb->ki_pos >=3D nvram_size) return 0; =20 - count =3D min_t(size_t, count, nvram_size - *ppos); + count =3D min_t(size_t, count, nvram_size - iocb->ki_pos); count =3D min_t(size_t, count, PAGE_SIZE); =20 tmp =3D kmalloc(count, GFP_KERNEL); if (!tmp) return -ENOMEM; =20 - ret =3D nvram_read(tmp, count, ppos); + ret =3D nvram_read(tmp, count, &iocb->ki_pos); if (ret <=3D 0) goto out; =20 - if (copy_to_user(buf, tmp, ret)) { - *ppos -=3D ret; + if (!copy_to_iter_full(tmp, ret, to)) { + iocb->ki_pos -=3D ret; ret =3D -EFAULT; } =20 @@ -276,6 +276,7 @@ static ssize_t nvram_misc_write(struct file *file, cons= t char __user *buf, kfree(tmp); return ret; } +FOPS_WRITE_ITER_HELPER(nvram_misc_write); =20 static long nvram_misc_ioctl(struct file *file, unsigned int cmd, unsigned long arg) @@ -490,8 +491,8 @@ static int nvram_proc_read(struct seq_file *seq, void *= offset) static const struct file_operations nvram_misc_fops =3D { .owner =3D THIS_MODULE, .llseek =3D nvram_misc_llseek, - .read =3D nvram_misc_read, - .write =3D nvram_misc_write, + .read_iter =3D nvram_misc_read, + .write_iter =3D nvram_misc_write_iter, .unlocked_ioctl =3D nvram_misc_ioctl, .open =3D nvram_misc_open, .release =3D nvram_misc_release, --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f49.google.com (mail-io1-f49.google.com [209.85.166.49]) (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 18A685025E for ; Thu, 11 Apr 2024 15:32:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849536; cv=none; b=l9ALHbMkkRIUPwTyMGeQTBT+PQkmiXsBmdwwu9DcSHPw1r5tq579NqUr0hFkcgCZowvDAtK5b09v8vNpRDU0BFY0uK4HeVka0wKjdLlWMia+FlxvGB2U06F030GfJnQTziFqKFQCzGWX66oxQ3mFuLuIx+8MndoOmnJiszCxRAA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849536; c=relaxed/simple; bh=YItkDFRLkk5y5vZRwpze5mLqlR7ULkpv5iErq+FgyZQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ojt+Lv0zwLlbfE4EDaj+TCaa0uzEfnpng6dqYjejMBCae1a5eJjdVKq2XQZ3XjaFrqDwyVqKAVBO/4Q+HHjegfZvY5H44I+Oqcr2v1pAZGuyRlvwhGUPh2wVfSTn5Ra51FdxOIPdFo+emMRylbsH3CkVtZxUjfS8eGMnfEOVNsI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=lLz/deQf; arc=none smtp.client-ip=209.85.166.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="lLz/deQf" Received: by mail-io1-f49.google.com with SMTP id ca18e2360f4ac-7cc0e831e11so170422039f.1 for ; Thu, 11 Apr 2024 08:32:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849533; x=1713454333; 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=c9D0JKg9r14NKJXa7r1LiBPVJDUbVoO37fXAYUxkSBY=; b=lLz/deQftHtlOm4DKRLtiUQ0qhyU5MaESxrpxuH8qv/sMdeg7RpBHb871PDpIuZTh2 DqQ6b3Ee2lXusFZzebA10dT/A+rcjLd+s55eO6/8gFznzHhgf2RxNq0FMWeRwQRQqI2l s6RsyqQg+wCtgIvhUL0GQ7wnjLHqHF2gzbamnAya7uZUiPkfrxjKzOWqENIlrBPYx0vM tlXptQbv1wTk5Tl2F01GNcEb7hbcbz4GWygsLbHS3sssHBBk7ZTBREMpCXX4NRxVauSS xQcFKHrd1KXSFu0ulRfytztAqObP3Unh1a5N3rvnyjv+SBHptLfkB7NrAw6O7O/bCrwk +LgA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849533; x=1713454333; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=c9D0JKg9r14NKJXa7r1LiBPVJDUbVoO37fXAYUxkSBY=; b=aTXIQF/HezWAINiOPRaXTpBDDM54rqnUlLAURFdmCLcnfDFQIPG8KoJrKX9NUi7+ci SbbC0wD3P76qft88KGUa9V7Ma1qB9gytF1ZS/QYrgEMg0QCayLfJyCRLUj4bzDqa9qqF giMAdJb93NAcx72Bi1wU/9u2etHNAvJF/EQQKBokn0WNbb/cza6Gn6rJLSNLmJdrFVhY +IP/zLtun5aSbcUgV3PtSx7T+1CPtfSnsy++cwKF2xXbDLqjJN4uao3bkS8Qzw91gqoU oYRonFnReXOPF76MU1Kec4RaANoilepJ+zGlk1YHX+xx2pu3gTdU7So6F6sTqCqxzDgn IB6g== X-Gm-Message-State: AOJu0YwfzNFSaolabMN1PiabyBmAw5IaLGp3d2B1EOiBWwED4CDjzoTI 1Sa8gixnrIWZIZHKGKbVRGOEYmTxisSZjE1ibewq7NSHdVqoKgdM9cGkTOEkc9Swd0LwBHaV552 z X-Google-Smtp-Source: AGHT+IHq5cOXZrThsNzOVETtqEL5/7PBrlJ56jmh56Lu9DB3zNGdl/bndf2LNbdfhsXIbrlOXQLWPg== X-Received: by 2002:a6b:5b10:0:b0:7d0:bd2b:43ba with SMTP id v16-20020a6b5b10000000b007d0bd2b43bamr210954ioh.0.1712849533614; Thu, 11 Apr 2024 08:32:13 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.32.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:32:13 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 027/437] char/nwbutton: convert to read/write iterators Date: Thu, 11 Apr 2024 09:12:47 -0600 Message-ID: <20240411153126.16201-28-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/char/nwbutton.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/drivers/char/nwbutton.c b/drivers/char/nwbutton.c index ea378c0ed549..3b60ee911c68 100644 --- a/drivers/char/nwbutton.c +++ b/drivers/char/nwbutton.c @@ -165,14 +165,13 @@ static irqreturn_t button_handler (int irq, void *dev= _id) * device at any one time. */ =20 -static int button_read (struct file *filp, char __user *buffer, - size_t count, loff_t *ppos) +static int button_read (struct kiocb *iocb, struct iov_iter *to) { DEFINE_WAIT(wait); prepare_to_wait(&button_wait_queue, &wait, TASK_INTERRUPTIBLE); schedule(); finish_wait(&button_wait_queue, &wait); - return (copy_to_user (buffer, &button_output_buffer, bcount)) + return (!copy_to_iter_full(&button_output_buffer, bcount, to)) ? -EFAULT : bcount; } =20 @@ -184,7 +183,7 @@ static int button_read (struct file *filp, char __user = *buffer, =20 static const struct file_operations button_fops =3D { .owner =3D THIS_MODULE, - .read =3D button_read, + .read_iter =3D button_read, .llseek =3D noop_llseek, }; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f45.google.com (mail-io1-f45.google.com [209.85.166.45]) (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 A6A8051C36 for ; Thu, 11 Apr 2024 15:32:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849539; cv=none; b=H+QJj1iFUP0DmscP9nBjaIuVa96alMQkUOHmUi5JrHOR0qq2Fmg3iPNeheLM5LLmL41XWoNz9XFf1yHGbIXPTzP8DvngMZkNm67M4FUl8lGEbSetP7VMribOUh6k8rP4tgvJf71m6mYCOj+4ZC3L+pKBPT6O920xddcQ/7TwP8M= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849539; c=relaxed/simple; bh=nr4UjchYiQ65PutVyR5tP1SJ6zOECRrpkIcZXp6V/i0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=A1THvKqpqrteLFyHeuj3XW7q0+V87MXXXU03RZiuSRww9qsJ3zToKmCWOyds5aN0UhnYjYIkxJLAt6Of/7Y0TN8130Pgbd1QytPXyGDL+uXCkdi5fyrgQCZ+wgUrFFTZqkCSgbInO8NLv2e39V8WRHHcapFv5YiUGCEZq1ztsSw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=sohO6bId; arc=none smtp.client-ip=209.85.166.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="sohO6bId" Received: by mail-io1-f45.google.com with SMTP id ca18e2360f4ac-7d5ed700c2dso16100139f.0 for ; Thu, 11 Apr 2024 08:32:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849536; x=1713454336; 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=/KKNacRSnh9x5cp5CuEtZJuk2g6Q15fhmcOxJa0XWAg=; b=sohO6bIdZXbCZaysRxRENtKLRjJH6PnYrZ+GeB4pCDPey2MpNtAAyYa/F3u59pJ2oZ xQZQGw/oltU/LSTgF9SUOeqDhW9AVRLfgDCYpcdtw4B0gAQtyW0amwL3I10WcSFRW49E LODk0U0LgksJZ58sq8g/OC63on4DbXpFNRNwQhYK080HQCPCU1+YDWiEMhsQtWtE8WkB B7MK8e9uG7PF0WI8n/Gi+Dn7yIx1sb/ybiTMz7Kf8zDAxk7ihIf8LNr7/tSlt9O3sLpb 60hIGk65fKnFbWTyMND0GlBOeCCSRTyjeLwyinXYPxmCKKbbr6k6EzAEM+LhluLoeA/v TzXQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849536; x=1713454336; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=/KKNacRSnh9x5cp5CuEtZJuk2g6Q15fhmcOxJa0XWAg=; b=LC+U/7XtWF6U1sHr77udVsotC5XP+EfcrB5kXB0bJ/teOj65HS3xZ2V4GSMKdWow7I UYApAlesLapNfYlqdIyOzZjKoTogGOHg+9QW/yTehB/ccJtgfbLokq7heV99IWbooFb8 tmEAVfTXjS5goMyK3xa7DyF62x7p71zmCcjsGGLCxt+te0kpXMH3Fq3aPXuEH7zP6E4q GONhbNUoWZTfkjpycef+3WAErnqwEPWNfgVuvXIYaD2t0bjY9r++ya0bmy2zXcuVMgB4 ehsw4bBdTJ005uO4NEtpaq9uvuQTyMIIj6axWLmyWNFLeie2sSNyqilkobf40eAdCOeQ ARmQ== X-Gm-Message-State: AOJu0YwWOsCN0SBGCmonnlh/Grrszfswn5LhYtzPDVfeiT6dUqyK1DhT qeWxaj3siV7uhyXB0JSPU9bdqRDJOVNvLuUxzWb3OEQhBPXFNZ3Fn0jWdM857SWpsLcmwLDSIP0 u X-Google-Smtp-Source: AGHT+IE2h6CtwKp/yda+QBI2fNcvpGh6wxfFW9x2aV82xDpQDmZd458vuv/JqOXrb8pw1Ho6qcJ8oA== X-Received: by 2002:a6b:f312:0:b0:7d5:de23:13a9 with SMTP id m18-20020a6bf312000000b007d5de2313a9mr148784ioh.1.1712849535839; Thu, 11 Apr 2024 08:32:15 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.32.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:32:13 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 028/437] char/nwflash: convert to read/write iterators Date: Thu, 11 Apr 2024 09:12:48 -0600 Message-ID: <20240411153126.16201-29-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/char/nwflash.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/char/nwflash.c b/drivers/char/nwflash.c index 0973c2c2b01a..0b66135c7cd4 100644 --- a/drivers/char/nwflash.c +++ b/drivers/char/nwflash.c @@ -120,8 +120,7 @@ static long flash_ioctl(struct file *filep, unsigned in= t cmd, unsigned long arg) return 0; } =20 -static ssize_t flash_read(struct file *file, char __user *buf, size_t size, - loff_t *ppos) +static ssize_t flash_read(struct kiocb *iocb, struct iov_iter *to) { ssize_t ret; =20 @@ -134,7 +133,8 @@ static ssize_t flash_read(struct file *file, char __use= r *buf, size_t size, if (mutex_lock_interruptible(&nwflash_mutex)) return -ERESTARTSYS; =20 - ret =3D simple_read_from_buffer(buf, size, ppos, (void *)FLASH_BASE, gbFl= ashSize); + ret =3D simple_copy_to_iter((void *)FLASH_BASE, &iocb->ki_pos, + gbFlashSize, to); mutex_unlock(&nwflash_mutex); =20 return ret; @@ -259,7 +259,7 @@ static ssize_t flash_write(struct file *file, const cha= r __user *buf, =20 return written; } - +FOPS_WRITE_ITER_HELPER(flash_write); =20 /* * The memory devices use the full 32/64 bits of the offset, and so we can= not @@ -569,8 +569,8 @@ static const struct file_operations flash_fops =3D { .owner =3D THIS_MODULE, .llseek =3D flash_llseek, - .read =3D flash_read, - .write =3D flash_write, + .read_iter =3D flash_read, + .write_iter =3D flash_write_iter, .unlocked_ioctl =3D flash_ioctl, }; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f45.google.com (mail-io1-f45.google.com [209.85.166.45]) (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 19D7151C4D for ; Thu, 11 Apr 2024 15:32:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849539; cv=none; b=ZdRHvnpRANSI1/ihVTqLmfQek/zSCw/ibpnRb/UVtC3NXAiw7qzwdnxtCHEs8Vmu0AzCdb9SCWMACjNLRE2SirtFHbwrjsNkFM09u9z/dkJgyOrxMWZy2mDmGgTlKous6YD9t7BdQP7iQbB0FKEuf3LPaBZhW48mBqhC9sRgmE8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849539; c=relaxed/simple; bh=kyw/HdCUwTeWRwwA+0T6XYDiM1ZoUTaYBdjVI0tuHt4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=UN+pvPyjP4+sZme8vm+Bq5TSJ7S8Hb7eEhcpARTC4QvcTnCrvEz213we/R/eQ5BRva+0X7ULpffh9mn/d9KTUHvoWQmW3kBmHH1E2iPVxIZNFNq6F/DYMfewFTpb8tE+C+xJ2+kx/TQLB7BuN4RMhDGibUAIa841hSjCsim+sBY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=W2E8Z7Gu; arc=none smtp.client-ip=209.85.166.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="W2E8Z7Gu" Received: by mail-io1-f45.google.com with SMTP id ca18e2360f4ac-7c8e4c0412dso69489339f.1 for ; Thu, 11 Apr 2024 08:32:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849536; x=1713454336; 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=kGpvMSeP55U4CAnay381szdexyIncKVKMN6QJLNVTXI=; b=W2E8Z7GupadnBskv5iNaftv0clqF/wYjROdH6dcJc611R4O1wk36ZNFHnisc0vj7ik E1j6WaKG+EcWsJ3CIpK+qTjwIci0EZMnoR0KVPIQTk54b6zKRHH2Sh+XcHrgyquuqelV afGaZ4w1MbaGBei+RkeLd/EP33SyjN4coB9Foos1h76RD121nFP9U1Jdri+joMgvjOqb PoSSeku+nZvibtVp6JpgwKauvNuU/b6MeKqZsLbS+stnn9ZQxPId32GvZeLZonvQWcxd +OuENCSg0ly02x7od1Ii38l9f7q0bdIEp740ap/miy7EXMbx0QjJgFsCEJ3m/Rdotre8 +LvQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849536; x=1713454336; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=kGpvMSeP55U4CAnay381szdexyIncKVKMN6QJLNVTXI=; b=o98XFm/5ueDqpqLDML2HvgH/oi4eR5I5Yusk4QFhW5FbC55KbXHpWoZb9KH/o2G0v2 mBmC8Dt05VxNgl96aAdVIIbZOFDa1B4yOvBdmhMMiYCsd0Xie4s3XXayeZZkNp/+oha8 uhW6TebNzk4jFfaln1ASV1Mj8tQXvcAjwKlzfehQmZmTFpDeQTjKeHcb5AFpdVaZreYf yJBO99aeRPUFd5jbzVXwpXTm8skdrx1BC78/HIU/sD6Mr/irpJx3YoEtNpxwIKaOWtKL Ms9trRyU40eGrPu3DdPkk3X3ppeKOI81fIdZBJ71J26yCqzILRWFIfYsMlqx9mLzKVV+ ub/A== X-Gm-Message-State: AOJu0YyUM0IUiTAEZVcLTM02HaHWFYeYG2s2l7oW0TUdg3S3fDMfjYNi /IX3MSe5wEJ/4/VIwTXfbxbRQokK79jmcUM+5zCrI6J9XrFDorkXXzgKHeyM7+TFANgjtyuLMlO K X-Google-Smtp-Source: AGHT+IFo3HSOHcR2Ho2i/pya4vLLfXlNeF2PJYWVN9WFKXE4DsBK+OcNN0OtZ9Xm8rR9mlONopxzqA== X-Received: by 2002:a6b:c34e:0:b0:7d6:7b7c:8257 with SMTP id t75-20020a6bc34e000000b007d67b7c8257mr203006iof.0.1712849536556; Thu, 11 Apr 2024 08:32:16 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.32.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:32:16 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 029/437] char/pc8736x_gpio: convert to read/write iterators Date: Thu, 11 Apr 2024 09:12:49 -0600 Message-ID: <20240411153126.16201-30-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/char/pc8736x_gpio.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/char/pc8736x_gpio.c b/drivers/char/pc8736x_gpio.c index c39a836ebd15..9ffd84788550 100644 --- a/drivers/char/pc8736x_gpio.c +++ b/drivers/char/pc8736x_gpio.c @@ -233,8 +233,8 @@ static int pc8736x_gpio_open(struct inode *inode, struc= t file *file) static const struct file_operations pc8736x_gpio_fileops =3D { .owner =3D THIS_MODULE, .open =3D pc8736x_gpio_open, - .write =3D nsc_gpio_write, - .read =3D nsc_gpio_read, + .write_iter =3D nsc_gpio_write_iter, + .read_iter =3D nsc_gpio_read_iter, .llseek =3D no_llseek, }; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f48.google.com (mail-io1-f48.google.com [209.85.166.48]) (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 D9BB95337F for ; Thu, 11 Apr 2024 15:32:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849541; cv=none; b=qAhJgv/9jllge+SKCouPTraUXZt4vCPK+sz2jvkBmbnHwqFXdnIjKZ37srK0S5O/um3OBTmSWxUZf5+sZeyEbUgu6VEUq7ktSwuu4sU99Hvhu3lhYnCnMlOpFbnpNPG6+/moHpdosR+wn123P+NYMRiK8owocliw6wvFfNCtXAA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849541; c=relaxed/simple; bh=fwjOnCSBUcF3RfH5JrEHh3MbFgy/aD7CKledGMu4oXw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=bney4ewSsPBC8OOJy5z4nZxqqfv5dEpdvRSjVxg0eQkIwUoYjXSeJ932co4hNIF7AyoKJQw6humaSORtSLAOfqwaTNkMTo7PAtajRjAPew08R/h/IDavEd0GpM98/2RaZTTWIVAeXhXpV71+AI+RU/NGyfgV3GG4IwcjEXWPV1k= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=SSJ8aiqo; arc=none smtp.client-ip=209.85.166.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="SSJ8aiqo" Received: by mail-io1-f48.google.com with SMTP id ca18e2360f4ac-7d5ed700c2dso16100639f.0 for ; Thu, 11 Apr 2024 08:32:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849539; x=1713454339; 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=2qszcc7+Aw0jGDf//SUQC/piDZbAT+nT2K/TXHDYobA=; b=SSJ8aiqos4UXTu80zBWdGmPJBBnJFCf6NSeBj5EHZ7/SXXDz/4w1Azgtgd/PH5JqV9 aEiZ3YmjMc+NODLWtNayXAwjGwGYFcI9YmKeN+QOQVw3xmLTngTtePoVt15DDbR/YN29 pgHkI9MQU+Qx2C7903sQcl+35snI0iw0bfXPj+nBmkykMvlChzoGRgFABZpcP5YJQa5w lFe8uKXfnNghZb9lF+RyPTPKkhui5Wk8rKV8+VM/KFfMAItLcSuB4glh6da+3ElKn58N bshM+F29AeksPamYbX0/XSTIAx99uY7HuOKh8YWy/cfbXSXbBFFJ37ONzxarYgaXO1uD Bplw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849539; x=1713454339; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=2qszcc7+Aw0jGDf//SUQC/piDZbAT+nT2K/TXHDYobA=; b=At+AAE/LUr19ZU3wZw7UeUfXqC/rRNEXxvo8oCT8bOtZ8MOZZJlIcZmWprURWyQSAE 9yf47JXw7lOiiPmO6aqP2H+zfDkMCVOuYX7pWi9M6exVFgiYpZCLhI/llCbHgat/vm9b HKpUnkN3Caf1+crQJSYndVAlnBJbdiP26CQwiauk0nxlpSFQVCfJ4eLmMIZtJ6/+4pNu 3ggIzvwlXJJUsjQzA3ON7qJeCG5gqmYybLw4WoGF6jCUuLt6n09OtLAjCYvKA/rEfHB+ 4HpfKONgf/Q0AiKoA25hbHWSCD2pDurkq98iaTuiRaQ4259oaZQoqhF45b1k1yG6f/Ev SqzA== X-Gm-Message-State: AOJu0YyVZ/XN9FUHt1j9DqDzd9PvXwzjvROpgKb5I5oOpgOK4JGoFQ6o 9qQqfA/hQtBScmuz+3O1aUxd1V7JGPHrrgyB7y4F4+bp/mF9BeUX/XAlsBLDXVnkumUCHiMSE0y S X-Google-Smtp-Source: AGHT+IF0d6OnHYwx2CcC+sBVRefcg5XepSF/Sz/KtFW9/Szhwkn9T/oURJs/+s+QJqSDrMGFIdIcVQ== X-Received: by 2002:a92:b10d:0:b0:36a:3ee8:b9f0 with SMTP id t13-20020a92b10d000000b0036a3ee8b9f0mr4227757ilh.0.1712849538775; Thu, 11 Apr 2024 08:32:18 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.32.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:32:16 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 030/437] char/powernv-op-panel: convert to read/write iterators Date: Thu, 11 Apr 2024 09:12:50 -0600 Message-ID: <20240411153126.16201-31-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/char/powernv-op-panel.c | 25 +++++++++++-------------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/drivers/char/powernv-op-panel.c b/drivers/char/powernv-op-pane= l.c index 3c99696b145e..8e9e2d47087f 100644 --- a/drivers/char/powernv-op-panel.c +++ b/drivers/char/powernv-op-panel.c @@ -40,11 +40,9 @@ static loff_t oppanel_llseek(struct file *filp, loff_t o= ffset, int whence) return fixed_size_llseek(filp, offset, whence, oppanel_size); } =20 -static ssize_t oppanel_read(struct file *filp, char __user *userbuf, size_= t len, - loff_t *f_pos) +static ssize_t oppanel_read(struct kiocb *iocb, struct iov_iter *to) { - return simple_read_from_buffer(userbuf, len, f_pos, oppanel_data, - oppanel_size); + return simple_copy_to_iter(oppanel_data, &iocb->ki_pos, oppanel_size, to); } =20 static int __op_panel_update_display(void) @@ -86,26 +84,25 @@ static int __op_panel_update_display(void) return rc; } =20 -static ssize_t oppanel_write(struct file *filp, const char __user *userbuf, - size_t len, loff_t *f_pos) +static ssize_t oppanel_write(struct kiocb *iocb, struct iov_iter *from) { - loff_t f_pos_prev =3D *f_pos; + loff_t f_pos_prev =3D iocb->ki_pos; + size_t len =3D iov_iter_count(from); ssize_t ret; int rc; =20 - if (!*f_pos) + if (!iocb->ki_pos) memset(oppanel_data, ' ', oppanel_size); - else if (*f_pos >=3D oppanel_size) + else if (iocb->ki_pos >=3D oppanel_size) return -EFBIG; =20 - ret =3D simple_write_to_buffer(oppanel_data, oppanel_size, f_pos, userbuf, - len); + ret =3D simple_copy_from_iter(oppanel_data, &iocb->ki_pos, len, from); if (ret > 0) { rc =3D __op_panel_update_display(); if (rc !=3D OPAL_SUCCESS) { pr_err_ratelimited("OPAL call failed to write to op panel display [rc= =3D%d]\n", rc); - *f_pos =3D f_pos_prev; + iocb->ki_pos =3D f_pos_prev; return -EIO; } } @@ -130,8 +127,8 @@ static int oppanel_release(struct inode *inode, struct = file *filp) static const struct file_operations oppanel_fops =3D { .owner =3D THIS_MODULE, .llseek =3D oppanel_llseek, - .read =3D oppanel_read, - .write =3D oppanel_write, + .read_iter =3D oppanel_read, + .write_iter =3D oppanel_write, .open =3D oppanel_open, .release =3D oppanel_release }; --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f48.google.com (mail-io1-f48.google.com [209.85.166.48]) (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 B65D153E09 for ; Thu, 11 Apr 2024 15:32:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849543; cv=none; b=FFqcM/rIGsUdVjXp7cxCdP2KZekrmrM+AqUwWqQlDmABOalS9DzhnJm6AjXCSTiXFSdc1nM4bFKKa0e1vRJV3W/EWIS6eqPSzn2/j30FU+li43vX74J1l4m6eDuoDIUX7TVBH/bigQEVck+NrbKbQIMc0z+Yge8in0YmXsq5zJc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849543; c=relaxed/simple; bh=HzrrndI3sspGuOXaTKEU6Gr6N5suncD/ymmoDiyLICc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=CtJtg6IqSQdyF1b+T9dvaUKREOY1IiO78Z2UmUhyRfnVrfLd0eAaVA2vZcDJ34EDo1b4+zIez1O252gh/JDZ5NxSbizph2yuS4K7Gt1YOa9f1gtfugJIxebmizhDxEmkxbo0ujOF6uY5E9kl8YKPXyl/FzIeVdCNkvp93GukW20= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=eQ4cyajF; arc=none smtp.client-ip=209.85.166.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="eQ4cyajF" Received: by mail-io1-f48.google.com with SMTP id ca18e2360f4ac-7d0772bb5ffso180594139f.0 for ; Thu, 11 Apr 2024 08:32:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849540; x=1713454340; 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=9jN1Jw/IXKI5zVUuW8F2edL/9uqR+v8xiG6E13Jt2DE=; b=eQ4cyajFSpzXe5UAXZllBPyDVZICw+j2vyM9bHFgRDiN1XB6mW311NGSro+U4XlcyJ W72t4SuRcmurzjrAdxlCndt/9yJpJqw+B2AJi2i2zyAoW6ZwjUkEgObgjLXIzn6CW/q9 fRnyiBE9Ja1Q7Nafzd78NFIU3cqQbzY+U+eeyPcvuuW28z7zXtBW/zP4qjMJb5oKFqPO 0nSM57zkH5FoAI5zFej+ZfIG+93lhNAGAcwMeQIkoKD6fpkIPjHH5iH7z67iZeDvOWx8 Pv0SRoY2KzMpR7lB/60W4YFfNu/s8gsHXZVjNNkkUUnY9gHTqMprwIlPB/YK/aWV7lsw /UDg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849540; x=1713454340; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=9jN1Jw/IXKI5zVUuW8F2edL/9uqR+v8xiG6E13Jt2DE=; b=l5oB8DaJcryWhp+SqM/SvH+NfNnVuTuVFUzMbi3UlGJ6usfXCgWQjbuzXbPb+AmOr+ 93tk7/67/0M0QzNCK8UyymA14iY7O3owgFrPh1QkIN9rrQXeL9wrL3VQTwkrD9pIlORu 8/Z+tX+pp5pHvlTVBKXEoGMlbNSrGIhPwbTiUztO85nwOKMEvtqgKi1KZxFLVcGhP+vJ qNKZWK4Etestp6fDUmmAlRHnyre/zPZliXT31fsOzumcPl3TU0cIUgy8j12Nhl9ZWO6S mrz4LbUqlecZ+PUxypHHOcAIfxYE1mLwdKbFMIJaBDuFQJhiONY6arqL1rSE4soMguEQ qBEw== X-Gm-Message-State: AOJu0YyxqB8057bPBm3AvI0mSgRQJirspTapD4dncFBaFobL52d57Y4a AZraN+hEhAVNdqJBa7vOTgRW2Z1x2RO7F7YLJlaBX0qwYcoe8WuQe4sBO2tklBulDy/HHm9CSQj Y X-Google-Smtp-Source: AGHT+IFB9Ius/I9JeYSwlEd4gMR6WoxifUIeNFPqgwRTTEC7GRf/hNsQKI6UI8HDcPO6lZ82+ln+jQ== X-Received: by 2002:a92:d812:0:b0:369:bf80:e367 with SMTP id y18-20020a92d812000000b00369bf80e367mr6232801ilm.3.1712849540581; Thu, 11 Apr 2024 08:32:20 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.32.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:32:19 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 031/437] char/ppdev: convert to read/write iterators Date: Thu, 11 Apr 2024 09:12:51 -0600 Message-ID: <20240411153126.16201-32-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/char/ppdev.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/drivers/char/ppdev.c b/drivers/char/ppdev.c index ee951b265213..4176b2b59dc9 100644 --- a/drivers/char/ppdev.c +++ b/drivers/char/ppdev.c @@ -112,10 +112,11 @@ static inline void pp_enable_irq(struct pp_struct *pp) port->ops->enable_irq(port); } =20 -static ssize_t pp_read(struct file *file, char __user *buf, size_t count, - loff_t *ppos) +static ssize_t pp_read(struct kiocb *iocb, struct iov_iter *to) { + struct file *file =3D iocb->ki_filp; unsigned int minor =3D iminor(file_inode(file)); + size_t count =3D iov_iter_count(to); struct pp_struct *pp =3D file->private_data; char *kbuffer; ssize_t bytes_read =3D 0; @@ -182,7 +183,7 @@ static ssize_t pp_read(struct file *file, char __user *= buf, size_t count, =20 parport_set_timeout(pp->pdev, pp->default_inactivity); =20 - if (bytes_read > 0 && copy_to_user(buf, kbuffer, bytes_read)) + if (bytes_read > 0 && !copy_to_iter_full(kbuffer, bytes_read, to)) bytes_read =3D -EFAULT; =20 kfree(kbuffer); @@ -190,10 +191,11 @@ static ssize_t pp_read(struct file *file, char __user= *buf, size_t count, return bytes_read; } =20 -static ssize_t pp_write(struct file *file, const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t pp_write(struct kiocb *iocb, struct iov_iter *from) { + struct file *file =3D iocb->ki_filp; unsigned int minor =3D iminor(file_inode(file)); + size_t count =3D iov_iter_count(from); struct pp_struct *pp =3D file->private_data; char *kbuffer; ssize_t bytes_written =3D 0; @@ -222,7 +224,7 @@ static ssize_t pp_write(struct file *file, const char _= _user *buf, while (bytes_written < count) { ssize_t n =3D min_t(unsigned long, count - bytes_written, PP_BUFFER_SIZE= ); =20 - if (copy_from_user(kbuffer, buf + bytes_written, n)) { + if (!copy_from_iter_full(kbuffer, n, from)) { bytes_written =3D -EFAULT; break; } @@ -780,8 +782,8 @@ static const struct class ppdev_class =3D { static const struct file_operations pp_fops =3D { .owner =3D THIS_MODULE, .llseek =3D no_llseek, - .read =3D pp_read, - .write =3D pp_write, + .read_iter =3D pp_read, + .write_iter =3D pp_write, .poll =3D pp_poll, .unlocked_ioctl =3D pp_ioctl, .compat_ioctl =3D compat_ptr_ioctl, --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f49.google.com (mail-io1-f49.google.com [209.85.166.49]) (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 8394654278 for ; Thu, 11 Apr 2024 15:32:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849544; cv=none; b=jSujd+nCUpuXeZost9153QNlP/86Po1dhbqfYs/8B1SqzV47W5D3tgfUaY+GCr/C91mo8upU3/3prEpkPYPTlrPgNKaJM/zCNHZHx4EeNcAlBOWW1lzSzXNyixsjLs/89F28GF3mUtksvupxTkM6CeZ/Jd7Hshfge7QafiCwKPU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849544; c=relaxed/simple; bh=DtoSEQNpZigPG1vfntCcaCf+OOyN6d35woKyzdu3Rek=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=GVF5RLOlbGt6NToX9lNeoGMUd6N49QiAcRlbzJzpDqxmCt9ATCqXa9EDqw0DGlzVUoJdxAhxtLOhHAslIf62A5+O0lD0r6086/mtUfafp0zxjNNIMM0/cDxS4x3Vudf+9pVs441BaKLR7k5pgQV5BkzAYirapuwifsJgZvEHRPo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=WrRJHoLY; arc=none smtp.client-ip=209.85.166.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="WrRJHoLY" Received: by mail-io1-f49.google.com with SMTP id ca18e2360f4ac-7cc0e831e11so170424339f.1 for ; Thu, 11 Apr 2024 08:32:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849542; x=1713454342; 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=5/jxhaBpmUPDYm1wddLIk2VLeQX+FQT3khhDsAYeAXk=; b=WrRJHoLYV+I6lmtWcIwp4AVckvZX7ER6Zk1kJyV7fsbqzlh+jN+AX/VASATUdoy5rx /dYfILVEbuHzMd6a/6Oir2MAjbPap+/AINjjK2976w7RFj4IULhpMx4G/vJB2YLbQwsh vEDAxpQzMRT+C70v0CJNjsyYNCBDgux14IM4rM0iXRzJ5lcTlgzK4V5AZon9Zg2k+yWe 9cDVmAm1q9hVdIIp0hVFT62rg4Hm9WhwDrkrjOFZP1ZdQEPJE8pLb9Wy+mRhVrtnC1rA hIhW6vDMQxrvt0D/ThXfXq4iIGceOwPgP/21WtaONHySvMGMjFmIVJdgrWebP2+mgn4S 8Crg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849542; x=1713454342; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=5/jxhaBpmUPDYm1wddLIk2VLeQX+FQT3khhDsAYeAXk=; b=TJuUoNZ+zzeZXMYFo7yxlF0DF3DFQQ3JtjxgF2GnCtWOiyb/hBI6IHZ3FgbXlpXiDG /NsOCLZfNco7UaaexEU/mCxgoi+4DC6R4+XBGumnC+W4qwl9jtgXryjGLlwI1DM9aoxI nEwVaWbiQ9tTxhrr2Ml7dSNTkfzuNTkT8bg6Ud9T4LWgtYfe4OrMKockox9PaCy/s5VR xD8tamZf7rujA8SyzStGJf2KHI1F03lmRU3mBvdBPuU+sKKm0yYdtzq22gYuRHJkHBSh HEaz8PYGacG4y51nbTyG7VESDTwoI6cDQLUhFps3LBRjIAnNa6K1LZhr088EMbhbve0U xlqQ== X-Gm-Message-State: AOJu0Yy1CiLUdo9nZ4JjwwPd2vSulZiQC9R7pag49rEAILqgfpyNbQeS 7BN3uWSnbNt7OFZrmfsTL41ZqEGuIijqdl4IvQC6b38YEamFeZ2petfgGbDIdYfwI1M1v8bX/H1 N X-Google-Smtp-Source: AGHT+IHtEOYA4Dn6NKuMCN/vP+uNdnJGnrgCzUhv9lkIMImtX9twLWrkkd5QRX1W279004qBEOz2rg== X-Received: by 2002:a05:6602:21d7:b0:7d6:9ddf:5095 with SMTP id c23-20020a05660221d700b007d69ddf5095mr3783ioc.1.1712849542427; Thu, 11 Apr 2024 08:32:22 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.32.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:32:20 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 032/437] char/ps3flash: convert to read/write iterators Date: Thu, 11 Apr 2024 09:12:52 -0600 Message-ID: <20240411153126.16201-33-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/char/ps3flash.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/char/ps3flash.c b/drivers/char/ps3flash.c index 23871cde41fb..0d8c29116891 100644 --- a/drivers/char/ps3flash.c +++ b/drivers/char/ps3flash.c @@ -239,12 +239,14 @@ static ssize_t ps3flash_user_read(struct file *file, = char __user *buf, { return ps3flash_read(buf, NULL, count, pos); } +FOPS_READ_ITER_HELPER(ps3flash_user_read); =20 static ssize_t ps3flash_user_write(struct file *file, const char __user *b= uf, size_t count, loff_t *pos) { return ps3flash_write(buf, NULL, count, pos); } +FOPS_WRITE_ITER_HELPER(ps3flash_user_write); =20 static ssize_t ps3flash_kernel_read(void *buf, size_t count, loff_t pos) { @@ -310,8 +312,8 @@ static irqreturn_t ps3flash_interrupt(int irq, void *da= ta) static const struct file_operations ps3flash_fops =3D { .owner =3D THIS_MODULE, .llseek =3D ps3flash_llseek, - .read =3D ps3flash_user_read, - .write =3D ps3flash_user_write, + .read_iter =3D ps3flash_user_read_iter, + .write_iter =3D ps3flash_user_write_iter, .flush =3D ps3flash_flush, .fsync =3D ps3flash_fsync, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f46.google.com (mail-io1-f46.google.com [209.85.166.46]) (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 7032B54BEA for ; Thu, 11 Apr 2024 15:32:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849546; cv=none; b=twxQB/20Ml2KgQFtELErkhqbasS62Hh8WvaW/x9+cgEjiphKGTcf+GSFwydyrnZIgG5pwKGh9awqc8k2qSTYgIRpgtaftf3ze+RoZySEfqlaY2+j+10alfpF1Ip3eZMCz/BqtB/aGOtpE3kJHOjfM7AqY0vwUfEPi9ucJP2KakY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849546; c=relaxed/simple; bh=liT1eUpL2MlEL1+9bRrSoHods4uKtTdnUAiPlKhovrU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=kgFjXIUYiHt3yn/DwalLJDC4290MXCtw/HgWcfD62LAW+bTL4mk/7b42klT0hKTZ4cdARPlSWKnWvFpB1thYLwPrEsCLGrOUMUD5sVxptX5XTONFKXUDnnwDkqf6tZcZqOS2VowdzvvYGeWmr37yqvYryOhUIOQs27UOK/PkkTw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=dl/DRyKl; arc=none smtp.client-ip=209.85.166.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="dl/DRyKl" Received: by mail-io1-f46.google.com with SMTP id ca18e2360f4ac-7d67d1073easo9703639f.0 for ; Thu, 11 Apr 2024 08:32:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849544; x=1713454344; 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=gxSmJ6hiv3t1dpSGMjJO238X9nPHDffsz34suMyanvM=; b=dl/DRyKlOGmrcSBV+JnGVByOOipHI12uKb87VX81DX29kKg+SFqFqY3Qu7Wdb+QuHi JYEtcfTwo/68s0GW5BPSgs+FXRXskIfOAfQjz0L2iMV3ujqU2uYbSSVs7jgml4EbrJnr 5JPhAQJJDOvzpz4z0YjQhWXJ9nkx+Jzf682MZ8ND1849kFXq7UdReDkefuDa8HdPQxiP oZYjGjXBEb+f5oLDawA5/9o76+2vIDDm/qfvS4AlMwVZVQWXwvpEA6gn2HtzHoMlYHc/ oMFNE5MoPAU05neXyBPvUt9PcxqGHzBiasGjJ/AHVQZSYUbaED9aeridt3tGRdCL6jA8 0ZhQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849544; x=1713454344; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=gxSmJ6hiv3t1dpSGMjJO238X9nPHDffsz34suMyanvM=; b=V0Lr3XwtsVkUjm+p9vL3KRZdN6B+6PJAIVONRBwepIKMCXSh8lvGVLav9X8ijwWIC7 BYakYpdQUpgpwNP/AsCEGsKATUO3vScTCoyo69GZk3w0vwxaPvIR1ana5rohirnNj6gd chEN+GjKRJ7TR2/Pi0VR8GSQ8GRLt+n8CdcI9Z+xsbE3hHIxOfzJtz6mpuWsTi54/zD5 TE/yiW05ERgKS46cjCgA+RK0veZt46yNz85gPegXCymC/Tq6Q0zMMkKxxLewfo56MuQS Vv06Qk57u9tXyjD4IBrTQh/+tmbodJDh+cPPDrAn8MxyIER58P4ilAKchGN0HOFI78k7 gD6Q== X-Gm-Message-State: AOJu0YyU0QKZFTvLT+CtFbd8EF3tF3xrL0ECBlK9cplClSPavKGNhgb1 h/Wv9S5CdujvRsCExYBm+27OFelao07243VsPj8Xjv+ulpIUwRdxA7V7ndh/v6HkqyuOsXT05kt w X-Google-Smtp-Source: AGHT+IGmdEyTlBMBZusHhYtmaW2jfRbodkjKpC+DBBWfvwEoywVgNm66gXIT0HuO3aZXmUkbrIWiTQ== X-Received: by 2002:a6b:c34e:0:b0:7d6:7b7c:8257 with SMTP id t75-20020a6bc34e000000b007d67b7c8257mr203503iof.0.1712849544333; Thu, 11 Apr 2024 08:32:24 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.32.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:32:22 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 033/437] char/scx200_gpio: convert to read/write iterators Date: Thu, 11 Apr 2024 09:12:53 -0600 Message-ID: <20240411153126.16201-34-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/char/scx200_gpio.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/char/scx200_gpio.c b/drivers/char/scx200_gpio.c index 9f701dcba95c..e6369766f7e3 100644 --- a/drivers/char/scx200_gpio.c +++ b/drivers/char/scx200_gpio.c @@ -64,8 +64,8 @@ static int scx200_gpio_release(struct inode *inode, struc= t file *file) =20 static const struct file_operations scx200_gpio_fileops =3D { .owner =3D THIS_MODULE, - .write =3D nsc_gpio_write, - .read =3D nsc_gpio_read, + .write_iter =3D nsc_gpio_write_iter, + .read_iter =3D nsc_gpio_read_iter, .open =3D scx200_gpio_open, .release =3D scx200_gpio_release, .llseek =3D no_llseek, --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f53.google.com (mail-io1-f53.google.com [209.85.166.53]) (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 DD7535645E for ; Thu, 11 Apr 2024 15:32:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849549; cv=none; b=eRQ4Nww+2JTeb3lU9YH5/NNsvf473AVQ2MmWsCGlLM5OIYEBnsydx3D3SPgIXoVgKWR4enh/3sYEsUc0Db3nNIFzlo7QOXIgsDBozaltcljC1yB6XRlApLk/1/LNBrj+axnIHrqV5OOf7xLH1Z/Xz2S4Axeyrm9PzP8stRS6mVY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849549; c=relaxed/simple; bh=o+qsAzJS440SymviPGy/fOwRbpcVojQucXIaEMr+2Dw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=f88THiujO5xNjnenKaVTN7zojQQDTAQ2Rgm7pbzXNEF0A9OScvS0itFKZp+H/Iwnc4RiwUzeQx3ou4yCEucocEhODV6fxS5Lv1kb3mKZ5cE/ubUrLaK/SSUVkbXHCFVyj0wX8c1jHjHGMsxxBfMjKZzq31opiuzXh4uUFTvSRpg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=bigPtRtD; arc=none smtp.client-ip=209.85.166.53 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="bigPtRtD" Received: by mail-io1-f53.google.com with SMTP id ca18e2360f4ac-7d6112ba6baso57949139f.1 for ; Thu, 11 Apr 2024 08:32:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849547; x=1713454347; 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=lVaSbL/N5pzoM5XDW5UBpSsORrcFxHXToaNbhKwyBxc=; b=bigPtRtD1cEzH7ep6qFjKDPYu3h40xHA5UmDOrmEQKLDix93HPeJt5UuTdexovl5j8 PvA9WMqDH6BO3Q8lovdmozN59MoNPhZ1D/3nBsk5hGgwkEu8ztSudS0gva6/ZT71UD1q GU6bd+VY3StUSOoJKsPWg5GmpLMN3TlU3Lb8wGaEQHtUubE4oSitD3e6CU2WVIrzWMIL EOAXTfOXg8YYYlnhkRK1qVKeMfIHjKAyEekgvxq9UYd45IYOqe7v/FARKEtLNSFpVZvb ppFtIVTy3SmPaaY5yj3n1Lb4CPR9JtRGu2K3xPDEuWvNdDGgNZDxXr4E4oNMGVpBiRaM fMvQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849547; x=1713454347; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=lVaSbL/N5pzoM5XDW5UBpSsORrcFxHXToaNbhKwyBxc=; b=Zsr8ebL0AMTaf15NuF3X3usk3Z0UWaX2iHFKqhTgsVzmLqmeO+8FDJ1pY64qJkXbs2 xX7zNWle4kIQOngr+XICEbhpGFts30TrNY1gIf84C6/J3d1fmxceV3LD4flbIJqDdseq I6nAnnsTh9SXBfwq+1saFdq+n67zDYynR1aaFaqaxHYSa3A14NCUJQRflLwbCEkjLSHX 1gvwjVlYGKEmlspZJ8SxkuGQudWh/LptxX90nePR5yzv0AtoKn5UIXuiEhkjbBPrYDcH eZGH/ZIr6XprzZTZfhpNuUkrm2NC2Q1JN2Vr4Ncfta9bN0PfLzpA75OjNi7RAUP/20/8 ZyZQ== X-Gm-Message-State: AOJu0YyxUHncIU/Wx1Hyikoa+tmdW304SDLD4q2KEqa8r3IMaQsDV6DX xoT0BGiSVa8dLDKe+/la9VEa+91SP9Y9ky/mNrRqyjKYa2/Qvobdzr7D2kJy+zmi6Zy5EsEHVJv u X-Google-Smtp-Source: AGHT+IE23mYS9/XbxcRb7XHlTtW8DHdWWUoLTo99TnhoJtnEwbR2JfldPnpndBVEgCUKIcdA0KBTug== X-Received: by 2002:a05:6602:38d:b0:7d6:513b:254 with SMTP id f13-20020a056602038d00b007d6513b0254mr170536iov.2.1712849546722; Thu, 11 Apr 2024 08:32:26 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.32.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:32:24 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 034/437] char/sonypi: convert to read/write iterators Date: Thu, 11 Apr 2024 09:12:54 -0600 Message-ID: <20240411153126.16201-35-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/char/sonypi.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/char/sonypi.c b/drivers/char/sonypi.c index 22d249333f53..2bb9f0a17989 100644 --- a/drivers/char/sonypi.c +++ b/drivers/char/sonypi.c @@ -925,6 +925,7 @@ static ssize_t sonypi_misc_read(struct file *file, char= __user *buf, =20 return ret; } +FOPS_READ_ITER_HELPER(sonypi_misc_read); =20 static __poll_t sonypi_misc_poll(struct file *file, poll_table *wait) { @@ -1048,7 +1049,7 @@ static long sonypi_misc_ioctl(struct file *fp, =20 static const struct file_operations sonypi_misc_fops =3D { .owner =3D THIS_MODULE, - .read =3D sonypi_misc_read, + .read_iter =3D sonypi_misc_read_iter, .poll =3D sonypi_misc_poll, .open =3D sonypi_misc_open, .release =3D sonypi_misc_release, --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f41.google.com (mail-io1-f41.google.com [209.85.166.41]) (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 85B5156B74 for ; Thu, 11 Apr 2024 15:32:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849552; cv=none; b=Rws0jJYZXKPClEZdQxRekIJpckkJFXL9gFEtQPuuOq986yLvcNDblAjH3tfJZvtA7njdXFjS8PyH5FXHLkR+zRg5Fpc5TWVppSK8ifH1OOaDKum6FqCgBkgjq8JT977/D7NNh8KyNM6atLyhNOxjSbd7Hg25EEf5axiHVMpT04k= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849552; c=relaxed/simple; bh=6268x62L6WIdDjsTBaoEBBwaYe8Rr544YAr9jCnE47g=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=GLMbe54pCD3jYHtTvcWQ84QLx5qMsuTAehnhw90urM5hTdUpbY86CGnc0fGtzVwnjXZUVCrYd/vQv7IWVJRyxzNW7LIy4ag8q/UoHLaHOBiCVwK4lU+QnaHvh0J0JmEjGEf8ZM67WpBW8R2eSp56loug/D0b4gRd33A247dibSs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=lEyvn0b8; arc=none smtp.client-ip=209.85.166.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="lEyvn0b8" Received: by mail-io1-f41.google.com with SMTP id ca18e2360f4ac-7d0772bb5ffso180596539f.0 for ; Thu, 11 Apr 2024 08:32:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849548; x=1713454348; 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=taZOi4hUKpJxluTrTDLOaUbYF+g9d+ckZsstHCEwYpQ=; b=lEyvn0b8VZ19VjDdnZXBgvUNg2dtgubDOesi9Bvf1QdL10wCUnLHCvp1cuBXUVANaq VNpLeF++klo27WNt8JBkEfgmTj+XLVbojXAl8XT2HuVyHZpz5/fxYFvkbQVUzYxqTgFf 4qq90shuGbtSj+IyOVhisTQ/3ein76xqHC3fxX9eFyKIlWuiAYlPp59IILQates3lpRx Xci05kwF/DPETbpM6IizhlVJ/APiej66n5E0PXxgLztgQOJb4Hdvi9EbsyLmpWpqXGpe BQIPE6Kbti2PmpBsqcXL62zbf5FUZ0tXzSWQByTaqX+e+rzOKVbPk8pdAyLUQKpPL9Y8 qqeA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849548; x=1713454348; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=taZOi4hUKpJxluTrTDLOaUbYF+g9d+ckZsstHCEwYpQ=; b=NChjUrF2/PHUdIG26wppchyr9gTgHRXbksqCGRWEVmXqVepisMrBrGp6FAKf0IznYM 8nLLvLm3Q6r91imejFSF4/mDh4Du+MFpCqjFD3WItsYyqGMRR4T3TX7VuNM50KrgHCH+ HJ68og/1aowh3DGtDSNcYPnFsQXRaV/w/8flhZzFiMnTPzT6hA3cMNYrcNSwzI7qvIxs q6loZqpTVivSc2pPl6PhzI3mgym8t09nGMqfTi6GbFfQpUuVuB6IT9QFEWlOC9KyACFX bBromgT5IbUeASFCnkZ7VTmFc4uSCRJwmYF2ZwbK5C/4ck04lLEWksYOEQyp6BHtRjBJ +fUg== X-Gm-Message-State: AOJu0YzVKUrgfUZoJqT0F3RPlGaY5vVmEBRSrop60f1pOtCDes6UpTLM d+X0lt6ZrJAHs/dDefaoTFCSY3iOWIvGaLxA72kqiacQ1E1qp81vsFsnA10Hs0OBI7m5R6sY+Xv y X-Google-Smtp-Source: AGHT+IFl0Hhw4N4j0oLICJ0mLOjjE/VE0Nh2eKrmAyCDW0FxCUCkDQiXqxncyduY30jedob0Qi64Lg== X-Received: by 2002:a6b:4e14:0:b0:7d6:631d:7b0 with SMTP id c20-20020a6b4e14000000b007d6631d07b0mr174575iob.1.1712849548480; Thu, 11 Apr 2024 08:32:28 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.32.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:32:27 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 035/437] char/tlclk: convert to read/write iterators Date: Thu, 11 Apr 2024 09:12:55 -0600 Message-ID: <20240411153126.16201-36-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/char/tlclk.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/char/tlclk.c b/drivers/char/tlclk.c index 896a3550fba9..17a312cfe46a 100644 --- a/drivers/char/tlclk.c +++ b/drivers/char/tlclk.c @@ -240,9 +240,10 @@ static int tlclk_release(struct inode *inode, struct f= ile *filp) return 0; } =20 -static ssize_t tlclk_read(struct file *filp, char __user *buf, size_t coun= t, - loff_t *f_pos) +static ssize_t tlclk_read(struct kiocb *iocb, struct iov_iter *to) { + size_t count =3D iov_iter_count(to); + if (count < sizeof(struct tlclk_alarms)) return -EIO; if (mutex_lock_interruptible(&tlclk_mutex)) @@ -250,7 +251,7 @@ static ssize_t tlclk_read(struct file *filp, char __use= r *buf, size_t count, =20 =20 wait_event_interruptible(wq, got_event); - if (copy_to_user(buf, alarm_events, sizeof(struct tlclk_alarms))) { + if (!copy_to_iter_full(alarm_events, sizeof(struct tlclk_alarms), to)) { mutex_unlock(&tlclk_mutex); return -EFAULT; } @@ -263,7 +264,7 @@ static ssize_t tlclk_read(struct file *filp, char __use= r *buf, size_t count, } =20 static const struct file_operations tlclk_fops =3D { - .read =3D tlclk_read, + .read_iter =3D tlclk_read, .open =3D tlclk_open, .release =3D tlclk_release, .llseek =3D noop_llseek, --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f43.google.com (mail-io1-f43.google.com [209.85.166.43]) (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 7068E17C6D for ; Thu, 11 Apr 2024 15:32:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849554; cv=none; b=Ky88Pi7zxuLtQbRUnl+Zy7vQ9kzaovPa8ZZKLO87LZT8JpCq+/fEMfF1hOWn/VGjGkWmykgmGQYGR9tAGD4fH4j7VicbbhQXPGki9k9qu1uYCwDGzmDoy/dha6zkqRrQ3DGWDj1UjIKBeO+Ry4+klVsdZAbQsNfjpAKzEGyB94s= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849554; c=relaxed/simple; bh=KzkEJHtse1ucBqXFsqrNxKHzxInSZccfjdoqVXDjAsU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=FHRJK89c43aUb5yQPz2VgadwE2cjji0i5MclPhy5yYgtrwI3rvNfmC+g8XL9XqeKpT44Bnw8+2nvMgBrpxDyLJYk7elv36EH8jfYGU3Lh/fjmu9EQRgGthOrZ2Bu8NVn4gf5QyXoCTAb7hJsPatEAwoT5G0aXLTxMBn3Rg3GYtg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=wXofiwEv; arc=none smtp.client-ip=209.85.166.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="wXofiwEv" Received: by mail-io1-f43.google.com with SMTP id ca18e2360f4ac-7d6812b37a6so8857939f.0 for ; Thu, 11 Apr 2024 08:32:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849550; x=1713454350; 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=ZM+GUVsNLtfnxAZegRp/5CycyHTgzU7o1O95e3WojGs=; b=wXofiwEvA6R99d648QBrRoND958/AmbtzO96sywJ3F8aOwQZHzOES7sPgbBgCwO9ki H00YFqCVAUkvW4XSFmr8d3r2rDjOY1Nojabqz7+ZJsSqw45MT7IXWN4+qQfIy2JHlXsV jMim7qkVATKIonDcuhayDsBv7w2BP/XTCrT1cgvD36Dh1fcHafuAIE5VMlFCFURNZO80 wNWj12UNS7R2l6dXxeBBw+Gvcebi2kX0QhH27edxKWnJvF24UfuMRSxlmQrzolwzi0qI GgdAQy3GBKgFE7J6/ebszHfyQ5Kk1Mepaq60EuZqxj7qDXwtqe/5J5xcKKqC2m6EoD3b BNIQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849550; x=1713454350; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ZM+GUVsNLtfnxAZegRp/5CycyHTgzU7o1O95e3WojGs=; b=Vv0Dtg6tf4vMB15LxhlfGPD0ajYmc0gnfN/fWyyMPxwm2FGgQFDku/f/fJag+/JlJf xSwQweRHjmNrtsdTCXWyH1Ettzx0v+bB716WzdpEnTnESWBzi11xaV0vjHPRMh3RaUdD NlL6kiuMV7Czr/X+ohLChriI93dyS2Gw57MrP9axfgF/ZQ4wUz0cKNyF1T2x9niMGJy/ MCQHzpZhjKSbxbPmF+MLFpIR1hkAfR8oMXyY4WB2PqueL26vuEQ7p6LV5lTbbvWPmVGl EQz5nfnI0yMAAOekT7fP3woDTuLjpPV1mk0ucPgwRReL8A5kZvRsr+bbKrlnz1Gr1E3j SceQ== X-Gm-Message-State: AOJu0YyL0/J572irAtkAvXdcRSi8BHrNjkxWHnzTn5wXX+8q6xIKQIRz qwxMLkGxDNjCygFBy/PaPCOwR5iZpijjWHYgNfY7hyM7uObUiTSR0KEuLqaCRdDlN/e1OhfvDeu j X-Google-Smtp-Source: AGHT+IHr/Ugo0Ngqx1M+1YcqtgDA8fmxTu4yxvXhn8eqT5DyAdEc17cVSy0vocIKAKDdKxlqkHyU0w== X-Received: by 2002:a05:6602:21d7:b0:7d6:9ddf:5095 with SMTP id c23-20020a05660221d700b007d69ddf5095mr4167ioc.1.1712849550185; Thu, 11 Apr 2024 08:32:30 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.32.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:32:28 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 036/437] char/xilinx_hwicap: convert to read/write iterators Date: Thu, 11 Apr 2024 09:12:56 -0600 Message-ID: <20240411153126.16201-37-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/char/xilinx_hwicap/xilinx_hwicap.c | 31 ++++++++++------------ 1 file changed, 14 insertions(+), 17 deletions(-) diff --git a/drivers/char/xilinx_hwicap/xilinx_hwicap.c b/drivers/char/xili= nx_hwicap/xilinx_hwicap.c index 4f6c3cb8aa41..fc5b8d18234d 100644 --- a/drivers/char/xilinx_hwicap/xilinx_hwicap.c +++ b/drivers/char/xilinx_hwicap/xilinx_hwicap.c @@ -349,10 +349,10 @@ static int hwicap_initialize_hwicap(struct hwicap_drv= data *drvdata) return 0; } =20 -static ssize_t -hwicap_read(struct file *file, char __user *buf, size_t count, loff_t *ppo= s) +static ssize_t hwicap_read(struct kiocb *iocb, struct iov_iter *to) { - struct hwicap_drvdata *drvdata =3D file->private_data; + struct hwicap_drvdata *drvdata =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(to); ssize_t bytes_to_read =3D 0; u32 *kbuf; u32 words; @@ -372,7 +372,7 @@ hwicap_read(struct file *file, char __user *buf, size_t= count, loff_t *ppos) drvdata->read_buffer_in_use; =20 /* Return the data currently in the read buffer. */ - if (copy_to_user(buf, drvdata->read_buffer, bytes_to_read)) { + if (!copy_to_iter_full(drvdata->read_buffer, bytes_to_read, to)) { status =3D -EFAULT; goto error; } @@ -417,7 +417,7 @@ hwicap_read(struct file *file, char __user *buf, size_t= count, loff_t *ppos) } =20 /* If we fail to return the data to the user, then bail out. */ - if (copy_to_user(buf, kbuf, bytes_to_read)) { + if (!copy_to_iter_full(kbuf, bytes_to_read, to)) { free_page((unsigned long)kbuf); status =3D -EFAULT; goto error; @@ -434,11 +434,10 @@ hwicap_read(struct file *file, char __user *buf, size= _t count, loff_t *ppos) return status; } =20 -static ssize_t -hwicap_write(struct file *file, const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t hwicap_write(struct kiocb *iocb, struct iov_iter *from) { - struct hwicap_drvdata *drvdata =3D file->private_data; + struct hwicap_drvdata *drvdata =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); ssize_t written =3D 0; ssize_t left =3D count; u32 *kbuf; @@ -475,16 +474,15 @@ hwicap_write(struct file *file, const char __user *bu= f, if (drvdata->write_buffer_in_use) { memcpy(kbuf, drvdata->write_buffer, drvdata->write_buffer_in_use); - if (copy_from_user( + if (!copy_from_iter_full( (((char *)kbuf) + drvdata->write_buffer_in_use), - buf + written, - len - (drvdata->write_buffer_in_use))) { + len - (drvdata->write_buffer_in_use), from)) { free_page((unsigned long)kbuf); status =3D -EFAULT; goto error; } } else { - if (copy_from_user(kbuf, buf + written, len)) { + if (!copy_from_iter_full(kbuf, len, from)) { free_page((unsigned long)kbuf); status =3D -EFAULT; goto error; @@ -508,8 +506,7 @@ hwicap_write(struct file *file, const char __user *buf, left -=3D len; } if ((left > 0) && (left < 4)) { - if (!copy_from_user(drvdata->write_buffer, - buf + written, left)) { + if (copy_from_iter_full(drvdata->write_buffer, left, from)) { drvdata->write_buffer_in_use =3D left; written +=3D left; left =3D 0; @@ -589,8 +586,8 @@ static int hwicap_release(struct inode *inode, struct f= ile *file) =20 static const struct file_operations hwicap_fops =3D { .owner =3D THIS_MODULE, - .write =3D hwicap_write, - .read =3D hwicap_read, + .write_iter =3D hwicap_write, + .read_iter =3D hwicap_read, .open =3D hwicap_open, .release =3D hwicap_release, .llseek =3D noop_llseek, --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f52.google.com (mail-io1-f52.google.com [209.85.166.52]) (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 3AC3417C67 for ; Thu, 11 Apr 2024 15:32:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849554; cv=none; b=QNdtmFpGsFjE8ANhbHYFGcdH2zt0Dkrp2XcB3U7ZZGlkP269fsyajmfbTao+cpkFmG7EusBxPOJM7p6JTdC/+eaGNsPn0xqDnieKbkCsVBNKu9tUBDaNIdBiJFl840gNtGqhHRzfuisPRsxyeA5NMKb6IUYciaupe4zeZwJtOlk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849554; c=relaxed/simple; bh=5waGzhPfxcYMyEQe8vjz+F5by7BxB/NYC2CPV/ITVvw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=eUwFF5lExZfHHR1vH3M5YpXVRYk///JgtFhYwuUq3TSViHs+kzMDxK6p+8/HOwL9OvYpqb+VISddHHKo/CVWb+0b1lGjNkF2GiAjIxBjJdJm9ZwxpERACtZHJLoz3A2sgxMKeN4SotlFgSq5VbolK5d2W7Oi8jOEmSboBGCoWH8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=JsPikQp6; arc=none smtp.client-ip=209.85.166.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="JsPikQp6" Received: by mail-io1-f52.google.com with SMTP id ca18e2360f4ac-7cc0e831e11so170426739f.1 for ; Thu, 11 Apr 2024 08:32:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849552; x=1713454352; 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=+q7u9ARrFRJwgUS99j58MVftKILdlOB1OHFa7KdtmDQ=; b=JsPikQp6WEFuQHt4qlqvHJ4FPIHza7neMbSNEErS/XSdXYv25rXm/oTjMN/8xHH6Cz ysfV7aD4Vkxek/URvEQ+1HneH+n8y7MVOWct650A9zFT4hAsVNgb/IMsXawi+FEUAuBK GAXf8/uIwz8iB3Bfm2ICIuYiFBcDxpYekDDn/3TdCrB5YxT1En0ysYX6D/c24arT2jMt l/+k6UA4posqzl7zlFDODLybtqjHaKGFw3ty+g3+XDCevMqVag53+6rMOqrrT/EQ548j 1O/wpDw5GEGSNxgM4GEHn0aGuRsaEk53wvwiNr3gP1cx7POtd8uxE6pddoImPymHj7fv 1OlQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849552; x=1713454352; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=+q7u9ARrFRJwgUS99j58MVftKILdlOB1OHFa7KdtmDQ=; b=lKzwcwHYE73HYHnY65w+fbZyh4Xa4uEwLS9j4oxOZ0Z7TUdlIwjbxwZWFVUzmeoZyp NxaW5nqs9q4AAxi/1P7QM6dkvxCzujgwALzie5LkPEdWG0J2EnEeWG2x/rCLAEOZpx7g vuNLCOjzFUpopsXeoKbJS/j7ARci92UCNC+6RZRqv1r38+/aT5vQy0xD+JlXQK3P/MUp +ygMxX81PFjszmcrcNwdcwoPi9XeTw1dcYNYv5o24EorxgQcU/WeGcvBjxR3IXbY0LoM tb7ybB6nowH0g8lb6wZwQODQ0nQgS8Pzsaj6egkOTkQy7fW+hUh0uGEsLELSd9Ha/QQ6 9sfw== X-Gm-Message-State: AOJu0YzGOJAAtaVrrc0KxtBlxQfePeMQ0IDe138Qbk5jl3qzdmyo7c9z ykcZHKa4B0EiA5mEOn3RbL6L3vSpDTMdHwJ4/cg+14IYdmtZzviATVVYLoyngPWam2AbTzOkbmN 8 X-Google-Smtp-Source: AGHT+IEqUNN+ZQGoYQHBLASoooFU2dNlekNECIPSkWWgEAg1MBePAzsdCJr4LDi1NMhI12+yppJeuQ== X-Received: by 2002:a05:6602:21d7:b0:7d6:9ddf:5095 with SMTP id c23-20020a05660221d700b007d69ddf5095mr4272ioc.1.1712849551993; Thu, 11 Apr 2024 08:32:31 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.32.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:32:30 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 037/437] char/xillybus: convert to read/write iterators Date: Thu, 11 Apr 2024 09:12:57 -0600 Message-ID: <20240411153126.16201-38-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/char/xillybus/xillybus_core.c | 36 +++++++++++++-------------- drivers/char/xillybus/xillyusb.c | 6 +++-- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/drivers/char/xillybus/xillybus_core.c b/drivers/char/xillybus/= xillybus_core.c index 11b7c4749274..d2f85c01bb74 100644 --- a/drivers/char/xillybus/xillybus_core.c +++ b/drivers/char/xillybus/xillybus_core.c @@ -28,6 +28,7 @@ #include #include #include +#include #include "xillybus.h" #include "xillybus_class.h" =20 @@ -687,15 +688,15 @@ static int xilly_obtain_idt(struct xilly_endpoint *en= dpoint) return 0; } =20 -static ssize_t xillybus_read(struct file *filp, char __user *userbuf, - size_t count, loff_t *f_pos) +static ssize_t xillybus_read(struct kiocb *iocb, struct iov_iter *to) { + size_t count =3D iov_iter_count(to); ssize_t rc; unsigned long flags; int bytes_done =3D 0; int no_time_left =3D 0; long deadline, left_to_sleep; - struct xilly_channel *channel =3D filp->private_data; + struct xilly_channel *channel =3D iocb->ki_filp->private_data; =20 int empty, reached_eof, exhausted, ready; /* Initializations are there only to silence warnings */ @@ -775,13 +776,11 @@ static ssize_t xillybus_read(struct file *filp, char = __user *userbuf, channel->wr_buf_size, DMA_FROM_DEVICE); =20 - if (copy_to_user( - userbuf, + if (!copy_to_iter_full( channel->wr_buffers[bufidx]->addr - + bufpos, howmany)) + + bufpos, howmany, to)) rc =3D -EFAULT; =20 - userbuf +=3D howmany; bytes_done +=3D howmany; =20 if (bufferdone) { @@ -831,7 +830,7 @@ static ssize_t xillybus_read(struct file *filp, char __= user *userbuf, * nonblocking mode, but only for a very short time. */ =20 - if (!no_time_left && (filp->f_flags & O_NONBLOCK)) { + if (!no_time_left && (iocb->ki_filp->f_flags & O_NONBLOCK)) { if (bytes_done > 0) break; =20 @@ -933,7 +932,7 @@ static ssize_t xillybus_read(struct file *filp, char __= user *userbuf, return -EIO; if (bytes_done) return bytes_done; - if (filp->f_flags & O_NONBLOCK) + if (iocb->ki_filp->f_flags & O_NONBLOCK) return -EAGAIN; /* Don't admit snoozing */ return -EINTR; } @@ -1199,13 +1198,13 @@ static void xillybus_autoflush(struct work_struct *= work) "Autoflush failed under weird circumstances.\n"); } =20 -static ssize_t xillybus_write(struct file *filp, const char __user *userbu= f, - size_t count, loff_t *f_pos) +static ssize_t xillybus_write(struct kiocb *iocb, struct iov_iter *from) { + size_t count =3D iov_iter_count(from); ssize_t rc; unsigned long flags; int bytes_done =3D 0; - struct xilly_channel *channel =3D filp->private_data; + struct xilly_channel *channel =3D iocb->ki_filp->private_data; =20 int full, exhausted; /* Initializations are there only to silence warnings */ @@ -1319,12 +1318,11 @@ static ssize_t xillybus_write(struct file *filp, co= nst char __user *userbuf, channel->rd_leftovers[3] =3D 0; /* Clear flag */ } =20 - if (copy_from_user( + if (!copy_from_iter_full( channel->rd_buffers[bufidx]->addr + bufpos, - userbuf, howmany)) + howmany, from)) rc =3D -EFAULT; =20 - userbuf +=3D howmany; bytes_done +=3D howmany; =20 if (bufferdone) { @@ -1383,7 +1381,7 @@ static ssize_t xillybus_write(struct file *filp, cons= t char __user *userbuf, * sleeps. */ =20 - if (filp->f_flags & O_NONBLOCK) { + if (iocb->ki_filp->f_flags & O_NONBLOCK) { rc =3D -EAGAIN; break; } @@ -1415,7 +1413,7 @@ static ssize_t xillybus_write(struct file *filp, cons= t char __user *userbuf, return rc; =20 if ((channel->rd_synchronous) && (bytes_done > 0)) { - rc =3D xillybus_myflush(filp->private_data, 0); /* No timeout */ + rc =3D xillybus_myflush(channel, 0); /* No timeout */ =20 if (rc && (rc !=3D -EINTR)) return rc; @@ -1793,8 +1791,8 @@ static __poll_t xillybus_poll(struct file *filp, poll= _table *wait) =20 static const struct file_operations xillybus_fops =3D { .owner =3D THIS_MODULE, - .read =3D xillybus_read, - .write =3D xillybus_write, + .read_iter =3D xillybus_read, + .write_iter =3D xillybus_write, .open =3D xillybus_open, .flush =3D xillybus_flush, .release =3D xillybus_release, diff --git a/drivers/char/xillybus/xillyusb.c b/drivers/char/xillybus/xilly= usb.c index 5a5afa14ca8c..7a3aad47aabc 100644 --- a/drivers/char/xillybus/xillyusb.c +++ b/drivers/char/xillybus/xillyusb.c @@ -1605,6 +1605,7 @@ static ssize_t xillyusb_read(struct file *filp, char = __user *userbuf, =20 return rc; } +FOPS_READ_ITER_HELPER(xillyusb_read); =20 static int xillyusb_flush(struct file *filp, fl_owner_t id) { @@ -1705,6 +1706,7 @@ static ssize_t xillyusb_write(struct file *filp, cons= t char __user *userbuf, =20 return rc; } +FOPS_WRITE_ITER_HELPER(xillyusb_write); =20 static int xillyusb_release(struct inode *inode, struct file *filp) { @@ -1895,8 +1897,8 @@ static __poll_t xillyusb_poll(struct file *filp, poll= _table *wait) =20 static const struct file_operations xillyusb_fops =3D { .owner =3D THIS_MODULE, - .read =3D xillyusb_read, - .write =3D xillyusb_write, + .read_iter =3D xillyusb_read_iter, + .write_iter =3D xillyusb_write_iter, .open =3D xillyusb_open, .flush =3D xillyusb_flush, .release =3D xillyusb_release, --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f45.google.com (mail-io1-f45.google.com [209.85.166.45]) (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 6C94C17BD5 for ; Thu, 11 Apr 2024 15:32:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849557; cv=none; b=nb9k9o69j7mYvlWc03imHkq2DWFvIY5jhSmlv3vX7Wz9gyEKyOchs2W32S0O4t0VALd3bfOHRG4qminD/qzihaMsSjSFhawB68b/X5ukh5ulixz28cZxXdGQdbH/8eq1x/5ADZHf8P9niVfFgMg/IIhCBmt51FFz75utIOdhx7I= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849557; c=relaxed/simple; bh=6nXHrJxwgebxvbIYQmXJeHY8zamN//PeVWbXFLxfhZo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=FKzQHf2tnC/jbQ5mr/dGIbAiaJPP/dnOnku4+K5mhPsxVKLItxdF9FmMzBPbWxD7D0CKx9O4Ynusf00orezo5GFPhKQSQUmta1m4S2+oqn6G3eXNfPCogAMwWjAA0snDj5udnvI9AfrteJaKgn63JPUg1UfhVwXLctf+v6RtSiE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=x3a0h8Ow; arc=none smtp.client-ip=209.85.166.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="x3a0h8Ow" Received: by mail-io1-f45.google.com with SMTP id ca18e2360f4ac-7d6812b37a6so8859539f.0 for ; Thu, 11 Apr 2024 08:32:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849554; x=1713454354; 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=jRZlShq2GjuAkYR6CqTxKx160jv8ehLkEKbZcc7NPRA=; b=x3a0h8Ow0E5oI90+yMNeo3tUtBaf+srnVGMj7ampdtiykVwpcjRuAUPEKjcp79Ll3r b0eAvBF34EGHgOXo9+d1dUa3YUMD0fYiVXWR+I8vjF3MtqaON52tmAfI6UZPCLUzt7Jy Zoh21kfWvO2PeicCQl4CnMmYdoW/oesgYcCJ3Q/LZwXMpuax54rQrycRQ828lim66Pyx DJ484IlyqPWtTN4isE61KPYUQxECdb8I957PaJxdJ6CcxsxW3/viSD+UrVnRabMSJ010 VQ86Z29enh4llBTifI9Pad5p8B+GtA4M6WQj8AlEXFEaVQb/y1i+izx8N/XgdVPHrI7H 57tw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849554; x=1713454354; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=jRZlShq2GjuAkYR6CqTxKx160jv8ehLkEKbZcc7NPRA=; b=i43cpbqOgj48vReL48yzFgTmMHH59/RuKBFfbwTQ4PMI9LQYgDDTXQEXFZZyYZ65iS 8R4YC24OmaBTjCzpm2FkUzAK6eonSsM0n1+yKfhQtVdnW2s5ITUeIkUeRE3Ev6IPv0QU qT5SGOAKSJOZJ+9lzwRW7BS/SN1OksQBlZBf9uW6+wzPhDg6vFF7tD+NqD7MK1oDjjhJ kFcRCYLPV2soVlB7Mt+uQXl6U5Nd70I3SVVmhnm7rhmJpci93MgYWVcsNs0oLqITep15 CRDi0IaVGC9SF5+OoGgWkET+1tte/didJo72pAv8u3gqnuBF5d/Oql9s/2yJjdQCI14b cpMw== X-Gm-Message-State: AOJu0YwgETqb93K2yTo7fD97cFIO0wTauIH4mgn2qSRj8WTqbF2+ZLDg f61In/qC5VJGUiEEQG52hZ970+yR0PP66ITLciLmuJRVbK+a4n7KUc8Z4mlRTTG2efJhbc2fbUH F X-Google-Smtp-Source: AGHT+IFuxpPSrBf1tMH8EwZa8jOJ2lAJ6UhOZNqDIiUUZBKs1IeLqGXKrVCNCB1w23aH7zn5IL2MVg== X-Received: by 2002:a5e:9907:0:b0:7d6:751f:192 with SMTP id t7-20020a5e9907000000b007d6751f0192mr170355ioj.2.1712849554011; Thu, 11 Apr 2024 08:32:34 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.32.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:32:32 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 038/437] debugfs: convert to ->read_iter() Date: Thu, 11 Apr 2024 09:12:58 -0600 Message-ID: <20240411153126.16201-39-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- arch/powerpc/kernel/dawr.c | 10 ++- drivers/base/regmap/regmap-debugfs.c | 32 ++++++--- drivers/misc/mei/debugfs.c | 12 ++-- fs/debugfs/file.c | 104 ++++++++++++++++++--------- include/linux/debugfs.h | 24 +++---- kernel/sched/debug.c | 9 ++- 6 files changed, 114 insertions(+), 77 deletions(-) diff --git a/arch/powerpc/kernel/dawr.c b/arch/powerpc/kernel/dawr.c index 909a05cd2809..03ab57564a18 100644 --- a/arch/powerpc/kernel/dawr.c +++ b/arch/powerpc/kernel/dawr.c @@ -59,9 +59,7 @@ static void disable_dawrs_cb(void *info) set_dawr(i, &null_brk); } =20 -static ssize_t dawr_write_file_bool(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t dawr_write_file_bool(struct kiocb *iocb, struct iov_iter *f= rom) { struct arch_hw_breakpoint null_brk =3D {0}; size_t rc; @@ -72,7 +70,7 @@ static ssize_t dawr_write_file_bool(struct file *file, set_dawr(0, &null_brk) !=3D H_SUCCESS) return -ENODEV; =20 - rc =3D debugfs_write_file_bool(file, user_buf, count, ppos); + rc =3D debugfs_write_file_bool(iocb, from); if (rc) return rc; =20 @@ -84,8 +82,8 @@ static ssize_t dawr_write_file_bool(struct file *file, } =20 static const struct file_operations dawr_enable_fops =3D { - .read =3D debugfs_read_file_bool, - .write =3D dawr_write_file_bool, + .read_iter =3D debugfs_read_file_bool, + .write_iter =3D dawr_write_file_bool, .open =3D simple_open, .llseek =3D default_llseek, }; diff --git a/drivers/base/regmap/regmap-debugfs.c b/drivers/base/regmap/reg= map-debugfs.c index fb84cda92a75..571b5c00a28e 100644 --- a/drivers/base/regmap/regmap-debugfs.c +++ b/drivers/base/regmap/regmap-debugfs.c @@ -456,9 +456,9 @@ static int regmap_access_show(struct seq_file *s, void = *ignored) =20 DEFINE_SHOW_ATTRIBUTE(regmap_access); =20 -static ssize_t regmap_cache_only_write_file(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t __regmap_cache_only_write_file(struct file *file, + const char __user *user_buf, + size_t count, loff_t *ppos) { struct regmap *map =3D container_of(file->private_data, struct regmap, cache_only); @@ -497,15 +497,21 @@ static ssize_t regmap_cache_only_write_file(struct fi= le *file, return count; } =20 +static ssize_t regmap_cache_only_write_file(struct kiocb *iocb, + struct iov_iter *from) +{ + return vfs_write_iter(iocb, from, __regmap_cache_only_write_file); +} + static const struct file_operations regmap_cache_only_fops =3D { .open =3D simple_open, - .read =3D debugfs_read_file_bool, - .write =3D regmap_cache_only_write_file, + .read_iter =3D debugfs_read_file_bool, + .write_iter =3D regmap_cache_only_write_file, }; =20 -static ssize_t regmap_cache_bypass_write_file(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t __regmap_cache_bypass_write_file(struct file *file, + const char __user *user_buf, + size_t count, loff_t *ppos) { struct regmap *map =3D container_of(file->private_data, struct regmap, cache_bypass); @@ -537,10 +543,16 @@ static ssize_t regmap_cache_bypass_write_file(struct = file *file, return count; } =20 +static ssize_t regmap_cache_bypass_write_file(struct kiocb *iocb, + struct iov_iter *from) +{ + return vfs_write_iter(iocb, from, __regmap_cache_bypass_write_file); +} + static const struct file_operations regmap_cache_bypass_fops =3D { .open =3D simple_open, - .read =3D debugfs_read_file_bool, - .write =3D regmap_cache_bypass_write_file, + .read_iter =3D debugfs_read_file_bool, + .write_iter =3D regmap_cache_bypass_write_file, }; =20 void regmap_debugfs_init(struct regmap *map) diff --git a/drivers/misc/mei/debugfs.c b/drivers/misc/mei/debugfs.c index 3b098d4c8e3d..b2e9fa911817 100644 --- a/drivers/misc/mei/debugfs.c +++ b/drivers/misc/mei/debugfs.c @@ -133,17 +133,15 @@ static int mei_dbgfs_devstate_show(struct seq_file *m= , void *unused) } DEFINE_SHOW_ATTRIBUTE(mei_dbgfs_devstate); =20 -static ssize_t mei_dbgfs_write_allow_fa(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t mei_dbgfs_write_allow_fa(struct kiocb *iocb, struct iov_ite= r *from) { struct mei_device *dev; int ret; =20 - dev =3D container_of(file->private_data, + dev =3D container_of(iocb->ki_filp->private_data, struct mei_device, allow_fixed_address); =20 - ret =3D debugfs_write_file_bool(file, user_buf, count, ppos); + ret =3D debugfs_write_file_bool(iocb, from); if (ret < 0) return ret; dev->override_fixed_address =3D true; @@ -152,8 +150,8 @@ static ssize_t mei_dbgfs_write_allow_fa(struct file *fi= le, =20 static const struct file_operations mei_dbgfs_allow_fa_fops =3D { .open =3D simple_open, - .read =3D debugfs_read_file_bool, - .write =3D mei_dbgfs_write_allow_fa, + .read_iter =3D debugfs_read_file_bool, + .write_iter =3D mei_dbgfs_write_allow_fa, .llseek =3D generic_file_llseek, }; =20 diff --git a/fs/debugfs/file.c b/fs/debugfs/file.c index c6f4a9a98b85..c6ff9084bc0f 100644 --- a/fs/debugfs/file.c +++ b/fs/debugfs/file.c @@ -26,21 +26,19 @@ =20 struct poll_table_struct; =20 -static ssize_t default_read_file(struct file *file, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t default_read_file_iter(struct kiocb *iocb, struct iov_iter = *to) { return 0; } =20 -static ssize_t default_write_file(struct file *file, const char __user *bu= f, - size_t count, loff_t *ppos) +static ssize_t default_write_file_iter(struct kiocb *iocb, struct iov_iter= *from) { - return count; + return iov_iter_count(from); } =20 const struct file_operations debugfs_noop_file_operations =3D { - .read =3D default_read_file, - .write =3D default_write_file, + .read_iter =3D default_read_file_iter, + .write_iter =3D default_write_file_iter, .open =3D simple_open, .llseek =3D noop_llseek, }; @@ -872,8 +870,9 @@ void debugfs_create_atomic_t(const char *name, umode_t = mode, } EXPORT_SYMBOL_GPL(debugfs_create_atomic_t); =20 -ssize_t debugfs_read_file_bool(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t __debugfs_read_file_bool(struct file *file, + char __user *user_buf, size_t count, + loff_t *ppos) { char buf[2]; bool val; @@ -893,10 +892,16 @@ ssize_t debugfs_read_file_bool(struct file *file, cha= r __user *user_buf, buf[1] =3D '\n'; return simple_read_from_buffer(user_buf, count, ppos, buf, 2); } + +ssize_t debugfs_read_file_bool(struct kiocb *iocb, struct iov_iter *to) +{ + return vfs_read_iter(iocb, to, __debugfs_read_file_bool); +} EXPORT_SYMBOL_GPL(debugfs_read_file_bool); =20 -ssize_t debugfs_write_file_bool(struct file *file, const char __user *user= _buf, - size_t count, loff_t *ppos) +static ssize_t __debugfs_write_file_bool(struct file *file, + const char __user *user_buf, + size_t count, loff_t *ppos) { bool bv; int r; @@ -914,23 +919,28 @@ ssize_t debugfs_write_file_bool(struct file *file, co= nst char __user *user_buf, =20 return count; } + +ssize_t debugfs_write_file_bool(struct kiocb *iocb, struct iov_iter *from) +{ + return vfs_write_iter(iocb, from, __debugfs_write_file_bool); +} EXPORT_SYMBOL_GPL(debugfs_write_file_bool); =20 static const struct file_operations fops_bool =3D { - .read =3D debugfs_read_file_bool, - .write =3D debugfs_write_file_bool, + .read_iter =3D debugfs_read_file_bool, + .write_iter =3D debugfs_write_file_bool, .open =3D simple_open, .llseek =3D default_llseek, }; =20 static const struct file_operations fops_bool_ro =3D { - .read =3D debugfs_read_file_bool, + .read_iter =3D debugfs_read_file_bool, .open =3D simple_open, .llseek =3D default_llseek, }; =20 static const struct file_operations fops_bool_wo =3D { - .write =3D debugfs_write_file_bool, + .write_iter =3D debugfs_write_file_bool, .open =3D simple_open, .llseek =3D default_llseek, }; @@ -957,8 +967,8 @@ void debugfs_create_bool(const char *name, umode_t mode= , struct dentry *parent, } EXPORT_SYMBOL_GPL(debugfs_create_bool); =20 -ssize_t debugfs_read_file_str(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t __debugfs_read_file_str(struct file *file, char __user *use= r_buf, + size_t count, loff_t *ppos) { struct dentry *dentry =3D F_DENTRY(file); char *str, *copy =3D NULL; @@ -991,10 +1001,15 @@ ssize_t debugfs_read_file_str(struct file *file, cha= r __user *user_buf, =20 return ret; } -EXPORT_SYMBOL_GPL(debugfs_create_str); =20 -static ssize_t debugfs_write_file_str(struct file *file, const char __user= *user_buf, - size_t count, loff_t *ppos) +ssize_t debugfs_read_file_str(struct kiocb *iocb, struct iov_iter *to) +{ + return vfs_read_iter(iocb, to, __debugfs_read_file_str); +} + +static ssize_t __debugfs_write_file_str(struct file *file, + const char __user *user_buf, + size_t count, loff_t *ppos) { struct dentry *dentry =3D F_DENTRY(file); char *old, *new =3D NULL; @@ -1044,21 +1059,26 @@ static ssize_t debugfs_write_file_str(struct file *= file, const char __user *user return r; } =20 +static ssize_t debugfs_write_file_str(struct kiocb *iocb, struct iov_iter = *from) +{ + return vfs_write_iter(iocb, from, __debugfs_write_file_str); +} + static const struct file_operations fops_str =3D { - .read =3D debugfs_read_file_str, - .write =3D debugfs_write_file_str, + .read_iter =3D debugfs_read_file_str, + .write_iter =3D debugfs_write_file_str, .open =3D simple_open, .llseek =3D default_llseek, }; =20 static const struct file_operations fops_str_ro =3D { - .read =3D debugfs_read_file_str, + .read_iter =3D debugfs_read_file_str, .open =3D simple_open, .llseek =3D default_llseek, }; =20 static const struct file_operations fops_str_wo =3D { - .write =3D debugfs_write_file_str, + .write_iter =3D debugfs_write_file_str, .open =3D simple_open, .llseek =3D default_llseek, }; @@ -1083,9 +1103,10 @@ void debugfs_create_str(const char *name, umode_t mo= de, debugfs_create_mode_unsafe(name, mode, parent, value, &fops_str, &fops_str_ro, &fops_str_wo); } +EXPORT_SYMBOL_GPL(debugfs_create_str); =20 -static ssize_t read_file_blob(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t __read_file_blob(struct file *file, char __user *user_buf, + size_t count, loff_t *ppos) { struct debugfs_blob_wrapper *blob =3D file->private_data; struct dentry *dentry =3D F_DENTRY(file); @@ -1100,8 +1121,13 @@ static ssize_t read_file_blob(struct file *file, cha= r __user *user_buf, return r; } =20 -static ssize_t write_file_blob(struct file *file, const char __user *user_= buf, - size_t count, loff_t *ppos) +static ssize_t read_file_blob(struct kiocb *iocb, struct iov_iter *to) +{ + return vfs_read_iter(iocb, to, __read_file_blob); +} + +static ssize_t __write_file_blob(struct file *file, const char __user *use= r_buf, + size_t count, loff_t *ppos) { struct debugfs_blob_wrapper *blob =3D file->private_data; struct dentry *dentry =3D F_DENTRY(file); @@ -1117,9 +1143,14 @@ static ssize_t write_file_blob(struct file *file, co= nst char __user *user_buf, return r; } =20 +static ssize_t write_file_blob(struct kiocb *iocb, struct iov_iter *from) +{ + return vfs_write_iter(iocb, from, __write_file_blob); +} + static const struct file_operations fops_blob =3D { - .read =3D read_file_blob, - .write =3D write_file_blob, + .read_iter =3D read_file_blob, + .write_iter =3D write_file_blob, .open =3D simple_open, .llseek =3D default_llseek, }; @@ -1197,8 +1228,8 @@ static int u32_array_open(struct inode *inode, struct= file *file) return nonseekable_open(inode, file); } =20 -static ssize_t u32_array_read(struct file *file, char __user *buf, size_t = len, - loff_t *ppos) +static ssize_t __u32_array_read(struct file *file, char __user *buf, size_= t len, + loff_t *ppos) { size_t size =3D strlen(file->private_data); =20 @@ -1206,6 +1237,11 @@ static ssize_t u32_array_read(struct file *file, cha= r __user *buf, size_t len, file->private_data, size); } =20 +static ssize_t u32_array_read(struct kiocb *iocb, struct iov_iter *to) +{ + return vfs_read_iter(iocb, to, __u32_array_read); +} + static int u32_array_release(struct inode *inode, struct file *file) { kfree(file->private_data); @@ -1217,7 +1253,7 @@ static const struct file_operations u32_array_fops = =3D { .owner =3D THIS_MODULE, .open =3D u32_array_open, .release =3D u32_array_release, - .read =3D u32_array_read, + .read_iter =3D u32_array_read, .llseek =3D no_llseek, }; =20 @@ -1341,7 +1377,7 @@ static const struct file_operations debugfs_devm_entr= y_ops =3D { .owner =3D THIS_MODULE, .open =3D debugfs_devm_entry_open, .release =3D single_release, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek }; =20 diff --git a/include/linux/debugfs.h b/include/linux/debugfs.h index c9c65b132c0f..ad417d079ec9 100644 --- a/include/linux/debugfs.h +++ b/include/linux/debugfs.h @@ -162,14 +162,11 @@ void debugfs_create_devm_seqfile(struct device *dev, = const char *name, =20 bool debugfs_initialized(void); =20 -ssize_t debugfs_read_file_bool(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos); +ssize_t debugfs_read_file_bool(struct kiocb *iocb, struct iov_iter *to); =20 -ssize_t debugfs_write_file_bool(struct file *file, const char __user *user= _buf, - size_t count, loff_t *ppos); +ssize_t debugfs_write_file_bool(struct kiocb *iocb, struct iov_iter *from); =20 -ssize_t debugfs_read_file_str(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos); +ssize_t debugfs_read_file_str(struct kiocb *iocb, struct iov_iter *to); =20 /** * struct debugfs_cancellation - cancellation data @@ -376,23 +373,20 @@ static inline void debugfs_create_devm_seqfile(struct= device *dev, { } =20 -static inline ssize_t debugfs_read_file_bool(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static inline ssize_t debugfs_read_file_bool(struct kiocb *iocb, + struct iov_iter *to) { return -ENODEV; } =20 -static inline ssize_t debugfs_write_file_bool(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static inline ssize_t debugfs_write_file_bool(struct kiocb *iocb, + struct iov_iter *from) { return -ENODEV; } =20 -static inline ssize_t debugfs_read_file_str(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static inline ssize_t debugfs_read_file_str(struct kiocb *iocb, + struct iov_iter *to) { return -ENODEV; } diff --git a/kernel/sched/debug.c b/kernel/sched/debug.c index 8d5d98a5834d..686a21ea1791 100644 --- a/kernel/sched/debug.c +++ b/kernel/sched/debug.c @@ -284,8 +284,7 @@ __read_mostly bool sched_debug_verbose; static struct dentry *sd_dentry; =20 =20 -static ssize_t sched_verbose_write(struct file *filp, const char __user *u= buf, - size_t cnt, loff_t *ppos) +static ssize_t sched_verbose_write(struct kiocb *iocb, struct iov_iter *fr= om) { ssize_t result; bool orig; @@ -294,7 +293,7 @@ static ssize_t sched_verbose_write(struct file *filp, c= onst char __user *ubuf, mutex_lock(&sched_domains_mutex); =20 orig =3D sched_debug_verbose; - result =3D debugfs_write_file_bool(filp, ubuf, cnt, ppos); + result =3D debugfs_write_file_bool(iocb, from); =20 if (sched_debug_verbose && !orig) update_sched_domain_debugfs(); @@ -313,8 +312,8 @@ static ssize_t sched_verbose_write(struct file *filp, c= onst char __user *ubuf, #endif =20 static const struct file_operations sched_verbose_fops =3D { - .read =3D debugfs_read_file_bool, - .write =3D sched_verbose_write, + .read_iter =3D debugfs_read_file_bool, + .write_iter =3D sched_verbose_write, .open =3D simple_open, .llseek =3D default_llseek, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f51.google.com (mail-io1-f51.google.com [209.85.166.51]) (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 62D684F88B for ; Thu, 11 Apr 2024 15:32:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849559; cv=none; b=h7AUkMVbLQ6rnr/Fd/bcUSLtRBOUbPqzny4f3BqxDZxrYkR+1bBViv78MaaqNRAGM6Ygg3Gzq2c8WGuvUSn+eaB7e2LD2+BrfA7de1yGXJgXUXT4lg0c83kx7PwjCgCAMgXzdE05Tq3iJCm2mhGD+pKTQE4KDR20UWppGUvdccE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849559; c=relaxed/simple; bh=3yiypp7otTzShQxGZK3EPCdcJ6oDNIfGmBaTPZXo9zo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ZDM6Z1Yw5c2aX77blBBoTDzGS4fTZfOgUArg3svQZqCovc9+dlw0ahSmCbnoxyl646OkrD2wkhFQddQRJvu62I0T23shqwF2QJnlL9aD1sYrEHvFPxJ8xoliYP5wHAehFEdgZFMSnvwJ1ulvUaddpRBoPxMQINrGykFnkrPPDkg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=1PXuvIjS; arc=none smtp.client-ip=209.85.166.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="1PXuvIjS" Received: by mail-io1-f51.google.com with SMTP id ca18e2360f4ac-7d67d1073easo9709839f.0 for ; Thu, 11 Apr 2024 08:32:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849556; x=1713454356; 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=Vso8h9KUTJRTgUc+rRfjD5CMC6cf/TiJgMh+jZVwjns=; b=1PXuvIjStgUmHsqYZJc8RbDo/3ffgfpi2YE/zeVivF788pDvCiBnHubE29i6gR9ZFT RLLTDPYSUSPCVLuf6TD1qq8I6hvAVzGcl2Qh6pDkWLSfe+csijekdbl9644rqjPyWD0l /+dKDSCY/ODGnWyQ6JCbT6cEBb/azy8/GK3z8+mtHN9IB/q2uehLwbcYuEPsq8UnLnY6 cjgmVw17V8K45Qyvce0TayhQK8pkw8D8Fuk/RB4/lxErYnz1j5hbJDjOen7e84NxtbaA n7UBufq+nFeCP9gVo9jJI74AkBT3vGSCwxXDwuScqC2+00pAhFNtaYspGEj5+homlHyt 7bDQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849556; x=1713454356; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Vso8h9KUTJRTgUc+rRfjD5CMC6cf/TiJgMh+jZVwjns=; b=D9D3vz4Zvlh8a5My0xKhVSHSrYzkg4cUhMH3DzrgBu8pmegq4rj/U/WhkplQHCfhVk UqQLIYCN7FHP7BuEA0GhluXeE9TBqPnQsmf13AI57CK3Bf4dzo5RzKgjcLzbJfKG3PrP oOfl6ZwZrOzvwofLHCg6XAAHTSL9NeN/Y6bbnWrImYm+gfMrx4ABfKHNFpW47Q8xiEOW lorbbOkTB9Pa5kt5yk4/VOlaM5hYAKT35fCms2Utmbmlc7jImcEtvpPOjAkDejdgY7OL qVV9y3daHgmdzAvy1PUKLy1vSqxIbKMgD+VnMk8lEdsmD7EBwHq9LMe0FIp+Dnf8jmvd NEEA== X-Gm-Message-State: AOJu0Yw3qYaYD7jHwTpk71YAE1w0FdaFxdR1LD7UNQYYxw0beiDjaHtr EEcw0eKVFRvkFSt3lnJgin80bX/6IzrHhnIT5K/xPdlMQCaae2Rdoo76jwVjZqUWx0CBe/3bp9A s X-Google-Smtp-Source: AGHT+IF+HMTVNXvgvXM2D2YpD+MTeyJF5uqKesoFwvBiGGxVVUHh8+bQiyQuzu3J27YCCafN3/TlmA== X-Received: by 2002:a05:6602:84:b0:7d6:9d75:6de2 with SMTP id h4-20020a056602008400b007d69d756de2mr32373iob.2.1712849556067; Thu, 11 Apr 2024 08:32:36 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.32.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:32:34 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 039/437] libfs: switch to read iter and add copy helpers Date: Thu, 11 Apr 2024 09:12:59 -0600 Message-ID: <20240411153126.16201-40-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- fs/debugfs/file.c | 44 +++++++++++++++++++++ fs/libfs.c | 87 +++++++++++++++++++++++++++++++++++++++++ include/linux/debugfs.h | 25 +++++++++++- include/linux/fs.h | 7 +++- 4 files changed, 159 insertions(+), 4 deletions(-) diff --git a/fs/debugfs/file.c b/fs/debugfs/file.c index c6ff9084bc0f..31749d8c35f8 100644 --- a/fs/debugfs/file.c +++ b/fs/debugfs/file.c @@ -468,6 +468,20 @@ ssize_t debugfs_attr_read(struct file *file, char __us= er *buf, } EXPORT_SYMBOL_GPL(debugfs_attr_read); =20 +ssize_t debugfs_attr_read_iter(struct kiocb *iocb, struct iov_iter *to) +{ + struct dentry *dentry =3D F_DENTRY(iocb->ki_filp); + ssize_t ret; + + ret =3D debugfs_file_get(dentry); + if (unlikely(ret)) + return ret; + ret =3D simple_attr_read_iter(iocb, to); + debugfs_file_put(dentry); + return ret; +} +EXPORT_SYMBOL_GPL(debugfs_attr_read_iter); + static ssize_t debugfs_attr_write_xsigned(struct file *file, const char __= user *buf, size_t len, loff_t *ppos, bool is_signed) { @@ -499,6 +513,36 @@ ssize_t debugfs_attr_write_signed(struct file *file, c= onst char __user *buf, } EXPORT_SYMBOL_GPL(debugfs_attr_write_signed); =20 +static ssize_t debugfs_attr_write_iter_xsigned(struct kiocb *iocb, + struct iov_iter *from, + bool is_signed) +{ + struct dentry *dentry =3D F_DENTRY(iocb->ki_filp); + ssize_t ret; + + ret =3D debugfs_file_get(dentry); + if (unlikely(ret)) + return ret; + if (is_signed) + ret =3D simple_attr_write_iter_signed(iocb, from); + else + ret =3D simple_attr_write_iter(iocb, from); + debugfs_file_put(dentry); + return ret; +} + +ssize_t debugfs_attr_write_iter(struct kiocb *iocb, struct iov_iter *from) +{ + return debugfs_attr_write_iter_xsigned(iocb, from, false); +} +EXPORT_SYMBOL_GPL(debugfs_attr_write_iter); + +ssize_t debugfs_attr_write_iter_signed(struct kiocb *iocb, struct iov_iter= *from) +{ + return debugfs_attr_write_iter_xsigned(iocb, from, true); +} +EXPORT_SYMBOL_GPL(debugfs_attr_write_iter_signed); + static struct dentry *debugfs_create_mode_unsafe(const char *name, umode_t= mode, struct dentry *parent, void *value, const struct file_operations *fops, diff --git a/fs/libfs.c b/fs/libfs.c index 074cfacc377f..90f79113e48b 100644 --- a/fs/libfs.c +++ b/fs/libfs.c @@ -1365,6 +1365,93 @@ ssize_t simple_attr_read(struct file *file, char __u= ser *buf, } EXPORT_SYMBOL_GPL(simple_attr_read); =20 +/* read from the buffer that is filled with the get function */ +ssize_t simple_attr_read_iter(struct kiocb *iocb, struct iov_iter *to) +{ + struct simple_attr *attr; + size_t size; + ssize_t ret; + + attr =3D iocb->ki_filp->private_data; + + if (!attr->get) + return -EACCES; + + ret =3D mutex_lock_interruptible(&attr->mutex); + if (ret) + return ret; + + if (iocb->ki_pos && attr->get_buf[0]) { + /* continued read */ + size =3D strlen(attr->get_buf); + } else { + /* first read */ + u64 val; + ret =3D attr->get(attr->data, &val); + if (ret) + goto out; + + size =3D scnprintf(attr->get_buf, sizeof(attr->get_buf), + attr->fmt, (unsigned long long)val); + } + + ret =3D simple_copy_to_iter(attr->get_buf, &iocb->ki_pos, size, to); +out: + mutex_unlock(&attr->mutex); + return ret; +} +EXPORT_SYMBOL_GPL(simple_attr_read_iter); + +static ssize_t __simple_write_iter(struct kiocb *iocb, struct iov_iter *fr= om, + bool is_signed) +{ + struct simple_attr *attr; + unsigned long long val; + size_t len =3D iov_iter_count(from); + size_t size; + ssize_t ret; + + attr =3D iocb->ki_filp->private_data; + if (!attr->set) + return -EACCES; + + ret =3D mutex_lock_interruptible(&attr->mutex); + if (ret) + return ret; + + ret =3D -EFAULT; + size =3D min(sizeof(attr->set_buf) - 1, len); + if (!copy_from_iter(attr->set_buf, size, from)) + goto out; + + attr->set_buf[size] =3D '\0'; + if (is_signed) + ret =3D kstrtoll(attr->set_buf, 0, &val); + else + ret =3D kstrtoull(attr->set_buf, 0, &val); + if (ret) + goto out; + ret =3D attr->set(attr->data, val); + if (ret =3D=3D 0) + ret =3D len; /* on success, claim we got the whole input */ +out: + mutex_unlock(&attr->mutex); + return ret; +} + +ssize_t simple_attr_write_iter(struct kiocb *iocb, struct iov_iter *from) +{ + return __simple_write_iter(iocb, from, false); +} +EXPORT_SYMBOL_GPL(simple_attr_write_iter); + +ssize_t simple_attr_write_iter_signed(struct kiocb *iocb, struct iov_iter = *from) + +{ + return __simple_write_iter(iocb, from, true); +} +EXPORT_SYMBOL_GPL(simple_attr_write_iter_signed); + /* interpret the buffer as a number to call the set function with */ static ssize_t simple_attr_write_xsigned(struct file *file, const char __u= ser *buf, size_t len, loff_t *ppos, bool is_signed) diff --git a/include/linux/debugfs.h b/include/linux/debugfs.h index ad417d079ec9..c6d189059d3d 100644 --- a/include/linux/debugfs.h +++ b/include/linux/debugfs.h @@ -55,8 +55,8 @@ static const struct file_operations __fops =3D { \ .owner =3D THIS_MODULE, \ .open =3D __fops ## _open, \ .release =3D simple_attr_release, \ - .read =3D debugfs_attr_read, \ - .write =3D (__is_signed) ? debugfs_attr_write_signed : debugfs_attr_writ= e, \ + .read_iter =3D debugfs_attr_read_iter, \ + .write_iter=3D (__is_signed) ? debugfs_attr_write_iter_signed : debugfs_a= ttr_write_iter, \ .llseek =3D no_llseek, \ } =20 @@ -106,10 +106,13 @@ void debugfs_file_put(struct dentry *dentry); =20 ssize_t debugfs_attr_read(struct file *file, char __user *buf, size_t len, loff_t *ppos); +ssize_t debugfs_attr_read_iter(struct kiocb *iocb, struct iov_iter *to); ssize_t debugfs_attr_write(struct file *file, const char __user *buf, size_t len, loff_t *ppos); +ssize_t debugfs_attr_write_iter(struct kiocb *iocb, struct iov_iter *from); ssize_t debugfs_attr_write_signed(struct file *file, const char __user *bu= f, size_t len, loff_t *ppos); +ssize_t debugfs_attr_write_iter_signed(struct kiocb *iocb, struct iov_iter= *from); =20 struct dentry *debugfs_rename(struct dentry *old_dir, struct dentry *old_d= entry, struct dentry *new_dir, const char *new_name); @@ -271,6 +274,12 @@ static inline ssize_t debugfs_attr_read(struct file *f= ile, char __user *buf, return -ENODEV; } =20 +static inline ssize_t debugfs_attr_read_iter(struct kiocb *iocb, + struct iov_iter *to) +{ + return -ENODEV; +} + static inline ssize_t debugfs_attr_write(struct file *file, const char __user *buf, size_t len, loff_t *ppos) @@ -278,6 +287,12 @@ static inline ssize_t debugfs_attr_write(struct file *= file, return -ENODEV; } =20 +static inline ssize_t debugfs_attr_write_iter(struct kiocb *iocb, + struct iov_iter *from) +{ + return -ENODEV; +} + static inline ssize_t debugfs_attr_write_signed(struct file *file, const char __user *buf, size_t len, loff_t *ppos) @@ -285,6 +300,12 @@ static inline ssize_t debugfs_attr_write_signed(struct= file *file, return -ENODEV; } =20 +static inline ssize_t debugfs_attr_write_iter_signed(struct kiocb *iocb, + struct iov_iter *from) +{ + return -ENODEV; +} + static inline struct dentry *debugfs_rename(struct dentry *old_dir, struct= dentry *old_dentry, struct dentry *new_dir, char *new_name) { diff --git a/include/linux/fs.h b/include/linux/fs.h index 5806cea7a3ac..d15a79020efa 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -3528,8 +3528,8 @@ static const struct file_operations __fops =3D { \ .owner =3D THIS_MODULE, \ .open =3D __fops ## _open, \ .release =3D simple_attr_release, \ - .read =3D simple_attr_read, \ - .write =3D (__is_signed) ? simple_attr_write_signed : simple_attr_write,= \ + .read_iter =3D simple_attr_read_iter, \ + .write_iter =3D (__is_signed) ? simple_attr_write_iter_signed : simple_at= tr_write_iter, \ .llseek =3D generic_file_llseek, \ } =20 @@ -3555,6 +3555,9 @@ ssize_t simple_attr_write(struct file *file, const ch= ar __user *buf, size_t len, loff_t *ppos); ssize_t simple_attr_write_signed(struct file *file, const char __user *buf, size_t len, loff_t *ppos); +ssize_t simple_attr_read_iter(struct kiocb *iocb, struct iov_iter *to); +ssize_t simple_attr_write_iter(struct kiocb *iocb, struct iov_iter *from); +ssize_t simple_attr_write_iter_signed(struct kiocb *iocb, struct iov_iter = *from); =20 struct ctl_table; int __init list_bdev_fs_names(char *buf, size_t size); --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f48.google.com (mail-io1-f48.google.com [209.85.166.48]) (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 AB5E351C52 for ; Thu, 11 Apr 2024 15:32:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849562; cv=none; b=fQdTURja3YEYUqxDsnBI0KTrfLiaw6ivJFVKAl/fU+VRke+fZemPpqkpPoX+VBraHak3dU/NptnVPgNCtYVOHf5rGEsoQDWd16hMfR5Ay0BrWq+vofzRtKvWB1zBOs3alszbwVPEZ0BSBIvp/Cxr7ZQ/MuiRLx4OMyVXoteM2jA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849562; c=relaxed/simple; bh=J+WmHATCp14kKHUEy0eX+FtmZxga0kJQhTadbxIyiRA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=KfsgEYwJdelFLKYTidfkWrF75pWt7fFKWTBnMQ5dE01fS7/S1YWDyYSKJyNz4Q3JwmW3MQC5VZqRQtQ40nxqpx8RxP1BLyyo6KzLoGKhArIcF7Al36c/mVIrnpehUe4cJU57deprVWyShTyV/tpxuOPeT4pLlcCzwaPMNvhIMcs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=v8V1cY81; arc=none smtp.client-ip=209.85.166.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="v8V1cY81" Received: by mail-io1-f48.google.com with SMTP id ca18e2360f4ac-7d5ed700c2dso16105139f.0 for ; Thu, 11 Apr 2024 08:32:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849558; x=1713454358; 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=fMefPYkEf8my1jLSvMn4cpZU1c9njZA6L4Oy07dUl70=; b=v8V1cY81U3b4SMjA4ehzMm87TCSeROy/eHj0u6WoZPDuduYhw1Xju+YE1YkkLvv5di tNIkHITVD6IVfAWbBNnTaSaPMgZlhotkOwiTr9BJWbqsFZ+P2TX0okarXWbGwUUIKM43 57u1JuYpSZSWwnxIBuPFsR1oNhuP3ayX3xXC52WMWZSZPe4ssz2zml+XPAF/QGt5hy00 PtCexkeh+9KG5QXcq43zZWuqEpxgpKu45xqw+dyeRWQqB+KoBzEggbkOOuj3Q2iw/yoK Qb/EOTrydlrttUyMV12ExDG1aiU+kS13oml7lskLhZKCuFiMZTy8IY9/uocvICykCnC9 cCQQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849558; x=1713454358; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=fMefPYkEf8my1jLSvMn4cpZU1c9njZA6L4Oy07dUl70=; b=hLTiEfF39Hl76qQP/04KrEuZojspFj39zRqgD7x9Dq07yz7tB2paQvIol03O9PagtH nmLCGsGdJhlr4NZOSJn5qGzxLGF/5eroC/8ZqOclDjB12uRtcudclMzAfVnM8nUGtZ0J 84G5Ip6xg8CRfsHoF76U2/+Z5qOyYV0C0uJpdZ5169RaG6gN+WlwymzRfOmXmwMz840Z iiHgjPEyg57x8rk8svgyfr6wmVnz43hsjqnPoGwNAug/j/B0daeZWYe0y82dSP3pLqig xoOqGa/m/S94FVcWa63bEIYrml2YuKeTC4h2jKJz42sOLfVm3eU9ZdSzi53DftPC+EcZ FEhw== X-Gm-Message-State: AOJu0Yx7fm3hlpAmJlz+BtDNnp3KLKzxYVdvpVLDfLAvdbqneWHvZ/aN i/LeGzZzcfo4syw6fgIhdz/aQB6VAW9MBo8VYVAuNgeMfKKu96O9rYqloXHjTHd0cjk0obwN+nU B X-Google-Smtp-Source: AGHT+IFH8AxSAfiSP7b7w1CWrByLwkWM3SDRFWuDm9Nbj+dK1q9Ut2B30l3Ehf1wpsd5uYRjZANpRg== X-Received: by 2002:a6b:cd08:0:b0:7d5:fe3e:90ff with SMTP id d8-20020a6bcd08000000b007d5fe3e90ffmr199234iog.0.1712849558000; Thu, 11 Apr 2024 08:32:38 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.32.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:32:36 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 040/437] fs: convert generic_read_dir() to ->read_iter() Date: Thu, 11 Apr 2024 09:13:00 -0600 Message-ID: <20240411153126.16201-41-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" No functional changes here, just a straight forward mechanical conversion. Signed-off-by: Jens Axboe --- arch/powerpc/platforms/cell/spufs/inode.c | 2 +- fs/9p/vfs_dir.c | 4 ++-- fs/adfs/dir.c | 2 +- fs/affs/dir.c | 2 +- fs/autofs/root.c | 4 ++-- fs/bcachefs/fs.c | 2 +- fs/befs/linuxvfs.c | 2 +- fs/bfs/dir.c | 2 +- fs/btrfs/inode.c | 2 +- fs/coda/dir.c | 2 +- fs/configfs/dir.c | 2 +- fs/cramfs/inode.c | 2 +- fs/ecryptfs/file.c | 2 +- fs/efs/dir.c | 2 +- fs/erofs/dir.c | 2 +- fs/exfat/dir.c | 2 +- fs/ext2/dir.c | 2 +- fs/ext4/dir.c | 2 +- fs/f2fs/dir.c | 2 +- fs/fat/dir.c | 2 +- fs/freevxfs/vxfs_lookup.c | 2 +- fs/fuse/dir.c | 2 +- fs/hfs/dir.c | 2 +- fs/hfsplus/dir.c | 2 +- fs/hostfs/hostfs_kern.c | 2 +- fs/hpfs/dir.c | 2 +- fs/isofs/dir.c | 2 +- fs/jffs2/dir.c | 2 +- fs/jfs/namei.c | 2 +- fs/kernfs/dir.c | 2 +- fs/libfs.c | 8 ++++---- fs/minix/dir.c | 2 +- fs/nfs/dir.c | 2 +- fs/nilfs2/dir.c | 2 +- fs/ntfs3/dir.c | 2 +- fs/ocfs2/file.c | 4 ++-- fs/omfs/dir.c | 2 +- fs/openpromfs/inode.c | 2 +- fs/orangefs/dir.c | 2 +- fs/overlayfs/readdir.c | 2 +- fs/proc/base.c | 12 ++++++------ fs/proc/fd.c | 4 ++-- fs/proc/generic.c | 2 +- fs/proc/namespaces.c | 2 +- fs/proc/proc_net.c | 2 +- fs/proc/proc_sysctl.c | 2 +- fs/proc/root.c | 2 +- fs/qnx4/dir.c | 2 +- fs/qnx6/dir.c | 2 +- fs/reiserfs/dir.c | 2 +- fs/romfs/super.c | 2 +- fs/smb/client/cifsfs.c | 2 +- fs/squashfs/dir.c | 2 +- fs/sysv/dir.c | 2 +- fs/tracefs/event_inode.c | 2 +- fs/ubifs/dir.c | 2 +- fs/udf/dir.c | 2 +- fs/ufs/dir.c | 2 +- fs/vboxsf/dir.c | 2 +- fs/xfs/xfs_file.c | 2 +- fs/zonefs/super.c | 2 +- include/linux/fs.h | 2 +- 62 files changed, 74 insertions(+), 74 deletions(-) diff --git a/arch/powerpc/platforms/cell/spufs/inode.c b/arch/powerpc/platf= orms/cell/spufs/inode.c index 030de2b8c145..cdb3cc344eb4 100644 --- a/arch/powerpc/platforms/cell/spufs/inode.c +++ b/arch/powerpc/platforms/cell/spufs/inode.c @@ -220,7 +220,7 @@ const struct file_operations spufs_context_fops =3D { .open =3D dcache_dir_open, .release =3D spufs_dir_close, .llseek =3D dcache_dir_lseek, - .read =3D generic_read_dir, + .read_iter =3D generic_read_dir, .iterate_shared =3D dcache_readdir, .fsync =3D noop_fsync, }; diff --git a/fs/9p/vfs_dir.c b/fs/9p/vfs_dir.c index e0d34e4e9076..b1e2a8b7b289 100644 --- a/fs/9p/vfs_dir.c +++ b/fs/9p/vfs_dir.c @@ -237,7 +237,7 @@ int v9fs_dir_release(struct inode *inode, struct file *= filp) } =20 const struct file_operations v9fs_dir_operations =3D { - .read =3D generic_read_dir, + .read_iter =3D generic_read_dir, .llseek =3D generic_file_llseek, .iterate_shared =3D v9fs_dir_readdir, .open =3D v9fs_file_open, @@ -245,7 +245,7 @@ const struct file_operations v9fs_dir_operations =3D { }; =20 const struct file_operations v9fs_dir_operations_dotl =3D { - .read =3D generic_read_dir, + .read_iter =3D generic_read_dir, .llseek =3D generic_file_llseek, .iterate_shared =3D v9fs_dir_readdir_dotl, .open =3D v9fs_file_open, diff --git a/fs/adfs/dir.c b/fs/adfs/dir.c index 77fbd196008f..22b93599d4bb 100644 --- a/fs/adfs/dir.c +++ b/fs/adfs/dir.c @@ -385,7 +385,7 @@ static int adfs_dir_lookup_byname(struct inode *inode, = const struct qstr *qstr, } =20 const struct file_operations adfs_dir_operations =3D { - .read =3D generic_read_dir, + .read_iter =3D generic_read_dir, .llseek =3D generic_file_llseek, .iterate_shared =3D adfs_iterate, .fsync =3D generic_file_fsync, diff --git a/fs/affs/dir.c b/fs/affs/dir.c index b2bf7016e1b3..dc51f7bfbb27 100644 --- a/fs/affs/dir.c +++ b/fs/affs/dir.c @@ -20,7 +20,7 @@ static int affs_readdir(struct file *, struct dir_context *); =20 const struct file_operations affs_dir_operations =3D { - .read =3D generic_read_dir, + .read_iter =3D generic_read_dir, .llseek =3D generic_file_llseek, .iterate_shared =3D affs_readdir, .fsync =3D affs_file_fsync, diff --git a/fs/autofs/root.c b/fs/autofs/root.c index 530d18827e35..eb69ab79633d 100644 --- a/fs/autofs/root.c +++ b/fs/autofs/root.c @@ -32,7 +32,7 @@ static void autofs_dentry_release(struct dentry *); const struct file_operations autofs_root_operations =3D { .open =3D dcache_dir_open, .release =3D dcache_dir_close, - .read =3D generic_read_dir, + .read_iter =3D generic_read_dir, .iterate_shared =3D dcache_readdir, .llseek =3D dcache_dir_lseek, .unlocked_ioctl =3D autofs_root_ioctl, @@ -44,7 +44,7 @@ const struct file_operations autofs_root_operations =3D { const struct file_operations autofs_dir_operations =3D { .open =3D autofs_dir_open, .release =3D dcache_dir_close, - .read =3D generic_read_dir, + .read_iter =3D generic_read_dir, .iterate_shared =3D dcache_readdir, .llseek =3D dcache_dir_lseek, }; diff --git a/fs/bcachefs/fs.c b/fs/bcachefs/fs.c index b5ea9fa1259d..a804e1a898f2 100644 --- a/fs/bcachefs/fs.c +++ b/fs/bcachefs/fs.c @@ -1156,7 +1156,7 @@ static const struct inode_operations bch_dir_inode_op= erations =3D { =20 static const struct file_operations bch_dir_file_operations =3D { .llseek =3D bch2_dir_llseek, - .read =3D generic_read_dir, + .read_iter =3D generic_read_dir, .iterate_shared =3D bch2_vfs_readdir, .fsync =3D bch2_fsync, .unlocked_ioctl =3D bch2_fs_file_ioctl, diff --git a/fs/befs/linuxvfs.c b/fs/befs/linuxvfs.c index d76f406d3b2e..24af5f365539 100644 --- a/fs/befs/linuxvfs.c +++ b/fs/befs/linuxvfs.c @@ -77,7 +77,7 @@ static const struct super_operations befs_sops =3D { static struct kmem_cache *befs_inode_cachep; =20 static const struct file_operations befs_dir_operations =3D { - .read =3D generic_read_dir, + .read_iter =3D generic_read_dir, .iterate_shared =3D befs_readdir, .llseek =3D generic_file_llseek, }; diff --git a/fs/bfs/dir.c b/fs/bfs/dir.c index c375e22c4c0c..d646e597402b 100644 --- a/fs/bfs/dir.c +++ b/fs/bfs/dir.c @@ -69,7 +69,7 @@ static int bfs_readdir(struct file *f, struct dir_context= *ctx) } =20 const struct file_operations bfs_dir_operations =3D { - .read =3D generic_read_dir, + .read_iter =3D generic_read_dir, .iterate_shared =3D bfs_readdir, .fsync =3D generic_file_fsync, .llseek =3D generic_file_llseek, diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c index c65fe5de4022..2aa1bb9977e9 100644 --- a/fs/btrfs/inode.c +++ b/fs/btrfs/inode.c @@ -11029,7 +11029,7 @@ static const struct inode_operations btrfs_dir_inod= e_operations =3D { =20 static const struct file_operations btrfs_dir_file_operations =3D { .llseek =3D btrfs_dir_llseek, - .read =3D generic_read_dir, + .read_iter =3D generic_read_dir, .iterate_shared =3D btrfs_real_readdir, .open =3D btrfs_opendir, .unlocked_ioctl =3D btrfs_ioctl, diff --git a/fs/coda/dir.c b/fs/coda/dir.c index 4e552ba7bd43..b0f80d6324fa 100644 --- a/fs/coda/dir.c +++ b/fs/coda/dir.c @@ -581,7 +581,7 @@ const struct inode_operations coda_dir_inode_operations= =3D { WRAP_DIR_ITER(coda_readdir) // FIXME! const struct file_operations coda_dir_operations =3D { .llseek =3D generic_file_llseek, - .read =3D generic_read_dir, + .read_iter =3D generic_read_dir, .iterate_shared =3D shared_coda_readdir, .open =3D coda_open, .release =3D coda_release, diff --git a/fs/configfs/dir.c b/fs/configfs/dir.c index 18677cd4e62f..3bfee6589f77 100644 --- a/fs/configfs/dir.c +++ b/fs/configfs/dir.c @@ -1706,7 +1706,7 @@ const struct file_operations configfs_dir_operations = =3D { .open =3D configfs_dir_open, .release =3D configfs_dir_close, .llseek =3D configfs_dir_lseek, - .read =3D generic_read_dir, + .read_iter =3D generic_read_dir, .iterate_shared =3D configfs_readdir, }; =20 diff --git a/fs/cramfs/inode.c b/fs/cramfs/inode.c index 9901057a15ba..fd73b433a5ad 100644 --- a/fs/cramfs/inode.c +++ b/fs/cramfs/inode.c @@ -933,7 +933,7 @@ static const struct address_space_operations cramfs_aop= s =3D { */ static const struct file_operations cramfs_directory_operations =3D { .llseek =3D generic_file_llseek, - .read =3D generic_read_dir, + .read_iter =3D generic_read_dir, .iterate_shared =3D cramfs_readdir, }; =20 diff --git a/fs/ecryptfs/file.c b/fs/ecryptfs/file.c index ce0a3c5ed0ca..96e24760f1c6 100644 --- a/fs/ecryptfs/file.c +++ b/fs/ecryptfs/file.c @@ -414,7 +414,7 @@ ecryptfs_compat_ioctl(struct file *file, unsigned int c= md, unsigned long arg) =20 const struct file_operations ecryptfs_dir_fops =3D { .iterate_shared =3D ecryptfs_readdir, - .read =3D generic_read_dir, + .read_iter =3D generic_read_dir, .unlocked_ioctl =3D ecryptfs_unlocked_ioctl, #ifdef CONFIG_COMPAT .compat_ioctl =3D ecryptfs_compat_ioctl, diff --git a/fs/efs/dir.c b/fs/efs/dir.c index f892ac7c2a35..4071a68d31a8 100644 --- a/fs/efs/dir.c +++ b/fs/efs/dir.c @@ -12,7 +12,7 @@ static int efs_readdir(struct file *, struct dir_context = *); =20 const struct file_operations efs_dir_operations =3D { .llseek =3D generic_file_llseek, - .read =3D generic_read_dir, + .read_iter =3D generic_read_dir, .iterate_shared =3D efs_readdir, }; =20 diff --git a/fs/erofs/dir.c b/fs/erofs/dir.c index b80abec0531a..0241036883e2 100644 --- a/fs/erofs/dir.c +++ b/fs/erofs/dir.c @@ -106,6 +106,6 @@ static int erofs_readdir(struct file *f, struct dir_con= text *ctx) =20 const struct file_operations erofs_dir_fops =3D { .llseek =3D generic_file_llseek, - .read =3D generic_read_dir, + .read_iter =3D generic_read_dir, .iterate_shared =3D erofs_readdir, }; diff --git a/fs/exfat/dir.c b/fs/exfat/dir.c index 077944d3c2c0..90482fcca07a 100644 --- a/fs/exfat/dir.c +++ b/fs/exfat/dir.c @@ -309,7 +309,7 @@ static int exfat_iterate(struct file *file, struct dir_= context *ctx) WRAP_DIR_ITER(exfat_iterate) // FIXME! const struct file_operations exfat_dir_operations =3D { .llseek =3D generic_file_llseek, - .read =3D generic_read_dir, + .read_iter =3D generic_read_dir, .iterate_shared =3D shared_exfat_iterate, .unlocked_ioctl =3D exfat_ioctl, #ifdef CONFIG_COMPAT diff --git a/fs/ext2/dir.c b/fs/ext2/dir.c index 4fb155b5a958..93fa6c54286d 100644 --- a/fs/ext2/dir.c +++ b/fs/ext2/dir.c @@ -706,7 +706,7 @@ int ext2_empty_dir(struct inode *inode) =20 const struct file_operations ext2_dir_operations =3D { .llseek =3D generic_file_llseek, - .read =3D generic_read_dir, + .read_iter =3D generic_read_dir, .iterate_shared =3D ext2_readdir, .unlocked_ioctl =3D ext2_ioctl, #ifdef CONFIG_COMPAT diff --git a/fs/ext4/dir.c b/fs/ext4/dir.c index 3985f8c33f95..955679a8f6b3 100644 --- a/fs/ext4/dir.c +++ b/fs/ext4/dir.c @@ -666,7 +666,7 @@ int ext4_check_all_de(struct inode *dir, struct buffer_= head *bh, void *buf, =20 const struct file_operations ext4_dir_operations =3D { .llseek =3D ext4_dir_llseek, - .read =3D generic_read_dir, + .read_iter =3D generic_read_dir, .iterate_shared =3D ext4_readdir, .unlocked_ioctl =3D ext4_ioctl, #ifdef CONFIG_COMPAT diff --git a/fs/f2fs/dir.c b/fs/f2fs/dir.c index 02c9355176d3..1338883797bd 100644 --- a/fs/f2fs/dir.c +++ b/fs/f2fs/dir.c @@ -1133,7 +1133,7 @@ static int f2fs_readdir(struct file *file, struct dir= _context *ctx) =20 const struct file_operations f2fs_dir_operations =3D { .llseek =3D generic_file_llseek, - .read =3D generic_read_dir, + .read_iter =3D generic_read_dir, .iterate_shared =3D f2fs_readdir, .fsync =3D f2fs_sync_file, .unlocked_ioctl =3D f2fs_ioctl, diff --git a/fs/fat/dir.c b/fs/fat/dir.c index 00235b8a1823..79b569cf2ea3 100644 --- a/fs/fat/dir.c +++ b/fs/fat/dir.c @@ -857,7 +857,7 @@ static long fat_compat_dir_ioctl(struct file *filp, uns= igned cmd, =20 const struct file_operations fat_dir_operations =3D { .llseek =3D generic_file_llseek, - .read =3D generic_read_dir, + .read_iter =3D generic_read_dir, .iterate_shared =3D fat_readdir, .unlocked_ioctl =3D fat_dir_ioctl, #ifdef CONFIG_COMPAT diff --git a/fs/freevxfs/vxfs_lookup.c b/fs/freevxfs/vxfs_lookup.c index 1b0bca8b4cc6..cf4dd54adc9c 100644 --- a/fs/freevxfs/vxfs_lookup.c +++ b/fs/freevxfs/vxfs_lookup.c @@ -34,7 +34,7 @@ const struct inode_operations vxfs_dir_inode_ops =3D { =20 const struct file_operations vxfs_dir_operations =3D { .llseek =3D generic_file_llseek, - .read =3D generic_read_dir, + .read_iter =3D generic_read_dir, .iterate_shared =3D vxfs_readdir, }; =20 diff --git a/fs/fuse/dir.c b/fs/fuse/dir.c index 4a6df591add6..b59420d3284b 100644 --- a/fs/fuse/dir.c +++ b/fs/fuse/dir.c @@ -2149,7 +2149,7 @@ static const struct inode_operations fuse_dir_inode_o= perations =3D { =20 static const struct file_operations fuse_dir_operations =3D { .llseek =3D generic_file_llseek, - .read =3D generic_read_dir, + .read_iter =3D generic_read_dir, .iterate_shared =3D fuse_readdir, .open =3D fuse_dir_open, .release =3D fuse_dir_release, diff --git a/fs/hfs/dir.c b/fs/hfs/dir.c index b75c26045df4..cb20b9419a1b 100644 --- a/fs/hfs/dir.c +++ b/fs/hfs/dir.c @@ -307,7 +307,7 @@ static int hfs_rename(struct mnt_idmap *idmap, struct i= node *old_dir, } =20 const struct file_operations hfs_dir_operations =3D { - .read =3D generic_read_dir, + .read_iter =3D generic_read_dir, .iterate_shared =3D hfs_readdir, .llseek =3D generic_file_llseek, .release =3D hfs_dir_release, diff --git a/fs/hfsplus/dir.c b/fs/hfsplus/dir.c index f5c4b3e31a1c..6910ed8a0f54 100644 --- a/fs/hfsplus/dir.c +++ b/fs/hfsplus/dir.c @@ -575,7 +575,7 @@ const struct inode_operations hfsplus_dir_inode_operati= ons =3D { =20 const struct file_operations hfsplus_dir_operations =3D { .fsync =3D hfsplus_file_fsync, - .read =3D generic_read_dir, + .read_iter =3D generic_read_dir, .iterate_shared =3D hfsplus_readdir, .unlocked_ioctl =3D hfsplus_ioctl, .llseek =3D generic_file_llseek, diff --git a/fs/hostfs/hostfs_kern.c b/fs/hostfs/hostfs_kern.c index a73d27c4dd58..4f3a7d9d8949 100644 --- a/fs/hostfs/hostfs_kern.c +++ b/fs/hostfs/hostfs_kern.c @@ -390,7 +390,7 @@ static const struct file_operations hostfs_file_fops = =3D { static const struct file_operations hostfs_dir_fops =3D { .llseek =3D generic_file_llseek, .iterate_shared =3D hostfs_readdir, - .read =3D generic_read_dir, + .read_iter =3D generic_read_dir, .open =3D hostfs_open, .fsync =3D hostfs_fsync, }; diff --git a/fs/hpfs/dir.c b/fs/hpfs/dir.c index 49dd585c2b17..2672f123cbda 100644 --- a/fs/hpfs/dir.c +++ b/fs/hpfs/dir.c @@ -322,7 +322,7 @@ struct dentry *hpfs_lookup(struct inode *dir, struct de= ntry *dentry, unsigned in const struct file_operations hpfs_dir_ops =3D { .llseek =3D hpfs_dir_lseek, - .read =3D generic_read_dir, + .read_iter =3D generic_read_dir, .iterate_shared =3D hpfs_readdir, .release =3D hpfs_dir_release, .fsync =3D hpfs_file_fsync, diff --git a/fs/isofs/dir.c b/fs/isofs/dir.c index eb2f8273e6f1..278f5111feb3 100644 --- a/fs/isofs/dir.c +++ b/fs/isofs/dir.c @@ -268,7 +268,7 @@ static int isofs_readdir(struct file *file, struct dir_= context *ctx) const struct file_operations isofs_dir_operations =3D { .llseek =3D generic_file_llseek, - .read =3D generic_read_dir, + .read_iter =3D generic_read_dir, .iterate_shared =3D isofs_readdir, }; =20 diff --git a/fs/jffs2/dir.c b/fs/jffs2/dir.c index 2b2938970da3..6b6a8228d75c 100644 --- a/fs/jffs2/dir.c +++ b/fs/jffs2/dir.c @@ -43,7 +43,7 @@ static int jffs2_rename (struct mnt_idmap *, struct inode= *, =20 const struct file_operations jffs2_dir_operations =3D { - .read =3D generic_read_dir, + .read_iter =3D generic_read_dir, .iterate_shared=3Djffs2_readdir, .unlocked_ioctl=3Djffs2_ioctl, .fsync =3D jffs2_fsync, diff --git a/fs/jfs/namei.c b/fs/jfs/namei.c index d68a4e6ac345..e6d27d7b9636 100644 --- a/fs/jfs/namei.c +++ b/fs/jfs/namei.c @@ -1539,7 +1539,7 @@ const struct inode_operations jfs_dir_inode_operation= s =3D { =20 WRAP_DIR_ITER(jfs_readdir) // FIXME! const struct file_operations jfs_dir_operations =3D { - .read =3D generic_read_dir, + .read_iter =3D generic_read_dir, .iterate_shared =3D shared_jfs_readdir, .fsync =3D jfs_fsync, .unlocked_ioctl =3D jfs_ioctl, diff --git a/fs/kernfs/dir.c b/fs/kernfs/dir.c index 458519e416fe..12f57e4d8664 100644 --- a/fs/kernfs/dir.c +++ b/fs/kernfs/dir.c @@ -1880,7 +1880,7 @@ static int kernfs_fop_readdir(struct file *file, stru= ct dir_context *ctx) } =20 const struct file_operations kernfs_dir_fops =3D { - .read =3D generic_read_dir, + .read_iter =3D generic_read_dir, .iterate_shared =3D kernfs_fop_readdir, .release =3D kernfs_dir_fop_release, .llseek =3D generic_file_llseek, diff --git a/fs/libfs.c b/fs/libfs.c index 90f79113e48b..3280d02fc385 100644 --- a/fs/libfs.c +++ b/fs/libfs.c @@ -220,7 +220,7 @@ int dcache_readdir(struct file *file, struct dir_contex= t *ctx) } EXPORT_SYMBOL(dcache_readdir); =20 -ssize_t generic_read_dir(struct file *filp, char __user *buf, size_t siz, = loff_t *ppos) +ssize_t generic_read_dir(struct kiocb *iocb, struct iov_iter *to) { return -EISDIR; } @@ -230,7 +230,7 @@ const struct file_operations simple_dir_operations =3D { .open =3D dcache_dir_open, .release =3D dcache_dir_close, .llseek =3D dcache_dir_lseek, - .read =3D generic_read_dir, + .read_iter =3D generic_read_dir, .iterate_shared =3D dcache_readdir, .fsync =3D noop_fsync, }; @@ -527,7 +527,7 @@ static int offset_readdir(struct file *file, struct dir= _context *ctx) const struct file_operations simple_offset_dir_operations =3D { .llseek =3D offset_dir_llseek, .iterate_shared =3D offset_readdir, - .read =3D generic_read_dir, + .read_iter =3D generic_read_dir, .fsync =3D noop_fsync, }; =20 @@ -1856,7 +1856,7 @@ static int empty_dir_readdir(struct file *file, struc= t dir_context *ctx) =20 static const struct file_operations empty_dir_operations =3D { .llseek =3D empty_dir_llseek, - .read =3D generic_read_dir, + .read_iter =3D generic_read_dir, .iterate_shared =3D empty_dir_readdir, .fsync =3D noop_fsync, }; diff --git a/fs/minix/dir.c b/fs/minix/dir.c index a224cf222570..4cd7f7a0b412 100644 --- a/fs/minix/dir.c +++ b/fs/minix/dir.c @@ -21,7 +21,7 @@ static int minix_readdir(struct file *, struct dir_contex= t *); =20 const struct file_operations minix_dir_operations =3D { .llseek =3D generic_file_llseek, - .read =3D generic_read_dir, + .read_iter =3D generic_read_dir, .iterate_shared =3D minix_readdir, .fsync =3D generic_file_fsync, }; diff --git a/fs/nfs/dir.c b/fs/nfs/dir.c index ac505671efbd..bb746c6fa8eb 100644 --- a/fs/nfs/dir.c +++ b/fs/nfs/dir.c @@ -59,7 +59,7 @@ static void nfs_readdir_clear_array(struct folio *); =20 const struct file_operations nfs_dir_operations =3D { .llseek =3D nfs_llseek_dir, - .read =3D generic_read_dir, + .read_iter =3D generic_read_dir, .iterate_shared =3D nfs_readdir, .open =3D nfs_opendir, .release =3D nfs_closedir, diff --git a/fs/nilfs2/dir.c b/fs/nilfs2/dir.c index bc846b904b68..9aea991801af 100644 --- a/fs/nilfs2/dir.c +++ b/fs/nilfs2/dir.c @@ -646,7 +646,7 @@ int nilfs_empty_dir(struct inode *inode) =20 const struct file_operations nilfs_dir_operations =3D { .llseek =3D generic_file_llseek, - .read =3D generic_read_dir, + .read_iter =3D generic_read_dir, .iterate_shared =3D nilfs_readdir, .unlocked_ioctl =3D nilfs_ioctl, #ifdef CONFIG_COMPAT diff --git a/fs/ntfs3/dir.c b/fs/ntfs3/dir.c index 5cf3d9decf64..c7913821c238 100644 --- a/fs/ntfs3/dir.c +++ b/fs/ntfs3/dir.c @@ -607,7 +607,7 @@ bool dir_is_empty(struct inode *dir) // clang-format off const struct file_operations ntfs_dir_operations =3D { .llseek =3D generic_file_llseek, - .read =3D generic_read_dir, + .read_iter =3D generic_read_dir, .iterate_shared =3D ntfs_readdir, .fsync =3D generic_file_fsync, .open =3D ntfs_file_open, diff --git a/fs/ocfs2/file.c b/fs/ocfs2/file.c index 0da8e7bd3261..dc55dc87af7a 100644 --- a/fs/ocfs2/file.c +++ b/fs/ocfs2/file.c @@ -2796,7 +2796,7 @@ const struct file_operations ocfs2_fops =3D { WRAP_DIR_ITER(ocfs2_readdir) // FIXME! const struct file_operations ocfs2_dops =3D { .llseek =3D generic_file_llseek, - .read =3D generic_read_dir, + .read_iter =3D generic_read_dir, .iterate_shared =3D shared_ocfs2_readdir, .fsync =3D ocfs2_sync_file, .release =3D ocfs2_dir_release, @@ -2842,7 +2842,7 @@ const struct file_operations ocfs2_fops_no_plocks =3D= { =20 const struct file_operations ocfs2_dops_no_plocks =3D { .llseek =3D generic_file_llseek, - .read =3D generic_read_dir, + .read_iter =3D generic_read_dir, .iterate_shared =3D shared_ocfs2_readdir, .fsync =3D ocfs2_sync_file, .release =3D ocfs2_dir_release, diff --git a/fs/omfs/dir.c b/fs/omfs/dir.c index 6bda275826d6..9cfc68191917 100644 --- a/fs/omfs/dir.c +++ b/fs/omfs/dir.c @@ -455,7 +455,7 @@ const struct inode_operations omfs_dir_inops =3D { }; =20 const struct file_operations omfs_dir_operations =3D { - .read =3D generic_read_dir, + .read_iter =3D generic_read_dir, .iterate_shared =3D omfs_readdir, .llseek =3D generic_file_llseek, }; diff --git a/fs/openpromfs/inode.c b/fs/openpromfs/inode.c index 4a0779e3ef79..e25eceac86f4 100644 --- a/fs/openpromfs/inode.c +++ b/fs/openpromfs/inode.c @@ -167,7 +167,7 @@ static const struct file_operations openpromfs_prop_ops= =3D { static int openpromfs_readdir(struct file *, struct dir_context *); =20 static const struct file_operations openprom_operations =3D { - .read =3D generic_read_dir, + .read_iter =3D generic_read_dir, .iterate_shared =3D openpromfs_readdir, .llseek =3D generic_file_llseek, }; diff --git a/fs/orangefs/dir.c b/fs/orangefs/dir.c index 6d1fbeca9d81..e28d41f0d1e2 100644 --- a/fs/orangefs/dir.c +++ b/fs/orangefs/dir.c @@ -389,7 +389,7 @@ static int orangefs_dir_release(struct inode *inode, st= ruct file *file) =20 const struct file_operations orangefs_dir_operations =3D { .llseek =3D orangefs_dir_llseek, - .read =3D generic_read_dir, + .read_iter =3D generic_read_dir, .iterate_shared =3D orangefs_dir_iterate, .open =3D orangefs_dir_open, .release =3D orangefs_dir_release diff --git a/fs/overlayfs/readdir.c b/fs/overlayfs/readdir.c index 0ca8af060b0c..cfd6995e67bd 100644 --- a/fs/overlayfs/readdir.c +++ b/fs/overlayfs/readdir.c @@ -970,7 +970,7 @@ static int ovl_dir_open(struct inode *inode, struct fil= e *file) =20 WRAP_DIR_ITER(ovl_iterate) // FIXME! const struct file_operations ovl_dir_operations =3D { - .read =3D generic_read_dir, + .read_iter =3D generic_read_dir, .open =3D ovl_dir_open, .iterate_shared =3D shared_ovl_iterate, .llseek =3D ovl_dir_llseek, diff --git a/fs/proc/base.c b/fs/proc/base.c index 18550c071d71..4c6a7aafe66a 100644 --- a/fs/proc/base.c +++ b/fs/proc/base.c @@ -2430,7 +2430,7 @@ proc_map_files_readdir(struct file *file, struct dir_= context *ctx) } =20 static const struct file_operations proc_map_files_operations =3D { - .read =3D generic_read_dir, + .read_iter =3D generic_read_dir, .iterate_shared =3D proc_map_files_readdir, .llseek =3D generic_file_llseek, }; @@ -2811,7 +2811,7 @@ static int proc_##LSM##_attr_dir_iterate(struct file = *filp, \ } \ \ static const struct file_operations proc_##LSM##_attr_dir_ops =3D { \ - .read =3D generic_read_dir, \ + .read_iter =3D generic_read_dir, \ .iterate_shared =3D proc_##LSM##_attr_dir_iterate, \ .llseek =3D default_llseek, \ }; \ @@ -2870,7 +2870,7 @@ static int proc_attr_dir_readdir(struct file *file, s= truct dir_context *ctx) } =20 static const struct file_operations proc_attr_dir_operations =3D { - .read =3D generic_read_dir, + .read_iter =3D generic_read_dir, .iterate_shared =3D proc_attr_dir_readdir, .llseek =3D generic_file_llseek, }; @@ -3368,7 +3368,7 @@ static int proc_tgid_base_readdir(struct file *file, = struct dir_context *ctx) } =20 static const struct file_operations proc_tgid_base_operations =3D { - .read =3D generic_read_dir, + .read_iter =3D generic_read_dir, .iterate_shared =3D proc_tgid_base_readdir, .llseek =3D generic_file_llseek, }; @@ -3714,7 +3714,7 @@ static struct dentry *proc_tid_base_lookup(struct ino= de *dir, struct dentry *den } =20 static const struct file_operations proc_tid_base_operations =3D { - .read =3D generic_read_dir, + .read_iter =3D generic_read_dir, .iterate_shared =3D proc_tid_base_readdir, .llseek =3D generic_file_llseek, }; @@ -3923,7 +3923,7 @@ static const struct inode_operations proc_task_inode_= operations =3D { }; =20 static const struct file_operations proc_task_operations =3D { - .read =3D generic_read_dir, + .read_iter =3D generic_read_dir, .iterate_shared =3D proc_task_readdir, .llseek =3D generic_file_llseek, }; diff --git a/fs/proc/fd.c b/fs/proc/fd.c index 6e72e5ad42bc..63a3aebdf223 100644 --- a/fs/proc/fd.c +++ b/fs/proc/fd.c @@ -314,7 +314,7 @@ static int proc_readfd(struct file *file, struct dir_co= ntext *ctx) } =20 const struct file_operations proc_fd_operations =3D { - .read =3D generic_read_dir, + .read_iter =3D generic_read_dir, .iterate_shared =3D proc_readfd, .llseek =3D generic_file_llseek, }; @@ -424,7 +424,7 @@ const struct inode_operations proc_fdinfo_inode_operati= ons =3D { =20 const struct file_operations proc_fdinfo_operations =3D { .open =3D proc_open_fdinfo, - .read =3D generic_read_dir, + .read_iter =3D generic_read_dir, .iterate_shared =3D proc_readfdinfo, .llseek =3D generic_file_llseek, }; diff --git a/fs/proc/generic.c b/fs/proc/generic.c index 775ce0bcf08c..ec5d7ebc8576 100644 --- a/fs/proc/generic.c +++ b/fs/proc/generic.c @@ -339,7 +339,7 @@ int proc_readdir(struct file *file, struct dir_context = *ctx) */ static const struct file_operations proc_dir_operations =3D { .llseek =3D generic_file_llseek, - .read =3D generic_read_dir, + .read_iter =3D generic_read_dir, .iterate_shared =3D proc_readdir, }; =20 diff --git a/fs/proc/namespaces.c b/fs/proc/namespaces.c index 8e159fc78c0a..fdd3452ad990 100644 --- a/fs/proc/namespaces.c +++ b/fs/proc/namespaces.c @@ -143,7 +143,7 @@ static int proc_ns_dir_readdir(struct file *file, struc= t dir_context *ctx) } =20 const struct file_operations proc_ns_dir_operations =3D { - .read =3D generic_read_dir, + .read_iter =3D generic_read_dir, .iterate_shared =3D proc_ns_dir_readdir, .llseek =3D generic_file_llseek, }; diff --git a/fs/proc/proc_net.c b/fs/proc/proc_net.c index 2ba31b6d68c0..0779fc13ae17 100644 --- a/fs/proc/proc_net.c +++ b/fs/proc/proc_net.c @@ -340,7 +340,7 @@ static int proc_tgid_net_readdir(struct file *file, str= uct dir_context *ctx) =20 const struct file_operations proc_net_operations =3D { .llseek =3D generic_file_llseek, - .read =3D generic_read_dir, + .read_iter =3D generic_read_dir, .iterate_shared =3D proc_tgid_net_readdir, }; =20 diff --git a/fs/proc/proc_sysctl.c b/fs/proc/proc_sysctl.c index 37cde0efee57..72939941686b 100644 --- a/fs/proc/proc_sysctl.c +++ b/fs/proc/proc_sysctl.c @@ -860,7 +860,7 @@ static const struct file_operations proc_sys_file_opera= tions =3D { }; =20 static const struct file_operations proc_sys_dir_file_operations =3D { - .read =3D generic_read_dir, + .read_iter =3D generic_read_dir, .iterate_shared =3D proc_sys_readdir, .llseek =3D generic_file_llseek, }; diff --git a/fs/proc/root.c b/fs/proc/root.c index 06a297a27ba3..579a204fec8b 100644 --- a/fs/proc/root.c +++ b/fs/proc/root.c @@ -346,7 +346,7 @@ static int proc_root_readdir(struct file *file, struct = dir_context *ctx) * directory handling functions for that.. */ static const struct file_operations proc_root_operations =3D { - .read =3D generic_read_dir, + .read_iter =3D generic_read_dir, .iterate_shared =3D proc_root_readdir, .llseek =3D generic_file_llseek, }; diff --git a/fs/qnx4/dir.c b/fs/qnx4/dir.c index 42a529e26bd6..55ff69c5a6bb 100644 --- a/fs/qnx4/dir.c +++ b/fs/qnx4/dir.c @@ -68,7 +68,7 @@ static int qnx4_readdir(struct file *file, struct dir_con= text *ctx) const struct file_operations qnx4_dir_operations =3D { .llseek =3D generic_file_llseek, - .read =3D generic_read_dir, + .read_iter =3D generic_read_dir, .iterate_shared =3D qnx4_readdir, .fsync =3D generic_file_fsync, }; diff --git a/fs/qnx6/dir.c b/fs/qnx6/dir.c index c1cfb8a19e9d..e678486d737a 100644 --- a/fs/qnx6/dir.c +++ b/fs/qnx6/dir.c @@ -272,7 +272,7 @@ unsigned qnx6_find_entry(int len, struct inode *dir, co= nst char *name, =20 const struct file_operations qnx6_dir_operations =3D { .llseek =3D generic_file_llseek, - .read =3D generic_read_dir, + .read_iter =3D generic_read_dir, .iterate_shared =3D qnx6_readdir, .fsync =3D generic_file_fsync, }; diff --git a/fs/reiserfs/dir.c b/fs/reiserfs/dir.c index 79ee2b436685..c1a01dd186b3 100644 --- a/fs/reiserfs/dir.c +++ b/fs/reiserfs/dir.c @@ -19,7 +19,7 @@ static int reiserfs_dir_fsync(struct file *filp, loff_t s= tart, loff_t end, =20 const struct file_operations reiserfs_dir_operations =3D { .llseek =3D generic_file_llseek, - .read =3D generic_read_dir, + .read_iter =3D generic_read_dir, .iterate_shared =3D reiserfs_readdir, .fsync =3D reiserfs_dir_fsync, .unlocked_ioctl =3D reiserfs_ioctl, diff --git a/fs/romfs/super.c b/fs/romfs/super.c index 2cbb92462074..48780a2dd12c 100644 --- a/fs/romfs/super.c +++ b/fs/romfs/super.c @@ -263,7 +263,7 @@ static struct dentry *romfs_lookup(struct inode *dir, s= truct dentry *dentry, } =20 static const struct file_operations romfs_dir_operations =3D { - .read =3D generic_read_dir, + .read_iter =3D generic_read_dir, .iterate_shared =3D romfs_readdir, .llseek =3D generic_file_llseek, }; diff --git a/fs/smb/client/cifsfs.c b/fs/smb/client/cifsfs.c index d41eedbff674..c6515979b8f2 100644 --- a/fs/smb/client/cifsfs.c +++ b/fs/smb/client/cifsfs.c @@ -1640,7 +1640,7 @@ const struct file_operations cifs_file_direct_nobrl_o= ps =3D { const struct file_operations cifs_dir_ops =3D { .iterate_shared =3D cifs_readdir, .release =3D cifs_closedir, - .read =3D generic_read_dir, + .read_iter =3D generic_read_dir, .unlocked_ioctl =3D cifs_ioctl, .copy_file_range =3D cifs_copy_file_range, .remap_file_range =3D cifs_remap_file_range, diff --git a/fs/squashfs/dir.c b/fs/squashfs/dir.c index a2ade63eccdf..c2d7d29a2a0d 100644 --- a/fs/squashfs/dir.c +++ b/fs/squashfs/dir.c @@ -217,7 +217,7 @@ static int squashfs_readdir(struct file *file, struct d= ir_context *ctx) =20 =20 const struct file_operations squashfs_dir_ops =3D { - .read =3D generic_read_dir, + .read_iter =3D generic_read_dir, .iterate_shared =3D squashfs_readdir, .llseek =3D generic_file_llseek, }; diff --git a/fs/sysv/dir.c b/fs/sysv/dir.c index 2e126d72d619..7a68d075e95d 100644 --- a/fs/sysv/dir.c +++ b/fs/sysv/dir.c @@ -23,7 +23,7 @@ static int sysv_readdir(struct file *, struct dir_context= *); =20 const struct file_operations sysv_dir_operations =3D { .llseek =3D generic_file_llseek, - .read =3D generic_read_dir, + .read_iter =3D generic_read_dir, .iterate_shared =3D sysv_readdir, .fsync =3D generic_file_fsync, }; diff --git a/fs/tracefs/event_inode.c b/fs/tracefs/event_inode.c index dc067eeb6387..4dfec30b2228 100644 --- a/fs/tracefs/event_inode.c +++ b/fs/tracefs/event_inode.c @@ -277,7 +277,7 @@ static const struct inode_operations eventfs_file_inode= _operations =3D { }; =20 static const struct file_operations eventfs_file_operations =3D { - .read =3D generic_read_dir, + .read_iter =3D generic_read_dir, .iterate_shared =3D eventfs_iterate, .llseek =3D generic_file_llseek, }; diff --git a/fs/ubifs/dir.c b/fs/ubifs/dir.c index eac0fef801f1..3f70d4edd0ee 100644 --- a/fs/ubifs/dir.c +++ b/fs/ubifs/dir.c @@ -1719,7 +1719,7 @@ const struct inode_operations ubifs_dir_inode_operati= ons =3D { const struct file_operations ubifs_dir_operations =3D { .llseek =3D generic_file_llseek, .release =3D ubifs_dir_release, - .read =3D generic_read_dir, + .read_iter =3D generic_read_dir, .iterate_shared =3D ubifs_readdir, .fsync =3D ubifs_fsync, .unlocked_ioctl =3D ubifs_ioctl, diff --git a/fs/udf/dir.c b/fs/udf/dir.c index f94f45fe2c91..309dbe1a62e5 100644 --- a/fs/udf/dir.c +++ b/fs/udf/dir.c @@ -131,7 +131,7 @@ static int udf_readdir(struct file *file, struct dir_co= ntext *ctx) /* readdir and lookup functions */ const struct file_operations udf_dir_operations =3D { .llseek =3D generic_file_llseek, - .read =3D generic_read_dir, + .read_iter =3D generic_read_dir, .iterate_shared =3D udf_readdir, .unlocked_ioctl =3D udf_ioctl, .fsync =3D generic_file_fsync, diff --git a/fs/ufs/dir.c b/fs/ufs/dir.c index 27c85d92d1dc..8656f264b3be 100644 --- a/fs/ufs/dir.c +++ b/fs/ufs/dir.c @@ -648,7 +648,7 @@ int ufs_empty_dir(struct inode * inode) } =20 const struct file_operations ufs_dir_operations =3D { - .read =3D generic_read_dir, + .read_iter =3D generic_read_dir, .iterate_shared =3D ufs_readdir, .fsync =3D generic_file_fsync, .llseek =3D generic_file_llseek, diff --git a/fs/vboxsf/dir.c b/fs/vboxsf/dir.c index 5f1a14d5b927..917cfbcc75f2 100644 --- a/fs/vboxsf/dir.c +++ b/fs/vboxsf/dir.c @@ -184,7 +184,7 @@ const struct file_operations vboxsf_dir_fops =3D { .open =3D vboxsf_dir_open, .iterate_shared =3D shared_vboxsf_dir_iterate, .release =3D vboxsf_dir_release, - .read =3D generic_read_dir, + .read_iter =3D generic_read_dir, .llseek =3D generic_file_llseek, }; =20 diff --git a/fs/xfs/xfs_file.c b/fs/xfs/xfs_file.c index 632653e00906..24ce652bd1f8 100644 --- a/fs/xfs/xfs_file.c +++ b/fs/xfs/xfs_file.c @@ -1502,7 +1502,7 @@ const struct file_operations xfs_file_operations =3D { =20 const struct file_operations xfs_dir_file_operations =3D { .open =3D xfs_dir_open, - .read =3D generic_read_dir, + .read_iter =3D generic_read_dir, .iterate_shared =3D xfs_file_readdir, .llseek =3D generic_file_llseek, .unlocked_ioctl =3D xfs_file_ioctl, diff --git a/fs/zonefs/super.c b/fs/zonefs/super.c index c6a124e8d565..d0460b2bf4f5 100644 --- a/fs/zonefs/super.c +++ b/fs/zonefs/super.c @@ -838,7 +838,7 @@ const struct inode_operations zonefs_dir_inode_operatio= ns =3D { =20 const struct file_operations zonefs_dir_operations =3D { .llseek =3D generic_file_llseek, - .read =3D generic_read_dir, + .read_iter =3D generic_read_dir, .iterate_shared =3D zonefs_readdir, }; =20 diff --git a/include/linux/fs.h b/include/linux/fs.h index d15a79020efa..483c70d3941e 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -3337,7 +3337,7 @@ extern int simple_nosetlease(struct file *, int, stru= ct file_lease **, void **); extern const struct dentry_operations simple_dentry_operations; =20 extern struct dentry *simple_lookup(struct inode *, struct dentry *, unsig= ned int flags); -extern ssize_t generic_read_dir(struct file *, char __user *, size_t, loff= _t *); +extern ssize_t generic_read_dir(struct kiocb *, struct iov_iter *); extern const struct file_operations simple_dir_operations; extern const struct inode_operations simple_dir_inode_operations; extern void make_empty_dir_inode(struct inode *inode); --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f47.google.com (mail-io1-f47.google.com [209.85.166.47]) (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 1DFA556B9D for ; Thu, 11 Apr 2024 15:32:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849561; cv=none; b=eX9yektgZhzbXksbL6TRMxxtFHV+FoqTMBwc8z4O+5TvDd9u/pd78E6WEqQyPCazcrdY8bDYQU/jxfQWL8fA4Iaby1oSec1nfhU6WU0OIWiin8fVJnVPOv72Zx4OFX/ftBLiO7DL0w0rgWowzm+1P9vLt7Gxy/pYode3gPcgay4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849561; c=relaxed/simple; bh=1WKJzdkHI3L2R8jL5pK/9HrXe2zJtfSVj6YY4TNydrw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=M4igiMIIFHFyzSbTD2mbw+bqmgHQz1aoewq2+QcLTO9fKh7CtmncyfTmXq92v/AhiWn41l4IYmsFptO3Vv9Fhh+8Nrx/C9Hlh24aS4BQ1lpSNkI4hyz0mDYujgwxKiilQPq4YfhhMkQ3kmwqifcTDRCyvfPQULrpFaIv/ogL+GQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=KL2rj3+c; arc=none smtp.client-ip=209.85.166.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="KL2rj3+c" Received: by mail-io1-f47.google.com with SMTP id ca18e2360f4ac-7cc0e831e11so170430439f.1 for ; Thu, 11 Apr 2024 08:32:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849559; x=1713454359; 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=wByA9TDnjq1qFFXO1qsOwLDAjmIWq2kN49uCxHbf/dI=; b=KL2rj3+c+jWmuXY5iHCvPLuwzkXOkIKuu1amdg7qnzxddadG5uS+fdF+ssI8i6st0Z y/eKIlI6pEWNX14RIc2bdnR2owCIXeNoMxvatXcwEwboJqaEyApKqxZVBCjFxiejRIG3 KERcYV8mnD7/D9BgBVdXosJDvxwtA//wbwh/P/mLkAOhRqyiDwZBQ+V90TeRuMRJDzwz cnoyytRGmuJDhlbK/qu882nV6644z3xXWza/LuXGwYaO7DND+gcrbOV7A1tzAOZQuof+ rJFrroJJAibdV+I4WIvqnSYDnPFyaAk/VFdhzTCQhlziNcDvBerPhnLtcVNOFsynuDhw Ocng== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849559; x=1713454359; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=wByA9TDnjq1qFFXO1qsOwLDAjmIWq2kN49uCxHbf/dI=; b=A6BYd/U6+SnD0Mr55N6p4kz8/9Za08/PsFoXBcKH0xMeUhqiKA+VVco4WNpIRLD8HF NJxc4ABOcvOcoxRAk9G1pYvy7jK3ENXKdLUVxJOIU333zWAABOUel1IFKJt3x1r8kF26 k8WDkwvmHMExFDsSJvdZRV9tcFXvKNbMvwLDuM+nfhSvT0B4juYaIMjwxZHBrZ17FdBa UGypB6PFT+UODfmZjakFSIO2IajXlPr6+I9e8npBqdZTla96I6a7xWS5d9LzUjTpctoA Pd/br5VJwW6fmv7VTVzgMF7nNTSmx+YJ+aeW2X78ftsIoGBNIm10KzRAkmTgOtCnIEyt AfjQ== X-Gm-Message-State: AOJu0YzLFpTNrpz6xu4A3WYdE3GckgBmalSX7glcaOP15iSiH6BT8vLL oVveqtx8CQs5NmMatDvbqhGEae4hal9JxivjwMIqYlbPTOG2/EsZ/q1tS/oitDG9eQ2y2k3V8K9 9 X-Google-Smtp-Source: AGHT+IGpgnqH4wZorIUDja2xCsVL7jr+LOzIfF3sCexHZ/xFzzWZfhbNelTZWLfLjxmlDEDFWHHbcg== X-Received: by 2002:a6b:5b10:0:b0:7d0:bd2b:43ba with SMTP id v16-20020a6b5b10000000b007d0bd2b43bamr212433ioh.0.1712849558820; Thu, 11 Apr 2024 08:32:38 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.32.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:32:38 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 041/437] fs: convert any user of fops->read() for seq_read to read_iter Date: Thu, 11 Apr 2024 09:13:01 -0600 Message-ID: <20240411153126.16201-42-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" There's a seq_read_iter that can be used, do that. Signed-off-by: Jens Axboe --- fs/dlm/debug_fs.c | 10 +++++----- fs/gfs2/glock.c | 6 +++--- fs/ocfs2/cluster/netdebug.c | 6 +++--- fs/ocfs2/dlm/dlmdebug.c | 2 +- fs/ocfs2/dlmglue.c | 2 +- fs/orangefs/orangefs-debugfs.c | 2 +- fs/proc/array.c | 2 +- 7 files changed, 15 insertions(+), 15 deletions(-) diff --git a/fs/dlm/debug_fs.c b/fs/dlm/debug_fs.c index 4fa11d9ddbb6..1236e8d13453 100644 --- a/fs/dlm/debug_fs.c +++ b/fs/dlm/debug_fs.c @@ -774,7 +774,7 @@ static int table_open5(struct inode *inode, struct file= *file) static const struct file_operations format1_fops =3D { .owner =3D THIS_MODULE, .open =3D table_open1, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D seq_release }; @@ -782,7 +782,7 @@ static const struct file_operations format1_fops =3D { static const struct file_operations format2_fops =3D { .owner =3D THIS_MODULE, .open =3D table_open2, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .write =3D table_write2, .llseek =3D seq_lseek, .release =3D seq_release @@ -791,7 +791,7 @@ static const struct file_operations format2_fops =3D { static const struct file_operations format3_fops =3D { .owner =3D THIS_MODULE, .open =3D table_open3, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D seq_release }; @@ -799,7 +799,7 @@ static const struct file_operations format3_fops =3D { static const struct file_operations format4_fops =3D { .owner =3D THIS_MODULE, .open =3D table_open4, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D seq_release }; @@ -807,7 +807,7 @@ static const struct file_operations format4_fops =3D { static const struct file_operations format5_fops =3D { .owner =3D THIS_MODULE, .open =3D table_open5, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D seq_release }; diff --git a/fs/gfs2/glock.c b/fs/gfs2/glock.c index 34540f9d011c..c57d468dce21 100644 --- a/fs/gfs2/glock.c +++ b/fs/gfs2/glock.c @@ -2699,7 +2699,7 @@ static int gfs2_glstats_open(struct inode *inode, str= uct file *file) static const struct file_operations gfs2_glocks_fops =3D { .owner =3D THIS_MODULE, .open =3D gfs2_glocks_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D gfs2_glocks_release, }; @@ -2707,7 +2707,7 @@ static const struct file_operations gfs2_glocks_fops = =3D { static const struct file_operations gfs2_glstats_fops =3D { .owner =3D THIS_MODULE, .open =3D gfs2_glstats_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D gfs2_glocks_release, }; @@ -2876,7 +2876,7 @@ static int gfs2_glockfd_open(struct inode *inode, str= uct file *file) static const struct file_operations gfs2_glockfd_fops =3D { .owner =3D THIS_MODULE, .open =3D gfs2_glockfd_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D seq_release_private, }; diff --git a/fs/ocfs2/cluster/netdebug.c b/fs/ocfs2/cluster/netdebug.c index bc27301eab6d..fde10358c8ee 100644 --- a/fs/ocfs2/cluster/netdebug.c +++ b/fs/ocfs2/cluster/netdebug.c @@ -184,7 +184,7 @@ static int nst_fop_release(struct inode *inode, struct = file *file) =20 static const struct file_operations nst_seq_fops =3D { .open =3D nst_fop_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D nst_fop_release, }; @@ -416,7 +416,7 @@ static int stats_fop_open(struct inode *inode, struct f= ile *file) =20 static const struct file_operations stats_seq_fops =3D { .open =3D stats_fop_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D sc_fop_release, }; @@ -428,7 +428,7 @@ static int sc_fop_open(struct inode *inode, struct file= *file) =20 static const struct file_operations sc_seq_fops =3D { .open =3D sc_fop_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D sc_fop_release, }; diff --git a/fs/ocfs2/dlm/dlmdebug.c b/fs/ocfs2/dlm/dlmdebug.c index be5e9ed7da8d..cd4857d5a44a 100644 --- a/fs/ocfs2/dlm/dlmdebug.c +++ b/fs/ocfs2/dlm/dlmdebug.c @@ -651,7 +651,7 @@ static int debug_lockres_release(struct inode *inode, s= truct file *file) static const struct file_operations debug_lockres_fops =3D { .open =3D debug_lockres_open, .release =3D debug_lockres_release, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, }; /* end - debug lockres funcs */ diff --git a/fs/ocfs2/dlmglue.c b/fs/ocfs2/dlmglue.c index cb40cafbc062..673697bfae39 100644 --- a/fs/ocfs2/dlmglue.c +++ b/fs/ocfs2/dlmglue.c @@ -3299,7 +3299,7 @@ static int ocfs2_dlm_debug_open(struct inode *inode, = struct file *file) static const struct file_operations ocfs2_dlm_debug_fops =3D { .open =3D ocfs2_dlm_debug_open, .release =3D ocfs2_dlm_debug_release, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, }; =20 diff --git a/fs/orangefs/orangefs-debugfs.c b/fs/orangefs/orangefs-debugfs.c index 1b508f543384..2f1ed95ac8fb 100644 --- a/fs/orangefs/orangefs-debugfs.c +++ b/fs/orangefs/orangefs-debugfs.c @@ -116,7 +116,7 @@ static const struct seq_operations help_debug_ops =3D { static const struct file_operations debug_help_fops =3D { .owner =3D THIS_MODULE, .open =3D orangefs_debug_help_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .release =3D seq_release, .llseek =3D seq_lseek, }; diff --git a/fs/proc/array.c b/fs/proc/array.c index 34a47fb0c57f..756fc6accd26 100644 --- a/fs/proc/array.c +++ b/fs/proc/array.c @@ -815,7 +815,7 @@ static int children_seq_open(struct inode *inode, struc= t file *file) =20 const struct file_operations proc_tid_children_operations =3D { .open =3D children_seq_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D seq_release, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f41.google.com (mail-io1-f41.google.com [209.85.166.41]) (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 A08E25823F for ; Thu, 11 Apr 2024 15:32:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849565; cv=none; b=nAfKAaYq0rE966RmSIr/c+FCcVfdv0t99PbofzZIKQFdESfrTInl0eKs07/jzZtBfKWvYOlY42/EQ5aL1ZfRSBlVE+leMq4KkgXWAQ02d8oE5L2j3oFvd+Cxjyz+k5eWax8KpvaduTlANlnLpUYAc1NXgxNU97jSvgP6K3ANnrQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849565; c=relaxed/simple; bh=RdbtLfH4DeUMpRjCbRrhxuDYt7VaoNjaVp5cEA9JnGk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=HGjvkeMC12Y+WF2tLaGvvehKegpb62oWfoUomEQhywP4uO6Rw4XU18IGh7v5L9x1w0hN2AsHgqyOwkmlZIYr5CxMrAzEE1JsA2Elgs8dDvwYj6smnc59iSsk9Y3IfIpdMMBa6DCRTWfOoCfgGNbcryWGD7S6gU7FpkyoIi5TSG4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=OSR3VVAr; arc=none smtp.client-ip=209.85.166.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="OSR3VVAr" Received: by mail-io1-f41.google.com with SMTP id ca18e2360f4ac-7d6112ba6baso57955139f.1 for ; Thu, 11 Apr 2024 08:32:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849562; x=1713454362; 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=rMLMOZo3aCfjzVvHbnT0tkuBKVMN85MSasB72yxiozw=; b=OSR3VVAre10J/WJNsXCqDJ/mfGUObhIMDgYs7mUzN5o8rtyPdDhR67kKIt51XEIQpy 4y4tG6e2sw24AF2J2Bb91eZEv9mMTM8t85SVgkAy8vtD173/690maOfCbZKqyrpAEVCF wX9UlWCXyjK3Xl3p2dCzXwJv23z/q4RqNkEga/jGl5sI4n8uolgMR9NdpvVDxQ4WjdWM 3LJFMr8LCuwxGXa7qcA6b6WcrTMkhw6gzY4zOqE2slksaXK0iYpGduDaZ3dZV0yazPGm jRMQsaj6os2GKVR1KezXn46tX/lQRISk8eKP+dr8k6ZQVJpKLHKavEyG6J1e17yq/0ZV lnSg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849562; x=1713454362; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=rMLMOZo3aCfjzVvHbnT0tkuBKVMN85MSasB72yxiozw=; b=vSeSHnvX4eMEmJvJ9I2N0bLqlR9rxxOpt979gbsBC047ILz/i7flVz1ly4y0SvgthA xgskW0M49m1ub5opXxjnYPLnmqaAiE47B7GE+qe0erE3mglVoQzsaJWPv61Yy2/M3XSk DYFFNBTbgtooCLXH4POkryyyh4FdmNvR6UpNCF/zhnIZLTeOvO7XrrNj3R5wB8EUgbvE 1OlfMmG6aVx62VNZhUycWUn07sBGtpT1eBKe9oTH3cIgXZwdO5htJZAxgwg4mIFGWZYX s6TbSdZ8HXfVe3KHdPEvukKdnj6n41cf16FxiM03lJtLy0poP54icGZb4RJIwsL2KyRR iiEA== X-Gm-Message-State: AOJu0Yz9S2CzTjdOEK+iHkgNXAsOqR3i71W7iupLvKtPupaJayh9hJNS UcGZ7UtJcS0VlfU0txObYDh0ebwZN5FTZd162cypwfK95UVS8+0LuLH0wX0c6BBChEOALN2IW3L 3 X-Google-Smtp-Source: AGHT+IHUNnvfa4lKCsrW3de1MfgYIqXyI4ZKFkAdwJKch8d4iUlhw7EuKx8I6VXNBjDap4D/BeHh4Q== X-Received: by 2002:a6b:cd08:0:b0:7d5:fe3e:90ff with SMTP id d8-20020a6bcd08000000b007d5fe3e90ffmr199357iog.0.1712849562393; Thu, 11 Apr 2024 08:32:42 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.32.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:32:39 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 042/437] ceph: convert read_dir handler to read_iter() Date: Thu, 11 Apr 2024 09:13:02 -0600 Message-ID: <20240411153126.16201-43-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- fs/ceph/dir.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/fs/ceph/dir.c b/fs/ceph/dir.c index 0e9f56eaba1e..3397b24f9e1a 100644 --- a/fs/ceph/dir.c +++ b/fs/ceph/dir.c @@ -2110,12 +2110,13 @@ static void ceph_d_prune(struct dentry *dentry) * read() on a dir. This weird interface hack only works if mounted * with '-o dirstat'. */ -static ssize_t ceph_read_dir(struct file *file, char __user *buf, size_t s= ize, - loff_t *ppos) +static ssize_t ceph_read_dir(struct kiocb *iocb, struct iov_iter *to) { + struct file *file =3D iocb->ki_filp; struct ceph_dir_file_info *dfi =3D file->private_data; struct inode *inode =3D file_inode(file); struct ceph_inode_info *ci =3D ceph_inode(inode); + size_t size; int left; const int bufsize =3D 1024; =20 @@ -2147,13 +2148,13 @@ static ssize_t ceph_read_dir(struct file *file, cha= r __user *buf, size_t size, ci->i_rctime.tv_nsec); } =20 - if (*ppos >=3D dfi->dir_info_len) + if (iocb->ki_pos >=3D dfi->dir_info_len) return 0; - size =3D min_t(unsigned, size, dfi->dir_info_len-*ppos); - left =3D copy_to_user(buf, dfi->dir_info + *ppos, size); + size =3D min_t(unsigned, iov_iter_count(to), dfi->dir_info_len-iocb->ki_p= os); + left =3D copy_to_iter(dfi->dir_info + iocb->ki_pos, size, to); if (left =3D=3D size) return -EFAULT; - *ppos +=3D (size - left); + iocb->ki_pos +=3D (size - left); return size - left; } =20 @@ -2184,7 +2185,7 @@ unsigned ceph_dentry_hash(struct inode *dir, struct d= entry *dn) =20 WRAP_DIR_ITER(ceph_readdir) // FIXME! const struct file_operations ceph_dir_fops =3D { - .read =3D ceph_read_dir, + .read_iter =3D ceph_read_dir, .iterate_shared =3D shared_ceph_readdir, .llseek =3D ceph_dir_llseek, .open =3D ceph_open, --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f48.google.com (mail-io1-f48.google.com [209.85.166.48]) (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 559495914A for ; Thu, 11 Apr 2024 15:32:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849566; cv=none; b=X2ho2Ceb1wmP8DYHQoDNGqhPBBO7iO8a9j1RL1AishlCZp6C/nywTzME+BVHOI5U8YTgVncdMzKFoUbJ5CNih1H7kl0WAl5X97zQFEB5BmNKwgaq1VYgfCP7nl1+jQjNf34eQDMK45HrBlvKbqR+jbjDbbLHpr9r62fhpSXu9Ok= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849566; c=relaxed/simple; bh=c8so3z+nMTH3xQVm4vaEiirsE21WQyNbfRNWgJE/Pew=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ogcD9z2skpGnmGCOXmmq/xE6a7Ew9Yav/96Jc5O/uZj4QCus/0dw260Ohk9AYMPWtNuS/3QWX/1D1UOSGIQxlP3TDi+DgGZ5TqzzAoqmhId5gCei862uajQvGUQIJpylPoYFuHlf33+9m1m8X9plemw1INX41oCXc6iFP1qh2cI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=KDtbZxij; arc=none smtp.client-ip=209.85.166.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="KDtbZxij" Received: by mail-io1-f48.google.com with SMTP id ca18e2360f4ac-7c8e4c0412dso69501339f.1 for ; Thu, 11 Apr 2024 08:32:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849564; x=1713454364; 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=TW/6FxH4sDmaE071qUZ36An1TE18slX4h4IRYxxJV2k=; b=KDtbZxijYe5MfpIvgNMU+6TtKpDKGelEqX4Ahuh7r1ZfFsUQnNBDGKrRBzXAif6BiK +RMn9mxitiflDgk96w3V5lS+mQz58m9fJKnXChdUUuKujZMCP9J+BQf7kRw8+9DS74kJ QmHBOVKa3Vi8NAUcSgxen0o+SH3EFCx7hnpZmt3pRlbdprLHjJoEBsz6rAAjYXRHM13b tph+EgKqUGkDO8PZJ2AT4iKrdQYp0x7X8ym6ZzuR1wBJYmJOcM0plxSgK1ChCxLwfTWA P0yqDFCtVTNALLPLRrBvydI112e9cyfufCtuQMOph8TAzbCdx6AQK0nTgaZVGlKuCsFu sBpw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849564; x=1713454364; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=TW/6FxH4sDmaE071qUZ36An1TE18slX4h4IRYxxJV2k=; b=fRNwMe407cl9J1NuCuhn9R5PtEiLNqmkYHHk6ZJRPRKOkufnbv2TA0xqSj/H9DfVQr MGbOC2hwbc68bMwvl/ftO33VjXhH1VAkWMgMBPq9wInO983qLd9kforUsEgNg6LSMd2t aWg+2z1Ul8ACYIRbmgepq9ZUxkozZMchJbUsn865Vc+r0DrhBnDS0eDxmhwrK+KObVdO ikOGtwEtsEOLHMmCyXEaZfegtiScINr5ekOOe/XPiywHF/BMgd6cJhZNjJRoSHC7MeJZ 8m7OfSE79uv5eriOaTBr4N9rRWWImHingzGaAPoUzku870FhVqqbS4q7qoHcaelWm7bl AaIg== X-Gm-Message-State: AOJu0Yx20sXkJaackIUYUIJSqCt8Aj0B7HvBDfJmGjhPIXnbnjKoQ8Zg 9NWdT3ZZtNA84lKohGhMkScnlaLcovZqIPWR4y/UklLPhk8IC7FIWDrRilzj6y2s8j0bOcO02+3 I X-Google-Smtp-Source: AGHT+IHySu5mfm3sqOp1muAigguVwFOuAsm1zA8rvy4IKy/GqhDSZFrEiz+ZUbssc5gcmRQoscyukA== X-Received: by 2002:a6b:7b05:0:b0:7d6:60dc:bc8e with SMTP id l5-20020a6b7b05000000b007d660dcbc8emr184810iop.1.1712849564324; Thu, 11 Apr 2024 08:32:44 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.32.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:32:42 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 043/437] ecryptfs: miscdev: convert to read/write iterators Date: Thu, 11 Apr 2024 09:13:03 -0600 Message-ID: <20240411153126.16201-44-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- fs/ecryptfs/miscdev.c | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/fs/ecryptfs/miscdev.c b/fs/ecryptfs/miscdev.c index 4e62c3cef70f..6ea67a64e2ff 100644 --- a/fs/ecryptfs/miscdev.c +++ b/fs/ecryptfs/miscdev.c @@ -309,6 +309,7 @@ ecryptfs_miscdev_read(struct file *file, char __user *b= uf, size_t count, mutex_unlock(&daemon->mux); return rc; } +FOPS_READ_ITER_HELPER(ecryptfs_miscdev_read); =20 /** * ecryptfs_miscdev_response - miscdevess response to message previously s= ent to daemon @@ -342,22 +343,20 @@ static int ecryptfs_miscdev_response(struct ecryptfs_= daemon *daemon, char *data, =20 /** * ecryptfs_miscdev_write - handle write to daemon miscdev handle - * @file: File for misc dev handle - * @buf: Buffer containing user data - * @count: Amount of data in @buf - * @ppos: Pointer to offset in file (ignored) + * @iocb: Metadata for IO + * @from: Buffer containing user data * * Returns the number of bytes read from @buf */ static ssize_t -ecryptfs_miscdev_write(struct file *file, const char __user *buf, - size_t count, loff_t *ppos) +ecryptfs_miscdev_write(struct kiocb *iocb, struct iov_iter *from) { __be32 counter_nbo; u32 seq; size_t packet_size, packet_size_length; char *data; unsigned char packet_size_peek[ECRYPTFS_MAX_PKT_LEN_SIZE]; + size_t count =3D iov_iter_count(from); ssize_t rc; =20 if (count =3D=3D 0) { @@ -372,8 +371,8 @@ ecryptfs_miscdev_write(struct file *file, const char __= user *buf, return -EINVAL; } =20 - if (copy_from_user(packet_size_peek, &buf[PKT_LEN_OFFSET], - sizeof(packet_size_peek))) { + if (!copy_from_iter_full(packet_size_peek, sizeof(packet_size_peek), + from)) { printk(KERN_WARNING "%s: Error while inspecting packet size\n", __func__); return -EFAULT; @@ -395,7 +394,7 @@ ecryptfs_miscdev_write(struct file *file, const char __= user *buf, } =20 memdup: - data =3D memdup_user(buf, count); + data =3D iterdup(from, count); if (IS_ERR(data)) { printk(KERN_ERR "%s: memdup_user returned error [%ld]\n", __func__, PTR_ERR(data)); @@ -416,7 +415,7 @@ ecryptfs_miscdev_write(struct file *file, const char __= user *buf, } memcpy(&counter_nbo, &data[PKT_CTR_OFFSET], PKT_CTR_SIZE); seq =3D be32_to_cpu(counter_nbo); - rc =3D ecryptfs_miscdev_response(file->private_data, + rc =3D ecryptfs_miscdev_response(iocb->ki_filp->private_data, &data[PKT_LEN_OFFSET + packet_size_length], packet_size, seq); if (rc) { @@ -442,13 +441,12 @@ ecryptfs_miscdev_write(struct file *file, const char = __user *buf, return rc; } =20 - static const struct file_operations ecryptfs_miscdev_fops =3D { .owner =3D THIS_MODULE, .open =3D ecryptfs_miscdev_open, .poll =3D ecryptfs_miscdev_poll, - .read =3D ecryptfs_miscdev_read, - .write =3D ecryptfs_miscdev_write, + .read_iter =3D ecryptfs_miscdev_read_iter, + .write_iter =3D ecryptfs_miscdev_write, .release =3D ecryptfs_miscdev_release, .llseek =3D noop_llseek, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f50.google.com (mail-io1-f50.google.com [209.85.166.50]) (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 AC8E15A0FD for ; Thu, 11 Apr 2024 15:32:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849569; cv=none; b=pevEB0hr55IJwUynyymQZH4wUqU//jjmzngNBFZ1JlG2KxBI3aaDja7H2NtcKGaZ76inVrt+qNGehokjS0JTGJfymX1/F55xp16rxmXooHBpPLqQcwkPm7/BOp4aAb5Kl3/JVqVLCORtxdOa55RG9Fk9kVwpKt9kZegC/mMPnHQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849569; c=relaxed/simple; bh=nDSvQRZm3ESKnp1OWc2Yl66wupKU+SqQNqmn/taElQQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=gRV/MWka7w5Y4KAB1r2+bxxh6nN6CK0MoW5ilzIEiAKJjpPDnB8sD46TuNHa+TvHW6iauCRVIbSF2sE5LUhm7ILHgrun4vrNcZO7pIY/SOeMM7FQeN7LSLuELXJRaYFkzoSForSkZPy28t/1j0lN/hdoWT6ZTEXGrXcIe793PwE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=YAMkj2Yg; arc=none smtp.client-ip=209.85.166.50 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="YAMkj2Yg" Received: by mail-io1-f50.google.com with SMTP id ca18e2360f4ac-7c8e4c0412dso69502039f.1 for ; Thu, 11 Apr 2024 08:32:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849566; x=1713454366; 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=Ms/mRdLoOCdylV3gDCda45AmlfEDV+h5edfFw6pkhOE=; b=YAMkj2Yg9MeeWx1Js0KcPjsFwIQaZpnR7yUT6NXAqfg4aipmDbW8HbzAxmfxpXVUmm dSh51f2M0JLadAplsgprwqiHh2s/UNJcBIzOoLTI3oxaVecYi+J9Qax/DzmLhDwW95i3 r0c23oUUMnneJEs97Ov6L+6D4W/aKKluEbIwUxVWXNXpp/KTfV2m4fv1RtfXZfCpgVE1 hUdSqfM2dojA0wgOrCZHeVWj9diLriSogsjjhdOEBShM8m8zJO/PbkGGK54nBjmlT4iR FTMxebsrlGWFbLqho9fXpYELo+Y6k6JzKeNpBuyixRj4yRi+rri+Ox2s1coXTXzWkNKt Q7Ww== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849566; x=1713454366; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Ms/mRdLoOCdylV3gDCda45AmlfEDV+h5edfFw6pkhOE=; b=kFtxEnTjwXKrjgGNPeYg7ZQs3qaeYLV2v9QDkRRiwRJUN2xVXqhrgREBS+p22DXuTm jqhLupy1zqOLtufw0+dspmrvC3b5cH9L/LBW5O7D7+VPPPRmZArEKQOBJZbgdHz7Dld0 NBAb9i2iZYKXDHKmmqVcjfz5/7uZhnWWbxc0mft7hWr6ZTtPmpS3kqDZbb6FdXyK99ZU YNOnX13Z8zlKk3to8Dq8MG3JjxnBQxNUFymDKrcwEBsEmBlNwOgtm+Pc9u2iwA0bnqij limA5ERXiYgSoPEkQXlDO0XTa2BOQ2tcR1yxgN6Zv386cjY4XnIiWAXHAN/GB4r1HWhl bplQ== X-Gm-Message-State: AOJu0YzVGHli+j1i37dGEHoaqecNB4R0Jzf7jtZHJ9n7dq8vK34iz3gh JeY13S7nY4pWrHx2+VXwZg/3zC786DOfGqBL5JTCGgQMUUjCC56D/3vlLXfOa+HBwSSd7j67O+c g X-Google-Smtp-Source: AGHT+IFztRmV2DWVXZw83b7oBCtnqWL+v+PBOA3qdu07+9G2cS34zomuds+0REuLfc5kJHgBEpygAg== X-Received: by 2002:a6b:c34e:0:b0:7d6:7b7c:8257 with SMTP id t75-20020a6bc34e000000b007d67b7c8257mr204893iof.0.1712849566391; Thu, 11 Apr 2024 08:32:46 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.32.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:32:44 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 044/437] ocfs2: convert to read/write iterators Date: Thu, 11 Apr 2024 09:13:04 -0600 Message-ID: <20240411153126.16201-45-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- fs/ocfs2/cluster/heartbeat.c | 15 ++++++++------- fs/ocfs2/dlm/dlmdebug.c | 16 +++++++++------- fs/ocfs2/stack_user.c | 6 ++++-- fs/ocfs2/super.c | 15 ++++++++------- 4 files changed, 29 insertions(+), 23 deletions(-) diff --git a/fs/ocfs2/cluster/heartbeat.c b/fs/ocfs2/cluster/heartbeat.c index 1bde1281d514..6baff47a3a08 100644 --- a/fs/ocfs2/cluster/heartbeat.c +++ b/fs/ocfs2/cluster/heartbeat.c @@ -1350,12 +1350,14 @@ static int o2hb_debug_release(struct inode *inode, = struct file *file) return 0; } =20 -static ssize_t o2hb_debug_read(struct file *file, char __user *buf, - size_t nbytes, loff_t *ppos) +static ssize_t o2hb_debug_read(struct kiocb *iocb, struct iov_iter *to) { - return simple_read_from_buffer(buf, nbytes, ppos, file->private_data, - i_size_read(file->f_mapping->host)); + struct file *file =3D iocb->ki_filp; + + return simple_copy_to_iter(file->private_data, &iocb->ki_pos, + i_size_read(file->f_mapping->host), to); } + #else static int o2hb_debug_open(struct inode *inode, struct file *file) { @@ -1365,8 +1367,7 @@ static int o2hb_debug_release(struct inode *inode, st= ruct file *file) { return 0; } -static ssize_t o2hb_debug_read(struct file *file, char __user *buf, - size_t nbytes, loff_t *ppos) +static ssize_t o2hb_debug_read(struct kiocb *iocb, struct iov_iter *to) { return 0; } @@ -1375,7 +1376,7 @@ static ssize_t o2hb_debug_read(struct file *file, cha= r __user *buf, static const struct file_operations o2hb_debug_fops =3D { .open =3D o2hb_debug_open, .release =3D o2hb_debug_release, - .read =3D o2hb_debug_read, + .read_iter =3D o2hb_debug_read, .llseek =3D generic_file_llseek, }; =20 diff --git a/fs/ocfs2/dlm/dlmdebug.c b/fs/ocfs2/dlm/dlmdebug.c index cd4857d5a44a..bad07f55bbf6 100644 --- a/fs/ocfs2/dlm/dlmdebug.c +++ b/fs/ocfs2/dlm/dlmdebug.c @@ -336,12 +336,14 @@ static int debug_release(struct inode *inode, struct = file *file) return 0; } =20 -static ssize_t debug_read(struct file *file, char __user *buf, - size_t nbytes, loff_t *ppos) +static ssize_t debug_read(struct kiocb *iocb, struct iov_iter *to) { - return simple_read_from_buffer(buf, nbytes, ppos, file->private_data, - i_size_read(file->f_mapping->host)); + struct file *file =3D iocb->ki_filp; + + return simple_copy_to_iter(file->private_data, &iocb->ki_pos, + i_size_read(file->f_mapping->host), to); } + /* end - util funcs */ =20 /* begin - purge list funcs */ @@ -395,7 +397,7 @@ static int debug_purgelist_open(struct inode *inode, st= ruct file *file) static const struct file_operations debug_purgelist_fops =3D { .open =3D debug_purgelist_open, .release =3D debug_release, - .read =3D debug_read, + .read_iter =3D debug_read, .llseek =3D generic_file_llseek, }; /* end - purge list funcs */ @@ -452,7 +454,7 @@ static int debug_mle_open(struct inode *inode, struct f= ile *file) static const struct file_operations debug_mle_fops =3D { .open =3D debug_mle_open, .release =3D debug_release, - .read =3D debug_read, + .read_iter =3D debug_read, .llseek =3D generic_file_llseek, }; =20 @@ -843,7 +845,7 @@ static int debug_state_open(struct inode *inode, struct= file *file) static const struct file_operations debug_state_fops =3D { .open =3D debug_state_open, .release =3D debug_release, - .read =3D debug_read, + .read_iter =3D debug_read, .llseek =3D generic_file_llseek, }; /* end - debug state funcs */ diff --git a/fs/ocfs2/stack_user.c b/fs/ocfs2/stack_user.c index c11406cd87a8..360fb8f35e43 100644 --- a/fs/ocfs2/stack_user.c +++ b/fs/ocfs2/stack_user.c @@ -534,6 +534,7 @@ static ssize_t ocfs2_control_write(struct file *file, =20 return ret; } +FOPS_WRITE_ITER_HELPER(ocfs2_control_write); =20 /* * This is a naive version. If we ever have a new protocol, we'll expand @@ -556,6 +557,7 @@ static ssize_t ocfs2_control_read(struct file *file, =20 return ret; } +FOPS_READ_ITER_HELPER(ocfs2_control_read); =20 static int ocfs2_control_release(struct inode *inode, struct file *file) { @@ -616,8 +618,8 @@ static int ocfs2_control_open(struct inode *inode, stru= ct file *file) static const struct file_operations ocfs2_control_fops =3D { .open =3D ocfs2_control_open, .release =3D ocfs2_control_release, - .read =3D ocfs2_control_read, - .write =3D ocfs2_control_write, + .read_iter =3D ocfs2_control_read_iter, + .write_iter =3D ocfs2_control_write_iter, .owner =3D THIS_MODULE, .llseek =3D default_llseek, }; diff --git a/fs/ocfs2/super.c b/fs/ocfs2/super.c index 8aabaed2c1cb..6f7107ecd6c6 100644 --- a/fs/ocfs2/super.c +++ b/fs/ocfs2/super.c @@ -360,12 +360,14 @@ static int ocfs2_debug_release(struct inode *inode, s= truct file *file) return 0; } =20 -static ssize_t ocfs2_debug_read(struct file *file, char __user *buf, - size_t nbytes, loff_t *ppos) +static ssize_t ocfs2_debug_read(struct kiocb *iocb, struct iov_iter *to) { - return simple_read_from_buffer(buf, nbytes, ppos, file->private_data, - i_size_read(file->f_mapping->host)); + struct file *file =3D iocb->ki_filp; + + return simple_copy_to_iter(file->private_data, &iocb->ki_pos, + i_size_read(file->f_mapping->host), to); } + #else static int ocfs2_osb_debug_open(struct inode *inode, struct file *file) { @@ -375,8 +377,7 @@ static int ocfs2_debug_release(struct inode *inode, str= uct file *file) { return 0; } -static ssize_t ocfs2_debug_read(struct file *file, char __user *buf, - size_t nbytes, loff_t *ppos) +static ssize_t ocfs2_debug_read(struct kiocb *iocb, struct iov_iter *to) { return 0; } @@ -385,7 +386,7 @@ static ssize_t ocfs2_debug_read(struct file *file, char= __user *buf, static const struct file_operations ocfs2_osb_debug_fops =3D { .open =3D ocfs2_osb_debug_open, .release =3D ocfs2_debug_release, - .read =3D ocfs2_debug_read, + .read_iter =3D ocfs2_debug_read, .llseek =3D generic_file_llseek, }; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f47.google.com (mail-io1-f47.google.com [209.85.166.47]) (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 5918A1947D for ; Thu, 11 Apr 2024 15:32:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849579; cv=none; b=BTXITrcC+KEFZ3NWrxrmMFXd8drwUSZ2nHsorik3lSe5d5ONfjgyPS+LO4UIS7mnxvbQzvZFv6kPRzf4bKrLIaABKh9zERlDTge8xH6ZjlbBqFbu7CU+mklzQ3P2oHv09fOJ69mzOgVKyIfzoNInDQZRXZLP8PQU+/KKlHIz8do= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849579; c=relaxed/simple; bh=vLWvb3OacZAY+KRIJJDQM0sH9Lk6qVNcnOSoG9pN4c4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=vALbFQVVXSg+nrLMwIwb7Ncfjxs2Jev7AbHJfrkpLmJIgiiJcY3AoZ7Ov4MpFbea7hhELEKaLO4fmNsqHxlQzZz6g7mnLzh0EB/BoQoZQE/aQtKDheLfsiUtbJWKihJtAiMk4WqxseeOIKjtAjD6X1S+PeMEGu1h7I0Cd7JRqvc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=EtYkroqT; arc=none smtp.client-ip=209.85.166.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="EtYkroqT" Received: by mail-io1-f47.google.com with SMTP id ca18e2360f4ac-7d6812b37a6so8869739f.0 for ; Thu, 11 Apr 2024 08:32:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849577; x=1713454377; 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=SwWFQP64WW8Ug8E+EQIAUt1wXFgwfIuKhZ2rU+4AJRk=; b=EtYkroqTxWSkcEBUtIFdenRthY6oWOOfJCeNnvk9XfGG+rbGgj4I3GSiwlHaXYJ+Dh cxJPIfkCSUevbbXMDT83SSiVJ9Rz9i63z85CXJyM+pmNObo4jm0D0bExF47k5SKjEnVd rqS0XT/onHEbLGVfoLcoM3ebfkHpzhcxu+C4bt7w90bumV+f9GvjE/ZMMxMP03B+DbhT AB3UXEkDyDprJQwiE+7VydKEJhg4wnElw2KiV8eNUPGPfXr+rIy+HhwvgEwKRkcLPAI3 hjBQ1PxFX9uLdaMd7y/029ap2UDQ9768qcWHPYQHPXHVl8yJGzsHrrvqSxYyQaD2pdHf VMAA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849577; x=1713454377; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=SwWFQP64WW8Ug8E+EQIAUt1wXFgwfIuKhZ2rU+4AJRk=; b=lN6HCNmRkskS7e/W0qUBTfwrWrSx46wCjVeG1pccbZvoxa+JunoVthlRmZK98IvP0u WhvnEYGeoJPSA+sV1x9WQJJYDl1koCc6Ts9SOpEUJqbNigEvur5Ro6+WyNEQycDbsEbC Dlkf4etSxB4fMAOzdN1a2npY3hOJT9f0RX2Wy0/3txsEnb1H7h2lS1FmepuVBNUwDl8w K1Nf0ogUs+dZpcdx65NEn5JOBOnvXdEcAazGeJszVTkG5TwBxTlYYGWCcY5eznb98Mcr HRl00yt57pQlQDwQIVB2pZAQoKQU8GGZun0PV2+h5jLtuFFquMsMaOjmkuLSYMY4TWMM rHhA== X-Gm-Message-State: AOJu0YwdahKtwo7s7W36m4yZOWimO1nY1ieNxOC7xFi8LnEAS8XOzT+f TxSlC6q7TVq0sebt1YNVarVnn2kh8NgwBtYTe0FbRjenqF5PrqqzSbyw4U/V5XEvvrhdvOr9VBN V X-Google-Smtp-Source: AGHT+IHhkPaGNo373gYBYB86X6B8CH7K8fjZGdvgdJJtuGaWR2wpwXlS3jxD7YXDVZyvFOC6UrzOdg== X-Received: by 2002:a92:d352:0:b0:36a:1275:4aeb with SMTP id a18-20020a92d352000000b0036a12754aebmr5874615ilh.1.1712849577156; Thu, 11 Apr 2024 08:32:57 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.32.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:32:46 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 045/437] orangefs: convert to read/write iterators Date: Thu, 11 Apr 2024 09:13:05 -0600 Message-ID: <20240411153126.16201-46-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- fs/orangefs/devorangefs-req.c | 23 +++++++++---------- fs/orangefs/orangefs-debugfs.c | 40 ++++++++++++---------------------- 2 files changed, 24 insertions(+), 39 deletions(-) diff --git a/fs/orangefs/devorangefs-req.c b/fs/orangefs/devorangefs-req.c index 33ee8cb32f83..b3325cc88b63 100644 --- a/fs/orangefs/devorangefs-req.c +++ b/fs/orangefs/devorangefs-req.c @@ -155,18 +155,18 @@ static int orangefs_devreq_open(struct inode *inode, = struct file *file) } =20 /* Function for read() callers into the device */ -static ssize_t orangefs_devreq_read(struct file *file, - char __user *buf, - size_t count, loff_t *offset) +static ssize_t orangefs_devreq_read(struct kiocb *iocb, struct iov_iter *t= o) { struct orangefs_kernel_op_s *op, *temp; __s32 proto_ver =3D ORANGEFS_KERNEL_PROTO_VERSION; static __s32 magic =3D ORANGEFS_DEVREQ_MAGIC; struct orangefs_kernel_op_s *cur_op; + size_t count =3D iov_iter_count(to); unsigned long ret; =20 /* We do not support blocking IO. */ - if (!(file->f_flags & O_NONBLOCK)) { + if (!((iocb->ki_filp->f_flags & O_NONBLOCK) && + (iocb->ki_flags & IOCB_NOWAIT))) { gossip_err("%s: blocking read from client-core.\n", __func__); return -EINVAL; @@ -278,20 +278,17 @@ static ssize_t orangefs_devreq_read(struct file *file, spin_unlock(&cur_op->lock); =20 /* Push the upcall out. */ - ret =3D copy_to_user(buf, &proto_ver, sizeof(__s32)); + ret =3D !copy_to_iter_full(&proto_ver, sizeof(__s32), to); if (ret !=3D 0) goto error; - ret =3D copy_to_user(buf + sizeof(__s32), &magic, sizeof(__s32)); + ret =3D !copy_to_iter_full(&magic, sizeof(__s32), to); if (ret !=3D 0) goto error; - ret =3D copy_to_user(buf + 2 * sizeof(__s32), - &cur_op->tag, - sizeof(__u64)); + ret =3D !copy_to_iter_full(&cur_op->tag, sizeof(__u64), to); if (ret !=3D 0) goto error; - ret =3D copy_to_user(buf + 2 * sizeof(__s32) + sizeof(__u64), - &cur_op->upcall, - sizeof(struct orangefs_upcall_s)); + ret =3D !copy_to_iter_full(&cur_op->upcall, + sizeof(struct orangefs_upcall_s), to); if (ret !=3D 0) goto error; =20 @@ -768,7 +765,7 @@ static int orangefs_dev_major; =20 static const struct file_operations orangefs_devreq_file_operations =3D { .owner =3D THIS_MODULE, - .read =3D orangefs_devreq_read, + .read_iter =3D orangefs_devreq_read, .write_iter =3D orangefs_devreq_write_iter, .open =3D orangefs_devreq_open, .release =3D orangefs_devreq_release, diff --git a/fs/orangefs/orangefs-debugfs.c b/fs/orangefs/orangefs-debugfs.c index 2f1ed95ac8fb..926800659a41 100644 --- a/fs/orangefs/orangefs-debugfs.c +++ b/fs/orangefs/orangefs-debugfs.c @@ -74,15 +74,8 @@ static int help_show(struct seq_file *, void *); =20 static int orangefs_debug_open(struct inode *, struct file *); =20 -static ssize_t orangefs_debug_read(struct file *, - char __user *, - size_t, - loff_t *); - -static ssize_t orangefs_debug_write(struct file *, - const char __user *, - size_t, - loff_t *); +static ssize_t orangefs_debug_read(struct kiocb *iocb, struct iov_iter *to= ); +static ssize_t orangefs_debug_write(struct kiocb *iocb, struct iov_iter *t= o); =20 static int orangefs_prepare_cdm_array(char *); static void debug_mask_to_string(void *, int); @@ -124,8 +117,8 @@ static const struct file_operations debug_help_fops =3D= { static const struct file_operations kernel_debug_fops =3D { .owner =3D THIS_MODULE, .open =3D orangefs_debug_open, - .read =3D orangefs_debug_read, - .write =3D orangefs_debug_write, + .read_iter =3D orangefs_debug_read, + .write_iter =3D orangefs_debug_write, .llseek =3D generic_file_llseek, }; =20 @@ -338,10 +331,7 @@ static int orangefs_debug_open(struct inode *inode, st= ruct file *file) return rc; } =20 -static ssize_t orangefs_debug_read(struct file *file, - char __user *ubuf, - size_t count, - loff_t *ppos) +static ssize_t orangefs_debug_read(struct kiocb *iocb, struct iov_iter *to) { char *buf; int sprintf_ret; @@ -354,10 +344,10 @@ static ssize_t orangefs_debug_read(struct file *file, goto out; =20 mutex_lock(&orangefs_debug_lock); - sprintf_ret =3D sprintf(buf, "%s", (char *)file->private_data); + sprintf_ret =3D sprintf(buf, "%s", (char *)iocb->ki_filp->private_data); mutex_unlock(&orangefs_debug_lock); =20 - read_ret =3D simple_read_from_buffer(ubuf, count, ppos, buf, sprintf_ret); + read_ret =3D simple_copy_to_iter(buf, &iocb->ki_pos, sprintf_ret, to); =20 kfree(buf); =20 @@ -369,11 +359,9 @@ static ssize_t orangefs_debug_read(struct file *file, return read_ret; } =20 -static ssize_t orangefs_debug_write(struct file *file, - const char __user *ubuf, - size_t count, - loff_t *ppos) +static ssize_t orangefs_debug_write(struct kiocb *iocb, struct iov_iter *f= rom) { + size_t count =3D iov_iter_count(from); char *buf; int rc =3D -EFAULT; size_t silly =3D 0; @@ -384,7 +372,7 @@ static ssize_t orangefs_debug_write(struct file *file, =20 gossip_debug(GOSSIP_DEBUGFS_DEBUG, "orangefs_debug_write: %pD\n", - file); + iocb->ki_filp); =20 if (count =3D=3D 0) return 0; @@ -402,7 +390,7 @@ static ssize_t orangefs_debug_write(struct file *file, if (!buf) goto out; =20 - if (copy_from_user(buf, ubuf, count - 1)) { + if (!copy_from_iter_full(buf, count - 1, from)) { gossip_debug(GOSSIP_DEBUGFS_DEBUG, "%s: copy_from_user failed!\n", __func__); @@ -418,7 +406,7 @@ static ssize_t orangefs_debug_write(struct file *file, * A service operation is required to set a new client-side * debug mask. */ - if (!strcmp(file->f_path.dentry->d_name.name, + if (!strcmp(iocb->ki_filp->f_path.dentry->d_name.name, ORANGEFS_KMOD_DEBUG_FILE)) { debug_string_to_mask(buf, &orangefs_gossip_debug_mask, 0); debug_mask_to_string(&orangefs_gossip_debug_mask, 0); @@ -471,12 +459,12 @@ static ssize_t orangefs_debug_write(struct file *file, } =20 mutex_lock(&orangefs_debug_lock); - s =3D file_inode(file)->i_private; + s =3D file_inode(iocb->ki_filp)->i_private; memset(s, 0, ORANGEFS_MAX_DEBUG_STRING_LEN); sprintf(s, "%s\n", debug_string); mutex_unlock(&orangefs_debug_lock); =20 - *ppos +=3D count; + iocb->ki_pos +=3D count; if (silly) rc =3D silly; else --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f50.google.com (mail-io1-f50.google.com [209.85.166.50]) (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 569EE1CA8F for ; Thu, 11 Apr 2024 15:33:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849581; cv=none; b=MVUO2c3VLeyZmlnXarZ0GU4r5GleQJv4h7iUnOuvjcrOIgxHQVLAiyJ8QC+++6Sf0vIpViUl2Pr4nS7VWTAlWQ+Mr4yp8v1MRRm5NCkAGnhrUnJt+sWjOw9kK7GLpYUt41FeWIn0Zj0hIfHB3khA9IHskFEJnCw+fPR6yqzzV54= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849581; c=relaxed/simple; bh=3A3Y2S1TN0uiD3XfMhL2MRzknmu6Zu0BIJ5mcQpELWs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=DdmxDVFjXvOci55Fsuo1ZdI4S6KXBBLL8IzJzQFfRlDmO/xFdn+KWsdtGj2g+Ln+VTZ+3vtfBdWf1odm25n6kXWrvnt/wsYZB8YofzXKuDxuiDsNNlNKwczKKiaS8DUL7LTpHq6yR4CN+7AHoGShrkGXiPJQTm3FVKLTRyljKiw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=dHYImB+g; arc=none smtp.client-ip=209.85.166.50 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="dHYImB+g" Received: by mail-io1-f50.google.com with SMTP id ca18e2360f4ac-7d6812b37a6so8870039f.0 for ; Thu, 11 Apr 2024 08:33:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849579; x=1713454379; 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=4r84YY1rOyk7rzLeeyW1VHrY32e6Xsj7KT90entdsH4=; b=dHYImB+gTpGwzAVWst9VvFTOyNkgy5KkxWWc0woYmO3NwDVscY2fTuesx1SrylODQ4 I/Gn0WBvSAFfjPn+GW+EeBWGdZWn2GwT9ihqYPr6CZcIP+Wb2v/38z7pLPr5C52gugQn g6mes9LjHsLEr7m0BlrKXxVHgyQWW31F/3thwM0pst2G1k3JEtz35siDEWpOdr4qYUld 5ZK9M/Yd8w7JfZgW6ybFjMcvBRmMsaIBWz6oagj8iQQidVRXU5uI5TMwSLiA3njfq6zX r9rrpua9+kM69nvfDDR0riZpzGlqpwv/+v1pVEDsv/bkZrlMPF0pH+RISXgkZeR49fpH wRAw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849579; x=1713454379; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=4r84YY1rOyk7rzLeeyW1VHrY32e6Xsj7KT90entdsH4=; b=LkR4/F5Ht40Ka0KszMuoaEKVgiCY9jzGwCxXt53O/hZD80uneId4a498EGMXxSamXQ lgPWlFh5Bnha4sgsHFHiOsYzn61J+q4ofm1CvlnrCl4U/1yNTyUKIDBX+aYpLfSN6n1H YodWXaEnfwZ8QEXYB6TyVb8/IuNyBXAoNNpQDjzfpc5Z6nt0A5L7eNovmWWBrOTxJzj/ DoKrK6BkqAPTzlLAMDV/KaW3HqhxEDgu82JztfZQez1XNPyxNFpLlBKPJ6kGwtlj41ED rcHaS5SJ9lv2NVC+n8SFFp12skAutsevh1RlDXiM+TXBLVYVMGXJXHZYmFzAcxtjKvt6 dY8Q== X-Gm-Message-State: AOJu0YxWUVT4t2gwBBNHXHI1A5Ek3u32TGj2J5hq6uKQdlof6Eb9t7Z4 U74uAQ5hzL/Iw/w3E5+0o0tRfFkADPclmNpNF/wMOtRMzKE6QSSU5hrhlUQhU5Lwi7WLKuz8JVt S X-Google-Smtp-Source: AGHT+IEo2Ae59GIcxcCa31jjb6H3XDSS8642W0puNU+vRXryUpOW30/Y7CeXxBtL913jmZVEb7mnbQ== X-Received: by 2002:a05:6602:21d7:b0:7d6:9ddf:5095 with SMTP id c23-20020a05660221d700b007d69ddf5095mr5550ioc.1.1712849578994; Thu, 11 Apr 2024 08:32:58 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.32.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:32:57 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 046/437] dlm: convert to read/write iterators Date: Thu, 11 Apr 2024 09:13:06 -0600 Message-ID: <20240411153126.16201-47-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- fs/dlm/debug_fs.c | 41 +++++++++++++++++++---------------------- fs/dlm/plock.c | 16 ++++++++-------- fs/dlm/user.c | 17 +++++++++-------- 3 files changed, 36 insertions(+), 38 deletions(-) diff --git a/fs/dlm/debug_fs.c b/fs/dlm/debug_fs.c index 1236e8d13453..2207cd83ab09 100644 --- a/fs/dlm/debug_fs.c +++ b/fs/dlm/debug_fs.c @@ -700,10 +700,10 @@ static int table_open2(struct inode *inode, struct fi= le *file) return 0; } =20 -static ssize_t table_write2(struct file *file, const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t table_write2(struct kiocb *iocb, struct iov_iter *from) { - struct seq_file *seq =3D file->private_data; + struct seq_file *seq =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); int n, len, lkb_nodeid, lkb_status, error; char name[DLM_RESNAME_MAXLEN + 1] =3D {}; struct dlm_ls *ls =3D seq->private; @@ -711,8 +711,7 @@ static ssize_t table_write2(struct file *file, const ch= ar __user *user_buf, char buf[256] =3D {}; uint32_t lkb_id; =20 - if (copy_from_user(buf, user_buf, - min_t(size_t, sizeof(buf) - 1, count))) + if (!copy_from_iter_full(buf, min_t(size_t, sizeof(buf) - 1, count), from= )) return -EFAULT; =20 n =3D sscanf(buf, "%x %" __stringify(DLM_RESNAME_MAXLEN) "s %x %d %d", @@ -783,7 +782,7 @@ static const struct file_operations format2_fops =3D { .owner =3D THIS_MODULE, .open =3D table_open2, .read_iter =3D seq_read_iter, - .write =3D table_write2, + .write_iter =3D table_write2, .llseek =3D seq_lseek, .release =3D seq_release }; @@ -815,10 +814,9 @@ static const struct file_operations format5_fops =3D { /* * dump lkb's on the ls_waiters list */ -static ssize_t waiters_read(struct file *file, char __user *userbuf, - size_t count, loff_t *ppos) +static ssize_t waiters_read(struct kiocb *iocb, struct iov_iter *to) { - struct dlm_ls *ls =3D file->private_data; + struct dlm_ls *ls =3D iocb->ki_filp->private_data; struct dlm_lkb *lkb; size_t len =3D DLM_DEBUG_BUF_LEN, pos =3D 0, ret, rv; =20 @@ -836,22 +834,21 @@ static ssize_t waiters_read(struct file *file, char _= _user *userbuf, } mutex_unlock(&ls->ls_waiters_mutex); =20 - rv =3D simple_read_from_buffer(userbuf, count, ppos, debug_buf, pos); + rv =3D simple_copy_to_iter(debug_buf, &iocb->ki_pos, pos, to); mutex_unlock(&debug_buf_lock); return rv; } =20 -static ssize_t waiters_write(struct file *file, const char __user *user_bu= f, - size_t count, loff_t *ppos) +static ssize_t waiters_write(struct kiocb *iocb, struct iov_iter *from) { - struct dlm_ls *ls =3D file->private_data; + struct dlm_ls *ls =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); int mstype, to_nodeid; char buf[128] =3D {}; uint32_t lkb_id; int n, error; =20 - if (copy_from_user(buf, user_buf, - min_t(size_t, sizeof(buf) - 1, count))) + if (!copy_from_iter_full(buf, min_t(size_t, sizeof(buf) - 1, count), from= )) return -EFAULT; =20 n =3D sscanf(buf, "%x %d %d", &lkb_id, &mstype, &to_nodeid); @@ -868,8 +865,8 @@ static ssize_t waiters_write(struct file *file, const c= har __user *user_buf, static const struct file_operations waiters_fops =3D { .owner =3D THIS_MODULE, .open =3D simple_open, - .read =3D waiters_read, - .write =3D waiters_write, + .read_iter =3D waiters_read, + .write_iter =3D waiters_write, .llseek =3D default_llseek, }; =20 @@ -911,9 +908,9 @@ static int dlm_version_show(struct seq_file *file, void= *offset) } DEFINE_SHOW_ATTRIBUTE(dlm_version); =20 -static ssize_t dlm_rawmsg_write(struct file *fp, const char __user *user_b= uf, - size_t count, loff_t *ppos) +static ssize_t dlm_rawmsg_write(struct kiocb *iocb, struct iov_iter *from) { + size_t count =3D iov_iter_count(from); void *buf; int ret; =20 @@ -924,12 +921,12 @@ static ssize_t dlm_rawmsg_write(struct file *fp, cons= t char __user *user_buf, if (!buf) return -ENOMEM; =20 - if (copy_from_user(buf, user_buf, count)) { + if (!copy_from_iter_full(buf, count, from)) { ret =3D -EFAULT; goto out; } =20 - ret =3D dlm_midcomms_rawmsg_send(fp->private_data, buf, count); + ret =3D dlm_midcomms_rawmsg_send(iocb->ki_filp->private_data, buf, count); if (ret) goto out; =20 @@ -943,7 +940,7 @@ static ssize_t dlm_rawmsg_write(struct file *fp, const = char __user *user_buf, =20 static const struct file_operations dlm_rawmsg_fops =3D { .open =3D simple_open, - .write =3D dlm_rawmsg_write, + .write_iter =3D dlm_rawmsg_write, .llseek =3D no_llseek, }; =20 diff --git a/fs/dlm/plock.c b/fs/dlm/plock.c index 9ca83ef70ed1..f6d00f39f991 100644 --- a/fs/dlm/plock.c +++ b/fs/dlm/plock.c @@ -478,9 +478,9 @@ int dlm_posix_get(dlm_lockspace_t *lockspace, u64 numbe= r, struct file *file, EXPORT_SYMBOL_GPL(dlm_posix_get); =20 /* a read copies out one plock request from the send list */ -static ssize_t dev_read(struct file *file, char __user *u, size_t count, - loff_t *ppos) +static ssize_t dev_read(struct kiocb *iocb, struct iov_iter *to) { + size_t count =3D iov_iter_count(to); struct dlm_plock_info info; struct plock_op *op =3D NULL; =20 @@ -510,16 +510,16 @@ static ssize_t dev_read(struct file *file, char __use= r *u, size_t count, if (op->info.flags & DLM_PLOCK_FL_CLOSE) dlm_release_plock_op(op); =20 - if (copy_to_user(u, &info, sizeof(info))) + if (!copy_to_iter_full(&info, sizeof(info), to)) return -EFAULT; return sizeof(info); } =20 /* a write copies in one plock result that should match a plock_op on the recv list */ -static ssize_t dev_write(struct file *file, const char __user *u, size_t c= ount, - loff_t *ppos) +static ssize_t dev_write(struct kiocb *iocb, struct iov_iter *from) { + size_t count =3D iov_iter_count(from); struct plock_op *op =3D NULL, *iter; struct dlm_plock_info info; int do_callback =3D 0; @@ -527,7 +527,7 @@ static ssize_t dev_write(struct file *file, const char = __user *u, size_t count, if (count !=3D sizeof(info)) return -EINVAL; =20 - if (copy_from_user(&info, u, sizeof(info))) + if (!copy_from_iter_full(&info, sizeof(info), from)) return -EFAULT; =20 trace_dlm_plock_write(&info); @@ -598,8 +598,8 @@ static __poll_t dev_poll(struct file *file, poll_table = *wait) } =20 static const struct file_operations dev_fops =3D { - .read =3D dev_read, - .write =3D dev_write, + .read_iter =3D dev_read, + .write_iter =3D dev_write, .poll =3D dev_poll, .owner =3D THIS_MODULE, .llseek =3D noop_llseek, diff --git a/fs/dlm/user.c b/fs/dlm/user.c index 9f9b68448830..362c9998929e 100644 --- a/fs/dlm/user.c +++ b/fs/dlm/user.c @@ -524,10 +524,10 @@ static int check_version(struct dlm_write_request *re= q) /* a write to a lockspace device is a lock or unlock request, a write to the control device is to create/remove a lockspace */ =20 -static ssize_t device_write(struct file *file, const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t device_write(struct kiocb *iocb, struct iov_iter *from) { - struct dlm_user_proc *proc =3D file->private_data; + struct dlm_user_proc *proc =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); struct dlm_write_request *kbuf; int error; =20 @@ -545,7 +545,7 @@ static ssize_t device_write(struct file *file, const ch= ar __user *buf, if (count > sizeof(struct dlm_write_request) + DLM_RESNAME_MAXLEN) return -EINVAL; =20 - kbuf =3D memdup_user_nul(buf, count); + kbuf =3D iterdup_nul(from, count); if (IS_ERR(kbuf)) return PTR_ERR(kbuf); =20 @@ -918,6 +918,7 @@ static ssize_t device_read(struct file *file, char __us= er *buf, size_t count, =20 return ret; } +FOPS_READ_ITER_HELPER(device_read); =20 static __poll_t device_poll(struct file *file, poll_table *wait) { @@ -982,8 +983,8 @@ static int monitor_device_close(struct inode *inode, st= ruct file *file) static const struct file_operations device_fops =3D { .open =3D device_open, .release =3D device_close, - .read =3D device_read, - .write =3D device_write, + .read_iter =3D device_read_iter, + .write_iter =3D device_write, .poll =3D device_poll, .owner =3D THIS_MODULE, .llseek =3D noop_llseek, @@ -992,8 +993,8 @@ static const struct file_operations device_fops =3D { static const struct file_operations ctl_device_fops =3D { .open =3D ctl_device_open, .release =3D ctl_device_close, - .read =3D device_read, - .write =3D device_write, + .read_iter =3D device_read_iter, + .write_iter =3D device_write, .owner =3D THIS_MODULE, .llseek =3D noop_llseek, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f43.google.com (mail-io1-f43.google.com [209.85.166.43]) (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 438C15B5BE for ; Thu, 11 Apr 2024 15:33:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849583; cv=none; b=AErvm48h26F1vuVHcsgCEt2OT07D6+5LcFIkrBVUHt29DxuWnQ0exa1Bje9twl7q2l/4n6Hb5/xEaNt00w4S8jqkpWYkcR7xv74DXn1dciKgRDSakqP8ETnaMrvV8aZr89O6W1YIAduptJKiiwmURqp439l0KJua48QJlyF/Oss= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849583; c=relaxed/simple; bh=VYdHrQPHjHk6TOg8Bd0CL+/UEVjJJ17BEwTYJLTtitQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=R1sz7MGwhEfkgFKmDiRIXvHN+qFXpGi0GHSEhzgwGAulk/7UMl1e/u+qoW2SzZvhvMNSB+f/UnrRbsmXo5ZXpAKZIDFIWMGvHI7ESG5qeFbj7niDmvKiezp4YCNebsQZH1IbCzv8389YacjEN1b8ukxop9F2xUQQ07N99GbA6g8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=QyYyMrEK; arc=none smtp.client-ip=209.85.166.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="QyYyMrEK" Received: by mail-io1-f43.google.com with SMTP id ca18e2360f4ac-7d5ed700c2dso16110339f.0 for ; Thu, 11 Apr 2024 08:33:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849581; x=1713454381; 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=iZXIzxEuADUwq6kTEiiPPm2btK30iW121DAZDPyFE4s=; b=QyYyMrEKvgb0j+lvq23A72xS8rmQMQbfCFqo4bYgbDXENyL0P9c0G747WTbA75PGoC 3OmVbD7GE0BAxfYMPch3EypcMPfT2mzzd71mjzqiHkjrKX2SWVA1Dw+g8U070jk9/Wpt S8MS7y/V5VcGjKSULrduDtFmHtdK+dTp/v/IczUrLmwvtGFdjl4zFlDeRHWj7i4iFQPe oqYKqgK108KFULZYpQwDIgZ9Wu+y/rReRFgrdumgkwfkN7Kq749foRY4+MN8bwMMPEQt 3bm2zH1JGMTfHvQ60T9bMkzaWPuA0jFaXI9afHrEz2YC/TgwIIHh8Figza5rYf5c+B4D ta6w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849581; x=1713454381; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=iZXIzxEuADUwq6kTEiiPPm2btK30iW121DAZDPyFE4s=; b=NxLr5cFHPhx9ydVkUJbyBZyOD/fLK5v/tUF3SXwM5Zlka34ZD7lZeSljUhu0Z5Tf1E B8Qlti4Otj2PJASGYTJ0dmr5o9sd7j4vMgTpOEUgHxYcSWJ4RVXioA33TgDZAbfG2m5E 8plfLNaYGsLkrnRELuhvisHQMc5jPplV/CKVVPGfiZ/F0MflILfH3cQRP3euvzBkC6Jl ORXcgryQn5HLbrKyHnmQDiyeFNL4CK9gzZv69IcZ7IRPiot2iZ8Uml0SDv7JsIsEmx4z MNTfSX++exzNBsZrDzdCORdoAnoUfnKq4tA+VtCFYhhbat+JpbLfV8FDgsowSlB1Wrrs Ujeg== X-Gm-Message-State: AOJu0Yxi0+wgKmP31wQ5ChFvLWJ109opraLuu2sVwHtscHevS1MkUIPa fug75P0ImT3ZuOFCc1Rw+ms8Ty2f3kvcisi2FVa4THcy4hHgUDjllR6BZmHpfUiIRkOzAWD6vQM n X-Google-Smtp-Source: AGHT+IEaTaSNAkf6w73kY7rrd2sogk5dWCpmbVi/gQTNQu+tf0zhdnoEnKRhPJQFGVd7sfOJ5iyQ+A== X-Received: by 2002:a05:6e02:1fcb:b0:368:efa4:be12 with SMTP id dj11-20020a056e021fcb00b00368efa4be12mr7838420ilb.3.1712849581015; Thu, 11 Apr 2024 08:33:01 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.32.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:32:59 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 047/437] tracefs: convert to read/write iterators Date: Thu, 11 Apr 2024 09:13:07 -0600 Message-ID: <20240411153126.16201-48-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- fs/tracefs/inode.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/fs/tracefs/inode.c b/fs/tracefs/inode.c index 5545e6bf7d26..b1a9b5f10581 100644 --- a/fs/tracefs/inode.c +++ b/fs/tracefs/inode.c @@ -46,21 +46,19 @@ static void tracefs_free_inode(struct inode *inode) kmem_cache_free(tracefs_inode_cachep, get_tracefs(inode)); } =20 -static ssize_t default_read_file(struct file *file, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t default_read_file_iter(struct kiocb *iocb, struct iov_iter = *to) { return 0; } =20 -static ssize_t default_write_file(struct file *file, const char __user *bu= f, - size_t count, loff_t *ppos) +static ssize_t default_write_file_iter(struct kiocb *iocb, struct iov_iter= *from) { - return count; + return iov_iter_count(from); } =20 static const struct file_operations tracefs_file_operations =3D { - .read =3D default_read_file, - .write =3D default_write_file, + .read_iter =3D default_read_file_iter, + .write_iter =3D default_write_file_iter, .open =3D simple_open, .llseek =3D noop_llseek, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f46.google.com (mail-io1-f46.google.com [209.85.166.46]) (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 0BA585EE78 for ; Thu, 11 Apr 2024 15:33:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849585; cv=none; b=gr44LS6dPHbredPaLy9NzP7u1m0wK0z+wsEIxIXamP1JXPcGY0BEwk3STIQn5Sipw8R23ARpc8UQAoVgr2A4aJVWiQowO8gd5h4MrHj1GliatkNd3yW03sIo7Q5KFAZbfIzCDuZjfSk6RF4ghHZccIWZC2xoF5tE2ZwuUf+Xgag= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849585; c=relaxed/simple; bh=eEDszxx90e01yTgxIruX4KzqPdDS75YhCXkv6EuBqi0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=qKdIXNqke6W//Fk5rWm6ZKXmf46uR6L92/cjqLfChdM7e8nEZnnNUAZgQTeob2uEdlprzRT+wuIKLy/7xmQRTBiVwRXK7UcCnDloIye+mYhxTVLAwRB8WEUyWxH2DKWK1hV/ali2C7UdzTx+GLk71qMZiGJeOPPX15A8vJFFPCo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=e6pZAw7z; arc=none smtp.client-ip=209.85.166.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="e6pZAw7z" Received: by mail-io1-f46.google.com with SMTP id ca18e2360f4ac-7d0772bb5ffso180606939f.0 for ; Thu, 11 Apr 2024 08:33:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849583; x=1713454383; 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=UJJ4D05S2wvbc3NuqE+NgrEAsI3iKLR+9IYZJ85rzug=; b=e6pZAw7z4YMDXHut91EJ1/FXliUL4YkEJ+nr+Bh/Aq90VEimvDUZgGquU6Cc1fxtHA qwmmjPut382ahpkSEQIpkVDXTc1GnrfvM7uglFSJsIXB7QcLxAJEUUMP91YyUKh5KxlP OuMrAah1qeq3+TVvj/0elcY60i0v6L2fy3m4Vj59nFjYu175kQiZeBPyjmyIiB/3Kcoe 2fiP9UXOgWgBBmqcehOTQp7LnzbiJF77Emtse2U72diFsoH2VlNIGMhsfXPROBnNuDaM TU7/Yd5n6zfz0OxzfEcYTQ8EFFZATpbBhQHgS1iEsahWVbrUCfXGNIm8rzmYeqGf343h gqkA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849583; x=1713454383; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=UJJ4D05S2wvbc3NuqE+NgrEAsI3iKLR+9IYZJ85rzug=; b=tpjVUHAIuWpxiz0nElsU6GQMDiSrYgiVdaXRVlBphcZYM29e954ptznTVkjg9m8oRT G+qaE1ga1HJHdjsNh6Ehg5OiweRfhMhBpw3F3OA6EAfGbGHvSyXRqNjmkWXK57W7RwMj ym78DjAfEHpAeQwkBWcAW6cQvAufLst6115RnDGgboXmythFr0eQPw+BU77YY3cs7lcs rggdVF6ES5oHFohA/00sXCURu+H0bXoCCciaGQwnULEJFYzCoskF511lQnoszeov0jMA xhS5hgb15NZ2z1fWexJ9RN6MKKOncUrxC1fJtKO894vILK1EGkTy+x3DMgCtc91vilpW m/5Q== X-Gm-Message-State: AOJu0Ywz+Smvf5fUZDjgxs4wy1HJ5Grzi3Uw/rmJxUQ4sbFXunNlSlRd i8sbPuHg642xk2xb45XMmdrJ+WF6BipcmSF8iTRMsvF1Lqwwi+Acmads5ecN5/foXvyWipjaTYs i X-Google-Smtp-Source: AGHT+IEBXluKVIcgYEXMNqhn8o98ctkqvjHt3mNorwGjYRNT/NJ+u70P6y5LlaRfMJ7Pee7O5rdP2A== X-Received: by 2002:a05:6602:4ed7:b0:7d5:ddc8:504d with SMTP id gk23-20020a0566024ed700b007d5ddc8504dmr180218iob.0.1712849582880; Thu, 11 Apr 2024 08:33:02 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.33.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:33:01 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 048/437] ubifs: convert to read/write iterators Date: Thu, 11 Apr 2024 09:13:08 -0600 Message-ID: <20240411153126.16201-49-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- fs/ubifs/debug.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/fs/ubifs/debug.c b/fs/ubifs/debug.c index ac77ac1fd73e..2d63f57aca6f 100644 --- a/fs/ubifs/debug.c +++ b/fs/ubifs/debug.c @@ -2728,6 +2728,7 @@ static ssize_t dfs_file_read(struct file *file, char = __user *u, size_t count, =20 return provide_user_output(val, u, count, ppos); } +FOPS_READ_ITER_HELPER(dfs_file_read); =20 /** * interpret_user_input - interpret user debugfs file input. @@ -2801,11 +2802,12 @@ static ssize_t dfs_file_write(struct file *file, co= nst char __user *u, =20 return count; } +FOPS_WRITE_ITER_HELPER(dfs_file_write); =20 static const struct file_operations dfs_fops =3D { .open =3D dfs_file_open, - .read =3D dfs_file_read, - .write =3D dfs_file_write, + .read_iter =3D dfs_file_read_iter, + .write_iter =3D dfs_file_write_iter, .owner =3D THIS_MODULE, .llseek =3D no_llseek, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f44.google.com (mail-io1-f44.google.com [209.85.166.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 E8702633FE for ; Thu, 11 Apr 2024 15:33:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849587; cv=none; b=Qaj5sxjRz7HTgT/m2GR295sp7lC9kzPSUofSk4Tke2gJbmgLiUzCiY4FGsWmii3pGHFSyt5Pqq+wTR6VYZVFWcNLLZ+2yZwebCOZbZlcK0SCzoQKApDHdVfJNyBZ0hIIj5zq+QCu8iNpoD18cozr8SdnB/rr2hC3ZURGR75y8Zk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849587; c=relaxed/simple; bh=r61+X9nse5GdL0xP9XGOtlPPjs63tdsfCiTgWIm731w=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=P5Qedsv2X9erWYudKfImDwaYfyN4ReBteSH/PXwy4Fxfo5HWvECHsHRJJ0js4aK/xLavxJuMqvZlMveZBfDocdVMH9l2GB7q7Iu1lCjGLuvoLXMr4Yc44QmmJg7luyiPVb/ULAqsuD2Pz+nb71Chygtz/KsMjbBnmC4saUQYErM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=21wII/8A; arc=none smtp.client-ip=209.85.166.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="21wII/8A" Received: by mail-io1-f44.google.com with SMTP id ca18e2360f4ac-7d6112ba6baso57965939f.1 for ; Thu, 11 Apr 2024 08:33:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849585; x=1713454385; 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=+csp6tEDNXsIebOPAwRBqaO3HCxKbRxFbSXk6qUvjbo=; b=21wII/8AuLr8iyExh2r1kL2wON+g1QY7kBac1gxON45nWakgr+EAB4dK0TTInmyaNY C3ODAOpq2NV8QjCDP6NQrQrz2QN1N7MiRT5HO39Gsw9xZMC9V6fdOe2AVTJktV3p80Uc JqKceH2DrD3T29yg2/KdPhatcfdUwyXfAh0exw/qLnreh5bv2FWqSHFRPCN2x1hpHBgA LK/HE1JDQSwOKQv3645l6unsHR4KM3EEPVwPtaxJNrTbIzHTGtieJwYPPwVdh9Totdse 3UbDUWtZia5ny+cg6NVqOCvGfPCi4az587pcZgwdWaMfSq89WFWpO+MD1+7Tj8Mdr/be mdVw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849585; x=1713454385; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=+csp6tEDNXsIebOPAwRBqaO3HCxKbRxFbSXk6qUvjbo=; b=NlCV4g1US1qfL/+YS/gWl4s3Ss1qlDj6o8ehYoPK8EB4TOQGNrkVaNsw9QbtOz4fKY FoFK8blfE6Pxz9MrMd19BVTt2RBOzTEsS9OCeHsKXRfx7HGTgHDB7h4cho83Q64NgKcx HG+K/hZ3jGmm6izZHQs04E36nJqEA02ixsvhFhURCghXeUREF5mEBHszScRWjE5Q4tYF sRe2CZGmEOPwD6bekKgsuc7m57S0KzEwYcR+YgEtzzXcp2hqPjAtLOclMuo4ODcn1gdo no7KqepmGeUzSkhEnE8L472bpc1/HIDsN1P+U29za/Uc67/jJcl3NO8n7tzkE7C5FDl3 cf2A== X-Gm-Message-State: AOJu0YzDrem3NEnvmvaNNhUvVGiUTf/ehmFgmWgiic//rePW01VRO9jp PmJqIr8/xDeF+KdGuEx8S1/j0E8RgYg13BhHR+sWWVoJElgsbFR0zTOOXiL9HvnKQvGolbYD2iZ O X-Google-Smtp-Source: AGHT+IHG18/kk79JizQ//D+b9px4T+FMYpKl4FiYs/5UZkHrTVH3YIMS5jdDfV5tx9WvSRrPpHLeAg== X-Received: by 2002:a05:6602:38d:b0:7d6:513b:254 with SMTP id f13-20020a056602038d00b007d6513b0254mr172846iov.2.1712849584825; Thu, 11 Apr 2024 08:33:04 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.33.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:33:03 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 049/437] fuse: convert to read/write iterators Date: Thu, 11 Apr 2024 09:13:09 -0600 Message-ID: <20240411153126.16201-50-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- fs/fuse/control.c | 34 ++++++++++++++++++---------------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/fs/fuse/control.c b/fs/fuse/control.c index 97ac994ff78f..0ca1d1f418c3 100644 --- a/fs/fuse/control.c +++ b/fs/fuse/control.c @@ -31,37 +31,36 @@ static struct fuse_conn *fuse_ctl_file_conn_get(struct = file *file) return fc; } =20 -static ssize_t fuse_conn_abort_write(struct file *file, const char __user = *buf, - size_t count, loff_t *ppos) +static ssize_t fuse_conn_abort_write(struct kiocb *iocb, struct iov_iter *= from) { - struct fuse_conn *fc =3D fuse_ctl_file_conn_get(file); + struct fuse_conn *fc =3D fuse_ctl_file_conn_get(iocb->ki_filp); if (fc) { if (fc->abort_err) fc->aborted =3D true; fuse_abort_conn(fc); fuse_conn_put(fc); } - return count; + return iov_iter_count(from); } =20 -static ssize_t fuse_conn_waiting_read(struct file *file, char __user *buf, - size_t len, loff_t *ppos) +static ssize_t fuse_conn_waiting_read_iter(struct kiocb *iocb, + struct iov_iter *to) { char tmp[32]; size_t size; =20 - if (!*ppos) { + if (!iocb->ki_pos) { long value; - struct fuse_conn *fc =3D fuse_ctl_file_conn_get(file); + struct fuse_conn *fc =3D fuse_ctl_file_conn_get(iocb->ki_filp); if (!fc) return 0; =20 value =3D atomic_read(&fc->num_waiting); - file->private_data =3D (void *)value; + iocb->ki_filp->private_data =3D (void *)value; fuse_conn_put(fc); } - size =3D sprintf(tmp, "%ld\n", (long)file->private_data); - return simple_read_from_buffer(buf, len, ppos, tmp, size); + size =3D sprintf(tmp, "%ld\n", (long)iocb->ki_filp->private_data); + return simple_copy_to_iter(tmp, &iocb->ki_pos, size, to); } =20 static ssize_t fuse_conn_limit_read(struct file *file, char __user *buf, @@ -115,6 +114,7 @@ static ssize_t fuse_conn_max_background_read(struct fil= e *file, =20 return fuse_conn_limit_read(file, buf, len, ppos, val); } +FOPS_READ_ITER_HELPER(fuse_conn_max_background_read); =20 static ssize_t fuse_conn_max_background_write(struct file *file, const char __user *buf, @@ -140,6 +140,7 @@ static ssize_t fuse_conn_max_background_write(struct fi= le *file, =20 return ret; } +FOPS_WRITE_ITER_HELPER(fuse_conn_max_background_write); =20 static ssize_t fuse_conn_congestion_threshold_read(struct file *file, char __user *buf, size_t len, @@ -179,30 +180,31 @@ static ssize_t fuse_conn_congestion_threshold_write(s= truct file *file, out: return ret; } +FOPS_WRITE_ITER_HELPER(fuse_conn_congestion_threshold_write); =20 static const struct file_operations fuse_ctl_abort_ops =3D { .open =3D nonseekable_open, - .write =3D fuse_conn_abort_write, + .write_iter =3D fuse_conn_abort_write, .llseek =3D no_llseek, }; =20 static const struct file_operations fuse_ctl_waiting_ops =3D { .open =3D nonseekable_open, - .read =3D fuse_conn_waiting_read, + .read_iter =3D fuse_conn_waiting_read_iter, .llseek =3D no_llseek, }; =20 static const struct file_operations fuse_conn_max_background_ops =3D { .open =3D nonseekable_open, - .read =3D fuse_conn_max_background_read, - .write =3D fuse_conn_max_background_write, + .read_iter =3D fuse_conn_max_background_read_iter, + .write_iter =3D fuse_conn_max_background_write_iter, .llseek =3D no_llseek, }; =20 static const struct file_operations fuse_conn_congestion_threshold_ops =3D= { .open =3D nonseekable_open, .read =3D fuse_conn_congestion_threshold_read, - .write =3D fuse_conn_congestion_threshold_write, + .write_iter =3D fuse_conn_congestion_threshold_write_iter, .llseek =3D no_llseek, }; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f52.google.com (mail-io1-f52.google.com [209.85.166.52]) (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 A697E69D2C for ; Thu, 11 Apr 2024 15:33:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849589; cv=none; b=u4Y6LGz5zGeY81p0HKPArL/zSDibIkdnxiXkxEJkqQFhfFKDKZitlFT8uigqX6xu7UCVrqc6DUZB5bJ6j2ppF7+i652qbkVScV8Y0u1eY9ryOxf2em3mpWTU1BF/eCzmjV6p6RlV60UiMOIQAHUrPtOjDsVTix/xo7iCf/ckgF4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849589; c=relaxed/simple; bh=M+7fxfPhgKLnD8LbIhts9aMTRx5G6pM5NvUn5ahRO4w=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=GiMLzogkElbwDpjVlanz+Ef9Z91TEvzwekOxcx/MF9oCCXde5uTiJLykmKwh4m1F2/vxq3esBuBP6thUiwl8d7yy0MEsCbsWUMiEtH4PIhBpn+h4P93oxFtiGvvOOkwthKzB5YlgDoIAQUCXEzs6PkTdWSU01tm82J568NkzBTs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=c4zFXziB; arc=none smtp.client-ip=209.85.166.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="c4zFXziB" Received: by mail-io1-f52.google.com with SMTP id ca18e2360f4ac-7d6112ba6baso57966739f.1 for ; Thu, 11 Apr 2024 08:33:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849586; x=1713454386; 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=s0IGfdOIPPmeBHN1Rz28VFhxzC+Bi4+cAJUVksCjDgs=; b=c4zFXziBLhg75SBqzqOJvNfDWubW2RzdMuS/9kAScPXUrAQ6SMskJj3jZkVnrijM3b ArvtGV636/kILb39/nSTnV+oARccTKirW56H+dbf21aIS9tRWcVqwF2GJObcxYcj6D1T aZ3oGrQHAb2S7BHwK85CwvD5KVAGDMUu5W5IUOiBrwVLvpsFv4IL0N8lEChlc16KAVTm 2mZn7SdNUd7NK58gsYMLckuwrKUEgvujK93lWDlNH7c9rMhA5NF/pD1mDy48fPmSkSaV o29Hum/vqWFhjUdFh2mzx9CweQTrYkLgfuS/DuxQhH1h1Q/g+DtAJ3Kq7dbj7HtvzqsC hBow== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849586; x=1713454386; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=s0IGfdOIPPmeBHN1Rz28VFhxzC+Bi4+cAJUVksCjDgs=; b=HB8u5vC/8/EEnN2mQ1quoHJfkcX+jg7SB4lh0bLswMQbWrDx2ZYL3trs8MWiDkQtWx XE/jWlYXV4fjaQehUch9bD2+GKnSsfUtvOjtrY02BLsWdUs/XZRgF0EhLncTKqAo1j0p 6SuQyuZ4HMO2nq4+LofniPzjBnJGb4q/J+zeDoHSUXafnAyePXsLV70zHiphHw0nmxc8 5/7LIRm0f+zdSPO2TYiyuNxBDG1Lr0gj6oW6ULIjGbP5MLwgkRGVRdRo4heJ6iuZ5Um3 g2txL6uu7HRxSmnTXMKsZb9PyVoYVL/r17OPhWTNDF5M8K+OLHqY5Hvio7wbMVX7hzJZ 5iSw== X-Gm-Message-State: AOJu0YyO/WSgiBsX65bGejxWqaVFQ8HDMSK+OWnuilRROmCPl0BgzglQ X9fZmURhQG5Oy7PIJhtR72coeVC1GUxkbQgM7B1gAO21b0EZ4BVNvhKYIPg0/kuief6J4+1A3p2 N X-Google-Smtp-Source: AGHT+IFN9/+IJc+cOsx8ZC4d01Q8oHlMSChj50vecTIMfMi3bICzJ35xAFPEHG5yYOqsR4GVsSGkjg== X-Received: by 2002:a6b:cd08:0:b0:7d5:fe3e:90ff with SMTP id d8-20020a6bcd08000000b007d5fe3e90ffmr200047iog.0.1712849586507; Thu, 11 Apr 2024 08:33:06 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.33.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:33:05 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 050/437] staging: convert drivers to read/write iterators Date: Thu, 11 Apr 2024 09:13:10 -0600 Message-ID: <20240411153126.16201-51-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/staging/axis-fifo/axis-fifo.c | 22 ++++++++++------------ drivers/staging/pi433/pi433_if.c | 13 +++++++------ drivers/staging/vme_user/vme_user.c | 6 ++++-- 3 files changed, 21 insertions(+), 20 deletions(-) diff --git a/drivers/staging/axis-fifo/axis-fifo.c b/drivers/staging/axis-f= ifo/axis-fifo.c index c51818c56dd2..ba8e08be0daf 100644 --- a/drivers/staging/axis-fifo/axis-fifo.c +++ b/drivers/staging/axis-fifo/axis-fifo.c @@ -345,10 +345,10 @@ static void reset_ip_core(struct axis_fifo *fifo) * Returns the number of bytes read from the device or negative error code * on failure. */ -static ssize_t axis_fifo_read(struct file *f, char __user *buf, - size_t len, loff_t *off) +static ssize_t axis_fifo_read(struct kiocb *iocb, struct iov_iter *to) { - struct axis_fifo *fifo =3D (struct axis_fifo *)f->private_data; + struct axis_fifo *fifo =3D iocb->ki_filp->private_data; + size_t len =3D iov_iter_count(to); size_t bytes_available; unsigned int words_available; unsigned int copied; @@ -431,8 +431,7 @@ static ssize_t axis_fifo_read(struct file *f, char __us= er *buf, XLLF_RDFD_OFFSET); } =20 - if (copy_to_user(buf + copied * sizeof(u32), tmp_buf, - copy * sizeof(u32))) { + if (!copy_to_iter_full(tmp_buf, copy * sizeof(u32), to)) { reset_ip_core(fifo); ret =3D -EFAULT; goto end_unlock; @@ -465,10 +464,10 @@ static ssize_t axis_fifo_read(struct file *f, char __= user *buf, * Returns the number of bytes written to the device or negative error code * on failure. */ -static ssize_t axis_fifo_write(struct file *f, const char __user *buf, - size_t len, loff_t *off) +static ssize_t axis_fifo_write(struct kiocb *iocb, struct iov_iter *from) { - struct axis_fifo *fifo =3D (struct axis_fifo *)f->private_data; + struct axis_fifo *fifo =3D iocb->ki_filp->private_data; + size_t len =3D iov_iter_count(from); unsigned int words_to_write; unsigned int copied; unsigned int copy; @@ -540,8 +539,7 @@ static ssize_t axis_fifo_write(struct file *f, const ch= ar __user *buf, while (words_to_write > 0) { copy =3D min(words_to_write, WRITE_BUF_SIZE); =20 - if (copy_from_user(tmp_buf, buf + copied * sizeof(u32), - copy * sizeof(u32))) { + if (!copy_from_iter_full(tmp_buf, copy * sizeof(u32), from)) { reset_ip_core(fifo); ret =3D -EFAULT; goto end_unlock; @@ -712,8 +710,8 @@ static const struct file_operations fops =3D { .owner =3D THIS_MODULE, .open =3D axis_fifo_open, .release =3D axis_fifo_close, - .read =3D axis_fifo_read, - .write =3D axis_fifo_write + .read_iter =3D axis_fifo_read, + .write_iter =3D axis_fifo_write, }; =20 /* read named property from the device tree */ diff --git a/drivers/staging/pi433/pi433_if.c b/drivers/staging/pi433/pi433= _if.c index b6c4917d515e..f6563e3a7603 100644 --- a/drivers/staging/pi433/pi433_if.c +++ b/drivers/staging/pi433/pi433_if.c @@ -765,11 +765,11 @@ static int pi433_tx_thread(void *data) =20 /*------------------------------------------------------------------------= -*/ =20 -static ssize_t -pi433_read(struct file *filp, char __user *buf, size_t size, loff_t *f_pos) +static ssize_t pi433_read(struct kiocb *iocb, struct iov_iter *to) { struct pi433_instance *instance; struct pi433_device *device; + size_t size =3D iov_iter_count(to); int bytes_received; ssize_t retval; =20 @@ -777,7 +777,7 @@ pi433_read(struct file *filp, char __user *buf, size_t = size, loff_t *f_pos) if (size > MAX_MSG_SIZE) return -EMSGSIZE; =20 - instance =3D filp->private_data; + instance =3D iocb->ki_filp->private_data; device =3D instance->device; =20 /* just one read request at a time */ @@ -802,7 +802,7 @@ pi433_read(struct file *filp, char __user *buf, size_t = size, loff_t *f_pos) =20 /* if read was successful copy to user space*/ if (bytes_received > 0) { - retval =3D copy_to_user(buf, device->rx_buffer, bytes_received); + retval =3D !copy_to_iter_full(device->rx_buffer, bytes_received, to); if (retval) return -EFAULT; } @@ -883,6 +883,7 @@ pi433_write(struct file *filp, const char __user *buf, mutex_unlock(&device->tx_fifo_lock); return -EAGAIN; } +FOPS_WRITE_ITER_HELPER(pi433_write); =20 static long pi433_ioctl(struct file *filp, unsigned int cmd, unsigned long= arg) { @@ -1094,8 +1095,8 @@ static const struct file_operations pi433_fops =3D { * gets more complete API coverage. It'll simplify things * too, except for the locking. */ - .write =3D pi433_write, - .read =3D pi433_read, + .write_iter =3D pi433_write_iter, + .read_iter =3D pi433_read, .unlocked_ioctl =3D pi433_ioctl, .compat_ioctl =3D compat_ptr_ioctl, .open =3D pi433_open, diff --git a/drivers/staging/vme_user/vme_user.c b/drivers/staging/vme_user= /vme_user.c index 36183f923768..4ca38d0af25a 100644 --- a/drivers/staging/vme_user/vme_user.c +++ b/drivers/staging/vme_user/vme_user.c @@ -216,6 +216,7 @@ static ssize_t vme_user_read(struct file *file, char __= user *buf, size_t count, =20 return retval; } +FOPS_READ_ITER_HELPER(vme_user_read); =20 static ssize_t vme_user_write(struct file *file, const char __user *buf, size_t count, loff_t *ppos) @@ -259,6 +260,7 @@ static ssize_t vme_user_write(struct file *file, const = char __user *buf, =20 return retval; } +FOPS_WRITE_ITER_HELPER(vme_user_write); =20 static loff_t vme_user_llseek(struct file *file, loff_t off, int whence) { @@ -492,8 +494,8 @@ static int vme_user_mmap(struct file *file, struct vm_a= rea_struct *vma) } =20 static const struct file_operations vme_user_fops =3D { - .read =3D vme_user_read, - .write =3D vme_user_write, + .read_iter =3D vme_user_read_iter, + .write_iter =3D vme_user_write_iter, .llseek =3D vme_user_llseek, .unlocked_ioctl =3D vme_user_unlocked_ioctl, .compat_ioctl =3D compat_ptr_ioctl, --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f45.google.com (mail-io1-f45.google.com [209.85.166.45]) (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 9E7EA6CDB3 for ; Thu, 11 Apr 2024 15:33:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849592; cv=none; b=ZOAOLP4TvlR90dndX1kt0ed7hP0nho3eFF+hnSFz808KmnYCPa1i/DLZETTiSEhONmyV1Ly3I+B/ek9QM2R7vfE+CsTqqHbZlxy4++e74z92U0heFRsJvqC1wXM+bXT1LTBWsfSor2msY8KV1fGg4Za4wpZ2QjfMBZ98+9ILD2I= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849592; c=relaxed/simple; bh=sTP8rsrKxUZBohRj1v3SSYyY04HA7Nmsipa22jIW3Uw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Q9sUOmsBDaUtZgFymBaCHqcYPWJW32Z+Y2Ady06QnmI4DlJEpQXpoUC1O3PQhVB/4UXm/cRps6o6cFofoUcPZNVPgc4yVBdwF+MC+CXWAw+MKW9KVyUJvFs1FcFzhcFvgNCD+/zx4gUa1/2OP2Ds/H1MvT3KrwFLcBvmQkS9uPw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=wofaxCjC; arc=none smtp.client-ip=209.85.166.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="wofaxCjC" Received: by mail-io1-f45.google.com with SMTP id ca18e2360f4ac-7cc0e831e11so170444339f.1 for ; Thu, 11 Apr 2024 08:33:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849588; x=1713454388; 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=4S4qyslAavPK8ZPFMWkHgRsl95Bjo1/MpiDGtaiWSMU=; b=wofaxCjClRkcrY8mZBFmFL8z2gz55753GhZFxD0h6h9f+KzjBHpuRGQ0naoqlh8YUS v8GnkCiIjeEAoVjG2cm3ghwzpFYNGSNc7CcKgKZ/EMZzgqPnFr2T30gcIgOESuIqBTk9 vE7/0tvy3OxSjCFtG5/artWtx9bSWln9A/3mT8eDhGCyOovJbJf0HTd0JbeRgXM2jyPm I7aosk+WWCm2porx5B6XBn8xmPf/E/hFPI1nSEE0yFA8uHdoskPkr4yklHWeRxo5mqC1 iAmsSVSkfJutrwC5OeLJDrkQD2Bt/ySU+8y+z+qQMDo1NRAPeuT1rcZ4LkyAN/uCojR3 yjow== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849588; x=1713454388; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=4S4qyslAavPK8ZPFMWkHgRsl95Bjo1/MpiDGtaiWSMU=; b=Az+FbPsuVOODVRkiMFGZCazWHuyXa+wkL6R2YN9WDq4FZtaV+rrg4IFmrFbc6gKrnS xTEiT5ZyvYwn0eCPoYsl4NuRZ2Z91WTal9TxS+q1kfajl7ST5QFqnqG/X7LlGkW3uMTN jL517+hD2UU5jva35xF+caMdodxcIBqCyxfWKc302rHtouagGbpf2fbKT9BBlu2dVolm R0sHOFMzhZvjuYALoyvvqj3sMzAJ1LsCzuULG1JbejhjxBMmML56eugzJXtdmW6uedcT 26pg05Fvxcs6N/nROVLZJ+UhbyEZhgg5nJ6CEADIFoLXmRP+Y/9jw+gSWE8pUGcJVNsS whAg== X-Gm-Message-State: AOJu0Yyce99lfgaty8CZ6yKJ4Ys1xtomlI/zNGyzTT1WF1ClAs62AtF8 q+eKP2rLwrMVfXIk8qK/YRu/8zEjXc2X7YoTO02RMMjKfmy2NS/EfYAQkWZWyEUrCFAhCKkPaH4 y X-Google-Smtp-Source: AGHT+IFDznKLj7AbuI+y5QWIcZ8ghthMmNGsTTAO78MLXp8ZB/1JY2P3Xe0s2Zpgwk3zOX+ZDe+ksg== X-Received: by 2002:a6b:5b10:0:b0:7d0:bd2b:43ba with SMTP id v16-20020a6b5b10000000b007d0bd2b43bamr213962ioh.0.1712849588298; Thu, 11 Apr 2024 08:33:08 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.33.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:33:06 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 051/437] Bluetooth: convert to read/write iterators Date: Thu, 11 Apr 2024 09:13:11 -0600 Message-ID: <20240411153126.16201-52-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- net/bluetooth/6lowpan.c | 12 ++- net/bluetooth/hci_debugfs.c | 150 ++++++++++++++++-------------------- net/bluetooth/selftest.c | 9 +-- net/bluetooth/smp.c | 9 +-- 4 files changed, 80 insertions(+), 100 deletions(-) diff --git a/net/bluetooth/6lowpan.c b/net/bluetooth/6lowpan.c index 27520a8a486f..74e8ce90f12b 100644 --- a/net/bluetooth/6lowpan.c +++ b/net/bluetooth/6lowpan.c @@ -1079,19 +1079,17 @@ static int lowpan_enable_get(void *data, u64 *val) DEFINE_DEBUGFS_ATTRIBUTE(lowpan_enable_fops, lowpan_enable_get, lowpan_enable_set, "%llu\n"); =20 -static ssize_t lowpan_control_write(struct file *fp, - const char __user *user_buffer, - size_t count, - loff_t *position) +static ssize_t lowpan_control_write(struct kiocb *iocb, struct iov_iter *f= rom) { char buf[32]; + size_t count =3D iov_iter_count(from); size_t buf_size =3D min(count, sizeof(buf) - 1); int ret; bdaddr_t addr; u8 addr_type; struct l2cap_conn *conn =3D NULL; =20 - if (copy_from_user(buf, user_buffer, buf_size)) + if (!copy_to_iter_full(buf, buf_size, from)) return -EFAULT; =20 buf[buf_size] =3D '\0'; @@ -1173,8 +1171,8 @@ static int lowpan_control_open(struct inode *inode, s= truct file *file) =20 static const struct file_operations lowpan_control_fops =3D { .open =3D lowpan_control_open, - .read =3D seq_read, - .write =3D lowpan_control_write, + .read_iter =3D seq_read_iter, + .write_iter =3D lowpan_control_write, .llseek =3D seq_lseek, .release =3D single_release, }; diff --git a/net/bluetooth/hci_debugfs.c b/net/bluetooth/hci_debugfs.c index ce3ff2fa72e5..736c265e3ddf 100644 --- a/net/bluetooth/hci_debugfs.c +++ b/net/bluetooth/hci_debugfs.c @@ -32,31 +32,28 @@ #include "hci_debugfs.h" =20 #define DEFINE_QUIRK_ATTRIBUTE(__name, __quirk) \ -static ssize_t __name ## _read(struct file *file, \ - char __user *user_buf, \ - size_t count, loff_t *ppos) \ +static ssize_t __name ## _read(struct kiocb *iocb, struct iov_iter *to) = \ { \ - struct hci_dev *hdev =3D file->private_data; \ + struct hci_dev *hdev =3D iocb->ki_filp->private_data; \ char buf[3]; \ \ buf[0] =3D test_bit(__quirk, &hdev->quirks) ? 'Y' : 'N'; \ buf[1] =3D '\n'; \ buf[2] =3D '\0'; \ - return simple_read_from_buffer(user_buf, count, ppos, buf, 2); \ + return simple_copy_to_iter(buf, &iocb->ki_pos, 2, to); \ } \ \ -static ssize_t __name ## _write(struct file *file, \ - const char __user *user_buf, \ - size_t count, loff_t *ppos) \ +static ssize_t __name ## _write(struct kiocb *iocb, struct iov_iter *from)= \ { \ - struct hci_dev *hdev =3D file->private_data; \ + struct hci_dev *hdev =3D iocb->ki_filp->private_data; \ + size_t count =3D iov_iter_count(from); \ bool enable; \ int err; \ \ if (test_bit(HCI_UP, &hdev->flags)) \ return -EBUSY; \ \ - err =3D kstrtobool_from_user(user_buf, count, &enable); \ + err =3D kstrtobool_from_iter(from, count, &enable); \ if (err) \ return err; \ \ @@ -70,8 +67,8 @@ static ssize_t __name ## _write(struct file *file, = \ \ static const struct file_operations __name ## _fops =3D { \ .open =3D simple_open, \ - .read =3D __name ## _read, \ - .write =3D __name ## _write, \ + .read_iter =3D __name ## _read, \ + .write_iter =3D __name ## _write, \ .llseek =3D default_llseek, \ } \ =20 @@ -274,39 +271,37 @@ static int conn_info_max_age_get(void *data, u64 *val) DEFINE_DEBUGFS_ATTRIBUTE(conn_info_max_age_fops, conn_info_max_age_get, conn_info_max_age_set, "%llu\n"); =20 -static ssize_t use_debug_keys_read(struct file *file, char __user *user_bu= f, - size_t count, loff_t *ppos) +static ssize_t use_debug_keys_read(struct kiocb *iocb, struct iov_iter *to) { - struct hci_dev *hdev =3D file->private_data; + struct hci_dev *hdev =3D iocb->ki_filp->private_data; char buf[3]; =20 buf[0] =3D hci_dev_test_flag(hdev, HCI_USE_DEBUG_KEYS) ? 'Y' : 'N'; buf[1] =3D '\n'; buf[2] =3D '\0'; - return simple_read_from_buffer(user_buf, count, ppos, buf, 2); + return simple_copy_to_iter(buf, &iocb->ki_pos, 2, to); } =20 static const struct file_operations use_debug_keys_fops =3D { .open =3D simple_open, - .read =3D use_debug_keys_read, + .read_iter =3D use_debug_keys_read, .llseek =3D default_llseek, }; =20 -static ssize_t sc_only_mode_read(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t sc_only_mode_read(struct kiocb *iocb, struct iov_iter *to) { - struct hci_dev *hdev =3D file->private_data; + struct hci_dev *hdev =3D iocb->ki_filp->private_data; char buf[3]; =20 buf[0] =3D hci_dev_test_flag(hdev, HCI_SC_ONLY) ? 'Y' : 'N'; buf[1] =3D '\n'; buf[2] =3D '\0'; - return simple_read_from_buffer(user_buf, count, ppos, buf, 2); + return simple_copy_to_iter(buf, &iocb->ki_pos, 2, to); } =20 static const struct file_operations sc_only_mode_fops =3D { .open =3D simple_open, - .read =3D sc_only_mode_read, + .read_iter =3D sc_only_mode_read, .llseek =3D default_llseek, }; =20 @@ -428,21 +423,20 @@ static int voice_setting_get(void *data, u64 *val) DEFINE_DEBUGFS_ATTRIBUTE(voice_setting_fops, voice_setting_get, NULL, "0x%4.4llx\n"); =20 -static ssize_t ssp_debug_mode_read(struct file *file, char __user *user_bu= f, - size_t count, loff_t *ppos) +static ssize_t ssp_debug_mode_read(struct kiocb *iocb, struct iov_iter *to) { - struct hci_dev *hdev =3D file->private_data; + struct hci_dev *hdev =3D iocb->ki_filp->private_data; char buf[3]; =20 buf[0] =3D hdev->ssp_debug_mode ? 'Y' : 'N'; buf[1] =3D '\n'; buf[2] =3D '\0'; - return simple_read_from_buffer(user_buf, count, ppos, buf, 2); + return simple_copy_to_iter(buf, &iocb->ki_pos, 2, to); } =20 static const struct file_operations ssp_debug_mode_fops =3D { .open =3D simple_open, - .read =3D ssp_debug_mode_read, + .read_iter =3D ssp_debug_mode_read, .llseek =3D default_llseek, }; =20 @@ -500,28 +494,25 @@ static int auto_accept_delay_get(void *data, u64 *val) DEFINE_DEBUGFS_ATTRIBUTE(auto_accept_delay_fops, auto_accept_delay_get, auto_accept_delay_set, "%llu\n"); =20 -static ssize_t force_bredr_smp_read(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t force_bredr_smp_read(struct kiocb *iocb, struct iov_iter *t= o) { - struct hci_dev *hdev =3D file->private_data; + struct hci_dev *hdev =3D iocb->ki_filp->private_data; char buf[3]; =20 buf[0] =3D hci_dev_test_flag(hdev, HCI_FORCE_BREDR_SMP) ? 'Y' : 'N'; buf[1] =3D '\n'; buf[2] =3D '\0'; - return simple_read_from_buffer(user_buf, count, ppos, buf, 2); + return simple_copy_to_iter(buf, &iocb->ki_pos, 2, to); } =20 -static ssize_t force_bredr_smp_write(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t force_bredr_smp_write(struct kiocb *iocb, struct iov_iter *= from) { - struct hci_dev *hdev =3D file->private_data; + struct hci_dev *hdev =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); bool enable; int err; =20 - err =3D kstrtobool_from_user(user_buf, count, &enable); + err =3D kstrtobool_from_iter(from, count, &enable); if (err) return err; =20 @@ -534,8 +525,8 @@ static ssize_t force_bredr_smp_write(struct file *file, =20 static const struct file_operations force_bredr_smp_fops =3D { .open =3D simple_open, - .read =3D force_bredr_smp_read, - .write =3D force_bredr_smp_write, + .read_iter =3D force_bredr_smp_read, + .write_iter =3D force_bredr_smp_write, .llseek =3D default_llseek, }; =20 @@ -745,31 +736,29 @@ static int static_address_show(struct seq_file *f, vo= id *p) =20 DEFINE_SHOW_ATTRIBUTE(static_address); =20 -static ssize_t force_static_address_read(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t force_static_address_read(struct kiocb *iocb, struct iov_it= er *to) { - struct hci_dev *hdev =3D file->private_data; + struct hci_dev *hdev =3D iocb->ki_filp->private_data; char buf[3]; =20 buf[0] =3D hci_dev_test_flag(hdev, HCI_FORCE_STATIC_ADDR) ? 'Y' : 'N'; buf[1] =3D '\n'; buf[2] =3D '\0'; - return simple_read_from_buffer(user_buf, count, ppos, buf, 2); + return simple_copy_to_iter(buf, &iocb->ki_pos, 2, to); } =20 -static ssize_t force_static_address_write(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t force_static_address_write(struct kiocb *iocb, + struct iov_iter *from) { - struct hci_dev *hdev =3D file->private_data; + struct hci_dev *hdev =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); bool enable; int err; =20 if (hdev_is_powered(hdev)) return -EBUSY; =20 - err =3D kstrtobool_from_user(user_buf, count, &enable); + err =3D kstrtobool_from_iter(from, count, &enable); if (err) return err; =20 @@ -783,8 +772,8 @@ static ssize_t force_static_address_write(struct file *= file, =20 static const struct file_operations force_static_address_fops =3D { .open =3D simple_open, - .read =3D force_static_address_read, - .write =3D force_static_address_write, + .read_iter =3D force_static_address_read, + .write_iter =3D force_static_address_write, .llseek =3D default_llseek, }; =20 @@ -1147,29 +1136,26 @@ DEFINE_DEBUGFS_ATTRIBUTE(auth_payload_timeout_fops, auth_payload_timeout_get, auth_payload_timeout_set, "%llu\n"); =20 -static ssize_t force_no_mitm_read(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t force_no_mitm_read(struct kiocb *iocb, struct iov_iter *to) { - struct hci_dev *hdev =3D file->private_data; + struct hci_dev *hdev =3D iocb->ki_filp->private_data; char buf[3]; =20 buf[0] =3D hci_dev_test_flag(hdev, HCI_FORCE_NO_MITM) ? 'Y' : 'N'; buf[1] =3D '\n'; buf[2] =3D '\0'; - return simple_read_from_buffer(user_buf, count, ppos, buf, 2); + return simple_copy_to_iter(buf, &iocb->ki_pos, 2, to); } =20 -static ssize_t force_no_mitm_write(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t force_no_mitm_write(struct kiocb *iocb, struct iov_iter *fr= om) { - struct hci_dev *hdev =3D file->private_data; + struct hci_dev *hdev =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); char buf[32]; size_t buf_size =3D min(count, (sizeof(buf) - 1)); bool enable; =20 - if (copy_from_user(buf, user_buf, buf_size)) + if (!copy_from_iter_full(buf, buf_size, from)) return -EFAULT; =20 buf[buf_size] =3D '\0'; @@ -1186,8 +1172,8 @@ static ssize_t force_no_mitm_write(struct file *file, =20 static const struct file_operations force_no_mitm_fops =3D { .open =3D simple_open, - .read =3D force_no_mitm_read, - .write =3D force_no_mitm_write, + .read_iter =3D force_no_mitm_read, + .write_iter =3D force_no_mitm_write, .llseek =3D default_llseek, }; =20 @@ -1273,22 +1259,21 @@ void hci_debugfs_create_conn(struct hci_conn *conn) conn->debugfs =3D debugfs_create_dir(name, hdev->debugfs); } =20 -static ssize_t dut_mode_read(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t dut_mode_read(struct kiocb *iocb, struct iov_iter *to) { - struct hci_dev *hdev =3D file->private_data; + struct hci_dev *hdev =3D iocb->ki_filp->private_data; char buf[3]; =20 buf[0] =3D hci_dev_test_flag(hdev, HCI_DUT_MODE) ? 'Y' : 'N'; buf[1] =3D '\n'; buf[2] =3D '\0'; - return simple_read_from_buffer(user_buf, count, ppos, buf, 2); + return simple_copy_to_iter(buf, &iocb->ki_pos, 2, to); } =20 -static ssize_t dut_mode_write(struct file *file, const char __user *user_b= uf, - size_t count, loff_t *ppos) +static ssize_t dut_mode_write(struct kiocb *iocb, struct iov_iter *from) { - struct hci_dev *hdev =3D file->private_data; + struct hci_dev *hdev =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); struct sk_buff *skb; bool enable; int err; @@ -1296,7 +1281,7 @@ static ssize_t dut_mode_write(struct file *file, cons= t char __user *user_buf, if (!test_bit(HCI_UP, &hdev->flags)) return -ENETDOWN; =20 - err =3D kstrtobool_from_user(user_buf, count, &enable); + err =3D kstrtobool_from_iter(from, count, &enable); if (err) return err; =20 @@ -1324,31 +1309,30 @@ static ssize_t dut_mode_write(struct file *file, co= nst char __user *user_buf, =20 static const struct file_operations dut_mode_fops =3D { .open =3D simple_open, - .read =3D dut_mode_read, - .write =3D dut_mode_write, + .read_iter =3D dut_mode_read, + .write_iter =3D dut_mode_write, .llseek =3D default_llseek, }; =20 -static ssize_t vendor_diag_read(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t vendor_diag_read(struct kiocb *iocb, struct iov_iter *to) { - struct hci_dev *hdev =3D file->private_data; + struct hci_dev *hdev =3D iocb->ki_filp->private_data; char buf[3]; =20 buf[0] =3D hci_dev_test_flag(hdev, HCI_VENDOR_DIAG) ? 'Y' : 'N'; buf[1] =3D '\n'; buf[2] =3D '\0'; - return simple_read_from_buffer(user_buf, count, ppos, buf, 2); + return simple_copy_to_iter(buf, &iocb->ki_pos, 2, to); } =20 -static ssize_t vendor_diag_write(struct file *file, const char __user *use= r_buf, - size_t count, loff_t *ppos) +static ssize_t vendor_diag_write(struct kiocb *iocb, struct iov_iter *from) { - struct hci_dev *hdev =3D file->private_data; + struct hci_dev *hdev =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); bool enable; int err; =20 - err =3D kstrtobool_from_user(user_buf, count, &enable); + err =3D kstrtobool_from_iter(from, count, &enable); if (err) return err; =20 @@ -1380,8 +1364,8 @@ static ssize_t vendor_diag_write(struct file *file, c= onst char __user *user_buf, =20 static const struct file_operations vendor_diag_fops =3D { .open =3D simple_open, - .read =3D vendor_diag_read, - .write =3D vendor_diag_write, + .read_iter =3D vendor_diag_read, + .write_iter =3D vendor_diag_write, .llseek =3D default_llseek, }; =20 diff --git a/net/bluetooth/selftest.c b/net/bluetooth/selftest.c index f49604d44b87..e8f3e5d63c01 100644 --- a/net/bluetooth/selftest.c +++ b/net/bluetooth/selftest.c @@ -183,16 +183,15 @@ static int __init test_ecdh_sample(struct crypto_kpp = *tfm, const u8 priv_a[32], =20 static char test_ecdh_buffer[32]; =20 -static ssize_t test_ecdh_read(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t test_ecdh_read(struct kiocb *iocb, struct iov_iter *to) { - return simple_read_from_buffer(user_buf, count, ppos, test_ecdh_buffer, - strlen(test_ecdh_buffer)); + return simple_copy_to_iter(test_ecdh_buffer, &iocb->ki_pos, + strlen(test_ecdh_buffer), to); } =20 static const struct file_operations test_ecdh_fops =3D { .open =3D simple_open, - .read =3D test_ecdh_read, + .read_iter =3D test_ecdh_read, .llseek =3D default_llseek, }; =20 diff --git a/net/bluetooth/smp.c b/net/bluetooth/smp.c index 1e7ea3a4b7ef..fcd35201712b 100644 --- a/net/bluetooth/smp.c +++ b/net/bluetooth/smp.c @@ -3729,16 +3729,15 @@ static int __init test_h6(struct crypto_shash *tfm_= cmac) =20 static char test_smp_buffer[32]; =20 -static ssize_t test_smp_read(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t test_smp_read(struct kiocb *iocb, struct iov_iter *to) { - return simple_read_from_buffer(user_buf, count, ppos, test_smp_buffer, - strlen(test_smp_buffer)); + return simple_copy_to_iter(test_smp_buffer, &iocb->ki_pos, + strlen(test_smp_buffer), to); } =20 static const struct file_operations test_smp_fops =3D { .open =3D simple_open, - .read =3D test_smp_read, + .read_iter =3D test_smp_read, .llseek =3D default_llseek, }; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f41.google.com (mail-io1-f41.google.com [209.85.166.41]) (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 4671076036 for ; Thu, 11 Apr 2024 15:33:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849595; cv=none; b=iJpPYmgbYp8mbACc9Ll5Vg9EUE+aabkpYTwvYiYOr6nPQCUVXeapISE3GLI9D/C3SxaBqWP7Ghcpqpc4wVnDJijpBNF9lv/GNlHPtOObvmPG6l0peQt3h0s79Fxrw52S6vTDNIThxBN1j1A0s2R8ivEBWeJwRiqtaOD+xFJ3V0k= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849595; c=relaxed/simple; bh=JMHGbsbH3/p2/2Pc/GsuMM/kShjNXLRyyXRzZxTSHCs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=TSLZIYPYb209iAjXaCJcAc9BL2NGeGoX260SvYgnnOqfyqT+5duDfO7kXTEKiPoRj6cml2ddwSgQDNrrPXB0rXHkheNEpxvk+buf9quJ6tubk06AN+kpSlbizTPhUdXvqlD8Mb0egQ0KcqSBkOGuXZEs1i7Mfe9Z/1LCb0sGais= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=q/pGY313; arc=none smtp.client-ip=209.85.166.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="q/pGY313" Received: by mail-io1-f41.google.com with SMTP id ca18e2360f4ac-7d5ed700c2dso16112339f.0 for ; Thu, 11 Apr 2024 08:33:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849591; x=1713454391; 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=YTHLSN6q6uDO3ubR9Id6JaOEnIGD3H3ZO0XrATdmC0g=; b=q/pGY3133vTWwS9qCsSSLlFPekpt+9fnjwAsMbuLPo3pNXEgaY+2izFkoTF6ea8qrc Vkvz7oor8dVc8IYtn4nPaD9T8CfZ1cFKIus8jO/Q0OFW47oWomGuewFvcBfzDmrutaCp WxvyZMZ0OCcpdB6Z8BSj3VXEmM2p6m9ueCvYadeWFObC8sPmoKszSNqj1Bz34X+MA+LF llTGBOIHOSQ9yJVG8nzYIM/sL9jPCX69oLSYor8ig//cAJ5YaQYZMsmK4vUX0yqQLNvw rXlEicd6QgL+75e/OEQmOOs3Vmoz97A2RnGrA7siuLWsszH4XLGobx3hpJQbV4vvF6aC oGOA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849591; x=1713454391; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=YTHLSN6q6uDO3ubR9Id6JaOEnIGD3H3ZO0XrATdmC0g=; b=bXIbK6s9WZOkY89rHIkqq40l2dJfHa/SS+7gijdhmOlb+ES6Iz0aJu8jDeZPLqUe0y fjkikjKWy4JC4iWQOJERN19dw4r+2e70XXbb3pKTjQlhKx3QHKa05a8z8x7P8NTUrZks 4eAknnzsYt/vEl6x2cDTo93o/GmOQD1rGiFZr2l0A8wo/Bt868z5qHLHLgsS0EWoEbAP TTwXA83+P7RbfdXfH3r3GJslzbQ4kp+IntN3SHLlrnCd6ckhedrcuvu3sEn2rbDR2kfE hiJ2DqeBc/WSwGqGkTraT6Zd9WtT/k3kdJnZG9fsq3NJ6Hd8OaYfomw2ppVf7cAnbV+6 N1SA== X-Gm-Message-State: AOJu0YyoLucFDn7f1OiA0BDKe/zvhTBX3O5KnOTWtNX+EL0MWg4gwgjI S/q+Q1VWlQLDHBLY1y0AV1tv1/fgKWRgHU8L3LHkxMKhDjsPQq3059khUZki8n9PAJl49XzBdCE C X-Google-Smtp-Source: AGHT+IGPK/u5RJI76LgOr0uPz+eCZoHTSC3jic5M9NKggCvRRnrlUaAKe9kqv2XHLl8mHtIGGiAnNQ== X-Received: by 2002:a6b:f312:0:b0:7d5:de23:13a9 with SMTP id m18-20020a6bf312000000b007d5de2313a9mr151755ioh.1.1712849590412; Thu, 11 Apr 2024 08:33:10 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.33.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:33:08 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 052/437] net: mac80211: convert to read/write iterators Date: Thu, 11 Apr 2024 09:13:12 -0600 Message-ID: <20240411153126.16201-53-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- include/net/cfg80211.h | 24 +-- net/mac80211/debugfs.c | 185 +++++++++------------ net/mac80211/debugfs.h | 4 +- net/mac80211/debugfs_key.c | 81 ++++----- net/mac80211/debugfs_netdev.c | 126 ++++++-------- net/mac80211/debugfs_sta.c | 146 +++++++--------- net/mac80211/rate.c | 10 +- net/mac80211/rc80211_minstrel_ht_debugfs.c | 11 +- net/wireless/debugfs.c | 36 ++-- 9 files changed, 260 insertions(+), 363 deletions(-) diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h index 1e09329acc42..4c33df652196 100644 --- a/include/net/cfg80211.h +++ b/include/net/cfg80211.h @@ -9469,21 +9469,17 @@ void cfg80211_schedule_channels_check(struct wirele= ss_dev *wdev); /** * wiphy_locked_debugfs_read - do a locked read in debugfs * @wiphy: the wiphy to use - * @file: the file being read + * @iocb: metadata for the IO * @buf: the buffer to fill and then read from * @bufsize: size of the buffer - * @userbuf: the user buffer to copy to - * @count: read count - * @ppos: read position + * @to: the user buffer to copy to * @handler: the read handler to call (under wiphy lock) * @data: additional data to pass to the read handler */ -ssize_t wiphy_locked_debugfs_read(struct wiphy *wiphy, struct file *file, +ssize_t wiphy_locked_debugfs_read(struct wiphy *wiphy, struct kiocb *iocb, char *buf, size_t bufsize, - char __user *userbuf, size_t count, - loff_t *ppos, + struct iov_iter *to, ssize_t (*handler)(struct wiphy *wiphy, - struct file *file, char *buf, size_t bufsize, void *data), @@ -9492,21 +9488,19 @@ ssize_t wiphy_locked_debugfs_read(struct wiphy *wip= hy, struct file *file, /** * wiphy_locked_debugfs_write - do a locked write in debugfs * @wiphy: the wiphy to use - * @file: the file being written to + * @iocb: metadata for the IO * @buf: the buffer to copy the user data to * @bufsize: size of the buffer - * @userbuf: the user buffer to copy from - * @count: read count + * @from: the user buffer to copy from * @handler: the write handler to call (under wiphy lock) * @data: additional data to pass to the write handler */ -ssize_t wiphy_locked_debugfs_write(struct wiphy *wiphy, struct file *file, +ssize_t wiphy_locked_debugfs_write(struct wiphy *wiphy, struct kiocb *iocb, char *buf, size_t bufsize, - const char __user *userbuf, size_t count, + struct iov_iter *from, ssize_t (*handler)(struct wiphy *wiphy, - struct file *file, char *buf, - size_t count, + size_t bufsize, void *data), void *data); #endif diff --git a/net/mac80211/debugfs.c b/net/mac80211/debugfs.c index 2f68e92a7404..6d83b91373ce 100644 --- a/net/mac80211/debugfs.c +++ b/net/mac80211/debugfs.c @@ -17,8 +17,8 @@ =20 #define DEBUGFS_FORMAT_BUFFER_SIZE 100 =20 -int mac80211_format_buffer(char __user *userbuf, size_t count, - loff_t *ppos, char *fmt, ...) +int mac80211_format_buffer(struct kiocb *iocb, struct iov_iter *to, + char *fmt, ...) { va_list args; char buf[DEBUGFS_FORMAT_BUFFER_SIZE]; @@ -28,22 +28,20 @@ int mac80211_format_buffer(char __user *userbuf, size_t= count, res =3D vscnprintf(buf, sizeof(buf), fmt, args); va_end(args); =20 - return simple_read_from_buffer(userbuf, count, ppos, buf, res); + return simple_copy_to_iter(buf, &iocb->ki_pos, res, to); } =20 #define DEBUGFS_READONLY_FILE_FN(name, fmt, value...) \ -static ssize_t name## _read(struct file *file, char __user *userbuf, \ - size_t count, loff_t *ppos) \ +static ssize_t name## _read(struct kiocb *iocb, struct iov_iter *to) \ { \ - struct ieee80211_local *local =3D file->private_data; \ + struct ieee80211_local *local =3D iocb->ki_filp->private_data; \ \ - return mac80211_format_buffer(userbuf, count, ppos, \ - fmt "\n", ##value); \ -} + return mac80211_format_buffer(iocb, to, fmt "\n", ##value); \ +} \ =20 #define DEBUGFS_READONLY_FILE_OPS(name) \ static const struct file_operations name## _ops =3D { \ - .read =3D name## _read, \ + .read_iter =3D name## _read, \ .open =3D simple_open, \ .llseek =3D generic_file_llseek, \ }; @@ -72,12 +70,9 @@ DEBUGFS_READONLY_FILE(wep_iv, "%#08x", DEBUGFS_READONLY_FILE(rate_ctrl_alg, "%s", local->rate_ctrl ? local->rate_ctrl->ops->name : "hw/driver"); =20 -static ssize_t aqm_read(struct file *file, - char __user *user_buf, - size_t count, - loff_t *ppos) +static ssize_t aqm_read(struct kiocb *iocb, struct iov_iter *to) { - struct ieee80211_local *local =3D file->private_data; + struct ieee80211_local *local =3D iocb->ki_filp->private_data; struct fq *fq =3D &local->fq; char buf[200]; int len =3D 0; @@ -109,22 +104,19 @@ static ssize_t aqm_read(struct file *file, rcu_read_unlock(); spin_unlock_bh(&local->fq.lock); =20 - return simple_read_from_buffer(user_buf, count, ppos, - buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 -static ssize_t aqm_write(struct file *file, - const char __user *user_buf, - size_t count, - loff_t *ppos) +static ssize_t aqm_write(struct kiocb *iocb, struct iov_iter *from) { - struct ieee80211_local *local =3D file->private_data; + struct ieee80211_local *local =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); char buf[100]; =20 if (count >=3D sizeof(buf)) return -EINVAL; =20 - if (copy_from_user(buf, user_buf, count)) + if (!copy_from_iter(buf, count, from)) return -EFAULT; =20 if (count && buf[count - 1] =3D=3D '\n') @@ -143,17 +135,15 @@ static ssize_t aqm_write(struct file *file, } =20 static const struct file_operations aqm_ops =3D { - .write =3D aqm_write, - .read =3D aqm_read, + .write_iter =3D aqm_write, + .read_iter =3D aqm_read, .open =3D simple_open, .llseek =3D default_llseek, }; =20 -static ssize_t airtime_flags_read(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t airtime_flags_read(struct kiocb *iocb, struct iov_iter *to) { - struct ieee80211_local *local =3D file->private_data; + struct ieee80211_local *local =3D iocb->ki_filp->private_data; char buf[128] =3D {}, *pos, *end; =20 pos =3D buf; @@ -166,21 +156,19 @@ static ssize_t airtime_flags_read(struct file *file, pos +=3D scnprintf(pos, end - pos, "AIRTIME_RX\t(%lx)\n", AIRTIME_USE_RX); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, - strlen(buf)); + return simple_copy_to_iter(buf, &iocb->ki_pos, strlen(buf), to); } =20 -static ssize_t airtime_flags_write(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t airtime_flags_write(struct kiocb *iocb, struct iov_iter *fr= om) { - struct ieee80211_local *local =3D file->private_data; + struct ieee80211_local *local =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); char buf[16]; =20 if (count >=3D sizeof(buf)) return -EINVAL; =20 - if (copy_from_user(buf, user_buf, count)) + if (!copy_from_iter(buf, count, from)) return -EFAULT; =20 if (count && buf[count - 1] =3D=3D '\n') @@ -195,17 +183,15 @@ static ssize_t airtime_flags_write(struct file *file, } =20 static const struct file_operations airtime_flags_ops =3D { - .write =3D airtime_flags_write, - .read =3D airtime_flags_read, + .write_iter =3D airtime_flags_write, + .read_iter =3D airtime_flags_read, .open =3D simple_open, .llseek =3D default_llseek, }; =20 -static ssize_t aql_pending_read(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t aql_pending_read(struct kiocb *iocb, struct iov_iter *to) { - struct ieee80211_local *local =3D file->private_data; + struct ieee80211_local *local =3D iocb->ki_filp->private_data; char buf[400]; int len =3D 0; =20 @@ -221,22 +207,18 @@ static ssize_t aql_pending_read(struct file *file, atomic_read(&local->aql_ac_pending_airtime[IEEE80211_AC_BE]), atomic_read(&local->aql_ac_pending_airtime[IEEE80211_AC_BK]), atomic_read(&local->aql_total_pending_airtime)); - return simple_read_from_buffer(user_buf, count, ppos, - buf, len); + return simple_copy_to_iter( buf, &iocb->ki_pos, len, to); } =20 static const struct file_operations aql_pending_ops =3D { - .read =3D aql_pending_read, + .read_iter =3D aql_pending_read, .open =3D simple_open, .llseek =3D default_llseek, }; =20 -static ssize_t aql_txq_limit_read(struct file *file, - char __user *user_buf, - size_t count, - loff_t *ppos) +static ssize_t aql_txq_limit_read(struct kiocb *iocb, struct iov_iter *to) { - struct ieee80211_local *local =3D file->private_data; + struct ieee80211_local *local =3D iocb->ki_filp->private_data; char buf[400]; int len =3D 0; =20 @@ -254,24 +236,21 @@ static ssize_t aql_txq_limit_read(struct file *file, local->aql_txq_limit_high[IEEE80211_AC_BE], local->aql_txq_limit_low[IEEE80211_AC_BK], local->aql_txq_limit_high[IEEE80211_AC_BK]); - return simple_read_from_buffer(user_buf, count, ppos, - buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 -static ssize_t aql_txq_limit_write(struct file *file, - const char __user *user_buf, - size_t count, - loff_t *ppos) +static ssize_t aql_txq_limit_write(struct kiocb *iocb, struct iov_iter *fr= om) { - struct ieee80211_local *local =3D file->private_data; + struct ieee80211_local *local =3D iocb->ki_filp->private_data; char buf[100]; u32 ac, q_limit_low, q_limit_high, q_limit_low_old, q_limit_high_old; struct sta_info *sta; + size_t count =3D iov_iter_count(from); =20 if (count >=3D sizeof(buf)) return -EINVAL; =20 - if (copy_from_user(buf, user_buf, count)) + if (!copy_from_iter_full(buf, count, from)) return -EFAULT; =20 if (count && buf[count - 1] =3D=3D '\n') @@ -306,14 +285,13 @@ static ssize_t aql_txq_limit_write(struct file *file, } =20 static const struct file_operations aql_txq_limit_ops =3D { - .write =3D aql_txq_limit_write, - .read =3D aql_txq_limit_read, + .write_iter =3D aql_txq_limit_write, + .read_iter =3D aql_txq_limit_read, .open =3D simple_open, .llseek =3D default_llseek, }; =20 -static ssize_t aql_enable_read(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t aql_enable_read(struct kiocb *iocb, struct iov_iter *to) { char buf[3]; int len; @@ -321,20 +299,20 @@ static ssize_t aql_enable_read(struct file *file, cha= r __user *user_buf, len =3D scnprintf(buf, sizeof(buf), "%d\n", !static_key_false(&aql_disable.key)); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 -static ssize_t aql_enable_write(struct file *file, const char __user *user= _buf, - size_t count, loff_t *ppos) +static ssize_t aql_enable_write(struct kiocb *iocb, struct iov_iter *from) { bool aql_disabled =3D static_key_false(&aql_disable.key); + size_t count =3D iov_iter_count(from); char buf[3]; size_t len; =20 if (count > sizeof(buf)) return -EINVAL; =20 - if (copy_from_user(buf, user_buf, count)) + if (!copy_from_iter_full(buf, count, from)) return -EFAULT; =20 buf[sizeof(buf) - 1] =3D '\0'; @@ -356,39 +334,33 @@ static ssize_t aql_enable_write(struct file *file, co= nst char __user *user_buf, } =20 static const struct file_operations aql_enable_ops =3D { - .write =3D aql_enable_write, - .read =3D aql_enable_read, + .write_iter =3D aql_enable_write, + .read_iter =3D aql_enable_read, .open =3D simple_open, .llseek =3D default_llseek, }; =20 -static ssize_t force_tx_status_read(struct file *file, - char __user *user_buf, - size_t count, - loff_t *ppos) +static ssize_t force_tx_status_read(struct kiocb *iocb, struct iov_iter *t= o) { - struct ieee80211_local *local =3D file->private_data; + struct ieee80211_local *local =3D iocb->ki_filp->private_data; char buf[3]; int len =3D 0; =20 len =3D scnprintf(buf, sizeof(buf), "%d\n", (int)local->force_tx_status); =20 - return simple_read_from_buffer(user_buf, count, ppos, - buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 -static ssize_t force_tx_status_write(struct file *file, - const char __user *user_buf, - size_t count, - loff_t *ppos) +static ssize_t force_tx_status_write(struct kiocb *iocb, struct iov_iter *= from) { - struct ieee80211_local *local =3D file->private_data; + struct ieee80211_local *local =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); char buf[3]; =20 if (count >=3D sizeof(buf)) return -EINVAL; =20 - if (copy_from_user(buf, user_buf, count)) + if (!copy_from_iter_full(buf, count, from)) return -EFAULT; =20 if (count && buf[count - 1] =3D=3D '\n') @@ -407,17 +379,17 @@ static ssize_t force_tx_status_write(struct file *fil= e, } =20 static const struct file_operations force_tx_status_ops =3D { - .write =3D force_tx_status_write, - .read =3D force_tx_status_read, + .write_iter =3D force_tx_status_write, + .read_iter =3D force_tx_status_read, .open =3D simple_open, .llseek =3D default_llseek, }; =20 #ifdef CONFIG_PM -static ssize_t reset_write(struct file *file, const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t reset_write(struct kiocb *iocb, struct iov_iter *from) { - struct ieee80211_local *local =3D file->private_data; + struct ieee80211_local *local =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); int ret; =20 rtnl_lock(); @@ -435,7 +407,7 @@ static ssize_t reset_write(struct file *file, const cha= r __user *user_buf, } =20 static const struct file_operations reset_ops =3D { - .write =3D reset_write, + .write_iter =3D reset_write, .open =3D simple_open, .llseek =3D noop_llseek, }; @@ -502,10 +474,9 @@ static const char *hw_flag_names[] =3D { #undef FLAG }; =20 -static ssize_t hwflags_read(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t hwflags_read(struct kiocb *iocb, struct iov_iter *to) { - struct ieee80211_local *local =3D file->private_data; + struct ieee80211_local *local =3D iocb->ki_filp->private_data; size_t bufsz =3D 30 * NUM_IEEE80211_HW_FLAGS; char *buf =3D kzalloc(bufsz, GFP_KERNEL); char *pos =3D buf, *end =3D buf + bufsz - 1; @@ -526,15 +497,14 @@ static ssize_t hwflags_read(struct file *file, char _= _user *user_buf, hw_flag_names[i]); } =20 - rv =3D simple_read_from_buffer(user_buf, count, ppos, buf, strlen(buf)); + rv =3D simple_copy_to_iter(buf, &iocb->ki_pos, strlen(buf), to); kfree(buf); return rv; } =20 -static ssize_t misc_read(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t misc_read(struct kiocb *iocb, struct iov_iter *to) { - struct ieee80211_local *local =3D file->private_data; + struct ieee80211_local *local =3D iocb->ki_filp->private_data; /* Max len of each line is 16 characters, plus 9 for 'pending:\n' */ size_t bufsz =3D IEEE80211_MAX_QUEUES * 16 + 9; char *buf; @@ -558,15 +528,14 @@ static ssize_t misc_read(struct file *file, char __us= er *user_buf, i, ln); } =20 - rv =3D simple_read_from_buffer(user_buf, count, ppos, buf, strlen(buf)); + rv =3D simple_copy_to_iter(buf, &iocb->ki_pos, strlen(buf), to); kfree(buf); return rv; } =20 -static ssize_t queues_read(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t queues_read(struct kiocb *iocb, struct iov_iter *to) { - struct ieee80211_local *local =3D file->private_data; + struct ieee80211_local *local =3D iocb->ki_filp->private_data; unsigned long flags; char buf[IEEE80211_MAX_QUEUES * 20]; int q, res =3D 0; @@ -578,7 +547,7 @@ static ssize_t queues_read(struct file *file, char __us= er *user_buf, skb_queue_len(&local->pending[q])); spin_unlock_irqrestore(&local->queue_stop_reason_lock, flags); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, res); + return simple_copy_to_iter(buf, &iocb->ki_pos, res, to); } =20 DEBUGFS_READONLY_FILE_OPS(hwflags); @@ -588,8 +557,7 @@ DEBUGFS_READONLY_FILE_OPS(misc); /* statistics stuff */ =20 static ssize_t format_devstat_counter(struct ieee80211_local *local, - char __user *userbuf, - size_t count, loff_t *ppos, + struct kiocb *iocb, struct iov_iter *to, int (*printvalue)(struct ieee80211_low_level_stats *stats, char *buf, int buflen)) { @@ -603,7 +571,7 @@ static ssize_t format_devstat_counter(struct ieee80211_= local *local, if (res) return res; res =3D printvalue(&stats, buf, sizeof(buf)); - return simple_read_from_buffer(userbuf, count, ppos, buf, res); + return simple_copy_to_iter(buf, &iocb->ki_pos, res, to); } =20 #define DEBUGFS_DEVSTATS_FILE(name) \ @@ -612,19 +580,16 @@ static int print_devstats_##name(struct ieee80211_low= _level_stats *stats,\ { \ return scnprintf(buf, buflen, "%u\n", stats->name); \ } \ -static ssize_t stats_ ##name## _read(struct file *file, \ - char __user *userbuf, \ - size_t count, loff_t *ppos) \ +static ssize_t stats_ ##name## _read(struct kiocb *iocb, \ + struct iov_iter *to) \ { \ - return format_devstat_counter(file->private_data, \ - userbuf, \ - count, \ - ppos, \ + return format_devstat_counter(iocb->ki_filp->private_data, \ + iocb, to, \ print_devstats_##name); \ } \ \ static const struct file_operations stats_ ##name## _ops =3D { \ - .read =3D stats_ ##name## _read, \ + .read_iter =3D stats_ ##name## _read, \ .open =3D simple_open, \ .llseek =3D generic_file_llseek, \ }; diff --git a/net/mac80211/debugfs.h b/net/mac80211/debugfs.h index d2c424787463..786f08f19713 100644 --- a/net/mac80211/debugfs.h +++ b/net/mac80211/debugfs.h @@ -6,8 +6,8 @@ =20 #ifdef CONFIG_MAC80211_DEBUGFS void debugfs_hw_add(struct ieee80211_local *local); -int __printf(4, 5) mac80211_format_buffer(char __user *userbuf, size_t cou= nt, - loff_t *ppos, char *fmt, ...); +int __printf(3, 4) mac80211_format_buffer(struct kiocb *iocb, + struct iov_iter *to, char *fmt, ...); #else static inline void debugfs_hw_add(struct ieee80211_local *local) { diff --git a/net/mac80211/debugfs_key.c b/net/mac80211/debugfs_key.c index 7e54da508765..decf19878e79 100644 --- a/net/mac80211/debugfs_key.c +++ b/net/mac80211/debugfs_key.c @@ -15,27 +15,27 @@ #include "debugfs_key.h" =20 #define KEY_READ(name, prop, format_string) \ -static ssize_t key_##name##_read(struct file *file, \ - char __user *userbuf, \ - size_t count, loff_t *ppos) \ +static ssize_t key_##name##_read(struct kiocb *iocb, \ + struct iov_iter *to) \ { \ - struct ieee80211_key *key =3D file->private_data; \ - return mac80211_format_buffer(userbuf, count, ppos, \ - format_string, key->prop); \ -} + struct ieee80211_key *key =3D iocb->ki_filp->private_data; \ + return mac80211_format_buffer(iocb, to, format_string, \ + key->prop); \ +} \ + #define KEY_READ_X(name) KEY_READ(name, name, "0x%x\n") =20 #define KEY_OPS(name) \ static const struct file_operations key_ ##name## _ops =3D { \ - .read =3D key_##name##_read, \ + .read_iter =3D key_##name##_read, \ .open =3D simple_open, \ .llseek =3D generic_file_llseek, \ } =20 #define KEY_OPS_W(name) \ static const struct file_operations key_ ##name## _ops =3D { \ - .read =3D key_##name##_read, \ - .write =3D key_##name##_write, \ + .read_iter =3D key_##name##_read, \ + .write_iter =3D key_##name##_write, \ .open =3D simple_open, \ .llseek =3D generic_file_llseek, \ } @@ -50,7 +50,7 @@ static const struct file_operations key_ ##name## _ops = =3D { \ =20 #define KEY_CONF_OPS(name) \ static const struct file_operations key_ ##name## _ops =3D { \ - .read =3D key_conf_##name##_read, \ + .read_iter =3D key_conf_##name##_read, \ .open =3D simple_open, \ .llseek =3D generic_file_llseek, \ } @@ -66,24 +66,22 @@ KEY_FILE(flags, X); KEY_READ(ifindex, sdata->name, "%s\n"); KEY_OPS(ifindex); =20 -static ssize_t key_algorithm_read(struct file *file, - char __user *userbuf, - size_t count, loff_t *ppos) +static ssize_t key_algorithm_read(struct kiocb *iocb, struct iov_iter *to) { char buf[15]; - struct ieee80211_key *key =3D file->private_data; + struct ieee80211_key *key =3D iocb->ki_filp->private_data; u32 c =3D key->conf.cipher; =20 sprintf(buf, "%.2x-%.2x-%.2x:%d\n", c >> 24, (c >> 16) & 0xff, (c >> 8) & 0xff, c & 0xff); - return simple_read_from_buffer(userbuf, count, ppos, buf, strlen(buf)); + return simple_copy_to_iter(buf, &iocb->ki_pos, strlen(buf), to); } KEY_OPS(algorithm); =20 -static ssize_t key_tx_spec_write(struct file *file, const char __user *use= rbuf, - size_t count, loff_t *ppos) +static ssize_t key_tx_spec_write(struct kiocb *iocb, struct iov_iter *from) { - struct ieee80211_key *key =3D file->private_data; + struct ieee80211_key *key =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); u64 pn; int ret; =20 @@ -102,7 +100,7 @@ static ssize_t key_tx_spec_write(struct file *file, con= st char __user *userbuf, case WLAN_CIPHER_SUITE_BIP_GMAC_256: case WLAN_CIPHER_SUITE_GCMP: case WLAN_CIPHER_SUITE_GCMP_256: - ret =3D kstrtou64_from_user(userbuf, count, 16, &pn); + ret =3D kstrtou64_from_iter(from, count, 16, &pn); if (ret) return ret; /* PN is a 48-bit counter */ @@ -115,13 +113,12 @@ static ssize_t key_tx_spec_write(struct file *file, c= onst char __user *userbuf, } } =20 -static ssize_t key_tx_spec_read(struct file *file, char __user *userbuf, - size_t count, loff_t *ppos) +static ssize_t key_tx_spec_read(struct kiocb *iocb, struct iov_iter *to) { u64 pn; char buf[20]; int len; - struct ieee80211_key *key =3D file->private_data; + struct ieee80211_key *key =3D iocb->ki_filp->private_data; =20 switch (key->conf.cipher) { case WLAN_CIPHER_SUITE_WEP40: @@ -150,14 +147,13 @@ static ssize_t key_tx_spec_read(struct file *file, ch= ar __user *userbuf, default: return 0; } - return simple_read_from_buffer(userbuf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } KEY_OPS_W(tx_spec); =20 -static ssize_t key_rx_spec_read(struct file *file, char __user *userbuf, - size_t count, loff_t *ppos) +static ssize_t key_rx_spec_read(struct kiocb *iocb, struct iov_iter *to) { - struct ieee80211_key *key =3D file->private_data; + struct ieee80211_key *key =3D iocb->ki_filp->private_data; char buf[14*IEEE80211_NUM_TIDS+1], *p =3D buf; int i, len; const u8 *rpn; @@ -218,14 +214,13 @@ static ssize_t key_rx_spec_read(struct file *file, ch= ar __user *userbuf, default: return 0; } - return simple_read_from_buffer(userbuf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } KEY_OPS(rx_spec); =20 -static ssize_t key_replays_read(struct file *file, char __user *userbuf, - size_t count, loff_t *ppos) +static ssize_t key_replays_read(struct kiocb *iocb, struct iov_iter *to) { - struct ieee80211_key *key =3D file->private_data; + struct ieee80211_key *key =3D iocb->ki_filp->private_data; char buf[20]; int len; =20 @@ -251,14 +246,13 @@ static ssize_t key_replays_read(struct file *file, ch= ar __user *userbuf, default: return 0; } - return simple_read_from_buffer(userbuf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } KEY_OPS(replays); =20 -static ssize_t key_icverrors_read(struct file *file, char __user *userbuf, - size_t count, loff_t *ppos) +static ssize_t key_icverrors_read(struct kiocb *iocb, struct iov_iter *to) { - struct ieee80211_key *key =3D file->private_data; + struct ieee80211_key *key =3D iocb->ki_filp->private_data; char buf[20]; int len; =20 @@ -276,14 +270,13 @@ static ssize_t key_icverrors_read(struct file *file, = char __user *userbuf, default: return 0; } - return simple_read_from_buffer(userbuf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } KEY_OPS(icverrors); =20 -static ssize_t key_mic_failures_read(struct file *file, char __user *userb= uf, - size_t count, loff_t *ppos) +static ssize_t key_mic_failures_read(struct kiocb *iocb, struct iov_iter *= to) { - struct ieee80211_key *key =3D file->private_data; + struct ieee80211_key *key =3D iocb->ki_filp->private_data; char buf[20]; int len; =20 @@ -291,15 +284,13 @@ static ssize_t key_mic_failures_read(struct file *fil= e, char __user *userbuf, return -EINVAL; =20 len =3D scnprintf(buf, sizeof(buf), "%u\n", key->u.tkip.mic_failures); - - return simple_read_from_buffer(userbuf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } KEY_OPS(mic_failures); =20 -static ssize_t key_key_read(struct file *file, char __user *userbuf, - size_t count, loff_t *ppos) +static ssize_t key_key_read(struct kiocb *iocb, struct iov_iter *to) { - struct ieee80211_key *key =3D file->private_data; + struct ieee80211_key *key =3D iocb->ki_filp->private_data; int i, bufsize =3D 2 * key->conf.keylen + 2; char *buf =3D kmalloc(bufsize, GFP_KERNEL); char *p =3D buf; @@ -311,7 +302,7 @@ static ssize_t key_key_read(struct file *file, char __u= ser *userbuf, for (i =3D 0; i < key->conf.keylen; i++) p +=3D scnprintf(p, bufsize + buf - p, "%02x", key->conf.key[i]); p +=3D scnprintf(p, bufsize+buf-p, "\n"); - res =3D simple_read_from_buffer(userbuf, count, ppos, buf, p - buf); + res =3D simple_copy_to_iter(buf, &iocb->ki_pos, p - buf, to); kfree(buf); return res; } diff --git a/net/mac80211/debugfs_netdev.c b/net/mac80211/debugfs_netdev.c index 68596ef78b15..41f1072334c3 100644 --- a/net/mac80211/debugfs_netdev.c +++ b/net/mac80211/debugfs_netdev.c @@ -28,9 +28,7 @@ struct ieee80211_if_read_sdata_data { }; =20 static ssize_t ieee80211_if_read_sdata_handler(struct wiphy *wiphy, - struct file *file, - char *buf, - size_t bufsize, + char *buf, size_t bufsize, void *data) { struct ieee80211_if_read_sdata_data *d =3D data; @@ -39,12 +37,11 @@ static ssize_t ieee80211_if_read_sdata_handler(struct w= iphy *wiphy, } =20 static ssize_t ieee80211_if_read_sdata( - struct file *file, - char __user *userbuf, - size_t count, loff_t *ppos, + struct kiocb *iocb, + struct iov_iter *to, ssize_t (*format)(const struct ieee80211_sub_if_data *sdata, char *, int)) { - struct ieee80211_sub_if_data *sdata =3D file->private_data; + struct ieee80211_sub_if_data *sdata =3D iocb->ki_filp->private_data; struct ieee80211_if_read_sdata_data data =3D { .format =3D format, .sdata =3D sdata, @@ -52,44 +49,39 @@ static ssize_t ieee80211_if_read_sdata( char buf[200]; =20 return wiphy_locked_debugfs_read(sdata->local->hw.wiphy, - file, buf, sizeof(buf), - userbuf, count, ppos, + iocb, buf, sizeof(buf), to, ieee80211_if_read_sdata_handler, &data); } =20 struct ieee80211_if_write_sdata_data { - ssize_t (*write)(struct ieee80211_sub_if_data *, const char *, int); + ssize_t (*write)(struct ieee80211_sub_if_data *, char *, size_t); struct ieee80211_sub_if_data *sdata; }; =20 static ssize_t ieee80211_if_write_sdata_handler(struct wiphy *wiphy, - struct file *file, - char *buf, - size_t count, + char *buf, size_t bufsize, void *data) { struct ieee80211_if_write_sdata_data *d =3D data; =20 - return d->write(d->sdata, buf, count); + return d->write(d->sdata, buf, bufsize); } =20 static ssize_t ieee80211_if_write_sdata( - struct file *file, - const char __user *userbuf, - size_t count, loff_t *ppos, - ssize_t (*write)(struct ieee80211_sub_if_data *sdata, const char *, int)) + struct kiocb *iocb, + struct iov_iter *from, + ssize_t (*write)(struct ieee80211_sub_if_data *sdata, char *, size_t)) { - struct ieee80211_sub_if_data *sdata =3D file->private_data; + struct ieee80211_sub_if_data *sdata =3D iocb->ki_filp->private_data; struct ieee80211_if_write_sdata_data data =3D { .write =3D write, .sdata =3D sdata, }; char buf[64]; =20 - return wiphy_locked_debugfs_write(sdata->local->hw.wiphy, - file, buf, sizeof(buf), - userbuf, count, + return wiphy_locked_debugfs_write(sdata->local->hw.wiphy, iocb, + buf, sizeof(buf), from, ieee80211_if_write_sdata_handler, &data); } @@ -100,7 +92,6 @@ struct ieee80211_if_read_link_data { }; =20 static ssize_t ieee80211_if_read_link_handler(struct wiphy *wiphy, - struct file *file, char *buf, size_t bufsize, void *data) @@ -111,12 +102,11 @@ static ssize_t ieee80211_if_read_link_handler(struct = wiphy *wiphy, } =20 static ssize_t ieee80211_if_read_link( - struct file *file, - char __user *userbuf, - size_t count, loff_t *ppos, + struct kiocb *iocb, + struct iov_iter *to, ssize_t (*format)(const struct ieee80211_link_data *link, char *, int)) { - struct ieee80211_link_data *link =3D file->private_data; + struct ieee80211_link_data *link =3D iocb->ki_filp->private_data; struct ieee80211_if_read_link_data data =3D { .format =3D format, .link =3D link, @@ -124,8 +114,7 @@ static ssize_t ieee80211_if_read_link( char buf[200]; =20 return wiphy_locked_debugfs_read(link->sdata->local->hw.wiphy, - file, buf, sizeof(buf), - userbuf, count, ppos, + iocb, buf, sizeof(buf), to, ieee80211_if_read_link_handler, &data); } @@ -136,23 +125,19 @@ struct ieee80211_if_write_link_data { }; =20 static ssize_t ieee80211_if_write_link_handler(struct wiphy *wiphy, - struct file *file, - char *buf, - size_t count, + char *buf, size_t bufsize, void *data) { struct ieee80211_if_write_sdata_data *d =3D data; =20 - return d->write(d->sdata, buf, count); + return d->write(d->sdata, buf, bufsize); } =20 -static ssize_t ieee80211_if_write_link( - struct file *file, - const char __user *userbuf, - size_t count, loff_t *ppos, +static ssize_t ieee80211_if_write_link(struct kiocb *iocb, + struct iov_iter *from, ssize_t (*write)(struct ieee80211_link_data *link, const char *, int)) { - struct ieee80211_link_data *link =3D file->private_data; + struct ieee80211_link_data *link =3D iocb->ki_filp->private_data; struct ieee80211_if_write_link_data data =3D { .write =3D write, .link =3D link, @@ -160,8 +145,7 @@ static ssize_t ieee80211_if_write_link( char buf[64]; =20 return wiphy_locked_debugfs_write(link->sdata->local->hw.wiphy, - file, buf, sizeof(buf), - userbuf, count, + iocb, buf, sizeof(buf), from, ieee80211_if_write_link_handler, &data); } @@ -222,31 +206,27 @@ static ssize_t ieee80211_if_fmt_##name( \ =20 #define _IEEE80211_IF_FILE_OPS(name, _read, _write) \ static const struct file_operations name##_ops =3D { \ - .read =3D (_read), \ - .write =3D (_write), \ + .read_iter =3D (_read), \ + .write_iter =3D (_write), \ .open =3D simple_open, \ .llseek =3D generic_file_llseek, \ } =20 #define _IEEE80211_IF_FILE_R_FN(name) \ -static ssize_t ieee80211_if_read_##name(struct file *file, \ - char __user *userbuf, \ - size_t count, loff_t *ppos) \ +static ssize_t ieee80211_if_read_##name(struct kiocb *iocb, \ + struct iov_iter *to) \ { \ - return ieee80211_if_read_sdata(file, \ - userbuf, count, ppos, \ - ieee80211_if_fmt_##name); \ -} + return ieee80211_if_read_sdata(iocb, \ + to, ieee80211_if_fmt_##name); \ +} \ =20 #define _IEEE80211_IF_FILE_W_FN(name) \ -static ssize_t ieee80211_if_write_##name(struct file *file, \ - const char __user *userbuf, \ - size_t count, loff_t *ppos) \ +static ssize_t ieee80211_if_write_##name(struct kiocb *iocb, \ + struct iov_iter *from) \ { \ - return ieee80211_if_write_sdata(file, userbuf, \ - count, ppos, \ + return ieee80211_if_write_sdata(iocb, from, \ ieee80211_if_parse_##name); \ -} +} \ =20 #define IEEE80211_IF_FILE_R(name) \ _IEEE80211_IF_FILE_R_FN(name) \ @@ -267,24 +247,20 @@ static ssize_t ieee80211_if_write_##name(struct file = *file, \ IEEE80211_IF_FILE_R(name) =20 #define _IEEE80211_IF_LINK_R_FN(name) \ -static ssize_t ieee80211_if_read_##name(struct file *file, \ - char __user *userbuf, \ - size_t count, loff_t *ppos) \ +static ssize_t ieee80211_if_read_##name(struct kiocb *iocb, \ + struct iov_iter *to) \ { \ - return ieee80211_if_read_link(file, \ - userbuf, count, ppos, \ - ieee80211_if_fmt_##name); \ -} + return ieee80211_if_read_link(iocb, to, \ + ieee80211_if_fmt_##name); \ +} \ =20 #define _IEEE80211_IF_LINK_W_FN(name) \ -static ssize_t ieee80211_if_write_##name(struct file *file, \ - const char __user *userbuf, \ - size_t count, loff_t *ppos) \ +static ssize_t ieee80211_if_write_##name(struct kiocb *iocb, \ + struct iov_iter *from) \ { \ - return ieee80211_if_write_link(file, userbuf, \ - count, ppos, \ + return ieee80211_if_write_link(iocb, from, \ ieee80211_if_parse_##name); \ -} +} \ =20 #define IEEE80211_IF_LINK_FILE_R(name) \ _IEEE80211_IF_LINK_R_FN(name) \ @@ -441,7 +417,7 @@ static ssize_t ieee80211_if_parse_smps(struct ieee80211= _link_data *link, IEEE80211_IF_LINK_FILE_RW(smps); =20 static ssize_t ieee80211_if_parse_tkip_mic_test( - struct ieee80211_sub_if_data *sdata, const char *buf, int buflen) + struct ieee80211_sub_if_data *sdata, char *buf, size_t buflen) { struct ieee80211_local *local =3D sdata->local; u8 addr[ETH_ALEN]; @@ -504,7 +480,7 @@ static ssize_t ieee80211_if_parse_tkip_mic_test( IEEE80211_IF_FILE_W(tkip_mic_test); =20 static ssize_t ieee80211_if_parse_beacon_loss( - struct ieee80211_sub_if_data *sdata, const char *buf, int buflen) + struct ieee80211_sub_if_data *sdata, char *buf, size_t buflen) { if (!ieee80211_sdata_running(sdata) || !sdata->vif.cfg.assoc) return -ENOTCONN; @@ -524,7 +500,7 @@ static ssize_t ieee80211_if_fmt_uapsd_queues( } =20 static ssize_t ieee80211_if_parse_uapsd_queues( - struct ieee80211_sub_if_data *sdata, const char *buf, int buflen) + struct ieee80211_sub_if_data *sdata, char *buf, size_t buflen) { struct ieee80211_if_managed *ifmgd =3D &sdata->u.mgd; u8 val; @@ -552,7 +528,7 @@ static ssize_t ieee80211_if_fmt_uapsd_max_sp_len( } =20 static ssize_t ieee80211_if_parse_uapsd_max_sp_len( - struct ieee80211_sub_if_data *sdata, const char *buf, int buflen) + struct ieee80211_sub_if_data *sdata, char *buf, size_t buflen) { struct ieee80211_if_managed *ifmgd =3D &sdata->u.mgd; unsigned long val; @@ -584,7 +560,7 @@ static ssize_t ieee80211_if_fmt_tdls_wider_bw( } =20 static ssize_t ieee80211_if_parse_tdls_wider_bw( - struct ieee80211_sub_if_data *sdata, const char *buf, int buflen) + struct ieee80211_sub_if_data *sdata, char *buf, size_t buflen) { struct ieee80211_if_managed *ifmgd =3D &sdata->u.mgd; u8 val; @@ -665,7 +641,7 @@ static ssize_t ieee80211_if_fmt_tsf( } =20 static ssize_t ieee80211_if_parse_tsf( - struct ieee80211_sub_if_data *sdata, const char *buf, int buflen) + struct ieee80211_sub_if_data *sdata, char *buf, size_t buflen) { struct ieee80211_local *local =3D sdata->local; unsigned long long tsf; @@ -724,7 +700,7 @@ static ssize_t ieee80211_if_fmt_active_links(const stru= ct ieee80211_sub_if_data } =20 static ssize_t ieee80211_if_parse_active_links(struct ieee80211_sub_if_dat= a *sdata, - const char *buf, int buflen) + char *buf, size_t buflen) { u16 active_links; =20 diff --git a/net/mac80211/debugfs_sta.c b/net/mac80211/debugfs_sta.c index 1e9389c49a57..6a900c671ced 100644 --- a/net/mac80211/debugfs_sta.c +++ b/net/mac80211/debugfs_sta.c @@ -19,27 +19,27 @@ /* sta attributes */ =20 #define STA_READ(name, field, format_string) \ -static ssize_t sta_ ##name## _read(struct file *file, \ - char __user *userbuf, \ - size_t count, loff_t *ppos) \ +static ssize_t sta_ ##name## _read(struct kiocb *iocb, \ + struct iov_iter *to) \ { \ - struct sta_info *sta =3D file->private_data; \ - return mac80211_format_buffer(userbuf, count, ppos, \ - format_string, sta->field); \ -} + struct sta_info *sta =3D iocb->ki_filp->private_data; \ + return mac80211_format_buffer(iocb, to, format_string, \ + sta->field); \ +} \ + #define STA_READ_D(name, field) STA_READ(name, field, "%d\n") =20 #define STA_OPS(name) \ static const struct file_operations sta_ ##name## _ops =3D { \ - .read =3D sta_##name##_read, \ + .read_iter =3D sta_##name##_read, \ .open =3D simple_open, \ .llseek =3D generic_file_llseek, \ } =20 #define STA_OPS_RW(name) \ static const struct file_operations sta_ ##name## _ops =3D { \ - .read =3D sta_##name##_read, \ - .write =3D sta_##name##_write, \ + .read_iter =3D sta_##name##_read, \ + .write_iter =3D sta_##name##_write, \ .open =3D simple_open, \ .llseek =3D generic_file_llseek, \ } @@ -83,12 +83,11 @@ static const char * const sta_flag_names[] =3D { #undef FLAG }; =20 -static ssize_t sta_flags_read(struct file *file, char __user *userbuf, - size_t count, loff_t *ppos) +static ssize_t sta_flags_read(struct kiocb *iocb, struct iov_iter *to) { char buf[16 * NUM_WLAN_STA_FLAGS], *pos =3D buf; char *end =3D buf + sizeof(buf) - 1; - struct sta_info *sta =3D file->private_data; + struct sta_info *sta =3D iocb->ki_filp->private_data; unsigned int flg; =20 BUILD_BUG_ON(ARRAY_SIZE(sta_flag_names) !=3D NUM_WLAN_STA_FLAGS); @@ -99,15 +98,14 @@ static ssize_t sta_flags_read(struct file *file, char _= _user *userbuf, sta_flag_names[flg]); } =20 - return simple_read_from_buffer(userbuf, count, ppos, buf, strlen(buf)); + return simple_copy_to_iter(buf, &iocb->ki_pos, strlen(buf), to); } STA_OPS(flags); =20 -static ssize_t sta_num_ps_buf_frames_read(struct file *file, - char __user *userbuf, - size_t count, loff_t *ppos) +static ssize_t sta_num_ps_buf_frames_read(struct kiocb *iocb, + struct iov_iter *to) { - struct sta_info *sta =3D file->private_data; + struct sta_info *sta =3D iocb->ki_filp->private_data; char buf[17*IEEE80211_NUM_ACS], *p =3D buf; int ac; =20 @@ -115,30 +113,28 @@ static ssize_t sta_num_ps_buf_frames_read(struct file= *file, p +=3D scnprintf(p, sizeof(buf)+buf-p, "AC%d: %d\n", ac, skb_queue_len(&sta->ps_tx_buf[ac]) + skb_queue_len(&sta->tx_filtered[ac])); - return simple_read_from_buffer(userbuf, count, ppos, buf, p - buf); + return simple_copy_to_iter(buf, &iocb->ki_pos, p - buf, to); } STA_OPS(num_ps_buf_frames); =20 -static ssize_t sta_last_seq_ctrl_read(struct file *file, char __user *user= buf, - size_t count, loff_t *ppos) +static ssize_t sta_last_seq_ctrl_read(struct kiocb *iocb, struct iov_iter = *to) { char buf[15*IEEE80211_NUM_TIDS], *p =3D buf; int i; - struct sta_info *sta =3D file->private_data; + struct sta_info *sta =3D iocb->ki_filp->private_data; for (i =3D 0; i < IEEE80211_NUM_TIDS; i++) p +=3D scnprintf(p, sizeof(buf)+buf-p, "%x ", le16_to_cpu(sta->last_seq_ctrl[i])); p +=3D scnprintf(p, sizeof(buf)+buf-p, "\n"); - return simple_read_from_buffer(userbuf, count, ppos, buf, p - buf); + return simple_copy_to_iter(buf, &iocb->ki_pos, p - buf, to); } STA_OPS(last_seq_ctrl); =20 #define AQM_TXQ_ENTRY_LEN 130 =20 -static ssize_t sta_aqm_read(struct file *file, char __user *userbuf, - size_t count, loff_t *ppos) +static ssize_t sta_aqm_read(struct kiocb *iocb, struct iov_iter *to) { - struct sta_info *sta =3D file->private_data; + struct sta_info *sta =3D iocb->ki_filp->private_data; struct ieee80211_local *local =3D sta->local; size_t bufsz =3D AQM_TXQ_ENTRY_LEN * (IEEE80211_NUM_TIDS + 2); char *buf =3D kzalloc(bufsz, GFP_KERNEL), *p =3D buf; @@ -189,16 +185,15 @@ static ssize_t sta_aqm_read(struct file *file, char _= _user *userbuf, rcu_read_unlock(); spin_unlock_bh(&local->fq.lock); =20 - rv =3D simple_read_from_buffer(userbuf, count, ppos, buf, p - buf); + rv =3D simple_copy_to_iter(buf, &iocb->ki_pos, p - buf, to); kfree(buf); return rv; } STA_OPS(aqm); =20 -static ssize_t sta_airtime_read(struct file *file, char __user *userbuf, - size_t count, loff_t *ppos) +static ssize_t sta_airtime_read(struct kiocb *iocb, struct iov_iter *to) { - struct sta_info *sta =3D file->private_data; + struct sta_info *sta =3D iocb->ki_filp->private_data; struct ieee80211_local *local =3D sta->sdata->local; size_t bufsz =3D 400; char *buf =3D kzalloc(bufsz, GFP_KERNEL), *p =3D buf; @@ -224,15 +219,14 @@ static ssize_t sta_airtime_read(struct file *file, ch= ar __user *userbuf, rx_airtime, tx_airtime, sta->airtime_weight, deficit[0], deficit[1], deficit[2], deficit[3]); =20 - rv =3D simple_read_from_buffer(userbuf, count, ppos, buf, p - buf); + rv =3D simple_copy_to_iter(buf, &iocb->ki_pos, p - buf, to); kfree(buf); return rv; } =20 -static ssize_t sta_airtime_write(struct file *file, const char __user *use= rbuf, - size_t count, loff_t *ppos) +static ssize_t sta_airtime_write(struct kiocb *iocb, struct iov_iter *from) { - struct sta_info *sta =3D file->private_data; + struct sta_info *sta =3D iocb->ki_filp->private_data; struct ieee80211_local *local =3D sta->sdata->local; int ac; =20 @@ -244,14 +238,13 @@ static ssize_t sta_airtime_write(struct file *file, c= onst char __user *userbuf, spin_unlock_bh(&local->active_txq_lock[ac]); } =20 - return count; + return iov_iter_count(from); } STA_OPS_RW(airtime); =20 -static ssize_t sta_aql_read(struct file *file, char __user *userbuf, - size_t count, loff_t *ppos) +static ssize_t sta_aql_read(struct kiocb *iocb, struct iov_iter *to) { - struct sta_info *sta =3D file->private_data; + struct sta_info *sta =3D iocb->ki_filp->private_data; struct ieee80211_local *local =3D sta->sdata->local; size_t bufsz =3D 400; char *buf =3D kzalloc(bufsz, GFP_KERNEL), *p =3D buf; @@ -278,22 +271,22 @@ static ssize_t sta_aql_read(struct file *file, char _= _user *userbuf, q_limit_l[0], q_limit_h[0], q_limit_l[1], q_limit_h[1], q_limit_l[2], q_limit_h[2], q_limit_l[3], q_limit_h[3]); =20 - rv =3D simple_read_from_buffer(userbuf, count, ppos, buf, p - buf); + rv =3D simple_copy_to_iter(buf, &iocb->ki_pos, p - buf, to); kfree(buf); return rv; } =20 -static ssize_t sta_aql_write(struct file *file, const char __user *userbuf, - size_t count, loff_t *ppos) +static ssize_t sta_aql_write(struct kiocb *iocb, struct iov_iter *from) { - struct sta_info *sta =3D file->private_data; + struct sta_info *sta =3D iocb->ki_filp->private_data; u32 ac, q_limit_l, q_limit_h; char _buf[100] =3D {}, *buf =3D _buf; + size_t count =3D iov_iter_count(from); =20 if (count > sizeof(_buf)) return -EINVAL; =20 - if (copy_from_user(buf, userbuf, count)) + if (!copy_from_iter(buf, count, from)) return -EFAULT; =20 buf[sizeof(_buf) - 1] =3D '\0'; @@ -312,8 +305,8 @@ static ssize_t sta_aql_write(struct file *file, const c= har __user *userbuf, STA_OPS_RW(aql); =20 =20 -static ssize_t sta_agg_status_do_read(struct wiphy *wiphy, struct file *fi= le, - char *buf, size_t bufsz, void *data) +static ssize_t sta_agg_status_do_read(struct wiphy *wiphy, char *buf, + size_t bufsz, void *data) { struct sta_info *sta =3D data; char *p =3D buf; @@ -353,10 +346,9 @@ static ssize_t sta_agg_status_do_read(struct wiphy *wi= phy, struct file *file, return p - buf; } =20 -static ssize_t sta_agg_status_read(struct file *file, char __user *userbuf, - size_t count, loff_t *ppos) +static ssize_t sta_agg_status_read(struct kiocb *iocb, struct iov_iter *to) { - struct sta_info *sta =3D file->private_data; + struct sta_info *sta =3D iocb->ki_filp->private_data; struct wiphy *wiphy =3D sta->local->hw.wiphy; size_t bufsz =3D 71 + IEEE80211_NUM_TIDS * 40; char *buf =3D kmalloc(bufsz, GFP_KERNEL); @@ -365,16 +357,15 @@ static ssize_t sta_agg_status_read(struct file *file,= char __user *userbuf, if (!buf) return -ENOMEM; =20 - ret =3D wiphy_locked_debugfs_read(wiphy, file, buf, bufsz, - userbuf, count, ppos, - sta_agg_status_do_read, sta); + ret =3D wiphy_locked_debugfs_read(wiphy, iocb, buf, bufsz, + to, sta_agg_status_do_read, sta); kfree(buf); =20 return ret; } =20 -static ssize_t sta_agg_status_do_write(struct wiphy *wiphy, struct file *f= ile, - char *buf, size_t count, void *data) +static ssize_t sta_agg_status_do_write(struct wiphy *wiphy, char *buf, + size_t count, void *data) { struct sta_info *sta =3D data; bool start, tx; @@ -434,43 +425,37 @@ static ssize_t sta_agg_status_do_write(struct wiphy *= wiphy, struct file *file, return ret ?: count; } =20 -static ssize_t sta_agg_status_write(struct file *file, - const char __user *userbuf, - size_t count, loff_t *ppos) +static ssize_t sta_agg_status_write(struct kiocb *iocb, struct iov_iter *f= rom) { - struct sta_info *sta =3D file->private_data; + struct sta_info *sta =3D iocb->ki_filp->private_data; struct wiphy *wiphy =3D sta->local->hw.wiphy; char _buf[26]; =20 - return wiphy_locked_debugfs_write(wiphy, file, _buf, sizeof(_buf), - userbuf, count, - sta_agg_status_do_write, sta); + return wiphy_locked_debugfs_write(wiphy, iocb, _buf, sizeof(_buf), + from, sta_agg_status_do_write, sta); } STA_OPS_RW(agg_status); =20 /* link sta attributes */ #define LINK_STA_OPS(name) \ static const struct file_operations link_sta_ ##name## _ops =3D { \ - .read =3D link_sta_##name##_read, \ + .read_iter =3D link_sta_##name##_read, \ .open =3D simple_open, \ .llseek =3D generic_file_llseek, \ } =20 -static ssize_t link_sta_addr_read(struct file *file, char __user *userbuf, - size_t count, loff_t *ppos) +static ssize_t link_sta_addr_read(struct kiocb *iocb, struct iov_iter *to) { - struct link_sta_info *link_sta =3D file->private_data; + struct link_sta_info *link_sta =3D iocb->ki_filp->private_data; u8 mac[3 * ETH_ALEN + 1]; =20 snprintf(mac, sizeof(mac), "%pM\n", link_sta->pub->addr); =20 - return simple_read_from_buffer(userbuf, count, ppos, mac, 3 * ETH_ALEN); + return simple_copy_to_iter(mac, &iocb->ki_pos, 3 * ETH_ALEN, to); } - LINK_STA_OPS(addr); =20 -static ssize_t link_sta_ht_capa_read(struct file *file, char __user *userb= uf, - size_t count, loff_t *ppos) +static ssize_t link_sta_ht_capa_read(struct kiocb *iocb, struct iov_iter *= to) { #define PRINT_HT_CAP(_cond, _str) \ do { \ @@ -480,7 +465,7 @@ static ssize_t link_sta_ht_capa_read(struct file *file,= char __user *userbuf, char *buf, *p; int i; ssize_t bufsz =3D 512; - struct link_sta_info *link_sta =3D file->private_data; + struct link_sta_info *link_sta =3D iocb->ki_filp->private_data; struct ieee80211_sta_ht_cap *htc =3D &link_sta->pub->ht_cap; ssize_t ret; =20 @@ -554,17 +539,16 @@ static ssize_t link_sta_ht_capa_read(struct file *fil= e, char __user *userbuf, htc->mcs.tx_params); } =20 - ret =3D simple_read_from_buffer(userbuf, count, ppos, buf, p - buf); + ret =3D simple_copy_to_iter(buf, &iocb->ki_pos, p - buf, to); kfree(buf); return ret; } LINK_STA_OPS(ht_capa); =20 -static ssize_t link_sta_vht_capa_read(struct file *file, char __user *user= buf, - size_t count, loff_t *ppos) +static ssize_t link_sta_vht_capa_read(struct kiocb *iocb, struct iov_iter = *to) { char *buf, *p; - struct link_sta_info *link_sta =3D file->private_data; + struct link_sta_info *link_sta =3D iocb->ki_filp->private_data; struct ieee80211_sta_vht_cap *vhtc =3D &link_sta->pub->vht_cap; ssize_t ret; ssize_t bufsz =3D 512; @@ -668,18 +652,17 @@ static ssize_t link_sta_vht_capa_read(struct file *fi= le, char __user *userbuf, #undef PFLAG } =20 - ret =3D simple_read_from_buffer(userbuf, count, ppos, buf, p - buf); + ret =3D simple_copy_to_iter(buf, &iocb->ki_pos, p - buf, to); kfree(buf); return ret; } LINK_STA_OPS(vht_capa); =20 -static ssize_t link_sta_he_capa_read(struct file *file, char __user *userb= uf, - size_t count, loff_t *ppos) +static ssize_t link_sta_he_capa_read(struct kiocb *iocb, struct iov_iter *= to) { char *buf, *p; size_t buf_sz =3D PAGE_SIZE; - struct link_sta_info *link_sta =3D file->private_data; + struct link_sta_info *link_sta =3D iocb->ki_filp->private_data; struct ieee80211_sta_he_cap *hec =3D &link_sta->pub->he_cap; struct ieee80211_he_mcs_nss_supp *nss =3D &hec->he_mcs_nss_supp; u8 ppe_size; @@ -1041,18 +1024,17 @@ static ssize_t link_sta_he_capa_read(struct file *f= ile, char __user *userbuf, p +=3D scnprintf(p, buf_sz + buf - p, "\n"); =20 out: - ret =3D simple_read_from_buffer(userbuf, count, ppos, buf, p - buf); + ret =3D simple_copy_to_iter(buf, &iocb->ki_pos, p - buf, to); kfree(buf); return ret; } LINK_STA_OPS(he_capa); =20 -static ssize_t link_sta_eht_capa_read(struct file *file, char __user *user= buf, - size_t count, loff_t *ppos) +static ssize_t link_sta_eht_capa_read(struct kiocb *iocb, struct iov_iter = *to) { char *buf, *p; size_t buf_sz =3D PAGE_SIZE; - struct link_sta_info *link_sta =3D file->private_data; + struct link_sta_info *link_sta =3D iocb->ki_filp->private_data; struct ieee80211_sta_eht_cap *bec =3D &link_sta->pub->eht_cap; struct ieee80211_eht_cap_elem_fixed *fixed =3D &bec->eht_cap_elem; struct ieee80211_eht_mcs_nss_supp *nss =3D &bec->eht_mcs_nss_supp; @@ -1225,7 +1207,7 @@ static ssize_t link_sta_eht_capa_read(struct file *fi= le, char __user *userbuf, } =20 out: - ret =3D simple_read_from_buffer(userbuf, count, ppos, buf, p - buf); + ret =3D simple_copy_to_iter(buf, &iocb->ki_pos, p - buf, to); kfree(buf); return ret; } diff --git a/net/mac80211/rate.c b/net/mac80211/rate.c index 23404b275457..d8715afa8a6a 100644 --- a/net/mac80211/rate.c +++ b/net/mac80211/rate.c @@ -219,18 +219,16 @@ ieee80211_rate_control_ops_get(const char *name) } =20 #ifdef CONFIG_MAC80211_DEBUGFS -static ssize_t rcname_read(struct file *file, char __user *userbuf, - size_t count, loff_t *ppos) +static ssize_t rcname_read(struct kiocb *iocb, struct iov_iter *to) { - struct rate_control_ref *ref =3D file->private_data; + struct rate_control_ref *ref =3D iocb->ki_filp->private_data; int len =3D strlen(ref->ops->name); =20 - return simple_read_from_buffer(userbuf, count, ppos, - ref->ops->name, len); + return simple_copy_to_iter(ref->ops->name, &iocb->ki_pos, len, to); } =20 const struct file_operations rcname_ops =3D { - .read =3D rcname_read, + .read_iter =3D rcname_read, .open =3D simple_open, .llseek =3D default_llseek, }; diff --git a/net/mac80211/rc80211_minstrel_ht_debugfs.c b/net/mac80211/rc80= 211_minstrel_ht_debugfs.c index 25b8a67a63a4..426c63e4e475 100644 --- a/net/mac80211/rc80211_minstrel_ht_debugfs.c +++ b/net/mac80211/rc80211_minstrel_ht_debugfs.c @@ -16,13 +16,12 @@ struct minstrel_debugfs_info { char buf[]; }; =20 -static ssize_t -minstrel_stats_read(struct file *file, char __user *buf, size_t len, loff_= t *ppos) +static ssize_t minstrel_stats_read(struct kiocb *iocb, struct iov_iter *to) { struct minstrel_debugfs_info *ms; =20 - ms =3D file->private_data; - return simple_read_from_buffer(buf, len, ppos, ms->buf, ms->len); + ms =3D iocb->ki_filp->private_data; + return simple_copy_to_iter(ms->buf, &iocb->ki_pos, ms->len, to); } =20 static int @@ -185,7 +184,7 @@ minstrel_ht_stats_open(struct inode *inode, struct file= *file) static const struct file_operations minstrel_ht_stat_fops =3D { .owner =3D THIS_MODULE, .open =3D minstrel_ht_stats_open, - .read =3D minstrel_stats_read, + .read_iter =3D minstrel_stats_read, .release =3D minstrel_stats_release, .llseek =3D no_llseek, }; @@ -321,7 +320,7 @@ minstrel_ht_stats_csv_open(struct inode *inode, struct = file *file) static const struct file_operations minstrel_ht_stat_csv_fops =3D { .owner =3D THIS_MODULE, .open =3D minstrel_ht_stats_csv_open, - .read =3D minstrel_stats_read, + .read_iter =3D minstrel_stats_read, .release =3D minstrel_stats_release, .llseek =3D no_llseek, }; diff --git a/net/wireless/debugfs.c b/net/wireless/debugfs.c index 40e49074e2ee..fd4509acec37 100644 --- a/net/wireless/debugfs.c +++ b/net/wireless/debugfs.c @@ -114,12 +114,10 @@ void cfg80211_debugfs_rdev_add(struct cfg80211_regist= ered_device *rdev) struct debugfs_read_work { struct wiphy_work work; ssize_t (*handler)(struct wiphy *wiphy, - struct file *file, char *buf, size_t count, void *data); struct wiphy *wiphy; - struct file *file; char *buf; size_t bufsize; void *data; @@ -132,7 +130,7 @@ static void wiphy_locked_debugfs_read_work(struct wiphy= *wiphy, { struct debugfs_read_work *w =3D container_of(work, typeof(*w), work); =20 - w->ret =3D w->handler(w->wiphy, w->file, w->buf, w->bufsize, w->data); + w->ret =3D w->handler(w->wiphy, w->buf, w->bufsize, w->data); complete(&w->completion); } =20 @@ -145,12 +143,10 @@ static void wiphy_locked_debugfs_read_cancel(struct d= entry *dentry, complete(&w->completion); } =20 -ssize_t wiphy_locked_debugfs_read(struct wiphy *wiphy, struct file *file, +ssize_t wiphy_locked_debugfs_read(struct wiphy *wiphy, struct kiocb *iocb, char *buf, size_t bufsize, - char __user *userbuf, size_t count, - loff_t *ppos, + struct iov_iter *to, ssize_t (*handler)(struct wiphy *wiphy, - struct file *file, char *buf, size_t bufsize, void *data), @@ -159,7 +155,6 @@ ssize_t wiphy_locked_debugfs_read(struct wiphy *wiphy, = struct file *file, struct debugfs_read_work work =3D { .handler =3D handler, .wiphy =3D wiphy, - .file =3D file, .buf =3D buf, .bufsize =3D bufsize, .data =3D data, @@ -177,9 +172,9 @@ ssize_t wiphy_locked_debugfs_read(struct wiphy *wiphy, = struct file *file, wiphy_work_init(&work.work, wiphy_locked_debugfs_read_work); wiphy_work_queue(wiphy, &work.work); =20 - debugfs_enter_cancellation(file, &cancellation); + debugfs_enter_cancellation(iocb->ki_filp, &cancellation); wait_for_completion(&work.completion); - debugfs_leave_cancellation(file, &cancellation); + debugfs_leave_cancellation(iocb->ki_filp, &cancellation); =20 if (work.ret < 0) return work.ret; @@ -187,19 +182,17 @@ ssize_t wiphy_locked_debugfs_read(struct wiphy *wiphy= , struct file *file, if (WARN_ON(work.ret > bufsize)) return -EINVAL; =20 - return simple_read_from_buffer(userbuf, count, ppos, buf, work.ret); + return simple_copy_to_iter(buf, &iocb->ki_pos, work.ret, to); } EXPORT_SYMBOL_GPL(wiphy_locked_debugfs_read); =20 struct debugfs_write_work { struct wiphy_work work; ssize_t (*handler)(struct wiphy *wiphy, - struct file *file, char *buf, size_t count, void *data); struct wiphy *wiphy; - struct file *file; char *buf; size_t count; void *data; @@ -212,7 +205,7 @@ static void wiphy_locked_debugfs_write_work(struct wiph= y *wiphy, { struct debugfs_write_work *w =3D container_of(work, typeof(*w), work); =20 - w->ret =3D w->handler(w->wiphy, w->file, w->buf, w->count, w->data); + w->ret =3D w->handler(w->wiphy, w->buf, w->count, w->data); complete(&w->completion); } =20 @@ -226,10 +219,9 @@ static void wiphy_locked_debugfs_write_cancel(struct d= entry *dentry, } =20 ssize_t wiphy_locked_debugfs_write(struct wiphy *wiphy, - struct file *file, char *buf, size_t bufsize, - const char __user *userbuf, size_t count, + struct kiocb *iocb, char *buf, size_t bufsize, + struct iov_iter *from, ssize_t (*handler)(struct wiphy *wiphy, - struct file *file, char *buf, size_t count, void *data), @@ -238,9 +230,8 @@ ssize_t wiphy_locked_debugfs_write(struct wiphy *wiphy, struct debugfs_write_work work =3D { .handler =3D handler, .wiphy =3D wiphy, - .file =3D file, .buf =3D buf, - .count =3D count, + .count =3D bufsize, .data =3D data, .ret =3D -ENODEV, .completion =3D COMPLETION_INITIALIZER_ONSTACK(work.completion), @@ -249,6 +240,7 @@ ssize_t wiphy_locked_debugfs_write(struct wiphy *wiphy, .cancel =3D wiphy_locked_debugfs_write_cancel, .cancel_data =3D &work, }; + size_t count =3D iov_iter_count(from); =20 /* mostly used for strings so enforce NUL-termination for safety */ if (count >=3D bufsize) @@ -256,15 +248,15 @@ ssize_t wiphy_locked_debugfs_write(struct wiphy *wiph= y, =20 memset(buf, 0, bufsize); =20 - if (copy_from_user(buf, userbuf, count)) + if (!copy_from_iter_full(buf, count, from)) return -EFAULT; =20 wiphy_work_init(&work.work, wiphy_locked_debugfs_write_work); wiphy_work_queue(wiphy, &work.work); =20 - debugfs_enter_cancellation(file, &cancellation); + debugfs_enter_cancellation(iocb->ki_filp, &cancellation); wait_for_completion(&work.completion); - debugfs_leave_cancellation(file, &cancellation); + debugfs_leave_cancellation(iocb->ki_filp, &cancellation); =20 return work.ret; } --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f53.google.com (mail-io1-f53.google.com [209.85.166.53]) (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 D2BB0762C9 for ; Thu, 11 Apr 2024 15:33:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849594; cv=none; b=SmXGxDmeHbvL7DzneL26GvbugfKU3Dmfk38AP8xjho2ZHYOhWl5sa6HfWxNyRLXOYmkZqDYYJRhy2gH1HyUyoS06KYEv38hkSoDSuMWSmnD+okz7NcnYvHUw6gdGcUPJS3wRo9fQZTo04bKMP5h3SNPFRTGIBxLdebFu218JM7g= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849594; c=relaxed/simple; bh=Y7yxPNMsHeeEN7x7zk15KFsI8XPx8XUqJo6bdqm38Sc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=F7rbOm2kYiRKSWBHZ3cdYmonINZpP9wJ1TgZ0k+duALi6oa4gKsT93lchOFYWkUQKHjxAnA10aGmqPXtEkHny0KnfLonqvPochvh60ZYCa3igG1Uwuz0aQzsXk5mih+MLNSCRoVMGJjF6UlMbZIlzTm3k3UcSeejlHVkl0KBbCo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=CoyOtEg3; arc=none smtp.client-ip=209.85.166.53 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="CoyOtEg3" Received: by mail-io1-f53.google.com with SMTP id ca18e2360f4ac-7c8e4c0412dso69510239f.1 for ; Thu, 11 Apr 2024 08:33:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849591; x=1713454391; 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=ZZc4928Cn1er2j7QruCFdaei2Tt3S7FPwfD/sFuj1EE=; b=CoyOtEg3GfOJElkWHOAz1PUKG4HapgcLfAAjmiGr9zF+8/Q4zMzS5fWzoSOxCVmihu ddiqBbyQUYrrDWBuCrO7liSDQ4D5+X2hbBhDnfKIjGwIgDu8dkVgbr+tc7tiknkhHjqV T47QmM0deVQ/ypCiLgFV+wnI5zUbytNaZBwzFJgj+E+U444ESClTjaAaaNhnDFpLI9rv dL6uILeH77nQncd/HteTy93sCDG0PCQd4VlyJE5svXg1PZn1s7/w9QoqHfMlOWJ3r+xZ f0blZtHL7+qxRjp3UmBh99kayG5lzBnoKX9cm7tyvfZdACLwSgJZPuP8+iam2NeCahK5 tEOA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849591; x=1713454391; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ZZc4928Cn1er2j7QruCFdaei2Tt3S7FPwfD/sFuj1EE=; b=omPQVaJZktIsduxwahh9gRfJHZrmwXV3tsTg7JBQjOsvBZB3F8sk5mvQCTlu4WqdeT Ifcf+uWse9ScAflBvmsxhZFdYHUbaucJPpMp6OJngBnwyph2xltd9r+Oid/3bdjfcZST 3obhwPOHsfacFDvQ9ab1aHl4g8zPi/N6yKucy31i1Iyy5UXwOj8SD6+akWOcoPfqeSJt JJOwSJUhTuO2NKXUptDks2ZKy7tZl8usNGkw1B6GaJJXEDxp5j5BEJ1z0dCNZGXttYdQ E0RHt9AJSVms6/XN1lWaiW/aSDYFiA8Mnq7t/1anCO1vdKCsdSnp0qPu3WMN9mwDNTGX AUDg== X-Gm-Message-State: AOJu0Yxh+LUChExh/L3zSYo+kAv5luca/bo3FdHmvTe5EfKtdBE6OyAd XXeZoMaAsI/u2TuV28lvIZeTp0H0QO7lP2z5zQCAWTEA4SBx0LEoASQpl+Lyd14pkTQ2RS9r8N3 Q X-Google-Smtp-Source: AGHT+IFWz2/WPLla8ZQB3YzCzEKLaUjG1wN4SJIOEp3HKhZn/MkCWpXOMF4ZSx7JVeVPN4dtUjR6dQ== X-Received: by 2002:a6b:7b05:0:b0:7d6:60dc:bc8e with SMTP id l5-20020a6b7b05000000b007d660dcbc8emr186333iop.1.1712849591426; Thu, 11 Apr 2024 08:33:11 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.33.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:33:10 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 053/437] net: 6lowpan: convert debugfs to read/write iterators Date: Thu, 11 Apr 2024 09:13:13 -0600 Message-ID: <20240411153126.16201-54-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- net/6lowpan/debugfs.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/net/6lowpan/debugfs.c b/net/6lowpan/debugfs.c index 600b9563bfc5..0ec0da78c39c 100644 --- a/net/6lowpan/debugfs.c +++ b/net/6lowpan/debugfs.c @@ -120,20 +120,18 @@ static int lowpan_ctx_pfx_open(struct inode *inode, s= truct file *file) return single_open(file, lowpan_ctx_pfx_show, inode->i_private); } =20 -static ssize_t lowpan_ctx_pfx_write(struct file *fp, - const char __user *user_buf, size_t count, - loff_t *ppos) +static ssize_t lowpan_ctx_pfx_write(struct kiocb *iocb, struct iov_iter *f= rom) { char buf[128] =3D {}; - struct seq_file *file =3D fp->private_data; + struct seq_file *file =3D iocb->ki_filp->private_data; struct lowpan_iphc_ctx *ctx =3D file->private; struct lowpan_iphc_ctx_table *t =3D container_of(ctx, struct lowpan_iphc_ctx_table, table[ctx->id]); + size_t count =3D iov_iter_count(from); int status =3D count, n, i; unsigned int addr[8]; =20 - if (copy_from_user(&buf, user_buf, min_t(size_t, sizeof(buf) - 1, - count))) { + if (!copy_from_iter_full(&buf, count, from)) { status =3D -EFAULT; goto out; } @@ -157,8 +155,8 @@ static ssize_t lowpan_ctx_pfx_write(struct file *fp, =20 static const struct file_operations lowpan_ctx_pfx_fops =3D { .open =3D lowpan_ctx_pfx_open, - .read =3D seq_read, - .write =3D lowpan_ctx_pfx_write, + .read_iter =3D seq_read_iter, + .write_iter =3D lowpan_ctx_pfx_write, .llseek =3D seq_lseek, .release =3D single_release, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f48.google.com (mail-io1-f48.google.com [209.85.166.48]) (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 73D1676C61 for ; Thu, 11 Apr 2024 15:33:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849595; cv=none; b=ENbUZy9Dp0VKMeml8bcf0Rgt6TCArf0QEgYmfc3o8MjjiBT2/aP0n7dR8C4nU3J57ckh51E6ai2BHCerINOU+VwTEf7B5oUc6Aak4lhxTutuyLt7844DFCqLILWzT+q+D/UMd23Tkm5FeMUJAwjTNisVBHzYJ6zNyuQriCnG8XY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849595; c=relaxed/simple; bh=EytEfueZdmHeZjMKVtERN8jT8/dREiZxCWtZspGZpjI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=sAWH8ZZuwuCP0JU+1PNbYqOq00/EED5atAPlczhguci0UGZeUPV0oNV518mFnRaqFSGKrAmdf2wyxgPs8+e2xDAu5pR3pHe80jUwBlsgoRO1sFbvH15ulYiDvV7MF88OQ8QBg2cL+fD9GXbnR4aRsEuJBViwLykC+19LMDv6cYE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=ywOLjbPT; arc=none smtp.client-ip=209.85.166.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="ywOLjbPT" Received: by mail-io1-f48.google.com with SMTP id ca18e2360f4ac-7d67d1073easo9725139f.0 for ; Thu, 11 Apr 2024 08:33:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849593; x=1713454393; 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=ttGc03mslHrJppIMBAAwcoGoLF7eUDlInI7/mEOC2ro=; b=ywOLjbPTlR77bw7gyvAudd6Le4jWE0Jx67miifsH9g/KP6NEQ0FaUuRF6my0ZLAiPS gh7LuyNt/Z3J94MJ0A92FRcoS5BO78hwvf6I0u9h4gWfzQdl6hG1VSpLI9ANZN2mdnOa yuCl+TmjiBAWolzSf5NC5OzUmFFGz4ul04LZcTJ2d7RGiPdT3DEEkJ0wrmsscli3zKSM t8BKDYT1B7rVSZQz2qk086uRiQiFjn5bZnF6bA4Q9yjBBj5Fkzl6iQWmNdW+DN4DglxV 5r0ap6zF/eAaF4TRiVzKxtRF+XKAQShkV915+wa97zsuYHsuxJpdzjVAonouhzSyTBOh L1Vw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849593; x=1713454393; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ttGc03mslHrJppIMBAAwcoGoLF7eUDlInI7/mEOC2ro=; b=o+jImyvh704AAlBJmzVPfUf85fg+4o35IOulzTzr+nc1ZmGR0CtnlPEmwO6p6qjOVC X9W//yopRFQ4l90xqVnJHr2F+IvmTfl8Kznsmc7h5kDYKpzLYRS3eyoe3c8nXenI/3xZ 4QfigcX/t5dNXNoOzJASjGIGcf/UH+EgRvxzOAt2UL3eXNKgPn9vI4xvFptviV3CUVmw dI0SgOfGts8g0iU4Hc+De5FWHQU3XRMyOGhjzF9Kmow8xmS7KLgcQ9dxC9s6nZoumfSv /ztuDQFSWntAxxmN7wEhWQwu9qBKyrQ34hKCH+prl4Pj18w7g3vqEOVGPqROM2uDkXtk /p2A== X-Gm-Message-State: AOJu0YynNmntlV4ZDwf6H5GwTEtQZoZpXbKX6ru1I8IAJV0+v50LM6g8 TOPjlOTzBWD7J49ZdgSeHd0Ywe9yFW4wbEHc9QIeDBxRxygpSUkX62qmXfcGnrvvgbJGztCBQib g X-Google-Smtp-Source: AGHT+IE4ZaUQLplCisu3bQYyi2+xumFquATwSGoMfA34ws/KXcHy4IYRj9o7157hhzrfT2YuZT9s/Q== X-Received: by 2002:a6b:c34e:0:b0:7d6:7b7c:8257 with SMTP id t75-20020a6bc34e000000b007d67b7c8257mr206732iof.0.1712849593194; Thu, 11 Apr 2024 08:33:13 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.33.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:33:11 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 054/437] net: sunrpc: convert to read/write iterators Date: Thu, 11 Apr 2024 09:13:14 -0600 Message-ID: <20240411153126.16201-55-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- net/sunrpc/cache.c | 14 +++++++++----- net/sunrpc/debugfs.c | 4 ++-- net/sunrpc/rpc_pipe.c | 8 +++++--- 3 files changed, 16 insertions(+), 10 deletions(-) diff --git a/net/sunrpc/cache.c b/net/sunrpc/cache.c index 95ff74706104..451b93494585 100644 --- a/net/sunrpc/cache.c +++ b/net/sunrpc/cache.c @@ -1774,6 +1774,7 @@ static ssize_t cache_read_pipefs(struct file *filp, c= har __user *buf, =20 return cache_read(filp, buf, count, ppos, cd); } +FOPS_READ_ITER_HELPER(cache_read_pipefs); =20 static ssize_t cache_write_pipefs(struct file *filp, const char __user *bu= f, size_t count, loff_t *ppos) @@ -1782,6 +1783,7 @@ static ssize_t cache_write_pipefs(struct file *filp, = const char __user *buf, =20 return cache_write(filp, buf, count, ppos, cd); } +FOPS_WRITE_ITER_HELPER(cache_write_pipefs); =20 static __poll_t cache_poll_pipefs(struct file *filp, poll_table *wait) { @@ -1816,8 +1818,8 @@ static int cache_release_pipefs(struct inode *inode, = struct file *filp) const struct file_operations cache_file_operations_pipefs =3D { .owner =3D THIS_MODULE, .llseek =3D no_llseek, - .read =3D cache_read_pipefs, - .write =3D cache_write_pipefs, + .read_iter =3D cache_read_pipefs_iter, + .write_iter =3D cache_write_pipefs_iter, .poll =3D cache_poll_pipefs, .unlocked_ioctl =3D cache_ioctl_pipefs, /* for FIONREAD */ .open =3D cache_open_pipefs, @@ -1840,7 +1842,7 @@ static int content_release_pipefs(struct inode *inode= , struct file *filp) =20 const struct file_operations content_file_operations_pipefs =3D { .open =3D content_open_pipefs, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D content_release_pipefs, }; @@ -1866,6 +1868,7 @@ static ssize_t read_flush_pipefs(struct file *filp, c= har __user *buf, =20 return read_flush(filp, buf, count, ppos, cd); } +FOPS_READ_ITER_HELPER(read_flush_pipefs); =20 static ssize_t write_flush_pipefs(struct file *filp, const char __user *buf, @@ -1875,11 +1878,12 @@ static ssize_t write_flush_pipefs(struct file *filp, =20 return write_flush(filp, buf, count, ppos, cd); } +FOPS_WRITE_ITER_HELPER(write_flush_pipefs); =20 const struct file_operations cache_flush_operations_pipefs =3D { .open =3D open_flush_pipefs, - .read =3D read_flush_pipefs, - .write =3D write_flush_pipefs, + .read_iter =3D read_flush_pipefs_iter, + .write_iter =3D write_flush_pipefs_iter, .release =3D release_flush_pipefs, .llseek =3D no_llseek, }; diff --git a/net/sunrpc/debugfs.c b/net/sunrpc/debugfs.c index a176d5a0b0ee..8fb085c614ef 100644 --- a/net/sunrpc/debugfs.c +++ b/net/sunrpc/debugfs.c @@ -112,7 +112,7 @@ tasks_release(struct inode *inode, struct file *filp) static const struct file_operations tasks_fops =3D { .owner =3D THIS_MODULE, .open =3D tasks_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D tasks_release, }; @@ -211,7 +211,7 @@ xprt_info_release(struct inode *inode, struct file *fil= p) static const struct file_operations xprt_info_fops =3D { .owner =3D THIS_MODULE, .open =3D xprt_info_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D xprt_info_release, }; diff --git a/net/sunrpc/rpc_pipe.c b/net/sunrpc/rpc_pipe.c index 910a5d850d04..73189ac4d9f7 100644 --- a/net/sunrpc/rpc_pipe.c +++ b/net/sunrpc/rpc_pipe.c @@ -320,6 +320,7 @@ rpc_pipe_read(struct file *filp, char __user *buf, size= _t len, loff_t *offset) inode_unlock(inode); return res; } +FOPS_READ_ITER_HELPER(rpc_pipe_read); =20 static ssize_t rpc_pipe_write(struct file *filp, const char __user *buf, size_t len, loff= _t *offset) @@ -334,6 +335,7 @@ rpc_pipe_write(struct file *filp, const char __user *bu= f, size_t len, loff_t *of inode_unlock(inode); return res; } +FOPS_WRITE_ITER_HELPER(rpc_pipe_write); =20 static __poll_t rpc_pipe_poll(struct file *filp, struct poll_table_struct *wait) @@ -386,8 +388,8 @@ rpc_pipe_ioctl(struct file *filp, unsigned int cmd, uns= igned long arg) static const struct file_operations rpc_pipe_fops =3D { .owner =3D THIS_MODULE, .llseek =3D no_llseek, - .read =3D rpc_pipe_read, - .write =3D rpc_pipe_write, + .read_iter =3D rpc_pipe_read_iter, + .write_iter =3D rpc_pipe_write_iter, .poll =3D rpc_pipe_poll, .unlocked_ioctl =3D rpc_pipe_ioctl, .open =3D rpc_pipe_open, @@ -449,7 +451,7 @@ rpc_info_release(struct inode *inode, struct file *file) static const struct file_operations rpc_info_operations =3D { .owner =3D THIS_MODULE, .open =3D rpc_info_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D rpc_info_release, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f49.google.com (mail-io1-f49.google.com [209.85.166.49]) (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 4729B7829B for ; Thu, 11 Apr 2024 15:33:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849597; cv=none; b=k1ZC5lQJH+lQIS1nr9BFaTPdcQnYeb2Csi+KdAdpgxOOR0QHhMsS8r9RuikaWQgOUdg6EF3UtQsy5Z2v4LsURyE6Fah7uhUsIu43RndcKxK4jo3kfphK9U2gGSG1HPSn3a7T0PIczxZdfpEqMbwOOGOue1dZC9rEEpdJQUNzCfo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849597; c=relaxed/simple; bh=8K4iFByLNkEJg0ZtGD/zZ1ImWA2HssKe9G+FnNpX9so=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=in3o9u3kvP3uLt/M15nk06YnKplbDaSAm/nKrD/lwMGPutTWZueVY6M/sVP9Shk0yMQYJlVC8/zGb33a/1zM8FF1h/oFHR7oUNCy2pKqFhiItM0/c0z/rCYsQtonDntQu9GIZD9azKL3WSIRd4XfOgJVIpyYBho/UOGwzB8KQPE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=LPsPlZfk; arc=none smtp.client-ip=209.85.166.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="LPsPlZfk" Received: by mail-io1-f49.google.com with SMTP id ca18e2360f4ac-7d6812b37a6so8878239f.0 for ; Thu, 11 Apr 2024 08:33:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849595; x=1713454395; 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=uvmWkjrTymk6TvKQAkDar3sgVevVFpz9szIkUav/6CQ=; b=LPsPlZfk5ywn73XvgonzCSh1AJfVCOtEZTB51vT1O/2Bs3Y6BqqSeMkfRRWCI8YFUS iZJFNeVo6AAhFBuKgcFyTem80YNM4/+4Pgd8ni5iMi08DEdM8sJ7Fh9oWChgZErH33zA AYl/halzXacyr+wlr3szsYJ+N8qT3HktAEpaKSR65hKBMLbUlt2WHxXrP+Vvb6o+u7Ir RdhiXNzdShne9bMEmrw5O7XTG/+KRfrqufJ8GcjAfr8p1Qx7MIwTbo/PoTh8/8toegYn RvdtswSShwCM/LFNLG1JIEfXWjBx+ZGYpWTG4U/mohpv6FFHrrP3X+uQFG6U+1lRAaH0 GSmg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849595; x=1713454395; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=uvmWkjrTymk6TvKQAkDar3sgVevVFpz9szIkUav/6CQ=; b=gbE8Knzymodj/a6SU2vMR+prC/seWu1vj/mvumRXyIewM28pqCDZPfdGiurkxCLe75 XfjIiuSRri6hpqC0h6FBI/JSdKuPP13Rk3Vp+D2qp6DBAeTscuzKNp4etzyDvXPLzSG8 VjgbnM7vRYlZvQ62sWgj8a5b+8aET/RAysnhBMS47ZoBdQ3cbC5Jf2u0PXolpRzPOezo YxueJwKhEHpJxE4mM696DFUgYyk0nSjplp/+bZoXhlWsSBfO9JzAANlCtfgELxkyjYyT +T5SPE2Xc3j6k73CMp93f2XACfyBhhE091dxhUuekg+regO1Skpea1HnWGWoDuPdOedm MJSg== X-Gm-Message-State: AOJu0YxsRHgvd7Bd+6k+drOYS8vmK7Dul3o0Kpl1zEjZnYhYeXVaQA5W /aazkPZvQ6hgIKB3juuGa78TahwKWnr+dVhRp7aT53lWB6XppiG9JCbwybQz3tXVi7NeDKi5nMn i X-Google-Smtp-Source: AGHT+IHeEJih2Bol0NMGj7Zi6DBozwcad9GW7KCufZs1lijQ748DynHFcHwgvnvtGQUpYilBjjprzw== X-Received: by 2002:a5e:9907:0:b0:7d6:751f:192 with SMTP id t7-20020a5e9907000000b007d6751f0192mr172554ioj.2.1712849595003; Thu, 11 Apr 2024 08:33:15 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.33.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:33:13 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 055/437] net: wireless: convert to read/write iterators Date: Thu, 11 Apr 2024 09:13:15 -0600 Message-ID: <20240411153126.16201-56-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- net/wireless/debugfs.c | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/net/wireless/debugfs.c b/net/wireless/debugfs.c index fd4509acec37..014bacd8f6a5 100644 --- a/net/wireless/debugfs.c +++ b/net/wireless/debugfs.c @@ -12,19 +12,18 @@ #include "debugfs.h" =20 #define DEBUGFS_READONLY_FILE(name, buflen, fmt, value...) \ -static ssize_t name## _read(struct file *file, char __user *userbuf, \ - size_t count, loff_t *ppos) \ +static ssize_t name## _read(struct kiocb *iocb, struct iov_iter *to) \ { \ - struct wiphy *wiphy =3D file->private_data; \ + struct wiphy *wiphy =3D iocb->ki_filp->private_data; \ char buf[buflen]; \ int res; \ \ res =3D scnprintf(buf, buflen, fmt "\n", ##value); \ - return simple_read_from_buffer(userbuf, count, ppos, buf, res); \ + return simple_copy_to_iter(buf, &iocb->ki_pos, res, to); \ } \ \ static const struct file_operations name## _ops =3D { \ - .read =3D name## _read, \ + .read_iter =3D name## _read, \ .open =3D simple_open, \ .llseek =3D generic_file_llseek, \ } @@ -60,11 +59,9 @@ static int ht_print_chan(struct ieee80211_channel *chan, ' ' : '+'); } =20 -static ssize_t ht40allow_map_read(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ht40allow_map_read_iter(struct kiocb *iocb, struct iov_iter= *to) { - struct wiphy *wiphy =3D file->private_data; + struct wiphy *wiphy =3D iocb->ki_filp->private_data; char *buf; unsigned int offset =3D 0, buf_size =3D PAGE_SIZE, i; enum nl80211_band band; @@ -84,15 +81,13 @@ static ssize_t ht40allow_map_read(struct file *file, buf, buf_size, offset); } =20 - r =3D simple_read_from_buffer(user_buf, count, ppos, buf, offset); - + r =3D simple_copy_to_iter(buf, &iocb->ki_pos, offset, to); kfree(buf); - return r; } =20 static const struct file_operations ht40allow_map_ops =3D { - .read =3D ht40allow_map_read, + .read_iter =3D ht40allow_map_read_iter, .open =3D simple_open, .llseek =3D default_llseek, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f44.google.com (mail-io1-f44.google.com [209.85.166.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 E85917A15D for ; Thu, 11 Apr 2024 15:33:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849599; cv=none; b=pC47i39DU4OtOzeeO+j68D8UHiRK+4qiU0zv5xU4I6GC/Eyk4N4AJtOIMkKwL0rTVjtoirXhPvtE3ExVmupHAtpjEdwP62rtJf+4LxEJaD5vaL5kjlwQC0cXEygVibt4K5v1fWbHBu3XL6gExcVJl1ovwVtTp0G795Uu4IMfjEE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849599; c=relaxed/simple; bh=zAhR8pVOpb3GLx+NZ4rajBiZjWs2yPe7alnAfdmBlmI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=lF0+cRTGllN+7E7WLpVhugRX7d0incf4Uc6md50P7qA/3LMgo84qyxpeXfhkfpMpqUizcRbK1CZsUmp0Jw2qsQg1HlCELLrYuH2HM1k0a785asZz4jDSLLTMJvKGMuslhFLAryOIQk64ETVG48+FOY1E/GViPlqHLIWqFDPd7XQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=gVIJf2HG; arc=none smtp.client-ip=209.85.166.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="gVIJf2HG" Received: by mail-io1-f44.google.com with SMTP id ca18e2360f4ac-7d67d1073easo9726539f.0 for ; Thu, 11 Apr 2024 08:33:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849597; x=1713454397; 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=nTyRdE9qtn5zwHXPNZ8vyCVIFL75oJVPeCU0zp4i2dA=; b=gVIJf2HGQTFTf45hK7ASySovvlku7pKqWzmg6pD53MintXfUJ6IrpiRajjyO7F2SfG eK/U074fCIOU8CGPfB6AoZEKaX+N0yaPMZ3xvg60wFLVwTb/BmDFq/dXnCoXHJ3yy6K2 KTcXcpqHxRz6KE5Yb2v5le1Qi26NALBSGpcMNwmINEcXb3Ggdc9sUDR2t8OYQm4DdPTR 7AjyytQK1TB2ZRZn9bEAH9WQz0aH8AS8N5LLGWC6RNuGOR6drUur1W3wj+Ex+CqVg1qt rFpI+WCggmst/q4XqpgiUctzNvX9rC0FKq2ZUFZvqx/14twEDWFqnpDbfwCi9M/JImLw dSdg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849597; x=1713454397; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=nTyRdE9qtn5zwHXPNZ8vyCVIFL75oJVPeCU0zp4i2dA=; b=uIgOn8x+ECwMrSOne/yrXD1NOCorqiabTv9PR02JAKwno5CSgtdYIFgZUOssmm0SJW 7IO06Agq9S7RbcLi+MetCHjWpkVi3e59ygkTFWGSGG7lQpyW0sfD6S1VWBPiFVTlM1nV agHnNWdk/sF/hILcK15jXZQpzszqqYKG/EIQlioMnRR3vGNEL3fF9wi32Nmb9I3zETjU 6ydJxGVMGNohlTbk7OGSJ6Jyjhr+2NPyy7lQkViQ+CdlVRCCFWb/LPQl7S2qcgWybu89 30bUij98Pxa1K5NugbGIRw2M9cu1l6NIkJkXKpRLrdggpv0eWfZ0f8oMbC9MX6lSdzMb 1Fmw== X-Gm-Message-State: AOJu0YysyN56xBHfNi1Qg1p9MjLT8wca9iNMxSlTm4z38njp+y0JErFt Cg+iclAlt1oZcItTPcHNFfDGjC/OhYmnnUfZgjqR/WAg+d8WwWMXPW4NEnUTLK8LuD801/4Xok7 h X-Google-Smtp-Source: AGHT+IFmWjqL99gXC3ZOv60whwLekoiAKXWhZwEZ3Pqd3/6fg7PeixKGAKrlHc3OvBlA3WDce+fVDA== X-Received: by 2002:a05:6602:84:b0:7d6:9d75:6de2 with SMTP id h4-20020a056602008400b007d69d756de2mr34298iob.2.1712849596776; Thu, 11 Apr 2024 08:33:16 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.33.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:33:15 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 056/437] net: rfkill: convert to read/write iterators Date: Thu, 11 Apr 2024 09:13:16 -0600 Message-ID: <20240411153126.16201-57-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- net/rfkill/core.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/net/rfkill/core.c b/net/rfkill/core.c index c3feb4f49d09..36271888c130 100644 --- a/net/rfkill/core.c +++ b/net/rfkill/core.c @@ -1226,10 +1226,10 @@ static __poll_t rfkill_fop_poll(struct file *file, = poll_table *wait) return res; } =20 -static ssize_t rfkill_fop_read(struct file *file, char __user *buf, - size_t count, loff_t *pos) +static ssize_t rfkill_fop_read(struct kiocb *iocb, struct iov_iter *to) { - struct rfkill_data *data =3D file->private_data; + struct rfkill_data *data =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(to); struct rfkill_int_event *ev; unsigned long sz; int ret; @@ -1237,7 +1237,7 @@ static ssize_t rfkill_fop_read(struct file *file, cha= r __user *buf, mutex_lock(&data->mtx); =20 while (list_empty(&data->events)) { - if (file->f_flags & O_NONBLOCK) { + if (iocb->ki_filp->f_flags & O_NONBLOCK) { ret =3D -EAGAIN; goto out; } @@ -1259,7 +1259,7 @@ static ssize_t rfkill_fop_read(struct file *file, cha= r __user *buf, sz =3D min_t(unsigned long, sizeof(ev->ev), count); sz =3D min_t(unsigned long, sz, data->max_size); ret =3D sz; - if (copy_to_user(buf, &ev->ev, sz)) + if (!copy_to_iter_full(&ev->ev, sz, to)) ret =3D -EFAULT; =20 list_del(&ev->list); @@ -1269,10 +1269,10 @@ static ssize_t rfkill_fop_read(struct file *file, c= har __user *buf, return ret; } =20 -static ssize_t rfkill_fop_write(struct file *file, const char __user *buf, - size_t count, loff_t *pos) +static ssize_t rfkill_fop_write(struct kiocb *iocb, struct iov_iter *from) { - struct rfkill_data *data =3D file->private_data; + struct rfkill_data *data =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); struct rfkill *rfkill; struct rfkill_event_ext ev; int ret; @@ -1288,7 +1288,7 @@ static ssize_t rfkill_fop_write(struct file *file, co= nst char __user *buf, */ count =3D min(count, sizeof(ev)); count =3D min_t(size_t, count, data->max_size); - if (copy_from_user(&ev, buf, count)) + if (!copy_from_iter_full(&ev, count, from)) return -EFAULT; =20 if (ev.type >=3D NUM_RFKILL_TYPES) @@ -1392,8 +1392,8 @@ static long rfkill_fop_ioctl(struct file *file, unsig= ned int cmd, static const struct file_operations rfkill_fops =3D { .owner =3D THIS_MODULE, .open =3D rfkill_fop_open, - .read =3D rfkill_fop_read, - .write =3D rfkill_fop_write, + .read_iter =3D rfkill_fop_read, + .write_iter =3D rfkill_fop_write, .poll =3D rfkill_fop_poll, .release =3D rfkill_fop_release, .unlocked_ioctl =3D rfkill_fop_ioctl, --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f49.google.com (mail-io1-f49.google.com [209.85.166.49]) (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 E2D5B7EF12 for ; Thu, 11 Apr 2024 15:33:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849601; cv=none; b=pc0TMPyyysiIcK+HQ8I7GT+NoHhixo9LS1Mh+AwaZ3VWktcrUIl76FHINfUlAtKJXSjf7Xxe+p00SX8KVaeK8cbAJuQsnRCnsHBO3jHH0RwN+PW1ehU4c9o+Ac5aWZYnNbIS4yB/MzD18Ut0+ncZsEY8aUpb4Tb42OMaJ/mTTj4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849601; c=relaxed/simple; bh=MXvvEeKipA1G+7oEfvEw5JngjhBVg2ht6/Kw9QFunSY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=WvzgUiPhvTbOzgCyPuB4iKe18OlcmHAMnckzg3J7r3E6VG/4X36k14z7cPZDIJubN9vbRNjcQg36KeyFFdMvPdBhs46EzOMYtyZCktAsVD3ebSrNlgo57R6MX8xC5X8RhuIV+At7JGR1tpbGMxEAa417WM8vjsQBjFdozgJDZpw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=J52FszqY; arc=none smtp.client-ip=209.85.166.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="J52FszqY" Received: by mail-io1-f49.google.com with SMTP id ca18e2360f4ac-7d67d1073easo9727439f.0 for ; Thu, 11 Apr 2024 08:33:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849598; x=1713454398; 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=pRjGjwzC4TmLZADFw5ikGcW/m+835psHb3ho0jeo02s=; b=J52FszqYjdDANUUx0dWb9KZEq3A2UUIJXHmePARFqxo4K6aSltAegKuI2B7EmP2FmP raUEq9SHvhHbByI5ClDny4cTGVEdnWR4PmBLcwvytFkK4kTAt9MZ7t+vzi1Xt7WwR0zH +uo+jm19vgUmQQ3QNgP6Ca7eNOZPRZQwUh6hYvWFvn0fs87r0azL1J27nUJMw4h2/ghn pbllu2H6vR4ryj+6Y6DkA6m/3jA8o93bdKibUV3fIcOhA6ZCuBObuEjk9z3lQWcuKJDM 0s3vDGtoBs7Andka8cPlV/ULOGfBir/ZHeAjq8Bi847TtUqgmS9z5y8Wftr5jmzr2xmD Umyg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849598; x=1713454398; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=pRjGjwzC4TmLZADFw5ikGcW/m+835psHb3ho0jeo02s=; b=SaYwxiNlfe7UzZSQg9T5xe4ApA/pHf6vgzRzGBKRCTWxds6ji5l2dJzLLVrAIw1g+P vEbAsRWAfBff7C5w9ai6hyrrtghVMASinc6EcoUOWqsGMgVuGDb0/qmKblV0+Y25KH8P xgmrlgkbsji2vuVRvxxMFUliUkYUIdHCwEekOgW7E0ucWtXvYa8HYbT0ZpPWRjW1AHcg L6KULGyWpw+bnLaTCYeQAZ9CoJfihnUv/iMgrB8vd2eu1CDv7kJIBJYwNiLTgvFgrULB 3DctczS1QyWYNha4MET2ur1yGYQrOi8QIB9kGugyjJFo4H2A9UbbUjPqpsVvnNy3PsQM fyQw== X-Gm-Message-State: AOJu0YwC7qF3IA0HZH+1GbJglpLicRNC69ZZe7hWrsksicBWg6Ei8PSj pn6KKrPnO+i7jNIb6k3iOWfCXTYFG6A+Og0NEtSxgKXXt8gk1q/qdhvO4EZ/oseWskO1pP3V4GH f X-Google-Smtp-Source: AGHT+IGrUqG8I+lcA8frZ1+FZqp/1xi6hEOWX8YtlSOO4eEI+pA+7xiMD0aCBvTmDITY8DteZZpS1Q== X-Received: by 2002:a6b:c34e:0:b0:7d6:7b7c:8257 with SMTP id t75-20020a6bc34e000000b007d67b7c8257mr207107iof.0.1712849598598; Thu, 11 Apr 2024 08:33:18 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.33.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:33:17 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 057/437] net: l2tp: convert to read/write iterators Date: Thu, 11 Apr 2024 09:13:17 -0600 Message-ID: <20240411153126.16201-58-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- net/l2tp/l2tp_debugfs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net/l2tp/l2tp_debugfs.c b/net/l2tp/l2tp_debugfs.c index 4595b56d175d..943c1ea51900 100644 --- a/net/l2tp/l2tp_debugfs.c +++ b/net/l2tp/l2tp_debugfs.c @@ -318,7 +318,7 @@ static int l2tp_dfs_seq_release(struct inode *inode, st= ruct file *file) static const struct file_operations l2tp_dfs_fops =3D { .owner =3D THIS_MODULE, .open =3D l2tp_dfs_seq_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D l2tp_dfs_seq_release, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f41.google.com (mail-io1-f41.google.com [209.85.166.41]) (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 5DC837FBB0 for ; Thu, 11 Apr 2024 15:33:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849603; cv=none; b=tljDmrUAILrQqejWVsdzus2Aw2DqT+CEgbqc5b1yEEMFB8XKqy9TY5kpe03Io6yhjPXsZ3USJ5OKOlKYnzn1f5p34p9j5I4HYPeU8QtffhH8kbB7Qh/6OAngSQPcK6rnq92jVQ7euFzywJRloGGEl83Lq9hoSMgKXPKycxksdKM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849603; c=relaxed/simple; bh=+zTtp6NA4SHbH8H0M6K4Xl+0VEVe9wGeFSItGDOWGd4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=H3nh2eQ39fVSSm3FmJ/nfAgZsboAU0slPghz070DX71+8L9x6KogotRLxlDo919tdwtYOXiq5WU0/ylA8a7jQEulMbX+ZIffK1ZlQmViA95bPPPvlZ/SzOg4Dpq1dkisdisRyI04O+FV5TmELBffhpF6n1MmKLjRVz4TBur28oM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=x/KTf3BV; arc=none smtp.client-ip=209.85.166.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="x/KTf3BV" Received: by mail-io1-f41.google.com with SMTP id ca18e2360f4ac-7d0772bb5ffso180620739f.0 for ; Thu, 11 Apr 2024 08:33:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849601; x=1713454401; 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=kLAdAdRZHwZNysaGixn7u/LgA9hoPoumk3u1iKTi2oY=; b=x/KTf3BV4kZtTALifDWAQf1jFXMazdtDN0nQXnz3H83JmO4L4Bs765KMNSQ244yH7V GtcSXCxaCng/4yNFyCDuh6fJ+TMw5hXmMm+kvzo+FeuMkkK3u6nAKcbhMXto+mQDeEqA MG+gkSVsZKxTkYfqGw0IJd1CjHOlaIs1aaWvflym6/Lp6NdNqeQTCXefuKdo8S4gSo60 kAIu4SVFrd0+NBh4x0YKuTkRsRjDKjF0jYVnGgRCqB0yl9hZ/XCFCmaPdGRWmZ0dbYhd 18vOLaixbxamj83NPAFKtsV88WTRu1pDJVHATtd+QcVfdIaN/jRs/EwGBgx4tZ6V5tXF e74g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849601; x=1713454401; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=kLAdAdRZHwZNysaGixn7u/LgA9hoPoumk3u1iKTi2oY=; b=wo7CXeiURcWtUzIsMBTfKnwymoPyfXOuqk4FsH18MVT2gtwwXUfPcXjWM78+chlLVr zesMAlqM0n2PD2Ezymeref2PdLIqq+tgJdhyjtyplRjf3zkGi+1LsTEO2FZFpJklWYIR lyTRIj+hkNY8DBKrD2sIpsCFBnnz4bzqi1UO637muBGEy+FMlp5JqpXvizv1JI1EQaoJ zVh5Z0fQ03eYPWWIuIL7q01YfjXcov+nfZKP9DcdnKKE9ff7ATI7o+UCuWnls7z84zt8 YQMPjqpm7zZbWNsQT+igsM+KpGz50Ezz4WKAAwa+VgLPlnuVtp6Bh9Ahrne0NcP7v2mJ 1Iyw== X-Gm-Message-State: AOJu0YxkTVJI76Pe/0A2pfeSrUUY7o0XjwcNXKo83rF+oE2Fgyk+PyGX 5af4XyU51qt5P3LuxMvOej76XNnOrrOxAhWX278yTvYpuXpaMLVtIyG2iex1hpf4C70txIjBBsk u X-Google-Smtp-Source: AGHT+IHs94RIFqk2tSa/xfrq5oIslDpMAMLG4Anc/WEmvFzu5co0Srta4X7hANVQkWlsTC8X8l4jJw== X-Received: by 2002:a05:6602:4ed7:b0:7d5:ddc8:504d with SMTP id gk23-20020a0566024ed700b007d5ddc8504dmr181482iob.0.1712849601109; Thu, 11 Apr 2024 08:33:21 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.33.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:33:18 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 058/437] fs: add IOCB_VECTORED flags Date: Thu, 11 Apr 2024 09:13:18 -0600 Message-ID: <20240411153126.16201-59-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" This allows a user of ->read_iter() or ->write_iter() to tell if this request originally came as a readv/writev, or if it was a normal read/write operation. Signed-off-by: Jens Axboe --- fs/read_write.c | 1 + include/linux/fs.h | 2 ++ 2 files changed, 3 insertions(+) diff --git a/fs/read_write.c b/fs/read_write.c index 1d035293607b..efddd395d436 100644 --- a/fs/read_write.c +++ b/fs/read_write.c @@ -733,6 +733,7 @@ static ssize_t do_iter_readv_writev(struct file *filp, = struct iov_iter *iter, ret =3D kiocb_set_rw_flags(&kiocb, flags); if (ret) return ret; + kiocb.ki_flags |=3D IOCB_VECTORED; kiocb.ki_pos =3D (ppos ? *ppos : 0); =20 if (type =3D=3D READ) diff --git a/include/linux/fs.h b/include/linux/fs.h index 483c70d3941e..69e4dfac2853 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -346,6 +346,8 @@ struct readahead_control; #define IOCB_DIO_CALLER_COMP (1 << 22) /* kiocb is a read or write operation submitted by fs/aio.c. */ #define IOCB_AIO_RW (1 << 23) +/* came from readv/writev */ +#define IOCB_VECTORED (1 << 24) =20 /* for use in trace events */ #define TRACE_IOCB_STRINGS \ --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f44.google.com (mail-io1-f44.google.com [209.85.166.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 AD53981742 for ; Thu, 11 Apr 2024 15:33:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849606; cv=none; b=ctvmHv53ATGGc6ZWPBnwEsOWnYQSsG6MLu/fS2TSsqfOifn0VEUYrMJFIMg3Jm/aFAeGyyle7/cANqgipPMgigdnagD6SiklAuFo9LNmOTpx95vwnilr2F76s7ku7TSiYROWjmfMJaI/PcV+fF9yVRaiI2j7tJLH0DbGr5NI1r0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849606; c=relaxed/simple; bh=iwJvlrqfYyUElK/l05+RCD+xKYQOcPZF5kLYGwpTsm4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=S8F8xDYCixueYZx/5GGmyaBPIocqyS5Okaz8ku/f4ivlYw99sXCHVzqpt90PRutyU7NXsYdrHzKn+S+QzjFNJwZqp3G9ngmT9iK0HO/YyThsWun/SqJz5Fu6jip2aj9nDQMOV1eqMHj10wGV6m3Mi9okDEe7UCNX8byI826DrT8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=zLLbkRg1; arc=none smtp.client-ip=209.85.166.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="zLLbkRg1" Received: by mail-io1-f44.google.com with SMTP id ca18e2360f4ac-7d6112ba6baso57975439f.1 for ; Thu, 11 Apr 2024 08:33:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849603; x=1713454403; 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=ncOUPP3alKNpnXNjXBkDsVRyy/frtxN9Tt0itgJwxuk=; b=zLLbkRg1RPLzSav1edITY/sncKsck8lY3yLbxGSrPTYJHp8bXtg4A+HScfZI/6mudE lgFti6lLy9/Rvj+0pa+VyejGoiad3XKM6QCEKwpmZyCGAt2o3kJ2cmWZfVH2Lu9aUGev RzKy+TOpq/DUh76RzzQyl2gyEC6FfFfDU9sISNOdMY+Rdc6eQy4NG+ehY5dsyBzvb4Zc 7Ims9ID+Ky860ItoUMDYlkMv8Aq8rTR6yS/apJyZoZiGEzxfRoqwunh2h46Oer9oN3gs ew4ZE3mThXqnMp8/d3ldDP6XXpmHLLMjuXiO2Z6n0zkRYf2aUGNbH3sOFEV1HTLc4ub2 zu8A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849603; x=1713454403; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ncOUPP3alKNpnXNjXBkDsVRyy/frtxN9Tt0itgJwxuk=; b=Os0bAkEvkoMiNF+tJvvbhjoosmjaQCq0f2MZZZzrKFGCRLvccaHxdvDJkgkB57qxga 6aUXodIb3YdFfIRTJGeNIgd4KCPkFSBJGfJXTd8v/wcBKlkjUckzhO5mPLWnM9tMzBAF c1kipS6arsvWmPUQWmmfVNz46sMkUz1038MyJD4Mdmjjvw1TiJfzNAxCLsW09fCpv1Wm Y8as8mGUl4v1XtwwFeGeKCYUtmIZyePkv1/ImvNt19yFaSAkft0K3QWzNayLs7ZwnCci sF3q865BKRi8elYa4ukw5uyVgvWXZfzEeoNT+3mzcLj7oGYfRrHFZT+Yva4HpYKZKGb8 JsIQ== X-Gm-Message-State: AOJu0Yx5arWttOlWZgLTpRi8H/NssuPer05EfoU0tJ0jhEXBcHw1/Vf5 tLIn7XNupwhhY62v+p/F6/+CohTzRe0QQmdVXPg7yVZtVY+Czy7zoW2es3Fx9S2qkycjyRaUipZ L X-Google-Smtp-Source: AGHT+IGXXPq0beTj7z85DNrIcZxrSl0GARQzfLnSa0pJq/aVZtxHQswIpLq/iMqwuCoGlDNJ4/N/+g== X-Received: by 2002:a6b:f312:0:b0:7d5:de23:13a9 with SMTP id m18-20020a6bf312000000b007d5de2313a9mr152530ioh.1.1712849602983; Thu, 11 Apr 2024 08:33:22 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.33.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:33:21 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 059/437] ALSA: core: convert to read/write iterators Date: Thu, 11 Apr 2024 09:13:19 -0600 Message-ID: <20240411153126.16201-60-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- sound/core/compress_offload.c | 7 +-- sound/core/control.c | 14 +++--- sound/core/hwdep.c | 6 ++- sound/core/init.c | 10 ++-- sound/core/jack.c | 83 ++++++++++++++-------------------- sound/core/oss/pcm_oss.c | 6 ++- sound/core/pcm_native.c | 22 +++++++-- sound/core/rawmidi.c | 6 ++- sound/core/seq/oss/seq_oss.c | 11 +++-- sound/core/seq/seq_clientmgr.c | 8 ++-- sound/core/timer.c | 23 +++++----- 11 files changed, 100 insertions(+), 96 deletions(-) diff --git a/sound/core/compress_offload.c b/sound/core/compress_offload.c index f0008fa2d839..3d2df5eda81b 100644 --- a/sound/core/compress_offload.c +++ b/sound/core/compress_offload.c @@ -322,7 +322,7 @@ static ssize_t snd_compr_write(struct file *f, const ch= ar __user *buf, =20 return retval; } - +FOPS_WRITE_ITER_HELPER(snd_compr_write); =20 static ssize_t snd_compr_read(struct file *f, char __user *buf, size_t count, loff_t *offset) @@ -367,6 +367,7 @@ static ssize_t snd_compr_read(struct file *f, char __us= er *buf, =20 return retval; } +FOPS_READ_ITER_HELPER(snd_compr_read); =20 static int snd_compr_mmap(struct file *f, struct vm_area_struct *vma) { @@ -1004,8 +1005,8 @@ static const struct file_operations snd_compr_file_op= s =3D { .owner =3D THIS_MODULE, .open =3D snd_compr_open, .release =3D snd_compr_free, - .write =3D snd_compr_write, - .read =3D snd_compr_read, + .write_iter =3D snd_compr_write_iter, + .read_iter =3D snd_compr_read_iter, .unlocked_ioctl =3D snd_compr_ioctl, #ifdef CONFIG_COMPAT .compat_ioctl =3D snd_compr_ioctl_compat, diff --git a/sound/core/control.c b/sound/core/control.c index fb0c60044f7b..1faa740c5ec4 100644 --- a/sound/core/control.c +++ b/sound/core/control.c @@ -1985,14 +1985,14 @@ static long snd_ctl_ioctl(struct file *file, unsign= ed int cmd, unsigned long arg return -ENOTTY; } =20 -static ssize_t snd_ctl_read(struct file *file, char __user *buffer, - size_t count, loff_t * offset) +static ssize_t snd_ctl_read(struct kiocb *iocb, struct iov_iter *to) { + size_t count =3D iov_iter_count(to); struct snd_ctl_file *ctl; int err =3D 0; ssize_t result =3D 0; =20 - ctl =3D file->private_data; + ctl =3D iocb->ki_filp->private_data; if (snd_BUG_ON(!ctl || !ctl->card)) return -ENXIO; if (!ctl->subscribed) @@ -2005,7 +2005,8 @@ static ssize_t snd_ctl_read(struct file *file, char _= _user *buffer, struct snd_kctl_event *kev; while (list_empty(&ctl->events)) { wait_queue_entry_t wait; - if ((file->f_flags & O_NONBLOCK) !=3D 0 || result > 0) { + if ((iocb->ki_filp->f_flags & O_NONBLOCK) !=3D 0 || + result > 0) { err =3D -EAGAIN; goto __end_lock; } @@ -2028,12 +2029,11 @@ static ssize_t snd_ctl_read(struct file *file, char= __user *buffer, list_del(&kev->list); spin_unlock_irq(&ctl->read_lock); kfree(kev); - if (copy_to_user(buffer, &ev, sizeof(struct snd_ctl_event))) { + if (!copy_to_iter_full(&ev, sizeof(struct snd_ctl_event), to)) { err =3D -EFAULT; goto __end; } spin_lock_irq(&ctl->read_lock); - buffer +=3D sizeof(struct snd_ctl_event); count -=3D sizeof(struct snd_ctl_event); result +=3D sizeof(struct snd_ctl_event); } @@ -2277,7 +2277,7 @@ EXPORT_SYMBOL_GPL(snd_ctl_disconnect_layer); static const struct file_operations snd_ctl_f_ops =3D { .owner =3D THIS_MODULE, - .read =3D snd_ctl_read, + .read_iter =3D snd_ctl_read, .open =3D snd_ctl_open, .release =3D snd_ctl_release, .llseek =3D no_llseek, diff --git a/sound/core/hwdep.c b/sound/core/hwdep.c index 09200df2932c..3db085c2ec6e 100644 --- a/sound/core/hwdep.c +++ b/sound/core/hwdep.c @@ -55,6 +55,7 @@ static ssize_t snd_hwdep_read(struct file * file, char __= user *buf, return hw->ops.read(hw, buf, count, offset); return -ENXIO;=09 } +FOPS_READ_ITER_HELPER(snd_hwdep_read); =20 static ssize_t snd_hwdep_write(struct file * file, const char __user *buf, size_t count, loff_t *offset) @@ -64,6 +65,7 @@ static ssize_t snd_hwdep_write(struct file * file, const = char __user *buf, return hw->ops.write(hw, buf, count, offset); return -ENXIO;=09 } +FOPS_WRITE_ITER_HELPER(snd_hwdep_write); =20 static int snd_hwdep_open(struct inode *inode, struct file * file) { @@ -327,8 +329,8 @@ static const struct file_operations snd_hwdep_f_ops =3D { .owner =3D THIS_MODULE, .llseek =3D snd_hwdep_llseek, - .read =3D snd_hwdep_read, - .write =3D snd_hwdep_write, + .read_iter =3D snd_hwdep_read_iter, + .write_iter =3D snd_hwdep_write_iter, .open =3D snd_hwdep_open, .release =3D snd_hwdep_release, .poll =3D snd_hwdep_poll, diff --git a/sound/core/init.c b/sound/core/init.c index 4ed5037d8693..d2045533e33d 100644 --- a/sound/core/init.c +++ b/sound/core/init.c @@ -407,14 +407,12 @@ static loff_t snd_disconnect_llseek(struct file *file= , loff_t offset, int orig) return -ENODEV; } =20 -static ssize_t snd_disconnect_read(struct file *file, char __user *buf, - size_t count, loff_t *offset) +static ssize_t snd_disconnect_read(struct kiocb *iocb, struct iov_iter *to) { return -ENODEV; } =20 -static ssize_t snd_disconnect_write(struct file *file, const char __user *= buf, - size_t count, loff_t *offset) +static ssize_t snd_disconnect_write(struct kiocb *iocb, struct iov_iter *f= rom) { return -ENODEV; } @@ -467,8 +465,8 @@ static const struct file_operations snd_shutdown_f_ops = =3D { .owner =3D THIS_MODULE, .llseek =3D snd_disconnect_llseek, - .read =3D snd_disconnect_read, - .write =3D snd_disconnect_write, + .read_iter =3D snd_disconnect_read, + .write_iter =3D snd_disconnect_write, .release =3D snd_disconnect_release, .poll =3D snd_disconnect_poll, .unlocked_ioctl =3D snd_disconnect_ioctl, diff --git a/sound/core/jack.c b/sound/core/jack.c index e08b2c4fbd1a..d7a0a26389ca 100644 --- a/sound/core/jack.c +++ b/sound/core/jack.c @@ -161,29 +161,25 @@ static void snd_jack_inject_report(struct snd_jack_kc= tl *jack_kctl, int status) #endif /* CONFIG_SND_JACK_INPUT_DEV */ } =20 -static ssize_t sw_inject_enable_read(struct file *file, - char __user *to, size_t count, loff_t *ppos) +static ssize_t sw_inject_enable_read(struct kiocb *iocb, struct iov_iter *= to) { - struct snd_jack_kctl *jack_kctl =3D file->private_data; - int len, ret; + struct snd_jack_kctl *jack_kctl =3D iocb->ki_filp->private_data; char buf[128]; + int len; =20 len =3D scnprintf(buf, sizeof(buf), "%s: %s\t\t%s: %i\n", "Jack", jack_kc= tl->kctl->id.name, "Inject Enabled", jack_kctl->sw_inject_enable); - ret =3D simple_read_from_buffer(to, count, ppos, buf, len); - - return ret; + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 -static ssize_t sw_inject_enable_write(struct file *file, - const char __user *from, size_t count, loff_t *ppos) +static ssize_t sw_inject_enable_write(struct kiocb *iocb, struct iov_iter = *from) { - struct snd_jack_kctl *jack_kctl =3D file->private_data; + struct snd_jack_kctl *jack_kctl =3D iocb->ki_filp->private_data; int ret, err; unsigned long enable; char buf[8] =3D { 0 }; =20 - ret =3D simple_write_to_buffer(buf, sizeof(buf) - 1, ppos, from, count); + ret =3D simple_copy_from_iter(buf, &iocb->ki_pos, sizeof(buf) - 1, from); err =3D kstrtoul(buf, 0, &enable); if (err) return err; @@ -199,10 +195,9 @@ static ssize_t sw_inject_enable_write(struct file *fil= e, return ret; } =20 -static ssize_t jackin_inject_write(struct file *file, - const char __user *from, size_t count, loff_t *ppos) +static ssize_t jackin_inject_write(struct kiocb *iocb, struct iov_iter *fr= om) { - struct snd_jack_kctl *jack_kctl =3D file->private_data; + struct snd_jack_kctl *jack_kctl =3D iocb->ki_filp->private_data; int ret, err; unsigned long enable; char buf[8] =3D { 0 }; @@ -210,7 +205,7 @@ static ssize_t jackin_inject_write(struct file *file, if (!jack_kctl->sw_inject_enable) return -EINVAL; =20 - ret =3D simple_write_to_buffer(buf, sizeof(buf) - 1, ppos, from, count); + ret =3D simple_copy_from_iter(buf, &iocb->ki_pos, sizeof(buf) - 1, from); err =3D kstrtoul(buf, 0, &enable); if (err) return err; @@ -220,17 +215,14 @@ static ssize_t jackin_inject_write(struct file *file, return ret; } =20 -static ssize_t jack_kctl_id_read(struct file *file, - char __user *to, size_t count, loff_t *ppos) +static ssize_t jack_kctl_id_read(struct kiocb *iocb, struct iov_iter *to) { - struct snd_jack_kctl *jack_kctl =3D file->private_data; + struct snd_jack_kctl *jack_kctl =3D iocb->ki_filp->private_data; char buf[64]; - int len, ret; + int len; =20 len =3D scnprintf(buf, sizeof(buf), "%s\n", jack_kctl->kctl->id.name); - ret =3D simple_read_from_buffer(to, count, ppos, buf, len); - - return ret; + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 /* the bit definition is aligned with snd_jack_types in jack.h */ @@ -258,82 +250,73 @@ static int parse_mask_bits(unsigned int mask_bits, ch= ar *buf, size_t buf_size) return strlen(buf); } =20 -static ssize_t jack_kctl_mask_bits_read(struct file *file, - char __user *to, size_t count, loff_t *ppos) +static ssize_t jack_kctl_mask_bits_read(struct kiocb *iocb, struct iov_ite= r *to) { - struct snd_jack_kctl *jack_kctl =3D file->private_data; + struct snd_jack_kctl *jack_kctl =3D iocb->ki_filp->private_data; char buf[256]; - int len, ret; + int len; =20 len =3D parse_mask_bits(jack_kctl->mask_bits, buf, sizeof(buf)); - ret =3D simple_read_from_buffer(to, count, ppos, buf, len); - - return ret; + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 -static ssize_t jack_kctl_status_read(struct file *file, - char __user *to, size_t count, loff_t *ppos) +static ssize_t jack_kctl_status_read(struct kiocb *iocb, struct iov_iter *= to) { - struct snd_jack_kctl *jack_kctl =3D file->private_data; + struct snd_jack_kctl *jack_kctl =3D iocb->ki_filp->private_data; char buf[16]; - int len, ret; + int len; =20 len =3D scnprintf(buf, sizeof(buf), "%s\n", jack_kctl->kctl->private_valu= e ? "Plugged" : "Unplugged"); - ret =3D simple_read_from_buffer(to, count, ppos, buf, len); - - return ret; + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 #ifdef CONFIG_SND_JACK_INPUT_DEV -static ssize_t jack_type_read(struct file *file, - char __user *to, size_t count, loff_t *ppos) +static ssize_t jack_type_read(struct kiocb *iocb, struct iov_iter *to) { - struct snd_jack_kctl *jack_kctl =3D file->private_data; + struct snd_jack_kctl *jack_kctl =3D iocb->ki_filp->private_data; char buf[256]; - int len, ret; + int len; =20 len =3D parse_mask_bits(jack_kctl->jack->type, buf, sizeof(buf)); - ret =3D simple_read_from_buffer(to, count, ppos, buf, len); - - return ret; + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 static const struct file_operations jack_type_fops =3D { .open =3D simple_open, - .read =3D jack_type_read, + .read_iter =3D jack_type_read, .llseek =3D default_llseek, }; #endif =20 static const struct file_operations sw_inject_enable_fops =3D { .open =3D simple_open, - .read =3D sw_inject_enable_read, - .write =3D sw_inject_enable_write, + .read_iter =3D sw_inject_enable_read, + .write_iter =3D sw_inject_enable_write, .llseek =3D default_llseek, }; =20 static const struct file_operations jackin_inject_fops =3D { .open =3D simple_open, - .write =3D jackin_inject_write, + .write_iter =3D jackin_inject_write, .llseek =3D default_llseek, }; =20 static const struct file_operations jack_kctl_id_fops =3D { .open =3D simple_open, - .read =3D jack_kctl_id_read, + .read_iter =3D jack_kctl_id_read, .llseek =3D default_llseek, }; =20 static const struct file_operations jack_kctl_mask_bits_fops =3D { .open =3D simple_open, - .read =3D jack_kctl_mask_bits_read, + .read_iter =3D jack_kctl_mask_bits_read, .llseek =3D default_llseek, }; =20 static const struct file_operations jack_kctl_status_fops =3D { .open =3D simple_open, - .read =3D jack_kctl_status_read, + .read_iter =3D jack_kctl_status_read, .llseek =3D default_llseek, }; =20 diff --git a/sound/core/oss/pcm_oss.c b/sound/core/oss/pcm_oss.c index 7386982cf40e..40a51f9743ea 100644 --- a/sound/core/oss/pcm_oss.c +++ b/sound/core/oss/pcm_oss.c @@ -2781,6 +2781,7 @@ static ssize_t snd_pcm_oss_read(struct file *file, ch= ar __user *buf, size_t coun } #endif } +FOPS_READ_ITER_HELPER(snd_pcm_oss_read); =20 static ssize_t snd_pcm_oss_write(struct file *file, const char __user *buf= , size_t count, loff_t *offset) { @@ -2800,6 +2801,7 @@ static ssize_t snd_pcm_oss_write(struct file *file, c= onst char __user *buf, size #endif return result; } +FOPS_WRITE_ITER_HELPER(snd_pcm_oss_write); =20 static int snd_pcm_oss_playback_ready(struct snd_pcm_substream *substream) { @@ -3102,8 +3104,8 @@ static inline void snd_pcm_oss_proc_done(struct snd_p= cm *pcm) static const struct file_operations snd_pcm_oss_f_reg =3D { .owner =3D THIS_MODULE, - .read =3D snd_pcm_oss_read, - .write =3D snd_pcm_oss_write, + .read_iter =3D snd_pcm_oss_read_iter, + .write_iter =3D snd_pcm_oss_write_iter, .open =3D snd_pcm_oss_open, .release =3D snd_pcm_oss_release, .llseek =3D no_llseek, diff --git a/sound/core/pcm_native.c b/sound/core/pcm_native.c index 0b76e76823d2..a3278321bcb0 100644 --- a/sound/core/pcm_native.c +++ b/sound/core/pcm_native.c @@ -3577,6 +3577,22 @@ static ssize_t snd_pcm_writev(struct kiocb *iocb, st= ruct iov_iter *from) return result; } =20 +static ssize_t snd_pcm_read_iter(struct kiocb *iocb, struct iov_iter *to) +{ + if (!(iocb->ki_flags & IOCB_VECTORED)) + return vfs_read_iter(iocb, to, snd_pcm_read); + + return snd_pcm_readv(iocb, to); +} + +static ssize_t snd_pcm_write_iter(struct kiocb *iocb, struct iov_iter *fro= m) +{ + if (!(iocb->ki_flags & IOCB_VECTORED)) + return vfs_write_iter(iocb, from, snd_pcm_write); + + return snd_pcm_writev(iocb, from); +} + static __poll_t snd_pcm_poll(struct file *file, poll_table *wait) { struct snd_pcm_file *pcm_file; @@ -4099,8 +4115,7 @@ static unsigned long snd_pcm_get_unmapped_area(struct= file *file, const struct file_operations snd_pcm_f_ops[2] =3D { { .owner =3D THIS_MODULE, - .write =3D snd_pcm_write, - .write_iter =3D snd_pcm_writev, + .write_iter =3D snd_pcm_write_iter, .open =3D snd_pcm_playback_open, .release =3D snd_pcm_release, .llseek =3D no_llseek, @@ -4113,8 +4128,7 @@ const struct file_operations snd_pcm_f_ops[2] =3D { }, { .owner =3D THIS_MODULE, - .read =3D snd_pcm_read, - .read_iter =3D snd_pcm_readv, + .read_iter =3D snd_pcm_read_iter, .open =3D snd_pcm_capture_open, .release =3D snd_pcm_release, .llseek =3D no_llseek, diff --git a/sound/core/rawmidi.c b/sound/core/rawmidi.c index 7accf9a1ddf4..37590a2f447e 100644 --- a/sound/core/rawmidi.c +++ b/sound/core/rawmidi.c @@ -1316,6 +1316,7 @@ static ssize_t snd_rawmidi_read(struct file *file, ch= ar __user *buf, size_t coun } return result; } +FOPS_READ_ITER_HELPER(snd_rawmidi_read); =20 /** * snd_rawmidi_transmit_empty - check whether the output buffer is empty @@ -1652,6 +1653,7 @@ static ssize_t snd_rawmidi_write(struct file *file, c= onst char __user *buf, } return result; } +FOPS_WRITE_ITER_HELPER(snd_rawmidi_write); =20 static __poll_t snd_rawmidi_poll(struct file *file, poll_table *wait) { @@ -1780,8 +1782,8 @@ static void snd_rawmidi_proc_info_read(struct snd_inf= o_entry *entry, =20 static const struct file_operations snd_rawmidi_f_ops =3D { .owner =3D THIS_MODULE, - .read =3D snd_rawmidi_read, - .write =3D snd_rawmidi_write, + .read_iter =3D snd_rawmidi_read_iter, + .write_iter =3D snd_rawmidi_write_iter, .open =3D snd_rawmidi_open, .release =3D snd_rawmidi_release, .llseek =3D no_llseek, diff --git a/sound/core/seq/oss/seq_oss.c b/sound/core/seq/oss/seq_oss.c index 77c1214acd90..6bc9454c83e9 100644 --- a/sound/core/seq/oss/seq_oss.c +++ b/sound/core/seq/oss/seq_oss.c @@ -43,8 +43,8 @@ static inline void unregister_proc(void) {} =20 static int odev_open(struct inode *inode, struct file *file); static int odev_release(struct inode *inode, struct file *file); -static ssize_t odev_read(struct file *file, char __user *buf, size_t count= , loff_t *offset); -static ssize_t odev_write(struct file *file, const char __user *buf, size_= t count, loff_t *offset); +static ssize_t odev_read_iter(struct kiocb *iocb, struct iov_iter *to); +static ssize_t odev_write_iter(struct kiocb *iocb, struct iov_iter *from); static long odev_ioctl(struct file *file, unsigned int cmd, unsigned long = arg); static __poll_t odev_poll(struct file *file, poll_table * wait); =20 @@ -156,7 +156,7 @@ odev_read(struct file *file, char __user *buf, size_t c= ount, loff_t *offset) return -ENXIO; return snd_seq_oss_read(dp, buf, count); } - +FOPS_READ_ITER_HELPER(odev_read); =20 static ssize_t odev_write(struct file *file, const char __user *buf, size_t count, loff_t= *offset) @@ -167,6 +167,7 @@ odev_write(struct file *file, const char __user *buf, s= ize_t count, loff_t *offs return -ENXIO; return snd_seq_oss_write(dp, buf, count, file); } +FOPS_WRITE_ITER_HELPER(odev_write); =20 static long odev_ioctl(struct file *file, unsigned int cmd, unsigned long arg) @@ -214,8 +215,8 @@ odev_poll(struct file *file, poll_table * wait) static const struct file_operations seq_oss_f_ops =3D { .owner =3D THIS_MODULE, - .read =3D odev_read, - .write =3D odev_write, + .read_iter =3D odev_read_iter, + .write_iter =3D odev_write_iter, .open =3D odev_open, .release =3D odev_release, .poll =3D odev_poll, diff --git a/sound/core/seq/seq_clientmgr.c b/sound/core/seq/seq_clientmgr.c index 42a705141050..8945d2b0a16f 100644 --- a/sound/core/seq/seq_clientmgr.c +++ b/sound/core/seq/seq_clientmgr.c @@ -511,7 +511,7 @@ static ssize_t snd_seq_read(struct file *file, char __u= ser *buf, size_t count, =20 return (err < 0) ? err : result; } - +FOPS_READ_ITER_HELPER(snd_seq_read); =20 /* * check access permission to the port @@ -1107,7 +1107,7 @@ static ssize_t snd_seq_write(struct file *file, const= char __user *buf, mutex_unlock(&client->ioctl_mutex); return written ? written : err; } - +FOPS_WRITE_ITER_HELPER(snd_seq_write); =20 /* * handle polling @@ -2711,8 +2711,8 @@ void snd_seq_info_clients_read(struct snd_info_entry = *entry, static const struct file_operations snd_seq_f_ops =3D { .owner =3D THIS_MODULE, - .read =3D snd_seq_read, - .write =3D snd_seq_write, + .read_iter =3D snd_seq_read_iter, + .write_iter =3D snd_seq_write_iter, .open =3D snd_seq_open, .release =3D snd_seq_release, .llseek =3D no_llseek, diff --git a/sound/core/timer.c b/sound/core/timer.c index 4d2ee99c12a3..9727e2db3eec 100644 --- a/sound/core/timer.c +++ b/sound/core/timer.c @@ -2066,9 +2066,9 @@ static int snd_timer_user_fasync(int fd, struct file = * file, int on) return snd_fasync_helper(fd, file, on, &tu->fasync); } =20 -static ssize_t snd_timer_user_read(struct file *file, char __user *buffer, - size_t count, loff_t *offset) +static ssize_t snd_timer_user_read(struct kiocb *iocb, struct iov_iter *to) { + size_t count =3D iov_iter_count(to); struct snd_timer_tread64 *tread; struct snd_timer_tread32 tread32; struct snd_timer_user *tu; @@ -2076,7 +2076,7 @@ static ssize_t snd_timer_user_read(struct file *file,= char __user *buffer, int qhead; int err =3D 0; =20 - tu =3D file->private_data; + tu =3D iocb->ki_filp->private_data; switch (tu->tread) { case TREAD_FORMAT_TIME64: unit =3D sizeof(struct snd_timer_tread64); @@ -2098,7 +2098,8 @@ static ssize_t snd_timer_user_read(struct file *file,= char __user *buffer, while (!tu->qused) { wait_queue_entry_t wait; =20 - if ((file->f_flags & O_NONBLOCK) !=3D 0 || result > 0) { + if ((iocb->ki_filp->f_flags & O_NONBLOCK) !=3D 0 || + result > 0) { err =3D -EAGAIN; goto _error; } @@ -2134,8 +2135,9 @@ static ssize_t snd_timer_user_read(struct file *file,= char __user *buffer, =20 switch (tu->tread) { case TREAD_FORMAT_TIME64: - if (copy_to_user(buffer, tread, - sizeof(struct snd_timer_tread64))) + if (!copy_to_iter_full(tread, + sizeof(struct snd_timer_tread64), + to)) err =3D -EFAULT; break; case TREAD_FORMAT_TIME32: @@ -2147,12 +2149,12 @@ static ssize_t snd_timer_user_read(struct file *fil= e, char __user *buffer, .val =3D tread->val, }; =20 - if (copy_to_user(buffer, &tread32, sizeof(tread32))) + if (!copy_to_iter_full(&tread32, sizeof(tread32), to)) err =3D -EFAULT; break; case TREAD_FORMAT_NONE: - if (copy_to_user(buffer, &tu->queue[qhead], - sizeof(struct snd_timer_read))) + if (!copy_to_iter_full(&tu->queue[qhead], + sizeof(struct snd_timer_read), to)) err =3D -EFAULT; break; default: @@ -2164,7 +2166,6 @@ static ssize_t snd_timer_user_read(struct file *file,= char __user *buffer, if (err < 0) goto _error; result +=3D unit; - buffer +=3D unit; } _error: spin_unlock_irq(&tu->qlock); @@ -2200,7 +2201,7 @@ static __poll_t snd_timer_user_poll(struct file *file= , poll_table * wait) static const struct file_operations snd_timer_f_ops =3D { .owner =3D THIS_MODULE, - .read =3D snd_timer_user_read, + .read_iter =3D snd_timer_user_read, .open =3D snd_timer_user_open, .release =3D snd_timer_user_release, .llseek =3D no_llseek, --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f48.google.com (mail-io1-f48.google.com [209.85.166.48]) (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 1FCDA81AAA for ; Thu, 11 Apr 2024 15:33:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849608; cv=none; b=m3dhv3xkapLaFyxzXiNWyC7bAvHsDuwxr3w/fmAdGAgdp2yzL6bECnzoXJaIDy1x0hyw8h2rp0+8GBmDkZMHnomcQTWKI3G/MSVmOIMRiHkL6pviI+Rc3Cm+3RGyMxdLYWt53J1AK0WJyC9/GLbKSXBmu4CPUpSKO1uLcORugIY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849608; c=relaxed/simple; bh=Xjw9ymH6QYPl3HgbkXc0fcLRxarZel6uludn6INpOQU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=SUK/x9nD6sI2yGn8HC4y/UhFgxEoxYEJtceUARxKuK7jlqpq+nkMsfPyKorCGJdP1vnr5hX1obpbKdiEkAEHRNWhPtZSKMlxpCh0GZuZVeKrO1+aEFzqhUcT04PaYgksaNBQaPY1fpu61wgZ8bMzTdh6pXsqlaI+duzkmj0a7PM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=zVLnH65h; arc=none smtp.client-ip=209.85.166.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="zVLnH65h" Received: by mail-io1-f48.google.com with SMTP id ca18e2360f4ac-7d6812b37a6so8881639f.0 for ; Thu, 11 Apr 2024 08:33:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849604; x=1713454404; 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=HDyStLHZd9A7AvqhY+ypiXDkX0T5cqUhGABzb6RtvfE=; b=zVLnH65h2PPOFRnUE2zqA8fJYhVLQ4AjE/xS9+nT1NTnAweGgsu/RTVmFHQSuUlpKe jwVR+zNsowU1QPT6LMnYByxU3cxzK6nhzE2gswvd4zYHc86hg65Ezxs5G7zLze2rFDDI 7X0uMtL56le0+coAlP+Ce3dVD/iIfx4luWP2wTCTvS0R1BpmLLsaHNIIpphfcu0hpA3a 3ZqUrgKxnH9n0PiJ4bTfBeYRJJ8yeq5vMH4vaKaqU1oWjsmUnMafQRjhWky+xL56zpA/ d9X/k9nwgMyR6wevEo27TZA3sbfVKgF8NffXU86DPF3o+Q42ItrmBLoDfAPhEPLCb9CV kovg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849604; x=1713454404; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=HDyStLHZd9A7AvqhY+ypiXDkX0T5cqUhGABzb6RtvfE=; b=JN6ZRm+JMydK1WuuKiOvUmK7ts8FnBrGq0UmQWXIfE4GhxScC9PKBVXrodAnnZU0kp 1AFCvbhiBzMae8LQ6AIcPm5X1R4jVRQgrw0Qje4anTEZMofq2X3BxvvcVspMTHPLGFpq aRebTMvXgT2GaGIzTnWgCDHDYJy1+ULWgYlz3PHiIRRxwDt5BTtyfFWXug7NascVoilf 4RqKrpSQzC6i/z9ioOgRt9UVWnbEfbCwkX+0a2fQ1LMaeX1f5XHEABGYvRwRT2klK/nV WfnFRLLc0YQCt9DVVcmBM9sKEHKytohIcwLf+6R79JBS9uEJDXY5ntgk+s/V4unBnmmk SBIg== X-Gm-Message-State: AOJu0YygMUjg1jcTfFWY4F4IPeAjKFd7ZVW13tEw+9iBsqv1T/SmN69k TcUmScC0mPpnMLf0OGpli8L0an3XpbqwbfXVECKQXBdCK2zzeh7GA11lxrTunVXXmp2rZaQgpUM r X-Google-Smtp-Source: AGHT+IECSAbZ7xa0uQ45gWWbO7756cCOSr2hnUeNMww7MlEOYcfe2gmHR9lif5LbbWpmo2e/I4ICVQ== X-Received: by 2002:a5e:9907:0:b0:7d6:751f:192 with SMTP id t7-20020a5e9907000000b007d6751f0192mr173134ioj.2.1712849603756; Thu, 11 Apr 2024 08:33:23 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.33.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:33:23 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 060/437] ASoC: Intel: convert to read/write iterators Date: Thu, 11 Apr 2024 09:13:20 -0600 Message-ID: <20240411153126.16201-61-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- sound/soc/intel/avs/debugfs.c | 69 +++++++++++++++-------------- sound/soc/intel/avs/pcm.c | 9 ++-- sound/soc/intel/skylake/skl-debug.c | 19 ++++---- 3 files changed, 47 insertions(+), 50 deletions(-) diff --git a/sound/soc/intel/avs/debugfs.c b/sound/soc/intel/avs/debugfs.c index 4dfbff0ce508..ebab29e5e2bd 100644 --- a/sound/soc/intel/avs/debugfs.c +++ b/sound/soc/intel/avs/debugfs.c @@ -48,9 +48,9 @@ void avs_dump_fw_log_wakeup(struct avs_dev *adev, const v= oid __iomem *src, unsig wake_up(&adev->trace_waitq); } =20 -static ssize_t fw_regs_read(struct file *file, char __user *to, size_t cou= nt, loff_t *ppos) +static ssize_t fw_regs_read(struct kiocb *iocb, struct iov_iter *to) { - struct avs_dev *adev =3D file->private_data; + struct avs_dev *adev =3D iocb->ki_filp->private_data; char *buf; int ret; =20 @@ -60,20 +60,20 @@ static ssize_t fw_regs_read(struct file *file, char __u= ser *to, size_t count, lo =20 memcpy_fromio(buf, avs_sram_addr(adev, AVS_FW_REGS_WINDOW), AVS_FW_REGS_S= IZE); =20 - ret =3D simple_read_from_buffer(to, count, ppos, buf, AVS_FW_REGS_SIZE); + ret =3D simple_copy_to_iter(buf, &iocb->ki_pos, AVS_FW_REGS_SIZE, to); kfree(buf); return ret; } =20 static const struct file_operations fw_regs_fops =3D { .open =3D simple_open, - .read =3D fw_regs_read, + .read_iter =3D fw_regs_read, .llseek =3D no_llseek, }; =20 -static ssize_t debug_window_read(struct file *file, char __user *to, size_= t count, loff_t *ppos) +static ssize_t debug_window_read(struct kiocb *iocb, struct iov_iter *to) { - struct avs_dev *adev =3D file->private_data; + struct avs_dev *adev =3D iocb->ki_filp->private_data; size_t size; char *buf; int ret; @@ -85,27 +85,27 @@ static ssize_t debug_window_read(struct file *file, cha= r __user *to, size_t coun =20 memcpy_fromio(buf, avs_sram_addr(adev, AVS_DEBUG_WINDOW), size); =20 - ret =3D simple_read_from_buffer(to, count, ppos, buf, size); + ret =3D simple_copy_to_iter(buf, &iocb->ki_pos, size, to); kfree(buf); return ret; } =20 static const struct file_operations debug_window_fops =3D { .open =3D simple_open, - .read =3D debug_window_read, + .read_iter =3D debug_window_read, .llseek =3D no_llseek, }; =20 -static ssize_t probe_points_read(struct file *file, char __user *to, size_= t count, loff_t *ppos) +static ssize_t probe_points_read(struct kiocb *iocb, struct iov_iter *to) { - struct avs_dev *adev =3D file->private_data; + struct avs_dev *adev =3D iocb->ki_filp->private_data; struct avs_probe_point_desc *desc; size_t num_desc, len =3D 0; char *buf; int i, ret; =20 /* Prevent chaining, send and dump IPC value just once. */ - if (*ppos) + if (iocb->ki_pos) return 0; =20 buf =3D kzalloc(PAGE_SIZE, GFP_KERNEL); @@ -127,7 +127,7 @@ static ssize_t probe_points_read(struct file *file, cha= r __user *to, size_t coun len +=3D ret; } =20 - ret =3D simple_read_from_buffer(to, count, ppos, buf, len); + ret =3D simple_copy_to_iter(buf, &iocb->ki_pos, len, to); free_desc: kfree(desc); exit: @@ -135,16 +135,16 @@ static ssize_t probe_points_read(struct file *file, c= har __user *to, size_t coun return ret; } =20 -static ssize_t probe_points_write(struct file *file, const char __user *fr= om, size_t count, - loff_t *ppos) +static ssize_t probe_points_write(struct kiocb *iocb, struct iov_iter *fro= m) { - struct avs_dev *adev =3D file->private_data; + struct avs_dev *adev =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); struct avs_probe_point_desc *desc; u32 *array, num_elems; size_t bytes; int ret; =20 - ret =3D parse_int_array_user(from, count, (int **)&array); + ret =3D parse_int_array_iter(from, (int **)&array); if (ret < 0) return ret; =20 @@ -168,21 +168,22 @@ static ssize_t probe_points_write(struct file *file, = const char __user *from, si =20 static const struct file_operations probe_points_fops =3D { .open =3D simple_open, - .read =3D probe_points_read, - .write =3D probe_points_write, + .read_iter =3D probe_points_read, + .write_iter =3D probe_points_write, .llseek =3D no_llseek, }; =20 -static ssize_t probe_points_disconnect_write(struct file *file, const char= __user *from, - size_t count, loff_t *ppos) +static ssize_t probe_points_disconnect_write(struct kiocb *iocb, + struct iov_iter *from) { - struct avs_dev *adev =3D file->private_data; + struct avs_dev *adev =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); union avs_probe_point_id *id; u32 *array, num_elems; size_t bytes; int ret; =20 - ret =3D parse_int_array_user(from, count, (int **)&array); + ret =3D parse_int_array_iter(from, (int **)&array); if (ret < 0) return ret; =20 @@ -206,7 +207,7 @@ static ssize_t probe_points_disconnect_write(struct fil= e *file, const char __use =20 static const struct file_operations probe_points_disconnect_fops =3D { .open =3D simple_open, - .write =3D probe_points_disconnect_write, + .write_iter =3D probe_points_disconnect_write, .llseek =3D default_llseek, }; =20 @@ -230,6 +231,7 @@ static ssize_t strace_read(struct file *file, char __us= er *to, size_t count, lof *ppos +=3D copied; return copied; } +FOPS_READ_ITER_HELPER(strace_read); =20 static int strace_open(struct inode *inode, struct file *file) { @@ -279,7 +281,7 @@ static int strace_release(struct inode *inode, struct f= ile *file) =20 static const struct file_operations strace_fops =3D { .llseek =3D default_llseek, - .read =3D strace_read, + .read_iter =3D strace_read_iter, .open =3D strace_open, .release =3D strace_release, }; @@ -351,26 +353,25 @@ static int disable_logs(struct avs_dev *adev, u32 res= ource_mask) return ret; } =20 -static ssize_t trace_control_read(struct file *file, char __user *to, size= _t count, loff_t *ppos) +static ssize_t trace_control_read(struct kiocb *iocb, struct iov_iter *to) { - struct avs_dev *adev =3D file->private_data; + struct avs_dev *adev =3D iocb->ki_filp->private_data; char buf[64]; int len; =20 len =3D snprintf(buf, sizeof(buf), "0x%08x\n", adev->logged_resources); - - return simple_read_from_buffer(to, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 -static ssize_t trace_control_write(struct file *file, const char __user *f= rom, size_t count, - loff_t *ppos) +static ssize_t trace_control_write(struct kiocb *iocb, struct iov_iter *fr= om) { - struct avs_dev *adev =3D file->private_data; + struct avs_dev *adev =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); u32 *array, num_elems; u32 resource_mask; int ret; =20 - ret =3D parse_int_array_user(from, count, (int **)&array); + ret =3D parse_int_array_iter(from, (int **)&array); if (ret < 0) return ret; =20 @@ -403,8 +404,8 @@ static ssize_t trace_control_write(struct file *file, c= onst char __user *from, s =20 static const struct file_operations trace_control_fops =3D { .llseek =3D default_llseek, - .read =3D trace_control_read, - .write =3D trace_control_write, + .read_iter =3D trace_control_read, + .write_iter =3D trace_control_write, .open =3D simple_open, }; =20 diff --git a/sound/soc/intel/avs/pcm.c b/sound/soc/intel/avs/pcm.c index 2cafbc392cdb..631cb410fdfe 100644 --- a/sound/soc/intel/avs/pcm.c +++ b/sound/soc/intel/avs/pcm.c @@ -792,10 +792,9 @@ const struct snd_soc_dai_ops avs_dai_fe_ops =3D { .trigger =3D avs_dai_fe_trigger, }; =20 -static ssize_t topology_name_read(struct file *file, char __user *user_buf= , size_t count, - loff_t *ppos) +static ssize_t topology_name_read(struct kiocb *iocb, struct iov_iter *to) { - struct snd_soc_component *component =3D file->private_data; + struct snd_soc_component *component =3D iocb->ki_filp->private_data; struct snd_soc_card *card =3D component->card; struct snd_soc_acpi_mach *mach =3D dev_get_platdata(card->dev); char buf[64]; @@ -804,12 +803,12 @@ static ssize_t topology_name_read(struct file *file, = char __user *user_buf, size len =3D scnprintf(buf, sizeof(buf), "%s/%s\n", component->driver->topolog= y_name_prefix, mach->tplg_filename); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 static const struct file_operations topology_name_fops =3D { .open =3D simple_open, - .read =3D topology_name_read, + .read_iter =3D topology_name_read, .llseek =3D default_llseek, }; =20 diff --git a/sound/soc/intel/skylake/skl-debug.c b/sound/soc/intel/skylake/= skl-debug.c index a15aa2ffa681..a1715364729d 100644 --- a/sound/soc/intel/skylake/skl-debug.c +++ b/sound/soc/intel/skylake/skl-debug.c @@ -64,10 +64,9 @@ static ssize_t skl_print_fmt(struct skl_module_fmt *fmt,= char *buf, fmt->ch_map); } =20 -static ssize_t module_read(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t module_read(struct kiocb *iocb, struct iov_iter *to) { - struct skl_module_cfg *mconfig =3D file->private_data; + struct skl_module_cfg *mconfig =3D iocb->ki_filp->private_data; struct skl_module *module =3D mconfig->module; struct skl_module_res *res =3D &module->resources[mconfig->res_idx]; char *buf; @@ -149,7 +148,7 @@ static ssize_t module_read(struct file *file, char __us= er *user_buf, mconfig->dma_id, mconfig->mem_pages, mconfig->m_state, mconfig->m_type); =20 - ret =3D simple_read_from_buffer(user_buf, count, ppos, buf, ret); + ret =3D simple_copy_to_iter(buf, &iocb->ki_pos, ret, to); =20 kfree(buf); return ret; @@ -157,7 +156,7 @@ static ssize_t module_read(struct file *file, char __us= er *user_buf, =20 static const struct file_operations mcfg_fops =3D { .open =3D simple_open, - .read =3D module_read, + .read_iter =3D module_read, .llseek =3D default_llseek, }; =20 @@ -170,10 +169,9 @@ void skl_debug_init_module(struct skl_debug *d, &mcfg_fops); } =20 -static ssize_t fw_softreg_read(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t fw_softreg_read(struct kiocb *iocb, struct iov_iter *to) { - struct skl_debug *d =3D file->private_data; + struct skl_debug *d =3D iocb->ki_filp->private_data; struct sst_dsp *sst =3D d->skl->dsp; size_t w0_stat_sz =3D sst->addr.w0_stat_sz; void __iomem *in_base =3D sst->mailbox.in_base; @@ -203,15 +201,14 @@ static ssize_t fw_softreg_read(struct file *file, cha= r __user *user_buf, tmp[ret++] =3D '\n'; } =20 - ret =3D simple_read_from_buffer(user_buf, count, ppos, tmp, ret); + ret =3D simple_copy_to_iter(tmp, &iocb->ki_pos, ret, to); kfree(tmp); - return ret; } =20 static const struct file_operations soft_regs_ctrl_fops =3D { .open =3D simple_open, - .read =3D fw_softreg_read, + .read_iter =3D fw_softreg_read, .llseek =3D default_llseek, }; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-il1-f177.google.com (mail-il1-f177.google.com [209.85.166.177]) (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 EE4677FBB0 for ; Thu, 11 Apr 2024 15:33:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.177 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849608; cv=none; b=SBdhsZVR9N7mWC8GPtwd4lBrzSeqWdgX4yP+iVIfvCag+T+6LozVzU66Qo3tHmeu6Pyh2dj33XHZtVOSJhiVTFy9vgsfh9cKk7NG+25tplFJ/2hcvv1RKn8SLgk6O3Z1778gFoYL1SsoyUPttQZE6RtxLzjGDqApskT8ZzqgMAo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849608; c=relaxed/simple; bh=ixAxhsQ5BEDYRb0oFjH7cCMlrYuKljtAZJNh9CQ7ETk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Ud5p1YJdOZPqCx49mh0XnQFz8eo2oXCizb8Q3DTRZXrb3DdR8XkcjWA7WC6T6pLjEl0bP2qItQLzbTqedob8IM8ioEp62SByFG2Xw2tcTAnLLO2u1BTQ8UfMQFYa5C0BdH25vKyG3RIXhT685g5BE3FBvCHakcIOGaD6gLnYKcw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=dnOSiAgp; arc=none smtp.client-ip=209.85.166.177 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="dnOSiAgp" Received: by mail-il1-f177.google.com with SMTP id e9e14a558f8ab-36a224d7414so177825ab.1 for ; Thu, 11 Apr 2024 08:33:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849606; x=1713454406; 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=iPq3O8JL5wt2QNsDusZeSAcsf+5km/B4tpNnOzV1qYY=; b=dnOSiAgpNHmTLY5/0kMWHuvrzjiaryUcAGxy1Lqnsq7RAtVOuriYSsFy4zSxy4KVEj zR6QD96xbNMC4Q0mkqNrNTgb/4hYv8aaTDBQITvoZ4tvEjfcd2WdNnp0gyd4tOJ7km7m 9y7n7IXdJGj3Gcqriidtj0wqZnN1Qfwqn3hYxcFqyQy15Cnt61B1tNIpIH5ONnoz1tw8 I3dGc2iuHns8l43b/JRzdr+ZXTPT+xoZMIoWTGYrCN6C0lIxQ20h3MTuTNPfvm5lY0Zh 1PC6o4BhjkjM4rWyNMR6Ouebj8oQJfRLUpls/7Vb+dvp6RD40T01om8jPWKCKiRHrqnV p6ug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849606; x=1713454406; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=iPq3O8JL5wt2QNsDusZeSAcsf+5km/B4tpNnOzV1qYY=; b=wuMR1W8vsBmuTr+vF4dMV4vnoa1pIlfUHxTTguvgZsPRLM0vyHMuedw3cAsZZhKP3t 6akaO8EF4JHXtqMe1CfATcnity02ZZoyq1FdNpd2rwqEPhcGiau0p9i7QDqxDmnIki9M l1LKBmWWyGhZSNU59g8DhJTVwq5pybPrOp52zoRDGHHyglnlJEf0hUmDCnEaTj7jlwNm QwMhgahzrt287FFiANOidFJxroIBUB6BbqiXqmH6TIR0q1iTa4pPLBdX7PKizR3xhoJ6 Rsuu3MbWc/ri15t73LpVcZAW0xsfcHzGiF17axR6zVkDiRcs2UZmrAJyeV2VVau5yJdu BN5w== X-Gm-Message-State: AOJu0YwS9bgB1/ctUYmbtDUaaa4nPkIXVzn5PRJepz3Ui6AETMul4B/b tly+Q+SmXz/nTZJ5AKROgIJBJHfU7JCisAWwV1jeLk/QULY3slrrpYJrk9QbBgQ+XaLIe/dPxNv k X-Google-Smtp-Source: AGHT+IH5t6HtZHh7e9CZQsUccf+2a8Au74rt5JiWF7yyJbw+ZFDyhLcAVWljcPHRfzIKdBqtqS+xAw== X-Received: by 2002:a05:6602:4ed7:b0:7d5:ddc8:504d with SMTP id gk23-20020a0566024ed700b007d5ddc8504dmr181723iob.0.1712849605692; Thu, 11 Apr 2024 08:33:25 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.33.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:33:24 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 061/437] ASoC: fsl: convert to read/write iterators Date: Thu, 11 Apr 2024 09:13:21 -0600 Message-ID: <20240411153126.16201-62-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- sound/soc/fsl/imx-audmux.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/sound/soc/fsl/imx-audmux.c b/sound/soc/fsl/imx-audmux.c index 747ab2f1aae3..479fd59e329c 100644 --- a/sound/soc/fsl/imx-audmux.c +++ b/sound/soc/fsl/imx-audmux.c @@ -53,12 +53,11 @@ static const char *audmux_port_string(int port) } } =20 -static ssize_t audmux_read_file(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t audmux_read_file(struct kiocb *iocb, struct iov_iter *to) { ssize_t ret; char *buf; - uintptr_t port =3D (uintptr_t)file->private_data; + uintptr_t port =3D (uintptr_t)iocb->ki_filp->private_data; u32 pdcr, ptcr; =20 ret =3D clk_prepare_enable(audmux_clk); @@ -119,16 +118,14 @@ static ssize_t audmux_read_file(struct file *file, ch= ar __user *user_buf, "\nData received from %s\n", audmux_port_string((pdcr >> 13) & 0x7)); =20 - ret =3D simple_read_from_buffer(user_buf, count, ppos, buf, ret); - + ret =3D simple_copy_to_iter(buf, &iocb->ki_pos, ret, to); kfree(buf); - return ret; } =20 static const struct file_operations audmux_debugfs_fops =3D { .open =3D simple_open, - .read =3D audmux_read_file, + .read_iter =3D audmux_read_file, .llseek =3D default_llseek, }; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f51.google.com (mail-io1-f51.google.com [209.85.166.51]) (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 AC3638288D for ; Thu, 11 Apr 2024 15:33:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849610; cv=none; b=TEDwbodb0m7PJqKJx0JpLOhUXCLmtaRx5Np8lMIsiz77W3a2wun6wE4W2zfBqcdwbsN2Lh9EBW+lMmWBX70w1dsAW9hYYvQvE8RWwCURM8suFvAywO5kwnU/FVs5YFLKmGvE7flvdNuc8d5mQh3XFBhQd0mBN0nSKHGGvnjAMpY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849610; c=relaxed/simple; bh=P9LCpYNDUrfSgkEJutV3KNxBX7V/yuQER6JDcw27rng=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=X6qi+k3YMPHfr+2AdPStiwzNGwRhL/zR67s6ISmHQUzAKnz8QZjwwt7lX9sML/4arb9JcIsDDhuONmW4XCl19nEpTiJbFdPkKPNKd5S2zqbcc6SA7NzH7ErCQ/+8BxmoNFXWSiWmz7nU1bcXVgsM/0/jEOTR4nZ6Nbro9/AeItQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=0xD3yt7J; arc=none smtp.client-ip=209.85.166.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="0xD3yt7J" Received: by mail-io1-f51.google.com with SMTP id ca18e2360f4ac-7d6112ba6baso57976839f.1 for ; Thu, 11 Apr 2024 08:33:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849607; x=1713454407; 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=uSvPK0G0eDQL3w1EYvX8m8KP6rjYZG1rNj9rSoFDx7g=; b=0xD3yt7JuZI3ICrFXq4r8nW8/joo/EtHutmsRGl2jL69KnlpMidRu+jBG9r7K86T/p A0M96Ox2MgiBtxAisYeR3isw1HBTspgBSHaQW1W8PEvf/AdLaCdLuwf0LzOTXDPwfFX8 qfQAHg4iWPgwUY7xZEL6Rx2nna+oVJSfrhtcE1akObVBbNIoxSycqzZwqAMUDBnBJtoj 6hkaJod9OB1DrLoJOzlTYJPtKbCVY0yIkG12WjxjyYnCYV7qaklV8fW2h1+ClPAyWK7B cMJdyuoaqTWzo3MwnsT/+syawKQ6DtDSrIqbyJKTMwRI2liqyG9wfRavefAFW5bgIkKb N9lg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849607; x=1713454407; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=uSvPK0G0eDQL3w1EYvX8m8KP6rjYZG1rNj9rSoFDx7g=; b=qFI9WO/gw0+u2+i/mQ2mvNv6bXB/w5wOcuReHUT6kMmTFjiiJAJesnuydBYwiM3K4J HFEsK4OPWeczeJIZfarsNEQ5LJMMpPOZgRfjjTpVfQDmzbmW24Xq5z+++8kmhcxCKN2o mnWsLa0aP+tRW+dm6XkjXUmNhPxkgi2fr1cx1Ayu5/o61OEy6mMxARvQ43MwMwhp9iVR m9TGG/vYxuKgr4lkunX1xDERAy7BWhhjsLTduI2K5rsuVR8hm/F+Rr0ZjohH6ZglEcGD 8Uky7zsEJykcnoiU11cJQ1UDcydgb8aoeKwdKvC2KJCYDg3Ra+EiEjn07byzL8jg3OUW /yig== X-Gm-Message-State: AOJu0Ywqqw2C6DZaqB8rnX+dyvg2UyWMrdxBuKLeNTQOLxwWWh73deW8 imh8BrMmDAR0Axtg7OlDzftUKPfCTEguCsPrI7RQ2Nx+p8SAAGTYMdjd2bV15P9uMJcE98fEDrH R X-Google-Smtp-Source: AGHT+IFPrnPGabwgQ0UGRa0TXUh1IFXFUbkGOsWe1wg/O5K4mlkgiBnO/diUjdPcLdGXtpPb4mfOag== X-Received: by 2002:a05:6602:38d:b0:7d6:513b:254 with SMTP id f13-20020a056602038d00b007d6513b0254mr174370iov.2.1712849607649; Thu, 11 Apr 2024 08:33:27 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.33.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:33:26 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 062/437] ALSA: pcmtest: convert to read/write iterators Date: Thu, 11 Apr 2024 09:13:22 -0600 Message-ID: <20240411153126.16201-63-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- sound/drivers/pcmtest.c | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/sound/drivers/pcmtest.c b/sound/drivers/pcmtest.c index b8bff5522bce..8a09d82d2207 100644 --- a/sound/drivers/pcmtest.c +++ b/sound/drivers/pcmtest.c @@ -646,48 +646,48 @@ static struct platform_driver pcmtst_pdrv =3D { }, }; =20 -static ssize_t pattern_write(struct file *file, const char __user *u_buff,= size_t len, loff_t *off) +static ssize_t pattern_write(struct kiocb *iocb, struct iov_iter *from) { - struct pattern_buf *patt_buf =3D file->f_inode->i_private; - ssize_t to_write =3D len; + struct pattern_buf *patt_buf =3D iocb->ki_filp->f_inode->i_private; + ssize_t to_write =3D iov_iter_count(from); =20 - if (*off + to_write > MAX_PATTERN_LEN) - to_write =3D MAX_PATTERN_LEN - *off; + if (iocb->ki_pos + to_write > MAX_PATTERN_LEN) + to_write =3D MAX_PATTERN_LEN - iocb->ki_pos; =20 // Crop silently everything over the buffer if (to_write <=3D 0) - return len; + return iov_iter_count(from); =20 - if (copy_from_user(patt_buf->buf + *off, u_buff, to_write)) + if (!copy_from_iter_full(patt_buf->buf + iocb->ki_pos, to_write, from)) return -EFAULT; =20 - patt_buf->len =3D *off + to_write; - *off +=3D to_write; + patt_buf->len =3D iocb->ki_pos + to_write; + iocb->ki_pos +=3D to_write; =20 return to_write; } =20 -static ssize_t pattern_read(struct file *file, char __user *u_buff, size_t= len, loff_t *off) +static ssize_t pattern_read(struct kiocb *iocb, struct iov_iter *to) { - struct pattern_buf *patt_buf =3D file->f_inode->i_private; - ssize_t to_read =3D len; + struct pattern_buf *patt_buf =3D iocb->ki_filp->f_inode->i_private; + ssize_t to_read =3D iov_iter_count(to); =20 - if (*off + to_read >=3D MAX_PATTERN_LEN) - to_read =3D MAX_PATTERN_LEN - *off; + if (iocb->ki_pos + to_read >=3D MAX_PATTERN_LEN) + to_read =3D MAX_PATTERN_LEN - iocb->ki_pos; if (to_read <=3D 0) return 0; =20 - if (copy_to_user(u_buff, patt_buf->buf + *off, to_read)) + if (!copy_to_iter_full(patt_buf->buf + iocb->ki_pos, to_read, to)) to_read =3D 0; else - *off +=3D to_read; + iocb->ki_pos +=3D to_read; =20 return to_read; } =20 static const struct file_operations fill_pattern_fops =3D { - .read =3D pattern_read, - .write =3D pattern_write, + .read_iter =3D pattern_read, + .write_iter =3D pattern_write, }; =20 static int setup_patt_bufs(void) --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f41.google.com (mail-io1-f41.google.com [209.85.166.41]) (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 6B45083CC3 for ; Thu, 11 Apr 2024 15:33:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849611; cv=none; b=EWOi2a3MRBcLeNyrvFnJKNt5GCGsMCz8hcXfEgZPMoAVvi0ytn6UKEdwb2OWj3bdNyM2GfXYnrC0WJBw4LU8kqjlxsbrAgFgoB6L5cTexXeUrK+5WkHD0BGU7nmO2PZVgCGD3JwEohQNGVeNz2X/os98Si7EvcO4Ocz6qjlw9Ww= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849611; c=relaxed/simple; bh=mAjnOUYwQgY7c9GKXk9aZtZsZwOobLurLzG7cVDEafk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=n9jTBeiqL7fl6LxHpvUHq+ACHUCvM1ws0q/CdBwJi75wz7oC+3PS13fDnjUfBu/lrR+7aISXKLKWYvDJdxqBZh8UPaRZfZ7mSKb3Zc/jM8hr+eitrgwPIWMzApxLxPIlYFaUehie0OU9PQzzUdgaKRP5XCS6fGRZTnQIsLWE8GQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=FYOkGVCo; arc=none smtp.client-ip=209.85.166.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="FYOkGVCo" Received: by mail-io1-f41.google.com with SMTP id ca18e2360f4ac-7d6812b37a6so8884239f.0 for ; Thu, 11 Apr 2024 08:33:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849609; x=1713454409; 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=+NgsNMGYsm9mjIoRDFXaNCR+1NCn61XzJP11ylFSsSA=; b=FYOkGVCo2BN528p6mKvxiH71WNuOYZGpf7ZS8WFNOMqCEoNZfwdYC+n9TrIK2NQn3x zEQA8P+yM4eQVTpIK9J+EubXT6G/xvheGPJBeRvz3GOu7fiv5x74CmkIN9QTyY0MRZWx 9+m4lrhwpVYOwinPPDg4cEfglNJi+diqDnY9VJjUQYO/Y1RTxeE46E3965y56RJpdJmV eOs0GaWOMai4/6DS950J+BS1op8fva33etLzpS2PxdMt42kMPOS5Ig10mfQqCjYbigcN 60feU5+GTVbMknoxmqqCUH8LdIdtg0GUz+/ARoAXxH4YKTzQM7OgTS+qcsiH5ZfQpZwV l+2g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849609; x=1713454409; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=+NgsNMGYsm9mjIoRDFXaNCR+1NCn61XzJP11ylFSsSA=; b=AY7AWpVUSsQ3rAPJPb+oFdBrH7+K+5jt/ZEC0e2la9o4Zjux7otwYmaCQkWg+0xAZT +oZCG9aMmofaZ7BF9FCPPP92M1AU9IPObJ70cIvbn2aL/+DBncbO61VCa7kfnwnIldp6 IOgizY+7Hv0ewRMYHazt7VB32CeHt/xIrAfBkwujPvF4ly1omcSRpkPyLBHeXE82Kz+6 5npQU0vZKeuFe5qNeWOIGcIfdnbF6aqxmTmkJRUSfLujf96WeH96zqIr1Z2ew0Xk6OIZ 49c30IV2mga+maD9nVrih6Xnofl2NvQ/gW6UG7ksGuhSmo7fHbuNftWr42jym4NdVOHZ dTQA== X-Gm-Message-State: AOJu0YyFyNLGsnxlyHa3Lei0vlb+/yh7VSWhoEKC5gGDHmyILjyTL90z xnw+orGaOgTte2rtFb33LITrvPhVTOMy75F9BMqgwPLRU/fvo0e3tSIbGj0I9Pe8uMrWFark/Fb 2 X-Google-Smtp-Source: AGHT+IFGXx/di4kVlRbFD6KGdw3G99QahH+quihhsmvNhTMdV8D6ZXiZggxnhDt6+mArSpkn/d4EjA== X-Received: by 2002:a5e:9907:0:b0:7d6:751f:192 with SMTP id t7-20020a5e9907000000b007d6751f0192mr173509ioj.2.1712849609331; Thu, 11 Apr 2024 08:33:29 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.33.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:33:27 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 063/437] sound/oss/dmasound: convert to read/write iterators Date: Thu, 11 Apr 2024 09:13:23 -0600 Message-ID: <20240411153126.16201-64-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- sound/oss/dmasound/dmasound_core.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/sound/oss/dmasound/dmasound_core.c b/sound/oss/dmasound/dmasou= nd_core.c index 164335d3c200..c702a8c5c668 100644 --- a/sound/oss/dmasound/dmasound_core.c +++ b/sound/oss/dmasound/dmasound_core.c @@ -1334,15 +1334,15 @@ static int state_release(struct inode *inode, struc= t file *file) return 0; } =20 -static ssize_t state_read(struct file *file, char __user *buf, size_t coun= t, - loff_t *ppos) +static ssize_t state_read(struct kiocb *iocb, struct iov_iter *to) { + size_t count =3D iov_iter_count(to); int n =3D state.len - state.ptr; if (n > count) n =3D count; if (n <=3D 0) return 0; - if (copy_to_user(buf, &state.buf[state.ptr], n)) + if (!copy_to_iter_full(&state.buf[state.ptr], n, to)) return -EFAULT; state.ptr +=3D n; return n; @@ -1351,7 +1351,7 @@ static ssize_t state_read(struct file *file, char __u= ser *buf, size_t count, static const struct file_operations state_fops =3D { .owner =3D THIS_MODULE, .llseek =3D no_llseek, - .read =3D state_read, + .read_iter =3D state_read, .open =3D state_open, .release =3D state_release, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f54.google.com (mail-io1-f54.google.com [209.85.166.54]) (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 570A184A3B for ; Thu, 11 Apr 2024 15:33:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849613; cv=none; b=LZXq24fRrdAPTcT7eMecC0byffxOZsq3hFRjyhASJGlXK+aAsT7ZOI1UOMLeoEGStz6xLER5q1O4Jk0SkjjFL4YsgaUiFmuHZQOqmSjTc/FvQ1rhifAttyi0zzdK76RsWWriZ26LGS/rSgDGkFKrPGUZA1IyAiWaSWiQctmbhlw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849613; c=relaxed/simple; bh=rrBQgYpHCwAEWWkFPxfv35Ue70KnvIvyy2HW7s0Qh8o=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=A7cO++tmgCnPE9O7jfssNy2KfM9nR0Rsw9S9TTwNiwanVCak8nLsOpMREK5vpQgNegvpoD+p7v81sZNOEQXDhhbV+i3kNhnk7PArIMvZktZm5HotyBkszhCyurwprFeF4mvLriK3ENvQlWucQTP1UNZZMI3LpF8v1c7JtJd+Jj8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=ZltHpDtg; arc=none smtp.client-ip=209.85.166.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="ZltHpDtg" Received: by mail-io1-f54.google.com with SMTP id ca18e2360f4ac-7d5ed700c2dso16115839f.0 for ; Thu, 11 Apr 2024 08:33:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849611; x=1713454411; 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=0Mg5nSttiu9jhSU99CuPVX2s5BPmxHpPxQ+MtB0IkuE=; b=ZltHpDtga3mrffH4OosmgjVpZoWbNnf0isZxKZSDr43JeDWzKiU0qstl3KyTPn/heD Cr8FT4FtzpFo/bzV5dUIyBs+15Je9KVarZ1emyInsERn+4HqTpUHQudpmoDBqlPeK67G yp2+lbxUCayfwmhWvU7E6MneSMr+tdnXvYAY52+GTa3GsbHSggjPGPyNetVZnsSrfICn jddvB1iV8ucKPqBYJeOI3ZWjdGzujMc3vd/5mJe8qEdAI5vESmXOv6TNpQVD2vi99IBV U7yMLvhCIQeyvLI2xW3nV0yK+MOcGA7x2VaXu4kCselQFTAYKuZyiazjDYRB5KbeX4xk M9ZA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849611; x=1713454411; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=0Mg5nSttiu9jhSU99CuPVX2s5BPmxHpPxQ+MtB0IkuE=; b=YcyCvWkQic1b/M+RpssneTX0vsuxCyi35zzodokDMjRt95aj9D/TqL19xYNHU7zeu1 4e89fbCgEDWPL1w1VB+m5gu+xh1HovZq61SXA7SfKYLGjbjnSNKx8/bzu+cLHWkdJCm2 dZUhEBOTbbimQAQuLaJJIWIwj03Z3nsNGeyROqJcelIZz0IK5HC2m7/BIjxDaQUaGfES t93vMUAx1soS5uKxH+1Go3Sh/GMHr49e8hw6u+LAoQctkD8BrF+5hMPc8wtjPi3BnX6o aK8u7zgdnKtc9neXTE8kIFQ7PWXhHBcm6F40AVDrYTRKXQ+OTyyF6NPj2LrqZpucHgpy e5Cw== X-Gm-Message-State: AOJu0YzJCV/El0ATvyvCvyVg6nr1DljH5v16c9uRUpm5S+3bb1Wincq7 FdRVjeXLlgN4MqK41vMC14n+4Osk9YGZQnQ7HPAyzFIgcq/o76qpPHNlh9qzG9psjjU3TuS86Rl 5 X-Google-Smtp-Source: AGHT+IGfPw3pX/4EqLcR1WzvEJK5q44DBwYolIvIMQCDvyw0iAKoeoCBBFetsDpNco1UV3kLY+eXeQ== X-Received: by 2002:a05:6602:38d:b0:7d6:513b:254 with SMTP id f13-20020a056602038d00b007d6513b0254mr174595iov.2.1712849611109; Thu, 11 Apr 2024 08:33:31 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.33.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:33:29 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 064/437] ASoC: SOF: icp3-dtrace: convert to read/write iterators Date: Thu, 11 Apr 2024 09:13:24 -0600 Message-ID: <20240411153126.16201-65-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- sound/soc/sof/ipc3-dtrace.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/sound/soc/sof/ipc3-dtrace.c b/sound/soc/sof/ipc3-dtrace.c index 0dca139322f3..e8cc151b8110 100644 --- a/sound/soc/sof/ipc3-dtrace.c +++ b/sound/soc/sof/ipc3-dtrace.c @@ -217,10 +217,11 @@ static ssize_t dfsentry_trace_filter_write(struct fil= e *file, const char __user kfree(elems); return ret; } +FOPS_WRITE_ITER_HELPER(dfsentry_trace_filter_write); =20 static const struct file_operations sof_dfs_trace_filter_fops =3D { .open =3D simple_open, - .write =3D dfsentry_trace_filter_write, + .write_iter =3D dfsentry_trace_filter_write_iter, .llseek =3D default_llseek, }; =20 @@ -313,14 +314,14 @@ static size_t sof_wait_dtrace_avail(struct snd_sof_de= v *sdev, loff_t pos, return sof_dtrace_avail(sdev, pos, buffer_size); } =20 -static ssize_t dfsentry_dtrace_read(struct file *file, char __user *buffer, - size_t count, loff_t *ppos) +static ssize_t dfsentry_dtrace_read(struct kiocb *iocb, struct iov_iter *t= o) { - struct snd_sof_dfsentry *dfse =3D file->private_data; + struct snd_sof_dfsentry *dfse =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(to); struct snd_sof_dev *sdev =3D dfse->sdev; struct sof_dtrace_priv *priv =3D sdev->fw_trace_data; unsigned long rem; - loff_t lpos =3D *ppos; + loff_t lpos =3D iocb->ki_pos; size_t avail, buffer_size =3D dfse->size; u64 lpos_64; =20 @@ -360,11 +361,11 @@ static ssize_t dfsentry_dtrace_read(struct file *file= , char __user *buffer, */ snd_dma_buffer_sync(&priv->dmatb, SNDRV_DMA_SYNC_CPU); /* copy available trace data to debugfs */ - rem =3D copy_to_user(buffer, ((u8 *)(dfse->buf) + lpos), count); + rem =3D !copy_to_iter_full(((u8 *)(dfse->buf) + lpos), count, to); if (rem) return -EFAULT; =20 - *ppos +=3D count; + iocb->ki_pos +=3D count; =20 /* move debugfs reading position */ return count; @@ -385,7 +386,7 @@ static int dfsentry_dtrace_release(struct inode *inode,= struct file *file) =20 static const struct file_operations sof_dfs_dtrace_fops =3D { .open =3D simple_open, - .read =3D dfsentry_dtrace_read, + .read_iter =3D dfsentry_dtrace_read, .llseek =3D default_llseek, .release =3D dfsentry_dtrace_release, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f54.google.com (mail-io1-f54.google.com [209.85.166.54]) (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 E23D084FB7 for ; Thu, 11 Apr 2024 15:33:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849615; cv=none; b=lR55NoTlQJ0XggAMjUlUxCHUXRi9X4IaOdq0ArQ8lIxueHUclx43ogP6Mxpe8LXuGaHZSDwkOzVFYS6Wy1M0XTldYkasRPUncq2WeuKhpCyw6t10wYP8Hd549bOZHATl+A3RJ16tBd8t8caB7ZSpzm6aSYK/eM3Z4IA1Ey/pcGI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849615; c=relaxed/simple; bh=ho5BYy4kjaNliS0dta3eXDNM6tashxw66DjHd8RfcUs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=MUtoFunElu/mxyz0gxA6M4mNdVcISYJujrKcuIPe2QSjN4XzF6MY+b3uNzvky4F4vlj1ToGxPdlwzCYlreKpEtC9wtTMzCyM+6+fEALp5hc7f1l6BwbCqU9cjwuktCRL8RPKZix2+FmT+rOfYPX7yxgBh9wqdx7yBDvctbmWun4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=LABjQUUP; arc=none smtp.client-ip=209.85.166.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="LABjQUUP" Received: by mail-io1-f54.google.com with SMTP id ca18e2360f4ac-7d6812b37a6so8886339f.0 for ; Thu, 11 Apr 2024 08:33:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849613; x=1713454413; 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=BeXF07ow4/eUdAaHGHjqzj3DOsbnM3ucSWi9ZbxCRt4=; b=LABjQUUPGirHHTyR+91vudx0l0QgSNBxAuigGWXvmeO2PIQIGx/rCEEoM/3qgD0yCR MRxNX2f3rxzWfJYBmVd10NY5iRzCS1l5XACcC1y4R0B+JHm2ysTUIIf0wG5lCBTm/3Jp spDXCFTMr+Ech67QuP57gCu7VmkXx8s0CDlS2jC9rTfAljruEUotoPl7/40UBiSESC8R 8pnmrsUO2SYGN29ey90C7OdrJy4s2/wzJXPO4IZK3py2jDr2li7GWSIEdNrZdySjzYHP DMSJ3Q9OADbzfX3CD9bGcB3ha0yogJp6L3F249hqWhTl1YsThjK+cP1qq00/ITT3+wYe 4QfQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849613; x=1713454413; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=BeXF07ow4/eUdAaHGHjqzj3DOsbnM3ucSWi9ZbxCRt4=; b=h1H0xL0Wmwx8vyqsKBVxkhvxWaKrMEN5K4QYIMizU4T2oqcbobrFnXaQ87wCJO90th B0xJ4ItG+2DFMSdhjuQXMk+W49IvkQsdAaJZQ53hULQfzoKiVtpicgZ5zxWWhVNwyVw4 HQTwSWITJDVAm9FypNOU//w7or5HxVgS15aiTqWrwPqDlEFC5VGOHsosxXp0qv5zSBE5 z5faQf/Lz2lTVck/+vKf82U7rblmnAewtAaW7SRDULowoZ7d7/ncU5n7lMD0UiCsJAZZ QXJYtOay1aIYjen7KxC1nBjtOnfO4/Pm8wyvfPu46+pgHECj6/e+QOhgf8XsJplXFz9J mniA== X-Gm-Message-State: AOJu0Yyj3v6I2HhHp64HideGmWa6N1s1OtzovrNIQYuPoxEyyPxwaUFl VLLVwiSIix92Wb1IGLz0FX1hf6x6E8BV93rpdHhXAB5/za93cVpkREz6T2izOF4t3Xw3PFlrhol I X-Google-Smtp-Source: AGHT+IFwbKV6QcKE6nqVwb1dWUEeMiR97kz3ImI6jz4Vk3g7S9cz4TZs43H+GmNOgQLLZHk3+hXRlA== X-Received: by 2002:a5e:9907:0:b0:7d6:751f:192 with SMTP id t7-20020a5e9907000000b007d6751f0192mr173742ioj.2.1712849612818; Thu, 11 Apr 2024 08:33:32 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.33.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:33:31 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 065/437] SoC: SOF: icp4: convert to read/write iterators Date: Thu, 11 Apr 2024 09:13:25 -0600 Message-ID: <20240411153126.16201-66-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- sound/soc/sof/ipc4-mtrace.c | 17 +++++++++-------- sound/soc/sof/ipc4-telemetry.c | 14 +++++++------- 2 files changed, 16 insertions(+), 15 deletions(-) diff --git a/sound/soc/sof/ipc4-mtrace.c b/sound/soc/sof/ipc4-mtrace.c index 0e04bea9432d..976951a486b5 100644 --- a/sound/soc/sof/ipc4-mtrace.c +++ b/sound/soc/sof/ipc4-mtrace.c @@ -274,6 +274,7 @@ static ssize_t sof_ipc4_mtrace_dfs_read(struct file *fi= le, char __user *buffer, =20 return count; } +FOPS_READ_ITER_HELPER(sof_ipc4_mtrace_dfs_read); =20 static int sof_ipc4_mtrace_dfs_release(struct inode *inode, struct file *f= ile) { @@ -291,17 +292,17 @@ static int sof_ipc4_mtrace_dfs_release(struct inode *= inode, struct file *file) =20 static const struct file_operations sof_dfs_mtrace_fops =3D { .open =3D sof_ipc4_mtrace_dfs_open, - .read =3D sof_ipc4_mtrace_dfs_read, + .read_iter =3D sof_ipc4_mtrace_dfs_read_iter, .llseek =3D default_llseek, .release =3D sof_ipc4_mtrace_dfs_release, =20 .owner =3D THIS_MODULE, }; =20 -static ssize_t sof_ipc4_priority_mask_dfs_read(struct file *file, char __u= ser *to, - size_t count, loff_t *ppos) +static ssize_t sof_ipc4_priority_mask_dfs_read(struct kiocb *iocb, + struct iov_iter *to) { - struct sof_mtrace_priv *priv =3D file->private_data; + struct sof_mtrace_priv *priv =3D iocb->ki_filp->private_data; int i, ret, offset, remaining; char *buf; =20 @@ -322,8 +323,7 @@ static ssize_t sof_ipc4_priority_mask_dfs_read(struct f= ile *file, char __user *t priv->state_info.logs_priorities_mask[i]); } =20 - ret =3D simple_read_from_buffer(to, count, ppos, buf, strlen(buf)); - + ret =3D simple_copy_to_iter(buf, &iocb->ki_pos, strlen(buf), to); kfree(buf); return ret; } @@ -368,11 +368,12 @@ static ssize_t sof_ipc4_priority_mask_dfs_write(struc= t file *file, kfree(buf); return ret; } +FOPS_WRITE_ITER_HELPER(sof_ipc4_priority_mask_dfs_write); =20 static const struct file_operations sof_dfs_priority_mask_fops =3D { .open =3D simple_open, - .read =3D sof_ipc4_priority_mask_dfs_read, - .write =3D sof_ipc4_priority_mask_dfs_write, + .read_iter =3D sof_ipc4_priority_mask_dfs_read, + .write_iter =3D sof_ipc4_priority_mask_dfs_write_iter, .llseek =3D default_llseek, =20 .owner =3D THIS_MODULE, diff --git a/sound/soc/sof/ipc4-telemetry.c b/sound/soc/sof/ipc4-telemetry.c index ec4ae9674364..8b4ef6ae8753 100644 --- a/sound/soc/sof/ipc4-telemetry.c +++ b/sound/soc/sof/ipc4-telemetry.c @@ -32,13 +32,13 @@ static void __iomem *sof_ipc4_query_exception_address(s= truct snd_sof_dev *sdev) return sdev->bar[sdev->mailbox_bar] + offset; } =20 -static ssize_t sof_telemetry_entry_read(struct file *file, char __user *bu= ffer, - size_t count, loff_t *ppos) +static ssize_t sof_telemetry_entry_read(struct kiocb *iocb, struct iov_ite= r *to) { - struct snd_sof_dfsentry *dfse =3D file->private_data; + struct snd_sof_dfsentry *dfse =3D iocb->ki_filp->private_data; struct snd_sof_dev *sdev =3D dfse->sdev; + size_t count =3D iov_iter_count(to); void __iomem *io_addr; - loff_t pos =3D *ppos; + loff_t pos =3D iocb->ki_pos; size_t size_ret; u8 *buf; =20 @@ -59,13 +59,13 @@ static ssize_t sof_telemetry_entry_read(struct file *fi= le, char __user *buffer, return -ENOMEM; =20 memcpy_fromio(buf, io_addr, SOF_IPC4_DEBUG_SLOT_SIZE - 4); - size_ret =3D copy_to_user(buffer, buf + pos, count); + size_ret =3D !copy_to_iter_full(buf + pos, count, to); if (size_ret) { kfree(buf); return -EFAULT; } =20 - *ppos =3D pos + count; + iocb->ki_pos =3D pos + count; kfree(buf); =20 return count; @@ -73,7 +73,7 @@ static ssize_t sof_telemetry_entry_read(struct file *file= , char __user *buffer, =20 static const struct file_operations sof_telemetry_fops =3D { .open =3D simple_open, - .read =3D sof_telemetry_entry_read, + .read_iter =3D sof_telemetry_entry_read, }; =20 void sof_ipc4_create_exception_debugfs_node(struct snd_sof_dev *sdev) --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f45.google.com (mail-io1-f45.google.com [209.85.166.45]) (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 4D55E8564B for ; Thu, 11 Apr 2024 15:33:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849618; cv=none; b=hQLJYoabU02Q6J08WMPMIf+wWJK+7DA4Z+ppt7rNq2qQtSUQXblsas5k4WQoNPqW0YjVXv9jTP0Z4TzuC0cfVQ4G/IOfdx/fWGEXTSskVEJy3bsjIC1MsL6U+zuuZeoR3N7WC4CxVwwTw5fTiLWCdUT8oKdGloHALp4n63F/p/E= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849618; c=relaxed/simple; bh=2Aknt2fNfmtfzyfGpCI3l2Vhz3PcTOKFW0stXt6FNXQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=HB/7lNt9ww4l6aZz88hn+Y6GEyVoBtEoHhm3wvw2Hw5FcxpmlDpZPD9hEddSeJbDCPohjsBNVXl0AybCPKWqc1wp0C3QRPFXr1rwbnGNqgthM0xTo0H8A0o6VwXfZFTObUMtS0lntrz8oSXSV/trQHKtOOXWMWMDntOuqZikezQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=DZSmQ56/; arc=none smtp.client-ip=209.85.166.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="DZSmQ56/" Received: by mail-io1-f45.google.com with SMTP id ca18e2360f4ac-7d5ed700c2dso16116439f.0 for ; Thu, 11 Apr 2024 08:33:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849615; x=1713454415; 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=xp3aRaK4n7JQXsntmXRZLUnrNQ/JzYe0/RqCvU+dnYw=; b=DZSmQ56/iL0VGNCUbFx1cs8P/5frWn1JkaFKuygvBtYhe4YfksjA2PL8rw1ibZaIOS KGNB9u+0rX8HgZfNyOmiPLyCP2lHXbfdYbLk59C7Gaad5lMUOuuMTjLBuWQPlEELwzVq ++SG8SHkzdMQsgxikW+y9eCJuPkGoXBr93c7Xl4oGPerKat0h6yU+YyuravKFgXPcJcD 8j8lMuayYBXjNuwSrAeUv3Z/YrC2cTzX+CcgDQhnx6OT08ne+h9+dSeGCLJz0CmDGC7h AA38k6QCNfeCYbl0gLn5Ug4+rtWHdsa84LlDl/kCVCH/5MMWboVJDw5QYhk5u9leGwUA 2Mqw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849615; x=1713454415; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=xp3aRaK4n7JQXsntmXRZLUnrNQ/JzYe0/RqCvU+dnYw=; b=Z87Qjuwca14VecO+R85QOWxUag1M+KUhq4WpiVO/+x4Fsg/hc/RtowhjAH+Y8yljMc F8GYF6W9sYpaw2NXsBvkhgfA21n8BiGAa6cC9t9/CuAtwGN6CHLvU5Am4dEqoV9TX7FT tphx1zwnvFL9c9IulZsWWPsLKvRpl/AQ1sn1x7OSaNVGbCTxjz4vQ7gxHpgvJRdkH+cS qYLzivH9vyqrECNIx3219NhVDkbkQWV3htnX8Rh843V+MEXztTsJEdXyqVzqxYXBh1QS gjKcGoAUaaWc3TDM4iQwEkbJd0ZrHU5lDYYCrUn85VkgfBRot767Ufv4jzkkee/3UN+W agZw== X-Gm-Message-State: AOJu0YzeayJBR8AVe9tMbym3uOBvQp52UhsKX2WfOCEbclnETFfmSzxy rUntqM1t/0ngk51tv9MX1emCAdj6u4pIP3KVt71Q/a1Z+hMxrdboBblN2O9j6f7AcnGP6v69XLa c X-Google-Smtp-Source: AGHT+IFnhyUWht8mSxNssgi4UZlSmb/sZOn59BdTXEp/NBO46sQtt/hUJa/VkmagKdUGt7vfJVRqJQ== X-Received: by 2002:a05:6602:38d:b0:7d6:513b:254 with SMTP id f13-20020a056602038d00b007d6513b0254mr174825iov.2.1712849614653; Thu, 11 Apr 2024 08:33:34 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.33.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:33:33 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 066/437] ASoC: SOF: Core: convert to read/write iterators Date: Thu, 11 Apr 2024 09:13:26 -0600 Message-ID: <20240411153126.16201-67-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- sound/soc/sof/debug.c | 34 +++++----- sound/soc/sof/sof-client-ipc-flood-test.c | 19 +++--- .../soc/sof/sof-client-ipc-kernel-injector.c | 15 +++-- sound/soc/sof/sof-client-ipc-msg-injector.c | 67 +++++++++---------- sound/soc/sof/sof-client-probes.c | 31 +++++---- 5 files changed, 85 insertions(+), 81 deletions(-) diff --git a/sound/soc/sof/debug.c b/sound/soc/sof/debug.c index 7c8aafca8fde..c735af9a5f23 100644 --- a/sound/soc/sof/debug.c +++ b/sound/soc/sof/debug.c @@ -19,9 +19,9 @@ #include "sof-priv.h" #include "ops.h" =20 -static ssize_t sof_dfsentry_write(struct file *file, const char __user *bu= ffer, - size_t count, loff_t *ppos) +static ssize_t sof_dfsentry_write(struct kiocb *iocb, struct iov_iter *fro= m) { + size_t count =3D iov_iter_count(from); size_t size; char *string; int ret; @@ -30,19 +30,19 @@ static ssize_t sof_dfsentry_write(struct file *file, co= nst char __user *buffer, if (!string) return -ENOMEM; =20 - size =3D simple_write_to_buffer(string, count, ppos, buffer, count); + size =3D simple_copy_from_iter(string, &iocb->ki_pos, count, from); ret =3D size; =20 kfree(string); return ret; } =20 -static ssize_t sof_dfsentry_read(struct file *file, char __user *buffer, - size_t count, loff_t *ppos) +static ssize_t sof_dfsentry_read(struct kiocb *iocb, struct iov_iter *to) { - struct snd_sof_dfsentry *dfse =3D file->private_data; + struct snd_sof_dfsentry *dfse =3D iocb->ki_filp->private_data; struct snd_sof_dev *sdev =3D dfse->sdev; - loff_t pos =3D *ppos; + size_t count =3D iov_iter_count(to); + loff_t pos =3D iocb->ki_pos; size_t size_ret; int skip =3D 0; int size; @@ -66,8 +66,8 @@ static ssize_t sof_dfsentry_read(struct file *file, char = __user *buffer, size =3D ALIGN(count, 4); =20 /* if start position is unaligned, read extra u32 */ - if (unlikely(pos !=3D *ppos)) { - skip =3D *ppos - pos; + if (unlikely(pos !=3D iocb->ki_pos)) { + skip =3D iocb->ki_pos - pos; if (pos + size + 4 < dfse->size) size +=3D 4; } @@ -109,7 +109,7 @@ static ssize_t sof_dfsentry_read(struct file *file, cha= r __user *buffer, } =20 /* copy to userspace */ - size_ret =3D copy_to_user(buffer, buf + skip, count); + size_ret =3D !copy_to_iter_full(buf + skip, count, to); =20 kfree(buf); =20 @@ -117,16 +117,15 @@ static ssize_t sof_dfsentry_read(struct file *file, c= har __user *buffer, if (size_ret) return -EFAULT; =20 - *ppos =3D pos + count; - + iocb->ki_pos =3D pos + count; return count; } =20 static const struct file_operations sof_dfs_fops =3D { .open =3D simple_open, - .read =3D sof_dfsentry_read, + .read_iter =3D sof_dfsentry_read, .llseek =3D default_llseek, - .write =3D sof_dfsentry_write, + .write_iter =3D sof_dfsentry_write, }; =20 /* create FS entry for debug files that can expose DSP memories, registers= */ @@ -284,6 +283,11 @@ static ssize_t memory_info_read(struct file *file, cha= r __user *to, size_t count return simple_read_from_buffer(to, count, ppos, dfse->buf, dfse->buf_data= _size); } =20 +static ssize_t memory_info_read_iter(struct kiocb *iocb, struct iov_iter *= to) +{ + return vfs_read_iter(iocb, to, memory_info_read); +} + static int memory_info_open(struct inode *inode, struct file *file) { struct snd_sof_dfsentry *dfse =3D inode->i_private; @@ -304,7 +308,7 @@ static int memory_info_open(struct inode *inode, struct= file *file) =20 static const struct file_operations memory_info_fops =3D { .open =3D memory_info_open, - .read =3D memory_info_read, + .read_iter =3D memory_info_read_iter, .llseek =3D default_llseek, }; =20 diff --git a/sound/soc/sof/sof-client-ipc-flood-test.c b/sound/soc/sof/sof-= client-ipc-flood-test.c index c0d6723aed59..6e53d60975c9 100644 --- a/sound/soc/sof/sof-client-ipc-flood-test.c +++ b/sound/soc/sof/sof-client-ipc-flood-test.c @@ -238,29 +238,30 @@ static ssize_t sof_ipc_flood_dfs_write(struct file *f= ile, const char __user *buf kfree(string); return ret; } +FOPS_WRITE_ITER_HELPER(sof_ipc_flood_dfs_write); =20 /* return the result of the last IPC flood test */ -static ssize_t sof_ipc_flood_dfs_read(struct file *file, char __user *buff= er, - size_t count, loff_t *ppos) +static ssize_t sof_ipc_flood_dfs_read(struct kiocb *iocb, struct iov_iter = *to) { - struct sof_client_dev *cdev =3D file->private_data; + struct sof_client_dev *cdev =3D iocb->ki_filp->private_data; struct sof_ipc_flood_priv *priv =3D cdev->data; + size_t count =3D iov_iter_count(to); size_t size_ret; =20 struct dentry *dentry; =20 - dentry =3D file->f_path.dentry; + dentry =3D iocb->ki_filp->f_path.dentry; if (!strcmp(dentry->d_name.name, DEBUGFS_IPC_FLOOD_COUNT) || !strcmp(dentry->d_name.name, DEBUGFS_IPC_FLOOD_DURATION)) { - if (*ppos) + if (iocb->ki_pos) return 0; =20 count =3D min_t(size_t, count, strlen(priv->buf)); - size_ret =3D copy_to_user(buffer, priv->buf, count); + size_ret =3D !copy_to_iter_full(priv->buf, count, to); if (size_ret) return -EFAULT; =20 - *ppos +=3D count; + iocb->ki_pos +=3D count; return count; } return count; @@ -275,9 +276,9 @@ static int sof_ipc_flood_dfs_release(struct inode *inod= e, struct file *file) =20 static const struct file_operations sof_ipc_flood_fops =3D { .open =3D sof_ipc_flood_dfs_open, - .read =3D sof_ipc_flood_dfs_read, + .read_iter =3D sof_ipc_flood_dfs_read, .llseek =3D default_llseek, - .write =3D sof_ipc_flood_dfs_write, + .write_iter =3D sof_ipc_flood_dfs_write_iter, .release =3D sof_ipc_flood_dfs_release, =20 .owner =3D THIS_MODULE, diff --git a/sound/soc/sof/sof-client-ipc-kernel-injector.c b/sound/soc/sof= /sof-client-ipc-kernel-injector.c index ad0ed2d570a9..77f5d73a126e 100644 --- a/sound/soc/sof/sof-client-ipc-kernel-injector.c +++ b/sound/soc/sof/sof-client-ipc-kernel-injector.c @@ -37,21 +37,22 @@ static int sof_msg_inject_dfs_open(struct inode *inode,= struct file *file) return ret; } =20 -static ssize_t sof_kernel_msg_inject_dfs_write(struct file *file, const ch= ar __user *buffer, - size_t count, loff_t *ppos) +static ssize_t sof_kernel_msg_inject_dfs_write(struct kiocb *iocb, + struct iov_iter *from) { - struct sof_client_dev *cdev =3D file->private_data; + struct sof_client_dev *cdev =3D iocb->ki_filp->private_data; struct sof_msg_inject_priv *priv =3D cdev->data; struct sof_ipc_cmd_hdr *hdr =3D priv->kernel_buffer; struct device *dev =3D &cdev->auxdev.dev; + size_t count =3D iov_iter_count(from); ssize_t size; int ret; =20 - if (*ppos) + if (iocb->ki_pos) return 0; =20 - size =3D simple_write_to_buffer(priv->kernel_buffer, priv->max_msg_size, - ppos, buffer, count); + size =3D simple_copy_from_iter(priv->kernel_buffer, &iocb->ki_pos, + priv->max_msg_size, from); if (size < 0) return size; if (size !=3D count) @@ -82,7 +83,7 @@ static int sof_msg_inject_dfs_release(struct inode *inode= , struct file *file) =20 static const struct file_operations sof_kernel_msg_inject_fops =3D { .open =3D sof_msg_inject_dfs_open, - .write =3D sof_kernel_msg_inject_dfs_write, + .write_iter =3D sof_kernel_msg_inject_dfs_write, .release =3D sof_msg_inject_dfs_release, =20 .owner =3D THIS_MODULE, diff --git a/sound/soc/sof/sof-client-ipc-msg-injector.c b/sound/soc/sof/so= f-client-ipc-msg-injector.c index e249d3a9afb5..e13f867b4e1e 100644 --- a/sound/soc/sof/sof-client-ipc-msg-injector.c +++ b/sound/soc/sof/sof-client-ipc-msg-injector.c @@ -49,37 +49,37 @@ static int sof_msg_inject_dfs_open(struct inode *inode,= struct file *file) return ret; } =20 -static ssize_t sof_msg_inject_dfs_read(struct file *file, char __user *buf= fer, - size_t count, loff_t *ppos) +static ssize_t sof_msg_inject_dfs_read(struct kiocb *iocb, struct iov_iter= *to) { - struct sof_client_dev *cdev =3D file->private_data; + struct sof_client_dev *cdev =3D iocb->ki_filp->private_data; struct sof_msg_inject_priv *priv =3D cdev->data; struct sof_ipc_reply *rhdr =3D priv->rx_buffer; + size_t count =3D iov_iter_count(to); =20 - if (!rhdr->hdr.size || !count || *ppos) + if (!rhdr->hdr.size || !count || iocb->ki_pos) return 0; =20 if (count > rhdr->hdr.size) count =3D rhdr->hdr.size; =20 - if (copy_to_user(buffer, priv->rx_buffer, count)) + if (!copy_to_iter_full(priv->rx_buffer, count, to)) return -EFAULT; =20 - *ppos +=3D count; + iocb->ki_pos +=3D count; return count; } =20 -static ssize_t sof_msg_inject_ipc4_dfs_read(struct file *file, - char __user *buffer, - size_t count, loff_t *ppos) +static ssize_t sof_msg_inject_ipc4_dfs_read(struct kiocb *iocb, + struct iov_iter *to) { - struct sof_client_dev *cdev =3D file->private_data; + struct sof_client_dev *cdev =3D iocb->ki_filp->private_data; struct sof_msg_inject_priv *priv =3D cdev->data; struct sof_ipc4_msg *ipc4_msg =3D priv->rx_buffer; size_t header_size =3D sizeof(ipc4_msg->header_u64); + size_t count =3D iov_iter_count(to); size_t remaining; =20 - if (!ipc4_msg->header_u64 || !count || *ppos) + if (!ipc4_msg->header_u64 || !count || iocb->ki_pos) return 0; =20 /* we need space for the header at minimum (u64) */ @@ -99,10 +99,10 @@ static ssize_t sof_msg_inject_ipc4_dfs_read(struct file= *file, remaining =3D count; =20 /* copy the header first */ - if (copy_to_user(buffer, &ipc4_msg->header_u64, header_size)) + if (!copy_to_iter_full(&ipc4_msg->header_u64, header_size, to)) return -EFAULT; =20 - *ppos +=3D header_size; + iocb->ki_pos +=3D header_size; remaining -=3D header_size; =20 if (!remaining) @@ -112,10 +112,10 @@ static ssize_t sof_msg_inject_ipc4_dfs_read(struct fi= le *file, remaining =3D ipc4_msg->data_size; =20 /* Copy the payload */ - if (copy_to_user(buffer + *ppos, ipc4_msg->data_ptr, remaining)) + if (!copy_to_iter_full(ipc4_msg->data_ptr, remaining, to)) return -EFAULT; =20 - *ppos +=3D remaining; + iocb->ki_pos +=3D remaining; return count; } =20 @@ -145,19 +145,19 @@ static int sof_msg_inject_send_message(struct sof_cli= ent_dev *cdev) return ret; } =20 -static ssize_t sof_msg_inject_dfs_write(struct file *file, const char __us= er *buffer, - size_t count, loff_t *ppos) +static ssize_t sof_msg_inject_dfs_write(struct kiocb *iocb, struct iov_ite= r *from) { - struct sof_client_dev *cdev =3D file->private_data; + struct sof_client_dev *cdev =3D iocb->ki_filp->private_data; struct sof_msg_inject_priv *priv =3D cdev->data; + size_t count =3D iov_iter_count(from); ssize_t size; int ret; =20 - if (*ppos) + if (iocb->ki_pos) return 0; =20 - size =3D simple_write_to_buffer(priv->tx_buffer, priv->max_msg_size, - ppos, buffer, count); + size =3D simple_copy_from_iter(priv->tx_buffer, &iocb->ki_pos, + priv->max_msg_size, from); if (size < 0) return size; if (size !=3D count) @@ -174,25 +174,25 @@ static ssize_t sof_msg_inject_dfs_write(struct file *= file, const char __user *bu return size; }; =20 -static ssize_t sof_msg_inject_ipc4_dfs_write(struct file *file, - const char __user *buffer, - size_t count, loff_t *ppos) +static ssize_t sof_msg_inject_ipc4_dfs_write(struct kiocb *iocb, + struct iov_iter *from) { - struct sof_client_dev *cdev =3D file->private_data; + struct sof_client_dev *cdev =3D iocb->ki_filp->private_data; struct sof_msg_inject_priv *priv =3D cdev->data; struct sof_ipc4_msg *ipc4_msg =3D priv->tx_buffer; + size_t count =3D iov_iter_count(from); size_t data_size; int ret; =20 - if (*ppos) + if (iocb->ki_pos) return 0; =20 if (count < sizeof(ipc4_msg->header_u64)) return -EINVAL; =20 /* copy the header first */ - if (copy_from_user(&ipc4_msg->header_u64, buffer, - sizeof(ipc4_msg->header_u64))) + if (!copy_from_iter_full(&ipc4_msg->header_u64, + sizeof(ipc4_msg->header_u64), from)) return -EFAULT; =20 data_size =3D count - sizeof(ipc4_msg->header_u64); @@ -200,8 +200,7 @@ static ssize_t sof_msg_inject_ipc4_dfs_write(struct fil= e *file, return -EINVAL; =20 /* Copy the payload */ - if (copy_from_user(ipc4_msg->data_ptr, - buffer + sizeof(ipc4_msg->header_u64), data_size)) + if (!copy_from_iter_full(ipc4_msg->data_ptr, data_size, from)) return -EFAULT; =20 ipc4_msg->data_size =3D data_size; @@ -230,8 +229,8 @@ static int sof_msg_inject_dfs_release(struct inode *ino= de, struct file *file) =20 static const struct file_operations sof_msg_inject_fops =3D { .open =3D sof_msg_inject_dfs_open, - .read =3D sof_msg_inject_dfs_read, - .write =3D sof_msg_inject_dfs_write, + .read_iter =3D sof_msg_inject_dfs_read, + .write_iter =3D sof_msg_inject_dfs_write, .llseek =3D default_llseek, .release =3D sof_msg_inject_dfs_release, =20 @@ -240,8 +239,8 @@ static const struct file_operations sof_msg_inject_fops= =3D { =20 static const struct file_operations sof_msg_inject_ipc4_fops =3D { .open =3D sof_msg_inject_dfs_open, - .read =3D sof_msg_inject_ipc4_dfs_read, - .write =3D sof_msg_inject_ipc4_dfs_write, + .read_iter =3D sof_msg_inject_ipc4_dfs_read, + .write_iter =3D sof_msg_inject_ipc4_dfs_write, .llseek =3D default_llseek, .release =3D sof_msg_inject_dfs_release, =20 diff --git a/sound/soc/sof/sof-client-probes.c b/sound/soc/sof/sof-client-p= robes.c index 30f771ac7bbf..d81da01b6d87 100644 --- a/sound/soc/sof/sof-client-probes.c +++ b/sound/soc/sof/sof-client-probes.c @@ -188,10 +188,10 @@ static const struct snd_compress_ops sof_probes_compr= essed_ops =3D { .copy =3D sof_probes_compr_copy, }; =20 -static ssize_t sof_probes_dfs_points_read(struct file *file, char __user *= to, - size_t count, loff_t *ppos) +static ssize_t sof_probes_dfs_points_read(struct kiocb *iocb, + struct iov_iter *to) { - struct sof_client_dev *cdev =3D file->private_data; + struct sof_client_dev *cdev =3D iocb->ki_filp->private_data; struct sof_probes_priv *priv =3D cdev->data; struct device *dev =3D &cdev->auxdev.dev; struct sof_probe_point_desc *desc; @@ -233,8 +233,7 @@ static ssize_t sof_probes_dfs_points_read(struct file *= file, char __user *to, } } =20 - ret =3D simple_read_from_buffer(to, count, ppos, buf, strlen(buf)); - + ret =3D simple_copy_to_iter(buf, &iocb->ki_pos, strlen(buf), to); kfree(desc); =20 pm_error: @@ -249,13 +248,13 @@ static ssize_t sof_probes_dfs_points_read(struct file= *file, char __user *to, } =20 static ssize_t -sof_probes_dfs_points_write(struct file *file, const char __user *from, - size_t count, loff_t *ppos) +sof_probes_dfs_points_write(struct kiocb *iocb, struct iov_iter *from) { - struct sof_client_dev *cdev =3D file->private_data; + struct sof_client_dev *cdev =3D iocb->ki_filp->private_data; struct sof_probes_priv *priv =3D cdev->data; const struct sof_probes_ipc_ops *ipc =3D priv->ipc_ops; struct device *dev =3D &cdev->auxdev.dev; + size_t count =3D iov_iter_count(from); struct sof_probe_point_desc *desc; u32 num_elems, *array; size_t bytes; @@ -266,7 +265,7 @@ sof_probes_dfs_points_write(struct file *file, const ch= ar __user *from, return -ENOENT; } =20 - ret =3D parse_int_array_user(from, count, (int **)&array); + ret =3D parse_int_array_iter(from, (int **)&array); if (ret < 0) return ret; =20 @@ -300,21 +299,21 @@ sof_probes_dfs_points_write(struct file *file, const = char __user *from, =20 static const struct file_operations sof_probes_points_fops =3D { .open =3D simple_open, - .read =3D sof_probes_dfs_points_read, - .write =3D sof_probes_dfs_points_write, + .read_iter =3D sof_probes_dfs_points_read, + .write_iter =3D sof_probes_dfs_points_write, .llseek =3D default_llseek, =20 .owner =3D THIS_MODULE, }; =20 static ssize_t -sof_probes_dfs_points_remove_write(struct file *file, const char __user *f= rom, - size_t count, loff_t *ppos) +sof_probes_dfs_points_remove_write(struct kiocb *iocb, struct iov_iter *fr= om) { - struct sof_client_dev *cdev =3D file->private_data; + struct sof_client_dev *cdev =3D iocb->ki_filp->private_data; struct sof_probes_priv *priv =3D cdev->data; const struct sof_probes_ipc_ops *ipc =3D priv->ipc_ops; struct device *dev =3D &cdev->auxdev.dev; + size_t count =3D iov_iter_count(from); int ret, err; u32 *array; =20 @@ -323,7 +322,7 @@ sof_probes_dfs_points_remove_write(struct file *file, c= onst char __user *from, return -ENOENT; } =20 - ret =3D parse_int_array_user(from, count, (int **)&array); + ret =3D parse_int_array_iter(from, (int **)&array); if (ret < 0) return ret; =20 @@ -348,7 +347,7 @@ sof_probes_dfs_points_remove_write(struct file *file, c= onst char __user *from, =20 static const struct file_operations sof_probes_points_remove_fops =3D { .open =3D simple_open, - .write =3D sof_probes_dfs_points_remove_write, + .write_iter =3D sof_probes_dfs_points_remove_write, .llseek =3D default_llseek, =20 .owner =3D THIS_MODULE, --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f41.google.com (mail-io1-f41.google.com [209.85.166.41]) (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 C2E1B85935 for ; Thu, 11 Apr 2024 15:33:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849618; cv=none; b=eHliynHDFVtfpIHh83yXqwxe8ZLq8ZYePSvt4vroDHDwzecoFt1ePTOWxkVjbwQAbbg9CvMgpEn9hubG5BgYcmHX6m62v56WVILSzcSSKRng4+IacOPdeG2FobRosFTrwZXZUe2cDoL2238fsdJxf8tomW/Q5Ru4/Sn5JrlqFmU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849618; c=relaxed/simple; bh=L1CEr14c7mBj4sr4CNjxSe0f4NZNFDDr5bqgk55pJ9g=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=scnXIF0qKDZh4xgrVtlyN5Qc3xCeHBQ1eLbmBQgHHZC/NHqnS6vQqQ6+09nsvtsNS9F5xkZJH+AYq2z8roBo9VmLLn9FavqM/VSdzFXZtUmxT04BawTFT9akkIV6Pd6kMV0pu61ijiAV0s1+YIhSWUhKBD687TK8+3KEjfkeeew= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=bXOdftaJ; arc=none smtp.client-ip=209.85.166.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="bXOdftaJ" Received: by mail-io1-f41.google.com with SMTP id ca18e2360f4ac-7c8e4c0412dso69517239f.1 for ; Thu, 11 Apr 2024 08:33:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849615; x=1713454415; 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=0Yp9XiWZV4f9xB1HqyHZEA0yY6Ji0QcCa2CoWMJQVdk=; b=bXOdftaJWdol5Uzcp/F3yP8C/C4BYpyu7CE0vBcEDQNp2mNiX7bqd4Yh8BYfxhtMpz wB8VMrF3MWX4QNWTGiO1e0WNPEuyQMmovVIl7QLLBsTa7kf6gg6oqWA+GOwQUQlWQzXF hUulzqhXNzxlFZatwhqGyrMY9WF4bi2Xk1sOfnXFd7anFmuGcJ5Zu8FZeJxA+OmWrr8r DTRQOCCcytPURqa4cU0ofWIZXgpkBY037lIHBfjVPUVnKBWOGy/tRgW9K8/TpsaN8JOj ynE4xa/tS7pFUhPMRll/JpJ9mT0uoLJH7b38g5Mj03gzVrqU16aLV8AziCD+Lb+hOSeJ UD2w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849615; x=1713454415; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=0Yp9XiWZV4f9xB1HqyHZEA0yY6Ji0QcCa2CoWMJQVdk=; b=kO7qt0K5CXLoQMmIfeDw/ri4By6brxSYsjHWrzeere+PZS2arzN2avKFtJ58olZbtQ tse9TJKs8eAclLFRjRPwbWsXTmH+EUHhSIA/69Hu1DWEl8sie6hWQSaftTLsiqQgMdVY TLoRhuRWCUmTIs4Afr+YLDnWi9DY+hZhIYGugG7CKg35WYu4VKmJDqzv8SCvNu/GPTBv da4QjG5jWShOirbYe+Syh/A5G3rlOvPKAODpKEQeJu0Rl/lYhDGuaRwF0kxgQqyr/U6T zjNWcddrrvTK2o23HvYS7n+8WokV08EjoY71fLiFxU+x7nYr58H86x/p0XR3F7zbGF0w XmMw== X-Gm-Message-State: AOJu0Yw7y9yJ07RO1vL5T9l9Ml3NyGs2uyFmrs/ebJqSHBiu2l98Mkyh eTP+EtWLE+ca7KRw0CJWH0HQWxyt3t3zYo8KNY8s/2Hc2eHihE91q6dY4rtEaQh03r6obgxCtz6 1 X-Google-Smtp-Source: AGHT+IHJajsXylJ3ozZ++Bed7L/PWKRTz7PUdHfFio7rpOyj8GQBDJOG7WNByvCOXG/K8U43dd/3uQ== X-Received: by 2002:a05:6602:84:b0:7d6:9d75:6de2 with SMTP id h4-20020a056602008400b007d69d756de2mr35160iob.2.1712849615382; Thu, 11 Apr 2024 08:33:35 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.33.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:33:34 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 067/437] ASoC: SOF: convert to read/write iterators Date: Thu, 11 Apr 2024 09:13:27 -0600 Message-ID: <20240411153126.16201-68-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- sound/soc/soc-dapm.c | 21 ++++++++------------- sound/soc/soc-pcm.c | 10 ++++------ 2 files changed, 12 insertions(+), 19 deletions(-) diff --git a/sound/soc/soc-dapm.c b/sound/soc/soc-dapm.c index ad8ba8fbbaee..f3cfbf70f8a4 100644 --- a/sound/soc/soc-dapm.c +++ b/sound/soc/soc-dapm.c @@ -2094,11 +2094,9 @@ static int dapm_power_widgets(struct snd_soc_card *c= ard, int event) } =20 #ifdef CONFIG_DEBUG_FS -static ssize_t dapm_widget_power_read_file(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t dapm_widget_power_read(struct kiocb *iocb, struct iov_iter = *to) { - struct snd_soc_dapm_widget *w =3D file->private_data; + struct snd_soc_dapm_widget *w =3D iocb->ki_filp->private_data; enum snd_soc_dapm_direction dir, rdir; char *buf; int in, out; @@ -2155,22 +2153,20 @@ static ssize_t dapm_widget_power_read_file(struct f= ile *file, =20 snd_soc_dapm_mutex_unlock(w->dapm); =20 - ret =3D simple_read_from_buffer(user_buf, count, ppos, buf, ret); - + ret =3D simple_copy_to_iter(buf, &iocb->ki_pos, ret, to); kfree(buf); return ret; } =20 static const struct file_operations dapm_widget_power_fops =3D { .open =3D simple_open, - .read =3D dapm_widget_power_read_file, + .read_iter =3D dapm_widget_power_read, .llseek =3D default_llseek, }; =20 -static ssize_t dapm_bias_read_file(struct file *file, char __user *user_bu= f, - size_t count, loff_t *ppos) +static ssize_t dapm_bias_read_file(struct kiocb *iocb, struct iov_iter *to) { - struct snd_soc_dapm_context *dapm =3D file->private_data; + struct snd_soc_dapm_context *dapm =3D iocb->ki_filp->private_data; char *level; =20 switch (dapm->bias_level) { @@ -2192,13 +2188,12 @@ static ssize_t dapm_bias_read_file(struct file *fil= e, char __user *user_buf, break; } =20 - return simple_read_from_buffer(user_buf, count, ppos, level, - strlen(level)); + return simple_copy_to_iter(level, &iocb->ki_pos, strlen(level), to); } =20 static const struct file_operations dapm_bias_fops =3D { .open =3D simple_open, - .read =3D dapm_bias_read_file, + .read_iter =3D dapm_bias_read_file, .llseek =3D default_llseek, }; =20 diff --git a/sound/soc/soc-pcm.c b/sound/soc/soc-pcm.c index 77ee103b7cd1..611845526491 100644 --- a/sound/soc/soc-pcm.c +++ b/sound/soc/soc-pcm.c @@ -164,10 +164,9 @@ static ssize_t dpcm_show_state(struct snd_soc_pcm_runt= ime *fe, return offset; } =20 -static ssize_t dpcm_state_read_file(struct file *file, char __user *user_b= uf, - size_t count, loff_t *ppos) +static ssize_t dpcm_state_read(struct kiocb *iocb, struct iov_iter *to) { - struct snd_soc_pcm_runtime *fe =3D file->private_data; + struct snd_soc_pcm_runtime *fe =3D iocb->ki_filp->private_data; ssize_t out_count =3D PAGE_SIZE, offset =3D 0, ret =3D 0; int stream; char *buf; @@ -190,15 +189,14 @@ static ssize_t dpcm_state_read_file(struct file *file= , char __user *user_buf, out_count - offset); snd_soc_dpcm_mutex_unlock(fe); =20 - ret =3D simple_read_from_buffer(user_buf, count, ppos, buf, offset); - + ret =3D simple_copy_to_iter(buf, &iocb->ki_pos, offset, to); kfree(buf); return ret; } =20 static const struct file_operations dpcm_state_fops =3D { .open =3D simple_open, - .read =3D dpcm_state_read_file, + .read_iter =3D dpcm_state_read, .llseek =3D default_llseek, }; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f46.google.com (mail-io1-f46.google.com [209.85.166.46]) (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 7F3068614D for ; Thu, 11 Apr 2024 15:33:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849619; cv=none; b=Q9sAe03I+SFRHFyzPTMHi3lyC9df3YIJI9ftyPiivblVLjFkiLOSo9XfnG3gu/I5TfxmRGmoZRxE7ynupoZ6ZQUQHhREy6mS/CzR15c3xi5xcsexB/qt0kprsZbKLGLGWs8JS8sI0GhAxGsQE4QxmATfCt4mMCOKBAaHB26kVX8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849619; c=relaxed/simple; bh=KAj7pDZG0DmdNRwN+S10mzI9/zwuOL7L3hdZnXrn7t0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=R8o2kqDEVjL5Y1LbraEGrmhzwC1f9WrLj2sAqpMJ5z6a32HUK/t7yVXZckaAgRCZS4U+ZJ4tEAr3eFfTxiDNmEQk7vh8w8YAqHRWeAq0qGUZS0yHdUyINgbvNK2gQGSyPXgcm/6zc4FO8JU+OAwz7OUT7S0jSbs7cPLaBNRjbyg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=ZIIi5Tov; arc=none smtp.client-ip=209.85.166.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="ZIIi5Tov" Received: by mail-io1-f46.google.com with SMTP id ca18e2360f4ac-7c8e4c0412dso69517639f.1 for ; Thu, 11 Apr 2024 08:33:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849617; x=1713454417; 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=9zkJeIQvic9FC53zPuVEYfcChN56JDTgqDlFAUUQXoE=; b=ZIIi5TovpVarzKle2OF9IAD1yxD2u0TBxtuEVTTSPaLqfoQUFqbIM3HYijK71tDC05 SZh40whXoKqPVFVEs9Upu4iJ0OUNSMXhsOjJY05b7FrtVH2ulBc/I8Dmd7cc9HJTaBQD x2WyMMj7YORasVOb+h80uvXuJuVgGHBm21Qu/+mSBkMvckJ5CntIwNHw1XlagVcjAtw1 NSqcGxZ2O7WAvvjk1OSB01y+NXS8+TQ/PJMMyCa8D8D99U567G7WPwXHToQyWelqzGel isVhCwffqlIoZKok908uxe7hOz2YY3xQGtmgEXEOgDaT4Pd188FMZAwOuimf6OVP+BZ4 6PMA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849617; x=1713454417; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=9zkJeIQvic9FC53zPuVEYfcChN56JDTgqDlFAUUQXoE=; b=H0AeCGLfMqN9ojou9FT/5xxo0rjaLYVcgBraUbEbTN26fTsA1tu6e04pdWxvtH6AfY y/PNRa5rmxPs7JzumVhhh5uemRpw/31lRCD5fTQocM4fNQ00+4U52YpJe9Kidwt0ona/ p3WyXlf94dqSQWo4V7IyaCrc4+kXPL8G0U0z1E7ZT2dzNw99lxlm1gLwVocjECJCdq03 /XnQe8y4qgg4+xL2o/iiqTC1/HEJYUX615jbYGWlSlw2FzPiwFh2f5Eo3kfLhSeN4bPD Hbxvao/oImXw5ow/STcEJa2d2YPgLqL7pLMlqJd/uWUfP6XqI3JVPFqV/In7QZqo7dFx 7P6A== X-Gm-Message-State: AOJu0YwhhvduU7/naPsgUbeDHLsMpCCVIJ0T+qXqc4x8jA7IRCzcVXqo PQD+0XMJUGu+L7GgCBMIPRaKKQcXFdKIaU8Vrog3VwSfHT3MCugGJVXEzHd46ja/Dtf7FtSD8kL F X-Google-Smtp-Source: AGHT+IF8a+T4aVHFXaNmtkIHEfAOK89wsat9WzZ9Nu0ZVt3DXP93XJ5A5m6CjntFInTCNXn4EtrmHw== X-Received: by 2002:a6b:c34e:0:b0:7d6:7b7c:8257 with SMTP id t75-20020a6bc34e000000b007d67b7c8257mr208413iof.0.1712849617359; Thu, 11 Apr 2024 08:33:37 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.33.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:33:35 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 068/437] block: convert to read/write iterators Date: Thu, 11 Apr 2024 09:13:28 -0600 Message-ID: <20240411153126.16201-69-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- block/blk-mq-debugfs.c | 20 ++++++++++---------- block/blk-mq-debugfs.h | 2 +- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/block/blk-mq-debugfs.c b/block/blk-mq-debugfs.c index 94668e72ab09..a9fa3d7311ac 100644 --- a/block/blk-mq-debugfs.c +++ b/block/blk-mq-debugfs.c @@ -119,9 +119,10 @@ static int queue_state_show(void *data, struct seq_fil= e *m) return 0; } =20 -static ssize_t queue_state_write(void *data, const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t queue_state_write(void *data, struct kiocb *iocb, + struct iov_iter *from) { + size_t count =3D iov_iter_count(from); struct request_queue *q =3D data; char opbuf[16] =3D { }, *op; =20 @@ -137,7 +138,7 @@ static ssize_t queue_state_write(void *data, const char= __user *buf, goto inval; } =20 - if (copy_from_user(opbuf, buf, count)) + if (!copy_from_iter_full(opbuf, count, from)) return -EFAULT; op =3D strstrip(opbuf); if (strcmp(op, "run") =3D=3D 0) { @@ -540,12 +541,11 @@ static int blk_mq_debugfs_show(struct seq_file *m, vo= id *v) return attr->show(data, m); } =20 -static ssize_t blk_mq_debugfs_write(struct file *file, const char __user *= buf, - size_t count, loff_t *ppos) +static ssize_t blk_mq_debugfs_write(struct kiocb *iocb, struct iov_iter *f= rom) { - struct seq_file *m =3D file->private_data; + struct seq_file *m =3D iocb->ki_filp->private_data; const struct blk_mq_debugfs_attr *attr =3D m->private; - void *data =3D d_inode(file->f_path.dentry->d_parent)->i_private; + void *data =3D d_inode(iocb->ki_filp->f_path.dentry->d_parent)->i_private; =20 /* * Attributes that only implement .seq_ops are read-only and 'attr' is @@ -554,7 +554,7 @@ static ssize_t blk_mq_debugfs_write(struct file *file, = const char __user *buf, if (attr =3D=3D data || !attr->write) return -EPERM; =20 - return attr->write(data, buf, count, ppos); + return attr->write(data, iocb, from); } =20 static int blk_mq_debugfs_open(struct inode *inode, struct file *file) @@ -591,8 +591,8 @@ static int blk_mq_debugfs_release(struct inode *inode, = struct file *file) =20 static const struct file_operations blk_mq_debugfs_fops =3D { .open =3D blk_mq_debugfs_open, - .read =3D seq_read, - .write =3D blk_mq_debugfs_write, + .read_iter =3D seq_read_iter, + .write_iter =3D blk_mq_debugfs_write, .llseek =3D seq_lseek, .release =3D blk_mq_debugfs_release, }; diff --git a/block/blk-mq-debugfs.h b/block/blk-mq-debugfs.h index 9c7d4b6117d4..22c65e5ff430 100644 --- a/block/blk-mq-debugfs.h +++ b/block/blk-mq-debugfs.h @@ -12,7 +12,7 @@ struct blk_mq_debugfs_attr { const char *name; umode_t mode; int (*show)(void *, struct seq_file *); - ssize_t (*write)(void *, const char __user *, size_t, loff_t *); + ssize_t (*write)(void *, struct kiocb *, struct iov_iter *); /* Set either .show or .seq_ops. */ const struct seq_operations *seq_ops; }; --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f43.google.com (mail-io1-f43.google.com [209.85.166.43]) (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 4B4E886622 for ; Thu, 11 Apr 2024 15:33:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849621; cv=none; b=Fd7AX+Rm43Kysp4MXo+wm0eCMcKfN9dxJ26RNqMvWpvSH/bF1b4/LwXvv0Z9n1ndehKFCetXTymisK8asu10pfpmmkk4l1KXnLMnEAkjjF9n7nf/uN27Zit5ne7hRCEW05XbP75K9ySYpSZE9YwneO+F+C6XSolRfyRAwnSzT30= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849621; c=relaxed/simple; bh=M1yBKWFPsh8UjcS1TxiPSNkIkPKwtGPrveg4hdeWyT4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=hdirZ1m5tsV0rGsiS1FiCLB6YlD9aipRl4Cd7+MHruKM/wy26gH8WqkXsWVVVvjwsHv3AU2nsGH8h3OpDzn8p6KPBXD5d+w/e5jhb/azGYVgWNgyXq6AJjbpzEJAfp/3DCUZGKWCqrwCZOmlkFxdOTj4Uuy4C/1/NH7mkzY8Yg0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=LsW/5tR1; arc=none smtp.client-ip=209.85.166.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="LsW/5tR1" Received: by mail-io1-f43.google.com with SMTP id ca18e2360f4ac-7d6812b37a6so8888939f.0 for ; Thu, 11 Apr 2024 08:33:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849619; x=1713454419; 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=yX8scuHFoGsccMxsL+ssPJRgE4pOVMRH5JWrmkuuark=; b=LsW/5tR1y3LC1mWAazjYA447c88IVi60RGG5+p1ioBjkpzw1kdByb8GUXZZjK2MxLd vRgV4+1m+WfCQ5I7sZThm8ITvrQK7iPAKoB3LDBETiVlLQEktvnwHvUvKKp4/hGld6UF Wmm9I7Aj761ikTUy25BVLeIhZ4ftWaqjShAQ4K3dVbBegO4vct+tmm47FwjTPL1yk7Fs ZdNbbEUYpBaGpQXfHxmJLinFc3eUZmBeC7PqY8np9vIbHz7WzbSVi9qFBzUhSDy84dXf bxZGvg8cHE0rAfrow4cBubsvcvdbrvo4XBd/dwJ7BfWdruqDcjkxv0PonANap9EiyGlo DoMQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849619; x=1713454419; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=yX8scuHFoGsccMxsL+ssPJRgE4pOVMRH5JWrmkuuark=; b=fLwlKWnvMR0Qa204S9fQ7u6VYr9CS75T47oABIJneiVn6Aj/qYSyKboKAwCKWABCiu pbnP2FUzR/+k5cHATu3E2PhjynC/3+K0trS81LgHBG+obZ4EGNOsLkvxX5MKEVs4a80M UP8PQhmYTBgj2F80r30PH4n91U3uHgMK5SeLFwEmjiL+YDKs41XfrMtVcZpRCN62Abyp CMCuWpF/KPgdUfDWsQA+DYVX+K1ULj/YlttRZIB+DtUSgEFnLtUi94fdwhu+wrqfPRxM dIp9s1EklIciHELmgZwn7AuEv0gC7q/jhF9qcMqIV0iPix62+ygu4NBy1q62yo4A7BBj VqaA== X-Gm-Message-State: AOJu0YwgpLlpFNb4AQ6JhKjNFX8d3/SqgFdEOLViPhOpGjr0QU08G3yH IIRPDa5KaKhyEwzpX2dDcOF2iSsDapyzOOoywfff0aHUUY9fYlvpQx7o0eunAgL9YiDZ6u1bUUQ r X-Google-Smtp-Source: AGHT+IFEbNc3hw/FJZNUKKlnMZ/E01TSqXu3r9QbYCsjxW4BvsFilorImtYb4IjvLHgldjhCLi1y4Q== X-Received: by 2002:a6b:5b10:0:b0:7d0:bd2b:43ba with SMTP id v16-20020a6b5b10000000b007d0bd2b43bamr215554ioh.0.1712849619094; Thu, 11 Apr 2024 08:33:39 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.33.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:33:37 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 069/437] bpf: convert to read/write iterators Date: Thu, 11 Apr 2024 09:13:29 -0600 Message-ID: <20240411153126.16201-70-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- kernel/bpf/bpf_iter.c | 14 +++++++------- kernel/bpf/inode.c | 2 +- kernel/bpf/syscall.c | 18 ++++++++---------- 3 files changed, 16 insertions(+), 18 deletions(-) diff --git a/kernel/bpf/bpf_iter.c b/kernel/bpf/bpf_iter.c index 112581cf97e7..f2bbe98234df 100644 --- a/kernel/bpf/bpf_iter.c +++ b/kernel/bpf/bpf_iter.c @@ -91,10 +91,10 @@ static bool bpf_iter_support_resched(struct seq_file *s= eq) * . assuming NULL ->llseek() * . stop() may call bpf program, handling potential overflow there */ -static ssize_t bpf_seq_read(struct file *file, char __user *buf, size_t si= ze, - loff_t *ppos) +static ssize_t bpf_seq_read_iter(struct kiocb *iocb, struct iov_iter *to) { - struct seq_file *seq =3D file->private_data; + struct seq_file *seq =3D iocb->ki_filp->private_data; + size_t size =3D iov_iter_count(to); size_t n, offs, copied =3D 0; int err =3D 0, num_objs =3D 0; bool can_resched; @@ -113,7 +113,7 @@ static ssize_t bpf_seq_read(struct file *file, char __u= ser *buf, size_t size, =20 if (seq->count) { n =3D min(seq->count, size); - err =3D copy_to_user(buf, seq->buf + seq->from, n); + err =3D !copy_to_iter_full(seq->buf + seq->from, n, to); if (err) { err =3D -EFAULT; goto done; @@ -222,7 +222,7 @@ static ssize_t bpf_seq_read(struct file *file, char __u= ser *buf, size_t size, } =20 n =3D min(seq->count, size); - err =3D copy_to_user(buf, seq->buf, n); + err =3D !copy_to_iter_full(seq->buf, n, to); if (err) { err =3D -EFAULT; goto done; @@ -234,7 +234,7 @@ static ssize_t bpf_seq_read(struct file *file, char __u= ser *buf, size_t size, if (!copied) copied =3D err; else - *ppos +=3D copied; + iocb->ki_pos +=3D copied; mutex_unlock(&seq->lock); return copied; } @@ -284,7 +284,7 @@ static int iter_release(struct inode *inode, struct fil= e *file) const struct file_operations bpf_iter_fops =3D { .open =3D iter_open, .llseek =3D no_llseek, - .read =3D bpf_seq_read, + .read_iter =3D bpf_seq_read_iter, .release =3D iter_release, }; =20 diff --git a/kernel/bpf/inode.c b/kernel/bpf/inode.c index af5d2ffadd70..5e35f1eb1dec 100644 --- a/kernel/bpf/inode.c +++ b/kernel/bpf/inode.c @@ -313,7 +313,7 @@ static int bpffs_map_release(struct inode *inode, struc= t file *file) */ static const struct file_operations bpffs_map_fops =3D { .open =3D bpffs_map_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .release =3D bpffs_map_release, }; =20 diff --git a/kernel/bpf/syscall.c b/kernel/bpf/syscall.c index c287925471f6..385995dc69a0 100644 --- a/kernel/bpf/syscall.c +++ b/kernel/bpf/syscall.c @@ -872,8 +872,7 @@ static void bpf_map_show_fdinfo(struct seq_file *m, str= uct file *filp) } #endif =20 -static ssize_t bpf_dummy_read(struct file *filp, char __user *buf, size_t = siz, - loff_t *ppos) +static ssize_t bpf_dummy_read(struct kiocb *iocb, struct iov_iter *to) { /* We need this handler such that alloc_file() enables * f_mode with FMODE_CAN_READ. @@ -881,8 +880,7 @@ static ssize_t bpf_dummy_read(struct file *filp, char _= _user *buf, size_t siz, return -EINVAL; } =20 -static ssize_t bpf_dummy_write(struct file *filp, const char __user *buf, - size_t siz, loff_t *ppos) +static ssize_t bpf_dummy_write(struct kiocb *iocb, struct iov_iter *to) { /* We need this handler such that alloc_file() enables * f_mode with FMODE_CAN_WRITE. @@ -991,8 +989,8 @@ const struct file_operations bpf_map_fops =3D { .show_fdinfo =3D bpf_map_show_fdinfo, #endif .release =3D bpf_map_release, - .read =3D bpf_dummy_read, - .write =3D bpf_dummy_write, + .read_iter =3D bpf_dummy_read, + .write_iter =3D bpf_dummy_write, .mmap =3D bpf_map_mmap, .poll =3D bpf_map_poll, .get_unmapped_area =3D bpf_get_unmapped_area, @@ -2378,8 +2376,8 @@ const struct file_operations bpf_prog_fops =3D { .show_fdinfo =3D bpf_prog_show_fdinfo, #endif .release =3D bpf_prog_release, - .read =3D bpf_dummy_read, - .write =3D bpf_dummy_write, + .read_iter =3D bpf_dummy_read, + .write_iter =3D bpf_dummy_write, }; =20 int bpf_prog_new_fd(struct bpf_prog *prog) @@ -3142,8 +3140,8 @@ static const struct file_operations bpf_link_fops =3D= { .show_fdinfo =3D bpf_link_show_fdinfo, #endif .release =3D bpf_link_release, - .read =3D bpf_dummy_read, - .write =3D bpf_dummy_write, + .read_iter =3D bpf_dummy_read, + .write_iter =3D bpf_dummy_write, }; =20 static int bpf_link_alloc_id(struct bpf_link *link) --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f53.google.com (mail-io1-f53.google.com [209.85.166.53]) (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 16E471292EC for ; Thu, 11 Apr 2024 15:33:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849623; cv=none; b=fPA8wI+86BsqwAQN4/J2upqwjMmS+da03yIm45rFhWde4OOhrlKT4o31H/qz4ajza+j65JWVAetw6Yn2+NJk8E5nFm2ilwkXlCPcmW16Q/MdSbOEfmGOuI71ZpF5Exz6odG5CO2y98cylKSbhUyx1buR1uJnmCpmwzSiNKmLqvw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849623; c=relaxed/simple; bh=WNAX5SJpcq0j8O2B8qpl0MAxfztr0WzIybgaYGlBzBU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=oqH4ZjBHbWC+n/EWtHlxixiTpWIfRvjDzHlzaMCfb+pZsVdTEDILZVXBWaf8MH6qmrhw+YZWTJTquMQTGWnTei8CKt4ohn0IpryIqEvrT9blpXsIGbrciX+yV8A5dKwNntdWPGPUAl8sqpGJeh4aBVUxNI+2BA1pxnfS6cWKmG8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=B65VB4p9; arc=none smtp.client-ip=209.85.166.53 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="B65VB4p9" Received: by mail-io1-f53.google.com with SMTP id ca18e2360f4ac-7d67d1073easo9735939f.0 for ; Thu, 11 Apr 2024 08:33:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849621; x=1713454421; 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=wVT7B+DWzQgD/wpg5m/fC11AaNvArZbFf8tVIDElahQ=; b=B65VB4p9vR/R/xo+QAZh1l64Ezt1Z/xtd7TgBj4MqcjkjyDYf6qhtfEKuPvYt1SQpd q7YCAa5PidZ77VjZr1LCG3NELFzMVS23W5m1ZvhfBqdnLwxuOTVPSEVDoNXTty1dCuWS YUNlmITQk4h1UV5nX3pvFMm2rGrhM2Po10pybXHrt1lpHeR5lxrQO8KRFBpIddrcMuUn x0QX+AzSnrMszjJjJgKzf2LFyNJ2YwLLjAvSY43lI4eNuu5t9+BRQhSHAQHRHwp9lOMm FmTFv/nFs7LCbagAXtsLtcsBHYoe7dNpbctQgHJbWsNM2ux0jU1TybhEb6XLvkU2g0Mx LdQg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849621; x=1713454421; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=wVT7B+DWzQgD/wpg5m/fC11AaNvArZbFf8tVIDElahQ=; b=PawWsHPdT7WvK3nFTEnpHfZTUGFdT/65PMD/gm0dmcegMgD3iiZqB9j8nCFYOnpHdZ B1sfeZAhU4UMA8TK5TKKJ4AaZu+ykG4geBMcYQJPgMlU62aIO52A6Y6aczj67fX6/vvI geH7pST4WkVMiLxiXrtejc6GuF2ZfgdIC1OAPB8W0AN2BmGMZYgeCWUEK4NyKxTGw4e9 Cjk7gOhJf/I7l25wQHxwRZKrMI6HlgdJjx7jmahIQIysC4azH0cbCDJhhtO1Lx9Ksaoy BqlBOW/k9gqxiXB3rhhhzTkw3laJ3G2V22uYmuHHZ6eKfs5h7EBgD0L6AAKGJUkFj+gX EJCA== X-Gm-Message-State: AOJu0YySTbhIoOyjbZhlTbXEsjIPfqbT9xqIU8AFLoo9m8KcCwzIocg6 qaAyYAVIY8ac9+5SM2iX5NAOrP7/CA5rA0MYlAaxHDw+qfQwJnlvYns4xdm+gfT10fNnRIRMkfH c X-Google-Smtp-Source: AGHT+IGsQpJIEk0JpLHIp2BKx3R2XxDhfoEWKjBehBQCOQy5is92YOU5mFa+l0f9ryCan+BXK9sApQ== X-Received: by 2002:a6b:c34e:0:b0:7d6:7b7c:8257 with SMTP id t75-20020a6bc34e000000b007d67b7c8257mr208672iof.0.1712849620845; Thu, 11 Apr 2024 08:33:40 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.33.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:33:39 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 070/437] perf: convert events to read/write iterators Date: Thu, 11 Apr 2024 09:13:30 -0600 Message-ID: <20240411153126.16201-71-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- kernel/events/core.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/kernel/events/core.c b/kernel/events/core.c index 724e6d7e128f..2c94801bef4b 100644 --- a/kernel/events/core.c +++ b/kernel/events/core.c @@ -5688,6 +5688,7 @@ perf_read(struct file *file, char __user *buf, size_t= count, loff_t *ppos) =20 return ret; } +FOPS_READ_ITER_HELPER(perf_read); =20 static __poll_t perf_poll(struct file *file, poll_table *wait) { @@ -6669,7 +6670,7 @@ static int perf_fasync(int fd, struct file *filp, int= on) static const struct file_operations perf_fops =3D { .llseek =3D no_llseek, .release =3D perf_release, - .read =3D perf_read, + .read_iter =3D perf_read_iter, .poll =3D perf_poll, .unlocked_ioctl =3D perf_ioctl, .compat_ioctl =3D perf_compat_ioctl, --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f47.google.com (mail-io1-f47.google.com [209.85.166.47]) (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 D225212BF29 for ; Thu, 11 Apr 2024 15:33:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849625; cv=none; b=Rnc0YZ49mvgrJyMW4VWZUQ21WQCuLbDPYwMc3hMdm8YfQA2rvw7KLx8dB8yoawHs0fJKOoW2mKx9ePASABjA2Hv2RoWEbC0CVlIQfbT/xlNrRnkal0pJKsoO7HJC1tVxq/rboJ7mBxl61iErVl1a5zRJgFsq/c4RcYyzmaoo/1s= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849625; c=relaxed/simple; bh=Zrb9qOHAYQmCQMm3S19eAIdu+BbUBaZP/otKUs2EJRs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Ny1H46xLF43+k1H1o4v0rWwplhHTW91R9h6db+/XmE/d/A6NWX3iwZ5lWcKMzOicBnNUZGbCYByXNh23ycKIcFDbb6tlBDzp+qX8y1fTTcsBJ8IXoQp0Zr/i1PhC52tKFznvhL0i1OExkJIlOamfaDJqhRZlUyJU97BZ8Qzk61s= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=it+Jnjhk; arc=none smtp.client-ip=209.85.166.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="it+Jnjhk" Received: by mail-io1-f47.google.com with SMTP id ca18e2360f4ac-7d5ed700c2dso16124739f.0 for ; Thu, 11 Apr 2024 08:33:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849623; x=1713454423; 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=3SvvTE0GFGfdacX6nff1GiupvKPbkS4LIGd9MDwOd6Q=; b=it+JnjhkZY4bn+sXPfTsRqvbKnjgvSCitkfWk0EFaJ59eS4NB+QzOgoWTCmVtPzuaa UUKhTQbOxr0G85wF1HBCZgGrjHXavxU3EHeW8aKpx8+ayI7fCT9c+aIbPNr9+V1fApE5 r8niQLpb8oh63Uy7A9e8JVSWuRvyBK74OyW8SMEVqT4Sw6f7d3cSG+EjX1mSqE/Kt4PQ nk3iCp+YuNkQagk9Ec8w8Q166WhG9h2BJgFqUmOEqSD7Ri7tCsnPSdTPwnPHj1VAFXIj fWJ7k1zdxY/ea8qwqa+JgOTreROnLlnJQN/Zd3/9V///jpLq4KuOVn5pNes4mAnkeME8 9uHA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849623; x=1713454423; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=3SvvTE0GFGfdacX6nff1GiupvKPbkS4LIGd9MDwOd6Q=; b=bVigCg7mgUFvxvJdszOB2D0VhZL7SKW+QtaFK7MQaFCnCqnbO6xMjNMyA7wvsXyEq3 Lw3p61XTqqDTCwzpzrR3YepHmielVsDu8K4lr0g5t9qDhoqlpG+NH0G8uUxwl3roGnB6 Dw/U5Bgu8EeBYoV7ljHT0bTTlQkcBOEPZOVOtA2rP706xvuWT/8DdAEOqVtLaK3b2W0b M4idb4GQnHzmbdzSvfGd0EXtkPY/UrdpSysjs+SjNdiOq6RCEj4rMHxbzgK4phU7LKbF dFCo93b+DMp0PAI8H1NdtvuGZ3ReVDACvIx4wE2ihCcrgTEfLc8fbqqA9UeFRA615D6n Yf0A== X-Gm-Message-State: AOJu0YzTGt9IVoVSwOHcrg7dbOvV7V/Ed+XWi8ptIq/gRUfa8o4spLhN Wgq3cLJp0wlyacaJa7IrTkVq8fVaLAEpgiHhPp5T1vCGyCdTqPNahKZfXjzWLBZcctYcXHnvrP7 V X-Google-Smtp-Source: AGHT+IF9iTDD2NkAPVET7m6aD77wDbz5J4+cifHBFb/ROln3OLgf+CJj0xEl5Mg+0thBna6RMKGzOQ== X-Received: by 2002:a05:6602:38d:b0:7d6:513b:254 with SMTP id f13-20020a056602038d00b007d6513b0254mr175481iov.2.1712849622725; Thu, 11 Apr 2024 08:33:42 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.33.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:33:41 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 071/437] dma-debug: convert to read/write iterators Date: Thu, 11 Apr 2024 09:13:31 -0600 Message-ID: <20240411153126.16201-72-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- kernel/dma/debug.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/kernel/dma/debug.c b/kernel/dma/debug.c index a6e3792b15f8..4be49922129b 100644 --- a/kernel/dma/debug.c +++ b/kernel/dma/debug.c @@ -717,8 +717,7 @@ static void dma_entry_free(struct dma_debug_entry *entr= y) * 2. Preallocate a given number of dma_debug_entry structs */ =20 -static ssize_t filter_read(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t filter_read(struct kiocb *iocb, struct iov_iter *to) { char buf[NAME_MAX_LEN + 1]; unsigned long flags; @@ -736,12 +735,12 @@ static ssize_t filter_read(struct file *file, char __= user *user_buf, len =3D scnprintf(buf, NAME_MAX_LEN + 1, "%s\n", current_driver_name); read_unlock_irqrestore(&driver_name_lock, flags); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 -static ssize_t filter_write(struct file *file, const char __user *userbuf, - size_t count, loff_t *ppos) +static ssize_t filter_write(struct kiocb *iocb, struct iov_iter *from) { + size_t count =3D iov_iter_count(from); char buf[NAME_MAX_LEN]; unsigned long flags; size_t len; @@ -754,7 +753,7 @@ static ssize_t filter_write(struct file *file, const ch= ar __user *userbuf, * need to copy to temporary buffer first */ len =3D min(count, (size_t)(NAME_MAX_LEN - 1)); - if (copy_from_user(buf, userbuf, len)) + if (!copy_from_iter_full(buf, len, from)) return -EFAULT; =20 buf[len] =3D 0; @@ -804,8 +803,8 @@ static ssize_t filter_write(struct file *file, const ch= ar __user *userbuf, } =20 static const struct file_operations filter_fops =3D { - .read =3D filter_read, - .write =3D filter_write, + .read_iter =3D filter_read, + .write_iter =3D filter_write, .llseek =3D default_llseek, }; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f51.google.com (mail-io1-f51.google.com [209.85.166.51]) (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 7779312C7F8 for ; Thu, 11 Apr 2024 15:33:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849626; cv=none; b=mOxbfDNTwUVs55zJirUMkZni3LhESRNTUZSoDys3az9y6WO7GB3cppvsM3d+p7b+ssi/I2aCh77bVtsZAsrl+XQeczhIDls1QwlaN9F4pGncBa9nhKSyH+3LC9hX1mmUHLy5VGK/CbG+H+yktcqNvPxU+yZMIDdvfm5Ev4F3FXs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849626; c=relaxed/simple; bh=Ich6G6QlJx/rjzryB2hxQOjP/7GKVsFXtf/eiYMd87w=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=owsEBlyNnVLQOpj6EqAdhoNvC9oflgcjBKP4rkdD+yJ+CL0kK/D5Y5hFwLcgroAk9vkQZ9IPQBAQjxFWQgja7AQDGCcz3YUzYfRAmVMU0mmX0de2S/BDjW+Lw0IJb8Pfw5iUuPsIWGfM6qJRWFju3SBq8PZR3lpHu4fyLMHV7Aw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=frxRPBpC; arc=none smtp.client-ip=209.85.166.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="frxRPBpC" Received: by mail-io1-f51.google.com with SMTP id ca18e2360f4ac-7c8e4c0412dso69519939f.1 for ; Thu, 11 Apr 2024 08:33:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849624; x=1713454424; 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=wwAnhxLimpOC/Oa6gKiQq/Gyze8Nbyqzgu9dCQFe8rU=; b=frxRPBpC+IMiULhgFBtkX0H30DYfTvw/pShp/PB+UEoIbC38sKgA5Oc4QmI2CEtmUv liHnSAz6aFTYbblzPudRglJCozmXyBCI62PC+BQyw2ujt0O+z8AYdmqeUkMdnBNwO72r PIQDv+aheGbaQhwr3v1TFz0OP1h0cvsR8ZNXPe9gSvh+K48QtDA9MUxvDCF7TqJ6J5RU VZyrd5+BSTihag5wc381CAFKbNemij5A2d2l9cTspcXtoVxURoyioKT2ludmuHg27tNJ xQxIkhpXvAEk/eNCpyWDSaY+8lcTSOxV3nDLcBK891Epx/w1+309FIuJfVe0VEneNBF8 XXQw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849624; x=1713454424; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=wwAnhxLimpOC/Oa6gKiQq/Gyze8Nbyqzgu9dCQFe8rU=; b=QiB4ul7rN0P3erW5u8FSwxg1WKHSpAM3r6w2SNzjMW4e/S3qV6ZABL/WwmrzS9XuP7 GFoGOiYhaZBOyAnihIS7RJrEsmTe6f6wg7MWB7A6JFItYtYxtuKfvl/JHT+ZPE2xUBEk ASRr44UFrNAeaBKHP4dNSWxM0EiYd4rxLnSUEQnJzOdrtkQPmk4svag5HRpWPj+ypYCe fGJVY1OmM+kYLQlxFt7oKnGVQZOelF7Cdr8CnnF9g4CHhBIF7+RJLM13uMmqdnAMxDQF ntaBKquw2nADeREbTlR2PHUfUhEfGSqDtWgyMGIXXPA+nv8XfZzE+UkTucttBtU+5mZ4 QcnQ== X-Gm-Message-State: AOJu0YydTfTQRFQVmgsAnUEa01MQZoLWI8K09KvIEsa83hKitjBKF3Hv SdK4RPvpdn1b0gQXH+1lYD2gkLmEaGaljEZjnGrbCL7FaFWCmJLo3wYH7txhBRJfnW+gXmTojvx u X-Google-Smtp-Source: AGHT+IEoszV+iZjsHhGgzNwgbsNsZgTCX1WHZ7mA8m0wICGMvsZ8eo8KRlYG/SQRuSzV1mzrtDSApQ== X-Received: by 2002:a6b:c34e:0:b0:7d6:7b7c:8257 with SMTP id t75-20020a6bc34e000000b007d67b7c8257mr208918iof.0.1712849624255; Thu, 11 Apr 2024 08:33:44 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.33.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:33:43 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 072/437] kernel/fail_function: convert to read/write iterators Date: Thu, 11 Apr 2024 09:13:32 -0600 Message-ID: <20240411153126.16201-73-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- kernel/fail_function.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/kernel/fail_function.c b/kernel/fail_function.c index d971a0189319..de35a346899c 100644 --- a/kernel/fail_function.c +++ b/kernel/fail_function.c @@ -233,9 +233,9 @@ static void fei_attr_remove_all(void) } } =20 -static ssize_t fei_write(struct file *file, const char __user *buffer, - size_t count, loff_t *ppos) +static ssize_t fei_write(struct kiocb *iocb, struct iov_iter *from) { + size_t count =3D iov_iter_count(from); struct fei_attr *attr; unsigned long addr; char *buf, *sym; @@ -245,7 +245,7 @@ static ssize_t fei_write(struct file *file, const char = __user *buffer, if (count > KSYM_NAME_LEN) count =3D KSYM_NAME_LEN; =20 - buf =3D memdup_user_nul(buffer, count); + buf =3D iterdup_nul(from, count); if (IS_ERR(buf)) return PTR_ERR(buf); =20 @@ -306,8 +306,8 @@ static ssize_t fei_write(struct file *file, const char = __user *buffer, =20 static const struct file_operations fei_ops =3D { .open =3D fei_open, - .read =3D seq_read, - .write =3D fei_write, + .read_iter =3D seq_read_iter, + .write_iter =3D fei_write, .llseek =3D seq_lseek, .release =3D seq_release, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f44.google.com (mail-io1-f44.google.com [209.85.166.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 3EBD612D212 for ; Thu, 11 Apr 2024 15:33:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849628; cv=none; b=gidbu3Via9ahotFG4K9UzPX8EIV7NkA+gYiJS1gT8+Rohg16VCFwa89GabpRhg4hDENznFUwFYxCDeAl+DP2V7XP0/CF/lv7t3mD0T/z4O8iqhpCJ7+rfA4S73au8HzMG14iU4JTJKhsxanZ8Cofs6+nZNnCpEd//h6d7vyKoBI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849628; c=relaxed/simple; bh=VxGIOSbmJNHl57+T+eQDoBv7R+L3GV31kW2p/1LagqA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=hGXP3M3XxXMITLzBiG93Zt/fw8GcRc5Mb657kJoxh47f6Q9w/vvUntKSwc1kFPII6DxIB6jHT/Urz7FJYOWEqxxcY9WJRT85w4prHDK/HSquGd9rr50oI9HFurQub7W4zn2ko1PzLI8H2sksL5Y1gsWX88BYcHa6WMxaImoVBY8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=ih8rfIvw; arc=none smtp.client-ip=209.85.166.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="ih8rfIvw" Received: by mail-io1-f44.google.com with SMTP id ca18e2360f4ac-7d6112ba6baso57997939f.1 for ; Thu, 11 Apr 2024 08:33:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849626; x=1713454426; 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=fYsRXQhQcCZAbXowXwROjWn4Do6HHtwX4uKjJCPFiR8=; b=ih8rfIvwE1d0jOVPMG725H5bjgeQuLjxz3/7RQKJgKGONyD4IiJBqIOjpDXQAXVoi8 GyxfGFyqsWEUxPIdv/7eTANPpcfMfBHgYEcTTcJMlfX0kpdMZsojE49KqF5S7yPSCcam lyZObIxeb1ADGT/UXQHOx1GoTPtTK148ysMi0wXwJVXMW1MyAb3/a+uVkdCk75nXmc4w Z9KqkstYTZZFxhHOl0kkWc5uTLVWOTHMQhR9y1XquDDRhel/21TY/kiQBFYvw7s+hk4T szr8SHjPkv6YPR+mRy/hxTcfTt+NDOc1c9W4eCOHOM+lpppb4TxAEsERhm4Vsm2p/Bqp RB9g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849626; x=1713454426; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=fYsRXQhQcCZAbXowXwROjWn4Do6HHtwX4uKjJCPFiR8=; b=nPeFuaMI0cKHytzo3E97cl3K2uhqjOvoMZB65Q6M/Imff++IzMosUkcrPJUMIF5R6q SmEMPpi6MLFm5EhzWmJhnAk8Ms2X8f7xKESEs+rDhgEZ393pUsrufu5iXAgr/irKX2ku 2OPXsuaJhbxlnRV5zsql0pyXXPCIQLSQfFXXCk1m6vgyANMnEsfEy2ovKz5BRXoeLXLd GridJCd/mZql35BEJoNy1clR6L0A9oKmAjkupWTGAeK1IzsfIJ2Pa2pTX3cSIcpkQYaa 1PcgSXBm+znLj115wXHO1SlOITbZ8fscXDfSwfFymmjRwT6ozgfzsjxbSpyeEg4vpzDY zwkQ== X-Gm-Message-State: AOJu0YyCVIGzU2PSOj2135Ln4fFr1UYfcz1jDAvKmQpI/c31hHLrloiH rqptZtWcp9uQhz5eQgaNErBR5OAwj4SEI62LueT8SglMsnXTwOESkP2NYkW7fTj5hf4/RnaTRTv p X-Google-Smtp-Source: AGHT+IGqRTth5wBZFEZ7hBquRNqY48DRGmDPsUOCNIK3TNdvzQKIGLrOCmF8aJe8BIqgNAOpFAVl8A== X-Received: by 2002:a05:6602:38d:b0:7d6:513b:254 with SMTP id f13-20020a056602038d00b007d6513b0254mr175795iov.2.1712849626045; Thu, 11 Apr 2024 08:33:46 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.33.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:33:44 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 073/437] kcsan: convert to read/write iterators Date: Thu, 11 Apr 2024 09:13:33 -0600 Message-ID: <20240411153126.16201-74-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- kernel/kcsan/debugfs.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/kernel/kcsan/debugfs.c b/kernel/kcsan/debugfs.c index 1d1d1b0e4248..71f444ddc27e 100644 --- a/kernel/kcsan/debugfs.c +++ b/kernel/kcsan/debugfs.c @@ -220,14 +220,14 @@ static int debugfs_open(struct inode *inode, struct f= ile *file) return single_open(file, show_info, NULL); } =20 -static ssize_t -debugfs_write(struct file *file, const char __user *buf, size_t count, lof= f_t *off) +static ssize_t debugfs_write(struct kiocb *iocb, struct iov_iter *from) { char kbuf[KSYM_NAME_LEN]; char *arg; + size_t count =3D iov_iter_count(from); int read_len =3D count < (sizeof(kbuf) - 1) ? count : (sizeof(kbuf) - 1); =20 - if (copy_from_user(kbuf, buf, read_len)) + if (!copy_from_iter_full(kbuf, read_len, from)) return -EFAULT; kbuf[read_len] =3D '\0'; arg =3D strstrip(kbuf); @@ -260,9 +260,9 @@ debugfs_write(struct file *file, const char __user *buf= , size_t count, loff_t *o =20 static const struct file_operations debugfs_ops =3D { - .read =3D seq_read, + .read_iter =3D seq_read_iter, .open =3D debugfs_open, - .write =3D debugfs_write, + .write_iter =3D debugfs_write, .release =3D single_release }; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f52.google.com (mail-io1-f52.google.com [209.85.166.52]) (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 455D412EBF4 for ; Thu, 11 Apr 2024 15:33:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849630; cv=none; b=eD6LGRQb7yfgVN6Ls2irIa8i4H1egv07J8V8I7J+vJr/D4iltsbHTKSGOd36fwUAVeVJEFFOQi9KU6KIsIeH66/wPNjzeCiS2ja3tVYB/wCsV17t0ZCMku7MnGP/vcoicL7UFDO8gih019YRpGGTNe7ofjtHCQHD9euoIEp4gvI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849630; c=relaxed/simple; bh=YaXL7R/re/cuSaO+9vhK+h1YHWJ2OFOsmnkNoMlPCIE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=skY8eRV4WAJiKfByfRTSShx0HxTX7dlPtnmYxdJPUjYYHfVEJODLxtLbrpbFy1dWQCQY/k9OBZBK9O9/PVBlHr5t8fNikognKHm7f/VM2qgBLj/hf4wRnsyTiPrScP7xaOHsv3iYttm9kBPyri7b6ISCWc5nAiDD0jlYhDj6sVg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=SP6jd3EV; arc=none smtp.client-ip=209.85.166.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="SP6jd3EV" Received: by mail-io1-f52.google.com with SMTP id ca18e2360f4ac-7d6112ba6baso57998739f.1 for ; Thu, 11 Apr 2024 08:33:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849628; x=1713454428; 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=u2XUTX/v1t1d8uE9fHr6uqwTYiAOVABEhQF2k4Vu81g=; b=SP6jd3EVPnAFLEri4jVDQnEwebtMtR1bCG71NHAJsNZBs3e+Z+bgEbHKH2jWrGXbdI Sf/tS22GiB+mP0yAM8lACGDYKClJK11e3qVuhxQKaevmQ/p4C2nt7JqUSmO8iuL5xguZ sEgnNt3aG5SDvxkcCnQdq5g5xuRQtf3jy/uzhzt99qhJ2+26plv6Mb3EG7hEuh3J0ZhO IUqjNLTqParVhSfjkN460f/f4nKWLrSaWJRs8XUyS6tWyRTxSPZwLHWo3qtIXyIDhpct DKT2JDQj9zXuPfRui+srBLX6uPIB1a0cTvnuFlSdUqa+2MtdMt2TdHhdQ4sjZHc6dvSj v9Tg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849628; x=1713454428; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=u2XUTX/v1t1d8uE9fHr6uqwTYiAOVABEhQF2k4Vu81g=; b=sBoIfV+871ndC3dike+SiubRJDxUve+83/S0s1khIhTSVuVtpuirsiyhdFJWx2B9R2 v4JbAnahcFgE4EZZuh1v1GU5QSB1mikQ4iINJQ4ctZpT3FJWxi5oIYUpMSafegOyrbaT NxG1TKrublTdV1JDNXSlJ6Sp0CqfIKcNNkp2Du3Jn7Rm011wC+ifV0TLdwufRgZxuRby LgqmFvSfHjztD/X01QsG28PX99/dGzMAxZtmSWw++vtbU+lVoGKGlD0JBvqphvCZ9gX4 apaSXQ5qCWcW97fvuNhC1E14I2wcqFRJQTlxj57Xfc2a1lhBOZ36h8LMTUIvg80zLmnX Yn9g== X-Gm-Message-State: AOJu0YzuMwFZL2Pt6Z0QC11MuEBTk1KC26s4g+Kz2/hHinJ1WVG/t88+ XqWAarYlyQ6r5K+5BJ3MChEzJtmfuyhM4q89Hf5B5XAo7qq/baZcLd4wMP6UVa4qU0yVidRMfrq 2 X-Google-Smtp-Source: AGHT+IFS9E43fpzufL++jo3ktnLH+JjOTV64XkehFkEBXOPfqpTq0sjwTy1xXr1mlpXyt5NealU/BA== X-Received: by 2002:a6b:f312:0:b0:7d5:de23:13a9 with SMTP id m18-20020a6bf312000000b007d5de2313a9mr154237ioh.1.1712849627970; Thu, 11 Apr 2024 08:33:47 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.33.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:33:46 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 074/437] module: convert to read/write iterators Date: Thu, 11 Apr 2024 09:13:34 -0600 Message-ID: <20240411153126.16201-75-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- kernel/module/stats.c | 8 ++++---- kernel/module/tracking.c | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/kernel/module/stats.c b/kernel/module/stats.c index 3ba0e98b3c91..42bb95beb834 100644 --- a/kernel/module/stats.c +++ b/kernel/module/stats.c @@ -270,8 +270,7 @@ int try_add_failed_module(const char *name, enum fail_d= up_mod_reason reason) #define MAX_PREAMBLE 1024 #define MAX_FAILED_MOD_PRINT 112 #define MAX_BYTES_PER_MOD 64 -static ssize_t read_file_mod_stats(struct file *file, char __user *user_bu= f, - size_t count, loff_t *ppos) +static ssize_t read_file_mod_stats(struct kiocb *iocb, struct iov_iter *to) { struct mod_fail_load *mod_fail; unsigned int len, size, count_failed =3D 0; @@ -391,16 +390,17 @@ static ssize_t read_file_mod_stats(struct file *file,= char __user *user_buf, out_unlock: mutex_unlock(&module_mutex); out: - ret =3D simple_read_from_buffer(user_buf, count, ppos, buf, len); + ret =3D simple_copy_to_iter(buf, &iocb->ki_pos, len, to); kfree(buf); return ret; } + #undef MAX_PREAMBLE #undef MAX_FAILED_MOD_PRINT #undef MAX_BYTES_PER_MOD =20 static const struct file_operations fops_mod_stats =3D { - .read =3D read_file_mod_stats, + .read_iter =3D read_file_mod_stats, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, diff --git a/kernel/module/tracking.c b/kernel/module/tracking.c index 16742d1c630c..a163944f609d 100644 --- a/kernel/module/tracking.c +++ b/kernel/module/tracking.c @@ -114,7 +114,7 @@ static int unloaded_tainted_modules_open(struct inode *= inode, struct file *file) =20 static const struct file_operations unloaded_tainted_modules_fops =3D { .open =3D unloaded_tainted_modules_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D seq_release, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f49.google.com (mail-io1-f49.google.com [209.85.166.49]) (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 D4EB312FB27 for ; Thu, 11 Apr 2024 15:33:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849632; cv=none; b=HpsXY5C9+FfZcJjoxfvhMzbDh02Im9yWMvDd7jxvZf3s39FNGDeT//7XJcnL78S45sYVPxZmnLCH1J/hm3ZZyxI7rEHojy8Jqde/BXvtlsnxLABcyXYvFT/RUzyN7TjLqvbEcLKPqjvkriC3MUXOixrlVHWuwQaxnGDKrVdnwxM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849632; c=relaxed/simple; bh=LsKfHEdm3+sfLpTCdcPfNA/yJBUTGKlz7wgkVgloVGo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=C2xPM0/nWPPWE0HDAwyrk0CP2xs3shJhAwZlEhHjQqC38k7xtlkZCStwg0XYPdpeHFt73jUYEb+A1tuideE/g6dr87uJri0O4Or9rpjz6/2e19tAA6U6IhD+rXC8te939ylRpd4XY9D4l95waw1Jfw2zO5FErZfgyE0N+TXiGc0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=X7laa+Db; arc=none smtp.client-ip=209.85.166.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="X7laa+Db" Received: by mail-io1-f49.google.com with SMTP id ca18e2360f4ac-7d6812b37a6so8893339f.0 for ; Thu, 11 Apr 2024 08:33:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849630; x=1713454430; 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=2N9ahDuoY+zuQ2pr2PQD3XrVwZo+VQLYGz05dfATnSU=; b=X7laa+DbJkZ1QgBv1wZamEyZ3xMO2Kx449hhNYbHOIe4JSjxm+weH8CWTNDpvh1Xt9 /9ZXeWI1au/SPEujq2t+wcpwBAGoCXc+ieeJG9I7I2abgNujRNLtMwNurwV3V/Ib7+ls 0U8VG1+gTUXnGiFHzSWUqxfdQe/mobA6NaWw46Gul8M3DQ74M7cwzlHtkBzgChuESEI7 GY9dYbrFYjQo76NMzq2K8/ANzkoJJ7ECZ7VyuKlp7DEuGxNNPSolR1t6Xk5h5kHgkAKK PF3GuQOOWQ7aVA7QKFqWDq+78LBRL0m8qdHcrEwwcHFpzjkx2JkNYkyvXdo3LoQjtXdX zxVQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849630; x=1713454430; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=2N9ahDuoY+zuQ2pr2PQD3XrVwZo+VQLYGz05dfATnSU=; b=jeADzV9J/pWSnrYJOQlePYVrYosI6gTs2esfzR05tjfdTZycO9+Lhr2cUXQgVV7TiM lS/0EVtetXtfnsvDBiKhkacM0x447tec8HmE50Mjgkuj0mnY2mIf2jDdyUzeVzLjfOHz KLTEvOqt19nNPqzkOWM2e4EozhkWWW3JqE/RhsKYND6LrrUhbHMBYt/NFr2cBviiyGMl p6G5KcCUwSWrdCz5K6lK8DGzdXbNNAXJYTWu6aaBqNqWOYVsNV/OP2NsevpUsdo9/T/w +Rnpemijfh4qQ944lXKNMRzYKYBWilHg+slNexqMnyluvhQSWGqJbVEmA7Z6Ty+O0v+6 Ag2g== X-Gm-Message-State: AOJu0YwQPpUVQ7ecYxU03zjEA+iNOSHpggd0UozROBiBcxDtYQaDXFvu MUH/wNJ69ztfkYe0oA66SXxhMGRlObHHuFl04r3xCUfPg2GjI5tSpQ9K+pNdWXdG9ha93H5yxxz l X-Google-Smtp-Source: AGHT+IFQbCHYS0+c2WDHitRJDmcwowpJbdZqr759gqvFJ74QCi5r692XOEO+HzeiGFKiFnWStqAW6g== X-Received: by 2002:a6b:5b10:0:b0:7d0:bd2b:43ba with SMTP id v16-20020a6b5b10000000b007d0bd2b43bamr216099ioh.0.1712849629726; Thu, 11 Apr 2024 08:33:49 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.33.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:33:48 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 075/437] kernel/power: convert to read/write iterators Date: Thu, 11 Apr 2024 09:13:35 -0600 Message-ID: <20240411153126.16201-76-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- kernel/power/qos.c | 21 ++++++++++----------- kernel/power/user.c | 28 ++++++++++++---------------- 2 files changed, 22 insertions(+), 27 deletions(-) diff --git a/kernel/power/qos.c b/kernel/power/qos.c index 4244b069442e..eeea74bc639a 100644 --- a/kernel/power/qos.c +++ b/kernel/power/qos.c @@ -363,10 +363,9 @@ static int cpu_latency_qos_release(struct inode *inode= , struct file *filp) return 0; } =20 -static ssize_t cpu_latency_qos_read(struct file *filp, char __user *buf, - size_t count, loff_t *f_pos) +static ssize_t cpu_latency_qos_read(struct kiocb *iocb, struct iov_iter *t= o) { - struct pm_qos_request *req =3D filp->private_data; + struct pm_qos_request *req =3D iocb->ki_filp->private_data; unsigned long flags; s32 value; =20 @@ -377,33 +376,33 @@ static ssize_t cpu_latency_qos_read(struct file *filp= , char __user *buf, value =3D pm_qos_get_value(&cpu_latency_constraints); spin_unlock_irqrestore(&pm_qos_lock, flags); =20 - return simple_read_from_buffer(buf, count, f_pos, &value, sizeof(s32)); + return simple_copy_to_iter(&value, &iocb->ki_pos, sizeof(s32), to); } =20 -static ssize_t cpu_latency_qos_write(struct file *filp, const char __user = *buf, - size_t count, loff_t *f_pos) +static ssize_t cpu_latency_qos_write(struct kiocb *iocb, struct iov_iter *= from) { + size_t count =3D iov_iter_count(from); s32 value; =20 if (count =3D=3D sizeof(s32)) { - if (copy_from_user(&value, buf, sizeof(s32))) + if (!copy_from_iter_full(&value, sizeof(s32), from)) return -EFAULT; } else { int ret; =20 - ret =3D kstrtos32_from_user(buf, count, 16, &value); + ret =3D kstrtos32_from_iter(from, count, 16, &value); if (ret) return ret; } =20 - cpu_latency_qos_update_request(filp->private_data, value); + cpu_latency_qos_update_request(iocb->ki_filp->private_data, value); =20 return count; } =20 static const struct file_operations cpu_latency_qos_fops =3D { - .write =3D cpu_latency_qos_write, - .read =3D cpu_latency_qos_read, + .write_iter =3D cpu_latency_qos_write, + .read_iter =3D cpu_latency_qos_read, .open =3D cpu_latency_qos_open, .release =3D cpu_latency_qos_release, .llseek =3D noop_llseek, diff --git a/kernel/power/user.c b/kernel/power/user.c index 3aa41ba22129..1dcdfbf240a9 100644 --- a/kernel/power/user.c +++ b/kernel/power/user.c @@ -131,17 +131,16 @@ static int snapshot_release(struct inode *inode, stru= ct file *filp) return 0; } =20 -static ssize_t snapshot_read(struct file *filp, char __user *buf, - size_t count, loff_t *offp) +static ssize_t snapshot_read(struct kiocb *iocb, struct iov_iter *to) { - loff_t pg_offp =3D *offp & ~PAGE_MASK; + loff_t pg_offp =3D iocb->ki_pos & ~PAGE_MASK; struct snapshot_data *data; unsigned int sleep_flags; ssize_t res; =20 sleep_flags =3D lock_system_sleep(); =20 - data =3D filp->private_data; + data =3D iocb->ki_filp->private_data; if (!data->ready) { res =3D -ENODATA; goto Unlock; @@ -154,10 +153,9 @@ static ssize_t snapshot_read(struct file *filp, char _= _user *buf, res =3D PAGE_SIZE - pg_offp; } =20 - res =3D simple_read_from_buffer(buf, count, &pg_offp, - data_of(data->handle), res); + res =3D simple_copy_to_iter(data_of(data->handle), &iocb->ki_pos, res, to= ); if (res > 0) - *offp +=3D res; + iocb->ki_pos +=3D res; =20 Unlock: unlock_system_sleep(sleep_flags); @@ -165,10 +163,9 @@ static ssize_t snapshot_read(struct file *filp, char _= _user *buf, return res; } =20 -static ssize_t snapshot_write(struct file *filp, const char __user *buf, - size_t count, loff_t *offp) +static ssize_t snapshot_write(struct kiocb *iocb, struct iov_iter *from) { - loff_t pg_offp =3D *offp & ~PAGE_MASK; + loff_t pg_offp =3D iocb->ki_pos & ~PAGE_MASK; struct snapshot_data *data; unsigned long sleep_flags; ssize_t res; @@ -180,7 +177,7 @@ static ssize_t snapshot_write(struct file *filp, const = char __user *buf, =20 sleep_flags =3D lock_system_sleep(); =20 - data =3D filp->private_data; + data =3D iocb->ki_filp->private_data; =20 if (!pg_offp) { res =3D snapshot_write_next(&data->handle); @@ -195,10 +192,9 @@ static ssize_t snapshot_write(struct file *filp, const= char __user *buf, goto unlock; } =20 - res =3D simple_write_to_buffer(data_of(data->handle), res, &pg_offp, - buf, count); + res =3D simple_copy_from_iter(data_of(data->handle), &iocb->ki_pos, res, = from); if (res > 0) - *offp +=3D res; + iocb->ki_pos +=3D res; unlock: unlock_system_sleep(sleep_flags); =20 @@ -445,8 +441,8 @@ snapshot_compat_ioctl(struct file *file, unsigned int c= md, unsigned long arg) static const struct file_operations snapshot_fops =3D { .open =3D snapshot_open, .release =3D snapshot_release, - .read =3D snapshot_read, - .write =3D snapshot_write, + .read_iter =3D snapshot_read, + .write_iter =3D snapshot_write, .llseek =3D no_llseek, .unlocked_ioctl =3D snapshot_ioctl, #ifdef CONFIG_COMPAT --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f47.google.com (mail-io1-f47.google.com [209.85.166.47]) (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 6379B1304AB for ; Thu, 11 Apr 2024 15:33:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849633; cv=none; b=un/AS00niKyR0/09qPJDYsITDPg8mqqaX/CK7z6ErFLH0Ow4wV+sCxJMVy8zPMYFfRBweWmO5y9CVmhUye+yWhzzFdAF89+UqRwsoWKHU7BeRMX33k593B7sPfp8xtwDxj0sBgAZujwjDNMduQwXyDukjwmsBQyCqrqgYx85xOU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849633; c=relaxed/simple; bh=Cbl6SuG6VXstprKz7lY7zYC7sNNSA7NadduTO0RsMDQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=s2AvJVkOxIXlricy6SgDz3shzDNLjKqywieCEkHOxJkRsOTMdrOprWJd0jMm0NUDSA/iKthBMjoBujtVoJ/kRcYC+9Y01IA2ipKE1i+xlYPb4aMPTuTFyQACJx0T7NrehsN57smOyAQpQZQ4l9BrDFO98MA9tQdTvTPLYh/MtZI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=JGSGDOyW; arc=none smtp.client-ip=209.85.166.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="JGSGDOyW" Received: by mail-io1-f47.google.com with SMTP id ca18e2360f4ac-7d6112ba6baso58000239f.1 for ; Thu, 11 Apr 2024 08:33:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849631; x=1713454431; 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=HDtnQXRZeSewjVOftnOwVESefv8KfxTozh1XXf4q1XQ=; b=JGSGDOyWMtKx5vs+Z+7tw1ndRzhWfRCTpuP4TLBn7pdkMH2W5lbBKDAcQPd3ljOvwe NSBOf7fK8Im8pzQZI39mqnipWRaH/1qWJeWWq37DBLWXWaivEkydSPWJHB7865pMUY/G DlYOl4op8iizjr9suxyU2PHS5zW0z7x1UkkGpbUm1EsZaI+waDTls8rXLplQz02cdFYv wUaSbMUoHeNElPhzWo/urMYgi/3kxBs00EzeIB5dLmbNg1ei+4TLDbvSWaRVpY7tsDGf AioTjUreM+xR33Rx9gvA6kih9dRiWhN0lWkwwftdTburJtCKAVO39kwyK+VofHq3Pnf0 Ub6A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849631; x=1713454431; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=HDtnQXRZeSewjVOftnOwVESefv8KfxTozh1XXf4q1XQ=; b=TaC0t1MTY21nEaHac+ZfhfBpp1xs+fUO5UDuSdiLZU+ZaH0lCgYQJ+FdCu1GFzkR67 jsoiSuXHZbmw03qhSo7fillXRrMh5ADxa99DmG8FULyKjj2DtEpVKwaNo/LmUfbafD0X wgRJFnwjHu6wNUApwUaZvBKRquLVcRXptOu1a78CJ7wktSypLg63EXDUgXZBcU/MLH0R 1gk20DZxDjX15TBzdd5Ob1EtSx3D7Ar5Tzk5Dfxk5GBFdJpkhIwirov1gsAJ+hk8Zteb kOTwi3SZ45pRIw7Jt+yRtQtfSy2Fj9PxzSUjdOtlDO0svvwnKAp6XDdC67JxBUBl12g0 AAGA== X-Gm-Message-State: AOJu0YyoP1AWNfmSTFVo4fC7x59jDTrFTNwuG/A5EUL1ssZZriyjSXF+ 0H0mGvYzsKcju7TBIRXEAnuBTOkLlfhMr9/1uqs1+EoRVnTWt9CasQs2XS5Wk3g/BOOojjSK4VI f X-Google-Smtp-Source: AGHT+IEDFyRB474jWVqI0kY3jMqptX7/xPpobGuhync8skNj40tl8NgOOnuSVnwBeb2XgvMQKNOldQ== X-Received: by 2002:a05:6602:38d:b0:7d6:513b:254 with SMTP id f13-20020a056602038d00b007d6513b0254mr176221iov.2.1712849631343; Thu, 11 Apr 2024 08:33:51 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.33.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:33:50 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 076/437] printk: convert to read/write iterators Date: Thu, 11 Apr 2024 09:13:36 -0600 Message-ID: <20240411153126.16201-77-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- kernel/printk/printk.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c index adf99c05adca..a383f92915e3 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c @@ -787,11 +787,11 @@ static ssize_t devkmsg_write(struct kiocb *iocb, stru= ct iov_iter *from) return ret; } =20 -static ssize_t devkmsg_read(struct file *file, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t devkmsg_read(struct kiocb *iocb, struct iov_iter *to) { - struct devkmsg_user *user =3D file->private_data; + struct devkmsg_user *user =3D iocb->ki_filp->private_data; char *outbuf =3D &user->pbufs.outbuf[0]; + size_t count =3D iov_iter_count(to); struct printk_message pmsg =3D { .pbufs =3D &user->pbufs, }; @@ -802,7 +802,7 @@ static ssize_t devkmsg_read(struct file *file, char __u= ser *buf, return ret; =20 if (!printk_get_next_message(&pmsg, atomic64_read(&user->seq), true, fals= e)) { - if (file->f_flags & O_NONBLOCK) { + if (iocb->ki_filp->f_flags & O_NONBLOCK) { ret =3D -EAGAIN; goto out; } @@ -838,7 +838,7 @@ static ssize_t devkmsg_read(struct file *file, char __u= ser *buf, goto out; } =20 - if (copy_to_user(buf, outbuf, pmsg.outbuf_len)) { + if (!copy_to_iter_full(outbuf, pmsg.outbuf_len, to)) { ret =3D -EFAULT; goto out; } @@ -950,7 +950,7 @@ static int devkmsg_release(struct inode *inode, struct = file *file) =20 const struct file_operations kmsg_fops =3D { .open =3D devkmsg_open, - .read =3D devkmsg_read, + .read_iter =3D devkmsg_read, .write_iter =3D devkmsg_write, .llseek =3D devkmsg_llseek, .poll =3D devkmsg_poll, --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-il1-f179.google.com (mail-il1-f179.google.com [209.85.166.179]) (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 52C92130A40 for ; Thu, 11 Apr 2024 15:33:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.179 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849635; cv=none; b=HxyYbUMZPNNpquxnpuT08DkjbXAwbvQRkd5qFFfzlNAq+uPNxOIdgQuzGDgt+ocf31827Alzcnb+nicQds0pWD6msPdjQNDidNREdv79MoC1kWrijyjuHHTXlQNwmdiPo0MpwqYkM/sxN85SH/oidPZkgNe5e+OuIq5YxsaBnns= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849635; c=relaxed/simple; bh=W3k6/FXevE8wDAMCp42FxIbGXgHu5v0EESnQHOknpbc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=kffaLNlRJfIHu7IGsWUmwSH956dw2h+9+/Tl0gG+iKDMBkuRtDGJkJrHMtwQ3bTIsJfHGIpDz9tkUOFDQzxLKbWnni52Q8VxWczNfXDF2uJj/K2bjtq71DaIGiFyABvTJRhVC2Vj5RjOdS1tLH+8hCL+27YBTVimPll5PBjZIcc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=xo6Lu4k1; arc=none smtp.client-ip=209.85.166.179 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="xo6Lu4k1" Received: by mail-il1-f179.google.com with SMTP id e9e14a558f8ab-36a224d7414so178515ab.1 for ; Thu, 11 Apr 2024 08:33:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849633; x=1713454433; 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=nL+hkzCgNGfdZd8isDHnQ3Z6spDtusW+FGPl5GpAvYw=; b=xo6Lu4k1V0v5XpLkCso2L2a78JW1zT5st2S5/pJTuSB2x8cdFPky/HDP47IDm9GwTw 63RUkR4YTvmYsi2AbHbXhFKBh8lbW62htXba+atXqlbQvrqEYHbIKxMEvDvRHOXymvz5 CXNbfKDS7Pb6GXNhAR/DyukNkZ+PwjxRGt3a1xmMB4b0QepjHCxHeJQ3d158/mhLhl8l tFZxVNIYpH1GMrmgrHuYeY3FVZAC4VU8ad/HLPY3khru4w4hao2Lwc2NlxP3Awz7RyM/ cjiFSlhDuGgQieVHaJRJGz9NUE/vXIrASVNElfLYwwLl10wp/AgnmqsDUUmD2I+wBwhJ 8ujw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849633; x=1713454433; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=nL+hkzCgNGfdZd8isDHnQ3Z6spDtusW+FGPl5GpAvYw=; b=qN9L0qcEdDV7+0sxlQGu4A7b36E0ah2vQZZQLC5bb2QCAKNEUcFRtaKjaT4k33m1Ub LH1rUJHmDUZiP3KhjhgVc/uy2c+Nu2afsCqjlWdhgh7ZT96R/fcwTImZFy8tsdVELM35 rnOI9p6pCQBBCHSFzrFUEVqTXz6bgsHp5+QPAHpqTxYtar9WZkRUqdW6RIV1Kgl66yLx vwLj4G4NT2qNkwMRbTdrolSzUAtmik+TSE5dlMCZhXABk3wH3Reey19RroY7YHQWUCYt 6+yW4Pdsh/MdKy1dSBvRWA9Xcw53WW6FD1VddQWymKeDmr6rBKVv/xmtvR1yix8DfItk r5Ig== X-Gm-Message-State: AOJu0YzL3Tm20sfQo4UDVaqgZsuf9Faaj5EYzgkrl2esnC4dxc77LmHt nHoptP677Pg1d99cHzAJLBGpEN114C484E93GvIpGoZuRBKTMXeDzQOGcRzotIC1Jo094NnyJ6Q t X-Google-Smtp-Source: AGHT+IFxntkksjVud7OjzO7PKdbesEEV20eEMNVSwdhb/K12oy7Hpz3H50erMbl+Clfr1XyHZ2WwKQ== X-Received: by 2002:a05:6602:4ed7:b0:7d5:ddc8:504d with SMTP id gk23-20020a0566024ed700b007d5ddc8504dmr182896iob.0.1712849633159; Thu, 11 Apr 2024 08:33:53 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.33.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:33:51 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 077/437] relay: convert to read/write iterators Date: Thu, 11 Apr 2024 09:13:37 -0600 Message-ID: <20240411153126.16201-78-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- kernel/relay.c | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/kernel/relay.c b/kernel/relay.c index a8e90e98bf2c..d34f5b0e4e53 100644 --- a/kernel/relay.c +++ b/kernel/relay.c @@ -1030,12 +1030,10 @@ static size_t relay_file_read_end_pos(struct rchan_= buf *buf, return end_pos; } =20 -static ssize_t relay_file_read(struct file *filp, - char __user *buffer, - size_t count, - loff_t *ppos) +static ssize_t relay_file_read(struct kiocb *iocb, struct iov_iter *to) { - struct rchan_buf *buf =3D filp->private_data; + struct rchan_buf *buf =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(to); size_t read_start, avail; size_t written =3D 0; int ret; @@ -1043,7 +1041,7 @@ static ssize_t relay_file_read(struct file *filp, if (!count) return 0; =20 - inode_lock(file_inode(filp)); + inode_lock(file_inode(iocb->ki_filp)); do { void *from; =20 @@ -1058,27 +1056,25 @@ static ssize_t relay_file_read(struct file *filp, avail =3D min(count, avail); from =3D buf->start + read_start; ret =3D avail; - if (copy_to_user(buffer, from, avail)) + if (!copy_to_iter_full(from, avail, to)) break; =20 - buffer +=3D ret; written +=3D ret; count -=3D ret; =20 relay_file_read_consume(buf, read_start, ret); - *ppos =3D relay_file_read_end_pos(buf, read_start, ret); + iocb->ki_pos =3D relay_file_read_end_pos(buf, read_start, ret); } while (count); - inode_unlock(file_inode(filp)); + inode_unlock(file_inode(iocb->ki_filp)); =20 return written; } =20 - const struct file_operations relay_file_operations =3D { .open =3D relay_file_open, .poll =3D relay_file_poll, .mmap =3D relay_file_mmap, - .read =3D relay_file_read, + .read_iter =3D relay_file_read, .llseek =3D no_llseek, .release =3D relay_file_release, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f43.google.com (mail-io1-f43.google.com [209.85.166.43]) (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 CAF381311B3 for ; Thu, 11 Apr 2024 15:33:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849637; cv=none; b=HXM1DBfa8Ho9UUb4AZNRDxKmsJ3HaXOagyyOT8z/hvMhrOvLaj9ACnPsn0UgCqvxyQ52/KjjXG8LgbK+7ouQLWlUHJPpkH8qEPA63lYyIX0WXxWNdTwEaLtj9IadhllAfH7GJwykh/tScokqdA4iZOh1g8K30rNRTZEE+gHTH94= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849637; c=relaxed/simple; bh=cx8sOxAamrCB0v2KTIn+gNq5QolJZna1nbYPjQwTEWk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=jNXbXKNFZWr+YHCUu7LM2xUNcrTKkeOD9fnX6p8RgFASULnztaN9PO6Wk5B/ncGnijaSYEVlyqjl2f8XYjuEiZSrA8YDuGyjyAhi1gpaFST8zXtrqNdT1KK3bTiLpQCE0aFP4omd+Jh9cFt1+E3rbhq1jIVqEzpVgYAfYKkg2Rk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=SJj2VXYK; arc=none smtp.client-ip=209.85.166.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="SJj2VXYK" Received: by mail-io1-f43.google.com with SMTP id ca18e2360f4ac-7cc0e831e11so170466539f.1 for ; Thu, 11 Apr 2024 08:33:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849635; x=1713454435; 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=7KRZcfeSiCxixOlLZytLoGKi7V9jw2W3rB1wcxBqkZw=; b=SJj2VXYKNYV1lhlNV1YnNyM5/Us6i5LnAVuiO4FShO+eEwQZXlF5AlYRqPgin3EeCi 4hFxO0WKvJr+IzK0mqw/j1s9SzSyB0KMsaO4JSSEjn5Lf0bWZ/gKPS9zJc/LvfxcN4L8 vPl9YbBZYSaoph093ZzKfXDublVULzzClj7TrbLBSJgA7VN6XyogH0nyyjR8CQToHIm0 Mvnnwm787nNrwUwKQ2FkTxlhtKWfrp8h/pGjnVSrGNjx+99kwvW4GLQKMVQ2sHh0v32u /ADrY3pr3B++Vw0g2dE+4Ip3vJYO77uAerTlUP0jSZynKGu5XiPUHuDoV9/0fyiFV+2D Gsng== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849635; x=1713454435; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=7KRZcfeSiCxixOlLZytLoGKi7V9jw2W3rB1wcxBqkZw=; b=QIjK/ehtEcEsJImrBJhdJLxLoHA+AZJ9ZVcOb9DcK3t/nYCH4VaR8y3xCMrbWWUkoZ 3+iGBtjIAg5OPGzlVqAVEWo3w3+hsLhrOfKkaCuX3ZMUPtPBwtWXYYJ7nJnI+I3XzCYs F9URxGkHJ+dH62ESVyktQmXztYtxbeHxORB50xA4k4GV02mQYI+zXUnmb5sQNQT4VtPx gyDvonVo7oFIveSNsFqdH7+8rii69RKiMNQbLZIwe3yVRLp5uAZsvNpvIdF1FjX1/ZE7 WM/35dVlA02Xoh6Sq83W6DoHI8ou0ZjOEIODCa+/Fg2idLL0vcXlYh/Vd4z0EifU09yi fnKg== X-Gm-Message-State: AOJu0YxaQwsIns2y+aZQ01NQa/9Nnd5QHUDRtvOOEFapX0PL86s+sDAS io20ZIwM/cwj7iS8pWxfMSlMP8xjjfwilj+u9uxR4e5VtyLdM+kO0PS+zWTVBlpZv4NQ5cUydcx / X-Google-Smtp-Source: AGHT+IFNXNPZUtWST48LMa5VIx+biIQVxOYZ0RcBSyWVLUPz5r+m0/O95rubJk70hV6qYXon31SKoQ== X-Received: by 2002:a05:6602:21d7:b0:7d6:9ddf:5095 with SMTP id c23-20020a05660221d700b007d69ddf5095mr8636ioc.1.1712849634778; Thu, 11 Apr 2024 08:33:54 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.33.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:33:53 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 078/437] kernel/time: convert to read/write iterators Date: Thu, 11 Apr 2024 09:13:38 -0600 Message-ID: <20240411153126.16201-79-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- kernel/time/posix-clock.c | 3 ++- kernel/time/test_udelay.c | 10 +++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/kernel/time/posix-clock.c b/kernel/time/posix-clock.c index 4782edcbe7b9..766ff113753a 100644 --- a/kernel/time/posix-clock.c +++ b/kernel/time/posix-clock.c @@ -54,6 +54,7 @@ static ssize_t posix_clock_read(struct file *fp, char __u= ser *buf, =20 return err; } +FOPS_READ_ITER_HELPER(posix_clock_read); =20 static __poll_t posix_clock_poll(struct file *fp, poll_table *wait) { @@ -169,7 +170,7 @@ static int posix_clock_release(struct inode *inode, str= uct file *fp) static const struct file_operations posix_clock_file_operations =3D { .owner =3D THIS_MODULE, .llseek =3D no_llseek, - .read =3D posix_clock_read, + .read_iter =3D posix_clock_read_iter, .poll =3D posix_clock_poll, .unlocked_ioctl =3D posix_clock_ioctl, .open =3D posix_clock_open, diff --git a/kernel/time/test_udelay.c b/kernel/time/test_udelay.c index 20d5df631570..9b6e832f4f47 100644 --- a/kernel/time/test_udelay.c +++ b/kernel/time/test_udelay.c @@ -96,9 +96,9 @@ static int udelay_test_open(struct inode *inode, struct f= ile *file) return single_open(file, udelay_test_show, inode->i_private); } =20 -static ssize_t udelay_test_write(struct file *file, const char __user *buf, - size_t count, loff_t *pos) +static ssize_t udelay_test_write(struct kiocb *iocb, struct iov_iter *from) { + size_t count =3D iov_iter_count(from); char lbuf[32]; int ret; int usecs; @@ -107,7 +107,7 @@ static ssize_t udelay_test_write(struct file *file, con= st char __user *buf, if (count >=3D sizeof(lbuf)) return -EINVAL; =20 - if (copy_from_user(lbuf, buf, count)) + if (!copy_from_iter_full(lbuf, count, from)) return -EFAULT; lbuf[count] =3D '\0'; =20 @@ -128,8 +128,8 @@ static ssize_t udelay_test_write(struct file *file, con= st char __user *buf, static const struct file_operations udelay_test_debugfs_ops =3D { .owner =3D THIS_MODULE, .open =3D udelay_test_open, - .read =3D seq_read, - .write =3D udelay_test_write, + .read_iter =3D seq_read_iter, + .write_iter =3D udelay_test_write, .llseek =3D seq_lseek, .release =3D single_release, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f42.google.com (mail-io1-f42.google.com [209.85.166.42]) (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 C1A76131756 for ; Thu, 11 Apr 2024 15:33:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849639; cv=none; b=CAfrIKCGbReAz3Yz+fqSwwJW0qo2arpVRyG5FrRUonUn1CYxqZIXGLnZWppab+dRMl18OSMg//bbboEY2eI5sjDbJhKcFdBj682HjYCIZLfyppwIh4YIX2KscMl9lDli0RGWuKNBCL2Ez2ZgrK8oN2fzgR5pAvjVm6LRFXhyx6k= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849639; c=relaxed/simple; bh=Zo/x26WS9n9rARO6znUcDnuZyVuHxycxEnyoGTvJz2Y=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=jZ6tpD+Pzw2QEqgImbst/tmJuArln/IBO1nS6r1ZZvixjl5BudPBM19iXh/CkKC89iPfwNdSrmRyP7LOJIxrd9o2nSTNUEv+5FeEgrqQaYccTvSabTOzuEl5faX9QMO/QxWSP5KBtgM88/+mfgm8ev0XAP0xl3zkDcA5/lqCdcA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=sRUbPuV3; arc=none smtp.client-ip=209.85.166.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="sRUbPuV3" Received: by mail-io1-f42.google.com with SMTP id ca18e2360f4ac-7d67d1073easo9743539f.0 for ; Thu, 11 Apr 2024 08:33:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849636; x=1713454436; 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=kmd8KmNNkkxHDALLgA03v64s0+v+FthfsPXOyGkj3lQ=; b=sRUbPuV3vv81WeqgeaT47S1YHJ8ZEeqSeQ37RqCLG5IK++qvuvMjZ+o/NfBJ9arsTt WM4JTeH3ZBV0yQSYQg+JqhV49X/9BTnIjZV7jtNQEj3H2+oicujfS3p+gMljHw+XRqEN uJ6SvHDETm49sCy3aaDY/MeR80NydmboPYTTuoq9MyEt49ZKog9ecPELNaF5j4K1WHrg r2PWKxoLcIO4UbImnxUwXfjwoeWQ6PNGL3fKdXoP1wHw3jaFo4celwXAP2AOVcBEphXF 4KYHu73FFLyGIw+gExzutAM5dstSbYkFkgQGPI1TKDAil4BOMVkbj7MZOh+yU3TL4TTr KDjA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849637; x=1713454437; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=kmd8KmNNkkxHDALLgA03v64s0+v+FthfsPXOyGkj3lQ=; b=N3nIWpIY31RrNLnYCbYQlOtWzB2ujtWYF+n1QU4WPik751Quzmd37/equJslwwXZ1S JmpTPK44Zg+zx4+8YCuDjXfHxcGORGm9A3DVdjcuqzPyneXy7k6Y3ZXDzCGne8VB22Ho jz5Ws8eWibP07L/pqW/H1aQZB1R1LYPBV1lTMHXQHU/YG+Tb4acEHBJsfJMYSC+xaEGB 2u2+HTj4Hj0AHWUL20M9mj9QmdXdiHHIanmDD/zH0COiE45rH7+8eLJObxRUQIU8yT9P DTtEH7inZPParR/z2F0ydILQU5lHMln/RKLUvFbn8WDG5PBPqFX19r41sygCMORmrXOn 0o2A== X-Gm-Message-State: AOJu0YygKQTwdIGh1cyL0YMFV/8634LLUqa7fz/BFuyoVMk6zHixBX57 Q+PBKjQ0ru7jVfdcJsxavkp3Y5jaBTrwId2h6C2g/NjEfC+Q5acXrTgSAppzhEz/jmLGVdz9IZY R X-Google-Smtp-Source: AGHT+IHK7To518a2TTCNhyFt3csxTIn3WbA3wFxO/LYxkmpFWi6wsj344W91o9zGWF8hcuvU18qQ+w== X-Received: by 2002:a6b:c34e:0:b0:7d6:7b7c:8257 with SMTP id t75-20020a6bc34e000000b007d67b7c8257mr209725iof.0.1712849636680; Thu, 11 Apr 2024 08:33:56 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.33.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:33:55 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 079/437] rv: convert to read/write iterators Date: Thu, 11 Apr 2024 09:13:39 -0600 Message-ID: <20240411153126.16201-80-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- kernel/trace/rv/rv.c | 58 +++++++++++++++++------------------ kernel/trace/rv/rv_reactors.c | 32 +++++++++---------- 2 files changed, 44 insertions(+), 46 deletions(-) diff --git a/kernel/trace/rv/rv.c b/kernel/trace/rv/rv.c index 2f68e93fff0b..7402b77a1b89 100644 --- a/kernel/trace/rv/rv.c +++ b/kernel/trace/rv/rv.c @@ -209,15 +209,14 @@ void rv_put_task_monitor_slot(int slot) /* * This section collects the monitor/ files and folders. */ -static ssize_t monitor_enable_read_data(struct file *filp, char __user *us= er_buf, size_t count, - loff_t *ppos) +static ssize_t monitor_enable_read_data(struct kiocb *iocb, struct iov_ite= r *to) { - struct rv_monitor_def *mdef =3D filp->private_data; + struct rv_monitor_def *mdef =3D iocb->ki_filp->private_data; const char *buff; =20 buff =3D mdef->monitor->enabled ? "1\n" : "0\n"; =20 - return simple_read_from_buffer(user_buf, count, ppos, buff, strlen(buff)+= 1); + return simple_copy_to_iter(buff, &iocb->ki_pos, strlen(buff)+1, to); } =20 /* @@ -279,14 +278,15 @@ int rv_enable_monitor(struct rv_monitor_def *mdef) /* * interface for enabling/disabling a monitor. */ -static ssize_t monitor_enable_write_data(struct file *filp, const char __u= ser *user_buf, - size_t count, loff_t *ppos) +static ssize_t monitor_enable_write_data(struct kiocb *iocb, + struct iov_iter *from) { - struct rv_monitor_def *mdef =3D filp->private_data; + struct rv_monitor_def *mdef =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); int retval; bool val; =20 - retval =3D kstrtobool_from_user(user_buf, count, &val); + retval =3D kstrtobool_from_iter(from, count, &val); if (retval) return retval; =20 @@ -305,30 +305,29 @@ static ssize_t monitor_enable_write_data(struct file = *filp, const char __user *u static const struct file_operations interface_enable_fops =3D { .open =3D simple_open, .llseek =3D no_llseek, - .write =3D monitor_enable_write_data, - .read =3D monitor_enable_read_data, + .write_iter =3D monitor_enable_write_data, + .read_iter =3D monitor_enable_read_data, }; =20 /* * Interface to read monitors description. */ -static ssize_t monitor_desc_read_data(struct file *filp, char __user *user= _buf, size_t count, - loff_t *ppos) +static ssize_t monitor_desc_read_data(struct kiocb *iocb, struct iov_iter = *to) { - struct rv_monitor_def *mdef =3D filp->private_data; + struct rv_monitor_def *mdef =3D iocb->ki_filp->private_data; char buff[256]; =20 memset(buff, 0, sizeof(buff)); =20 snprintf(buff, sizeof(buff), "%s\n", mdef->monitor->description); =20 - return simple_read_from_buffer(user_buf, count, ppos, buff, strlen(buff) = + 1); + return simple_copy_to_iter(buff, &iocb->ki_pos, strlen(buff) + 1, to); } =20 static const struct file_operations interface_desc_fops =3D { .open =3D simple_open, .llseek =3D no_llseek, - .read =3D monitor_desc_read_data, + .read_iter =3D monitor_desc_read_data, }; =20 /* @@ -469,7 +468,7 @@ static int available_monitors_open(struct inode *inode,= struct file *file) =20 static const struct file_operations available_monitors_ops =3D { .open =3D available_monitors_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D seq_release }; @@ -507,10 +506,10 @@ static int enabled_monitors_open(struct inode *inode,= struct file *file) return seq_open(file, &enabled_monitors_seq_ops); }; =20 -static ssize_t enabled_monitors_write(struct file *filp, const char __user= *user_buf, - size_t count, loff_t *ppos) +static ssize_t enabled_monitors_write(struct kiocb *iocb, struct iov_iter = *from) { char buff[MAX_RV_MONITOR_NAME_SIZE + 2]; + size_t count =3D iov_iter_count(from); struct rv_monitor_def *mdef; int retval =3D -EINVAL; bool enable =3D true; @@ -522,7 +521,8 @@ static ssize_t enabled_monitors_write(struct file *filp= , const char __user *user =20 memset(buff, 0, sizeof(buff)); =20 - retval =3D simple_write_to_buffer(buff, sizeof(buff) - 1, ppos, user_buf,= count); + retval =3D simple_copy_from_iter(buff, &iocb->ki_pos, sizeof(buff) - 1, + from); if (retval < 0) return -EFAULT; =20 @@ -565,8 +565,8 @@ static ssize_t enabled_monitors_write(struct file *filp= , const char __user *user =20 static const struct file_operations enabled_monitors_ops =3D { .open =3D enabled_monitors_open, - .read =3D seq_read, - .write =3D enabled_monitors_write, + .read_iter =3D seq_read_iter, + .write_iter =3D enabled_monitors_write, .llseek =3D seq_lseek, .release =3D seq_release, }; @@ -591,14 +591,13 @@ bool rv_monitoring_on(void) /* * monitoring_on general switcher. */ -static ssize_t monitoring_on_read_data(struct file *filp, char __user *use= r_buf, - size_t count, loff_t *ppos) +static ssize_t monitoring_on_read_data(struct kiocb *iocb, struct iov_iter= *to) { const char *buff; =20 buff =3D rv_monitoring_on() ? "1\n" : "0\n"; =20 - return simple_read_from_buffer(user_buf, count, ppos, buff, strlen(buff) = + 1); + return simple_copy_to_iter(buff, &iocb->ki_pos, strlen(buff) + 1, to); } =20 static void turn_monitoring_off(void) @@ -642,13 +641,14 @@ static void turn_monitoring_on_with_reset(void) turn_monitoring_on(); } =20 -static ssize_t monitoring_on_write_data(struct file *filp, const char __us= er *user_buf, - size_t count, loff_t *ppos) +static ssize_t monitoring_on_write_data(struct kiocb *iocb, + struct iov_iter *from) { + size_t count =3D iov_iter_count(from); int retval; bool val; =20 - retval =3D kstrtobool_from_user(user_buf, count, &val); + retval =3D kstrtobool_from_iter(from, count, &val); if (retval) return retval; =20 @@ -673,8 +673,8 @@ static ssize_t monitoring_on_write_data(struct file *fi= lp, const char __user *us static const struct file_operations monitoring_on_fops =3D { .open =3D simple_open, .llseek =3D no_llseek, - .write =3D monitoring_on_write_data, - .read =3D monitoring_on_read_data, + .write_iter =3D monitoring_on_write_data, + .read_iter =3D monitoring_on_read_data, }; =20 static void destroy_monitor_dir(struct rv_monitor_def *mdef) diff --git a/kernel/trace/rv/rv_reactors.c b/kernel/trace/rv/rv_reactors.c index 6aae106695b6..0649acd03726 100644 --- a/kernel/trace/rv/rv_reactors.c +++ b/kernel/trace/rv/rv_reactors.c @@ -128,7 +128,7 @@ static int available_reactors_open(struct inode *inode,= struct file *file) =20 static const struct file_operations available_reactors_ops =3D { .open =3D available_reactors_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D seq_release }; @@ -183,11 +183,10 @@ static void monitor_swap_reactors(struct rv_monitor_d= ef *mdef, struct rv_reactor rv_enable_monitor(mdef); } =20 -static ssize_t -monitor_reactors_write(struct file *file, const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t monitor_reactors_write(struct kiocb *iocb, struct iov_iter = *from) { char buff[MAX_RV_REACTOR_NAME_SIZE + 2]; + size_t count =3D iov_iter_count(from); struct rv_monitor_def *mdef; struct rv_reactor_def *rdef; struct seq_file *seq_f; @@ -201,7 +200,8 @@ monitor_reactors_write(struct file *file, const char __= user *user_buf, =20 memset(buff, 0, sizeof(buff)); =20 - retval =3D simple_write_to_buffer(buff, sizeof(buff) - 1, ppos, user_buf,= count); + retval =3D simple_copy_from_iter(buff, &iocb->ki_pos, sizeof(buff) - 1, + from); if (retval < 0) return -EFAULT; =20 @@ -214,7 +214,7 @@ monitor_reactors_write(struct file *file, const char __= user *user_buf, /* * See monitor_reactors_open() */ - seq_f =3D file->private_data; + seq_f =3D iocb->ki_filp->private_data; mdef =3D seq_f->private; =20 mutex_lock(&rv_interface_lock); @@ -269,10 +269,10 @@ static int monitor_reactors_open(struct inode *inode,= struct file *file) =20 static const struct file_operations monitor_reactors_ops =3D { .open =3D monitor_reactors_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D seq_release, - .write =3D monitor_reactors_write + .write_iter =3D monitor_reactors_write }; =20 static int __rv_register_reactor(struct rv_reactor *reactor) @@ -371,15 +371,13 @@ bool rv_reacting_on(void) return READ_ONCE(reacting_on); } =20 -static ssize_t reacting_on_read_data(struct file *filp, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t reacting_on_read_data(struct kiocb *iocb, struct iov_iter *= to) { char *buff; =20 buff =3D rv_reacting_on() ? "1\n" : "0\n"; =20 - return simple_read_from_buffer(user_buf, count, ppos, buff, strlen(buff)+= 1); + return simple_copy_to_iter(buff, &iocb->ki_pos, strlen(buff)+1, to); } =20 static void turn_reacting_off(void) @@ -396,13 +394,13 @@ static void turn_reacting_on(void) smp_wmb(); } =20 -static ssize_t reacting_on_write_data(struct file *filp, const char __user= *user_buf, - size_t count, loff_t *ppos) +static ssize_t reacting_on_write_data(struct kiocb *iocb, struct iov_iter = *from) { + size_t count =3D iov_iter_count(from); int retval; bool val; =20 - retval =3D kstrtobool_from_user(user_buf, count, &val); + retval =3D kstrtobool_from_iter(from, count, &val); if (retval) return retval; =20 @@ -427,8 +425,8 @@ static ssize_t reacting_on_write_data(struct file *filp= , const char __user *user static const struct file_operations reacting_on_fops =3D { .open =3D simple_open, .llseek =3D no_llseek, - .write =3D reacting_on_write_data, - .read =3D reacting_on_read_data, + .write_iter =3D reacting_on_write_data, + .read_iter =3D reacting_on_read_data, }; =20 /** --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-il1-f172.google.com (mail-il1-f172.google.com [209.85.166.172]) (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 A7F3E132493 for ; Thu, 11 Apr 2024 15:34:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.172 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849644; cv=none; b=p4fY/g6xQGoNcZ5z84MjSd3SlAg32a8I9zmdjFejE/pYmzlRazcJCn17ioMGuBFhaaFaR4McHnKQPJGZLXSFUVJ4c/IsP7fzwqhBd+LM3lg4gEUnIpWvpeRKdBilaoT2LdYvgsMFVvmuJrgxnrDumy8BAvbaY1N/weFnEpF5LsA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849644; c=relaxed/simple; bh=tTl9JicU9qQjpuuZhE3mdeairZEkh5tZB8cSfmaNHxM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=HggtLfno9ePsPvBCMF8bldTyl5y7ceiI6+B0M04LOO469W9D7G8k9ruHGCXp7hcBEi/hL+eUed/azv08VTMHiz8xaFzo/UHRdCqYV45FTE2wVtfXhCx46TQd9qayvSicoJTFOpBLig7KUTHf4yR5J3XjqO3NDj1e1KQktpEOUok= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=AvIMyT+R; arc=none smtp.client-ip=209.85.166.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="AvIMyT+R" Received: by mail-il1-f172.google.com with SMTP id e9e14a558f8ab-36a224d7414so178745ab.1 for ; Thu, 11 Apr 2024 08:34:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849639; x=1713454439; 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=ZZbq7P9YraOmrevJ7TTs3QHfJV+Xj0h81a6eZ8qrRgA=; b=AvIMyT+RmZ1nOi67UZq3vQTxZ+DdMc6r1kGkLFS4DXLn5TYfMIoHJG/sMmHrUOUkHR iNfl1HaPpAasnU/wTgGygbzQkfhfCQlYg93HYqdc5Eua89Pvj+uiE4pfSYwA3WdNQqy/ PqbvifOvKqpEd0DlqFiqXVqJccZz4KTftwf1mHxGeVhTdteefjo7wjiLCqKPkOtfwns7 cbym2q8lpZvV/MxYUID76tQMmfnFVqpL/u+bo8xHsZPZa1Mpf1aOhF66t8neFRT8yvcu qnShcbn8YsfATemEmuRAcu0by3VL8dlUUNMLU+PGdtLM4aVCho/rgzSg1ZRbMhHoc/Mv AbIg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849639; x=1713454439; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ZZbq7P9YraOmrevJ7TTs3QHfJV+Xj0h81a6eZ8qrRgA=; b=E2N2hrh+sWtWQyqWnDfQbmyCk3/yxU5IHNZyWKSmK4YGaHkKF9YHtOOnC9GSpQci1+ 1epIKiC8BlMFRzoIjvZ30f/LbpROZG2q0ci/kAh/PxSGhRo/4kQ3Hl5EQj9TUD4cU9F5 zNKCd+Dwf4FMOO6F6z/e6uzUr4nS6s/F9addZ9Pmmfz+EY1Jd3dm8Wnq21zyPe673352 B/EOED2eKkOnwY1GUAPrsiHJSkgqJC49A+zTID9NBrM7QVoreIuSNKMs0/Q6iUg7OU5n P56/l4BofqFSfX0qlV8iMrkLGPhSyhFejU56kCZKUerprdcO6OrvTpHDQfma8Lkvedgx JXLA== X-Gm-Message-State: AOJu0Yze6elpEsZVYyLCj3lYOqlBUISIKRBPbngiMKuCj9YKqP8vJMMd 55PVm03c62cntUiV5yrbYraYQptlQbSnw6EJXRitEBI27CoL4+9y69q0xD3XLrFL1BN+LBM2/oX L X-Google-Smtp-Source: AGHT+IGRsrnq4EyfV7abmJtDvS0t9j4G6I3OTelz9m2I1gucUtm3UtK3GRyYy59q0OCOKV+1iZjKyA== X-Received: by 2002:a6b:6605:0:b0:7d4:1dae:da1a with SMTP id a5-20020a6b6605000000b007d41daeda1amr143702ioc.2.1712849638504; Thu, 11 Apr 2024 08:33:58 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.33.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:33:57 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 080/437] tracing: convert to read/write iterators Date: Thu, 11 Apr 2024 09:13:40 -0600 Message-ID: <20240411153126.16201-81-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- include/linux/ftrace.h | 11 +- kernel/trace/blktrace.c | 19 +- kernel/trace/ftrace.c | 68 +++-- kernel/trace/trace.c | 386 ++++++++++++-------------- kernel/trace/trace_dynevent.c | 5 +- kernel/trace/trace_events.c | 116 ++++---- kernel/trace/trace_events_hist.c | 4 +- kernel/trace/trace_events_inject.c | 19 +- kernel/trace/trace_events_synth.c | 5 +- kernel/trace/trace_events_trigger.c | 22 +- kernel/trace/trace_events_user.c | 17 +- kernel/trace/trace_functions_graph.c | 20 +- kernel/trace/trace_hwlat.c | 20 +- kernel/trace/trace_kprobe.c | 7 +- kernel/trace/trace_osnoise.c | 42 ++- kernel/trace/trace_printk.c | 2 +- kernel/trace/trace_recursion_record.c | 10 +- kernel/trace/trace_sched_switch.c | 21 +- kernel/trace/trace_stack.c | 27 +- kernel/trace/trace_stat.c | 2 +- kernel/trace/trace_uprobe.c | 7 +- 21 files changed, 378 insertions(+), 452 deletions(-) diff --git a/include/linux/ftrace.h b/include/linux/ftrace.h index 54d53f345d14..468db649094b 100644 --- a/include/linux/ftrace.h +++ b/include/linux/ftrace.h @@ -674,10 +674,8 @@ extern ftrace_func_t ftrace_trace_function; =20 int ftrace_regex_open(struct ftrace_ops *ops, int flag, struct inode *inode, struct file *file); -ssize_t ftrace_filter_write(struct file *file, const char __user *ubuf, - size_t cnt, loff_t *ppos); -ssize_t ftrace_notrace_write(struct file *file, const char __user *ubuf, - size_t cnt, loff_t *ppos); +ssize_t ftrace_filter_write_iter(struct kiocb *iocb, struct iov_iter *from= ); +ssize_t ftrace_notrace_write_iter(struct kiocb *iocb, struct iov_iter *fro= m); int ftrace_regex_release(struct inode *inode, struct file *file); =20 void __init @@ -890,8 +888,9 @@ static inline unsigned long ftrace_location(unsigned lo= ng ip) #define ftrace_free_filter(ops) do { } while (0) #define ftrace_ops_set_global_filter(ops) do { } while (0) =20 -static inline ssize_t ftrace_filter_write(struct file *file, const char __= user *ubuf, - size_t cnt, loff_t *ppos) { return -ENODEV; } +static inline ssize_t ftrace_filter_write_iter(struct kiocb *iocb, + struct iov_iter *from) +{ return -ENODEV; } static inline ssize_t ftrace_notrace_write(struct file *file, const char _= _user *ubuf, size_t cnt, loff_t *ppos) { return -ENODEV; } static inline int diff --git a/kernel/trace/blktrace.c b/kernel/trace/blktrace.c index d5d94510afd3..737551849daf 100644 --- a/kernel/trace/blktrace.c +++ b/kernel/trace/blktrace.c @@ -411,38 +411,37 @@ int blk_trace_remove(struct request_queue *q) } EXPORT_SYMBOL_GPL(blk_trace_remove); =20 -static ssize_t blk_dropped_read(struct file *filp, char __user *buffer, - size_t count, loff_t *ppos) +static ssize_t blk_dropped_read(struct kiocb *iocb, struct iov_iter *to) { - struct blk_trace *bt =3D filp->private_data; + struct blk_trace *bt =3D iocb->ki_filp->private_data; char buf[16]; =20 snprintf(buf, sizeof(buf), "%u\n", atomic_read(&bt->dropped)); =20 - return simple_read_from_buffer(buffer, count, ppos, buf, strlen(buf)); + return simple_copy_to_iter(buf, &iocb->ki_pos, strlen(buf), to); } =20 static const struct file_operations blk_dropped_fops =3D { .owner =3D THIS_MODULE, .open =3D simple_open, - .read =3D blk_dropped_read, + .read_iter =3D blk_dropped_read, .llseek =3D default_llseek, }; =20 -static ssize_t blk_msg_write(struct file *filp, const char __user *buffer, - size_t count, loff_t *ppos) +static ssize_t blk_msg_write(struct kiocb *iocb, struct iov_iter *from) { + size_t count =3D iov_iter_count(from); char *msg; struct blk_trace *bt; =20 if (count >=3D BLK_TN_MAX_MSG) return -EINVAL; =20 - msg =3D memdup_user_nul(buffer, count); + msg =3D iterdup_nul(from, count); if (IS_ERR(msg)) return PTR_ERR(msg); =20 - bt =3D filp->private_data; + bt =3D iocb->ki_filp->private_data; __blk_trace_note_message(bt, NULL, "%s", msg); kfree(msg); =20 @@ -452,7 +451,7 @@ static ssize_t blk_msg_write(struct file *filp, const c= har __user *buffer, static const struct file_operations blk_msg_fops =3D { .owner =3D THIS_MODULE, .open =3D simple_open, - .write =3D blk_msg_write, + .write_iter =3D blk_msg_write, .llseek =3D noop_llseek, }; =20 diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c index da1710499698..fa9b0bcc7cb1 100644 --- a/kernel/trace/ftrace.c +++ b/kernel/trace/ftrace.c @@ -909,14 +909,13 @@ static void unregister_ftrace_profiler(void) } #endif /* CONFIG_FUNCTION_GRAPH_TRACER */ =20 -static ssize_t -ftrace_profile_write(struct file *filp, const char __user *ubuf, - size_t cnt, loff_t *ppos) +static ssize_t ftrace_profile_write(struct kiocb *iocb, struct iov_iter *f= rom) { + size_t cnt =3D iov_iter_count(from); unsigned long val; int ret; =20 - ret =3D kstrtoul_from_user(ubuf, cnt, 10, &val); + ret =3D kstrtoul_from_iter(from, cnt, 10, &val); if (ret) return ret; =20 @@ -949,26 +948,24 @@ ftrace_profile_write(struct file *filp, const char __= user *ubuf, out: mutex_unlock(&ftrace_profile_lock); =20 - *ppos +=3D cnt; + iocb->ki_pos +=3D cnt; =20 return cnt; } =20 -static ssize_t -ftrace_profile_read(struct file *filp, char __user *ubuf, - size_t cnt, loff_t *ppos) +static ssize_t ftrace_profile_read(struct kiocb *iocb, struct iov_iter *to) { char buf[64]; /* big enough to hold a number */ int r; =20 r =3D sprintf(buf, "%u\n", ftrace_profile_enabled); - return simple_read_from_buffer(ubuf, cnt, ppos, buf, r); + return simple_copy_to_iter(buf, &iocb->ki_pos, r, to); } =20 static const struct file_operations ftrace_profile_fops =3D { .open =3D tracing_open_generic, - .read =3D ftrace_profile_read, - .write =3D ftrace_profile_write, + .read_iter =3D ftrace_profile_read, + .write_iter =3D ftrace_profile_write, .llseek =3D default_llseek, }; =20 @@ -5204,20 +5201,30 @@ ftrace_regex_write(struct file *file, const char __= user *ubuf, return ret; } =20 -ssize_t +static ssize_t ftrace_filter_write(struct file *file, const char __user *ubuf, size_t cnt, loff_t *ppos) { return ftrace_regex_write(file, ubuf, cnt, ppos, 1); } =20 -ssize_t +ssize_t ftrace_filter_write_iter(struct kiocb *iocb, struct iov_iter *from) +{ + return vfs_write_iter(iocb, from, ftrace_filter_write); +} + +static ssize_t ftrace_notrace_write(struct file *file, const char __user *ubuf, size_t cnt, loff_t *ppos) { return ftrace_regex_write(file, ubuf, cnt, ppos, 0); } =20 +ssize_t ftrace_notrace_write_iter(struct kiocb *iocb, struct iov_iter *fro= m) +{ + return vfs_write_iter(iocb, from, ftrace_notrace_write); +} + static int __ftrace_match_addr(struct ftrace_hash *hash, unsigned long ip, int remove) { @@ -5937,44 +5944,44 @@ int ftrace_regex_release(struct inode *inode, struc= t file *file) =20 static const struct file_operations ftrace_avail_fops =3D { .open =3D ftrace_avail_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D seq_release_private, }; =20 static const struct file_operations ftrace_enabled_fops =3D { .open =3D ftrace_enabled_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D seq_release_private, }; =20 static const struct file_operations ftrace_touched_fops =3D { .open =3D ftrace_touched_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D seq_release_private, }; =20 static const struct file_operations ftrace_avail_addrs_fops =3D { .open =3D ftrace_avail_addrs_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D seq_release_private, }; =20 static const struct file_operations ftrace_filter_fops =3D { .open =3D ftrace_filter_open, - .read =3D seq_read, - .write =3D ftrace_filter_write, + .read_iter =3D seq_read_iter, + .write_iter =3D ftrace_filter_write_iter, .llseek =3D tracing_lseek, .release =3D ftrace_regex_release, }; =20 static const struct file_operations ftrace_notrace_fops =3D { .open =3D ftrace_notrace_open, - .read =3D seq_read, - .write =3D ftrace_notrace_write, + .read_iter =3D seq_read_iter, + .write_iter =3D ftrace_notrace_write_iter, .llseek =3D tracing_lseek, .release =3D ftrace_regex_release, }; @@ -6369,19 +6376,20 @@ ftrace_graph_write(struct file *file, const char __= user *ubuf, =20 return ret; } +FOPS_WRITE_ITER_HELPER(ftrace_graph_write); =20 static const struct file_operations ftrace_graph_fops =3D { .open =3D ftrace_graph_open, - .read =3D seq_read, - .write =3D ftrace_graph_write, + .read_iter =3D seq_read_iter, + .write_iter =3D ftrace_graph_write_iter, .llseek =3D tracing_lseek, .release =3D ftrace_graph_release, }; =20 static const struct file_operations ftrace_graph_notrace_fops =3D { .open =3D ftrace_graph_notrace_open, - .read =3D seq_read, - .write =3D ftrace_graph_write, + .read_iter =3D seq_read_iter, + .write_iter =3D ftrace_graph_write_iter, .llseek =3D tracing_lseek, .release =3D ftrace_graph_release, }; @@ -7831,6 +7839,7 @@ ftrace_pid_write(struct file *filp, const char __user= *ubuf, { return pid_write(filp, ubuf, cnt, ppos, TRACE_PIDS); } +FOPS_WRITE_ITER_HELPER(ftrace_pid_write); =20 static ssize_t ftrace_no_pid_write(struct file *filp, const char __user *ubuf, @@ -7838,6 +7847,7 @@ ftrace_no_pid_write(struct file *filp, const char __u= ser *ubuf, { return pid_write(filp, ubuf, cnt, ppos, TRACE_NO_PIDS); } +FOPS_WRITE_ITER_HELPER(ftrace_no_pid_write); =20 static int ftrace_pid_release(struct inode *inode, struct file *file) @@ -7851,16 +7861,16 @@ ftrace_pid_release(struct inode *inode, struct file= *file) =20 static const struct file_operations ftrace_pid_fops =3D { .open =3D ftrace_pid_open, - .write =3D ftrace_pid_write, - .read =3D seq_read, + .write_iter =3D ftrace_pid_write_iter, + .read_iter =3D seq_read_iter, .llseek =3D tracing_lseek, .release =3D ftrace_pid_release, }; =20 static const struct file_operations ftrace_no_pid_fops =3D { .open =3D ftrace_no_pid_open, - .write =3D ftrace_no_pid_write, - .read =3D seq_read, + .write_iter =3D ftrace_no_pid_write_iter, + .read_iter =3D seq_read_iter, .llseek =3D tracing_lseek, .release =3D ftrace_pid_release, }; diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c index 233d1af39fff..317aa6a5944f 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c @@ -5015,11 +5015,9 @@ static int show_traces_release(struct inode *inode, = struct file *file) return seq_release(inode, file); } =20 -static ssize_t -tracing_write_stub(struct file *filp, const char __user *ubuf, - size_t count, loff_t *ppos) +static ssize_t tracing_write_stub(struct kiocb *iocb, struct iov_iter *to) { - return count; + return iov_iter_count(to); } =20 loff_t tracing_lseek(struct file *file, loff_t offset, int whence) @@ -5036,26 +5034,24 @@ loff_t tracing_lseek(struct file *file, loff_t offs= et, int whence) =20 static const struct file_operations tracing_fops =3D { .open =3D tracing_open, - .read =3D seq_read, .read_iter =3D seq_read_iter, .splice_read =3D copy_splice_read, - .write =3D tracing_write_stub, + .write_iter =3D tracing_write_stub, .llseek =3D tracing_lseek, .release =3D tracing_release, }; =20 static const struct file_operations show_traces_fops =3D { .open =3D show_traces_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D show_traces_release, }; =20 -static ssize_t -tracing_cpumask_read(struct file *filp, char __user *ubuf, - size_t count, loff_t *ppos) +static ssize_t tracing_cpumask_read(struct kiocb *iocb, struct iov_iter *t= o) { - struct trace_array *tr =3D file_inode(filp)->i_private; + struct trace_array *tr =3D file_inode(iocb->ki_filp)->i_private; + size_t count =3D iov_iter_count(to); char *mask_str; int len; =20 @@ -5071,7 +5067,7 @@ tracing_cpumask_read(struct file *filp, char __user *= ubuf, count =3D -EINVAL; goto out_err; } - count =3D simple_read_from_buffer(ubuf, count, ppos, mask_str, len); + count =3D simple_copy_to_iter(mask_str, &iocb->ki_pos, len, to); =20 out_err: kfree(mask_str); @@ -5147,11 +5143,12 @@ tracing_cpumask_write(struct file *filp, const char= __user *ubuf, =20 return err; } +FOPS_WRITE_ITER_HELPER(tracing_cpumask_write); =20 static const struct file_operations tracing_cpumask_fops =3D { .open =3D tracing_open_generic_tr, - .read =3D tracing_cpumask_read, - .write =3D tracing_cpumask_write, + .read_iter =3D tracing_cpumask_read, + .write_iter =3D tracing_cpumask_write_iter, .release =3D tracing_release_generic_tr, .llseek =3D generic_file_llseek, }; @@ -5343,19 +5340,19 @@ static void __init apply_trace_boot_options(void) } } =20 -static ssize_t -tracing_trace_options_write(struct file *filp, const char __user *ubuf, - size_t cnt, loff_t *ppos) +static ssize_t tracing_trace_options_write(struct kiocb *iocb, + struct iov_iter *from) { - struct seq_file *m =3D filp->private_data; + struct seq_file *m =3D iocb->ki_filp->private_data; struct trace_array *tr =3D m->private; + size_t cnt =3D iov_iter_count(from); char buf[64]; int ret; =20 if (cnt >=3D sizeof(buf)) return -EINVAL; =20 - if (copy_from_user(buf, ubuf, cnt)) + if (!copy_from_iter_full(buf, cnt, from)) return -EFAULT; =20 buf[cnt] =3D 0; @@ -5364,7 +5361,7 @@ tracing_trace_options_write(struct file *filp, const = char __user *ubuf, if (ret < 0) return ret; =20 - *ppos +=3D cnt; + iocb->ki_pos +=3D cnt; =20 return cnt; } @@ -5387,10 +5384,10 @@ static int tracing_trace_options_open(struct inode = *inode, struct file *file) =20 static const struct file_operations tracing_iter_fops =3D { .open =3D tracing_trace_options_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D tracing_single_release_tr, - .write =3D tracing_trace_options_write, + .write_iter =3D tracing_trace_options_write, }; =20 static const char readme_msg[] =3D @@ -5685,17 +5682,15 @@ static const char readme_msg[] =3D #endif ; =20 -static ssize_t -tracing_readme_read(struct file *filp, char __user *ubuf, - size_t cnt, loff_t *ppos) +static ssize_t tracing_readme_read(struct kiocb *iocb, struct iov_iter *to) { - return simple_read_from_buffer(ubuf, cnt, ppos, - readme_msg, strlen(readme_msg)); + return simple_copy_to_iter(readme_msg, &iocb->ki_pos, + strlen(readme_msg), to); } =20 static const struct file_operations tracing_readme_fops =3D { .open =3D tracing_open_generic, - .read =3D tracing_readme_read, + .read_iter =3D tracing_readme_read, .llseek =3D generic_file_llseek, }; =20 @@ -5787,7 +5782,7 @@ static int tracing_eval_map_open(struct inode *inode,= struct file *filp) =20 static const struct file_operations tracing_eval_map_fops =3D { .open =3D tracing_eval_map_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D seq_release, }; @@ -5876,11 +5871,9 @@ static void trace_insert_eval_map(struct module *mod, trace_insert_eval_map_file(mod, start, len); } =20 -static ssize_t -tracing_set_trace_read(struct file *filp, char __user *ubuf, - size_t cnt, loff_t *ppos) +static ssize_t tracing_set_trace_read(struct kiocb *iocb, struct iov_iter = *from) { - struct trace_array *tr =3D filp->private_data; + struct trace_array *tr =3D iocb->ki_filp->private_data; char buf[MAX_TRACER_SIZE+2]; int r; =20 @@ -5888,7 +5881,7 @@ tracing_set_trace_read(struct file *filp, char __user= *ubuf, r =3D sprintf(buf, "%s\n", tr->current_trace->name); mutex_unlock(&trace_types_lock); =20 - return simple_read_from_buffer(ubuf, cnt, ppos, buf, r); + return simple_copy_from_iter(buf, &iocb->ki_pos, r, from); } =20 int tracer_init(struct tracer *t, struct trace_array *tr) @@ -6207,11 +6200,11 @@ int tracing_set_tracer(struct trace_array *tr, cons= t char *buf) return ret; } =20 -static ssize_t -tracing_set_trace_write(struct file *filp, const char __user *ubuf, - size_t cnt, loff_t *ppos) +static ssize_t tracing_set_trace_write(struct kiocb *iocb, + struct iov_iter *from) { - struct trace_array *tr =3D filp->private_data; + struct trace_array *tr =3D iocb->ki_filp->private_data; + size_t cnt =3D iov_iter_count(from); char buf[MAX_TRACER_SIZE+1]; char *name; size_t ret; @@ -6222,7 +6215,7 @@ tracing_set_trace_write(struct file *filp, const char= __user *ubuf, if (cnt > MAX_TRACER_SIZE) cnt =3D MAX_TRACER_SIZE; =20 - if (copy_from_user(buf, ubuf, cnt)) + if (!copy_from_iter_full(buf, cnt, from)) return -EFAULT; =20 buf[cnt] =3D 0; @@ -6233,14 +6226,13 @@ tracing_set_trace_write(struct file *filp, const ch= ar __user *ubuf, if (err) return err; =20 - *ppos +=3D ret; + iocb->ki_pos +=3D ret; =20 return ret; } =20 static ssize_t -tracing_nsecs_read(unsigned long *ptr, char __user *ubuf, - size_t cnt, loff_t *ppos) +tracing_nsecs_read(unsigned long *ptr, struct kiocb *iocb, struct iov_iter= *to) { char buf[64]; int r; @@ -6249,17 +6241,18 @@ tracing_nsecs_read(unsigned long *ptr, char __user = *ubuf, *ptr =3D=3D (unsigned long)-1 ? -1 : nsecs_to_usecs(*ptr)); if (r > sizeof(buf)) r =3D sizeof(buf); - return simple_read_from_buffer(ubuf, cnt, ppos, buf, r); + return simple_copy_to_iter(buf, &iocb->ki_pos, r, to); } =20 static ssize_t -tracing_nsecs_write(unsigned long *ptr, const char __user *ubuf, - size_t cnt, loff_t *ppos) +tracing_nsecs_write(unsigned long *ptr, struct kiocb *iocb, + struct iov_iter *from) { + size_t cnt =3D iov_iter_count(from); unsigned long val; int ret; =20 - ret =3D kstrtoul_from_user(ubuf, cnt, 10, &val); + ret =3D kstrtoul_from_iter(from, cnt, 10, &val); if (ret) return ret; =20 @@ -6268,22 +6261,19 @@ tracing_nsecs_write(unsigned long *ptr, const char = __user *ubuf, return cnt; } =20 -static ssize_t -tracing_thresh_read(struct file *filp, char __user *ubuf, - size_t cnt, loff_t *ppos) +static ssize_t tracing_thresh_read(struct kiocb *iocb, struct iov_iter *to) { - return tracing_nsecs_read(&tracing_thresh, ubuf, cnt, ppos); + return tracing_nsecs_read(&tracing_thresh, iocb, to); } =20 -static ssize_t -tracing_thresh_write(struct file *filp, const char __user *ubuf, - size_t cnt, loff_t *ppos) +static ssize_t tracing_thresh_write(struct kiocb *iocb, struct iov_iter *f= rom) { - struct trace_array *tr =3D filp->private_data; + struct trace_array *tr =3D iocb->ki_filp->private_data; + size_t cnt =3D iov_iter_count(from); int ret; =20 mutex_lock(&trace_types_lock); - ret =3D tracing_nsecs_write(&tracing_thresh, ubuf, cnt, ppos); + ret =3D tracing_nsecs_write(&tracing_thresh, iocb, from); if (ret < 0) goto out; =20 @@ -6302,22 +6292,18 @@ tracing_thresh_write(struct file *filp, const char = __user *ubuf, =20 #ifdef CONFIG_TRACER_MAX_TRACE =20 -static ssize_t -tracing_max_lat_read(struct file *filp, char __user *ubuf, - size_t cnt, loff_t *ppos) +static ssize_t tracing_max_lat_read(struct kiocb *iocb, struct iov_iter *t= o) { - struct trace_array *tr =3D filp->private_data; + struct trace_array *tr =3D iocb->ki_filp->private_data; =20 - return tracing_nsecs_read(&tr->max_latency, ubuf, cnt, ppos); + return tracing_nsecs_read(&tr->max_latency, iocb, to); } =20 -static ssize_t -tracing_max_lat_write(struct file *filp, const char __user *ubuf, - size_t cnt, loff_t *ppos) +static ssize_t tracing_max_lat_write(struct kiocb *iocb, struct iov_iter *= from) { - struct trace_array *tr =3D filp->private_data; + struct trace_array *tr =3D iocb->ki_filp->private_data; =20 - return tracing_nsecs_write(&tr->max_latency, ubuf, cnt, ppos); + return tracing_nsecs_write(&tr->max_latency, iocb, from); } =20 #endif @@ -6609,6 +6595,7 @@ tracing_read_pipe(struct file *filp, char __user *ubu= f, =20 return sret; } +FOPS_READ_ITER_HELPER(tracing_read_pipe); =20 static void tracing_spd_release_pipe(struct splice_pipe_desc *spd, unsigned int idx) @@ -6749,16 +6736,13 @@ static ssize_t tracing_splice_read_pipe(struct file= *filp, goto out; } =20 -static ssize_t -tracing_entries_read(struct file *filp, char __user *ubuf, - size_t cnt, loff_t *ppos) +static ssize_t tracing_entries_read(struct kiocb *iocb, struct iov_iter *t= o) { - struct inode *inode =3D file_inode(filp); + struct inode *inode =3D file_inode(iocb->ki_filp); struct trace_array *tr =3D inode->i_private; int cpu =3D tracing_get_cpu(inode); char buf[64]; int r =3D 0; - ssize_t ret; =20 mutex_lock(&trace_types_lock); =20 @@ -6792,21 +6776,18 @@ tracing_entries_read(struct file *filp, char __user= *ubuf, r =3D sprintf(buf, "%lu\n", per_cpu_ptr(tr->array_buffer.data, cpu)->ent= ries >> 10); =20 mutex_unlock(&trace_types_lock); - - ret =3D simple_read_from_buffer(ubuf, cnt, ppos, buf, r); - return ret; + return simple_copy_to_iter(buf, &iocb->ki_pos, r, to); } =20 -static ssize_t -tracing_entries_write(struct file *filp, const char __user *ubuf, - size_t cnt, loff_t *ppos) +static ssize_t tracing_entries_write(struct kiocb *iocb, struct iov_iter *= from) { - struct inode *inode =3D file_inode(filp); + struct inode *inode =3D file_inode(iocb->ki_filp); struct trace_array *tr =3D inode->i_private; + size_t cnt =3D iov_iter_count(from); unsigned long val; int ret; =20 - ret =3D kstrtoul_from_user(ubuf, cnt, 10, &val); + ret =3D kstrtoul_from_iter(from, cnt, 10, &val); if (ret) return ret; =20 @@ -6820,16 +6801,15 @@ tracing_entries_write(struct file *filp, const char= __user *ubuf, if (ret < 0) return ret; =20 - *ppos +=3D cnt; + iocb->ki_pos +=3D cnt; =20 return cnt; } =20 static ssize_t -tracing_total_entries_read(struct file *filp, char __user *ubuf, - size_t cnt, loff_t *ppos) +tracing_total_entries_read(struct kiocb *iocb, struct iov_iter *to) { - struct trace_array *tr =3D filp->private_data; + struct trace_array *tr =3D iocb->ki_filp->private_data; char buf[64]; int r, cpu; unsigned long size =3D 0, expanded_size =3D 0; @@ -6846,19 +6826,20 @@ tracing_total_entries_read(struct file *filp, char = __user *ubuf, r =3D sprintf(buf, "%lu (expanded: %lu)\n", size, expanded_size); mutex_unlock(&trace_types_lock); =20 - return simple_read_from_buffer(ubuf, cnt, ppos, buf, r); + return simple_copy_to_iter(buf, &iocb->ki_pos, r, to); } =20 static ssize_t -tracing_free_buffer_write(struct file *filp, const char __user *ubuf, - size_t cnt, loff_t *ppos) +tracing_free_buffer_write(struct kiocb *iocb, struct iov_iter *from) { + size_t cnt =3D iov_iter_count(from); + /* * There is no need to read what the user has written, this function * is just to make sure that there is no error when "echo" is used */ =20 - *ppos +=3D cnt; + iocb->ki_pos +=3D cnt; =20 return cnt; } @@ -6974,6 +6955,7 @@ tracing_mark_write(struct file *filp, const char __us= er *ubuf, =20 return written; } +FOPS_WRITE_ITER_HELPER(tracing_mark_write); =20 static ssize_t tracing_mark_raw_write(struct file *filp, const char __user *ubuf, @@ -7028,6 +7010,7 @@ tracing_mark_raw_write(struct file *filp, const char = __user *ubuf, =20 return written; } +FOPS_WRITE_ITER_HELPER(tracing_mark_raw_write); =20 static int tracing_clock_show(struct seq_file *m, void *v) { @@ -7078,11 +7061,11 @@ int tracing_set_clock(struct trace_array *tr, const= char *clockstr) return 0; } =20 -static ssize_t tracing_clock_write(struct file *filp, const char __user *u= buf, - size_t cnt, loff_t *fpos) +static ssize_t tracing_clock_write(struct kiocb *iocb, struct iov_iter *fr= om) { - struct seq_file *m =3D filp->private_data; + struct seq_file *m =3D iocb->ki_filp->private_data; struct trace_array *tr =3D m->private; + size_t cnt =3D iov_iter_count(from); char buf[64]; const char *clockstr; int ret; @@ -7090,7 +7073,7 @@ static ssize_t tracing_clock_write(struct file *filp,= const char __user *ubuf, if (cnt >=3D sizeof(buf)) return -EINVAL; =20 - if (copy_from_user(buf, ubuf, cnt)) + if (!copy_from_iter(buf, cnt, from)) return -EFAULT; =20 buf[cnt] =3D 0; @@ -7101,7 +7084,7 @@ static ssize_t tracing_clock_write(struct file *filp,= const char __user *ubuf, if (ret) return ret; =20 - *fpos +=3D cnt; + iocb->ki_pos +=3D cnt; =20 return cnt; } @@ -7331,6 +7314,7 @@ tracing_snapshot_write(struct file *filp, const char = __user *ubuf, size_t cnt, mutex_unlock(&trace_types_lock); return ret; } +FOPS_WRITE_ITER_HELPER(tracing_snapshot_write); =20 static int tracing_snapshot_release(struct inode *inode, struct file *file) { @@ -7351,8 +7335,7 @@ static int tracing_snapshot_release(struct inode *ino= de, struct file *file) } =20 static int tracing_buffers_open(struct inode *inode, struct file *filp); -static ssize_t tracing_buffers_read(struct file *filp, char __user *ubuf, - size_t count, loff_t *ppos); +static ssize_t tracing_buffers_read(struct kiocb *iocb, struct iov_iter *t= o); static int tracing_buffers_release(struct inode *inode, struct file *file); static ssize_t tracing_buffers_splice_read(struct file *file, loff_t *ppos, struct pipe_inode_info *pipe, size_t len, unsigned int flags); @@ -7385,16 +7368,16 @@ static int snapshot_raw_open(struct inode *inode, s= truct file *filp) =20 static const struct file_operations tracing_thresh_fops =3D { .open =3D tracing_open_generic, - .read =3D tracing_thresh_read, - .write =3D tracing_thresh_write, + .read_iter =3D tracing_thresh_read, + .write_iter =3D tracing_thresh_write, .llseek =3D generic_file_llseek, }; =20 #ifdef CONFIG_TRACER_MAX_TRACE static const struct file_operations tracing_max_lat_fops =3D { .open =3D tracing_open_generic_tr, - .read =3D tracing_max_lat_read, - .write =3D tracing_max_lat_write, + .read_iter =3D tracing_max_lat_read, + .write_iter =3D tracing_max_lat_write, .llseek =3D generic_file_llseek, .release =3D tracing_release_generic_tr, }; @@ -7402,8 +7385,8 @@ static const struct file_operations tracing_max_lat_f= ops =3D { =20 static const struct file_operations set_tracer_fops =3D { .open =3D tracing_open_generic_tr, - .read =3D tracing_set_trace_read, - .write =3D tracing_set_trace_write, + .read_iter =3D tracing_set_trace_read, + .write_iter =3D tracing_set_trace_write, .llseek =3D generic_file_llseek, .release =3D tracing_release_generic_tr, }; @@ -7411,7 +7394,7 @@ static const struct file_operations set_tracer_fops = =3D { static const struct file_operations tracing_pipe_fops =3D { .open =3D tracing_open_pipe, .poll =3D tracing_poll_pipe, - .read =3D tracing_read_pipe, + .read_iter =3D tracing_read_pipe_iter, .splice_read =3D tracing_splice_read_pipe, .release =3D tracing_release_pipe, .llseek =3D no_llseek, @@ -7419,48 +7402,48 @@ static const struct file_operations tracing_pipe_fo= ps =3D { =20 static const struct file_operations tracing_entries_fops =3D { .open =3D tracing_open_generic_tr, - .read =3D tracing_entries_read, - .write =3D tracing_entries_write, + .read_iter =3D tracing_entries_read, + .write_iter =3D tracing_entries_write, .llseek =3D generic_file_llseek, .release =3D tracing_release_generic_tr, }; =20 static const struct file_operations tracing_total_entries_fops =3D { .open =3D tracing_open_generic_tr, - .read =3D tracing_total_entries_read, + .read_iter =3D tracing_total_entries_read, .llseek =3D generic_file_llseek, .release =3D tracing_release_generic_tr, }; =20 static const struct file_operations tracing_free_buffer_fops =3D { .open =3D tracing_open_generic_tr, - .write =3D tracing_free_buffer_write, + .write_iter =3D tracing_free_buffer_write, .release =3D tracing_free_buffer_release, }; =20 static const struct file_operations tracing_mark_fops =3D { .open =3D tracing_mark_open, - .write =3D tracing_mark_write, + .write_iter =3D tracing_mark_write_iter, .release =3D tracing_release_generic_tr, }; =20 static const struct file_operations tracing_mark_raw_fops =3D { .open =3D tracing_mark_open, - .write =3D tracing_mark_raw_write, + .write_iter =3D tracing_mark_raw_write_iter, .release =3D tracing_release_generic_tr, }; =20 static const struct file_operations trace_clock_fops =3D { .open =3D tracing_clock_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D tracing_single_release_tr, - .write =3D tracing_clock_write, + .write_iter =3D tracing_clock_write, }; =20 static const struct file_operations trace_time_stamp_mode_fops =3D { .open =3D tracing_time_stamp_mode_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D tracing_single_release_tr, }; @@ -7468,15 +7451,15 @@ static const struct file_operations trace_time_stam= p_mode_fops =3D { #ifdef CONFIG_TRACER_SNAPSHOT static const struct file_operations snapshot_fops =3D { .open =3D tracing_snapshot_open, - .read =3D seq_read, - .write =3D tracing_snapshot_write, + .read_iter =3D seq_read_iter, + .write_iter =3D tracing_snapshot_write_iter, .llseek =3D tracing_lseek, .release =3D tracing_snapshot_release, }; =20 static const struct file_operations snapshot_raw_fops =3D { .open =3D snapshot_raw_open, - .read =3D tracing_buffers_read, + .read_iter =3D tracing_buffers_read, .release =3D tracing_buffers_release, .splice_read =3D tracing_buffers_splice_read, .llseek =3D no_llseek, @@ -7496,17 +7479,17 @@ static const struct file_operations snapshot_raw_fo= ps =3D { * defines where to write the value, the min and the max acceptable values, * and a lock to protect the write. */ -static ssize_t -trace_min_max_write(struct file *filp, const char __user *ubuf, size_t cnt= , loff_t *ppos) +static ssize_t trace_min_max_write(struct kiocb *iocb, struct iov_iter *fr= om) { - struct trace_min_max_param *param =3D filp->private_data; + struct trace_min_max_param *param =3D iocb->ki_filp->private_data; + size_t cnt =3D iov_iter_count(from); u64 val; int err; =20 if (!param) return -EFAULT; =20 - err =3D kstrtoull_from_user(ubuf, cnt, 10, &val); + err =3D kstrtoull_from_iter(from, cnt, 10, &val); if (err) return err; =20 @@ -7542,10 +7525,10 @@ trace_min_max_write(struct file *filp, const char _= _user *ubuf, size_t cnt, loff * The filp->private_data must point to a trace_min_max_param struct with = valid * data. */ -static ssize_t -trace_min_max_read(struct file *filp, char __user *ubuf, size_t cnt, loff_= t *ppos) +static ssize_t trace_min_max_read(struct kiocb *iocb, struct iov_iter *to) { - struct trace_min_max_param *param =3D filp->private_data; + struct trace_min_max_param *param =3D iocb->ki_filp->private_data; + size_t cnt =3D iov_iter_count(to); char buf[U64_STR_SIZE]; int len; u64 val; @@ -7560,13 +7543,13 @@ trace_min_max_read(struct file *filp, char __user *= ubuf, size_t cnt, loff_t *ppo =20 len =3D snprintf(buf, sizeof(buf), "%llu\n", val); =20 - return simple_read_from_buffer(ubuf, cnt, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 const struct file_operations trace_min_max_fops =3D { .open =3D tracing_open_generic, - .read =3D trace_min_max_read, - .write =3D trace_min_max_write, + .read_iter =3D trace_min_max_read, + .write_iter =3D trace_min_max_write, }; =20 #define TRACING_LOG_ERRS_MAX 8 @@ -7818,11 +7801,9 @@ static int tracing_err_log_open(struct inode *inode,= struct file *file) return ret; } =20 -static ssize_t tracing_err_log_write(struct file *file, - const char __user *buffer, - size_t count, loff_t *ppos) +static ssize_t tracing_err_log_write(struct kiocb *iocb, struct iov_iter *= from) { - return count; + return iov_iter_count(from); } =20 static int tracing_err_log_release(struct inode *inode, struct file *file) @@ -7839,8 +7820,8 @@ static int tracing_err_log_release(struct inode *inod= e, struct file *file) =20 static const struct file_operations tracing_err_log_fops =3D { .open =3D tracing_err_log_open, - .write =3D tracing_err_log_write, - .read =3D seq_read, + .write_iter =3D tracing_err_log_write, + .read_iter =3D seq_read_iter, .llseek =3D tracing_lseek, .release =3D tracing_err_log_release, }; @@ -7893,12 +7874,11 @@ tracing_buffers_poll(struct file *filp, poll_table = *poll_table) return trace_poll(iter, filp, poll_table); } =20 -static ssize_t -tracing_buffers_read(struct file *filp, char __user *ubuf, - size_t count, loff_t *ppos) +static ssize_t tracing_buffers_read(struct kiocb *iocb, struct iov_iter *t= o) { - struct ftrace_buffer_info *info =3D filp->private_data; + struct ftrace_buffer_info *info =3D iocb->ki_filp->private_data; struct trace_iterator *iter =3D &info->iter; + size_t count =3D iov_iter_count(to); void *trace_data; int page_size; ssize_t ret =3D 0; @@ -7951,7 +7931,7 @@ tracing_buffers_read(struct file *filp, char __user *= ubuf, =20 if (ret < 0) { if (trace_empty(iter)) { - if ((filp->f_flags & O_NONBLOCK)) + if (iocb->ki_filp->f_flags & O_NONBLOCK) return -EAGAIN; =20 ret =3D wait_on_pipe(iter, 0); @@ -7969,13 +7949,13 @@ tracing_buffers_read(struct file *filp, char __user= *ubuf, if (size > count) size =3D count; trace_data =3D ring_buffer_read_page_data(info->spare); - ret =3D copy_to_user(ubuf, trace_data + info->read, size); + ret =3D copy_to_iter(trace_data + info->read, size, to); if (ret =3D=3D size) return -EFAULT; =20 size -=3D ret; =20 - *ppos +=3D size; + iocb->ki_pos +=3D size; info->read +=3D size; =20 return size; @@ -8216,7 +8196,7 @@ static long tracing_buffers_ioctl(struct file *file, = unsigned int cmd, unsigned =20 static const struct file_operations tracing_buffers_fops =3D { .open =3D tracing_buffers_open, - .read =3D tracing_buffers_read, + .read_iter =3D tracing_buffers_read, .poll =3D tracing_buffers_poll, .release =3D tracing_buffers_release, .flush =3D tracing_buffers_flush, @@ -8225,11 +8205,9 @@ static const struct file_operations tracing_buffers_= fops =3D { .llseek =3D no_llseek, }; =20 -static ssize_t -tracing_stats_read(struct file *filp, char __user *ubuf, - size_t count, loff_t *ppos) +static ssize_t tracing_stats_read(struct kiocb *iocb, struct iov_iter *to) { - struct inode *inode =3D file_inode(filp); + struct inode *inode =3D file_inode(iocb->ki_filp); struct trace_array *tr =3D inode->i_private; struct array_buffer *trace_buf =3D &tr->array_buffer; int cpu =3D tracing_get_cpu(inode); @@ -8237,6 +8215,7 @@ tracing_stats_read(struct file *filp, char __user *ub= uf, unsigned long cnt; unsigned long long t; unsigned long usec_rem; + ssize_t count; =20 s =3D kmalloc(sizeof(*s), GFP_KERNEL); if (!s) @@ -8281,17 +8260,15 @@ tracing_stats_read(struct file *filp, char __user *= ubuf, cnt =3D ring_buffer_read_events_cpu(trace_buf->buffer, cpu); trace_seq_printf(s, "read events: %ld\n", cnt); =20 - count =3D simple_read_from_buffer(ubuf, count, ppos, - s->buffer, trace_seq_used(s)); - + count =3D simple_copy_to_iter(s->buffer, &iocb->ki_pos, trace_seq_used(s), + to); kfree(s); - return count; } =20 static const struct file_operations tracing_stats_fops =3D { .open =3D tracing_open_generic_tr, - .read =3D tracing_stats_read, + .read_iter =3D tracing_stats_read, .llseek =3D generic_file_llseek, .release =3D tracing_release_generic_tr, }; @@ -8299,8 +8276,7 @@ static const struct file_operations tracing_stats_fop= s =3D { #ifdef CONFIG_DYNAMIC_FTRACE =20 static ssize_t -tracing_read_dyn_info(struct file *filp, char __user *ubuf, - size_t cnt, loff_t *ppos) +tracing_read_dyn_info(struct kiocb *iocb, struct iov_iter *to) { ssize_t ret; char *buf; @@ -8316,14 +8292,14 @@ tracing_read_dyn_info(struct file *filp, char __use= r *ubuf, ftrace_number_of_pages, ftrace_number_of_groups); =20 - ret =3D simple_read_from_buffer(ubuf, cnt, ppos, buf, r); + ret =3D simple_copy_to_iter(buf, &iocb->ki_pos, r, to); kfree(buf); return ret; } =20 static const struct file_operations tracing_dyn_info_fops =3D { .open =3D tracing_open_generic, - .read =3D tracing_read_dyn_info, + .read_iter =3D tracing_read_dyn_info, .llseek =3D generic_file_llseek, }; #endif /* CONFIG_DYNAMIC_FTRACE */ @@ -8583,11 +8559,9 @@ tracing_init_tracefs_percpu(struct trace_array *tr, = long cpu) #include "trace_selftest.c" #endif =20 -static ssize_t -trace_options_read(struct file *filp, char __user *ubuf, size_t cnt, - loff_t *ppos) +static ssize_t trace_options_read(struct kiocb *iocb, struct iov_iter *to) { - struct trace_option_dentry *topt =3D filp->private_data; + struct trace_option_dentry *topt =3D iocb->ki_filp->private_data; char *buf; =20 if (topt->flags->val & topt->opt->bit) @@ -8595,18 +8569,17 @@ trace_options_read(struct file *filp, char __user *= ubuf, size_t cnt, else buf =3D "0\n"; =20 - return simple_read_from_buffer(ubuf, cnt, ppos, buf, 2); + return simple_copy_to_iter(buf, &iocb->ki_pos, 2, to); } =20 -static ssize_t -trace_options_write(struct file *filp, const char __user *ubuf, size_t cnt, - loff_t *ppos) +static ssize_t trace_options_write(struct kiocb *iocb, struct iov_iter *fr= om) { - struct trace_option_dentry *topt =3D filp->private_data; + struct trace_option_dentry *topt =3D iocb->ki_filp->private_data; + size_t cnt =3D iov_iter_count(from); unsigned long val; int ret; =20 - ret =3D kstrtoul_from_user(ubuf, cnt, 10, &val); + ret =3D kstrtoul_from_iter(from, cnt, 10, &val); if (ret) return ret; =20 @@ -8622,7 +8595,7 @@ trace_options_write(struct file *filp, const char __u= ser *ubuf, size_t cnt, return ret; } =20 - *ppos +=3D cnt; + iocb->ki_pos +=3D cnt; =20 return cnt; } @@ -8650,8 +8623,8 @@ static int tracing_release_options(struct inode *inod= e, struct file *file) =20 static const struct file_operations trace_options_fops =3D { .open =3D tracing_open_options, - .read =3D trace_options_read, - .write =3D trace_options_write, + .read_iter =3D trace_options_read, + .write_iter =3D trace_options_write, .llseek =3D generic_file_llseek, .release =3D tracing_release_options, }; @@ -8689,11 +8662,9 @@ static void get_tr_index(void *data, struct trace_ar= ray **ptr, trace_flags_index); } =20 -static ssize_t -trace_options_core_read(struct file *filp, char __user *ubuf, size_t cnt, - loff_t *ppos) +static ssize_t trace_options_core_read(struct kiocb *iocb, struct iov_iter= *to) { - void *tr_index =3D filp->private_data; + void *tr_index =3D iocb->ki_filp->private_data; struct trace_array *tr; unsigned int index; char *buf; @@ -8705,14 +8676,14 @@ trace_options_core_read(struct file *filp, char __u= ser *ubuf, size_t cnt, else buf =3D "0\n"; =20 - return simple_read_from_buffer(ubuf, cnt, ppos, buf, 2); + return simple_copy_to_iter(buf, &iocb->ki_pos, 2, to); } =20 static ssize_t -trace_options_core_write(struct file *filp, const char __user *ubuf, size_= t cnt, - loff_t *ppos) +trace_options_core_write(struct kiocb *iocb, struct iov_iter *from) { - void *tr_index =3D filp->private_data; + void *tr_index =3D iocb->ki_filp->private_data; + size_t cnt =3D iov_iter_count(from); struct trace_array *tr; unsigned int index; unsigned long val; @@ -8720,7 +8691,7 @@ trace_options_core_write(struct file *filp, const cha= r __user *ubuf, size_t cnt, =20 get_tr_index(tr_index, &tr, &index); =20 - ret =3D kstrtoul_from_user(ubuf, cnt, 10, &val); + ret =3D kstrtoul_from_iter(from, cnt, 10, &val); if (ret) return ret; =20 @@ -8736,15 +8707,15 @@ trace_options_core_write(struct file *filp, const c= har __user *ubuf, size_t cnt, if (ret < 0) return ret; =20 - *ppos +=3D cnt; + iocb->ki_pos +=3D cnt; =20 return cnt; } =20 static const struct file_operations trace_options_core_fops =3D { .open =3D tracing_open_generic, - .read =3D trace_options_core_read, - .write =3D trace_options_core_write, + .read_iter =3D trace_options_core_read, + .write_iter =3D trace_options_core_write, .llseek =3D generic_file_llseek, }; =20 @@ -8898,30 +8869,27 @@ static void create_trace_options_dir(struct trace_a= rray *tr) } } =20 -static ssize_t -rb_simple_read(struct file *filp, char __user *ubuf, - size_t cnt, loff_t *ppos) +static ssize_t rb_simple_read(struct kiocb *iocb, struct iov_iter *to) { - struct trace_array *tr =3D filp->private_data; + struct trace_array *tr =3D iocb->ki_filp->private_data; char buf[64]; int r; =20 r =3D tracer_tracing_is_on(tr); r =3D sprintf(buf, "%d\n", r); =20 - return simple_read_from_buffer(ubuf, cnt, ppos, buf, r); + return simple_copy_to_iter(buf, &iocb->ki_pos, r, to); } =20 -static ssize_t -rb_simple_write(struct file *filp, const char __user *ubuf, - size_t cnt, loff_t *ppos) +static ssize_t rb_simple_write(struct kiocb *iocb, struct iov_iter *from) { - struct trace_array *tr =3D filp->private_data; + struct trace_array *tr =3D iocb->ki_filp->private_data; struct trace_buffer *buffer =3D tr->array_buffer.buffer; + size_t cnt =3D iov_iter_count(from); unsigned long val; int ret; =20 - ret =3D kstrtoul_from_user(ubuf, cnt, 10, &val); + ret =3D kstrtoul_from_iter(from, cnt, 10, &val); if (ret) return ret; =20 @@ -8943,42 +8911,39 @@ rb_simple_write(struct file *filp, const char __use= r *ubuf, mutex_unlock(&trace_types_lock); } =20 - (*ppos)++; + iocb->ki_pos++; =20 return cnt; } =20 static const struct file_operations rb_simple_fops =3D { .open =3D tracing_open_generic_tr, - .read =3D rb_simple_read, - .write =3D rb_simple_write, + .read_iter =3D rb_simple_read, + .write_iter =3D rb_simple_write, .release =3D tracing_release_generic_tr, .llseek =3D default_llseek, }; =20 -static ssize_t -buffer_percent_read(struct file *filp, char __user *ubuf, - size_t cnt, loff_t *ppos) +static ssize_t buffer_percent_read(struct kiocb *iocb, struct iov_iter *to) { - struct trace_array *tr =3D filp->private_data; + struct trace_array *tr =3D iocb->ki_filp->private_data; char buf[64]; int r; =20 r =3D tr->buffer_percent; r =3D sprintf(buf, "%d\n", r); =20 - return simple_read_from_buffer(ubuf, cnt, ppos, buf, r); + return simple_copy_to_iter(buf, &iocb->ki_pos, r, to); } =20 -static ssize_t -buffer_percent_write(struct file *filp, const char __user *ubuf, - size_t cnt, loff_t *ppos) +static ssize_t buffer_percent_write(struct kiocb *iocb, struct iov_iter *f= rom) { - struct trace_array *tr =3D filp->private_data; + struct trace_array *tr =3D iocb->ki_filp->private_data; + size_t cnt =3D iov_iter_count(from); unsigned long val; int ret; =20 - ret =3D kstrtoul_from_user(ubuf, cnt, 10, &val); + ret =3D kstrtoul_from_iter(from, cnt, 10, &val); if (ret) return ret; =20 @@ -8987,23 +8952,22 @@ buffer_percent_write(struct file *filp, const char = __user *ubuf, =20 tr->buffer_percent =3D val; =20 - (*ppos)++; + iocb->ki_pos++; =20 return cnt; } =20 static const struct file_operations buffer_percent_fops =3D { .open =3D tracing_open_generic_tr, - .read =3D buffer_percent_read, - .write =3D buffer_percent_write, + .read_iter =3D buffer_percent_read, + .write_iter =3D buffer_percent_write, .release =3D tracing_release_generic_tr, .llseek =3D default_llseek, }; =20 -static ssize_t -buffer_subbuf_size_read(struct file *filp, char __user *ubuf, size_t cnt, = loff_t *ppos) +static ssize_t buffer_subbuf_size_read(struct kiocb *iocb, struct iov_iter= *to) { - struct trace_array *tr =3D filp->private_data; + struct trace_array *tr =3D iocb->ki_filp->private_data; size_t size; char buf[64]; int order; @@ -9014,21 +8978,21 @@ buffer_subbuf_size_read(struct file *filp, char __u= ser *ubuf, size_t cnt, loff_t =20 r =3D sprintf(buf, "%zd\n", size); =20 - return simple_read_from_buffer(ubuf, cnt, ppos, buf, r); + return simple_copy_to_iter(buf, &iocb->ki_pos, r, to); } =20 static ssize_t -buffer_subbuf_size_write(struct file *filp, const char __user *ubuf, - size_t cnt, loff_t *ppos) +buffer_subbuf_size_write(struct kiocb *iocb, struct iov_iter *from) { - struct trace_array *tr =3D filp->private_data; + struct trace_array *tr =3D iocb->ki_filp->private_data; + size_t cnt =3D iov_iter_count(from); unsigned long val; int old_order; int order; int pages; int ret; =20 - ret =3D kstrtoul_from_user(ubuf, cnt, 10, &val); + ret =3D kstrtoul_from_iter(from, cnt, 10, &val); if (ret) return ret; =20 @@ -9081,7 +9045,7 @@ buffer_subbuf_size_write(struct file *filp, const cha= r __user *ubuf, } out_max: #endif - (*ppos)++; + iocb->ki_pos++; out: if (ret) cnt =3D ret; @@ -9091,8 +9055,8 @@ buffer_subbuf_size_write(struct file *filp, const cha= r __user *ubuf, =20 static const struct file_operations buffer_subbuf_size_fops =3D { .open =3D tracing_open_generic_tr, - .read =3D buffer_subbuf_size_read, - .write =3D buffer_subbuf_size_write, + .read_iter =3D buffer_subbuf_size_read, + .write_iter =3D buffer_subbuf_size_write, .release =3D tracing_release_generic_tr, .llseek =3D default_llseek, }; diff --git a/kernel/trace/trace_dynevent.c b/kernel/trace/trace_dynevent.c index 4376887e0d8a..cea3f5947025 100644 --- a/kernel/trace/trace_dynevent.c +++ b/kernel/trace/trace_dynevent.c @@ -244,14 +244,15 @@ static ssize_t dyn_event_write(struct file *file, con= st char __user *buffer, return trace_parse_run_command(file, buffer, count, ppos, create_dyn_event); } +FOPS_WRITE_ITER_HELPER(dyn_event_write); =20 static const struct file_operations dynamic_events_ops =3D { .owner =3D THIS_MODULE, .open =3D dyn_event_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D seq_release, - .write =3D dyn_event_write, + .write_iter =3D dyn_event_write_iter, }; =20 /* Make a tracefs interface for controlling dynamic events */ diff --git a/kernel/trace/trace_events.c b/kernel/trace/trace_events.c index 7c364b87352e..bc1bfc3f387c 100644 --- a/kernel/trace/trace_events.c +++ b/kernel/trace/trace_events.c @@ -1215,6 +1215,7 @@ ftrace_event_write(struct file *file, const char __us= er *ubuf, =20 return ret; } +FOPS_WRITE_ITER_HELPER(ftrace_event_write); =20 static void * t_next(struct seq_file *m, void *v, loff_t *pos) @@ -1377,16 +1378,14 @@ static void p_stop(struct seq_file *m, void *p) mutex_unlock(&event_mutex); } =20 -static ssize_t -event_enable_read(struct file *filp, char __user *ubuf, size_t cnt, - loff_t *ppos) +static ssize_t event_enable_read(struct kiocb *iocb, struct iov_iter *to) { struct trace_event_file *file; unsigned long flags; char buf[4] =3D "0"; =20 mutex_lock(&event_mutex); - file =3D event_file_data(filp); + file =3D event_file_data(iocb->ki_filp); if (likely(file)) flags =3D file->flags; mutex_unlock(&event_mutex); @@ -1404,7 +1403,7 @@ event_enable_read(struct file *filp, char __user *ubu= f, size_t cnt, =20 strcat(buf, "\n"); =20 - return simple_read_from_buffer(ubuf, cnt, ppos, buf, strlen(buf)); + return simple_copy_to_iter(buf, &iocb->ki_pos, strlen(buf), to); } =20 static ssize_t @@ -1444,20 +1443,18 @@ event_enable_write(struct file *filp, const char __= user *ubuf, size_t cnt, =20 return ret ? ret : cnt; } +FOPS_WRITE_ITER_HELPER(event_enable_write); =20 -static ssize_t -system_enable_read(struct file *filp, char __user *ubuf, size_t cnt, - loff_t *ppos) +static ssize_t system_enable_read(struct kiocb *iocb, struct iov_iter *to) { const char set_to_char[4] =3D { '?', '0', '1', 'X' }; - struct trace_subsystem_dir *dir =3D filp->private_data; + struct trace_subsystem_dir *dir =3D iocb->ki_filp->private_data; struct event_subsystem *system =3D dir->subsystem; struct trace_event_call *call; struct trace_event_file *file; struct trace_array *tr =3D dir->tr; char buf[2]; int set =3D 0; - int ret; =20 mutex_lock(&event_mutex); list_for_each_entry(file, &tr->events, list) { @@ -1487,9 +1484,7 @@ system_enable_read(struct file *filp, char __user *ub= uf, size_t cnt, buf[0] =3D set_to_char[set]; buf[1] =3D '\n'; =20 - ret =3D simple_read_from_buffer(ubuf, cnt, ppos, buf, 2); - - return ret; + return simple_copy_to_iter(buf, &iocb->ki_pos, 2, to); } =20 static ssize_t @@ -1531,6 +1526,7 @@ system_enable_write(struct file *filp, const char __u= ser *ubuf, size_t cnt, =20 return ret; } +FOPS_WRITE_ITER_HELPER(system_enable_write); =20 enum { FORMAT_HEADER =3D 1, @@ -1670,10 +1666,9 @@ static int trace_format_open(struct inode *inode, st= ruct file *file) return 0; } =20 -static ssize_t -event_id_read(struct file *filp, char __user *ubuf, size_t cnt, loff_t *pp= os) +static ssize_t event_id_read(struct kiocb *iocb, struct iov_iter *to) { - int id =3D (long)event_file_data(filp); + int id =3D (long)event_file_data(iocb->ki_filp); char buf[32]; int len; =20 @@ -1682,18 +1677,16 @@ event_id_read(struct file *filp, char __user *ubuf,= size_t cnt, loff_t *ppos) =20 len =3D sprintf(buf, "%d\n", id); =20 - return simple_read_from_buffer(ubuf, cnt, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 -static ssize_t -event_filter_read(struct file *filp, char __user *ubuf, size_t cnt, - loff_t *ppos) +static ssize_t event_filter_read(struct kiocb *iocb, struct iov_iter *to) { struct trace_event_file *file; struct trace_seq *s; int r =3D -ENODEV; =20 - if (*ppos) + if (iocb->ki_pos) return 0; =20 s =3D kmalloc(sizeof(*s), GFP_KERNEL); @@ -1704,14 +1697,14 @@ event_filter_read(struct file *filp, char __user *u= buf, size_t cnt, trace_seq_init(s); =20 mutex_lock(&event_mutex); - file =3D event_file_data(filp); + file =3D event_file_data(iocb->ki_filp); if (file && !(file->flags & EVENT_FILE_FL_FREED)) print_event_filter(file, s); mutex_unlock(&event_mutex); =20 if (file) - r =3D simple_read_from_buffer(ubuf, cnt, ppos, - s->buffer, trace_seq_used(s)); + r =3D simple_copy_to_iter(s->buffer, &iocb->ki_pos, + trace_seq_used(s), to); =20 kfree(s); =20 @@ -1747,6 +1740,7 @@ event_filter_write(struct file *filp, const char __us= er *ubuf, size_t cnt, =20 return cnt; } +FOPS_WRITE_ITER_HELPER(event_filter_write); =20 static LIST_HEAD(event_subsystems); =20 @@ -1840,16 +1834,14 @@ static int subsystem_release(struct inode *inode, s= truct file *file) return 0; } =20 -static ssize_t -subsystem_filter_read(struct file *filp, char __user *ubuf, size_t cnt, - loff_t *ppos) +static ssize_t subsystem_filter_read(struct kiocb *iocb, struct iov_iter *= to) { - struct trace_subsystem_dir *dir =3D filp->private_data; + struct trace_subsystem_dir *dir =3D iocb->ki_filp->private_data; struct event_subsystem *system =3D dir->subsystem; struct trace_seq *s; int r; =20 - if (*ppos) + if (iocb->ki_pos) return 0; =20 s =3D kmalloc(sizeof(*s), GFP_KERNEL); @@ -1859,8 +1851,7 @@ subsystem_filter_read(struct file *filp, char __user = *ubuf, size_t cnt, trace_seq_init(s); =20 print_subsystem_event_filter(system, s); - r =3D simple_read_from_buffer(ubuf, cnt, ppos, - s->buffer, trace_seq_used(s)); + r =3D simple_copy_to_iter(s->buffer, &iocb->ki_pos, trace_seq_used(s), to= ); =20 kfree(s); =20 @@ -1891,15 +1882,15 @@ subsystem_filter_write(struct file *filp, const cha= r __user *ubuf, size_t cnt, =20 return cnt; } +FOPS_WRITE_ITER_HELPER(subsystem_filter_write); =20 -static ssize_t -show_header_page_file(struct file *filp, char __user *ubuf, size_t cnt, lo= ff_t *ppos) +static ssize_t show_header_page_file(struct kiocb *iocb, struct iov_iter *= to) { - struct trace_array *tr =3D filp->private_data; + struct trace_array *tr =3D iocb->ki_filp->private_data; struct trace_seq *s; int r; =20 - if (*ppos) + if (iocb->ki_pos) return 0; =20 s =3D kmalloc(sizeof(*s), GFP_KERNEL); @@ -1909,21 +1900,19 @@ show_header_page_file(struct file *filp, char __use= r *ubuf, size_t cnt, loff_t * trace_seq_init(s); =20 ring_buffer_print_page_header(tr->array_buffer.buffer, s); - r =3D simple_read_from_buffer(ubuf, cnt, ppos, - s->buffer, trace_seq_used(s)); + r =3D simple_copy_to_iter(s->buffer, &iocb->ki_pos, trace_seq_used(s), to= ); =20 kfree(s); =20 return r; } =20 -static ssize_t -show_header_event_file(struct file *filp, char __user *ubuf, size_t cnt, l= off_t *ppos) +static ssize_t show_header_event_file(struct kiocb *iocb, struct iov_iter = *to) { struct trace_seq *s; int r; =20 - if (*ppos) + if (iocb->ki_pos) return 0; =20 s =3D kmalloc(sizeof(*s), GFP_KERNEL); @@ -1933,8 +1922,7 @@ show_header_event_file(struct file *filp, char __user= *ubuf, size_t cnt, loff_t trace_seq_init(s); =20 ring_buffer_print_entry_header(s); - r =3D simple_read_from_buffer(ubuf, cnt, ppos, - s->buffer, trace_seq_used(s)); + r =3D simple_copy_to_iter(s->buffer, &iocb->ki_pos, trace_seq_used(s), to= ); =20 kfree(s); =20 @@ -2064,6 +2052,7 @@ ftrace_event_pid_write(struct file *filp, const char = __user *ubuf, { return event_pid_write(filp, ubuf, cnt, ppos, TRACE_PIDS); } +FOPS_WRITE_ITER_HELPER(ftrace_event_pid_write); =20 static ssize_t ftrace_event_npid_write(struct file *filp, const char __user *ubuf, @@ -2071,6 +2060,7 @@ ftrace_event_npid_write(struct file *filp, const char= __user *ubuf, { return event_pid_write(filp, ubuf, cnt, ppos, TRACE_NO_PIDS); } +FOPS_WRITE_ITER_HELPER(ftrace_event_npid_write); =20 static int ftrace_event_avail_open(struct inode *inode, struct file *file); static int ftrace_event_set_open(struct inode *inode, struct file *file); @@ -2108,97 +2098,97 @@ static const struct seq_operations show_set_no_pid_= seq_ops =3D { =20 static const struct file_operations ftrace_avail_fops =3D { .open =3D ftrace_event_avail_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D seq_release, }; =20 static const struct file_operations ftrace_set_event_fops =3D { .open =3D ftrace_event_set_open, - .read =3D seq_read, - .write =3D ftrace_event_write, + .read_iter =3D seq_read_iter, + .write_iter =3D ftrace_event_write_iter, .llseek =3D seq_lseek, .release =3D ftrace_event_release, }; =20 static const struct file_operations ftrace_set_event_pid_fops =3D { .open =3D ftrace_event_set_pid_open, - .read =3D seq_read, - .write =3D ftrace_event_pid_write, + .read_iter =3D seq_read_iter, + .write_iter =3D ftrace_event_pid_write_iter, .llseek =3D seq_lseek, .release =3D ftrace_event_release, }; =20 static const struct file_operations ftrace_set_event_notrace_pid_fops =3D { .open =3D ftrace_event_set_npid_open, - .read =3D seq_read, - .write =3D ftrace_event_npid_write, + .read_iter =3D seq_read_iter, + .write_iter =3D ftrace_event_npid_write_iter, .llseek =3D seq_lseek, .release =3D ftrace_event_release, }; =20 static const struct file_operations ftrace_enable_fops =3D { .open =3D tracing_open_file_tr, - .read =3D event_enable_read, - .write =3D event_enable_write, + .read_iter =3D event_enable_read, + .write_iter =3D event_enable_write_iter, .release =3D tracing_release_file_tr, .llseek =3D default_llseek, }; =20 static const struct file_operations ftrace_event_format_fops =3D { .open =3D trace_format_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D seq_release, }; =20 static const struct file_operations ftrace_event_id_fops =3D { - .read =3D event_id_read, + .read_iter =3D event_id_read, .llseek =3D default_llseek, }; =20 static const struct file_operations ftrace_event_filter_fops =3D { .open =3D tracing_open_file_tr, - .read =3D event_filter_read, - .write =3D event_filter_write, + .read_iter =3D event_filter_read, + .write_iter =3D event_filter_write_iter, .release =3D tracing_release_file_tr, .llseek =3D default_llseek, }; =20 static const struct file_operations ftrace_subsystem_filter_fops =3D { .open =3D subsystem_open, - .read =3D subsystem_filter_read, - .write =3D subsystem_filter_write, + .read_iter =3D subsystem_filter_read, + .write_iter =3D subsystem_filter_write_iter, .llseek =3D default_llseek, .release =3D subsystem_release, }; =20 static const struct file_operations ftrace_system_enable_fops =3D { .open =3D subsystem_open, - .read =3D system_enable_read, - .write =3D system_enable_write, + .read_iter =3D system_enable_read, + .write_iter =3D system_enable_write_iter, .llseek =3D default_llseek, .release =3D subsystem_release, }; =20 static const struct file_operations ftrace_tr_enable_fops =3D { .open =3D system_tr_open, - .read =3D system_enable_read, - .write =3D system_enable_write, + .read_iter =3D system_enable_read, + .write_iter =3D system_enable_write_iter, .llseek =3D default_llseek, .release =3D subsystem_release, }; =20 static const struct file_operations ftrace_show_header_page_fops =3D { .open =3D tracing_open_generic_tr, - .read =3D show_header_page_file, + .read_iter =3D show_header_page_file, .llseek =3D default_llseek, .release =3D tracing_release_generic_tr, }; =20 static const struct file_operations ftrace_show_header_event_fops =3D { .open =3D tracing_open_generic_tr, - .read =3D show_header_event_file, + .read_iter =3D show_header_event_file, .llseek =3D default_llseek, .release =3D tracing_release_generic_tr, }; diff --git a/kernel/trace/trace_events_hist.c b/kernel/trace/trace_events_h= ist.c index 6ece1308d36a..18e8914ffa67 100644 --- a/kernel/trace/trace_events_hist.c +++ b/kernel/trace/trace_events_hist.c @@ -5633,7 +5633,7 @@ static int event_hist_open(struct inode *inode, struc= t file *file) =20 const struct file_operations event_hist_fops =3D { .open =3D event_hist_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D tracing_single_release_file_tr, }; @@ -5912,7 +5912,7 @@ static int event_hist_debug_open(struct inode *inode,= struct file *file) =20 const struct file_operations event_hist_debug_fops =3D { .open =3D event_hist_debug_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D tracing_single_release_file_tr, }; diff --git a/kernel/trace/trace_events_inject.c b/kernel/trace/trace_events= _inject.c index 8650562bdaa9..840c3e786968 100644 --- a/kernel/trace/trace_events_inject.c +++ b/kernel/trace/trace_events_inject.c @@ -280,10 +280,9 @@ static int parse_entry(char *str, struct trace_event_c= all *call, void **pentry) return entry_size; } =20 -static ssize_t -event_inject_write(struct file *filp, const char __user *ubuf, size_t cnt, - loff_t *ppos) +static ssize_t event_inject_write(struct kiocb *iocb, struct iov_iter *fro= m) { + size_t cnt =3D iov_iter_count(from); struct trace_event_call *call; struct trace_event_file *file; int err =3D -ENODEV, size; @@ -293,13 +292,13 @@ event_inject_write(struct file *filp, const char __us= er *ubuf, size_t cnt, if (cnt >=3D PAGE_SIZE) return -EINVAL; =20 - buf =3D memdup_user_nul(ubuf, cnt); + buf =3D iterdup_nul(from, cnt); if (IS_ERR(buf)) return PTR_ERR(buf); strim(buf); =20 mutex_lock(&event_mutex); - file =3D event_file_data(filp); + file =3D event_file_data(iocb->ki_filp); if (file) { call =3D file->event_call; size =3D parse_entry(buf, call, &entry); @@ -316,20 +315,18 @@ event_inject_write(struct file *filp, const char __us= er *ubuf, size_t cnt, if (err < 0) return err; =20 - *ppos +=3D err; + iocb->ki_pos +=3D err; return cnt; } =20 -static ssize_t -event_inject_read(struct file *file, char __user *buf, size_t size, - loff_t *ppos) +static ssize_t event_inject_read(struct kiocb *iocb, struct iov_iter *to) { return -EPERM; } =20 const struct file_operations event_inject_fops =3D { .open =3D tracing_open_file_tr, - .read =3D event_inject_read, - .write =3D event_inject_write, + .read_iter =3D event_inject_read, + .write_iter =3D event_inject_write, .release =3D tracing_release_file_tr, }; diff --git a/kernel/trace/trace_events_synth.c b/kernel/trace/trace_events_= synth.c index c82b401a294d..5ff782e5870e 100644 --- a/kernel/trace/trace_events_synth.c +++ b/kernel/trace/trace_events_synth.c @@ -2286,11 +2286,12 @@ static ssize_t synth_events_write(struct file *file, return trace_parse_run_command(file, buffer, count, ppos, create_or_delete_synth_event); } +FOPS_WRITE_ITER_HELPER(synth_events_write); =20 static const struct file_operations synth_events_fops =3D { .open =3D synth_events_open, - .write =3D synth_events_write, - .read =3D seq_read, + .write_iter =3D synth_events_write_iter, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D seq_release, }; diff --git a/kernel/trace/trace_events_trigger.c b/kernel/trace/trace_event= s_trigger.c index 4bec043c8690..9f838fa4691e 100644 --- a/kernel/trace/trace_events_trigger.c +++ b/kernel/trace/trace_events_trigger.c @@ -272,11 +272,11 @@ int trigger_process_regex(struct trace_event_file *fi= le, char *buff) return ret; } =20 -static ssize_t event_trigger_regex_write(struct file *file, - const char __user *ubuf, - size_t cnt, loff_t *ppos) +static ssize_t event_trigger_regex_write(struct kiocb *iocb, + struct iov_iter *from) { struct trace_event_file *event_file; + size_t cnt =3D iov_iter_count(from); ssize_t ret; char *buf; =20 @@ -286,14 +286,14 @@ static ssize_t event_trigger_regex_write(struct file = *file, if (cnt >=3D PAGE_SIZE) return -EINVAL; =20 - buf =3D memdup_user_nul(ubuf, cnt); + buf =3D iterdup_nul(from, cnt); if (IS_ERR(buf)) return PTR_ERR(buf); =20 strim(buf); =20 mutex_lock(&event_mutex); - event_file =3D event_file_data(file); + event_file =3D event_file_data(iocb->ki_filp); if (unlikely(!event_file)) { mutex_unlock(&event_mutex); kfree(buf); @@ -306,7 +306,7 @@ static ssize_t event_trigger_regex_write(struct file *f= ile, if (ret < 0) goto out; =20 - *ppos +=3D cnt; + iocb->ki_pos +=3D cnt; ret =3D cnt; out: return ret; @@ -324,11 +324,9 @@ static int event_trigger_regex_release(struct inode *i= node, struct file *file) return 0; } =20 -static ssize_t -event_trigger_write(struct file *filp, const char __user *ubuf, - size_t cnt, loff_t *ppos) +static ssize_t event_trigger_write(struct kiocb *iocb, struct iov_iter *fr= om) { - return event_trigger_regex_write(filp, ubuf, cnt, ppos); + return event_trigger_regex_write(iocb, from); } =20 static int @@ -346,8 +344,8 @@ event_trigger_release(struct inode *inode, struct file = *file) =20 const struct file_operations event_trigger_fops =3D { .open =3D event_trigger_open, - .read =3D seq_read, - .write =3D event_trigger_write, + .read_iter =3D seq_read_iter, + .write_iter =3D event_trigger_write, .llseek =3D tracing_lseek, .release =3D event_trigger_release, }; diff --git a/kernel/trace/trace_events_user.c b/kernel/trace/trace_events_u= ser.c index 70d428c394b6..780329517bd5 100644 --- a/kernel/trace/trace_events_user.c +++ b/kernel/trace/trace_events_user.c @@ -2263,20 +2263,6 @@ static int user_events_open(struct inode *node, stru= ct file *file) return 0; } =20 -static ssize_t user_events_write(struct file *file, const char __user *ubu= f, - size_t count, loff_t *ppos) -{ - struct iov_iter i; - - if (unlikely(*ppos !=3D 0)) - return -EFAULT; - - if (unlikely(import_ubuf(ITER_SOURCE, (char __user *)ubuf, count, &i))) - return -EFAULT; - - return user_events_write_core(file, &i); -} - static ssize_t user_events_write_iter(struct kiocb *kp, struct iov_iter *i) { return user_events_write_core(kp->ki_filp, i); @@ -2678,7 +2664,6 @@ static int user_events_release(struct inode *node, st= ruct file *file) =20 static const struct file_operations user_data_fops =3D { .open =3D user_events_open, - .write =3D user_events_write, .write_iter =3D user_events_write_iter, .unlocked_ioctl =3D user_events_ioctl, .release =3D user_events_release, @@ -2777,7 +2762,7 @@ static int user_status_open(struct inode *node, struc= t file *file) =20 static const struct file_operations user_status_fops =3D { .open =3D user_status_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D seq_release, }; diff --git a/kernel/trace/trace_functions_graph.c b/kernel/trace/trace_func= tions_graph.c index c35fbaab2a47..1d761e2de910 100644 --- a/kernel/trace/trace_functions_graph.c +++ b/kernel/trace/trace_functions_graph.c @@ -1368,40 +1368,36 @@ static struct tracer graph_trace __tracer_data =3D { }; =20 =20 -static ssize_t -graph_depth_write(struct file *filp, const char __user *ubuf, size_t cnt, - loff_t *ppos) +static ssize_t graph_depth_write(struct kiocb *iocb, struct iov_iter *from) { + size_t cnt =3D iov_iter_count(from); unsigned long val; int ret; =20 - ret =3D kstrtoul_from_user(ubuf, cnt, 10, &val); + ret =3D kstrtoul_from_iter(from, cnt, 10, &val); if (ret) return ret; =20 fgraph_max_depth =3D val; =20 - *ppos +=3D cnt; + iocb->ki_pos +=3D cnt; =20 return cnt; } =20 -static ssize_t -graph_depth_read(struct file *filp, char __user *ubuf, size_t cnt, - loff_t *ppos) +static ssize_t graph_depth_read(struct kiocb *iocb, struct iov_iter *to) { char buf[15]; /* More than enough to hold UINT_MAX + "\n"*/ int n; =20 n =3D sprintf(buf, "%d\n", fgraph_max_depth); - - return simple_read_from_buffer(ubuf, cnt, ppos, buf, n); + return simple_copy_to_iter(buf, &iocb->ki_pos, n, to); } =20 static const struct file_operations graph_depth_fops =3D { .open =3D tracing_open_generic, - .write =3D graph_depth_write, - .read =3D graph_depth_read, + .write_iter =3D graph_depth_write, + .read_iter =3D graph_depth_read, .llseek =3D generic_file_llseek, }; =20 diff --git a/kernel/trace/trace_hwlat.c b/kernel/trace/trace_hwlat.c index b791524a6536..eea28d7205ed 100644 --- a/kernel/trace/trace_hwlat.c +++ b/kernel/trace/trace_hwlat.c @@ -664,10 +664,8 @@ static void hwlat_tracer_stop(struct trace_array *tr); =20 /** * hwlat_mode_write - Write function for "mode" entry - * @filp: The active open file structure - * @ubuf: The user buffer that contains the value to write - * @cnt: The maximum number of bytes to write to "file" - * @ppos: The current position in @file + * @iocb: Metadata for IO + * @from: The user buffer that contains the value to write * * This function provides a write implementation for the "mode" interface * to the hardware latency detector. hwlatd has different operation modes. @@ -677,10 +675,10 @@ static void hwlat_tracer_stop(struct trace_array *tr); * among the allowed CPUs in a round-robin fashion. The "per-cpu" mode * creates one hwlatd thread per allowed CPU. */ -static ssize_t hwlat_mode_write(struct file *filp, const char __user *ubuf, - size_t cnt, loff_t *ppos) +static ssize_t hwlat_mode_write(struct kiocb *iocb, struct iov_iter *from) { struct trace_array *tr =3D hwlat_trace; + size_t cnt =3D iov_iter_count(from); const char *mode; char buf[64]; int ret, i; @@ -688,7 +686,7 @@ static ssize_t hwlat_mode_write(struct file *filp, cons= t char __user *ubuf, if (cnt >=3D sizeof(buf)) return -EINVAL; =20 - if (copy_from_user(buf, ubuf, cnt)) + if (!copy_from_iter_full(buf, cnt, from)) return -EFAULT; =20 buf[cnt] =3D 0; @@ -720,9 +718,7 @@ static ssize_t hwlat_mode_write(struct file *filp, cons= t char __user *ubuf, hwlat_tracer_start(tr); mutex_unlock(&trace_types_lock); =20 - *ppos +=3D cnt; - - + iocb->ki_pos +=3D cnt; =20 return ret; } @@ -753,10 +749,10 @@ static struct trace_min_max_param hwlat_window =3D { =20 static const struct file_operations thread_mode_fops =3D { .open =3D hwlat_mode_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D seq_release, - .write =3D hwlat_mode_write + .write_iter =3D hwlat_mode_write }; /** * init_tracefs - A function to initialize the tracefs interface files diff --git a/kernel/trace/trace_kprobe.c b/kernel/trace/trace_kprobe.c index 14099cc17fc9..65006adc0854 100644 --- a/kernel/trace/trace_kprobe.c +++ b/kernel/trace/trace_kprobe.c @@ -1247,14 +1247,15 @@ static ssize_t probes_write(struct file *file, cons= t char __user *buffer, return trace_parse_run_command(file, buffer, count, ppos, create_or_delete_trace_kprobe); } +FOPS_WRITE_ITER_HELPER(probes_write); =20 static const struct file_operations kprobe_events_ops =3D { .owner =3D THIS_MODULE, .open =3D probes_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D seq_release, - .write =3D probes_write, + .write_iter =3D probes_write_iter, }; =20 static unsigned long trace_kprobe_missed(struct trace_kprobe *tk) @@ -1304,7 +1305,7 @@ static int profile_open(struct inode *inode, struct f= ile *file) static const struct file_operations kprobe_profile_ops =3D { .owner =3D THIS_MODULE, .open =3D profile_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D seq_release, }; diff --git a/kernel/trace/trace_osnoise.c b/kernel/trace/trace_osnoise.c index a8e28f9b9271..ac11c293656e 100644 --- a/kernel/trace/trace_osnoise.c +++ b/kernel/trace/trace_osnoise.c @@ -2198,26 +2198,24 @@ static int osnoise_options_open(struct inode *inode= , struct file *file) =20 /** * osnoise_options_write - Write function for "options" entry - * @filp: The active open file structure - * @ubuf: The user buffer that contains the value to write - * @cnt: The maximum number of bytes to write to "file" - * @ppos: The current position in @file + * @iocb: Metadata for IO + * @from: The user buffer that contains the value to write * * Writing the option name sets the option, writing the "NO_" * prefix in front of the option name disables it. * * Writing "DEFAULTS" resets the option values to the default ones. */ -static ssize_t osnoise_options_write(struct file *filp, const char __user = *ubuf, - size_t cnt, loff_t *ppos) +static ssize_t osnoise_options_write(struct kiocb *iocb, struct iov_iter *= from) { int running, option, enable, retval; + size_t cnt =3D iov_iter_count(from); char buf[256], *option_str; =20 if (cnt >=3D 256) return -EINVAL; =20 - if (copy_from_user(buf, ubuf, cnt)) + if (!copy_from_iter_full(buf, cnt, from)) return -EFAULT; =20 buf[cnt] =3D 0; @@ -2281,10 +2279,9 @@ static ssize_t osnoise_options_write(struct file *fi= lp, const char __user *ubuf, * * Prints the "cpus" output into the user-provided buffer. */ -static ssize_t -osnoise_cpus_read(struct file *filp, char __user *ubuf, size_t count, - loff_t *ppos) +static ssize_t osnoise_cpus_read(struct kiocb *iocb, struct iov_iter *to) { + ssize_t count =3D iov_iter_count(to); char *mask_str; int len; =20 @@ -2303,7 +2300,7 @@ osnoise_cpus_read(struct file *filp, char __user *ubu= f, size_t count, goto out_free; } =20 - count =3D simple_read_from_buffer(ubuf, count, ppos, mask_str, len); + count =3D simple_copy_to_iter(mask_str, &iocb->ki_pos, len, to); =20 out_free: kfree(mask_str); @@ -2329,18 +2326,17 @@ osnoise_cpus_read(struct file *filp, char __user *u= buf, size_t count, * other CPUs. For instance, one might run osnoise in one HT CPU * while observing what is running on the sibling HT CPU. */ -static ssize_t -osnoise_cpus_write(struct file *filp, const char __user *ubuf, size_t coun= t, - loff_t *ppos) +static ssize_t osnoise_cpus_write(struct kiocb *iocb, struct iov_iter *fro= m) { cpumask_var_t osnoise_cpumask_new; + size_t count =3D iov_iter_count(from); int running, err; char buf[256]; =20 if (count >=3D 256) return -EINVAL; =20 - if (copy_from_user(buf, ubuf, count)) + if (!copy_from_iter_full(buf, count, from)) return -EFAULT; =20 if (!zalloc_cpumask_var(&osnoise_cpumask_new, GFP_KERNEL)) @@ -2460,11 +2456,9 @@ static int timerlat_fd_open(struct inode *inode, str= uct file *file) * * Prints 1 on timerlat, the number of interferences on osnoise, -1 on err= or. */ -static ssize_t -timerlat_fd_read(struct file *file, char __user *ubuf, size_t count, - loff_t *ppos) +static ssize_t timerlat_fd_read(struct kiocb *iocb, struct iov_iter *to) { - long cpu =3D (long) file->private_data; + long cpu =3D (long) iocb->ki_filp->private_data; struct osnoise_variables *osn_var; struct timerlat_variables *tlat; struct timerlat_sample s; @@ -2665,7 +2659,7 @@ static struct trace_min_max_param timerlat_period =3D= { =20 static const struct file_operations timerlat_fd_fops =3D { .open =3D timerlat_fd_open, - .read =3D timerlat_fd_read, + .read_iter =3D timerlat_fd_read, .release =3D timerlat_fd_release, .llseek =3D generic_file_llseek, }; @@ -2673,17 +2667,17 @@ static const struct file_operations timerlat_fd_fop= s =3D { =20 static const struct file_operations cpus_fops =3D { .open =3D tracing_open_generic, - .read =3D osnoise_cpus_read, - .write =3D osnoise_cpus_write, + .read_iter =3D osnoise_cpus_read, + .write_iter =3D osnoise_cpus_write, .llseek =3D generic_file_llseek, }; =20 static const struct file_operations osnoise_options_fops =3D { .open =3D osnoise_options_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D seq_release, - .write =3D osnoise_options_write + .write_iter =3D osnoise_options_write }; =20 #ifdef CONFIG_TIMERLAT_TRACER diff --git a/kernel/trace/trace_printk.c b/kernel/trace/trace_printk.c index 29f6e95439b6..c98e09959e3c 100644 --- a/kernel/trace/trace_printk.c +++ b/kernel/trace/trace_printk.c @@ -371,7 +371,7 @@ ftrace_formats_open(struct inode *inode, struct file *f= ile) =20 static const struct file_operations ftrace_formats_fops =3D { .open =3D ftrace_formats_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D seq_release, }; diff --git a/kernel/trace/trace_recursion_record.c b/kernel/trace/trace_rec= ursion_record.c index a520b11afb0d..d3b91a732d25 100644 --- a/kernel/trace/trace_recursion_record.c +++ b/kernel/trace/trace_recursion_record.c @@ -200,11 +200,9 @@ static int recursed_function_open(struct inode *inode,= struct file *file) return ret; } =20 -static ssize_t recursed_function_write(struct file *file, - const char __user *buffer, - size_t count, loff_t *ppos) +static ssize_t recursed_function_write(struct kiocb *iocb, struct iov_iter= *from) { - return count; + return iov_iter_count(from); } =20 static int recursed_function_release(struct inode *inode, struct file *fil= e) @@ -216,8 +214,8 @@ static int recursed_function_release(struct inode *inod= e, struct file *file) =20 static const struct file_operations recursed_functions_fops =3D { .open =3D recursed_function_open, - .write =3D recursed_function_write, - .read =3D seq_read, + .write_iter =3D recursed_function_write, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D recursed_function_release, }; diff --git a/kernel/trace/trace_sched_switch.c b/kernel/trace/trace_sched_s= witch.c index 8a407adb0e1c..510c6320f7c7 100644 --- a/kernel/trace/trace_sched_switch.c +++ b/kernel/trace/trace_sched_switch.c @@ -510,7 +510,7 @@ static int tracing_saved_tgids_open(struct inode *inode= , struct file *filp) =20 const struct file_operations tracing_saved_tgids_fops =3D { .open =3D tracing_saved_tgids_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D seq_release, }; @@ -589,14 +589,13 @@ static int tracing_saved_cmdlines_open(struct inode *= inode, struct file *filp) =20 const struct file_operations tracing_saved_cmdlines_fops =3D { .open =3D tracing_saved_cmdlines_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D seq_release, }; =20 static ssize_t -tracing_saved_cmdlines_size_read(struct file *filp, char __user *ubuf, - size_t cnt, loff_t *ppos) +tracing_saved_cmdlines_size_read(struct kiocb *iocb, struct iov_iter *to) { char buf[64]; int r; @@ -607,7 +606,7 @@ tracing_saved_cmdlines_size_read(struct file *filp, cha= r __user *ubuf, arch_spin_unlock(&trace_cmdline_lock); preempt_enable(); =20 - return simple_read_from_buffer(ubuf, cnt, ppos, buf, r); + return simple_copy_to_iter(buf, &iocb->ki_pos, r, to); } =20 void trace_free_saved_cmdlines_buffer(void) @@ -635,13 +634,13 @@ static int tracing_resize_saved_cmdlines(unsigned int= val) } =20 static ssize_t -tracing_saved_cmdlines_size_write(struct file *filp, const char __user *ub= uf, - size_t cnt, loff_t *ppos) +tracing_saved_cmdlines_size_write(struct kiocb *iocb, struct iov_iter *fro= m) { + size_t cnt =3D iov_iter_count(from); unsigned long val; int ret; =20 - ret =3D kstrtoul_from_user(ubuf, cnt, 10, &val); + ret =3D kstrtoul_from_iter(from, cnt, 10, &val); if (ret) return ret; =20 @@ -653,13 +652,13 @@ tracing_saved_cmdlines_size_write(struct file *filp, = const char __user *ubuf, if (ret < 0) return ret; =20 - *ppos +=3D cnt; + iocb->ki_pos +=3D cnt; =20 return cnt; } =20 const struct file_operations tracing_saved_cmdlines_size_fops =3D { .open =3D tracing_open_generic, - .read =3D tracing_saved_cmdlines_size_read, - .write =3D tracing_saved_cmdlines_size_write, + .read_iter =3D tracing_saved_cmdlines_size_read, + .write_iter =3D tracing_saved_cmdlines_size_write, }; diff --git a/kernel/trace/trace_stack.c b/kernel/trace/trace_stack.c index 5a48dba912ea..fb657b1203de 100644 --- a/kernel/trace/trace_stack.c +++ b/kernel/trace/trace_stack.c @@ -320,29 +320,26 @@ static struct ftrace_ops trace_ops __read_mostly =3D .func =3D stack_trace_call, }; =20 -static ssize_t -stack_max_size_read(struct file *filp, char __user *ubuf, - size_t count, loff_t *ppos) +static ssize_t stack_max_size_read(struct kiocb *iocb, struct iov_iter *to) { - unsigned long *ptr =3D filp->private_data; + unsigned long *ptr =3D iocb->ki_filp->private_data; char buf[64]; int r; =20 r =3D snprintf(buf, sizeof(buf), "%ld\n", *ptr); if (r > sizeof(buf)) r =3D sizeof(buf); - return simple_read_from_buffer(ubuf, count, ppos, buf, r); + return simple_copy_to_iter(buf, &iocb->ki_pos, r, to); } =20 -static ssize_t -stack_max_size_write(struct file *filp, const char __user *ubuf, - size_t count, loff_t *ppos) +static ssize_t stack_max_size_write(struct kiocb *iocb, struct iov_iter *f= rom) { - long *ptr =3D filp->private_data; + long *ptr =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); unsigned long val, flags; int ret; =20 - ret =3D kstrtoul_from_user(ubuf, count, 10, &val); + ret =3D kstrtoul_from_iter(from, count, 10, &val); if (ret) return ret; =20 @@ -367,8 +364,8 @@ stack_max_size_write(struct file *filp, const char __us= er *ubuf, =20 static const struct file_operations stack_max_size_fops =3D { .open =3D tracing_open_generic, - .read =3D stack_max_size_read, - .write =3D stack_max_size_write, + .read_iter =3D stack_max_size_read, + .write_iter =3D stack_max_size_write, .llseek =3D default_llseek, }; =20 @@ -486,7 +483,7 @@ static int stack_trace_open(struct inode *inode, struct= file *file) =20 static const struct file_operations stack_trace_fops =3D { .open =3D stack_trace_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D seq_release, }; @@ -505,8 +502,8 @@ stack_trace_filter_open(struct inode *inode, struct fil= e *file) =20 static const struct file_operations stack_trace_filter_fops =3D { .open =3D stack_trace_filter_open, - .read =3D seq_read, - .write =3D ftrace_filter_write, + .read_iter =3D seq_read_iter, + .write_iter =3D ftrace_filter_write_iter, .llseek =3D tracing_lseek, .release =3D ftrace_regex_release, }; diff --git a/kernel/trace/trace_stat.c b/kernel/trace/trace_stat.c index bb247beec447..d6cf9e0ecf81 100644 --- a/kernel/trace/trace_stat.c +++ b/kernel/trace/trace_stat.c @@ -269,7 +269,7 @@ static int tracing_stat_release(struct inode *i, struct= file *f) =20 static const struct file_operations tracing_stat_fops =3D { .open =3D tracing_stat_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D tracing_stat_release }; diff --git a/kernel/trace/trace_uprobe.c b/kernel/trace/trace_uprobe.c index 9e461362450a..04a06f938969 100644 --- a/kernel/trace/trace_uprobe.c +++ b/kernel/trace/trace_uprobe.c @@ -800,14 +800,15 @@ static ssize_t probes_write(struct file *file, const = char __user *buffer, return trace_parse_run_command(file, buffer, count, ppos, create_or_delete_trace_uprobe); } +FOPS_WRITE_ITER_HELPER(probes_write); =20 static const struct file_operations uprobe_events_ops =3D { .owner =3D THIS_MODULE, .open =3D probes_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D seq_release, - .write =3D probes_write, + .write_iter =3D probes_write_iter, }; =20 /* Probes profiling interfaces */ @@ -846,7 +847,7 @@ static int profile_open(struct inode *inode, struct fil= e *file) static const struct file_operations uprobe_profile_ops =3D { .owner =3D THIS_MODULE, .open =3D profile_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D seq_release, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f53.google.com (mail-io1-f53.google.com [209.85.166.53]) (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 DA6521327E8 for ; Thu, 11 Apr 2024 15:34:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849642; cv=none; b=gpid+Y5k6B6sDARF36KVeeK5TZ4rAcZc6w/cjZblkV5I6+RC7EDfflGwpldv309mY88ZDXRv08xanws6Glq/n04cE+YLG2WnesvSDWL4AmiDrXRZBfafcQL3yIwLByX6e4yUH6CfhqzUBmvrGhhODHta5FwkhFSMIUIbUC5X9TU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849642; c=relaxed/simple; bh=7sv9860TXH7IOdatpF5LRD+bbd/JtMyPBrPs8cfsoNo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=EdY51wG/RGa1o6XEfRRRpHMa96YGPXuety7Mjn3wuuBpOlj8Lpyta6ZWalEmOwpfqWUYsu9LrLVPQvaTyUQ8u94D9lNRHYsc6w3gwFhupw0soC5+dspvZqpfWvrEC6v/YR3bmnCVqPfbMQK3mlzujBU0YIHYzb2nzyjhBANHy0Q= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=r53+Po80; arc=none smtp.client-ip=209.85.166.53 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="r53+Po80" Received: by mail-io1-f53.google.com with SMTP id ca18e2360f4ac-7d5ed700c2dso16131339f.0 for ; Thu, 11 Apr 2024 08:34:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849639; x=1713454439; 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=iNMxscXeqQTEhlFBdcHasiHVnqmxq8lHL2PENTNUxmc=; b=r53+Po80cL3mUDkRbz1JSxAesj7jsoNBCahgXZ+Dg/6DIufh4s1crdYCJjyhYD4oDW bpmlT/F8SqhaNuybFubDUA1W4if2BdLPPwlknS2xw5+nLdN4jREoyFQ40s4w0nlRjNy5 znE3no9MHoJIwwvvJmyLo0oxNXJk0gj9Q8G3Rsoe4JjIRGhLhC7cgV5AZxBkRp4kdEi4 zPRrXCdWNnYpHjr0HAgiJUmdXo+CF8uehHEaoOjQuaxZIKq8tZCME6Ay8Qwt/ovH23/R YQ9URpfgwAodm++3+UoRAACM6H9dt4X7C/1jI3IeGH6ZjeWlull7yC4HqUabZbkFWkcS WtBA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849639; x=1713454439; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=iNMxscXeqQTEhlFBdcHasiHVnqmxq8lHL2PENTNUxmc=; b=lVAUv24D1vfvWj58UyXNvH/8OHnY0snMIYuaGBLP9uNynO+388X1YLv3c91RzLs5JW ytUUuiyfNbDWssGuLwI+TVDVU58gwcq1+tMse7ivxCCfvgz0ypeJP4XbZeSy9tRpYEST iFMf0J1bcn6RbqNL2tohgkFdzTUfL4uGHWBLk6UpDL6Rb65Ndk1hqiSyNktu4pbGcbmn 84ldN4lUVeFKh3KdwStmo+Vwuf59rfwa1ScJsMN7edAuldrUbUSA0oXRevX3QTgAjaaP YHwy4d4ELqG9I5os6Jm0HYR3VOsHMoLhOmj/boeDIiBeCL+bLlF+SADpJGtVZ8mMRxG2 ZYzQ== X-Gm-Message-State: AOJu0Yy0GLXy8KI/414rwP90Y9UU4R+iH/lFtb/B7OFXAKmczaL+pHV0 qGsKvymEYaUuWXoFCc8NxuD+5PXl694aRthtPkal5AuxoCR5pUHA1amg5hPR5MUsjRgOk0ujA2+ C X-Google-Smtp-Source: AGHT+IH/bYpC5CvfGe5kVS6YqlavyxZW4EpB8OHIj2cH0URM+diHGzI5+V2/eT3s5P+JILweSe//2g== X-Received: by 2002:a6b:f312:0:b0:7d5:de23:13a9 with SMTP id m18-20020a6bf312000000b007d5de2313a9mr154917ioh.1.1712849639318; Thu, 11 Apr 2024 08:33:59 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.33.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:33:58 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 081/437] gcov: convert to read/write iterators Date: Thu, 11 Apr 2024 09:13:41 -0600 Message-ID: <20240411153126.16201-82-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- kernel/gcov/fs.c | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/kernel/gcov/fs.c b/kernel/gcov/fs.c index 01520689b57c..02f966688ca3 100644 --- a/kernel/gcov/fs.c +++ b/kernel/gcov/fs.c @@ -379,14 +379,13 @@ static void remove_node(struct gcov_node *node); * corresponding file. If all associated object files have been unloaded, * remove the debug fs node as well. */ -static ssize_t gcov_seq_write(struct file *file, const char __user *addr, - size_t len, loff_t *pos) +static ssize_t gcov_seq_write(struct kiocb *iocb, struct iov_iter *from) { struct seq_file *seq; struct gcov_info *info; struct gcov_node *node; =20 - seq =3D file->private_data; + seq =3D iocb->ki_filp->private_data; info =3D gcov_iter_get_info(seq->private); mutex_lock(&node_lock); node =3D get_node_by_name(gcov_info_filename(info)); @@ -401,7 +400,7 @@ static ssize_t gcov_seq_write(struct file *file, const = char __user *addr, gcov_info_reset(info); mutex_unlock(&node_lock); =20 - return len; + return iov_iter_count(from); } =20 /* @@ -511,9 +510,9 @@ static void add_links(struct gcov_node *node, struct de= ntry *parent) static const struct file_operations gcov_data_fops =3D { .open =3D gcov_seq_open, .release =3D gcov_seq_release, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, - .write =3D gcov_seq_write, + .write_iter =3D gcov_seq_write, }; =20 /* Basic initialization of a new node. */ @@ -632,8 +631,7 @@ static struct gcov_node *get_child_by_name(struct gcov_= node *parent, * write() implementation for reset file. Reset all profiling data to zero * and remove nodes for which all associated object files are unloaded. */ -static ssize_t reset_write(struct file *file, const char __user *addr, - size_t len, loff_t *pos) +static ssize_t reset_write(struct kiocb *iocb, struct iov_iter *from) { struct gcov_node *node; =20 @@ -650,20 +648,19 @@ static ssize_t reset_write(struct file *file, const c= har __user *addr, } mutex_unlock(&node_lock); =20 - return len; + return iov_iter_count(from); } =20 /* read() implementation for reset file. Unused. */ -static ssize_t reset_read(struct file *file, char __user *addr, size_t len, - loff_t *pos) +static ssize_t reset_read(struct kiocb *iocb, struct iov_iter *to) { /* Allow read operation so that a recursive copy won't fail. */ return 0; } =20 static const struct file_operations gcov_reset_fops =3D { - .write =3D reset_write, - .read =3D reset_read, + .write_iter =3D reset_write, + .read_iter =3D reset_read, .llseek =3D noop_llseek, }; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f52.google.com (mail-io1-f52.google.com [209.85.166.52]) (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 4084113280D for ; Thu, 11 Apr 2024 15:34:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849643; cv=none; b=eq0BB5e0E52RwWFebtKu+RZi4lR7vLEclWJkLRpdjVCWM/4nEOlHxXlK8bjLnjF01iPQtAj1isxu6Br/bTc+VUBEYFeHOtuQd+CB+LUPcYzaEakjxvqxem3B+MPa+mveVO/vytSXaDTfZ5M5rObNQbM7+9QlWSWlWGa7ImKUBSw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849643; c=relaxed/simple; bh=wQcncLTvx9x0uslUSkx8ifDio14ylUYv78Cehqwdh6Y=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=TcER4WbAhPBqIvUBeaXHLJxaEhHFC2CGMA5wbg1Gm1fj4cfXTZ6FYmf7mCnc75yyJ55sNnnfn6qP1MLVV3/BCv9/JVYnGVZvA/HvI38LYl3ecdn1WUdXdgkJDBaOINpVn2B3kT7DmJFzZ64in8oaHgZbsH0Kg0IeIwFUoMzkSi0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=FhRNiyJc; arc=none smtp.client-ip=209.85.166.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="FhRNiyJc" Received: by mail-io1-f52.google.com with SMTP id ca18e2360f4ac-7cc0e831e11so170469839f.1 for ; Thu, 11 Apr 2024 08:34:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849641; x=1713454441; 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=4hXmLbaCqww99UA4BWGlx+u7paittu8zQHABuwDy1yM=; b=FhRNiyJcraYE/D3HsCEGxgJ8YzBKXniZrs1ZJQQWezGJeYb5efoR704HGCjftousn7 PPS3QajumIWnQufqEs7DNda/LHNlfqwACBcKZFQ6QguNh8Gf35d1nVYhkDE+2y6k9EfV UDn+cX0vsh7ZwF9dgkwDXUr+mY/+xqlPVBaOX0NMhGm4qqylPsPmHMIxprLwiSJbE4Zl 81RhwcWdEYhlcdV9B3Uty+jm0SEkbsJGyaGs5GYgf/UfXzCpMtSXyTvSIlpP70aQbPmG sQEPAp4EugNaYoH2fVJl0dRWsYJxvzLueBgb70XJb3HHMEgdNqF0yP10gcZzIPWkE6Ew b6AQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849641; x=1713454441; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=4hXmLbaCqww99UA4BWGlx+u7paittu8zQHABuwDy1yM=; b=s/i+mIu/eaKAdgZy3AEOS6xRZ+3Q7sMfFR7D6m72meYMyXzsq7pV92ObK+DRNoCDsm wsUwRLa3O3WpRarsvma9p4HovVLNfd454EO7XrEu4hkSjcM5SsAlnzJeuyYNEEdhkUQI HGgb59WkdFogCVLeFZ1b1k9uIBkPf/ZdTkiFiiufl1Xdsn8BQKha/0gl7pOwjyzjLD6k O+uYrrdovodT4BZgOyYycz0bOGhzxdFtKqy0TIuDaR4KoE6LvcxhH6Xg5CRn11WJxgdC ve+RhpOEyjGKcOZPNwb8bk7TbJyQLHvihEt09KKvyicWLwqU9kBRJNPHKvN2qnYIzSZR Jdsw== X-Gm-Message-State: AOJu0YwX+GgI34Pk7IT1YI9HLcQyAs9Wk9B6J3sOUQMk3qDHSYmVy395 waH+h5EpW6vN0BtAt6xyfUEUSiv9i/pBXqxbq0MwU+10ZCKMXEE8YbFXaRqEEZv+cYUiUzryiRp p X-Google-Smtp-Source: AGHT+IGWGHJOcely6hgFMppcuhj6Iz/a0f1IKao1Ot2VTAIA3l/lSXpLjkN0ZXBqTSNr66SlNGRIiw== X-Received: by 2002:a5e:9907:0:b0:7d6:751f:192 with SMTP id t7-20020a5e9907000000b007d6751f0192mr175374ioj.2.1712849641128; Thu, 11 Apr 2024 08:34:01 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.33.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:33:59 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 082/437] sched/debug: convert to read/write iterators Date: Thu, 11 Apr 2024 09:13:42 -0600 Message-ID: <20240411153126.16201-83-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- kernel/sched/debug.c | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/kernel/sched/debug.c b/kernel/sched/debug.c index 686a21ea1791..e1e7856727cb 100644 --- a/kernel/sched/debug.c +++ b/kernel/sched/debug.c @@ -120,26 +120,25 @@ static int sched_feat_set(char *cmp) return 0; } =20 -static ssize_t -sched_feat_write(struct file *filp, const char __user *ubuf, - size_t cnt, loff_t *ppos) +static ssize_t sched_feat_write_iter(struct kiocb *iocb, struct iov_iter *= from) { char buf[64]; char *cmp; int ret; struct inode *inode; + size_t cnt =3D iov_iter_count(from); =20 if (cnt > 63) cnt =3D 63; =20 - if (copy_from_user(&buf, ubuf, cnt)) + if (!copy_from_iter_full(&buf, cnt, from)) return -EFAULT; =20 buf[cnt] =3D 0; cmp =3D strstrip(buf); =20 /* Ensure the static_key remains in a consistent state */ - inode =3D file_inode(filp); + inode =3D file_inode(iocb->ki_filp); cpus_read_lock(); inode_lock(inode); ret =3D sched_feat_set(cmp); @@ -148,7 +147,7 @@ sched_feat_write(struct file *filp, const char __user *= ubuf, if (ret < 0) return ret; =20 - *ppos +=3D cnt; + iocb->ki_pos +=3D cnt; =20 return cnt; } @@ -160,24 +159,25 @@ static int sched_feat_open(struct inode *inode, struc= t file *filp) =20 static const struct file_operations sched_feat_fops =3D { .open =3D sched_feat_open, - .write =3D sched_feat_write, - .read =3D seq_read, + .write_iter =3D sched_feat_write_iter, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D single_release, }; =20 #ifdef CONFIG_SMP =20 -static ssize_t sched_scaling_write(struct file *filp, const char __user *u= buf, - size_t cnt, loff_t *ppos) +static ssize_t sched_scaling_write_iter(struct kiocb *iocb, + struct iov_iter *from) { + size_t cnt =3D iov_iter_count(from); char buf[16]; unsigned int scaling; =20 if (cnt > 15) cnt =3D 15; =20 - if (copy_from_user(&buf, ubuf, cnt)) + if (!copy_from_iter_full(&buf, cnt, from)) return -EFAULT; buf[cnt] =3D '\0'; =20 @@ -191,7 +191,7 @@ static ssize_t sched_scaling_write(struct file *filp, c= onst char __user *ubuf, if (sched_update_scaling()) return -EINVAL; =20 - *ppos +=3D cnt; + iocb->ki_pos +=3D cnt; return cnt; } =20 @@ -208,8 +208,8 @@ static int sched_scaling_open(struct inode *inode, stru= ct file *filp) =20 static const struct file_operations sched_scaling_fops =3D { .open =3D sched_scaling_open, - .write =3D sched_scaling_write, - .read =3D seq_read, + .write_iter =3D sched_scaling_write_iter, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D single_release, }; @@ -218,16 +218,16 @@ static const struct file_operations sched_scaling_fop= s =3D { =20 #ifdef CONFIG_PREEMPT_DYNAMIC =20 -static ssize_t sched_dynamic_write(struct file *filp, const char __user *u= buf, - size_t cnt, loff_t *ppos) +static ssize_t sched_dynamic_write(struct kiocb *iocb, struct iov_iter *fr= om) { + size_t cnt =3D iov_iter_count(from); char buf[16]; int mode; =20 if (cnt > 15) cnt =3D 15; =20 - if (copy_from_user(&buf, ubuf, cnt)) + if (!copy_from_iter_full(&buf, cnt, from)) return -EFAULT; =20 buf[cnt] =3D 0; @@ -237,7 +237,7 @@ static ssize_t sched_dynamic_write(struct file *filp, c= onst char __user *ubuf, =20 sched_dynamic_update(mode); =20 - *ppos +=3D cnt; + iocb->ki_pos +=3D cnt; =20 return cnt; } @@ -270,8 +270,8 @@ static int sched_dynamic_open(struct inode *inode, stru= ct file *filp) =20 static const struct file_operations sched_dynamic_fops =3D { .open =3D sched_dynamic_open, - .write =3D sched_dynamic_write, - .read =3D seq_read, + .write_iter =3D sched_dynamic_write, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D single_release, }; @@ -327,7 +327,7 @@ static int sched_debug_open(struct inode *inode, struct= file *filp) =20 static const struct file_operations sched_debug_fops =3D { .open =3D sched_debug_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D seq_release, }; @@ -402,7 +402,7 @@ static int sd_flags_open(struct inode *inode, struct fi= le *file) =20 static const struct file_operations sd_flags_fops =3D { .open =3D sd_flags_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D single_release, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f52.google.com (mail-io1-f52.google.com [209.85.166.52]) (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 F29E81332B0 for ; Thu, 11 Apr 2024 15:34:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849645; cv=none; b=C9tty8EFYi/GTGMfP4sL26ajYr5CS/gjtRHPmiwPVOPKMQP9vfxMwv0elZwYg470ctxhY/EfkZJxBxsChj9yu+eaIVCqBV7WuRuwz+hxdEbO0ofJ4BNGPe/2bOZ+WESaIIcFjCOpHpDmrG+yq9m3IOfDHLPZWNOg8o3x4mhUFt0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849645; c=relaxed/simple; bh=dhvFxfup7smCS2tY0UKeEOj506EogbS1zmag/Nv+yHA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=YEZsLhyBi7akJbPmQnh2D5jjfOX58Do4WKpSCoIUaYTuVzhlaVHr2i/9gblHezcpvR+w1t7aIBAT2RUYROfRw6Uzfchqwbt58RgHiq0XgVx/yF9IkGU3spO66g4ydORPPl8h/RRHfaAHwyTKPGkJcr9aHcy1V0vBdwR94e+ukr0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=j7u7F3H3; arc=none smtp.client-ip=209.85.166.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="j7u7F3H3" Received: by mail-io1-f52.google.com with SMTP id ca18e2360f4ac-7d6112ba6baso58006239f.1 for ; Thu, 11 Apr 2024 08:34:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849643; x=1713454443; 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=Pav+Q6I1FDbUoscEArc8DWkYbazZgyALLdsNa2Zru1c=; b=j7u7F3H3SphrJ66LTS939OYmZY2Nx+/UNOMZbjhRDrCormeTdtABP1FiBiyHt0AmvG gfJF4EQyGVmZQjsOhce6XPqaSiIOho6qNZhaqrWi8CQ+il+MeIy4bCrWDIenUd8dmo+U tG5J/91VYo5T/eI9OE/9IQZ6jNYhOSjj0b8Rv8CgYI6lPVKIL9RhL7JvtvO9fsskvfjz +VsaX3zlAIX8oWrkMvtAKZgWmpCQksjjcyJgmcBzlUieLXIRLe+qCs9+lM+WWFXz2dlm fLab85tgRtOyhAA8KzCnf17TmpiD7XVWqQ+ViNAFdAozpXnNa/oGNAinmtnG2g/pTG0A X+Tg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849643; x=1713454443; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Pav+Q6I1FDbUoscEArc8DWkYbazZgyALLdsNa2Zru1c=; b=GjTkcS5F2HFX4gHBuQLhz6TjDf+6xLQkwTYHkd/n3o8nDx8ul2ZM/06JiD0zfoE1TK IOQeoCcEnwJHYnPk38/MD9R/UGxytzebkgcrh0e/n1xiiaPHAmS+05NcT4h9vTmYIfhe h2g3rclkmdu6C0jpEBHzjdmswwHuviAQ0f9K9TLjEna1xRApmpidSABrsJryaWuKgh69 hXLIR2q7yiZDmKXMGodVK6LphhEV1SlLqWqPK4laozKhQgm1QV+5wRgtqYhGtUEskAXd 4emk7YzPvd5IkzR3ualOCiK56lfMJBV91D/X6uouD456zQp1oDHaawvGywenU6oubRfb VeCw== X-Gm-Message-State: AOJu0YyhP+q6dh9rE24SgFBjT9I/sHGIX/jPPDzQvzMu0YpMHJ81IeBO z/ZEtdQ72WYCm7VBpVxmYCVuVzDe94AkckiWrZinUms8Eg9SMYOg5mS0ym6SHaD+NgCKonTtOn5 D X-Google-Smtp-Source: AGHT+IHPmk0EoEqYBAmduTCKkLviXpLSmrSXJctjdcBvX7gh/dy9P29SwDSGoDH3xgn203MTNHsBYA== X-Received: by 2002:a05:6602:38d:b0:7d6:513b:254 with SMTP id f13-20020a056602038d00b007d6513b0254mr177064iov.2.1712849642804; Thu, 11 Apr 2024 08:34:02 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.34.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:34:01 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 083/437] kernel/irq: convert debugfs helpers to read/write iterators Date: Thu, 11 Apr 2024 09:13:43 -0600 Message-ID: <20240411153126.16201-84-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- kernel/irq/debugfs.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/kernel/irq/debugfs.c b/kernel/irq/debugfs.c index aae0402507ed..addf000046b8 100644 --- a/kernel/irq/debugfs.c +++ b/kernel/irq/debugfs.c @@ -193,15 +193,15 @@ static int irq_debug_open(struct inode *inode, struct= file *file) return single_open(file, irq_debug_show, inode->i_private); } =20 -static ssize_t irq_debug_write(struct file *file, const char __user *user_= buf, - size_t count, loff_t *ppos) +static ssize_t irq_debug_write(struct kiocb *iocb, struct iov_iter *from) { - struct irq_desc *desc =3D file_inode(file)->i_private; + struct irq_desc *desc =3D file_inode(iocb->ki_filp)->i_private; + size_t count =3D iov_iter_count(from); char buf[8] =3D { 0, }; size_t size; =20 size =3D min(sizeof(buf) - 1, count); - if (copy_from_user(buf, user_buf, size)) + if (!copy_from_iter_full(buf, size, from)) return -EFAULT; =20 if (!strncmp(buf, "trigger", size)) { @@ -215,8 +215,8 @@ static ssize_t irq_debug_write(struct file *file, const= char __user *user_buf, =20 static const struct file_operations dfs_irq_ops =3D { .open =3D irq_debug_open, - .write =3D irq_debug_write, - .read =3D seq_read, + .write_iter =3D irq_debug_write, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D single_release, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f50.google.com (mail-io1-f50.google.com [209.85.166.50]) (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 DD2B01332BD for ; Thu, 11 Apr 2024 15:34:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849647; cv=none; b=HgCkN6FVzYP1atKnwcQp2KDHke/fx+/tYjwY8V1W0qdUOjbaskuUwtJwXVpsuSYQIDpU/OgEq1/KEpa4/xkY0yvUSuKs65y6+gtbYrjOun7WDav/P0o8TDLsENvkf6JxjtNU3Fbpggf2yWKtoO8zoyofi5rk18EBxyaM1NyHYpw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849647; c=relaxed/simple; bh=Qar3/vvrpFOmManApyEpAOBw2M+pqPcvhgHpTd9sh64=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=uQ3HU363xYeKhgUJ9YUv1dS0+KXUvK0adM1wDLPWdQ/SU6HS9ZnQIx+kTtY8Ep+hvn0ePQBQD6LX8wveRVwNkXlMUta2lzwu8RSIz4UAV9LhQLUTLbG9F0A0aBRDc9Y3bzBoUWqM6OQzMxFU04A+pLOKTK0htXE/w2VUZWaS1HM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=0KOMKACr; arc=none smtp.client-ip=209.85.166.50 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="0KOMKACr" Received: by mail-io1-f50.google.com with SMTP id ca18e2360f4ac-7d6112ba6baso58008139f.1 for ; Thu, 11 Apr 2024 08:34:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849645; x=1713454445; 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=zjrSkmmvxEk/YQX9m0GLB+6VRfRvSoF5s9NnsEDntYc=; b=0KOMKACr0N8/MVr0hWNjyYLgHiBlra3mCEQXC03Mixy9XLCCYlMJ08ZI5zh7NWGKxl gmOMEYZygVushnCcGuUjDikHsbopWIWH5fU2idGaLlajhn58ZfSzmf7ZkLmged/RGboQ 9Lmtu7e9Ft/I4aYNz5D9bP37a9XeFC3hEWYV1tqTpa47Do+3kqq5k6AH/xYsORVROYjT 67LvDiHeEbJctJmlPDhEeIlZKGxKw29FAIhH3YX4O+P97waQxZCivrUg4i8sBpDyLGIS Wym1egnWanjAHThHpBNhdyr+lSg73Yf5aIKoO/nSXrIRCxz4UM9FEJGDl5VIeDVbS55D VwGQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849645; x=1713454445; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=zjrSkmmvxEk/YQX9m0GLB+6VRfRvSoF5s9NnsEDntYc=; b=K1wV1b7b/kOxv4Na77j1kBjMlqrgqHGQGgmIH7UgzVgT7GzdA4VHjg9Bkm4TzZx9EA dsbtggWvSlc1l4ZQ311YiqEdmvb23aksc+SkfNyLOVAlBxtVDY5/I9I0/lzxHAmu3zAm DcYDbTcVjCDmYZWECwjvEH25WoAaYRs9vV49f/EwpzzgqK3ChMjT4g+aKTD3OdAPla8T TOq5JNoz88LUNQ4SCzcMhY0CBgYMVmYFI10vktVQy/J7fmmuNZ/ftkWM2UBvbf9R7vsW J9oWdUsOY6z0k/TpsTPpGCJsqeanotWqAA0N4vNEmSPixvXxBEl9nyQeQx1nVcjmBHbf udmA== X-Gm-Message-State: AOJu0YxABLVngs8EFigg3Qi3RK2kyDlmPm6/3roOPlkdvMqe2XLuW3R2 EEw/vUJQY/TbSiv9NUuSz997xaLDY0o1IPkOeKqYpyjM80PmJV/Q0ZAYSr7Mim0ZTxUzKYDg40f x X-Google-Smtp-Source: AGHT+IGd+n0H0fLE9apDgdDk1Edcw/nfNCHOo3VKhpf55iZ6FHABfA3gUnaPp/TcQ+ymb76jqOrqTw== X-Received: by 2002:a6b:f312:0:b0:7d5:de23:13a9 with SMTP id m18-20020a6bf312000000b007d5de2313a9mr155211ioh.1.1712849644717; Thu, 11 Apr 2024 08:34:04 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.34.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:34:03 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 084/437] locking/lock_events: convert to read/write iterators Date: Thu, 11 Apr 2024 09:13:44 -0600 Message-ID: <20240411153126.16201-85-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- kernel/locking/lock_events.c | 18 +++++++++--------- kernel/locking/lock_events.h | 4 ++-- kernel/locking/qspinlock_stat.h | 7 +++---- 3 files changed, 14 insertions(+), 15 deletions(-) diff --git a/kernel/locking/lock_events.c b/kernel/locking/lock_events.c index e68d82099558..1f1efb123a1b 100644 --- a/kernel/locking/lock_events.c +++ b/kernel/locking/lock_events.c @@ -20,6 +20,7 @@ #include #include #include +#include =20 #include "lock_events.h" =20 @@ -58,8 +59,7 @@ DEFINE_PER_CPU(unsigned long, lockevents[lockevent_num]); /* * The lockevent_read() function can be overridden. */ -ssize_t __weak lockevent_read(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos) +ssize_t __weak lockevent_read(struct kiocb *iocb, struct iov_iter *to) { char buf[64]; int cpu, id, len; @@ -68,7 +68,7 @@ ssize_t __weak lockevent_read(struct file *file, char __u= ser *user_buf, /* * Get the counter ID stored in file->f_inode->i_private */ - id =3D (long)file_inode(file)->i_private; + id =3D (long)file_inode(iocb->ki_filp)->i_private; =20 if (id >=3D lockevent_num) return -EBADF; @@ -77,7 +77,7 @@ ssize_t __weak lockevent_read(struct file *file, char __u= ser *user_buf, sum +=3D per_cpu(lockevents[id], cpu); len =3D snprintf(buf, sizeof(buf) - 1, "%llu\n", sum); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 /* @@ -85,15 +85,15 @@ ssize_t __weak lockevent_read(struct file *file, char _= _user *user_buf, * * When idx =3D reset_cnts, reset all the counts. */ -static ssize_t lockevent_write(struct file *file, const char __user *user_= buf, - size_t count, loff_t *ppos) +static ssize_t lockevent_write(struct kiocb *iocb, struct iov_iter *from) { + size_t count =3D iov_iter_count(from); int cpu; =20 /* * Get the counter ID stored in file->f_inode->i_private */ - if ((long)file_inode(file)->i_private !=3D LOCKEVENT_reset_cnts) + if ((long)file_inode(iocb->ki_filp)->i_private !=3D LOCKEVENT_reset_cnts) return count; =20 for_each_possible_cpu(cpu) { @@ -110,8 +110,8 @@ static ssize_t lockevent_write(struct file *file, const= char __user *user_buf, * Debugfs data structures */ static const struct file_operations fops_lockevent =3D { - .read =3D lockevent_read, - .write =3D lockevent_write, + .read_iter =3D lockevent_read, + .write_iter =3D lockevent_write, .llseek =3D default_llseek, }; =20 diff --git a/kernel/locking/lock_events.h b/kernel/locking/lock_events.h index a6016b91803d..0210d1abc4d7 100644 --- a/kernel/locking/lock_events.h +++ b/kernel/locking/lock_events.h @@ -58,7 +58,7 @@ static inline void __lockevent_add(enum lock_events event= , int inc) =20 #endif /* CONFIG_LOCK_EVENT_COUNTS */ =20 -ssize_t lockevent_read(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos); +struct kiocb; +ssize_t lockevent_read(struct kiocb *iocb, struct iov_iter *to); =20 #endif /* __LOCKING_LOCK_EVENTS_H */ diff --git a/kernel/locking/qspinlock_stat.h b/kernel/locking/qspinlock_sta= t.h index e625bb410aa2..efaabdcfcddc 100644 --- a/kernel/locking/qspinlock_stat.h +++ b/kernel/locking/qspinlock_stat.h @@ -33,8 +33,7 @@ static DEFINE_PER_CPU(u64, pv_kick_time); * 3. pv_hash_hops * Average hops/hash =3D pv_hash_hops/pv_kick_unlock */ -ssize_t lockevent_read(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos) +ssize_t lockevent_read(struct kiocb *iocb, struct iov_iter *to) { char buf[64]; int cpu, id, len; @@ -43,7 +42,7 @@ ssize_t lockevent_read(struct file *file, char __user *us= er_buf, /* * Get the counter ID stored in file->f_inode->i_private */ - id =3D (long)file_inode(file)->i_private; + id =3D (long)file_inode(iocb->ki_filp)->i_private; =20 if (id >=3D lockevent_num) return -EBADF; @@ -91,7 +90,7 @@ ssize_t lockevent_read(struct file *file, char __user *us= er_buf, len =3D snprintf(buf, sizeof(buf) - 1, "%llu\n", sum); } =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 /* --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f52.google.com (mail-io1-f52.google.com [209.85.166.52]) (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 35CBA135405 for ; Thu, 11 Apr 2024 15:34:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849649; cv=none; b=ogVTFM7x4ZzJzBD7Gv1EoBP5XXSVstVMlwUCxT6A2BOKtcbZ5AR2Ya6fsgi2KaJ8ikcOS+8AAcKjgcvm34/sCbBIAH0SRzcZBnDaNSVk8mNmFy6o/bnSVu56BJ1osr+C2CLBWc32mCUTwIfovREylBqH/KfzvMUoo41HfaMYfg0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849649; c=relaxed/simple; bh=SbovdU9VFO+HM6AUrI8to95LAggTnrNdLYtygBnGjPs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=hBEFJ9/s6zQND+cYlHYuRPifACuBMMTNCA3PUBRdtz4tghSUlQTG0wkDC3bOgvF6m03irR05W+vsOU1YCUZXzDE9H0GjXF1OVA7UQS16PbRwEqQhKPC55bW+c8KTYfbs489G20qhY1kseqZxVDUIYGmEAPkaF7Tp5To3NCWwZFo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=LG3LPh00; arc=none smtp.client-ip=209.85.166.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="LG3LPh00" Received: by mail-io1-f52.google.com with SMTP id ca18e2360f4ac-7d0772bb5ffso180627539f.0 for ; Thu, 11 Apr 2024 08:34:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849646; x=1713454446; 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=adaeF9DmdVys/XfYHkM+InWjJid8VOet2hxIDinjd6M=; b=LG3LPh00SgLYjP7IZ5G/devPbIuoHRK+FRToCGPi21osp70KAsxWgQFYeaRYpE0r/0 IZRnu24zbUDuMrFVK5yywODQw2n58nK6JPnh6K7JXEkXt1+uSup53UfLrYPRUU5O+drI YW+llU++W4H6jcdrfPT0PNxULQ/BWcunmTcbQw8McCWaGILbucr3doMw/UXHEmwBWh8+ 5SQlSVzMQUWoCpR5c9GNGboqrcsUGyBlY0w9vAuI0eVQQp5VXcTP3kuzIZYR3OdNwmCK 31y7mobPcAK0/+/xqdXtzFgJdz1S8H57hLgOCE88SDMoJBLMCz4HVeR+vocHGCfb+AJc JiHQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849646; x=1713454446; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=adaeF9DmdVys/XfYHkM+InWjJid8VOet2hxIDinjd6M=; b=LgsSSIisRhFHtbE9W6olHH5Ytwz8Ot9jOMb6EtrFt0/P9nrhMikKw48DNbIz31Gthi PpF1kF3df+sc/YAW/O37A8ahPQ6SvELiNoZsu5adKD7so6ZP72tpJC7Usja1zULHOgNh apNHc6Bl8GQpMt9qgor3uaODiQyvniDIJQZesq60aQLq72SHVI8pMR+W2vUu9IPoUIEF VUtuEAb/2pRTUjmndkUGlzg/nROogJT48Fie1dgnp1Sb9a9xw89RhVcrqo6j2WY8jzz6 pzW1X1t8iv3UKjN0cbpM7dXpDBprHXQWfUVlaWZ7LYSvXs8DGiLlHnbJ2+F9YGBscQ1h SK4g== X-Gm-Message-State: AOJu0YxzF1BBzhqcUs8Pr2LzsfuJBWqLPoLx4zUoP1eUblFv+jQ1xs2i 6IkuThO7EN0/FTiYnJUsgfuT3GvRinzwL/VBimskwAlrS8eI5/n+wf480roCwaXOGdnPAmB1fDN 4 X-Google-Smtp-Source: AGHT+IEti6MBOZk3z9r4uF8Fk4TTGgKkCiL1FWai877sTsbEMQqmiYvfTpaXO0lJgzPBMoRFJB61kQ== X-Received: by 2002:a6b:6605:0:b0:7d4:1dae:da1a with SMTP id a5-20020a6b6605000000b007d41daeda1amr144069ioc.2.1712849646619; Thu, 11 Apr 2024 08:34:06 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.34.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:34:04 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 085/437] kprobes: convert to read/write iterators Date: Thu, 11 Apr 2024 09:13:45 -0600 Message-ID: <20240411153126.16201-86-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- kernel/kprobes.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/kernel/kprobes.c b/kernel/kprobes.c index 9d9095e81792..ead4b7cb70d0 100644 --- a/kernel/kprobes.c +++ b/kernel/kprobes.c @@ -2971,8 +2971,7 @@ static int disarm_all_kprobes(void) * when the bool state is switched. We can reuse that facility when * available */ -static ssize_t read_enabled_file_bool(struct file *file, - char __user *user_buf, size_t count, loff_t *ppos) +static ssize_t read_enabled_file_bool(struct kiocb *iocb, struct iov_iter = *to) { char buf[3]; =20 @@ -2982,16 +2981,16 @@ static ssize_t read_enabled_file_bool(struct file *= file, buf[0] =3D '0'; buf[1] =3D '\n'; buf[2] =3D 0x00; - return simple_read_from_buffer(user_buf, count, ppos, buf, 2); + return simple_copy_to_iter(buf, &iocb->ki_pos, 2, to); } =20 -static ssize_t write_enabled_file_bool(struct file *file, - const char __user *user_buf, size_t count, loff_t *ppos) +static ssize_t write_enabled_file_bool(struct kiocb *iocb, struct iov_iter= *from) { + size_t count =3D iov_iter_count(from); bool enable; int ret; =20 - ret =3D kstrtobool_from_user(user_buf, count, &enable); + ret =3D kstrtobool_from_iter(from, count, &enable); if (ret) return ret; =20 @@ -3003,8 +3002,8 @@ static ssize_t write_enabled_file_bool(struct file *f= ile, } =20 static const struct file_operations fops_kp =3D { - .read =3D read_enabled_file_bool, - .write =3D write_enabled_file_bool, + .read_iter =3D read_enabled_file_bool, + .write_iter =3D write_enabled_file_bool, .llseek =3D default_llseek, }; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f41.google.com (mail-io1-f41.google.com [209.85.166.41]) (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 7F9E31332B0 for ; Thu, 11 Apr 2024 15:34:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849649; cv=none; b=URXmK7/mSES+KLU5OBqGV2aLoce7kn/cK/iyeyHJHxrcD2M9R0X1f3VKC76YQkpuzK0RlQo9EBQY88gs0j2TGoL2+ECj+o9XWlQcTHyL6LdrJApiCNa/Cf/KETcABr12fw/kh/QihsDunYi1X5UQKT+SAsCr6DrOGI19ErcOBFA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849649; c=relaxed/simple; bh=XLySHR0YIO1LxjGPhiC1KU5h/wP3tvj1z/3UEePY214=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=bGZtXwEdFE62HbJx9+LpLbsB5HFCU0TEDMvDKg1KeRc4vPgj6eEdwek/I0Vj15fnRvMlDhWK0fEaIMTzrKCaeoB/WD1t4nZ4nSfOtvvR0Pc1Q/nWL/JxSC0NPVf5g5isKGkfkpRXeNG4ai4Lkrvzgg8O3cjkfheASsnydjWwt/w= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=x+4m/oFZ; arc=none smtp.client-ip=209.85.166.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="x+4m/oFZ" Received: by mail-io1-f41.google.com with SMTP id ca18e2360f4ac-7d5ed700c2dso16133939f.0 for ; Thu, 11 Apr 2024 08:34:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849647; x=1713454447; 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=EsMZ1D54PALBtcGxDrQ52r7sdp3B1+XzVHP1czxtxdo=; b=x+4m/oFZc0doGN4BTJLtHixC+osiC4gt0QuY8DOBKHLJGvsdPd+ufvh5i5X6wh6ieE Nh9pChbw3koVgN8KUI+QQSI2kKu/1Rtr4JfDJs41r0hGYVDa9kv9XEA4BqiO9FbLBop/ GaJP6Go6l4OSeN6C4Uj7fgpfxiNEsDPXEO8Ox06gjFcz41SHWSQeEOU9AW6zxR0PpoNO QLgb3QCNLTzf5OvpxNAvzBJShZDh/Fdwb9of1lsVFMiykVQLQodyUaMBC32um4zAFv6b ZHFlKUJKhcgXpBVlrY4bVTmPGQwmZK1l2Mi6jQq6dTcLgaTFPcL+8gwKUiXPif1Ef5G7 GiOQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849647; x=1713454447; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=EsMZ1D54PALBtcGxDrQ52r7sdp3B1+XzVHP1czxtxdo=; b=pZpXrNiqkgWZ/j6pG9uRjINMVc404YdzbQay8fdznrYTekYTBcWrlxMA2Yki8GPjOv +zc2DLZYnxQJ8W+PkQ431Q6wsRkXQpVimZCI94ixQ1fPm7HHgxwhPBMEzmfmrYROBT3/ VgcOUVqgIod0CY1Yv5VNq3W1o+sdUiLB7zbvgfbXoZA38OzNnLRe6MVMsSvU8S3dSTAU WV2nkZb1XRs2bfW0NBRSYu/OE0EI8R1iWXfp8miE0x2nVEPSaBARmcba/DUd1XYVV6/v Rs4LPWs1J9Ysfs9prx/+w3HEUiff3za6vr4L8N34wSNErGUXKpzWwhzMGuuri2mGE9Dc xU6Q== X-Gm-Message-State: AOJu0Ywwqkec0+kxXj0G3ZOY7iJcx3VKWO0pO8PBj7JBbFUzUW8zdNzh 4rw9910gnVNS7expxeDQc+bdAHzVHH2G//TDXwmFPvgfjrtdn7QhPk3iuXtxVD6agjXS8FPfYHD g X-Google-Smtp-Source: AGHT+IGNtxu+nO20y/bUirS7yrDe+if+4KobIglJP0JH5xPtqlsJDwp5/7YDU5oA1qCCkLXeDqGo7w== X-Received: by 2002:a05:6602:38d:b0:7d6:513b:254 with SMTP id f13-20020a056602038d00b007d6513b0254mr177343iov.2.1712849647382; Thu, 11 Apr 2024 08:34:07 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.34.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:34:06 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 086/437] fs: add iterator based version of simple_transaction_read() Date: Thu, 11 Apr 2024 09:13:46 -0600 Message-ID: <20240411153126.16201-87-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- fs/libfs.c | 10 ++++++++++ include/linux/fs.h | 1 + 2 files changed, 11 insertions(+) diff --git a/fs/libfs.c b/fs/libfs.c index 3280d02fc385..56b404ad4cfb 100644 --- a/fs/libfs.c +++ b/fs/libfs.c @@ -1277,6 +1277,16 @@ ssize_t simple_transaction_read(struct file *file, c= har __user *buf, size_t size } EXPORT_SYMBOL(simple_transaction_read); =20 +ssize_t simple_transaction_read_iter(struct kiocb *iocb, struct iov_iter *= to) +{ + struct simple_transaction_argresp *ar =3D iocb->ki_filp->private_data; + + if (!ar) + return 0; + return simple_copy_to_iter(ar->data, &iocb->ki_pos, ar->size, to); +} +EXPORT_SYMBOL(simple_transaction_read_iter); + int simple_transaction_release(struct inode *inode, struct file *file) { free_page((unsigned long)file->private_data); diff --git a/include/linux/fs.h b/include/linux/fs.h index 69e4dfac2853..85db7dde4778 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -3500,6 +3500,7 @@ char *simple_transaction_get(struct file *file, const= char __user *buf, size_t size); ssize_t simple_transaction_read(struct file *file, char __user *buf, size_t size, loff_t *pos); +ssize_t simple_transaction_read_iter(struct kiocb *iocb, struct iov_iter *= to); int simple_transaction_release(struct inode *inode, struct file *file); =20 void simple_transaction_set(struct file *file, size_t n); --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f44.google.com (mail-io1-f44.google.com [209.85.166.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 AE1FD136668 for ; Thu, 11 Apr 2024 15:34:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849652; cv=none; b=a3AXDWGSMH/UUNP2Xropmdx2CT6DHYozDBIMaMpV1BZ5ZqacJfUqpdqRgpggbSYZZA4/9/QaJ0DPMHOyeZ0h15DThQwoMyPMOEqsspKpozSvJKdPfXEpmwEtDXqFa9tzoLAdP7taWGThaWkSme9qtQX9y0/YLuUy80TefYJcIaw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849652; c=relaxed/simple; bh=oTaDXFM2veSIyrNSg5ZwzsREHddfR59ebpLyhWZ1ke0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=H2+S+awASfo4F2lY8RXgeQWYExHtagnLxvlieCndVm0x+VSUz+zrQNGacOt1I14XUdee2IkF5lnT1PFEo1j5kcMuzXDk6qWDiNC0fpPaXdjnNFyiQ6j6lDLjzIj4iuVgrvGjxHuAEfRkP/QSnToZ4PnfCpp29GkwNeeiU1ihxbM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=MKQw8p5u; arc=none smtp.client-ip=209.85.166.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="MKQw8p5u" Received: by mail-io1-f44.google.com with SMTP id ca18e2360f4ac-7d67d1073easo9749539f.0 for ; Thu, 11 Apr 2024 08:34:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849649; x=1713454449; 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=JUMzmo7ip1drKjJbzrWPdbZGVRE9zIxWmxeF2eW3oUU=; b=MKQw8p5uX3wkTgee/Q+RwQCHdZOf75YHLV3Sr0pwyjKFNlqDOGKT6XOVhwqjMJtWMQ CUcKrjH3YAU2GstvLivuO6XWwdaNwWF4Gnay2wftaKDEVQOhlktvEc1vZXTMX2lSF3TE 2eVPlFmaRPl7GkGV9MPNGSKv42NZG0JcMO4E8vB9YzTUxXUVBtxHjcQjDwjHlhlIQjlf /3m1R84OLZhVpdsFgiLWJVsYefXozBW2oGCepchjfmOitscNAFs1E31cDUp6DncLOcO/ oxrB26ZhLx0DNNFgYIVObOFrbQkxFa1Fb19rWyohFL+J8pNm8zGqV3AZmjAhum+igtsO AUsg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849649; x=1713454449; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=JUMzmo7ip1drKjJbzrWPdbZGVRE9zIxWmxeF2eW3oUU=; b=wdMrFHU3C/3qJm76WyL+3iofyIKAqyRxPp8omPbUkIIL7/DhsobQIXYjujowLBRG1h f5QqFt3B/kl5rl33qXEpOgzpL81Lr8Y7Fj4tv5De/hiDIJ/ixC5hr5NwaRNrjbGz8XrF jVI4ZbB/LlUZQfsrZuRyJGGR41BZBYo1gw9kP0Z3/jINxVWTPat2985kRylD4jCFy8VZ tGK97gn7aGdufq2uK266f9ckTEX/GOY/4dvGPSDcCsp1DpQr6MB/uAGL80+x9eqG8Fq3 tsoStyxFRWr6F6U00VlUFYUDsxfOWhjwooFStmyHl9m85CaGZ4eCyCGjyAH5wLCmpAuf HyEg== X-Gm-Message-State: AOJu0YyJFSA4UVKTmusk3vnYo7qDX5NUrb74JDwZgMxKdGMZoN4O1LyM lXpP0+lNDsDlLukeCJJ3ZliQtnEJKdiGuMAwObhD8Id58isvppHqR9i/fUU+ThynFmLq0Cqpaf+ 8 X-Google-Smtp-Source: AGHT+IG1x877YI2RFmKVhkdXI57Y7MyYyKNDrYr4StNLgdVVnDKXFcW8kAt0couhz/WCGirFg3JuPw== X-Received: by 2002:a05:6602:84:b0:7d6:9d75:6de2 with SMTP id h4-20020a056602008400b007d69d756de2mr36569iob.2.1712849649515; Thu, 11 Apr 2024 08:34:09 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.34.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:34:09 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 087/437] tomoyo: convert to read/write iterators Date: Thu, 11 Apr 2024 09:13:47 -0600 Message-ID: <20240411153126.16201-88-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- security/tomoyo/securityfs_if.c | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/security/tomoyo/securityfs_if.c b/security/tomoyo/securityfs_i= f.c index a2705798476f..49421d5377f7 100644 --- a/security/tomoyo/securityfs_if.c +++ b/security/tomoyo/securityfs_if.c @@ -86,6 +86,7 @@ static ssize_t tomoyo_write_self(struct file *file, const= char __user *buf, kfree(data); return error ? error : count; } +FOPS_WRITE_ITER_HELPER(tomoyo_write_self); =20 /** * tomoyo_read_self - read() for /sys/kernel/security/tomoyo/self_domain i= nterface. @@ -97,28 +98,28 @@ static ssize_t tomoyo_write_self(struct file *file, con= st char __user *buf, * * Returns read size on success, negative value otherwise. */ -static ssize_t tomoyo_read_self(struct file *file, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t tomoyo_read_self(struct kiocb *iocb, struct iov_iter *to) { const char *domain =3D tomoyo_domain()->domainname->name; + size_t count =3D iov_iter_count(to); loff_t len =3D strlen(domain); - loff_t pos =3D *ppos; + loff_t pos =3D iocb->ki_pos; =20 if (pos >=3D len || !count) return 0; len -=3D pos; if (count < len) len =3D count; - if (copy_to_user(buf, domain + pos, len)) + if (copy_to_iter(domain + pos, len, to)) return -EFAULT; - *ppos +=3D len; + iocb->ki_pos +=3D len; return len; } =20 /* Operations for /sys/kernel/security/tomoyo/self_domain interface. */ static const struct file_operations tomoyo_self_operations =3D { - .write =3D tomoyo_write_self, - .read =3D tomoyo_read_self, + .write_iter =3D tomoyo_write_self_iter, + .read_iter =3D tomoyo_read_self, }; =20 /** @@ -178,6 +179,7 @@ static ssize_t tomoyo_read(struct file *file, char __us= er *buf, size_t count, { return tomoyo_read_control(file->private_data, buf, count); } +FOPS_READ_ITER_HELPER(tomoyo_read); =20 /** * tomoyo_write - write() for /sys/kernel/security/tomoyo/ interface. @@ -194,6 +196,7 @@ static ssize_t tomoyo_write(struct file *file, const ch= ar __user *buf, { return tomoyo_write_control(file->private_data, buf, count); } +FOPS_WRITE_ITER_HELPER(tomoyo_write); =20 /* * tomoyo_operations is a "struct file_operations" which is used for handl= ing @@ -206,8 +209,8 @@ static const struct file_operations tomoyo_operations = =3D { .open =3D tomoyo_open, .release =3D tomoyo_release, .poll =3D tomoyo_poll, - .read =3D tomoyo_read, - .write =3D tomoyo_write, + .read_iter =3D tomoyo_read_iter, + .write_iter =3D tomoyo_write_iter, .llseek =3D noop_llseek, }; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-il1-f173.google.com (mail-il1-f173.google.com [209.85.166.173]) (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 A15C7136E26 for ; Thu, 11 Apr 2024 15:34:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.173 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849654; cv=none; b=KVmVpXjtcai8+wlEwoiSFSPPT4gL6Xql/K5QMTpYnJ0x3gg2RE5A8bmzN8NOPIbPWa8RJLVJoCITuYXdvZPxtgcLz55w46sqceQ1cPuDXoWXMTRVx9zZqv2nIo5qDX5WnKsSPLzsfIpuUfpgNez6ptwqWTFL9yJWtKUZQedO9K4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849654; c=relaxed/simple; bh=vvNPZK46dPG3arCNrGaSaksCGa8uZwyvXvzl36kVL48=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=IA0lz3P/bJkW6E6vTNozU6HHwGjqTKlTw3ucKAcPs4CvKMkt/w7Hm4AWhzncpZZhSW5KEro70DRLUy525K0MbQyzlQj9dv3KisbFdUR7+pBbvZJ7GmtPTXhp8llw+CVEST0cVPUF8FH8AFbTgB7DJClfPFUPa7KDcmAXk3Xuof8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=X5Vmv4QQ; arc=none smtp.client-ip=209.85.166.173 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="X5Vmv4QQ" Received: by mail-il1-f173.google.com with SMTP id e9e14a558f8ab-36a34b68277so107685ab.0 for ; Thu, 11 Apr 2024 08:34:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849651; x=1713454451; 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=kPGdldjnOfDItHLYfoj66Arsy00RDPfU6udk+a+5L8M=; b=X5Vmv4QQS3VSyugUl4V3NjbQwDIOV22adzbj/X8SAF4Qznv3PctBRfQI3TA+f5jdUy Mr/ZlT7CYmv4P8jXSargxFHroHaV3YwI7iPrEC05ykP0XPQ9peu+tYmrzEVmEuE309zc 9Dbz8yK/7Z6FsnZHhJTVNE1VQqYimKEc1Ua0hadWiMVqMmQh9ni6jqyjzNflDPNxK24b OnTQowFpVG4uG4hazZL3FWppFr0TCIP0tD3cwdNiabao4YVHMQzd3AxyUXW5tE9UtNid EqaTZyLnQmbgGPG9vE5bPSmMoy8c00JNR+xaFC0IXotR/GdmDFOGkZA4Ebdu8FKeiRx9 i6mQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849651; x=1713454451; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=kPGdldjnOfDItHLYfoj66Arsy00RDPfU6udk+a+5L8M=; b=GE8busRUtLkaXBfIT6kK1WaKQ2Oj+mVvYpmvL2qU1CRVizdT0U5qtt1LKfKRrzaBO4 JBsXr900qRzwvxjED+FzM/E4GjPTEImELjdjfSIiWvxK+VxVa9lUS5LrC0vNn9Ih4t3l LHKjQdGZNgkh0jQyhkfRDFqx76u4OVt9gzm+JnVPkrYEd8Lz1/WTpCR9U0kR0Wjs30EI ffYEe0EmrNKWF0+leCHc/JT4cdCCnXB9mXde3FPJEZNJb4zxzBjg/BjE3O8qJ1ympyLE NznhEKVIkZqoHwF6B+4sN0JyQ7355hPG7oLAZREdXwZje4OgDeoAodu/cMsqgoqscgXt vhYg== X-Gm-Message-State: AOJu0Yyy0eELQqImObq9eP/3AkjHl2MY7MeNLTFvC4Fg9T4tpn76bLZK ATrnU3I0ysoz21CzjL/N9Cu5g8NKJB8QDtXlwkJ1n+xS8+oaV5AakABksjtuVx4UWYgSIURRlE/ Z X-Google-Smtp-Source: AGHT+IHnw22fVDCz0geeFrJRH0/3KzVh9R8GxaYKYHzIXgaRg0WSm6Qybh7bz1az6DaObJfeXCdDjw== X-Received: by 2002:a05:6602:4ed7:b0:7d5:ddc8:504d with SMTP id gk23-20020a0566024ed700b007d5ddc8504dmr183655iob.0.1712849651281; Thu, 11 Apr 2024 08:34:11 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.34.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:34:09 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 088/437] smack: convert to read/write iterators Date: Thu, 11 Apr 2024 09:13:48 -0600 Message-ID: <20240411153126.16201-89-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- security/smack/smackfs.c | 281 ++++++++++++++++++--------------------- 1 file changed, 132 insertions(+), 149 deletions(-) diff --git a/security/smack/smackfs.c b/security/smack/smackfs.c index e22aad7604e8..49a380e45eb1 100644 --- a/security/smack/smackfs.c +++ b/security/smack/smackfs.c @@ -669,12 +669,13 @@ static ssize_t smk_write_load(struct file *file, cons= t char __user *buf, return smk_write_rules_list(file, buf, count, ppos, NULL, NULL, SMK_FIXED24_FMT); } +FOPS_WRITE_ITER_HELPER(smk_write_load); =20 static const struct file_operations smk_load_ops =3D { .open =3D smk_open_load, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, - .write =3D smk_write_load, + .write_iter =3D smk_write_load_iter, .release =3D seq_release, }; =20 @@ -964,12 +965,13 @@ static ssize_t smk_write_cipso(struct file *file, con= st char __user *buf, { return smk_set_cipso(file, buf, count, ppos, SMK_FIXED24_FMT); } +FOPS_WRITE_ITER_HELPER(smk_write_cipso); =20 static const struct file_operations smk_cipso_ops =3D { .open =3D smk_open_cipso, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, - .write =3D smk_write_cipso, + .write_iter =3D smk_write_cipso_iter, .release =3D seq_release, }; =20 @@ -1038,12 +1040,13 @@ static ssize_t smk_write_cipso2(struct file *file, = const char __user *buf, { return smk_set_cipso(file, buf, count, ppos, SMK_LONG_FMT); } +FOPS_WRITE_ITER_HELPER(smk_write_cipso2); =20 static const struct file_operations smk_cipso2_ops =3D { .open =3D smk_open_cipso2, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, - .write =3D smk_write_cipso2, + .write_iter =3D smk_write_cipso2_iter, .release =3D seq_release, }; =20 @@ -1302,12 +1305,13 @@ static ssize_t smk_write_net4addr(struct file *file= , const char __user *buf, =20 return rc; } +FOPS_WRITE_ITER_HELPER(smk_write_net4addr); =20 static const struct file_operations smk_net4addr_ops =3D { .open =3D smk_open_net4addr, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, - .write =3D smk_write_net4addr, + .write_iter =3D smk_write_net4addr_iter, .release =3D seq_release, }; =20 @@ -1559,52 +1563,48 @@ static ssize_t smk_write_net6addr(struct file *file= , const char __user *buf, =20 return rc; } +FOPS_WRITE_ITER_HELPER(smk_write_net6addr); =20 static const struct file_operations smk_net6addr_ops =3D { .open =3D smk_open_net6addr, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, - .write =3D smk_write_net6addr, + .write_iter =3D smk_write_net6addr_iter, .release =3D seq_release, }; #endif /* CONFIG_IPV6 */ =20 /** * smk_read_doi - read() for /smack/doi - * @filp: file pointer, not actually used - * @buf: where to put the result - * @count: maximum to send along - * @ppos: where to start + * @iocb: metadata for IO + * @to: where to put the result * * Returns number of bytes read or error code, as appropriate */ -static ssize_t smk_read_doi(struct file *filp, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t smk_read_doi(struct kiocb *iocb, struct iov_iter *to) { char temp[80]; ssize_t rc; =20 - if (*ppos !=3D 0) + if (iocb->ki_pos !=3D 0) return 0; =20 sprintf(temp, "%d", smk_cipso_doi_value); - rc =3D simple_read_from_buffer(buf, count, ppos, temp, strlen(temp)); + rc =3D simple_copy_to_iter(temp, &iocb->ki_pos, strlen(temp), to); =20 return rc; } =20 /** * smk_write_doi - write() for /smack/doi - * @file: file pointer, not actually used - * @buf: where to get the data from - * @count: bytes sent - * @ppos: where to start + * @iocb: metadata for IO + * @from: where to get the data from * * Returns number of bytes written or error code, as appropriate */ -static ssize_t smk_write_doi(struct file *file, const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t smk_write_doi(struct kiocb *iocb, struct iov_iter *from) { + size_t count =3D iov_iter_count(from); char temp[80]; int i; =20 @@ -1614,7 +1614,7 @@ static ssize_t smk_write_doi(struct file *file, const= char __user *buf, if (count >=3D sizeof(temp) || count =3D=3D 0) return -EINVAL; =20 - if (copy_from_user(temp, buf, count) !=3D 0) + if (!copy_from_iter(temp, count, from)) return -EFAULT; =20 temp[count] =3D '\0'; @@ -1630,47 +1630,42 @@ static ssize_t smk_write_doi(struct file *file, con= st char __user *buf, } =20 static const struct file_operations smk_doi_ops =3D { - .read =3D smk_read_doi, - .write =3D smk_write_doi, + .read_iter =3D smk_read_doi, + .write_iter =3D smk_write_doi, .llseek =3D default_llseek, }; =20 /** * smk_read_direct - read() for /smack/direct - * @filp: file pointer, not actually used - * @buf: where to put the result - * @count: maximum to send along - * @ppos: where to start + * @iocb: metadata for IO + * @to: where to put the result * * Returns number of bytes read or error code, as appropriate */ -static ssize_t smk_read_direct(struct file *filp, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t smk_read_direct(struct kiocb *iocb, struct iov_iter *to) { char temp[80]; ssize_t rc; =20 - if (*ppos !=3D 0) + if (iocb->ki_pos !=3D 0) return 0; =20 sprintf(temp, "%d", smack_cipso_direct); - rc =3D simple_read_from_buffer(buf, count, ppos, temp, strlen(temp)); + rc =3D simple_copy_to_iter(temp, &iocb->ki_pos, strlen(temp), to); =20 return rc; } =20 /** * smk_write_direct - write() for /smack/direct - * @file: file pointer, not actually used - * @buf: where to get the data from - * @count: bytes sent - * @ppos: where to start + * @iocb: metadata for IO + * @from: where to get the data from * * Returns number of bytes written or error code, as appropriate */ -static ssize_t smk_write_direct(struct file *file, const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t smk_write_direct(struct kiocb *iocb, struct iov_iter *from) { + size_t count =3D iov_iter_count(from); struct smack_known *skp; char temp[80]; int i; @@ -1681,7 +1676,7 @@ static ssize_t smk_write_direct(struct file *file, co= nst char __user *buf, if (count >=3D sizeof(temp) || count =3D=3D 0) return -EINVAL; =20 - if (copy_from_user(temp, buf, count) !=3D 0) + if (!copy_from_iter(temp, count, from)) return -EFAULT; =20 temp[count] =3D '\0'; @@ -1708,47 +1703,42 @@ static ssize_t smk_write_direct(struct file *file, = const char __user *buf, } =20 static const struct file_operations smk_direct_ops =3D { - .read =3D smk_read_direct, - .write =3D smk_write_direct, + .read_iter =3D smk_read_direct, + .write_iter =3D smk_write_direct, .llseek =3D default_llseek, }; =20 /** * smk_read_mapped - read() for /smack/mapped - * @filp: file pointer, not actually used - * @buf: where to put the result - * @count: maximum to send along - * @ppos: where to start + * @iocb: metadata for IO + * @to: where to put the result * * Returns number of bytes read or error code, as appropriate */ -static ssize_t smk_read_mapped(struct file *filp, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t smk_read_mapped(struct kiocb *iocb, struct iov_iter *to) { char temp[80]; ssize_t rc; =20 - if (*ppos !=3D 0) + if (iocb->ki_pos !=3D 0) return 0; =20 sprintf(temp, "%d", smack_cipso_mapped); - rc =3D simple_read_from_buffer(buf, count, ppos, temp, strlen(temp)); + rc =3D simple_copy_to_iter(temp, &iocb->ki_pos, strlen(temp), to); =20 return rc; } =20 /** * smk_write_mapped - write() for /smack/mapped - * @file: file pointer, not actually used - * @buf: where to get the data from - * @count: bytes sent - * @ppos: where to start + * @iocb: metadata for IO + * @from: where to get the data from * * Returns number of bytes written or error code, as appropriate */ -static ssize_t smk_write_mapped(struct file *file, const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t smk_write_mapped(struct kiocb *iocb, struct iov_iter *from) { + size_t count =3D iov_iter_count(from); struct smack_known *skp; char temp[80]; int i; @@ -1759,7 +1749,7 @@ static ssize_t smk_write_mapped(struct file *file, co= nst char __user *buf, if (count >=3D sizeof(temp) || count =3D=3D 0) return -EINVAL; =20 - if (copy_from_user(temp, buf, count) !=3D 0) + if (!copy_from_iter(temp, count, from)) return -EFAULT; =20 temp[count] =3D '\0'; @@ -1786,27 +1776,25 @@ static ssize_t smk_write_mapped(struct file *file, = const char __user *buf, } =20 static const struct file_operations smk_mapped_ops =3D { - .read =3D smk_read_mapped, - .write =3D smk_write_mapped, + .read_iter =3D smk_read_mapped, + .write_iter =3D smk_write_mapped, .llseek =3D default_llseek, }; =20 /** * smk_read_ambient - read() for /smack/ambient - * @filp: file pointer, not actually used - * @buf: where to put the result - * @cn: maximum to send along - * @ppos: where to start + * @iocb: metadata for IO + * @to: where to put the result * * Returns number of bytes read or error code, as appropriate */ -static ssize_t smk_read_ambient(struct file *filp, char __user *buf, - size_t cn, loff_t *ppos) +static ssize_t smk_read_ambient(struct kiocb *iocb, struct iov_iter *to) { + size_t cn =3D iov_iter_count(to); ssize_t rc; int asize; =20 - if (*ppos !=3D 0) + if (iocb->ki_pos !=3D 0) return 0; /* * Being careful to avoid a problem in the case where @@ -1817,9 +1805,8 @@ static ssize_t smk_read_ambient(struct file *filp, ch= ar __user *buf, asize =3D strlen(smack_net_ambient->smk_known) + 1; =20 if (cn >=3D asize) - rc =3D simple_read_from_buffer(buf, cn, ppos, - smack_net_ambient->smk_known, - asize); + rc =3D simple_copy_to_iter(smack_net_ambient->smk_known, + &iocb->ki_pos, asize, to); else rc =3D -EINVAL; =20 @@ -1874,10 +1861,11 @@ static ssize_t smk_write_ambient(struct file *file,= const char __user *buf, kfree(data); return rc; } +FOPS_WRITE_ITER_HELPER(smk_write_ambient); =20 static const struct file_operations smk_ambient_ops =3D { - .read =3D smk_read_ambient, - .write =3D smk_write_ambient, + .read_iter =3D smk_read_ambient, + .write_iter =3D smk_write_ambient_iter, .llseek =3D default_llseek, }; =20 @@ -2054,11 +2042,12 @@ static ssize_t smk_write_onlycap(struct file *file,= const char __user *buf, =20 return rc; } +FOPS_WRITE_ITER_HELPER(smk_write_onlycap); =20 static const struct file_operations smk_onlycap_ops =3D { .open =3D smk_open_onlycap, - .read =3D seq_read, - .write =3D smk_write_onlycap, + .read_iter =3D seq_read_iter, + .write_iter =3D smk_write_onlycap_iter, .llseek =3D seq_lseek, .release =3D seq_release, }; @@ -2066,21 +2055,19 @@ static const struct file_operations smk_onlycap_ops= =3D { #ifdef CONFIG_SECURITY_SMACK_BRINGUP /** * smk_read_unconfined - read() for smackfs/unconfined - * @filp: file pointer, not actually used - * @buf: where to put the result - * @cn: maximum to send along - * @ppos: where to start + * @iocb: metadata for IO + * @to: where to put the result * * Returns number of bytes read or error code, as appropriate */ -static ssize_t smk_read_unconfined(struct file *filp, char __user *buf, - size_t cn, loff_t *ppos) +static ssize_t smk_read_unconfined(struct kiocb *iocb, struct iov_iter *to) { + size_t cn =3D iov_iter_count(to); char *smack =3D ""; ssize_t rc =3D -EINVAL; int asize; =20 - if (*ppos !=3D 0) + if (iocb->ki_pos !=3D 0) return 0; =20 if (smack_unconfined !=3D NULL) @@ -2089,7 +2076,7 @@ static ssize_t smk_read_unconfined(struct file *filp,= char __user *buf, asize =3D strlen(smack) + 1; =20 if (cn >=3D asize) - rc =3D simple_read_from_buffer(buf, cn, ppos, smack, asize); + rc =3D simple_copy_to_iter(smack, &iocb->ki_pos, asize, to); =20 return rc; } @@ -2143,49 +2130,45 @@ static ssize_t smk_write_unconfined(struct file *fi= le, const char __user *buf, kfree(data); return rc; } +FOPS_WRITE_ITER_HELPER(smk_write_unconfined); =20 static const struct file_operations smk_unconfined_ops =3D { - .read =3D smk_read_unconfined, - .write =3D smk_write_unconfined, + .read_iter =3D smk_read_unconfined, + .write_iter =3D smk_write_unconfined_iter, .llseek =3D default_llseek, }; #endif /* CONFIG_SECURITY_SMACK_BRINGUP */ =20 /** * smk_read_logging - read() for /smack/logging - * @filp: file pointer, not actually used - * @buf: where to put the result - * @count: maximum to send along - * @ppos: where to start + * @iocb: metadata for IO + * @to: where to put the result * * Returns number of bytes read or error code, as appropriate */ -static ssize_t smk_read_logging(struct file *filp, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t smk_read_logging(struct kiocb *iocb, struct iov_iter *to) { char temp[32]; ssize_t rc; =20 - if (*ppos !=3D 0) + if (iocb->ki_pos !=3D 0) return 0; =20 sprintf(temp, "%d\n", log_policy); - rc =3D simple_read_from_buffer(buf, count, ppos, temp, strlen(temp)); + rc =3D simple_copy_to_iter(temp, &iocb->ki_pos, strlen(temp), to); return rc; } =20 /** * smk_write_logging - write() for /smack/logging - * @file: file pointer, not actually used - * @buf: where to get the data from - * @count: bytes sent - * @ppos: where to start + * @iocb: metadata for IO + * @from: where to get the data from * * Returns number of bytes written or error code, as appropriate */ -static ssize_t smk_write_logging(struct file *file, const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t smk_write_logging(struct kiocb *iocb, struct iov_iter *from) { + size_t count =3D iov_iter_count(from); char temp[32]; int i; =20 @@ -2195,7 +2178,7 @@ static ssize_t smk_write_logging(struct file *file, c= onst char __user *buf, if (count >=3D sizeof(temp) || count =3D=3D 0) return -EINVAL; =20 - if (copy_from_user(temp, buf, count) !=3D 0) + if (!copy_from_iter(temp, count, from)) return -EFAULT; =20 temp[count] =3D '\0'; @@ -2208,11 +2191,9 @@ static ssize_t smk_write_logging(struct file *file, = const char __user *buf, return count; } =20 - - static const struct file_operations smk_logging_ops =3D { - .read =3D smk_read_logging, - .write =3D smk_write_logging, + .read_iter =3D smk_read_logging, + .write_iter =3D smk_write_logging, .llseek =3D default_llseek, }; =20 @@ -2281,12 +2262,13 @@ static ssize_t smk_write_load_self(struct file *fil= e, const char __user *buf, return smk_write_rules_list(file, buf, count, ppos, &tsp->smk_rules, &tsp->smk_rules_lock, SMK_FIXED24_FMT); } +FOPS_WRITE_ITER_HELPER(smk_write_load_self); =20 static const struct file_operations smk_load_self_ops =3D { .open =3D smk_open_load_self, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, - .write =3D smk_write_load_self, + .write_iter =3D smk_write_load_self_iter, .release =3D seq_release, }; =20 @@ -2351,10 +2333,11 @@ static ssize_t smk_write_access(struct file *file, = const char __user *buf, { return smk_user_access(file, buf, count, ppos, SMK_FIXED24_FMT); } +FOPS_WRITE_ITER_HELPER(smk_write_access); =20 static const struct file_operations smk_access_ops =3D { - .write =3D smk_write_access, - .read =3D simple_transaction_read, + .write_iter =3D smk_write_access_iter, + .read_iter =3D simple_transaction_read_iter, .release =3D simple_transaction_release, .llseek =3D generic_file_llseek, }; @@ -2416,12 +2399,13 @@ static ssize_t smk_write_load2(struct file *file, c= onst char __user *buf, return smk_write_rules_list(file, buf, count, ppos, NULL, NULL, SMK_LONG_FMT); } +FOPS_WRITE_ITER_HELPER(smk_write_load2); =20 static const struct file_operations smk_load2_ops =3D { .open =3D smk_open_load2, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, - .write =3D smk_write_load2, + .write_iter =3D smk_write_load2_iter, .release =3D seq_release, }; =20 @@ -2489,12 +2473,13 @@ static ssize_t smk_write_load_self2(struct file *fi= le, const char __user *buf, return smk_write_rules_list(file, buf, count, ppos, &tsp->smk_rules, &tsp->smk_rules_lock, SMK_LONG_FMT); } +FOPS_WRITE_ITER_HELPER(smk_write_load_self2); =20 static const struct file_operations smk_load_self2_ops =3D { .open =3D smk_open_load_self2, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, - .write =3D smk_write_load_self2, + .write_iter =3D smk_write_load_self2_iter, .release =3D seq_release, }; =20 @@ -2510,10 +2495,11 @@ static ssize_t smk_write_access2(struct file *file,= const char __user *buf, { return smk_user_access(file, buf, count, ppos, SMK_LONG_FMT); } +FOPS_WRITE_ITER_HELPER(smk_write_access2); =20 static const struct file_operations smk_access2_ops =3D { - .write =3D smk_write_access2, - .read =3D simple_transaction_read, + .write_iter =3D smk_write_access2_iter, + .read_iter =3D simple_transaction_read_iter, .release =3D simple_transaction_release, .llseek =3D generic_file_llseek, }; @@ -2576,10 +2562,11 @@ static ssize_t smk_write_revoke_subj(struct file *f= ile, const char __user *buf, =20 return rc; } +FOPS_WRITE_ITER_HELPER(smk_write_revoke_subj); =20 static const struct file_operations smk_revoke_subj_ops =3D { - .write =3D smk_write_revoke_subj, - .read =3D simple_transaction_read, + .write_iter =3D smk_write_revoke_subj_iter, + .read_iter =3D simple_transaction_read_iter, .release =3D simple_transaction_release, .llseek =3D generic_file_llseek, }; @@ -2612,31 +2599,30 @@ static ssize_t smk_write_change_rule(struct file *f= ile, const char __user *buf, return smk_write_rules_list(file, buf, count, ppos, NULL, NULL, SMK_CHANGE_FMT); } +FOPS_WRITE_ITER_HELPER(smk_write_change_rule); =20 static const struct file_operations smk_change_rule_ops =3D { - .write =3D smk_write_change_rule, - .read =3D simple_transaction_read, + .write_iter =3D smk_write_change_rule_iter, + .read_iter =3D simple_transaction_read_iter, .release =3D simple_transaction_release, .llseek =3D generic_file_llseek, }; =20 /** * smk_read_syslog - read() for smackfs/syslog - * @filp: file pointer, not actually used - * @buf: where to put the result - * @cn: maximum to send along - * @ppos: where to start + * @iocb: metadata for IO + * @to: where to put the result * * Returns number of bytes read or error code, as appropriate */ -static ssize_t smk_read_syslog(struct file *filp, char __user *buf, - size_t cn, loff_t *ppos) +static ssize_t smk_read_syslog(struct kiocb *iocb, struct iov_iter *to) { + size_t cn =3D iov_iter_count(to); struct smack_known *skp; ssize_t rc =3D -EINVAL; int asize; =20 - if (*ppos !=3D 0) + if (iocb->ki_pos !=3D 0) return 0; =20 if (smack_syslog_label =3D=3D NULL) @@ -2647,8 +2633,8 @@ static ssize_t smk_read_syslog(struct file *filp, cha= r __user *buf, asize =3D strlen(skp->smk_known) + 1; =20 if (cn >=3D asize) - rc =3D simple_read_from_buffer(buf, cn, ppos, skp->smk_known, - asize); + rc =3D simple_copy_to_iter(skp->smk_known, &iocb->ki_pos, asize, + to); =20 return rc; } @@ -2689,10 +2675,11 @@ static ssize_t smk_write_syslog(struct file *file, = const char __user *buf, kfree(data); return rc; } +FOPS_WRITE_ITER_HELPER(smk_write_syslog); =20 static const struct file_operations smk_syslog_ops =3D { - .read =3D smk_read_syslog, - .write =3D smk_write_syslog, + .read_iter =3D smk_read_syslog, + .write_iter =3D smk_write_syslog_iter, .llseek =3D default_llseek, }; =20 @@ -2802,58 +2789,54 @@ static ssize_t smk_write_relabel_self(struct file *= file, const char __user *buf, smk_destroy_label_list(&list_tmp); return rc; } +FOPS_WRITE_ITER_HELPER(smk_write_relabel_self); =20 static const struct file_operations smk_relabel_self_ops =3D { .open =3D smk_open_relabel_self, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, - .write =3D smk_write_relabel_self, + .write_iter =3D smk_write_relabel_self_iter, .release =3D seq_release, }; =20 /** * smk_read_ptrace - read() for /smack/ptrace - * @filp: file pointer, not actually used - * @buf: where to put the result - * @count: maximum to send along - * @ppos: where to start + * @iocb: metadata for IO + * @to: where to put the result * * Returns number of bytes read or error code, as appropriate */ -static ssize_t smk_read_ptrace(struct file *filp, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t smk_read_ptrace(struct kiocb *iocb, struct iov_iter *to) { char temp[32]; ssize_t rc; =20 - if (*ppos !=3D 0) + if (iocb->ki_pos !=3D 0) return 0; =20 sprintf(temp, "%d\n", smack_ptrace_rule); - rc =3D simple_read_from_buffer(buf, count, ppos, temp, strlen(temp)); + rc =3D simple_copy_to_iter(temp, &iocb->ki_pos, strlen(temp), to); return rc; } =20 /** * smk_write_ptrace - write() for /smack/ptrace - * @file: file pointer - * @buf: data from user space - * @count: bytes sent - * @ppos: where to start - must be 0 + * @iocb: metadata for IO + * @to: data from user space */ -static ssize_t smk_write_ptrace(struct file *file, const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t smk_write_ptrace(struct kiocb *iocb, struct iov_iter *to) { + size_t count =3D iov_iter_count(to); char temp[32]; int i; =20 if (!smack_privileged(CAP_MAC_ADMIN)) return -EPERM; =20 - if (*ppos !=3D 0 || count >=3D sizeof(temp) || count =3D=3D 0) + if (iocb->ki_pos !=3D 0 || count >=3D sizeof(temp) || count =3D=3D 0) return -EINVAL; =20 - if (copy_from_user(temp, buf, count) !=3D 0) + if (!copy_from_iter(temp, count, to)) return -EFAULT; =20 temp[count] =3D '\0'; @@ -2868,8 +2851,8 @@ static ssize_t smk_write_ptrace(struct file *file, co= nst char __user *buf, } =20 static const struct file_operations smk_ptrace_ops =3D { - .write =3D smk_write_ptrace, - .read =3D smk_read_ptrace, + .write_iter =3D smk_write_ptrace, + .read_iter =3D smk_read_ptrace, .llseek =3D default_llseek, }; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-il1-f169.google.com (mail-il1-f169.google.com [209.85.166.169]) (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 A84B0137749 for ; Thu, 11 Apr 2024 15:34:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.169 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849656; cv=none; b=Fp9I375jj815MlL+m4+WlMSJt7mJ2ixdrBhFIa1W13RXIpX39abOTKFLAHSDqa9jfgOp18sbHkFlW1DZeWKaMirBKbg+dGs92uK+TM0+luM2STOdGqTQsgfuBF78jK+YSff/4onpXGWx+MTxQvdj4tU3Mt/Wjw2L/X5agGYpYSs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849656; c=relaxed/simple; bh=thFw5qMMqfThnPyR4pNRr4fYK3AXdP6TEVPP9WW/QZE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=nVHpAe8qWEk9KiUDZSefij45fooxHU76C2a9cro0N4khgBSjvOyy+RvStg/hGm6jk6/xm6P42t3K5BA+oHdy53np/CM1UgYvsSCjVletfMAm6dGoJfM2cVbQ9CiOeOvG+v7dH7IUJv58zaWO6eMRZqMu4T62ybffLw9dh/9uP3g= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=lPtJ9Xat; arc=none smtp.client-ip=209.85.166.169 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="lPtJ9Xat" Received: by mail-il1-f169.google.com with SMTP id e9e14a558f8ab-36a224d7414so179095ab.1 for ; Thu, 11 Apr 2024 08:34:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849653; x=1713454453; 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=HWXwVKMGtdRFRsHTO85Me8k9SmVSkwckrfCHalnQuWk=; b=lPtJ9XatkSA+cF0tL42qhPFg9haUPqomJHthN/8hM4gL+BVWy8aOZDpW7ena5m21+T rVbkwlS7GvMd7ARZhETfKJWkYw4SKsWXKQivTkwP+3NLuUQrLDVnaJa8jGku9OOorzxT ds4NnCYWVOdhj5fxhbKMbzVP3FEcR93DATLiUJxEhtlYukY/kT8QjlTz7dIO5/ob4r1M RhqyPNzpl7cY3J8pH5edYT/8wr9hEHe8DYmg/eatYWnDxwCPHrmTVPFCH3oIsfnySatE 7QdbT8QWVWrUDLQlfC6waLpZ8IYIgWAQcelM94kUnx+XKsGXxp8p7Cya4I0UelLnTyLH nong== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849653; x=1713454453; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=HWXwVKMGtdRFRsHTO85Me8k9SmVSkwckrfCHalnQuWk=; b=LCLS7x5gY0fcLIi1DVMkXp/gqo5DrR/dVvradiEpXEKQ6lZyImeQ/t32hafMlJ77Zu 0QU4Jpx1uliwPS1ebdKnD2AjXmAY0gv27hQB6OynxzogSvLo382SQsaK7FTvgAbjNt1D DltpIsZYEEQg0TCQg/ubMj1zWrc7iz23dwWfzAZFZUygh6nwlPue+x9Aa8Pw6Vua2GW/ RYLAo205d47i8S/UMZLXPSkNHvjKzuhNOhIMHiZp3EwFIB61wsZvfpJXKP25uJF4azPD TmZx2+2BT9WqbATS0D77RNImJaFlB8LEtoURkD1LkqtU78nEdycPdnQkrIIokRJbAvCp RgfQ== X-Gm-Message-State: AOJu0Yy4K+rSdmxvek2H+LyJ3dvx6dVTRqiTzoXzXXHzcAw65MsJkD8g 3B6dx2kQvC8PXkvb9Hsya1r79a4mwwHjfNMEEqdJCxc/pYE7/02df23jvlbpMreiF1uKOdIHg8E S X-Google-Smtp-Source: AGHT+IE79FO5517mpTdyrO/Wo75DVpCBXnd/9gW/DAk0Ch/EVuPSe9vLg/CAef2iYOFXFEfmvyChaA== X-Received: by 2002:a6b:4e14:0:b0:7d6:631d:7b0 with SMTP id c20-20020a6b4e14000000b007d6631d07b0mr180367iob.1.1712849653268; Thu, 11 Apr 2024 08:34:13 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.34.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:34:11 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 089/437] apparmor: convert to read/write iterators Date: Thu, 11 Apr 2024 09:13:49 -0600 Message-ID: <20240411153126.16201-90-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- security/apparmor/apparmorfs.c | 55 ++++++++++++++++++---------------- 1 file changed, 29 insertions(+), 26 deletions(-) diff --git a/security/apparmor/apparmorfs.c b/security/apparmor/apparmorfs.c index bcfea073e3f2..b8d54d54a441 100644 --- a/security/apparmor/apparmorfs.c +++ b/security/apparmor/apparmorfs.c @@ -450,9 +450,10 @@ static ssize_t profile_load(struct file *f, const char= __user *buf, size_t size, =20 return error; } +FOPS_WRITE_ITER_HELPER(profile_load); =20 static const struct file_operations aa_fs_profile_load =3D { - .write =3D profile_load, + .write_iter =3D profile_load_iter, .llseek =3D default_llseek, }; =20 @@ -467,9 +468,10 @@ static ssize_t profile_replace(struct file *f, const c= har __user *buf, =20 return error; } +FOPS_WRITE_ITER_HELPER(profile_replace); =20 static const struct file_operations aa_fs_profile_replace =3D { - .write =3D profile_replace, + .write_iter =3D profile_replace_iter, .llseek =3D default_llseek, }; =20 @@ -508,9 +510,10 @@ static ssize_t profile_remove(struct file *f, const ch= ar __user *buf, aa_put_ns(ns); return error; } +FOPS_WRITE_ITER_HELPER(profile_remove); =20 static const struct file_operations aa_fs_profile_remove =3D { - .write =3D profile_remove, + .write_iter =3D profile_remove_iter, .llseek =3D default_llseek, }; =20 @@ -532,10 +535,11 @@ static int ns_revision_release(struct inode *inode, s= truct file *file) return 0; } =20 -static ssize_t ns_revision_read(struct file *file, char __user *buf, - size_t size, loff_t *ppos) +static ssize_t ns_revision_read(struct kiocb *iocb, struct iov_iter *to) { + struct file *file =3D iocb->ki_filp; struct aa_revision *rev =3D file->private_data; + size_t size =3D iov_iter_count(to); char buffer[32]; long last_read; int avail; @@ -554,13 +558,13 @@ static ssize_t ns_revision_read(struct file *file, ch= ar __user *buf, } =20 avail =3D sprintf(buffer, "%ld\n", rev->ns->revision); - if (*ppos + size > avail) { + if (iocb->ki_pos + size > avail) { rev->last_read =3D rev->ns->revision; - *ppos =3D 0; + iocb->ki_pos =3D 0; } mutex_unlock(&rev->ns->lock); =20 - return simple_read_from_buffer(buf, size, ppos, buffer, avail); + return simple_copy_to_iter(buffer, &iocb->ki_pos, avail, to); } =20 static int ns_revision_open(struct inode *inode, struct file *file) @@ -604,7 +608,7 @@ static const struct file_operations aa_fs_ns_revision_f= ops =3D { .owner =3D THIS_MODULE, .open =3D ns_revision_open, .poll =3D ns_revision_poll, - .read =3D ns_revision_read, + .read_iter =3D ns_revision_read, .llseek =3D generic_file_llseek, .release =3D ns_revision_release, }; @@ -878,9 +882,9 @@ static struct multi_transaction *multi_transaction_new(= struct file *file, return t; } =20 -static ssize_t multi_transaction_read(struct file *file, char __user *buf, - size_t size, loff_t *pos) +static ssize_t multi_transaction_read(struct kiocb *iocb, struct iov_iter = *to) { + struct file *file =3D iocb->ki_filp; struct multi_transaction *t; ssize_t ret; =20 @@ -891,7 +895,7 @@ static ssize_t multi_transaction_read(struct file *file= , char __user *buf, if (!t) return 0; =20 - ret =3D simple_read_from_buffer(buf, size, pos, t->data, t->size); + ret =3D simple_copy_to_iter(t->data, &iocb->ki_pos, t->size, to); put_multi_transaction(t); =20 return ret; @@ -980,10 +984,11 @@ static ssize_t aa_write_access(struct file *file, con= st char __user *ubuf, =20 return count; } +FOPS_WRITE_ITER_HELPER(aa_write_access); =20 static const struct file_operations aa_sfs_access =3D { - .write =3D aa_write_access, - .read =3D multi_transaction_read, + .write_iter =3D aa_write_access_iter, + .read_iter =3D multi_transaction_read, .release =3D multi_transaction_release, .llseek =3D generic_file_llseek, }; @@ -1021,7 +1026,7 @@ static int aa_sfs_seq_open(struct inode *inode, struc= t file *file) const struct file_operations aa_sfs_seq_file_ops =3D { .owner =3D THIS_MODULE, .open =3D aa_sfs_seq_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D single_release, }; @@ -1040,7 +1045,7 @@ static int seq_profile_ ##NAME ##_open(struct inode *= inode, struct file *file)\ static const struct file_operations seq_profile_ ##NAME ##_fops =3D { = \ .owner =3D THIS_MODULE, \ .open =3D seq_profile_ ##NAME ##_open, \ - .read =3D seq_read, \ + .read_iter =3D seq_read_iter, \ .llseek =3D seq_lseek, \ .release =3D seq_profile_release, \ } \ @@ -1142,7 +1147,7 @@ static int seq_ns_ ##NAME ##_open(struct inode *inode= , struct file *file) \ static const struct file_operations seq_ns_ ##NAME ##_fops =3D { \ .owner =3D THIS_MODULE, \ .open =3D seq_ns_ ##NAME ##_open, \ - .read =3D seq_read, \ + .read_iter =3D seq_read_iter, \ .llseek =3D seq_lseek, \ .release =3D single_release, \ } \ @@ -1232,7 +1237,7 @@ static int seq_rawdata_ ##NAME ##_open(struct inode *= inode, struct file *file)\ static const struct file_operations seq_rawdata_ ##NAME ##_fops =3D { = \ .owner =3D THIS_MODULE, \ .open =3D seq_rawdata_ ##NAME ##_open, \ - .read =3D seq_read, \ + .read_iter =3D seq_read_iter, \ .llseek =3D seq_lseek, \ .release =3D seq_rawdata_release, \ } \ @@ -1348,14 +1353,12 @@ static int decompress_zstd(char *src, size_t slen, = char *dst, size_t dlen) return 0; } =20 -static ssize_t rawdata_read(struct file *file, char __user *buf, size_t si= ze, - loff_t *ppos) +static ssize_t rawdata_read(struct kiocb *iocb, struct iov_iter *to) { - struct rawdata_f_data *private =3D file->private_data; + struct rawdata_f_data *private =3D iocb->ki_filp->private_data; =20 - return simple_read_from_buffer(buf, size, ppos, - RAWDATA_F_DATA_BUF(private), - private->loaddata->size); + return simple_copy_to_iter(RAWDATA_F_DATA_BUF(private), &iocb->ki_pos, + private->loaddata->size, to); } =20 static int rawdata_release(struct inode *inode, struct file *file) @@ -1407,7 +1410,7 @@ static int rawdata_open(struct inode *inode, struct f= ile *file) =20 static const struct file_operations rawdata_fops =3D { .open =3D rawdata_open, - .read =3D rawdata_read, + .read_iter =3D rawdata_read, .llseek =3D generic_file_llseek, .release =3D rawdata_release, }; @@ -2298,7 +2301,7 @@ static int profiles_release(struct inode *inode, stru= ct file *file) =20 static const struct file_operations aa_sfs_profiles_fops =3D { .open =3D profiles_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D profiles_release, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f46.google.com (mail-io1-f46.google.com [209.85.166.46]) (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 549F113775D for ; Thu, 11 Apr 2024 15:34:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849657; cv=none; b=bGuhpKiU1hYxPX4HWxK0QIZsDmLt7IjM5pi3NAGSLsXfhAZSNv9fVf1scCO5Y+b2++pi/wghQTC3lLT8zeFfk63DWLhotf2RdA978I3Khrbkvmy+u2WOfKmyeiNLPjSwI6b1SZOMNZ9f8tJ1LcxawrVMWIjZFdrYXuORfcaHfu0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849657; c=relaxed/simple; bh=IrOVJYKYkD/uixTWBJui+AZJOs9K49x8gTcXl9hNTdg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=epsZ6Oa0snQRedBNhpcpHpwFcscBjGLrKdB89vuQRi00sQ7JLF/VloL3n/PwlINTd9ihNg28GnW33RWXY42gC93qpm+wfuSvTWgNtlwWyNy31aRwkLgU2Q2Bn2ARQsYegbUzeUVuLsVU4w/qqOzaUHu19efOLXoKn5LnGlw0dGo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=lOJBrBRG; arc=none smtp.client-ip=209.85.166.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="lOJBrBRG" Received: by mail-io1-f46.google.com with SMTP id ca18e2360f4ac-7d67d1073easo9752339f.0 for ; Thu, 11 Apr 2024 08:34:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849655; x=1713454455; 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=Ve5FDQCQGXd6KkbwdWDSWiHyt+M8i4Vx8XVycwHSjkM=; b=lOJBrBRGb+mY0T/ylfsuZGGKSEiFOIPyLip8/DU7FND+zrGjuDFzhjSTg/yf9qOrcf WIwPvowvPEpuwd6v72XC5HzkPL/vLyTc8f0bBWhd4O8Pf8M+1Rd4QglO41cwOESU7wAu IUWN+u9WedoNkCQDtilc4oXIyKGcRM+fEYPp09gBeOeGqdYF+ocM8Of8HND4OzHnBf4H P2qyBOzZWwYKVa6OXXyBSVP0yBaeIVLDMYzMnGRXPK8/eljTR+QW4KFpKL6Hcvwqx6lS gmqDNCOcDqZkbZWUU2M+BGUo8I2MQRtBxyvFP1WzTsd+2fLJXckM0loEtIKYWVaa+Rfv f8Ag== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849655; x=1713454455; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Ve5FDQCQGXd6KkbwdWDSWiHyt+M8i4Vx8XVycwHSjkM=; b=hnJCZwjACT5CQ/0tcWgv+J3aM0qmscj6zwXs+kLnONu4gQ7qO24OGS/0xxoI62WHSU EhLw4qROborAhd3sazEtFuYI0yGPQWNk81dnMvH/J3UJU4daVQV0p0YQSeAbgvhW5HQR 1trVYlFmkCXsKZ1NDlDSivScWZS4BbzwihpJ0UnxhNdAZ3/Xg0qextdlOJxZqc5x2Q6g 5LswpkWIoawBY+t0Zi50sUOD8MtLXUIbD3HECGmuN6QdkblVxp61hP+AWE5whiLaTc9X SDK5I9j82mYRk3h6AN1HgmYHz+MutHYe1xlH7ZVGuY1VV6PejP+8103GWN0NLJG2dObU Kz2g== X-Gm-Message-State: AOJu0Ywat1Ri+siimud3Z/ABhJ1TuDMbg0L9VkDYpAb9NGuTpTXTiq3g N1lKEHGw6Mq0etbx+vy/6SRSwbNYjmTEFpA3I86RnUggo3/y5K4lYPd1tcVd1DMjwwG6JpA9RJ9 i X-Google-Smtp-Source: AGHT+IH/MUvgNYYKrisZ+Ji8Fa7GnMX9eiOPSrfoI8cmqlvHL9B+2t656LZplSjVIl+mDY7eVjw1nA== X-Received: by 2002:a6b:7b05:0:b0:7d6:60dc:bc8e with SMTP id l5-20020a6b7b05000000b007d660dcbc8emr189079iop.1.1712849655188; Thu, 11 Apr 2024 08:34:15 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.34.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:34:13 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 090/437] landlock: convert to read/write iterators Date: Thu, 11 Apr 2024 09:13:50 -0600 Message-ID: <20240411153126.16201-91-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- security/landlock/syscalls.c | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/security/landlock/syscalls.c b/security/landlock/syscalls.c index 6788e73b6681..9a79b90f4dc9 100644 --- a/security/landlock/syscalls.c +++ b/security/landlock/syscalls.c @@ -122,21 +122,12 @@ static int fop_ruleset_release(struct inode *const in= ode, return 0; } =20 -static ssize_t fop_dummy_read(struct file *const filp, char __user *const = buf, - const size_t size, loff_t *const ppos) +static ssize_t fop_dummy_iter(struct kiocb *iocb, struct iov_iter *iov) { /* Dummy handler to enable FMODE_CAN_READ. */ return -EINVAL; } =20 -static ssize_t fop_dummy_write(struct file *const filp, - const char __user *const buf, const size_t size, - loff_t *const ppos) -{ - /* Dummy handler to enable FMODE_CAN_WRITE. */ - return -EINVAL; -} - /* * A ruleset file descriptor enables to build a ruleset by adding (i.e. * writing) rule after rule, without relying on the task's context. This @@ -145,8 +136,8 @@ static ssize_t fop_dummy_write(struct file *const filp, */ static const struct file_operations ruleset_fops =3D { .release =3D fop_ruleset_release, - .read =3D fop_dummy_read, - .write =3D fop_dummy_write, + .read_iter =3D fop_dummy_iter, + .write_iter =3D fop_dummy_iter, }; =20 #define LANDLOCK_ABI_VERSION 4 --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f45.google.com (mail-io1-f45.google.com [209.85.166.45]) (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 27230137904 for ; Thu, 11 Apr 2024 15:34:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849659; cv=none; b=AGpirpwT5Aolzfzlvim4dk1lXdrIuFDsBt8H6dQEQL7WzwBilXFtsbthWSleLhhvsgCM+K6MeZ94QdfHowoFZNhyba+qCbSEMHKxUkKP6J00aCbm0Ez16HaAHHfsuzn6KniULKhVnia4p4ZQ3C7Z54vQAtyT5J0kXQhQ3+uI2y0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849659; c=relaxed/simple; bh=AP5RPz/E+pwYxNd2wwmdiHkuvAntphTgRIqwFpCJcS4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=LbS6lG0oJRDPopJJVFMYl44H0k2y4PTpkDFa+Kt/Hq+wmzWm76ZOHNXKyUpwA6YDf8IEgQ1r8waEaROpyN3jbG6E5t7dD5X+VjRTax6vb7H4g6FFZPj18CNjMaOOflqwXAgGBb7/72ifbdF49gRGLUcotQw5RoRX3SlSlcEwPSk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=KEvoLLQP; arc=none smtp.client-ip=209.85.166.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="KEvoLLQP" Received: by mail-io1-f45.google.com with SMTP id ca18e2360f4ac-7d5ed700c2dso16136639f.0 for ; Thu, 11 Apr 2024 08:34:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849657; x=1713454457; 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=TydMiuJzAnVI1Y/DgMFL+Q7ONv6WRnlP2/JlOY38Vuo=; b=KEvoLLQP3bfZyLmR7lh4490FtwqRVjd/ThtpS93FTyhpQzCInN8R9FLnM7XsTcHJjh QN6XliBOwu/4mDN6WQt0evBvBy4yZ3RWvLS7u6HLxyVAYAAYybr99uun/tFvVE1qs1tN ltlOVDlbfa7dnx4esq8Efg0WqwC+JGsz9iNXmIGqWdxmTVFiX5iLBep1r+6zItwawHEL CGbISC/oFWEh42z2Dka4QD9UHWA80q5hhkON58wXv47waz8US8q7VzhG8lu/Pkgnc5kM Ifi2TUAiJe8IhXlo8d7DRv2Jb+JWj49QwdDhmdQYkSIOZbTm2y+PYa0ITX3iTdbtUHwf jIaQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849657; x=1713454457; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=TydMiuJzAnVI1Y/DgMFL+Q7ONv6WRnlP2/JlOY38Vuo=; b=H22GH18rGekkZpnqfKm4JDAljHvKArd5hNjvQlK6fW8arNWkHfPvfivOATwgUcyhC1 CMJk6xj0wEc6VVYp+EmXsHWMNfWSg8wVzK+FIjavX9QrbQFVKFbqzEauAbPUJfWfb02u wGFLWfke2+kN/a22CaBItJRW1VModuplIyPHHapZYpyLH8pP7pcPuJ0FrYS4NhviGmWQ xtRun/2OVo6C/XC9sjZSgHVWaOPfIXf9dH3GBW5cepnx5OunBOOnTa4Tsn1NT7LPD668 RW7lYpvlO+htAbjB04tldeB3anGRsdeV+khXGnZDggKuiCkynz+7ALHNtTT1ULQv0Fbm wdXg== X-Gm-Message-State: AOJu0YwXuPcA2hcqFEjsjZqX2pndNlfc8gNPod1RqBp1OHJ68wcjJohA 3mkL+kj2fg+wy1r7AHHDjIqrW5gp9dTorFa7Mfrpu5cNgUpLgsHVso0QRIQaO04hW9QHQq/UVHK c X-Google-Smtp-Source: AGHT+IHGNBpHIg15nWL5QNLyBB1Z3yFkn/vEZdgXiEpUqLeXRR5peQaISH+VubqQ5rMyASGsr5HWhA== X-Received: by 2002:a92:60b:0:b0:369:f53b:6c2 with SMTP id x11-20020a92060b000000b00369f53b06c2mr5337304ilg.1.1712849657076; Thu, 11 Apr 2024 08:34:17 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.34.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:34:15 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 091/437] lsm: convert to read/write iterators Date: Thu, 11 Apr 2024 09:13:51 -0600 Message-ID: <20240411153126.16201-92-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- security/safesetid/securityfs.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/security/safesetid/securityfs.c b/security/safesetid/securityf= s.c index 25310468bcdd..82e1e9c37db2 100644 --- a/security/safesetid/securityfs.c +++ b/security/safesetid/securityfs.c @@ -245,6 +245,7 @@ static ssize_t safesetid_uid_file_write(struct file *fi= le, =20 return handle_policy_update(file, buf, len, UID); } +FOPS_WRITE_ITER_HELPER(safesetid_uid_file_write); =20 static ssize_t safesetid_gid_file_write(struct file *file, const char __user *buf, @@ -259,6 +260,7 @@ static ssize_t safesetid_gid_file_write(struct file *fi= le, =20 return handle_policy_update(file, buf, len, GID); } +FOPS_WRITE_ITER_HELPER(safesetid_gid_file_write); =20 static ssize_t safesetid_file_read(struct file *file, char __user *buf, size_t len, loff_t *ppos, struct mutex *policy_update_lock, struct = __rcu setid_ruleset* ruleset) @@ -285,6 +287,7 @@ static ssize_t safesetid_uid_file_read(struct file *fil= e, char __user *buf, return safesetid_file_read(file, buf, len, ppos, &uid_policy_update_lock, safesetid_setuid_rules); } +FOPS_READ_ITER_HELPER(safesetid_uid_file_read); =20 static ssize_t safesetid_gid_file_read(struct file *file, char __user *buf, size_t len, loff_t *ppos) @@ -292,17 +295,16 @@ static ssize_t safesetid_gid_file_read(struct file *f= ile, char __user *buf, return safesetid_file_read(file, buf, len, ppos, &gid_policy_update_lock, safesetid_setgid_rules); } - - +FOPS_READ_ITER_HELPER(safesetid_gid_file_read); =20 static const struct file_operations safesetid_uid_file_fops =3D { - .read =3D safesetid_uid_file_read, - .write =3D safesetid_uid_file_write, + .read_iter =3D safesetid_uid_file_read_iter, + .write_iter =3D safesetid_uid_file_write_iter, }; =20 static const struct file_operations safesetid_gid_file_fops =3D { - .read =3D safesetid_gid_file_read, - .write =3D safesetid_gid_file_write, + .read_iter =3D safesetid_gid_file_read_iter, + .write_iter =3D safesetid_gid_file_write_iter, }; =20 static int __init safesetid_init_securityfs(void) --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f48.google.com (mail-io1-f48.google.com [209.85.166.48]) (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 EB3FD13793D for ; Thu, 11 Apr 2024 15:34:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849661; cv=none; b=d+PTW1EVSyGaSPQkoZAVmGQo+WZxX70qDNBFygZFVksH0IhKhNFhN2sELcQ4gbENt5grABEtQn6va65KkwU9zJFaAzBOHT3TUdN+fy7u4bD/tgrD3GgJIvQLDVweI7a+cMs64jX9/t2UNpBffr8ZDuLuGuH2AoCYwrkechcdfFc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849661; c=relaxed/simple; bh=r1/EmfadIXBPtF/PbthOkhVSG2zjLkQozSjjQYm+N74=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=hg3Rs6m+TGSw1LnBc6J+AgbhUIMbDzUkR5H06R8gJpPgP1VMSLdw7CNqDbxKq9aeNTPraaE4ibhS1rTKdZKLHNEq/2uS12XDX//SuVT9afOR87UHWUsMvl/e/C1k/1oaT2QRpJNNvDim/5Le2IwwNlT8VMQWUIRVedDpdRODzQ0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=tGk40WNh; arc=none smtp.client-ip=209.85.166.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="tGk40WNh" Received: by mail-io1-f48.google.com with SMTP id ca18e2360f4ac-7cc0e831e11so170476539f.1 for ; Thu, 11 Apr 2024 08:34:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849659; x=1713454459; 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=344vDvRj1E3f29ijyUwPcE9cn5GRABlXopO92FUIh1g=; b=tGk40WNhd6Wh1xVLl5635F36ZyeMpU7eqvxgzCYTF+txt4HMVOzZe/JOb0j9Jr2V0t 6Izntzy31wRo+hNKytRLJAILswJ/nhbRsU2TpviBA95wB1CUx1IBGAIEvZqnHJqWmG4Y jKD5dqAaWVKQ6xNcO/HImz2Gw5FASShGoonTaYk0WxWyBzGYqTaXAmsNz8TA4738vKDo uxfVTb0I+p/PTqDCKhc7D7DfLwPmyYDvYto5X2TwR7OHEUtCQxXXVQi2/hKAB+tPIctW 8LgeVT98CdSytTBiNZbhfZcsheXMAUxEwsBm6sD4UIEVb0poyrXqD4RnkGUHv/b8bpjq tv+g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849659; x=1713454459; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=344vDvRj1E3f29ijyUwPcE9cn5GRABlXopO92FUIh1g=; b=MlWs5WDXjF1Eo2p5yjfCYWKpShcHMJqHAJvImRuLPY8hLZc0xsEA8WbiRcBPwOq+1b fZVM0qRxYiLy9ZailvqA6LUTq3xcxA6Gx8VUAzjTot5ryl7Pdp8M4MDHbKxdMRIIl9G+ h2rvnL+771nYAL4y4fun+6Gv9Esfo5hQ189qqdHgo12B67YJ+tCRSXGgnmm0qSdggpS+ Flp055Ql94k22Qj5BEXjUzSYo2Wu95812e8gtlLYlFpwtCBuQrFhZxQYZgFSmfAhe5gn RsLBt9ri9TLx2J4aIDRrtklovPXgZcqNhM8E9cvkcbhUofsBR3XT0lo0cuqv+p5j2mK6 KUQA== X-Gm-Message-State: AOJu0Yy6+07dE+t07LrsmqCsinWrT6I1+TsO3CqXwjPkFPGCDZ3hx8MP kNSzik86tgW5P6R8W4PWgBvcunrAbW9nxgh+ee83NBoQ5+/QMB+38yix0DbC/WCTNhZKLkyt2Uc u X-Google-Smtp-Source: AGHT+IGckC3SHf4+1g0lt0Gxm3biABp2+KWcPBTnB3Xc222s2O+pAPfzyaxA/KZ7LYzfHt8Dyd5lGA== X-Received: by 2002:a05:6602:21d7:b0:7d6:9ddf:5095 with SMTP id c23-20020a05660221d700b007d69ddf5095mr9786ioc.1.1712849658757; Thu, 11 Apr 2024 08:34:18 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.34.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:34:17 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 092/437] selinux: convert to read/write iterators Date: Thu, 11 Apr 2024 09:13:52 -0600 Message-ID: <20240411153126.16201-93-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- security/selinux/selinuxfs.c | 168 +++++++++++++++++------------------ 1 file changed, 82 insertions(+), 86 deletions(-) diff --git a/security/selinux/selinuxfs.c b/security/selinux/selinuxfs.c index 074d6c2714eb..9ac5bcf5edc4 100644 --- a/security/selinux/selinuxfs.c +++ b/security/selinux/selinuxfs.c @@ -120,15 +120,14 @@ static void selinux_fs_info_free(struct super_block *= sb) #define POLICYCAP_DIR_NAME "policy_capabilities" =20 #define TMPBUFLEN 12 -static ssize_t sel_read_enforce(struct file *filp, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t sel_read_enforce(struct kiocb *iocb, struct iov_iter *to) { char tmpbuf[TMPBUFLEN]; ssize_t length; =20 length =3D scnprintf(tmpbuf, TMPBUFLEN, "%d", enforcing_enabled()); - return simple_read_from_buffer(buf, count, ppos, tmpbuf, length); + return simple_copy_to_iter(tmpbuf, &iocb->ki_pos, length, to); } =20 #ifdef CONFIG_SECURITY_SELINUX_DEVELOP @@ -186,32 +185,32 @@ static ssize_t sel_write_enforce(struct file *file, c= onst char __user *buf, kfree(page); return length; } +FOPS_WRITE_ITER_HELPER(sel_write_enforce); #else -#define sel_write_enforce NULL +#define sel_write_enforce_iter NULL #endif =20 static const struct file_operations sel_enforce_ops =3D { - .read =3D sel_read_enforce, - .write =3D sel_write_enforce, + .read_iter =3D sel_read_enforce, + .write_iter =3D sel_write_enforce_iter, .llseek =3D generic_file_llseek, }; =20 -static ssize_t sel_read_handle_unknown(struct file *filp, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t sel_read_handle_unknown(struct kiocb *iocb, struct iov_iter= *to) { char tmpbuf[TMPBUFLEN]; ssize_t length; - ino_t ino =3D file_inode(filp)->i_ino; + ino_t ino =3D file_inode(iocb->ki_filp)->i_ino; int handle_unknown =3D (ino =3D=3D SEL_REJECT_UNKNOWN) ? security_get_reject_unknown() : !security_get_allow_unknown(); =20 length =3D scnprintf(tmpbuf, TMPBUFLEN, "%d", handle_unknown); - return simple_read_from_buffer(buf, count, ppos, tmpbuf, length); + return simple_copy_to_iter(tmpbuf, &iocb->ki_pos, length, to); } =20 static const struct file_operations sel_handle_unknown_ops =3D { - .read =3D sel_read_handle_unknown, + .read_iter =3D sel_read_handle_unknown, .llseek =3D generic_file_llseek, }; =20 @@ -227,16 +226,14 @@ static int sel_open_handle_status(struct inode *inode= , struct file *filp) return 0; } =20 -static ssize_t sel_read_handle_status(struct file *filp, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t sel_read_handle_status(struct kiocb *iocb, struct iov_iter = *to) { - struct page *status =3D filp->private_data; + struct page *status =3D iocb->ki_filp->private_data; =20 BUG_ON(!status); =20 - return simple_read_from_buffer(buf, count, ppos, - page_address(status), - sizeof(struct selinux_kernel_status)); + return simple_copy_to_iter(page_address(status), &iocb->ki_pos, + sizeof(struct selinux_kernel_status), to); } =20 static int sel_mmap_handle_status(struct file *filp, @@ -263,7 +260,7 @@ static int sel_mmap_handle_status(struct file *filp, =20 static const struct file_operations sel_handle_status_ops =3D { .open =3D sel_open_handle_status, - .read =3D sel_read_handle_status, + .read_iter =3D sel_read_handle_status, .mmap =3D sel_mmap_handle_status, .llseek =3D generic_file_llseek, }; @@ -302,24 +299,24 @@ static ssize_t sel_write_disable(struct file *file, c= onst char __user *buf, kfree(page); return length; } +FOPS_WRITE_ITER_HELPER(sel_write_disable); =20 static const struct file_operations sel_disable_ops =3D { - .write =3D sel_write_disable, + .write_iter =3D sel_write_disable_iter, .llseek =3D generic_file_llseek, }; =20 -static ssize_t sel_read_policyvers(struct file *filp, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t sel_read_policyvers(struct kiocb *iocb, struct iov_iter *to) { char tmpbuf[TMPBUFLEN]; ssize_t length; =20 length =3D scnprintf(tmpbuf, TMPBUFLEN, "%u", POLICYDB_VERSION_MAX); - return simple_read_from_buffer(buf, count, ppos, tmpbuf, length); + return simple_copy_to_iter(tmpbuf, &iocb->ki_pos, length, to); } =20 static const struct file_operations sel_policyvers_ops =3D { - .read =3D sel_read_policyvers, + .read_iter =3D sel_read_policyvers, .llseek =3D generic_file_llseek, }; =20 @@ -339,19 +336,18 @@ static struct dentry *sel_make_dir(struct dentry *dir= , const char *name, static struct dentry *sel_make_swapover_dir(struct super_block *sb, unsigned long *ino); =20 -static ssize_t sel_read_mls(struct file *filp, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t sel_read_mls(struct kiocb *iocb, struct iov_iter *to) { char tmpbuf[TMPBUFLEN]; ssize_t length; =20 length =3D scnprintf(tmpbuf, TMPBUFLEN, "%d", security_mls_enabled()); - return simple_read_from_buffer(buf, count, ppos, tmpbuf, length); + return simple_copy_to_iter(tmpbuf, &iocb->ki_pos, length, to); } =20 static const struct file_operations sel_mls_ops =3D { - .read =3D sel_read_mls, + .read_iter =3D sel_read_mls, .llseek =3D generic_file_llseek, }; =20 @@ -425,10 +421,9 @@ static int sel_release_policy(struct inode *inode, str= uct file *filp) return 0; } =20 -static ssize_t sel_read_policy(struct file *filp, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t sel_read_policy(struct kiocb *iocb, struct iov_iter *to) { - struct policy_load_memory *plm =3D filp->private_data; + struct policy_load_memory *plm =3D iocb->ki_filp->private_data; int ret; =20 ret =3D avc_has_perm(current_sid(), SECINITSID_SECURITY, @@ -436,7 +431,7 @@ static ssize_t sel_read_policy(struct file *filp, char = __user *buf, if (ret) return ret; =20 - return simple_read_from_buffer(buf, count, ppos, plm->data, plm->len); + return simple_copy_to_iter(plm->data, &iocb->ki_pos, plm->len, to); } =20 static vm_fault_t sel_mmap_policy_fault(struct vm_fault *vmf) @@ -483,7 +478,7 @@ static int sel_mmap_policy(struct file *filp, struct vm= _area_struct *vma) =20 static const struct file_operations sel_policy_ops =3D { .open =3D sel_open_policy, - .read =3D sel_read_policy, + .read_iter =3D sel_read_policy, .mmap =3D sel_mmap_policy, .release =3D sel_release_policy, .llseek =3D generic_file_llseek, @@ -567,12 +562,13 @@ static int sel_make_policy_nodes(struct selinux_fs_in= fo *fsi, return ret; } =20 -static ssize_t sel_write_load(struct file *file, const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t sel_write_load(struct kiocb *iocb, struct iov_iter *from) =20 { + struct file *file =3D iocb->ki_filp; struct selinux_fs_info *fsi =3D file_inode(file)->i_sb->s_fs_info; struct selinux_load_state load_state; + size_t count =3D iov_iter_count(from); ssize_t length; void *data =3D NULL; =20 @@ -585,7 +581,7 @@ static ssize_t sel_write_load(struct file *file, const = char __user *buf, =20 /* No partial writes. */ length =3D -EINVAL; - if (*ppos !=3D 0) + if (iocb->ki_pos !=3D 0) goto out; =20 length =3D -ENOMEM; @@ -594,7 +590,7 @@ static ssize_t sel_write_load(struct file *file, const = char __user *buf, goto out; =20 length =3D -EFAULT; - if (copy_from_user(data, buf, count) !=3D 0) + if (!copy_from_iter_full(data, count, from)) goto out; =20 length =3D security_load_policy(data, count, &load_state); @@ -625,7 +621,7 @@ static ssize_t sel_write_load(struct file *file, const = char __user *buf, } =20 static const struct file_operations sel_load_ops =3D { - .write =3D sel_write_load, + .write_iter =3D sel_write_load, .llseek =3D generic_file_llseek, }; =20 @@ -662,15 +658,14 @@ static ssize_t sel_write_context(struct file *file, c= har *buf, size_t size) return length; } =20 -static ssize_t sel_read_checkreqprot(struct file *filp, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t sel_read_checkreqprot(struct kiocb *iocb, struct iov_iter *= to) { char tmpbuf[TMPBUFLEN]; ssize_t length; =20 length =3D scnprintf(tmpbuf, TMPBUFLEN, "%u", checkreqprot_get()); - return simple_read_from_buffer(buf, count, ppos, tmpbuf, length); + return simple_copy_to_iter(tmpbuf, &iocb->ki_pos, length, to); } =20 static ssize_t sel_write_checkreqprot(struct file *file, const char __user= *buf, @@ -717,9 +712,11 @@ static ssize_t sel_write_checkreqprot(struct file *fil= e, const char __user *buf, kfree(page); return length; } +FOPS_WRITE_ITER_HELPER(sel_write_checkreqprot); + static const struct file_operations sel_checkreqprot_ops =3D { - .read =3D sel_read_checkreqprot, - .write =3D sel_write_checkreqprot, + .read_iter =3D sel_read_checkreqprot, + .write_iter =3D sel_write_checkreqprot_iter, .llseek =3D generic_file_llseek, }; =20 @@ -793,9 +790,10 @@ static ssize_t sel_write_validatetrans(struct file *fi= le, kfree(taskcon); return rc; } +FOPS_WRITE_ITER_HELPER(sel_write_validatetrans); =20 static const struct file_operations sel_transition_ops =3D { - .write =3D sel_write_validatetrans, + .write_iter =3D sel_write_validatetrans_iter, .llseek =3D generic_file_llseek, }; =20 @@ -837,10 +835,11 @@ static ssize_t selinux_transaction_write(struct file = *file, const char __user *b } return rv; } +FOPS_WRITE_ITER_HELPER(selinux_transaction_write); =20 static const struct file_operations transaction_ops =3D { - .write =3D selinux_transaction_write, - .read =3D simple_transaction_read, + .write_iter =3D selinux_transaction_write_iter, + .read_iter =3D simple_transaction_read_iter, .release =3D simple_transaction_release, .llseek =3D generic_file_llseek, }; @@ -1192,9 +1191,9 @@ static struct inode *sel_make_inode(struct super_bloc= k *sb, umode_t mode) return ret; } =20 -static ssize_t sel_read_bool(struct file *filep, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t sel_read_bool(struct kiocb *iocb, struct iov_iter *to) { + struct file *filep =3D iocb->ki_filp; struct selinux_fs_info *fsi =3D file_inode(filep)->i_sb->s_fs_info; char *page =3D NULL; ssize_t length; @@ -1223,7 +1222,7 @@ static ssize_t sel_read_bool(struct file *filep, char= __user *buf, length =3D scnprintf(page, PAGE_SIZE, "%d %d", cur_enforcing, fsi->bool_pending_values[index]); mutex_unlock(&selinux_state.policy_mutex); - ret =3D simple_read_from_buffer(buf, count, ppos, page, length); + ret =3D simple_copy_to_iter(page, &iocb->ki_pos, length, to); out_free: free_page((unsigned long)page); return ret; @@ -1282,10 +1281,11 @@ static ssize_t sel_write_bool(struct file *filep, c= onst char __user *buf, kfree(page); return length; } +FOPS_WRITE_ITER_HELPER(sel_write_bool); =20 static const struct file_operations sel_bool_ops =3D { - .read =3D sel_read_bool, - .write =3D sel_write_bool, + .read_iter =3D sel_read_bool, + .write_iter =3D sel_write_bool_iter, .llseek =3D generic_file_llseek, }; =20 @@ -1334,9 +1334,10 @@ static ssize_t sel_commit_bools_write(struct file *f= ilep, kfree(page); return length; } +FOPS_WRITE_ITER_HELPER(sel_commit_bools_write); =20 static const struct file_operations sel_commit_bools_ops =3D { - .write =3D sel_commit_bools_write, + .write_iter =3D sel_commit_bools_write_iter, .llseek =3D generic_file_llseek, }; =20 @@ -1404,15 +1405,15 @@ static int sel_make_bools(struct selinux_policy *ne= wpolicy, struct dentry *bool_ return ret; } =20 -static ssize_t sel_read_avc_cache_threshold(struct file *filp, char __user= *buf, - size_t count, loff_t *ppos) +static ssize_t sel_read_avc_cache_threshold(struct kiocb *iocb, + struct iov_iter *to) { char tmpbuf[TMPBUFLEN]; ssize_t length; =20 length =3D scnprintf(tmpbuf, TMPBUFLEN, "%u", avc_get_cache_threshold()); - return simple_read_from_buffer(buf, count, ppos, tmpbuf, length); + return simple_copy_to_iter(tmpbuf, &iocb->ki_pos, length, to); } =20 static ssize_t sel_write_avc_cache_threshold(struct file *file, @@ -1452,9 +1453,9 @@ static ssize_t sel_write_avc_cache_threshold(struct f= ile *file, kfree(page); return ret; } +FOPS_WRITE_ITER_HELPER(sel_write_avc_cache_threshold); =20 -static ssize_t sel_read_avc_hash_stats(struct file *filp, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t sel_read_avc_hash_stats(struct kiocb *iocb, struct iov_iter= *to) { char *page; ssize_t length; @@ -1465,14 +1466,14 @@ static ssize_t sel_read_avc_hash_stats(struct file = *filp, char __user *buf, =20 length =3D avc_get_hash_stats(page); if (length >=3D 0) - length =3D simple_read_from_buffer(buf, count, ppos, page, length); + length =3D simple_copy_to_iter(page, &iocb->ki_pos, length, to); free_page((unsigned long)page); =20 return length; } =20 -static ssize_t sel_read_sidtab_hash_stats(struct file *filp, char __user *= buf, - size_t count, loff_t *ppos) +static ssize_t sel_read_sidtab_hash_stats(struct kiocb *iocb, + struct iov_iter *to) { char *page; ssize_t length; @@ -1483,26 +1484,25 @@ static ssize_t sel_read_sidtab_hash_stats(struct fi= le *filp, char __user *buf, =20 length =3D security_sidtab_hash_stats(page); if (length >=3D 0) - length =3D simple_read_from_buffer(buf, count, ppos, page, - length); + length =3D simple_copy_to_iter(page, &iocb->ki_pos, length, to); free_page((unsigned long)page); =20 return length; } =20 static const struct file_operations sel_sidtab_hash_stats_ops =3D { - .read =3D sel_read_sidtab_hash_stats, + .read_iter =3D sel_read_sidtab_hash_stats, .llseek =3D generic_file_llseek, }; =20 static const struct file_operations sel_avc_cache_threshold_ops =3D { - .read =3D sel_read_avc_cache_threshold, - .write =3D sel_write_avc_cache_threshold, + .read_iter =3D sel_read_avc_cache_threshold, + .write_iter =3D sel_write_avc_cache_threshold_iter, .llseek =3D generic_file_llseek, }; =20 static const struct file_operations sel_avc_hash_stats_ops =3D { - .read =3D sel_read_avc_hash_stats, + .read_iter =3D sel_read_avc_hash_stats, .llseek =3D generic_file_llseek, }; =20 @@ -1571,7 +1571,7 @@ static int sel_open_avc_cache_stats(struct inode *ino= de, struct file *file) =20 static const struct file_operations sel_avc_cache_stats_ops =3D { .open =3D sel_open_avc_cache_stats, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D seq_release, }; @@ -1644,25 +1644,24 @@ static int sel_make_ss_files(struct dentry *dir) return 0; } =20 -static ssize_t sel_read_initcon(struct file *file, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t sel_read_initcon(struct kiocb *iocb, struct iov_iter *to) { char *con; u32 sid, len; ssize_t ret; =20 - sid =3D file_inode(file)->i_ino&SEL_INO_MASK; + sid =3D file_inode(iocb->ki_filp)->i_ino&SEL_INO_MASK; ret =3D security_sid_to_context(sid, &con, &len); if (ret) return ret; =20 - ret =3D simple_read_from_buffer(buf, count, ppos, con, len); + ret =3D simple_copy_to_iter(con, &iocb->ki_pos, len, to); kfree(con); return ret; } =20 static const struct file_operations sel_initcon_ops =3D { - .read =3D sel_read_initcon, + .read_iter =3D sel_read_initcon, .llseek =3D generic_file_llseek, }; =20 @@ -1715,50 +1714,47 @@ static inline u32 sel_ino_to_perm(unsigned long ino) return (ino & SEL_INO_MASK) % (SEL_VEC_MAX + 1); } =20 -static ssize_t sel_read_class(struct file *file, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t sel_read_class(struct kiocb *iocb, struct iov_iter *to) { - unsigned long ino =3D file_inode(file)->i_ino; + unsigned long ino =3D file_inode(iocb->ki_filp)->i_ino; char res[TMPBUFLEN]; ssize_t len =3D scnprintf(res, sizeof(res), "%d", sel_ino_to_class(ino)); - return simple_read_from_buffer(buf, count, ppos, res, len); + return simple_copy_to_iter(res, &iocb->ki_pos, len, to); } =20 static const struct file_operations sel_class_ops =3D { - .read =3D sel_read_class, + .read_iter =3D sel_read_class, .llseek =3D generic_file_llseek, }; =20 -static ssize_t sel_read_perm(struct file *file, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t sel_read_perm(struct kiocb *iocb, struct iov_iter *to) { - unsigned long ino =3D file_inode(file)->i_ino; + unsigned long ino =3D file_inode(iocb->ki_filp)->i_ino; char res[TMPBUFLEN]; ssize_t len =3D scnprintf(res, sizeof(res), "%d", sel_ino_to_perm(ino)); - return simple_read_from_buffer(buf, count, ppos, res, len); + return simple_copy_to_iter(res, &iocb->ki_pos, len, to); } =20 static const struct file_operations sel_perm_ops =3D { - .read =3D sel_read_perm, + .read_iter =3D sel_read_perm, .llseek =3D generic_file_llseek, }; =20 -static ssize_t sel_read_policycap(struct file *file, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t sel_read_policycap(struct kiocb *iocb, struct iov_iter *to) { int value; char tmpbuf[TMPBUFLEN]; ssize_t length; - unsigned long i_ino =3D file_inode(file)->i_ino; + unsigned long i_ino =3D file_inode(iocb->ki_filp)->i_ino; =20 value =3D security_policycap_supported(i_ino & SEL_INO_MASK); length =3D scnprintf(tmpbuf, TMPBUFLEN, "%d", value); =20 - return simple_read_from_buffer(buf, count, ppos, tmpbuf, length); + return simple_copy_to_iter(tmpbuf, &iocb->ki_pos, length, to); } =20 static const struct file_operations sel_policycap_ops =3D { - .read =3D sel_read_policycap, + .read_iter =3D sel_read_policycap, .llseek =3D generic_file_llseek, }; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-il1-f178.google.com (mail-il1-f178.google.com [209.85.166.178]) (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 ECCEA137C56 for ; Thu, 11 Apr 2024 15:34:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.178 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849663; cv=none; b=uMHlGr35fhMquAZ5SPF+52e3YxlBG9HR6Zxtthu+h6aC0cx/4HtXvgzY0cCFNQWeW9d3RlpS5gYXboizH5tt93fiMEPul+zSSm46tKJTM9LU5L7+Fwu4O5PoMyVlRUo74JR0KkOvk1XTbeSEPncgOQrUWjT+sDGBwJzaycVMgFc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849663; c=relaxed/simple; bh=aY/MgJ8uxwheX0ipdCgKAXzopjZ3k/+prshcqHIYGmk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Ucm2d26t2XAetWNOMDI9bmiVCSKFATk5rPhKqcHiVklnCwEb20cO4goYx3OSUWK9K85vJTH1c3H/yjoohAOswHjmLmkjFUAqdRurzgAOHxIgQ8jKWGwF5+czOU/wGBrcxZLvfYsvlODM+DBLyb1NRo4TkJmcqcTsgkmijxNy17Y= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=M8lEnro2; arc=none smtp.client-ip=209.85.166.178 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="M8lEnro2" Received: by mail-il1-f178.google.com with SMTP id e9e14a558f8ab-36a34b68277so107945ab.0 for ; Thu, 11 Apr 2024 08:34:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849660; x=1713454460; 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=0ac4jRR7YHnNbowsoWKJhsqnDyURss0PYYjAycMHVXE=; b=M8lEnro21ERYjR9r0ggY452Xm7lSj44uuvVso3//gKxr/oIv1LI90QefhcalsrUNed sPu4OrxCB5jSarsE0kbio+OsAf0BTuCwLFtCP4jpXsyvTQKyviHcM2/7tXWsTsjGGmaQ ZF+OfA5E1NDD79KpR1kuMnqzpSKLoFuUaA2MLwxBuc7XK8dYmF7RrQRcFuMinTaDi8Of EP17Yx3zIjeiz9FYzkMRkH1QZOeOV0YRNE5MR80C6ZzoUGT6mj+TeHh2xRKCDkJ//XGh 2SO8Re9AxcTOrYBNh6xWTaikKqcITUnlOy9lpXARC5nipxQ4o74EtSJAKnLpBe37flzG OZRw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849660; x=1713454460; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=0ac4jRR7YHnNbowsoWKJhsqnDyURss0PYYjAycMHVXE=; b=iYFsBBRUc1ndIuMHOFT2UKwqevxrJkHXQyVl54pr0NQqEBsk1+i6l0vzOrcnA44CW1 +cA67FE2yRkiWwdAXuHazDzLSKZtqBQChOKfkBxDxjsjReQxYHdwmyJR983Oxo/FOI+d CDw2ssu2CHio1YiuRDpu++q+NNZWBhYOG6AAY6GRKt7aUoHIRyxpQnuV3V5KhuZPiPhC J44qShhDu6sdwoerTqewI0CyIny89RaX1AzMh+M6AIKPN5/QoENt95wtt01sJ9SROvYL Njo8ZIpHZAvAc+8vxJDsPhvmB4DsOfZ/IEmZIPc/SszZc2IV7oi8vm814R1/CrxWw0u2 w19g== X-Gm-Message-State: AOJu0Ywo0Ec0wNZbGK3YFmdnhU7B34U4+L5KDdEpucshCkU28xgJwthW YuIjM559Hx0EJUCb+prkyt0tyR+4sJu7mL093LBdE2EGASecyI8muDt/LBWpgazXlvhQmSZuCey C X-Google-Smtp-Source: AGHT+IFwyKC5LeWDTF3gnvyhhH+rUx8qz0S3fVglmXssRjddSjaR9iV4I3yZ8eKswscmlku3f55rGg== X-Received: by 2002:a05:6e02:1d99:b0:36a:38bf:5fb2 with SMTP id h25-20020a056e021d9900b0036a38bf5fb2mr7471831ila.2.1712849660591; Thu, 11 Apr 2024 08:34:20 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.34.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:34:19 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 093/437] integrity: convert to read/write iterators Date: Thu, 11 Apr 2024 09:13:53 -0600 Message-ID: <20240411153126.16201-94-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- security/integrity/evm/evm_secfs.c | 60 +++++++++++++----------------- security/integrity/ima/ima_fs.c | 41 ++++++++++---------- 2 files changed, 44 insertions(+), 57 deletions(-) diff --git a/security/integrity/evm/evm_secfs.c b/security/integrity/evm/ev= m_secfs.c index 9b907c2fee60..2ff3b5d04eae 100644 --- a/security/integrity/evm/evm_secfs.c +++ b/security/integrity/evm/evm_secfs.c @@ -29,50 +29,45 @@ static int evm_xattrs_locked; /** * evm_read_key - read() for /evm * - * @filp: file pointer, not actually used - * @buf: where to put the result - * @count: maximum to send along - * @ppos: where to start + * @iocb: metadata for IO + * @to: where to put the result * * Returns number of bytes read or error code, as appropriate */ -static ssize_t evm_read_key(struct file *filp, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t evm_read_key(struct kiocb *iocb, struct iov_iter *to) { char temp[80]; ssize_t rc; =20 - if (*ppos !=3D 0) + if (iocb->ki_pos !=3D 0) return 0; =20 sprintf(temp, "%d", (evm_initialized & ~EVM_SETUP_COMPLETE)); - rc =3D simple_read_from_buffer(buf, count, ppos, temp, strlen(temp)); + rc =3D simple_copy_to_iter(temp, &iocb->ki_pos, strlen(temp), to); =20 return rc; } =20 /** * evm_write_key - write() for /evm - * @file: file pointer, not actually used - * @buf: where to get the data from - * @count: bytes sent - * @ppos: where to start + * @iocb: metadata for IO + * @from: where to get the data from * * Used to signal that key is on the kernel key ring. * - get the integrity hmac key from the kernel key ring * - create list of hmac protected extended attributes * Returns number of bytes written or error code, as appropriate */ -static ssize_t evm_write_key(struct file *file, const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t evm_write_key(struct kiocb *iocb, struct iov_iter *from) { + size_t count =3D iov_iter_count(from); unsigned int i; int ret; =20 if (!capable(CAP_SYS_ADMIN) || (evm_initialized & EVM_SETUP_COMPLETE)) return -EPERM; =20 - ret =3D kstrtouint_from_user(buf, count, 0, &i); + ret =3D kstrtouint_from_iter(from, count, 0, &i); =20 if (ret) return ret; @@ -109,30 +104,27 @@ static ssize_t evm_write_key(struct file *file, const= char __user *buf, } =20 static const struct file_operations evm_key_ops =3D { - .read =3D evm_read_key, - .write =3D evm_write_key, + .read_iter =3D evm_read_key, + .write_iter =3D evm_write_key, }; =20 #ifdef CONFIG_EVM_ADD_XATTRS /** * evm_read_xattrs - read() for /evm_xattrs * - * @filp: file pointer, not actually used - * @buf: where to put the result - * @count: maximum to send along - * @ppos: where to start + * @iocb: metadata for IO + * @to: where to put the result * * Returns number of bytes read or error code, as appropriate */ -static ssize_t evm_read_xattrs(struct file *filp, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t evm_read_xattrs(struct kiocb *iocb, struct iov_iter *to) { char *temp; int offset =3D 0; ssize_t rc, size =3D 0; struct xattr_list *xattr; =20 - if (*ppos !=3D 0) + if (iocb->ki_pos !=3D 0) return 0; =20 rc =3D mutex_lock_interruptible(&xattr_list_mutex); @@ -161,7 +153,7 @@ static ssize_t evm_read_xattrs(struct file *filp, char = __user *buf, } =20 mutex_unlock(&xattr_list_mutex); - rc =3D simple_read_from_buffer(buf, count, ppos, temp, strlen(temp)); + rc =3D simple_copy_to_iter(temp, &iocb->ki_pos, strlen(temp), to); =20 kfree(temp); =20 @@ -170,26 +162,24 @@ static ssize_t evm_read_xattrs(struct file *filp, cha= r __user *buf, =20 /** * evm_write_xattrs - write() for /evm_xattrs - * @file: file pointer, not actually used - * @buf: where to get the data from - * @count: bytes sent - * @ppos: where to start + * @iocb: metadata for IO + * @from: where to get the data from * * Returns number of bytes written or error code, as appropriate */ -static ssize_t evm_write_xattrs(struct file *file, const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t evm_write_xattrs(struct kiocb *iocb, struct iov_iter *from) { int len, err; struct xattr_list *xattr, *tmp; struct audit_buffer *ab; struct iattr newattrs; struct inode *inode; + size_t count =3D iov_iter_count(from); =20 if (!capable(CAP_SYS_ADMIN) || evm_xattrs_locked) return -EPERM; =20 - if (*ppos !=3D 0) + if (iocb->ki_pos !=3D 0) return -EINVAL; =20 if (count > XATTR_NAME_MAX) @@ -207,7 +197,7 @@ static ssize_t evm_write_xattrs(struct file *file, cons= t char __user *buf, } =20 xattr->enabled =3D true; - xattr->name =3D memdup_user_nul(buf, count); + xattr->name =3D iterdup_nul(from, count); if (IS_ERR(xattr->name)) { err =3D PTR_ERR(xattr->name); xattr->name =3D NULL; @@ -278,8 +268,8 @@ static ssize_t evm_write_xattrs(struct file *file, cons= t char __user *buf, } =20 static const struct file_operations evm_xattr_ops =3D { - .read =3D evm_read_xattrs, - .write =3D evm_write_xattrs, + .read_iter =3D evm_read_xattrs, + .write_iter =3D evm_write_xattrs, }; =20 static int evm_init_xattrs(void) diff --git a/security/integrity/ima/ima_fs.c b/security/integrity/ima/ima_f= s.c index cd1683dad3bf..e33896afec46 100644 --- a/security/integrity/ima/ima_fs.c +++ b/security/integrity/ima/ima_fs.c @@ -38,38 +38,35 @@ __setup("ima_canonical_fmt", default_canonical_fmt_setu= p); =20 static int valid_policy =3D 1; =20 -static ssize_t ima_show_htable_value(char __user *buf, size_t count, - loff_t *ppos, atomic_long_t *val) +static ssize_t ima_show_htable_value(struct kiocb *iocb, struct iov_iter *= to, + atomic_long_t *val) { char tmpbuf[32]; /* greater than largest 'long' string value */ ssize_t len; =20 len =3D scnprintf(tmpbuf, sizeof(tmpbuf), "%li\n", atomic_long_read(val)); - return simple_read_from_buffer(buf, count, ppos, tmpbuf, len); + return simple_copy_to_iter(tmpbuf, &iocb->ki_pos, len, to); } =20 -static ssize_t ima_show_htable_violations(struct file *filp, - char __user *buf, - size_t count, loff_t *ppos) +static ssize_t ima_show_htable_violations(struct kiocb *iocb, + struct iov_iter *to) { - return ima_show_htable_value(buf, count, ppos, &ima_htable.violations); + return ima_show_htable_value(iocb, to, &ima_htable.violations); } =20 static const struct file_operations ima_htable_violations_ops =3D { - .read =3D ima_show_htable_violations, + .read_iter =3D ima_show_htable_violations, .llseek =3D generic_file_llseek, }; =20 -static ssize_t ima_show_measurements_count(struct file *filp, - char __user *buf, - size_t count, loff_t *ppos) +static ssize_t ima_show_measurements_count(struct kiocb *iocb, + struct iov_iter *to) { - return ima_show_htable_value(buf, count, ppos, &ima_htable.len); - + return ima_show_htable_value(iocb, to, &ima_htable.len); } =20 static const struct file_operations ima_measurements_count_ops =3D { - .read =3D ima_show_measurements_count, + .read_iter =3D ima_show_measurements_count, .llseek =3D generic_file_llseek, }; =20 @@ -200,7 +197,7 @@ static int ima_measurements_open(struct inode *inode, s= truct file *file) =20 static const struct file_operations ima_measurements_ops =3D { .open =3D ima_measurements_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D seq_release, }; @@ -266,7 +263,7 @@ static int ima_ascii_measurements_open(struct inode *in= ode, struct file *file) =20 static const struct file_operations ima_ascii_measurements_ops =3D { .open =3D ima_ascii_measurements_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D seq_release, }; @@ -311,9 +308,9 @@ static ssize_t ima_read_policy(char *path) return pathlen; } =20 -static ssize_t ima_write_policy(struct file *file, const char __user *buf, - size_t datalen, loff_t *ppos) +static ssize_t ima_write_policy(struct kiocb *iocb, struct iov_iter *from) { + size_t datalen =3D iov_iter_count(from); char *data; ssize_t result; =20 @@ -322,10 +319,10 @@ static ssize_t ima_write_policy(struct file *file, co= nst char __user *buf, =20 /* No partial writes. */ result =3D -EINVAL; - if (*ppos !=3D 0) + if (iocb->ki_pos !=3D 0) goto out; =20 - data =3D memdup_user_nul(buf, datalen); + data =3D iterdup_nul(from, datalen); if (IS_ERR(data)) { result =3D PTR_ERR(data); goto out; @@ -444,8 +441,8 @@ static int ima_release_policy(struct inode *inode, stru= ct file *file) =20 static const struct file_operations ima_measure_policy_ops =3D { .open =3D ima_open_policy, - .write =3D ima_write_policy, - .read =3D seq_read, + .write_iter =3D ima_write_policy, + .read_iter =3D seq_read_iter, .release =3D ima_release_policy, .llseek =3D generic_file_llseek, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f53.google.com (mail-io1-f53.google.com [209.85.166.53]) (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 7422D138495 for ; Thu, 11 Apr 2024 15:34:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849664; cv=none; b=UPTcStsCIv3n56UA32xnIsM9ceupPuHoEdSfPOI+S3/6SneQoHLmbWslWCtdgHUWJAGEwVujImEqCDHy1+KxpjBsqgWEvkubi1YA8XB6ugCgYs05n0UW4uonl968Z+S55EtiIRk59/wOe9bZxSEWg8PEX/f67/UdlPaSRAiVzwc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849664; c=relaxed/simple; bh=wipL4mL/eUvbX6HEd5vhA+QIcjWUcNKLmam46xT8Cxg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=I7tJDMKzAg2t7bAsNysHoNziwOQaz+SVL4dRYnzDWcdAlbvHRLIT8eVFsF7akEb/wHhbiXw6nw/D7dx1F09TzN/m+Gr8MqfN+oVXI7yhgWKYOBNh6tX8v4kPmlylaoPbCRMqwpC9c6HenZz1r6cT/12OEPZ/lxbJpjYFXBsfntA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=Ik19F6gy; arc=none smtp.client-ip=209.85.166.53 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="Ik19F6gy" Received: by mail-io1-f53.google.com with SMTP id ca18e2360f4ac-7d6812b37a6so8907939f.0 for ; Thu, 11 Apr 2024 08:34:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849662; x=1713454462; 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=hI3XeuEqXSe5xAQxoRI1k1fUfRRMoYe2Nj0mBwtIi0U=; b=Ik19F6gy49aLTfUrNt7Hem5ufKYpvdWEEZWvpg1/67ZiXPH49bGbJjFJQPyKEtxz2o cV2AVl421n6ABaWCuzZ9Cv5pzASxDyuRXF4UiHIzqes/KdF3LHjMB7Wd0PAJ6cYYkS84 3w17X0daPMOOEcmBrx0Y+ATCRSUgdojlzPmx7cCDoZ6A3qUbA+bDY4+6j41wjGIolumd dpp+DQ6YLLDY8jAd3A4lhhx+mKKu6kBABFBX75oxFqTOvtmMTCd/avGwozu0gWa7FUbw HU9zmBh/GWY6xbitrMtQyA7JS2PSQcaB3VvVbVH8JFD2iYEO7jsXRep0Jec6HcwgT3ZP oovA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849662; x=1713454462; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=hI3XeuEqXSe5xAQxoRI1k1fUfRRMoYe2Nj0mBwtIi0U=; b=ARxY+556syhrwu810YlEkWdirsKbu2F2wWUSLqTiBbJDOrDnnhuF7q3vZT+356SK/j ZcSjG8HD7Zh7U32Bss2goMKkVAhpIbkGyPzQCUu8v4zKrZ3S15Cq1qBFNIjRH1kGEOjE 6nHtVgqtpZeWA5hcvr9d+WLNcM3zv/FfkazOkym5DwP16vnFAo/dqYWdzyYgq5QgziYP KngTXx5boW3kbjqDYmqvUTKAGhRIDMyS9/+/N+RDZ/buBwGg/zJleTGfK3+ZgC2GoG0v 8ObOOWmxm7QeYsO+5vbrYrg/FqZ5TgqgYDJ4zsWNNP3tiYCdzveVvDWdnwz4CTtPEkQH cbwA== X-Gm-Message-State: AOJu0YxcIg3Fbg6Ph5GC/Y1YWWb5Z5vzRU4iUwDtt5eXjtWHk4d7CxkI lIKnlUynIO1kv/M8VngpIVsq5s4SS4K0Fjy2otPw7Sm2aPulpdqPNKCWvMWf4WBtkSbxXPeEHw2 9 X-Google-Smtp-Source: AGHT+IEbL8urxZb3orUijOvDtLuuzsgLfSrxCXfZO0P4dSjvpBsjhCS0EUyZdhIScjnCWRLC/A77dQ== X-Received: by 2002:a05:6602:21d7:b0:7d6:9ddf:5095 with SMTP id c23-20020a05660221d700b007d69ddf5095mr9953ioc.1.1712849662442; Thu, 11 Apr 2024 08:34:22 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.34.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:34:20 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 094/437] lockdown: convert to read/write iterators Date: Thu, 11 Apr 2024 09:13:54 -0600 Message-ID: <20240411153126.16201-95-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- security/lockdown/lockdown.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/security/lockdown/lockdown.c b/security/lockdown/lockdown.c index cd84d8ea1dfb..ea208d3251e6 100644 --- a/security/lockdown/lockdown.c +++ b/security/lockdown/lockdown.c @@ -93,8 +93,7 @@ static int __init lockdown_lsm_init(void) return 0; } =20 -static ssize_t lockdown_read(struct file *filp, char __user *buf, size_t c= ount, - loff_t *ppos) +static ssize_t lockdown_read(struct kiocb *iocb, struct iov_iter *to) { char temp[80]; int i, offset =3D 0; @@ -116,7 +115,7 @@ static ssize_t lockdown_read(struct file *filp, char __= user *buf, size_t count, if (offset > 0) temp[offset-1] =3D '\n'; =20 - return simple_read_from_buffer(buf, count, ppos, temp, strlen(temp)); + return simple_copy_to_iter(temp, &iocb->ki_pos, strlen(temp), to); } =20 static ssize_t lockdown_write(struct file *file, const char __user *buf, @@ -146,10 +145,11 @@ static ssize_t lockdown_write(struct file *file, cons= t char __user *buf, kfree(state); return err ? err : n; } +FOPS_WRITE_ITER_HELPER(lockdown_write); =20 static const struct file_operations lockdown_ops =3D { - .read =3D lockdown_read, - .write =3D lockdown_write, + .read_iter =3D lockdown_read, + .write_iter =3D lockdown_write_iter, }; =20 static int __init lockdown_secfs_init(void) --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f52.google.com (mail-io1-f52.google.com [209.85.166.52]) (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 3E75B1384BF for ; Thu, 11 Apr 2024 15:34:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849666; cv=none; b=iTGB6TpmnhYVc3PKgbtavFp8ZKYEHIVzcJ9mEWer2qV5ZV8zQsWGSlDqeQEWv6915DD9ZWpQDhmo9AIvvDkxMh2aMZzUJUT3bmFC4wCDynzsWE++1CsfTlGvz3S92oM2GGqTAZtUFnTqKpUN6qJZu2x23mDtsSWqHQUuEzOanxA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849666; c=relaxed/simple; bh=qZD/suo6whNiyLcz2/VcBWbVNxWYNc7kW/mQlWm/D0U=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=lJ3NcKfdwWWOHPOfwjtwE9j2AnM1kAfQjMY0Hi3zu4UKT6+YcttOEjGpMwsOspxUl7bJX6tTKgMVidZmy2nrjWzJwaG3paYDPgRzi9w6etuS7BISHaKDDElXWXOgQrDZQ6Clr7RvYtQ9EHZ3lvoxuQYCYWxQfcwGozcjLsJBX24= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=S+2bq05v; arc=none smtp.client-ip=209.85.166.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="S+2bq05v" Received: by mail-io1-f52.google.com with SMTP id ca18e2360f4ac-7c8e4c0412dso69532439f.1 for ; Thu, 11 Apr 2024 08:34:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849664; x=1713454464; 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=Iuxr/s+RAL0PuMx52mu+zKInvpaDex7OnP1UZUJEUhw=; b=S+2bq05vWe4nwGFF+WzaWJMXH8fA606KRBMs2sAVMJXPO8oKkW+Se7X6LYK1DNwiQn y7TvTxKQ5kx4zrFu8vTimKYcLVmhe1s5xzlwLYOLzrMu6l1efT32ZsmFzQNCu4SeoM3l hsk4IrLbah0MS4Xu7kChHjENDr2jDvPlddOW+3szQz/P3YCMVD4gYI7BAKkyCRsEvMio p0ctnWJvRobOJN1MUVcRWqEfyZvj5wiaSZpxvoB41ynu2tn1HmOzlodr4BLG79HhBTxT VdlGIIdEVGTRBDpdyzLigApsRGheMQdvOkFbd/HXeYMXwMgUANmLc/FEt2O7KvyCvM1f wqtQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849664; x=1713454464; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Iuxr/s+RAL0PuMx52mu+zKInvpaDex7OnP1UZUJEUhw=; b=miEfyTHe6l9XIPOnXj3dDIInxAWwhVcJzxwOFWbWzf0T8VyBuYTA1rVbYKaC6Skp/2 VnOltSJQbpE28rCM3w2ra8HZTi215EXwA/bno1LtOuJEilJKNMqUIb0Xadv3TvZMdKS4 Z3Hm8QAeKBOcsz9i53AEyxebgJ2IU+D5F6HWD+MVWLJBn8jPvIBgOUp+BSRuAGR157LC e8qBAyzR7lneNYmqpg16JIfFGLuaXSuDOnwoutIBlIW+CF/RzB0+DLm1LSgBJfXJy2cp F1K+NJ9uDTOlA0tLBnszuQKoDLa4aqsqSNg38y4U4u0yfUpAUlUdw89uDZ0jnigApqqz hy8Q== X-Gm-Message-State: AOJu0Yx/PJHSRpvYukHE8ThuceB7aw6ofZQQAIGos6eJLQ/2LfiXHeS8 jaAYhYVBUsxQhdSYWKJjbCepMjxb3vtCVNFIjPV/oF4Edu9HWUSvFtG5T3+90jbhHLbVuwt3hz/ / X-Google-Smtp-Source: AGHT+IGgvkbHzpgnZWLaC9R4ZLoxrKSrHIKAk/vbIRZ61sdLwwFLuvPpxr3xncTuFMdeTN2WOFAsVQ== X-Received: by 2002:a6b:7b05:0:b0:7d6:60dc:bc8e with SMTP id l5-20020a6b7b05000000b007d660dcbc8emr189506iop.1.1712849664036; Thu, 11 Apr 2024 08:34:24 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.34.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:34:22 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 095/437] security: convert to read/write iterators Date: Thu, 11 Apr 2024 09:13:55 -0600 Message-ID: <20240411153126.16201-96-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- security/inode.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/security/inode.c b/security/inode.c index 9e7cde913667..81a7b43a0009 100644 --- a/security/inode.c +++ b/security/inode.c @@ -315,15 +315,14 @@ EXPORT_SYMBOL_GPL(securityfs_remove); =20 #ifdef CONFIG_SECURITY static struct dentry *lsm_dentry; -static ssize_t lsm_read(struct file *filp, char __user *buf, size_t count, - loff_t *ppos) +static ssize_t lsm_read(struct kiocb *iocb, struct iov_iter *to) { - return simple_read_from_buffer(buf, count, ppos, lsm_names, - strlen(lsm_names)); + return simple_copy_to_iter(lsm_names, &iocb->ki_pos, strlen(lsm_names), + to); } =20 static const struct file_operations lsm_ops =3D { - .read =3D lsm_read, + .read_iter =3D lsm_read, .llseek =3D generic_file_llseek, }; #endif --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f47.google.com (mail-io1-f47.google.com [209.85.166.47]) (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 8356F13959C for ; Thu, 11 Apr 2024 15:34:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849669; cv=none; b=A9CEjG+gbt86+ukMI4/vNF1eP/hz1C597cQhVAJ7pjSxIW3v4e8yWqosiaiqDHH0bx7rR63PQqfgd4p0hvNla5t70uKbzMWfFdmvu0qnYirBCEyl4saJrtdjBjRgD8Pj3pa8+XlXumyvRQ6DOF7816r3ILLSs9AEnNTi/IeGAI4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849669; c=relaxed/simple; bh=iuIbXnuLBLxEnmsPlq5L3vYBovGCP0mETk1nTzZWaYw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=WajWDL5jxLfL9wRhCLdV8swTsW8XNhHSC1AUtsEB228dyN+DMDQmF4+H7GWHUokBPjqKxWKujktaAUpOMpgohdiUyzQ4vWYKx4gK5TjyBaJyLJcikmSrDfg0uLHyjpRqqO5Ff8py2RZ3cpfJm+CL3EKUaWPYCjn4F0m8KvMZ0l8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=0cr9gBoI; arc=none smtp.client-ip=209.85.166.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="0cr9gBoI" Received: by mail-io1-f47.google.com with SMTP id ca18e2360f4ac-7cb9dd46babso81841839f.1 for ; Thu, 11 Apr 2024 08:34:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849666; x=1713454466; 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=60Z5LyJVD/i6pC/+p1lDBPcD69xpIdoPuegUMJnJm8Q=; b=0cr9gBoIfcYkCk5m8rZybg75SaxefPshXhPQEC+AuW+VATbHs5E875kD87em/7duSf Ow1zun8xgIDtSeX5W9TzHaeFyjdSp7UM0u4LuEwxMOu3EJ3UWG+m1oi3Y2k50rrT4Njy Oier6CrkEY5jxsj8X1FWR/WDceP7Jr8Hdx65d2LSTxbkf0rruXsuqE15mfMlKwwu9dgq Urv7sqEQnYJGXgbf9lsnw4+U3fM7uE9dEFl66g8CAdrHCfBcntp5YVV494xwVOCGIJwL rwrgsm3AACVCzq5bOt4nyD2/BJdfUvv9UM3Uz1m76VkjZgQIOKmf/RcZ0xvkFYLx7wd0 PSuA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849666; x=1713454466; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=60Z5LyJVD/i6pC/+p1lDBPcD69xpIdoPuegUMJnJm8Q=; b=GBSQwDJftZH6+NGzzU95Mxg1XoSXWh0q/6ajjI2Hc0cVA0YYEauw5c7FA4SQtYyR0p 8AFIp9cu9oFx8lDTm1wpy55rhxZyEYf4RWUYcOWIqo/ex3FzyxZ46oIeQMduMPUabQ/X HyIyMs8ezTzSLpsZmwgjoiX/QCXhBHsWQuhfHgWq8mx3gwCnOtQ1Z90Uqc8vLtXxGeVi IBf5RC783AM/HvRXkXVxeLZnoE2y/Zr7bVdvMk2Lec2XWqBAL+sQ3SUajzBbl5jC9HKc afGgxBFIGXMZsSHoRX5SsgGsv99m1Kcwlo1m1bKyyqaXFpDbkqznHd430whzd325fjzU qIiw== X-Gm-Message-State: AOJu0YyiHwpIPxJmG1pOHa6NjFQ3aaXHoXaYjo9Mk59nVU2zMV3L4U4M GiyeZqOu5uga8qOYpfCCXDFlT5U/ia31hV0IsQI0WXyjKJp0NKE/opHNU+0tBLdvi8twLvh1FdR V X-Google-Smtp-Source: AGHT+IHYg8m+GZSAs1iUrmaXdBM1taYVW0gjbOLEdpHyYY5ysBdf1Bh3q+HlIg5pfBtgexd2qMF97Q== X-Received: by 2002:a05:6602:4ed7:b0:7d5:ddc8:504d with SMTP id gk23-20020a0566024ed700b007d5ddc8504dmr184245iob.0.1712849665901; Thu, 11 Apr 2024 08:34:25 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.34.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:34:24 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 096/437] mm: convert to read/write iterators Date: Thu, 11 Apr 2024 09:13:56 -0600 Message-ID: <20240411153126.16201-97-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- mm/damon/dbgfs.c | 84 ++++++++++++++++++++++++--------------------- mm/huge_memory.c | 10 +++--- mm/kmemleak.c | 5 +-- mm/page_owner.c | 5 +-- mm/shrinker_debug.c | 12 +++---- mm/slub.c | 2 +- mm/vmscan.c | 14 ++++---- 7 files changed, 69 insertions(+), 63 deletions(-) diff --git a/mm/damon/dbgfs.c b/mm/damon/dbgfs.c index 2461cfe2e968..1ee9d28ded80 100644 --- a/mm/damon/dbgfs.c +++ b/mm/damon/dbgfs.c @@ -56,10 +56,9 @@ static char *user_input_str(const char __user *buf, size= _t count, loff_t *ppos) return kbuf; } =20 -static ssize_t dbgfs_attrs_read(struct file *file, - char __user *buf, size_t count, loff_t *ppos) +static ssize_t dbgfs_attrs_read(struct kiocb *iocb, struct iov_iter *to) { - struct damon_ctx *ctx =3D file->private_data; + struct damon_ctx *ctx =3D iocb->ki_filp->private_data; char kbuf[128]; int ret; =20 @@ -70,7 +69,7 @@ static ssize_t dbgfs_attrs_read(struct file *file, ctx->attrs.min_nr_regions, ctx->attrs.max_nr_regions); mutex_unlock(&ctx->kdamond_lock); =20 - return simple_read_from_buffer(buf, count, ppos, kbuf, ret); + return simple_copy_to_iter(kbuf, &iocb->ki_pos, ret, to); } =20 static ssize_t dbgfs_attrs_write(struct file *file, @@ -109,6 +108,7 @@ static ssize_t dbgfs_attrs_write(struct file *file, kfree(kbuf); return ret; } +FOPS_WRITE_ITER_HELPER(dbgfs_attrs_write); =20 /* * Return corresponding dbgfs' scheme action value (int) for the given @@ -169,10 +169,10 @@ static ssize_t sprint_schemes(struct damon_ctx *c, ch= ar *buf, ssize_t len) return written; } =20 -static ssize_t dbgfs_schemes_read(struct file *file, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t dbgfs_schemes_read(struct kiocb *iocb, struct iov_iter *to) { - struct damon_ctx *ctx =3D file->private_data; + struct damon_ctx *ctx =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(to); char *kbuf; ssize_t len; =20 @@ -185,7 +185,7 @@ static ssize_t dbgfs_schemes_read(struct file *file, ch= ar __user *buf, mutex_unlock(&ctx->kdamond_lock); if (len < 0) goto out; - len =3D simple_read_from_buffer(buf, count, ppos, kbuf, len); + len =3D simple_copy_to_iter(kbuf, &iocb->ki_pos, len, to); =20 out: kfree(kbuf); @@ -329,6 +329,7 @@ static ssize_t dbgfs_schemes_write(struct file *file, c= onst char __user *buf, kfree(kbuf); return ret; } +FOPS_WRITE_ITER_HELPER(dbgfs_schemes_write); =20 static ssize_t sprint_target_ids(struct damon_ctx *ctx, char *buf, ssize_t= len) { @@ -356,10 +357,9 @@ static ssize_t sprint_target_ids(struct damon_ctx *ctx= , char *buf, ssize_t len) return written; } =20 -static ssize_t dbgfs_target_ids_read(struct file *file, - char __user *buf, size_t count, loff_t *ppos) +static ssize_t dbgfs_target_ids_read(struct kiocb *iocb, struct iov_iter *= to) { - struct damon_ctx *ctx =3D file->private_data; + struct damon_ctx *ctx =3D iocb->ki_filp->private_data; ssize_t len; char ids_buf[320]; =20 @@ -369,7 +369,7 @@ static ssize_t dbgfs_target_ids_read(struct file *file, if (len < 0) return len; =20 - return simple_read_from_buffer(buf, count, ppos, ids_buf, len); + return simple_copy_to_iter(ids_buf, &iocb->ki_pos, len, to); } =20 /* @@ -548,6 +548,7 @@ static ssize_t dbgfs_target_ids_write(struct file *file, kfree(kbuf); return ret; } +FOPS_WRITE_ITER_HELPER(dbgfs_target_ids_write); =20 static ssize_t sprint_init_regions(struct damon_ctx *c, char *buf, ssize_t= len) { @@ -571,10 +572,10 @@ static ssize_t sprint_init_regions(struct damon_ctx *= c, char *buf, ssize_t len) return written; } =20 -static ssize_t dbgfs_init_regions_read(struct file *file, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t dbgfs_init_regions_read(struct kiocb *iocb, struct iov_iter= *to) { - struct damon_ctx *ctx =3D file->private_data; + struct damon_ctx *ctx =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(to); char *kbuf; ssize_t len; =20 @@ -593,7 +594,7 @@ static ssize_t dbgfs_init_regions_read(struct file *fil= e, char __user *buf, mutex_unlock(&ctx->kdamond_lock); if (len < 0) goto out; - len =3D simple_read_from_buffer(buf, count, ppos, kbuf, len); + len =3D simple_copy_to_iter(kbuf, &iocb->ki_pos, len, to); =20 out: kfree(kbuf); @@ -693,11 +694,12 @@ static ssize_t dbgfs_init_regions_write(struct file *= file, kfree(kbuf); return ret; } +FOPS_WRITE_ITER_HELPER(dbgfs_init_regions_write); =20 -static ssize_t dbgfs_kdamond_pid_read(struct file *file, - char __user *buf, size_t count, loff_t *ppos) +static ssize_t dbgfs_kdamond_pid_read(struct kiocb *iocb, struct iov_iter = *to) { - struct damon_ctx *ctx =3D file->private_data; + struct damon_ctx *ctx =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(to); char *kbuf; ssize_t len; =20 @@ -713,7 +715,7 @@ static ssize_t dbgfs_kdamond_pid_read(struct file *file, mutex_unlock(&ctx->kdamond_lock); if (!len) goto out; - len =3D simple_read_from_buffer(buf, count, ppos, kbuf, len); + len =3D simple_copy_to_iter(kbuf, &iocb->ki_pos, len, to); =20 out: kfree(kbuf); @@ -731,31 +733,31 @@ static int damon_dbgfs_open(struct inode *inode, stru= ct file *file) =20 static const struct file_operations attrs_fops =3D { .open =3D damon_dbgfs_open, - .read =3D dbgfs_attrs_read, - .write =3D dbgfs_attrs_write, + .read_iter =3D dbgfs_attrs_read, + .write_iter =3D dbgfs_attrs_write_iter, }; =20 static const struct file_operations schemes_fops =3D { .open =3D damon_dbgfs_open, - .read =3D dbgfs_schemes_read, - .write =3D dbgfs_schemes_write, + .read_iter =3D dbgfs_schemes_read, + .write_iter =3D dbgfs_schemes_write_iter, }; =20 static const struct file_operations target_ids_fops =3D { .open =3D damon_dbgfs_open, - .read =3D dbgfs_target_ids_read, - .write =3D dbgfs_target_ids_write, + .read_iter =3D dbgfs_target_ids_read, + .write_iter =3D dbgfs_target_ids_write_iter, }; =20 static const struct file_operations init_regions_fops =3D { .open =3D damon_dbgfs_open, - .read =3D dbgfs_init_regions_read, - .write =3D dbgfs_init_regions_write, + .read_iter =3D dbgfs_init_regions_read, + .write_iter =3D dbgfs_init_regions_write_iter, }; =20 static const struct file_operations kdamond_pid_fops =3D { .open =3D damon_dbgfs_open, - .read =3D dbgfs_kdamond_pid_read, + .read_iter =3D dbgfs_kdamond_pid_read, }; =20 static void dbgfs_fill_ctx_dir(struct dentry *dir, struct damon_ctx *ctx) @@ -807,12 +809,12 @@ static void dbgfs_destroy_ctx(struct damon_ctx *ctx) damon_destroy_ctx(ctx); } =20 -static ssize_t damon_dbgfs_deprecated_read(struct file *file, - char __user *buf, size_t count, loff_t *ppos) +static ssize_t damon_dbgfs_deprecated_read(struct kiocb *iocb, + struct iov_iter *to) { static const char kbuf[512] =3D DAMON_DBGFS_DEPRECATION_NOTICE; =20 - return simple_read_from_buffer(buf, count, ppos, kbuf, strlen(kbuf)); + return simple_copy_to_iter(kbuf, &iocb->ki_pos, strlen(kbuf), to); } =20 /* @@ -900,6 +902,7 @@ static ssize_t dbgfs_mk_context_write(struct file *file, kfree(ctx_name); return ret; } +FOPS_WRITE_ITER_HELPER(dbgfs_mk_context_write); =20 /* * Remove a context of @name and its debugfs directory. @@ -1006,9 +1009,9 @@ static ssize_t dbgfs_rm_context_write(struct file *fi= le, kfree(ctx_name); return ret; } +FOPS_WRITE_ITER_HELPER(dbgfs_rm_context_write); =20 -static ssize_t dbgfs_monitor_on_read(struct file *file, - char __user *buf, size_t count, loff_t *ppos) +static ssize_t dbgfs_monitor_on_read(struct kiocb *iocb, struct iov_iter *= to) { char monitor_on_buf[5]; bool monitor_on =3D damon_nr_running_ctxs() !=3D 0; @@ -1016,7 +1019,7 @@ static ssize_t dbgfs_monitor_on_read(struct file *fil= e, =20 len =3D scnprintf(monitor_on_buf, 5, monitor_on ? "on\n" : "off\n"); =20 - return simple_read_from_buffer(buf, count, ppos, monitor_on_buf, len); + return simple_copy_to_iter(monitor_on_buf, &iocb->ki_pos, len, to); } =20 static ssize_t dbgfs_monitor_on_write(struct file *file, @@ -1059,6 +1062,7 @@ static ssize_t dbgfs_monitor_on_write(struct file *fi= le, kfree(kbuf); return ret; } +FOPS_WRITE_ITER_HELPER(dbgfs_monitor_on_write); =20 static int damon_dbgfs_static_file_open(struct inode *inode, struct file *= file) { @@ -1067,23 +1071,23 @@ static int damon_dbgfs_static_file_open(struct inod= e *inode, struct file *file) } =20 static const struct file_operations deprecated_fops =3D { - .read =3D damon_dbgfs_deprecated_read, + .read_iter =3D damon_dbgfs_deprecated_read, }; =20 static const struct file_operations mk_contexts_fops =3D { .open =3D damon_dbgfs_static_file_open, - .write =3D dbgfs_mk_context_write, + .write_iter =3D dbgfs_mk_context_write_iter, }; =20 static const struct file_operations rm_contexts_fops =3D { .open =3D damon_dbgfs_static_file_open, - .write =3D dbgfs_rm_context_write, + .write_iter =3D dbgfs_rm_context_write_iter, }; =20 static const struct file_operations monitor_on_fops =3D { .open =3D damon_dbgfs_static_file_open, - .read =3D dbgfs_monitor_on_read, - .write =3D dbgfs_monitor_on_write, + .read_iter =3D dbgfs_monitor_on_read, + .write_iter =3D dbgfs_monitor_on_write_iter, }; =20 static int __init __damon_dbgfs_init(void) diff --git a/mm/huge_memory.c b/mm/huge_memory.c index 9859aa4f7553..989847ed0f92 100644 --- a/mm/huge_memory.c +++ b/mm/huge_memory.c @@ -3582,8 +3582,7 @@ static int split_huge_pages_in_file(const char *file_= path, pgoff_t off_start, =20 #define MAX_INPUT_BUF_SZ 255 =20 -static ssize_t split_huge_pages_write(struct file *file, const char __user= *buf, - size_t count, loff_t *ppops) +static ssize_t split_huge_pages_write(struct kiocb *iocb, struct iov_iter = *from) { static DEFINE_MUTEX(split_debug_mutex); ssize_t ret; @@ -3594,6 +3593,7 @@ static ssize_t split_huge_pages_write(struct file *fi= le, const char __user *buf, char input_buf[MAX_INPUT_BUF_SZ]; int pid; unsigned long vaddr_start, vaddr_end; + size_t count =3D iov_iter_count(from); unsigned int new_order =3D 0; =20 ret =3D mutex_lock_interruptible(&split_debug_mutex); @@ -3603,7 +3603,8 @@ static ssize_t split_huge_pages_write(struct file *fi= le, const char __user *buf, ret =3D -EFAULT; =20 memset(input_buf, 0, MAX_INPUT_BUF_SZ); - if (copy_from_user(input_buf, buf, min_t(size_t, count, MAX_INPUT_BUF_SZ)= )) + if (!copy_from_iter_full(input_buf, + min_t(size_t, count, MAX_INPUT_BUF_SZ), from)) goto out; =20 input_buf[MAX_INPUT_BUF_SZ - 1] =3D '\0'; @@ -3651,12 +3652,11 @@ static ssize_t split_huge_pages_write(struct file *= file, const char __user *buf, out: mutex_unlock(&split_debug_mutex); return ret; - } =20 static const struct file_operations split_huge_pages_fops =3D { .owner =3D THIS_MODULE, - .write =3D split_huge_pages_write, + .write_iter =3D split_huge_pages_write, .llseek =3D no_llseek, }; =20 diff --git a/mm/kmemleak.c b/mm/kmemleak.c index 6a540c2b27c5..3ff7dc613e70 100644 --- a/mm/kmemleak.c +++ b/mm/kmemleak.c @@ -2063,12 +2063,13 @@ static ssize_t kmemleak_write(struct file *file, co= nst char __user *user_buf, *ppos +=3D size; return size; } +FOPS_WRITE_ITER_HELPER(kmemleak_write); =20 static const struct file_operations kmemleak_fops =3D { .owner =3D THIS_MODULE, .open =3D kmemleak_open, - .read =3D seq_read, - .write =3D kmemleak_write, + .read_iter =3D seq_read_iter, + .write_iter =3D kmemleak_write_iter, .llseek =3D seq_lseek, .release =3D seq_release, }; diff --git a/mm/page_owner.c b/mm/page_owner.c index d17d1351ec84..ab5cfbc718b4 100644 --- a/mm/page_owner.c +++ b/mm/page_owner.c @@ -715,6 +715,7 @@ read_page_owner(struct file *file, char __user *buf, si= ze_t count, loff_t *ppos) =20 return 0; } +FOPS_READ_ITER_HELPER(read_page_owner); =20 static loff_t lseek_page_owner(struct file *file, loff_t offset, int orig) { @@ -822,7 +823,7 @@ static void init_early_allocated_pages(void) } =20 static const struct file_operations proc_page_owner_operations =3D { - .read =3D read_page_owner, + .read_iter =3D read_page_owner_iter, .llseek =3D lseek_page_owner, }; =20 @@ -906,7 +907,7 @@ static int page_owner_stack_open(struct inode *inode, s= truct file *file) =20 static const struct file_operations page_owner_stack_operations =3D { .open =3D page_owner_stack_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D seq_release, }; diff --git a/mm/shrinker_debug.c b/mm/shrinker_debug.c index 12ea5486a3e9..b3b4d5a36dc0 100644 --- a/mm/shrinker_debug.c +++ b/mm/shrinker_debug.c @@ -101,11 +101,11 @@ static int shrinker_debugfs_scan_open(struct inode *i= node, struct file *file) return nonseekable_open(inode, file); } =20 -static ssize_t shrinker_debugfs_scan_write(struct file *file, - const char __user *buf, - size_t size, loff_t *pos) +static ssize_t shrinker_debugfs_scan_write(struct kiocb *iocb, + struct iov_iter *from) { - struct shrinker *shrinker =3D file->private_data; + struct shrinker *shrinker =3D iocb->ki_filp->private_data; + size_t size =3D iov_iter_count(from); unsigned long nr_to_scan =3D 0, ino, read_len; struct shrink_control sc =3D { .gfp_mask =3D GFP_KERNEL, @@ -115,7 +115,7 @@ static ssize_t shrinker_debugfs_scan_write(struct file = *file, char kbuf[72]; =20 read_len =3D size < (sizeof(kbuf) - 1) ? size : (sizeof(kbuf) - 1); - if (copy_from_user(kbuf, buf, read_len)) + if (!copy_from_iter_full(kbuf, read_len, from)) return -EFAULT; kbuf[read_len] =3D '\0'; =20 @@ -156,7 +156,7 @@ static ssize_t shrinker_debugfs_scan_write(struct file = *file, static const struct file_operations shrinker_debugfs_scan_fops =3D { .owner =3D THIS_MODULE, .open =3D shrinker_debugfs_scan_open, - .write =3D shrinker_debugfs_scan_write, + .write_iter =3D shrinker_debugfs_scan_write, }; =20 int shrinker_debugfs_add(struct shrinker *shrinker) diff --git a/mm/slub.c b/mm/slub.c index 1bb2a93cf7b6..aff701599b6a 100644 --- a/mm/slub.c +++ b/mm/slub.c @@ -7033,7 +7033,7 @@ static int slab_debug_trace_release(struct inode *ino= de, struct file *file) =20 static const struct file_operations slab_debugfs_fops =3D { .open =3D slab_debug_trace_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D slab_debug_trace_release, }; diff --git a/mm/vmscan.c b/mm/vmscan.c index 3ef654addd44..bf6e9292aea2 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c @@ -5278,7 +5278,7 @@ static void lru_gen_seq_show_full(struct seq_file *m,= struct lruvec *lruvec, static int lru_gen_seq_show(struct seq_file *m, void *v) { unsigned long seq; - bool full =3D !debugfs_real_fops(m->file)->write; + bool full =3D !debugfs_real_fops(m->file)->write_iter; struct lruvec *lruvec =3D v; struct lru_gen_folio *lrugen =3D &lruvec->lrugen; int nid =3D lruvec_pgdat(lruvec)->node_id; @@ -5434,9 +5434,9 @@ static int run_cmd(char cmd, int memcg_id, int nid, u= nsigned long seq, } =20 /* see Documentation/admin-guide/mm/multigen_lru.rst for details */ -static ssize_t lru_gen_seq_write(struct file *file, const char __user *src, - size_t len, loff_t *pos) +static ssize_t lru_gen_seq_write(struct kiocb *iocb, struct iov_iter *from) { + size_t len =3D iov_iter_count(from); void *buf; char *cur, *next; unsigned int flags; @@ -5454,7 +5454,7 @@ static ssize_t lru_gen_seq_write(struct file *file, c= onst char __user *src, if (!buf) return -ENOMEM; =20 - if (copy_from_user(buf, src, len)) { + if (!copy_from_iter_full(buf, len, from)) { kvfree(buf); return -EFAULT; } @@ -5513,15 +5513,15 @@ static int lru_gen_seq_open(struct inode *inode, st= ruct file *file) =20 static const struct file_operations lru_gen_rw_fops =3D { .open =3D lru_gen_seq_open, - .read =3D seq_read, - .write =3D lru_gen_seq_write, + .read_iter =3D seq_read_iter, + .write_iter =3D lru_gen_seq_write, .llseek =3D seq_lseek, .release =3D seq_release, }; =20 static const struct file_operations lru_gen_ro_fops =3D { .open =3D lru_gen_seq_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D seq_release, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f45.google.com (mail-io1-f45.google.com [209.85.166.45]) (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 E6D50139CF1 for ; Thu, 11 Apr 2024 15:34:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849669; cv=none; b=uby1Zc5aTA/eYITQpHM2pr8jILPPnZd8im2V16C2Cb3vuXz2t0EMsuLX077/oVlzjYT5JvrxQQ/P8RXaWLwk9PWKD9IsBORv9vS5hdhHJ8mbA9AZg3v0Gg5loklQ4d5YIjVeuqnl+M0fwC+twIcFFwqr/JQqmgJMhzEMwMJNylk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849669; c=relaxed/simple; bh=Pn1GbBTsc5+QbTJB9yYgUfJldUjlFuMP1hnlhAGYRuY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=KpFJVe6y29sTWjNxiwViWj1tacUD7oSZh9n32fVoNq6c8AnuEeozJ5wrbzB5LCkGWXdlshUsICGWFYfZZkoNk+NySkTgjluG6a7O/rOhjCJTNKUXt5zRQmlbxvj6Gb3hjsDDGL13pGSiXQachDxm4BOBjWJHrPnaFnSyMMHocGg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=Uz0Zq+MF; arc=none smtp.client-ip=209.85.166.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="Uz0Zq+MF" Received: by mail-io1-f45.google.com with SMTP id ca18e2360f4ac-7d6112ba6baso58021039f.1 for ; Thu, 11 Apr 2024 08:34:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849666; x=1713454466; 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=Kkl4RwyrP8inBrF9H+XsQ2Koi0yW0jbw9hT3/G5miSU=; b=Uz0Zq+MF8+byas9O0kpqOabzIF/AqDWcblP0vgnvPxG4qIWuVHu9EZjAl5jDCrzcO+ hlyl5sRZR0kKOaLqo/9ZqrjurfZd02ZxHj76V+5tI7T617tkui+dMQda1RySHgiqFIvG o9SDZQsmTUt4rDtopZN4EqKScPtzZX9G7ubUp/n/6KYO52JzJw2lo7WOXeOTcSKc9lsP Qw/YjlpsYZtZ0pRrrrnx8HEQ1kzFP6hNFBsrqZBlWK0a5u6WjuUndooR/LZTwgNT4wW2 33OSQesag2phc/nDszlYRljkcBT5FdaBOH5wVkvh9QLyhv4CsqE/0oCRJ7VZfaNJYE+b k1sQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849666; x=1713454466; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Kkl4RwyrP8inBrF9H+XsQ2Koi0yW0jbw9hT3/G5miSU=; b=UHhXWbUsRsrwlWt4WcaMCC03q5116YCQ0rBIraLYkUykbpwyVveXh9ymNSfh0f+X9S raRVsn1Elm2GKizfR2L43D2G8rjeNiZXarfWL9HsCCsrjg1hNONABSIe6yzIdXefUHKl DPIlb7nvYao5HtM3AP7uQYd2k9F8UcJAt0373y0GcAcNE5ZbYceLGIRyfAciiyG7lF0X K7MlSWInNRtRge6tvs3mDUgr+hAPbfHVIlYxyEm+7yuxK4uqs5lVxuTlgaM6v8RtzRJo q9uX7zpLcZS81tptGwat+AoJtOSh8MDy6lKSTXHwZwmePj8PAP/7YbJ+VnrZkZ/20hAA RD8A== X-Gm-Message-State: AOJu0Yy12ctxcA7ZnxzoTepq1Uj9sEn4dBF/3BqZJwBdHXVHhaUvu2hF AIJ2W4qTWmw6XnySXQNOVaWxrUBoNgfP0Ri10O+GfqPu1dZESK2VVwHkCIhJew1o9MkNH4khEg9 E X-Google-Smtp-Source: AGHT+IE7a2RcTazEzex2rXdA1dTn33zIoA0OXywFgv3QGLsCj6qYNZ+0hzEA4RZ8YtZEoNVh/JWFDw== X-Received: by 2002:a05:6602:38d:b0:7d6:513b:254 with SMTP id f13-20020a056602038d00b007d6513b0254mr178401iov.2.1712849666613; Thu, 11 Apr 2024 08:34:26 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.34.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:34:26 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 097/437] aoe: convert to read/write iterators Date: Thu, 11 Apr 2024 09:13:57 -0600 Message-ID: <20240411153126.16201-98-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/block/aoe/aoechr.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/drivers/block/aoe/aoechr.c b/drivers/block/aoe/aoechr.c index a42c4bcc85ba..828499156a5f 100644 --- a/drivers/block/aoe/aoechr.c +++ b/drivers/block/aoe/aoechr.c @@ -192,6 +192,7 @@ aoechr_write(struct file *filp, const char __user *buf,= size_t cnt, loff_t *offp ret =3D cnt; return ret; } +FOPS_WRITE_ITER_HELPER(aoechr_write); =20 static int aoechr_open(struct inode *inode, struct file *filp) @@ -217,16 +218,16 @@ aoechr_rel(struct inode *inode, struct file *filp) return 0; } =20 -static ssize_t -aoechr_read(struct file *filp, char __user *buf, size_t cnt, loff_t *off) +static ssize_t aoechr_read(struct kiocb *iocb, struct iov_iter *to) { + size_t cnt =3D iov_iter_count(to); unsigned long n; char *mp; struct ErrMsg *em; ssize_t len; ulong flags; =20 - n =3D (unsigned long) filp->private_data; + n =3D (unsigned long) iocb->ki_filp->private_data; if (n !=3D MINOR_ERR) return -EFAULT; =20 @@ -236,7 +237,7 @@ aoechr_read(struct file *filp, char __user *buf, size_t= cnt, loff_t *off) em =3D emsgs + emsgs_head_idx; if ((em->flags & EMFL_VALID) !=3D 0) break; - if (filp->f_flags & O_NDELAY) { + if (iocb->ki_filp->f_flags & O_NDELAY) { spin_unlock_irqrestore(&emsgs_lock, flags); return -EAGAIN; } @@ -269,14 +270,14 @@ aoechr_read(struct file *filp, char __user *buf, size= _t cnt, loff_t *off) =20 spin_unlock_irqrestore(&emsgs_lock, flags); =20 - n =3D copy_to_user(buf, mp, len); + n =3D !copy_to_iter_full(mp, len, to); kfree(mp); return n =3D=3D 0 ? len : -EFAULT; } =20 static const struct file_operations aoe_fops =3D { - .write =3D aoechr_write, - .read =3D aoechr_read, + .write_iter =3D aoechr_write_iter, + .read_iter =3D aoechr_read, .open =3D aoechr_open, .release =3D aoechr_rel, .owner =3D THIS_MODULE, --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f46.google.com (mail-io1-f46.google.com [209.85.166.46]) (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 944EF13A242 for ; Thu, 11 Apr 2024 15:34:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849670; cv=none; b=HLqvwz0sXhnQPd9TfvydeVrlh6E+uzJi/mYMScZxoGigThi0fPtTIUJp3IJon3P+XbwPOyjYXf7ws6lZxuGBrZS9BqvFXYRgpohNG7uuctNPx3Py8FoBEl3TubfvW0x78H8jGOTuBBJI0GXAzj9VQ9jHn6v1ogftVW51WdxbB2o= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849670; c=relaxed/simple; bh=D2gX1Yo2kaknxa6HlOQaS/IuzMCcbuETGQKREZ0ah9Y=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=mqMnMAZ0CbuxBB6HtMPn10oaRZIefrPEG2pidu+CtMPy9f9Qg2L9gFPYr+f325WFn3319gTGxI2scU/+9k4gI96EQySG2yBcrj5gzLif+DYmbo18NkGM/ALnOoD6Cwd7V/BnDwR7rXEgwqJi9RAi67Q2xeTzDwLSR8/BXPZLz9U= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=3DP67A3L; arc=none smtp.client-ip=209.85.166.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="3DP67A3L" Received: by mail-io1-f46.google.com with SMTP id ca18e2360f4ac-7c8e4c0412dso69533639f.1 for ; Thu, 11 Apr 2024 08:34:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849668; x=1713454468; 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=LQyRbapRDHKkd6lSiAZILxLe7t//FFdqCDBswhYBpjw=; b=3DP67A3LzBPFENk1aRc3pyQVPMfsWsh66VVgPKK7Tc8VaPznX6YZNJALV2msdgLOml 2OjH9sXnSgA/etcS/f08fOn7bGV6ZLS7Y0p+FdDYcKUv8oOTPZeTSPaJDbiXEJMWNgaI 3l/Mw8QMozpNrhwgPZBw9RvK0d1I5ZC1Ugc4w87bXGloGHIjT7iL91i4s5zIudazwfh/ xLtXywQSR9Csm6fK3ciNwz6EPMVEMc/r+9I94gq/xI+TQiX75W1Ox0jkjbfB03Xm8H0K PHxoOBuRb2JKeE9rQ1HuoSp/JWXwImcpLv9u6W/1viCbhs+maCccyd2BRT0a8gA/SlHp s8LQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849668; x=1713454468; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=LQyRbapRDHKkd6lSiAZILxLe7t//FFdqCDBswhYBpjw=; b=h4odM5IWwPsyUBFLTnUKXfv12JwmVPrCMHQdX5vu6W0o854st6UdLLdfqLGmTnJBly Gx6Rq5aPNk1KWo2kBFSgwEzHQ+MYWWERqkvPSRjeZwpsaWjx5sjcYIZKBVYjkSsijKXW 8DMlG0MP4tDJJid6uLhZ0n9iWHLqbfZrKOurqgLC+fmN7IUpJDJoPRwIYs01mMaCVXl6 tRT6XEI5RYQNARUq6p6Mjh27fqj1+ip+FWUDMcK80SOoHDgajZav7N8NH3QGHQQ88fTR cEfaH3YT1x818FOZ+53NgRMbaVkw5LR1hYcpUDMxq1Pt3d0I9dPEfwH7Ax1Jb8WxE6fl pbYA== X-Gm-Message-State: AOJu0YwsbPGJYayA944w+vCrq3W/Q8jIp/NoOWZwAPZbKBcYRjVjzaNl 4Th1g5Plpn/dJsh/zDXEaxVkPnhcHKnUzoq08e5bJtfi0BM+cDn4ppJ9uaR1nk02+nO++i5PUOL 2 X-Google-Smtp-Source: AGHT+IGLsauauvSziZcIxLMgCuedyXt2r/Hj+GU316EuXRp6vcA8YHrdwOaB4/g8O4vAeRbbPWwePA== X-Received: by 2002:a6b:c34e:0:b0:7d6:7b7c:8257 with SMTP id t75-20020a6bc34e000000b007d67b7c8257mr211692iof.0.1712849668496; Thu, 11 Apr 2024 08:34:28 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.34.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:34:26 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 098/437] drbd: convert to read/write iterators Date: Thu, 11 Apr 2024 09:13:58 -0600 Message-ID: <20240411153126.16201-99-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/block/drbd/drbd_debugfs.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/block/drbd/drbd_debugfs.c b/drivers/block/drbd/drbd_de= bugfs.c index 12460b584bcb..b23baa80eb37 100644 --- a/drivers/block/drbd/drbd_debugfs.c +++ b/drivers/block/drbd/drbd_debugfs.c @@ -457,7 +457,7 @@ static int in_flight_summary_release(struct inode *inod= e, struct file *file) static const struct file_operations in_flight_summary_fops =3D { .owner =3D THIS_MODULE, .open =3D in_flight_summary_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D in_flight_summary_release, }; @@ -565,7 +565,7 @@ static int callback_history_release(struct inode *inode= , struct file *file) static const struct file_operations connection_callback_history_fops =3D { .owner =3D THIS_MODULE, .open =3D callback_history_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D callback_history_release, }; @@ -612,7 +612,7 @@ static int connection_oldest_requests_release(struct in= ode *inode, struct file * static const struct file_operations connection_oldest_requests_fops =3D { .owner =3D THIS_MODULE, .open =3D connection_oldest_requests_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D connection_oldest_requests_release, }; @@ -757,7 +757,7 @@ static int device_ ## name ## _release(struct inode *in= ode, struct file *file) \ static const struct file_operations device_ ## name ## _fops =3D { \ .owner =3D THIS_MODULE, \ .open =3D device_ ## name ## _open, \ - .read =3D seq_read, \ + .read_iter =3D seq_read_iter, \ .llseek =3D seq_lseek, \ .release =3D device_ ## name ## _release, \ }; @@ -859,7 +859,7 @@ static const struct file_operations drbd_version_fops = =3D { .owner =3D THIS_MODULE, .open =3D drbd_version_open, .llseek =3D seq_lseek, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .release =3D single_release, }; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f42.google.com (mail-io1-f42.google.com [209.85.166.42]) (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 305FA13A3F9 for ; Thu, 11 Apr 2024 15:34:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849673; cv=none; b=AnYQjb+imsKrafTB4dHdiopcXCSJe2Ijrx2aTm7NyECnIfPxwd6dxIhE3qcCY3OBllBs4NgTQ1t+gFBRDphtxQB6+V6bLJ+Syo+bMKpFCFMnoX8Dqf+QjaCQ6v2l+w8ARjFhH6XD5hitRwdMoHNE44j1dwy7PkYgcD9K+xcYFUc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849673; c=relaxed/simple; bh=J4wmBK0VwnyiAyzvxgtNdd8ejgNvMcNfeaJPwCFzHl4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=kZYej9rSzvnVncApv9kQT6VqFZ78F5zbR591OTw03r0FWmJR899Ko+znchPWui2O0JHpu9J4n2KwfoyYDepX5lRVyVxp803IgQqHLo/aE8SXaWv7JyR7cxXDCYZLTLovbv3c7KRsWF47c8w8ClK83tljaxFgq8eEwhEGZ1k8ppI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=BjaOPBD6; arc=none smtp.client-ip=209.85.166.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="BjaOPBD6" Received: by mail-io1-f42.google.com with SMTP id ca18e2360f4ac-7cc0e831e11so170479439f.1 for ; Thu, 11 Apr 2024 08:34:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849670; x=1713454470; 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=utVZJ3NTAroxWHBQsX8MO7HUtSAiLJiJmVVXUoSe800=; b=BjaOPBD6maDP2yhPp+cJo0F41uEXLeW+qZ24SRUw/olMFFm1744386/WgyvVAqd/mJ P0vhXfVv+cgTtj2tVwdDAjxGvBrpvgui66M0ZoZwIL/jDf+jtBtNkPS8cNqHUuN9y6pZ 1ZFLbKFsT34CKhLheH8L0+mQI86pFYJtexL4HRPH6kfN8l17liW/CZ+zux8CZDP3z7qi 9CoRKoM2cT+i0i5y6h7u+j2CA9yhZJENSbnTaxr+k9HLdDGkIQOHCsXa1UtUTLv0Upj3 w3KwGxopUWFPEVq+MYM+FlHtlpI51m34zze9FJyOuhBioa2E15agoe+d2M/L4tDkv3L5 Wy2Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849670; x=1713454470; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=utVZJ3NTAroxWHBQsX8MO7HUtSAiLJiJmVVXUoSe800=; b=UIsnyCAwI83YTMdzpn+/gsxYUVKRzLZijIsN9tJYXM1zctNDsyCVV9hHwjbrgapYBF w33E/zVUt7Btl0NnqlfEAsedUo0XejiVp06ReoUKM7mRjH/t476i1zzmtXARV/y3iZ6I GcJVq30bM7aa5HWw8pz3DEY2BVV2367/IcJP91AxB8S1uvslrqZuFQ+0xBPMCctBfx3v cdwDGTJlHVDCIalNKoSC7hxPdntjmXGRE8PUypSghj5sEkcRIBqMAUpALg8zALcUoE3G 8YmNQ8mkY/gnaXCp3LzeyTAsFQ1G94hk5fmtUUkyou8KTxYtbzwLXWpiMYrcqiYtsFrI tQjw== X-Gm-Message-State: AOJu0YyUh0EpeC6TqYsR9DoPan0y24doA6FL6fsG+d4iCt0EcdOM/Oo1 IreF4YG83cBloMf4ViVCpYHhz039+M1tP/MV6Rdh1CRsx8zwIpFoPg09u0kxDL6BJ1ZB+QgmsOb F X-Google-Smtp-Source: AGHT+IF7S1yMBXoPnurcAibsSK3Ay+DNqhdo9zwWgRNEqe7dlEE+hvNOeyCuYp8X/GVDidULS+sy1A== X-Received: by 2002:a05:6602:21d7:b0:7d6:9ddf:5095 with SMTP id c23-20020a05660221d700b007d69ddf5095mr10302ioc.1.1712849670096; Thu, 11 Apr 2024 08:34:30 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.34.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:34:28 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 099/437] mtip32xx: convert to read/write iterators Date: Thu, 11 Apr 2024 09:13:59 -0600 Message-ID: <20240411153126.16201-100-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/block/mtip32xx/mtip32xx.c | 36 +++++++++++++++---------------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/drivers/block/mtip32xx/mtip32xx.c b/drivers/block/mtip32xx/mti= p32xx.c index 43a187609ef7..28ea499cbbfd 100644 --- a/drivers/block/mtip32xx/mtip32xx.c +++ b/drivers/block/mtip32xx/mtip32xx.c @@ -2162,13 +2162,13 @@ static const struct attribute_group *mtip_disk_attr= _groups[] =3D { NULL, }; =20 -static ssize_t mtip_hw_read_registers(struct file *f, char __user *ubuf, - size_t len, loff_t *offset) +static ssize_t mtip_hw_read_registers(struct kiocb *iocb, struct iov_iter = *to) { - struct driver_data *dd =3D (struct driver_data *)f->private_data; + struct driver_data *dd =3D iocb->ki_filp->private_data; + size_t len =3D iov_iter_count(to); char *buf; u32 group_allocated; - int size =3D *offset; + int size =3D iocb->ki_pos; int n, rv =3D 0; =20 if (!len || size) @@ -2217,21 +2217,21 @@ static ssize_t mtip_hw_read_registers(struct file *= f, char __user *ubuf, } size +=3D sprintf(&buf[size], "]\n"); =20 - *offset =3D size <=3D len ? size : len; - size =3D copy_to_user(ubuf, buf, *offset); - if (size) + iocb->ki_pos =3D size <=3D len ? size : len; + size =3D copy_to_iter(buf, iocb->ki_pos, to); + if (!size) rv =3D -EFAULT; =20 kfree(buf); - return rv ? rv : *offset; + return rv ? rv : iocb->ki_pos; } =20 -static ssize_t mtip_hw_read_flags(struct file *f, char __user *ubuf, - size_t len, loff_t *offset) +static ssize_t mtip_hw_read_flags(struct kiocb *iocb, struct iov_iter *to) { - struct driver_data *dd =3D (struct driver_data *)f->private_data; + struct driver_data *dd =3D iocb->ki_filp->private_data; + size_t len =3D iov_iter_count(to); char *buf; - int size =3D *offset; + int size =3D iocb->ki_pos; int rv =3D 0; =20 if (!len || size) @@ -2246,26 +2246,26 @@ static ssize_t mtip_hw_read_flags(struct file *f, c= har __user *ubuf, size +=3D sprintf(&buf[size], "Flag-dd : [ %08lX ]\n", dd->dd_flag); =20 - *offset =3D size <=3D len ? size : len; - size =3D copy_to_user(ubuf, buf, *offset); - if (size) + iocb->ki_pos =3D size <=3D len ? size : len; + size =3D copy_to_iter(buf, iocb->ki_pos, to); + if (!size) rv =3D -EFAULT; =20 kfree(buf); - return rv ? rv : *offset; + return rv ? rv : iocb->ki_pos; } =20 static const struct file_operations mtip_regs_fops =3D { .owner =3D THIS_MODULE, .open =3D simple_open, - .read =3D mtip_hw_read_registers, + .read_iter =3D mtip_hw_read_registers, .llseek =3D no_llseek, }; =20 static const struct file_operations mtip_flags_fops =3D { .owner =3D THIS_MODULE, .open =3D simple_open, - .read =3D mtip_hw_read_flags, + .read_iter =3D mtip_hw_read_flags, .llseek =3D no_llseek, }; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-il1-f178.google.com (mail-il1-f178.google.com [209.85.166.178]) (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 D277113A401 for ; Thu, 11 Apr 2024 15:34:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.178 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849674; cv=none; b=fTlLBgUMhVsaawzjgPYBivoVCkRbx8rNkp07Bz4tI+QZXis4pyt0Gn05/Knyfz/eYUrYgLQu9kyIHZ0CpOjneYAaQMMNsT1ezsTLejJG+Gg9GmJiGIOo/y/Yp+uC+MOXtZjfGDisWsV5D4hbGEJKy+bksoWA21E10UZkPAOLfnw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849674; c=relaxed/simple; bh=i8WZGkK1Xrc1Ds405kONA9j4KG27U4Jn+3Qr5PpUI24=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=WguZliHsiDhRR05en6pgtYVRoTvH2TNq44eAbKKhTyLeyrq0PHQKSlC8IPzqTGDaijSmomVeMLr8g+RCl79zIbnxr/3BGwcMWlMaVkRZexXntzDBLQFL2t999Sl08jgp0HAEdly1mcijHrOaj6xQjGk3Z6nwS5x4CZTSgonLd38= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=VHNZffyv; arc=none smtp.client-ip=209.85.166.178 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="VHNZffyv" Received: by mail-il1-f178.google.com with SMTP id e9e14a558f8ab-36a34b68277so108165ab.0 for ; Thu, 11 Apr 2024 08:34:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849672; x=1713454472; 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=tnDRn6e4WJdH+640WYFjzIyIME2FivwUJbPuYAZrbUg=; b=VHNZffyv4L+PQ1miPIq1kuJy+so7Z9pxUn5ezjYHc29RBOcX//z/2erjzsA3H3Yk6k zK+zErG6szoLoxjoKoKgds5DgksKSar+No/LZl6mrPZditxcuwBLmQw4CrADqTb8S9D+ YPnCipw+CfehTTr0ECBuOHBt8sK9MiJLzcvcaXkcb+AvLHG3lCogtE65zJsl6sD/2gWx Z2FCuG1b374B0XaXa2d8zwOd2+WmWbIW1uPTIVT++R5MwwSkOCehxe9dmk9r8eMeqDKg em0JJoAnUweADLB08EG51VkLQ+88csUfT+e3vP2B5LkuWxijniX0dNvmHO1YumP9C1VB OFSA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849672; x=1713454472; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=tnDRn6e4WJdH+640WYFjzIyIME2FivwUJbPuYAZrbUg=; b=YQC1oo3SRFl/W9ajOnVg5j9FjpjVtSWBYNgYyFTrSUZW/lQtzV8h3cPtBpHJwDiN7k Q3+uOUbuTZxaLgQ88sRP7n4wyg5sx3HvI3UDjFqTD/mkGcQu30ApQTNzkf517tDADQkp +Qp6jYrdxZlDwbUuiH6NdEyVDULPD9mzqmEr4p1auj04ENELTIOgQiKWaIYBVNiegnEL zAI9V4wspVELHaXF2wx3rCDNxBayxqlprE6ypD5T+xiTOg789wKQ4cXPdtoByTlWfsJT 3zFpfGzJ5776hLjuVlZHW2H25xdyOruGVU8Zr+4CkUbQYlFfZRyZifGjvK99uW+spTyx 5TKg== X-Gm-Message-State: AOJu0YzBuLkLOWKk2R3Mta+xr5ksRo2P9b1S95nLw2MLesARujQERFqu Pl6JlXzzltqOip+atVr6FgIrQqVQCGZPZKgmZ5cT/eEcYFd/m38F9kCDXm/tSMIMOhTwYjdnyH5 H X-Google-Smtp-Source: AGHT+IFGk0IG7LpoGDPJCVS1h7XsTnNP8GK+MvNIJ6kPuNDxil7Gy9mvjWsH99mJELxB94ndHBOn/g== X-Received: by 2002:a05:6602:4ed7:b0:7d5:ddc8:504d with SMTP id gk23-20020a0566024ed700b007d5ddc8504dmr184478iob.0.1712849671737; Thu, 11 Apr 2024 08:34:31 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.34.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:34:30 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 100/437] zram: convert to read/write iterators Date: Thu, 11 Apr 2024 09:14:00 -0600 Message-ID: <20240411153126.16201-101-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/block/zram/zram_drv.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/block/zram/zram_drv.c b/drivers/block/zram/zram_drv.c index f0639df6cd18..eac46889b4b2 100644 --- a/drivers/block/zram/zram_drv.c +++ b/drivers/block/zram/zram_drv.c @@ -850,13 +850,13 @@ static void zram_debugfs_destroy(void) debugfs_remove_recursive(zram_debugfs_root); } =20 -static ssize_t read_block_state(struct file *file, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t read_block_state(struct kiocb *iocb, struct iov_iter *to) { char *kbuf; ssize_t index, written =3D 0; - struct zram *zram =3D file->private_data; + struct zram *zram =3D iocb->ki_filp->private_data; unsigned long nr_pages =3D zram->disksize >> PAGE_SHIFT; + size_t count =3D iov_iter_count(to); struct timespec64 ts; =20 kbuf =3D kvmalloc(count, GFP_KERNEL); @@ -870,7 +870,7 @@ static ssize_t read_block_state(struct file *file, char= __user *buf, return -EINVAL; } =20 - for (index =3D *ppos; index < nr_pages; index++) { + for (index =3D iocb->ki_pos; index < nr_pages; index++) { int copied; =20 zram_slot_lock(zram, index); @@ -898,11 +898,11 @@ static ssize_t read_block_state(struct file *file, ch= ar __user *buf, count -=3D copied; next: zram_slot_unlock(zram, index); - *ppos +=3D 1; + iocb->ki_pos++; } =20 up_read(&zram->init_lock); - if (copy_to_user(buf, kbuf, written)) + if (!copy_to_iter(kbuf, written, to)) written =3D -EFAULT; kvfree(kbuf); =20 @@ -911,7 +911,7 @@ static ssize_t read_block_state(struct file *file, char= __user *buf, =20 static const struct file_operations proc_zram_block_state_op =3D { .open =3D simple_open, - .read =3D read_block_state, + .read_iter =3D read_block_state, .llseek =3D default_llseek, }; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f49.google.com (mail-io1-f49.google.com [209.85.166.49]) (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 CFDCB13A88F for ; Thu, 11 Apr 2024 15:34:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849676; cv=none; b=JZ4pEi2PmpJv5nravC1osrjSzMnN4LmrVwl9SqQU17UfgYTRtXlvB6t5Cv0/66BF6YsYJZCGLCdW2r9QQFi64Dd0cKViVIv6rPfOtzxUHw7Zx/ZlCgLF9K04R94mLTib2hT/1HOo/WCgaPUyJPzDWIyvD21Zz1Xgd1z53qIUiww= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849676; c=relaxed/simple; bh=p8d488wkRo5nDc8R6DlGCaIrfG56wn1pZbHgl4s6SRU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=QJyXwayaDV3j0rTwzF4o+ofyAq73piE2Y7ziqIAmJ7nRI+AF3AoFrc9m6phqQz0EF1njH//rKdNeEpipBcbp1qPgBPh5wj/G9SQpfcfIoRh77UIxJJCDNMqZWLVQXE+BU2zTJX9L4xAToQOeOhVueBO+PHqRNyvDuZa8K/JzSTs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=SL9JZSpp; arc=none smtp.client-ip=209.85.166.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="SL9JZSpp" Received: by mail-io1-f49.google.com with SMTP id ca18e2360f4ac-7cc0e831e11so170480539f.1 for ; Thu, 11 Apr 2024 08:34:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849673; x=1713454473; 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=7HxVAxXkHDWlwHAWZ+aWYAyKYEYbdX7k4joaDRZl4as=; b=SL9JZSppcVIvo7l/PFn7abolSJgNrcEhqbjm+PJ+MYt7jwyuRE2Fffv6BmyP1VW9H/ yLhv9OsMrQUeMI6DBWoajRsP7/p0tidtSTqjcVI4YhVMG5UzrqvFhaT2Eon8upwKjf0P JqKjoR1Rjc6RmXcwrSVKb5AKq6TvybEodBoCxI2rRkG3Duevzoq1BAXsm8whUzGk1IMJ Fx7JOnAB2tp/nQ3bYYHJrRMTiXobej4huj6S/VuWSNVCj5nWD6S4YLWHvPDymUxFoXkA ON5V4OIxhqG3WKAko0cWm8iy+p8mvWLO8QjG2Rvcip3yiKvO7bjrRXss8k0InmWopyE0 xgqg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849673; x=1713454473; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=7HxVAxXkHDWlwHAWZ+aWYAyKYEYbdX7k4joaDRZl4as=; b=g2gMlx8rl4of8F1YVCRjpWrVnd45xMX+fOb9ornD8D4gSJXklocllZNhryf9nGbkI1 4421kJiVpBSuHjC66Ynn6weHfwa2/aErXoH2dq4Gd0B/wzNkiMpVVKx2HS8DT4t5enTX k8qjll0DqtDi/osjVxYiz9Gx9V1PCPLMJEx42StfGpjYPVTXCRSOz5A++Mwa5sRbuJP4 4KCKet1l1Qx1pVbx3653pJOEHEUdGXHAAlB9j6gkg7JqKYKBLWO6DUHRAm7SkFV9TahY HbCJVshq64x/8Ro9v94tOCauS5e9ZKGFtVEEBEXWmy/lZ1W7lnOE5MeCtOky3YbZpq9C Rvxg== X-Gm-Message-State: AOJu0YzfzERLi9O8dMVMlmfBUBtsQlCK+GlqLBZ65q18UjuZvR7FB9n4 L6j3Q1k9KVXnJioOupE4pTT0Fd42/aTy8uA2kgJqsseDPcBl6vnAmRUdH/pn7SLJUZCJYKXkaPw u X-Google-Smtp-Source: AGHT+IHEyav1JwNE6p3N+fBdHYjSDUFmLV09EhcPb1fb3ELM/9/AwQfRYSXe+abM09MmaENZutV/eA== X-Received: by 2002:a6b:5b10:0:b0:7d0:bd2b:43ba with SMTP id v16-20020a6b5b10000000b007d0bd2b43bamr218209ioh.0.1712849673482; Thu, 11 Apr 2024 08:34:33 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.34.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:34:32 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 101/437] s390/dasd: convert to read/write iterators Date: Thu, 11 Apr 2024 09:14:01 -0600 Message-ID: <20240411153126.16201-102-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/s390/block/dasd.c | 34 +++++++++++++++++++++++++++------- drivers/s390/block/dasd_eer.c | 12 ++++++------ drivers/s390/block/dasd_int.h | 1 + drivers/s390/block/dasd_proc.c | 2 +- 4 files changed, 35 insertions(+), 14 deletions(-) diff --git a/drivers/s390/block/dasd.c b/drivers/s390/block/dasd.c index 0a97cfedd706..789e8c47e6ee 100644 --- a/drivers/s390/block/dasd.c +++ b/drivers/s390/block/dasd.c @@ -897,6 +897,7 @@ void dasd_profile_off(struct dasd_profile *profile) spin_unlock_bh(&profile->lock); } =20 +/* this can go away once proc is converted to ->write_iter() */ char *dasd_get_user_string(const char __user *user_buf, size_t user_len) { char *buffer; @@ -916,18 +917,37 @@ char *dasd_get_user_string(const char __user *user_bu= f, size_t user_len) return buffer; } =20 -static ssize_t dasd_stats_write(struct file *file, - const char __user *user_buf, - size_t user_len, loff_t *pos) +char *dasd_get_iter_string(struct iov_iter *from) +{ + size_t user_len =3D iov_iter_count(from); + char *buffer; + + buffer =3D vmalloc(user_len + 1); + if (buffer =3D=3D NULL) + return ERR_PTR(-ENOMEM); + if (!copy_from_iter_full(buffer, user_len, from)) { + vfree(buffer); + return ERR_PTR(-EFAULT); + } + /* got the string, now strip linefeed. */ + if (buffer[user_len - 1] =3D=3D '\n') + buffer[user_len - 1] =3D 0; + else + buffer[user_len] =3D 0; + return buffer; +} + +static ssize_t dasd_stats_write(struct kiocb *iocb, struct iov_iter *from) { char *buffer, *str; int rc; - struct seq_file *m =3D (struct seq_file *)file->private_data; + struct seq_file *m =3D iocb->ki_filp->private_data; struct dasd_profile *prof =3D m->private; + size_t user_len =3D iov_iter_count(from); =20 if (user_len > 65536) user_len =3D 65536; - buffer =3D dasd_get_user_string(user_buf, user_len); + buffer =3D dasd_get_iter_string(from); if (IS_ERR(buffer)) return PTR_ERR(buffer); =20 @@ -1042,10 +1062,10 @@ static int dasd_stats_open(struct inode *inode, str= uct file *file) static const struct file_operations dasd_stats_raw_fops =3D { .owner =3D THIS_MODULE, .open =3D dasd_stats_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D single_release, - .write =3D dasd_stats_write, + .write_iter =3D dasd_stats_write, }; =20 static void dasd_profile_init(struct dasd_profile *profile, diff --git a/drivers/s390/block/dasd_eer.c b/drivers/s390/block/dasd_eer.c index 194e9e2d9cb8..476d6cf80089 100644 --- a/drivers/s390/block/dasd_eer.c +++ b/drivers/s390/block/dasd_eer.c @@ -592,15 +592,15 @@ static int dasd_eer_close(struct inode *inp, struct f= ile *filp) return 0; } =20 -static ssize_t dasd_eer_read(struct file *filp, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t dasd_eer_read(struct kiocb *iocb, struct iov_iter *to) { + size_t count =3D iov_iter_count(to); int tc,rc; int tailcount,effective_count; unsigned long flags; struct eerbuffer *eerb; =20 - eerb =3D (struct eerbuffer *) filp->private_data; + eerb =3D (struct eerbuffer *) iocb->ki_filp->private_data; if (mutex_lock_interruptible(&readbuffer_mutex)) return -ERESTARTSYS; =20 @@ -625,7 +625,7 @@ static ssize_t dasd_eer_read(struct file *filp, char __= user *buf, /* no data available */ spin_unlock_irqrestore(&bufferlock, flags); mutex_unlock(&readbuffer_mutex); - if (filp->f_flags & O_NONBLOCK) + if (iocb->ki_filp->f_flags & O_NONBLOCK) return -EAGAIN; rc =3D wait_event_interruptible( dasd_eer_read_wait_queue, @@ -647,7 +647,7 @@ static ssize_t dasd_eer_read(struct file *filp, char __= user *buf, =20 spin_unlock_irqrestore(&bufferlock, flags); =20 - if (copy_to_user(buf, readbuffer, effective_count)) { + if (!copy_to_iter_full(readbuffer, effective_count, to)) { mutex_unlock(&readbuffer_mutex); return -EFAULT; } @@ -676,7 +676,7 @@ static __poll_t dasd_eer_poll(struct file *filp, poll_t= able *ptable) static const struct file_operations dasd_eer_fops =3D { .open =3D &dasd_eer_open, .release =3D &dasd_eer_close, - .read =3D &dasd_eer_read, + .read_iter =3D &dasd_eer_read, .poll =3D &dasd_eer_poll, .owner =3D THIS_MODULE, .llseek =3D noop_llseek, diff --git a/drivers/s390/block/dasd_int.h b/drivers/s390/block/dasd_int.h index e5f40536b425..be7d6875b054 100644 --- a/drivers/s390/block/dasd_int.h +++ b/drivers/s390/block/dasd_int.h @@ -897,6 +897,7 @@ void dasd_profile_reset(struct dasd_profile *); int dasd_profile_on(struct dasd_profile *); void dasd_profile_off(struct dasd_profile *); char *dasd_get_user_string(const char __user *, size_t); +char *dasd_get_iter_string(struct iov_iter *); =20 /* externals in dasd_devmap.c */ extern int dasd_max_devindex; diff --git a/drivers/s390/block/dasd_proc.c b/drivers/s390/block/dasd_proc.c index 0faaa437d9be..b97d1227b9b0 100644 --- a/drivers/s390/block/dasd_proc.c +++ b/drivers/s390/block/dasd_proc.c @@ -317,7 +317,7 @@ static ssize_t dasd_stats_proc_write(struct file *file, =20 static const struct proc_ops dasd_stats_proc_ops =3D { .proc_open =3D dasd_stats_proc_open, - .proc_read =3D seq_read, + .proc_read_iter =3D seq_read_iter, .proc_lseek =3D seq_lseek, .proc_release =3D single_release, .proc_write =3D dasd_stats_proc_write, --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f51.google.com (mail-io1-f51.google.com [209.85.166.51]) (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 7472B13AA4D for ; Thu, 11 Apr 2024 15:34:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849677; cv=none; b=Z/iEBNKjmGW+rYsi6YRosztQHujMBRIGpcqvxJ0FhSZyWk2FlvFAB6Mwfdr5IH00I4lnjACuRbYDrwgtRcMpGaAVkWU/3mSNUaLy2/G9h82tzwIvDyDkSS6uv/dazhyeitW6eDBuMcNIwoJmbd6PFdD+lbASgldpLto2SSP4jxs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849677; c=relaxed/simple; bh=TImSBsu87oNNrMhjQADeSmSxvW70po1cO4mAK4N58wE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=SH8QwfPpsHn6scZ1Vh53yRxu9SkELO/rzUT5zF41ue/B0nj/RM0GzbCcEwOavo982XmxdAk4eIDiNQ0MIwESsmxJSGOQAvaP0FAy5ouBqOiZ7IJfg7AUuGYSqMy6Tdcjq2T+JTDKLyseQC7B1lalAPBfGoF9GcHinBfEOoPTLY8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=BqE6NsYW; arc=none smtp.client-ip=209.85.166.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="BqE6NsYW" Received: by mail-io1-f51.google.com with SMTP id ca18e2360f4ac-7d6112ba6baso58024239f.1 for ; Thu, 11 Apr 2024 08:34:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849675; x=1713454475; 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=78qhJxH7WL0nlMptGJcY4x6plz30gPKCEiGq2oEox8s=; b=BqE6NsYW0/XgKK8vUFnsZBR6zKeGBrBIPtjkgB8FlWHIzCQ29xoExGSpz1knAkdeF9 saAZ8Daba5pHNGr8JYnPWhn2U90pvz+wju/g1HqfwXE1mf6pUd8AwZAOsOZ+Kcl05cIH COlvKRpFlg2LzjjAEyQY9+uVOgqhimf2aZEqZGuNm38TeykZuhcwDOkxzW3um9bMcUfR 9fvchKAvqmhtBmvFt4S3DzjPmZr9m9MHSSzffzFO1iETqm4aghFvs41yE7oGCsNWZ8ct sA4rf3p1jvpgyxT5OAOeP8FoE8JszjNyNyOIkmn4i7/fhVlj6Ufaia9Ixr2EJs0OtGtZ ZvcA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849675; x=1713454475; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=78qhJxH7WL0nlMptGJcY4x6plz30gPKCEiGq2oEox8s=; b=gaTxCm4zoUB5p4PIQ2Mr8kwJSm8eKPIJpWbiEcXcfYNY2zJBj4tat5/5cA6/nJ7Q33 ZvUzkZFd5g0zcz/+DRJNEuIzK/1HDcm8M5uIbpweZvz7sPF/Z0vpaWWzq+Fvo8vR3dpb OxpAYp9hAT2onpDLH9Ar0h9Ab2s43mGcLnErBNzrQd+LlwzF32do5ZP7XDlkdVt5KAjC LeCTtLE/OYHqR/J6zl1gKp3v48sva3SkNHvj10qRYjeZ1pmLNu24we4RS8boXmR0pRwb 6KOHzoDhdgBQ0QUGRTPVv2/vH9yIPmknNtDKLVplWlvn/9OB8DAMnWe01I3B6x02EBIB 8B5A== X-Gm-Message-State: AOJu0YzAp3mOzyRbU4WZwKh1HNRPS2fAR2We7AKLTlDxJRqZOn725o5S lm8a8f+8ESaYQDo9E9JXo4xU2XnUT3tzSupmu62PnN7cjgIW/PtdLaRcNhpUfViu5+1oF1q2cwX J X-Google-Smtp-Source: AGHT+IEQHa76hHPsIUmcAoVcXx5zdcGqu9b3gVGpY+Tq0t+KXO1xRDX40O3yy6m+zIhusbz7V/SwMw== X-Received: by 2002:a6b:f312:0:b0:7d5:de23:13a9 with SMTP id m18-20020a6bf312000000b007d5de2313a9mr156663ioh.1.1712849675161; Thu, 11 Apr 2024 08:34:35 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.34.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:34:33 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 102/437] lib: convert to read/write iterators Date: Thu, 11 Apr 2024 09:14:02 -0600 Message-ID: <20240411153126.16201-103-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- lib/dynamic_debug.c | 5 +++-- lib/kunit/debugfs.c | 13 ++++++------- lib/test_firmware.c | 10 ++++------ lib/xz/xz_dec_test.c | 9 ++++----- 4 files changed, 17 insertions(+), 20 deletions(-) diff --git a/lib/dynamic_debug.c b/lib/dynamic_debug.c index c78f335fa981..534ad9218557 100644 --- a/lib/dynamic_debug.c +++ b/lib/dynamic_debug.c @@ -1022,6 +1022,7 @@ static ssize_t ddebug_proc_write(struct file *file, c= onst char __user *ubuf, *offp +=3D len; return len; } +FOPS_WRITE_ITER_HELPER(ddebug_proc_write); =20 /* * Set the iterator to point to the first _ddebug object @@ -1182,10 +1183,10 @@ static int ddebug_proc_open(struct inode *inode, st= ruct file *file) static const struct file_operations ddebug_proc_fops =3D { .owner =3D THIS_MODULE, .open =3D ddebug_proc_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D seq_release_private, - .write =3D ddebug_proc_write + .write_iter =3D ddebug_proc_write_iter }; =20 static const struct proc_ops proc_fops =3D { diff --git a/lib/kunit/debugfs.c b/lib/kunit/debugfs.c index d548750a325a..ea7be601cf9e 100644 --- a/lib/kunit/debugfs.c +++ b/lib/kunit/debugfs.c @@ -139,28 +139,27 @@ static int debugfs_run_open(struct inode *inode, stru= ct file *file) * * Note: what is written to this file will not be saved. */ -static ssize_t debugfs_run(struct file *file, - const char __user *buf, size_t count, loff_t *ppos) +static ssize_t debugfs_run(struct kiocb *iocb, struct iov_iter *from) { - struct inode *f_inode =3D file->f_inode; + struct inode *f_inode =3D iocb->ki_filp->f_inode; struct kunit_suite *suite =3D (struct kunit_suite *) f_inode->i_private; =20 __kunit_test_suites_init(&suite, 1); =20 - return count; + return iov_iter_count(from); } =20 static const struct file_operations debugfs_results_fops =3D { .open =3D debugfs_results_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D debugfs_release, }; =20 static const struct file_operations debugfs_run_fops =3D { .open =3D debugfs_run_open, - .read =3D seq_read, - .write =3D debugfs_run, + .read_iter =3D seq_read_iter, + .write_iter =3D debugfs_run, .llseek =3D seq_lseek, .release =3D debugfs_release, }; diff --git a/lib/test_firmware.c b/lib/test_firmware.c index 9cfdcd6d21db..face875a52e2 100644 --- a/lib/test_firmware.c +++ b/lib/test_firmware.c @@ -147,23 +147,21 @@ static struct test_firmware_upload *upload_lookup_nam= e(const char *name) return NULL; } =20 -static ssize_t test_fw_misc_read(struct file *f, char __user *buf, - size_t size, loff_t *offset) +static ssize_t test_fw_misc_read(struct kiocb *iocb, struct iov_iter *to) { ssize_t rc =3D 0; =20 mutex_lock(&test_fw_mutex); if (test_firmware) - rc =3D simple_read_from_buffer(buf, size, offset, - test_firmware->data, - test_firmware->size); + rc =3D simple_copy_to_iter(test_firmware->data, &iocb->ki_pos, + test_firmware->size, to); mutex_unlock(&test_fw_mutex); return rc; } =20 static const struct file_operations test_fw_fops =3D { .owner =3D THIS_MODULE, - .read =3D test_fw_misc_read, + .read_iter =3D test_fw_misc_read, }; =20 static void __test_release_all_firmware(void) diff --git a/lib/xz/xz_dec_test.c b/lib/xz/xz_dec_test.c index da28a19d6c98..42dc077e247b 100644 --- a/lib/xz/xz_dec_test.c +++ b/lib/xz/xz_dec_test.c @@ -99,9 +99,9 @@ static int xz_dec_test_release(struct inode *i, struct fi= le *f) * The .xz file must have exactly one Stream and no Stream Padding. The da= ta * after the first Stream is considered to be garbage. */ -static ssize_t xz_dec_test_write(struct file *file, const char __user *buf, - size_t size, loff_t *pos) +static ssize_t xz_dec_test_write(struct kiocb *iocb, struct iov_iter *from) { + size_t size =3D iov_iter_count(from); size_t remaining; =20 if (ret !=3D XZ_OK) { @@ -122,10 +122,9 @@ static ssize_t xz_dec_test_write(struct file *file, co= nst char __user *buf, if (buffers.in_pos =3D=3D buffers.in_size) { buffers.in_pos =3D 0; buffers.in_size =3D min(remaining, sizeof(buffer_in)); - if (copy_from_user(buffer_in, buf, buffers.in_size)) + if (!copy_from_iter_full(buffer_in, buffers.in_size, from)) return -EFAULT; =20 - buf +=3D buffers.in_size; remaining -=3D buffers.in_size; } =20 @@ -179,7 +178,7 @@ static int __init xz_dec_test_init(void) .owner =3D THIS_MODULE, .open =3D &xz_dec_test_open, .release =3D &xz_dec_test_release, - .write =3D &xz_dec_test_write + .write_iter =3D &xz_dec_test_write }; =20 state =3D xz_dec_init(XZ_PREALLOC, DICT_MAX); --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-il1-f177.google.com (mail-il1-f177.google.com [209.85.166.177]) (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 E985F13AD17 for ; Thu, 11 Apr 2024 15:34:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.177 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849679; cv=none; b=YgoBaq9Lq/PCt+AO1ga6aaJKYIIAybhZgtj7jsEaJ8HVGCninmm6G1owQzPmtKphHIaOdFZXA+UnDjLSiHbADeskUXXD6Su4b0RKgNnntTRuxibobA2GV6CeYKDh2YkGJNcpNMdvKo9ZBhoI5xLBnGbZrJAffl8/Ev35GcB0h0o= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849679; c=relaxed/simple; bh=9iwBnyjscqkNxKDG/Io1VkU/8gPoyQWeh181FlHiehg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=CN38fJuhrB54B66UABMpJjJENbnMDPRXxpgqhco+9X3/nNYcaFhb9Ph3Rl2cdL/gFIektv5VqXYucL5k4jOG8KobHZdneAeYyy3NLdohw64vVZBbp6QA2FRCngzmxca2xz1aKP12EZXBbhkq9ruKovY00DSLfctxMAr7h1V2Odk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=v3n65eDz; arc=none smtp.client-ip=209.85.166.177 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="v3n65eDz" Received: by mail-il1-f177.google.com with SMTP id e9e14a558f8ab-36a1c0bf9faso4608125ab.1 for ; Thu, 11 Apr 2024 08:34:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849676; x=1713454476; 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=xmU1aZy/lE4HT3Yy01T5BIJ8zKUrwZbC57s7AX7t8Gw=; b=v3n65eDzvlauIwO4/kqnATSP8IpRn4TddtXtnF+tlVGQooah66g0OLua2ZTzIOiESA L0e42xv9LUV+1Me0nFyRh2e9Y8iTHBXKKCh3pZQL4gJD7O5tw7bK/e5jTzRlDFZSSomH M7sKIarpuwBuOdXkLp/X971EVRquql59Uo2hzZiuaoibvjhSoQDGdhDQN4i1s9Irxv/b FbQ0KDZH07ebeUZEvhfGvVJuT+81TguuzBcj+2iy6QIISNcuXuLWjcMdbApuM5UPdb8r 7RkfOMuNRIi0ZcOkAgSd8VH4FZnCDrHv08MknrHxTqTtlna9XV28BCY8bpcfinFsyg/2 ddew== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849676; x=1713454476; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=xmU1aZy/lE4HT3Yy01T5BIJ8zKUrwZbC57s7AX7t8Gw=; b=OBmgWuOsmp0/TW3ISTITIapl6TXzCLeP/8rEoYbIrx9Dsga04rBHqUXHRo2de3ATu4 OYI/fnk2zmrfNnR5Pq8eqC22Wtpf0QM9AaQbHezOaApAhBWCLYVk+Us5RVK1AseVFJ5P TuURlkOlZksFnykMEtc97dm/U5rGHATfTe5Rk3+d338G7lKtAAbXMFm/tclwQgRqQpOW okHDLX7/t8m85AYRh4Mu/9XK4yv7kniRJCfYH7vMYIHFZHRglmpnVA023wfy1DscXvLV FxYWkBX3oaTioBOuI6taTSSpLZtNX89wZHJZUeTDgXlPDNvpLDuPBm7HyHJ4FmW/EcLs x1Og== X-Gm-Message-State: AOJu0YwnCsG/Wo3lLxqfogm7Y+5EuJrkqRiO4ZbdJlsn6jIpj9GJPEvE fMhBBIh2oYvyPB30fiffl2IjQ207+n4HXqaBZXiq0/ojyYYMjmnf/t9FqkPIQUjxlvEiV7Oiivj l X-Google-Smtp-Source: AGHT+IEyy+KST9s6pnfvsh0GKBVt/uD4oYpTJ+yGYVQ0R5EhzWSpgd8gsHxlJHxZQ1uK2XiUjk8lmA== X-Received: by 2002:a05:6e02:1fcb:b0:368:efa4:be12 with SMTP id dj11-20020a056e021fcb00b00368efa4be12mr7845214ilb.3.1712849676691; Thu, 11 Apr 2024 08:34:36 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.34.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:34:35 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 103/437] ipc: convert to read/write iterators Date: Thu, 11 Apr 2024 09:14:03 -0600 Message-ID: <20240411153126.16201-104-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- ipc/mqueue.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/ipc/mqueue.c b/ipc/mqueue.c index 5eea4dc0509e..812b03cf4273 100644 --- a/ipc/mqueue.c +++ b/ipc/mqueue.c @@ -632,10 +632,9 @@ static int mqueue_unlink(struct inode *dir, struct den= try *dentry) * that are interesting from user point of view and aren't accessible * through std routines) */ -static ssize_t mqueue_read_file(struct file *filp, char __user *u_data, - size_t count, loff_t *off) +static ssize_t mqueue_read_file(struct kiocb *iocb, struct iov_iter *to) { - struct inode *inode =3D file_inode(filp); + struct inode *inode =3D file_inode(iocb->ki_filp); struct mqueue_inode_info *info =3D MQUEUE_I(inode); char buffer[FILENT_SIZE]; ssize_t ret; @@ -652,8 +651,7 @@ static ssize_t mqueue_read_file(struct file *filp, char= __user *u_data, spin_unlock(&info->lock); buffer[sizeof(buffer)-1] =3D '\0'; =20 - ret =3D simple_read_from_buffer(u_data, count, off, buffer, - strlen(buffer)); + ret =3D simple_copy_to_iter(buffer, &iocb->ki_pos, strlen(buffer), to); if (ret <=3D 0) return ret; =20 @@ -1663,7 +1661,7 @@ static const struct inode_operations mqueue_dir_inode= _operations =3D { static const struct file_operations mqueue_file_operations =3D { .flush =3D mqueue_flush_file, .poll =3D mqueue_poll_file, - .read =3D mqueue_read_file, + .read_iter =3D mqueue_read_file, .llseek =3D default_llseek, }; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f43.google.com (mail-io1-f43.google.com [209.85.166.43]) (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 8860014C587 for ; Thu, 11 Apr 2024 15:34:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849682; cv=none; b=c7Z6kteCEOrUeNI7CojNue+6/TStMiViMaw6djWBScwH7k5rbiM2STKueD8GouUZ+nbdxoHXjr265fAadEIsdR3veV3n6okeMyeW5PK4lTy0+kKov5anmFxFeIuo1qHRoeb+Sdw16ZUmrQhHFckUK9vzX6i2uOfpbgvf2274fos= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849682; c=relaxed/simple; bh=NhSfXW2oABhTNdGwOFnliqKjszqjriReAcun5frS664=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=bV7rmcbD8I7r2La2QC7oG+vda+s2lIwLBDENjiUZ1V8+GO8i+Gv+nFyxdk9fJnjdwirsMHjcMVMoyqcrrI9WJp7UGCEAhY24YCXqi3hQ8iK2oBOSlRh+vnoEHCgWl47m7lF1rUfDbIFaJ8W6DBQTo1GpOnqiM/wUz9rkeoi5D4c= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=qAHnMrBR; arc=none smtp.client-ip=209.85.166.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="qAHnMrBR" Received: by mail-io1-f43.google.com with SMTP id ca18e2360f4ac-7d67d1073easo9761239f.0 for ; Thu, 11 Apr 2024 08:34:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849678; x=1713454478; 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=9UYMuWg323QkzNbb/c+w4UB/Y3iWyfQoEJqm+Hdo/Ls=; b=qAHnMrBREJw87IwRrcQyKW253vPAH7NEjPQ7h3EeRkdc6Edw6oOnvonZRxP9egv8IL IASI5axYe4CZ8xvCcgT/EqnCfp5aQTQZLfu9EQfD7IbprEHN1UzC++VH1ACaLBhyrD01 gy6eqDhgkJmLt1DKQUdlK3FRBcS0QkTpHDOC3eYsFnkw/9/Z6r0kNeYJ5UHFlYl3fK2+ 3SVN5rPuu8N5Yq5tPp/E5XdipAJ1JTx3b+KVHFjxZFhKHuOdFmMQbq2dZN0p4rhkh2Yu dPezArGyW0G+7qtz6qjDQ57VHjRbT4AFWlzabW8r/pslWTin2ijInDo3Vb2jm95vzeBv xXZg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849678; x=1713454478; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=9UYMuWg323QkzNbb/c+w4UB/Y3iWyfQoEJqm+Hdo/Ls=; b=IJUqcnEFZxe70QIqqu6eyt3m9icXh9Q0hEyQnw8UKOzxqGaRc0LZv8F1TQADEyrPNX bhlKvMc9ngEUFqTpDqOzdizTcs5UhLZuy8cGa23CCaX84JDyW8JZmdcT3goPnPeLE094 z2qnZwvlK/ZUv3SQzvJRnzGM/Hj7k0dVVSZZw0aRmiXpMeojnyLYJgd/Eou8ihESlUZ8 R3blc34yL8yiQU6a88XsuUaiJdvxt248I+imfUlPf+WpAliyXU8aBBS+GIOYLzQq1s6s e0BrFOpnCuo0fs65CXhHMsJ8axzZAq0VkVnRwE23wPlVER0r1E8+3i4iRjM0V7r7GQ1k w2fQ== X-Gm-Message-State: AOJu0YzNQ1VmEERv8ZwYVyLF0VD6TbrccCJz/MFKKUK7CZq1Aam5DK/u l8cutb8m5dlxvdOBDUSX3q+wKuq16JTxVb34P0CdmbbPACfh8xBIFFMdeNNAyDc62Lut/++GiH5 l X-Google-Smtp-Source: AGHT+IHKQRgZDmFHIxQT9xgOjB9yiXbS/c6/gQxIipFMUDyIeccdzYFCSfRvvdOI5NdoeIkwuyiw4w== X-Received: by 2002:a6b:7b05:0:b0:7d6:60dc:bc8e with SMTP id l5-20020a6b7b05000000b007d660dcbc8emr189975iop.1.1712849677928; Thu, 11 Apr 2024 08:34:37 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.34.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:34:37 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 104/437] drivers/accel: convert to read/write iterators Date: Thu, 11 Apr 2024 09:14:04 -0600 Message-ID: <20240411153126.16201-105-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/accel/habanalabs/common/debugfs.c | 307 +++++++++---------- drivers/accel/habanalabs/common/habanalabs.h | 3 +- drivers/accel/ivpu/ivpu_debugfs.c | 84 +++-- 3 files changed, 183 insertions(+), 211 deletions(-) diff --git a/drivers/accel/habanalabs/common/debugfs.c b/drivers/accel/haba= nalabs/common/debugfs.c index b1c88d1837d9..350dcfc5300e 100644 --- a/drivers/accel/habanalabs/common/debugfs.c +++ b/drivers/accel/habanalabs/common/debugfs.c @@ -403,16 +403,16 @@ static int userptr_lookup_show(struct seq_file *s, vo= id *data) return 0; } =20 -static ssize_t userptr_lookup_write(struct file *file, const char __user *= buf, - size_t count, loff_t *f_pos) +static ssize_t userptr_lookup_write(struct kiocb *iocb, struct iov_iter *f= rom) { - struct seq_file *s =3D file->private_data; + struct seq_file *s =3D iocb->ki_filp->private_data; struct hl_debugfs_entry *entry =3D s->private; struct hl_dbg_device_entry *dev_entry =3D entry->dev_entry; + size_t count =3D iov_iter_count(from); ssize_t rc; u64 value; =20 - rc =3D kstrtoull_from_user(buf, count, 16, &value); + rc =3D kstrtoull_from_iter(from, count, 16, &value); if (rc) return rc; =20 @@ -477,20 +477,20 @@ static int mmu_show(struct seq_file *s, void *data) return 0; } =20 -static ssize_t mmu_asid_va_write(struct file *file, const char __user *buf, - size_t count, loff_t *f_pos) +static ssize_t mmu_asid_va_write(struct kiocb *iocb, struct iov_iter *from) { - struct seq_file *s =3D file->private_data; + struct seq_file *s =3D iocb->ki_filp->private_data; struct hl_debugfs_entry *entry =3D s->private; struct hl_dbg_device_entry *dev_entry =3D entry->dev_entry; struct hl_device *hdev =3D dev_entry->hdev; + size_t count =3D iov_iter_count(from); char kbuf[MMU_KBUF_SIZE] =3D {0}; char *c; ssize_t rc; =20 if (count > sizeof(kbuf) - 1) goto err; - if (copy_from_user(kbuf, buf, count)) + if (!copy_from_iter_full(kbuf, count, from)) goto err; kbuf[count] =3D 0; =20 @@ -538,21 +538,21 @@ static int mmu_ack_error(struct seq_file *s, void *da= ta) return -EINVAL; } =20 -static ssize_t mmu_ack_error_value_write(struct file *file, - const char __user *buf, - size_t count, loff_t *f_pos) +static ssize_t mmu_ack_error_value_write(struct kiocb *iocb, + struct iov_iter *from) { - struct seq_file *s =3D file->private_data; + struct seq_file *s =3D iocb->ki_filp->private_data; struct hl_debugfs_entry *entry =3D s->private; struct hl_dbg_device_entry *dev_entry =3D entry->dev_entry; struct hl_device *hdev =3D dev_entry->hdev; + size_t count =3D iov_iter_count(from); char kbuf[MMU_KBUF_SIZE] =3D {0}; ssize_t rc; =20 if (count > sizeof(kbuf) - 1) goto err; =20 - if (copy_from_user(kbuf, buf, count)) + if (!copy_from_iter(kbuf, count, from)) goto err; =20 kbuf[count] =3D 0; @@ -607,10 +607,9 @@ static int engines_show(struct seq_file *s, void *data) return 0; } =20 -static ssize_t hl_memory_scrub(struct file *f, const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t hl_memory_scrub(struct kiocb *iocb, struct iov_iter *from) { - struct hl_dbg_device_entry *entry =3D file_inode(f)->i_private; + struct hl_dbg_device_entry *entry =3D file_inode(iocb->ki_filp)->i_privat= e; struct hl_device *hdev =3D entry->hdev; u64 val =3D hdev->memory_scrub_val; int rc; @@ -637,7 +636,7 @@ static ssize_t hl_memory_scrub(struct file *f, const ch= ar __user *buf, =20 if (rc) return rc; - return count; + return iov_iter_count(from); } =20 static bool hl_is_device_va(struct hl_device *hdev, u64 addr) @@ -839,10 +838,9 @@ static int hl_access_mem(struct hl_device *hdev, u64 a= ddr, u64 *val, return rc; } =20 -static ssize_t hl_data_read32(struct file *f, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t hl_data_read32(struct kiocb *iocb, struct iov_iter *to) { - struct hl_dbg_device_entry *entry =3D file_inode(f)->i_private; + struct hl_dbg_device_entry *entry =3D file_inode(iocb->ki_filp)->i_privat= e; struct hl_device *hdev =3D entry->hdev; u64 value64, addr =3D entry->addr; char tmp_buf[32]; @@ -854,7 +852,7 @@ static ssize_t hl_data_read32(struct file *f, char __us= er *buf, return 0; } =20 - if (*ppos) + if (iocb->ki_pos) return 0; =20 rc =3D hl_access_mem(hdev, addr, &value64, DEBUGFS_READ32); @@ -864,14 +862,13 @@ static ssize_t hl_data_read32(struct file *f, char __= user *buf, val =3D value64; /* downcast back to 32 */ =20 sprintf(tmp_buf, "0x%08x\n", val); - return simple_read_from_buffer(buf, count, ppos, tmp_buf, - strlen(tmp_buf)); + return simple_copy_to_iter(tmp_buf, &iocb->ki_pos, strlen(tmp_buf), to); } =20 -static ssize_t hl_data_write32(struct file *f, const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t hl_data_write32(struct kiocb *iocb, struct iov_iter *from) { - struct hl_dbg_device_entry *entry =3D file_inode(f)->i_private; + struct hl_dbg_device_entry *entry =3D file_inode(iocb->ki_filp)->i_privat= e; + size_t count =3D iov_iter_count(from); struct hl_device *hdev =3D entry->hdev; u64 value64, addr =3D entry->addr; u32 value; @@ -882,7 +879,7 @@ static ssize_t hl_data_write32(struct file *f, const ch= ar __user *buf, return 0; } =20 - rc =3D kstrtouint_from_user(buf, count, 16, &value); + rc =3D kstrtouint_from_iter(from, count, 16, &value); if (rc) return rc; =20 @@ -894,10 +891,9 @@ static ssize_t hl_data_write32(struct file *f, const c= har __user *buf, return count; } =20 -static ssize_t hl_data_read64(struct file *f, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t hl_data_read64(struct kiocb *iocb, struct iov_iter *to) { - struct hl_dbg_device_entry *entry =3D file_inode(f)->i_private; + struct hl_dbg_device_entry *entry =3D file_inode(iocb->ki_filp)->i_privat= e; struct hl_device *hdev =3D entry->hdev; u64 addr =3D entry->addr; char tmp_buf[32]; @@ -909,7 +905,7 @@ static ssize_t hl_data_read64(struct file *f, char __us= er *buf, return 0; } =20 - if (*ppos) + if (iocb->ki_pos) return 0; =20 rc =3D hl_access_mem(hdev, addr, &val, DEBUGFS_READ64); @@ -917,14 +913,13 @@ static ssize_t hl_data_read64(struct file *f, char __= user *buf, return rc; =20 sprintf(tmp_buf, "0x%016llx\n", val); - return simple_read_from_buffer(buf, count, ppos, tmp_buf, - strlen(tmp_buf)); + return simple_copy_to_iter(tmp_buf, &iocb->ki_pos, strlen(tmp_buf), to); } =20 -static ssize_t hl_data_write64(struct file *f, const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t hl_data_write64(struct kiocb *iocb, struct iov_iter *from) { - struct hl_dbg_device_entry *entry =3D file_inode(f)->i_private; + struct hl_dbg_device_entry *entry =3D file_inode(iocb->ki_filp)->i_privat= e; + size_t count =3D iov_iter_count(from); struct hl_device *hdev =3D entry->hdev; u64 addr =3D entry->addr; u64 value; @@ -935,7 +930,7 @@ static ssize_t hl_data_write64(struct file *f, const ch= ar __user *buf, return 0; } =20 - rc =3D kstrtoull_from_user(buf, count, 16, &value); + rc =3D kstrtoull_from_iter(from, count, 16, &value); if (rc) return rc; =20 @@ -946,10 +941,10 @@ static ssize_t hl_data_write64(struct file *f, const = char __user *buf, return count; } =20 -static ssize_t hl_dma_size_write(struct file *f, const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t hl_dma_size_write(struct kiocb *iocb, struct iov_iter *from) { - struct hl_dbg_device_entry *entry =3D file_inode(f)->i_private; + struct hl_dbg_device_entry *entry =3D file_inode(iocb->ki_filp)->i_privat= e; + size_t count =3D iov_iter_count(from); struct hl_device *hdev =3D entry->hdev; u64 addr =3D entry->addr; ssize_t rc; @@ -959,7 +954,7 @@ static ssize_t hl_dma_size_write(struct file *f, const = char __user *buf, dev_warn_ratelimited(hdev->dev, "Can't DMA during reset\n"); return 0; } - rc =3D kstrtouint_from_user(buf, count, 16, &size); + rc =3D kstrtouint_from_iter(from, count, 16, &size); if (rc) return rc; =20 @@ -1003,10 +998,11 @@ static ssize_t hl_dma_size_write(struct file *f, con= st char __user *buf, return count; } =20 -static ssize_t hl_monitor_dump_trigger(struct file *f, const char __user *= buf, - size_t count, loff_t *ppos) +static ssize_t hl_monitor_dump_trigger(struct kiocb *iocb, + struct iov_iter *from) { - struct hl_dbg_device_entry *entry =3D file_inode(f)->i_private; + struct hl_dbg_device_entry *entry =3D file_inode(iocb->ki_filp)->i_privat= e; + size_t count =3D iov_iter_count(from); struct hl_device *hdev =3D entry->hdev; u32 size, trig; ssize_t rc; @@ -1015,7 +1011,7 @@ static ssize_t hl_monitor_dump_trigger(struct file *f= , const char __user *buf, dev_warn_ratelimited(hdev->dev, "Can't dump monitors during reset\n"); return 0; } - rc =3D kstrtouint_from_user(buf, count, 10, &trig); + rc =3D kstrtouint_from_iter(from, count, 10, &trig); if (rc) return rc; =20 @@ -1047,15 +1043,14 @@ static ssize_t hl_monitor_dump_trigger(struct file = *f, const char __user *buf, return count; } =20 -static ssize_t hl_get_power_state(struct file *f, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t hl_get_power_state(struct kiocb *iocb, struct iov_iter *to) { - struct hl_dbg_device_entry *entry =3D file_inode(f)->i_private; + struct hl_dbg_device_entry *entry =3D file_inode(iocb->ki_filp)->i_privat= e; struct hl_device *hdev =3D entry->hdev; char tmp_buf[200]; int i; =20 - if (*ppos) + if (iocb->ki_pos) return 0; =20 if (hdev->pdev->current_state =3D=3D PCI_D0) @@ -1067,19 +1062,18 @@ static ssize_t hl_get_power_state(struct file *f, c= har __user *buf, =20 sprintf(tmp_buf, "current power state: %d\n1 - D0\n2 - D3hot\n3 - Unknown\n", i); - return simple_read_from_buffer(buf, count, ppos, tmp_buf, - strlen(tmp_buf)); + return simple_copy_to_iter(tmp_buf, &iocb->ki_pos, strlen(tmp_buf), to); } =20 -static ssize_t hl_set_power_state(struct file *f, const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t hl_set_power_state(struct kiocb *iocb, struct iov_iter *fro= m) { - struct hl_dbg_device_entry *entry =3D file_inode(f)->i_private; + struct hl_dbg_device_entry *entry =3D file_inode(iocb->ki_filp)->i_privat= e; + size_t count =3D iov_iter_count(from); struct hl_device *hdev =3D entry->hdev; u32 value; ssize_t rc; =20 - rc =3D kstrtouint_from_user(buf, count, 10, &value); + rc =3D kstrtouint_from_iter(from, count, 10, &value); if (rc) return rc; =20 @@ -1101,16 +1095,15 @@ static ssize_t hl_set_power_state(struct file *f, c= onst char __user *buf, return count; } =20 -static ssize_t hl_i2c_data_read(struct file *f, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t hl_i2c_data_read(struct kiocb *iocb, struct iov_iter *to) { - struct hl_dbg_device_entry *entry =3D file_inode(f)->i_private; + struct hl_dbg_device_entry *entry =3D file_inode(iocb->ki_filp)->i_privat= e; struct hl_device *hdev =3D entry->hdev; char tmp_buf[32]; u64 val; ssize_t rc; =20 - if (*ppos) + if (iocb->ki_pos) return 0; =20 rc =3D hl_debugfs_i2c_read(hdev, entry->i2c_bus, entry->i2c_addr, @@ -1123,21 +1116,18 @@ static ssize_t hl_i2c_data_read(struct file *f, cha= r __user *buf, } =20 sprintf(tmp_buf, "%#02llx\n", val); - rc =3D simple_read_from_buffer(buf, count, ppos, tmp_buf, - strlen(tmp_buf)); - - return rc; + return simple_copy_to_iter(tmp_buf, &iocb->ki_pos, strlen(tmp_buf), to); } =20 -static ssize_t hl_i2c_data_write(struct file *f, const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t hl_i2c_data_write(struct kiocb *iocb, struct iov_iter *from) { - struct hl_dbg_device_entry *entry =3D file_inode(f)->i_private; + struct hl_dbg_device_entry *entry =3D file_inode(iocb->ki_filp)->i_privat= e; + size_t count =3D iov_iter_count(from); struct hl_device *hdev =3D entry->hdev; u64 value; ssize_t rc; =20 - rc =3D kstrtou64_from_user(buf, count, 16, &value); + rc =3D kstrtou64_from_iter(from, count, 16, &value); if (rc) return rc; =20 @@ -1153,15 +1143,15 @@ static ssize_t hl_i2c_data_write(struct file *f, co= nst char __user *buf, return count; } =20 -static ssize_t hl_led0_write(struct file *f, const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t hl_led0_write(struct kiocb *iocb, struct iov_iter *from) { - struct hl_dbg_device_entry *entry =3D file_inode(f)->i_private; + struct hl_dbg_device_entry *entry =3D file_inode(iocb->ki_filp)->i_privat= e; + size_t count =3D iov_iter_count(from); struct hl_device *hdev =3D entry->hdev; u32 value; ssize_t rc; =20 - rc =3D kstrtouint_from_user(buf, count, 10, &value); + rc =3D kstrtouint_from_iter(from, count, 10, &value); if (rc) return rc; =20 @@ -1172,15 +1162,15 @@ static ssize_t hl_led0_write(struct file *f, const = char __user *buf, return count; } =20 -static ssize_t hl_led1_write(struct file *f, const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t hl_led1_write(struct kiocb *iocb, struct iov_iter *from) { - struct hl_dbg_device_entry *entry =3D file_inode(f)->i_private; + struct hl_dbg_device_entry *entry =3D file_inode(iocb->ki_filp)->i_privat= e; + size_t count =3D iov_iter_count(from); struct hl_device *hdev =3D entry->hdev; u32 value; ssize_t rc; =20 - rc =3D kstrtouint_from_user(buf, count, 10, &value); + rc =3D kstrtouint_from_iter(from, count, 10, &value); if (rc) return rc; =20 @@ -1191,15 +1181,15 @@ static ssize_t hl_led1_write(struct file *f, const = char __user *buf, return count; } =20 -static ssize_t hl_led2_write(struct file *f, const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t hl_led2_write(struct kiocb *iocb, struct iov_iter *from) { - struct hl_dbg_device_entry *entry =3D file_inode(f)->i_private; + struct hl_dbg_device_entry *entry =3D file_inode(iocb->ki_filp)->i_privat= e; + size_t count =3D iov_iter_count(from); struct hl_device *hdev =3D entry->hdev; u32 value; ssize_t rc; =20 - rc =3D kstrtouint_from_user(buf, count, 10, &value); + rc =3D kstrtouint_from_iter(from, count, 10, &value); if (rc) return rc; =20 @@ -1210,26 +1200,25 @@ static ssize_t hl_led2_write(struct file *f, const = char __user *buf, return count; } =20 -static ssize_t hl_device_read(struct file *f, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t hl_device_read(struct kiocb *iocb, struct iov_iter *to) { static const char *help =3D "Valid values: disable, enable, suspend, resume, cpu_timeout\n"; - return simple_read_from_buffer(buf, count, ppos, help, strlen(help)); + return simple_copy_to_iter(help, &iocb->ki_pos, strlen(help), to); } =20 -static ssize_t hl_device_write(struct file *f, const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t hl_device_write(struct kiocb *iocb, struct iov_iter *from) { - struct hl_dbg_device_entry *entry =3D file_inode(f)->i_private; + struct hl_dbg_device_entry *entry =3D file_inode(iocb->ki_filp)->i_privat= e; struct hl_device *hdev =3D entry->hdev; + size_t count =3D iov_iter_count(from); char data[30] =3D {0}; =20 /* don't allow partial writes */ - if (*ppos !=3D 0) + if (iocb->ki_pos) return 0; =20 - simple_write_to_buffer(data, 29, ppos, buf, count); + simple_copy_from_iter(data, &iocb->ki_pos, 29, from); =20 if (strncmp("disable", data, strlen("disable")) =3D=3D 0) { hdev->disabled =3D true; @@ -1250,43 +1239,36 @@ static ssize_t hl_device_write(struct file *f, cons= t char __user *buf, return count; } =20 -static ssize_t hl_clk_gate_read(struct file *f, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t hl_clk_gate_read(struct kiocb *iocb, struct iov_iter *to) { return 0; } =20 -static ssize_t hl_clk_gate_write(struct file *f, const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t hl_clk_gate_write(struct kiocb *iocb, struct iov_iter *from) { - return count; + return iov_iter_count(from); } =20 -static ssize_t hl_stop_on_err_read(struct file *f, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t hl_stop_on_err_read(struct kiocb *iocb, struct iov_iter *to) { - struct hl_dbg_device_entry *entry =3D file_inode(f)->i_private; + struct hl_dbg_device_entry *entry =3D file_inode(iocb->ki_filp)->i_privat= e; struct hl_device *hdev =3D entry->hdev; char tmp_buf[200]; - ssize_t rc; =20 if (!hdev->asic_prop.configurable_stop_on_err) return -EOPNOTSUPP; =20 - if (*ppos) + if (iocb->ki_pos) return 0; =20 sprintf(tmp_buf, "%d\n", hdev->stop_on_err); - rc =3D simple_read_from_buffer(buf, strlen(tmp_buf) + 1, ppos, tmp_buf, - strlen(tmp_buf) + 1); - - return rc; + return simple_copy_to_iter(tmp_buf, &iocb->ki_pos, strlen(tmp_buf) + 1, t= o); } =20 -static ssize_t hl_stop_on_err_write(struct file *f, const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t hl_stop_on_err_write(struct kiocb *iocb, struct iov_iter *f= rom) { - struct hl_dbg_device_entry *entry =3D file_inode(f)->i_private; + struct hl_dbg_device_entry *entry =3D file_inode(iocb->ki_filp)->i_privat= e; + size_t count =3D iov_iter_count(from); struct hl_device *hdev =3D entry->hdev; u32 value; ssize_t rc; @@ -1300,7 +1282,7 @@ static ssize_t hl_stop_on_err_write(struct file *f, c= onst char __user *buf, return 0; } =20 - rc =3D kstrtouint_from_user(buf, count, 10, &value); + rc =3D kstrtouint_from_iter(from, count, 10, &value); if (rc) return rc; =20 @@ -1311,10 +1293,10 @@ static ssize_t hl_stop_on_err_write(struct file *f,= const char __user *buf, return count; } =20 -static ssize_t hl_security_violations_read(struct file *f, char __user *bu= f, - size_t count, loff_t *ppos) +static ssize_t hl_security_violations_read(struct kiocb *iocb, + struct iov_iter *to) { - struct hl_dbg_device_entry *entry =3D file_inode(f)->i_private; + struct hl_dbg_device_entry *entry =3D file_inode(iocb->ki_filp)->i_privat= e; struct hl_device *hdev =3D entry->hdev; =20 hdev->asic_funcs->ack_protection_bits_errors(hdev); @@ -1322,35 +1304,34 @@ static ssize_t hl_security_violations_read(struct f= ile *f, char __user *buf, return 0; } =20 -static ssize_t hl_state_dump_read(struct file *f, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t hl_state_dump_read(struct kiocb *iocb, struct iov_iter *to) { - struct hl_dbg_device_entry *entry =3D file_inode(f)->i_private; + struct hl_dbg_device_entry *entry =3D file_inode(iocb->ki_filp)->i_privat= e; ssize_t rc; =20 down_read(&entry->state_dump_sem); if (!entry->state_dump[entry->state_dump_head]) rc =3D 0; else - rc =3D simple_read_from_buffer( - buf, count, ppos, + rc =3D simple_copy_to_iter( entry->state_dump[entry->state_dump_head], - strlen(entry->state_dump[entry->state_dump_head])); + &iocb->ki_pos, + strlen(entry->state_dump[entry->state_dump_head]), to); up_read(&entry->state_dump_sem); =20 return rc; } =20 -static ssize_t hl_state_dump_write(struct file *f, const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t hl_state_dump_write(struct kiocb *iocb, struct iov_iter *fr= om) { - struct hl_dbg_device_entry *entry =3D file_inode(f)->i_private; + struct hl_dbg_device_entry *entry =3D file_inode(iocb->ki_filp)->i_privat= e; + size_t count =3D iov_iter_count(from); struct hl_device *hdev =3D entry->hdev; ssize_t rc; u32 size; int i; =20 - rc =3D kstrtouint_from_user(buf, count, 10, &size); + rc =3D kstrtouint_from_iter(from, count, 10, &size); if (rc) return rc; =20 @@ -1376,34 +1357,30 @@ static ssize_t hl_state_dump_write(struct file *f, = const char __user *buf, return count; } =20 -static ssize_t hl_timeout_locked_read(struct file *f, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t hl_timeout_locked_read(struct kiocb *iocb, struct iov_iter = *to) { - struct hl_dbg_device_entry *entry =3D file_inode(f)->i_private; + struct hl_dbg_device_entry *entry =3D file_inode(iocb->ki_filp)->i_privat= e; struct hl_device *hdev =3D entry->hdev; char tmp_buf[200]; - ssize_t rc; =20 - if (*ppos) + if (iocb->ki_pos) return 0; =20 sprintf(tmp_buf, "%d\n", jiffies_to_msecs(hdev->timeout_jiffies) / 1000); - rc =3D simple_read_from_buffer(buf, strlen(tmp_buf) + 1, ppos, tmp_buf, - strlen(tmp_buf) + 1); - - return rc; + return simple_copy_to_iter(tmp_buf, &iocb->ki_pos, strlen(tmp_buf) + 1, t= o); } =20 -static ssize_t hl_timeout_locked_write(struct file *f, const char __user *= buf, - size_t count, loff_t *ppos) +static ssize_t hl_timeout_locked_write(struct kiocb *iocb, + struct iov_iter *from) { - struct hl_dbg_device_entry *entry =3D file_inode(f)->i_private; + struct hl_dbg_device_entry *entry =3D file_inode(iocb->ki_filp)->i_privat= e; + size_t count =3D iov_iter_count(from); struct hl_device *hdev =3D entry->hdev; u32 value; ssize_t rc; =20 - rc =3D kstrtouint_from_user(buf, count, 10, &value); + rc =3D kstrtouint_from_iter(from, count, 10, &value); if (rc) return rc; =20 @@ -1415,10 +1392,9 @@ static ssize_t hl_timeout_locked_write(struct file *= f, const char __user *buf, return count; } =20 -static ssize_t hl_check_razwi_happened(struct file *f, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t hl_check_razwi_happened(struct kiocb *iocb, struct iov_iter= *to) { - struct hl_dbg_device_entry *entry =3D file_inode(f)->i_private; + struct hl_dbg_device_entry *entry =3D file_inode(iocb->ki_filp)->i_privat= e; struct hl_device *hdev =3D entry->hdev; =20 hdev->asic_funcs->check_if_razwi_happened(hdev); @@ -1428,96 +1404,96 @@ static ssize_t hl_check_razwi_happened(struct file = *f, char __user *buf, =20 static const struct file_operations hl_mem_scrub_fops =3D { .owner =3D THIS_MODULE, - .write =3D hl_memory_scrub, + .write_iter =3D hl_memory_scrub }; =20 static const struct file_operations hl_data32b_fops =3D { .owner =3D THIS_MODULE, - .read =3D hl_data_read32, - .write =3D hl_data_write32 + .read_iter =3D hl_data_read32, + .write_iter =3D hl_data_write32 }; =20 static const struct file_operations hl_data64b_fops =3D { .owner =3D THIS_MODULE, - .read =3D hl_data_read64, - .write =3D hl_data_write64 + .read_iter =3D hl_data_read64, + .write_iter =3D hl_data_write64 }; =20 static const struct file_operations hl_dma_size_fops =3D { .owner =3D THIS_MODULE, - .write =3D hl_dma_size_write + .write_iter =3D hl_dma_size_write }; =20 static const struct file_operations hl_monitor_dump_fops =3D { .owner =3D THIS_MODULE, - .write =3D hl_monitor_dump_trigger + .write_iter =3D hl_monitor_dump_trigger }; =20 static const struct file_operations hl_i2c_data_fops =3D { .owner =3D THIS_MODULE, - .read =3D hl_i2c_data_read, - .write =3D hl_i2c_data_write + .read_iter =3D hl_i2c_data_read, + .write_iter =3D hl_i2c_data_write }; =20 static const struct file_operations hl_power_fops =3D { .owner =3D THIS_MODULE, - .read =3D hl_get_power_state, - .write =3D hl_set_power_state + .read_iter =3D hl_get_power_state, + .write_iter =3D hl_set_power_state }; =20 static const struct file_operations hl_led0_fops =3D { .owner =3D THIS_MODULE, - .write =3D hl_led0_write + .write_iter =3D hl_led0_write }; =20 static const struct file_operations hl_led1_fops =3D { .owner =3D THIS_MODULE, - .write =3D hl_led1_write + .write_iter =3D hl_led1_write }; =20 static const struct file_operations hl_led2_fops =3D { .owner =3D THIS_MODULE, - .write =3D hl_led2_write + .write_iter =3D hl_led2_write }; =20 static const struct file_operations hl_device_fops =3D { .owner =3D THIS_MODULE, - .read =3D hl_device_read, - .write =3D hl_device_write + .read_iter =3D hl_device_read, + .write_iter =3D hl_device_write }; =20 static const struct file_operations hl_clk_gate_fops =3D { .owner =3D THIS_MODULE, - .read =3D hl_clk_gate_read, - .write =3D hl_clk_gate_write + .read_iter =3D hl_clk_gate_read, + .write_iter =3D hl_clk_gate_write }; =20 static const struct file_operations hl_stop_on_err_fops =3D { .owner =3D THIS_MODULE, - .read =3D hl_stop_on_err_read, - .write =3D hl_stop_on_err_write + .read_iter =3D hl_stop_on_err_read, + .write_iter =3D hl_stop_on_err_write }; =20 static const struct file_operations hl_security_violations_fops =3D { .owner =3D THIS_MODULE, - .read =3D hl_security_violations_read + .read_iter =3D hl_security_violations_read }; =20 static const struct file_operations hl_state_dump_fops =3D { .owner =3D THIS_MODULE, - .read =3D hl_state_dump_read, - .write =3D hl_state_dump_write + .read_iter =3D hl_state_dump_read, + .write_iter =3D hl_state_dump_write }; =20 static const struct file_operations hl_timeout_locked_fops =3D { .owner =3D THIS_MODULE, - .read =3D hl_timeout_locked_read, - .write =3D hl_timeout_locked_write + .read_iter =3D hl_timeout_locked_read, + .write_iter =3D hl_timeout_locked_write }; =20 static const struct file_operations hl_razwi_check_fops =3D { .owner =3D THIS_MODULE, - .read =3D hl_check_razwi_happened + .read_iter =3D hl_check_razwi_happened }; =20 static const struct hl_info_list hl_debugfs_list[] =3D { @@ -1539,13 +1515,12 @@ static int hl_debugfs_open(struct inode *inode, str= uct file *file) return single_open(file, node->info_ent->show, node); } =20 -static ssize_t hl_debugfs_write(struct file *file, const char __user *buf, - size_t count, loff_t *f_pos) +static ssize_t hl_debugfs_write(struct kiocb *iocb, struct iov_iter *from) { - struct hl_debugfs_entry *node =3D file->f_inode->i_private; + struct hl_debugfs_entry *node =3D iocb->ki_filp->f_inode->i_private; =20 if (node->info_ent->write) - return node->info_ent->write(file, buf, count, f_pos); + return node->info_ent->write(iocb, from); else return -EINVAL; =20 @@ -1554,8 +1529,8 @@ static ssize_t hl_debugfs_write(struct file *file, co= nst char __user *buf, static const struct file_operations hl_debugfs_fops =3D { .owner =3D THIS_MODULE, .open =3D hl_debugfs_open, - .read =3D seq_read, - .write =3D hl_debugfs_write, + .read_iter =3D seq_read_iter, + .write_iter =3D hl_debugfs_write, .llseek =3D seq_lseek, .release =3D single_release, }; diff --git a/drivers/accel/habanalabs/common/habanalabs.h b/drivers/accel/h= abanalabs/common/habanalabs.h index 48f0f3eea1ef..ccf329c83f30 100644 --- a/drivers/accel/habanalabs/common/habanalabs.h +++ b/drivers/accel/habanalabs/common/habanalabs.h @@ -2338,8 +2338,7 @@ struct hl_fpriv { struct hl_info_list { const char *name; int (*show)(struct seq_file *s, void *data); - ssize_t (*write)(struct file *file, const char __user *buf, - size_t count, loff_t *f_pos); + ssize_t (*write)(struct kiocb *, struct iov_iter *); }; =20 /** diff --git a/drivers/accel/ivpu/ivpu_debugfs.c b/drivers/accel/ivpu/ivpu_de= bugfs.c index d09d29775b3f..c2db7689437c 100644 --- a/drivers/accel/ivpu/ivpu_debugfs.c +++ b/drivers/accel/ivpu/ivpu_debugfs.c @@ -116,15 +116,15 @@ static const struct drm_debugfs_info vdev_debugfs_lis= t[] =3D { {"reset_pending", reset_pending_show, 0}, }; =20 -static ssize_t -dvfs_mode_fops_write(struct file *file, const char __user *user_buf, size_= t size, loff_t *pos) +static ssize_t dvfs_mode_fops_write(struct kiocb *iocb, struct iov_iter *f= rom) { - struct ivpu_device *vdev =3D file->private_data; + struct ivpu_device *vdev =3D iocb->ki_filp->private_data; + size_t size =3D iov_iter_count(from); struct ivpu_fw_info *fw =3D vdev->fw; u32 dvfs_mode; int ret; =20 - ret =3D kstrtou32_from_user(user_buf, size, 0, &dvfs_mode); + ret =3D kstrtou32_from_iter(from, size, 0, &dvfs_mode); if (ret < 0) return ret; =20 @@ -140,7 +140,7 @@ dvfs_mode_fops_write(struct file *file, const char __us= er *user_buf, size_t size static const struct file_operations dvfs_mode_fops =3D { .owner =3D THIS_MODULE, .open =3D simple_open, - .write =3D dvfs_mode_fops_write, + .write_iter =3D dvfs_mode_fops_write, }; =20 static int fw_log_show(struct seq_file *s, void *v) @@ -157,37 +157,36 @@ static int fw_log_fops_open(struct inode *inode, stru= ct file *file) return single_open(file, fw_log_show, inode->i_private); } =20 -static ssize_t -fw_log_fops_write(struct file *file, const char __user *user_buf, size_t s= ize, loff_t *pos) +static ssize_t fw_log_fops_write(struct kiocb *iocb, struct iov_iter *from) { - struct seq_file *s =3D file->private_data; + struct seq_file *s =3D iocb->ki_filp->private_data; struct ivpu_device *vdev =3D s->private; =20 - if (!size) + if (!iov_iter_count(from)) return -EINVAL; =20 ivpu_fw_log_clear(vdev); - return size; + return iov_iter_count(from); } =20 static const struct file_operations fw_log_fops =3D { .owner =3D THIS_MODULE, .open =3D fw_log_fops_open, - .write =3D fw_log_fops_write, - .read =3D seq_read, + .write_iter =3D fw_log_fops_write, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D single_release, }; =20 static ssize_t -fw_profiling_freq_fops_write(struct file *file, const char __user *user_bu= f, - size_t size, loff_t *pos) +fw_profiling_freq_fops_write(struct kiocb *iocb, struct iov_iter *from) { - struct ivpu_device *vdev =3D file->private_data; + struct ivpu_device *vdev =3D iocb->ki_filp->private_data; + size_t size =3D iov_iter_count(from); bool enable; int ret; =20 - ret =3D kstrtobool_from_user(user_buf, size, &enable); + ret =3D kstrtobool_from_iter(from, size, &enable); if (ret < 0) return ret; =20 @@ -203,19 +202,19 @@ fw_profiling_freq_fops_write(struct file *file, const= char __user *user_buf, static const struct file_operations fw_profiling_freq_fops =3D { .owner =3D THIS_MODULE, .open =3D simple_open, - .write =3D fw_profiling_freq_fops_write, + .write_iter =3D fw_profiling_freq_fops_write, }; =20 static ssize_t -fw_trace_destination_mask_fops_write(struct file *file, const char __user = *user_buf, - size_t size, loff_t *pos) +fw_trace_destination_mask_fops_write(struct kiocb *iocb, struct iov_iter *= from) { - struct ivpu_device *vdev =3D file->private_data; + struct ivpu_device *vdev =3D iocb->ki_filp->private_data; + size_t size =3D iov_iter_count(from); struct ivpu_fw_info *fw =3D vdev->fw; u32 trace_destination_mask; int ret; =20 - ret =3D kstrtou32_from_user(user_buf, size, 0, &trace_destination_mask); + ret =3D kstrtou32_from_iter(from, size, 0, &trace_destination_mask); if (ret < 0) return ret; =20 @@ -230,19 +229,19 @@ fw_trace_destination_mask_fops_write(struct file *fil= e, const char __user *user_ static const struct file_operations fw_trace_destination_mask_fops =3D { .owner =3D THIS_MODULE, .open =3D simple_open, - .write =3D fw_trace_destination_mask_fops_write, + .write_iter =3D fw_trace_destination_mask_fops_write, }; =20 static ssize_t -fw_trace_hw_comp_mask_fops_write(struct file *file, const char __user *use= r_buf, - size_t size, loff_t *pos) +fw_trace_hw_comp_mask_fops_write(struct kiocb *iocb, struct iov_iter *from) { - struct ivpu_device *vdev =3D file->private_data; + struct ivpu_device *vdev =3D iocb->ki_filp->private_data; + size_t size =3D iov_iter_count(from); struct ivpu_fw_info *fw =3D vdev->fw; u64 trace_hw_component_mask; int ret; =20 - ret =3D kstrtou64_from_user(user_buf, size, 0, &trace_hw_component_mask); + ret =3D kstrtou64_from_iter(from, size, 0, &trace_hw_component_mask); if (ret < 0) return ret; =20 @@ -257,18 +256,19 @@ fw_trace_hw_comp_mask_fops_write(struct file *file, c= onst char __user *user_buf, static const struct file_operations fw_trace_hw_comp_mask_fops =3D { .owner =3D THIS_MODULE, .open =3D simple_open, - .write =3D fw_trace_hw_comp_mask_fops_write, + .write_iter =3D fw_trace_hw_comp_mask_fops_write, }; =20 static ssize_t -fw_trace_level_fops_write(struct file *file, const char __user *user_buf, = size_t size, loff_t *pos) +fw_trace_level_fops_write(struct kiocb *iocb, struct iov_iter *from) { - struct ivpu_device *vdev =3D file->private_data; + struct ivpu_device *vdev =3D iocb->ki_filp->private_data; + size_t size =3D iov_iter_count(from); struct ivpu_fw_info *fw =3D vdev->fw; u32 trace_level; int ret; =20 - ret =3D kstrtou32_from_user(user_buf, size, 0, &trace_level); + ret =3D kstrtou32_from_iter(from, size, 0, &trace_level); if (ret < 0) return ret; =20 @@ -283,16 +283,15 @@ fw_trace_level_fops_write(struct file *file, const ch= ar __user *user_buf, size_t static const struct file_operations fw_trace_level_fops =3D { .owner =3D THIS_MODULE, .open =3D simple_open, - .write =3D fw_trace_level_fops_write, + .write_iter =3D fw_trace_level_fops_write, }; =20 -static ssize_t -ivpu_force_recovery_fn(struct file *file, const char __user *user_buf, siz= e_t size, loff_t *pos) +static ssize_t ivpu_force_recovery_fn(struct kiocb *iocb, struct iov_iter = *from) { - struct ivpu_device *vdev =3D file->private_data; + struct ivpu_device *vdev =3D iocb->ki_filp->private_data; int ret; =20 - if (!size) + if (!iov_iter_count(from)) return -EINVAL; =20 ret =3D ivpu_rpm_get(vdev); @@ -302,21 +301,20 @@ ivpu_force_recovery_fn(struct file *file, const char = __user *user_buf, size_t si ivpu_pm_trigger_recovery(vdev, "debugfs"); flush_work(&vdev->pm->recovery_work); ivpu_rpm_put(vdev); - return size; + return iov_iter_count(from); } =20 static const struct file_operations ivpu_force_recovery_fops =3D { .owner =3D THIS_MODULE, .open =3D simple_open, - .write =3D ivpu_force_recovery_fn, + .write_iter =3D ivpu_force_recovery_fn, }; =20 -static ssize_t -ivpu_reset_engine_fn(struct file *file, const char __user *user_buf, size_= t size, loff_t *pos) +static ssize_t ivpu_reset_engine_fn(struct kiocb *iocb, struct iov_iter *f= rom) { - struct ivpu_device *vdev =3D file->private_data; + struct ivpu_device *vdev =3D iocb->ki_filp->private_data; =20 - if (!size) + if (!iov_iter_count(from)) return -EINVAL; =20 if (ivpu_jsm_reset_engine(vdev, DRM_IVPU_ENGINE_COMPUTE)) @@ -324,13 +322,13 @@ ivpu_reset_engine_fn(struct file *file, const char __= user *user_buf, size_t size if (ivpu_jsm_reset_engine(vdev, DRM_IVPU_ENGINE_COPY)) return -ENODEV; =20 - return size; + return iov_iter_count(from); } =20 static const struct file_operations ivpu_reset_engine_fops =3D { .owner =3D THIS_MODULE, .open =3D simple_open, - .write =3D ivpu_reset_engine_fn, + .write_iter =3D ivpu_reset_engine_fn, }; =20 void ivpu_debugfs_init(struct ivpu_device *vdev) --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f44.google.com (mail-io1-f44.google.com [209.85.166.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 1CB0113CABC for ; Thu, 11 Apr 2024 15:34:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849681; cv=none; b=D10HNNR8ycuJhSK0vGQiVkSC5xv4uDttpWXDpVJoiFSIVzXt85OvyqLBlK4n5MCGQnHdjfWlXhIIersuTIngB2HQ2S9Jt3zvKp+ati/hv5dGHeoyHOjmEPk9baV+GJjUAyIY7ugIpmzxg7W8I7ouuoTnuShmC4IUrLdNClEXiVU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849681; c=relaxed/simple; bh=k0bXdrDyin3Wj/PM7UMBJF8YF3HORmVehNxhlkCmRj8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=GPf5nT9Qxd+/i+LPhwqrq1lZvAS/K5HKm17asSrApHhni9n/7eeMERy4/1hP1UUloG54VLVOansvfm+IuyWRvUg56iPhGVFVwlmteJv9QASYb0qj4nckoSM6Yye0JVh6Xhz1Q2vS2DI4Lx4UFfI8eEX7Gy6vrtpdDquyUL1JKjg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=PTQ5wNR5; arc=none smtp.client-ip=209.85.166.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="PTQ5wNR5" Received: by mail-io1-f44.google.com with SMTP id ca18e2360f4ac-7d0772bb5ffso180631139f.0 for ; Thu, 11 Apr 2024 08:34:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849678; x=1713454478; 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=+ZdeOU8iSN+e2UssoppSLiJpH0PIhsTs61PcTzwDqgg=; b=PTQ5wNR5wW/NhqirbsQOUi+J9W8BX2yiTGOJu2xeXggNJhSqj/mwM906VC0BwrY1Io gRJ3xyvQjLtKvZUhFrLoAibI9ou8jAFLeUGNxkGWDaiQo0AeieJxNMeHcpct4g4MVvTo OqczYkLRpb5j8nwMya4UwKos6KsNfuFPiKd0eVMdVrjNeFUcn0qVI6jX8PNAe1rhWu75 v3jl1g7WN72ynS0SBi3mCAP6Qu2eih62TbSaDWffwOPiBb5F4lrABIvtX/iQjJ9wk1AN oeez/NXIL551AJW51+PJ4KtCN83QrumM3p9GdU8SvVaRd8DAZRmkdAGRd2vw8pkxu0iM rwHA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849678; x=1713454478; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=+ZdeOU8iSN+e2UssoppSLiJpH0PIhsTs61PcTzwDqgg=; b=ZdS3dp519LMp5oE4IhWspZFFEK6eT8COeH/PGvH6e72WhIxTlGDIN42pxKI/ZhAaKp sEnz9v6q9FdVc9TqZgBLvvg8lxikpGt90Hiitlp0QHB4dvWzCmbeyhsrWLKGN2vxiJNM ioffHppIE43V04ZFfqBszbED/L+SPj77FcVhFmLslkHZGnlHSB273KNsPgzYkp6k2PtZ KtTVlERhNnA7CyUpyTpQIZef5YxB1iGskGKuCHoFP6iSs28XdNsWJj+a72Rb7+kz36gm nzX3JhA9dnV7kQSkWHR1GG2AZJOy8ekt6K0HVVtNADBggor4PEsJTYrqHyyG6bAA5ECU ifAQ== X-Gm-Message-State: AOJu0YwpymOfGH/NO08RFYTyOZ88G4LRy6PTg0RqIkVM1eoGUavSXOAP rZpEN+runTx7I/DtfeyCMSphuH8KgvpQO2npJ3AFWS4omokzL07uuD0y7srA9C4ebqmIs20w4dO Z X-Google-Smtp-Source: AGHT+IEh4c5xpLB+IvAopjnun5XyIknJ3RGicPSat6tXdeRMPFvrECS1ttdRBTkeuWv7ecOFqtJn7g== X-Received: by 2002:a6b:4e14:0:b0:7d6:631d:7b0 with SMTP id c20-20020a6b4e14000000b007d6631d07b0mr181773iob.1.1712849678641; Thu, 11 Apr 2024 08:34:38 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.34.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:34:38 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 105/437] drivers/acpi: convert to read/write iterators Date: Thu, 11 Apr 2024 09:14:05 -0600 Message-ID: <20240411153126.16201-106-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/acpi/acpi_dbg.c | 6 ++++-- drivers/acpi/apei/erst-dbg.c | 23 ++++++++++++----------- drivers/acpi/ec_sys.c | 6 ++++-- drivers/acpi/pfr_update.c | 3 ++- 4 files changed, 22 insertions(+), 16 deletions(-) diff --git a/drivers/acpi/acpi_dbg.c b/drivers/acpi/acpi_dbg.c index d50261d05f3a..2ee3bc767693 100644 --- a/drivers/acpi/acpi_dbg.c +++ b/drivers/acpi/acpi_dbg.c @@ -638,6 +638,7 @@ static ssize_t acpi_aml_read(struct file *file, char __= user *buf, } return size > 0 ? size : ret; } +FOPS_READ_ITER_HELPER(acpi_aml_read); =20 static int acpi_aml_write_user(const char __user *buf, int len) { @@ -707,6 +708,7 @@ static ssize_t acpi_aml_write(struct file *file, const = char __user *buf, } return size > 0 ? size : ret; } +FOPS_WRITE_ITER_HELPER(acpi_aml_write); =20 static __poll_t acpi_aml_poll(struct file *file, poll_table *wait) { @@ -722,8 +724,8 @@ static __poll_t acpi_aml_poll(struct file *file, poll_t= able *wait) } =20 static const struct file_operations acpi_aml_operations =3D { - .read =3D acpi_aml_read, - .write =3D acpi_aml_write, + .read_iter =3D acpi_aml_read_iter, + .write_iter =3D acpi_aml_write_iter, .poll =3D acpi_aml_poll, .open =3D acpi_aml_open, .release =3D acpi_aml_release, diff --git a/drivers/acpi/apei/erst-dbg.c b/drivers/acpi/apei/erst-dbg.c index 8bc71cdc2270..293fac1a2821 100644 --- a/drivers/acpi/apei/erst-dbg.c +++ b/drivers/acpi/apei/erst-dbg.c @@ -14,6 +14,7 @@ #include #include #include +#include #include #include =20 @@ -79,20 +80,20 @@ static long erst_dbg_ioctl(struct file *f, unsigned int= cmd, unsigned long arg) } } =20 -static ssize_t erst_dbg_read(struct file *filp, char __user *ubuf, - size_t usize, loff_t *off) +static ssize_t erst_dbg_read(struct kiocb *iocb, struct iov_iter *to) { + size_t usize =3D iov_iter_count(to); int rc, *pos; ssize_t len =3D 0; u64 id; =20 - if (*off) + if (iocb->ki_pos) return -EINVAL; =20 if (mutex_lock_interruptible(&erst_dbg_mutex) !=3D 0) return -EINTR; =20 - pos =3D (int *)&filp->private_data; + pos =3D (int *)&iocb->ki_filp->private_data; =20 retry_next: rc =3D erst_get_record_id_next(pos, &id); @@ -141,7 +142,7 @@ static ssize_t erst_dbg_read(struct file *filp, char __= user *ubuf, goto out; =20 rc =3D -EFAULT; - if (copy_to_user(ubuf, erst_dbg_buf, len)) + if (!copy_to_iter_full(erst_dbg_buf, len, to)) goto out; rc =3D 0; out: @@ -149,9 +150,9 @@ static ssize_t erst_dbg_read(struct file *filp, char __= user *ubuf, return rc ? rc : len; } =20 -static ssize_t erst_dbg_write(struct file *filp, const char __user *ubuf, - size_t usize, loff_t *off) +static ssize_t erst_dbg_write(struct kiocb *iocb, struct iov_iter *from) { + size_t usize =3D iov_iter_count(from); int rc; struct cper_record_header *rcd; =20 @@ -175,8 +176,8 @@ static ssize_t erst_dbg_write(struct file *filp, const = char __user *ubuf, erst_dbg_buf =3D p; erst_dbg_buf_len =3D usize; } - rc =3D copy_from_user(erst_dbg_buf, ubuf, usize); - if (rc) { + rc =3D copy_from_iter_full(erst_dbg_buf, usize, from); + if (!rc) { rc =3D -EFAULT; goto out; } @@ -196,8 +197,8 @@ static const struct file_operations erst_dbg_ops =3D { .owner =3D THIS_MODULE, .open =3D erst_dbg_open, .release =3D erst_dbg_release, - .read =3D erst_dbg_read, - .write =3D erst_dbg_write, + .read_iter =3D erst_dbg_read, + .write_iter =3D erst_dbg_write, .unlocked_ioctl =3D erst_dbg_ioctl, .llseek =3D no_llseek, }; diff --git a/drivers/acpi/ec_sys.c b/drivers/acpi/ec_sys.c index c074a0fae059..47c811cb75f4 100644 --- a/drivers/acpi/ec_sys.c +++ b/drivers/acpi/ec_sys.c @@ -60,6 +60,7 @@ static ssize_t acpi_ec_read_io(struct file *f, char __use= r *buf, } return count; } +FOPS_READ_ITER_HELPER(acpi_ec_read_io); =20 static ssize_t acpi_ec_write_io(struct file *f, const char __user *buf, size_t count, loff_t *off) @@ -98,12 +99,13 @@ static ssize_t acpi_ec_write_io(struct file *f, const c= har __user *buf, } return count; } +FOPS_WRITE_ITER_HELPER(acpi_ec_write_io); =20 static const struct file_operations acpi_ec_io_ops =3D { .owner =3D THIS_MODULE, .open =3D simple_open, - .read =3D acpi_ec_read_io, - .write =3D acpi_ec_write_io, + .read_iter =3D acpi_ec_read_io_iter, + .write_iter =3D acpi_ec_write_io_iter, .llseek =3D default_llseek, }; =20 diff --git a/drivers/acpi/pfr_update.c b/drivers/acpi/pfr_update.c index 8b2910995fc1..a7a4d3bb74d3 100644 --- a/drivers/acpi/pfr_update.c +++ b/drivers/acpi/pfr_update.c @@ -481,10 +481,11 @@ static ssize_t pfru_write(struct file *file, const ch= ar __user *buf, =20 return ret ?: len; } +FOPS_WRITE_ITER_HELPER(pfru_write); =20 static const struct file_operations acpi_pfru_fops =3D { .owner =3D THIS_MODULE, - .write =3D pfru_write, + .write_iter =3D pfru_write_iter, .unlocked_ioctl =3D pfru_ioctl, .llseek =3D noop_llseek, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f52.google.com (mail-io1-f52.google.com [209.85.166.52]) (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 2FFFA14EC6A for ; Thu, 11 Apr 2024 15:34:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849685; cv=none; b=UJMrpVQGB9hHWRXiQhly1gCNEItTHWwg7aMHWj15rvy+jXb7WVGP/6oE/jkI1CrmYERaouBJiII6q3HUG6KbguJd0FbX4XjyPBsjhRANK8d9nqjkKroU424XmJrSNfQqhlqdPrALGHTVel4rtcbN93Y923fInMKMLV311qo+ZGU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849685; c=relaxed/simple; bh=EvF9GK5fbHclBik/U1ZhjLcyJWbBmhwlfutDJHY9YgA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=sWZ2iYvyfbTp69ovre1/Y0g1v/gWw2ZOYr7PPh4AKLNEZhZbFLY1tdXFCtbgt03yBKCyPjm2AOY0BJyBa9sarUtxOGBhTXX2z/txWnBDt5zoI/l2weIna4vapEecIUTavpSs9UEueg0ji3xu+RkC3tT2NOXmORcOi+4dKYUmSxw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=09yiS8Cc; arc=none smtp.client-ip=209.85.166.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="09yiS8Cc" Received: by mail-io1-f52.google.com with SMTP id ca18e2360f4ac-7d6812b37a6so8913039f.0 for ; Thu, 11 Apr 2024 08:34:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849680; x=1713454480; 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=X69VkKRBRS4SFDGlDKAfZ/Z/En9tZp2QBRLJAwyAOQw=; b=09yiS8CcWQbJtgcH3fYbx+4F/FAEiTFz0FdSd+JmMMpIxqqgWhZ/IMbmwNFzQN5gUa 43L7x0kUTPhyBxpVYxJDgjZWAUcI/X8U51OMSj58eB1Q9dbJMr1fQfNL8fBSY5yBo3kJ 39HlNHnytEbAKqNaZROgQIS78wW3/io148f1KOwFHUIedxLSpz3SihNoKLs7H4D45lON 6NKQvVNBU3mi8Is8ZZJ31Ur/lqvGMug2mcA6/ZjeGFjztULH5ssqqAvXJDxyQn16fkdn nDXhl3UflHPjLdwWI1OfTBJOe2Vaoke+YkYXBkNgqYQe68x1rAVuMxrIE1oVH1VZFD2p rCKA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849680; x=1713454480; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=X69VkKRBRS4SFDGlDKAfZ/Z/En9tZp2QBRLJAwyAOQw=; b=HQuqKSR8n8IGXZJWeKcrh0Od21MEjwxcSO0SvOjIbI1HM7ruywBbn4ppGdt71h0rqG V/FolsjA5tDpryz8XEbzkDJwVC+p1EWrPg15ZOp5gFQmAw3uuZQCWPt+Nn5rLYEY185q 8QY1Oo7xlcF9qh1GW26UX3shvunAW7HnYgQfbLH7CG3m5NgY9D5RqTlqu9TrqGkr0KaF 9GzeFP/g32fuGLHl7IsnKYh9f4Tj5pZJ/yhE3oKtGelZvtRp+V7ngP99brk2ubln91cm P5/5JiZD33hhlbrwi7VWywtb0ZAcH8IgcHyQzYo+XTA+lVF7k7517kCYfTQyC/2GDqIc VZDg== X-Gm-Message-State: AOJu0YwKqM5VtsLAYuKeBUgrt4I3imYDO6MrUM6I935FMXUO8hfrZz8P BrkrDsx1Tk0ac2CQdSSA6X4gkvMJBaOcQ6lk9BTZRyK1/ZLbUo7N75E4WBtCuFn5yhdIjHEQODA n X-Google-Smtp-Source: AGHT+IFU9YDLxYgk/NRreQh4oW+aVM5ku7TnNUhdZGYxwT9BiCbmhU5jsiW27zt+ETFg3i2rXgXPgQ== X-Received: by 2002:a92:2912:0:b0:36a:f9aa:5757 with SMTP id l18-20020a922912000000b0036af9aa5757mr3578832ilg.2.1712849680519; Thu, 11 Apr 2024 08:34:40 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.34.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:34:38 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 106/437] crypto: hisilicon: convert to read/write iterators Date: Thu, 11 Apr 2024 09:14:06 -0600 Message-ID: <20240411153126.16201-107-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/crypto/hisilicon/debugfs.c | 51 +++++++++++------------ drivers/crypto/hisilicon/hpre/hpre_main.c | 23 +++++----- drivers/crypto/hisilicon/qm.c | 22 +++++----- drivers/crypto/hisilicon/sec2/sec_main.c | 23 +++++----- drivers/crypto/hisilicon/zip/zip_main.c | 23 +++++----- 5 files changed, 68 insertions(+), 74 deletions(-) diff --git a/drivers/crypto/hisilicon/debugfs.c b/drivers/crypto/hisilicon/= debugfs.c index cd67fa348ca7..6dd67b0fcf36 100644 --- a/drivers/crypto/hisilicon/debugfs.c +++ b/drivers/crypto/hisilicon/debugfs.c @@ -137,8 +137,7 @@ static struct hisi_qm *file_to_qm(struct debugfs_file *= file) return container_of(debug, struct hisi_qm, debug); } =20 -static ssize_t qm_cmd_read(struct file *filp, char __user *buffer, - size_t count, loff_t *pos) +static ssize_t qm_cmd_read(struct kiocb *iocb, struct iov_iter *to) { char buf[QM_DBG_READ_LEN]; int len; @@ -146,7 +145,7 @@ static ssize_t qm_cmd_read(struct file *filp, char __us= er *buffer, len =3D scnprintf(buf, QM_DBG_READ_LEN, "%s\n", "Please echo help to cmd to get help information"); =20 - return simple_read_from_buffer(buffer, count, pos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 static void dump_show(struct hisi_qm *qm, void *info, @@ -502,14 +501,14 @@ static int qm_cmd_write_dump(struct hisi_qm *qm, cons= t char *cmd_buf) return ret; } =20 -static ssize_t qm_cmd_write(struct file *filp, const char __user *buffer, - size_t count, loff_t *pos) +static ssize_t qm_cmd_write(struct kiocb *iocb, struct iov_iter *from) { - struct hisi_qm *qm =3D filp->private_data; + struct hisi_qm *qm =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); char *cmd_buf, *cmd_buf_tmp; int ret; =20 - if (*pos) + if (iocb->ki_pos) return 0; =20 ret =3D hisi_qm_get_dfx_access(qm); @@ -527,7 +526,7 @@ static ssize_t qm_cmd_write(struct file *filp, const ch= ar __user *buffer, goto put_dfx_access; } =20 - cmd_buf =3D memdup_user_nul(buffer, count); + cmd_buf =3D iterdup_nul(from, count); if (IS_ERR(cmd_buf)) { ret =3D PTR_ERR(cmd_buf); goto put_dfx_access; @@ -557,8 +556,8 @@ static ssize_t qm_cmd_write(struct file *filp, const ch= ar __user *buffer, static const struct file_operations qm_cmd_fops =3D { .owner =3D THIS_MODULE, .open =3D simple_open, - .read =3D qm_cmd_read, - .write =3D qm_cmd_write, + .read_iter =3D qm_cmd_read, + .write_iter =3D qm_cmd_write, }; =20 /** @@ -704,10 +703,9 @@ static int current_qm_write(struct hisi_qm *qm, u32 va= l) return 0; } =20 -static ssize_t qm_debug_read(struct file *filp, char __user *buf, - size_t count, loff_t *pos) +static ssize_t qm_debug_read(struct kiocb *iocb, struct iov_iter *to) { - struct debugfs_file *file =3D filp->private_data; + struct debugfs_file *file =3D iocb->ki_filp->private_data; enum qm_debug_file index =3D file->index; struct hisi_qm *qm =3D file_to_qm(file); char tbuf[QM_DBG_TMP_BUF_LEN]; @@ -736,7 +734,7 @@ static ssize_t qm_debug_read(struct file *filp, char __= user *buf, =20 hisi_qm_put_dfx_access(qm); ret =3D scnprintf(tbuf, QM_DBG_TMP_BUF_LEN, "%u\n", val); - return simple_read_from_buffer(buf, count, pos, tbuf, ret); + return simple_copy_to_iter(tbuf, &iocb->ki_pos, ret, to); =20 err_input: mutex_unlock(&file->lock); @@ -744,24 +742,24 @@ static ssize_t qm_debug_read(struct file *filp, char = __user *buf, return -EINVAL; } =20 -static ssize_t qm_debug_write(struct file *filp, const char __user *buf, - size_t count, loff_t *pos) +static ssize_t qm_debug_write(struct kiocb *iocb, struct iov_iter *from) { - struct debugfs_file *file =3D filp->private_data; + struct debugfs_file *file =3D iocb->ki_filp->private_data; enum qm_debug_file index =3D file->index; struct hisi_qm *qm =3D file_to_qm(file); + size_t count =3D iov_iter_count(from); unsigned long val; char tbuf[QM_DBG_TMP_BUF_LEN]; int len, ret; =20 - if (*pos !=3D 0) + if (iocb->ki_pos !=3D 0) return 0; =20 if (count >=3D QM_DBG_TMP_BUF_LEN) return -ENOSPC; =20 - len =3D simple_write_to_buffer(tbuf, QM_DBG_TMP_BUF_LEN - 1, pos, buf, - count); + len =3D simple_copy_from_iter(tbuf, &iocb->ki_pos, QM_DBG_TMP_BUF_LEN - 1, + from); if (len < 0) return len; =20 @@ -800,8 +798,8 @@ static ssize_t qm_debug_write(struct file *filp, const = char __user *buf, static const struct file_operations qm_debug_fops =3D { .owner =3D THIS_MODULE, .open =3D simple_open, - .read =3D qm_debug_read, - .write =3D qm_debug_write, + .read_iter =3D qm_debug_read, + .write_iter =3D qm_debug_write, }; =20 static void dfx_regs_uninit(struct hisi_qm *qm, @@ -1051,23 +1049,22 @@ static int qm_state_show(struct seq_file *s, void *= unused) =20 DEFINE_SHOW_ATTRIBUTE(qm_state); =20 -static ssize_t qm_status_read(struct file *filp, char __user *buffer, - size_t count, loff_t *pos) +static ssize_t qm_status_read(struct kiocb *iocb, struct iov_iter *to) { - struct hisi_qm *qm =3D filp->private_data; + struct hisi_qm *qm =3D iocb->ki_filp->private_data; char buf[QM_DBG_READ_LEN]; int val, len; =20 val =3D atomic_read(&qm->status.flags); len =3D scnprintf(buf, QM_DBG_READ_LEN, "%s\n", qm_s[val]); =20 - return simple_read_from_buffer(buffer, count, pos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 static const struct file_operations qm_status_fops =3D { .owner =3D THIS_MODULE, .open =3D simple_open, - .read =3D qm_status_read, + .read_iter =3D qm_status_read, }; =20 static void qm_create_debugfs_file(struct hisi_qm *qm, struct dentry *dir, diff --git a/drivers/crypto/hisilicon/hpre/hpre_main.c b/drivers/crypto/his= ilicon/hpre/hpre_main.c index d93aa6630a57..b9257a368aa9 100644 --- a/drivers/crypto/hisilicon/hpre/hpre_main.c +++ b/drivers/crypto/hisilicon/hpre/hpre_main.c @@ -829,10 +829,9 @@ static void hpre_cluster_inqry_write(struct hpre_debug= fs_file *file, u32 val) writel(val, qm->io_base + offset + HPRE_CLUSTER_INQURY); } =20 -static ssize_t hpre_ctrl_debug_read(struct file *filp, char __user *buf, - size_t count, loff_t *pos) +static ssize_t hpre_ctrl_debug_read(struct kiocb *iocb, struct iov_iter *t= o) { - struct hpre_debugfs_file *file =3D filp->private_data; + struct hpre_debugfs_file *file =3D iocb->ki_filp->private_data; struct hisi_qm *qm =3D hpre_file_to_qm(file); char tbuf[HPRE_DBGFS_VAL_MAX_LEN]; u32 val; @@ -857,7 +856,7 @@ static ssize_t hpre_ctrl_debug_read(struct file *filp, = char __user *buf, =20 hisi_qm_put_dfx_access(qm); ret =3D snprintf(tbuf, HPRE_DBGFS_VAL_MAX_LEN, "%u\n", val); - return simple_read_from_buffer(buf, count, pos, tbuf, ret); + return simple_copy_to_iter(tbuf, &iocb->ki_pos, ret, to); =20 err_input: spin_unlock_irq(&file->lock); @@ -865,23 +864,23 @@ static ssize_t hpre_ctrl_debug_read(struct file *filp= , char __user *buf, return -EINVAL; } =20 -static ssize_t hpre_ctrl_debug_write(struct file *filp, const char __user = *buf, - size_t count, loff_t *pos) +static ssize_t hpre_ctrl_debug_write(struct kiocb *iocb, struct iov_iter *= from) { - struct hpre_debugfs_file *file =3D filp->private_data; + struct hpre_debugfs_file *file =3D iocb->ki_filp->private_data; struct hisi_qm *qm =3D hpre_file_to_qm(file); + size_t count =3D iov_iter_count(from); char tbuf[HPRE_DBGFS_VAL_MAX_LEN]; unsigned long val; int len, ret; =20 - if (*pos !=3D 0) + if (iocb->ki_pos !=3D 0) return 0; =20 if (count >=3D HPRE_DBGFS_VAL_MAX_LEN) return -ENOSPC; =20 - len =3D simple_write_to_buffer(tbuf, HPRE_DBGFS_VAL_MAX_LEN - 1, - pos, buf, count); + len =3D simple_copy_from_iter(tbuf, &iocb->ki_pos, + HPRE_DBGFS_VAL_MAX_LEN - 1, from); if (len < 0) return len; =20 @@ -919,8 +918,8 @@ static ssize_t hpre_ctrl_debug_write(struct file *filp,= const char __user *buf, static const struct file_operations hpre_ctrl_debug_fops =3D { .owner =3D THIS_MODULE, .open =3D simple_open, - .read =3D hpre_ctrl_debug_read, - .write =3D hpre_ctrl_debug_write, + .read_iter =3D hpre_ctrl_debug_read, + .write_iter =3D hpre_ctrl_debug_write, }; =20 static int hpre_debugfs_atomic64_get(void *data, u64 *val) diff --git a/drivers/crypto/hisilicon/qm.c b/drivers/crypto/hisilicon/qm.c index 92f0a1d9b4a6..604cff89f0c8 100644 --- a/drivers/crypto/hisilicon/qm.c +++ b/drivers/crypto/hisilicon/qm.c @@ -3591,10 +3591,9 @@ static int qm_vf_read_qos(struct hisi_qm *qm) return ret; } =20 -static ssize_t qm_algqos_read(struct file *filp, char __user *buf, - size_t count, loff_t *pos) +static ssize_t qm_algqos_read(struct kiocb *iocb, struct iov_iter *to) { - struct hisi_qm *qm =3D filp->private_data; + struct hisi_qm *qm =3D iocb->ki_filp->private_data; char tbuf[QM_DBG_READ_LEN]; u32 qos_val, ir; int ret; @@ -3622,7 +3621,7 @@ static ssize_t qm_algqos_read(struct file *filp, char= __user *buf, qos_val =3D ir / QM_QOS_RATE; ret =3D scnprintf(tbuf, QM_DBG_READ_LEN, "%u\n", qos_val); =20 - ret =3D simple_read_from_buffer(buf, count, pos, tbuf, ret); + ret =3D simple_copy_to_iter(tbuf, &iocb->ki_pos, ret, to); =20 err_get_status: clear_bit(QM_RESETTING, &qm->misc_ctl); @@ -3665,22 +3664,23 @@ static ssize_t qm_get_qos_value(struct hisi_qm *qm,= const char *buf, return 0; } =20 -static ssize_t qm_algqos_write(struct file *filp, const char __user *buf, - size_t count, loff_t *pos) +static ssize_t qm_algqos_write(struct kiocb *iocb, struct iov_iter *from) { - struct hisi_qm *qm =3D filp->private_data; + struct hisi_qm *qm =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); char tbuf[QM_DBG_READ_LEN]; unsigned int fun_index; unsigned long val; int len, ret; =20 - if (*pos !=3D 0) + if (iocb->ki_pos !=3D 0) return 0; =20 if (count >=3D QM_DBG_READ_LEN) return -ENOSPC; =20 - len =3D simple_write_to_buffer(tbuf, QM_DBG_READ_LEN - 1, pos, buf, count= ); + len =3D simple_copy_from_iter(tbuf, &iocb->ki_pos, QM_DBG_READ_LEN - 1, + from); if (len < 0) return len; =20 @@ -3722,8 +3722,8 @@ static ssize_t qm_algqos_write(struct file *filp, con= st char __user *buf, static const struct file_operations qm_algqos_fops =3D { .owner =3D THIS_MODULE, .open =3D simple_open, - .read =3D qm_algqos_read, - .write =3D qm_algqos_write, + .read_iter =3D qm_algqos_read, + .write_iter =3D qm_algqos_write, }; =20 /** diff --git a/drivers/crypto/hisilicon/sec2/sec_main.c b/drivers/crypto/hisi= licon/sec2/sec_main.c index c290d8937b19..bb168d97de30 100644 --- a/drivers/crypto/hisilicon/sec2/sec_main.c +++ b/drivers/crypto/hisilicon/sec2/sec_main.c @@ -718,10 +718,9 @@ static int sec_clear_enable_write(struct hisi_qm *qm, = u32 val) return 0; } =20 -static ssize_t sec_debug_read(struct file *filp, char __user *buf, - size_t count, loff_t *pos) +static ssize_t sec_debug_read(struct kiocb *iocb, struct iov_iter *to) { - struct sec_debug_file *file =3D filp->private_data; + struct sec_debug_file *file =3D iocb->ki_filp->private_data; char tbuf[SEC_DBGFS_VAL_MAX_LEN]; struct hisi_qm *qm =3D file->qm; u32 val; @@ -745,7 +744,7 @@ static ssize_t sec_debug_read(struct file *filp, char _= _user *buf, =20 hisi_qm_put_dfx_access(qm); ret =3D snprintf(tbuf, SEC_DBGFS_VAL_MAX_LEN, "%u\n", val); - return simple_read_from_buffer(buf, count, pos, tbuf, ret); + return simple_copy_to_iter(tbuf, &iocb->ki_pos, ret, to); =20 err_input: spin_unlock_irq(&file->lock); @@ -753,23 +752,23 @@ static ssize_t sec_debug_read(struct file *filp, char= __user *buf, return -EINVAL; } =20 -static ssize_t sec_debug_write(struct file *filp, const char __user *buf, - size_t count, loff_t *pos) +static ssize_t sec_debug_write(struct kiocb *iocb, struct iov_iter *from) { - struct sec_debug_file *file =3D filp->private_data; + struct sec_debug_file *file =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); char tbuf[SEC_DBGFS_VAL_MAX_LEN]; struct hisi_qm *qm =3D file->qm; unsigned long val; int len, ret; =20 - if (*pos !=3D 0) + if (iocb->ki_pos !=3D 0) return 0; =20 if (count >=3D SEC_DBGFS_VAL_MAX_LEN) return -ENOSPC; =20 - len =3D simple_write_to_buffer(tbuf, SEC_DBGFS_VAL_MAX_LEN - 1, - pos, buf, count); + len =3D simple_copy_from_iter(tbuf, &iocb->ki_pos, + SEC_DBGFS_VAL_MAX_LEN - 1, from); if (len < 0) return len; =20 @@ -805,8 +804,8 @@ static ssize_t sec_debug_write(struct file *filp, const= char __user *buf, static const struct file_operations sec_dbg_fops =3D { .owner =3D THIS_MODULE, .open =3D simple_open, - .read =3D sec_debug_read, - .write =3D sec_debug_write, + .read_iter =3D sec_debug_read, + .write_iter =3D sec_debug_write, }; =20 static int sec_debugfs_atomic64_get(void *data, u64 *val) diff --git a/drivers/crypto/hisilicon/zip/zip_main.c b/drivers/crypto/hisil= icon/zip/zip_main.c index c065fd867161..47319ba13873 100644 --- a/drivers/crypto/hisilicon/zip/zip_main.c +++ b/drivers/crypto/hisilicon/zip/zip_main.c @@ -689,10 +689,9 @@ static int clear_enable_write(struct hisi_qm *qm, u32 = val) return 0; } =20 -static ssize_t hisi_zip_ctrl_debug_read(struct file *filp, char __user *bu= f, - size_t count, loff_t *pos) +static ssize_t hisi_zip_ctrl_debug_read(struct kiocb *iocb, struct iov_ite= r *to) { - struct ctrl_debug_file *file =3D filp->private_data; + struct ctrl_debug_file *file =3D iocb->ki_filp->private_data; struct hisi_qm *qm =3D file_to_qm(file); char tbuf[HZIP_BUF_SIZE]; u32 val; @@ -714,7 +713,7 @@ static ssize_t hisi_zip_ctrl_debug_read(struct file *fi= lp, char __user *buf, =20 hisi_qm_put_dfx_access(qm); ret =3D scnprintf(tbuf, sizeof(tbuf), "%u\n", val); - return simple_read_from_buffer(buf, count, pos, tbuf, ret); + return simple_copy_to_iter(tbuf, &iocb->ki_pos, ret, to); =20 err_input: spin_unlock_irq(&file->lock); @@ -722,23 +721,23 @@ static ssize_t hisi_zip_ctrl_debug_read(struct file *= filp, char __user *buf, return -EINVAL; } =20 -static ssize_t hisi_zip_ctrl_debug_write(struct file *filp, - const char __user *buf, - size_t count, loff_t *pos) +static ssize_t hisi_zip_ctrl_debug_write(struct kiocb *iocb, + struct iov_iter *from) { - struct ctrl_debug_file *file =3D filp->private_data; + struct ctrl_debug_file *file =3D iocb->ki_filp->private_data; struct hisi_qm *qm =3D file_to_qm(file); + size_t count =3D iov_iter_count(from); char tbuf[HZIP_BUF_SIZE]; unsigned long val; int len, ret; =20 - if (*pos !=3D 0) + if (iocb->ki_pos !=3D 0) return 0; =20 if (count >=3D HZIP_BUF_SIZE) return -ENOSPC; =20 - len =3D simple_write_to_buffer(tbuf, HZIP_BUF_SIZE - 1, pos, buf, count); + len =3D simple_copy_from_iter(tbuf, &iocb->ki_pos, HZIP_BUF_SIZE - 1, fro= m); if (len < 0) return len; =20 @@ -774,8 +773,8 @@ static ssize_t hisi_zip_ctrl_debug_write(struct file *f= ilp, static const struct file_operations ctrl_debug_fops =3D { .owner =3D THIS_MODULE, .open =3D simple_open, - .read =3D hisi_zip_ctrl_debug_read, - .write =3D hisi_zip_ctrl_debug_write, + .read_iter =3D hisi_zip_ctrl_debug_read, + .write_iter =3D hisi_zip_ctrl_debug_write, }; =20 static int zip_debugfs_atomic64_set(void *data, u64 val) --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f41.google.com (mail-io1-f41.google.com [209.85.166.41]) (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 38A2214F10D for ; Thu, 11 Apr 2024 15:34:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849684; cv=none; b=fbVzp80c6X8CxuHW5VWLdxMe2YRsYUz08sIHyfNxDjf91qqBZL9M4IIRCpf6Xso0701e1IDqGxwVf9naNY2aMzC4BqFS1SVF+08Xzm9BZ2hEh/2Ynq3UYSNczbaUb+pdo2+6wfia2oALoBwCC3LUjFR5UppXr9nHErne4LXwQSs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849684; c=relaxed/simple; bh=/V2nDSGA2WJ8j0aJzxxZ7WU80ll3brlP0dqm97rRTxg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ISwcfD+WJz38tvKmDPaY7HgcKjswA6mUvbtBMELI5Fg5rRmtRu26PXbZeMEAdKmunjeGcTCI+5Z4oAdD3OAUbDhpGbO69OHrplUnGUaFgItxcFrKLW2rSFWSxmynwCYX8shxWKcK8LsB7R52Bn+v/hWH64aKcdWCWd0afU8Wfz8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=q9jUByJA; arc=none smtp.client-ip=209.85.166.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="q9jUByJA" Received: by mail-io1-f41.google.com with SMTP id ca18e2360f4ac-7cc0e831e11so170483639f.1 for ; Thu, 11 Apr 2024 08:34:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849681; x=1713454481; 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=kh1ucZljRBsvFGWd0sOkihqQbHDmkAAiC0gmdJ8NTkA=; b=q9jUByJAsV78D+4DJcbTQRI+oFfsiRbA2r5JSqhZ+EYVsd/qSe6+TtafZV1rajxn/V 9vmz6dw10MtP97nsDGsUoDoO0x3WQrlofttUjuzz7QWrBKqvvtwrxjgHYikFEh0LVw1Y Gad5tYpaGsYmv3uipIHowk4Od8KcuLZzQXN4LkpJB6qHYYzn23DV99Iu/rxSZ6p4gafX 4MgsXf0fIYpg9yY75kSFkqANmCYVPX5gghp7Q9J0g6SeI43c63e7RwUOLW68VNUqD7m8 D4Xj3byplZf5Ojto5gHn/9uC3NnyDz/PQUGO20YVjoFYewx5soc4gXHVeyd8/LSJbPyc Vtjg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849681; x=1713454481; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=kh1ucZljRBsvFGWd0sOkihqQbHDmkAAiC0gmdJ8NTkA=; b=UFmdLr6PbdTNv9iwClAZamU9D9opw8shPD8msV6xY2VyBTxY4ti/Hi3pvM8M8y4qPq CJGIG1sch+TCk7dz36j3tGgn5WvebVzhWadoHAsSIfKttQnQxgq0FpD/UVcurwQA6BDB Zft6xlXW2NIKPKSZdb8mPnJs2GOgUgU6FEsgayeXAHqy5b3BasUhLHIXYCu5cFdb00vW 3dUDBCWtgag39+usUTIoJwXcKGw4OLYc+f++e0PtvFv00hWiJP2aOiUHyuuf4aiCvi8P PgTRys+5urX6tdrnUPkbqgnuU48P7UCSYj1Ptu4OH9NbPyZvook4GPIDj0O7/rh8AwjE WFRQ== X-Gm-Message-State: AOJu0YwL8JYd+T9hpC+Nc1yBDF2U0XeSFnBYfD35+FS6z79xHccyIZhL xbOjQR1hNADFO2W6e/5v8kB5BPPoY8xhXdC5pQ791z66J8C/G9njFnwFa8kjt1fC3JwVcal23pA P X-Google-Smtp-Source: AGHT+IHKRJzVb/E63cNfhPXysdLBm0GQJMZ0fxu/1JRstY55LUiAf+g7OGQZ3MTvalu/7S88ruQVtg== X-Received: by 2002:a92:2912:0:b0:36a:f9aa:5757 with SMTP id l18-20020a922912000000b0036af9aa5757mr3578867ilg.2.1712849681293; Thu, 11 Apr 2024 08:34:41 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.34.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:34:40 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 107/437] crypto: iaa: convert to read/write iterators Date: Thu, 11 Apr 2024 09:14:07 -0600 Message-ID: <20240411153126.16201-108-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/crypto/intel/iaa/iaa_crypto_stats.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/crypto/intel/iaa/iaa_crypto_stats.c b/drivers/crypto/i= ntel/iaa/iaa_crypto_stats.c index c9f83af4b307..8ae1cf87ddca 100644 --- a/drivers/crypto/intel/iaa/iaa_crypto_stats.c +++ b/drivers/crypto/intel/iaa/iaa_crypto_stats.c @@ -238,7 +238,7 @@ static int wq_stats_open(struct inode *inode, struct fi= le *file) =20 static const struct file_operations wq_stats_fops =3D { .open =3D wq_stats_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D single_release, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f43.google.com (mail-io1-f43.google.com [209.85.166.43]) (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 4593C14F9C7 for ; Thu, 11 Apr 2024 15:34:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849687; cv=none; b=QRRdiNhU5qQjqNVPRpflEUbz2Y3nB9/SAbywSibJBsPFKTtKgVwcQFUoucjFWAOQK4vf08qTl38xKlbv2K6i1/CRgRqF8qIGvIN/KRx6IL/xMSF95ndm3Sw3g6602JaCQ9xqHKDVrvyEb0e7CB5ridaHOFyOvpAZ3tvVM1x7CEg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849687; c=relaxed/simple; bh=RSUJQjeM07YTEW7iK7Vv1f86mHksd87EkLpZ7ewIE7Y=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=A5q7Uly4w4movHNvh1nfNym4UADOLwSBt2qj+yFmH6wIZb1msxLN9WLM5enXYaNFbgTVM64Y3shVIRIKNvT9UJO2NyIqoDv1ORxm6GgVP/7k6scbpLSzpgrTFvLF1B5Zkn1wyHUcXJgKTgdDXQc0Jj6ipREvcXbgzEW+PZ44EG4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=w0eCcn1d; arc=none smtp.client-ip=209.85.166.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="w0eCcn1d" Received: by mail-io1-f43.google.com with SMTP id ca18e2360f4ac-7cb9dd46babso81843039f.1 for ; Thu, 11 Apr 2024 08:34:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849684; x=1713454484; 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=iZenr5X/CAMte1lyF7FxF/QUsCyBfYGHK81fLlnNAdY=; b=w0eCcn1dN+RliGO9L9ztryL4nWZo+93EUakuAcVByslU99fJxr439oPPGxyjB91Fz1 3jv7dAMNpJdFUTUN9vfwrKGZfAQNcBC1nOxOxq3vkgeTbpsSAnVq4UEMnbrV0Kps28Ti xjjVDBTWKU0qx9Cjj5uo//K48QvnUkLYD4/n0dKXp7t6EtpcY2mtlXB18cAscBAPr962 KSSzEy3YLqKeNycQF/W46GNg0aXGHtJv4hmK+EP4szaSbPBvsViFYBWwM+1fmxa8bM3B Jxwk7QeolcrTFT5Z1PirS/rbDm3lA3dZYjxb84VKQENMggLE7WxoLgKz1ahMiMl2Lix7 eENQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849684; x=1713454484; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=iZenr5X/CAMte1lyF7FxF/QUsCyBfYGHK81fLlnNAdY=; b=wzuS3BUWjtT4TYx0cFtuSMeJoNglFTh3G/Y9J6l8KSOU/s1S7FtrMiZoD/M2z27GsF yaevW+Pxk1uYHR75TPo0CRcSkc3zY8H8V+rAg+Jbc9vD0+MULyvatxAk1u+jW3CNpuHc mvPIfD91qpdCqq9MG7F5LizV9DCsNBpg/OYWSDBsTnks2rueH6uU17CqIU/YyT14n1rj LosNCpRoXolJcIRWllY9djvY+1RFx539XB/SDSsw2pzaZzcKPI1nSVGqiUemKjzsavMW uQJMsEq+hIelvxX25ypWIb8/pkqJIhYbVryyoD0y+sdeDSquIwkeqsiDLQ0K2IDcTQwH uYmQ== X-Gm-Message-State: AOJu0YzDPNC6M8ic7jZmwc03G4zz8K63fx5fFDoBLWhtkXP032SZgtqv gSp0eXV1+aBKMD/ky0t/z0sQ/tuhdzXvcRcluvbkA3hFl9ozhb24d2Gf34AzBm3q+3NPzSnQTkh 9 X-Google-Smtp-Source: AGHT+IGdY95NkkefYGBsVbceHMr8M72oFVC/nwJNCDb8xSYre7GYk4QsR/mMBuWFbeVTenjOGwEmnA== X-Received: by 2002:a6b:6605:0:b0:7d4:1dae:da1a with SMTP id a5-20020a6b6605000000b007d41daeda1amr145562ioc.2.1712849683801; Thu, 11 Apr 2024 08:34:43 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.34.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:34:41 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 108/437] crypto: qat: convert to read/write iterators Date: Thu, 11 Apr 2024 09:14:08 -0600 Message-ID: <20240411153126.16201-109-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- .../intel/qat/qat_common/adf_cnv_dbgfs.c | 10 ++-- .../intel/qat/qat_common/adf_fw_counters.c | 2 +- .../qat/qat_common/adf_heartbeat_dbgfs.c | 60 +++++++++---------- .../intel/qat/qat_common/adf_pm_dbgfs.c | 3 +- .../intel/qat/qat_common/adf_tl_debugfs.c | 18 +++--- 5 files changed, 44 insertions(+), 49 deletions(-) diff --git a/drivers/crypto/intel/qat/qat_common/adf_cnv_dbgfs.c b/drivers/= crypto/intel/qat/qat_common/adf_cnv_dbgfs.c index 627953a72d47..3c6b7d0b2e9d 100644 --- a/drivers/crypto/intel/qat/qat_common/adf_cnv_dbgfs.c +++ b/drivers/crypto/intel/qat/qat_common/adf_cnv_dbgfs.c @@ -255,23 +255,21 @@ static int qat_cnv_errors_file_release(struct inode *= inode, struct file *file) static const struct file_operations qat_cnv_fops =3D { .owner =3D THIS_MODULE, .open =3D qat_cnv_errors_file_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D qat_cnv_errors_file_release, }; =20 -static ssize_t no_comp_file_read(struct file *f, char __user *buf, size_t = count, - loff_t *pos) +static ssize_t no_comp_file_read(struct kiocb *iocb, struct iov_iter *to) { char *file_msg =3D "No engine configured for comp\n"; =20 - return simple_read_from_buffer(buf, count, pos, file_msg, - strlen(file_msg)); + return simple_copy_to_iter(file_msg, &iocb->ki_pos, strlen(file_msg), to); } =20 static const struct file_operations qat_cnv_no_comp_fops =3D { .owner =3D THIS_MODULE, - .read =3D no_comp_file_read, + .read_iter =3D no_comp_file_read, }; =20 void adf_cnv_dbgfs_add(struct adf_accel_dev *accel_dev) diff --git a/drivers/crypto/intel/qat/qat_common/adf_fw_counters.c b/driver= s/crypto/intel/qat/qat_common/adf_fw_counters.c index 98fb7ccfed9f..f654d698efe9 100644 --- a/drivers/crypto/intel/qat/qat_common/adf_fw_counters.c +++ b/drivers/crypto/intel/qat/qat_common/adf_fw_counters.c @@ -224,7 +224,7 @@ static int qat_fw_counters_file_release(struct inode *i= node, struct file *file) static const struct file_operations qat_fw_counters_fops =3D { .owner =3D THIS_MODULE, .open =3D qat_fw_counters_file_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D qat_fw_counters_file_release, }; diff --git a/drivers/crypto/intel/qat/qat_common/adf_heartbeat_dbgfs.c b/dr= ivers/crypto/intel/qat/qat_common/adf_heartbeat_dbgfs.c index cccdff24b48d..16f4dfdbb434 100644 --- a/drivers/crypto/intel/qat/qat_common/adf_heartbeat_dbgfs.c +++ b/drivers/crypto/intel/qat/qat_common/adf_heartbeat_dbgfs.c @@ -19,30 +19,28 @@ #define HB_STATUS_MAX_STRLEN 4 #define HB_STATS_MAX_STRLEN 16 =20 -static ssize_t adf_hb_stats_read(struct file *file, char __user *user_buff= er, - size_t count, loff_t *ppos) +static ssize_t adf_hb_stats_read(struct kiocb *iocb, struct iov_iter *to) { char buf[HB_STATS_MAX_STRLEN]; unsigned int *value; int len; =20 - if (*ppos > 0) + if (iocb->ki_pos > 0) return 0; =20 - value =3D file->private_data; + value =3D iocb->ki_filp->private_data; len =3D scnprintf(buf, sizeof(buf), "%u\n", *value); =20 - return simple_read_from_buffer(user_buffer, count, ppos, buf, len + 1); + return simple_copy_to_iter(buf, &iocb->ki_pos, len + 1, to); } =20 static const struct file_operations adf_hb_stats_fops =3D { .owner =3D THIS_MODULE, .open =3D simple_open, - .read =3D adf_hb_stats_read, + .read_iter =3D adf_hb_stats_read, }; =20 -static ssize_t adf_hb_status_read(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t adf_hb_status_read(struct kiocb *iocb, struct iov_iter *to) { enum adf_device_heartbeat_status hb_status; char ret_str[HB_STATUS_MAX_STRLEN]; @@ -50,10 +48,10 @@ static ssize_t adf_hb_status_read(struct file *file, ch= ar __user *user_buf, int ret_code; size_t len; =20 - if (*ppos > 0) + if (iocb->ki_pos > 0) return 0; =20 - accel_dev =3D file->private_data; + accel_dev =3D iocb->ki_filp->private_data; ret_code =3D HB_OK; =20 adf_heartbeat_status(accel_dev, &hb_status); @@ -63,52 +61,50 @@ static ssize_t adf_hb_status_read(struct file *file, ch= ar __user *user_buf, =20 len =3D scnprintf(ret_str, sizeof(ret_str), "%d\n", ret_code); =20 - return simple_read_from_buffer(user_buf, count, ppos, ret_str, len + 1); + return simple_copy_to_iter(ret_str, &iocb->ki_pos, len + 1, to); } =20 static const struct file_operations adf_hb_status_fops =3D { .owner =3D THIS_MODULE, .open =3D simple_open, - .read =3D adf_hb_status_read, + .read_iter =3D adf_hb_status_read, }; =20 -static ssize_t adf_hb_cfg_read(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t adf_hb_cfg_read(struct kiocb *iocb, struct iov_iter *to) { char timer_str[ADF_CFG_MAX_VAL_LEN_IN_BYTES]; struct adf_accel_dev *accel_dev; unsigned int timer_ms; int len; =20 - if (*ppos > 0) + if (iocb->ki_pos > 0) return 0; =20 - accel_dev =3D file->private_data; + accel_dev =3D iocb->ki_filp->private_data; timer_ms =3D accel_dev->heartbeat->hb_timer; len =3D scnprintf(timer_str, sizeof(timer_str), "%u\n", timer_ms); =20 - return simple_read_from_buffer(user_buf, count, ppos, timer_str, - len + 1); + return simple_copy_to_iter(timer_str, &iocb->ki_pos, len + 1, to); } =20 -static ssize_t adf_hb_cfg_write(struct file *file, const char __user *user= _buf, - size_t count, loff_t *ppos) +static ssize_t adf_hb_cfg_write(struct kiocb *iocb, struct iov_iter *from) { char input_str[ADF_CFG_MAX_VAL_LEN_IN_BYTES] =3D { }; + size_t count =3D iov_iter_count(from); struct adf_accel_dev *accel_dev; int ret, written_chars; unsigned int timer_ms; u32 ticks; =20 - accel_dev =3D file->private_data; + accel_dev =3D iocb->ki_filp->private_data; timer_ms =3D ADF_CFG_HB_TIMER_DEFAULT_MS; =20 /* last byte left as string termination */ if (count > sizeof(input_str) - 1) return -EINVAL; =20 - written_chars =3D simple_write_to_buffer(input_str, sizeof(input_str) - 1, - ppos, user_buf, count); + written_chars =3D simple_copy_from_iter(input_str, &iocb->ki_pos, + sizeof(input_str) - 1, from); if (written_chars > 0) { ret =3D kstrtouint(input_str, 10, &timer_ms); if (ret) { @@ -151,23 +147,23 @@ static ssize_t adf_hb_cfg_write(struct file *file, co= nst char __user *user_buf, static const struct file_operations adf_hb_cfg_fops =3D { .owner =3D THIS_MODULE, .open =3D simple_open, - .read =3D adf_hb_cfg_read, - .write =3D adf_hb_cfg_write, + .read_iter =3D adf_hb_cfg_read, + .write_iter =3D adf_hb_cfg_write, }; =20 -static ssize_t adf_hb_error_inject_write(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t adf_hb_error_inject_write(struct kiocb *iocb, + struct iov_iter *from) { - struct adf_accel_dev *accel_dev =3D file->private_data; + struct adf_accel_dev *accel_dev =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); char buf[3]; int ret; =20 /* last byte left as string termination */ - if (*ppos !=3D 0 || count !=3D 2) + if (iocb->ki_pos !=3D 0 || count !=3D 2) return -EINVAL; =20 - if (copy_from_user(buf, user_buf, count)) + if (!copy_from_iter_full(buf, count, from)) return -EFAULT; buf[count] =3D '\0'; =20 @@ -190,7 +186,7 @@ static ssize_t adf_hb_error_inject_write(struct file *f= ile, static const struct file_operations adf_hb_error_inject_fops =3D { .owner =3D THIS_MODULE, .open =3D simple_open, - .write =3D adf_hb_error_inject_write, + .write_iter =3D adf_hb_error_inject_write, }; =20 void adf_heartbeat_dbgfs_add(struct adf_accel_dev *accel_dev) diff --git a/drivers/crypto/intel/qat/qat_common/adf_pm_dbgfs.c b/drivers/c= rypto/intel/qat/qat_common/adf_pm_dbgfs.c index f0a13c190196..95105baa68d0 100644 --- a/drivers/crypto/intel/qat/qat_common/adf_pm_dbgfs.c +++ b/drivers/crypto/intel/qat/qat_common/adf_pm_dbgfs.c @@ -18,10 +18,11 @@ static ssize_t pm_status_read(struct file *f, char __us= er *buf, size_t count, =20 return count; } +FOPS_READ_ITER_HELPER(pm_status_read); =20 static const struct file_operations pm_status_fops =3D { .owner =3D THIS_MODULE, - .read =3D pm_status_read, + .read_iter =3D pm_status_read_iter, }; =20 void adf_pm_dbgfs_add(struct adf_accel_dev *accel_dev) diff --git a/drivers/crypto/intel/qat/qat_common/adf_tl_debugfs.c b/drivers= /crypto/intel/qat/qat_common/adf_tl_debugfs.c index c8241f5a0a26..d3704f41c406 100644 --- a/drivers/crypto/intel/qat/qat_common/adf_tl_debugfs.c +++ b/drivers/crypto/intel/qat/qat_common/adf_tl_debugfs.c @@ -413,10 +413,10 @@ static int tl_control_show(struct seq_file *s, void *= unused) return 0; } =20 -static ssize_t tl_control_write(struct file *file, const char __user *user= buf, - size_t count, loff_t *ppos) +static ssize_t tl_control_write_iter(struct kiocb *iocb, struct iov_iter *= from) { - struct seq_file *seq_f =3D file->private_data; + struct seq_file *seq_f =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); struct adf_accel_dev *accel_dev; struct adf_telemetry *telemetry; struct adf_tl_hw_data *tl_data; @@ -434,7 +434,7 @@ static ssize_t tl_control_write(struct file *file, cons= t char __user *userbuf, =20 mutex_lock(&telemetry->wr_lock); =20 - ret =3D kstrtou32_from_user(userbuf, count, 10, &input); + ret =3D kstrtou32_from_iter(from, count, 10, &input); if (ret) goto unlock_and_exit; =20 @@ -627,10 +627,10 @@ static int tl_rp_data_show(struct seq_file *s, void *= unused) return tl_print_rp_data(accel_dev, s, rp_regs_index); } =20 -static ssize_t tl_rp_data_write(struct file *file, const char __user *user= buf, - size_t count, loff_t *ppos) +static ssize_t tl_rp_data_write_iter(struct kiocb *iocb, struct iov_iter *= from) { - struct seq_file *seq_f =3D file->private_data; + struct seq_file *seq_f =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); struct adf_accel_dev *accel_dev; struct adf_telemetry *telemetry; unsigned int new_rp_num; @@ -647,13 +647,13 @@ static ssize_t tl_rp_data_write(struct file *file, co= nst char __user *userbuf, =20 mutex_lock(&telemetry->wr_lock); =20 - ret =3D get_rp_index_from_file(file, &rp_regs_index, max_rp); + ret =3D get_rp_index_from_file(iocb->ki_filp, &rp_regs_index, max_rp); if (ret) { dev_dbg(&GET_DEV(accel_dev), "invalid RP data file name\n"); goto unlock_and_exit; } =20 - ret =3D kstrtou32_from_user(userbuf, count, 10, &new_rp_num); + ret =3D kstrtou32_from_iter(from, count, 10, &new_rp_num); if (ret) goto unlock_and_exit; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-il1-f171.google.com (mail-il1-f171.google.com [209.85.166.171]) (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 C687914F9DE for ; Thu, 11 Apr 2024 15:34:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.171 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849687; cv=none; b=EvpHxa40K+zSaQdi8wOXuuwKnM+G93I0hp5Viv6TaTpNd2Ueeu2J0yQR3RQK3VZPdmwLNUiVP6Myz2TDR90s7YyPjVntNBn5329YYDJ9aL8+JxAKAeHcRDtaULVW+aidF+yT9q33eWsHy2UGaL7AwNZKPxoJdTq/3GedtBsZADs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849687; c=relaxed/simple; bh=mafGK7ArZ4CgMWc69oJvrXEr6bmtaktMynKhOq0IW24=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Y9yINSwWMDJOb2bW/W8ncHfogKVQXtQqSAoLJrm1abgvDBKgPeeyq9QMScRR6GY9ibKEg4OOCG/qyczE/DW5ph/WtakJC0cTj74psHGZsuulx4E8+gkFMDUb+HqKexISNWXStwhfhKTEivVW4ad9qIS0TCZYnkKgOkqbLxdhh2w= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=EvQk/zCC; arc=none smtp.client-ip=209.85.166.171 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="EvQk/zCC" Received: by mail-il1-f171.google.com with SMTP id e9e14a558f8ab-36a224d7414so179835ab.1 for ; Thu, 11 Apr 2024 08:34:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849684; x=1713454484; 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=CjanmKNhtskVVrpiFYIE9220cXjVfSIWUIi+sU6GL7c=; b=EvQk/zCCEV586vQKUrJQw3pCN9BvzOYOwNBG7Na2fKeBMV/S3d2YYemMJE/zj0ystL BG0pwTRw8TBg/4rw1Mt6h5tdn/jeD+NNdPW9PDodm/rPvY2eBck6oNYyykaHPoEE114n npp0LMTkGQwXH30QtybmHIJH2dzudDaGG8pvWRnLca3FrewsR5B7pwzjsWFlUWfhIHDR Vx4a3TKoqECt22RzmduHtDRB53nr8RKcew6uT1XZ0Xfo2RTfz2iJqB/SY/uiXKSTPcWL GkCJ6fSoSsH36eYC+TKdQ+ENNY9szrNK/lqBPhPhn239O/ujZJW2ywOCi3DQ8hWS2wzR Mj/g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849684; x=1713454484; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=CjanmKNhtskVVrpiFYIE9220cXjVfSIWUIi+sU6GL7c=; b=v59iOGJzCJzifyaqKRD0WmF9MK92BuWvjaRgUhaFIcnOTEKhVtSxINOp/nRJ8TphLk haiNK5sro9zfM/16ciBL2HD9wnqIvC/FYQO3+beJeIdFVBxohAZn14Mwf1TbN/gW2y56 ySO7GZBun9KmvhD2OOU5d+u0Bvggu/EVAoccodcisluzTZvMJn2Pi3ToEbgdJ6oSw1dy I/peEvxUf7mDaPtc9r4k0P0ERkP4WAP67+Up705LvLkudAPTcfdyWdlgfIeXPOKFSWPO tO9vOcb0EaTlBGIbhk3G5jfcfNPWQ7qt7cXt27/P1tqhPAOozmvmT+xijMF04vJpFTmy kepA== X-Gm-Message-State: AOJu0YzRcYcfA7zqZ8R9OcSHEugb8FtcAVo589EgdnSAmoggo1Q7SvFm b5vzxiDHZDs64eYYsTlbQJujuyrdGDIlOOEbYVIqTyqMF1FMwedQ0J7/Ps5ldbpCkfTl5PuyopS U X-Google-Smtp-Source: AGHT+IFXWdGqIAW+oXfRgAYntKkHRsP+78puzHM3i9xxc0np3X7A8nuVOEUjNMoU9TubyKaosDyE9A== X-Received: by 2002:a6b:4e14:0:b0:7d6:631d:7b0 with SMTP id c20-20020a6b4e14000000b007d6631d07b0mr182071iob.1.1712849684534; Thu, 11 Apr 2024 08:34:44 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.34.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:34:44 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 109/437] crypto: cpp: convert to read/write iterators Date: Thu, 11 Apr 2024 09:14:09 -0600 Message-ID: <20240411153126.16201-110-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/crypto/ccp/ccp-debugfs.c | 51 ++++++++++++++------------------ 1 file changed, 22 insertions(+), 29 deletions(-) diff --git a/drivers/crypto/ccp/ccp-debugfs.c b/drivers/crypto/ccp/ccp-debu= gfs.c index a1055554b47a..34bf31386994 100644 --- a/drivers/crypto/ccp/ccp-debugfs.c +++ b/drivers/crypto/ccp/ccp-debugfs.c @@ -39,10 +39,9 @@ #define RI_NLSB_SHIFT 19 #define RI_NLSB(r) (((r) * RI_LSB_ENTRIES) >> RI_NLSB_SHIFT) =20 -static ssize_t ccp5_debugfs_info_read(struct file *filp, char __user *ubuf, - size_t count, loff_t *offp) +static ssize_t ccp5_debugfs_info_read(struct kiocb *iocb, struct iov_iter = *to) { - struct ccp_device *ccp =3D filp->private_data; + struct ccp_device *ccp =3D iocb->ki_filp->private_data; unsigned int oboff =3D 0; unsigned int regval; ssize_t ret; @@ -85,7 +84,7 @@ static ssize_t ccp5_debugfs_info_read(struct file *filp, = char __user *ubuf, oboff +=3D OSCNPRINTF("LSB Entries: %d\n", (regval & RI_LSB_ENTRIES) >> RI_NLSB_SHIFT); =20 - ret =3D simple_read_from_buffer(ubuf, count, offp, obuf, oboff); + ret =3D simple_copy_to_iter(obuf, &iocb->ki_pos, oboff, to); kfree(obuf); =20 return ret; @@ -94,10 +93,9 @@ static ssize_t ccp5_debugfs_info_read(struct file *filp,= char __user *ubuf, /* Return a formatted buffer containing the current * statistics across all queues for a CCP. */ -static ssize_t ccp5_debugfs_stats_read(struct file *filp, char __user *ubu= f, - size_t count, loff_t *offp) +static ssize_t ccp5_debugfs_stats_read(struct kiocb *iocb, struct iov_iter= *to) { - struct ccp_device *ccp =3D filp->private_data; + struct ccp_device *ccp =3D iocb->ki_filp->private_data; unsigned long total_xts_aes_ops =3D 0; unsigned long total_3des_ops =3D 0; unsigned long total_aes_ops =3D 0; @@ -147,7 +145,7 @@ static ssize_t ccp5_debugfs_stats_read(struct file *fil= p, char __user *ubuf, oboff +=3D OSCNPRINTF(" ECC: %ld\n", total_ecc_ops); =20 - ret =3D simple_read_from_buffer(ubuf, count, offp, obuf, oboff); + ret =3D simple_copy_to_iter(obuf, &iocb->ki_pos, oboff, to); kfree(obuf); =20 return ret; @@ -171,27 +169,25 @@ static void ccp5_debugfs_reset_queue_stats(struct ccp= _cmd_queue *cmd_q) * should be used to reset the queue counters across * that device. */ -static ssize_t ccp5_debugfs_stats_write(struct file *filp, - const char __user *ubuf, - size_t count, loff_t *offp) +static ssize_t ccp5_debugfs_stats_write(struct kiocb *iocb, + struct iov_iter *from) { - struct ccp_device *ccp =3D filp->private_data; + struct ccp_device *ccp =3D iocb->ki_filp->private_data; int i; =20 for (i =3D 0; i < ccp->cmd_q_count; i++) ccp5_debugfs_reset_queue_stats(&ccp->cmd_q[i]); ccp->total_interrupts =3D 0L; =20 - return count; + return iov_iter_count(from); } =20 /* Return a formatted buffer containing the current information * for that queue */ -static ssize_t ccp5_debugfs_queue_read(struct file *filp, char __user *ubu= f, - size_t count, loff_t *offp) +static ssize_t ccp5_debugfs_queue_read(struct kiocb *iocb, struct iov_iter= *to) { - struct ccp_cmd_queue *cmd_q =3D filp->private_data; + struct ccp_cmd_queue *cmd_q =3D iocb->ki_filp->private_data; unsigned int oboff =3D 0; unsigned int regval; ssize_t ret; @@ -233,7 +229,7 @@ static ssize_t ccp5_debugfs_queue_read(struct file *fil= p, char __user *ubuf, oboff +=3D OSCNPRINTF(" COMPLETION"); oboff +=3D OSCNPRINTF("\n"); =20 - ret =3D simple_read_from_buffer(ubuf, count, offp, obuf, oboff); + ret =3D simple_copy_to_iter(obuf, &iocb->ki_pos, oboff, to); kfree(obuf); =20 return ret; @@ -242,36 +238,33 @@ static ssize_t ccp5_debugfs_queue_read(struct file *f= ilp, char __user *ubuf, /* A value was written to the stats variable for a * queue. Reset the queue counters to this value. */ -static ssize_t ccp5_debugfs_queue_write(struct file *filp, - const char __user *ubuf, - size_t count, loff_t *offp) +static ssize_t ccp5_debugfs_queue_write(struct kiocb *iocb, + struct iov_iter *from) { - struct ccp_cmd_queue *cmd_q =3D filp->private_data; + struct ccp_cmd_queue *cmd_q =3D iocb->ki_filp->private_data; =20 ccp5_debugfs_reset_queue_stats(cmd_q); - - return count; + return iov_iter_count(from); } =20 static const struct file_operations ccp_debugfs_info_ops =3D { .owner =3D THIS_MODULE, .open =3D simple_open, - .read =3D ccp5_debugfs_info_read, - .write =3D NULL, + .read_iter =3D ccp5_debugfs_info_read, }; =20 static const struct file_operations ccp_debugfs_queue_ops =3D { .owner =3D THIS_MODULE, .open =3D simple_open, - .read =3D ccp5_debugfs_queue_read, - .write =3D ccp5_debugfs_queue_write, + .read_iter =3D ccp5_debugfs_queue_read, + .write_iter =3D ccp5_debugfs_queue_write, }; =20 static const struct file_operations ccp_debugfs_stats_ops =3D { .owner =3D THIS_MODULE, .open =3D simple_open, - .read =3D ccp5_debugfs_stats_read, - .write =3D ccp5_debugfs_stats_write, + .read_iter =3D ccp5_debugfs_stats_read, + .write_iter =3D ccp5_debugfs_stats_write, }; =20 static struct dentry *ccp_debugfs_dir; --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f44.google.com (mail-io1-f44.google.com [209.85.166.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 AA1E315099E for ; Thu, 11 Apr 2024 15:34:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849689; cv=none; b=ELIWX3dGrxolCztGwvwV5k1a1sssKo0au/0lKPxitJ/f9V4VdyShApZh7IucZkMeoTxDxqiv6DwklUuhuIPF1GfWRYaVOaQt1XwuQzk8M9lGomX0L9f/WV0lhK9oqDfk6MOCcRsvMr4L6LGTptK5LSo3ePfND6ECtPbGnb+WQVE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849689; c=relaxed/simple; bh=rH4xWmOjEh9ggvK4HZA3bxS+4Y2+sObA+7spUVITJew=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=hSWg5kqaG61PMuEDI+MBa37OVaqvbD/rF+der7HxtSx2bdGCmpZCEyfMYum6KvGtbOiV4Wm2IULdGImOUJ7lT92yY2pUSeWb+hSXGLBQ1/L++KNdIN/Co0suU1vB9jp2GzLLtS1+aetFQ0jHXgLZPzp0MEtnMLfEbbw+0r+nTVI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=GVkfeJzU; arc=none smtp.client-ip=209.85.166.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="GVkfeJzU" Received: by mail-io1-f44.google.com with SMTP id ca18e2360f4ac-7d6112ba6baso58028439f.1 for ; Thu, 11 Apr 2024 08:34:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849686; x=1713454486; 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=alLIDaWImDwGCGuPvCF5X8BDMP8Ns0YtWOOvHhwc1lY=; b=GVkfeJzUvTuTOtMsLSh9UiPcciLp8mK/Q0u45InwzaMtpzsicGE0NKI4L3BH32DjHK Wl/VYmG5SWI/dSS5ECEAxJ4rCoDVqH2NPm4KvVXp+eEJvfhzUxVvQnvAPIMCBcxdyIbM pjYuYj+QJZaQFJlKnuxm9iO/3MkpmluFyScjqDoDZ5tYB6LC60rQPl5Frtlxfaa4HH24 gO0LdjY+HmtKf+jLaSSgN3xaLrxO6YHO3C4clOB8dM4FTk6rkAliUj4fgikYPltp59gd LaKhKSlDDO0Pwu0HGH3BVCtoe1jXPZyw+V/Fx4kKJ8OIeI5cygKAzZ+HyJDWwHJMc3RB Q9zw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849686; x=1713454486; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=alLIDaWImDwGCGuPvCF5X8BDMP8Ns0YtWOOvHhwc1lY=; b=TIi75Ay0C1x6K5VEi27seAuMCBeNbk4KTtt4bBbKEGkKUiMOedKEVIFTMwbNfWcuiG kp8DLgln64dmuk/sBrGjXVNqYbrRngGBTUmCDhUu1Qg3OsqvYgaWCcO9+cV9ojb4YaLF Qvj+1Edn3iPl2wgoqLzN1SIyZhlZzWDURZEs6hLZ05mSkP3K38xVqcijOKaFuVbgUMp7 f4wjlqexsXqe2AVqFdamDvE0QaQcvXNFXEYlIm6kozMNT1d/UPezAT/j1bO3BXLGbg4g SVnQ4RuBf5p/sD98glCUcyBv7/DGfVI6+WM9xMF/GnUmUOHlUZj0PMIbrvLOpiQeJAG9 pp3A== X-Gm-Message-State: AOJu0YwPoUEAIFENj1nex6gFyYJV3+jE2ny8RBmdirk31LvAv9pVQXiH rux3JSvi47dy52zNy+o3Zqg10Kgr0tvmWMWYhAKsch4apFFrdmSb7PNCUUkUZr24zed8V4xcplA b X-Google-Smtp-Source: AGHT+IHHwIF27V4XkjzNd2/o/b/IEBGt7lTfrtEZ/MpiaVTYdYh22Z+v763odGvqFzijun63z50x5g== X-Received: by 2002:a6b:f312:0:b0:7d5:de23:13a9 with SMTP id m18-20020a6bf312000000b007d5de2313a9mr157230ioh.1.1712849686524; Thu, 11 Apr 2024 08:34:46 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.34.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:34:44 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 110/437] fs/pstore: convert to read/write iterators Date: Thu, 11 Apr 2024 09:14:10 -0600 Message-ID: <20240411153126.16201-111-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- fs/pstore/ftrace.c | 16 ++++++++-------- fs/pstore/inode.c | 13 ++++++------- fs/pstore/pmsg.c | 3 ++- 3 files changed, 16 insertions(+), 16 deletions(-) diff --git a/fs/pstore/ftrace.c b/fs/pstore/ftrace.c index 776cae20af4e..8c7244df7787 100644 --- a/fs/pstore/ftrace.c +++ b/fs/pstore/ftrace.c @@ -88,13 +88,14 @@ static int pstore_set_ftrace_enabled(bool on) return ret; } =20 -static ssize_t pstore_ftrace_knob_write(struct file *f, const char __user = *buf, - size_t count, loff_t *ppos) +static ssize_t pstore_ftrace_knob_write(struct kiocb *iocb, + struct iov_iter *from) { + size_t count =3D iov_iter_count(from); u8 on; ssize_t ret; =20 - ret =3D kstrtou8_from_user(buf, count, 2, &on); + ret =3D kstrtou8_from_iter(from, count, 2, &on); if (ret) return ret; =20 @@ -108,18 +109,17 @@ static ssize_t pstore_ftrace_knob_write(struct file *= f, const char __user *buf, return ret; } =20 -static ssize_t pstore_ftrace_knob_read(struct file *f, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t pstore_ftrace_knob_read(struct kiocb *iocb, struct iov_iter= *to) { char val[] =3D { '0' + pstore_ftrace_enabled, '\n' }; =20 - return simple_read_from_buffer(buf, count, ppos, val, sizeof(val)); + return simple_copy_to_iter(val, &iocb->ki_pos, sizeof(val), to); } =20 static const struct file_operations pstore_knob_fops =3D { .open =3D simple_open, - .read =3D pstore_ftrace_knob_read, - .write =3D pstore_ftrace_knob_write, + .read_iter =3D pstore_ftrace_knob_read, + .write_iter =3D pstore_ftrace_knob_write, }; =20 static struct dentry *pstore_ftrace_dir; diff --git a/fs/pstore/inode.c b/fs/pstore/inode.c index 56815799ce79..581f014149a9 100644 --- a/fs/pstore/inode.c +++ b/fs/pstore/inode.c @@ -127,16 +127,15 @@ static const struct seq_operations pstore_ftrace_seq_= ops =3D { .show =3D pstore_ftrace_seq_show, }; =20 -static ssize_t pstore_file_read(struct file *file, char __user *userbuf, - size_t count, loff_t *ppos) +static ssize_t pstore_file_read(struct kiocb *iocb, struct iov_iter *to) { - struct seq_file *sf =3D file->private_data; + struct seq_file *sf =3D iocb->ki_filp->private_data; struct pstore_private *ps =3D sf->private; =20 if (ps->record->type =3D=3D PSTORE_TYPE_FTRACE) - return seq_read(file, userbuf, count, ppos); - return simple_read_from_buffer(userbuf, count, ppos, - ps->record->buf, ps->total_size); + return seq_read_iter(iocb, to); + return simple_copy_to_iter(ps->record->buf, &iocb->ki_pos, + ps->total_size, to); } =20 static int pstore_file_open(struct inode *inode, struct file *file) @@ -170,7 +169,7 @@ static loff_t pstore_file_llseek(struct file *file, lof= f_t off, int whence) =20 static const struct file_operations pstore_file_operations =3D { .open =3D pstore_file_open, - .read =3D pstore_file_read, + .read_iter =3D pstore_file_read, .llseek =3D pstore_file_llseek, .release =3D seq_release, }; diff --git a/fs/pstore/pmsg.c b/fs/pstore/pmsg.c index 55f139afa327..83fef50ecce5 100644 --- a/fs/pstore/pmsg.c +++ b/fs/pstore/pmsg.c @@ -33,11 +33,12 @@ static ssize_t write_pmsg(struct file *file, const char= __user *buf, mutex_unlock(&pmsg_lock); return ret ? ret : count; } +FOPS_WRITE_ITER_HELPER(write_pmsg); =20 static const struct file_operations pmsg_fops =3D { .owner =3D THIS_MODULE, .llseek =3D noop_llseek, - .write =3D write_pmsg, + .write_iter =3D write_pmsg_iter, }; =20 static struct class *pmsg_class; --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f49.google.com (mail-io1-f49.google.com [209.85.166.49]) (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 4CBA41514CC for ; Thu, 11 Apr 2024 15:34:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849690; cv=none; b=P/VzIbgf2hGhv6xt8NYPl4l4RyD/BVMFcg9N0RE2aipGhhXGqggUgZ/U3+cg/zH8M1aPnbSEMBEMA6iDz/jlCP68vMQCLCNJTvlLCv6Oiq6WiJKDO8pOMHCXf1pY53fvaJyHGj7dFzb1f9cs+GSDdbRdvX8RfOz04vh4RRYd7co= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849690; c=relaxed/simple; bh=wjPbRD+SxzfVOSuUJ+DZj7X2BEm3PyDEY0MdcUM6Ssk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=mMSxZi2ToaFNBO5x4zT6L+iqr7PyIGT4oP2rZxi0KHdTez8XkB/dVZhhERdDZTnyXa1OpGOtdGA32NhxZQDyWIkzjDpMTR7tGqht4m5tg7qkV7z0MLhy4Vstx/3E+WnIAqAQPzdTiy86dSRO4Fsn80wokdYUANVstfhE17XuJmM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=ZWFq2oSr; arc=none smtp.client-ip=209.85.166.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="ZWFq2oSr" Received: by mail-io1-f49.google.com with SMTP id ca18e2360f4ac-7d6112ba6baso58028939f.1 for ; Thu, 11 Apr 2024 08:34:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849688; x=1713454488; 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=uxOEKYmjmqxvph5eRX+z+JQl4yii6xdSIwuuep0YMHY=; b=ZWFq2oSrlZ2y5xs21Luz6L9yVk4lwgzm71A+qoC8cG2Idcc6nVROPIGwMrHhmps2nb gKzbhKopw8QT8IXvjrnc8jvRrySpWXLLm00/aZhq9B3tV/5Pl8W9+G2tA28eGTWf5gXA 2XyuYtei1tE750MpFADTILmkIlTdmfphf8ODNh/uoVfBYe9gEHOJexlWUGzmtmLlit0J ommRfmfSEa8RbmtdCt+4s0FtqmZHNJ6Ht6x3YaqmqEwEbrheMKLW7wd6gcJ+nUOpInKh C9O12N3dJmyvcrxV7Zx2WEgi2EVRtw+mxsn3ZMgItFcrNQglSSAtOEAYW8aJ6aB0Ly/i RdMQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849688; x=1713454488; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=uxOEKYmjmqxvph5eRX+z+JQl4yii6xdSIwuuep0YMHY=; b=oWs5RgqRp78ialGDpGsCbsMZOWcDjxblKt82Ncbu5TK5yYiBKEXt7jYO4gcVPfwZA2 JVXg0zBbWpoFa4I03o2uBmhBa/6f3+hjWH2Blbpbq7eC1QYNX8NJbeQ/uIRT/2m310Uj YOETYA85EoDdoNlTIKXvsp1axOX5PBGlqXFyS/NOI3RZE4RxrfLvkWWqlwi2Q0KaaRQX wjvcgyZ7sHd7r60BkM7m3Z6d9ZFsWIyJATBuc+7a+WKySAKvsAzbQ0N+9mFCkTeWwjlz CgBCfBHcC2IkzAWG2cy8xaUsSHz1PX490xRwChKf7L/5EI6IG+noA2nLzg2FONQJnnl0 ZHpA== X-Gm-Message-State: AOJu0Yxv6Nv2aZI80UEoDg+dzJ9+NB5lE/nNmuRJimUGvav/CpkRRpT4 6kqh/ZEOLTjd4Dxpe13EwLYbavlqaFopivdVLIaemz7Y2RfWDTBRcmoGurXuXjuLz/y/4mYwQXR M X-Google-Smtp-Source: AGHT+IG6VcFcbYSmPuk/QQx1paNFOrXzfLVr/w1cPc/RoPbI/VZ74sVjzQRExzYlh9VYjZL1XKLHgA== X-Received: by 2002:a6b:cd08:0:b0:7d5:fe3e:90ff with SMTP id d8-20020a6bcd08000000b007d5fe3e90ffmr202361iog.0.1712849688286; Thu, 11 Apr 2024 08:34:48 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.34.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:34:46 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 111/437] drivers/gpio: convert to ->read_iter and ->write_iter Date: Thu, 11 Apr 2024 09:14:11 -0600 Message-ID: <20240411153126.16201-112-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/gpio/gpio-mockup.c | 26 +++++++++++------------ drivers/gpio/gpiolib-cdev.c | 41 ++++++++++++++++++------------------- 2 files changed, 32 insertions(+), 35 deletions(-) diff --git a/drivers/gpio/gpio-mockup.c b/drivers/gpio/gpio-mockup.c index 455eecf6380e..34fc0f921284 100644 --- a/drivers/gpio/gpio-mockup.c +++ b/drivers/gpio/gpio-mockup.c @@ -265,9 +265,7 @@ static void gpio_mockup_free(struct gpio_chip *gc, unsi= gned int offset) __gpio_mockup_set(chip, offset, chip->lines[offset].pull); } =20 -static ssize_t gpio_mockup_debugfs_read(struct file *file, - char __user *usr_buf, - size_t size, loff_t *ppos) +static ssize_t gpio_mockup_debugfs_read(struct kiocb *iocb, struct iov_ite= r *to) { struct gpio_mockup_dbgfs_private *priv; struct gpio_mockup_chip *chip; @@ -276,10 +274,10 @@ static ssize_t gpio_mockup_debugfs_read(struct file *= file, int val, cnt; char buf[3]; =20 - if (*ppos !=3D 0) + if (iocb->ki_pos !=3D 0) return 0; =20 - sfile =3D file->private_data; + sfile =3D iocb->ki_filp->private_data; priv =3D sfile->private; chip =3D priv->chip; gc =3D &chip->gc; @@ -287,27 +285,27 @@ static ssize_t gpio_mockup_debugfs_read(struct file *= file, val =3D gpio_mockup_get(gc, priv->offset); cnt =3D snprintf(buf, sizeof(buf), "%d\n", val); =20 - return simple_read_from_buffer(usr_buf, size, ppos, buf, cnt); + return simple_copy_to_iter(buf, &iocb->ki_pos, cnt, to); } =20 -static ssize_t gpio_mockup_debugfs_write(struct file *file, - const char __user *usr_buf, - size_t size, loff_t *ppos) +static ssize_t gpio_mockup_debugfs_write(struct kiocb *iocb, + struct iov_iter *from) { struct gpio_mockup_dbgfs_private *priv; + size_t size =3D iov_iter_count(from); int rv, val; struct seq_file *sfile; =20 - if (*ppos !=3D 0) + if (iocb->ki_pos !=3D 0) return -EINVAL; =20 - rv =3D kstrtoint_from_user(usr_buf, size, 0, &val); + rv =3D kstrtoint_from_iter(from, size, 0, &val); if (rv) return rv; if (val !=3D 0 && val !=3D 1) return -EINVAL; =20 - sfile =3D file->private_data; + sfile =3D iocb->ki_filp->private_data; priv =3D sfile->private; rv =3D gpio_mockup_apply_pull(priv->chip, priv->offset, val); if (rv) @@ -345,8 +343,8 @@ static int gpio_mockup_debugfs_open(struct inode *inode= , struct file *file) static const struct file_operations gpio_mockup_debugfs_ops =3D { .owner =3D THIS_MODULE, .open =3D gpio_mockup_debugfs_open, - .read =3D gpio_mockup_debugfs_read, - .write =3D gpio_mockup_debugfs_write, + .read_iter =3D gpio_mockup_debugfs_read, + .write_iter =3D gpio_mockup_debugfs_write, .llseek =3D no_llseek, .release =3D single_release, }; diff --git a/drivers/gpio/gpiolib-cdev.c b/drivers/gpio/gpiolib-cdev.c index d09c7d728365..25e054a42bb1 100644 --- a/drivers/gpio/gpiolib-cdev.c +++ b/drivers/gpio/gpiolib-cdev.c @@ -1597,10 +1597,10 @@ static __poll_t linereq_poll(struct file *file, return events; } =20 -static ssize_t linereq_read(struct file *file, char __user *buf, - size_t count, loff_t *f_ps) +static ssize_t linereq_read(struct kiocb *iocb, struct iov_iter *to) { - struct linereq *lr =3D file->private_data; + struct linereq *lr =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(to); struct gpio_v2_line_event le; ssize_t bytes_read =3D 0; int ret; @@ -1619,7 +1619,7 @@ static ssize_t linereq_read(struct file *file, char _= _user *buf, if (bytes_read) return bytes_read; =20 - if (file->f_flags & O_NONBLOCK) + if (iocb->ki_filp->f_flags & O_NONBLOCK) return -EAGAIN; =20 ret =3D wait_event_interruptible_locked(lr->wait, @@ -1640,7 +1640,7 @@ static ssize_t linereq_read(struct file *file, char _= _user *buf, break; } =20 - if (copy_to_user(buf + bytes_read, &le, sizeof(le))) + if (!copy_to_iter_full(&le, sizeof(le), to)) return -EFAULT; bytes_read +=3D sizeof(le); } while (count >=3D bytes_read + sizeof(le)); @@ -1698,7 +1698,7 @@ static void linereq_show_fdinfo(struct seq_file *out,= struct file *file) =20 static const struct file_operations line_fileops =3D { .release =3D linereq_release, - .read =3D linereq_read, + .read_iter =3D linereq_read, .poll =3D linereq_poll, .owner =3D THIS_MODULE, .llseek =3D noop_llseek, @@ -1935,10 +1935,10 @@ struct compat_gpioeevent_data { u32 id; }; =20 -static ssize_t lineevent_read(struct file *file, char __user *buf, - size_t count, loff_t *f_ps) +static ssize_t lineevent_read(struct kiocb *iocb, struct iov_iter *to) { - struct lineevent_state *le =3D file->private_data; + struct lineevent_state *le =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(to); struct gpioevent_data ge; ssize_t bytes_read =3D 0; ssize_t ge_size; @@ -1971,7 +1971,7 @@ static ssize_t lineevent_read(struct file *file, char= __user *buf, if (bytes_read) return bytes_read; =20 - if (file->f_flags & O_NONBLOCK) + if (iocb->ki_filp->f_flags & O_NONBLOCK) return -EAGAIN; =20 ret =3D wait_event_interruptible_locked(le->wait, @@ -1992,7 +1992,7 @@ static ssize_t lineevent_read(struct file *file, char= __user *buf, break; } =20 - if (copy_to_user(buf + bytes_read, &ge, ge_size)) + if (!copy_to_iter_full(&ge, ge_size, to)) return -EFAULT; bytes_read +=3D ge_size; } while (count >=3D bytes_read + ge_size); @@ -2064,7 +2064,7 @@ static long lineevent_ioctl_compat(struct file *file,= unsigned int cmd, =20 static const struct file_operations lineevent_fileops =3D { .release =3D lineevent_release, - .read =3D lineevent_read, + .read_iter =3D lineevent_read, .poll =3D lineevent_poll, .owner =3D THIS_MODULE, .llseek =3D noop_llseek, @@ -2649,11 +2649,11 @@ static __poll_t lineinfo_watch_poll(struct file *fi= le, return events; } =20 -static ssize_t lineinfo_watch_read(struct file *file, char __user *buf, - size_t count, loff_t *off) +static ssize_t lineinfo_watch_read(struct kiocb *iocb, struct iov_iter *to) { - struct gpio_chardev_data *cdev =3D file->private_data; + struct gpio_chardev_data *cdev =3D iocb->ki_filp->private_data; struct gpio_v2_line_info_changed event; + size_t count =3D iov_iter_count(to); ssize_t bytes_read =3D 0; int ret; size_t event_size; @@ -2675,7 +2675,7 @@ static ssize_t lineinfo_watch_read(struct file *file,= char __user *buf, if (bytes_read) return bytes_read; =20 - if (file->f_flags & O_NONBLOCK) + if (iocb->ki_filp->f_flags & O_NONBLOCK) return -EAGAIN; =20 ret =3D wait_event_interruptible_locked(cdev->wait, @@ -2702,18 +2702,17 @@ static ssize_t lineinfo_watch_read(struct file *fil= e, char __user *buf, =20 #ifdef CONFIG_GPIO_CDEV_V1 if (event_size =3D=3D sizeof(struct gpio_v2_line_info_changed)) { - if (copy_to_user(buf + bytes_read, &event, event_size)) + if (!copy_to_iter_full(&event, event_size, to)) return -EFAULT; } else { struct gpioline_info_changed event_v1; =20 gpio_v2_line_info_changed_to_v1(&event, &event_v1); - if (copy_to_user(buf + bytes_read, &event_v1, - event_size)) + if (!copy_to_iter_full(&event_v1, event_size, to)) return -EFAULT; } #else - if (copy_to_user(buf + bytes_read, &event, event_size)) + if (!copy_to_iter_full(&event, event_size, to)) return -EFAULT; #endif bytes_read +=3D event_size; @@ -2814,7 +2813,7 @@ static const struct file_operations gpio_fileops =3D { .release =3D gpio_chrdev_release, .open =3D gpio_chrdev_open, .poll =3D lineinfo_watch_poll, - .read =3D lineinfo_watch_read, + .read_iter =3D lineinfo_watch_read, .owner =3D THIS_MODULE, .llseek =3D no_llseek, .unlocked_ioctl =3D gpio_ioctl, --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-il1-f181.google.com (mail-il1-f181.google.com [209.85.166.181]) (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 335D415217E for ; Thu, 11 Apr 2024 15:34:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.181 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849693; cv=none; b=nBucsPytVoJsOKXT5fHFIYqK/Qoy5iuWnJPpCp3Q0hFDN49pO/ehsSn+eIxpwf4kJzR97utEdB65ayGmslyyGtnCTqXo6If3gsSFAM9SghxL0NPScjnZQUMH41ByjWE9QAQ9dDAttP8HGIQ19oGqfL4GEoCfCUlfl5H33+JQBec= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849693; c=relaxed/simple; bh=SKTBmh2UAE3xmKMgSJomMq0Xvh6N6ZhuZZ/9LC3Ayvk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=cliN3/5a2z95dxiuwH+z1d8B5b7wgrkw1vMcnbUJ9cf7u9lM5lR+NpXIK7AT2XGwlIR4V/ixlfM/dCWy51HTQ03cA/l1ge38h8ZcoKx5DNrl/NdQyoBZ0CHNUAfXLsPqWaFpxDpQ4N8bj5vfFBVV9LpiqOcYS2/ZTaV/meOK1iw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=0eVsB3z7; arc=none smtp.client-ip=209.85.166.181 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="0eVsB3z7" Received: by mail-il1-f181.google.com with SMTP id e9e14a558f8ab-36a34b68277so108565ab.0 for ; Thu, 11 Apr 2024 08:34:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849690; x=1713454490; 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=p6/a+TEI2ObX1b5gx++9Hl7E/Le33FV4tiF1Hiyv8hg=; b=0eVsB3z77n5mKWFLWHdVAzs8l7lr0oGOyvhCRSKGLoLCY4wYIpVEnRHSMwDdHZZgD1 FSTnl28322T3D7DkClw3UQ5vuYfZEUbmDQOHgwVj7X+WlNPys1oYd9xeRro9++5J+tHj hK3S9Raa8AnMU742oNO5odzDS9TmWzYPhlyG4jbIaSyohTe6BJZcJU+450VKsC85P7ZS JjPy7Q8TXDTRi40SO7x/UV2JtYyNKk8apVn3uWedWdSfxxVOJRZHKiLurhkgX4MrcDI3 AAt6PDEy/nl3fU1zbY+RVy5kIclGdb2CcHASgm8fdQgTLNkguKM9i3cD0xcKeOtY8JTQ AvRw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849690; x=1713454490; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=p6/a+TEI2ObX1b5gx++9Hl7E/Le33FV4tiF1Hiyv8hg=; b=RwBohwM0AgRQtaHV/Vhx+e5vh9pmdPyLFmELcHhPsXCRX8D3s8yV1xWcdYY1OL/nAI +pnXnBSQG2sR3EKsh8n/UbGFfCaop+/5tjz62K9IE3P1GFRPSxMX5e2j/7rGZoFVlo6q gvJNP8FG45t7/yiO7RlkQfj7sdBy481PSXlDALjH9fB6R8OEq3AefmCrsEN2PPhljBpX j2dZNQrV94biVReOSIo1weHXnOp3HWpCVprfJHkG9z/DxshtwuhSlUJXlPI+e+PMvbS2 ZEWoZLY6iZyG8rcSLDlPx6YDENL3lDqebFxtCi5n790C7dmWafFKymRNWhRVvb1Ja2YX 3niw== X-Gm-Message-State: AOJu0Ywn6K8hFe8PzYTjPCIygPvubkcSwjxU1CqqFgLr/7O2fUrhyPqX ujpRCBAUKS+dozv8LrbjhKtAeVxJNBX266D4YvfufcDgGn7nf8otMsQmp6V//bwG/3bj2gEK9Lv P X-Google-Smtp-Source: AGHT+IGnP0NKuusN3kNsO0TBsYgIfX883hCofwyd+y1wKdj8rMT/EwrD5lyD/Qlar4eaUE+9wZAi5g== X-Received: by 2002:a6b:6605:0:b0:7d4:1dae:da1a with SMTP id a5-20020a6b6605000000b007d41daeda1amr145806ioc.2.1712849689992; Thu, 11 Apr 2024 08:34:49 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.34.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:34:48 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 112/437] drivers/bluetooth: convert to read/write iterators Date: Thu, 11 Apr 2024 09:14:12 -0600 Message-ID: <20240411153126.16201-113-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/bluetooth/btmrvl_debugfs.c | 57 +++++++++++------------ drivers/bluetooth/btusb.c | 20 ++++---- drivers/bluetooth/hci_vhci.c | 73 ++++++++++++++---------------- 3 files changed, 70 insertions(+), 80 deletions(-) diff --git a/drivers/bluetooth/btmrvl_debugfs.c b/drivers/bluetooth/btmrvl_= debugfs.c index 32329a2e526f..e78343575146 100644 --- a/drivers/bluetooth/btmrvl_debugfs.c +++ b/drivers/bluetooth/btmrvl_debugfs.c @@ -18,13 +18,13 @@ struct btmrvl_debugfs_data { struct dentry *status_dir; }; =20 -static ssize_t btmrvl_hscfgcmd_write(struct file *file, - const char __user *ubuf, size_t count, loff_t *ppos) +static ssize_t btmrvl_hscfgcmd_write(struct kiocb *iocb, struct iov_iter *= from) { - struct btmrvl_private *priv =3D file->private_data; + struct btmrvl_private *priv =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); long result, ret; =20 - ret =3D kstrtol_from_user(ubuf, count, 10, &result); + ret =3D kstrtol_from_iter(from, count, 10, &result); if (ret) return ret; =20 @@ -38,33 +38,32 @@ static ssize_t btmrvl_hscfgcmd_write(struct file *file, return count; } =20 -static ssize_t btmrvl_hscfgcmd_read(struct file *file, char __user *userbu= f, - size_t count, loff_t *ppos) +static ssize_t btmrvl_hscfgcmd_read(struct kiocb *iocb, struct iov_iter *t= o) { - struct btmrvl_private *priv =3D file->private_data; + struct btmrvl_private *priv =3D iocb->ki_filp->private_data; char buf[16]; int ret; =20 ret =3D snprintf(buf, sizeof(buf) - 1, "%d\n", priv->btmrvl_dev.hscfgcmd); =20 - return simple_read_from_buffer(userbuf, count, ppos, buf, ret); + return simple_copy_to_iter(buf, &iocb->ki_pos, ret, to); } =20 static const struct file_operations btmrvl_hscfgcmd_fops =3D { - .read =3D btmrvl_hscfgcmd_read, - .write =3D btmrvl_hscfgcmd_write, + .read_iter =3D btmrvl_hscfgcmd_read, + .write_iter =3D btmrvl_hscfgcmd_write, .open =3D simple_open, .llseek =3D default_llseek, }; =20 -static ssize_t btmrvl_pscmd_write(struct file *file, const char __user *ub= uf, - size_t count, loff_t *ppos) +static ssize_t btmrvl_pscmd_write(struct kiocb *iocb, struct iov_iter *fro= m) { - struct btmrvl_private *priv =3D file->private_data; + struct btmrvl_private *priv =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); long result, ret; =20 - ret =3D kstrtol_from_user(ubuf, count, 10, &result); + ret =3D kstrtol_from_iter(from, count, 10, &result); if (ret) return ret; =20 @@ -79,32 +78,31 @@ static ssize_t btmrvl_pscmd_write(struct file *file, co= nst char __user *ubuf, =20 } =20 -static ssize_t btmrvl_pscmd_read(struct file *file, char __user *userbuf, - size_t count, loff_t *ppos) +static ssize_t btmrvl_pscmd_read(struct kiocb *iocb, struct iov_iter *to) { - struct btmrvl_private *priv =3D file->private_data; + struct btmrvl_private *priv =3D iocb->ki_filp->private_data; char buf[16]; int ret; =20 ret =3D snprintf(buf, sizeof(buf) - 1, "%d\n", priv->btmrvl_dev.pscmd); =20 - return simple_read_from_buffer(userbuf, count, ppos, buf, ret); + return simple_copy_to_iter(buf, &iocb->ki_pos, ret, to); } =20 static const struct file_operations btmrvl_pscmd_fops =3D { - .read =3D btmrvl_pscmd_read, - .write =3D btmrvl_pscmd_write, + .read_iter =3D btmrvl_pscmd_read, + .write_iter =3D btmrvl_pscmd_write, .open =3D simple_open, .llseek =3D default_llseek, }; =20 -static ssize_t btmrvl_hscmd_write(struct file *file, const char __user *ub= uf, - size_t count, loff_t *ppos) +static ssize_t btmrvl_hscmd_write(struct kiocb *iocb, struct iov_iter *fro= m) { - struct btmrvl_private *priv =3D file->private_data; + struct btmrvl_private *priv =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); long result, ret; =20 - ret =3D kstrtol_from_user(ubuf, count, 10, &result); + ret =3D kstrtol_from_iter(from, count, 10, &result); if (ret) return ret; =20 @@ -117,21 +115,20 @@ static ssize_t btmrvl_hscmd_write(struct file *file, = const char __user *ubuf, return count; } =20 -static ssize_t btmrvl_hscmd_read(struct file *file, char __user *userbuf, - size_t count, loff_t *ppos) +static ssize_t btmrvl_hscmd_read(struct kiocb *iocb, struct iov_iter *to) { - struct btmrvl_private *priv =3D file->private_data; + struct btmrvl_private *priv =3D iocb->ki_filp->private_data; char buf[16]; int ret; =20 ret =3D snprintf(buf, sizeof(buf) - 1, "%d\n", priv->btmrvl_dev.hscmd); =20 - return simple_read_from_buffer(userbuf, count, ppos, buf, ret); + return simple_copy_to_iter(buf, &iocb->ki_pos, ret, to); } =20 static const struct file_operations btmrvl_hscmd_fops =3D { - .read =3D btmrvl_hscmd_read, - .write =3D btmrvl_hscmd_write, + .read_iter =3D btmrvl_hscmd_read, + .write_iter =3D btmrvl_hscmd_write, .open =3D simple_open, .llseek =3D default_llseek, }; diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c index 06e915b57283..7dbcd00ed4ed 100644 --- a/drivers/bluetooth/btusb.c +++ b/drivers/bluetooth/btusb.c @@ -4161,27 +4161,25 @@ static int btusb_shutdown_qca(struct hci_dev *hdev) return 0; } =20 -static ssize_t force_poll_sync_read(struct file *file, char __user *user_b= uf, - size_t count, loff_t *ppos) +static ssize_t force_poll_sync_read(struct kiocb *iocb, struct iov_iter *t= o) { - struct btusb_data *data =3D file->private_data; + struct btusb_data *data =3D iocb->ki_filp->private_data; char buf[3]; =20 buf[0] =3D data->poll_sync ? 'Y' : 'N'; buf[1] =3D '\n'; buf[2] =3D '\0'; - return simple_read_from_buffer(user_buf, count, ppos, buf, 2); + return simple_copy_to_iter(buf, &iocb->ki_pos, 2, to); } =20 -static ssize_t force_poll_sync_write(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t force_poll_sync_write(struct kiocb *iocb, struct iov_iter *= from) { - struct btusb_data *data =3D file->private_data; + struct btusb_data *data =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); bool enable; int err; =20 - err =3D kstrtobool_from_user(user_buf, count, &enable); + err =3D kstrtobool_from_iter(from, count, &enable); if (err) return err; =20 @@ -4199,8 +4197,8 @@ static ssize_t force_poll_sync_write(struct file *fil= e, =20 static const struct file_operations force_poll_sync_fops =3D { .open =3D simple_open, - .read =3D force_poll_sync_read, - .write =3D force_poll_sync_write, + .read_iter =3D force_poll_sync_read, + .write_iter =3D force_poll_sync_write, .llseek =3D default_llseek, }; =20 diff --git a/drivers/bluetooth/hci_vhci.c b/drivers/bluetooth/hci_vhci.c index 572d68d52965..0d310a7d78f4 100644 --- a/drivers/bluetooth/hci_vhci.c +++ b/drivers/bluetooth/hci_vhci.c @@ -109,16 +109,15 @@ static bool vhci_wakeup(struct hci_dev *hdev) return data->wakeup; } =20 -static ssize_t force_suspend_read(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t force_suspend_read(struct kiocb *iocb, struct iov_iter *to) { - struct vhci_data *data =3D file->private_data; + struct vhci_data *data =3D iocb->ki_filp->private_data; char buf[3]; =20 buf[0] =3D data->suspended ? 'Y' : 'N'; buf[1] =3D '\n'; buf[2] =3D '\0'; - return simple_read_from_buffer(user_buf, count, ppos, buf, 2); + return simple_copy_to_iter(buf, &iocb->ki_pos, 2, to); } =20 static void vhci_suspend_work(struct work_struct *work) @@ -132,15 +131,14 @@ static void vhci_suspend_work(struct work_struct *wor= k) hci_resume_dev(data->hdev); } =20 -static ssize_t force_suspend_write(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t force_suspend_write(struct kiocb *iocb, struct iov_iter *fr= om) { - struct vhci_data *data =3D file->private_data; + struct vhci_data *data =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); bool enable; int err; =20 - err =3D kstrtobool_from_user(user_buf, count, &enable); + err =3D kstrtobool_from_iter(from, count, &enable); if (err) return err; =20 @@ -156,32 +154,30 @@ static ssize_t force_suspend_write(struct file *file, =20 static const struct file_operations force_suspend_fops =3D { .open =3D simple_open, - .read =3D force_suspend_read, - .write =3D force_suspend_write, + .read_iter =3D force_suspend_read, + .write_iter =3D force_suspend_write, .llseek =3D default_llseek, }; =20 -static ssize_t force_wakeup_read(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t force_wakeup_read(struct kiocb *iocb, struct iov_iter *to) { - struct vhci_data *data =3D file->private_data; + struct vhci_data *data =3D iocb->ki_filp->private_data; char buf[3]; =20 buf[0] =3D data->wakeup ? 'Y' : 'N'; buf[1] =3D '\n'; buf[2] =3D '\0'; - return simple_read_from_buffer(user_buf, count, ppos, buf, 2); + return simple_copy_to_iter(buf, &iocb->ki_pos, 2, to); } =20 -static ssize_t force_wakeup_write(struct file *file, - const char __user *user_buf, size_t count, - loff_t *ppos) +static ssize_t force_wakeup_write(struct kiocb *iocb, struct iov_iter *fro= m) { - struct vhci_data *data =3D file->private_data; + struct vhci_data *data =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); bool enable; int err; =20 - err =3D kstrtobool_from_user(user_buf, count, &enable); + err =3D kstrtobool_from_iter(from, count, &enable); if (err) return err; =20 @@ -195,8 +191,8 @@ static ssize_t force_wakeup_write(struct file *file, =20 static const struct file_operations force_wakeup_fops =3D { .open =3D simple_open, - .read =3D force_wakeup_read, - .write =3D force_wakeup_write, + .read_iter =3D force_wakeup_read, + .write_iter =3D force_wakeup_write, .llseek =3D default_llseek, }; =20 @@ -227,27 +223,25 @@ static int msft_opcode_get(void *data, u64 *val) DEFINE_DEBUGFS_ATTRIBUTE(msft_opcode_fops, msft_opcode_get, msft_opcode_se= t, "%llu\n"); =20 -static ssize_t aosp_capable_read(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t aosp_capable_read(struct kiocb *iocb, struct iov_iter *to) { - struct vhci_data *vhci =3D file->private_data; + struct vhci_data *vhci =3D iocb->ki_filp->private_data; char buf[3]; =20 buf[0] =3D vhci->aosp_capable ? 'Y' : 'N'; buf[1] =3D '\n'; buf[2] =3D '\0'; - return simple_read_from_buffer(user_buf, count, ppos, buf, 2); + return simple_copy_to_iter(buf, &iocb->ki_pos, 2, to); } =20 -static ssize_t aosp_capable_write(struct file *file, - const char __user *user_buf, size_t count, - loff_t *ppos) +static ssize_t aosp_capable_write(struct kiocb *iocb, struct iov_iter *fro= m) { - struct vhci_data *vhci =3D file->private_data; + struct vhci_data *vhci =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); bool enable; int err; =20 - err =3D kstrtobool_from_user(user_buf, count, &enable); + err =3D kstrtobool_from_iter(from, count, &enable); if (err) return err; =20 @@ -264,8 +258,8 @@ static ssize_t aosp_capable_write(struct file *file, =20 static const struct file_operations aosp_capable_fops =3D { .open =3D simple_open, - .read =3D aosp_capable_read, - .write =3D aosp_capable_write, + .read_iter =3D aosp_capable_read, + .write_iter =3D aosp_capable_write, .llseek =3D default_llseek, }; =20 @@ -320,10 +314,10 @@ static inline void force_devcd_timeout(struct hci_dev= *hdev, #endif } =20 -static ssize_t force_devcd_write(struct file *file, const char __user *use= r_buf, - size_t count, loff_t *ppos) +static ssize_t force_devcd_write(struct kiocb *iocb, struct iov_iter *from) { - struct vhci_data *data =3D file->private_data; + struct vhci_data *data =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); struct hci_dev *hdev =3D data->hdev; struct sk_buff *skb =3D NULL; struct devcoredump_test_data dump_data; @@ -334,7 +328,7 @@ static ssize_t force_devcd_write(struct file *file, con= st char __user *user_buf, count > sizeof(dump_data)) return -EINVAL; =20 - if (copy_from_user(&dump_data, user_buf, count)) + if (!copy_from_iter_full(&dump_data, count, from)) return -EFAULT; =20 data_size =3D count - offsetof(struct devcoredump_test_data, data); @@ -377,7 +371,7 @@ static ssize_t force_devcd_write(struct file *file, con= st char __user *user_buf, =20 static const struct file_operations force_devcoredump_fops =3D { .open =3D simple_open, - .write =3D force_devcd_write, + .write_iter =3D force_devcd_write, }; =20 static int __vhci_create_device(struct vhci_data *data, __u8 opcode) @@ -608,6 +602,7 @@ static ssize_t vhci_read(struct file *file, =20 return ret; } +FOPS_READ_ITER_HELPER(vhci_read); =20 static ssize_t vhci_write(struct kiocb *iocb, struct iov_iter *from) { @@ -684,7 +679,7 @@ static int vhci_release(struct inode *inode, struct fil= e *file) =20 static const struct file_operations vhci_fops =3D { .owner =3D THIS_MODULE, - .read =3D vhci_read, + .read_iter =3D vhci_read_iter, .write_iter =3D vhci_write, .poll =3D vhci_poll, .open =3D vhci_open, --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f41.google.com (mail-io1-f41.google.com [209.85.166.41]) (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 16B9F15099E for ; Thu, 11 Apr 2024 15:34:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849694; cv=none; b=jzQ2zNdH+RlY2FwhOxdYoW36eI8uRQ4+msQza9YDFXx92u7qoXtXzM1wQdKXrYHkz9juIQlpEd7HdUDp8weIGpfSaBmad8ie07WhcSusZreOjye72JQbcDU3xb2vKPKpr8aAzs4BIZ/lH4EqdwyYM92S282F368jGerGOG7keD8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849694; c=relaxed/simple; bh=y/ce69/aqB03GY2bHy8Ji+jTQsVf4bClC8FWgbEE/JI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=L+SwQkXzcDvdgI/N42naCpqGjjzygrRziEdcqXGupXKJP7Bmp/JTTUQBpqpx+wuz5vrkv7cxgCkVU3NxSktopxKBltxnaAEypL+A3GcUjiaqNUCbYw7M4Lz1vyfRSBvTNVb9PHTS5fd6nZsqAIl1vqB6xAbltfKLlck6R5ZA0Ho= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=bTIiqSpn; arc=none smtp.client-ip=209.85.166.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="bTIiqSpn" Received: by mail-io1-f41.google.com with SMTP id ca18e2360f4ac-7d0772bb5ffso180631939f.0 for ; Thu, 11 Apr 2024 08:34:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849692; x=1713454492; 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=dGm/2J6ZZmvwgdF1bJyFmOUKKVur6y6GQM+waBhkNb8=; b=bTIiqSpnZqtEK4QgYW1+/VzsPvY7PLSz50RWA19XaBpsLPifa4d4srPNe0IFJOZrHO 8CRq90563183cw95Gpce7XQEgoCJLgCiuEBuypn4NPSCGokRr6XBEocERguC4XZazhIM BZBMTWlTh0Xw0xmC9gQZuKzitXWrri4KeklP5V1Dmi918tzD3D1u5XBAoYaI9lnAWlHb ycPtRq2rSatgH+rzKffSXcM7EAoxYfb8XVo08gLtmaaDErJYoAIeH7RxsspcwTMadq1h 6XDSoKbwVzIo1Dzn1Lideeh4bAj9IHSlrjuHgbhTX/GOWcrv6RWd7u4Q7oZzngDK6HTu ZWeA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849692; x=1713454492; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=dGm/2J6ZZmvwgdF1bJyFmOUKKVur6y6GQM+waBhkNb8=; b=WPOh0LOAUidSVF/uqJgjwWeY/EhVNCJVsy5lpWrYVPZE83iko1DdBGjJk4Gkhp4uvF vWAtRLNa5jlPm2spRLhchqeM34MkGN3LTbd30BCnrmWzDFFhW4H3BuxmUGeH6WG1zsu5 OV7NXJTXaAea8z064FrTtpzQvJYv+lnFrg4hZVHHWe6TxjiGCk0Wngrk9OTiuX452G+6 5y2F2PX76PCFMSFJX9FCCpH5XabwqjW+RsQ6aKTHwhIk4z3+/BH4wcfQn7aCciQ3gn4E SQH5UC2J8BIdYu1PB9WaIbtjIpCFvX0CIjGTK6FCaxD4lseTySkx1XY7+CKWWQAX1KPo QVZA== X-Gm-Message-State: AOJu0Yy9a2+y+1htt4vGD7shzzGwbeTZAiVnRtv/YI7xHRLgx7dMKrE6 3m07c/8Gj34zJvH7SQmgbjWBN0ZOdz5R2233m5QFr8KYtwl9b1zkPJgVhpQ+ncuTHzpHYukGanP + X-Google-Smtp-Source: AGHT+IGVbWguojWtF2juk5DdqKfejkp/j2GAzgxWFyj6UiCp1PkYFLQrsTEFQ+HrthyeXA26+IXlAA== X-Received: by 2002:a6b:4e14:0:b0:7d6:631d:7b0 with SMTP id c20-20020a6b4e14000000b007d6631d07b0mr182443iob.1.1712849691884; Thu, 11 Apr 2024 08:34:51 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.34.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:34:50 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 113/437] drivers/ras: convert to read/write iterators Date: Thu, 11 Apr 2024 09:14:13 -0600 Message-ID: <20240411153126.16201-114-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/ras/amd/fmpm.c | 2 +- drivers/ras/debugfs.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/ras/amd/fmpm.c b/drivers/ras/amd/fmpm.c index 271dfad05d68..8e0a89491170 100644 --- a/drivers/ras/amd/fmpm.c +++ b/drivers/ras/amd/fmpm.c @@ -944,7 +944,7 @@ static int fmpm_open(struct inode *inode, struct file *= file) static const struct file_operations fmpm_fops =3D { .open =3D fmpm_open, .release =3D seq_release, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, }; =20 diff --git a/drivers/ras/debugfs.c b/drivers/ras/debugfs.c index 42afd3de68b2..e71046472cea 100644 --- a/drivers/ras/debugfs.c +++ b/drivers/ras/debugfs.c @@ -38,7 +38,7 @@ static int trace_release(struct inode *inode, struct file= *file) =20 static const struct file_operations trace_fops =3D { .open =3D trace_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D trace_release, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f50.google.com (mail-io1-f50.google.com [209.85.166.50]) (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 EA9B9152E04 for ; Thu, 11 Apr 2024 15:34:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849696; cv=none; b=sMZYQW7HC8VKBNr6422ZmTrSVeyoAYO4Qfo2/CgbtmTPToaztg5whNR4XDQ/lCUvGhWRJmR/9jnN8/wyKpKHr6xsFkWAHgwh5vnzgtC3Gn6NmuynOBO5RDtmTkOGsbMs0Kc+/JzkZasGLdOYZaQGCFJ+quUF+nkTmBJxbxRFfis= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849696; c=relaxed/simple; bh=nXG6kmHwiCRrbEqLKviUTLqC6axTR20XWmy6QjwpAc0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=C0JhJcXoiEBgCBY3zABDgKf1a25llTJf7KllrsMWkLugkaqXwVSbDFcVpI2jsg4E6h3KWMiZAv9jKpu1HYM/NvAS67SDMdawN4dezHvOtwKJUAiaeLAz/GGH77N9BI6Ck2tL2CQGenU9/PcWrfprwYb9ZDNX15B/UfyT2sAavPs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=N/i8nAnv; arc=none smtp.client-ip=209.85.166.50 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="N/i8nAnv" Received: by mail-io1-f50.google.com with SMTP id ca18e2360f4ac-7d6812b37a6so8919639f.0 for ; Thu, 11 Apr 2024 08:34:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849694; x=1713454494; 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=t5CU/zKW6n1HMZWhlDK5mPBQ7RFUZIy9M1CWJFuC0s4=; b=N/i8nAnvhkEZyyAWXSXnNhIAHKW7l5KvG4rFba+nAFUsNBVCh8Hb/YfM/dkUopXMGn YhyzZ6sd1K8Jcvd5/YH+jlsJoPAKqJIDCvL2lNKjy56kHbdoxFODO2F07F+qSCI0J5UB iEJqcZiEsve79sB0HMlysLp2HDgg2ChN5I9Oktoduvm8bLejbyVehgzKxnyetqawyBnv pc1eg20+UnVt/uVEGe/WtlZeO+yOaW7S+Ovvo9Fm9nYMmQqRHdcRc6PC/zMK3K2SfndN WQPjGt3juD+BNw3suLQB4Bz6R6UqgKc/gseSgd4sUxHxWn2TlyWcMMo4M5VqOQwzwwmS Ro6Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849694; x=1713454494; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=t5CU/zKW6n1HMZWhlDK5mPBQ7RFUZIy9M1CWJFuC0s4=; b=kGrpwXKF4VV744d+T0Rm2GXE0aCkPgZaoo4P6+I5y++OehLthY3KQ1ALnk8U/EiMpj qADwD8sG3Tg4GEmo5gkJDgFtSW7Va7FUHqTmKE6oucEHm9dZlejTTGibB5JQ+Xbs1J06 UUjcN/+oMlHL+d+7AcVYJCW+bz7ExWSLlbnZO3C6rVHa935mCs0jJKOjcfOaWUZXxnw6 2890niMWC/pEMB6kN4/OU6Je3bvV9wSbunhsnrUT3d4hpjMvCucfDZ/7J2MhfehUr63q IAulVn+QtVtO1QHTY3/J3suOrBp4XRDiFdsTMVN7QLdH8XKj5KSFKRYfpGiEu+v9tDNE XXcQ== X-Gm-Message-State: AOJu0Yz781kHB+72RrCEOFgKrJMTnoETVFVSoctF2+dX26ux7Atc1myW jGTTX/nNWF0xqCBA8MbWhHjqG5gTuvzV9LxrjkdgrjDDWSi3yj8+u9v35dN9ZFG3zs6ysitD/kA M X-Google-Smtp-Source: AGHT+IEI1DOAvTPk+XTInq1BBJ2Q6LYW1F0iuRSAV2ebh5YEShM+SIMT+8m+Y6OY1L5JZeddst91qQ== X-Received: by 2002:a6b:5b10:0:b0:7d0:bd2b:43ba with SMTP id v16-20020a6b5b10000000b007d0bd2b43bamr219075ioh.0.1712849693826; Thu, 11 Apr 2024 08:34:53 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.34.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:34:52 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 114/437] fs/efivars: convert to read/write iterators Date: Thu, 11 Apr 2024 09:14:14 -0600 Message-ID: <20240411153126.16201-115-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- fs/efivarfs/file.c | 31 +++++++++++++++---------------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/fs/efivarfs/file.c b/fs/efivarfs/file.c index 7e9961639802..b53246e728a5 100644 --- a/fs/efivarfs/file.c +++ b/fs/efivarfs/file.c @@ -12,13 +12,13 @@ =20 #include "internal.h" =20 -static ssize_t efivarfs_file_write(struct file *file, - const char __user *userbuf, size_t count, loff_t *ppos) +static ssize_t efivarfs_file_write(struct kiocb *iocb, struct iov_iter *fr= om) { - struct efivar_entry *var =3D file->private_data; + struct efivar_entry *var =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); void *data; u32 attributes; - struct inode *inode =3D file->f_mapping->host; + struct inode *inode =3D iocb->ki_filp->f_mapping->host; unsigned long datasize =3D count - sizeof(attributes); ssize_t bytes; bool set =3D false; @@ -26,13 +26,13 @@ static ssize_t efivarfs_file_write(struct file *file, if (count < sizeof(attributes)) return -EINVAL; =20 - if (copy_from_user(&attributes, userbuf, sizeof(attributes))) + if (!copy_from_iter_full(&attributes, sizeof(attributes), from)) return -EFAULT; =20 if (attributes & ~(EFI_VARIABLE_MASK)) return -EINVAL; =20 - data =3D memdup_user(userbuf + sizeof(attributes), datasize); + data =3D iterdup(from, datasize); if (IS_ERR(data)) return PTR_ERR(data); =20 @@ -46,8 +46,8 @@ static ssize_t efivarfs_file_write(struct file *file, =20 if (bytes =3D=3D -ENOENT) { drop_nlink(inode); - d_delete(file->f_path.dentry); - dput(file->f_path.dentry); + d_delete(iocb->ki_filp->f_path.dentry); + dput(iocb->ki_filp->f_path.dentry); } else { inode_lock(inode); i_size_write(inode, datasize + sizeof(attributes)); @@ -63,17 +63,16 @@ static ssize_t efivarfs_file_write(struct file *file, return bytes; } =20 -static ssize_t efivarfs_file_read(struct file *file, char __user *userbuf, - size_t count, loff_t *ppos) +static ssize_t efivarfs_file_read(struct kiocb *iocb, struct iov_iter *to) { - struct efivar_entry *var =3D file->private_data; + struct efivar_entry *var =3D iocb->ki_filp->private_data; unsigned long datasize =3D 0; u32 attributes; void *data; ssize_t size =3D 0; int err; =20 - while (!__ratelimit(&file->f_cred->user->ratelimit)) + while (!__ratelimit(&iocb->ki_filp->f_cred->user->ratelimit)) msleep(50); =20 err =3D efivar_entry_size(var, &datasize); @@ -98,8 +97,8 @@ static ssize_t efivarfs_file_read(struct file *file, char= __user *userbuf, goto out_free; =20 memcpy(data, &attributes, sizeof(attributes)); - size =3D simple_read_from_buffer(userbuf, count, ppos, - data, datasize + sizeof(attributes)); + size =3D simple_copy_to_iter(data, &iocb->ki_pos, + datasize + sizeof(attributes), to); out_free: kfree(data); =20 @@ -108,7 +107,7 @@ static ssize_t efivarfs_file_read(struct file *file, ch= ar __user *userbuf, =20 const struct file_operations efivarfs_file_operations =3D { .open =3D simple_open, - .read =3D efivarfs_file_read, - .write =3D efivarfs_file_write, + .read_iter =3D efivarfs_file_read, + .write_iter =3D efivarfs_file_write, .llseek =3D no_llseek, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f47.google.com (mail-io1-f47.google.com [209.85.166.47]) (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 D1D3315351F for ; Thu, 11 Apr 2024 15:34:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849698; cv=none; b=Wat6l3ZKTwaKR2FyZ6KQDOYETegQRiGhacPzQ//+0Xt2OX4dDfCYNecObjIrmvtLhqNHFCdUTSCDt32vbG5/+zBx4PXTAKL/aHO5VRB3EUopB51v4Z+Nyxc25MvG2X02qknsOT6cpuFunM4EmtrAb/VRXk1okpCdww2fOnXsnKY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849698; c=relaxed/simple; bh=LNeDmHf/c9RfmP+zJv+4NDWg+Hfl/IDiUm2M9Rregfk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=CdOEbMZRTmfiHO+UujahsqWMUoAW/aVwcbT+uhU++M2PjPlsVEPzwnfAqCrk9XSTjYi/l6jLZAVVoQKVa1Z9sH3FFWtUhcvkIw27EfBHBJ3n0L7iqraVM5Pe3DowFFc5iu1B8KHevzoXNNvqR2aLyd2eYZ1BS/EjHwryYpFTmTg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=2D8ke4n7; arc=none smtp.client-ip=209.85.166.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="2D8ke4n7" Received: by mail-io1-f47.google.com with SMTP id ca18e2360f4ac-7cc0e831e11so170488939f.1 for ; Thu, 11 Apr 2024 08:34:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849696; x=1713454496; 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=hSQ+RsGRSbfENVXBvbiA637C0r9rKvEhaiQYT/ebYP4=; b=2D8ke4n7BX1eUyPAaPKCuL97T5GykRTVn613hpVJJv9/9L1Qn6t8/3vSrXCNL5HFGW qJemvAavX1D3tilNYGeB/EtF1wyzRi1TtPXoNsmuk+s+AoqViydWY5qiF7SIUJ9hqpzC CEAwU6AvdGI8DpwzPtwP39XTjLUOwcZPGiUir/SfvyHnxxFSjUrSwcST7S87Y26DE7oF d3nE8brqJlXVvMASaKex38lKq6gRrXuM4KdjoFaqSQEwtTXaVT0BTEgFvMCtsTm+1j1f M8mJaJTE6h8TLK0jgUuEVw6IEpEf8tkzV2/WJKPoBKORikvpm+p3r4SvV0fLAg4nE7eQ x+NA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849696; x=1713454496; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=hSQ+RsGRSbfENVXBvbiA637C0r9rKvEhaiQYT/ebYP4=; b=cwUFc0IvKZK/Nnajh0s6z8BqxVIh74XCnvVDunbi6pJFHEDu92pmD9gwUeVIb0eAY9 cPO0Hvp7yl12APlzeTIyioYczXWcrInFKJ6JeLhRuGKqJ581rXmFVOrqRgPabJqjHAuK KbKs8t8+4WU/uVNO9HZzOBwBIsiZCgxe78RWnmZD+vr2H9IY9/vDNQa+iJXTNu+3x31/ gVMv4z4gmj9BzRiH5jDVLzQhoae0SP845H4/vd08eYJOMIvOw/CBQHEuH/qk0gPerDUN g+peNmv121u5ZcfbHEl9Y+gbcewC9hfy5lq993iElvWof9dI3UwNlhnAEp0tkuIV9NqO cOEw== X-Gm-Message-State: AOJu0Yxc7lqpAnDc+XPtT/BSciQm4BRgRS9bYY2DLNuxdEBCxp5UsGBA 5KfBRHX0/U+OwfYG3PNw7xpu+SyfDsO9s5FHufR7zZzFak0NT81XpKhspHka8u70dZMwU9f4/fR T X-Google-Smtp-Source: AGHT+IGiHXX3i/b+i58q+Q3k+BQ2SqU7VJPWD5LJOxcxaQYEr5lvhtwtf3d19EQoguHZ+RyrPLBPaA== X-Received: by 2002:a5e:9907:0:b0:7d6:751f:192 with SMTP id t7-20020a5e9907000000b007d6751f0192mr177850ioj.2.1712849695724; Thu, 11 Apr 2024 08:34:55 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.34.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:34:54 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 115/437] drivers/comedi: convert to read/write iterators Date: Thu, 11 Apr 2024 09:14:15 -0600 Message-ID: <20240411153126.16201-116-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/comedi/comedi_fops.c | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/drivers/comedi/comedi_fops.c b/drivers/comedi/comedi_fops.c index 1b481731df96..0e18fac552d3 100644 --- a/drivers/comedi/comedi_fops.c +++ b/drivers/comedi/comedi_fops.c @@ -2463,8 +2463,7 @@ static __poll_t comedi_poll(struct file *file, poll_t= able *wait) return mask; } =20 -static ssize_t comedi_write(struct file *file, const char __user *buf, - size_t nbytes, loff_t *offset) +static ssize_t comedi_write(struct kiocb *iocb, struct iov_iter *from) { struct comedi_subdevice *s; struct comedi_async *async; @@ -2472,7 +2471,9 @@ static ssize_t comedi_write(struct file *file, const = char __user *buf, ssize_t count =3D 0; int retval =3D 0; DECLARE_WAITQUEUE(wait, current); + struct file *file =3D iocb->ki_filp; struct comedi_file *cfp =3D file->private_data; + size_t nbytes =3D iov_iter_count(from); struct comedi_device *dev =3D cfp->dev; bool become_nonbusy =3D false; bool attach_locked; @@ -2546,11 +2547,11 @@ static ssize_t comedi_write(struct file *file, cons= t char __user *buf, wp =3D async->buf_write_ptr; n1 =3D min(n, async->prealloc_bufsz - wp); n2 =3D n - n1; - m =3D copy_from_user(async->prealloc_buf + wp, buf, n1); + m =3D copy_from_iter(async->prealloc_buf + wp, n1, from); if (m) m +=3D n2; else if (n2) - m =3D copy_from_user(async->prealloc_buf, buf + n1, n2); + m =3D copy_from_iter(async->prealloc_buf, n2, from); if (m) { n -=3D m; retval =3D -EFAULT; @@ -2559,8 +2560,6 @@ static ssize_t comedi_write(struct file *file, const = char __user *buf, =20 count +=3D n; nbytes -=3D n; - - buf +=3D n; } remove_wait_queue(&async->wait_head, &wait); set_current_state(TASK_RUNNING); @@ -2599,8 +2598,7 @@ static ssize_t comedi_write(struct file *file, const = char __user *buf, return count ? count : retval; } =20 -static ssize_t comedi_read(struct file *file, char __user *buf, size_t nby= tes, - loff_t *offset) +static ssize_t comedi_read(struct kiocb *iocb, struct iov_iter *to) { struct comedi_subdevice *s; struct comedi_async *async; @@ -2608,7 +2606,9 @@ static ssize_t comedi_read(struct file *file, char __= user *buf, size_t nbytes, ssize_t count =3D 0; int retval =3D 0; DECLARE_WAITQUEUE(wait, current); + struct file *file =3D iocb->ki_filp; struct comedi_file *cfp =3D file->private_data; + size_t nbytes =3D iov_iter_count(to); struct comedi_device *dev =3D cfp->dev; unsigned int old_detach_count; bool become_nonbusy =3D false; @@ -2680,11 +2680,11 @@ static ssize_t comedi_read(struct file *file, char = __user *buf, size_t nbytes, rp =3D async->buf_read_ptr; n1 =3D min(n, async->prealloc_bufsz - rp); n2 =3D n - n1; - m =3D copy_to_user(buf, async->prealloc_buf + rp, n1); + m =3D copy_to_iter(async->prealloc_buf + rp, n1, to); if (m) m +=3D n2; else if (n2) - m =3D copy_to_user(buf + n1, async->prealloc_buf, n2); + m =3D copy_to_iter(async->prealloc_buf, n2, to); if (m) { n -=3D m; retval =3D -EFAULT; @@ -2695,8 +2695,6 @@ static ssize_t comedi_read(struct file *file, char __= user *buf, size_t nbytes, =20 count +=3D n; nbytes -=3D n; - - buf +=3D n; } remove_wait_queue(&async->wait_head, &wait); set_current_state(TASK_RUNNING); @@ -3179,8 +3177,8 @@ static const struct file_operations comedi_fops =3D { .compat_ioctl =3D comedi_compat_ioctl, .open =3D comedi_open, .release =3D comedi_close, - .read =3D comedi_read, - .write =3D comedi_write, + .read_iter =3D comedi_read, + .write_iter =3D comedi_write, .mmap =3D comedi_mmap, .poll =3D comedi_poll, .fasync =3D comedi_fasync, --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f47.google.com (mail-io1-f47.google.com [209.85.166.47]) (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 8304915380A for ; Thu, 11 Apr 2024 15:34:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849699; cv=none; b=JmwFifNB+WZ2n7miPO7QyQ/lG5gaySreQkvemqM5rxTMXKjZ0z6NjlTtfBdG0tWSziKzm4X0nTZWFZMp0qcI1db25+p4ZmDwzsczK08rUvjT0VvnvX3YN4GcPYdrQWMZW2cgW6//fhpUAZtF7MWtQPr++ZkGUumTCqx9uwqcZBw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849699; c=relaxed/simple; bh=1GLmpfIFqA5S0RQqXLieN4KD9l3gdVC3UtaGZNcIIhs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=u0Il5Ow1UFmnpPbXNcqAi3mMge8KdOiWSCvficFktP5o0Ak5xGOjvK60hpGC0i7Coe44xErwyfcb0tlkF9MTLecLN5znmWIv3FaghnNJRRH71RggcRzfp2ML88aNO4Qek+Jhm22GxmVv5wocXwW0/7GO2CEyq4VYP8a7y9paRbo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=3PkB2dYF; arc=none smtp.client-ip=209.85.166.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="3PkB2dYF" Received: by mail-io1-f47.google.com with SMTP id ca18e2360f4ac-7c8e4c0412dso69543439f.1 for ; Thu, 11 Apr 2024 08:34:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849697; x=1713454497; 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=hLnb1KrtQmeOhT6FF+w9hR8jXQ2bjsSrQAHPvcNxMrA=; b=3PkB2dYFK95dn2C3UZ9JXq5zjb94c7PEsUQxOFkHpdlwQllixLAO3seXLn3rKlVyaO xijwoYg/w6h2lMQSHb9r9S8Y3G3pqQYoADFkD0HM8L5rwgGYGg3P3tt2Syc/o1XweLta nvmRQ0Pggtm4e2i0VVBmXG3uN+zke36l9AbmXAjGUkuPK/OgoygU1t6Ov/46HroYfez0 OkN16P2TLQoZA4Mjbr4vkeTuLXvy8Wjuio70TPBsVQzwl2WlbxFHeATZhRJh5bSfliYA vIKBiCtmgdtG6oaRSHezevwVw+1GvB4IBTHB4jyPP7slJW9d7Kinlu6xpJhKGCCXfMHX 9D7w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849697; x=1713454497; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=hLnb1KrtQmeOhT6FF+w9hR8jXQ2bjsSrQAHPvcNxMrA=; b=V9zkpBNbx7PIDPzFr0N9R9pZYnxghfyTDJC+TITbIpB4IV8KltqQZjnnqAhyt8H0T2 GuaQK3QutcUzvAvqe/uJoFy2Ry8Hdk6/DL2XWLNsHSgNtW6D3GbuD3EjdzTRdkwtyOM8 29964x3DWDpAM0faBz1NX/rUPY7tJ9Tzk8SWrlCA0poYvwnW+KQ+BL9Didg517/VL2pm jCLPi81iiM9eglvj4zpQ4VfhDLoHEbkDyXPwuEQ0MnvuCES7RZhAwpr0w5OkNQ/Mg+vD MeQ3LJMeAnbg/mICZznfWWnSAgXk/vb7l4xQ5SBY21xRRKzlCpIRZsIQnfjkchRT30A7 oirw== X-Gm-Message-State: AOJu0YzzHzJBx6H6OZFbxJO4/AF68vTDpE8yEXS1YZpxOef5MZvi4LIn hOrojXu+KUrJodTeQ51OJEz4+c6BY9XxwNA/k2UJBlexuLmDjd/pZB3SdR/E6qKeqnwbWseKJZs t X-Google-Smtp-Source: AGHT+IEZNAUK0YwIXcMKGCIZ3RgU+Nz28oCZMyP0wW8lWFDd9u+rUTZkMHOqRLNlxWrFP6T+U81ybw== X-Received: by 2002:a05:6602:84:b0:7d6:9d75:6de2 with SMTP id h4-20020a056602008400b007d69d756de2mr38301iob.2.1712849697423; Thu, 11 Apr 2024 08:34:57 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.34.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:34:56 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 116/437] drivers/counter: convert to read/write iterators Date: Thu, 11 Apr 2024 09:14:16 -0600 Message-ID: <20240411153126.16201-117-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/counter/counter-chrdev.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/counter/counter-chrdev.c b/drivers/counter/counter-chr= dev.c index afc94d0062b1..f2d513248120 100644 --- a/drivers/counter/counter-chrdev.c +++ b/drivers/counter/counter-chrdev.c @@ -99,6 +99,7 @@ static ssize_t counter_chrdev_read(struct file *filp, cha= r __user *buf, =20 return copied; } +FOPS_READ_ITER_HELPER(counter_chrdev_read); =20 static __poll_t counter_chrdev_poll(struct file *filp, struct poll_table_struct *pollt) @@ -455,7 +456,7 @@ static int counter_chrdev_release(struct inode *inode, = struct file *filp) static const struct file_operations counter_fops =3D { .owner =3D THIS_MODULE, .llseek =3D no_llseek, - .read =3D counter_chrdev_read, + .read_iter =3D counter_chrdev_read_iter, .poll =3D counter_chrdev_poll, .unlocked_ioctl =3D counter_chrdev_ioctl, .open =3D counter_chrdev_open, --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f41.google.com (mail-io1-f41.google.com [209.85.166.41]) (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 B4E5C153BD0 for ; Thu, 11 Apr 2024 15:35:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849702; cv=none; b=MuwrT7TTPJFidb6MynB5eX4uAVeIdI0wQf++493uGXvw6KRltAXYn3r1pf6291mIvvhhj8z8mLWSJE+rNBD9bB0kcDZLkaIsfSZn2qeyZZrpOZcqdBWWC/7GKMJKfY6fv3jL8uvT0zfHJSnng9Wwbo5ojxyFcVcxaHSEZJsg8A0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849702; c=relaxed/simple; bh=AtZCFbVdCOf2WMpF3Xa7GB0twP6+abdo3bq4jdzXHw0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=j44dGupBFe5JExwDZV27/gvuBY9DjKM1Y3xR1Q+2/Ep2OKlBkr7v3vgxZNpxdIZilerPwbzYWpRnEo3GfRj0di/X/OcrSTvMjCGnHXcwTcgkQhe/Xyd+foLp3NJJC711Dll4EHMFr8TL6nnzmn+3/jvfY8SCsnUpjnr+lCOkOWM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=pq5xXAhT; arc=none smtp.client-ip=209.85.166.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="pq5xXAhT" Received: by mail-io1-f41.google.com with SMTP id ca18e2360f4ac-7d6112ba6baso58033939f.1 for ; Thu, 11 Apr 2024 08:35:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849699; x=1713454499; 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=eF1yYOi8Uq1y51haZriCVmETMFalxQeH7SVR1N2yoIA=; b=pq5xXAhTXXh9rXvL+/zE8bhUPK9FjSbqJo3zDbLK9CvGDpvsac3RopI36QU/gSGzGg PDlxovlUlkEdoCf0Zufg8zIt3RlGiaG/O2mMI7n2ilgxYPWCPsevXl+SoBY7rLYbx0up Q1b3exqRWjQtECAWy8FG07/0uVzVguedZawG3nzrHuhkL1fpk0Et9QqW8qrCG017eOLw lutuu/Ga9m0Vym9RQNog3V0R6sokhQrI6V1xEln8IROgYk548lVnuJTUGEDxR3i2e4Aq JTb7eR8J0vjE9Ukf/HKnryOjHb5YoX3FN7Ds05L1mr+3dm9Jeg5zTVpRvC8ZuCSjetyr maUQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849699; x=1713454499; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=eF1yYOi8Uq1y51haZriCVmETMFalxQeH7SVR1N2yoIA=; b=RD3PRfxjcXUlyXFORijNyGx6mpCpa3BKn+Pidvx3u5+OwIk8xc1qvMTgapBYRF/KlH 6+dne742QEzt3g45HkKC1GycnEuNuJ1L1WjqbNld6qYC4tEAy7icSHv/YzPv6IVStJpF PMqW5dD7TB+tS5Ds6CY1RC4ot0fWHaLicU9kOmZdXHTvs+ztUZZTs5vCnnr9fRbT0ej5 ea7Uo8Tj2GAXbIaD7pgDyesOOgHHz7gw+zhdaXWxVhupou+ZeeJaQmF7L6DrmXY4Dj71 R7f4QzXJTBy+ZXxMT6F95IjPk4IwpmVSDP5htKiVAJ9wHSPBNEqdA5sFWytZoJ4Ipsfy WCEg== X-Gm-Message-State: AOJu0YwovwfM1NOJUuUWgKNhzw1srjtyz3puAcy3YvnOKCf+U2MdOVtt cMRhr27lIgd+RoKEHx0wkcL1Ns4Rlf0dbWgwYF4FZwni8tfBCeWE8bel1rniywKpy943XWl+EqN K X-Google-Smtp-Source: AGHT+IEwcb0tJl2mhs4UBapibxska/7MEl3degWZSjF6rbAp9CqcpgFYNWD7XsaLD9xhR/WUM+3wnA== X-Received: by 2002:a6b:f312:0:b0:7d5:de23:13a9 with SMTP id m18-20020a6bf312000000b007d5de2313a9mr157878ioh.1.1712849699106; Thu, 11 Apr 2024 08:34:59 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.34.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:34:57 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 117/437] drivers/hid: convert to read/write iterators Date: Thu, 11 Apr 2024 09:14:17 -0600 Message-ID: <20240411153126.16201-118-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/hid/hid-debug.c | 3 +- drivers/hid/hid-picolcd_debugfs.c | 65 +++++++++++++++++-------------- drivers/hid/hid-roccat.c | 12 +++--- drivers/hid/hid-sensor-custom.c | 3 +- drivers/hid/hid-wiimote-debug.c | 15 +++---- drivers/hid/hidraw.c | 15 +++---- drivers/hid/uhid.c | 15 +++---- 7 files changed, 69 insertions(+), 59 deletions(-) diff --git a/drivers/hid/hid-debug.c b/drivers/hid/hid-debug.c index 7dd83ec74f8a..d5110cd9b440 100644 --- a/drivers/hid/hid-debug.c +++ b/drivers/hid/hid-debug.c @@ -1206,6 +1206,7 @@ static ssize_t hid_debug_events_read(struct file *fil= e, char __user *buffer, mutex_unlock(&list->read_mutex); return ret; } +FOPS_READ_ITER_HELPER(hid_debug_events_read); =20 static __poll_t hid_debug_events_poll(struct file *file, poll_table *wait) { @@ -1240,7 +1241,7 @@ DEFINE_SHOW_ATTRIBUTE(hid_debug_rdesc); static const struct file_operations hid_debug_events_fops =3D { .owner =3D THIS_MODULE, .open =3D hid_debug_events_open, - .read =3D hid_debug_events_read, + .read_iter =3D hid_debug_events_read_iter, .poll =3D hid_debug_events_poll, .release =3D hid_debug_events_release, .llseek =3D noop_llseek, diff --git a/drivers/hid/hid-picolcd_debugfs.c b/drivers/hid/hid-picolcd_de= bugfs.c index d01176da8896..63785cb6a8ac 100644 --- a/drivers/hid/hid-picolcd_debugfs.c +++ b/drivers/hid/hid-picolcd_debugfs.c @@ -34,13 +34,14 @@ static int picolcd_debug_reset_open(struct inode *inode= , struct file *f) return single_open(f, picolcd_debug_reset_show, inode->i_private); } =20 -static ssize_t picolcd_debug_reset_write(struct file *f, const char __user= *user_buf, - size_t count, loff_t *ppos) +static ssize_t picolcd_debug_reset_write(struct kiocb *iocb, + struct iov_iter *from) { - struct picolcd_data *data =3D ((struct seq_file *)f->private_data)->priva= te; + struct picolcd_data *data =3D ((struct seq_file *)iocb->ki_filp->private_= data)->private; + size_t count =3D iov_iter_count(from); char buf[32]; size_t cnt =3D min(count, sizeof(buf)-1); - if (copy_from_user(buf, user_buf, cnt)) + if (!copy_from_iter_full(buf, cnt, from)) return -EFAULT; =20 while (cnt > 0 && (buf[cnt-1] =3D=3D ' ' || buf[cnt-1] =3D=3D '\n')) @@ -60,34 +61,35 @@ static ssize_t picolcd_debug_reset_write(struct file *f= , const char __user *user static const struct file_operations picolcd_debug_reset_fops =3D { .owner =3D THIS_MODULE, .open =3D picolcd_debug_reset_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, - .write =3D picolcd_debug_reset_write, + .write_iter =3D picolcd_debug_reset_write, .release =3D single_release, }; =20 /* * The "eeprom" file */ -static ssize_t picolcd_debug_eeprom_read(struct file *f, char __user *u, - size_t s, loff_t *off) +static ssize_t picolcd_debug_eeprom_read(struct kiocb *iocb, + struct iov_iter *to) { - struct picolcd_data *data =3D f->private_data; + struct picolcd_data *data =3D iocb->ki_filp->private_data; + size_t s =3D iov_iter_count(to); struct picolcd_pending *resp; u8 raw_data[3]; ssize_t ret =3D -EIO; =20 if (s =3D=3D 0) return -EINVAL; - if (*off > 0x0ff) + if (iocb->ki_pos > 0x0ff) return 0; =20 /* prepare buffer with info about what we want to read (addr & len) */ - raw_data[0] =3D *off & 0xff; - raw_data[1] =3D (*off >> 8) & 0xff; + raw_data[0] =3D iocb->ki_pos & 0xff; + raw_data[1] =3D (iocb->ki_pos >> 8) & 0xff; raw_data[2] =3D s < 20 ? s : 20; - if (*off + raw_data[2] > 0xff) - raw_data[2] =3D 0x100 - *off; + if (iocb->ki_pos + raw_data[2] > 0xff) + raw_data[2] =3D 0x100 - iocb->ki_pos; resp =3D picolcd_send_and_wait(data->hdev, REPORT_EE_READ, raw_data, sizeof(raw_data)); if (!resp) @@ -98,37 +100,38 @@ static ssize_t picolcd_debug_eeprom_read(struct file *= f, char __user *u, ret =3D resp->raw_data[2]; if (ret > s) ret =3D s; - if (copy_to_user(u, resp->raw_data+3, ret)) + if (!copy_to_iter_full(resp->raw_data+3, ret, to)) ret =3D -EFAULT; else - *off +=3D ret; + iocb->ki_pos +=3D ret; } /* anything else is some kind of IO error */ =20 kfree(resp); return ret; } =20 -static ssize_t picolcd_debug_eeprom_write(struct file *f, const char __use= r *u, - size_t s, loff_t *off) +static ssize_t picolcd_debug_eeprom_write(struct kiocb *iocb, + struct iov_iter *from) { - struct picolcd_data *data =3D f->private_data; + struct picolcd_data *data =3D iocb->ki_filp->private_data; + size_t s =3D iov_iter_count(from); struct picolcd_pending *resp; ssize_t ret =3D -EIO; u8 raw_data[23]; =20 if (s =3D=3D 0) return -EINVAL; - if (*off > 0x0ff) + if (iocb->ki_pos > 0x0ff) return -ENOSPC; =20 memset(raw_data, 0, sizeof(raw_data)); - raw_data[0] =3D *off & 0xff; - raw_data[1] =3D (*off >> 8) & 0xff; + raw_data[0] =3D iocb->ki_pos & 0xff; + raw_data[1] =3D (iocb->ki_pos >> 8) & 0xff; raw_data[2] =3D min_t(size_t, 20, s); - if (*off + raw_data[2] > 0xff) - raw_data[2] =3D 0x100 - *off; + if (iocb->ki_pos + raw_data[2] > 0xff) + raw_data[2] =3D 0x100 - iocb->ki_pos; =20 - if (copy_from_user(raw_data+3, u, min((u8)20, raw_data[2]))) + if (!copy_from_iter_full(raw_data+3, min((u8)20, raw_data[2]), from)) return -EFAULT; resp =3D picolcd_send_and_wait(data->hdev, REPORT_EE_WRITE, raw_data, sizeof(raw_data)); @@ -139,7 +142,7 @@ static ssize_t picolcd_debug_eeprom_write(struct file *= f, const char __user *u, if (resp->in_report && resp->in_report->id =3D=3D REPORT_EE_DATA) { /* check if written data matches */ if (memcmp(raw_data, resp->raw_data, 3+raw_data[2]) =3D=3D 0) { - *off +=3D raw_data[2]; + iocb->ki_pos +=3D raw_data[2]; ret =3D raw_data[2]; } } @@ -157,8 +160,8 @@ static ssize_t picolcd_debug_eeprom_write(struct file *= f, const char __user *u, static const struct file_operations picolcd_debug_eeprom_fops =3D { .owner =3D THIS_MODULE, .open =3D simple_open, - .read =3D picolcd_debug_eeprom_read, - .write =3D picolcd_debug_eeprom_write, + .read_iter =3D picolcd_debug_eeprom_read, + .write_iter =3D picolcd_debug_eeprom_write, .llseek =3D generic_file_llseek, }; =20 @@ -229,6 +232,7 @@ static ssize_t picolcd_debug_flash_read(struct file *f,= char __user *u, else return _picolcd_flash_read(data, REPORT_READ_MEMORY, u, s, off); } +FOPS_READ_ITER_HELPER(picolcd_debug_flash_read); =20 /* erase block aligned to 64bytes boundary */ static ssize_t _picolcd_flash_erase64(struct picolcd_data *data, int repor= t_id, @@ -335,6 +339,7 @@ static ssize_t picolcd_debug_flash_write(struct file *f= , const char __user *u, mutex_unlock(&data->mutex_flash); return ret > 0 ? ret : err; } +FOPS_WRITE_ITER_HELPER(picolcd_debug_flash_write); =20 /* * Notes: @@ -350,8 +355,8 @@ static ssize_t picolcd_debug_flash_write(struct file *f= , const char __user *u, static const struct file_operations picolcd_debug_flash_fops =3D { .owner =3D THIS_MODULE, .open =3D simple_open, - .read =3D picolcd_debug_flash_read, - .write =3D picolcd_debug_flash_write, + .read_iter =3D picolcd_debug_flash_read_iter, + .write_iter =3D picolcd_debug_flash_write_iter, .llseek =3D generic_file_llseek, }; =20 diff --git a/drivers/hid/hid-roccat.c b/drivers/hid/hid-roccat.c index c7f7562e22e5..072da9cf04a9 100644 --- a/drivers/hid/hid-roccat.c +++ b/drivers/hid/hid-roccat.c @@ -70,14 +70,14 @@ static struct roccat_device *devices[ROCCAT_MAX_DEVICES= ]; /* protects modifications of devices array */ static DEFINE_MUTEX(devices_lock); =20 -static ssize_t roccat_read(struct file *file, char __user *buffer, - size_t count, loff_t *ppos) +static ssize_t roccat_read(struct kiocb *iocb, struct iov_iter *to) { - struct roccat_reader *reader =3D file->private_data; + struct roccat_reader *reader =3D iocb->ki_filp->private_data; struct roccat_device *device =3D reader->device; struct roccat_report *report; ssize_t retval =3D 0, len; DECLARE_WAITQUEUE(wait, current); + size_t count =3D iov_iter_count(to); =20 mutex_lock(&device->cbuf_lock); =20 @@ -88,7 +88,7 @@ static ssize_t roccat_read(struct file *file, char __user= *buffer, =20 /* wait for data */ while (reader->cbuf_start =3D=3D device->cbuf_end) { - if (file->f_flags & O_NONBLOCK) { + if (iocb->ki_filp->f_flags & O_NONBLOCK) { retval =3D -EAGAIN; break; } @@ -122,7 +122,7 @@ static ssize_t roccat_read(struct file *file, char __us= er *buffer, */ len =3D device->report_size > count ? count : device->report_size; =20 - if (copy_to_user(buffer, report->value, len)) { + if (!copy_to_iter_full(report->value, len, to)) { retval =3D -EFAULT; goto exit_unlock; } @@ -407,7 +407,7 @@ static long roccat_ioctl(struct file *file, unsigned in= t cmd, unsigned long arg) =20 static const struct file_operations roccat_ops =3D { .owner =3D THIS_MODULE, - .read =3D roccat_read, + .read_iter =3D roccat_read, .poll =3D roccat_poll, .open =3D roccat_open, .release =3D roccat_release, diff --git a/drivers/hid/hid-sensor-custom.c b/drivers/hid/hid-sensor-custo= m.c index d85398721659..a4e58e82b3f1 100644 --- a/drivers/hid/hid-sensor-custom.c +++ b/drivers/hid/hid-sensor-custom.c @@ -669,6 +669,7 @@ static ssize_t hid_sensor_custom_read(struct file *file= , char __user *buf, =20 return copied; } +FOPS_READ_ITER_HELPER(hid_sensor_custom_read); =20 static int hid_sensor_custom_release(struct inode *inode, struct file *fil= e) { @@ -714,7 +715,7 @@ static __poll_t hid_sensor_custom_poll(struct file *fil= e, =20 static const struct file_operations hid_sensor_custom_fops =3D { .open =3D hid_sensor_custom_open, - .read =3D hid_sensor_custom_read, + .read_iter =3D hid_sensor_custom_read_iter, .release =3D hid_sensor_custom_release, .poll =3D hid_sensor_custom_poll, .llseek =3D noop_llseek, diff --git a/drivers/hid/hid-wiimote-debug.c b/drivers/hid/hid-wiimote-debu= g.c index 00f9be55f148..5a7a0991a8f7 100644 --- a/drivers/hid/hid-wiimote-debug.c +++ b/drivers/hid/hid-wiimote-debug.c @@ -71,11 +71,12 @@ static ssize_t wiidebug_eeprom_read(struct file *f, cha= r __user *u, size_t s, =20 return ret; } +FOPS_READ_ITER_HELPER(wiidebug_eeprom_read); =20 static const struct file_operations wiidebug_eeprom_fops =3D { .owner =3D THIS_MODULE, .open =3D simple_open, - .read =3D wiidebug_eeprom_read, + .read_iter =3D wiidebug_eeprom_read_iter, .llseek =3D generic_file_llseek, }; =20 @@ -121,11 +122,11 @@ static int wiidebug_drm_open(struct inode *i, struct = file *f) return single_open(f, wiidebug_drm_show, i->i_private); } =20 -static ssize_t wiidebug_drm_write(struct file *f, const char __user *u, - size_t s, loff_t *off) +static ssize_t wiidebug_drm_write(struct kiocb *iocb, struct iov_iter *fro= m) { - struct seq_file *sf =3D f->private_data; + struct seq_file *sf =3D iocb->ki_filp->private_data; struct wiimote_debug *dbg =3D sf->private; + size_t s =3D iov_iter_count(from); unsigned long flags; char buf[16]; ssize_t len; @@ -135,7 +136,7 @@ static ssize_t wiidebug_drm_write(struct file *f, const= char __user *u, return -EINVAL; =20 len =3D min((size_t) 15, s); - if (copy_from_user(buf, u, len)) + if (!copy_from_iter_full(buf, len, from)) return -EFAULT; =20 buf[len] =3D 0; @@ -163,9 +164,9 @@ static ssize_t wiidebug_drm_write(struct file *f, const= char __user *u, static const struct file_operations wiidebug_drm_fops =3D { .owner =3D THIS_MODULE, .open =3D wiidebug_drm_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, - .write =3D wiidebug_drm_write, + .write_iter =3D wiidebug_drm_write, .release =3D single_release, }; =20 diff --git a/drivers/hid/hidraw.c b/drivers/hid/hidraw.c index 2bc762d31ac7..54fab17f45a5 100644 --- a/drivers/hid/hidraw.c +++ b/drivers/hid/hidraw.c @@ -38,9 +38,10 @@ static const struct class hidraw_class =3D { static struct hidraw *hidraw_table[HIDRAW_MAX_DEVICES]; static DECLARE_RWSEM(minors_rwsem); =20 -static ssize_t hidraw_read(struct file *file, char __user *buffer, size_t = count, loff_t *ppos) +static ssize_t hidraw_read(struct kiocb *iocb, struct iov_iter *to) { - struct hidraw_list *list =3D file->private_data; + struct hidraw_list *list =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(to); int ret =3D 0, len; DECLARE_WAITQUEUE(wait, current); =20 @@ -60,7 +61,7 @@ static ssize_t hidraw_read(struct file *file, char __user= *buffer, size_t count, ret =3D -EIO; break; } - if (file->f_flags & O_NONBLOCK) { + if (iocb->ki_filp->f_flags & O_NONBLOCK) { ret =3D -EAGAIN; break; } @@ -83,7 +84,7 @@ static ssize_t hidraw_read(struct file *file, char __user= *buffer, size_t count, count : list->buffer[list->tail].len; =20 if (list->buffer[list->tail].value) { - if (copy_to_user(buffer, list->buffer[list->tail].value, len)) { + if (!copy_to_iter_full(list->buffer[list->tail].value, len, to)) { ret =3D -EFAULT; goto out; } @@ -167,7 +168,7 @@ static ssize_t hidraw_write(struct file *file, const ch= ar __user *buffer, size_t up_read(&minors_rwsem); return ret; } - +FOPS_WRITE_ITER_HELPER(hidraw_write); =20 /* * This function performs a Get_Report transfer over the control endpoint @@ -505,8 +506,8 @@ static long hidraw_ioctl(struct file *file, unsigned in= t cmd, =20 static const struct file_operations hidraw_ops =3D { .owner =3D THIS_MODULE, - .read =3D hidraw_read, - .write =3D hidraw_write, + .read_iter =3D hidraw_read, + .write_iter =3D hidraw_write_iter, .poll =3D hidraw_poll, .open =3D hidraw_open, .release =3D hidraw_release, diff --git a/drivers/hid/uhid.c b/drivers/hid/uhid.c index a54c7995b9be..fb23cff65c92 100644 --- a/drivers/hid/uhid.c +++ b/drivers/hid/uhid.c @@ -669,10 +669,10 @@ static int uhid_char_release(struct inode *inode, str= uct file *file) return 0; } =20 -static ssize_t uhid_char_read(struct file *file, char __user *buffer, - size_t count, loff_t *ppos) +static ssize_t uhid_char_read(struct kiocb *iocb, struct iov_iter *to) { - struct uhid_device *uhid =3D file->private_data; + struct uhid_device *uhid =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(to); int ret; unsigned long flags; size_t len; @@ -682,7 +682,7 @@ static ssize_t uhid_char_read(struct file *file, char _= _user *buffer, return -EINVAL; =20 try_again: - if (file->f_flags & O_NONBLOCK) { + if (iocb->ki_filp->f_flags & O_NONBLOCK) { if (uhid->head =3D=3D uhid->tail) return -EAGAIN; } else { @@ -701,7 +701,7 @@ static ssize_t uhid_char_read(struct file *file, char _= _user *buffer, goto try_again; } else { len =3D min(count, sizeof(**uhid->outq)); - if (copy_to_user(buffer, uhid->outq[uhid->tail], len)) { + if (!copy_to_iter_full(uhid->outq[uhid->tail], len, to)) { ret =3D -EFAULT; } else { kfree(uhid->outq[uhid->tail]); @@ -782,6 +782,7 @@ static ssize_t uhid_char_write(struct file *file, const= char __user *buffer, /* return "count" not "len" to not confuse the caller */ return ret ? ret : count; } +FOPS_WRITE_ITER_HELPER(uhid_char_write); =20 static __poll_t uhid_char_poll(struct file *file, poll_table *wait) { @@ -800,8 +801,8 @@ static const struct file_operations uhid_fops =3D { .owner =3D THIS_MODULE, .open =3D uhid_char_open, .release =3D uhid_char_release, - .read =3D uhid_char_read, - .write =3D uhid_char_write, + .read_iter =3D uhid_char_read, + .write_iter =3D uhid_char_write_iter, .poll =3D uhid_char_poll, .llseek =3D no_llseek, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f41.google.com (mail-io1-f41.google.com [209.85.166.41]) (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 293E4153BE5 for ; Thu, 11 Apr 2024 15:35:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849702; cv=none; b=YejOV1Tam6T7n5ON+5kJncs1EOJZ82avZDakfrihLIa+sbECPjcIW4E2CvW6toGkpc8yjlwb8YtnvIApXAUINoyBdOFDC/kdjniX6pM8udMUnuQLEhxxoUmDuxA4UhpUZkhZU6UcIGbwPNdpQMu2PJhEwSuY60meh32uSl6cNKg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849702; c=relaxed/simple; bh=lZdXYkmzS+JjeSPuAD9NxOl8ZnjicQ+5Fbw78ORsT10=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ecDrkqwlOgmdutsbWFwOggaPlgq40lDAOcwSxSQ6KDiJOls6shPX2CzdlxdZ+9ZyuE8cwDRcoB4hOdmIteGryR5np8oEQMAgxyLsvKN6wpLmwo04cd1zWIxLbI2h4JYyWSCvLMLKEEjBAiIt6CcHhz5jnyO//4YP+HHgokSFAxs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=IiC894g+; arc=none smtp.client-ip=209.85.166.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="IiC894g+" Received: by mail-io1-f41.google.com with SMTP id ca18e2360f4ac-7cc0e831e11so170489939f.1 for ; Thu, 11 Apr 2024 08:35:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849700; x=1713454500; 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=FGVTOHLVy23YeA/ug2q4h0/nzZcrwmXiwnc4UssmodY=; b=IiC894g+UqKP9tBIebZGoB1XSYhubtdZzx9x40m13dTV7nQF3P4oQ3V8SOEfwhudbI S5QkuuLD2kiDh3mvveEPygIqfVQg+mSFi9Fboa7u4kKlkWcjtQ4pN7ixGQg9TSHvPkwO pNxHqKLs2IAeT2QcImVi+ABTofJlI1yNmc0OR1Zn92dAyT8e1TSmXF4Dd6SVsolzx8jm bcvZHFvN5iK94UIHKOybOaaDmJCNmnQZKJ6dsveb/Fx9JqRCHi0LLk9D854GiAMOc4HP OjE348/h8eCaZ5gK2qxGMv4AMAxbObbUrOrL5ctqjzAlDpob3HHtybEnm4iJZLo3xUfy 5k6g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849700; x=1713454500; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=FGVTOHLVy23YeA/ug2q4h0/nzZcrwmXiwnc4UssmodY=; b=TjUMLuFixUWo64a0O2Dh2z8Bw+uVnqiBZustnHwdyIMhxzUJqFbpx65Rwzc+/oply4 u/Aih62I9wT45BEd2u6972RVwYY6gTBn39/DJDrld8eoSG75UF46s+2YbYkj3Uabv47Y 3I/no9KdYKF1+Pu69K+ZNRAa3yMukCPaTRt/cBvYLVCyzxrjBVbXTESmQNjaR3ZFjGaL lOMUUtNmnbG8u9Be+3SZmtHBK52lkA1cEyiDM12PFX12K/smUBQrW0Sz+9+CJ++746FN Xew8L47laB8nRA2M7lAi+wMyr34ky3DO7faSXNJyvYswOQwY2SBCguCY2L+RvzE3vIsM zcyg== X-Gm-Message-State: AOJu0Yx0CXxWNx/Ve0F6ImsP7GP2NzEeA+HxNnbRO8V6c5Fkyaqz+7Ob csC9OFwNeqIyGSTsMtWEpuVLxEq4Lamr28/wHmhDvqVUiLwgEiZELGh1r7blmLiuqkcaofrQxt7 h X-Google-Smtp-Source: AGHT+IHjkLoNE7fdAfLSYY1PYHDqyxp1H9DeY2+iwIpdTeTpsCy+o7NsLjI1GopbCoNwzllDQjxOtw== X-Received: by 2002:a05:6602:21d7:b0:7d6:9ddf:5095 with SMTP id c23-20020a05660221d700b007d69ddf5095mr11721ioc.1.1712849699852; Thu, 11 Apr 2024 08:34:59 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.34.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:34:59 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 118/437] drivers/tty: convert to ->read_iter and ->write_iter Date: Thu, 11 Apr 2024 09:14:18 -0600 Message-ID: <20240411153126.16201-119-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/tty/serial/pch_uart.c | 9 ++++----- drivers/tty/vt/vc_screen.c | 32 +++++++++++++++----------------- 2 files changed, 19 insertions(+), 22 deletions(-) diff --git a/drivers/tty/serial/pch_uart.c b/drivers/tty/serial/pch_uart.c index 89257cddf540..a61410eb67b1 100644 --- a/drivers/tty/serial/pch_uart.c +++ b/drivers/tty/serial/pch_uart.c @@ -290,10 +290,9 @@ static const int trigger_level_1[4] =3D { 1, 1, 1, 1 }; #define PCH_REGS_BUFSIZE 1024 =20 =20 -static ssize_t port_show_regs(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t port_show_regs(struct kiocb *iocb, struct iov_iter *to) { - struct eg20t_port *priv =3D file->private_data; + struct eg20t_port *priv =3D iocb->ki_filp->private_data; char *buf; u32 len =3D 0; ssize_t ret; @@ -335,7 +334,7 @@ static ssize_t port_show_regs(struct file *file, char _= _user *user_buf, if (len > PCH_REGS_BUFSIZE) len =3D PCH_REGS_BUFSIZE; =20 - ret =3D simple_read_from_buffer(user_buf, count, ppos, buf, len); + ret =3D simple_copy_to_iter(buf, &iocb->ki_pos, len, to); kfree(buf); return ret; } @@ -343,7 +342,7 @@ static ssize_t port_show_regs(struct file *file, char _= _user *user_buf, static const struct file_operations port_regs_ops =3D { .owner =3D THIS_MODULE, .open =3D simple_open, - .read =3D port_show_regs, + .read_iter =3D port_show_regs, .llseek =3D default_llseek, }; =20 diff --git a/drivers/tty/vt/vc_screen.c b/drivers/tty/vt/vc_screen.c index 67e2cb7c96ee..56daaa568866 100644 --- a/drivers/tty/vt/vc_screen.c +++ b/drivers/tty/vt/vc_screen.c @@ -361,10 +361,10 @@ static unsigned int vcs_read_buf(const struct vc_data= *vc, char *con_buf, return filled; } =20 -static ssize_t -vcs_read(struct file *file, char __user *buf, size_t count, loff_t *ppos) +static ssize_t vcs_read(struct kiocb *iocb, struct iov_iter *to) { - struct inode *inode =3D file_inode(file); + struct inode *inode =3D file_inode(iocb->ki_filp); + size_t count =3D iov_iter_count(to); struct vc_data *vc; struct vcs_poll_data *poll; unsigned int read; @@ -377,7 +377,7 @@ vcs_read(struct file *file, char __user *buf, size_t co= unt, loff_t *ppos) if (!con_buf) return -ENOMEM; =20 - pos =3D *ppos; + pos =3D iocb->ki_pos; =20 /* Select the proper current console and verify * sanity of the situation under the console lock. @@ -394,7 +394,7 @@ vcs_read(struct file *file, char __user *buf, size_t co= unt, loff_t *ppos) if (uni_mode && (pos | count) & 3) goto unlock_out; =20 - poll =3D file->private_data; + poll =3D iocb->ki_filp->private_data; if (count && poll) poll->event =3D 0; read =3D 0; @@ -453,7 +453,7 @@ vcs_read(struct file *file, char __user *buf, size_t co= unt, loff_t *ppos) */ =20 console_unlock(); - ret =3D copy_to_user(buf, con_buf + skip, this_round); + ret =3D !copy_to_iter_full(con_buf + skip, this_round, to); console_lock(); =20 if (ret) { @@ -461,12 +461,11 @@ vcs_read(struct file *file, char __user *buf, size_t = count, loff_t *ppos) ret =3D -EFAULT; break; } - buf +=3D this_round; pos +=3D this_round; read +=3D this_round; count -=3D this_round; } - *ppos +=3D read; + iocb->ki_pos +=3D read; if (read) ret =3D read; unlock_out: @@ -586,10 +585,10 @@ static u16 *vcs_write_buf(struct vc_data *vc, const c= har *con_buf, return org; } =20 -static ssize_t -vcs_write(struct file *file, const char __user *buf, size_t count, loff_t = *ppos) +static ssize_t vcs_write(struct kiocb *iocb, struct iov_iter *from) { - struct inode *inode =3D file_inode(file); + struct inode *inode =3D file_inode(iocb->ki_filp); + size_t count =3D iov_iter_count(from); struct vc_data *vc; char *con_buf; u16 *org0, *org; @@ -606,7 +605,7 @@ vcs_write(struct file *file, const char __user *buf, si= ze_t count, loff_t *ppos) if (!con_buf) return -ENOMEM; =20 - pos =3D *ppos; + pos =3D iocb->ki_pos; =20 /* Select the proper current console and verify * sanity of the situation under the console lock. @@ -640,7 +639,7 @@ vcs_write(struct file *file, const char __user *buf, si= ze_t count, loff_t *ppos) * in the write data from userspace safely. */ console_unlock(); - ret =3D copy_from_user(con_buf, buf, this_round); + ret =3D !copy_from_iter_full(con_buf, this_round, from); console_lock(); =20 if (ret) { @@ -692,12 +691,11 @@ vcs_write(struct file *file, const char __user *buf, = size_t count, loff_t *ppos) =20 count -=3D this_round; written +=3D this_round; - buf +=3D this_round; pos +=3D this_round; if (org) update_region(vc, (unsigned long)(org0), org - org0); } - *ppos +=3D written; + iocb->ki_pos +=3D written; ret =3D written; if (written) vcs_scr_updated(vc); @@ -778,8 +776,8 @@ static int vcs_release(struct inode *inode, struct file= *file) =20 static const struct file_operations vcs_fops =3D { .llseek =3D vcs_lseek, - .read =3D vcs_read, - .write =3D vcs_write, + .read_iter =3D vcs_read, + .write_iter =3D vcs_write, .poll =3D vcs_poll, .fasync =3D vcs_fasync, .open =3D vcs_open, --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f42.google.com (mail-io1-f42.google.com [209.85.166.42]) (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 1203D154427 for ; Thu, 11 Apr 2024 15:35:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849704; cv=none; b=ZuTq19IMYSMKCI/Qgxa49JeUnHuEqOZAyCpf31SH4ZuK1Y7aoM3EKR7p8JYKap6ZaAKLRFHFYa9lDCGpDyfNv4Y2Ja+ksM/BSgAna4pI2OkVVIZfrHx0silziYUdE6W0wVWvJ+D2PqxOO7D4fd30mG7wOD+zvd1bAJo1lq3HpH4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849704; c=relaxed/simple; bh=3WfvtC0aVxY8sxWr4KA1HiqIcn/eMFvHh7cjcqT6WgQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=uPMXhOfsUnEeWO2goh+MxU68mDsQ9k2O1bGOsH6NdYBpcWj6mjFLygV/dhJtmmcXuIMiiZZldckG0y6ynVT/0y+OObm0EcBUk0ovk5XvUXbKLc87DDbIreQc3WIAqOM1uH2ixGhCm3yHW6/ZpVJuWQFsgt4Uw8mBB5UUrEsxIUM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=m7V5Dk4z; arc=none smtp.client-ip=209.85.166.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="m7V5Dk4z" Received: by mail-io1-f42.google.com with SMTP id ca18e2360f4ac-7c8e4c0412dso69544839f.1 for ; Thu, 11 Apr 2024 08:35:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849702; x=1713454502; 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=dqPnTCe0Xo6bQ7p9WTFouXnMftwoUpbMZgUNJItMSNs=; b=m7V5Dk4zixbqhMckfUhxWYwgIqbgxpfIryjMwTBBslNwiVNnuDRR+CYaC44zI6MQcE +2APpCtyTPSFk0Ak1nkQ5fyCqBlmwfiFD1Pl5EFygYx5aes8isBVT83ShMnzoE0TSmiZ kc+HZz0dII/hG/9U51AsESQNnYj6a6OWeUI252fyfSXsL00QPc9HWgKFsYvl9XYSo+Is FfZZfbYF2k30ahYSvoyzqu7I7yox1gH+3sJTVdyV+Uj6lJyImXZfX5Uad3bgK9iuzLze /222DUk9WlbibzA5Qw7FRheZn0yYGgf3ZIRIZm1NP+sj7tZIJgOcHYiHT/gw3vlTRp4K Y6pQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849702; x=1713454502; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=dqPnTCe0Xo6bQ7p9WTFouXnMftwoUpbMZgUNJItMSNs=; b=b8ywP50BCXHbmHgNq95s18yZeGZUnx9x0bSZ5J+hgaUQhAYalS5a+TSaHgX1RJD6t1 NyEidiXkCHjjmCvpVqcZOmBX1HU1SRdezBuhd6flepKY7oImcZa1efIsZqG/JQCLtJmZ WYlklBU0tRlHju2EY5GQYJa/gMgI0Q2ai29WwMsx/5HiFhX9vStQ7+C7nqiy850m6P0Q reuwyytSnMjL/y+V3tjbOun3If2nmeeB90qEoFsFnknR9ZITTf6cmwEHC9D30bGIJudA SBKuD0evqRCSSCjCXStNobdiBwfih8IDz/DOvbwm5JVUxs97rXXCAwP+gKofJRT7n2zK oHgA== X-Gm-Message-State: AOJu0YyVs+aKW9GkJP3DabaxfXs24jqBgdPhpedNuYvKMHqxwPoBOuii 7QkCb/ix3q7H6olmVIodqg6TliXJBNH3GP1ucPkJEt/hQnpUTZ1sfsr7Pa9YV8PvlmUbGJ+eNBi p X-Google-Smtp-Source: AGHT+IHcHpCnkfouvQ+2eaba/3il0CKvczkXy6Y3eg5a+PlADnftdvwImG1sSqlYsqF2Tl3uLBXYQg== X-Received: by 2002:a6b:c34e:0:b0:7d6:7b7c:8257 with SMTP id t75-20020a6bc34e000000b007d67b7c8257mr213529iof.0.1712849701999; Thu, 11 Apr 2024 08:35:01 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.34.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:35:01 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 119/437] drivers/auxdisplay: convert to read/write iterators Date: Thu, 11 Apr 2024 09:14:19 -0600 Message-ID: <20240411153126.16201-120-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/auxdisplay/charlcd.c | 3 ++- drivers/auxdisplay/panel.c | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/auxdisplay/charlcd.c b/drivers/auxdisplay/charlcd.c index 6d309e4971b6..b40af38d69b1 100644 --- a/drivers/auxdisplay/charlcd.c +++ b/drivers/auxdisplay/charlcd.c @@ -487,6 +487,7 @@ static ssize_t charlcd_write(struct file *file, const c= har __user *buf, =20 return tmp - buf; } +FOPS_WRITE_ITER_HELPER(charlcd_write); =20 static int charlcd_open(struct inode *inode, struct file *file) { @@ -521,7 +522,7 @@ static int charlcd_release(struct inode *inode, struct = file *file) } =20 static const struct file_operations charlcd_fops =3D { - .write =3D charlcd_write, + .write_iter =3D charlcd_write_iter, .open =3D charlcd_open, .release =3D charlcd_release, .llseek =3D no_llseek, diff --git a/drivers/auxdisplay/panel.c b/drivers/auxdisplay/panel.c index 049ff443e790..0e5d8d09b60f 100644 --- a/drivers/auxdisplay/panel.c +++ b/drivers/auxdisplay/panel.c @@ -1045,6 +1045,7 @@ static ssize_t keypad_read(struct file *file, =20 return tmp - buf; } +FOPS_READ_ITER_HELPER(keypad_read); =20 static int keypad_open(struct inode *inode, struct file *file) { @@ -1072,7 +1073,7 @@ static int keypad_release(struct inode *inode, struct= file *file) } =20 static const struct file_operations keypad_fops =3D { - .read =3D keypad_read, /* read */ + .read_iter =3D keypad_read_iter, /* read */ .open =3D keypad_open, /* open */ .release =3D keypad_release, /* close */ .llseek =3D default_llseek, --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-il1-f178.google.com (mail-il1-f178.google.com [209.85.166.178]) (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 D953C154453 for ; Thu, 11 Apr 2024 15:35:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.178 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849706; cv=none; b=D/O4+MNaXl2au0gbhMRFAiJ+QHHbHbYC9HZHOAUo/3Mq8yPXkZlL/AXbKKv1uI6Fn+Q0+BDIi1djGxYHuqDHCO1tCnpLmL+BbxHzgLMgJAOuDEcKVTeAn9ARbk4gg03LD5C+JC32GrgiGmFzOV2h5UxCzIn1+PYJ0mLb4y6fBxg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849706; c=relaxed/simple; bh=ddwVRkDdBQfcI/LkHmF8rG2qaDBU/hVGb7KrSazxweQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=QsNtDKTjtddw/DXA4fivMkeaU8sTr2f1j9Umksbd51lXN5DDPPqJUXjx9OLtj8MEb/VdMRWg5HSRPA3JC8zVQ83XRXywoC4ji+l92zuwDAeUN8Y4RJCQKhp+u8TJfyB7zP6LoBdfII5iZ0jxSk/Qi6M+/KSAVqDN/GRwjs+a8zI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=p+HFY0S5; arc=none smtp.client-ip=209.85.166.178 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="p+HFY0S5" Received: by mail-il1-f178.google.com with SMTP id e9e14a558f8ab-36a224d7414so180475ab.1 for ; Thu, 11 Apr 2024 08:35:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849703; x=1713454503; 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=IEHw82QDIJyA4wXzTfT9/81diBLxPZNeaQxLfo+fveU=; b=p+HFY0S5eQZvzeuu3wSV8JMA26IksMyfJxuAEsAO0uyObKuhWOdCBLRZeZ9inoUpy5 V9EHNnfxUocWNpMxKv4lfpdjts/BXwqfK8b1URHKpznX2W3HGClhW2fzTr8iAhcSejaB X/zIcXNZzGiFjB1ziub4mCf/gDXkhxNLNYVMmzS4kzLmluzS8/jn8k/eNr014Bt2660Q 5j6GEQheOL5rWbZJ/70a4IoraKbsB1VO9qFIV67gHZtckAjNk51LEtd/yItkmCpjMAo+ 40Gq3eYbLQqvRYuULQRwDqb13mS95AyA+G6yNq6f10mWiZUretPK1qnZUjHJq/gZh1+5 uoBQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849703; x=1713454503; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=IEHw82QDIJyA4wXzTfT9/81diBLxPZNeaQxLfo+fveU=; b=AFYbO7UvjneQbZVEilXICVuIYAtynYPbx4lNiKfhidCeSdYT2TID84iweLWOSv7t6L CT8OuAqxJ62EJPJofIweGUR0c3t0MimR2woninsyO6RxVs+/EdK4fEl6T1GnnqaFTyMD KhXDdo4kXfjlZQPM6AmFaSQXYQF4PpKjwyHa7r0FrIogyue6m1aeWa0NAmKs59v4MzbA fhL8+clKxasrleCtj/s6mkRBzMrflpKUXiK8P0bcI33DsQvOa2J4mv4zKIHhryBr5Kai QEoEkk6nLtFVBnFdVC+paub7XXOtziVVWqwrOqv5bM4UKGQnLEAPK/ZICXLRrmWE7oIS 6xBg== X-Gm-Message-State: AOJu0YzXvRmwoPO2Gk2gVz9nUId84YHr2k8CnfQyPf2oCjsporqxvNSz H2XlNIikUMk47I3XjpVqbNQphi92tmdwoKoghqRMKZ54gcnFUz8bObnJg7XmqhmuFcGxn4k7xd7 k X-Google-Smtp-Source: AGHT+IFLQP4hLOClhAmCJwMEEzWB7lWTG8tEYxoTtSg1mqUOVnbaO5vWQ5AGA/L6JRbnNOomFufuZA== X-Received: by 2002:a05:6602:4ed7:b0:7d5:ddc8:504d with SMTP id gk23-20020a0566024ed700b007d5ddc8504dmr185679iob.0.1712849703577; Thu, 11 Apr 2024 08:35:03 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.35.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:35:02 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 120/437] fs/eventfd: convert to read/write iterators Date: Thu, 11 Apr 2024 09:14:20 -0600 Message-ID: <20240411153126.16201-121-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- fs/eventfd.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/fs/eventfd.c b/fs/eventfd.c index 9afdb722fa92..6995253a37f3 100644 --- a/fs/eventfd.c +++ b/fs/eventfd.c @@ -244,16 +244,16 @@ static ssize_t eventfd_read(struct kiocb *iocb, struc= t iov_iter *to) return sizeof(ucnt); } =20 -static ssize_t eventfd_write(struct file *file, const char __user *buf, si= ze_t count, - loff_t *ppos) +static ssize_t eventfd_write(struct kiocb *iocb, struct iov_iter *from) { - struct eventfd_ctx *ctx =3D file->private_data; + struct eventfd_ctx *ctx =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); ssize_t res; __u64 ucnt; =20 if (count !=3D sizeof(ucnt)) return -EINVAL; - if (copy_from_user(&ucnt, buf, sizeof(ucnt))) + if (!copy_from_iter_full(&ucnt, sizeof(ucnt), from)) return -EFAULT; if (ucnt =3D=3D ULLONG_MAX) return -EINVAL; @@ -261,7 +261,7 @@ static ssize_t eventfd_write(struct file *file, const c= har __user *buf, size_t c res =3D -EAGAIN; if (ULLONG_MAX - ctx->count > ucnt) res =3D sizeof(ucnt); - else if (!(file->f_flags & O_NONBLOCK)) { + else if (!(iocb->ki_filp->f_flags & O_NONBLOCK)) { res =3D wait_event_interruptible_locked_irq(ctx->wqh, ULLONG_MAX - ctx->count > ucnt); if (!res) @@ -306,7 +306,7 @@ static const struct file_operations eventfd_fops =3D { .release =3D eventfd_release, .poll =3D eventfd_poll, .read_iter =3D eventfd_read, - .write =3D eventfd_write, + .write_iter =3D eventfd_write, .llseek =3D noop_llseek, }; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f45.google.com (mail-io1-f45.google.com [209.85.166.45]) (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 563E3158D95 for ; Thu, 11 Apr 2024 15:35:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849708; cv=none; b=PwAYT3fJA2iYvcrSH7rxYuWQg/KHvqvTJKEH1p5o/5RolaRsxsiRFeafjuJkXe3xWmAk66sbyZAD/dVwt9lGK8uogN3hT38PxW96LMEAmTb63QOHP5zXhSnrg7OkEpfFOqftfnwJdIqg4/d+sBHAoC5ozUk+FZ/vGu1hcZxztZo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849708; c=relaxed/simple; bh=Y2CuPnfNGCTlH89sPwvg5Qqu+KAOzE/jZXq27+ZlmTI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=TYLJBA95MTkT2u4i1PxNrQIyr84/kbH8/y9of1mS1j5COSJLI24Ha7vSV3IPGQnJpPsaP6N9lhhDYqguujJ9FIkz6Q3BeBF8Ge37xA5qXa/MdEQsxsctQwXhKs3JcBMMBSI/V54088y8IRftazhKo8RrX83IafltpfHM8FK+LGM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=Nr94BhZM; arc=none smtp.client-ip=209.85.166.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="Nr94BhZM" Received: by mail-io1-f45.google.com with SMTP id ca18e2360f4ac-7d6812b37a6so8922739f.0 for ; Thu, 11 Apr 2024 08:35:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849705; x=1713454505; 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=jctYABsZiacNIUyvtBgQSkUe95IwzkHgR2PUGlrc25M=; b=Nr94BhZMJW3LQxH3W9dJ2M5jwZUXyi1nP1HcJYZm8QR1F5nJ8HK04lbDbHfomtGGBu 1tnOUyqIuHD6ESycs14QVwDIb9awUamfapAtKHvQElQCzG/LLX5jyw59iv94CCc4gnpT CNlNseV9ZBdPDyWau9vOxVSMWfHoGMRiC8IQAC2U86LQL/vS0HEOtTABPmtu69eG24U1 vT8kC3qJ0JVQmXAo6WmX7BZ32s4JEOSjnpYGxtyJeONVaKLjCebJa0/TDVa+JSAQlPk6 67CBJmCxTJNVpMSawFIsKoVPqzFKCNFO9OHNLyj/p/1mQmpIR6fD5TMyi63B8LX0OUIm DkgQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849705; x=1713454505; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=jctYABsZiacNIUyvtBgQSkUe95IwzkHgR2PUGlrc25M=; b=CzRAHhBkcdhOaLsFnVQTzYw8hNutuYHgLmyz0+A3FbcN0UwYJfabN4jctF4gCAAOfy TAsk7O/nwaoo1PIlM4fRKfKBRLuIRVOrI/ls+kbD+C2KnNDDa/Tzwl0gkKuoOYrnfIRo 0fROpigddSmqL2dPjAfGznm5fbmK8gH4dIqZWTw9e5OZPGleUiwENv/tTQkLPwBWYkEi fQQIgVPaKIa6HulddptBI8JgWCfVAy5U/ekvEHB+Ha54VN63EE9g5OPUQ2mdyQzA2dwz PfR6RYbggvni+IPqJgQhWIkar1EcC+qEETvmV1TEXRbj17PnxsR+ttXW5Xx9gx8P99Is D2Jg== X-Gm-Message-State: AOJu0Yyp8gHD9HvjX4nwebsZtembU5uUwyW/n4g2cFqKO/W8W7SpPltD HlRtaMwEKDy/OIQGNOO6bpUu6GHfJuhgt2l7XL8ChG8ZfGGs1F6LN01yWKwXiqphDqg7RyXiHgU S X-Google-Smtp-Source: AGHT+IF9gFig6M+UH9WnMfXESZo6hf1MnyyC+bzgiTIP7ZEz+OCipcMpgkovUtXNnZ/hCbTaC+ccNA== X-Received: by 2002:a6b:5b10:0:b0:7d0:bd2b:43ba with SMTP id v16-20020a6b5b10000000b007d0bd2b43bamr219626ioh.0.1712849705156; Thu, 11 Apr 2024 08:35:05 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.35.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:35:03 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 121/437] drivers/input: convert to read/write iterators Date: Thu, 11 Apr 2024 09:14:21 -0600 Message-ID: <20240411153126.16201-122-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/input/evdev.c | 6 ++++-- drivers/input/joydev.c | 22 +++++++++++----------- drivers/input/keyboard/applespi.c | 11 +++++------ drivers/input/misc/uinput.c | 6 ++++-- drivers/input/mousedev.c | 16 +++++++++------- drivers/input/serio/serio_raw.c | 6 ++++-- drivers/input/serio/userio.c | 22 +++++++++++----------- drivers/input/touchscreen/edt-ft5x06.c | 19 ++++++++++--------- 8 files changed, 58 insertions(+), 50 deletions(-) diff --git a/drivers/input/evdev.c b/drivers/input/evdev.c index 51e0c4954600..9f41631df926 100644 --- a/drivers/input/evdev.c +++ b/drivers/input/evdev.c @@ -536,6 +536,7 @@ static ssize_t evdev_write(struct file *file, const cha= r __user *buffer, mutex_unlock(&evdev->mutex); return retval; } +FOPS_WRITE_ITER_HELPER(evdev_write); =20 static int evdev_fetch_next_event(struct evdev_client *client, struct input_event *event) @@ -605,6 +606,7 @@ static ssize_t evdev_read(struct file *file, char __use= r *buffer, =20 return read; } +FOPS_READ_ITER_HELPER(evdev_read); =20 /* No kernel lock - fine */ static __poll_t evdev_poll(struct file *file, poll_table *wait) @@ -1291,8 +1293,8 @@ static long evdev_ioctl_compat(struct file *file, =20 static const struct file_operations evdev_fops =3D { .owner =3D THIS_MODULE, - .read =3D evdev_read, - .write =3D evdev_write, + .read_iter =3D evdev_read_iter, + .write_iter =3D evdev_write_iter, .poll =3D evdev_poll, .open =3D evdev_open, .release =3D evdev_release, diff --git a/drivers/input/joydev.c b/drivers/input/joydev.c index 5824bca02e5a..e84acc296aaa 100644 --- a/drivers/input/joydev.c +++ b/drivers/input/joydev.c @@ -23,6 +23,7 @@ #include #include #include +#include =20 MODULE_AUTHOR("Vojtech Pavlik "); MODULE_DESCRIPTION("Joystick device interfaces"); @@ -338,8 +339,7 @@ static int joydev_fetch_next_event(struct joydev_client= *client, * Old joystick interface */ static ssize_t joydev_0x_read(struct joydev_client *client, - struct input_dev *input, - char __user *buf) + struct input_dev *input, struct iov_iter *to) { struct joydev *joydev =3D client->joydev; struct JS_DATA_TYPE data; @@ -366,7 +366,7 @@ static ssize_t joydev_0x_read(struct joydev_client *cli= ent, =20 spin_unlock_irq(&input->event_lock); =20 - if (copy_to_user(buf, &data, sizeof(struct JS_DATA_TYPE))) + if (!copy_to_iter(&data, sizeof(struct JS_DATA_TYPE), to)) return -EFAULT; =20 return sizeof(struct JS_DATA_TYPE); @@ -380,12 +380,12 @@ static inline int joydev_data_pending(struct joydev_c= lient *client) client->head !=3D client->tail; } =20 -static ssize_t joydev_read(struct file *file, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t joydev_read(struct kiocb *iocb, struct iov_iter *to) { - struct joydev_client *client =3D file->private_data; + struct joydev_client *client =3D iocb->ki_filp->private_data; struct joydev *joydev =3D client->joydev; struct input_dev *input =3D joydev->handle.dev; + size_t count =3D iov_iter_count(to); struct js_event event; int retval; =20 @@ -396,9 +396,9 @@ static ssize_t joydev_read(struct file *file, char __us= er *buf, return -EINVAL; =20 if (count =3D=3D sizeof(struct JS_DATA_TYPE)) - return joydev_0x_read(client, input, buf); + return joydev_0x_read(client, input, to); =20 - if (!joydev_data_pending(client) && (file->f_flags & O_NONBLOCK)) + if (!joydev_data_pending(client) && (iocb->ki_filp->f_flags & O_NONBLOCK)) return -EAGAIN; =20 retval =3D wait_event_interruptible(joydev->wait, @@ -412,7 +412,7 @@ static ssize_t joydev_read(struct file *file, char __us= er *buf, while (retval + sizeof(struct js_event) <=3D count && joydev_generate_startup_event(client, input, &event)) { =20 - if (copy_to_user(buf + retval, &event, sizeof(struct js_event))) + if (!copy_to_iter_full(&event, sizeof(struct js_event), to)) return -EFAULT; =20 retval +=3D sizeof(struct js_event); @@ -421,7 +421,7 @@ static ssize_t joydev_read(struct file *file, char __us= er *buf, while (retval + sizeof(struct js_event) <=3D count && joydev_fetch_next_event(client, &event)) { =20 - if (copy_to_user(buf + retval, &event, sizeof(struct js_event))) + if (!copy_to_iter_full(&event, sizeof(struct js_event), to)) return -EFAULT; =20 retval +=3D sizeof(struct js_event); @@ -709,7 +709,7 @@ static long joydev_ioctl(struct file *file, =20 static const struct file_operations joydev_fops =3D { .owner =3D THIS_MODULE, - .read =3D joydev_read, + .read_iter =3D joydev_read, .poll =3D joydev_poll, .open =3D joydev_open, .release =3D joydev_release, diff --git a/drivers/input/keyboard/applespi.c b/drivers/input/keyboard/app= lespi.c index cf25177b4830..fa1ce0d23f14 100644 --- a/drivers/input/keyboard/applespi.c +++ b/drivers/input/keyboard/applespi.c @@ -994,19 +994,18 @@ static int applespi_tp_dim_open(struct inode *inode, = struct file *file) return nonseekable_open(inode, file); } =20 -static ssize_t applespi_tp_dim_read(struct file *file, char __user *buf, - size_t len, loff_t *off) +static ssize_t applespi_tp_dim_read(struct kiocb *iocb, struct iov_iter *t= o) { - struct applespi_data *applespi =3D file->private_data; + struct applespi_data *applespi =3D iocb->ki_filp->private_data; =20 - return simple_read_from_buffer(buf, len, off, applespi->tp_dim_val, - strlen(applespi->tp_dim_val)); + return simple_copy_to_iter(applespi->tp_dim_val, &iocb->ki_pos, + strlen(applespi->tp_dim_val), to); } =20 static const struct file_operations applespi_tp_dim_fops =3D { .owner =3D THIS_MODULE, .open =3D applespi_tp_dim_open, - .read =3D applespi_tp_dim_read, + .read_iter =3D applespi_tp_dim_read, .llseek =3D no_llseek, }; =20 diff --git a/drivers/input/misc/uinput.c b/drivers/input/misc/uinput.c index d98212d55108..960a0c729bc2 100644 --- a/drivers/input/misc/uinput.c +++ b/drivers/input/misc/uinput.c @@ -651,6 +651,7 @@ static ssize_t uinput_write(struct file *file, const ch= ar __user *buffer, =20 return retval; } +FOPS_WRITE_ITER_HELPER(uinput_write); =20 static bool uinput_fetch_next_event(struct uinput_device *udev, struct input_event *event) @@ -723,6 +724,7 @@ static ssize_t uinput_read(struct file *file, char __us= er *buffer, =20 return retval; } +FOPS_READ_ITER_HELPER(uinput_read); =20 static __poll_t uinput_poll(struct file *file, poll_table *wait) { @@ -1111,8 +1113,8 @@ static const struct file_operations uinput_fops =3D { .owner =3D THIS_MODULE, .open =3D uinput_open, .release =3D uinput_release, - .read =3D uinput_read, - .write =3D uinput_write, + .read_iter =3D uinput_read_iter, + .write_iter =3D uinput_write_iter, .poll =3D uinput_poll, .unlocked_ioctl =3D uinput_ioctl, #ifdef CONFIG_COMPAT diff --git a/drivers/input/mousedev.c b/drivers/input/mousedev.c index 505c562a5daa..5d1905f078d1 100644 --- a/drivers/input/mousedev.c +++ b/drivers/input/mousedev.c @@ -24,6 +24,7 @@ #include #include #include +#include =20 MODULE_AUTHOR("Vojtech Pavlik "); MODULE_DESCRIPTION("Mouse (ExplorerPS/2) device interfaces"); @@ -712,17 +713,18 @@ static ssize_t mousedev_write(struct file *file, cons= t char __user *buffer, =20 return count; } +FOPS_WRITE_ITER_HELPER(mousedev_write); =20 -static ssize_t mousedev_read(struct file *file, char __user *buffer, - size_t count, loff_t *ppos) +static ssize_t mousedev_read(struct kiocb *iocb, struct iov_iter *to) { - struct mousedev_client *client =3D file->private_data; + struct mousedev_client *client =3D iocb->ki_filp->private_data; struct mousedev *mousedev =3D client->mousedev; + size_t count =3D iov_iter_count(to); u8 data[sizeof(client->ps2)]; int retval =3D 0; =20 if (!client->ready && !client->buffer && mousedev->exist && - (file->f_flags & O_NONBLOCK)) + (iocb->ki_filp->f_flags & O_NONBLOCK)) return -EAGAIN; =20 retval =3D wait_event_interruptible(mousedev->wait, @@ -748,7 +750,7 @@ static ssize_t mousedev_read(struct file *file, char __= user *buffer, =20 spin_unlock_irq(&client->packet_lock); =20 - if (copy_to_user(buffer, data, count)) + if (!copy_to_iter_full(data, count, to)) return -EFAULT; =20 return count; @@ -772,8 +774,8 @@ static __poll_t mousedev_poll(struct file *file, poll_t= able *wait) =20 static const struct file_operations mousedev_fops =3D { .owner =3D THIS_MODULE, - .read =3D mousedev_read, - .write =3D mousedev_write, + .read_iter =3D mousedev_read, + .write_iter =3D mousedev_write_iter, .poll =3D mousedev_poll, .open =3D mousedev_open, .release =3D mousedev_release, diff --git a/drivers/input/serio/serio_raw.c b/drivers/input/serio/serio_ra= w.c index 1e4770094415..3b4e72fdcd4f 100644 --- a/drivers/input/serio/serio_raw.c +++ b/drivers/input/serio/serio_raw.c @@ -194,6 +194,7 @@ static ssize_t serio_raw_read(struct file *file, char _= _user *buffer, =20 return read; } +FOPS_READ_ITER_HELPER(serio_raw_read); =20 static ssize_t serio_raw_write(struct file *file, const char __user *buffe= r, size_t count, loff_t *ppos) @@ -235,6 +236,7 @@ static ssize_t serio_raw_write(struct file *file, const= char __user *buffer, mutex_unlock(&serio_raw_mutex); return retval; } +FOPS_WRITE_ITER_HELPER(serio_raw_write); =20 static __poll_t serio_raw_poll(struct file *file, poll_table *wait) { @@ -255,8 +257,8 @@ static const struct file_operations serio_raw_fops =3D { .owner =3D THIS_MODULE, .open =3D serio_raw_open, .release =3D serio_raw_release, - .read =3D serio_raw_read, - .write =3D serio_raw_write, + .read_iter =3D serio_raw_read_iter, + .write_iter =3D serio_raw_write_iter, .poll =3D serio_raw_poll, .fasync =3D serio_raw_fasync, .llseek =3D noop_llseek, diff --git a/drivers/input/serio/userio.c b/drivers/input/serio/userio.c index 9ab5c45c3a9f..3688579d69d2 100644 --- a/drivers/input/serio/userio.c +++ b/drivers/input/serio/userio.c @@ -118,10 +118,10 @@ static int userio_char_release(struct inode *inode, s= truct file *file) return 0; } =20 -static ssize_t userio_char_read(struct file *file, char __user *user_buffe= r, - size_t count, loff_t *ppos) +static ssize_t userio_char_read(struct kiocb *iocb, struct iov_iter *to) { - struct userio_device *userio =3D file->private_data; + struct userio_device *userio =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(to); int error; size_t nonwrap_len, copylen; unsigned char buf[USERIO_BUFSIZE]; @@ -153,7 +153,7 @@ static ssize_t userio_char_read(struct file *file, char= __user *user_buffer, break; =20 /* buffer was/is empty */ - if (file->f_flags & O_NONBLOCK) + if (iocb->ki_filp->f_flags & O_NONBLOCK) return -EAGAIN; =20 /* @@ -170,16 +170,16 @@ static ssize_t userio_char_read(struct file *file, ch= ar __user *user_buffer, } =20 if (copylen) - if (copy_to_user(user_buffer, buf, copylen)) + if (!copy_to_iter_full(buf, copylen, to)) return -EFAULT; =20 return copylen; } =20 -static ssize_t userio_char_write(struct file *file, const char __user *buf= fer, - size_t count, loff_t *ppos) +static ssize_t userio_char_write(struct kiocb *iocb, struct iov_iter *from) { - struct userio_device *userio =3D file->private_data; + struct userio_device *userio =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); struct userio_cmd cmd; int error; =20 @@ -188,7 +188,7 @@ static ssize_t userio_char_write(struct file *file, con= st char __user *buffer, return -EINVAL; } =20 - if (copy_from_user(&cmd, buffer, sizeof(cmd))) + if (!copy_from_iter_full(&cmd, sizeof(cmd), from)) return -EFAULT; =20 error =3D mutex_lock_interruptible(&userio->mutex); @@ -264,8 +264,8 @@ static const struct file_operations userio_fops =3D { .owner =3D THIS_MODULE, .open =3D userio_char_open, .release =3D userio_char_release, - .read =3D userio_char_read, - .write =3D userio_char_write, + .read_iter =3D userio_char_read, + .write_iter =3D userio_char_write, .poll =3D userio_char_poll, .llseek =3D no_llseek, }; diff --git a/drivers/input/touchscreen/edt-ft5x06.c b/drivers/input/touchsc= reen/edt-ft5x06.c index 2a1db1134476..fe1b0a2c0925 100644 --- a/drivers/input/touchscreen/edt-ft5x06.c +++ b/drivers/input/touchscreen/edt-ft5x06.c @@ -31,6 +31,7 @@ #include #include #include +#include =20 #include =20 @@ -735,20 +736,20 @@ static int edt_ft5x06_debugfs_mode_set(void *data, u6= 4 mode) DEFINE_SIMPLE_ATTRIBUTE(debugfs_mode_fops, edt_ft5x06_debugfs_mode_get, edt_ft5x06_debugfs_mode_set, "%llu\n"); =20 -static ssize_t edt_ft5x06_debugfs_raw_data_read(struct file *file, - char __user *buf, size_t count, - loff_t *off) +static ssize_t edt_ft5x06_debugfs_raw_data_read(struct kiocb *iocb, + struct iov_iter *to) { - struct edt_ft5x06_ts_data *tsdata =3D file->private_data; + struct edt_ft5x06_ts_data *tsdata =3D iocb->ki_filp->private_data; struct i2c_client *client =3D tsdata->client; int retries =3D EDT_RAW_DATA_RETRIES; + size_t count =3D iov_iter_count(to); unsigned int val; int i, error; size_t read =3D 0; int colbytes; u8 *rdbuf; =20 - if (*off < 0 || *off >=3D tsdata->raw_bufsize) + if (iocb->ki_pos < 0 || iocb->ki_pos >=3D tsdata->raw_bufsize) return 0; =20 mutex_lock(&tsdata->mutex); @@ -798,13 +799,13 @@ static ssize_t edt_ft5x06_debugfs_raw_data_read(struc= t file *file, rdbuf +=3D colbytes; } =20 - read =3D min_t(size_t, count, tsdata->raw_bufsize - *off); - if (copy_to_user(buf, tsdata->raw_buffer + *off, read)) { + read =3D min_t(size_t, count, tsdata->raw_bufsize - iocb->ki_pos); + if (!copy_to_iter_full(tsdata->raw_buffer + iocb->ki_pos, read, to)) { error =3D -EFAULT; goto out; } =20 - *off +=3D read; + iocb->ki_pos +=3D read; out: mutex_unlock(&tsdata->mutex); return error ?: read; @@ -812,7 +813,7 @@ static ssize_t edt_ft5x06_debugfs_raw_data_read(struct = file *file, =20 static const struct file_operations debugfs_raw_data_fops =3D { .open =3D simple_open, - .read =3D edt_ft5x06_debugfs_raw_data_read, + .read_iter =3D edt_ft5x06_debugfs_raw_data_read, }; =20 static void edt_ft5x06_ts_prepare_debugfs(struct edt_ft5x06_ts_data *tsdat= a, --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f46.google.com (mail-io1-f46.google.com [209.85.166.46]) (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 238B11598F5 for ; Thu, 11 Apr 2024 15:35:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849709; cv=none; b=M/Lel0dVrzq221bM3txJUD1lHbwjzWqEwNJSH3ZIafr5z8Zim94keZo3L4flXG7zfftOo3qyVSQbxlNVBAQKOb0IGKdCQZ1xXprm5ManDFlHx1tU1l9mTQ77a3iEV82X6863FiBXhZZgB4a+doJo/6dOcpaAJq3ZI2ajD+EIqK8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849709; c=relaxed/simple; bh=AxBLQiacTScg+7JrtvelA4l3j2Xi/pndV3VG6rn4ajg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=h1OR7HDXmv6B7t4IcSKr1myHNt0nrq9EVSBjTANG8DysjdIewLBWt7T7HeZqQi32c3bPenNDxJq62WDAqD/LJFIWN3YCkQbtbj8QTfi1/SYScnvqNBRBR7sOpi1TBcKGXqP8myRz3L6X3HJuX6Ja7u+HjrvT/FDR7hbbdK4jedQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=HtAZPJOE; arc=none smtp.client-ip=209.85.166.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="HtAZPJOE" Received: by mail-io1-f46.google.com with SMTP id ca18e2360f4ac-7d0772bb5ffso180632439f.0 for ; Thu, 11 Apr 2024 08:35:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849707; x=1713454507; 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=jMnl20njZNAJZk66Lt1b3svShUeqokDg3NT6wbzcJjI=; b=HtAZPJOE89aCXw1rd0YQst978sA6DhMC40C2if8ldzypNsYF6UCAHQxNIt8ctYoeqA hl8/fenP3Aw9fhbInjiuGeRvoGnKbiIHKabsqMgdYc0RX3btQayb9m/4BIbdN3zZRlor STAjEEcNBDcBsLuWIIe0Moeojlam8AQx/7zzJ4K82Tvm0uYV8ObtS8pzJipCnFzQb1Ky zny8GEeGbcsBWXjFoCnCBs1krPdFPzFFYSIPi5xtgt8MDilBVxOCUu+FfqZhuLTcV8fD hCpmfZmPTwByFI9MsSKQAhf6/0mToxlndPjdZ7SZ4t9Hkn2O8Y2ixmwdo6Hnrwsncxi1 LCug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849707; x=1713454507; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=jMnl20njZNAJZk66Lt1b3svShUeqokDg3NT6wbzcJjI=; b=f7vZy0cjKh4k0pcaZJLdSS8MxngyZXoCaB475mY2wjsj9P2URqreFal6A0NGwAlkjY iLUf9l/27IZ3gboTfEwBjd214mr0y8XGrtVhdYMV+KsNQefEbvBiwUjOEzRm6yX2lrLl 2frkBrEpa16VfxtNWl8jSNju20hvc0PDVY8rlcB/appVLsRlF0Bx9Lp2J6+g/ed16uXM S5zEI0ZwsEiw3ui9ORSBk0qiZ0lSjlKehaEVxVoNfLtgfV+gLbi5BuqCCWmdRLEPRpjP zT8NzwKiELZGFNdS8e6yx0vjqpTuoIMe/Nx0AYm2G0yacx40y7GHek1s7Jxfld77L2kf lMVg== X-Gm-Message-State: AOJu0YyWljzxorJlGVjRe7EZ8gPDwHiaVbEYUEEJ1ioLbXuOCT9yLHfu fvAl6HOL2MA/wyiN+7BbBSJQal/swlu6eWSNuscaY5vWnTxOn3S7IQoimN/0wqnRHhALtlPmPcT E X-Google-Smtp-Source: AGHT+IHiPo3WkFVSvzxSedySVJ9KIjgRG07NSZG1cDnLkyPA3jikmbHV1mp2RuY2XNPDx9hJC3A0tw== X-Received: by 2002:a6b:4e14:0:b0:7d6:631d:7b0 with SMTP id c20-20020a6b4e14000000b007d6631d07b0mr183298iob.1.1712849706926; Thu, 11 Apr 2024 08:35:06 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.35.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:35:05 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 122/437] drivers/pci: convert to read/write iterators Date: Thu, 11 Apr 2024 09:14:22 -0600 Message-ID: <20240411153126.16201-123-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/pci/pcie/aer_inject.c | 9 +++++---- drivers/pci/switch/switchtec.c | 33 ++++++++++++++++----------------- drivers/pci/vgaarb.c | 21 +++++++++++---------- 3 files changed, 32 insertions(+), 31 deletions(-) diff --git a/drivers/pci/pcie/aer_inject.c b/drivers/pci/pcie/aer_inject.c index 2dab275d252f..869abe6a82ab 100644 --- a/drivers/pci/pcie/aer_inject.c +++ b/drivers/pci/pcie/aer_inject.c @@ -21,6 +21,7 @@ #include #include #include +#include #include #include #include @@ -483,9 +484,9 @@ static int aer_inject(struct aer_error_inj *einj) return ret; } =20 -static ssize_t aer_inject_write(struct file *filp, const char __user *ubuf, - size_t usize, loff_t *off) +static ssize_t aer_inject_write(struct kiocb *iocb, struct iov_iter *from) { + size_t usize =3D iov_iter_count(from); struct aer_error_inj einj; int ret; =20 @@ -496,7 +497,7 @@ static ssize_t aer_inject_write(struct file *filp, cons= t char __user *ubuf, return -EINVAL; =20 memset(&einj, 0, sizeof(einj)); - if (copy_from_user(&einj, ubuf, usize)) + if (!copy_from_iter_full(&einj, usize, from)) return -EFAULT; =20 ret =3D aer_inject(&einj); @@ -504,7 +505,7 @@ static ssize_t aer_inject_write(struct file *filp, cons= t char __user *ubuf, } =20 static const struct file_operations aer_inject_fops =3D { - .write =3D aer_inject_write, + .write_iter =3D aer_inject_write, .owner =3D THIS_MODULE, .llseek =3D noop_llseek, }; diff --git a/drivers/pci/switch/switchtec.c b/drivers/pci/switch/switchtec.c index 5a4adf6c04cf..db6f578e854c 100644 --- a/drivers/pci/switch/switchtec.c +++ b/drivers/pci/switch/switchtec.c @@ -15,6 +15,7 @@ #include #include #include +#include =20 MODULE_DESCRIPTION("Microsemi Switchtec(tm) PCIe Management Driver"); MODULE_VERSION("0.1"); @@ -503,11 +504,11 @@ static int lock_mutex_and_test_alive(struct switchtec= _dev *stdev) return 0; } =20 -static ssize_t switchtec_dev_write(struct file *filp, const char __user *d= ata, - size_t size, loff_t *off) +static ssize_t switchtec_dev_write(struct kiocb *iocb, struct iov_iter *fr= om) { - struct switchtec_user *stuser =3D filp->private_data; + struct switchtec_user *stuser =3D iocb->ki_filp->private_data; struct switchtec_dev *stdev =3D stuser->stdev; + size_t size =3D iov_iter_count(from); int rc; =20 if (size < sizeof(stuser->cmd) || @@ -525,7 +526,7 @@ static ssize_t switchtec_dev_write(struct file *filp, c= onst char __user *data, goto out; } =20 - rc =3D copy_from_user(&stuser->cmd, data, sizeof(stuser->cmd)); + rc =3D !copy_from_iter_full(&stuser->cmd, sizeof(stuser->cmd), from); if (rc) { rc =3D -EFAULT; goto out; @@ -537,8 +538,7 @@ static ssize_t switchtec_dev_write(struct file *filp, c= onst char __user *data, goto out; } =20 - data +=3D sizeof(stuser->cmd); - rc =3D copy_from_user(&stuser->data, data, size - sizeof(stuser->cmd)); + rc =3D !copy_from_iter_full(&stuser->data, size - sizeof(stuser->cmd), fr= om); if (rc) { rc =3D -EFAULT; goto out; @@ -555,11 +555,11 @@ static ssize_t switchtec_dev_write(struct file *filp,= const char __user *data, return size; } =20 -static ssize_t switchtec_dev_read(struct file *filp, char __user *data, - size_t size, loff_t *off) +static ssize_t switchtec_dev_read(struct kiocb *iocb, struct iov_iter *to) { - struct switchtec_user *stuser =3D filp->private_data; + struct switchtec_user *stuser =3D iocb->ki_filp->private_data; struct switchtec_dev *stdev =3D stuser->stdev; + size_t size =3D iov_iter_count(to); int rc; =20 if (size < sizeof(stuser->cmd) || @@ -579,7 +579,7 @@ static ssize_t switchtec_dev_read(struct file *filp, ch= ar __user *data, =20 mutex_unlock(&stdev->mrpc_mutex); =20 - if (filp->f_flags & O_NONBLOCK) { + if (iocb->ki_filp->f_flags & O_NONBLOCK) { if (!stuser->cmd_done) return -EAGAIN; } else { @@ -603,16 +603,15 @@ static ssize_t switchtec_dev_read(struct file *filp, = char __user *data, return -EBADE; } =20 - rc =3D copy_to_user(data, &stuser->return_code, - sizeof(stuser->return_code)); + rc =3D !copy_to_iter_full(&stuser->return_code, + sizeof(stuser->return_code), to); if (rc) { mutex_unlock(&stdev->mrpc_mutex); return -EFAULT; } =20 - data +=3D sizeof(stuser->return_code); - rc =3D copy_to_user(data, &stuser->data, - size - sizeof(stuser->return_code)); + rc =3D !copy_to_iter_full(&stuser->data, + size - sizeof(stuser->return_code), to); if (rc) { mutex_unlock(&stdev->mrpc_mutex); return -EFAULT; @@ -1247,8 +1246,8 @@ static const struct file_operations switchtec_fops = =3D { .owner =3D THIS_MODULE, .open =3D switchtec_dev_open, .release =3D switchtec_dev_release, - .write =3D switchtec_dev_write, - .read =3D switchtec_dev_read, + .write_iter =3D switchtec_dev_write, + .read_iter =3D switchtec_dev_read, .poll =3D switchtec_dev_poll, .unlocked_ioctl =3D switchtec_dev_ioctl, .compat_ioctl =3D compat_ptr_ioctl, diff --git a/drivers/pci/vgaarb.c b/drivers/pci/vgaarb.c index 78748e8d2dba..a5051fae9bcb 100644 --- a/drivers/pci/vgaarb.c +++ b/drivers/pci/vgaarb.c @@ -31,6 +31,7 @@ #include #include #include +#include #include =20 static void vga_arbiter_notify_clients(void); @@ -1088,10 +1089,10 @@ static int vga_pci_str_to_vars(char *buf, int count= , unsigned int *domain, return 1; } =20 -static ssize_t vga_arb_read(struct file *file, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t vga_arb_read(struct kiocb *iocb, struct iov_iter *to) { - struct vga_arb_private *priv =3D file->private_data; + struct vga_arb_private *priv =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(to); struct vga_device *vgadev; struct pci_dev *pdev; unsigned long flags; @@ -1141,7 +1142,7 @@ static ssize_t vga_arb_read(struct file *file, char _= _user *buf, /* Copy that to user */ if (len > count) len =3D count; - rc =3D copy_to_user(buf, lbuf, len); + rc =3D !copy_to_iter_full(lbuf, len, to); kfree(lbuf); if (rc) return -EFAULT; @@ -1152,10 +1153,10 @@ static ssize_t vga_arb_read(struct file *file, char= __user *buf, * TODO: To avoid parsing inside kernel and to improve the speed we may * consider use ioctl here */ -static ssize_t vga_arb_write(struct file *file, const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t vga_arb_write(struct kiocb *iocb, struct iov_iter *from) { - struct vga_arb_private *priv =3D file->private_data; + struct vga_arb_private *priv =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); struct vga_arb_user_card *uc =3D NULL; struct pci_dev *pdev; =20 @@ -1169,7 +1170,7 @@ static ssize_t vga_arb_write(struct file *file, const= char __user *buf, =20 if (count >=3D sizeof(kbuf)) return -EINVAL; - if (copy_from_user(kbuf, buf, count)) + if (!copy_from_iter_full(kbuf, count, from)) return -EFAULT; curr_pos =3D kbuf; kbuf[count] =3D '\0'; @@ -1523,8 +1524,8 @@ static struct notifier_block pci_notifier =3D { }; =20 static const struct file_operations vga_arb_device_fops =3D { - .read =3D vga_arb_read, - .write =3D vga_arb_write, + .read_iter =3D vga_arb_read, + .write_iter =3D vga_arb_write, .poll =3D vga_arb_fpoll, .open =3D vga_arb_open, .release =3D vga_arb_release, --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f53.google.com (mail-io1-f53.google.com [209.85.166.53]) (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 D035A15990F for ; Thu, 11 Apr 2024 15:35:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849711; cv=none; b=VUnh5mIomsBz0ha6ytQNWTR59M/pzzZ/R+IfOqRWV2b3B0Ul7ulTUF8i2WivZmwfIVoMu9JQapVE04WQq7Ra8Ze1v2FD9tOHaZQSgX4RqfDSIomz/13+/dT8mDQBSFIfUMVphgpx5EcqF0aQScYzRye7gDdSK5rOP+TRzqQa8QY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849711; c=relaxed/simple; bh=2jpgqsaRNnfM5RlyfhsLchALqZkLfgI9lutsTG6mMOA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=AEkJujCbQuhPWEtiTUNBRVdWYsN7xLsf6keOsiCrQ9RKTwFRGlyAIDS5YLEKfQESXm9FILephnGEgNMiA253QbMT43eWZb/MASWY5dOxHT+AqE6vvhMCEvyzmhA8uW7kGkCG4i792nc1fxWoWw/3lLiSD9kjOtQ0VrTJCi6Qtlk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=frpYVgdW; arc=none smtp.client-ip=209.85.166.53 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="frpYVgdW" Received: by mail-io1-f53.google.com with SMTP id ca18e2360f4ac-7cc0e831e11so170492239f.1 for ; Thu, 11 Apr 2024 08:35:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849709; x=1713454509; 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=P11kmzenZH0wLpPwDrZo3WxQIM4domjvSQ3qEPqaXb0=; b=frpYVgdWM9AGpuHLHROq2S3HXrUGvirwYldEu+WH/pNz4EPREODat0rKgQDDfoLR2h ERH+/ovJ2XxiNqIWXAxY4B9w/C/LbHY9onsrvrO/lsnj9IwulvzzgI+X1MatIqDdwSZt mi44FUdiAlba7d4mk9/E7FG5jIeTo7xaEMjetmm5PVySy7UGCBcyr8fr/qWI+pVkunep 1q9oPy8N3/VCEMYn3ouhluHIXwok3pdLBc+zBirf8Dg5Motv2gSqzj6r6lcY4PMb9IYt gRLlpoxaWTVzAmO6NcaE1Y4pgtnJyXPokFXaGrEDn2iD87PX1ZH8fjNQ97BhopL2/Hjm /Tdw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849709; x=1713454509; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=P11kmzenZH0wLpPwDrZo3WxQIM4domjvSQ3qEPqaXb0=; b=YGMwNWEDLOG8whvxDDR6P/1pDXBGFC5noi964gmjcEiKASxi7xW3jp+ZBho34jOHCC UcpaKXWWsWK2efaPKEWLh48yBylRZmW+OYvlHQJ41qVo96BN32fRggYGBPZg4ilxyrCR wTXWezFwflzGNdQD3SPte+CP/gTFsrC/jCoTzBB0opkHB1qI/UN6ryOpIP5GpLk0aUEi 5tCg/xcpPAp7ae6o/gPBT06QaMV7llgniWPDy9Sg83qHNAfxqFxVxDCnPg/ytgYmYszQ s1C+uH5l0JPvts5WYWoAyf06sdepkjaeQ/JY1JI03bvaTVpEYoRy+xnL5/nH7Cjjv3sk 33qA== X-Gm-Message-State: AOJu0YxrXD7uibhEnxsz+4/qLR8ee2Bc3ZEizkYtFLhyK8br4bDAJwRQ +LmBt3NVrR31BM+kKxOs5uhXBGog7TxcdT+GbyP8lsA8pMhC6QqIYc9Rdt5KDcSQ8AlPxnj3QN5 z X-Google-Smtp-Source: AGHT+IFukpgdzcNWpSIoHYUcXeStn0qs+nfuEHZIgD4pc8FP+snAfV+Dv4NT61aX+yZoPyfOE8wuOA== X-Received: by 2002:a5e:9907:0:b0:7d6:751f:192 with SMTP id t7-20020a5e9907000000b007d6751f0192mr178447ioj.2.1712849708683; Thu, 11 Apr 2024 08:35:08 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.35.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:35:07 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 123/437] fs/fuse: convert to read/write iterators Date: Thu, 11 Apr 2024 09:14:23 -0600 Message-ID: <20240411153126.16201-124-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- fs/fuse/control.c | 70 ++++++++++++++++++++--------------------------- 1 file changed, 30 insertions(+), 40 deletions(-) diff --git a/fs/fuse/control.c b/fs/fuse/control.c index 0ca1d1f418c3..e572013d345e 100644 --- a/fs/fuse/control.c +++ b/fs/fuse/control.c @@ -43,8 +43,7 @@ static ssize_t fuse_conn_abort_write(struct kiocb *iocb, = struct iov_iter *from) return iov_iter_count(from); } =20 -static ssize_t fuse_conn_waiting_read_iter(struct kiocb *iocb, - struct iov_iter *to) +static ssize_t fuse_conn_waiting_read(struct kiocb *iocb, struct iov_iter = *to) { char tmp[32]; size_t size; @@ -63,27 +62,27 @@ static ssize_t fuse_conn_waiting_read_iter(struct kiocb= *iocb, return simple_copy_to_iter(tmp, &iocb->ki_pos, size, to); } =20 -static ssize_t fuse_conn_limit_read(struct file *file, char __user *buf, - size_t len, loff_t *ppos, unsigned val) +static ssize_t fuse_conn_limit_read(struct kiocb *iocb, struct iov_iter *t= o, + unsigned val) { char tmp[32]; size_t size =3D sprintf(tmp, "%u\n", val); =20 - return simple_read_from_buffer(buf, len, ppos, tmp, size); + return simple_copy_to_iter(tmp, &iocb->ki_pos, size, to); } =20 -static ssize_t fuse_conn_limit_write(struct file *file, const char __user = *buf, - size_t count, loff_t *ppos, unsigned *val, - unsigned global_limit) +static ssize_t fuse_conn_limit_write(struct kiocb *iocb, struct iov_iter *= from, + unsigned *val, unsigned global_limit) { unsigned long t; unsigned limit =3D (1 << 16) - 1; + size_t count =3D iov_iter_count(from); int err; =20 - if (*ppos) + if (iocb->ki_pos) return -EINVAL; =20 - err =3D kstrtoul_from_user(buf, count, 0, &t); + err =3D kstrtoul_from_iter(from, count, 0, &t); if (err) return err; =20 @@ -98,35 +97,31 @@ static ssize_t fuse_conn_limit_write(struct file *file,= const char __user *buf, return count; } =20 -static ssize_t fuse_conn_max_background_read(struct file *file, - char __user *buf, size_t len, - loff_t *ppos) +static ssize_t fuse_conn_max_background_read(struct kiocb *iocb, + struct iov_iter *to) { struct fuse_conn *fc; unsigned val; =20 - fc =3D fuse_ctl_file_conn_get(file); + fc =3D fuse_ctl_file_conn_get(iocb->ki_filp); if (!fc) return 0; =20 val =3D READ_ONCE(fc->max_background); fuse_conn_put(fc); =20 - return fuse_conn_limit_read(file, buf, len, ppos, val); + return fuse_conn_limit_read(iocb, to, val); } -FOPS_READ_ITER_HELPER(fuse_conn_max_background_read); =20 -static ssize_t fuse_conn_max_background_write(struct file *file, - const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t fuse_conn_max_background_write(struct kiocb *iocb, + struct iov_iter *from) { unsigned val; ssize_t ret; =20 - ret =3D fuse_conn_limit_write(file, buf, count, ppos, &val, - max_user_bgreq); + ret =3D fuse_conn_limit_write(iocb, from, &val, max_user_bgreq); if (ret > 0) { - struct fuse_conn *fc =3D fuse_ctl_file_conn_get(file); + struct fuse_conn *fc =3D fuse_ctl_file_conn_get(iocb->ki_filp); if (fc) { spin_lock(&fc->bg_lock); fc->max_background =3D val; @@ -140,38 +135,34 @@ static ssize_t fuse_conn_max_background_write(struct = file *file, =20 return ret; } -FOPS_WRITE_ITER_HELPER(fuse_conn_max_background_write); =20 -static ssize_t fuse_conn_congestion_threshold_read(struct file *file, - char __user *buf, size_t len, - loff_t *ppos) +static ssize_t fuse_conn_congestion_threshold_read(struct kiocb *iocb, + struct iov_iter *to) { struct fuse_conn *fc; unsigned val; =20 - fc =3D fuse_ctl_file_conn_get(file); + fc =3D fuse_ctl_file_conn_get(iocb->ki_filp); if (!fc) return 0; =20 val =3D READ_ONCE(fc->congestion_threshold); fuse_conn_put(fc); =20 - return fuse_conn_limit_read(file, buf, len, ppos, val); + return fuse_conn_limit_read(iocb, to, val); } =20 -static ssize_t fuse_conn_congestion_threshold_write(struct file *file, - const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t fuse_conn_congestion_threshold_write(struct kiocb *iocb, + struct iov_iter *from) { unsigned val; struct fuse_conn *fc; ssize_t ret; =20 - ret =3D fuse_conn_limit_write(file, buf, count, ppos, &val, - max_user_congthresh); + ret =3D fuse_conn_limit_write(iocb, from, &val, max_user_congthresh); if (ret <=3D 0) goto out; - fc =3D fuse_ctl_file_conn_get(file); + fc =3D fuse_ctl_file_conn_get(iocb->ki_filp); if (!fc) goto out; =20 @@ -180,7 +171,6 @@ static ssize_t fuse_conn_congestion_threshold_write(str= uct file *file, out: return ret; } -FOPS_WRITE_ITER_HELPER(fuse_conn_congestion_threshold_write); =20 static const struct file_operations fuse_ctl_abort_ops =3D { .open =3D nonseekable_open, @@ -190,21 +180,21 @@ static const struct file_operations fuse_ctl_abort_op= s =3D { =20 static const struct file_operations fuse_ctl_waiting_ops =3D { .open =3D nonseekable_open, - .read_iter =3D fuse_conn_waiting_read_iter, + .read_iter =3D fuse_conn_waiting_read, .llseek =3D no_llseek, }; =20 static const struct file_operations fuse_conn_max_background_ops =3D { .open =3D nonseekable_open, - .read_iter =3D fuse_conn_max_background_read_iter, - .write_iter =3D fuse_conn_max_background_write_iter, + .read_iter =3D fuse_conn_max_background_read, + .write_iter =3D fuse_conn_max_background_write, .llseek =3D no_llseek, }; =20 static const struct file_operations fuse_conn_congestion_threshold_ops =3D= { .open =3D nonseekable_open, - .read =3D fuse_conn_congestion_threshold_read, - .write_iter =3D fuse_conn_congestion_threshold_write_iter, + .read_iter =3D fuse_conn_congestion_threshold_read, + .write_iter =3D fuse_conn_congestion_threshold_write, .llseek =3D no_llseek, }; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f46.google.com (mail-io1-f46.google.com [209.85.166.46]) (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 9983815A492 for ; Thu, 11 Apr 2024 15:35:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849713; cv=none; b=JRCXqdc/nqBY9ACb7ipVbp/VM57U+Uuc87HBvUbQzfQX0ZBYh0IPEzWm4uy/MwE8ynoe01AqP/8lTIiH8ykDnodxpJyEkzC56aR58KhhM7kqYlIy0eyOVtq3gwai7NSjYMzfjYuE4fkzloage1PO0G139kHgDCh96KqJuoZDItY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849713; c=relaxed/simple; bh=vu1XF/AtPBcXnoX1unYcCGFAhoB1kL5REzq/ANwBo2o=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=f2np1R88ZXGG3zmMh+IJ4FN8LcJSXDPkS1oIuFunRtP4yior3zXU7JLjKgqWw5hiZFTagQTHMS7ROqDBkmXPr/bwZzjHOvNiu9t+cbXB0r9gBOy3a0akxjcnzRZvIq/Gm3Bjvuj+1o/fENi2nemZiimPsE+HXBaZWWn/bmopxrI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=07PPhPxG; arc=none smtp.client-ip=209.85.166.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="07PPhPxG" Received: by mail-io1-f46.google.com with SMTP id ca18e2360f4ac-7d67d1073easo9771139f.0 for ; Thu, 11 Apr 2024 08:35:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849710; x=1713454510; 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=8T2b1mgDom2zUdQYb9qf0HYWqW2qIVM34qu/et0XRtU=; b=07PPhPxGizeK2zkPYdocGyhjkFPP8d9VicWIBigY+6YP8DZKMsF9zn92kGL33fdrK4 oLC7DrkbiMyyYT1LUUKB2Vab3UbXPGs9Igha4rZbxxWfj2s6gR4PmzWFpe8Vs/pffZWM au38rqd8mjgG6y5ejbnwYBK747lioKZSSgglGt+QXxYbUHjrScCK+3LlLYjotlsmPQgj 6LhzEWrF5QwNU8efr6Q3wA9iVNM4mrra/tFbLRbuLEHAnC7ijBkMWTn9KB97RiZ2qZ1I C2iTh7XC6Zuk4ykQ1VODvonIgieQLa5NajIReK9OoAM551OqQx1nKHTMr82TZ314bjlV yppA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849710; x=1713454510; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=8T2b1mgDom2zUdQYb9qf0HYWqW2qIVM34qu/et0XRtU=; b=MVndcrk4MjgQxvv1Jj+nLg08fUcsVQicbjAsQKbhOCCP4d+Q74sPeLwitEE0sG1mxK fLniYKJZZafGSF9o0hyZLSqH8TwacTgPy5j2C8gj6BwvZ6+GmWapCbNV+D5IRchY2V5B J7xSkpvWICwzzV7DjMcPoc3cKXHKZW/CzfddTT392xR/kEJ61YXrGboh9enT4xMquxcf iagME4eKNysCISrYzdu8A0P3zi+1MBUgs+h2joVYYBPCToN+RnZwzJfckT3mH4ADSk/c /frTngluHJEEMxCwwg7bEEIIbyC7ufD/EjGK2+Ooq4eCUOa3cKpTmuXVIhYRR66GPQA6 Xr+g== X-Gm-Message-State: AOJu0YxjOdS3vCBAeFX3QdKaHpTTDRuWeOocJp+71CLs878TC3uTUsOx lgKnRX2QxVn8vDOiWoHYoCGP2xVnesR16KpO9WuLVFr7QP3ejXz9CZfZvuTimW+6oYILmvPxxuc 7 X-Google-Smtp-Source: AGHT+IG2f8hCOg/fJWazEyfeU9rd3SxfsDUIwa6QoIW6CEPz34ihYErd7wSRtkqcYD/Vtmk3dXkW/g== X-Received: by 2002:a6b:c34e:0:b0:7d6:7b7c:8257 with SMTP id t75-20020a6bc34e000000b007d67b7c8257mr214083iof.0.1712849710433; Thu, 11 Apr 2024 08:35:10 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.35.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:35:08 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 124/437] firmware: arm_scmi: convert to read/write iterators Date: Thu, 11 Apr 2024 09:14:24 -0600 Message-ID: <20240411153126.16201-125-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/firmware/arm_scmi/raw_mode.c | 94 ++++++++++++---------------- 1 file changed, 40 insertions(+), 54 deletions(-) diff --git a/drivers/firmware/arm_scmi/raw_mode.c b/drivers/firmware/arm_sc= mi/raw_mode.c index 350573518503..95915540165a 100644 --- a/drivers/firmware/arm_scmi/raw_mode.c +++ b/drivers/firmware/arm_scmi/raw_mode.c @@ -765,46 +765,41 @@ static int scmi_raw_message_receive(struct scmi_raw_m= ode_info *raw, =20 /* SCMI Raw debugfs helpers */ =20 -static ssize_t scmi_dbg_raw_mode_common_read(struct file *filp, - char __user *buf, - size_t count, loff_t *ppos, +static ssize_t scmi_dbg_raw_mode_common_read(struct kiocb *iocb, + struct iov_iter *to, unsigned int idx) { - ssize_t cnt; - struct scmi_dbg_raw_data *rd =3D filp->private_data; + struct scmi_dbg_raw_data *rd =3D iocb->ki_filp->private_data; =20 if (!rd->rx_size) { int ret; =20 ret =3D scmi_raw_message_receive(rd->raw, rd->rx.buf, rd->rx.len, &rd->rx_size, idx, rd->chan_id, - filp->f_flags & O_NONBLOCK); + iocb->ki_filp->f_flags & O_NONBLOCK); if (ret) { rd->rx_size =3D 0; return ret; } =20 /* Reset any previous filepos change, including writes */ - *ppos =3D 0; - } else if (*ppos =3D=3D rd->rx_size) { + iocb->ki_pos =3D 0; + } else if (iocb->ki_pos =3D=3D rd->rx_size) { /* Return EOF once all the message has been read-out */ rd->rx_size =3D 0; return 0; } =20 - cnt =3D simple_read_from_buffer(buf, count, ppos, - rd->rx.buf, rd->rx_size); - - return cnt; + return simple_copy_to_iter(rd->rx.buf, &iocb->ki_pos, rd->rx_size, to); } =20 -static ssize_t scmi_dbg_raw_mode_common_write(struct file *filp, - const char __user *buf, - size_t count, loff_t *ppos, +static ssize_t scmi_dbg_raw_mode_common_write(struct kiocb *iocb, + struct iov_iter *from, bool async) { int ret; - struct scmi_dbg_raw_data *rd =3D filp->private_data; + struct scmi_dbg_raw_data *rd =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); =20 if (count > rd->tx.len - rd->tx_size) return -ENOSPC; @@ -820,8 +815,8 @@ static ssize_t scmi_dbg_raw_mode_common_write(struct fi= le *filp, if (rd->tx_size < rd->tx_req_size) { ssize_t cnt; =20 - cnt =3D simple_write_to_buffer(rd->tx.buf, rd->tx.len, ppos, - buf, count); + cnt =3D simple_copy_from_iter(rd->tx.buf, &iocb->ki_pos, + rd->tx.len, from); if (cnt < 0) return cnt; =20 @@ -835,7 +830,7 @@ static ssize_t scmi_dbg_raw_mode_common_write(struct fi= le *filp, =20 /* Reset ppos for next message ... */ rd->tx_size =3D 0; - *ppos =3D 0; + iocb->ki_pos =3D 0; =20 return ret ?: count; } @@ -863,19 +858,16 @@ static __poll_t scmi_test_dbg_raw_common_poll(struct = file *filp, return mask; } =20 -static ssize_t scmi_dbg_raw_mode_message_read(struct file *filp, - char __user *buf, - size_t count, loff_t *ppos) +static ssize_t scmi_dbg_raw_mode_message_read(struct kiocb *iocb, + struct iov_iter *to) { - return scmi_dbg_raw_mode_common_read(filp, buf, count, ppos, - SCMI_RAW_REPLY_QUEUE); + return scmi_dbg_raw_mode_common_read(iocb, to, SCMI_RAW_REPLY_QUEUE); } =20 -static ssize_t scmi_dbg_raw_mode_message_write(struct file *filp, - const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t scmi_dbg_raw_mode_message_write(struct kiocb *iocb, + struct iov_iter *from) { - return scmi_dbg_raw_mode_common_write(filp, buf, count, ppos, false); + return scmi_dbg_raw_mode_common_write(iocb, from, false); } =20 static __poll_t scmi_dbg_raw_mode_message_poll(struct file *filp, @@ -935,55 +927,51 @@ static int scmi_dbg_raw_mode_release(struct inode *in= ode, struct file *filp) return 0; } =20 -static ssize_t scmi_dbg_raw_mode_reset_write(struct file *filp, - const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t scmi_dbg_raw_mode_reset_write(struct kiocb *iocb, + struct iov_iter *from) { - struct scmi_dbg_raw_data *rd =3D filp->private_data; + struct scmi_dbg_raw_data *rd =3D iocb->ki_filp->private_data; =20 scmi_xfer_raw_reset(rd->raw); =20 - return count; + return iov_iter_count(from); } =20 static const struct file_operations scmi_dbg_raw_mode_reset_fops =3D { .open =3D scmi_dbg_raw_mode_open, .release =3D scmi_dbg_raw_mode_release, - .write =3D scmi_dbg_raw_mode_reset_write, + .write_iter =3D scmi_dbg_raw_mode_reset_write, .owner =3D THIS_MODULE, }; =20 static const struct file_operations scmi_dbg_raw_mode_message_fops =3D { .open =3D scmi_dbg_raw_mode_open, .release =3D scmi_dbg_raw_mode_release, - .read =3D scmi_dbg_raw_mode_message_read, - .write =3D scmi_dbg_raw_mode_message_write, + .read_iter =3D scmi_dbg_raw_mode_message_read, + .write_iter =3D scmi_dbg_raw_mode_message_write, .poll =3D scmi_dbg_raw_mode_message_poll, .owner =3D THIS_MODULE, }; =20 -static ssize_t scmi_dbg_raw_mode_message_async_write(struct file *filp, - const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t scmi_dbg_raw_mode_message_async_write(struct kiocb *iocb, + struct iov_iter *from) { - return scmi_dbg_raw_mode_common_write(filp, buf, count, ppos, true); + return scmi_dbg_raw_mode_common_write(iocb, from, true); } =20 static const struct file_operations scmi_dbg_raw_mode_message_async_fops = =3D { .open =3D scmi_dbg_raw_mode_open, .release =3D scmi_dbg_raw_mode_release, - .read =3D scmi_dbg_raw_mode_message_read, - .write =3D scmi_dbg_raw_mode_message_async_write, + .read_iter =3D scmi_dbg_raw_mode_message_read, + .write_iter =3D scmi_dbg_raw_mode_message_async_write, .poll =3D scmi_dbg_raw_mode_message_poll, .owner =3D THIS_MODULE, }; =20 -static ssize_t scmi_test_dbg_raw_mode_notif_read(struct file *filp, - char __user *buf, - size_t count, loff_t *ppos) +static ssize_t scmi_test_dbg_raw_mode_notif_read(struct kiocb *iocb, + struct iov_iter *to) { - return scmi_dbg_raw_mode_common_read(filp, buf, count, ppos, - SCMI_RAW_NOTIF_QUEUE); + return scmi_dbg_raw_mode_common_read(iocb, to, SCMI_RAW_NOTIF_QUEUE); } =20 static __poll_t @@ -996,17 +984,15 @@ scmi_test_dbg_raw_mode_notif_poll(struct file *filp, static const struct file_operations scmi_dbg_raw_mode_notification_fops = =3D { .open =3D scmi_dbg_raw_mode_open, .release =3D scmi_dbg_raw_mode_release, - .read =3D scmi_test_dbg_raw_mode_notif_read, + .read_iter =3D scmi_test_dbg_raw_mode_notif_read, .poll =3D scmi_test_dbg_raw_mode_notif_poll, .owner =3D THIS_MODULE, }; =20 -static ssize_t scmi_test_dbg_raw_mode_errors_read(struct file *filp, - char __user *buf, - size_t count, loff_t *ppos) +static ssize_t scmi_test_dbg_raw_mode_errors_read(struct kiocb *iocb, + struct iov_iter *to) { - return scmi_dbg_raw_mode_common_read(filp, buf, count, ppos, - SCMI_RAW_ERRS_QUEUE); + return scmi_dbg_raw_mode_common_read(iocb, to, SCMI_RAW_ERRS_QUEUE); } =20 static __poll_t @@ -1019,7 +1005,7 @@ scmi_test_dbg_raw_mode_errors_poll(struct file *filp, static const struct file_operations scmi_dbg_raw_mode_errors_fops =3D { .open =3D scmi_dbg_raw_mode_open, .release =3D scmi_dbg_raw_mode_release, - .read =3D scmi_test_dbg_raw_mode_errors_read, + .read_iter =3D scmi_test_dbg_raw_mode_errors_read, .poll =3D scmi_test_dbg_raw_mode_errors_poll, .owner =3D THIS_MODULE, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f51.google.com (mail-io1-f51.google.com [209.85.166.51]) (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 A66FB15AAA4 for ; Thu, 11 Apr 2024 15:35:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849715; cv=none; b=Ma23JCgpnY1ufdyvl+rIpkXuVlYvFvDnT16ZCHd1O6aMi7nzmDVapgigoOyOQ47apPKclxQM+L/PWxb143MDYea0mfHVuCG2w5KLJdj31Fm9Xs8F1KvJIEExC7rZbCLuEEuao7eCEzCHWpNcJcyt9WAYmjj7zid1giPJrIYOTe0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849715; c=relaxed/simple; bh=b9X00iSNJYVtxC3/sqLX/o3knbJU3+NSrP5y9pStPRA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ovt13n3GNjrx2gbZLIh1L3cgtCo5tK34PAR3DzFVEK9zDMrXoqYFMT3/npI+ZZB2IweOA7P1+syAaFyVXLJDSl/UoaF3McS8YgM/V2CGIsJBx4+XhuLzoCrKQyu4yUZRgh56zxebwk5vGwzMpclRj2Ctw1AHZ/hvR9x4GeMERbk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=HK2vJbJw; arc=none smtp.client-ip=209.85.166.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="HK2vJbJw" Received: by mail-io1-f51.google.com with SMTP id ca18e2360f4ac-7d67d1073easo9771839f.0 for ; Thu, 11 Apr 2024 08:35:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849712; x=1713454512; 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=JN3mqvndXI1gWHhufhGdf4sQOgVkhWV1ClnaB5pVpcg=; b=HK2vJbJwMHfLKXXEhRpGuWFLOsp5J+2Vy43k1H5svlLmURW5PpJTRj1ADn9XX2iF17 lKvKr3rxrmGofK5czRcAWaJl/kjwNkpFx0VOtyjcjAhvu3UcZY7BM27dMmxotyfmytQI PvJNB9nJogLoH1Umyg9BEp4wcaDSjRqdCCwyytEVOAIJWhkvTSrqzwqmDAXIFoCa08Or 7daJhnb5ywMokAMZcNTjsIBMJUEn6PKVV1N7OU0THkY1XwVaD7L79jCplypyAAVpFS42 SPNu1kIL43eJer2tCQKEGLb1EtOUxK54G/pkExXFofWDr3D276ha0K7WKMnmbXBZwyyB vO2Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849712; x=1713454512; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=JN3mqvndXI1gWHhufhGdf4sQOgVkhWV1ClnaB5pVpcg=; b=ZMP/BbzEkhh9R3GTGXcdjnEaVNNZ3QIWlphtT4FpbsSBY50T0ujhXrXGd8YD6lte0W jdL48H5drrfKnP8IFU62EOM3WkW5cbj0Otea5b+31yiG6OvmehBWDOyDYRq1L+MAvMBf MOTFV4omAlyUXAMViN6HDZmP9sIANQ80iGNwONe2h99pmLBlAeYP5f+/8W8FzoWj0aMP 6SmdDqDjfQEYJn9KnlbdRhePOeN5b/AIOqYyd1CeL0fM9CHNF+Fi7FdF6euf2vkxcc+8 /G7P+QhgMiAA5hIvQQ1yHJZYKgTLSEekPSWirpGY02fwvxCfHBE10sOMy6Lh/IpajywL 7KPw== X-Gm-Message-State: AOJu0YyK84oWBd7rZqpfMHsZkvGVzc+9otuOALpuE4GK0CD1o25WB142 0QEU9xs+gb9Y+tDgN30GVe6imrSnoLMeQv/bBmlP7IA6b8V5mdlS8rAfzhFNcc3fczm7bUJOlyf 5 X-Google-Smtp-Source: AGHT+IF9RaXCpaHDARHEBZNdLFUjhOhOhZnX9SjwLewk5kagZRFLwlxLCinfn5G1QQxxk7d5hQ56pQ== X-Received: by 2002:a6b:7b05:0:b0:7d6:60dc:bc8e with SMTP id l5-20020a6b7b05000000b007d660dcbc8emr191393iop.1.1712849712438; Thu, 11 Apr 2024 08:35:12 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.35.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:35:10 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 125/437] firmware: cirrus: convert to read/write iterators Date: Thu, 11 Apr 2024 09:14:25 -0600 Message-ID: <20240411153126.16201-126-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/firmware/cirrus/cs_dsp.c | 26 ++++++++++---------------- 1 file changed, 10 insertions(+), 16 deletions(-) diff --git a/drivers/firmware/cirrus/cs_dsp.c b/drivers/firmware/cirrus/cs_= dsp.c index 9f3d665cfdcf..80a2cba021d1 100644 --- a/drivers/firmware/cirrus/cs_dsp.c +++ b/drivers/firmware/cirrus/cs_dsp.c @@ -398,11 +398,9 @@ static void cs_dsp_debugfs_clear(struct cs_dsp *dsp) dsp->bin_file_name =3D NULL; } =20 -static ssize_t cs_dsp_debugfs_wmfw_read(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t cs_dsp_debugfs_wmfw_read(struct kiocb *iocb, struct iov_ite= r *to) { - struct cs_dsp *dsp =3D file->private_data; + struct cs_dsp *dsp =3D iocb->ki_filp->private_data; ssize_t ret; =20 mutex_lock(&dsp->pwr_lock); @@ -410,19 +408,16 @@ static ssize_t cs_dsp_debugfs_wmfw_read(struct file *= file, if (!dsp->wmfw_file_name || !dsp->booted) ret =3D 0; else - ret =3D simple_read_from_buffer(user_buf, count, ppos, - dsp->wmfw_file_name, - strlen(dsp->wmfw_file_name)); + ret =3D simple_copy_to_iter(dsp->wmfw_file_name, &iocb->ki_pos, + strlen(dsp->wmfw_file_name), to); =20 mutex_unlock(&dsp->pwr_lock); return ret; } =20 -static ssize_t cs_dsp_debugfs_bin_read(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t cs_dsp_debugfs_bin_read(struct kiocb *iocb, struct iov_iter= *to) { - struct cs_dsp *dsp =3D file->private_data; + struct cs_dsp *dsp =3D iocb->ki_filp->private_data; ssize_t ret; =20 mutex_lock(&dsp->pwr_lock); @@ -430,9 +425,8 @@ static ssize_t cs_dsp_debugfs_bin_read(struct file *fil= e, if (!dsp->bin_file_name || !dsp->booted) ret =3D 0; else - ret =3D simple_read_from_buffer(user_buf, count, ppos, - dsp->bin_file_name, - strlen(dsp->bin_file_name)); + ret =3D simple_copy_to_iter(dsp->bin_file_name, &iocb->ki_pos, + strlen(dsp->bin_file_name), to); =20 mutex_unlock(&dsp->pwr_lock); return ret; @@ -446,14 +440,14 @@ static const struct { .name =3D "wmfw_file_name", .fops =3D { .open =3D simple_open, - .read =3D cs_dsp_debugfs_wmfw_read, + .read_iter =3D cs_dsp_debugfs_wmfw_read, }, }, { .name =3D "bin_file_name", .fops =3D { .open =3D simple_open, - .read =3D cs_dsp_debugfs_bin_read, + .read_iter =3D cs_dsp_debugfs_bin_read, }, }, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-il1-f175.google.com (mail-il1-f175.google.com [209.85.166.175]) (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 4EB4A15AACD for ; Thu, 11 Apr 2024 15:35:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.175 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849716; cv=none; b=AP+a7d1BnVxft15jj4pdl6cDnLP6frE44AJdMEHIa0icvs2AudAUUXTWUTeYPYh+mGpAsa1xrMDnO78QXG7PEa6Tu7ZspzXs7HYMBSfBsyWcwe9Cf2x7MYa+Dn+rXnGZffpfelw8NKlR+M7pcwJVj+x0D1sZOinYs+5HxVIzaMM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849716; c=relaxed/simple; bh=BKU7jof+OLPW14KMY7IUBGAnl4D7CJ5njhnuIagmstA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=HBUeF5BWL4kxR4uFZuQhTcNmObENwo+qN1M3oWnRkHrO/u9Xh25E4NSpN/ATlxqiq8vt5TsA+sGMgkZCBZGI/+Ptu06XkHh4Af9mpAQvkL/PpwKYDtQ9NnLZsqZUKgH6As+3fEd6akecByOsIzcpgipBlxUqknGncpzDklCaPgY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=sMsFZIB2; arc=none smtp.client-ip=209.85.166.175 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="sMsFZIB2" Received: by mail-il1-f175.google.com with SMTP id e9e14a558f8ab-36a224d7414so180795ab.1 for ; Thu, 11 Apr 2024 08:35:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849714; x=1713454514; 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=FaP4jRALl7uM/aiEEtjEUM+QWpiHHwuYIJyLofUvW+Q=; b=sMsFZIB2AZHZPIBvJ/Ist+F/Q+awIJWmzY+BuHwyFylVpmRBo8zgMhMYdeJIk66sdH oFpHiFl8sL5YDsYwwqeBoYAvqIOcVA14KuG850zl8wiqbozxb41wm+RN7VAyXBduKe/u 237t3NHwi9CALBaR+W4UpW58nU+Qkx9fjQCu1733O4O9ihWJ2UzPnUA9dhtPX4QF9fRE YAScuQKc156CbMP3QXPmGP0gt/RtpCjS02JX765XmdfVt50SgTOIbOshfnlfMQ1lQ6p9 f/YckfPObIONBKKLup2lBaRrCUfmA1skSYzB7xluAz54LRBARkITdLeTTGb3hVTTPgm+ HzzQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849714; x=1713454514; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=FaP4jRALl7uM/aiEEtjEUM+QWpiHHwuYIJyLofUvW+Q=; b=GExldM1E2CF6rNy1gquMjSRsUfHfFNna2UnMhlnB2L4a7Y4rW2qUCTKzqyqP3vo6zI i2YS/p7BlzDt42xpCFAG4z4WOGOMPsgeXhbeuf7oGgkxrXBlc/JQ5X8sjf4o66QJOQGe LqsWw7ppsQPMSn19//qvgVycbzSz48JODfdMvvvaiEcuaEVNN0IXT92s8+w072N8DAXe q0xmVv70IKV4levE6V3QO9H8qKn6/O4BZEQQxeAioRV29SeXoF7XCIBVkgO0R+zvcEU2 xlZsEVcH6zl/54lLh2VbB3RG8B8Qk8dw7GfUlfkxevzi3TDvGGz5W0IR5kVc6QmJV4O1 Ui9Q== X-Gm-Message-State: AOJu0YyuAlpOT7bps37+835kqecCwvYzVTJ6n52OAct6finI4uHyGUGU OY4MLlo6rdBOI7wfMyChuUv943MT/B/iNTDgrHtzQQgS9U+inTv50mmmvSJzaF63WzfgdWzwktM z X-Google-Smtp-Source: AGHT+IGI4Hiat6KzThSe7lYDUcFVZjVO8E/QRRg2id5JzH/Naow20qyWfGR6lmCto4fro8Xk/4dfYA== X-Received: by 2002:a05:6602:4ed7:b0:7d5:ddc8:504d with SMTP id gk23-20020a0566024ed700b007d5ddc8504dmr186123iob.0.1712849714247; Thu, 11 Apr 2024 08:35:14 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.35.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:35:12 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 126/437] firmware: efi: convert to read/write iterators Date: Thu, 11 Apr 2024 09:14:26 -0600 Message-ID: <20240411153126.16201-127-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/firmware/efi/capsule-loader.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/drivers/firmware/efi/capsule-loader.c b/drivers/firmware/efi/c= apsule-loader.c index 97bafb5f7038..9b1d143a64f6 100644 --- a/drivers/firmware/efi/capsule-loader.c +++ b/drivers/firmware/efi/capsule-loader.c @@ -149,10 +149,8 @@ static ssize_t efi_capsule_submit_update(struct capsul= e_info *cap_info) /** * efi_capsule_write - store the capsule binary and pass it to * efi_capsule_update() API - * @file: file pointer - * @buff: buffer pointer - * @count: number of bytes in @buff - * @offp: not used + * @iocb: metadata for IO + * @from: buffer pointer * * Expectation: * - A user space tool should start at the beginning of capsule binary and @@ -165,11 +163,11 @@ static ssize_t efi_capsule_submit_update(struct capsu= le_info *cap_info) * - An EFI capsule header must be located at the beginning of capsule * binary file and passed in as first block data of write operation. **/ -static ssize_t efi_capsule_write(struct file *file, const char __user *buf= f, - size_t count, loff_t *offp) +static ssize_t efi_capsule_write(struct kiocb *iocb, struct iov_iter *from) { int ret; - struct capsule_info *cap_info =3D file->private_data; + struct capsule_info *cap_info =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); struct page *page; void *kbuff =3D NULL; size_t write_byte; @@ -202,7 +200,7 @@ static ssize_t efi_capsule_write(struct file *file, con= st char __user *buff, =20 /* Copy capsule binary data from user space to kernel space buffer */ write_byte =3D min_t(size_t, count, cap_info->page_bytes_remain); - if (copy_from_user(kbuff, buff, write_byte)) { + if (!copy_from_iter_full(kbuff, write_byte, from)) { ret =3D -EFAULT; goto fail_unmap; } @@ -307,7 +305,7 @@ static int efi_capsule_open(struct inode *inode, struct= file *file) static const struct file_operations efi_capsule_fops =3D { .owner =3D THIS_MODULE, .open =3D efi_capsule_open, - .write =3D efi_capsule_write, + .write_iter =3D efi_capsule_write, .release =3D efi_capsule_release, .llseek =3D no_llseek, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f53.google.com (mail-io1-f53.google.com [209.85.166.53]) (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 093AA15AD90 for ; Thu, 11 Apr 2024 15:35:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849718; cv=none; b=pIFNc/ldDf6XSCS02gOIyNT4s2jgx6gR/zrqVoYDDGMGtJsOBcey0DDFVojZNXIAbklOWLQwGXzqsw5MmkRSIr/SRPiK02bRH450gGQIwwHvDhr55ISqiMMd7PqN5G8zerqrl90jYZMlj61ywtwAgv/JCmxUe8xBRCanr7qMcwo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849718; c=relaxed/simple; bh=Ef8mpBPqAAkAYVkK4V7JtRUnBI5JfRMSzve1tv51A0U=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=WWvCbcKwVnjwlMmfiWj7ZnWHTdBT5ukxX9TjvxWgcq61ApPWjR+BSjGD1z4h2/KxYY8VNp940bf1nLUYKDZKR+thjbo6yuwtw2XAiUBgP6pdiAgdSG5EK7ULWmILq0kYaddDHYhqQ27yV4WYsSQ9oQdUTHsmgJsP9Je8KpmEhqY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=WCMQtTXb; arc=none smtp.client-ip=209.85.166.53 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="WCMQtTXb" Received: by mail-io1-f53.google.com with SMTP id ca18e2360f4ac-7d6112ba6baso58042339f.1 for ; Thu, 11 Apr 2024 08:35:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849716; x=1713454516; 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=oiKRdqQmS9PhNJtP0NzU3N6F8lDnfHCp7WW9oGKSL7M=; b=WCMQtTXbI/Z54qDYIZJd6IRTO1h3gwYa7DYCP2lBx5GVB84tYtR5JYXtBwZlqzt1qh 6C9Ww9MjYg3wFiXKEEU1YWn64jisgngbFoDg/8rpwftfd9oed9OBtGSFSodecptghuBb mI3yAheXTIWvLz7GPX9hICxHToRt/Q8wHfGBBD9O0MRYswrmE0a/fbwjMzN4ZIl+TPLo MxFrS9ftQ+dRksjSTXUT5Nl/4lzSBlr80L2YwSVvkZk+TwD2TuAxODXWy6TN7O6WJrWe IpL/07d0aenrsZDlcj3f28g/HN3zDVRDu+Rs+0lUFBI+eCaY46xPLbl3E94PUB86I57c fQgA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849716; x=1713454516; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=oiKRdqQmS9PhNJtP0NzU3N6F8lDnfHCp7WW9oGKSL7M=; b=HignR0/eKiI3BDzFDjkmw7mPWuT5hUuNzTGKIUA8Q3y2j1Xmi+6U/aOv4KNxlzn9yZ XYEupVZmYI3ocQRPc/eUqJnynDH1LEaLDmar9qNnFStzmUHRj+2rCYAk+wsq5ThjPZf9 3rafMVM2rxxFMgT+XC9VdWt0n9Ym4ps5egJ1HkBdgvuKBYD+0uHwSysqvZS/ZDOLsfQV iWMYINEutOJhSWxwNRqaX0YKvJXJ19chVs+RoDVPRoZ5jr7bFRIKLDJhqJUkIb0Gqo5s Gcfohq0BwFRwAdKMJ0qYYfK0kkjoR6ZuMVQRgQ0q9omy63T0tigFTN5Ov3C5LEXfSmE2 HgTw== X-Gm-Message-State: AOJu0YwWX+4UTRC8WdcCtTSMrP8aDCNApXwnziB+s2odnqn1YYvntq4f SmDbI5DvcGLWs1sJX/As2dZqCGVycdC6s6NjMKde0optv0PC3NX0cq1/14cxsyyIPAe8ShT9+YO / X-Google-Smtp-Source: AGHT+IHmIvW0MVKAxrMqGrl0sD1TlkrxNeOP4WCwMoMrbQhMSwsqNF/TC24FA8qu2YbXj6VAgfAIHQ== X-Received: by 2002:a6b:cd08:0:b0:7d5:fe3e:90ff with SMTP id d8-20020a6bcd08000000b007d5fe3e90ffmr203036iog.0.1712849715921; Thu, 11 Apr 2024 08:35:15 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.35.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:35:14 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 127/437] firmware: psci: convert to read/write iterators Date: Thu, 11 Apr 2024 09:14:27 -0600 Message-ID: <20240411153126.16201-128-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/firmware/psci/psci.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/firmware/psci/psci.c b/drivers/firmware/psci/psci.c index d9629ff87861..06a9aa74c1a5 100644 --- a/drivers/firmware/psci/psci.c +++ b/drivers/firmware/psci/psci.c @@ -440,7 +440,7 @@ static const struct file_operations psci_debugfs_ops = =3D { .owner =3D THIS_MODULE, .open =3D psci_debugfs_open, .release =3D single_release, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek }; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f46.google.com (mail-io1-f46.google.com [209.85.166.46]) (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 4AFB815B121 for ; Thu, 11 Apr 2024 15:35:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849720; cv=none; b=VvlXHUqhOKnuqMVG0sJl1aeldcimLL91/hqo7vQmyJvY957XfutPiET24t3yMiGwubUkqTFNeixhJOEbeWVsbxIBz3D8Lj7wqFoIBp63JR1oF8otJC7mUd0qNNUHHM2vtg1FiErNirCmBCaFt0ql6yXWvwGeCga0s0f1YjFdiEk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849720; c=relaxed/simple; bh=P0NNmVvFozABePjRY+cBG5x7/KqBzLJ3jca23b6AlIE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=aLuIBHdEBcbFcYuVNr4Zn6mI4BfwWhgtTYTL9Ls2TId9MsuNDMNjjWdGBUUjR6k8Pm/ydLAdVVmxKLxxI65mRRTykoWktRTktIf61wwCleyco2CHYB98ln41Avta7Xp0iA2+ikp9vS6q844JehWoclITfvlbXW9LDs+L3/3LQNM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=SE5dmby6; arc=none smtp.client-ip=209.85.166.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="SE5dmby6" Received: by mail-io1-f46.google.com with SMTP id ca18e2360f4ac-7d5ed700c2dso16144339f.0 for ; Thu, 11 Apr 2024 08:35:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849717; x=1713454517; 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=o4kHybulFFZFm/7MW260ESVK0sJApfJJm6OZp93RPlg=; b=SE5dmby6+87g6l6ORchio3jmHMHaJGEj+URZh27YLExfbTQMVRwzZiP5QtK3VEr6Vz V6FwwKsboeyniKyZEcU6GyICcP2sS0TBlKabip7vq29bVnN4xF0poyQCeCa5anCQgYl/ s0IvrG0E0hO1Q6PAmEVG47EEre9p5qI0BmiTz4VuxCfWBxQgEdeLZtWiacbKSCJIiy3R LR86v9k4lg2iScaK9e533Y5zwipIxq9iGfYMoO30tf/VhuNEVzta6ymU1+BIDpXg3wcf GoFOdmmwjZfU7u6U4srKdN0xvuETsbjak4JADOzo3Qkk2ZxqSEVjf65SiAIJPkS8qngi CN4Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849717; x=1713454517; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=o4kHybulFFZFm/7MW260ESVK0sJApfJJm6OZp93RPlg=; b=EaEuYs7RwY9uxukVtYNcIAtbu8yuBmiGO4R4r2cyVSQSFN3sLXs1p1vJ1EYCKx1tKi 9pGVB5Glpvq6mkxHm626XM3L5jX198oX9x2el9tpZOQm+UtXeDE0MGFb/uboVd7Tl3X8 rTwUd4sPyyXCH9C+oKQFpNj4lbQBqJYRdiUdBZ5soqQ5L09nKmJT7dd/VL6WCt9bWFqu cB4b4jeF7VVjryfR5PFvo8HDRcjGXZXmllGlv7hUZ3zDGgVoGG2+rqbUcZHO6SOssXC4 phJQDoYvYFTvcxvLdJJu+5Z8mVcrWz4vXiqmMQ7WQLwd3/dZTAPlFrFLOKrQV//YFGPP g0tQ== X-Gm-Message-State: AOJu0YyuknFLxxefWCkOrnATbk0G/uhkf8kLl7zB/29z3phWyrpKt453 A1BKZIF/4moMy1Y37XwYcSL9N+nmsQZNUHgHL0dfuUxjYvVwjkQj+kSdgBaOUxuSZjR79797kZb J X-Google-Smtp-Source: AGHT+IGYKWFNm2M5s9UXmAJ4x8vSN/4jPwmUd1quk2CEx6w9hQGQ1aulJw+D3EaZILGgKzKexY2jMg== X-Received: by 2002:a6b:f312:0:b0:7d5:de23:13a9 with SMTP id m18-20020a6bf312000000b007d5de2313a9mr158954ioh.1.1712849717585; Thu, 11 Apr 2024 08:35:17 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.35.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:35:16 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 128/437] firmware: turris-mox-rwtm: convert to read/write iterators Date: Thu, 11 Apr 2024 09:14:28 -0600 Message-ID: <20240411153126.16201-129-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/firmware/turris-mox-rwtm.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/drivers/firmware/turris-mox-rwtm.c b/drivers/firmware/turris-m= ox-rwtm.c index 31d962cdd6eb..c7733f4b9bd4 100644 --- a/drivers/firmware/turris-mox-rwtm.c +++ b/drivers/firmware/turris-mox-rwtm.c @@ -330,14 +330,14 @@ static int rwtm_debug_open(struct inode *inode, struc= t file *file) return nonseekable_open(inode, file); } =20 -static ssize_t do_sign_read(struct file *file, char __user *buf, size_t le= n, - loff_t *ppos) +static ssize_t do_sign_read(struct kiocb *iocb, struct iov_iter *to) { - struct mox_rwtm *rwtm =3D file->private_data; + struct mox_rwtm *rwtm =3D iocb->ki_filp->private_data; + size_t len =3D iov_iter_count(to); ssize_t ret; =20 /* only allow one read, of 136 bytes, from position 0 */ - if (*ppos !=3D 0) + if (iocb->ki_pos !=3D 0) return 0; =20 if (len < 136) @@ -347,18 +347,18 @@ static ssize_t do_sign_read(struct file *file, char _= _user *buf, size_t len, return -ENODATA; =20 /* 2 arrays of 17 32-bit words are 136 bytes */ - ret =3D simple_read_from_buffer(buf, len, ppos, rwtm->last_sig, 136); + ret =3D simple_copy_to_iter(rwtm->last_sig, &iocb->ki_pos, 136, to); rwtm->last_sig_done =3D 0; =20 return ret; } =20 -static ssize_t do_sign_write(struct file *file, const char __user *buf, - size_t len, loff_t *ppos) +static ssize_t do_sign_write(struct kiocb *iocb, struct iov_iter *from) { - struct mox_rwtm *rwtm =3D file->private_data; + struct mox_rwtm *rwtm =3D iocb->ki_filp->private_data; struct armada_37xx_rwtm_rx_msg *reply =3D &rwtm->reply; struct armada_37xx_rwtm_tx_msg msg; + size_t len =3D iov_iter_count(from); loff_t dummy =3D 0; ssize_t ret; =20 @@ -385,7 +385,7 @@ static ssize_t do_sign_write(struct file *file, const c= har __user *buf, * stored by the rWTM firmware. */ memset(rwtm->buf, 0, 4); - ret =3D simple_write_to_buffer(rwtm->buf + 4, 64, &dummy, buf, len); + ret =3D simple_copy_from_iter(rwtm->buf + 4, &dummy, 64, from); if (ret < 0) goto unlock_mutex; be32_to_cpu_array(rwtm->buf, rwtm->buf, 17); @@ -426,8 +426,8 @@ static ssize_t do_sign_write(struct file *file, const c= har __user *buf, static const struct file_operations do_sign_fops =3D { .owner =3D THIS_MODULE, .open =3D rwtm_debug_open, - .read =3D do_sign_read, - .write =3D do_sign_write, + .read_iter =3D do_sign_read, + .write_iter =3D do_sign_write, .llseek =3D no_llseek, }; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f41.google.com (mail-io1-f41.google.com [209.85.166.41]) (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 BC97315B13A for ; Thu, 11 Apr 2024 15:35:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849721; cv=none; b=YbhuqJnZtLG0m3OmrmkNdqr4+B/odOiECJQ2OWEgg4Mb5LRdzSUoyaLQJNglVMnoJVbKySn/3sTDG8uqPSjBbilVKQxSp3JBis64Z1FHgo9LpgsZZvECB6kY8ncZfd3PqAmp4DOTehsVQLhTo39elH4e+bG9CIBaERd1/qZxTqU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849721; c=relaxed/simple; bh=CRdImgDwiatT8fZ4jwuwRrfo5E0CbUcIbc82giDTs5k=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=tguaHJxE900GKaDsl+4YbqohIx9eJowOlYOPOS/SGTGSdregYzerzoPQ6cDCXK1LfLy1VAzxtySPklUVihJnN8T5kcg2PnBTk+25IhOF80z2R0FjP1onGyrDb+dGRYQBqOw/U2L+416OYATT4f0zfU+nQW6wl4IznMT2XQg+BCc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=p7BRI9ay; arc=none smtp.client-ip=209.85.166.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="p7BRI9ay" Received: by mail-io1-f41.google.com with SMTP id ca18e2360f4ac-7d6112ba6baso58044439f.1 for ; Thu, 11 Apr 2024 08:35:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849718; x=1713454518; 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=/Z+6uScePAWvCM/TZ8oRqt5BfLN6MMBF6zA/HItezVw=; b=p7BRI9ayqHSWJzkixYqw0p4r9F3EcFaUroFvWjjbu04M+5Fn+d5Z8B62HPUTF6lLGJ EjyDUexftbUthZ36TJZIlq0qIGon2FTssQZznCtLBexRB7kDGvqVDzdtAe2Eor27ghEO PDf+ZPdw6+k6OWEvT7FbFtlsRnqyYoRxyEjwzNqy122hG3Ta62lNWowSh0pVhkD3RC7G TwgF+0d3w0dalW/4hIUr5k2fFGhCuEMIVwnepil/nbC1Cm4mLKEW+S8RoSR1cb4yxz62 3XDnBJcsxnK8KXNMMmHT6k7VRZAmuyhU6Z8s+P/vcxQm/FoGjZSHe76Qh/kgeh2oIGKJ s7ag== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849718; x=1713454518; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=/Z+6uScePAWvCM/TZ8oRqt5BfLN6MMBF6zA/HItezVw=; b=mRnAZCuhgoGajBdurlHmt4ysvUXNadpKRG2c57VPvNmjHIv4EE7WqYa9KdqJ0keszI QrOy1iMLrqw7FLO9yvM0cgTScwsfTeyPnDQxMHQZfEH7GxpO1GOnBVwHly7Q+NWV5Bqv 8joAUzOddDmmVZkMpHM2Q3kCkFbkFosCZItRVZk0VhSXo7Czld4R3aoO+3xyNUjdBy0X azMZLsZ/B4XYNN042KjchAaz+ihRuX6ea2oEcprFC+TH3CiY+cf7ZEfXbHegMjiW7pX7 MgTDNbP/IJd1hzVaFwqmKgw8b6Jp1HuHIt2mGgyCIAaPUk3PdUw5FR2ua22KdcPUCCEb eDPw== X-Gm-Message-State: AOJu0YzjKbOG+4xPGCZzo6tutw8jO2rAvMonsNaZcf4yxsPcatIVbzNU zRIqHH7uyIQfwB7jsRsB+3FKSSpcSaSj7hDw+eHCiE1A+gl7L/iR93guusAdpSTCP6UuaHCgyOZ X X-Google-Smtp-Source: AGHT+IHKnbEKqd4wYVpAQvCJArWHLSasc36WX1v6vCXROMV8aVZo+cmCWg/i0QMvvkvHsmQWZHcRxw== X-Received: by 2002:a05:6602:38d:b0:7d6:513b:254 with SMTP id f13-20020a056602038d00b007d6513b0254mr181111iov.2.1712849718326; Thu, 11 Apr 2024 08:35:18 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.35.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:35:17 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 129/437] firmware: tegra: convert to read/write iterators Date: Thu, 11 Apr 2024 09:14:29 -0600 Message-ID: <20240411153126.16201-130-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/firmware/tegra/bpmp-debugfs.c | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/drivers/firmware/tegra/bpmp-debugfs.c b/drivers/firmware/tegra= /bpmp-debugfs.c index 4221fed70ad4..6ef756a2d638 100644 --- a/drivers/firmware/tegra/bpmp-debugfs.c +++ b/drivers/firmware/tegra/bpmp-debugfs.c @@ -363,21 +363,21 @@ static int bpmp_debug_show(struct seq_file *m, void *= p) return err; } =20 -static ssize_t bpmp_debug_store(struct file *file, const char __user *buf, - size_t count, loff_t *f_pos) +static ssize_t bpmp_debug_store(struct kiocb *iocb, struct iov_iter *from) { - struct inode *inode =3D file_inode(file); + struct inode *inode =3D file_inode(iocb->ki_filp); struct tegra_bpmp *bpmp =3D inode->i_private; + size_t count =3D iov_iter_count(from); char *databuf =3D NULL; char fnamebuf[256]; const char *filename; ssize_t err; =20 - filename =3D get_filename(bpmp, file, fnamebuf, sizeof(fnamebuf)); + filename =3D get_filename(bpmp, iocb->ki_filp, fnamebuf, sizeof(fnamebuf)= ); if (!filename) return -ENOENT; =20 - databuf =3D memdup_user(buf, count); + databuf =3D iterdup(from); if (IS_ERR(databuf)) return PTR_ERR(databuf); =20 @@ -394,9 +394,9 @@ static int bpmp_debug_open(struct inode *inode, struct = file *file) =20 static const struct file_operations bpmp_debug_fops =3D { .open =3D bpmp_debug_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, - .write =3D bpmp_debug_store, + .write_iter =3D bpmp_debug_store, .release =3D single_release, }; =20 @@ -630,11 +630,11 @@ static int debugfs_open(struct inode *inode, struct f= ile *file) return single_open_size(file, debugfs_show, file, SZ_128K); } =20 -static ssize_t debugfs_store(struct file *file, const char __user *buf, - size_t count, loff_t *f_pos) +static ssize_t debugfs_store(struct kiocb *iocb, struct iov_iter *from) { - struct inode *inode =3D file_inode(file); + struct inode *inode =3D file_inode(iocb->ki_filp); struct tegra_bpmp *bpmp =3D inode->i_private; + size_t count =3D iov_iter_count(from); const size_t datasize =3D count; const size_t namesize =3D SZ_256; void *datavirt, *namevirt; @@ -644,7 +644,7 @@ static ssize_t debugfs_store(struct file *file, const c= har __user *buf, size_t len; int err; =20 - filename =3D get_filename(bpmp, file, fnamebuf, sizeof(fnamebuf)); + filename =3D get_filename(bpmp, iocb->ki_filp, fnamebuf, sizeof(fnamebuf)= ); if (!filename) return -ENOENT; =20 @@ -681,9 +681,9 @@ static ssize_t debugfs_store(struct file *file, const c= har __user *buf, =20 static const struct file_operations debugfs_fops =3D { .open =3D debugfs_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, - .write =3D debugfs_store, + .write_iter =3D debugfs_store, .release =3D single_release, }; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-il1-f180.google.com (mail-il1-f180.google.com [209.85.166.180]) (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 128F015B543 for ; Thu, 11 Apr 2024 15:35:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.180 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849722; cv=none; b=U3r626CaxgyPBaYI9GmRS3DUht6sUXE+aF/+LkG6GQISH36+8mlRPIoRH87RJrzbKffefDaSPYeEyyarflYmLlkMypAMBzHib+xgGC7Nn4DF/fssini197uXaek9+g1stwAPP1dvkg74aT/Q0NFONk0Ab4KUHSBk2EG22KEJJmw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849722; c=relaxed/simple; bh=+lDbOx8B3H81a2Nwh9y9l2fau2gFkHxlFuErUguf/Po=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=oq9FlWOltqjIsx0YEBEDjPwNdLiXjS2sMmmuqjnIoKm7Yz5kb09R8GIS85k/dTCJ3qm9RfKWhOp7Lo4zzqTqJeqcV7UF8U8pE+baWkZI2dLoumj81UCP+Xwusx+fxqNrBrY4tsqzpIPahllsAOYt8qaYj6zSaGddhkkcNmDeHB4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=q6j6H949; arc=none smtp.client-ip=209.85.166.180 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="q6j6H949" Received: by mail-il1-f180.google.com with SMTP id e9e14a558f8ab-36a34b68277so109275ab.0 for ; Thu, 11 Apr 2024 08:35:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849720; x=1713454520; 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=KbcPbLGbd9qV2Apa3HgnAaIcGwsKPnC2z8OjMHiEjxA=; b=q6j6H949/G/+ofcCRNCQNy78Q+LAIYY0B0gykGd59jHelWk+7ZdHqapzSWtViKXwFS CWXB1bWUaDCeRQyFyWvcyaJXraHGy3p1W7QFSSO9WJbXUXfOXJWq4qZkbOR3yLL28nHE aog/KWPSKnp+MBpwEhUlM8K2NU8lNSW4Smvf/EK+kf5nu54XFfgKTpf9nlgmmp2whGWF 0SBUpJopxSz4Wy+pTIXwNGx0nwbo+bGqFlI1QKKqLBeb80jqPgE2sZo0yAtM68P36bFl mNoWstTDiNbzkY2sdz5LdzKTXf6sNIo5KgNcX+ScOyO1Bv8ogOFd0lNTAY8IzU63ttFf k41A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849720; x=1713454520; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=KbcPbLGbd9qV2Apa3HgnAaIcGwsKPnC2z8OjMHiEjxA=; b=HOqRZrFa/cqK0gz93jV9De//Hag8TdVYqfBwYF7nR36oQhqqqeK5ReezoiJzBgW8Xj xUewi9QFwuRFwQ20nkkrbc/RpJbYUhKEZHn1tXO1yPKNs/Vt6TyNx3EnakeZ9aJm5cRY llvh6K7piD81ZaQiAWhB5Qs+2JjIralFCn3xs+NDxK2iay+V9piyAgVqGqoMRSm7WVy4 holJvq8xNY7gPRMqJIeoFLsNC3s6ZfbadsO6xBWnWqHPXBz+BF2PqHs9m56eBFNAcngN JUvui1SPThqYKBEGZS1281Y5ZV3W5bI/MUbmOoIuglMaRDIy5ptaM4xnbaTrOttufSAe DD+g== X-Gm-Message-State: AOJu0YwvbpAdfZ56MgtA9PEqE7dl36UQl/2Rmzy4Ak0R1h/WnJxLTcrg /lugav6bWaLoNubZpOw8SFHMjWlyT9OZ7LPbW8DmgVZ9BIYbrwxzwBV8eeGB7iLVSpBM9fXVACD B X-Google-Smtp-Source: AGHT+IHyu8IdJGTw2wmybsF8abPpNPvdEu8Ocer6mRzfEfLKS8cdPvCmu+uoONlukxZ9pfjHahzwAw== X-Received: by 2002:a6b:4e14:0:b0:7d6:631d:7b0 with SMTP id c20-20020a6b4e14000000b007d6631d07b0mr183983iob.1.1712849719852; Thu, 11 Apr 2024 08:35:19 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.35.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:35:18 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 130/437] drivers/i2c: convert to read/write iterators Date: Thu, 11 Apr 2024 09:14:30 -0600 Message-ID: <20240411153126.16201-131-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/i2c/i2c-dev.c | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/drivers/i2c/i2c-dev.c b/drivers/i2c/i2c-dev.c index 8b7e599f1674..4997e70499d5 100644 --- a/drivers/i2c/i2c-dev.c +++ b/drivers/i2c/i2c-dev.c @@ -131,14 +131,13 @@ ATTRIBUTE_GROUPS(i2c); * needed by those system calls and by this SMBus interface. */ =20 -static ssize_t i2cdev_read(struct file *file, char __user *buf, size_t cou= nt, - loff_t *offset) +static ssize_t i2cdev_read(struct kiocb *iocb, struct iov_iter *to) { + struct i2c_client *client =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(to); char *tmp; int ret; =20 - struct i2c_client *client =3D file->private_data; - if (count > 8192) count =3D 8192; =20 @@ -146,31 +145,31 @@ static ssize_t i2cdev_read(struct file *file, char __= user *buf, size_t count, if (tmp =3D=3D NULL) return -ENOMEM; =20 - pr_debug("i2c-%d reading %zu bytes.\n", iminor(file_inode(file)), count); + pr_debug("i2c-%d reading %zu bytes.\n", iminor(file_inode(iocb->ki_filp))= , count); =20 ret =3D i2c_master_recv(client, tmp, count); if (ret >=3D 0) - if (copy_to_user(buf, tmp, ret)) + if (!copy_to_iter_full(tmp, ret, to)) ret =3D -EFAULT; kfree(tmp); return ret; } =20 -static ssize_t i2cdev_write(struct file *file, const char __user *buf, - size_t count, loff_t *offset) +static ssize_t i2cdev_write(struct kiocb *iocb, struct iov_iter *from) { int ret; char *tmp; - struct i2c_client *client =3D file->private_data; + struct i2c_client *client =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); =20 if (count > 8192) count =3D 8192; =20 - tmp =3D memdup_user(buf, count); + tmp =3D iterdup(from, count); if (IS_ERR(tmp)) return PTR_ERR(tmp); =20 - pr_debug("i2c-%d writing %zu bytes.\n", iminor(file_inode(file)), count); + pr_debug("i2c-%d writing %zu bytes.\n", iminor(file_inode(iocb->ki_filp))= , count); =20 ret =3D i2c_master_send(client, tmp, count); kfree(tmp); @@ -626,8 +625,8 @@ static int i2cdev_release(struct inode *inode, struct f= ile *file) static const struct file_operations i2cdev_fops =3D { .owner =3D THIS_MODULE, .llseek =3D no_llseek, - .read =3D i2cdev_read, - .write =3D i2cdev_write, + .read_iter =3D i2cdev_read, + .write_iter =3D i2cdev_write, .unlocked_ioctl =3D i2cdev_ioctl, .compat_ioctl =3D compat_i2cdev_ioctl, .open =3D i2cdev_open, --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-il1-f171.google.com (mail-il1-f171.google.com [209.85.166.171]) (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 D015115B578 for ; Thu, 11 Apr 2024 15:35:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.171 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849724; cv=none; b=hIvgHDC//Vart566EDDKM7uCAUDt6pY03eFKoscaCnEVb20JeOY2SXlNJP9G2ivSZVuFuRI5LV1GDYefnowkHSqStpf6praqXDYWUMmZThrS6VAaV4kN23eeUC7fhv+Mbtwx42nnZSqNuMTTw6BsTVxa6QZrpflIzCq57EbhVv0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849724; c=relaxed/simple; bh=qDW73nLCAbthEU1m3Wg56pQPy3RqiqdOL715SPwIqGo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ulDkdkO2usjPk6ufe5gvj+mQ88TPma21El1VNTARRlxMy+4roma+6wEAVrlfZwXAZxGBziFR6OCC91vP/qwv8PFC8PHZK9z+/Zylu6ahpPB8f3AqE39tnoNiB5gzYa8pZ6ZtyLKWjs3avImcpPXq4SBb5NPivbh3cyOSiTARmY0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=cNorlwSi; arc=none smtp.client-ip=209.85.166.171 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="cNorlwSi" Received: by mail-il1-f171.google.com with SMTP id e9e14a558f8ab-36a224d7414so181175ab.1 for ; Thu, 11 Apr 2024 08:35:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849721; x=1713454521; 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=NLjJmJHxmSDaxASdqWWWd85ZwrkHxHPKLKhPKVXwGoQ=; b=cNorlwSiLD7H0nldjbDukU9Hyq649frf3KfwCqYXSA9/VRyWryeacP4WVtjVIcl/ZV jt6omdMN9EzviIW+4dJXPGo/DtNqQS7293Z+c6RsTWfcpqRY2tlv17cV63YKfiKkFIum qKuYH1/6Y4WVaonsjniFC0EdQSBG8tR8juseoWikNTx3ucCOmVhDBkdkkbNOICma+J15 5uny/iy7bajPvxCtaxw1imlkt2jbm9AwenUrkPE08N6HVYp0IW8DxYXc7aokim1SB36h v97q2DmCX3Y0rd6D4Gg4m/24gSnBGTAl1HqLcDUmj8RgPVjHUnYWle+NEsjfEc7PvCUW rVNg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849721; x=1713454521; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=NLjJmJHxmSDaxASdqWWWd85ZwrkHxHPKLKhPKVXwGoQ=; b=kEoAG9JRei4RimTJiwqco2xchESVbHstI/NVGCQal6wZDf03fPeyqRNq3s+agzpAro 97nD3R5aOCxHgaqZaFjFXbXpjZms0VC8U1cSkmoZAn4um6+WK+dAry/aSVaPcPczI2Ph 0r3fqG+uSx+LKOKaQTOGswYRYlhc0AVlXL8+JwNTbUHxzvKySj3vJ5bYdaWqpN8EZO3F sIEJh0VxUWUdqSVw7m6Kl+6jy+Aqw9BSEtUhOM6P2sBWR4lEOjmSiQUTXY2rWj6PiOih Zx08OSGvJcZksGyG93qNBRzYagG8mUWkL85jHwiQe1ZRRmOvAWNilWBfzqHH+ozqppf6 +yEA== X-Gm-Message-State: AOJu0Ywo8QombLo4rw/UJ4FexAZXN3ArgkwRAhahQi+eB4EEpa0/udc+ xKkAwxmk7MKAHSxXeEV2doYHNetxSvrYOhR7ZjMhCkEy5oba4LoDZmpndCxPWg/OLsgeW+w9/UW L X-Google-Smtp-Source: AGHT+IFLMHFadikXh/jxWbpQ/Uc7LBZl7P0+r03WFsqVk6YVAvma8YacJD41+IO0WAlx64uARiUkvA== X-Received: by 2002:a92:c56f:0:b0:369:e37d:541f with SMTP id b15-20020a92c56f000000b00369e37d541fmr6986163ilj.1.1712849721608; Thu, 11 Apr 2024 08:35:21 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.35.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:35:20 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 131/437] drivers/opp: convert to read/write iterators Date: Thu, 11 Apr 2024 09:14:31 -0600 Message-ID: <20240411153126.16201-132-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/opp/debugfs.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/drivers/opp/debugfs.c b/drivers/opp/debugfs.c index 105de7c3274a..a755dacb2c61 100644 --- a/drivers/opp/debugfs.c +++ b/drivers/opp/debugfs.c @@ -33,10 +33,9 @@ void opp_debug_remove_one(struct dev_pm_opp *opp) debugfs_remove_recursive(opp->dentry); } =20 -static ssize_t bw_name_read(struct file *fp, char __user *userbuf, - size_t count, loff_t *ppos) +static ssize_t bw_name_read(struct kiocb *iocb, struct iov_iter *to) { - struct icc_path *path =3D fp->private_data; + struct icc_path *path =3D iocb->ki_filp->private_data; const char *name =3D icc_get_name(path); char buf[64]; int i =3D 0; @@ -44,12 +43,12 @@ static ssize_t bw_name_read(struct file *fp, char __use= r *userbuf, if (name) i =3D scnprintf(buf, sizeof(buf), "%.62s\n", name); =20 - return simple_read_from_buffer(userbuf, count, ppos, buf, i); + return simple_copy_to_iter(buf, &iocb->ki_pos, i, to); } =20 static const struct file_operations bw_name_fops =3D { .open =3D simple_open, - .read =3D bw_name_read, + .read_iter =3D bw_name_read, .llseek =3D default_llseek, }; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f46.google.com (mail-io1-f46.google.com [209.85.166.46]) (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 574D515B98A for ; Thu, 11 Apr 2024 15:35:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849725; cv=none; b=CiTkkvWlcN+NLj+lL5FL2F1GC1U+LHZ9FNLLYUS5tWzdKKz/D2DQ7IunYV6wTr/UqpN4YYaTzCowVo0+Z6UDZrABpqV5aZKkA1OWixjk7CjsO1Is8dpACoxXXSOrS7hhU2l/KxhpUkdUadIj4TUrB/nomvlxgm09eXxQ7SEAzks= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849725; c=relaxed/simple; bh=ciIYPNXNl+LNo14DX+APzHybObo5YmU7vfmUoXqh4Dk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Rb6rCB8aKamP/d8x2Ak9Q3ZisJwYP0fnmHaPKjzI4nqfjtloNJZgYhpz3akvILcJY9ixZ64lA02gGtA0xxHSbvCI15WgwM8WX9gzqQNBkesbamxSZk5pMT2V1s+BQ319Tzu/HbGfa9ZaWQLiVC87OEcxGtoDkUMO0tNJ13WbDhE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=1C2cQaaa; arc=none smtp.client-ip=209.85.166.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="1C2cQaaa" Received: by mail-io1-f46.google.com with SMTP id ca18e2360f4ac-7c8e4c0412dso69553539f.1 for ; Thu, 11 Apr 2024 08:35:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849723; x=1713454523; 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=GO0uhGFATJkkYVGDUegCBXfMVm99pjVyPXsWEr7rmNo=; b=1C2cQaaaLCKlZV2QD7fyjOtnOLraeXZnuLKyMXG06ET7O9WeQKG63Ot6S6gq7Yv4b5 3boFtSKxof7zaed5CgrPA9GKjfDbwL4/Y1QvIfgvFTvtSNq6q3Q0QS9XuFHj7VZb4gI6 TWalUhjZr+KWL3Z3CgqoXeVvB7TMrtVZxA0xSR+2cu72UXMl0SogzotKB6NAMoEhhAiO FGq39qcJGWB84rrZpbwhrTndCw7HuyDD3AGctUaJ1Nin1X6g11CuqUfq3AQ2aH+vG2A1 54C8xcfpTmatQngKLb3Jrxw4y1lBQQ0Jo5V+jtRuvmVZ010NgSEIMRhvghCctpYVTBCE q8rQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849723; x=1713454523; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=GO0uhGFATJkkYVGDUegCBXfMVm99pjVyPXsWEr7rmNo=; b=q/wG+rZ4Dd2Ijjy/chkiS7azT+G16r7xgkIKriW7xH++UeRBl/mLwZdofRGWbFxT5w VEt2+cIeWP07cH6knfaW91F6mdUKNG0Krrb6R0viK5HawWJ3YB3jfrJTKRcYu34Xjyl+ 09KN1Zsw+cV07Q/zCMRCWrj8uCwn8UFwzHWeAhbTlZiJCMzm2JCiWtzNfCkJ8KmaTP7I LZvo/vjoyYqQg9luLU4DkVtqnmw/YpcyTeEfvfIlOhGD1XKGXz+MxVFniHY7Tpsv3ZXd S0zBw0oW+03AxGjChj2FUKDBRwbGxhKsuvdPmV2GfOBylbbzYLmOFkyQVwPeWZHp1twS r78g== X-Gm-Message-State: AOJu0Yyp+z/A61xD5M9Rcmv+XTvx3Kib/SC4VO+e4fgNLrIEcvK54Vtb s1ENJ1I3nARByvDGGkvKzyNsIXSCUxY0EScpougvm1LjZ3VwCWcsDqMsGFTTFC+wMe37d8hivew x X-Google-Smtp-Source: AGHT+IFChSn5oExubJ4WGSQzj3594XIuuuUAzzTt2pxQKRMDoj1tVAPDxyqyJIq9CfodLYWocOfWmQ== X-Received: by 2002:a05:6602:84:b0:7d6:9d75:6de2 with SMTP id h4-20020a056602008400b007d69d756de2mr39389iob.2.1712849723092; Thu, 11 Apr 2024 08:35:23 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.35.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:35:21 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 132/437] drivers/base: convert to read/write iterators Date: Thu, 11 Apr 2024 09:14:32 -0600 Message-ID: <20240411153126.16201-133-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/base/power/wakeup.c | 2 +- drivers/base/regmap/regmap-debugfs.c | 119 ++++++++++++--------------- 2 files changed, 52 insertions(+), 69 deletions(-) diff --git a/drivers/base/power/wakeup.c b/drivers/base/power/wakeup.c index a917219feea6..b3ae10683a95 100644 --- a/drivers/base/power/wakeup.c +++ b/drivers/base/power/wakeup.c @@ -1168,7 +1168,7 @@ static int wakeup_sources_stats_open(struct inode *in= ode, struct file *file) static const struct file_operations wakeup_sources_stats_fops =3D { .owner =3D THIS_MODULE, .open =3D wakeup_sources_stats_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D seq_release_private, }; diff --git a/drivers/base/regmap/regmap-debugfs.c b/drivers/base/regmap/reg= map-debugfs.c index 571b5c00a28e..ab0458ec787c 100644 --- a/drivers/base/regmap/regmap-debugfs.c +++ b/drivers/base/regmap/regmap-debugfs.c @@ -10,6 +10,7 @@ #include #include #include +#include #include #include =20 @@ -31,11 +32,9 @@ static size_t regmap_calc_reg_len(int max_val) return snprintf(NULL, 0, "%x", max_val); } =20 -static ssize_t regmap_name_read_file(struct file *file, - char __user *user_buf, size_t count, - loff_t *ppos) +static ssize_t regmap_name_read_file(struct kiocb *iocb, struct iov_iter *= to) { - struct regmap *map =3D file->private_data; + struct regmap *map =3D iocb->ki_filp->private_data; const char *name =3D "nodev"; int ret; char *buf; @@ -53,14 +52,14 @@ static ssize_t regmap_name_read_file(struct file *file, return ret; } =20 - ret =3D simple_read_from_buffer(user_buf, count, ppos, buf, ret); + ret =3D simple_copy_to_iter(buf, &iocb->ki_pos, ret, to); kfree(buf); return ret; } =20 static const struct file_operations regmap_name_fops =3D { .open =3D simple_open, - .read =3D regmap_name_read_file, + .read_iter =3D regmap_name_read_file, .llseek =3D default_llseek, }; =20 @@ -213,17 +212,18 @@ static int regmap_next_readable_reg(struct regmap *ma= p, int reg) } =20 static ssize_t regmap_read_debugfs(struct regmap *map, unsigned int from, - unsigned int to, char __user *user_buf, - size_t count, loff_t *ppos) + unsigned int to, struct kiocb *iocb, + struct iov_iter *to_iov) { size_t buf_pos =3D 0; - loff_t p =3D *ppos; + loff_t p =3D iocb->ki_pos; ssize_t ret; int i; char *buf; unsigned int val, start_reg; + size_t count =3D iov_iter_count(to_iov); =20 - if (*ppos < 0 || !count) + if (iocb->ki_pos < 0 || !count) return -EINVAL; =20 if (count > (PAGE_SIZE << MAX_PAGE_ORDER)) @@ -236,13 +236,13 @@ static ssize_t regmap_read_debugfs(struct regmap *map= , unsigned int from, regmap_calc_tot_len(map, buf, count); =20 /* Work out which register we're starting at */ - start_reg =3D regmap_debugfs_get_dump_start(map, from, *ppos, &p); + start_reg =3D regmap_debugfs_get_dump_start(map, from, iocb->ki_pos, &p); =20 for (i =3D start_reg; i >=3D 0 && i <=3D to; i =3D regmap_next_readable_reg(map, i)) { =20 /* If we're in the region the user is trying to read */ - if (p >=3D *ppos) { + if (p >=3D iocb->ki_pos) { /* ...but not beyond it */ if (buf_pos + map->debugfs_tot_len > count) break; @@ -269,25 +269,22 @@ static ssize_t regmap_read_debugfs(struct regmap *map= , unsigned int from, =20 ret =3D buf_pos; =20 - if (copy_to_user(user_buf, buf, buf_pos)) { + if (!copy_to_iter_full(buf, buf_pos, to_iov)) { ret =3D -EFAULT; goto out; } =20 - *ppos +=3D buf_pos; - + iocb->ki_pos +=3D buf_pos; out: kfree(buf); return ret; } =20 -static ssize_t regmap_map_read_file(struct file *file, char __user *user_b= uf, - size_t count, loff_t *ppos) +static ssize_t regmap_map_read_file(struct kiocb *iocb, struct iov_iter *t= o) { - struct regmap *map =3D file->private_data; + struct regmap *map =3D iocb->ki_filp->private_data; =20 - return regmap_read_debugfs(map, 0, map->max_register, user_buf, - count, ppos); + return regmap_read_debugfs(map, 0, map->max_register, iocb, to); } =20 #undef REGMAP_ALLOW_WRITE_DEBUGFS @@ -298,19 +295,18 @@ static ssize_t regmap_map_read_file(struct file *file= , char __user *user_buf, * for this feature, people who want to use this will need to modify * the source code directly. */ -static ssize_t regmap_map_write_file(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t regmap_map_write_file(struct kiocb *iocb, struct iov_iter *= from) { char buf[32]; size_t buf_size; char *start =3D buf; unsigned long reg, value; - struct regmap *map =3D file->private_data; + struct regmap *map =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); int ret; =20 buf_size =3D min(count, (sizeof(buf)-1)); - if (copy_from_user(buf, user_buf, buf_size)) + if (!copy_from_iter_full(buf, buf_size, from)) return -EFAULT; buf[buf_size] =3D 0; =20 @@ -336,33 +332,32 @@ static ssize_t regmap_map_write_file(struct file *fil= e, =20 static const struct file_operations regmap_map_fops =3D { .open =3D simple_open, - .read =3D regmap_map_read_file, - .write =3D regmap_map_write_file, + .read_iter =3D regmap_map_read_file, + .write_iter =3D regmap_map_write_file, .llseek =3D default_llseek, }; =20 -static ssize_t regmap_range_read_file(struct file *file, char __user *user= _buf, - size_t count, loff_t *ppos) +static ssize_t regmap_range_read_file(struct kiocb *iocb, struct iov_iter = *to) { - struct regmap_range_node *range =3D file->private_data; + struct regmap_range_node *range =3D iocb->ki_filp->private_data; struct regmap *map =3D range->map; =20 return regmap_read_debugfs(map, range->range_min, range->range_max, - user_buf, count, ppos); + iocb, to); } =20 static const struct file_operations regmap_range_fops =3D { .open =3D simple_open, - .read =3D regmap_range_read_file, + .read_iter =3D regmap_range_read_file, .llseek =3D default_llseek, }; =20 -static ssize_t regmap_reg_ranges_read_file(struct file *file, - char __user *user_buf, size_t count, - loff_t *ppos) +static ssize_t regmap_reg_ranges_read_file(struct kiocb *iocb, + struct iov_iter *to) { - struct regmap *map =3D file->private_data; + struct regmap *map =3D iocb->ki_filp->private_data; struct regmap_debugfs_off_cache *c; + size_t count =3D iov_iter_count(to); loff_t p =3D 0; size_t buf_pos =3D 0; char *buf; @@ -370,7 +365,7 @@ static ssize_t regmap_reg_ranges_read_file(struct file = *file, int ret; unsigned int entry_len; =20 - if (*ppos < 0 || !count) + if (iocb->ki_pos < 0 || !count) return -EINVAL; =20 if (count > (PAGE_SIZE << MAX_PAGE_ORDER)) @@ -392,7 +387,7 @@ static ssize_t regmap_reg_ranges_read_file(struct file = *file, * about the file position information that is contained * in the cache, just about the actual register blocks */ regmap_calc_tot_len(map, buf, count); - regmap_debugfs_get_dump_start(map, 0, *ppos, &p); + regmap_debugfs_get_dump_start(map, 0, iocb->ki_pos, &p); =20 /* Reset file pointer as the fixed-format of the `registers' * file is not compatible with the `range' file */ @@ -401,7 +396,7 @@ static ssize_t regmap_reg_ranges_read_file(struct file = *file, list_for_each_entry(c, &map->debugfs_off_cache, list) { entry_len =3D snprintf(entry, PAGE_SIZE, "%x-%x\n", c->base_reg, c->max_reg); - if (p >=3D *ppos) { + if (p >=3D iocb->ki_pos) { if (buf_pos + entry_len > count) break; memcpy(buf + buf_pos, entry, entry_len); @@ -414,12 +409,12 @@ static ssize_t regmap_reg_ranges_read_file(struct fil= e *file, kfree(entry); ret =3D buf_pos; =20 - if (copy_to_user(user_buf, buf, buf_pos)) { + if (!copy_to_iter_full(buf, buf_pos, to)) { ret =3D -EFAULT; goto out_buf; } =20 - *ppos +=3D buf_pos; + iocb->ki_pos +=3D buf_pos; out_buf: kfree(buf); return ret; @@ -427,7 +422,7 @@ static ssize_t regmap_reg_ranges_read_file(struct file = *file, =20 static const struct file_operations regmap_reg_ranges_fops =3D { .open =3D simple_open, - .read =3D regmap_reg_ranges_read_file, + .read_iter =3D regmap_reg_ranges_read_file, .llseek =3D default_llseek, }; =20 @@ -456,21 +451,21 @@ static int regmap_access_show(struct seq_file *s, voi= d *ignored) =20 DEFINE_SHOW_ATTRIBUTE(regmap_access); =20 -static ssize_t __regmap_cache_only_write_file(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t regmap_cache_only_write_file(struct kiocb *iocb, + struct iov_iter *from) { - struct regmap *map =3D container_of(file->private_data, + struct regmap *map =3D container_of(iocb->ki_filp->private_data, struct regmap, cache_only); + size_t count =3D iov_iter_count(from); bool new_val, require_sync =3D false; int err; =20 - err =3D kstrtobool_from_user(user_buf, count, &new_val); + err =3D kstrtobool_from_iter(from, count, &new_val); /* Ignore malforned data like debugfs_write_file_bool() */ if (err) return count; =20 - err =3D debugfs_file_get(file->f_path.dentry); + err =3D debugfs_file_get(iocb->ki_filp->f_path.dentry); if (err) return err; =20 @@ -486,7 +481,7 @@ static ssize_t __regmap_cache_only_write_file(struct fi= le *file, map->cache_only =3D new_val; =20 map->unlock(map->lock_arg); - debugfs_file_put(file->f_path.dentry); + debugfs_file_put(iocb->ki_filp->f_path.dentry); =20 if (require_sync) { err =3D regcache_sync(map); @@ -497,33 +492,27 @@ static ssize_t __regmap_cache_only_write_file(struct = file *file, return count; } =20 -static ssize_t regmap_cache_only_write_file(struct kiocb *iocb, - struct iov_iter *from) -{ - return vfs_write_iter(iocb, from, __regmap_cache_only_write_file); -} - static const struct file_operations regmap_cache_only_fops =3D { .open =3D simple_open, .read_iter =3D debugfs_read_file_bool, .write_iter =3D regmap_cache_only_write_file, }; =20 -static ssize_t __regmap_cache_bypass_write_file(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t regmap_cache_bypass_write_file(struct kiocb *iocb, + struct iov_iter *from) { - struct regmap *map =3D container_of(file->private_data, + struct regmap *map =3D container_of(iocb->ki_filp->private_data, struct regmap, cache_bypass); + size_t count =3D iov_iter_count(from); bool new_val; int err; =20 - err =3D kstrtobool_from_user(user_buf, count, &new_val); + err =3D kstrtobool_from_iter(from, count, &new_val); /* Ignore malforned data like debugfs_write_file_bool() */ if (err) return count; =20 - err =3D debugfs_file_get(file->f_path.dentry); + err =3D debugfs_file_get(iocb->ki_filp->f_path.dentry); if (err) return err; =20 @@ -538,17 +527,11 @@ static ssize_t __regmap_cache_bypass_write_file(struc= t file *file, map->cache_bypass =3D new_val; =20 map->unlock(map->lock_arg); - debugfs_file_put(file->f_path.dentry); + debugfs_file_put(iocb->ki_filp->f_path.dentry); =20 return count; } =20 -static ssize_t regmap_cache_bypass_write_file(struct kiocb *iocb, - struct iov_iter *from) -{ - return vfs_write_iter(iocb, from, __regmap_cache_bypass_write_file); -} - static const struct file_operations regmap_cache_bypass_fops =3D { .open =3D simple_open, .read_iter =3D debugfs_read_file_bool, --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f52.google.com (mail-io1-f52.google.com [209.85.166.52]) (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 A23BE15CD66 for ; Thu, 11 Apr 2024 15:35:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849728; cv=none; b=rzdXKZeq3vlbSEXmO8d2O9me/gpGkfVjBD9z/yTBF0BxUZPJh9eU8EcM6l63B3Bcub1vrLF0c7OSlZ/Ti52/ZqLYxLMtN+71IPnHnuqwDO56UUJSZ0bZjBb4LtLECgfWGiVsalZTOgdSzHDcCTkOla7hmAd/c5d+qLq5Wqyigm8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849728; c=relaxed/simple; bh=A9OG430vw9/eqwPMXzB8R2JeVUlUleM+s0VO074Ik+A=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=bZYE+FFykknVmEO6dm+ALbIwxNg8HanV7jOe3NHEkM7pOC5jVJwAJiIdpz1/mM6e7xIBl51wWt4hPJ0gnLQ5veh+Ttd9aDFhvxeBL7HL8ImWLhanofEHvMKn+Vxp3VnZm0PgHWvp8ZQ14p3+OJkDIQf5tyQFc60r60P6JcjHAyU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=HRovyp0G; arc=none smtp.client-ip=209.85.166.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="HRovyp0G" Received: by mail-io1-f52.google.com with SMTP id ca18e2360f4ac-7d6112ba6baso58048439f.1 for ; Thu, 11 Apr 2024 08:35:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849725; x=1713454525; 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=O8yvvJiRfPdHRui8xzZtrVXgSKCPmJuTzPmtT1G+Irg=; b=HRovyp0G5EYqGKZaA2gPztbn67xJd2rhTAnEwIrmejp2evnQbVjrfdDY5ihPOcp74+ Nb3Ar9dSX73vZEa99w/WqZI1Yog56XXvPjXXL0XdZoLH98uIbvWC+4ob1gKMA91ARNTh rRodM0NW7wtpQ6QbgIBkMRPtz/tkX6h3mWl6ziecguTMnFzj7xJarmIFQj9a8A6Cc+8T 2eGoiMdG4H/zTi08Mo5nLej5YH0rexIOxNfe0+bllMjsJgXxw5smZ5BL4S+tgrX8dInk MkR7c+xfj54UKzm6lwD9XPbWMsddFa2BlLjohAbB94WflVNokES43D8VzcPSRjBmC4hS sAtw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849725; x=1713454525; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=O8yvvJiRfPdHRui8xzZtrVXgSKCPmJuTzPmtT1G+Irg=; b=LdD/50I/iZqrq1ARS+fOPINJZMRs2f40uzwLRYy3cJtKpM5+3LbGze6+WFBbfcBVKg NNQwuwMSeiQCZaKbP2lqESbOOfzDqRvr2dRrDw/Q1c8IQvBuEQkpE3wai/jMu9CF7NjM 73COqHjz42jwikgj0WK48xgSkejlYMOWWkYpBY671VMycyFmVaqKpz+5nbmU6IussEEJ stQ1s6p3xezkDg88xGlPdo2lg34R9X+xdH9w+S85y7LzGP+HtjP3j8Bd1tyBUKH8FvtK Pk6EMOxXWyRh2dtgAR60aZSx24wNw/FHXtXNqMybRwNVgL2SDLs/qTtWLHkd04QRyK3z XhRA== X-Gm-Message-State: AOJu0Yy/1QvrLKDoHdmI4YyU4UN1/ZD/xDRX0A6xlce753G9V1TnwXLe zLjdQP0ctMUVQy7JVkl1LD3l/fxjAf2Y03JDtvJ4Qd4RaUnJVzpIZGUMJchAcaRkWk8YBJyIuuq l X-Google-Smtp-Source: AGHT+IEgdJEWt4EmIobDCDVsGCNxgEnkChIfFPII1BTwAfTB1b66EZzUpP59MT12aAuwMiuvrjbVUQ== X-Received: by 2002:a05:6602:38d:b0:7d6:513b:254 with SMTP id f13-20020a056602038d00b007d6513b0254mr181497iov.2.1712849724972; Thu, 11 Apr 2024 08:35:24 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.35.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:35:23 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 133/437] drivers/bus: convert to read/write iterators Date: Thu, 11 Apr 2024 09:14:33 -0600 Message-ID: <20240411153126.16201-134-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/bus/mhi/host/debugfs.c | 38 +++++++++++++++++----------------- drivers/bus/moxtet.c | 30 +++++++++++++-------------- 2 files changed, 33 insertions(+), 35 deletions(-) diff --git a/drivers/bus/mhi/host/debugfs.c b/drivers/bus/mhi/host/debugfs.c index cfec7811dfbb..14d7a1132fca 100644 --- a/drivers/bus/mhi/host/debugfs.c +++ b/drivers/bus/mhi/host/debugfs.c @@ -245,17 +245,17 @@ static int mhi_debugfs_device_wake_show(struct seq_fi= le *m, void *d) return 0; } =20 -static ssize_t mhi_debugfs_device_wake_write(struct file *file, - const char __user *ubuf, - size_t count, loff_t *ppos) +static ssize_t mhi_debugfs_device_wake_write(struct kiocb *iocb, + struct iov_iter *from) { - struct seq_file *m =3D file->private_data; + struct seq_file *m =3D iocb->ki_filp->private_data; struct mhi_controller *mhi_cntrl =3D m->private; struct mhi_device *mhi_dev =3D mhi_cntrl->mhi_dev; + size_t count =3D iov_iter_count(from); char buf[16]; int ret =3D -EINVAL; =20 - if (copy_from_user(&buf, ubuf, min_t(size_t, sizeof(buf) - 1, count))) + if (!copy_from_iter_full(&buf, min_t(size_t, sizeof(buf) - 1, count), fro= m)) return -EFAULT; =20 if (!strncmp(buf, "get", 3)) { @@ -277,15 +277,15 @@ static int mhi_debugfs_timeout_ms_show(struct seq_fil= e *m, void *d) return 0; } =20 -static ssize_t mhi_debugfs_timeout_ms_write(struct file *file, - const char __user *ubuf, - size_t count, loff_t *ppos) +static ssize_t mhi_debugfs_timeout_ms_write(struct kiocb *iocb, + struct iov_iter *from) { - struct seq_file *m =3D file->private_data; + struct seq_file *m =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); struct mhi_controller *mhi_cntrl =3D m->private; u32 timeout_ms; =20 - if (kstrtou32_from_user(ubuf, count, 0, &timeout_ms)) + if (kstrtou32_from_iter(from, count, 0, &timeout_ms)) return -EINVAL; =20 mhi_cntrl->timeout_ms =3D timeout_ms; @@ -331,45 +331,45 @@ static int mhi_debugfs_timeout_ms_open(struct inode *= inode, struct file *fp) static const struct file_operations debugfs_states_fops =3D { .open =3D mhi_debugfs_states_open, .release =3D single_release, - .read =3D seq_read, + .read_iter =3D seq_read_iter, }; =20 static const struct file_operations debugfs_events_fops =3D { .open =3D mhi_debugfs_events_open, .release =3D single_release, - .read =3D seq_read, + .read_iter =3D seq_read_iter, }; =20 static const struct file_operations debugfs_channels_fops =3D { .open =3D mhi_debugfs_channels_open, .release =3D single_release, - .read =3D seq_read, + .read_iter =3D seq_read_iter, }; =20 static const struct file_operations debugfs_devices_fops =3D { .open =3D mhi_debugfs_devices_open, .release =3D single_release, - .read =3D seq_read, + .read_iter =3D seq_read_iter, }; =20 static const struct file_operations debugfs_regdump_fops =3D { .open =3D mhi_debugfs_regdump_open, .release =3D single_release, - .read =3D seq_read, + .read_iter =3D seq_read_iter, }; =20 static const struct file_operations debugfs_device_wake_fops =3D { .open =3D mhi_debugfs_device_wake_open, - .write =3D mhi_debugfs_device_wake_write, + .write_iter =3D mhi_debugfs_device_wake_write, .release =3D single_release, - .read =3D seq_read, + .read_iter =3D seq_read_iter, }; =20 static const struct file_operations debugfs_timeout_ms_fops =3D { .open =3D mhi_debugfs_timeout_ms_open, - .write =3D mhi_debugfs_timeout_ms_write, + .write_iter =3D mhi_debugfs_timeout_ms_write, .release =3D single_release, - .read =3D seq_read, + .read_iter =3D seq_read_iter, }; =20 static struct dentry *mhi_debugfs_root; diff --git a/drivers/bus/moxtet.c b/drivers/bus/moxtet.c index 641c1a6adc8a..a6635cfc8490 100644 --- a/drivers/bus/moxtet.c +++ b/drivers/bus/moxtet.c @@ -15,6 +15,7 @@ #include #include #include +#include =20 /* * @name: module name for sysfs @@ -460,10 +461,9 @@ static int moxtet_debug_open(struct inode *inode, stru= ct file *file) return nonseekable_open(inode, file); } =20 -static ssize_t input_read(struct file *file, char __user *buf, size_t len, - loff_t *ppos) +static ssize_t input_read(struct kiocb *iocb, struct iov_iter *to) { - struct moxtet *moxtet =3D file->private_data; + struct moxtet *moxtet =3D iocb->ki_filp->private_data; u8 bin[TURRIS_MOX_MAX_MODULES]; u8 hex[sizeof(bin) * 2 + 1]; int ret, n; @@ -477,20 +477,19 @@ static ssize_t input_read(struct file *file, char __u= ser *buf, size_t len, =20 hex[2*n] =3D '\n'; =20 - return simple_read_from_buffer(buf, len, ppos, hex, 2*n + 1); + return simple_copy_to_iter(hex, &iocb->ki_pos, 2*n + 1, to); } =20 static const struct file_operations input_fops =3D { .owner =3D THIS_MODULE, .open =3D moxtet_debug_open, - .read =3D input_read, + .read_iter =3D input_read, .llseek =3D no_llseek, }; =20 -static ssize_t output_read(struct file *file, char __user *buf, size_t len, - loff_t *ppos) +static ssize_t output_read(struct kiocb *iocb, struct iov_iter *to) { - struct moxtet *moxtet =3D file->private_data; + struct moxtet *moxtet =3D iocb->ki_filp->private_data; u8 hex[TURRIS_MOX_MAX_MODULES * 2 + 1]; u8 *p =3D hex; int i; @@ -504,23 +503,22 @@ static ssize_t output_read(struct file *file, char __= user *buf, size_t len, =20 *p++ =3D '\n'; =20 - return simple_read_from_buffer(buf, len, ppos, hex, p - hex); + return simple_copy_to_iter(hex, &iocb->ki_pos, p - hex, to); } =20 -static ssize_t output_write(struct file *file, const char __user *buf, - size_t len, loff_t *ppos) +static ssize_t output_write(struct kiocb *iocb, struct iov_iter *from) { - struct moxtet *moxtet =3D file->private_data; + struct moxtet *moxtet =3D iocb->ki_filp->private_data; + size_t len =3D iov_iter_count(from); u8 bin[TURRIS_MOX_MAX_MODULES]; u8 hex[sizeof(bin) * 2 + 1]; ssize_t res; - loff_t dummy =3D 0; int err, i; =20 if (len > 2 * moxtet->count + 1 || len < 2 * moxtet->count) return -EINVAL; =20 - res =3D simple_write_to_buffer(hex, sizeof(hex), &dummy, buf, len); + res =3D simple_copy_from_iter(hex, &iocb->ki_pos, sizeof(hex), from); if (res < 0) return res; =20 @@ -547,8 +545,8 @@ static ssize_t output_write(struct file *file, const ch= ar __user *buf, static const struct file_operations output_fops =3D { .owner =3D THIS_MODULE, .open =3D moxtet_debug_open, - .read =3D output_read, - .write =3D output_write, + .read_iter =3D output_read, + .write_iter =3D output_write, .llseek =3D no_llseek, }; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f44.google.com (mail-io1-f44.google.com [209.85.166.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 02DCE15CD6F for ; Thu, 11 Apr 2024 15:35:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849728; cv=none; b=eN/ziaNGBvoMBHqVmcg/eBR0lxN5p5AJiZ3W8EiznH5PyUedXKDomLzb1k43ofH5uKE2Vj4Mr4Sn+dna3bLpquAMs+G1sW51gWmqW7XR5ocadAZyHFMzuf8Iq/44nVl/T/Wq5ZdcviNVo24OZwLC2plsDLYCG801DktY37r43a8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849728; c=relaxed/simple; bh=ssup9qt/ICCASL1SFBzGfBbAkeGL58Pz4K18lf7AAl4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=t+rJtXXCURKXfcqb6ssNZIRLRnR/FhXp6ldIGCyUTvr/mtBzetUmkuaguS4snFtwKwWZzcqfJ0PnGYODZQolTy3PwI+HfrxZky2GcAFWseiU+fgTKMcDhmBBDGPVxF/UlMCXeIWVmoj50WO/RbEOwRAyERRiRkk0bLHd9wVZJ6o= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=YjbadL7m; arc=none smtp.client-ip=209.85.166.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="YjbadL7m" Received: by mail-io1-f44.google.com with SMTP id ca18e2360f4ac-7d6812b37a6so8931039f.0 for ; Thu, 11 Apr 2024 08:35:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849726; x=1713454526; 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=INWt24tzF3oG6vZUKJt2dqYimd+64Zr7cvlVF8UI7Kc=; b=YjbadL7m8iMzS9u4FhG3FDvY3ODh5GmQK6oFFA62nka3hD8K7op3OSGBnrPAo/5DjE Ja21mSGldcTu4dGgi7fY9cyVqREIIHT8d76Qj5TGvhbV25XClLnnMm9vZX3RwX95vhq3 G5x8QqAUdCGIXjbCSYjcWYHDOgnp3CJED6A+wJK4h8c7dIA3iVU8t05HGI/mMbNi4IR5 VZqSQJlmktBSK9kg5kMSezwbRupYUucly+sHhC9zW5D/wFDzJlQ9Ki2TAI/K9XW2Hj8S 3AFKDeW9lS4+vTTdIzKC1jZxNAF3/mUaesAuR+SV7Rhz5vm0DnoEaZRvz3VkOgM1TiLl 38yQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849726; x=1713454526; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=INWt24tzF3oG6vZUKJt2dqYimd+64Zr7cvlVF8UI7Kc=; b=f+xCGEBYY9nhsn4RGVMKEzgjxeMHZYL2p3Q494+d5ujts0PydtbV6cQ94fK2pP3BpL L3GGmGIARAicOgyaWt3B8kcwU42wJxFXnEmi4a+w4msqkvgf1s8uNeuxvtuJ2jXealez kBbsFY2hqKA0JWI1p2x/xhjM0cR0UJY9ZqewHsCZTnlbc2rRmnYVmTGpd9+XlnfLRdbp rGzsszinubWqidlF+nL6Ac1Zss36AJ2Cq8MbAuL5wnDkp0cIC0tu3jjzK//xxB3V/VG+ sFYhExkPzAEvWnY49khbqZA9yD7yKU22C6sbekORq7eKuwBClIwDaTfTn5XzAr0lBb3A IL+A== X-Gm-Message-State: AOJu0YyE3QHbSY45AaPjURiHzG5zQrfPJF4XMvepXCziatDAIXgOaQl1 Ip/Cr0t8BxTfPE1+vKC/54205ZUN1vX7hwPhPAXeZARaTolPGCbljZrnRmTJeTwBI0QTC+yKbQc O X-Google-Smtp-Source: AGHT+IFrOKStBDjxYlQEGj+QLQh2x1gKfxSfAUPBoliG+L4bqxC/ruyDwEVGkXB+AD3Ld7stgIhrow== X-Received: by 2002:a92:2912:0:b0:36a:f9aa:5757 with SMTP id l18-20020a922912000000b0036af9aa5757mr3580734ilg.2.1712849725716; Thu, 11 Apr 2024 08:35:25 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.35.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:35:25 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 134/437] drivers/regulator: convert to read/write iterators Date: Thu, 11 Apr 2024 09:14:34 -0600 Message-ID: <20240411153126.16201-135-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/regulator/core.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c index dabac9772741..92fad0d0fb9c 100644 --- a/drivers/regulator/core.c +++ b/drivers/regulator/core.c @@ -1810,11 +1810,10 @@ static void unset_regulator_supplies(struct regulat= or_dev *rdev) } =20 #ifdef CONFIG_DEBUG_FS -static ssize_t constraint_flags_read_file(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t constraint_flags_read_file(struct kiocb *iocb, + struct iov_iter *to) { - const struct regulator *regulator =3D file->private_data; + const struct regulator *regulator =3D iocb->ki_filp->private_data; const struct regulation_constraints *c =3D regulator->rdev->constraints; char *buf; ssize_t ret; @@ -1842,9 +1841,8 @@ static ssize_t constraint_flags_read_file(struct file= *file, c->pull_down, c->over_current_protection); =20 - ret =3D simple_read_from_buffer(user_buf, count, ppos, buf, ret); + ret =3D simple_copy_to_iter(buf, &iocb->ki_pos, ret, to); kfree(buf); - return ret; } =20 @@ -1853,7 +1851,7 @@ static ssize_t constraint_flags_read_file(struct file= *file, static const struct file_operations constraint_flags_fops =3D { #ifdef CONFIG_DEBUG_FS .open =3D simple_open, - .read =3D constraint_flags_read_file, + .read_iter =3D constraint_flags_read_file, .llseek =3D default_llseek, #endif }; --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-io1-f47.google.com (mail-io1-f47.google.com [209.85.166.47]) (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 BAC5E15CD7E for ; Thu, 11 Apr 2024 15:35:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849730; cv=none; b=kcd5l8F7WQ9pI6ekPRmcLIo0gZW0W46PlLxNh0jM4mIm/6FrG/Ddkf54opWdtaU+gm4UDn5uwA1qhCfVldUoMFBBP7CI1WBdcG/6eo5zdB5v6FgrHwFjIkSyR++HTjYsg5EBW2qlEG2YltQuqdFXnKrLpzOyVJp3sfYTM7dP8gc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849730; c=relaxed/simple; bh=hLULojXi2IM52qf7CXXJXO6GRH4vl6JLQfzNiql+XCo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=iKdKSvj2IRw1fnXfykfBpjOM9R8yUWSn9x/LnYFkJnAyC8trF6lSRK6i+b7RzYeKc2GxuTmVrrkLrT9P+MzSJOBpsZxLj9U184EHoDIn6Q8UtZj8+xfqJowYp8vANan8/3pvfGSF4MlCKYFgeMWu/upeWYf2rya9A+R4uSaZ6XA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=PyFaYsFw; arc=none smtp.client-ip=209.85.166.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="PyFaYsFw" Received: by mail-io1-f47.google.com with SMTP id ca18e2360f4ac-7d6112ba6baso58049739f.1 for ; Thu, 11 Apr 2024 08:35:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849727; x=1713454527; 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=mUkAf1+OBf+yGe/VzApEZjfPh2gbVfNKY1ge8fZZPGY=; b=PyFaYsFwC/gMX/g9Ku3LRgPB4S1suRZ+8LmTElb/Ngne0DCY0XiIrlbt1QZd/qWMNU LYA2/z+RSPOkwVMmFfoE4f+UDltgx8V8AZyjabNxbfuJn8RMWmqsuCFne6hRhMcOF3nc oAIVQ/9LpnV18XkXk/dckAXeAJ4wEXd3pyi5eiKEYkxqgFyufTT2qdm2j7XHQVTCEElP aZTBbN21rzrwJTg/twc4agvtBZajtJqubfzu1f8350xPA2wb1hKiTzT9BZMAgk6kYuGF dsl+WB27/kQouuLxbUwL08GPgtRxUdTOFhnuLoqdjAp1FDwLin7n2AQ+BCl2jZjr3nrY o4Zg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849727; x=1713454527; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=mUkAf1+OBf+yGe/VzApEZjfPh2gbVfNKY1ge8fZZPGY=; b=NfzhoTbBZ0xyk16Y2S3Rv4aNwGrmbOAACLRW7jrmEUmGe4oQKmHfgHITlDO7yRKKwA I0vIXMRQsQ6a6eqD3hPUqDpHIC96sMReZ45L/dF2Kb+h8NvPgoGn6FPDQMjY9SV+JObQ HxLJglzxUWJky/qlS2kjn0yH9tzcdwIMIYP1Hk74LkNJZLxFgcJMTqZOAwH3OVUjm0xZ Ir44dbWoxJOJ36DL6Xp1UytY5QfScFrbiey7ep4cowvYjU96iLK9VmHGIHdX5WdcK+2h DcwkU8BAT3b4o5hjApb58JOmjGR+xBHnB/ewigW7q9bv89GjeD8bxoMpFr0xvaAFvf1N dhNw== X-Gm-Message-State: AOJu0YzE8G2eo1FZSQEK31YmVHZ2ZUW/sMAXImmcYGK3orbB1n0gu0GR ib3+upNjlyo4bLxROZq5lt0uzfH5jWrQEUbEd/t4iV4oerbEV0GlCtMU3DnVuAM/kJ7Tik6umRJ p X-Google-Smtp-Source: AGHT+IHdSBGEx9c+KGSUWdxyv/iVHbgbODx2N7GJSLklX14JaW0lw2/k+U2YQF2EmyIiA9bprZ6/XQ== X-Received: by 2002:a05:6602:38d:b0:7d6:513b:254 with SMTP id f13-20020a056602038d00b007d6513b0254mr181666iov.2.1712849727634; Thu, 11 Apr 2024 08:35:27 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.35.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:35:26 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 135/437] fs/notify: convert to read/write iterators Date: Thu, 11 Apr 2024 09:14:35 -0600 Message-ID: <20240411153126.16201-136-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- fs/notify/fanotify/fanotify_user.c | 6 ++++-- fs/notify/inotify/inotify_user.c | 3 ++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/fs/notify/fanotify/fanotify_user.c b/fs/notify/fanotify/fanoti= fy_user.c index fbdc63cc10d9..52b97f6c2285 100644 --- a/fs/notify/fanotify/fanotify_user.c +++ b/fs/notify/fanotify/fanotify_user.c @@ -868,6 +868,7 @@ static ssize_t fanotify_read(struct file *file, char __= user *buf, ret =3D buf - start; return ret; } +FOPS_READ_ITER_HELPER(fanotify_read); =20 static ssize_t fanotify_write(struct file *file, const char __user *buf, s= ize_t count, loff_t *pos) { @@ -900,6 +901,7 @@ static ssize_t fanotify_write(struct file *file, const = char __user *buf, size_t =20 return count; } +FOPS_WRITE_ITER_HELPER(fanotify_write); =20 static int fanotify_release(struct inode *ignored, struct file *file) { @@ -984,8 +986,8 @@ static long fanotify_ioctl(struct file *file, unsigned = int cmd, unsigned long ar static const struct file_operations fanotify_fops =3D { .show_fdinfo =3D fanotify_show_fdinfo, .poll =3D fanotify_poll, - .read =3D fanotify_read, - .write =3D fanotify_write, + .read_iter =3D fanotify_read_iter, + .write_iter =3D fanotify_write_iter, .fasync =3D NULL, .release =3D fanotify_release, .unlocked_ioctl =3D fanotify_ioctl, diff --git a/fs/notify/inotify/inotify_user.c b/fs/notify/inotify/inotify_u= ser.c index 85d8fdd55329..bdc424a79e3c 100644 --- a/fs/notify/inotify/inotify_user.c +++ b/fs/notify/inotify/inotify_user.c @@ -297,6 +297,7 @@ static ssize_t inotify_read(struct file *file, char __u= ser *buf, ret =3D buf - start; return ret; } +FOPS_READ_ITER_HELPER(inotify_read); =20 static int inotify_release(struct inode *ignored, struct file *file) { @@ -357,7 +358,7 @@ static long inotify_ioctl(struct file *file, unsigned i= nt cmd, static const struct file_operations inotify_fops =3D { .show_fdinfo =3D inotify_show_fdinfo, .poll =3D inotify_poll, - .read =3D inotify_read, + .read_iter =3D inotify_read_iter, .fasync =3D fsnotify_fasync, .release =3D inotify_release, .unlocked_ioctl =3D inotify_ioctl, --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-ot1-f43.google.com (mail-ot1-f43.google.com [209.85.210.43]) (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 D3BF5180A83 for ; Thu, 11 Apr 2024 15:35:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849752; cv=none; b=eZwxsWuhVj2IJ88aULbZF+mupPV+5m8wsqIO2jFDDkuI0RKGQXdTk5TVWXwDawk9yfeWyZjv9jW6+2bnR7AtnsBs/s/qbX7eFeeKF0zt/1yizEwBEYsx+T4vGk03QmxunPq5q4CKwDuB51JuOoI0gNTY9S+1JcJI2Iw44+Ngkno= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849752; c=relaxed/simple; bh=89HQQocie0vw01Sr+dLWuwYgc/vjWHUmHHqlbkiBAkU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=iV+MOxo49grq41BJXuDOtXMtYJtC26rss2oARR9+ygdTg2pGyO2Vr/sd2AXIykaq5elGlA0eG67zw8yFbzHoZyGBPBWVGR08UtZ2HJmbXJ3xgYjFxGt1qyUQ0YuQ1eKU0a61eDBCRgQVoUqWQ87IsOarkibQk/k6FVrveU77PP0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=Ehr5vuED; arc=none smtp.client-ip=209.85.210.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="Ehr5vuED" Received: by mail-ot1-f43.google.com with SMTP id 46e09a7af769-6ea0a6856d7so1700556a34.1 for ; Thu, 11 Apr 2024 08:35:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849749; x=1713454549; 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=GkPTmdYa0NVAfZgA4fYak80NgcdUuBNPKt68PwI0710=; b=Ehr5vuEDh5bXewJUoE3XJKxBZVXGwtw+Z4aRxBoUCCbwXHRK/bjG5BKE6gau2usQck 3eAfk5d1sTXUA+D8BCare7V1ZplTL9xMWo/52MzLr6ud4oRnFhWB7AAfHR+p1Ngl/Sr4 O6B9mHLvovGbA/AuUI8KzDS4K9Pl2odTNndsV1mER2JMNyX/cKoZgSWsxRCqXyhDDjZP +Fwyn8lN8Wxh3T/ink1VmNSArEvT02TY89Ru9mxw3pB9n5Xx7UbzWQvAI83zAgEf5yzy bfPuIKhUazZAShby44d8S+UO0B/dQgaKu4pS95Zt3hDl9xZcC1xCwg8PchwUb1cfwcBx xOxQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849749; x=1713454549; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=GkPTmdYa0NVAfZgA4fYak80NgcdUuBNPKt68PwI0710=; b=qv5wKN5qyf0UaoqpEGe4/dR5d93qsPV75ZIrDBWdOmNo1DtveM9gDOLj9ceJwJyFmq b0u8RYHnyhbGLL5KodJKwh6zPKzEoz9R0UUH5hKRZ1muAub9krerMRIbehjeohUJlXno zBcmrRO2mDboXnYD+3bFwAXsIjlvCYbfbhCtRmob/OMIwwReueXrEKd7qXdy3srHk/LS gZMm1m+Cnt2Gbxo9UeD+diS3mgkzVYxE9yj8oUodJkMGYjpXii7XtUpX4x6P9XlFXGuC KfD443t05k2SocytwSoW1VOb9G1lphM/+FiR0ZYFLzYQopoGktNm+sJ0CsUF96Zhaemr MIIQ== X-Gm-Message-State: AOJu0YyHwyR7eSQiPsN5AoS3+oiKxpPk39T99AIjZD7TDuL504Py/4Yx VceTv7DOke9ikRuvmgwwSS+QwVMev2FOAbd/bEEcBen63TpOn1DnUBgEk/PWk5Ipps4pmAfpTmU e X-Google-Smtp-Source: AGHT+IG8214VbyUlYg7XKe57Uj75uMdl4GEfTYEL2hYMaipL5RndjMlcSeUPIGaXXOp2+9FTDAxYdg== X-Received: by 2002:a05:6602:38d:b0:7d6:513b:254 with SMTP id f13-20020a056602038d00b007d6513b0254mr181783iov.2.1712849729470; Thu, 11 Apr 2024 08:35:29 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.35.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:35:27 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 136/437] drm: switch drm_read() to be iterator based Date: Thu, 11 Apr 2024 09:14:36 -0600 Message-ID: <20240411153126.16201-137-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" First step of converting the GPU drivers to using read/write iterators, convert the common file read helper to be iter based. Signed-off-by: Jens Axboe --- drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 2 +- drivers/gpu/drm/drm_file.c | 22 ++++++++++------------ drivers/gpu/drm/gma500/psb_drv.c | 2 +- drivers/gpu/drm/i915/i915_driver.c | 2 +- drivers/gpu/drm/nouveau/nouveau_drm.c | 2 +- drivers/gpu/drm/radeon/radeon_drv.c | 2 +- drivers/gpu/drm/tegra/drm.c | 2 +- drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | 2 +- drivers/gpu/drm/xe/xe_device.c | 2 +- include/drm/drm_accel.h | 2 +- include/drm/drm_file.h | 3 +-- include/drm/drm_gem.h | 2 +- include/drm/drm_gem_dma_helper.h | 2 +- 13 files changed, 22 insertions(+), 25 deletions(-) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c b/drivers/gpu/drm/amd/= amdgpu/amdgpu_drv.c index 80b9642f2bc4..d2369e852702 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c @@ -2863,7 +2863,7 @@ static const struct file_operations amdgpu_driver_kms= _fops =3D { .unlocked_ioctl =3D amdgpu_drm_ioctl, .mmap =3D drm_gem_mmap, .poll =3D drm_poll, - .read =3D drm_read, + .read_iter =3D drm_read, #ifdef CONFIG_COMPAT .compat_ioctl =3D amdgpu_kms_compat_ioctl, #endif diff --git a/drivers/gpu/drm/drm_file.c b/drivers/gpu/drm/drm_file.c index 638ffa4444f5..c5965b5a1afc 100644 --- a/drivers/gpu/drm/drm_file.c +++ b/drivers/gpu/drm/drm_file.c @@ -110,7 +110,7 @@ bool drm_dev_needs_global_mutex(struct drm_device *dev) * .unlocked_ioctl =3D drm_ioctl, * .compat_ioctl =3D drm_compat_ioctl, // NULL if CONFIG_COMPA= T=3Dn * .poll =3D drm_poll, - * .read =3D drm_read, + * .read_iter =3D drm_read, * .llseek =3D no_llseek, * .mmap =3D drm_gem_mmap, * }; @@ -515,18 +515,16 @@ EXPORT_SYMBOL(drm_release_noglobal); =20 /** * drm_read - read method for DRM file - * @filp: file pointer - * @buffer: userspace destination pointer for the read - * @count: count in bytes to read - * @offset: offset to read + * @iocb: metadata for IO + * @to: userspace destination pointer for the read * * This function must be used by drivers as their &file_operations.read * method if they use DRM events for asynchronous signalling to userspace. * Since events are used by the KMS API for vblank and page flip completio= n this * means all modern display drivers must use it. * - * @offset is ignored, DRM events are read like a pipe. Polling support is - * provided by drm_poll(). + * offset in @iocb is ignored, DRM events are read like a pipe. Polling su= pport + * is provided by drm_poll(). * * This function will only ever read a full event. Therefore userspace must * supply a big enough buffer to fit any event to ensure forward progress.= Since @@ -538,11 +536,11 @@ EXPORT_SYMBOL(drm_release_noglobal); * Number of bytes read (always aligned to full events, and can be 0) or a * negative error code on failure. */ -ssize_t drm_read(struct file *filp, char __user *buffer, - size_t count, loff_t *offset) +ssize_t drm_read(struct kiocb *iocb, struct iov_iter *to) { - struct drm_file *file_priv =3D filp->private_data; + struct drm_file *file_priv =3D iocb->ki_filp->private_data; struct drm_device *dev =3D file_priv->minor->dev; + size_t count =3D iov_iter_count(to); ssize_t ret; =20 ret =3D mutex_lock_interruptible(&file_priv->event_read_lock); @@ -565,7 +563,7 @@ ssize_t drm_read(struct file *filp, char __user *buffer, if (ret) break; =20 - if (filp->f_flags & O_NONBLOCK) { + if (iocb->ki_filp->f_flags & O_NONBLOCK) { ret =3D -EAGAIN; break; } @@ -591,7 +589,7 @@ ssize_t drm_read(struct file *filp, char __user *buffer, break; } =20 - if (copy_to_user(buffer + ret, e->event, length)) { + if (!copy_to_iter_full(e->event, length, to)) { if (ret =3D=3D 0) ret =3D -EFAULT; goto put_back_event; diff --git a/drivers/gpu/drm/gma500/psb_drv.c b/drivers/gpu/drm/gma500/psb_= drv.c index 8b64f61ffaf9..7489d64bea98 100644 --- a/drivers/gpu/drm/gma500/psb_drv.c +++ b/drivers/gpu/drm/gma500/psb_drv.c @@ -497,7 +497,7 @@ static const struct file_operations psb_gem_fops =3D { .compat_ioctl =3D drm_compat_ioctl, .mmap =3D drm_gem_mmap, .poll =3D drm_poll, - .read =3D drm_read, + .read_iter =3D drm_read, }; =20 static const struct drm_driver driver =3D { diff --git a/drivers/gpu/drm/i915/i915_driver.c b/drivers/gpu/drm/i915/i915= _driver.c index 4b9233c07a22..a8328ee685e8 100644 --- a/drivers/gpu/drm/i915/i915_driver.c +++ b/drivers/gpu/drm/i915/i915_driver.c @@ -1729,7 +1729,7 @@ static const struct file_operations i915_driver_fops = =3D { .unlocked_ioctl =3D drm_ioctl, .mmap =3D i915_gem_mmap, .poll =3D drm_poll, - .read =3D drm_read, + .read_iter =3D drm_read, .compat_ioctl =3D i915_ioc32_compat_ioctl, .llseek =3D noop_llseek, #ifdef CONFIG_PROC_FS diff --git a/drivers/gpu/drm/nouveau/nouveau_drm.c b/drivers/gpu/drm/nouvea= u/nouveau_drm.c index a947e1d5f309..6b626d62781c 100644 --- a/drivers/gpu/drm/nouveau/nouveau_drm.c +++ b/drivers/gpu/drm/nouveau/nouveau_drm.c @@ -1269,7 +1269,7 @@ nouveau_driver_fops =3D { .unlocked_ioctl =3D nouveau_drm_ioctl, .mmap =3D drm_gem_mmap, .poll =3D drm_poll, - .read =3D drm_read, + .read_iter =3D drm_read, #if defined(CONFIG_COMPAT) .compat_ioctl =3D nouveau_compat_ioctl, #endif diff --git a/drivers/gpu/drm/radeon/radeon_drv.c b/drivers/gpu/drm/radeon/r= adeon_drv.c index 7bf08164140e..7011ef3475a7 100644 --- a/drivers/gpu/drm/radeon/radeon_drv.c +++ b/drivers/gpu/drm/radeon/radeon_drv.c @@ -516,7 +516,7 @@ static const struct file_operations radeon_driver_kms_f= ops =3D { .unlocked_ioctl =3D radeon_drm_ioctl, .mmap =3D drm_gem_mmap, .poll =3D drm_poll, - .read =3D drm_read, + .read_iter =3D drm_read, #ifdef CONFIG_COMPAT .compat_ioctl =3D radeon_kms_compat_ioctl, #endif diff --git a/drivers/gpu/drm/tegra/drm.c b/drivers/gpu/drm/tegra/drm.c index 03d1c76aec2d..f455aa8339a3 100644 --- a/drivers/gpu/drm/tegra/drm.c +++ b/drivers/gpu/drm/tegra/drm.c @@ -798,7 +798,7 @@ static const struct file_operations tegra_drm_fops =3D { .unlocked_ioctl =3D drm_ioctl, .mmap =3D tegra_drm_mmap, .poll =3D drm_poll, - .read =3D drm_read, + .read_iter =3D drm_read, .compat_ioctl =3D drm_compat_ioctl, .llseek =3D noop_llseek, }; diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c b/drivers/gpu/drm/vmwgfx/v= mwgfx_drv.c index c7d90f96d16a..fb68d49cff51 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c @@ -1605,7 +1605,7 @@ static const struct file_operations vmwgfx_driver_fop= s =3D { .unlocked_ioctl =3D vmw_unlocked_ioctl, .mmap =3D drm_gem_mmap, .poll =3D drm_poll, - .read =3D drm_read, + .read_iter =3D drm_read, #if defined(CONFIG_COMPAT) .compat_ioctl =3D vmw_compat_ioctl, #endif diff --git a/drivers/gpu/drm/xe/xe_device.c b/drivers/gpu/drm/xe/xe_device.c index d32ff3857e65..98ae007febe9 100644 --- a/drivers/gpu/drm/xe/xe_device.c +++ b/drivers/gpu/drm/xe/xe_device.c @@ -143,7 +143,7 @@ static const struct file_operations xe_driver_fops =3D { .unlocked_ioctl =3D drm_ioctl, .mmap =3D drm_gem_mmap, .poll =3D drm_poll, - .read =3D drm_read, + .read_iter =3D drm_read, .compat_ioctl =3D drm_compat_ioctl, .llseek =3D noop_llseek, #ifdef CONFIG_PROC_FS diff --git a/include/drm/drm_accel.h b/include/drm/drm_accel.h index f4d3784b1dce..c757e0b1db46 100644 --- a/include/drm/drm_accel.h +++ b/include/drm/drm_accel.h @@ -26,7 +26,7 @@ .unlocked_ioctl =3D drm_ioctl,\ .compat_ioctl =3D drm_compat_ioctl,\ .poll =3D drm_poll,\ - .read =3D drm_read,\ + .read_iter =3D drm_read,\ .llseek =3D noop_llseek, \ .mmap =3D drm_gem_mmap =20 diff --git a/include/drm/drm_file.h b/include/drm/drm_file.h index ab230d3af138..19917ff0090c 100644 --- a/include/drm/drm_file.h +++ b/include/drm/drm_file.h @@ -436,8 +436,7 @@ void drm_file_update_pid(struct drm_file *); =20 int drm_open(struct inode *inode, struct file *filp); int drm_open_helper(struct file *filp, struct drm_minor *minor); -ssize_t drm_read(struct file *filp, char __user *buffer, - size_t count, loff_t *offset); +ssize_t drm_read(struct kiocb *iocb, struct iov_iter *to); int drm_release(struct inode *inode, struct file *filp); int drm_release_noglobal(struct inode *inode, struct file *filp); __poll_t drm_poll(struct file *filp, struct poll_table_struct *wait); diff --git a/include/drm/drm_gem.h b/include/drm/drm_gem.h index 2ebec3984cd4..29fe86ce8266 100644 --- a/include/drm/drm_gem.h +++ b/include/drm/drm_gem.h @@ -445,7 +445,7 @@ struct drm_gem_object { .unlocked_ioctl =3D drm_ioctl,\ .compat_ioctl =3D drm_compat_ioctl,\ .poll =3D drm_poll,\ - .read =3D drm_read,\ + .read_iter =3D drm_read,\ .llseek =3D noop_llseek,\ .mmap =3D drm_gem_mmap =20 diff --git a/include/drm/drm_gem_dma_helper.h b/include/drm/drm_gem_dma_hel= per.h index a827bde494f6..907acd2b89fa 100644 --- a/include/drm/drm_gem_dma_helper.h +++ b/include/drm/drm_gem_dma_helper.h @@ -264,7 +264,7 @@ unsigned long drm_gem_dma_get_unmapped_area(struct file= *filp, .unlocked_ioctl =3D drm_ioctl,\ .compat_ioctl =3D drm_compat_ioctl,\ .poll =3D drm_poll,\ - .read =3D drm_read,\ + .read_iter =3D drm_read,\ .llseek =3D noop_llseek,\ .mmap =3D drm_gem_mmap,\ DRM_GEM_DMA_UNMAPPED_AREA_FOPS \ --=20 2.43.0 From nobody Sat Feb 7 07:48:37 2026 Received: from mail-oo1-f51.google.com (mail-oo1-f51.google.com [209.85.161.51]) (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 371B5184127 for ; Thu, 11 Apr 2024 15:35:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.161.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849754; cv=none; b=nP3pRx4HGtEg7PK43LRVMmIduBuIquUIa+HeSPEJv2NHZDwbk84AdI/xzDYc3Fm/SCKlTRsYo+A0BOdKvutAH652eX14IZvExHEb7hweNVrdYtwRcI/Tkt9axLAv6ZPPm5ujgPNOGlKOVv0PRaUCJ/DtkxhxTXJ+SWM9uLD6Q+g= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849754; c=relaxed/simple; bh=xAlgkDD4gE89AmYLOb110oYhrpKLrKaxG4MtCG/wHZc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=luCKJ960DfrJfcBPBht4XRxRblLZIqJNYGluYBzQqTH6fKjDMGt8Q6V8pDcpFV7CzLNmRG69gQLSOONfdm8s/aEJcL9s8ka5T3yci73dR0Qb9xUYsy1tP9uy6XQ+5dshB3MP86xpkoQDqRrfxpmccJhnEmKp/0DXhXhW20Q0U/k= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=j3avj2Wo; arc=none smtp.client-ip=209.85.161.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="j3avj2Wo" Received: by mail-oo1-f51.google.com with SMTP id 006d021491bc7-5aa16bf49f6so294506eaf.1 for ; Thu, 11 Apr 2024 08:35:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849751; x=1713454551; 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=xGTWiE8J7R1+2J2uKc3Kdb5J9vY+Cg6Yi1ItbsK2z1I=; b=j3avj2WoTHd7pNPEbQg6V0IZuP9hwNlqs77+1iUj3CYGh/4mwl7NmEG2CCEIaxKvKC oCA58hxsSYYwKV5J8Du3TJJnBn70Z7P0iONtUNlnygR3prLi2OzD4O4TsWSh1fbv1OVp Zeq3DIzzDtjsd7+CZ4Q7Cic9Zh82OjA8UfZUK8/s/h9MYdng99iQ1VxLMBcKpRLZyxYk kWtbDWqHtxEx4AhvfLDy7NWaY+8ASeGFSBSX+403OG00cd+nbo8wTZmvETRzOzxgyDho 3qoVSex2xhJZyQCg438bf4YoVBfNwWKHBDambrlmGX9bMElvZjfi1mrofJ+G0nssHsRv 7dMA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849751; x=1713454551; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=xGTWiE8J7R1+2J2uKc3Kdb5J9vY+Cg6Yi1ItbsK2z1I=; b=Lk/GHdAKJ9MJDEl0DhndIV743Ol+IxgajcHgRSm6RDXkK6x3xRMPdpe6di4IpYYcPD jpPrJ6yKKNDFSdi592ch2o9Zzrk1xWNsU5C2QKpvPz7AnecxUW4Eav1FnfRc/67C+HeE XMxhZHW3F5qTeGpr1hbayQQqvQoW0dN/wl8g5xn+OEgYIdIlDQtvxSKQYvHOwSia4CUw fjWaW3bMV2yDb3696EtObJwYhLXf8sJOyaim0rWnYUivSECBUdAwSuzo4Mori7TsptEe zyI0cJEZXp362/GaskDeU37gSaAmTLyhWAw+ITN9orr66tAOTfxasp5gxVR+qp7FQj0K QOQQ== X-Gm-Message-State: AOJu0Yw3aNdT7Os3hUk/1ci2PkdauIGcE28ctyxNwmqCzpAK75OkQEQ5 KDhTbAdXLpp8j7veE/fPIy8Ef47xVn4tLS37aMp1EAFZK3qC3mCmuSGfmLOvQe4XnZ7UGSBpYDr / X-Google-Smtp-Source: AGHT+IHKkS7fK6wyTyfU+Oktm9Gmn1cPNW5FwEAtv2gnpPHaGwq87cLkY6kD5VY6YnBgDGkwHnwglA== X-Received: by 2002:a6b:f312:0:b0:7d5:de23:13a9 with SMTP id m18-20020a6bf312000000b007d5de2313a9mr159667ioh.1.1712849730170; Thu, 11 Apr 2024 08:35:30 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.35.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:35:29 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 137/437] drm: convert debugfs helpers to be read/write iterator based Date: Thu, 11 Apr 2024 09:14:37 -0600 Message-ID: <20240411153126.16201-138-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/gpu/drm/drm_debugfs.c | 28 ++++++++++++++-------------- drivers/gpu/drm/drm_debugfs_crc.c | 26 +++++++++++++------------- 2 files changed, 27 insertions(+), 27 deletions(-) diff --git a/drivers/gpu/drm/drm_debugfs.c b/drivers/gpu/drm/drm_debugfs.c index 08fcefd804bc..e7d7cbd930ca 100644 --- a/drivers/gpu/drm/drm_debugfs.c +++ b/drivers/gpu/drm/drm_debugfs.c @@ -171,7 +171,7 @@ static int drm_debugfs_entry_open(struct inode *inode, = struct file *file) static const struct file_operations drm_debugfs_entry_fops =3D { .owner =3D THIS_MODULE, .open =3D drm_debugfs_entry_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D single_release, }; @@ -179,7 +179,7 @@ static const struct file_operations drm_debugfs_entry_f= ops =3D { static const struct file_operations drm_debugfs_fops =3D { .owner =3D THIS_MODULE, .open =3D drm_debugfs_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D single_release, }; @@ -403,17 +403,17 @@ static int connector_open(struct inode *inode, struct= file *file) return single_open(file, connector_show, dev); } =20 -static ssize_t connector_write(struct file *file, const char __user *ubuf, - size_t len, loff_t *offp) +static ssize_t connector_write(struct kiocb *iocb, struct iov_iter *from) { - struct seq_file *m =3D file->private_data; + struct seq_file *m =3D iocb->ki_filp->private_data; struct drm_connector *connector =3D m->private; + size_t len =3D iov_iter_count(from); char buf[12]; =20 if (len > sizeof(buf) - 1) return -EINVAL; =20 - if (copy_from_user(buf, ubuf, len)) + if (!copy_from_iter_full(buf, len, from)) return -EFAULT; =20 buf[len] =3D '\0'; @@ -444,15 +444,15 @@ static int edid_open(struct inode *inode, struct file= *file) return single_open(file, edid_show, dev); } =20 -static ssize_t edid_write(struct file *file, const char __user *ubuf, - size_t len, loff_t *offp) +static ssize_t edid_write(struct kiocb *iocb, struct iov_iter *from) { - struct seq_file *m =3D file->private_data; + struct seq_file *m =3D iocb->ki_filp->private_data; struct drm_connector *connector =3D m->private; + size_t len =3D iov_iter_count(from); char *buf; int ret; =20 - buf =3D memdup_user(ubuf, len); + buf =3D iterdup(from, len); if (IS_ERR(buf)) return PTR_ERR(buf); =20 @@ -504,20 +504,20 @@ DEFINE_SHOW_ATTRIBUTE(output_bpc); static const struct file_operations drm_edid_fops =3D { .owner =3D THIS_MODULE, .open =3D edid_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D single_release, - .write =3D edid_write + .write_iter =3D edid_write }; =20 =20 static const struct file_operations drm_connector_fops =3D { .owner =3D THIS_MODULE, .open =3D connector_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D single_release, - .write =3D connector_write + .write_iter =3D connector_write }; =20 void drm_debugfs_connector_add(struct drm_connector *connector) diff --git a/drivers/gpu/drm/drm_debugfs_crc.c b/drivers/gpu/drm/drm_debugf= s_crc.c index bbc3bc4ba844..85741f3eafee 100644 --- a/drivers/gpu/drm/drm_debugfs_crc.c +++ b/drivers/gpu/drm/drm_debugfs_crc.c @@ -117,12 +117,12 @@ static int crc_control_open(struct inode *inode, stru= ct file *file) return single_open(file, crc_control_show, crtc); } =20 -static ssize_t crc_control_write(struct file *file, const char __user *ubu= f, - size_t len, loff_t *offp) +static ssize_t crc_control_write(struct kiocb *iocb, struct iov_iter *from) { - struct seq_file *m =3D file->private_data; + struct seq_file *m =3D iocb->ki_filp->private_data; struct drm_crtc *crtc =3D m->private; struct drm_crtc_crc *crc =3D &crtc->crc; + size_t len =3D iov_iter_count(from); char *source; size_t values_cnt; int ret; @@ -136,7 +136,7 @@ static ssize_t crc_control_write(struct file *file, con= st char __user *ubuf, return -E2BIG; } =20 - source =3D memdup_user_nul(ubuf, len); + source =3D iterdup_nul(from, len); if (IS_ERR(source)) return PTR_ERR(source); =20 @@ -162,17 +162,17 @@ static ssize_t crc_control_write(struct file *file, c= onst char __user *ubuf, =20 spin_unlock_irq(&crc->lock); =20 - *offp +=3D len; + iocb->ki_pos +=3D len; return len; } =20 static const struct file_operations drm_crtc_crc_control_fops =3D { .owner =3D THIS_MODULE, .open =3D crc_control_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D single_release, - .write =3D crc_control_write + .write_iter =3D crc_control_write, }; =20 static int crtc_crc_data_count(struct drm_crtc_crc *crc) @@ -281,11 +281,11 @@ static int crtc_crc_release(struct inode *inode, stru= ct file *filep) #define LINE_LEN(values_cnt) (10 + 11 * values_cnt + 1 + 1) #define MAX_LINE_LEN (LINE_LEN(DRM_MAX_CRC_NR)) =20 -static ssize_t crtc_crc_read(struct file *filep, char __user *user_buf, - size_t count, loff_t *pos) +static ssize_t crtc_crc_read(struct kiocb *iocb, struct iov_iter *to) { - struct drm_crtc *crtc =3D filep->f_inode->i_private; + struct drm_crtc *crtc =3D iocb->ki_filp->f_inode->i_private; struct drm_crtc_crc *crc =3D &crtc->crc; + size_t count =3D iov_iter_count(to); struct drm_crtc_crc_entry *entry; char buf[MAX_LINE_LEN]; int ret, i; @@ -299,7 +299,7 @@ static ssize_t crtc_crc_read(struct file *filep, char _= _user *user_buf, =20 /* Nothing to read? */ while (crtc_crc_data_count(crc) =3D=3D 0) { - if (filep->f_flags & O_NONBLOCK) { + if (iocb->ki_filp->f_flags & O_NONBLOCK) { spin_unlock_irq(&crc->lock); return -EAGAIN; } @@ -335,7 +335,7 @@ static ssize_t crtc_crc_read(struct file *filep, char _= _user *user_buf, sprintf(buf + 10 + i * 11, " 0x%08x", entry->crcs[i]); sprintf(buf + 10 + crc->values_cnt * 11, "\n"); =20 - if (copy_to_user(user_buf, buf, LINE_LEN(crc->values_cnt))) + if (!copy_to_iter_full(buf, LINE_LEN(crc->values_cnt), to)) return -EFAULT; =20 return LINE_LEN(crc->values_cnt); @@ -360,7 +360,7 @@ static __poll_t crtc_crc_poll(struct file *file, poll_t= able *wait) static const struct file_operations drm_crtc_crc_data_fops =3D { .owner =3D THIS_MODULE, .open =3D crtc_crc_open, - .read =3D crtc_crc_read, + .read_iter =3D crtc_crc_read, .poll =3D crtc_crc_poll, .release =3D crtc_crc_release, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f43.google.com (mail-io1-f43.google.com [209.85.166.43]) (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 BC2D915E21B for ; Thu, 11 Apr 2024 15:35:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849735; cv=none; b=ET34/99iG954WUPqE/oBA7oU/Ym4cpeU+C5Ucm6GsLiaBl46A2jTn6Yb5voHZfUBu6ORFtbbUKmcZwz5HKVSt0Ou1nAmORgOeUX1EAf9dmRzveO+kHWuGLyXKw72DzrfO+XByoHyps5Kox4okKu9X1SgyqPR9heCZVzLoLaUhE4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849735; c=relaxed/simple; bh=gIlHkHIf61Gez+c2sdXbASHWqOSZOEG/tbFoAfwxOpE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=kAKkBRoTuzMEeXzV18fmjVJVQryERuufOjinBWAWw7xzyrQ/crbQ3dJWSz5hVD/mqW6BQj/P4O0nwQRqh/0oyYRwB8uALRlhDuXMDB6VdmkNpO3erOd68o0mGycMZabcgAl3z+uZsHZPEXtY3Ytfm4V1QQJXKyVwBeP+jTfJVGk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=KSvwOP9W; arc=none smtp.client-ip=209.85.166.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="KSvwOP9W" Received: by mail-io1-f43.google.com with SMTP id ca18e2360f4ac-7d67d1073easo9778239f.0 for ; Thu, 11 Apr 2024 08:35:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849731; x=1713454531; 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=ZRmIr7Avw9RuGzUP4Y4BTwANpRPwBbbiIM0lKveuv/U=; b=KSvwOP9WnimDsss4Vqdd6qm2KSD/F7OW2KCMz6lxNUQDqJ2qi/jxSZhzaArzpwu5WP HyVJSxa6SeRahjMpl06enf7vUu43kEvAkIyfYXMU7j6UB4+o+hKXzJ1/A0rKW/6qe2YU H8kCX0EyCJzUbzi0xwcwRlh0k8g2F4J4ZdXiEpDgSMtiRLVRjsWOxxGTwh1MW7cDg7Yt zslO8wP4T1PgkFtDvFehckeMFSEf65xm3bK1Sb43DjX3Ws3alRVnBodZUPQHgU3/6NRl 06AgA2472yduci4EDn5cDdyJoPkcfQ4hCWMCfFYMKyrLfA3DmHE6RbCk8PCOQc0EaUeH Y3qA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849731; x=1713454531; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ZRmIr7Avw9RuGzUP4Y4BTwANpRPwBbbiIM0lKveuv/U=; b=qhHA2pjjawkecdeLSYItnCX8UcBSxNF1NmZtZankSYejXOhJv8XxAbmOaU8E2h0j44 gAExMgXt/mCcNJPbZX7U8UvBwvt8bjPUmF4Ko7wKBZPbkJeUQUHLpSV/4e6P9O17Yanl 63lu4My0Qh5LLPdt3XQklOoZGgJ2WAu7Sht13UnC7Vq+3Duao16G8V58yESihr7E/8r6 fnu6Uef+7ROWkpjOLb+qUlVRwJmLz2YSsMWx1lGtb2adFKMUPYTZAK1pL2r2J8/EAqlb DexlKJeTB00qDB0lMpL36t/9k3y1DSooh9gXbf30U75TAnL12Yn+wm8JrkRsdzNldaDo D44Q== X-Gm-Message-State: AOJu0YyDjyCs+dZHyrJoOrHBxrcZGkKY2nDkzkZjTIDMI2/YF5ehwAYt KoEWOg8kARJoKcvaI2V+KIybOSxhw5+FdvWxAoutM/odoXeTRfZNH5oQo6G6Y6Fqymsb8Ir8Wj5 X X-Google-Smtp-Source: AGHT+IEd8+9TyzkO0VQDRsEXi2i7drOC29DRylhM7Oed4nEzkPukvXGRdIDGE/p1lc7R6G32JP54cA== X-Received: by 2002:a6b:7b05:0:b0:7d6:60dc:bc8e with SMTP id l5-20020a6b7b05000000b007d660dcbc8emr192372iop.1.1712849731018; Thu, 11 Apr 2024 08:35:31 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.35.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:35:30 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 138/437] drm/i915: convert to read/write iterators Date: Thu, 11 Apr 2024 09:14:38 -0600 Message-ID: <20240411153126.16201-139-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- .../drm/i915/display/intel_display_debugfs.c | 114 +++++++++--------- .../display/intel_display_debugfs_params.c | 36 +++--- drivers/gpu/drm/i915/display/intel_hotplug.c | 28 ++--- drivers/gpu/drm/i915/display/intel_wm.c | 42 +++---- drivers/gpu/drm/i915/display/skl_watermark.c | 14 +-- drivers/gpu/drm/i915/gt/intel_gt_debugfs.c | 2 +- drivers/gpu/drm/i915/gt/intel_gt_debugfs.h | 2 +- .../drm/i915/gt/uc/intel_guc_log_debugfs.c | 13 +- drivers/gpu/drm/i915/i915_debugfs_params.c | 43 ++++--- drivers/gpu/drm/i915/i915_gpu_error.c | 28 ++--- drivers/gpu/drm/i915/i915_perf.c | 3 +- 11 files changed, 156 insertions(+), 169 deletions(-) diff --git a/drivers/gpu/drm/i915/display/intel_display_debugfs.c b/drivers= /gpu/drm/i915/display/intel_display_debugfs.c index b99c024b0934..b8d03be584dd 100644 --- a/drivers/gpu/drm/i915/display/intel_display_debugfs.c +++ b/drivers/gpu/drm/i915/display/intel_display_debugfs.c @@ -513,26 +513,24 @@ static int crtc_updates_open(struct inode *inode, str= uct file *file) return single_open(file, crtc_updates_show, inode->i_private); } =20 -static ssize_t crtc_updates_write(struct file *file, - const char __user *ubuf, - size_t len, loff_t *offp) +static ssize_t crtc_updates_write(struct kiocb *iocb, struct iov_iter *fro= m) { - struct seq_file *m =3D file->private_data; + struct seq_file *m =3D iocb->ki_filp->private_data; struct intel_crtc *crtc =3D m->private; =20 /* May race with an update. Meh. */ memset(&crtc->debug.vbl, 0, sizeof(crtc->debug.vbl)); =20 - return len; + return iov_iter_count(from); } =20 static const struct file_operations crtc_updates_fops =3D { .owner =3D THIS_MODULE, .open =3D crtc_updates_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D single_release, - .write =3D crtc_updates_write + .write_iter =3D crtc_updates_write }; =20 static void crtc_updates_add(struct intel_crtc *crtc) @@ -801,24 +799,24 @@ static int i915_dp_mst_info(struct seq_file *m, void = *unused) return 0; } =20 -static ssize_t i915_displayport_test_active_write(struct file *file, - const char __user *ubuf, - size_t len, loff_t *offp) +static ssize_t i915_displayport_test_active_write(struct kiocb *iocb, + struct iov_iter *from) { char *input_buffer; int status =3D 0; struct drm_device *dev; struct drm_connector *connector; struct drm_connector_list_iter conn_iter; + size_t len =3D iov_iter_count(from); struct intel_dp *intel_dp; int val =3D 0; =20 - dev =3D ((struct seq_file *)file->private_data)->private; + dev =3D ((struct seq_file *)iocb->ki_filp->private_data)->private; =20 if (len =3D=3D 0) return 0; =20 - input_buffer =3D memdup_user_nul(ubuf, len); + input_buffer =3D iterdup_nul(from, len); if (IS_ERR(input_buffer)) return PTR_ERR(input_buffer); =20 @@ -856,7 +854,7 @@ static ssize_t i915_displayport_test_active_write(struc= t file *file, if (status < 0) return status; =20 - *offp +=3D len; + iocb->ki_pos +=3D len; return len; } =20 @@ -903,10 +901,10 @@ static int i915_displayport_test_active_open(struct i= node *inode, static const struct file_operations i915_displayport_test_active_fops =3D { .owner =3D THIS_MODULE, .open =3D i915_displayport_test_active_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D single_release, - .write =3D i915_displayport_test_active_write + .write_iter =3D i915_displayport_test_active_write, }; =20 static int i915_displayport_test_data_show(struct seq_file *m, void *data) @@ -994,16 +992,15 @@ static int i915_displayport_test_type_show(struct seq= _file *m, void *data) DEFINE_SHOW_ATTRIBUTE(i915_displayport_test_type); =20 static ssize_t -i915_fifo_underrun_reset_write(struct file *filp, - const char __user *ubuf, - size_t cnt, loff_t *ppos) +i915_fifo_underrun_reset_write(struct kiocb *iocb, struct iov_iter *from) { - struct drm_i915_private *dev_priv =3D filp->private_data; + struct drm_i915_private *dev_priv =3D iocb->ki_filp->private_data; + size_t cnt =3D iov_iter_count(from); struct intel_crtc *crtc; int ret; bool reset; =20 - ret =3D kstrtobool_from_user(ubuf, cnt, &reset); + ret =3D kstrtobool_from_iter(from, cnt, &reset); if (ret) return ret; =20 @@ -1048,7 +1045,7 @@ i915_fifo_underrun_reset_write(struct file *filp, static const struct file_operations i915_fifo_underrun_reset_ops =3D { .owner =3D THIS_MODULE, .open =3D simple_open, - .write =3D i915_fifo_underrun_reset_write, + .write_iter =3D i915_fifo_underrun_reset_write, .llseek =3D default_llseek, }; =20 @@ -1259,15 +1256,15 @@ static int i915_dsc_fec_support_show(struct seq_fil= e *m, void *data) return ret; } =20 -static ssize_t i915_dsc_fec_support_write(struct file *file, - const char __user *ubuf, - size_t len, loff_t *offp) +static ssize_t i915_dsc_fec_support_write(struct kiocb *iocb, + struct iov_iter *from) { - struct seq_file *m =3D file->private_data; + struct seq_file *m =3D iocb->ki_filp->private_data; struct intel_connector *connector =3D m->private; struct drm_i915_private *i915 =3D to_i915(connector->base.dev); struct intel_encoder *encoder =3D intel_attached_encoder(connector); struct intel_dp *intel_dp =3D enc_to_intel_dp(encoder); + size_t len =3D iov_iter_count(from); bool dsc_enable =3D false; int ret; =20 @@ -1277,7 +1274,7 @@ static ssize_t i915_dsc_fec_support_write(struct file= *file, drm_dbg(&i915->drm, "Copied %zu bytes from user to force DSC\n", len); =20 - ret =3D kstrtobool_from_user(ubuf, len, &dsc_enable); + ret =3D kstrtobool_from_iter(from, len, &dsc_enable); if (ret < 0) return ret; =20 @@ -1285,7 +1282,7 @@ static ssize_t i915_dsc_fec_support_write(struct file= *file, (dsc_enable) ? "true" : "false"); intel_dp->force_dsc_en =3D dsc_enable; =20 - *offp +=3D len; + iocb->ki_pos +=3D len; return len; } =20 @@ -1299,10 +1296,10 @@ static int i915_dsc_fec_support_open(struct inode *= inode, static const struct file_operations i915_dsc_fec_support_fops =3D { .owner =3D THIS_MODULE, .open =3D i915_dsc_fec_support_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D single_release, - .write =3D i915_dsc_fec_support_write + .write_iter =3D i915_dsc_fec_support_write }; =20 static int i915_dsc_bpc_show(struct seq_file *m, void *data) @@ -1335,23 +1332,22 @@ out: drm_modeset_unlock(&i915->drm.mode_config.conn= ection_mutex); return ret; } =20 -static ssize_t i915_dsc_bpc_write(struct file *file, - const char __user *ubuf, - size_t len, loff_t *offp) +static ssize_t i915_dsc_bpc_write(struct kiocb *iocb, struct iov_iter *fro= m) { - struct seq_file *m =3D file->private_data; + struct seq_file *m =3D iocb->ki_filp->private_data; struct intel_connector *connector =3D m->private; struct intel_encoder *encoder =3D intel_attached_encoder(connector); struct intel_dp *intel_dp =3D enc_to_intel_dp(encoder); + size_t len =3D iov_iter_count(from); int dsc_bpc =3D 0; int ret; =20 - ret =3D kstrtoint_from_user(ubuf, len, 0, &dsc_bpc); + ret =3D kstrtoint_from_iter(from, len, 0, &dsc_bpc); if (ret < 0) return ret; =20 intel_dp->force_dsc_bpc =3D dsc_bpc; - *offp +=3D len; + iocb->ki_pos +=3D len; =20 return len; } @@ -1365,10 +1361,10 @@ static int i915_dsc_bpc_open(struct inode *inode, static const struct file_operations i915_dsc_bpc_fops =3D { .owner =3D THIS_MODULE, .open =3D i915_dsc_bpc_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D single_release, - .write =3D i915_dsc_bpc_write + .write_iter =3D i915_dsc_bpc_write }; =20 static int i915_dsc_output_format_show(struct seq_file *m, void *data) @@ -1416,33 +1412,33 @@ static int i915_bigjoiner_enable_show(struct seq_fi= le *m, void *data) return 0; } =20 -static ssize_t i915_dsc_output_format_write(struct file *file, - const char __user *ubuf, - size_t len, loff_t *offp) +static ssize_t i915_dsc_output_format_write(struct kiocb *iocb, + struct iov_iter *from) { - struct seq_file *m =3D file->private_data; + struct seq_file *m =3D iocb->ki_filp->private_data; struct intel_connector *connector =3D m->private; struct intel_encoder *encoder =3D intel_attached_encoder(connector); struct intel_dp *intel_dp =3D enc_to_intel_dp(encoder); + size_t len =3D iov_iter_count(from); int dsc_output_format =3D 0; int ret; =20 - ret =3D kstrtoint_from_user(ubuf, len, 0, &dsc_output_format); + ret =3D kstrtoint_from_iter(from, len, 0, &dsc_output_format); if (ret < 0) return ret; =20 intel_dp->force_dsc_output_format =3D dsc_output_format; - *offp +=3D len; + iocb->ki_pos +=3D len; =20 return len; } =20 -static ssize_t i915_bigjoiner_enable_write(struct file *file, - const char __user *ubuf, - size_t len, loff_t *offp) +static ssize_t i915_bigjoiner_enable_write_iter(struct kiocb *iocb, + struct iov_iter *from) { - struct seq_file *m =3D file->private_data; + struct seq_file *m =3D iocb->ki_filp->private_data; struct intel_connector *connector =3D m->private; + size_t len =3D iov_iter_count(from); struct drm_crtc *crtc; bool bigjoiner_en =3D 0; int ret; @@ -1451,12 +1447,12 @@ static ssize_t i915_bigjoiner_enable_write(struct f= ile *file, if (connector->base.status !=3D connector_status_connected || !crtc) return -ENODEV; =20 - ret =3D kstrtobool_from_user(ubuf, len, &bigjoiner_en); + ret =3D kstrtobool_from_iter(from, len, &bigjoiner_en); if (ret < 0) return ret; =20 connector->force_bigjoiner_enable =3D bigjoiner_en; - *offp +=3D len; + iocb->ki_pos +=3D len; =20 return len; } @@ -1470,10 +1466,10 @@ static int i915_dsc_output_format_open(struct inode= *inode, static const struct file_operations i915_dsc_output_format_fops =3D { .owner =3D THIS_MODULE, .open =3D i915_dsc_output_format_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D single_release, - .write =3D i915_dsc_output_format_write + .write_iter =3D i915_dsc_output_format_write }; =20 static int i915_dsc_fractional_bpp_show(struct seq_file *m, void *data) @@ -1508,16 +1504,16 @@ static int i915_dsc_fractional_bpp_show(struct seq_= file *m, void *data) return ret; } =20 -static ssize_t i915_dsc_fractional_bpp_write(struct file *file, - const char __user *ubuf, - size_t len, loff_t *offp) +static ssize_t i915_dsc_fractional_bpp_write(struct kiocb *iocb, + struct iov_iter *from) { - struct seq_file *m =3D file->private_data; + struct seq_file *m =3D iocb->ki_filp->private_data; struct intel_connector *connector =3D m->private; struct intel_encoder *encoder =3D intel_attached_encoder(connector); struct drm_i915_private *i915 =3D to_i915(connector->base.dev); struct intel_dp *intel_dp =3D enc_to_intel_dp(encoder); bool dsc_fractional_bpp_enable =3D false; + size_t len =3D iov_iter_count(from); int ret; =20 if (len =3D=3D 0) @@ -1526,7 +1522,7 @@ static ssize_t i915_dsc_fractional_bpp_write(struct f= ile *file, drm_dbg(&i915->drm, "Copied %zu bytes from user to force fractional bpp for DSC\n", len); =20 - ret =3D kstrtobool_from_user(ubuf, len, &dsc_fractional_bpp_enable); + ret =3D kstrtobool_from_iter(from, len, &dsc_fractional_bpp_enable); if (ret < 0) return ret; =20 @@ -1534,7 +1530,7 @@ static ssize_t i915_dsc_fractional_bpp_write(struct f= ile *file, (dsc_fractional_bpp_enable) ? "true" : "false"); intel_dp->force_dsc_fractional_bpp_en =3D dsc_fractional_bpp_enable; =20 - *offp +=3D len; + iocb->ki_pos +=3D len; =20 return len; } @@ -1548,10 +1544,10 @@ static int i915_dsc_fractional_bpp_open(struct inod= e *inode, static const struct file_operations i915_dsc_fractional_bpp_fops =3D { .owner =3D THIS_MODULE, .open =3D i915_dsc_fractional_bpp_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D single_release, - .write =3D i915_dsc_fractional_bpp_write + .write_iter =3D i915_dsc_fractional_bpp_write }; =20 DEFINE_SHOW_STORE_ATTRIBUTE(i915_bigjoiner_enable); diff --git a/drivers/gpu/drm/i915/display/intel_display_debugfs_params.c b/= drivers/gpu/drm/i915/display/intel_display_debugfs_params.c index f35718748555..deb2a157a4f9 100644 --- a/drivers/gpu/drm/i915/display/intel_display_debugfs_params.c +++ b/drivers/gpu/drm/i915/display/intel_display_debugfs_params.c @@ -27,20 +27,20 @@ static int intel_display_param_int_open(struct inode *i= node, struct file *file) return single_open(file, intel_display_param_int_show, inode->i_private); } =20 -static ssize_t intel_display_param_int_write(struct file *file, - const char __user *ubuf, size_t len, - loff_t *offp) +static ssize_t intel_display_param_int_write(struct kiocb *iocb, + struct iov_iter *from) { - struct seq_file *m =3D file->private_data; + struct seq_file *m =3D iocb->ki_filp->private_data; + size_t len =3D iov_iter_count(from); int *value =3D m->private; int ret; =20 - ret =3D kstrtoint_from_user(ubuf, len, 0, value); + ret =3D kstrtoint_from_iter(from, len, 0, value); if (ret) { /* support boolean values too */ bool b; =20 - ret =3D kstrtobool_from_user(ubuf, len, &b); + ret =3D kstrtobool_from_iter(from, len, &b); if (!ret) *value =3D b; } @@ -51,8 +51,8 @@ static ssize_t intel_display_param_int_write(struct file = *file, static const struct file_operations intel_display_param_int_fops =3D { .owner =3D THIS_MODULE, .open =3D intel_display_param_int_open, - .read =3D seq_read, - .write =3D intel_display_param_int_write, + .read_iter =3D seq_read_iter, + .write_iter =3D intel_display_param_int_write, .llseek =3D default_llseek, .release =3D single_release, }; @@ -60,7 +60,7 @@ static const struct file_operations intel_display_param_i= nt_fops =3D { static const struct file_operations intel_display_param_int_fops_ro =3D { .owner =3D THIS_MODULE, .open =3D intel_display_param_int_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D default_llseek, .release =3D single_release, }; @@ -80,20 +80,20 @@ static int intel_display_param_uint_open(struct inode *= inode, struct file *file) return single_open(file, intel_display_param_uint_show, inode->i_private); } =20 -static ssize_t intel_display_param_uint_write(struct file *file, - const char __user *ubuf, size_t len, - loff_t *offp) +static ssize_t intel_display_param_uint_write(struct kiocb *iocb, + struct iov_iter *from) { - struct seq_file *m =3D file->private_data; + struct seq_file *m =3D iocb->ki_filp->private_data; + size_t len =3D iov_iter_count(from); unsigned int *value =3D m->private; int ret; =20 - ret =3D kstrtouint_from_user(ubuf, len, 0, value); + ret =3D kstrtouint_from_iter(from, len, 0, value); if (ret) { /* support boolean values too */ bool b; =20 - ret =3D kstrtobool_from_user(ubuf, len, &b); + ret =3D kstrtobool_from_iter(from, len, &b); if (!ret) *value =3D b; } @@ -104,8 +104,8 @@ static ssize_t intel_display_param_uint_write(struct fi= le *file, static const struct file_operations intel_display_param_uint_fops =3D { .owner =3D THIS_MODULE, .open =3D intel_display_param_uint_open, - .read =3D seq_read, - .write =3D intel_display_param_uint_write, + .read_iter =3D seq_read_iter, + .write_iter =3D intel_display_param_uint_write, .llseek =3D default_llseek, .release =3D single_release, }; @@ -113,7 +113,7 @@ static const struct file_operations intel_display_param= _uint_fops =3D { static const struct file_operations intel_display_param_uint_fops_ro =3D { .owner =3D THIS_MODULE, .open =3D intel_display_param_uint_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D default_llseek, .release =3D single_release, }; diff --git a/drivers/gpu/drm/i915/display/intel_hotplug.c b/drivers/gpu/drm= /i915/display/intel_hotplug.c index d9ec349f3c8c..0a4a54fea1aa 100644 --- a/drivers/gpu/drm/i915/display/intel_hotplug.c +++ b/drivers/gpu/drm/i915/display/intel_hotplug.c @@ -1019,13 +1019,13 @@ static int i915_hpd_storm_ctl_show(struct seq_file = *m, void *data) return 0; } =20 -static ssize_t i915_hpd_storm_ctl_write(struct file *file, - const char __user *ubuf, size_t len, - loff_t *offp) +static ssize_t i915_hpd_storm_ctl_write(struct kiocb *iocb, + struct iov_iter *from) { - struct seq_file *m =3D file->private_data; + struct seq_file *m =3D iocb->ki_filp->private_data; struct drm_i915_private *dev_priv =3D m->private; struct intel_hotplug *hotplug =3D &dev_priv->display.hotplug; + size_t len =3D iov_iter_count(from); unsigned int new_threshold; int i; char *newline; @@ -1034,7 +1034,7 @@ static ssize_t i915_hpd_storm_ctl_write(struct file *= file, if (len >=3D sizeof(tmp)) return -EINVAL; =20 - if (copy_from_user(tmp, ubuf, len)) + if (!copy_from_iter_full(tmp, len, from)) return -EFAULT; =20 tmp[len] =3D '\0'; @@ -1077,10 +1077,10 @@ static int i915_hpd_storm_ctl_open(struct inode *in= ode, struct file *file) static const struct file_operations i915_hpd_storm_ctl_fops =3D { .owner =3D THIS_MODULE, .open =3D i915_hpd_storm_ctl_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D single_release, - .write =3D i915_hpd_storm_ctl_write + .write_iter =3D i915_hpd_storm_ctl_write }; =20 static int i915_hpd_short_storm_ctl_show(struct seq_file *m, void *data) @@ -1100,13 +1100,13 @@ i915_hpd_short_storm_ctl_open(struct inode *inode, = struct file *file) inode->i_private); } =20 -static ssize_t i915_hpd_short_storm_ctl_write(struct file *file, - const char __user *ubuf, - size_t len, loff_t *offp) +static ssize_t i915_hpd_short_storm_ctl_write(struct kiocb *iocb, + struct iov_iter *from) { - struct seq_file *m =3D file->private_data; + struct seq_file *m =3D iocb->ki_filp->private_data; struct drm_i915_private *dev_priv =3D m->private; struct intel_hotplug *hotplug =3D &dev_priv->display.hotplug; + size_t len =3D iov_iter_count(from); char *newline; char tmp[16]; int i; @@ -1115,7 +1115,7 @@ static ssize_t i915_hpd_short_storm_ctl_write(struct = file *file, if (len >=3D sizeof(tmp)) return -EINVAL; =20 - if (copy_from_user(tmp, ubuf, len)) + if (!copy_from_iter_full(tmp, len, from)) return -EFAULT; =20 tmp[len] =3D '\0'; @@ -1150,10 +1150,10 @@ static ssize_t i915_hpd_short_storm_ctl_write(struc= t file *file, static const struct file_operations i915_hpd_short_storm_ctl_fops =3D { .owner =3D THIS_MODULE, .open =3D i915_hpd_short_storm_ctl_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D single_release, - .write =3D i915_hpd_short_storm_ctl_write, + .write_iter =3D i915_hpd_short_storm_ctl_write, }; =20 void intel_hpd_debugfs_register(struct drm_i915_private *i915) diff --git a/drivers/gpu/drm/i915/display/intel_wm.c b/drivers/gpu/drm/i915= /display/intel_wm.c index 82c4933ad507..86be01bb69f3 100644 --- a/drivers/gpu/drm/i915/display/intel_wm.c +++ b/drivers/gpu/drm/i915/display/intel_wm.c @@ -285,11 +285,12 @@ static int cur_wm_latency_open(struct inode *inode, s= truct file *file) return single_open(file, cur_wm_latency_show, dev_priv); } =20 -static ssize_t wm_latency_write(struct file *file, const char __user *ubuf, - size_t len, loff_t *offp, u16 wm[8]) +static ssize_t wm_latency_write(struct kiocb *iocb, struct iov_iter *from, + u16 wm[8]) { - struct seq_file *m =3D file->private_data; + struct seq_file *m =3D iocb->ki_filp->private_data; struct drm_i915_private *dev_priv =3D m->private; + size_t len =3D iov_iter_count(from); u16 new[8] =3D {}; int level; int ret; @@ -298,7 +299,7 @@ static ssize_t wm_latency_write(struct file *file, cons= t char __user *ubuf, if (len >=3D sizeof(tmp)) return -EINVAL; =20 - if (copy_from_user(tmp, ubuf, len)) + if (!copy_from_iter_full(tmp, len, from)) return -EFAULT; =20 tmp[len] =3D '\0'; @@ -319,10 +320,9 @@ static ssize_t wm_latency_write(struct file *file, con= st char __user *ubuf, return len; } =20 -static ssize_t pri_wm_latency_write(struct file *file, const char __user *= ubuf, - size_t len, loff_t *offp) +static ssize_t pri_wm_latency_write(struct kiocb *iocb, struct iov_iter *f= rom) { - struct seq_file *m =3D file->private_data; + struct seq_file *m =3D iocb->ki_filp->private_data; struct drm_i915_private *dev_priv =3D m->private; u16 *latencies; =20 @@ -331,13 +331,12 @@ static ssize_t pri_wm_latency_write(struct file *file= , const char __user *ubuf, else latencies =3D dev_priv->display.wm.pri_latency; =20 - return wm_latency_write(file, ubuf, len, offp, latencies); + return wm_latency_write(iocb, from, latencies); } =20 -static ssize_t spr_wm_latency_write(struct file *file, const char __user *= ubuf, - size_t len, loff_t *offp) +static ssize_t spr_wm_latency_write(struct kiocb *iocb, struct iov_iter *f= rom) { - struct seq_file *m =3D file->private_data; + struct seq_file *m =3D iocb->ki_filp->private_data; struct drm_i915_private *dev_priv =3D m->private; u16 *latencies; =20 @@ -346,13 +345,12 @@ static ssize_t spr_wm_latency_write(struct file *file= , const char __user *ubuf, else latencies =3D dev_priv->display.wm.spr_latency; =20 - return wm_latency_write(file, ubuf, len, offp, latencies); + return wm_latency_write(iocb, from, latencies); } =20 -static ssize_t cur_wm_latency_write(struct file *file, const char __user *= ubuf, - size_t len, loff_t *offp) +static ssize_t cur_wm_latency_write(struct kiocb *iocb, struct iov_iter *f= rom) { - struct seq_file *m =3D file->private_data; + struct seq_file *m =3D iocb->ki_filp->private_data; struct drm_i915_private *dev_priv =3D m->private; u16 *latencies; =20 @@ -361,34 +359,34 @@ static ssize_t cur_wm_latency_write(struct file *file= , const char __user *ubuf, else latencies =3D dev_priv->display.wm.cur_latency; =20 - return wm_latency_write(file, ubuf, len, offp, latencies); + return wm_latency_write(iocb, from, latencies); } =20 static const struct file_operations i915_pri_wm_latency_fops =3D { .owner =3D THIS_MODULE, .open =3D pri_wm_latency_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D single_release, - .write =3D pri_wm_latency_write + .write_iter =3D pri_wm_latency_write }; =20 static const struct file_operations i915_spr_wm_latency_fops =3D { .owner =3D THIS_MODULE, .open =3D spr_wm_latency_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D single_release, - .write =3D spr_wm_latency_write + .write_iter =3D spr_wm_latency_write }; =20 static const struct file_operations i915_cur_wm_latency_fops =3D { .owner =3D THIS_MODULE, .open =3D cur_wm_latency_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D single_release, - .write =3D cur_wm_latency_write + .write_iter =3D cur_wm_latency_write }; =20 void intel_wm_debugfs_register(struct drm_i915_private *i915) diff --git a/drivers/gpu/drm/i915/display/skl_watermark.c b/drivers/gpu/drm= /i915/display/skl_watermark.c index c6b9be80d83c..9c87f0c1a0da 100644 --- a/drivers/gpu/drm/i915/display/skl_watermark.c +++ b/drivers/gpu/drm/i915/display/skl_watermark.c @@ -3713,17 +3713,17 @@ static int skl_watermark_ipc_status_open(struct ino= de *inode, struct file *file) return single_open(file, skl_watermark_ipc_status_show, i915); } =20 -static ssize_t skl_watermark_ipc_status_write(struct file *file, - const char __user *ubuf, - size_t len, loff_t *offp) +static ssize_t skl_watermark_ipc_status_write(struct kiocb *iocb, + struct iov_iter *from) { - struct seq_file *m =3D file->private_data; + struct seq_file *m =3D iocb->ki_filp->private_data; struct drm_i915_private *i915 =3D m->private; + size_t len =3D iov_iter_count(from); intel_wakeref_t wakeref; bool enable; int ret; =20 - ret =3D kstrtobool_from_user(ubuf, len, &enable); + ret =3D kstrtobool_from_iter(from, len, &enable); if (ret < 0) return ret; =20 @@ -3741,10 +3741,10 @@ static ssize_t skl_watermark_ipc_status_write(struc= t file *file, static const struct file_operations skl_watermark_ipc_status_fops =3D { .owner =3D THIS_MODULE, .open =3D skl_watermark_ipc_status_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D single_release, - .write =3D skl_watermark_ipc_status_write + .write_iter =3D skl_watermark_ipc_status_write }; =20 static int intel_sagv_status_show(struct seq_file *m, void *unused) diff --git a/drivers/gpu/drm/i915/gt/intel_gt_debugfs.c b/drivers/gpu/drm/i= 915/gt/intel_gt_debugfs.c index 4dc23b8d3aa2..ed8c47f3cc39 100644 --- a/drivers/gpu/drm/i915/gt/intel_gt_debugfs.c +++ b/drivers/gpu/drm/i915/gt/intel_gt_debugfs.c @@ -107,7 +107,7 @@ void intel_gt_debugfs_register_files(struct dentry *roo= t, unsigned long count, void *data) { while (count--) { - umode_t mode =3D files->fops->write ? 0644 : 0444; + umode_t mode =3D files->fops->write_iter ? 0644 : 0444; =20 if (!files->eval || files->eval(data)) debugfs_create_file(files->name, diff --git a/drivers/gpu/drm/i915/gt/intel_gt_debugfs.h b/drivers/gpu/drm/i= 915/gt/intel_gt_debugfs.h index e4110eebf093..1753bebb6f70 100644 --- a/drivers/gpu/drm/i915/gt/intel_gt_debugfs.h +++ b/drivers/gpu/drm/i915/gt/intel_gt_debugfs.h @@ -14,7 +14,7 @@ struct intel_gt; static const struct file_operations __name ## _fops =3D { \ .owner =3D THIS_MODULE, \ .open =3D __name ## _open, \ - .read =3D seq_read, \ + .read_iter =3D seq_read_iter, \ .llseek =3D seq_lseek, \ .release =3D single_release, \ } diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_log_debugfs.c b/drivers/g= pu/drm/i915/gt/uc/intel_guc_log_debugfs.c index ddfbe334689f..3284631a8c07 100644 --- a/drivers/gpu/drm/i915/gt/uc/intel_guc_log_debugfs.c +++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_log_debugfs.c @@ -117,17 +117,14 @@ static int guc_log_relay_open(struct inode *inode, st= ruct file *file) return intel_guc_log_relay_open(log); } =20 -static ssize_t -guc_log_relay_write(struct file *filp, - const char __user *ubuf, - size_t cnt, - loff_t *ppos) +static ssize_t guc_log_relay_write(struct kiocb *iocb, struct iov_iter *fr= om) { - struct intel_guc_log *log =3D filp->private_data; + struct intel_guc_log *log =3D iocb->ki_filp->private_data; + size_t cnt =3D iov_iter_count(from); int val; int ret; =20 - ret =3D kstrtoint_from_user(ubuf, cnt, 0, &val); + ret =3D kstrtoint_from_iter(from, cnt, 0, &val); if (ret < 0) return ret; =20 @@ -154,7 +151,7 @@ static int guc_log_relay_release(struct inode *inode, s= truct file *file) static const struct file_operations guc_log_relay_fops =3D { .owner =3D THIS_MODULE, .open =3D guc_log_relay_open, - .write =3D guc_log_relay_write, + .write_iter =3D guc_log_relay_write, .release =3D guc_log_relay_release, }; =20 diff --git a/drivers/gpu/drm/i915/i915_debugfs_params.c b/drivers/gpu/drm/i= 915/i915_debugfs_params.c index 8bca02025e09..5369d1e7f1b7 100644 --- a/drivers/gpu/drm/i915/i915_debugfs_params.c +++ b/drivers/gpu/drm/i915/i915_debugfs_params.c @@ -49,20 +49,19 @@ static int notify_guc(struct drm_i915_private *i915) return ret; } =20 -static ssize_t i915_param_int_write(struct file *file, - const char __user *ubuf, size_t len, - loff_t *offp) +static ssize_t i915_param_int_write(struct kiocb *iocb, struct iov_iter *f= rom) { - struct seq_file *m =3D file->private_data; + struct seq_file *m =3D iocb->ki_filp->private_data; + size_t len =3D iov_iter_count(from); int *value =3D m->private; int ret; =20 - ret =3D kstrtoint_from_user(ubuf, len, 0, value); + ret =3D kstrtoint_from_iter(from, len, 0, value); if (ret) { /* support boolean values too */ bool b; =20 - ret =3D kstrtobool_from_user(ubuf, len, &b); + ret =3D kstrtobool_from_iter(from, len, &b); if (!ret) *value =3D b; } @@ -73,8 +72,8 @@ static ssize_t i915_param_int_write(struct file *file, static const struct file_operations i915_param_int_fops =3D { .owner =3D THIS_MODULE, .open =3D i915_param_int_open, - .read =3D seq_read, - .write =3D i915_param_int_write, + .read_iter =3D seq_read_iter, + .write_iter =3D i915_param_int_write, .llseek =3D default_llseek, .release =3D single_release, }; @@ -82,7 +81,7 @@ static const struct file_operations i915_param_int_fops = =3D { static const struct file_operations i915_param_int_fops_ro =3D { .owner =3D THIS_MODULE, .open =3D i915_param_int_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D default_llseek, .release =3D single_release, }; @@ -102,27 +101,26 @@ static int i915_param_uint_open(struct inode *inode, = struct file *file) return single_open(file, i915_param_uint_show, inode->i_private); } =20 -static ssize_t i915_param_uint_write(struct file *file, - const char __user *ubuf, size_t len, - loff_t *offp) +static ssize_t i915_param_uint_write(struct kiocb *iocb, struct iov_iter *= from) { struct drm_i915_private *i915; - struct seq_file *m =3D file->private_data; + struct seq_file *m =3D iocb->ki_filp->private_data; + size_t len =3D iov_iter_count(from); unsigned int *value =3D m->private; unsigned int old =3D *value; int ret; =20 - ret =3D kstrtouint_from_user(ubuf, len, 0, value); + ret =3D kstrtouint_from_iter(from, len, 0, value); if (ret) { /* support boolean values too */ bool b; =20 - ret =3D kstrtobool_from_user(ubuf, len, &b); + ret =3D kstrtobool_from_iter(from, len, &b); if (!ret) *value =3D b; } =20 - if (!ret && MATCH_DEBUGFS_NODE_NAME(file, "reset")) { + if (!ret && MATCH_DEBUGFS_NODE_NAME(iocb->ki_filp, "reset")) { GET_I915(i915, reset, value); =20 ret =3D notify_guc(i915); @@ -136,8 +134,8 @@ static ssize_t i915_param_uint_write(struct file *file, static const struct file_operations i915_param_uint_fops =3D { .owner =3D THIS_MODULE, .open =3D i915_param_uint_open, - .read =3D seq_read, - .write =3D i915_param_uint_write, + .read_iter =3D seq_read_iter, + .write_iter =3D i915_param_uint_write, .llseek =3D default_llseek, .release =3D single_release, }; @@ -145,7 +143,7 @@ static const struct file_operations i915_param_uint_fop= s =3D { static const struct file_operations i915_param_uint_fops_ro =3D { .owner =3D THIS_MODULE, .open =3D i915_param_uint_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D default_llseek, .release =3D single_release, }; @@ -186,12 +184,13 @@ static ssize_t i915_param_charp_write(struct file *fi= le, out: return len; } +FOPS_WRITE_ITER_HELPER(i915_param_charp_write); =20 static const struct file_operations i915_param_charp_fops =3D { .owner =3D THIS_MODULE, .open =3D i915_param_charp_open, - .read =3D seq_read, - .write =3D i915_param_charp_write, + .read_iter =3D seq_read_iter, + .write_iter =3D i915_param_charp_write_iter, .llseek =3D default_llseek, .release =3D single_release, }; @@ -199,7 +198,7 @@ static const struct file_operations i915_param_charp_fo= ps =3D { static const struct file_operations i915_param_charp_fops_ro =3D { .owner =3D THIS_MODULE, .open =3D i915_param_charp_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D default_llseek, .release =3D single_release, }; diff --git a/drivers/gpu/drm/i915/i915_gpu_error.c b/drivers/gpu/drm/i915/i= 915_gpu_error.c index a0b784ebaddd..ca0851c07082 100644 --- a/drivers/gpu/drm/i915/i915_gpu_error.c +++ b/drivers/gpu/drm/i915/i915_gpu_error.c @@ -2380,14 +2380,14 @@ void intel_klog_error_capture(struct intel_gt *gt, } #endif =20 -static ssize_t gpu_state_read(struct file *file, char __user *ubuf, - size_t count, loff_t *pos) +static ssize_t gpu_state_read(struct kiocb *iocb, struct iov_iter *to) { struct i915_gpu_coredump *error; + size_t count =3D iov_iter_count(to); ssize_t ret; void *buf; =20 - error =3D file->private_data; + error =3D iocb->ki_filp->private_data; if (!error) return 0; =20 @@ -2396,12 +2396,12 @@ static ssize_t gpu_state_read(struct file *file, ch= ar __user *ubuf, if (!buf) return -ENOMEM; =20 - ret =3D i915_gpu_coredump_copy_to_buffer(error, buf, *pos, count); + ret =3D i915_gpu_coredump_copy_to_buffer(error, buf, iocb->ki_pos, count); if (ret <=3D 0) goto out; =20 - if (!copy_to_user(ubuf, buf, ret)) - *pos +=3D ret; + if (copy_to_iter_full(buf, ret, to)) + iocb->ki_pos +=3D ret; else ret =3D -EFAULT; =20 @@ -2436,18 +2436,14 @@ static int i915_gpu_info_open(struct inode *inode, = struct file *file) static const struct file_operations i915_gpu_info_fops =3D { .owner =3D THIS_MODULE, .open =3D i915_gpu_info_open, - .read =3D gpu_state_read, + .read_iter =3D gpu_state_read, .llseek =3D default_llseek, .release =3D gpu_state_release, }; =20 -static ssize_t -i915_error_state_write(struct file *filp, - const char __user *ubuf, - size_t cnt, - loff_t *ppos) +static ssize_t i915_error_state_write(struct kiocb *iocb, struct iov_iter = *from) { - struct i915_gpu_coredump *error =3D filp->private_data; + struct i915_gpu_coredump *error =3D iocb->ki_filp->private_data; =20 if (!error) return 0; @@ -2455,7 +2451,7 @@ i915_error_state_write(struct file *filp, drm_dbg(&error->i915->drm, "Resetting error state\n"); i915_reset_error_state(error->i915); =20 - return cnt; + return iov_iter_count(from); } =20 static int i915_error_state_open(struct inode *inode, struct file *file) @@ -2473,8 +2469,8 @@ static int i915_error_state_open(struct inode *inode,= struct file *file) static const struct file_operations i915_error_state_fops =3D { .owner =3D THIS_MODULE, .open =3D i915_error_state_open, - .read =3D gpu_state_read, - .write =3D i915_error_state_write, + .read_iter =3D gpu_state_read, + .write_iter =3D i915_error_state_write, .llseek =3D default_llseek, .release =3D gpu_state_release, }; diff --git a/drivers/gpu/drm/i915/i915_perf.c b/drivers/gpu/drm/i915/i915_p= erf.c index bd9d812b1afa..8ff6d5b0b40a 100644 --- a/drivers/gpu/drm/i915/i915_perf.c +++ b/drivers/gpu/drm/i915/i915_perf.c @@ -3512,6 +3512,7 @@ static ssize_t i915_perf_read(struct file *file, /* Possible values for ret are 0, -EFAULT, -ENOSPC, -EIO, ... */ return offset ?: (ret ?: -EAGAIN); } +FOPS_READ_ITER_HELPER(i915_perf_read); =20 static enum hrtimer_restart oa_poll_check_timer_cb(struct hrtimer *hrtimer) { @@ -3788,7 +3789,7 @@ static const struct file_operations fops =3D { .llseek =3D no_llseek, .release =3D i915_perf_release, .poll =3D i915_perf_poll, - .read =3D i915_perf_read, + .read_iter =3D i915_perf_read_iter, .unlocked_ioctl =3D i915_perf_ioctl, /* Our ioctl have no arguments, so it's safe to use the same function * to handle 32bits compatibility. --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f45.google.com (mail-io1-f45.google.com [209.85.166.45]) (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 94AF115CD7E for ; Thu, 11 Apr 2024 15:35:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849736; cv=none; b=Oc2LMIz/mOqeuNj+bBvRQ5GTCm3tZJ0kHpXqKxWCVBpKGllGtJHq/fA+Ze0UJSX+ZPlQI5vELfvtfdabm2GU3RpXo1kUhDSq6vYZxKdKyxnCXHAwVqvibzlSro+t4SvH9SshngzC4L5+WnxNwx8OTMp+XymeH1MR2KeDNB3v32w= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849736; c=relaxed/simple; bh=2jr1PdrVceH4PaPnyYhMso5x8m+nWkb8VS7w/9lfGfs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=CcD9em7apXFIZNmJUVUDZLrfxaK7WX9dUb/zAgvkgGpj8f+6FYQAEmtWOu6RCWkk2ukviWKHDHY84p+1hb187LHXzxWh20KDDXUskn3odVK4ypnvA1mbNqJ6bZqi0FTR+L2WahTYmgLEReQypvhFzOVPJmBu9QXaUTOnHRMy+n8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=QF6uCep/; arc=none smtp.client-ip=209.85.166.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="QF6uCep/" Received: by mail-io1-f45.google.com with SMTP id ca18e2360f4ac-7d67d1073easo9778439f.0 for ; Thu, 11 Apr 2024 08:35:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849732; x=1713454532; 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=lMZovEpiWCkttFZIAVtQYL16N1CzowLfOrVR8pz0BT8=; b=QF6uCep/jlk7wQ2mW6T9Z/q5f2vXoS2s+N5fnt4Wzumis0BCtKxMZr90LbGqTFvV8B VAWKLYsmvslwKuX83kfalHmNF2Hx3Z8iCGSdu1PfPZqA340xtHoLQxsTj+wQS7lBGBxw J5mPdaEUXyivd8RmTPT/jJsJHGSaQjyE8lBqc11/WVhEXpHnOwVffwgkE+1H72bmZ0uH LtqPpvHWzaZSGY6a+g49duEMhKbb3ecWJo/haGE9zwWwsKmm5+w0a8rvHAeXCuW859t8 4brt6XTtK+cotDeJcBoYZIrAFcUqVGFzZ5Rzc0b8EQMO1D4Dkd5vrHU/l6a9qhpLJ8rI xH0w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849732; x=1713454532; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=lMZovEpiWCkttFZIAVtQYL16N1CzowLfOrVR8pz0BT8=; b=lbnFvQnjPL+xIJ0VuzAyNt1EL6KWSRLu4fl5v7jsQOHjmVYFIRmmadPV9y0rXBfmy/ Nk53kp2Q95uKQLHHLwVOFOeGryJDLOpzzxtLGycn9kllDv0MCnVZtqydm4slFT2ziw7g eWXLpHCQvo6YropKR1WmEFNfeQYCXc/R9Dholsx5V1oaAjDMZMSVoU0z56kia9CPkzmQ fc11f/7usAHghiLqp2NVrrDli8U1Q/DWvzpTZXq4Q0Tq6nNfIr8HRrnglb60vKBo4gUi 6AN/V4OVdoWpJ/ScVfkwHw0ffg8JIKK++SqmA9yp9Edp9w4A+PVbCFXxLWQl1VP1YV+T mTwg== X-Gm-Message-State: AOJu0YzdTIfG/0/yH9KMneVx1GgQBBYN6mnWVRMXBZyRsRplBaOL35He 5AelfUU+NO5BfclD8d5uDczhOKokZTllsG1oiLkftg8P3GWtSg1mtlLlOknCVHUaMzkDpLYbihE s X-Google-Smtp-Source: AGHT+IEpyxFj+MrEfNGu8fz+KVelChQZTTr487wTd4G41eDA2PHllZ9LYq0wU6JBwsq3MMIHxoRqjw== X-Received: by 2002:a6b:7b05:0:b0:7d6:60dc:bc8e with SMTP id l5-20020a6b7b05000000b007d660dcbc8emr192423iop.1.1712849731865; Thu, 11 Apr 2024 08:35:31 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.35.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:35:31 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 139/437] drm: amd: convert to read/write iterators Date: Thu, 11 Apr 2024 09:14:39 -0600 Message-ID: <20240411153126.16201-140-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/gpu/drm/amd/amdgpu/amdgpu_aca.c | 4 +- drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c | 71 +++++++---- .../drm/amd/amdgpu/amdgpu_fw_attestation.c | 23 ++-- drivers/gpu/drm/amd/amdgpu/amdgpu_mca.c | 4 +- drivers/gpu/drm/amd/amdgpu/amdgpu_psp_ta.c | 18 +-- drivers/gpu/drm/amd/amdgpu/amdgpu_rap.c | 14 +-- drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c | 34 +++--- .../gpu/drm/amd/amdgpu/amdgpu_ras_eeprom.c | 22 ++-- drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c | 6 +- .../gpu/drm/amd/amdgpu/amdgpu_securedisplay.c | 14 +-- drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 56 ++++----- drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c | 3 +- drivers/gpu/drm/amd/amdkfd/kfd_debugfs.c | 13 +- drivers/gpu/drm/amd/amdkfd/kfd_smi_events.c | 19 ++- .../amd/display/amdgpu_dm/amdgpu_dm_debugfs.c | 111 ++++++++++-------- drivers/gpu/drm/amd/pm/amdgpu_pm.c | 11 +- drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c | 17 +-- 17 files changed, 231 insertions(+), 209 deletions(-) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_aca.c b/drivers/gpu/drm/amd/= amdgpu/amdgpu_aca.c index 493982f94649..8fd471e72ae9 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_aca.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_aca.c @@ -840,7 +840,7 @@ static int aca_dump_ce_open(struct inode *inode, struct= file *file) static const struct file_operations aca_ce_dump_debug_fops =3D { .owner =3D THIS_MODULE, .open =3D aca_dump_ce_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D single_release, }; @@ -858,7 +858,7 @@ static int aca_dump_ue_open(struct inode *inode, struct= file *file) static const struct file_operations aca_ue_dump_debug_fops =3D { .owner =3D THIS_MODULE, .open =3D aca_dump_ue_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D single_release, }; diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c b/drivers/gpu/drm/= amd/amdgpu/amdgpu_debugfs.c index f5d0fa207a88..f816d92430ff 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c @@ -194,6 +194,7 @@ static ssize_t amdgpu_debugfs_regs_read(struct file *f,= char __user *buf, { return amdgpu_debugfs_process_reg_op(true, f, buf, size, pos); } +FOPS_READ_ITER_HELPER(amdgpu_debugfs_regs_read); =20 /* * amdgpu_debugfs_regs_write - Callback for writing MMIO registers @@ -203,6 +204,7 @@ static ssize_t amdgpu_debugfs_regs_write(struct file *f= , const char __user *buf, { return amdgpu_debugfs_process_reg_op(false, f, (char __user *)buf, size, = pos); } +FOPS_WRITE_ITER_HELPER(amdgpu_debugfs_regs_write); =20 static int amdgpu_debugfs_regs2_open(struct inode *inode, struct file *fil= e) { @@ -365,11 +367,13 @@ static ssize_t amdgpu_debugfs_regs2_read(struct file = *f, char __user *buf, size_ { return amdgpu_debugfs_regs2_op(f, buf, *pos, size, 0); } +FOPS_READ_ITER_HELPER(amdgpu_debugfs_regs2_read); =20 static ssize_t amdgpu_debugfs_regs2_write(struct file *f, const char __use= r *buf, size_t size, loff_t *pos) { return amdgpu_debugfs_regs2_op(f, (char __user *)buf, *pos, size, 1); } +FOPS_WRITE_ITER_HELPER(amdgpu_debugfs_regs2_write); =20 static int amdgpu_debugfs_gprwave_open(struct inode *inode, struct file *f= ile) { @@ -475,6 +479,7 @@ static ssize_t amdgpu_debugfs_gprwave_read(struct file = *f, char __user *buf, siz kfree(data); return result; } +FOPS_READ_ITER_HELPER(amdgpu_debugfs_gprwave_read); =20 static long amdgpu_debugfs_gprwave_ioctl(struct file *f, unsigned int cmd,= unsigned long data) { @@ -562,6 +567,7 @@ static ssize_t amdgpu_debugfs_regs_pcie_read(struct fil= e *f, char __user *buf, amdgpu_virt_disable_access_debugfs(adev); return r; } +FOPS_READ_ITER_HELPER(amdgpu_debugfs_regs_pcie_read); =20 /** * amdgpu_debugfs_regs_pcie_write - Write to a PCIE register @@ -622,6 +628,7 @@ static ssize_t amdgpu_debugfs_regs_pcie_write(struct fi= le *f, const char __user amdgpu_virt_disable_access_debugfs(adev); return r; } +FOPS_WRITE_ITER_HELPER(amdgpu_debugfs_regs_pcie_write); =20 /** * amdgpu_debugfs_regs_didt_read - Read from a DIDT register @@ -681,6 +688,7 @@ static ssize_t amdgpu_debugfs_regs_didt_read(struct fil= e *f, char __user *buf, amdgpu_virt_disable_access_debugfs(adev); return r; } +FOPS_READ_ITER_HELPER(amdgpu_debugfs_regs_didt_read); =20 /** * amdgpu_debugfs_regs_didt_write - Write to a DIDT register @@ -741,6 +749,7 @@ static ssize_t amdgpu_debugfs_regs_didt_write(struct fi= le *f, const char __user amdgpu_virt_disable_access_debugfs(adev); return r; } +FOPS_WRITE_ITER_HELPER(amdgpu_debugfs_regs_didt_write); =20 /** * amdgpu_debugfs_regs_smc_read - Read from a SMC register @@ -800,6 +809,7 @@ static ssize_t amdgpu_debugfs_regs_smc_read(struct file= *f, char __user *buf, amdgpu_virt_disable_access_debugfs(adev); return r; } +FOPS_READ_ITER_HELPER(amdgpu_debugfs_regs_smc_read); =20 /** * amdgpu_debugfs_regs_smc_write - Write to a SMC register @@ -860,6 +870,7 @@ static ssize_t amdgpu_debugfs_regs_smc_write(struct fil= e *f, const char __user * amdgpu_virt_disable_access_debugfs(adev); return r; } +FOPS_WRITE_ITER_HELPER(amdgpu_debugfs_regs_smc_write); =20 /** * amdgpu_debugfs_gca_config_read - Read from gfx config data @@ -957,6 +968,7 @@ static ssize_t amdgpu_debugfs_gca_config_read(struct fi= le *f, char __user *buf, kfree(config); return result; } +FOPS_READ_ITER_HELPER(amdgpu_debugfs_gca_config_read); =20 /** * amdgpu_debugfs_sensor_read - Read from the powerplay sensors @@ -1030,6 +1042,7 @@ static ssize_t amdgpu_debugfs_sensor_read(struct file= *f, char __user *buf, amdgpu_virt_disable_access_debugfs(adev); return !r ? outsize : r; } +FOPS_READ_ITER_HELPER(amdgpu_debugfs_sensor_read); =20 /** amdgpu_debugfs_wave_read - Read WAVE STATUS data * @@ -1121,6 +1134,7 @@ static ssize_t amdgpu_debugfs_wave_read(struct file *= f, char __user *buf, amdgpu_virt_disable_access_debugfs(adev); return result; } +FOPS_READ_ITER_HELPER(amdgpu_debugfs_wave_read); =20 /** amdgpu_debugfs_gpr_read - Read wave gprs * @@ -1219,6 +1233,7 @@ static ssize_t amdgpu_debugfs_gpr_read(struct file *f= , char __user *buf, kfree(data); return r; } +FOPS_READ_ITER_HELPER(amdgpu_debugfs_gpr_read); =20 /** * amdgpu_debugfs_gfxoff_residency_read - Read GFXOFF residency @@ -1271,6 +1286,7 @@ static ssize_t amdgpu_debugfs_gfxoff_residency_read(s= truct file *f, char __user =20 return r; } +FOPS_READ_ITER_HELPER(amdgpu_debugfs_gfxoff_residency_read); =20 /** * amdgpu_debugfs_gfxoff_residency_write - Log GFXOFF Residency @@ -1320,7 +1336,7 @@ static ssize_t amdgpu_debugfs_gfxoff_residency_write(= struct file *f, const char =20 return r; } - +FOPS_WRITE_ITER_HELPER(amdgpu_debugfs_gfxoff_residency_write); =20 /** * amdgpu_debugfs_gfxoff_count_read - Read GFXOFF entry count @@ -1370,6 +1386,7 @@ static ssize_t amdgpu_debugfs_gfxoff_count_read(struc= t file *f, char __user *buf =20 return r; } +FOPS_READ_ITER_HELPER(amdgpu_debugfs_gfxoff_count_read); =20 /** * amdgpu_debugfs_gfxoff_write - Enable/disable GFXOFF @@ -1419,7 +1436,7 @@ static ssize_t amdgpu_debugfs_gfxoff_write(struct fil= e *f, const char __user *bu =20 return r; } - +FOPS_WRITE_ITER_HELPER(amdgpu_debugfs_gfxoff_write); =20 /** * amdgpu_debugfs_gfxoff_read - read gfxoff status @@ -1465,6 +1482,7 @@ static ssize_t amdgpu_debugfs_gfxoff_read(struct file= *f, char __user *buf, =20 return r; } +FOPS_READ_ITER_HELPER(amdgpu_debugfs_gfxoff_read); =20 static ssize_t amdgpu_debugfs_gfxoff_status_read(struct file *f, char __us= er *buf, size_t size, loff_t *pos) @@ -1506,12 +1524,13 @@ static ssize_t amdgpu_debugfs_gfxoff_status_read(st= ruct file *f, char __user *bu =20 return r; } +FOPS_READ_ITER_HELPER(amdgpu_debugfs_gfxoff_status_read); =20 static const struct file_operations amdgpu_debugfs_regs2_fops =3D { .owner =3D THIS_MODULE, .unlocked_ioctl =3D amdgpu_debugfs_regs2_ioctl, - .read =3D amdgpu_debugfs_regs2_read, - .write =3D amdgpu_debugfs_regs2_write, + .read_iter =3D amdgpu_debugfs_regs2_read_iter, + .write_iter =3D amdgpu_debugfs_regs2_write_iter, .open =3D amdgpu_debugfs_regs2_open, .release =3D amdgpu_debugfs_regs2_release, .llseek =3D default_llseek @@ -1520,7 +1539,7 @@ static const struct file_operations amdgpu_debugfs_re= gs2_fops =3D { static const struct file_operations amdgpu_debugfs_gprwave_fops =3D { .owner =3D THIS_MODULE, .unlocked_ioctl =3D amdgpu_debugfs_gprwave_ioctl, - .read =3D amdgpu_debugfs_gprwave_read, + .read_iter =3D amdgpu_debugfs_gprwave_read_iter, .open =3D amdgpu_debugfs_gprwave_open, .release =3D amdgpu_debugfs_gprwave_release, .llseek =3D default_llseek @@ -1528,75 +1547,75 @@ static const struct file_operations amdgpu_debugfs_= gprwave_fops =3D { =20 static const struct file_operations amdgpu_debugfs_regs_fops =3D { .owner =3D THIS_MODULE, - .read =3D amdgpu_debugfs_regs_read, - .write =3D amdgpu_debugfs_regs_write, + .read_iter =3D amdgpu_debugfs_regs_read_iter, + .write_iter =3D amdgpu_debugfs_regs_write_iter, .llseek =3D default_llseek }; static const struct file_operations amdgpu_debugfs_regs_didt_fops =3D { .owner =3D THIS_MODULE, - .read =3D amdgpu_debugfs_regs_didt_read, - .write =3D amdgpu_debugfs_regs_didt_write, + .read_iter =3D amdgpu_debugfs_regs_didt_read_iter, + .write_iter =3D amdgpu_debugfs_regs_didt_write_iter, .llseek =3D default_llseek }; static const struct file_operations amdgpu_debugfs_regs_pcie_fops =3D { .owner =3D THIS_MODULE, - .read =3D amdgpu_debugfs_regs_pcie_read, - .write =3D amdgpu_debugfs_regs_pcie_write, + .read_iter =3D amdgpu_debugfs_regs_pcie_read_iter, + .write_iter =3D amdgpu_debugfs_regs_pcie_write_iter, .llseek =3D default_llseek }; static const struct file_operations amdgpu_debugfs_regs_smc_fops =3D { .owner =3D THIS_MODULE, - .read =3D amdgpu_debugfs_regs_smc_read, - .write =3D amdgpu_debugfs_regs_smc_write, + .read_iter =3D amdgpu_debugfs_regs_smc_read_iter, + .write_iter =3D amdgpu_debugfs_regs_smc_write_iter, .llseek =3D default_llseek }; =20 static const struct file_operations amdgpu_debugfs_gca_config_fops =3D { .owner =3D THIS_MODULE, - .read =3D amdgpu_debugfs_gca_config_read, + .read_iter =3D amdgpu_debugfs_gca_config_read_iter, .llseek =3D default_llseek }; =20 static const struct file_operations amdgpu_debugfs_sensors_fops =3D { .owner =3D THIS_MODULE, - .read =3D amdgpu_debugfs_sensor_read, + .read_iter =3D amdgpu_debugfs_sensor_read_iter, .llseek =3D default_llseek }; =20 static const struct file_operations amdgpu_debugfs_wave_fops =3D { .owner =3D THIS_MODULE, - .read =3D amdgpu_debugfs_wave_read, + .read_iter =3D amdgpu_debugfs_wave_read_iter, .llseek =3D default_llseek }; static const struct file_operations amdgpu_debugfs_gpr_fops =3D { .owner =3D THIS_MODULE, - .read =3D amdgpu_debugfs_gpr_read, + .read_iter =3D amdgpu_debugfs_gpr_read_iter, .llseek =3D default_llseek }; =20 static const struct file_operations amdgpu_debugfs_gfxoff_fops =3D { .owner =3D THIS_MODULE, - .read =3D amdgpu_debugfs_gfxoff_read, - .write =3D amdgpu_debugfs_gfxoff_write, + .read_iter =3D amdgpu_debugfs_gfxoff_read_iter, + .write_iter =3D amdgpu_debugfs_gfxoff_write_iter, .llseek =3D default_llseek }; =20 static const struct file_operations amdgpu_debugfs_gfxoff_status_fops =3D { .owner =3D THIS_MODULE, - .read =3D amdgpu_debugfs_gfxoff_status_read, + .read_iter =3D amdgpu_debugfs_gfxoff_status_read_iter, .llseek =3D default_llseek }; =20 static const struct file_operations amdgpu_debugfs_gfxoff_count_fops =3D { .owner =3D THIS_MODULE, - .read =3D amdgpu_debugfs_gfxoff_count_read, + .read_iter =3D amdgpu_debugfs_gfxoff_count_read_iter, .llseek =3D default_llseek }; =20 static const struct file_operations amdgpu_debugfs_gfxoff_residency_fops = =3D { .owner =3D THIS_MODULE, - .read =3D amdgpu_debugfs_gfxoff_residency_read, - .write =3D amdgpu_debugfs_gfxoff_residency_write, + .read_iter =3D amdgpu_debugfs_gfxoff_residency_read_iter, + .write_iter =3D amdgpu_debugfs_gfxoff_residency_write_iter, .llseek =3D default_llseek }; =20 @@ -2058,6 +2077,7 @@ static ssize_t amdgpu_reset_dump_register_list_read(s= truct file *f, =20 return len; } +FOPS_READ_ITER_HELPER(amdgpu_reset_dump_register_list_read); =20 static ssize_t amdgpu_reset_dump_register_list_write(struct file *f, const char __user *buf, size_t size, loff_t *pos) @@ -2111,11 +2131,12 @@ static ssize_t amdgpu_reset_dump_register_list_writ= e(struct file *f, kfree(new); return ret; } +FOPS_WRITE_ITER_HELPER(amdgpu_reset_dump_register_list_write); =20 static const struct file_operations amdgpu_reset_dump_register_list =3D { .owner =3D THIS_MODULE, - .read =3D amdgpu_reset_dump_register_list_read, - .write =3D amdgpu_reset_dump_register_list_write, + .read_iter =3D amdgpu_reset_dump_register_list_read_iter, + .write_iter =3D amdgpu_reset_dump_register_list_write_iter, .llseek =3D default_llseek }; =20 diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_fw_attestation.c b/drivers/g= pu/drm/amd/amdgpu/amdgpu_fw_attestation.c index 2d4b67175b55..a5edb6de1c10 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_fw_attestation.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_fw_attestation.c @@ -50,23 +50,22 @@ struct FW_ATT_RECORD { uint32_t AttFwTaId; /* Ta ID (only in TA Attestation Table) = */ }; =20 -static ssize_t amdgpu_fw_attestation_debugfs_read(struct file *f, - char __user *buf, - size_t size, - loff_t *pos) +static ssize_t amdgpu_fw_attestation_debugfs_read(struct kiocb *iocb, + struct iov_iter *to) { - struct amdgpu_device *adev =3D (struct amdgpu_device *)file_inode(f)->i_p= rivate; + struct amdgpu_device *adev =3D file_inode(iocb->ki_filp)->i_private; uint64_t records_addr =3D 0; uint64_t vram_pos =3D 0; struct FW_ATT_DB_HEADER fw_att_hdr =3D {0}; struct FW_ATT_RECORD fw_att_record =3D {0}; + size_t size =3D iov_iter_count(to); =20 if (size < sizeof(struct FW_ATT_RECORD)) { DRM_WARN("FW attestation input buffer not enough memory"); return -EINVAL; } =20 - if ((*pos + sizeof(struct FW_ATT_DB_HEADER)) >=3D FW_ATTESTATION_MAX_SIZE= ) { + if ((iocb->ki_pos + sizeof(struct FW_ATT_DB_HEADER)) >=3D FW_ATTESTATION_= MAX_SIZE) { DRM_WARN("FW attestation out of bounds"); return 0; } @@ -78,7 +77,7 @@ static ssize_t amdgpu_fw_attestation_debugfs_read(struct = file *f, =20 vram_pos =3D records_addr - adev->gmc.vram_start; =20 - if (*pos =3D=3D 0) { + if (iocb->ki_pos =3D=3D 0) { amdgpu_device_vram_access(adev, vram_pos, (uint32_t *)&fw_att_hdr, @@ -94,7 +93,7 @@ static ssize_t amdgpu_fw_attestation_debugfs_read(struct = file *f, } =20 amdgpu_device_vram_access(adev, - vram_pos + sizeof(struct FW_ATT_DB_HEADER) + *pos, + vram_pos + sizeof(struct FW_ATT_DB_HEADER) + iocb->ki_pos, (uint32_t *)&fw_att_record, sizeof(struct FW_ATT_RECORD), false); @@ -102,18 +101,16 @@ static ssize_t amdgpu_fw_attestation_debugfs_read(str= uct file *f, if (fw_att_record.RecordValid !=3D FW_ATTESTATION_RECORD_VALID) return 0; =20 - if (copy_to_user(buf, (void *)&fw_att_record, sizeof(struct FW_ATT_RECORD= ))) + if (!copy_to_iter_full((void *)&fw_att_record, sizeof(struct FW_ATT_RECOR= D), to)) return -EINVAL; =20 - *pos +=3D sizeof(struct FW_ATT_RECORD); - + iocb->ki_pos +=3D sizeof(struct FW_ATT_RECORD); return sizeof(struct FW_ATT_RECORD); } =20 static const struct file_operations amdgpu_fw_attestation_debugfs_ops =3D { .owner =3D THIS_MODULE, - .read =3D amdgpu_fw_attestation_debugfs_read, - .write =3D NULL, + .read_iter =3D amdgpu_fw_attestation_debugfs_read, .llseek =3D default_llseek }; =20 diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_mca.c b/drivers/gpu/drm/amd/= amdgpu/amdgpu_mca.c index 24ad4b97177b..c6a971a260df 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_mca.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_mca.c @@ -480,7 +480,7 @@ static int mca_dump_ce_open(struct inode *inode, struct= file *file) static const struct file_operations mca_ce_dump_debug_fops =3D { .owner =3D THIS_MODULE, .open =3D mca_dump_ce_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D single_release, }; @@ -498,7 +498,7 @@ static int mca_dump_ue_open(struct inode *inode, struct= file *file) static const struct file_operations mca_ue_dump_debug_fops =3D { .owner =3D THIS_MODULE, .open =3D mca_dump_ue_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D single_release, }; diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp_ta.c b/drivers/gpu/drm/a= md/amdgpu/amdgpu_psp_ta.c index ca5c86e5f7cd..f96fde084fc6 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp_ta.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp_ta.c @@ -26,12 +26,9 @@ =20 #if defined(CONFIG_DEBUG_FS) =20 -static ssize_t ta_if_load_debugfs_write(struct file *fp, const char *buf, - size_t len, loff_t *off); -static ssize_t ta_if_unload_debugfs_write(struct file *fp, const char *buf, - size_t len, loff_t *off); -static ssize_t ta_if_invoke_debugfs_write(struct file *fp, const char *buf, - size_t len, loff_t *off); +static ssize_t ta_if_load_debugfs_write_iter(struct kiocb *, struct iov_it= er *); +static ssize_t ta_if_unload_debugfs_write_iter(struct kiocb *, struct iov_= iter *); +static ssize_t ta_if_invoke_debugfs_write_iter(struct kiocb *, struct iov_= iter *); =20 static uint32_t get_bin_version(const uint8_t *bin) { @@ -84,19 +81,19 @@ static void set_ta_context_funcs(struct psp_context *ps= p, } =20 static const struct file_operations ta_load_debugfs_fops =3D { - .write =3D ta_if_load_debugfs_write, + .write_iter =3D ta_if_load_debugfs_write_iter, .llseek =3D default_llseek, .owner =3D THIS_MODULE }; =20 static const struct file_operations ta_unload_debugfs_fops =3D { - .write =3D ta_if_unload_debugfs_write, + .write_iter =3D ta_if_unload_debugfs_write_iter, .llseek =3D default_llseek, .owner =3D THIS_MODULE }; =20 static const struct file_operations ta_invoke_debugfs_fops =3D { - .write =3D ta_if_invoke_debugfs_write, + .write_iter =3D ta_if_invoke_debugfs_write_iter, .llseek =3D default_llseek, .owner =3D THIS_MODULE }; @@ -240,6 +237,7 @@ static ssize_t ta_if_load_debugfs_write(struct file *fp= , const char *buf, size_t =20 return ret; } +FOPS_WRITE_ITER_HELPER(ta_if_load_debugfs_write); =20 static ssize_t ta_if_unload_debugfs_write(struct file *fp, const char *buf= , size_t len, loff_t *off) { @@ -286,6 +284,7 @@ static ssize_t ta_if_unload_debugfs_write(struct file *= fp, const char *buf, size =20 return ret; } +FOPS_WRITE_ITER_HELPER(ta_if_unload_debugfs_write); =20 static ssize_t ta_if_invoke_debugfs_write(struct file *fp, const char *buf= , size_t len, loff_t *off) { @@ -370,6 +369,7 @@ static ssize_t ta_if_invoke_debugfs_write(struct file *= fp, const char *buf, size =20 return ret; } +FOPS_WRITE_ITER_HELPER(ta_if_invoke_debugfs_write); =20 void amdgpu_ta_if_debugfs_init(struct amdgpu_device *adev) { diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_rap.c b/drivers/gpu/drm/amd/= amdgpu/amdgpu_rap.c index 123bcf5c2bb1..b946c94972b2 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_rap.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_rap.c @@ -40,21 +40,22 @@ * from header file ta_rap_if.h * */ -static ssize_t amdgpu_rap_debugfs_write(struct file *f, const char __user = *buf, - size_t size, loff_t *pos) +static ssize_t amdgpu_rap_debugfs_write(struct kiocb *iocb, + struct iov_iter *from) { - struct amdgpu_device *adev =3D (struct amdgpu_device *)file_inode(f)->i_p= rivate; + struct amdgpu_device *adev =3D file_inode(iocb->ki_filp)->i_private; struct ta_rap_shared_memory *rap_shared_mem; struct ta_rap_cmd_output_data *rap_cmd_output; struct drm_device *dev =3D adev_to_drm(adev); + size_t size =3D iov_iter_count(from); uint32_t op; enum ta_rap_status status; int ret; =20 - if (*pos || size !=3D 2) + if (iocb->ki_pos || size !=3D 2) return -EINVAL; =20 - ret =3D kstrtouint_from_user(buf, size, *pos, &op); + ret =3D kstrtouint_from_iter(from, size, iocb->ki_pos, &op); if (ret) return ret; =20 @@ -109,8 +110,7 @@ static ssize_t amdgpu_rap_debugfs_write(struct file *f,= const char __user *buf, =20 static const struct file_operations amdgpu_rap_debugfs_ops =3D { .owner =3D THIS_MODULE, - .read =3D NULL, - .write =3D amdgpu_rap_debugfs_write, + .write_iter =3D amdgpu_rap_debugfs_write, .llseek =3D default_llseek }; =20 diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c b/drivers/gpu/drm/amd/= amdgpu/amdgpu_ras.c index 8ebab6f22e5a..f8daf833f0c4 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c @@ -201,13 +201,13 @@ static int amdgpu_reserve_page_direct(struct amdgpu_d= evice *adev, uint64_t addre return 0; } =20 -static ssize_t amdgpu_ras_debugfs_read(struct file *f, char __user *buf, - size_t size, loff_t *pos) +static ssize_t amdgpu_ras_debugfs_read(struct kiocb *iocb, struct iov_iter= *to) { - struct ras_manager *obj =3D (struct ras_manager *)file_inode(f)->i_privat= e; + struct ras_manager *obj =3D file_inode(iocb->ki_filp)->i_private; struct ras_query_if info =3D { .head =3D obj->head, }; + size_t size =3D iov_iter_count(to); ssize_t s; char val[128]; =20 @@ -224,25 +224,23 @@ static ssize_t amdgpu_ras_debugfs_read(struct file *f= , char __user *buf, s =3D snprintf(val, sizeof(val), "%s: %lu\n%s: %lu\n", "ue", info.ue_count, "ce", info.ce_count); - if (*pos >=3D s) + if (iocb->ki_pos >=3D s) return 0; =20 - s -=3D *pos; + s -=3D iocb->ki_pos; s =3D min_t(u64, s, size); =20 =20 - if (copy_to_user(buf, &val[*pos], s)) + if (!copy_to_iter_full(&val[iocb->ki_pos], s, to)) return -EINVAL; =20 - *pos +=3D s; - + iocb->ki_pos +=3D s; return s; } =20 static const struct file_operations amdgpu_ras_debugfs_ops =3D { .owner =3D THIS_MODULE, - .read =3D amdgpu_ras_debugfs_read, - .write =3D NULL, + .read_iter =3D amdgpu_ras_debugfs_read, .llseek =3D default_llseek }; =20 @@ -541,6 +539,7 @@ static ssize_t amdgpu_ras_debugfs_ctrl_write(struct fil= e *f, =20 return size; } +FOPS_WRITE_ITER_HELPER(amdgpu_ras_debugfs_ctrl_write); =20 /** * DOC: AMDGPU RAS debugfs EEPROM table reset interface @@ -558,12 +557,11 @@ static ssize_t amdgpu_ras_debugfs_ctrl_write(struct f= ile *f, * will reset EEPROM table to 0 entries. * */ -static ssize_t amdgpu_ras_debugfs_eeprom_write(struct file *f, - const char __user *buf, - size_t size, loff_t *pos) +static ssize_t amdgpu_ras_debugfs_eeprom_write(struct kiocb *iocb, + struct iov_iter *from) { - struct amdgpu_device *adev =3D - (struct amdgpu_device *)file_inode(f)->i_private; + struct amdgpu_device *adev =3D file_inode(iocb->ki_filp)->i_private; + size_t size =3D iov_iter_count(from); int ret; =20 ret =3D amdgpu_ras_eeprom_reset_table( @@ -581,15 +579,13 @@ static ssize_t amdgpu_ras_debugfs_eeprom_write(struct= file *f, =20 static const struct file_operations amdgpu_ras_debugfs_ctrl_ops =3D { .owner =3D THIS_MODULE, - .read =3D NULL, - .write =3D amdgpu_ras_debugfs_ctrl_write, + .write_iter =3D amdgpu_ras_debugfs_ctrl_write_iter, .llseek =3D default_llseek }; =20 static const struct file_operations amdgpu_ras_debugfs_eeprom_ops =3D { .owner =3D THIS_MODULE, - .read =3D NULL, - .write =3D amdgpu_ras_debugfs_eeprom_write, + .write_iter =3D amdgpu_ras_debugfs_eeprom_write, .llseek =3D default_llseek }; =20 diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ras_eeprom.c b/drivers/gpu/d= rm/amd/amdgpu/amdgpu_ras_eeprom.c index b12808c0c331..4d62691e3804 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ras_eeprom.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ras_eeprom.c @@ -1001,12 +1001,12 @@ uint32_t amdgpu_ras_eeprom_max_record_count(struct = amdgpu_ras_eeprom_control *co } =20 static ssize_t -amdgpu_ras_debugfs_eeprom_size_read(struct file *f, char __user *buf, - size_t size, loff_t *pos) +amdgpu_ras_debugfs_eeprom_size_read(struct kiocb *iocb, struct iov_iter *t= o) { - struct amdgpu_device *adev =3D (struct amdgpu_device *)file_inode(f)->i_p= rivate; + struct amdgpu_device *adev =3D file_inode(iocb->ki_filp)->i_private; struct amdgpu_ras *ras =3D amdgpu_ras_get_context(adev); struct amdgpu_ras_eeprom_control *control =3D ras ? &ras->eeprom_control = : NULL; + size_t size =3D iov_iter_count(to); u8 data[50]; int res; =20 @@ -1020,24 +1020,22 @@ amdgpu_ras_debugfs_eeprom_size_read(struct file *f,= char __user *buf, RAS_TBL_SIZE_BYTES, control->ras_max_record_count); } =20 - if (*pos >=3D res) + if (iocb->ki_pos >=3D res) return 0; =20 - res -=3D *pos; + res -=3D iocb->ki_pos; res =3D min_t(size_t, res, size); =20 - if (copy_to_user(buf, &data[*pos], res)) + if (!copy_to_iter_full(&data[iocb->ki_pos], res, to)) return -EFAULT; =20 - *pos +=3D res; - + iocb->ki_pos +=3D res; return res; } =20 const struct file_operations amdgpu_ras_debugfs_eeprom_size_ops =3D { .owner =3D THIS_MODULE, - .read =3D amdgpu_ras_debugfs_eeprom_size_read, - .write =3D NULL, + .read_iter =3D amdgpu_ras_debugfs_eeprom_size_read, .llseek =3D default_llseek, }; =20 @@ -1215,11 +1213,11 @@ amdgpu_ras_debugfs_eeprom_table_read(struct file *f= , char __user *buf, return amdgpu_ras_debugfs_table_read(f, buf, size, pos); } } +FOPS_READ_ITER_HELPER(amdgpu_ras_debugfs_eeprom_table_read); =20 const struct file_operations amdgpu_ras_debugfs_eeprom_table_ops =3D { .owner =3D THIS_MODULE, - .read =3D amdgpu_ras_debugfs_eeprom_table_read, - .write =3D NULL, + .read_iter =3D amdgpu_ras_debugfs_eeprom_table_read_iter, .llseek =3D default_llseek, }; =20 diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c b/drivers/gpu/drm/amd= /amdgpu/amdgpu_ring.c index 06f0a6534a94..a03bc2765b88 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c @@ -512,10 +512,11 @@ static ssize_t amdgpu_debugfs_ring_read(struct file *= f, char __user *buf, =20 return result; } +FOPS_READ_ITER_HELPER(amdgpu_debugfs_ring_read); =20 static const struct file_operations amdgpu_debugfs_ring_fops =3D { .owner =3D THIS_MODULE, - .read =3D amdgpu_debugfs_ring_read, + .read_iter =3D amdgpu_debugfs_ring_read_iter, .llseek =3D default_llseek }; =20 @@ -577,10 +578,11 @@ static ssize_t amdgpu_debugfs_mqd_read(struct file *f= , char __user *buf, kfree(kbuf); return r; } +FOPS_READ_ITER_HELPER(amdgpu_debugfs_mqd_read); =20 static const struct file_operations amdgpu_debugfs_mqd_fops =3D { .owner =3D THIS_MODULE, - .read =3D amdgpu_debugfs_mqd_read, + .read_iter =3D amdgpu_debugfs_mqd_read_iter, .llseek =3D default_llseek }; =20 diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_securedisplay.c b/drivers/gp= u/drm/amd/amdgpu/amdgpu_securedisplay.c index 8ed0e073656f..f7bfa470979f 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_securedisplay.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_securedisplay.c @@ -88,23 +88,24 @@ void psp_prep_securedisplay_cmd_buf(struct psp_context = *psp, struct ta_securedis =20 #if defined(CONFIG_DEBUG_FS) =20 -static ssize_t amdgpu_securedisplay_debugfs_write(struct file *f, const ch= ar __user *buf, - size_t size, loff_t *pos) +static ssize_t amdgpu_securedisplay_debugfs_write(struct kiocb *iocb, + struct iov_iter *from) { - struct amdgpu_device *adev =3D (struct amdgpu_device *)file_inode(f)->i_p= rivate; + struct amdgpu_device *adev =3D file_inode(iocb->ki_filp)->i_private; struct psp_context *psp =3D &adev->psp; struct ta_securedisplay_cmd *securedisplay_cmd; struct drm_device *dev =3D adev_to_drm(adev); + size_t size =3D iov_iter_count(from); uint32_t phy_id; uint32_t op; char str[64]; int ret; =20 - if (*pos || size > sizeof(str) - 1) + if (iocb->ki_pos || size > sizeof(str) - 1) return -EINVAL; =20 memset(str, 0, sizeof(str)); - ret =3D copy_from_user(str, buf, size); + ret =3D !copy_from_iter_full(str, size, from); if (ret) return -EFAULT; =20 @@ -163,8 +164,7 @@ static ssize_t amdgpu_securedisplay_debugfs_write(struc= t file *f, const char __u =20 static const struct file_operations amdgpu_securedisplay_debugfs_ops =3D { .owner =3D THIS_MODULE, - .read =3D NULL, - .write =3D amdgpu_securedisplay_debugfs_write, + .write_iter =3D amdgpu_securedisplay_debugfs_write, .llseek =3D default_llseek }; =20 diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c b/drivers/gpu/drm/amd/= amdgpu/amdgpu_ttm.c index fc418e670fda..dd5a73291d85 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c @@ -2311,30 +2311,29 @@ DEFINE_SHOW_ATTRIBUTE(amdgpu_ttm_page_pool); * * Accesses VRAM via MMIO for debugging purposes. */ -static ssize_t amdgpu_ttm_vram_read(struct file *f, char __user *buf, - size_t size, loff_t *pos) +static ssize_t amdgpu_ttm_vram_read(struct kiocb *iocb, struct iov_iter *t= o) { - struct amdgpu_device *adev =3D file_inode(f)->i_private; + struct amdgpu_device *adev =3D file_inode(iocb->ki_filp)->i_private; + size_t size =3D iov_iter_count(to); ssize_t result =3D 0; =20 - if (size & 0x3 || *pos & 0x3) + if (size & 0x3 || iocb->ki_pos & 0x3) return -EINVAL; =20 - if (*pos >=3D adev->gmc.mc_vram_size) + if (iocb->ki_pos >=3D adev->gmc.mc_vram_size) return -ENXIO; =20 - size =3D min(size, (size_t)(adev->gmc.mc_vram_size - *pos)); + size =3D min(size, (size_t)(adev->gmc.mc_vram_size - iocb->ki_pos)); while (size) { size_t bytes =3D min(size, AMDGPU_TTM_VRAM_MAX_DW_READ * 4); uint32_t value[AMDGPU_TTM_VRAM_MAX_DW_READ]; =20 - amdgpu_device_vram_access(adev, *pos, value, bytes, false); - if (copy_to_user(buf, value, bytes)) + amdgpu_device_vram_access(adev, iocb->ki_pos, value, bytes, false); + if (!copy_to_iter_full(value, bytes, to)) return -EFAULT; =20 result +=3D bytes; - buf +=3D bytes; - *pos +=3D bytes; + iocb->ki_pos +=3D bytes; size -=3D bytes; } =20 @@ -2379,11 +2378,12 @@ static ssize_t amdgpu_ttm_vram_write(struct file *f= , const char __user *buf, =20 return result; } +FOPS_WRITE_ITER_HELPER(amdgpu_ttm_vram_write); =20 static const struct file_operations amdgpu_ttm_vram_fops =3D { .owner =3D THIS_MODULE, - .read =3D amdgpu_ttm_vram_read, - .write =3D amdgpu_ttm_vram_write, + .read_iter =3D amdgpu_ttm_vram_read, + .write_iter =3D amdgpu_ttm_vram_write_iter, .llseek =3D default_llseek, }; =20 @@ -2394,10 +2394,10 @@ static const struct file_operations amdgpu_ttm_vram= _fops =3D { * GPU and the known addresses are not physical addresses but instead * bus addresses (e.g., what you'd put in an IB or ring buffer). */ -static ssize_t amdgpu_iomem_read(struct file *f, char __user *buf, - size_t size, loff_t *pos) +static ssize_t amdgpu_iomem_read(struct kiocb *iocb, struct iov_iter *to) { - struct amdgpu_device *adev =3D file_inode(f)->i_private; + struct amdgpu_device *adev =3D file_inode(iocb->ki_filp)->i_private; + size_t size =3D iov_iter_count(to); struct iommu_domain *dom; ssize_t result =3D 0; int r; @@ -2406,8 +2406,8 @@ static ssize_t amdgpu_iomem_read(struct file *f, char= __user *buf, dom =3D iommu_get_domain_for_dev(adev->dev); =20 while (size) { - phys_addr_t addr =3D *pos & PAGE_MASK; - loff_t off =3D *pos & ~PAGE_MASK; + phys_addr_t addr =3D iocb->ki_pos & PAGE_MASK; + loff_t off =3D iocb->ki_pos & ~PAGE_MASK; size_t bytes =3D PAGE_SIZE - off; unsigned long pfn; struct page *p; @@ -2430,13 +2430,13 @@ static ssize_t amdgpu_iomem_read(struct file *f, ch= ar __user *buf, return -EPERM; =20 ptr =3D kmap_local_page(p); - r =3D copy_to_user(buf, ptr + off, bytes); + r =3D !copy_to_iter_full(ptr + off, bytes, to); kunmap_local(ptr); if (r) return -EFAULT; =20 size -=3D bytes; - *pos +=3D bytes; + iocb->ki_pos +=3D bytes; result +=3D bytes; } =20 @@ -2450,10 +2450,10 @@ static ssize_t amdgpu_iomem_read(struct file *f, ch= ar __user *buf, * GPU and the known addresses are not physical addresses but instead * bus addresses (e.g., what you'd put in an IB or ring buffer). */ -static ssize_t amdgpu_iomem_write(struct file *f, const char __user *buf, - size_t size, loff_t *pos) +static ssize_t amdgpu_iomem_write(struct kiocb *iocb, struct iov_iter *fro= m) { - struct amdgpu_device *adev =3D file_inode(f)->i_private; + struct amdgpu_device *adev =3D file_inode(iocb->ki_filp)->i_private; + size_t size =3D iov_iter_count(from); struct iommu_domain *dom; ssize_t result =3D 0; int r; @@ -2461,8 +2461,8 @@ static ssize_t amdgpu_iomem_write(struct file *f, con= st char __user *buf, dom =3D iommu_get_domain_for_dev(adev->dev); =20 while (size) { - phys_addr_t addr =3D *pos & PAGE_MASK; - loff_t off =3D *pos & ~PAGE_MASK; + phys_addr_t addr =3D iocb->ki_pos & PAGE_MASK; + loff_t off =3D iocb->ki_pos & ~PAGE_MASK; size_t bytes =3D PAGE_SIZE - off; unsigned long pfn; struct page *p; @@ -2481,13 +2481,13 @@ static ssize_t amdgpu_iomem_write(struct file *f, c= onst char __user *buf, return -EPERM; =20 ptr =3D kmap_local_page(p); - r =3D copy_from_user(ptr + off, buf, bytes); + r =3D !copy_from_iter_full(ptr + off, bytes, from); kunmap_local(ptr); if (r) return -EFAULT; =20 size -=3D bytes; - *pos +=3D bytes; + iocb->ki_pos +=3D bytes; result +=3D bytes; } =20 @@ -2496,8 +2496,8 @@ static ssize_t amdgpu_iomem_write(struct file *f, con= st char __user *buf, =20 static const struct file_operations amdgpu_ttm_iomem_fops =3D { .owner =3D THIS_MODULE, - .read =3D amdgpu_iomem_read, - .write =3D amdgpu_iomem_write, + .read_iter =3D amdgpu_iomem_read, + .write_iter =3D amdgpu_iomem_write, .llseek =3D default_llseek }; =20 diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c b/drivers/gpu/drm/amd/= amdgpu/amdgpu_vcn.c index 9c514a606a2f..e2596f9fe6f0 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c @@ -1142,10 +1142,11 @@ static ssize_t amdgpu_debugfs_vcn_fwlog_read(struct= file *f, char __user *buf, *pos +=3D read_bytes; return read_bytes; } +FOPS_READ_ITER_HELPER(amdgpu_debugfs_vcn_fwlog_read); =20 static const struct file_operations amdgpu_debugfs_vcnfwlog_fops =3D { .owner =3D THIS_MODULE, - .read =3D amdgpu_debugfs_vcn_fwlog_read, + .read_iter =3D amdgpu_debugfs_vcn_fwlog_read_iter, .llseek =3D default_llseek }; #endif diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_debugfs.c b/drivers/gpu/drm/amd= /amdkfd/kfd_debugfs.c index 4a5a0a4e00f2..1f03e7915b99 100644 --- a/drivers/gpu/drm/amd/amdkfd/kfd_debugfs.c +++ b/drivers/gpu/drm/amd/amdkfd/kfd_debugfs.c @@ -40,9 +40,10 @@ static int kfd_debugfs_hang_hws_read(struct seq_file *m,= void *data) return 0; } =20 -static ssize_t kfd_debugfs_hang_hws_write(struct file *file, - const char __user *user_buf, size_t size, loff_t *ppos) +static ssize_t kfd_debugfs_hang_hws_write(struct kiocb *iocb, + struct iov_iter *from) { + size_t size =3D iov_iter_count(from); struct kfd_node *dev; char tmp[16]; uint32_t gpu_id; @@ -53,7 +54,7 @@ static ssize_t kfd_debugfs_hang_hws_write(struct file *fi= le, pr_err("Invalid input for gpu id.\n"); goto out; } - if (copy_from_user(tmp, user_buf, size)) { + if (!copy_from_iter_full(tmp, size, from)) { ret =3D -EFAULT; goto out; } @@ -75,7 +76,7 @@ static ssize_t kfd_debugfs_hang_hws_write(struct file *fi= le, static const struct file_operations kfd_debugfs_fops =3D { .owner =3D THIS_MODULE, .open =3D kfd_debugfs_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D single_release, }; @@ -83,8 +84,8 @@ static const struct file_operations kfd_debugfs_fops =3D { static const struct file_operations kfd_debugfs_hang_hws_fops =3D { .owner =3D THIS_MODULE, .open =3D kfd_debugfs_open, - .read =3D seq_read, - .write =3D kfd_debugfs_hang_hws_write, + .read_iter =3D seq_read_iter, + .write_iter =3D kfd_debugfs_hang_hws_write, .llseek =3D seq_lseek, .release =3D single_release, }; diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_smi_events.c b/drivers/gpu/drm/= amd/amdkfd/kfd_smi_events.c index 06ac835190f9..04eba7e9dfae 100644 --- a/drivers/gpu/drm/amd/amdkfd/kfd_smi_events.c +++ b/drivers/gpu/drm/amd/amdkfd/kfd_smi_events.c @@ -46,9 +46,8 @@ struct kfd_smi_client { #define MAX_KFIFO_SIZE 1024 =20 static __poll_t kfd_smi_ev_poll(struct file *, struct poll_table_struct *); -static ssize_t kfd_smi_ev_read(struct file *, char __user *, size_t, loff_= t *); -static ssize_t kfd_smi_ev_write(struct file *, const char __user *, size_t, - loff_t *); +static ssize_t kfd_smi_ev_read_iter(struct kiocb *, struct iov_iter *); +static ssize_t kfd_smi_ev_write(struct kiocb *, struct iov_iter *); static int kfd_smi_ev_release(struct inode *, struct file *); =20 static const char kfd_smi_name[] =3D "kfd_smi_ev"; @@ -56,8 +55,8 @@ static const char kfd_smi_name[] =3D "kfd_smi_ev"; static const struct file_operations kfd_smi_ev_fops =3D { .owner =3D THIS_MODULE, .poll =3D kfd_smi_ev_poll, - .read =3D kfd_smi_ev_read, - .write =3D kfd_smi_ev_write, + .read_iter =3D kfd_smi_ev_read_iter, + .write_iter =3D kfd_smi_ev_write, .release =3D kfd_smi_ev_release }; =20 @@ -121,16 +120,14 @@ static ssize_t kfd_smi_ev_read(struct file *filep, ch= ar __user *user, kfree(buf); return ret; } +FOPS_READ_ITER_HELPER(kfd_smi_ev_read); =20 -static ssize_t kfd_smi_ev_write(struct file *filep, const char __user *use= r, - size_t size, loff_t *offset) +static ssize_t kfd_smi_ev_write(struct kiocb *iocb, struct iov_iter *from) { - struct kfd_smi_client *client =3D filep->private_data; + struct kfd_smi_client *client =3D iocb->ki_filp->private_data; uint64_t events; =20 - if (!access_ok(user, size) || size < sizeof(events)) - return -EFAULT; - if (copy_from_user(&events, user, sizeof(events))) + if (!copy_from_iter_full(&events, sizeof(events), from)) return -EFAULT; =20 WRITE_ONCE(client->events, events); diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c b/dr= ivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c index eee4945653e2..ee1bd4372074 100644 --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c @@ -249,6 +249,7 @@ static ssize_t dp_link_settings_read(struct file *f, ch= ar __user *buf, kfree(rd_buf); return result; } +FOPS_READ_ITER_HELPER(dp_link_settings_read); =20 static ssize_t dp_link_settings_write(struct file *f, const char __user *b= uf, size_t size, loff_t *pos) @@ -336,6 +337,7 @@ static ssize_t dp_link_settings_write(struct file *f, c= onst char __user *buf, kfree(wr_buf); return size; } +FOPS_WRITE_ITER_HELPER(dp_link_settings_write); =20 static bool dp_mst_is_end_device(struct amdgpu_dm_connector *aconnector) { @@ -483,6 +485,7 @@ static ssize_t dp_mst_link_setting(struct file *f, cons= t char __user *buf, kfree(wr_buf); return size; } +FOPS_WRITE_ITER_HELPER(dp_mst_link_setting); =20 /* function: get current DP PHY settings: voltage swing, pre-emphasis, * post-cursor2 (defined by VESA DP specification) @@ -566,6 +569,7 @@ static ssize_t dp_phy_settings_read(struct file *f, cha= r __user *buf, kfree(rd_buf); return result; } +FOPS_READ_ITER_HELPER(dp_phy_settings_read); =20 static int dp_lttpr_status_show(struct seq_file *m, void *unused) { @@ -686,6 +690,7 @@ static ssize_t dp_phy_settings_write(struct file *f, co= nst char __user *buf, kfree(wr_buf); return size; } +FOPS_WRITE_ITER_HELPER(dp_phy_settings_write); =20 /* function description * @@ -892,6 +897,7 @@ static ssize_t dp_phy_test_pattern_debugfs_write(struct= file *f, const char __us =20 return size; } +FOPS_WRITE_ITER_HELPER(dp_phy_test_pattern_debugfs_write); =20 /* * Returns the DMCUB tracebuffer contents. @@ -1149,6 +1155,7 @@ static ssize_t dp_dsc_passthrough_set(struct file *f,= const char __user *buf, kfree(wr_buf); return 0; } +FOPS_WRITE_ITER_HELPER(dp_dsc_passthrough_set); =20 /* * Returns the HDCP capability of the Display (1.4 for now). @@ -1270,6 +1277,7 @@ static ssize_t dp_sdp_message_debugfs_write(struct fi= le *f, const char __user *b =20 return write_size; } +FOPS_WRITE_ITER_HELPER(dp_sdp_message_debugfs_write); =20 /* function: Read link's DSC & FEC capabilities * @@ -1456,6 +1464,7 @@ static ssize_t trigger_hotplug(struct file *f, const = char __user *buf, =20 return size; } +FOPS_WRITE_ITER_HELPER(trigger_hotplug); =20 /* function: read DSC status on the connector * @@ -1527,6 +1536,7 @@ static ssize_t dp_dsc_clock_en_read(struct file *f, c= har __user *buf, kfree(rd_buf); return result; } +FOPS_READ_ITER_HELPER(dp_dsc_clock_en_read); =20 /* function: write force DSC on the connector * @@ -1641,6 +1651,7 @@ static ssize_t dp_dsc_clock_en_write(struct file *f, = const char __user *buf, kfree(wr_buf); return size; } +FOPS_WRITE_ITER_HELPER(dp_dsc_clock_en_write); =20 /* function: read DSC slice width parameter on the connector * @@ -1713,6 +1724,7 @@ static ssize_t dp_dsc_slice_width_read(struct file *f= , char __user *buf, kfree(rd_buf); return result; } +FOPS_READ_ITER_HELPER(dp_dsc_slice_width_read); =20 /* function: write DSC slice width parameter * @@ -1825,6 +1837,7 @@ static ssize_t dp_dsc_slice_width_write(struct file *= f, const char __user *buf, kfree(wr_buf); return size; } +FOPS_WRITE_ITER_HELPER(dp_dsc_slice_width_write); =20 /* function: read DSC slice height parameter on the connector * @@ -1897,6 +1910,7 @@ static ssize_t dp_dsc_slice_height_read(struct file *= f, char __user *buf, kfree(rd_buf); return result; } +FOPS_READ_ITER_HELPER(dp_dsc_slice_height_read); =20 /* function: write DSC slice height parameter * @@ -2009,6 +2023,7 @@ static ssize_t dp_dsc_slice_height_write(struct file = *f, const char __user *buf, kfree(wr_buf); return size; } +FOPS_WRITE_ITER_HELPER(dp_dsc_slice_height_write); =20 /* function: read DSC target rate on the connector in bits per pixel * @@ -2077,6 +2092,7 @@ static ssize_t dp_dsc_bits_per_pixel_read(struct file= *f, char __user *buf, kfree(rd_buf); return result; } +FOPS_READ_ITER_HELPER(dp_dsc_bits_per_pixel_read); =20 /* function: write DSC target rate in bits per pixel * @@ -2181,6 +2197,7 @@ static ssize_t dp_dsc_bits_per_pixel_write(struct fil= e *f, const char __user *bu kfree(wr_buf); return size; } +FOPS_WRITE_ITER_HELPER(dp_dsc_bits_per_pixel_write); =20 /* function: read DSC picture width parameter on the connector * @@ -2252,6 +2269,7 @@ static ssize_t dp_dsc_pic_width_read(struct file *f, = char __user *buf, kfree(rd_buf); return result; } +FOPS_READ_ITER_HELPER(dp_dsc_pic_width_read); =20 static ssize_t dp_dsc_pic_height_read(struct file *f, char __user *buf, size_t size, loff_t *pos) @@ -2308,6 +2326,7 @@ static ssize_t dp_dsc_pic_height_read(struct file *f,= char __user *buf, kfree(rd_buf); return result; } +FOPS_READ_ITER_HELPER(dp_dsc_pic_height_read); =20 /* function: read DSC chunk size parameter on the connector * @@ -2379,6 +2398,7 @@ static ssize_t dp_dsc_chunk_size_read(struct file *f,= char __user *buf, kfree(rd_buf); return result; } +FOPS_READ_ITER_HELPER(dp_dsc_chunk_size_read); =20 /* function: read DSC slice bpg offset on the connector * @@ -2450,7 +2470,7 @@ static ssize_t dp_dsc_slice_bpg_offset_read(struct fi= le *f, char __user *buf, kfree(rd_buf); return result; } - +FOPS_READ_ITER_HELPER(dp_dsc_slice_bpg_offset_read); =20 /* * function description: Read max_requested_bpc property from the connector @@ -2511,7 +2531,7 @@ static ssize_t dp_max_bpc_read(struct file *f, char _= _user *buf, kfree(rd_buf); return result; } - +FOPS_READ_ITER_HELPER(dp_max_bpc_read); =20 /* * function description: Set max_requested_bpc property on the connector @@ -2593,6 +2613,7 @@ static ssize_t dp_max_bpc_write(struct file *f, const= char __user *buf, kfree(wr_buf); return size; } +FOPS_WRITE_ITER_HELPER(dp_max_bpc_write); =20 /* * Backlight at this moment. Read only. @@ -2751,104 +2772,104 @@ DEFINE_SHOW_ATTRIBUTE(is_dpia_link); =20 static const struct file_operations dp_dsc_clock_en_debugfs_fops =3D { .owner =3D THIS_MODULE, - .read =3D dp_dsc_clock_en_read, - .write =3D dp_dsc_clock_en_write, + .read_iter =3D dp_dsc_clock_en_read_iter, + .write_iter =3D dp_dsc_clock_en_write_iter, .llseek =3D default_llseek }; =20 static const struct file_operations dp_dsc_slice_width_debugfs_fops =3D { .owner =3D THIS_MODULE, - .read =3D dp_dsc_slice_width_read, - .write =3D dp_dsc_slice_width_write, + .read_iter =3D dp_dsc_slice_width_read_iter, + .write_iter =3D dp_dsc_slice_width_write_iter, .llseek =3D default_llseek }; =20 static const struct file_operations dp_dsc_slice_height_debugfs_fops =3D { .owner =3D THIS_MODULE, - .read =3D dp_dsc_slice_height_read, - .write =3D dp_dsc_slice_height_write, + .read_iter =3D dp_dsc_slice_height_read_iter, + .write_iter =3D dp_dsc_slice_height_write_iter, .llseek =3D default_llseek }; =20 static const struct file_operations dp_dsc_bits_per_pixel_debugfs_fops =3D= { .owner =3D THIS_MODULE, - .read =3D dp_dsc_bits_per_pixel_read, - .write =3D dp_dsc_bits_per_pixel_write, + .read_iter =3D dp_dsc_bits_per_pixel_read_iter, + .write_iter =3D dp_dsc_bits_per_pixel_write_iter, .llseek =3D default_llseek }; =20 static const struct file_operations dp_dsc_pic_width_debugfs_fops =3D { .owner =3D THIS_MODULE, - .read =3D dp_dsc_pic_width_read, + .read_iter =3D dp_dsc_pic_width_read_iter, .llseek =3D default_llseek }; =20 static const struct file_operations dp_dsc_pic_height_debugfs_fops =3D { .owner =3D THIS_MODULE, - .read =3D dp_dsc_pic_height_read, + .read_iter =3D dp_dsc_pic_height_read_iter, .llseek =3D default_llseek }; =20 static const struct file_operations dp_dsc_chunk_size_debugfs_fops =3D { .owner =3D THIS_MODULE, - .read =3D dp_dsc_chunk_size_read, + .read_iter =3D dp_dsc_chunk_size_read_iter, .llseek =3D default_llseek }; =20 static const struct file_operations dp_dsc_slice_bpg_offset_debugfs_fops = =3D { .owner =3D THIS_MODULE, - .read =3D dp_dsc_slice_bpg_offset_read, + .read_iter =3D dp_dsc_slice_bpg_offset_read_iter, .llseek =3D default_llseek }; =20 static const struct file_operations trigger_hotplug_debugfs_fops =3D { .owner =3D THIS_MODULE, - .write =3D trigger_hotplug, + .write_iter =3D trigger_hotplug_iter, .llseek =3D default_llseek }; =20 static const struct file_operations dp_link_settings_debugfs_fops =3D { .owner =3D THIS_MODULE, - .read =3D dp_link_settings_read, - .write =3D dp_link_settings_write, + .read_iter =3D dp_link_settings_read_iter, + .write_iter =3D dp_link_settings_write_iter, .llseek =3D default_llseek }; =20 static const struct file_operations dp_phy_settings_debugfs_fop =3D { .owner =3D THIS_MODULE, - .read =3D dp_phy_settings_read, - .write =3D dp_phy_settings_write, + .read_iter =3D dp_phy_settings_read_iter, + .write_iter =3D dp_phy_settings_write_iter, .llseek =3D default_llseek }; =20 static const struct file_operations dp_phy_test_pattern_fops =3D { .owner =3D THIS_MODULE, - .write =3D dp_phy_test_pattern_debugfs_write, + .write_iter =3D dp_phy_test_pattern_debugfs_write_iter, .llseek =3D default_llseek }; =20 static const struct file_operations sdp_message_fops =3D { .owner =3D THIS_MODULE, - .write =3D dp_sdp_message_debugfs_write, + .write_iter =3D dp_sdp_message_debugfs_write_iter, .llseek =3D default_llseek }; =20 static const struct file_operations dp_max_bpc_debugfs_fops =3D { .owner =3D THIS_MODULE, - .read =3D dp_max_bpc_read, - .write =3D dp_max_bpc_write, + .read_iter =3D dp_max_bpc_read_iter, + .write_iter =3D dp_max_bpc_write_iter, .llseek =3D default_llseek }; =20 static const struct file_operations dp_dsc_disable_passthrough_debugfs_fop= s =3D { .owner =3D THIS_MODULE, - .write =3D dp_dsc_passthrough_set, + .write_iter =3D dp_dsc_passthrough_set_iter, .llseek =3D default_llseek }; =20 static const struct file_operations dp_mst_link_settings_debugfs_fops =3D { .owner =3D THIS_MODULE, - .write =3D dp_mst_link_setting, + .write_iter =3D dp_mst_link_setting_iter, .llseek =3D default_llseek }; =20 @@ -3275,6 +3296,7 @@ static ssize_t edp_ilr_write(struct file *f, const ch= ar __user *buf, kfree(wr_buf); return size; } +FOPS_WRITE_ITER_HELPER(edp_ilr_write); =20 static int edp_ilr_open(struct inode *inode, struct file *file) { @@ -3284,10 +3306,10 @@ static int edp_ilr_open(struct inode *inode, struct= file *file) static const struct file_operations edp_ilr_debugfs_fops =3D { .owner =3D THIS_MODULE, .open =3D edp_ilr_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D single_release, - .write =3D edp_ilr_write + .write_iter =3D edp_ilr_write_iter }; =20 void connector_debugfs_init(struct amdgpu_dm_connector *connector) @@ -3552,18 +3574,15 @@ void crtc_debugfs_init(struct drm_crtc *crtc) * Writes DTN log state to the user supplied buffer. * Example usage: cat /sys/kernel/debug/dri/0/amdgpu_dm_dtn_log */ -static ssize_t dtn_log_read( - struct file *f, - char __user *buf, - size_t size, - loff_t *pos) +static ssize_t dtn_log_read(struct kiocb *iocb, struct iov_iter *to) { - struct amdgpu_device *adev =3D file_inode(f)->i_private; + struct amdgpu_device *adev =3D file_inode(iocb->ki_filp)->i_private; struct dc *dc =3D adev->dm.dc; struct dc_log_buffer_ctx log_ctx =3D { 0 }; + size_t size =3D iov_iter_count(to); ssize_t result =3D 0; =20 - if (!buf || !size) + if (!size) return -EINVAL; =20 if (!dc->hwss.log_hw_state) @@ -3571,13 +3590,13 @@ static ssize_t dtn_log_read( =20 dc->hwss.log_hw_state(dc, &log_ctx); =20 - if (*pos < log_ctx.pos) { - size_t to_copy =3D log_ctx.pos - *pos; + if (iocb->ki_pos < log_ctx.pos) { + size_t to_copy =3D log_ctx.pos - iocb->ki_pos; =20 to_copy =3D min(to_copy, size); =20 - if (!copy_to_user(buf, log_ctx.buf + *pos, to_copy)) { - *pos +=3D to_copy; + if (copy_to_iter_full(log_ctx.buf + iocb->ki_pos, to_copy, to)) { + iocb->ki_pos +=3D to_copy; result =3D to_copy; } } @@ -3591,13 +3610,10 @@ static ssize_t dtn_log_read( * Writes DTN log state to dmesg when triggered via a write. * Example usage: echo 1 > /sys/kernel/debug/dri/0/amdgpu_dm_dtn_log */ -static ssize_t dtn_log_write( - struct file *f, - const char __user *buf, - size_t size, - loff_t *pos) +static ssize_t dtn_log_write(struct kiocb *iocb, struct iov_iter *from) { - struct amdgpu_device *adev =3D file_inode(f)->i_private; + struct amdgpu_device *adev =3D file_inode(iocb->ki_filp)->i_private; + size_t size =3D iov_iter_count(from); struct dc *dc =3D adev->dm.dc; =20 /* Write triggers log output via dmesg. */ @@ -3972,18 +3988,19 @@ static ssize_t dcc_en_bits_read( kfree(rd_buf); return result; } +FOPS_READ_ITER_HELPER(dcc_en_bits_read); =20 void dtn_debugfs_init(struct amdgpu_device *adev) { static const struct file_operations dtn_log_fops =3D { .owner =3D THIS_MODULE, - .read =3D dtn_log_read, - .write =3D dtn_log_write, + .read_iter =3D dtn_log_read, + .write_iter =3D dtn_log_write, .llseek =3D default_llseek }; static const struct file_operations dcc_en_bits_fops =3D { .owner =3D THIS_MODULE, - .read =3D dcc_en_bits_read, + .read_iter =3D dcc_en_bits_read_iter, .llseek =3D default_llseek }; =20 diff --git a/drivers/gpu/drm/amd/pm/amdgpu_pm.c b/drivers/gpu/drm/amd/pm/am= dgpu_pm.c index f09b9d49297e..d78f7b351f7d 100644 --- a/drivers/gpu/drm/amd/pm/amdgpu_pm.c +++ b/drivers/gpu/drm/amd/pm/amdgpu_pm.c @@ -4572,10 +4572,9 @@ DEFINE_SHOW_ATTRIBUTE(amdgpu_debugfs_pm_info); * * Reads debug memory region allocated to PMFW */ -static ssize_t amdgpu_pm_prv_buffer_read(struct file *f, char __user *buf, - size_t size, loff_t *pos) +static ssize_t amdgpu_pm_prv_buffer_read(struct kiocb *iocb, struct iov_it= er *to) { - struct amdgpu_device *adev =3D file_inode(f)->i_private; + struct amdgpu_device *adev =3D file_inode(iocb->ki_filp)->i_private; size_t smu_prv_buf_size; void *smu_prv_buf; int ret =3D 0; @@ -4592,14 +4591,14 @@ static ssize_t amdgpu_pm_prv_buffer_read(struct fil= e *f, char __user *buf, if (!smu_prv_buf || !smu_prv_buf_size) return -EINVAL; =20 - return simple_read_from_buffer(buf, size, pos, smu_prv_buf, - smu_prv_buf_size); + return simple_copy_to_iter(smu_prv_buf, &iocb->ki_pos, + smu_prv_buf_size, to); } =20 static const struct file_operations amdgpu_debugfs_pm_prv_buffer_fops =3D { .owner =3D THIS_MODULE, .open =3D simple_open, - .read =3D amdgpu_pm_prv_buffer_read, + .read_iter =3D amdgpu_pm_prv_buffer_read, .llseek =3D default_llseek, }; =20 diff --git a/drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c b/drivers/gpu/drm/am= d/pm/swsmu/amdgpu_smu.c index 246b211b1e85..04332432e57f 100644 --- a/drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c +++ b/drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c @@ -3603,20 +3603,13 @@ static int smu_stb_debugfs_open(struct inode *inode= , struct file *filp) return r; } =20 -static ssize_t smu_stb_debugfs_read(struct file *filp, char __user *buf, s= ize_t size, - loff_t *pos) +static ssize_t smu_stb_debugfs_read(struct kiocb *iocb, struct iov_iter *t= o) { - struct amdgpu_device *adev =3D filp->f_inode->i_private; + struct amdgpu_device *adev =3D iocb->ki_filp->f_inode->i_private; struct smu_context *smu =3D adev->powerplay.pp_handle; =20 - - if (!filp->private_data) - return -EINVAL; - - return simple_read_from_buffer(buf, - size, - pos, filp->private_data, - smu->stb_context.stb_buf_size); + return simple_copy_to_iter(adev, &iocb->ki_pos, + smu->stb_context.stb_buf_size, to); } =20 static int smu_stb_debugfs_release(struct inode *inode, struct file *filp) @@ -3637,7 +3630,7 @@ static int smu_stb_debugfs_release(struct inode *inod= e, struct file *filp) static const struct file_operations smu_stb_debugfs_fops =3D { .owner =3D THIS_MODULE, .open =3D smu_stb_debugfs_open, - .read =3D smu_stb_debugfs_read, + .read_iter =3D smu_stb_debugfs_read, .release =3D smu_stb_debugfs_release, .llseek =3D default_llseek, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f50.google.com (mail-io1-f50.google.com [209.85.166.50]) (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 4F41A15E215 for ; Thu, 11 Apr 2024 15:35:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849736; cv=none; b=j2vsuhEVwSBwX9Zml9srm6UdvK6awZvIACGToaXCw2PIPL4BjByB57WC/gsVIP9KGxfKDM6C2sLZgLreNCDFmBj3wZq4LlvdZnruVGi67jq0Lwu72gZPFZ4SAzPY5LlZJ5FDxlr48z8N9weJPSP0ZF1KCQT7/oGiKTTTF5H02EU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849736; c=relaxed/simple; bh=5xe9jRMxDoCB0HZYWN+nEJ6OLqj9Atl3s8UCsRCpkSg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=P8FsLv0vuDi8Bx+wgVjAdl0ImRW02GgEXmUpXte97YxtykGahkGCFuGqxQGLwRmi5mC1Pyd31TEMI8v1wvUqDrSXRJdLnGU7+NUxuklmAHaTNYe12mSmrmACQlbv30eFRvCPKAeqLkPf+QIZQlgwdjiS76hjeTc0XUoJ3/idqCw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=W+0bx4ec; arc=none smtp.client-ip=209.85.166.50 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="W+0bx4ec" Received: by mail-io1-f50.google.com with SMTP id ca18e2360f4ac-7d6112ba6baso58053039f.1 for ; Thu, 11 Apr 2024 08:35:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849734; x=1713454534; 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=onVXsekqILXYLFJqWP9FkN2dHXUc/kieAaTnFHuLlLA=; b=W+0bx4ecEAQFOGGM+aSM9pYvtoUwTZc3AQlU4Z7wwoQ1E/cVIGagqvmVUvGROxq4xd GRhIccEuMH3EnECUpkBWGX3RnhJrQOwkJuFjlNOCufFJlXxK5eWgwNlb0XR3EbpglM6U 6XR8pFyB3FIjiWfSu0FhvvAGzOnC44VAk1hsubxSdItabXLKAaw6q1tq7+VjsHizU2nI Ye59Nf/TC+PU3KMU1h7sO/B5/o0uQlPWtQj1Wb4B9FixHbDtLmRaW+5A+vdkSlbl9hUa h7C/anIYnAdFiVw7cDefNw+maao2H06CypCr9UDx6Hw7+hJ8E1/kSErt5f5/5kKr+uMI WXzw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849734; x=1713454534; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=onVXsekqILXYLFJqWP9FkN2dHXUc/kieAaTnFHuLlLA=; b=PZT7xBWxrMRJv6U5KY+5LccIicR0XTq8RNIFnrgrELxjrJagitTU3kmHR/sSlxwwdJ 2SkHlJ7GNDHrqDzYffbpKCR8YK6Jkqt5kK5l3gQM/5ZF4h0OpxHjMXmLBcZ3TK8uAJ37 Cwk7kcBNkp3b0Rz3+ZX7vqxwwYGsBc2HfYu63OlCj3B0bGElD+L0GDyk1yFJ7a1fYbVa e07hv9UgY/754J8k9kFEHaf65UFwnPBcbV38PC/wJ3nQuEQHHaN4SJZ39IJxJg0DQDzw 2gWNtono7M1thtunVHXvpRS3OWkYuyi/xcBKbvKyqwCmm4TQDq4p4QDY2lTcKdczJl4P uufA== X-Gm-Message-State: AOJu0Yz2+gmYmHyvf7ISyxWAhtDJIjj3bhTDmxnLoiWeR6QpJrLjOjVG fSDIV5wqfHRO5Qb06b0OEB0pmUQlz2eiZwk2kG3CNhtNgBRrmwg5ZADUJEboHssCILTFRJI7tqb Q X-Google-Smtp-Source: AGHT+IGmButBnNJfkfgBXvfJ3qnEJ1rm2MMsS0tuokexDUrQ/pjV+Zi8bhmeft6bKxq1A3aqsge35Q== X-Received: by 2002:a6b:cd08:0:b0:7d5:fe3e:90ff with SMTP id d8-20020a6bcd08000000b007d5fe3e90ffmr203572iog.0.1712849734093; Thu, 11 Apr 2024 08:35:34 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.35.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:35:32 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 140/437] drm: msm: convert to read/write iterators Date: Thu, 11 Apr 2024 09:14:40 -0600 Message-ID: <20240411153126.16201-141-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c | 20 +++++++++---------- drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 20 +++++++++---------- drivers/gpu/drm/msm/dp/dp_debug.c | 15 +++++++------- drivers/gpu/drm/msm/msm_debugfs.c | 4 ++-- drivers/gpu/drm/msm/msm_perf.c | 12 +++++------ drivers/gpu/drm/msm/msm_rd.c | 12 +++++------ 6 files changed, 41 insertions(+), 42 deletions(-) diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c b/drivers/gpu/dr= m/msm/disp/dpu1/dpu_core_perf.c index ef871239adb2..c8971ba26cd4 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c @@ -398,14 +398,15 @@ int dpu_core_perf_crtc_update(struct drm_crtc *crtc, =20 #ifdef CONFIG_DEBUG_FS =20 -static ssize_t _dpu_core_perf_mode_write(struct file *file, - const char __user *user_buf, size_t count, loff_t *ppos) +static ssize_t _dpu_core_perf_mode_write(struct kiocb *iocb, + struct iov_iter *from) { - struct dpu_core_perf *perf =3D file->private_data; + struct dpu_core_perf *perf =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); u32 perf_mode =3D 0; int ret; =20 - ret =3D kstrtouint_from_user(user_buf, count, 0, &perf_mode); + ret =3D kstrtouint_from_iter(from, count, 0, &perf_mode); if (ret) return ret; =20 @@ -426,10 +427,9 @@ static ssize_t _dpu_core_perf_mode_write(struct file *= file, return count; } =20 -static ssize_t _dpu_core_perf_mode_read(struct file *file, - char __user *buff, size_t count, loff_t *ppos) +static ssize_t _dpu_core_perf_mode_read(struct kiocb *iocb, struct iov_ite= r *to) { - struct dpu_core_perf *perf =3D file->private_data; + struct dpu_core_perf *perf =3D iocb->ki_filp->private_data; int len; char buf[128]; =20 @@ -437,13 +437,13 @@ static ssize_t _dpu_core_perf_mode_read(struct file *= file, "mode %d\n", perf->perf_tune.mode); =20 - return simple_read_from_buffer(buff, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 static const struct file_operations dpu_core_perf_mode_fops =3D { .open =3D simple_open, - .read =3D _dpu_core_perf_mode_read, - .write =3D _dpu_core_perf_mode_write, + .read_iter =3D _dpu_core_perf_mode_read, + .write_iter =3D _dpu_core_perf_mode_write, }; =20 int dpu_core_perf_debugfs_init(struct dpu_kms *dpu_kms, struct dentry *par= ent) diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c b/drivers/gpu/drm/msm/= disp/dpu1/dpu_kms.c index a1f5d7c4ab91..0c1484439229 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c @@ -105,16 +105,15 @@ static int dpu_debugfs_safe_stats_show(struct seq_fil= e *s, void *v) } DEFINE_SHOW_ATTRIBUTE(dpu_debugfs_safe_stats); =20 -static ssize_t _dpu_plane_danger_read(struct file *file, - char __user *buff, size_t count, loff_t *ppos) +static ssize_t _dpu_plane_danger_read(struct kiocb *iocb, struct iov_iter = *to) { - struct dpu_kms *kms =3D file->private_data; + struct dpu_kms *kms =3D iocb->ki_filp->private_data; int len; char buf[40]; =20 len =3D scnprintf(buf, sizeof(buf), "%d\n", !kms->has_danger_ctrl); =20 - return simple_read_from_buffer(buff, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 static void _dpu_plane_set_danger_state(struct dpu_kms *kms, bool enable) @@ -140,14 +139,15 @@ static void _dpu_plane_set_danger_state(struct dpu_km= s *kms, bool enable) } } =20 -static ssize_t _dpu_plane_danger_write(struct file *file, - const char __user *user_buf, size_t count, loff_t *ppos) +static ssize_t _dpu_plane_danger_write(struct kiocb *iocb, + struct iov_iter *from) { - struct dpu_kms *kms =3D file->private_data; + struct dpu_kms *kms =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); int disable_panic; int ret; =20 - ret =3D kstrtouint_from_user(user_buf, count, 0, &disable_panic); + ret =3D kstrtouint_from_iter(from, count, 0, &disable_panic); if (ret) return ret; =20 @@ -168,8 +168,8 @@ static ssize_t _dpu_plane_danger_write(struct file *fil= e, =20 static const struct file_operations dpu_plane_danger_enable =3D { .open =3D simple_open, - .read =3D _dpu_plane_danger_read, - .write =3D _dpu_plane_danger_write, + .read_iter =3D _dpu_plane_danger_read, + .write_iter =3D _dpu_plane_danger_write, }; =20 static void dpu_debugfs_danger_init(struct dpu_kms *dpu_kms, diff --git a/drivers/gpu/drm/msm/dp/dp_debug.c b/drivers/gpu/drm/msm/dp/dp_= debug.c index eca5a02f9003..7589f40309ff 100644 --- a/drivers/gpu/drm/msm/dp/dp_debug.c +++ b/drivers/gpu/drm/msm/dp/dp_debug.c @@ -123,23 +123,22 @@ static int dp_test_type_show(struct seq_file *m, void= *data) } DEFINE_SHOW_ATTRIBUTE(dp_test_type); =20 -static ssize_t dp_test_active_write(struct file *file, - const char __user *ubuf, - size_t len, loff_t *offp) +static ssize_t dp_test_active_write(struct kiocb *iocb, struct iov_iter *f= rom) { char *input_buffer; int status =3D 0; const struct dp_debug_private *debug; const struct drm_connector *connector; + size_t len =3D iov_iter_count(from); int val =3D 0; =20 - debug =3D ((struct seq_file *)file->private_data)->private; + debug =3D ((struct seq_file *)iocb->ki_filp->private_data)->private; connector =3D debug->connector; =20 if (len =3D=3D 0) return 0; =20 - input_buffer =3D memdup_user_nul(ubuf, len); + input_buffer =3D iterdup_nul(from, len); if (IS_ERR(input_buffer)) return PTR_ERR(input_buffer); =20 @@ -162,7 +161,7 @@ static ssize_t dp_test_active_write(struct file *file, } kfree(input_buffer); =20 - *offp +=3D len; + iocb->ki_pos +=3D len; return len; } =20 @@ -193,10 +192,10 @@ static int dp_test_active_open(struct inode *inode, static const struct file_operations test_active_fops =3D { .owner =3D THIS_MODULE, .open =3D dp_test_active_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D single_release, - .write =3D dp_test_active_write + .write_iter =3D dp_test_active_write, }; =20 static void dp_debug_init(struct dp_debug *dp_debug, struct dentry *root, = bool is_edp) diff --git a/drivers/gpu/drm/msm/msm_debugfs.c b/drivers/gpu/drm/msm/msm_de= bugfs.c index 4494f6d1c7cb..237bb6dace46 100644 --- a/drivers/gpu/drm/msm/msm_debugfs.c +++ b/drivers/gpu/drm/msm/msm_debugfs.c @@ -112,7 +112,7 @@ static int msm_gpu_open(struct inode *inode, struct fil= e *file) static const struct file_operations msm_gpu_fops =3D { .owner =3D THIS_MODULE, .open =3D msm_gpu_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D msm_gpu_release, }; @@ -175,7 +175,7 @@ static int msm_kms_open(struct inode *inode, struct fil= e *file) static const struct file_operations msm_kms_fops =3D { .owner =3D THIS_MODULE, .open =3D msm_kms_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D msm_kms_release, }; diff --git a/drivers/gpu/drm/msm/msm_perf.c b/drivers/gpu/drm/msm/msm_perf.c index 3d3da79fec2a..494d714ce6a2 100644 --- a/drivers/gpu/drm/msm/msm_perf.c +++ b/drivers/gpu/drm/msm/msm_perf.c @@ -117,10 +117,10 @@ static int refill_buf(struct msm_perf_state *perf) return 0; } =20 -static ssize_t perf_read(struct file *file, char __user *buf, - size_t sz, loff_t *ppos) +static ssize_t perf_read(struct kiocb *iocb, struct iov_iter *to) { - struct msm_perf_state *perf =3D file->private_data; + struct msm_perf_state *perf =3D iocb->ki_filp->private_data; + size_t sz =3D iov_iter_count(to); int n =3D 0, ret =3D 0; =20 mutex_lock(&perf->read_lock); @@ -132,13 +132,13 @@ static ssize_t perf_read(struct file *file, char __us= er *buf, } =20 n =3D min((int)sz, perf->buftot - perf->bufpos); - if (copy_to_user(buf, &perf->buf[perf->bufpos], n)) { + if (!copy_to_iter_full(&perf->buf[perf->bufpos], n, to)) { ret =3D -EFAULT; goto out; } =20 perf->bufpos +=3D n; - *ppos +=3D n; + iocb->ki_pos +=3D n; =20 out: mutex_unlock(&perf->read_lock); @@ -191,7 +191,7 @@ static int perf_release(struct inode *inode, struct fil= e *file) static const struct file_operations perf_debugfs_fops =3D { .owner =3D THIS_MODULE, .open =3D perf_open, - .read =3D perf_read, + .read_iter =3D perf_read, .llseek =3D no_llseek, .release =3D perf_release, }; diff --git a/drivers/gpu/drm/msm/msm_rd.c b/drivers/gpu/drm/msm/msm_rd.c index ca44fd291c5b..d5f65377ba65 100644 --- a/drivers/gpu/drm/msm/msm_rd.c +++ b/drivers/gpu/drm/msm/msm_rd.c @@ -130,12 +130,12 @@ static void rd_write_section(struct msm_rd_state *rd, rd_write(rd, buf, sz); } =20 -static ssize_t rd_read(struct file *file, char __user *buf, - size_t sz, loff_t *ppos) +static ssize_t rd_read(struct kiocb *iocb, struct iov_iter *to) { - struct msm_rd_state *rd =3D file->private_data; + struct msm_rd_state *rd =3D iocb->ki_filp->private_data; struct circ_buf *fifo =3D &rd->fifo; const char *fptr =3D &fifo->buf[fifo->tail]; + size_t sz =3D iov_iter_count(to); int n =3D 0, ret =3D 0; =20 mutex_lock(&rd->read_lock); @@ -150,13 +150,13 @@ static ssize_t rd_read(struct file *file, char __user= *buf, * once. */ n =3D min_t(int, sz, circ_count_to_end(&rd->fifo)); - if (copy_to_user(buf, fptr, n)) { + if (!copy_to_iter_full(fptr, n, to)) { ret =3D -EFAULT; goto out; } =20 smp_store_release(&fifo->tail, (fifo->tail + n) & (BUF_SZ - 1)); - *ppos +=3D n; + iocb->ki_pos +=3D n; =20 wake_up_all(&rd->fifo_event); =20 @@ -226,7 +226,7 @@ static int rd_release(struct inode *inode, struct file = *file) static const struct file_operations rd_debugfs_fops =3D { .owner =3D THIS_MODULE, .open =3D rd_open, - .read =3D rd_read, + .read_iter =3D rd_read, .llseek =3D no_llseek, .release =3D rd_release, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f51.google.com (mail-io1-f51.google.com [209.85.166.51]) (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 1941E15E5A6 for ; Thu, 11 Apr 2024 15:35:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849738; cv=none; b=YDMLWnSPNKWQiaCC//n8hIfOYylf/4d4mY2pLs92ZXdqjZM2885ZlUAWh5erCNGOPnPPKR18JC2aGwucMQWaz9BTmZmRhGYU3miW/wJYMyEThqHjVsP1nmv0zn3eHayxOqEHt7jF2i+vt2W3CvJrS2AlmX8n0zRIM/IhYN/a7XY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849738; c=relaxed/simple; bh=61+yP587Hv2kZVBiri1uo5BZsd5AYeB9pXWF/VlKRBE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=qGvApy/bdOVxY7q/oG0/HaysizE5I4EROQ10a95PCemW9YCiEoQa12FlDgyyFobJeGWi0ofg8uhWyOFQieD46xOWkcCLDfh597YC7+/8mEQMjVNLAgJ7GsXjIXqHD5anTD4TCv8ooqMGzdz5kXm8NIiw1dJUY0XJFqL2ZzMxV5A= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=cf/dyM1A; arc=none smtp.client-ip=209.85.166.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="cf/dyM1A" Received: by mail-io1-f51.google.com with SMTP id ca18e2360f4ac-7d6112ba6baso58054939f.1 for ; Thu, 11 Apr 2024 08:35:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849736; x=1713454536; 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=/gqaET9MvKn3yE81Z3PAaugQfwNy0GdjyrdNXBZOf+I=; b=cf/dyM1AU+jYgQAWy/dRisDdx0Vb/GqnYKNsT7yiapWtCP3X73Qx3LZblYGe40nYLE jnb49W4wprIno1P7dfkVJZmLItCTKbJg5+O/PkI1AGREjjUyvRFbehuHQ5RnrJZmLQmW TX2uIIDkiErn/uC1q1XnpXGZyxMCRjwl2lsyy4iPTp8SyM6Pu33PoXV4ozh2+A6fZBla AXzqr8M8Aql2Tz65ArhJIpdU1EfuKGs2VFQv34U+Gqr9SoKC806Mtaut5T+n7XEeKbuo 4SprD/z6ATZ1Fn9zOE0+L9bX6Wms9G7C9iSvCnoNEFG/x2PlWvr9/QlfFf4wH/IqfnSp bFnA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849736; x=1713454536; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=/gqaET9MvKn3yE81Z3PAaugQfwNy0GdjyrdNXBZOf+I=; b=aSyUIphxzDtkwo9hWVisXp6EutejOXkU2J+0ptzdvNlWRY4p6i9NsaEQEAwZiMV0Fc 2pVoxp7AEhe8OITGpV3FLe6Vnn0agFlFqZRdjvHn31948fhHnvYWBb8MWikH06zue482 mQdaV6UMGH1hr2Ra/KRGKS5qI7I5feaKTgcl8qIloJtOuYcq7K03oqjJjToLNzotot78 VAaZ9jTtnWm91hcixgaB5DsTNm9PoDVN6VcHu6etkv3Vknrw/AYqBAF1cZ+7zDD6HFjL cJ0w56rCKcXtqhZ8f4O/g/zNgTo0wG98YSY4ardPyqpaf1LPEktlYZL0WDZnknkjNhSI XFlA== X-Gm-Message-State: AOJu0YzSQJb5hrNT/ykwOKpygC53Wxxl8JGw10eY4elVm9tk4vNmY3LO oBDI13oylqJqVAyb+nyVNtone180H1BwCx8Ahz8o43T00c/kUnwdtYFo4Dl5esmm4zhanektbYu e X-Google-Smtp-Source: AGHT+IEDRNpZ9D+Nf1nP2L50ri7PlIzV0hsNxUHJbc3FxrgGyJblu0i2jiMi8AVPB6YAQ9nC5+F27w== X-Received: by 2002:a05:6602:38d:b0:7d6:513b:254 with SMTP id f13-20020a056602038d00b007d6513b0254mr182239iov.2.1712849735917; Thu, 11 Apr 2024 08:35:35 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.35.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:35:34 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 141/437] drm: nouveau: convert to read/write iterators Date: Thu, 11 Apr 2024 09:14:41 -0600 Message-ID: <20240411153126.16201-142-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/gpu/drm/nouveau/dispnv50/crc.c | 13 ++++++------- drivers/gpu/drm/nouveau/nouveau_debugfs.c | 12 ++++++------ 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/drivers/gpu/drm/nouveau/dispnv50/crc.c b/drivers/gpu/drm/nouve= au/dispnv50/crc.c index 9c942fbd836d..a7859e3cb39d 100644 --- a/drivers/gpu/drm/nouveau/dispnv50/crc.c +++ b/drivers/gpu/drm/nouveau/dispnv50/crc.c @@ -648,11 +648,9 @@ nv50_crc_debugfs_flip_threshold_open(struct inode *ino= de, struct file *file) } =20 static ssize_t -nv50_crc_debugfs_flip_threshold_set(struct file *file, - const char __user *ubuf, size_t len, - loff_t *offp) +nv50_crc_debugfs_flip_threshold_set(struct kiocb *iocb, struct iov_iter *f= rom) { - struct seq_file *m =3D file->private_data; + struct seq_file *m =3D iocb->ki_filp->private_data; struct nv50_head *head =3D m->private; struct nv50_head_atom *armh; struct drm_crtc *crtc =3D &head->base.base; @@ -660,9 +658,10 @@ nv50_crc_debugfs_flip_threshold_set(struct file *file, struct nv50_crc *crc =3D &head->crc; const struct nv50_crc_func *func =3D nv50_disp(crtc->dev)->core->func->crc; + size_t len =3D iov_iter_count(from); int value, ret; =20 - ret =3D kstrtoint_from_user(ubuf, len, 10, &value); + ret =3D kstrtoint_from_iter(from, len, 10, &value); if (ret) return ret; =20 @@ -697,8 +696,8 @@ nv50_crc_debugfs_flip_threshold_set(struct file *file, static const struct file_operations nv50_crc_flip_threshold_fops =3D { .owner =3D THIS_MODULE, .open =3D nv50_crc_debugfs_flip_threshold_open, - .read =3D seq_read, - .write =3D nv50_crc_debugfs_flip_threshold_set, + .read_iter =3D seq_read_iter, + .write_iter =3D nv50_crc_debugfs_flip_threshold_set, .release =3D single_release, }; =20 diff --git a/drivers/gpu/drm/nouveau/nouveau_debugfs.c b/drivers/gpu/drm/no= uveau/nouveau_debugfs.c index e83db051e851..02cfac6f6c39 100644 --- a/drivers/gpu/drm/nouveau/nouveau_debugfs.c +++ b/drivers/gpu/drm/nouveau/nouveau_debugfs.c @@ -139,14 +139,14 @@ nouveau_debugfs_pstate_get(struct seq_file *m, void *= data) } =20 static ssize_t -nouveau_debugfs_pstate_set(struct file *file, const char __user *ubuf, - size_t len, loff_t *offp) +nouveau_debugfs_pstate_set(struct kiocb *iocb, struct iov_iter *from) { - struct seq_file *m =3D file->private_data; + struct seq_file *m =3D iocb->ki_filp->private_data; struct drm_device *drm =3D m->private; struct nouveau_debugfs *debugfs =3D nouveau_debugfs(drm); struct nvif_control_pstate_user_v0 args =3D { .pwrsrc =3D -EINVAL }; char buf[32] =3D {}, *tmp, *cur =3D buf; + size_t len =3D iov_iter_count(from); long value, ret; =20 if (!debugfs) @@ -155,7 +155,7 @@ nouveau_debugfs_pstate_set(struct file *file, const cha= r __user *ubuf, if (len >=3D sizeof(buf)) return -EINVAL; =20 - if (copy_from_user(buf, ubuf, len)) + if (!copy_from_iter_full(buf, len, from)) return -EFAULT; =20 if ((tmp =3D strchr(buf, '\n'))) @@ -244,8 +244,8 @@ nouveau_debugfs_gpuva(struct seq_file *m, void *data) static const struct file_operations nouveau_pstate_fops =3D { .owner =3D THIS_MODULE, .open =3D nouveau_debugfs_pstate_open, - .read =3D seq_read, - .write =3D nouveau_debugfs_pstate_set, + .read_iter =3D seq_read_iter, + .write_iter =3D nouveau_debugfs_pstate_set, .release =3D single_release, }; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f42.google.com (mail-io1-f42.google.com [209.85.166.42]) (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 CCDB715E5BD for ; Thu, 11 Apr 2024 15:35:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849740; cv=none; b=eXyEgSntfDMHeo7teb5BaXjKS60482AMHN2T+TlTRn0uh0uLwFwEyItht+yua4k5LkFo233liDeDgqE2Pl4CaoNm6cDHXSlbZs7Rv7sIQ5hdgCLzikvQTk2xfsFQaGh9Hg2JT8LCMYDwzjiAj7K/mOrtEY7WdmbR2FRgM3Vl1Vw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849740; c=relaxed/simple; bh=h9v6LGVsUN0NcMB2y1najeyRJA7e64TNahZQqt4k0ag=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=VA4TO8zfyKzF8IZFeilvU5/A57pP4LEljve4ucxZxfRWuHB4cIdIiJUCuxvQE782/AmYgYgygwab2KIU183YTyk+SPo1XxK9sE1LXrQ1VQcf+E+3qU+MNT9nLEiR6FUqLnlKzlLVKBMOcdT9nJboMyRqBRj64uY7FqR6KgVTeY0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=3BYZrZOL; arc=none smtp.client-ip=209.85.166.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="3BYZrZOL" Received: by mail-io1-f42.google.com with SMTP id ca18e2360f4ac-7d67d1073easo9780339f.0 for ; Thu, 11 Apr 2024 08:35:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849737; x=1713454537; 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=RDUGqnxkhmlDGwUvK8EXWXRvkiQ2buHmxw8/4ZOnwi8=; b=3BYZrZOLdBKWTmFqvmzdS0aI55fi1D35WD5nkgI1KLo9Cb3ZO5TKyaDONiIUY0VpVr +paGHrOHopmbTTA+SLVkKGMkvWJSYPMEzOzNbMfYBS/3VGkk/V3uKdKtM48iN0ZYtb3x hNmKFVCnDpG1sOmg7EkolDixPGm0BaEGM1a3afWKx8VGEs74vzLmnSpYcs+ualckB4R5 52QYKNl3VbiVGfDFSNtHyHBO6jTh7Q1rMXFQdovXaxEKwqpoZd80jsGT3C8JMsBWaFf+ DBCiaEF9EO+JRFdLkEULR1iUbuc8TH7+kQMSjfXD8a7Zzvbc9RWvSryIkeANhcyFvC25 AOPQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849737; x=1713454537; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=RDUGqnxkhmlDGwUvK8EXWXRvkiQ2buHmxw8/4ZOnwi8=; b=lXV7Tzl7IYS/G1oVcRhDt8cMO7oQj1UV0nY78ulbudz8V2g1kVaWEeTAZjgtE/tjiO j1CRpLBGp/FSM434yAfgba3q3F9wuqy/5xqJrEJkBZpI8n8GyHIcZweIp3oZUX1AwKIL 4hhx3yPgFIbCLyUiHyy9bCdUMxLRLKsjxSHP1ForVifHI8SevPPLNgM+Oke0Hvj5ne67 3Uuev67q0Cs8D3FoAd+LolLidC7OObewG2jXKg2CTX8o7VvoxvsDuIo5K7gjolzS/Lv5 gGQrJZSuKdXvFqn+M/oGEfuo+e35e3cEPqlUM3hGbVkHX2cR/ae81vexo3FcyRsDOex7 fFag== X-Gm-Message-State: AOJu0YybwDRENteOTVhS8dAEB7PLrJFoNd4L48eEIvVKfzyc29cWWzO+ Y4YdJnzgAgUeFmB9+LpV7u846nwMiWPgXGYrDcjhJazbD2q/sP+xIMMVtGaZhur71yvMyT26ZHt e X-Google-Smtp-Source: AGHT+IEcjbLQhCYbITWp4WDumfGGyWhg0X3isPIF12BwWxxF5zc1NKHmknFXGoXD8k/HQZjEDC5Zjg== X-Received: by 2002:a6b:c34e:0:b0:7d6:7b7c:8257 with SMTP id t75-20020a6bc34e000000b007d67b7c8257mr215513iof.0.1712849737654; Thu, 11 Apr 2024 08:35:37 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.35.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:35:36 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 142/437] drm: mipi: convert to read/write iterators Date: Thu, 11 Apr 2024 09:14:42 -0600 Message-ID: <20240411153126.16201-143-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/gpu/drm/drm_mipi_dbi.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/gpu/drm/drm_mipi_dbi.c b/drivers/gpu/drm/drm_mipi_dbi.c index daac649aabdb..43198c3b2eed 100644 --- a/drivers/gpu/drm/drm_mipi_dbi.c +++ b/drivers/gpu/drm/drm_mipi_dbi.c @@ -1332,12 +1332,12 @@ EXPORT_SYMBOL(mipi_dbi_spi_transfer); =20 #ifdef CONFIG_DEBUG_FS =20 -static ssize_t mipi_dbi_debugfs_command_write(struct file *file, - const char __user *ubuf, - size_t count, loff_t *ppos) +static ssize_t mipi_dbi_debugfs_command_write(struct kiocb *iocb, + struct iov_iter *from) { - struct seq_file *m =3D file->private_data; + struct seq_file *m =3D iocb->ki_filp->private_data; struct mipi_dbi_dev *dbidev =3D m->private; + size_t count =3D iov_iter_count(from); u8 val, cmd =3D 0, parameters[64]; char *buf, *pos, *token; int i, ret, idx; @@ -1345,7 +1345,7 @@ static ssize_t mipi_dbi_debugfs_command_write(struct = file *file, if (!drm_dev_enter(&dbidev->drm, &idx)) return -ENODEV; =20 - buf =3D memdup_user_nul(ubuf, count); + buf =3D iterdup_nul(from, count); if (IS_ERR(buf)) { ret =3D PTR_ERR(buf); goto err_exit; @@ -1446,10 +1446,10 @@ static int mipi_dbi_debugfs_command_open(struct ino= de *inode, static const struct file_operations mipi_dbi_debugfs_command_fops =3D { .owner =3D THIS_MODULE, .open =3D mipi_dbi_debugfs_command_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D single_release, - .write =3D mipi_dbi_debugfs_command_write, + .write_iter =3D mipi_dbi_debugfs_command_write, }; =20 /** --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f51.google.com (mail-io1-f51.google.com [209.85.166.51]) (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 C5AA615EFCD for ; Thu, 11 Apr 2024 15:35:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849742; cv=none; b=I+zvuvEeNsTBheihnFCDZ1u9PHaiwsqjoR7qgp6n6JxM3AheOTRk6jLKVc0H3AkVh6Vq2yi/M0c9k6SQNVkvntCTK7MFC1OSoxShcrrpYv/TxnMqV1RWqGClmoMA/X9jCHklECNujNokvgy0apuaHMsL2WyMiYU9NgDP6wjG11I= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849742; c=relaxed/simple; bh=AP+nBrbRMwcyEgUSs3UjI9M0KSF/Nm6cAbt94qY8s0w=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=kThR2p1EqY5OpdCl0hdti9duXGkXR1IPh+8NMQF0Q5PltrGIOgKy0c7OOB+6JOoBSiSa9zoF0kz2w87pE+C0+c/MkkVO1TjmjSA3HakwlKaunqMj1rMMqDJJt/A+NpYP9LSRsCbKfn5vi1Vx7q8bBmgCJwmnFgrF7kzvMJ1p1pM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=B8CtB1tx; arc=none smtp.client-ip=209.85.166.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="B8CtB1tx" Received: by mail-io1-f51.google.com with SMTP id ca18e2360f4ac-7cc0e831e11so170505039f.1 for ; Thu, 11 Apr 2024 08:35:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849739; x=1713454539; 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=kQCujrZigLy3u3kxVy6Esjv8r5Vg/g2Yr8TaOCRRNCU=; b=B8CtB1txgBEwHIJojvEqbEwCT5xsQX9A/xHRMatBA2Oh4UMfzKSjqHgoX01X2sZOFo SaJhGahLktphHxuzwKnnh4E7HEuJVThxgnEVRQzkXRYWsNplLKm2tl+lMqhKM81iPnom UD3bvFD2yieeCtxZ5sEh1L/136cP5RWSJuMbiNjyk9OFJ9nEaUSgk4hb9UQlYChf4ANQ 5wYqmtjb7a3pfwfTpLvm1iAyDxmNkHZwJYAo3oUxD/kkfI969xnVaFUM1HphX1cSQ7F8 pZjHy5+e/yG6nRDnfmkRpzAA2P4OunH9fYjdaOBSnB4ObJanFDKfQYvVCHuKt/bgEVFB W8vw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849739; x=1713454539; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=kQCujrZigLy3u3kxVy6Esjv8r5Vg/g2Yr8TaOCRRNCU=; b=NfaVeNSr/v0ch1XC7dFWqDsxDGSgJn0nFVyJlNijQTP8IWVA1XaYeQvgNiiNOgKJTz 6OxIer9VQRrIvRVe/05tYLa/zcpybpa5igzQSNrJEwSQ65ExHK/4GLAowbY+UEKzcGS4 SUjw94NmQCJoB1qlaY1ejGUPLXyKNA7HdwUcq39LkpEEw6WZ8lS7vpE3lk/LAv3G4mwa JmaDjz4D9CzYy5VN61JA5awQe0JgGn/72jxzEg5Les07p74lFWDt5T5gUVTYKgEaJ6ee MzhVemQ1HaZFFBzv52Dri0FyIz+8lC8xZlApOMC6GbVVVWfk1EbTqdy3MRCSimKRDRib VYig== X-Gm-Message-State: AOJu0YyDV7Hi3ZiD7Kc93TSJbY24BbWj69QEUpQDyMjXAh53XaaUph6W phniozWpfyuU+EC7o1Kbk5C3nSkQzsv17sHpsrL90KJHvBvbnLE8vmV/zFaEf+i0z36Hf3IWqNm N X-Google-Smtp-Source: AGHT+IGuUEEAgdVg4ZgPf1OSrIZOeErBwaV5OeH/P7UvLSNpC+lMq5RxgInP8EhFFmWogQbDiFpfeQ== X-Received: by 2002:a05:6602:21d7:b0:7d6:9ddf:5095 with SMTP id c23-20020a05660221d700b007d69ddf5095mr14001ioc.1.1712849739297; Thu, 11 Apr 2024 08:35:39 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.35.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:35:37 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 143/437] drm: mali: convert to read/write iterators Date: Thu, 11 Apr 2024 09:14:43 -0600 Message-ID: <20240411153126.16201-144-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/gpu/drm/arm/malidp_drv.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/drivers/gpu/drm/arm/malidp_drv.c b/drivers/gpu/drm/arm/malidp_= drv.c index 6682131d2910..cc0490e3ae4c 100644 --- a/drivers/gpu/drm/arm/malidp_drv.c +++ b/drivers/gpu/drm/arm/malidp_drv.c @@ -522,10 +522,9 @@ static int malidp_debugfs_open(struct inode *inode, st= ruct file *file) return single_open(file, malidp_show_stats, inode->i_private); } =20 -static ssize_t malidp_debugfs_write(struct file *file, const char __user *= ubuf, - size_t len, loff_t *offp) +static ssize_t malidp_debugfs_write(struct kiocb *iocb, struct iov_iter *f= rom) { - struct seq_file *m =3D file->private_data; + struct seq_file *m =3D iocb->ki_filp->private_data; struct drm_device *drm =3D m->private; struct malidp_drm *malidp =3D drm_to_malidp(drm); unsigned long irqflags; @@ -534,14 +533,14 @@ static ssize_t malidp_debugfs_write(struct file *file= , const char __user *ubuf, malidp_error_stats_init(&malidp->de_errors); malidp_error_stats_init(&malidp->se_errors); spin_unlock_irqrestore(&malidp->errors_lock, irqflags); - return len; + return iov_iter_count(from); } =20 static const struct file_operations malidp_debugfs_fops =3D { .owner =3D THIS_MODULE, .open =3D malidp_debugfs_open, - .read =3D seq_read, - .write =3D malidp_debugfs_write, + .read_iter =3D seq_read_iter, + .write_iter =3D malidp_debugfs_write, .llseek =3D seq_lseek, .release =3D single_release, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f47.google.com (mail-io1-f47.google.com [209.85.166.47]) (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 7A17B15FA8A for ; Thu, 11 Apr 2024 15:35:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849744; cv=none; b=gx6GqPLYmGV3UNkutqStAt4uwnITYTrvnR+XfU6stQqq5zeAzdeyzqXBOiORoBQp0Z6wcuShMShWlAIpqE3cG5u3xDBzXrOd2DnAWHFu89hM44NwGYQyXB6SkkbvqVA44XifW6jjbuleR3UmtqPvKjUmcA8DkEEyHJKWRapagek= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849744; c=relaxed/simple; bh=gL5rAXowAGRcXaVBOvm9G+t3o9spcMoINLf7As2dKXk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=HuaTC2V4N3h/FtGUdszkLoJpJVGeX1FwnZCgrCew3kOTBwOwnhbeB4hrUOGfYDmfhDUtuP2TpznwRU80iAeCkBAT+v5ZmiiDcjDDzHrVUt4Q1p/iQT+9G7WQwlh2o2p2Tnpy3Xdzn4H2EZYaLRH1F8Q/rbqW85P98b0RjmUa7Os= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=RCrX26Fc; arc=none smtp.client-ip=209.85.166.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="RCrX26Fc" Received: by mail-io1-f47.google.com with SMTP id ca18e2360f4ac-7cc0e831e11so170506539f.1 for ; Thu, 11 Apr 2024 08:35:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849742; x=1713454542; 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=W3VjsqHvsbMOxlKPUgYkeLDi3mwVEdCEjMoi0qF7dVw=; b=RCrX26Fcm4dDMrZ3Nl+s6iV1UfNZ1mZYbC0k7Re7+gMJz7Mj8Rx+ZdDMXMIjlYux/u +nHjwHn+DZ0MBuQriQ5oQEBtNhwBbe1Qcl51puwI0vRkasmT13dDHw4Nuhd16tfcFcy2 QawY0FTak29sHPqOeuPEAiNoIpeBlneJtihhFcFsDTMHam2skNIqLlAMBdYGnMtJp+wq IuxmDzSdADAmvDq7lsNjkXONWIhEaF844H5rtdJJcg8vK7eyyhBgAQx5dENdjDtEQG6I uoNJGGghIWS2ARPKocuGjg8n9xaYfEPAck+L6PHtHCQPvsxgzJePrK2rMdo742DHPH7s sgWA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849742; x=1713454542; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=W3VjsqHvsbMOxlKPUgYkeLDi3mwVEdCEjMoi0qF7dVw=; b=ivD0orqdGGUA+jwPiC9YJ+Wu6H+788FOnGJMkOEycHUyIAD68DlKvczQXFxuac5cTl R7vs5xs+zExNyYU2bqWB8XxQKd81uf+hd+Cj07jaJOeGA+7qglwk8I77RnB1zYQ/op1+ pjQZOAMAbWbLBO2KpgnZxVIPHy1Yc3LSDxrcctj43MsyQz3ycYBidqwrxh3VUxdq5Bdj qY8eyk05+81eqJpmKIztJOGpIt/27BB0Hy75etCrmHXqJ1ba0Rk+NwHngEMqu8waBwTF P+pFfbzWcVLr4sNeHgC/wVlGVmuVx7/hnmR95i6lGSG6z3fmyeRKYhhBh6id1c/qSGFk ThJw== X-Gm-Message-State: AOJu0YzEWV2kZjFGfA8zpb37ZgVnr0roLkon6qmsIm/W7lYWRIxhsC7N nnEPjprXhyqQMlj7Fn+EWcpYTYwN4uxWYsPlwwOUf/kS4B9lAHyPHNrAptdtsDXEYGZ8F7o9Eol U X-Google-Smtp-Source: AGHT+IExv45aBJtRiiUt52E8nPqCRI2CwS9qZlU4Uaf/CSootiAOJ7f/Q3WvQJwhWEeB2UqgoGKl9w== X-Received: by 2002:a05:6602:21d7:b0:7d6:9ddf:5095 with SMTP id c23-20020a05660221d700b007d69ddf5095mr14189ioc.1.1712849742432; Thu, 11 Apr 2024 08:35:42 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.35.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:35:39 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 144/437] drm/bridge: it6505: convert to read/write iterators Date: Thu, 11 Apr 2024 09:14:44 -0600 Message-ID: <20240411153126.16201-145-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/gpu/drm/bridge/ite-it6505.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/drivers/gpu/drm/bridge/ite-it6505.c b/drivers/gpu/drm/bridge/i= te-it6505.c index 27334173e911..3f280f85d49d 100644 --- a/drivers/gpu/drm/bridge/ite-it6505.c +++ b/drivers/gpu/drm/bridge/ite-it6505.c @@ -3208,14 +3208,14 @@ static void it6505_parse_dt(struct it6505 *it6505) it6505->max_dpi_pixel_clock); } =20 -static ssize_t receive_timing_debugfs_show(struct file *file, char __user = *buf, - size_t len, loff_t *ppos) +static ssize_t receive_timing_debugfs_show(struct kiocb *iocb, + struct iov_iter *to) { - struct it6505 *it6505 =3D file->private_data; + struct it6505 *it6505 =3D iocb->ki_filp->private_data; struct drm_display_mode *vid; u8 read_buf[READ_BUFFER_SIZE]; u8 *str =3D read_buf, *end =3D read_buf + READ_BUFFER_SIZE; - ssize_t ret, count; + ssize_t count; =20 if (!it6505) return -ENODEV; @@ -3243,9 +3243,7 @@ static ssize_t receive_timing_debugfs_show(struct fil= e *file, char __user *buf, vid->vtotal - vid->vsync_end); =20 count =3D str - read_buf; - ret =3D simple_read_from_buffer(buf, len, ppos, read_buf, count); - - return ret; + return simple_copy_to_iter(read_buf, &iocb->ki_pos, count, to); } =20 static int force_power_on_off_debugfs_write(void *data, u64 value) @@ -3307,7 +3305,7 @@ static int enable_drv_hold_debugfs_write(void *data, = u64 drv_hold) static const struct file_operations receive_timing_fops =3D { .owner =3D THIS_MODULE, .open =3D simple_open, - .read =3D receive_timing_debugfs_show, + .read_iter =3D receive_timing_debugfs_show, .llseek =3D default_llseek, }; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f49.google.com (mail-io1-f49.google.com [209.85.166.49]) (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 52465161301 for ; Thu, 11 Apr 2024 15:35:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849746; cv=none; b=UUV00mka+8bBoeM593Wvxgwh9inWOnFVgm1zRnqW2eidrwnneDiDg1v1Cw5h4XYlr3s0dSCF9L9+5KWCsT7RxkhYBjQi5llsKRmBll3xaU+HUz020VHs3hUQnhbBUM+f3qSYA42LM9r1lNoJjNJsAuSX6MgbYGOD3pRSMpb2Ms4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849746; c=relaxed/simple; bh=lFWKPmtADZ77fK4ueBYj9oz0C6yf67EywTWQwCps9UA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=SsMz6vJPOPIwBpmZw/jjUBbVqoAfEsUHsbjK2EeTiMf+x7lA/LtMgwGpQ0C3OufLrQSGGP1OkEFrTvB9/rnHSyjTeRHS/kRguKuLtjqbG+US+DV+iOyuQeafkG8V63T/1zJrqh7sNeJGLbdq0uv+E5SMD9mbhO+B9CAR6KxEK2Y= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=r3DjbFjr; arc=none smtp.client-ip=209.85.166.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="r3DjbFjr" Received: by mail-io1-f49.google.com with SMTP id ca18e2360f4ac-7d5ed700c2dso16150739f.0 for ; Thu, 11 Apr 2024 08:35:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849744; x=1713454544; 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=n6mqJFUy2iUjIxDPhjI3lLEspk5VVjXPoCyQkSzQDwo=; b=r3DjbFjrBt6yGwH+hg/z8ES1Q8tTQPLNmHRSOHV+7ZjWgQZhSZdzJ550Pq39oMKaMl qSq2r9a/omp3d7VnhCjzSMjghj5pfywM9qUE0h24aKxvG0j0abs5BkcN+n/uLFbNC4Uc KdB+qKoeAY/GkVFTLWcEZnKlYBafR3pheY1kYMCrIRg1T4S3BNVr2mHyvnkk6viDKOVv mEcsypP4OmxKJ79t/MpR0IZqYzZV0aYw6pqbTzxdv9/GbWd2xz7LK1ibYzVUBjgnNyvv Dk/wq4y4eS+z5BPloHBANNROxu+kqLliO3IpJ3pfCWmJ7E8nrr6a1Sf4bNwVSfcDCY2o LzQA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849744; x=1713454544; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=n6mqJFUy2iUjIxDPhjI3lLEspk5VVjXPoCyQkSzQDwo=; b=kqaFKapDgwv0jSermPJ88JWKFsb9FjBOhwD32pyBy5FI7kW4V8MmITvVRhDARmK1gj ZcEWpAG2wsS/9zJCd1nSZGLZfGuLlodTXtzMi0iawt5tU9pP+3Ds4S5kGZ1ldwJeXL47 H8od6P93EDcHqorUzc8M8RUa+kd4ZsxbFkSokj0KHVdIlKY9S0SnCQ4udK6QhJTufm6S 6SUEi9Dk4CBBoY65hvYLWspN1bqQAJU1gRoFJROm7jOdUhVcgDLYRvqUZT9eXLSh/+nu xZD7qn8pgRTykq7Uj3x0t4npNoWyiSV1DsuA3/qMkukAILHtGflCQ+TaUOX0/PmSiiZe oDjw== X-Gm-Message-State: AOJu0YzyKdZo/s7K/eNMmtoMqNQgYAeJALFwP+sI+EW8aPQrqnyuM08h oeJ+oOhPUiqxP3KAvAjjOWdSOJEByVchUCBtmYtfZKHpGFzrq3AXEcC04fYLgms0Cm01hkFbGKI k X-Google-Smtp-Source: AGHT+IEKVU5p0lHw7ZbqDjprrXcw8tYzsPT3YOqu+wDxZN8OtyLpvHMqI1us2mx4quV/CJL6eoFcmA== X-Received: by 2002:a05:6602:38d:b0:7d6:513b:254 with SMTP id f13-20020a056602038d00b007d6513b0254mr182837iov.2.1712849744086; Thu, 11 Apr 2024 08:35:44 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.35.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:35:42 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 145/437] drm/imagination: convert to read/write iterators Date: Thu, 11 Apr 2024 09:14:45 -0600 Message-ID: <20240411153126.16201-146-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/gpu/drm/imagination/pvr_fw_trace.c | 2 +- drivers/gpu/drm/imagination/pvr_params.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/imagination/pvr_fw_trace.c b/drivers/gpu/drm/i= magination/pvr_fw_trace.c index 31199e45b72e..ff5827dd6390 100644 --- a/drivers/gpu/drm/imagination/pvr_fw_trace.c +++ b/drivers/gpu/drm/imagination/pvr_fw_trace.c @@ -438,7 +438,7 @@ static int fw_trace_release(struct inode *inode, struct= file *file) static const struct file_operations pvr_fw_trace_fops =3D { .owner =3D THIS_MODULE, .open =3D fw_trace_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D fw_trace_release, }; diff --git a/drivers/gpu/drm/imagination/pvr_params.c b/drivers/gpu/drm/ima= gination/pvr_params.c index b91759f362c5..4fe0105ca0c9 100644 --- a/drivers/gpu/drm/imagination/pvr_params.c +++ b/drivers/gpu/drm/imagination/pvr_params.c @@ -119,8 +119,8 @@ static struct { .owner =3D THIS_MODULE, \ .open =3D __pvr_device_param_##name_##_open, \ .release =3D simple_attr_release, \ - .read =3D simple_attr_read, \ - .write =3D simple_attr_write, \ + .read_iter =3D simple_attr_read_iter, \ + .write_iter =3D simple_attr_write_iter, \ .llseek =3D generic_file_llseek, \ }, PVR_DEVICE_PARAMS --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-il1-f172.google.com (mail-il1-f172.google.com [209.85.166.172]) (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 EC11B16D309 for ; Thu, 11 Apr 2024 15:35:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.172 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849748; cv=none; b=sHoHFX2a29HFWZblUJ8pURI5qQ2zdQDbMuh1sZfqZeUVoPXbudUzKizX2gz+BxyWqZiQQMwaSei8KDOsam7/Zhc/SvNY6cbW32UrP5Krb0vr4QuLfMHjSPlVdJ9KT7wh7l86sBuZq/a1BtB0Bc7b2D0Lw7B1pOsNutkXfpXkqZk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849748; c=relaxed/simple; bh=zb2jkDfRkAn1FmRm/Gyqk5S762CbYJcznomHCC6q4bU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=SN+cMgQeAgTTU6NzViM6WBAkTxbPJFNfXNleynF8kZLH9zMzf+c4NTF09lfjbVez8XGeKq7X9a5fUoFoa2K65T0v1d6QoGI2P28jGVrYCloRRr6yxQb2/gsrfdaC9d7shNkECTTE6MxEF2zVGtxLuO2VFrqrzrznaV/3XQPwDEE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=QFPxHM6g; arc=none smtp.client-ip=209.85.166.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="QFPxHM6g" Received: by mail-il1-f172.google.com with SMTP id e9e14a558f8ab-36a224d7414so182055ab.1 for ; Thu, 11 Apr 2024 08:35:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849746; x=1713454546; 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=Ls4P/6cxJrz7tnV3+FrtvdKvswGRFOABzSegkWKjQQM=; b=QFPxHM6g2AcQHxOGkXCmoZTZqUOM86Hs6EUm5NyLjW58VdnwbLuofMBvv6K+EZ3QCZ OLYTPB/bTY2gSNHzHsJ9EBTqrm8KJTyyskk8Qvixb2HErpmVDrBjSxYmKBUnLa8GWMOw wd9GEyTFDSIHay+6X0JLOfOIwU86LY9q2CY1rDbnm+5qCgCx/LpgnHmeliVWWs237dXw MunqwzPEC94NoVbH2TTx4cstpm53zZmStUBWrsWmlK2YxjTAqMrbBP2zTkLJ7N3EL+Xb mvWW9wmquCPOVcLzTPjd0tDV2z27qFtbH1XjCyLG+hpGNh2WGlwvP8u0h9DfbVZS8b3Y SEGQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849746; x=1713454546; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Ls4P/6cxJrz7tnV3+FrtvdKvswGRFOABzSegkWKjQQM=; b=NvpUQKFhpAkO0GuFwV6y3ChyyOru4c4dNc1MUToF5n9sDvBD/vZrVpBppEVg/fjmEs LNl+4YQHgH326tVnfl8M++mHgbUh2iLwODOIVxIemctkWR6ScXZxOoKkcdKd10lzYZxb Xv8rNWc3l+WKFVFMxK/YvQN2No5Q6zQXjnx6sQFMa0djODA3Ykdes806iYtaRNL1TNI1 +Qqhi/qCeODC0pTBzegG34N7VsmK22VtzivRCl9oo1FPBGtwuYOV3KU3Td8hDsiS6BEk RUx8T9+4rKAYBRL89Xx/otdrFtjPtpMIFwfXuTo0w412w1aBsqFOUgkI+bFMZGZ21r0O 5rLg== X-Gm-Message-State: AOJu0YyBS3figYF13IkGjGecs0j/BYfv2Od3FJji2XhnuAhgpzxOZk+h yAfZ5p6USELLJ1iK6D6iOE/ODx/ySzBOeACK43Le/b4M+Fxua2jX1WIYVldKstY0oX6wNFuUl/O d X-Google-Smtp-Source: AGHT+IEjryjIztBnr0QgzMlIXGNvGKpK8yol92mr1u10S2EZZH0kGCTTIBEhR+gkT5ypCgXZjDBc8Q== X-Received: by 2002:a6b:4e14:0:b0:7d6:631d:7b0 with SMTP id c20-20020a6b4e14000000b007d6631d07b0mr185515iob.1.1712849745810; Thu, 11 Apr 2024 08:35:45 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.35.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:35:44 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 146/437] drm/loongson: convert to read/write iterators Date: Thu, 11 Apr 2024 09:14:46 -0600 Message-ID: <20240411153126.16201-147-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/gpu/drm/loongson/lsdc_crtc.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/drivers/gpu/drm/loongson/lsdc_crtc.c b/drivers/gpu/drm/loongso= n/lsdc_crtc.c index 827acab580fa..fde7c8d6cc3d 100644 --- a/drivers/gpu/drm/loongson/lsdc_crtc.c +++ b/drivers/gpu/drm/loongson/lsdc_crtc.c @@ -628,20 +628,18 @@ static int lsdc_crtc_man_op_open(struct inode *inode,= struct file *file) return single_open(file, lsdc_crtc_man_op_show, crtc); } =20 -static ssize_t lsdc_crtc_man_op_write(struct file *file, - const char __user *ubuf, - size_t len, - loff_t *offp) +static ssize_t lsdc_crtc_man_op_write(struct kiocb *iocb, struct iov_iter = *from) { - struct seq_file *m =3D file->private_data; + struct seq_file *m =3D iocb->ki_filp->private_data; struct lsdc_crtc *lcrtc =3D m->private; const struct lsdc_crtc_hw_ops *ops =3D lcrtc->hw_ops; + size_t len =3D iov_iter_count(from); char buf[16]; =20 if (len > sizeof(buf) - 1) return -EINVAL; =20 - if (copy_from_user(buf, ubuf, len)) + if (!copy_from_iter_full(buf, len, from)) return -EFAULT; =20 buf[len] =3D '\0'; @@ -663,10 +661,10 @@ static ssize_t lsdc_crtc_man_op_write(struct file *fi= le, static const struct file_operations lsdc_crtc_man_op_fops =3D { .owner =3D THIS_MODULE, .open =3D lsdc_crtc_man_op_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D single_release, - .write =3D lsdc_crtc_man_op_write, + .write_iter =3D lsdc_crtc_man_op_write, }; =20 static int lsdc_crtc_late_register(struct drm_crtc *crtc) --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f44.google.com (mail-io1-f44.google.com [209.85.166.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 8016B176FBD for ; Thu, 11 Apr 2024 15:35:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849749; cv=none; b=IX7RfIymi53Y5UkGfLiz/GbB1DxDOJ3mSQPsjg2VWQdEx/fe8rRBGaP1lHDmrMkpcjqCasNPWiwG/GQeqLRB5+gkw/8UoEoG1jnVfB78c2ReLjPJ/bm9bHmQwtVRn3qmhEbfvujR42PvKjnYX1fa5bPEzMYvci5mEwUiQWxo+Hc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849749; c=relaxed/simple; bh=MAdYJg7vC80sayVUc6VUMFMQPxg4PDOoBSuAV4FtkDc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=S24CXo9vQPCvLRDZ5CLMT8FL3mSNRDSm+nKI2TDI63xhgHtVvUEVF+wel3aHSfC8y8JAfZG4TxsEhgZYU6LgbcLCRDVypPivDeC5Y3puLbjV1BsnAECmjkY5xMy0zBHZA9r2ZCWzHACsbU9nb8Jv37DGVEtSz010EfBmdXntAy4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=PWSx51rH; arc=none smtp.client-ip=209.85.166.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="PWSx51rH" Received: by mail-io1-f44.google.com with SMTP id ca18e2360f4ac-7cc0e831e11so170508039f.1 for ; Thu, 11 Apr 2024 08:35:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849747; x=1713454547; 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=EpJzi3ktCie7A8Der17tbeDtmCXTCdjPxKaVEBIvR+w=; b=PWSx51rHnUYDRkVm5ToTvhqz1p18QzRfpGuA9doQjR05QDtOJumt3a18AKEkTUDXdU Ams51ylY6TpjHBz7OdqIDMnbzBYd0vmNW/mnc4c2TlYOqUf8VEnbuz0wh4F5qNl1opR2 1kQbdqe1NcMs1xq82QwYM2Yil+9UDATl6FJ2EBd4aCCzsVY7ulPC5aiZ05TvRqCizo9D 9fTbyn3+LLGnEo3qT+gnowfgdngY/JiOvXdbqteosjt4Mi5OuMSa0Pq5leuJmQxbRhAq wpLs2b3HpfaMkLwoh1pavYvAcuHjNTA6AheyCT8ZEb0nK/lOGk47qU0qZgzTEaDlA9b9 xv2A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849747; x=1713454547; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=EpJzi3ktCie7A8Der17tbeDtmCXTCdjPxKaVEBIvR+w=; b=iYh6LjbaFTFw161MeBG4EEpEbfNAyaxgKs2iWxXpNxCw8G3+1c56SEnEEW6DXt3bS/ G7wwsge/fdI2bG+9musMpk7Hd801rBcL49qI+PfUbqnGbvLn+5QmDipIaxtlBNEMWPRa q3anM5O1AVJ7zTtzDb2wcpxjCJ73ve4hLsSrEIKdoiI9w1FJsYmM89iN8D1fU1cDs0Uc L5jAbzl47XSXUL6BBdoBy9b8ZfO7hwkJ3RiJtT6PH0gHajlMrTNO8amG0GJCa7a+f0E9 SFU/1mfbG5RvYMxL5RftVLnaJjTl6qZjbeVd6OoLMfoVLqqFN+8VvoK0YesHFI0v6Y6W NncQ== X-Gm-Message-State: AOJu0YxK89L7BGfXYrzuQksnszdvro8zYUJVJLYkRAHyXVTlAXI3WNAO /hg3iUZu0mupPZOXmnYGp/HL/nCfko55E5rNMxZBs92Z5GX0x7lQS3i9XxMd/UlE5lUCkTYmS3O q X-Google-Smtp-Source: AGHT+IFLdertjjG+IB6jv3VjjUJfSpBzxjcraSi0D3fqPJYZGO0vzNYxiHAUUkn+dOCGdMFX1bVIhg== X-Received: by 2002:a5e:9907:0:b0:7d6:751f:192 with SMTP id t7-20020a5e9907000000b007d6751f0192mr180282ioj.2.1712849747403; Thu, 11 Apr 2024 08:35:47 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.35.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:35:46 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 147/437] drm/radeon/radeon_ttm: convert to read/write iterators Date: Thu, 11 Apr 2024 09:14:47 -0600 Message-ID: <20240411153126.16201-148-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/gpu/drm/radeon/radeon_ttm.c | 40 ++++++++++++++--------------- 1 file changed, 19 insertions(+), 21 deletions(-) diff --git a/drivers/gpu/drm/radeon/radeon_ttm.c b/drivers/gpu/drm/radeon/r= adeon_ttm.c index 2078b0000e22..2570babc690c 100644 --- a/drivers/gpu/drm/radeon/radeon_ttm.c +++ b/drivers/gpu/drm/radeon/radeon_ttm.c @@ -786,37 +786,36 @@ static int radeon_ttm_vram_open(struct inode *inode, = struct file *filep) return 0; } =20 -static ssize_t radeon_ttm_vram_read(struct file *f, char __user *buf, - size_t size, loff_t *pos) +static ssize_t radeon_ttm_vram_read(struct kiocb *iocb, struct iov_iter *t= o) { - struct radeon_device *rdev =3D f->private_data; + struct radeon_device *rdev =3D iocb->ki_filp->private_data; + size_t size =3D iov_iter_count(to); ssize_t result =3D 0; int r; =20 - if (size & 0x3 || *pos & 0x3) + if (size & 0x3 || iocb->ki_pos & 0x3) return -EINVAL; =20 while (size) { unsigned long flags; uint32_t value; =20 - if (*pos >=3D rdev->mc.mc_vram_size) + if (iocb->ki_pos >=3D rdev->mc.mc_vram_size) return result; =20 spin_lock_irqsave(&rdev->mmio_idx_lock, flags); - WREG32(RADEON_MM_INDEX, ((uint32_t)*pos) | 0x80000000); + WREG32(RADEON_MM_INDEX, ((uint32_t)iocb->ki_pos) | 0x80000000); if (rdev->family >=3D CHIP_CEDAR) - WREG32(EVERGREEN_MM_INDEX_HI, *pos >> 31); + WREG32(EVERGREEN_MM_INDEX_HI, iocb->ki_pos >> 31); value =3D RREG32(RADEON_MM_DATA); spin_unlock_irqrestore(&rdev->mmio_idx_lock, flags); =20 - r =3D put_user(value, (uint32_t __user *)buf); + r =3D put_iter(value, to); if (r) return r; =20 result +=3D 4; - buf +=3D 4; - *pos +=3D 4; + iocb->ki_pos +=3D 4; size -=3D 4; } =20 @@ -826,7 +825,7 @@ static ssize_t radeon_ttm_vram_read(struct file *f, cha= r __user *buf, static const struct file_operations radeon_ttm_vram_fops =3D { .owner =3D THIS_MODULE, .open =3D radeon_ttm_vram_open, - .read =3D radeon_ttm_vram_read, + .read_iter =3D radeon_ttm_vram_read, .llseek =3D default_llseek }; =20 @@ -838,16 +837,16 @@ static int radeon_ttm_gtt_open(struct inode *inode, s= truct file *filep) return 0; } =20 -static ssize_t radeon_ttm_gtt_read(struct file *f, char __user *buf, - size_t size, loff_t *pos) +static ssize_t radeon_ttm_gtt_read(struct kiocb *iocb, struct iov_iter *to) { - struct radeon_device *rdev =3D f->private_data; + struct radeon_device *rdev =3D iocb->ki_filp->private_data; + size_t size =3D iov_iter_count(to); ssize_t result =3D 0; int r; =20 while (size) { - loff_t p =3D *pos / PAGE_SIZE; - unsigned off =3D *pos & ~PAGE_MASK; + loff_t p =3D iocb->ki_pos / PAGE_SIZE; + unsigned off =3D iocb->ki_pos & ~PAGE_MASK; size_t cur_size =3D min_t(size_t, size, PAGE_SIZE - off); struct page *page; void *ptr; @@ -860,17 +859,16 @@ static ssize_t radeon_ttm_gtt_read(struct file *f, ch= ar __user *buf, ptr =3D kmap_local_page(page); ptr +=3D off; =20 - r =3D copy_to_user(buf, ptr, cur_size); + r =3D !copy_to_iter_full(ptr, cur_size, to); kunmap_local(ptr); } else - r =3D clear_user(buf, cur_size); + r =3D iov_iter_zero(cur_size, to) !=3D cur_size; =20 if (r) return -EFAULT; =20 result +=3D cur_size; - buf +=3D cur_size; - *pos +=3D cur_size; + iocb->ki_pos +=3D cur_size; size -=3D cur_size; } =20 @@ -880,7 +878,7 @@ static ssize_t radeon_ttm_gtt_read(struct file *f, char= __user *buf, static const struct file_operations radeon_ttm_gtt_fops =3D { .owner =3D THIS_MODULE, .open =3D radeon_ttm_gtt_open, - .read =3D radeon_ttm_gtt_read, + .read_iter =3D radeon_ttm_gtt_read, .llseek =3D default_llseek }; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f47.google.com (mail-io1-f47.google.com [209.85.166.47]) (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 255B417F36B for ; Thu, 11 Apr 2024 15:35:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849751; cv=none; b=al0jLqQeNKtdG0lvkdekInq7sms4x72FtaZGLSr45OWfKYsHaktLF0Rba/Qrmu4AxUsJ2tgiMlGeHPk+r/8l/0v2XraQkJb3pMnxI5ItMF2KEG3At8h+g+TQp25SAB204TSJc+q9kGJpldkD2f9bwVEvQDSHCqRlARlUlHrIw9s= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849751; c=relaxed/simple; bh=8CsQmi6ECG3WEyVFlzKKPArXbUAF18VIgC/ow/w19TQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=S+Q7zbzMzmoztus8DD1mTRSqGu1uEozVLTSD2rQjq8JzqC9/rgpM51S0EMLb8LciAC2HEfszfXH/KHzx5iCUjuZ3AbwA+1qtne1iqYnIFlcNTVU/Wx3exiBu68/jt536OKS9iwT7XxGL2lKlh68EdgyzK4cxaKI1QQBFgfNwiFw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=O7sEni3l; arc=none smtp.client-ip=209.85.166.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="O7sEni3l" Received: by mail-io1-f47.google.com with SMTP id ca18e2360f4ac-7d5ed700c2dso16152439f.0 for ; Thu, 11 Apr 2024 08:35:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849749; x=1713454549; 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=sr138yPBoYRmU0mMQ0v7pdiShQVQtzPKpOmz3dkCeRc=; b=O7sEni3lIugjxyaD8WKjMqpq9iOnhk079ShrnsIa9Hp+WgGi7nILmdq6S7PiI5qtO6 ldnYpGHJPkl3boJVckohzglTKPKk5rNrW0gayEOYRxbZmZyeKc3edoe8nO8AIJo1uoVf 9d/LgQLbf02a7R75P+SWNtDdIJu5iwvlJNFqKhqtiZEjl3qDhvRStOHYb7eEZDhuF0cJ UPaH3Szp/fXfm9/9q/HsPxNYrRpIpQDJaPXa1CpN7rd4X26sSwV5VCn+50dEstneft5V 1Wln8Y1ZOH7HpYdmCQ1anQQjvrs6aluWAKhoycBYraSmKUc7EQnjeJVf+uaA3W+pwcwM qImA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849749; x=1713454549; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=sr138yPBoYRmU0mMQ0v7pdiShQVQtzPKpOmz3dkCeRc=; b=holt4vEHWSnapaSv59EU8GEzEKuSvK7fMI29lNbGob5dug3APRHMY1l+NMb3APZNJt xsjtchOekNMqPkmXVRoB0AMcICYYB2r+eZIj33FJvDJuL5Mq1X2iJRDeXibA5sJn6LcS CtSgFVFdG3NYGdEl740jsS15Rmw1QGVKPzhrNOlCzFPXWr0rjjAS1TvCYMs0M+qXj6pq xB0j77rb1FSo1hHScuU+WC791EeuEADIzLtjyIdiKKYtE6bzkrcR8X0JQH/OBTAgNow2 xuEUDV/CG+6Fhi8FvBg7ElB3PfBcGXNFrBjT1FuJ5+tqdfKxJWMeHpK8WBsNKx+gkXFh th7g== X-Gm-Message-State: AOJu0YwUe1Vw++A9maC/CUYaKCGTMU/Zi+izoIBNrS3gXLsNGiTfy9yX pgeto/oBWTru3dEPiMT3xxEn0Y/fKydu/docyF7FVIMSzeoTVFlZ6sVz/uL2s/P/Mh/rVic2n/Y M X-Google-Smtp-Source: AGHT+IGn8Xc1vMYhe5ncYuCoNCLuQTTiKxh6YJCR8PhtRg1GiGPw35DqDqcpAo/2IbinqMs8u5PBjA== X-Received: by 2002:a05:6602:38d:b0:7d6:513b:254 with SMTP id f13-20020a056602038d00b007d6513b0254mr183266iov.2.1712849749057; Thu, 11 Apr 2024 08:35:49 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.35.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:35:47 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 148/437] drm: armada: convert to read/write iterators Date: Thu, 11 Apr 2024 09:14:48 -0600 Message-ID: <20240411153126.16201-149-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/gpu/drm/armada/armada_debugfs.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/drivers/gpu/drm/armada/armada_debugfs.c b/drivers/gpu/drm/arma= da/armada_debugfs.c index 29f4b52e3c8d..eaa0384a3bd4 100644 --- a/drivers/gpu/drm/armada/armada_debugfs.c +++ b/drivers/gpu/drm/armada/armada_debugfs.c @@ -48,22 +48,23 @@ static int armada_debugfs_crtc_reg_open(struct inode *i= node, struct file *file) inode->i_private); } =20 -static int armada_debugfs_crtc_reg_write(struct file *file, - const char __user *ptr, size_t len, loff_t *off) +static int armada_debugfs_crtc_reg_write(struct kiocb *iocb, + struct iov_iter *from) { + size_t len =3D iov_iter_count(from); struct armada_crtc *dcrtc; unsigned long reg, mask, val; char buf[32]; int ret; u32 v; =20 - if (*off !=3D 0) + if (iocb->ki_pos !=3D 0) return 0; =20 if (len > sizeof(buf) - 1) len =3D sizeof(buf) - 1; =20 - ret =3D strncpy_from_user(buf, ptr, len); + ret =3D strncpy_from_iter(from, ptr, len); if (ret < 0) return ret; buf[len] =3D '\0'; @@ -85,8 +86,8 @@ static int armada_debugfs_crtc_reg_write(struct file *fil= e, static const struct file_operations armada_debugfs_crtc_reg_fops =3D { .owner =3D THIS_MODULE, .open =3D armada_debugfs_crtc_reg_open, - .read =3D seq_read, - .write =3D armada_debugfs_crtc_reg_write, + .read_iter =3D seq_read_iter, + .write_iter =3D armada_debugfs_crtc_reg_write, .llseek =3D seq_lseek, .release =3D single_release, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f44.google.com (mail-io1-f44.google.com [209.85.166.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 9AA6E1836FD for ; Thu, 11 Apr 2024 15:35:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849753; cv=none; b=ezxM3+UNN74Zav2ABDpb/Jll6qeYkc/UdMaa9HLGyAl7NH0Pdn4Ot8WxqotKrzWBNBd/2nHMdKpLe7RqEZYdKoD/YLd3e1id+IN7r8d6+C6Ffr+g/YzJfEh5hJ5+6m28I+1sAmziwImF9woG5aIrdV4TjrPteF6mDE7Cs6yyrVg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849753; c=relaxed/simple; bh=vlkPlovNZ52U4T8uEy4BNRLC8J2EDTLI0Oesh/5coxg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Kmlt7U0nCAXP3fGFYFw9vheaikMRzdFI6AhKziNSL21UD3ysKXP8utiWPEwvYypaOKgpsxJ1rHWQQuMglSR98r0fDmIhlslmUSqP1HT9Shqpwg0lyOGHnHuuJ0yRF98ZZiaFEjTkqfP0zIlg1SYI3jOr4O+Nw3WyY0XWZ3Gwgko= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=BUwdvZXQ; arc=none smtp.client-ip=209.85.166.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="BUwdvZXQ" Received: by mail-io1-f44.google.com with SMTP id ca18e2360f4ac-7d67d1073easo9784439f.0 for ; Thu, 11 Apr 2024 08:35:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849751; x=1713454551; 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=tQzA5nP2JMWTk+IGmGSfrsH3b6kiTmy4C8RlssKIpE8=; b=BUwdvZXQJdtu8wPhdsLKPe26imb+vZ/X7JROr7UG3ZLA4LNf2ar0yHaBGXa4yLO16J BOXcvopP30gnonXhGNDXsHGEoLMBTXjd1nCvTxwJ5nJxCzxsuYlfozARj4BlUbJ7gzRF 9u77w9WmfBPA9rgU8nbEJSD+oVJIDJ22F/E4sXeOQE/mT7AKNWyXOkDaS3dP1RJXqQLv BcfyYZIh7FwMDWV1vhXZTY3G5ALOmlSEEoVAhyk0LGf8Y7aVWoQNK9NMQfdvtcgD7Dyv EXBcEhxNIDRtQyA4bTCzmpZ1yQ2K3xaJ2FOKWilW8yJPGokAE8lNTNAPVwC/lgTdQVoa YyKw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849751; x=1713454551; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=tQzA5nP2JMWTk+IGmGSfrsH3b6kiTmy4C8RlssKIpE8=; b=m9HqWboc6aJloOTTBOq3SMmle7LGTg2/r5ODT+aBasWIw+EKFV4ecjPMwm3HWtJffQ EtDp/MmffcBHggjobofg9j5wmEK3/3V839lHCQ5z9Tilxr/kJ56f0glQ7mDxcaULeBW9 AmB/Hl1y6mlMbLmvJqAruqkDt79GYLZMy57azc5nGULuTuhGYEeDAyNEEdyoNJUSvvuC 2jZFLD/mPVv5JEq+juBYDVrKqU0hw95qYF4JyL5pdtJ6Y9rq8ZrMTYCfMqMZDLm3SaOp PhkqtIJoOwWkn7lHS50q9EyoP3cRPpsikDe5Gv4G47k/LzF4V1k1muGL5vUONI64I1aw iQTw== X-Gm-Message-State: AOJu0YyoWhS1sMAfHzfEd+D701/ABISJsUzVOEFN3ZLp+H8TSgmp/vcd ZiRfy/cpS8SnAjEjtAlyHBKdsLjZR/dSgXoj9xuhzXyiiXzJrmxN+mdoSSqNQBo9ZsAG2zd4jtk P X-Google-Smtp-Source: AGHT+IHWgBp4WfLjP6VoCr+IbRXcycnXtxwlp7eM3UXIYxLWVAHpeX52uzugvvOEz5QxUINtj/U39g== X-Received: by 2002:a05:6602:84:b0:7d6:9d75:6de2 with SMTP id h4-20020a056602008400b007d69d756de2mr40671iob.2.1712849751459; Thu, 11 Apr 2024 08:35:51 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.35.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:35:49 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 149/437] drm: omap: convert to read/write iterators Date: Thu, 11 Apr 2024 09:14:49 -0600 Message-ID: <20240411153126.16201-150-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/gpu/drm/omapdrm/dss/dss.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/omapdrm/dss/dss.c b/drivers/gpu/drm/omapdrm/ds= s/dss.c index 988888e164d7..2f0a3cda2c6c 100644 --- a/drivers/gpu/drm/omapdrm/dss/dss.c +++ b/drivers/gpu/drm/omapdrm/dss/dss.c @@ -916,7 +916,7 @@ static int dss_debug_open(struct inode *inode, struct f= ile *file) =20 static const struct file_operations dss_debug_fops =3D { .open =3D dss_debug_open, - .read =3D seq_read, + .read_iter =3D seq_read, .llseek =3D seq_lseek, .release =3D single_release, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f43.google.com (mail-io1-f43.google.com [209.85.166.43]) (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 4466F190675 for ; Thu, 11 Apr 2024 15:35:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849755; cv=none; b=ellaDf14cj/F++YY+P4BVhvHL/rgqWZKgxZoU/C8v21d1DIL7hxu6zNP6ZXLFG68CDYiA2FdXoXPMg1cT6a08fUPhCpn9+6LhvrPzoh+sqJgxuMcNfNkh72jgDUV2skQjLFA6rmB6wNNR5lI36txDxdADdcos44erdnscMsmlYg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849755; c=relaxed/simple; bh=oaXLa6obNeD7EDzslEqqEuxPOkRKSkrk2y72bWlBbkw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=qw7LxAAtnb7e7GPhaB2UWbpyXBGSbMLOnwb6DntRidA9m8+ui4JvNuflq3GvzCD1/A1Juz1gcvWSMxq804jAfKCylG0XsKpHYWalWbQ4Um1nxSjp2fZkeLKjN1As0LR6tJMbpifZkuvfNoRhLI0pvkDhDPf2trf+/xha5zI1Yxg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=QnWIUv12; arc=none smtp.client-ip=209.85.166.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="QnWIUv12" Received: by mail-io1-f43.google.com with SMTP id ca18e2360f4ac-7d6112ba6baso58063539f.1 for ; Thu, 11 Apr 2024 08:35:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849753; x=1713454553; 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=4VIFDzXzmulpK99VEtWO5Vl4TpLAsVTHxAvD7CbNfrk=; b=QnWIUv12vk4DaS/H8RU/o9lKeOKqj7H8+f61KBbOs8ST5WMq3JqWe2LfhJL3q+Iner stSRpzIPRMRG4xipM5FjtXyDOZ70bJkzPxgUQY7WkqqRVeGto3FNm2HzDz5/jhKZ+Bh7 23VWnitNofdBI8bA7v4Azc5MIBPMaLlrGzNvE8NwmxwVuT/TikvvjVc7mvrZRW8FxH05 +FjOsUh+93KmoEQJMqEij6hBvQaqwSf4ENmNCdBkM+OiESGwoqSVAd0VyK/Bthz+sHZv cfRpSgv5e6ecsUggR+l8dp6C9ChJwVjL3fmTC7glIDlOwHUy7fseCopaSG0J2drn/X/a WPlg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849753; x=1713454553; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=4VIFDzXzmulpK99VEtWO5Vl4TpLAsVTHxAvD7CbNfrk=; b=DHYzdHaxw8HSnqTTtnhu0xS2BbVQbNev0JkRoukif2MnltcYF6BO/S5Olr9BoysNLK FL2VqZF1F8c50RGmDl4l94r/er/ywBYYKRqYCgks/t+3qwYPUPEH7IZXkPmkrM8kBVT2 cMXr+ur7PJbaopqyiKskPBE1YiYYqBAH/HgdqpKPZUX+ItQdZcpPTWUrFsaijodscUal 9Lv87vdD209v05b1DYICIMGF/VXB8wTZEdpB6RQoKkor4NSlNFqf9sCgcC/pjm3j+2Ew d+18MO3Bc2JqMjQJijQHJ+sVDcmlN17zBelKIOLpqd2yn/IA7uTRBroKBMH6LWLFN/yj 7Fow== X-Gm-Message-State: AOJu0YxnSJl4h8Okw0lVESbBCNBOixps1bYmPOmVyzCjlHQz62VXDGAZ g9W+O2MgN7MejNyPczw2jCYxfJpJlSp+kkkkLabobmNecZq9B+PqkwmrEq8b4rKjYZW5w5SCauc j X-Google-Smtp-Source: AGHT+IGMR2dt7eBUg9M2g0W6xwIHzZTkAKxX9HZgfK99RTKbYjOMOdqWkdMvgyqa6aw/noxKoMnERw== X-Received: by 2002:a6b:cd08:0:b0:7d5:fe3e:90ff with SMTP id d8-20020a6bcd08000000b007d5fe3e90ffmr204260iog.0.1712849753160; Thu, 11 Apr 2024 08:35:53 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.35.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:35:51 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 150/437] vga_switcheroo: convert to read/write iterators Date: Thu, 11 Apr 2024 09:14:50 -0600 Message-ID: <20240411153126.16201-151-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/gpu/vga/vga_switcheroo.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/vga/vga_switcheroo.c b/drivers/gpu/vga/vga_switche= roo.c index 365e6ddbe90f..b7afc48ab39c 100644 --- a/drivers/gpu/vga/vga_switcheroo.c +++ b/drivers/gpu/vga/vga_switcheroo.c @@ -772,8 +772,7 @@ static bool check_can_switch(void) } =20 static ssize_t -vga_switcheroo_debugfs_write(struct file *filp, const char __user *ubuf, - size_t cnt, loff_t *ppos) +vga_switcheroo_debugfs_write(struct kiocb *iocb, struct iov_iter *from) { char usercmd[64]; int ret; @@ -781,11 +780,12 @@ vga_switcheroo_debugfs_write(struct file *filp, const= char __user *ubuf, bool just_mux =3D false; enum vga_switcheroo_client_id client_id =3D VGA_SWITCHEROO_UNKNOWN_ID; struct vga_switcheroo_client *client =3D NULL; + size_t cnt =3D iov_iter_count(from); =20 if (cnt > 63) cnt =3D 63; =20 - if (copy_from_user(usercmd, ubuf, cnt)) + if (!copy_from_iter_full(usercmd, cnt, from)) return -EFAULT; =20 mutex_lock(&vgasr_mutex); @@ -899,8 +899,8 @@ vga_switcheroo_debugfs_write(struct file *filp, const c= har __user *ubuf, static const struct file_operations vga_switcheroo_debugfs_fops =3D { .owner =3D THIS_MODULE, .open =3D vga_switcheroo_debugfs_open, - .write =3D vga_switcheroo_debugfs_write, - .read =3D seq_read, + .write_iter =3D vga_switcheroo_debugfs_write, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D single_release, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f42.google.com (mail-io1-f42.google.com [209.85.166.42]) (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 2C798194C6D for ; Thu, 11 Apr 2024 15:35:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849757; cv=none; b=DekDK+ZgMutu8Nf4BIiHUdNnjRWJ7Mt3PC0H6bwXZ6ocTDdhdI8aZgCOYLlIHHW62XX2sKGb467bEVQrKNXUzqO4thOSGVnZ+kuZbmZGNYd6DwwkOTiUtxysjMORcyaWxePlePT6kVJyj4lWAxvzCmsp8OrdT1jxm/EB29Mer+8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849757; c=relaxed/simple; bh=R+8qdYKy+2yNR2Epgo8VTmaOZhc7ibFCLzN2ckw3VGQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=LFyuC21M8vqR4eKx6xa72aHS2+eCnGL7HLgAYZ0qf1GVWp9xl/GeGzz11DRM72kNLsiimGHZOi4GagSToOSFy+O0UolpejmhvcVnJyKqqUZl8KWIjd6yzW95V9YCWgJLBH+Oi1l1nYqb/ydqoenq7lwR1NJ31K2WNv+JVJgVnRQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=iln+NFXR; arc=none smtp.client-ip=209.85.166.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="iln+NFXR" Received: by mail-io1-f42.google.com with SMTP id ca18e2360f4ac-7c8e4c0412dso69562239f.1 for ; Thu, 11 Apr 2024 08:35:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849755; x=1713454555; 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=ayVqrybRN+1snfZYCIt8OLazPvrqtxDG6SAxszFAJ00=; b=iln+NFXRa/0IGqBgZ/7RKMEPOMAQ7e8dLybiZcpJcNtoToR8ctFwpiqc/behldRCmk Z5yfI8fU7SsRHKUOqvcASmEEKCTn2yN4N+zQX4gqMoK7VLmC91kzvIBmmAcH8IF/PBNb p3VyK9lmqa0vweogMgGYvJ+yy+mY64m46H3U0fCq09Ul/z4UpFgHUM3WWYX+q7g+T35z CE9zf5KUm0vB2BFyXQjtZNd1yaNUTqmmInp8DFUrT+sFkycpgtZukbtBrP+cpL+T108t t71eb5L4MIYmaQc1bXjU6nWJFR4AJl6bWkfTkB5HOqiLqJjzYXT+0TrkTt86PJy5OLyU kgZQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849755; x=1713454555; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ayVqrybRN+1snfZYCIt8OLazPvrqtxDG6SAxszFAJ00=; b=edITESrt/bhPT2BZHfh2bl/lxCR/moKFKo4dXbKWgHcwIC43Oo4GBsUycj1GoLAtfP zL5IQTRQNhdtIfP+mGjTWBNy/R7QB2PuF0A+mmzdBxS9GiTQurXHuV9UckJmArKHmkwI 76hFPEPGCbpcm2cG9XPg5gRlmz7+rASzNaflBCgan3xD+jnoCyk0gK1c4CTWHweJAioT NdfTVlVVJjMjSxWEk4DxXIeH76WDRXNu7iCZfU/NmPG41x8oZEWaeY7zk0Ime6RPlx2e U4rB1d7c4nY5VqpB0YgNBDaiSQGgEmbd6YnaMa46GfFrySohX/txTCqbbC/9wQ/rraS8 V9Og== X-Gm-Message-State: AOJu0Yz/VmaVtutw8iKZcpamyPbECA7b2EvZPgFrWaMh5ioJLvjbY8rQ 8lgvO+f7WavjrvNJ/umyzxom9rNHrW/ntQ/jfEjlNzAk9E0pSi6xeX4P6SBx6A5RUOUaikUhPLZ i X-Google-Smtp-Source: AGHT+IHKd3X/JEgezXEu0u8TJuLgAgRZASMWjp8uRNQGMFy1uQ+ekXgqJUR4d4SSuKktaaKU30s1SQ== X-Received: by 2002:a6b:c34e:0:b0:7d6:7b7c:8257 with SMTP id t75-20020a6bc34e000000b007d67b7c8257mr216272iof.0.1712849754980; Thu, 11 Apr 2024 08:35:54 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.35.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:35:53 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 151/437] drivers/clk: convert to read/write iterators Date: Thu, 11 Apr 2024 09:14:51 -0600 Message-ID: <20240411153126.16201-152-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/clk/clk.c | 11 +++++------ drivers/clk/starfive/clk-starfive-jh7110-pll.c | 2 +- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c index 25371c91a58f..5a6371a9cad8 100644 --- a/drivers/clk/clk.c +++ b/drivers/clk/clk.c @@ -3539,16 +3539,15 @@ static int current_parent_show(struct seq_file *s, = void *data) DEFINE_SHOW_ATTRIBUTE(current_parent); =20 #ifdef CLOCK_ALLOW_WRITE_DEBUGFS -static ssize_t current_parent_write(struct file *file, const char __user *= ubuf, - size_t count, loff_t *ppos) +static ssize_t current_parent_write(struct kiocb *iocb, struct iov_iter *f= rom) { - struct seq_file *s =3D file->private_data; + struct seq_file *s =3D iocb->ki_filp->private_data; struct clk_core *core =3D s->private; struct clk_core *parent; u8 idx; int err; =20 - err =3D kstrtou8_from_user(ubuf, count, 0, &idx); + err =3D kstrtou8_from_iter(from, count, 0, &idx); if (err < 0) return err; =20 @@ -3567,8 +3566,8 @@ static ssize_t current_parent_write(struct file *file= , const char __user *ubuf, =20 static const struct file_operations current_parent_rw_fops =3D { .open =3D current_parent_open, - .write =3D current_parent_write, - .read =3D seq_read, + .write_iter =3D current_parent_write, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D single_release, }; diff --git a/drivers/clk/starfive/clk-starfive-jh7110-pll.c b/drivers/clk/s= tarfive/clk-starfive-jh7110-pll.c index 3598390e8fd0..1b00fdc92b17 100644 --- a/drivers/clk/starfive/clk-starfive-jh7110-pll.c +++ b/drivers/clk/starfive/clk-starfive-jh7110-pll.c @@ -420,7 +420,7 @@ static const struct file_operations jh7110_pll_register= s_ops =3D { .owner =3D THIS_MODULE, .open =3D jh7110_pll_registers_open, .release =3D single_release, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek }; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f49.google.com (mail-io1-f49.google.com [209.85.166.49]) (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 ED6CB194C9D for ; Thu, 11 Apr 2024 15:35:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849759; cv=none; b=aU7lQcx+0z/0MwNynlLbdmyZfYeT8/cRgPovi4fjjK0GSNbcvozKNhZIUiCuQA5n3Ig7lDCNcqELzNEDdSpgG/gQDcWAKvwvXgXapsopk1LPYAk9rd6/1napT1ODexIFVc2dg0CenqURbpZwq5adnkpSHbDyIj7zoXx13aWzw+s= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849759; c=relaxed/simple; bh=DI38IkjyIYmBb2LOOD88/JS1r834ZsDLcO1QtII+r5A=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=PHP9lWljG/3ZBpiqASDiArglmNT/mKaH2ZXgrR2d07S8RlEYy/GpklmaqBzdxfMYRWK88cnotlznmEyrRGbzkfnfBzWf2wfXpcjqVycvhfZJ2OEdXcE52fHVyKMViFe0MtqR8anR17NAkCYyyWYQX3GWrHgGp5RBuMt7CfbySGQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=HylPKdnY; arc=none smtp.client-ip=209.85.166.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="HylPKdnY" Received: by mail-io1-f49.google.com with SMTP id ca18e2360f4ac-7d6812b37a6so8942639f.0 for ; Thu, 11 Apr 2024 08:35:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849757; x=1713454557; 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=oR3alxiCJxL/WHH6v/vBfbajmTpg3HxRCIj2t2Cj7nI=; b=HylPKdnY/DHaBo43299wW7XpBy28EumyH8qWfVKOl3rEZbp1Emro6bfflMDlQsJwQ7 FzMszlEnedWG9qva61mRSn2CCoPgAo6Qu37kaDANZ389z09Rft6wEZ5uJEspRJJNwg40 fsvSUgiLxCfdgenUh9WrcRQ14kOfI8wUFC2Cy3RH0rDriLhJZO03Aqo/haIyQZYpwbX1 t4S8qNCE3hevZAWmgjpnEEVURyO1oiOk8tVn9nJ56d5bBervY76MGSvZz+xJcReXtA7h NecgiXkXG80Hg6wQ+dwdfQWlcvvRkPQek+A8bzdKer2C/DMGXyVWd1HeXtBWaodXRA1j WdpA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849757; x=1713454557; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=oR3alxiCJxL/WHH6v/vBfbajmTpg3HxRCIj2t2Cj7nI=; b=KywB4f0FK7Igr/9XiQ3i1k894D+MprQ9/8+7milnpi3ansHiVyaqnJP1XH395w4mgI IFFRyt2ioPtC4OelgEEc/L5Z9v6OE691HYwnG34XlEz/7glHPEYmCNgaRRu7co0alvYJ bD1o1oMMro64iqyUFXZDE9GgnBxSldLx6qcl36hFyDYnk271ZsJS9X3HQUGofjIszev5 2Z0gWgTudRnDQ86aniJCb2C0IkN4VGV0wyrg9N9uXJzTp31FST6OnSA/9sLxASyFG/Iq GPacNmw6KNTtkzzZnbibCnQAldCZyj8xEa4P2nSURztAYgfIJ/T/b1h5M5LDdH1jZGUK S9eQ== X-Gm-Message-State: AOJu0YwIqKTmtkjZsaMfa1ErR4vu1HX/SpQzRAOnxFzi9+4PuNgi43Y3 lUxQHjPPuKnPMdvCY01NKufQaNLrjm6eXuHxXTvH491tFli8FKvOXr6dgkWyoOpVlp2Hj5RKcKb 8 X-Google-Smtp-Source: AGHT+IHINX7Q3Qpru03M4osqW0Nwyde0FrkVG3S5iH8Z+BV7tHKGhMurJ1BhNuWfXL5oBW9heH73IA== X-Received: by 2002:a92:2912:0:b0:36a:f9aa:5757 with SMTP id l18-20020a922912000000b0036af9aa5757mr3582061ilg.2.1712849756717; Thu, 11 Apr 2024 08:35:56 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.35.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:35:55 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 152/437] drivers/rtc: convert to read/write iterators Date: Thu, 11 Apr 2024 09:14:52 -0600 Message-ID: <20240411153126.16201-153-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/rtc/dev.c | 20 ++++++++------------ drivers/rtc/rtc-m41t80.c | 18 +++++++----------- 2 files changed, 15 insertions(+), 23 deletions(-) diff --git a/drivers/rtc/dev.c b/drivers/rtc/dev.c index 4aad9bb99868..b37e6d448ee4 100644 --- a/drivers/rtc/dev.c +++ b/drivers/rtc/dev.c @@ -138,10 +138,10 @@ EXPORT_SYMBOL(rtc_dev_update_irq_enable_emul); =20 #endif /* CONFIG_RTC_INTF_DEV_UIE_EMUL */ =20 -static ssize_t -rtc_dev_read(struct file *file, char __user *buf, size_t count, loff_t *pp= os) +static ssize_t rtc_dev_read(struct kiocb *iocb, struct iov_iter *to) { - struct rtc_device *rtc =3D file->private_data; + struct rtc_device *rtc =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(to); =20 DECLARE_WAITQUEUE(wait, current); unsigned long data; @@ -163,7 +163,7 @@ rtc_dev_read(struct file *file, char __user *buf, size_= t count, loff_t *ppos) ret =3D 0; break; } - if (file->f_flags & O_NONBLOCK) { + if (iocb->ki_filp->f_flags & O_NONBLOCK) { ret =3D -EAGAIN; break; } @@ -177,13 +177,9 @@ rtc_dev_read(struct file *file, char __user *buf, size= _t count, loff_t *ppos) remove_wait_queue(&rtc->irq_queue, &wait); =20 if (ret =3D=3D 0) { - if (sizeof(int) !=3D sizeof(long) && - count =3D=3D sizeof(unsigned int)) - ret =3D put_user(data, (unsigned int __user *)buf) ?: - sizeof(unsigned int); - else - ret =3D put_user(data, (unsigned long __user *)buf) ?: - sizeof(unsigned long); + ret =3D sizeof(data); + if (put_iter(data, to)) + ret =3D -EFAULT; } return ret; } @@ -524,7 +520,7 @@ static int rtc_dev_release(struct inode *inode, struct = file *file) static const struct file_operations rtc_dev_fops =3D { .owner =3D THIS_MODULE, .llseek =3D no_llseek, - .read =3D rtc_dev_read, + .read_iter =3D rtc_dev_read, .poll =3D rtc_dev_poll, .unlocked_ioctl =3D rtc_dev_ioctl, #ifdef CONFIG_COMPAT diff --git a/drivers/rtc/rtc-m41t80.c b/drivers/rtc/rtc-m41t80.c index 0013bff0447d..2487aafd9698 100644 --- a/drivers/rtc/rtc-m41t80.c +++ b/drivers/rtc/rtc-m41t80.c @@ -686,26 +686,22 @@ static void wdt_disable(void) =20 /** * wdt_write - write to watchdog. - * @file: file handle to the watchdog - * @buf: buffer to write (unused as data does not matter here - * @count: count of bytes - * @ppos: pointer to the position to write. No seeks allowed + * @iocb: metadata for IO + * @from: buffer to write (unused as data does not matter here * * A write to a watchdog device is defined as a keepalive signal. Any * write of data will do, as we don't define content meaning. */ -static ssize_t wdt_write(struct file *file, const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t wdt_write(struct kiocb *iocb, struct iov_iter *from) { - if (count) { + if (iov_iter_count(from)) { wdt_ping(); return 1; } return 0; } =20 -static ssize_t wdt_read(struct file *file, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t wdt_read(struct kiocb *iocb, struct iov_iter *to) { return 0; } @@ -844,10 +840,10 @@ static int wdt_notify_sys(struct notifier_block *this= , unsigned long code, =20 static const struct file_operations wdt_fops =3D { .owner =3D THIS_MODULE, - .read =3D wdt_read, + .read_iter =3D wdt_read, .unlocked_ioctl =3D wdt_unlocked_ioctl, .compat_ioctl =3D compat_ptr_ioctl, - .write =3D wdt_write, + .write_iter =3D wdt_write, .open =3D wdt_open, .release =3D wdt_release, .llseek =3D no_llseek, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f41.google.com (mail-io1-f41.google.com [209.85.166.41]) (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 7B9FF199EAD for ; Thu, 11 Apr 2024 15:36:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849761; cv=none; b=kg714TN5RTiHl+auvV4gTCy7DSrk2U4xKDcj+aUWUpUAtwzKF39hySEx4I1opsrG+nIafvsW6qsT6mvLgO904R1L4UyIoRWQspDjwaKIxrkESXNg4YLnEEhEnwFwcQy/EqDakYH1uR/OnCi96H6TrWyf2F9JWJCILBIYscJPIr8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849761; c=relaxed/simple; bh=2XaaQH06osAFD7r0uCj0RKanYh3XLyEaGHaVR+s/cWw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=WA/zIMH/XyaDlZvPZsEVUODvxQJKWFivuFsTk8ETYJPRYg4kzFRy/s/CGX32bVfcYiCLT52R/p8Qx9tSOGmyIV8Ho9IJELso4bp8+gvOO90HNQ7y0VURsrmCAa+cMa4PtL2o0zAcDOsk2+WEsoBvaXhfWWIqCuOXP7d92cUXKyE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=s3a8E0jE; arc=none smtp.client-ip=209.85.166.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="s3a8E0jE" Received: by mail-io1-f41.google.com with SMTP id ca18e2360f4ac-7c8e4c0412dso69563839f.1 for ; Thu, 11 Apr 2024 08:36:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849759; x=1713454559; 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=76UESEO4u7xO90RDsYhk9AZfovqDmJOROL5iZe7HymY=; b=s3a8E0jEJl02fw5iWaue8eTbhWXNUi1CBqO5WRi7WTZnqMCKIp6cZ8scOOCf6UBXpY qr2XJ7vZUv1EATsK38n1H7tWeWDPUiuoGYbYulvS9agytzoQVd6qSSt9p2OVeyr6zuxd fLEE+1hEzsiwOk0NpxRXy02eDN8DtsUM7lS7KdOIF32GIbWBXUYECvYJhM4kc8Njo1y4 oTvChUHo4cgBls3NNGKBzXUWbZNa+0u2VPSwhrSCEAkpwxnfDGU9SP/5kNEOPoPKDdNj F0aei60XnifkhU3mSym23OQRuDrKI3g4DXVM5xpcIp9heth07YgjzvpWPX+bg0kytV3Q IkkQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849759; x=1713454559; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=76UESEO4u7xO90RDsYhk9AZfovqDmJOROL5iZe7HymY=; b=QkmVwZwxsz8mXLg5yfIi6W4YDrRPHgkWkuh8WfBsgGEzJ+HJie+ZJF4+qBek/s+2ER Om9bf94hWt7Vb1pDCzDgyShGAROcJZMk722r0r/lUgZX0eTStmbpsH/jTXRV9ChayDfU GH9B0/Iv8t6zIHINNnE1DmunfdvNX7Fq6qoE3ogdP4kPUY9NP8oIdePoYt5g9HJ+whlG M7QXYgUKHQQPiRVnit4fXtIN2QuU/cJSgrKveU6Otsq6Mnt6500g9nQz3tX2vgRSk2Zd u8WzvWuwNuMYj7/4Qs5Z2fnsiQPOT9s+ITuiq5D2jX2AiNIQi0lVN0RoHlGTkNm0wOlA nAzA== X-Gm-Message-State: AOJu0YyYFc/E5Gx1rBS4eaw4k3TVoQyH7Otd3Rmc6TaOvtYp/Jh3pI4u zxnldqMLFjp5+ab/oxGpcx8ellid42qenSynNZCRdbpUfnX0A5qol0l1o0MKb8EioQWewmLKt1y X X-Google-Smtp-Source: AGHT+IGa47ZmDOUZy3qi7yrlEhtWgjELJ1OWC/pc27YISsw/gjUxTivXIFHsCPuqcafTZJOTL5ikUg== X-Received: by 2002:a05:6602:84:b0:7d6:9d75:6de2 with SMTP id h4-20020a056602008400b007d69d756de2mr40983iob.2.1712849759420; Thu, 11 Apr 2024 08:35:59 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.35.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:35:57 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 153/437] drivers/dma: convert to read/write iterators Date: Thu, 11 Apr 2024 09:14:53 -0600 Message-ID: <20240411153126.16201-154-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/dma/xilinx/xilinx_dpdma.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/drivers/dma/xilinx/xilinx_dpdma.c b/drivers/dma/xilinx/xilinx_= dpdma.c index b82815e64d24..8a443cd0cd44 100644 --- a/drivers/dma/xilinx/xilinx_dpdma.c +++ b/drivers/dma/xilinx/xilinx_dpdma.c @@ -354,14 +354,14 @@ static struct xilinx_dpdma_debugfs_request dpdma_debu= gfs_reqs[] =3D { }, }; =20 -static ssize_t xilinx_dpdma_debugfs_read(struct file *f, char __user *buf, - size_t size, loff_t *pos) +static ssize_t xilinx_dpdma_debugfs_read(struct kiocb *iocb, struct iov_it= er *to) { enum xilinx_dpdma_testcases testcase; + size_t size =3D iov_iter_count(to); char *kern_buff; int ret =3D 0; =20 - if (*pos !=3D 0 || size <=3D 0) + if (iocb->ki_pos !=3D 0 || size <=3D 0) return -EINVAL; =20 kern_buff =3D kzalloc(XILINX_DPDMA_DEBUGFS_READ_MAX_SIZE, GFP_KERNEL); @@ -381,7 +381,7 @@ static ssize_t xilinx_dpdma_debugfs_read(struct file *f= , char __user *buf, } =20 size =3D min(size, strlen(kern_buff)); - if (copy_to_user(buf, kern_buff, size)) + if (!copy_to_iter_full(kern_buff, size, to)) ret =3D -EFAULT; =20 done: @@ -389,7 +389,7 @@ static ssize_t xilinx_dpdma_debugfs_read(struct file *f= , char __user *buf, if (ret) return ret; =20 - *pos =3D size + 1; + iocb->ki_pos =3D size + 1; return size; } =20 @@ -441,11 +441,12 @@ static ssize_t xilinx_dpdma_debugfs_write(struct file= *f, kfree(kern_buff_start); return ret; } +FOPS_WRITE_ITER_HELPER(xilinx_dpdma_debugfs_write); =20 static const struct file_operations fops_xilinx_dpdma_dbgfs =3D { .owner =3D THIS_MODULE, - .read =3D xilinx_dpdma_debugfs_read, - .write =3D xilinx_dpdma_debugfs_write, + .read_iter =3D xilinx_dpdma_debugfs_read, + .write_iter =3D xilinx_dpdma_debugfs_write_iter, }; =20 static void xilinx_dpdma_debugfs_init(struct xilinx_dpdma_device *xdev) --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f44.google.com (mail-io1-f44.google.com [209.85.166.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 24754199EBF for ; Thu, 11 Apr 2024 15:36:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849763; cv=none; b=Wz7LRuL3Zt4LtgLVj/cNBXFHx8jaC4huGRICsUDAYCkatByuWGHBjIk1aRtfSTdAWHwJqnVXZs0ZaMFVDzkmi8/LpfVvaS3MALS4aC2OJKcQwGQtgvC/Ak1aFE5tbRQvZuG0b9A5QrywBVIRCV6kS+flrKX18Sp+7IvVl8RmZvg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849763; c=relaxed/simple; bh=a4TEIQTuQWFkcw6pA1NWC0rqKJ0PG83hksmnYR8rtaQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=GSHCfTPny3uPgrVxDKTWqR4ULcGNhvQZ1mcDTeW17NkQDyutSaF2fk8FniMVxBsRb9JxQd3cX6Fnbob8fa1s8cyVnsX8C6x4hw7BVe3FiPvoLGYsmdBE0ppCuXpMlCw6fHaSiZ5F11OW/I3h8+w3cY5JA+pl7DbgmFeWNsHOjl0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=roVGWfkc; arc=none smtp.client-ip=209.85.166.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="roVGWfkc" Received: by mail-io1-f44.google.com with SMTP id ca18e2360f4ac-7c8e4c0412dso69564339f.1 for ; Thu, 11 Apr 2024 08:36:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849761; x=1713454561; 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=EuLUXClpT72M8hfQh2VGidcAIqmjsaMeBif3YhVOe5g=; b=roVGWfkcgKjfnDpOu2WBodKWhNMI5lVh0gGAvqNTFCW6h5yF0QTcBiplmH1fhXGcqF YKe47Uho04F7Cerws7O14J0VeSoM6ZwgWR2+orZYiX8h8nI3U5PVIzbadAVWAAuuPA4l /ekGCnjp61+lHhVn8BZn6/hWcNjSuQw5BKlWCS/VlvSh+40rmlFhJEoscw6iufL5fpWq Mk/6Y86Zzo+SqdU6LazCvFogSkqjJnjoJDwqtf0MnVS3e6WBxgFV1xRbt+SNPAW+7YG5 /QLIMIzc+Bl8aGt/zLYDoNwcy9Vis19/g4Ucp0HihOX4GvGqQA/DsnUDI0Eq9GLaYTzv e0Cw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849761; x=1713454561; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=EuLUXClpT72M8hfQh2VGidcAIqmjsaMeBif3YhVOe5g=; b=BWsJQFsBgHC39zZyE9nZaVmL56rppq08PCW3abQcnpCogK6/xi+4qXY11yVz0S0BvM MIADQGD4vfvY8IX3qqIdr54WY/h5k+1xdBfSo5x+jWYk/8hXb4E9e+B+/j8bO/uPR6ca tEOzXgRJHpVtultrCtRhQAcomMteQmC0L1PZIIF57dOKUMmGafV3upa5883SiUu7pOLE LXIOIbL4OG3fwHL0IU0bKRAJCw8l9T6KBOzdiFNggR0gXQ1YTyqsIsMh6uGkGAUX2Y4z bShL2mXNApLDHvt4BSXHngQvFQHUMD3N2WCkMLgJg1Fn0h4El8909wsjgriIRB2xf2Xp hQyA== X-Gm-Message-State: AOJu0YzLNDTNUBhBaB8xSVE9lheT2m6DY23gY/ryatydM3UV2rKr2hO0 whlxi93wnlwid3kkZ94AWd3fl3gNPIGxACEbohKiS4/1cYExUJ29skKxPdeqKKOKHdykvlUh+HQ L X-Google-Smtp-Source: AGHT+IHMoN//d5n+dYVZkBHVUXPCZfUakGLAlDeQ1Kprkb1py5eGlbGGHAZB6g0lsGBhZce0AEseow== X-Received: by 2002:a92:de01:0:b0:36a:cf8:3fe6 with SMTP id x1-20020a92de01000000b0036a0cf83fe6mr5771996ilm.1.1712849760966; Thu, 11 Apr 2024 08:36:00 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.35.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:35:59 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 154/437] fs/debugfs: convert to read/write iterators Date: Thu, 11 Apr 2024 09:14:54 -0600 Message-ID: <20240411153126.16201-155-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- fs/debugfs/file.c | 54 +++++++++++++++++------------------------------ 1 file changed, 19 insertions(+), 35 deletions(-) diff --git a/fs/debugfs/file.c b/fs/debugfs/file.c index 31749d8c35f8..6463b4a274d4 100644 --- a/fs/debugfs/file.c +++ b/fs/debugfs/file.c @@ -318,15 +318,13 @@ FULL_PROXY_FUNC(llseek, loff_t, filp, PROTO(struct file *filp, loff_t offset, int whence), ARGS(filp, offset, whence)); =20 -FULL_PROXY_FUNC(read, ssize_t, filp, - PROTO(struct file *filp, char __user *buf, size_t size, - loff_t *ppos), - ARGS(filp, buf, size, ppos)); +FULL_PROXY_FUNC(read_iter, ssize_t, iocb->ki_filp, + PROTO(struct kiocb *iocb, struct iov_iter *to), + ARGS(iocb, to)); =20 -FULL_PROXY_FUNC(write, ssize_t, filp, - PROTO(struct file *filp, const char __user *buf, size_t size, - loff_t *ppos), - ARGS(filp, buf, size, ppos)); +FULL_PROXY_FUNC(write_iter, ssize_t, iocb->ki_filp, + PROTO(struct kiocb *iocb, struct iov_iter *from), + ARGS(iocb, from)); =20 FULL_PROXY_FUNC(unlocked_ioctl, long, filp, PROTO(struct file *filp, unsigned int cmd, unsigned long arg), @@ -376,10 +374,10 @@ static void __full_proxy_fops_init(struct file_operat= ions *proxy_fops, proxy_fops->release =3D full_proxy_release; if (real_fops->llseek) proxy_fops->llseek =3D full_proxy_llseek; - if (real_fops->read) - proxy_fops->read =3D full_proxy_read; - if (real_fops->write) - proxy_fops->write =3D full_proxy_write; + if (real_fops->read_iter) + proxy_fops->read_iter =3D full_proxy_read_iter; + if (real_fops->write_iter) + proxy_fops->write_iter =3D full_proxy_write_iter; if (real_fops->poll) proxy_fops->poll =3D full_proxy_poll; if (real_fops->unlocked_ioctl) @@ -914,19 +912,17 @@ void debugfs_create_atomic_t(const char *name, umode_= t mode, } EXPORT_SYMBOL_GPL(debugfs_create_atomic_t); =20 -static ssize_t __debugfs_read_file_bool(struct file *file, - char __user *user_buf, size_t count, - loff_t *ppos) +ssize_t debugfs_read_file_bool(struct kiocb *iocb, struct iov_iter *to) { char buf[2]; bool val; int r; - struct dentry *dentry =3D F_DENTRY(file); + struct dentry *dentry =3D F_DENTRY(iocb->ki_filp); =20 r =3D debugfs_file_get(dentry); if (unlikely(r)) return r; - val =3D *(bool *)file->private_data; + val =3D *(bool *)iocb->ki_filp->private_data; debugfs_file_put(dentry); =20 if (val) @@ -934,25 +930,19 @@ static ssize_t __debugfs_read_file_bool(struct file *= file, else buf[0] =3D 'N'; buf[1] =3D '\n'; - return simple_read_from_buffer(user_buf, count, ppos, buf, 2); -} - -ssize_t debugfs_read_file_bool(struct kiocb *iocb, struct iov_iter *to) -{ - return vfs_read_iter(iocb, to, __debugfs_read_file_bool); + return simple_copy_to_iter(buf, &iocb->ki_pos, 2, to); } EXPORT_SYMBOL_GPL(debugfs_read_file_bool); =20 -static ssize_t __debugfs_write_file_bool(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +ssize_t debugfs_write_file_bool(struct kiocb *iocb, struct iov_iter *from) { bool bv; int r; - bool *val =3D file->private_data; - struct dentry *dentry =3D F_DENTRY(file); + bool *val =3D iocb->ki_filp->private_data; + struct dentry *dentry =3D F_DENTRY(iocb->ki_filp); + size_t count =3D iov_iter_count(from); =20 - r =3D kstrtobool_from_user(user_buf, count, &bv); + r =3D kstrtobool_from_iter(from, count, &bv); if (!r) { r =3D debugfs_file_get(dentry); if (unlikely(r)) @@ -964,12 +954,6 @@ static ssize_t __debugfs_write_file_bool(struct file *= file, return count; } =20 -ssize_t debugfs_write_file_bool(struct kiocb *iocb, struct iov_iter *from) -{ - return vfs_write_iter(iocb, from, __debugfs_write_file_bool); -} -EXPORT_SYMBOL_GPL(debugfs_write_file_bool); - static const struct file_operations fops_bool =3D { .read_iter =3D debugfs_read_file_bool, .write_iter =3D debugfs_write_file_bool, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f50.google.com (mail-io1-f50.google.com [209.85.166.50]) (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 EE5BB19DF59 for ; Thu, 11 Apr 2024 15:36:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849765; cv=none; b=nstzbgCif0oUTYiTZPYNXEHyrLHNKy9u3hl2LhmkRByVJ70zW5MG8+u42NJEQNnZIG3TNyRp6ZSvE7i6flTw1OekIa8PGhi6TQOQHGQ8BwW6+FXV8rdX0xNzMdaXr+mes21RNuOOzeTw04V0zdJBm1b4IVsDgo90AqiQgfmtC2I= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849765; c=relaxed/simple; bh=zvqzV0PY1jqn8kHPAOt92hGay/kXiDLTVikdvgd4zXg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=E0qKNkS49D/St2tIYWyvrPPC2IxUvs2g/bD/e/nLSMgJ6FLCTcZqBGE/9Yb/pN9j0fMfJFjUoVcdC8BZwKhVWlrju42XVKSShzYHbrMEZQPokrDHcRHv9fS7Ww+CRDsxGzKpnjoPwLY/J9w9HhSYWLi3M3oSSmsuQe+CIvHrLLg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=iIYb3LtL; arc=none smtp.client-ip=209.85.166.50 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="iIYb3LtL" Received: by mail-io1-f50.google.com with SMTP id ca18e2360f4ac-7d6112ba6baso58070739f.1 for ; Thu, 11 Apr 2024 08:36:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849763; x=1713454563; 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=0S/KbBS/htLgbe+dCG/wp90qXPsCpm6GnNXMIBTtTxs=; b=iIYb3LtL11BMy73aq1Dol1OZjpD6bS5v0QkYMt4pOc3UGvk8KQT5PU+sCcBwfV1doo UjkmPKWdeCrrkBn69E48Y/raBxVVjjnFF4bqLLyNQLumpBmW1yRTB1gQaxAcJmm8TSid MNWVDfuhtdofmmFSMf7gp66sgKWr0u8S8Lakn+P5mvkoiE/pxccfGzMwZha+2by7gUug sP0MIDO0IkMd6lB3Ztkw3PtpsFpDA1JT3fTajElZWLGJEz2bpeWmQzbalQ1zx0jv9E07 ifs8H5VJBLAgKxV3ApmQo1cvdl5AZ7uuLphLd/jnnK4CS2TyiqT3cdRSjCT3ZrDtdqtl v3PA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849763; x=1713454563; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=0S/KbBS/htLgbe+dCG/wp90qXPsCpm6GnNXMIBTtTxs=; b=PTHQE6Rqqd01L9ccx77hJnOlZoW+9ZGsLAnUxsXF8zBHi5crjd9xG0FZ9J8SULlcgA jAe3kdnW6yfsUNDGUxz//csAjGTeX/aarU0CUIVG5iEqYIehGwO/xVOXz9tLLhPrt1d1 XAicWkyOqnYu4Nd/WqpScWVaxbpHnyoeHK0o3LUMcUBAMujWBajV7oSz3srs8sFzqehu 7BqUgDp+xZyoebrIuh2OckN/sAz5+4HhoD4ltgS4BhcZGzePiqJUaIMxKDlNh/SxA/Xh QuVf7aMdqA/t7uFAY78PlyCQPvIbbzjxybnltPJxY4+x47xmf9mliBt32Rl9+7A9DGH0 +Png== X-Gm-Message-State: AOJu0YxyaZsbl1qNnrqiAPFhQB9GNcNSTNVxvN1iW3O5H37LFbJYQL5t SKT0a0VrdOgMCxyjqEREFYIY4nCWe+UQT4PEekzHvrl7JshsOicB9zvKrslaQmacxMhbV2/tWQO w X-Google-Smtp-Source: AGHT+IFhgvpq5dTFXW9hWNErVKSMYtXinSYRZpe9YEaMHIrJTs76iU8YGt4ieMfnAjYVf2rUKQErPA== X-Received: by 2002:a05:6602:38d:b0:7d6:513b:254 with SMTP id f13-20020a056602038d00b007d6513b0254mr184156iov.2.1712849762662; Thu, 11 Apr 2024 08:36:02 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.36.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:36:01 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 155/437] HID: usbhid: convert to read/write iterators Date: Thu, 11 Apr 2024 09:14:55 -0600 Message-ID: <20240411153126.16201-156-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/hid/usbhid/hiddev.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/drivers/hid/usbhid/hiddev.c b/drivers/hid/usbhid/hiddev.c index 59cf3ddfdf78..19b3e663cf3d 100644 --- a/drivers/hid/usbhid/hiddev.c +++ b/drivers/hid/usbhid/hiddev.c @@ -308,7 +308,7 @@ static int hiddev_open(struct inode *inode, struct file= *file) /* * "write" file op */ -static ssize_t hiddev_write(struct file * file, const char __user * buffer= , size_t count, loff_t *ppos) +static ssize_t hiddev_write(struct kiocb *iocb, struct iov_iter *from) { return -EINVAL; } @@ -316,10 +316,11 @@ static ssize_t hiddev_write(struct file * file, const= char __user * buffer, size /* * "read" file op */ -static ssize_t hiddev_read(struct file * file, char __user * buffer, size_= t count, loff_t *ppos) +static ssize_t hiddev_read(struct kiocb *iocb, struct iov_iter *to) { DEFINE_WAIT(wait); - struct hiddev_list *list =3D file->private_data; + struct hiddev_list *list =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(to); int event_size; int retval; =20 @@ -347,7 +348,7 @@ static ssize_t hiddev_read(struct file * file, char __u= ser * buffer, size_t coun retval =3D -EIO; break; } - if (file->f_flags & O_NONBLOCK) { + if (iocb->ki_filp->f_flags & O_NONBLOCK) { retval =3D -EAGAIN; break; } @@ -379,7 +380,7 @@ static ssize_t hiddev_read(struct file * file, char __u= ser * buffer, size_t coun =20 event.hid =3D list->buffer[list->tail].usage_code; event.value =3D list->buffer[list->tail].value; - if (copy_to_user(buffer + retval, &event, sizeof(struct hiddev_event)= )) { + if (!copy_to_iter_full(&event, sizeof(struct hiddev_event), to)) { mutex_unlock(&list->thread_lock); return -EFAULT; } @@ -389,7 +390,7 @@ static ssize_t hiddev_read(struct file * file, char __u= ser * buffer, size_t coun if (list->buffer[list->tail].field_index !=3D HID_FIELD_INDEX_NONE || (list->flags & HIDDEV_FLAG_REPORT) !=3D 0) { =20 - if (copy_to_user(buffer + retval, list->buffer + list->tail, sizeof(s= truct hiddev_usage_ref))) { + if (!copy_to_iter_full(list->buffer + list->tail, sizeof(struct hidde= v_usage_ref), to)) { mutex_unlock(&list->thread_lock); return -EFAULT; } @@ -846,8 +847,8 @@ static long hiddev_ioctl(struct file *file, unsigned in= t cmd, unsigned long arg) =20 static const struct file_operations hiddev_fops =3D { .owner =3D THIS_MODULE, - .read =3D hiddev_read, - .write =3D hiddev_write, + .read_iter =3D hiddev_read, + .write_iter =3D hiddev_write, .poll =3D hiddev_poll, .open =3D hiddev_open, .release =3D hiddev_release, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f42.google.com (mail-io1-f42.google.com [209.85.166.42]) (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 7EE4B19DF6F for ; Thu, 11 Apr 2024 15:36:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849766; cv=none; b=tPST+/kdueVg9Q5GHYAbtcOD5AG9jc3dyakKZUtB8pmljDUoxfbeiz44xOHn78+KlINE9wyRzt0jhaNo05jAt01XdG+WAyDUiSa7yq1KA1qwmEcat3HB3X+2rMM4jsT4IZFB88eGISOhALK2XWr0I6XRSvmbsQXxEeLLZYtXIeM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849766; c=relaxed/simple; bh=N0LR7rePclWwCSdt0qVNhNXvj3rVODCzYkNWaEHF4to=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=jcYcvV6FEVm6AZghlAFmSlhC6z99w6vAW0KizLq//LU5Hbs+yJFxStrK/78WYu82kfIUCRr2WUkfZ8QJYmlogH+/eAx+th/LUYR3ADXxrmv/8/x1W+1OGGYzqsRL3+Zq8QTxLo1oXEuHBGhVBK2/Iw1OqU5j24aJTZTPxdKaFwU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=Wj5a7uYr; arc=none smtp.client-ip=209.85.166.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="Wj5a7uYr" Received: by mail-io1-f42.google.com with SMTP id ca18e2360f4ac-7d6112ba6baso58071439f.1 for ; Thu, 11 Apr 2024 08:36:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849764; x=1713454564; 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=aXVa3ezz1u6hZf4xOyPr+4b2F47oTYcBm9qW5wgKxWE=; b=Wj5a7uYrLedmoPADzacH3lE6wKm9bve6/FjXrNCI5UcjBXsNujP6YGe0Bmf3bPOFaE Eg4UWlD0ShXA3FkxRxrL22Xmt9RELdIDGJhxbBn1IokBj9FO4I3CBVlVEn5bPITn/98E 4mfv+joEDes/IQv/1bcw1Zt2rrxfG9JGdFDZfGihwnaNQNswhAwTrRHU+BCVEqC/zL73 5sS53yJZIhd9r3+DKUmgck0tuE9uLlUiTY0TNQTZ0E/+FYTwPDReNIw8RCvWJzKLzesa dcmrCczkfYl+4f6OczHaVc5OomOi7EpHscRxmEuXvkUqLTpUgO3yXhFv17qvVa9LqRgz BkDQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849764; x=1713454564; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=aXVa3ezz1u6hZf4xOyPr+4b2F47oTYcBm9qW5wgKxWE=; b=mrq3CNcFlE4DVgLffF4o5YAzsqbAacQvTBnlMflT//5Jb7Juoku9YkbsdQmtYkpU3U EwFKBM7YDLpqUcPaVHgq+qOiAXeSgkqGKz19fzchX8Vvc0L2dlPPSPdQvGZwK4gyj9VR 4SYeU1r0KjBKe2xSaA+cEH9Gt0276bk+FVMi69yxT3ggaoqbQgO0MagYv2Do+F9x4Jfi gVUlAc0j3iAdda0jGRYLvK7dF0nJxBdw0xN1rqqvRLgWYus6eIxzW9znUTmZiiM349Rb +cKiuG5WtyL51TC2DfGR4Tq95I3iewRxlxZWkjMWeRwHctu0D/ShTQ+tKz+37ZqmSR7k LDZQ== X-Gm-Message-State: AOJu0YwRgBE/kvwNdNCYr8LDbDF/sOMCAK0akvJxfuFYPMz7cAJrWkyE CnEv3SdhiLugTBV/m8CH4ayYo0dC2e4BaRkVP00VoROkTD3+aXYACaLYM6EoCQX39DYuPPY2ZzD B X-Google-Smtp-Source: AGHT+IFKm7AHRItIii66BGW7YKuR1NLymHhP2GmLh3hjuWGUK48Q+NGXWVJ4U3zYvNveAdknQUtuHw== X-Received: by 2002:a6b:cd08:0:b0:7d5:fe3e:90ff with SMTP id d8-20020a6bcd08000000b007d5fe3e90ffmr204522iog.0.1712849764352; Thu, 11 Apr 2024 08:36:04 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.36.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:36:02 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 156/437] usb: chipidea: convert to read/write iterators Date: Thu, 11 Apr 2024 09:14:56 -0600 Message-ID: <20240411153126.16201-157-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/usb/chipidea/debug.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/drivers/usb/chipidea/debug.c b/drivers/usb/chipidea/debug.c index e72c43615d77..fa080c6dabf3 100644 --- a/drivers/usb/chipidea/debug.c +++ b/drivers/usb/chipidea/debug.c @@ -6,6 +6,7 @@ #include #include #include +#include #include #include #include @@ -70,10 +71,10 @@ static int ci_port_test_show(struct seq_file *s, void *= data) /* * ci_port_test_write: writes port test mode */ -static ssize_t ci_port_test_write(struct file *file, const char __user *ub= uf, - size_t count, loff_t *ppos) +static ssize_t ci_port_test_write(struct kiocb *iocb, struct iov_iter *fro= m) { - struct seq_file *s =3D file->private_data; + struct seq_file *s =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); struct ci_hdrc *ci =3D s->private; unsigned long flags; unsigned mode; @@ -81,7 +82,7 @@ static ssize_t ci_port_test_write(struct file *file, cons= t char __user *ubuf, int ret; =20 count =3D min_t(size_t, sizeof(buf) - 1, count); - if (copy_from_user(buf, ubuf, count)) + if (!copy_from_iter_full(buf, count, from)) return -EFAULT; =20 /* sscanf requires a zero terminated string */ @@ -109,8 +110,8 @@ static int ci_port_test_open(struct inode *inode, struc= t file *file) =20 static const struct file_operations ci_port_test_fops =3D { .open =3D ci_port_test_open, - .write =3D ci_port_test_write, - .read =3D seq_read, + .write_iter =3D ci_port_test_write, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D single_release, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f50.google.com (mail-io1-f50.google.com [209.85.166.50]) (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 623CE1A0B0B for ; Thu, 11 Apr 2024 15:36:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849768; cv=none; b=tds1gXlRq9iBRJkGh0U629Vtt9QOrwWc1s2a71S71J9JSLQKf6D5akn/HSYy3aPuOsw9vcPgr4nwJormv80W8D4dYpSv8a2Q/43N5AK2pwK6UNf+qMEOWWqB6dudNwIFEC3J2OSmMgwvcHXjjIvdtN7dL6RARzmxufEm8h+e86U= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849768; c=relaxed/simple; bh=+5eGTQuXClbzDJtZcXIqmdGdgZwAoQdeNnA2FFXvzLE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=RRI4gMDBgdOpfknxVVcbh1tkNcsY9uTA3pFFCBhA2azhnofCzDUmCjQ6Ttz8lH58dvYLHjxtR9CUrKneDQ9U+vej5fE62C92E4oUt4n5hNMEOiGuthpJAcjHaCuzrlfBZZF2wOVs9OqdhzVRPEMGjx+LmQ+/PIcigyuUjSQh38o= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=nBztdBaN; arc=none smtp.client-ip=209.85.166.50 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="nBztdBaN" Received: by mail-io1-f50.google.com with SMTP id ca18e2360f4ac-7cb9dd46babso81845339f.1 for ; Thu, 11 Apr 2024 08:36:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849766; x=1713454566; 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=9c0TLT+6r44FWOywZJ0UCMvqPCeYqv+2VLmgi7KaxQw=; b=nBztdBaNcdWSfzWcYPJNhpDRTZJoO2KbvXZkSFEh6y1UYowsQ+d+SbWMAwaBlOcEkZ 50+kghiWJmUoBeqoicC+iRtG7zmB9EfSDZ5w6IhEbCYQ5tW6hjATLZi2YesGW1VTGTVg KLLhzier/biBh/B/zk+iW6r+wLxXF+VWH2Nb9t4x51f2oij9mzt4JAXcB4O8G73TRpMk 2nudDB1TU/OMFihNbKpmRI+uWpQutRChlhR7dIh/K1NYPA/7HBOhNOLi3KeLjZiTwc/O jgdHqu3bHX4X1ObDAT1Gog1iUHsAzjhStAdleUw7Wt9X1cNiQKugx2N1pyBaW1ek43sG nEdg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849766; x=1713454566; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=9c0TLT+6r44FWOywZJ0UCMvqPCeYqv+2VLmgi7KaxQw=; b=D5gQDX9Qu9DkHmuZY0pMuqCBTDZUwCvkPG2GyMKDOjOqY40h5GWL/MU+24TXy19I1y wPRzlL8TzAs6LAt9DpG/AFqxi1vPWacyg6NTtpN0akPdH1ow9O3c/Or+Js/Kx1dgjEOc qAD+lGaZV21RjkM5uOt8aNzF40SidJIh4ZJGIHCEvcpfLOBo/GJrYX6f8+o/OFcW4GN1 YbfikRXxHsyHenUg51JsR2+8NKYJ3xb/7m+I1zqzt6VjH0+34vFxKPAuyELYq/qE1Gnx iB6KUsP648ARwoVhtG+zrgb9PMglIA96Ok4Zscf8hwaDtyI+NLLGFX95VUKrbiwk7ZuM pDkg== X-Gm-Message-State: AOJu0YwZTHae6uONYe8xTSlDHnxxpPsiXy+GjSWIfXSFA9C2VbeHcKnX gErMQ70uIQ76G4DnI3MAdBSyQ1TA+Lu2UGtCMr6vC3m6D1tRGq2tLhm1pVCFZOjD0IRaWfPcUfz I X-Google-Smtp-Source: AGHT+IEv29KcUmrJQfkNQMRGZqbLCtW3maagC+h2/wtUbBZDnUURoeWCEdLFCTfK9PnQKglrSGZMUQ== X-Received: by 2002:a6b:6605:0:b0:7d4:1dae:da1a with SMTP id a5-20020a6b6605000000b007d41daeda1amr149020ioc.2.1712849766052; Thu, 11 Apr 2024 08:36:06 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.36.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:36:04 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 157/437] usb: class: convert to read/write iterators Date: Thu, 11 Apr 2024 09:14:57 -0600 Message-ID: <20240411153126.16201-158-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/usb/class/cdc-wdm.c | 18 +++++++++--------- drivers/usb/class/usblp.c | 6 ++++-- drivers/usb/class/usbtmc.c | 6 ++++-- 3 files changed, 17 insertions(+), 13 deletions(-) diff --git a/drivers/usb/class/cdc-wdm.c b/drivers/usb/class/cdc-wdm.c index c8262e2f2917..a811000b5eb2 100644 --- a/drivers/usb/class/cdc-wdm.c +++ b/drivers/usb/class/cdc-wdm.c @@ -476,6 +476,7 @@ static ssize_t wdm_write kfree(buf); return rv; } +FOPS_WRITE_ITER_HELPER(wdm_write); =20 /* * Submit the read urb if resp_count is non-zero. @@ -520,13 +521,12 @@ static int service_outstanding_interrupt(struct wdm_d= evice *desc) return rv; } =20 -static ssize_t wdm_read -(struct file *file, char __user *buffer, size_t count, loff_t *ppos) +static ssize_t wdm_read(struct kiocb *iocb, struct iov_iter *to) { int rv, cntr; int i =3D 0; - struct wdm_device *desc =3D file->private_data; - + struct wdm_device *desc =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(to); =20 rv =3D mutex_lock_interruptible(&desc->rlock); /*concurrent reads */ if (rv < 0) @@ -546,7 +546,7 @@ static ssize_t wdm_read goto err; } i++; - if (file->f_flags & O_NONBLOCK) { + if (iocb->ki_filp->f_flags & O_NONBLOCK) { if (!test_bit(WDM_READ, &desc->flags)) { rv =3D -EAGAIN; goto err; @@ -604,8 +604,8 @@ static ssize_t wdm_read =20 if (cntr > count) cntr =3D count; - rv =3D copy_to_user(buffer, desc->ubuf, cntr); - if (rv > 0) { + rv =3D !copy_to_iter_full(desc->ubuf, cntr, to); + if (rv) { rv =3D -EFAULT; goto err; } @@ -810,8 +810,8 @@ static long wdm_ioctl(struct file *file, unsigned int c= md, unsigned long arg) =20 static const struct file_operations wdm_fops =3D { .owner =3D THIS_MODULE, - .read =3D wdm_read, - .write =3D wdm_write, + .read_iter =3D wdm_read, + .write_iter =3D wdm_write_iter, .fsync =3D wdm_fsync, .open =3D wdm_open, .flush =3D wdm_flush, diff --git a/drivers/usb/class/usblp.c b/drivers/usb/class/usblp.c index 5a2e43331064..2f16b7916963 100644 --- a/drivers/usb/class/usblp.c +++ b/drivers/usb/class/usblp.c @@ -832,6 +832,7 @@ static ssize_t usblp_write(struct file *file, const cha= r __user *buffer, size_t raise_biglock: return writecount ? writecount : rv; } +FOPS_WRITE_ITER_HELPER(usblp_write); =20 /* * Notice that we fail to restart in a few cases: on EFAULT, on restart @@ -885,6 +886,7 @@ static ssize_t usblp_read(struct file *file, char __use= r *buffer, size_t len, lo mutex_unlock(&usblp->mut); return count; } +FOPS_READ_ITER_HELPER(usblp_read); =20 /* * Wait for the write path to come idle. @@ -1080,8 +1082,8 @@ static unsigned int usblp_quirks(__u16 vendor, __u16 = product) =20 static const struct file_operations usblp_fops =3D { .owner =3D THIS_MODULE, - .read =3D usblp_read, - .write =3D usblp_write, + .read_iter =3D usblp_read_iter, + .write_iter =3D usblp_write_iter, .poll =3D usblp_poll, .unlocked_ioctl =3D usblp_ioctl, .compat_ioctl =3D usblp_ioctl, diff --git a/drivers/usb/class/usbtmc.c b/drivers/usb/class/usbtmc.c index 311007b1d904..281eeb29cf7f 100644 --- a/drivers/usb/class/usbtmc.c +++ b/drivers/usb/class/usbtmc.c @@ -1506,6 +1506,7 @@ static ssize_t usbtmc_read(struct file *filp, char __= user *buf, kfree(buffer); return retval; } +FOPS_READ_ITER_HELPER(usbtmc_read); =20 static ssize_t usbtmc_write(struct file *filp, const char __user *buf, size_t count, loff_t *f_pos) @@ -1644,6 +1645,7 @@ static ssize_t usbtmc_write(struct file *filp, const = char __user *buf, mutex_unlock(&data->io_mutex); return retval; } +FOPS_WRITE_ITER_HELPER(usbtmc_write); =20 static int usbtmc_ioctl_clear(struct usbtmc_device_data *data) { @@ -2261,8 +2263,8 @@ static __poll_t usbtmc_poll(struct file *file, poll_t= able *wait) =20 static const struct file_operations fops =3D { .owner =3D THIS_MODULE, - .read =3D usbtmc_read, - .write =3D usbtmc_write, + .read_iter =3D usbtmc_read_iter, + .write_iter =3D usbtmc_write_iter, .open =3D usbtmc_open, .release =3D usbtmc_release, .flush =3D usbtmc_flush, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f51.google.com (mail-io1-f51.google.com [209.85.166.51]) (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 3A7961A38C7 for ; Thu, 11 Apr 2024 15:36:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849770; cv=none; b=jRlUSF3hbZzRYMGUSG1IUoswSfNQ2j3hMFjpf4JjSqqK34bRJn5FZggqgZWKg/BLfTF0SIoMj46XD5s8K1r3pDDjm7uJ2FtCV5v7tDI1ddjVzfVoSDdiXAKEX6rz/UkD7VYqndrIP4iBl4/RIXK8lY+2zQoLhI0fHXfXIEZ9H8Y= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849770; c=relaxed/simple; bh=YdYk418vTwmA+ey7yZx9ARVq0HB6UyKi8g6lBoKZ550=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Fae5GvIL8E05wo9U9H+x3GS1u98ZLnfCvAq2ZPxPZkNzL00LIYydXVa3t2Q7mBgQ96khyA2fv7F8cPRJ2nj6EQByzVJJOdndvispwjGTuhMUpVd92Hylp9iNK3+Nxuyxg7nuqeeJhnow5dp2x6JMopXg3c0zsoJaS0CogvVgzyk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=Xq/shxH2; arc=none smtp.client-ip=209.85.166.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="Xq/shxH2" Received: by mail-io1-f51.google.com with SMTP id ca18e2360f4ac-7d67d1073easo9789339f.0 for ; Thu, 11 Apr 2024 08:36:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849768; x=1713454568; 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=vylp/B+kLpVLQhCobojuB7Q0u9hUZIzqgrY8mV9AQJ8=; b=Xq/shxH2KOYODNIX59pHkjGH5eO5SRuwu+eD/VTCRjtl2BNiIqLGkX+G8lGU9WJDAd 2lems40Otg6F5AjPjIt8VTC80i4DBELpEAXMQ3Elq4ICpgxBMIPcbY2qxVM5otUfT2Xs vI1h+sk6I9mXl481/xr6UW3qPSQoA6+BdyLTBg3oSgbI2xECHP+xf3Yq5cADt0H7ze3r 6u1yEqmFXGOsbgS/bvi9rEocCYONWlEG5e6ZEbx6QiTW51iEbxbqAgmPSd0uLv07Xzys Pb/EXioEeEwtjjf8mVbXC/LTf894+qWHKOfPNDOIcc5SQuT1kvCaSaaeLZdbIV1gwurd vyyg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849768; x=1713454568; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=vylp/B+kLpVLQhCobojuB7Q0u9hUZIzqgrY8mV9AQJ8=; b=KPxWxulvnEn6JnNj70ZL7dmUPhAOR5RVyPLCausLggRQZ7+hnLQ2yJuXYT3FYCrgUV FP2ibX5RmpSyUaQZvyVnhY3YAvvhhHGLBG8EZ5qz8lMffRFgKTuX9U60XS+cQc6anceL 4bAr2KiK8s+w+0QQwUdL/PZh3lgMzrXZ8AfLabbFqdvkeoYV22j+PRlrnwG9LfSAYhIm +GoQUW4HNdbz5HHhsjXx7L3zo3SSrMXLTQ4h6vSdobvEJT6UN6kDshad2CLDkBix+RzK 82B2F3W5oBIGjYXSD3m2DvcFB/oYKyBkhK7Pa0JJIOTapvrFh5NF1Avouxie/wSueERC 4aHg== X-Gm-Message-State: AOJu0YzBCEAcqLtJG9xZGmIbIk7QTJoQsAVfzGQboaPVDZy8TJIf+Wby FAkhMazf8vCmiuHHf4vOHXUHE/RPf0RyxMVKwXBhYJKwmjZTBYFybyZqXllFsQdS+3aHC0DNx97 o X-Google-Smtp-Source: AGHT+IHLqpS/2k+aT2Eu6G5HQj3Sk8AorUUybGSbflWbuRljB3aVX4MvGRRkpZKRkTYtpmcC65Bf4A== X-Received: by 2002:a05:6602:84:b0:7d6:9d75:6de2 with SMTP id h4-20020a056602008400b007d69d756de2mr41323iob.2.1712849768132; Thu, 11 Apr 2024 08:36:08 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.36.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:36:06 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 158/437] usb: core: convert to read/write iterators Date: Thu, 11 Apr 2024 09:14:58 -0600 Message-ID: <20240411153126.16201-159-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/usb/core/devices.c | 3 ++- drivers/usb/core/devio.c | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/usb/core/devices.c b/drivers/usb/core/devices.c index a247da73f34d..f367132a6770 100644 --- a/drivers/usb/core/devices.c +++ b/drivers/usb/core/devices.c @@ -538,8 +538,9 @@ static ssize_t usb_device_read(struct file *file, char = __user *buf, mutex_unlock(&usb_bus_idr_lock); return total_written; } +FOPS_READ_ITER_HELPER(usb_device_read); =20 const struct file_operations usbfs_devices_fops =3D { .llseek =3D no_seek_end_llseek, - .read =3D usb_device_read, + .read_iter =3D usb_device_read_iter, }; diff --git a/drivers/usb/core/devio.c b/drivers/usb/core/devio.c index 3beb6a862e80..bebfbebc1f69 100644 --- a/drivers/usb/core/devio.c +++ b/drivers/usb/core/devio.c @@ -390,6 +390,7 @@ static ssize_t usbdev_read(struct file *file, char __us= er *buf, size_t nbytes, usb_unlock_device(dev); return ret; } +FOPS_READ_ITER_HELPER(usbdev_read); =20 /* * async list handling @@ -2846,7 +2847,7 @@ static __poll_t usbdev_poll(struct file *file, const struct file_operations usbdev_file_operations =3D { .owner =3D THIS_MODULE, .llseek =3D no_seek_end_llseek, - .read =3D usbdev_read, + .read_iter =3D usbdev_read_iter, .poll =3D usbdev_poll, .unlocked_ioctl =3D usbdev_ioctl, .compat_ioctl =3D compat_ptr_ioctl, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f43.google.com (mail-io1-f43.google.com [209.85.166.43]) (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 EC09D1A38DF for ; Thu, 11 Apr 2024 15:36:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849772; cv=none; b=sse7f+GgwuWz6DsasZ+/OVEVpCa70zxHRtmiqMS06aWPUaD4cEUUGQfmD3XwpjCAzJESYnnZyXlz5+KgrTu0Edv5jHfrtKiwlR6ijwxtYrlTBqnRhNN0l2fG4GStGID9QF0lpTD9yRZ0uq+aSXKnZY0Wr/Xa3ZjzxTb0KRjk2I4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849772; c=relaxed/simple; bh=twycO02VICSyua+S42Z41bDXI3vMA3cbCRt8cdsenRA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=tyX/+MiwsaeO918eIMe+7Ak8rOLkxWRfqCN3LFvKVYjt8XpgsIoxJEMa/K4qEBgB1uImoQnMFPaE6IXcnY3u//UDyG4wqG5DjFvO7zQYc0O5mXWdsEkUU1nxJJCTCQLQKzIBmCo3Ci4uD+S0T9MsYeEQ1RMt8poFa2nugHOzlpY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=ieseGsgG; arc=none smtp.client-ip=209.85.166.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="ieseGsgG" Received: by mail-io1-f43.google.com with SMTP id ca18e2360f4ac-7d67d1073easo9790139f.0 for ; Thu, 11 Apr 2024 08:36:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849770; x=1713454570; 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=xwO8HCq/CBDdgPKYG66qd5vuQddMB2sooLT/MNROoRw=; b=ieseGsgGED3NgObmRtE/E6jYzbL3W+9rjnxzGf2un92vfB05H+IQOIXOrhxVV/oFKu BtOTvccou93/ck5idl75nZp/AKR/jhBIjkAFwHfN48fOubqmEXCRt5LIy14GThJuirGR d2uMyUs6amaHsdYgRS5wqc92swIOw5qlmFo/jXqnt2q/O/lfGFqi71U7bXPp3XmOvgEr ugcncsblOKtvR2K2zVaYEUcSSUluY08sYU2rAuKT0uTYEQaN6ClH1gRQHi2NRXE6JYTr LPbgsDC/Dq5+4OugHfztS5RsN8S6iHtQUEzlPFDFO61b/L2RMBARoZSCn11pFyHg8q23 gFtA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849770; x=1713454570; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=xwO8HCq/CBDdgPKYG66qd5vuQddMB2sooLT/MNROoRw=; b=bq0oEs9FGuQbRJWteVh28BN99Yb0Y+t+QYmNPkrvtIEKjcsZSfduKlNNhr/MegTdga jyvpu6LI/u2Z9RWTFKbOO8qrfY08pvf/Ru13xu8rglyJfKullgb1deLgJ6PL2YDKFwVo XpL2jfI3cCbC2FWSfufNtLXF053St8kpjGHHnS7ghqcqbWb6BwoNURvu/5DEKFZbIdLR +7GFXvSwwtOw0Zy4kRnopsdKbF9/fl+AmytUYqZ/dXdy5/km7HHUfYOBdTgzx39V4Ln4 /b42JS+nfnfwxPseSKZ6JS14HTn5BPoXA/+C1dWVMgXCin6sK6h5dS/08+PNcErKsI2C us7Q== X-Gm-Message-State: AOJu0YxihbZszep8vNO30/Q6HVLwbjYHHJJMDNXUVbPW7OKIh7G3T6sb cb1aB6dKGqWxT1AGV88F1wM1wIwdNDi8HAmx7H1UYCyoZUkAZSBlRxaPRq/xk9tLTfusSGYf1zi N X-Google-Smtp-Source: AGHT+IG+yk7P37bWFCH0e2jBRcVfijTNwizP8k7zlcG4RLnwTpYaIXYr+gpb1BvWAaDHyf68EAlEOw== X-Received: by 2002:a6b:c34e:0:b0:7d6:7b7c:8257 with SMTP id t75-20020a6bc34e000000b007d67b7c8257mr217049iof.0.1712849769874; Thu, 11 Apr 2024 08:36:09 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.36.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:36:08 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 159/437] usb: dwc2: convert to read/write iterators Date: Thu, 11 Apr 2024 09:14:59 -0600 Message-ID: <20240411153126.16201-160-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/usb/dwc2/debugfs.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/usb/dwc2/debugfs.c b/drivers/usb/dwc2/debugfs.c index 1d72ece9cfe4..b106744e13b5 100644 --- a/drivers/usb/dwc2/debugfs.c +++ b/drivers/usb/dwc2/debugfs.c @@ -24,16 +24,16 @@ * @count: The ubuf size. * @ppos: Unused parameter. */ -static ssize_t testmode_write(struct file *file, const char __user *ubuf, = size_t - count, loff_t *ppos) +static ssize_t testmode_write(struct kiocb *iocb, struct iov_iter *from) { - struct seq_file *s =3D file->private_data; + struct seq_file *s =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); struct dwc2_hsotg *hsotg =3D s->private; unsigned long flags; u32 testmode =3D 0; char buf[32]; =20 - if (copy_from_user(&buf, ubuf, min_t(size_t, sizeof(buf) - 1, count))) + if (!copy_from_iter_full(&buf, min_t(size_t, sizeof(buf) - 1, count), fro= m)) return -EFAULT; =20 if (!strncmp(buf, "test_j", 6)) @@ -108,8 +108,8 @@ static int testmode_open(struct inode *inode, struct fi= le *file) static const struct file_operations testmode_fops =3D { .owner =3D THIS_MODULE, .open =3D testmode_open, - .write =3D testmode_write, - .read =3D seq_read, + .write_iter =3D testmode_write, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D single_release, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-il1-f172.google.com (mail-il1-f172.google.com [209.85.166.172]) (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 EF39F1C2301 for ; Thu, 11 Apr 2024 15:36:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.172 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849774; cv=none; b=pEGrorJl+VIWN1pquPC6mOT6aGhiP0w7Z+zW6mfoMeI9umF3/HibLy/p2dRHGBnGtCn2EL6t2FqXAH4p60C8bXAfVKvu9BsvlGs+rMQsaMzq7kxPk0QV8WeeKPhMQi5svf1Xi8pNkO2uCyDsakL/TyB9U3U1dSTwkSXSSkQ4arE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849774; c=relaxed/simple; bh=eyNw/fMz9VWuTAy6eheOBWrnyPqJvTPEmKdpUxMiO0A=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Xw97CtUpyS04Hc49hR2CrLiohhLXhhmPJ5yG43uuXMJ0hDqziusGi1ILxQILAmHRpy4jdKknm8YHNy0fFRJv0Yf/uiMseWi5Gaza25yFJfJpYs6Smu39AKJIG3grRhTosgS9VHTCM7V2F/VDqNh0bosTSv9qovboJOwkpzQHlyY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=fU7URUQH; arc=none smtp.client-ip=209.85.166.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="fU7URUQH" Received: by mail-il1-f172.google.com with SMTP id e9e14a558f8ab-36a224d7414so183015ab.1 for ; Thu, 11 Apr 2024 08:36:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849772; x=1713454572; 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=1ClBrrRz8U9U/IoNi5Xa3s47Go5lIgp985Yz+fhOQbY=; b=fU7URUQHVgXUl2JL5NW6aSrjhQMUoZ/0HvyuPAI20clKq03VYAmC5xNwnW9HrGus12 OCVKr2PorldLGJ3lhMlCMBrfmkEr7RHyILRNkLtthSwlJhP5/p6lEEN1bL9p1p+CJ0gY WnFzldSC6WcJGFgZcQeJcEO5jHfMCj6bC0VSsKJttQLYU5ZOOWJ/Hw9/ysje7s9gYHab b3Pn0T9GJfIFXa2auOIBLf8fpNW/z+dG7df63slrAZOXNUA3XmZ/dPbrVWE8GomwCtPd 1CPT2qRcYiWlFmaC4eVpE4RPlkECBH0fJImUGAZ1OY7tyKSCCrwTKxmknttCEnLy69WQ wBqQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849772; x=1713454572; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=1ClBrrRz8U9U/IoNi5Xa3s47Go5lIgp985Yz+fhOQbY=; b=uinrqV//iydhhGlFWfTfI+ZNfVEu1S31Rwrv5DrsyvgQJfj2zPbjM2YWYVaNYUBNfd Jewm7jncbWES/s8v5laR4Zjdoz2m21fIsI31jP3oa+gOOHmgvz/HENzEWXnKElJyWtmm XNy8NPL2zh1io+oumD/SHrz2RF+7kUQUYJwkFEWNSZmqUPgY0q9zlGAC5nNCxO+V4xwT gvbs8CSzrwKbpyzrILn9Qeqw/kSPkMyt5G/4px+jP4fC2weQziMaA1P0GgxdMgFHR4Xu h1oefFPX4KyCEMjgyjvz5HYuESFb+V56VFwToVfwWKullSEed2Hk5pd3YfgyIuf/i5bH uZFw== X-Gm-Message-State: AOJu0YxmG3u5pHIK3xzrwRjmis2rb7Sryh+n9h1n06H5WTEAckpnUIU0 pdJbgKuR6cRdcvss0jcwAtys0O8vv3aadR6AHjMUDFWGCt8Oorw2murNfFPlcKG2eVo3i3OFY8z x X-Google-Smtp-Source: AGHT+IF7ZbI9A7JIn7tJgiBlVGCu8zc52LXDbfHc31jaQ19ZMyKjJHiJ3TOSifGWii/VinAFMZpbsw== X-Received: by 2002:a6b:4e14:0:b0:7d6:631d:7b0 with SMTP id c20-20020a6b4e14000000b007d6631d07b0mr186853iob.1.1712849771751; Thu, 11 Apr 2024 08:36:11 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.36.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:36:10 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 160/437] usb: dwc3: convert to read/write iterators Date: Thu, 11 Apr 2024 09:15:00 -0600 Message-ID: <20240411153126.16201-161-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/usb/dwc3/debugfs.c | 48 +++++++++++++++++++------------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/drivers/usb/dwc3/debugfs.c b/drivers/usb/dwc3/debugfs.c index ebf03468fac4..5af745ef00a0 100644 --- a/drivers/usb/dwc3/debugfs.c +++ b/drivers/usb/dwc3/debugfs.c @@ -365,17 +365,17 @@ static int dwc3_lsp_open(struct inode *inode, struct = file *file) return single_open(file, dwc3_lsp_show, inode->i_private); } =20 -static ssize_t dwc3_lsp_write(struct file *file, const char __user *ubuf, - size_t count, loff_t *ppos) +static ssize_t dwc3_lsp_write(struct kiocb *iocb, struct iov_iter *from) { - struct seq_file *s =3D file->private_data; + struct seq_file *s =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); struct dwc3 *dwc =3D s->private; unsigned long flags; char buf[32] =3D { 0 }; u32 sel; int ret; =20 - if (copy_from_user(&buf, ubuf, min_t(size_t, sizeof(buf) - 1, count))) + if (!copy_from_iter_full(&buf, min_t(size_t, sizeof(buf) - 1, count), fro= m)) return -EFAULT; =20 ret =3D kstrtouint(buf, 0, &sel); @@ -391,8 +391,8 @@ static ssize_t dwc3_lsp_write(struct file *file, const = char __user *ubuf, =20 static const struct file_operations dwc3_lsp_fops =3D { .open =3D dwc3_lsp_open, - .write =3D dwc3_lsp_write, - .read =3D seq_read, + .write_iter =3D dwc3_lsp_write, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D single_release, }; @@ -436,15 +436,15 @@ static int dwc3_mode_open(struct inode *inode, struct= file *file) return single_open(file, dwc3_mode_show, inode->i_private); } =20 -static ssize_t dwc3_mode_write(struct file *file, - const char __user *ubuf, size_t count, loff_t *ppos) +static ssize_t dwc3_mode_write(struct kiocb *iocb, struct iov_iter *from) { - struct seq_file *s =3D file->private_data; + struct seq_file *s =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); struct dwc3 *dwc =3D s->private; u32 mode =3D 0; char buf[32]; =20 - if (copy_from_user(&buf, ubuf, min_t(size_t, sizeof(buf) - 1, count))) + if (!copy_from_iter_full(&buf, min_t(size_t, sizeof(buf) - 1, count), fro= m)) return -EFAULT; =20 if (dwc->dr_mode !=3D USB_DR_MODE_OTG) @@ -466,8 +466,8 @@ static ssize_t dwc3_mode_write(struct file *file, =20 static const struct file_operations dwc3_mode_fops =3D { .open =3D dwc3_mode_open, - .write =3D dwc3_mode_write, - .read =3D seq_read, + .write_iter =3D dwc3_mode_write, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D single_release, }; @@ -522,17 +522,17 @@ static int dwc3_testmode_open(struct inode *inode, st= ruct file *file) return single_open(file, dwc3_testmode_show, inode->i_private); } =20 -static ssize_t dwc3_testmode_write(struct file *file, - const char __user *ubuf, size_t count, loff_t *ppos) +static ssize_t dwc3_testmode_write(struct kiocb *iocb, struct iov_iter *fr= om) { - struct seq_file *s =3D file->private_data; + struct seq_file *s =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); struct dwc3 *dwc =3D s->private; unsigned long flags; u32 testmode =3D 0; char buf[32]; int ret; =20 - if (copy_from_user(&buf, ubuf, min_t(size_t, sizeof(buf) - 1, count))) + if (!copy_from_iter_full(&buf, min_t(size_t, sizeof(buf) - 1, count), fro= m)) return -EFAULT; =20 if (!strncmp(buf, "test_j", 6)) @@ -563,8 +563,8 @@ static ssize_t dwc3_testmode_write(struct file *file, =20 static const struct file_operations dwc3_testmode_fops =3D { .open =3D dwc3_testmode_open, - .write =3D dwc3_testmode_write, - .read =3D seq_read, + .write_iter =3D dwc3_testmode_write, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D single_release, }; @@ -610,10 +610,10 @@ static int dwc3_link_state_open(struct inode *inode, = struct file *file) return single_open(file, dwc3_link_state_show, inode->i_private); } =20 -static ssize_t dwc3_link_state_write(struct file *file, - const char __user *ubuf, size_t count, loff_t *ppos) +static ssize_t dwc3_link_state_write(struct kiocb *iocb, struct iov_iter *= from) { - struct seq_file *s =3D file->private_data; + struct seq_file *s =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); struct dwc3 *dwc =3D s->private; unsigned long flags; enum dwc3_link_state state =3D 0; @@ -622,7 +622,7 @@ static ssize_t dwc3_link_state_write(struct file *file, u8 speed; int ret; =20 - if (copy_from_user(&buf, ubuf, min_t(size_t, sizeof(buf) - 1, count))) + if (!copy_from_iter_full(&buf, min_t(size_t, sizeof(buf) - 1, count), fro= m)) return -EFAULT; =20 if (!strncmp(buf, "SS.Disabled", 11)) @@ -672,8 +672,8 @@ static ssize_t dwc3_link_state_write(struct file *file, =20 static const struct file_operations dwc3_link_state_fops =3D { .open =3D dwc3_link_state_open, - .write =3D dwc3_link_state_write, - .read =3D seq_read, + .write_iter =3D dwc3_link_state_write, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D single_release, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f48.google.com (mail-io1-f48.google.com [209.85.166.48]) (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 B8C201C2318 for ; Thu, 11 Apr 2024 15:36:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849776; cv=none; b=m7JFOfmp5OZYUbqjIlLHQWUD3BCP4YkraIxsotr5xDYbGPr6wCgg2VAklfiizbzgUX+ljalHmX2MSeC5ieLbEMJOIfSuRukWRp5jAQ+0NtvJyAhuIVFkZDixDQi4kkXvQJtKETJPEHRyN0PXCr/lgfLsxX+Aae+/+gJUoK3ne0g= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849776; c=relaxed/simple; bh=BC4YfS4UJrprHPjQHWKbdcG+YbYW3uvVEK7Blfupi04=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=XAiA/jr9Y9EJd1Px0rSkmagSo3FEMY6KN2xoc6eHAwNavqdFL9Abs6KQM6ThAJaXu6r9+kCJ88UXVLdwboyyufMkAIWXjJHqtmtkxrx5DIn5QWAcAeLJpxZSBx/QO12blal4t963EXtgQMqq5ro9SPzIeNE8R/cCX3hlIP1Czps= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=a5zrAbpa; arc=none smtp.client-ip=209.85.166.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="a5zrAbpa" Received: by mail-io1-f48.google.com with SMTP id ca18e2360f4ac-7cc0e831e11so170515439f.1 for ; Thu, 11 Apr 2024 08:36:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849773; x=1713454573; 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=H5wAewb/wpyAp3Mbq5eWFLi8QS3luSEPM1me2UTw1/4=; b=a5zrAbpa6pproFD25RLCPLfBe3PbytRtPNEfNvEwnd2qAV3IZP5KsW/WF6htVjlCxF PGLgf6LnOdU7EDOIqlqGRaHX466QnIBK6dfEpZ4lPoC8ef7MhzlaoUIvfZYNxdCVrYVE brneLEFGwuZQK298mqnose55OK9eEct83NFLOawbYWpJZ1v/jtGgIu9AOMvNIAIfSHp1 kwJ3aMZFuGJkcRyKbSoJuLq86NggQMF/Q9fhKrz9rGS6hr2Og7l9jerDFZ1KwHYUQlDk BJ2G1hwMucOTjiw1N4dmQcjpN29wyLBsPnMYZP6uX/YmYwi5xhx6HWOXAvzhUnQygxDs G4JQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849773; x=1713454573; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=H5wAewb/wpyAp3Mbq5eWFLi8QS3luSEPM1me2UTw1/4=; b=Ge6hhkSAKo95yUi5AD/zOHrU2Xa8GOomwyFPpcMyUGQ5mSEEAzeyeqNxrds+rBuitq jCYaXb3DE/u/2GSsWKY0v6VnQ6Uqm/5mmwc0/td+wVZbr10uCLSf3aI6UE4CY66CMw+v BNUNTZezhbTKwuZ0dAzF2P28LybH46JZTdCHW4tAJeB59la/c9mEFOa2tv16bf5G+swU fkws1kQkBl+D4zpILXGLwO9/ScEtvFuxaiBSnoiQCEeGukmy7vak0kE4wVsi+rlMqWnI VXdOJDlazwINTP/1fapZP1GWZLUghPQkYdUbD0/byL9xTC7RSBNB53qzirw3OTJNyySY HliQ== X-Gm-Message-State: AOJu0Yx6ew4c3b0o46yhLe4g6i97OoCVR0AHPYDM/Zh9lL4XnYl6c9nM SxtsmzQ2RE8Y+gWkJmHxBrLhDExR4dcnQF6w43jjFlqUJYjS1yTfTFQqjBiwzTJDEnexov0RF8j c X-Google-Smtp-Source: AGHT+IEwuj0l1bxi7wMi61akCWwp48mGax/V0582PCSWzfaTaOKdP6hFm8qscE9vaCwt61Ydi9qKEg== X-Received: by 2002:a05:6602:21d7:b0:7d6:9ddf:5095 with SMTP id c23-20020a05660221d700b007d69ddf5095mr15731ioc.1.1712849773401; Thu, 11 Apr 2024 08:36:13 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.36.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:36:12 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 161/437] usb: fotg210-hcd: convert to read/write iterators Date: Thu, 11 Apr 2024 09:15:01 -0600 Message-ID: <20240411153126.16201-162-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/usb/fotg210/fotg210-hcd.c | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/drivers/usb/fotg210/fotg210-hcd.c b/drivers/usb/fotg210/fotg21= 0-hcd.c index 8c5aaf860635..6a7334164ca7 100644 --- a/drivers/usb/fotg210/fotg210-hcd.c +++ b/drivers/usb/fotg210/fotg210-hcd.c @@ -283,27 +283,27 @@ static int debug_periodic_open(struct inode *, struct= file *); static int debug_registers_open(struct inode *, struct file *); static int debug_async_open(struct inode *, struct file *); =20 -static ssize_t debug_output(struct file*, char __user*, size_t, loff_t*); +static ssize_t debug_output(struct kiocb *, struct iov_iter *); static int debug_close(struct inode *, struct file *); =20 static const struct file_operations debug_async_fops =3D { .owner =3D THIS_MODULE, .open =3D debug_async_open, - .read =3D debug_output, + .read_iter =3D debug_output, .release =3D debug_close, .llseek =3D default_llseek, }; static const struct file_operations debug_periodic_fops =3D { .owner =3D THIS_MODULE, .open =3D debug_periodic_open, - .read =3D debug_output, + .read_iter =3D debug_output, .release =3D debug_close, .llseek =3D default_llseek, }; static const struct file_operations debug_registers_fops =3D { .owner =3D THIS_MODULE, .open =3D debug_registers_open, - .read =3D debug_output, + .read_iter =3D debug_output, .release =3D debug_close, .llseek =3D default_llseek, }; @@ -773,10 +773,9 @@ static int fill_buffer(struct debug_buffer *buf) return ret; } =20 -static ssize_t debug_output(struct file *file, char __user *user_buf, - size_t len, loff_t *offset) +static ssize_t debug_output(struct kiocb *iocb, struct iov_iter *to) { - struct debug_buffer *buf =3D file->private_data; + struct debug_buffer *buf =3D iocb->ki_filp->private_data; int ret =3D 0; =20 mutex_lock(&buf->mutex); @@ -789,9 +788,7 @@ static ssize_t debug_output(struct file *file, char __u= ser *user_buf, } mutex_unlock(&buf->mutex); =20 - ret =3D simple_read_from_buffer(user_buf, len, offset, - buf->output_buf, buf->count); - + ret =3D simple_copy_to_iter(buf->output_buf, &iocb->ki_pos, buf->count, t= o); out: return ret; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f43.google.com (mail-io1-f43.google.com [209.85.166.43]) (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 397D51C2324 for ; Thu, 11 Apr 2024 15:36:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849777; cv=none; b=hj8FrwsM5BTGuMYhddCi6fkkk9yTjCYrWZI3xInmlz+Cfcoy8PU7pD/UastlsdMiPM3bk5QhLjF9bwPvn0OG+LmGuDwIoRxB55GGKFHa5TYrj2ZSI5Jpot5k8ZaZtNhm5JaIWTzQj3owCr50LG/Xw7qOtPhrof2uG60syqH1Kcw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849777; c=relaxed/simple; bh=ISBdg+ViLwWRx11BXE9o/rqRrX42qLFfD7iOm+Nfqj0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ow+evnU5pC+qm5PX+8wfzfx5hBEsV9oz5ZV+p7MUJL7c7lJB+SRc7urQBwob97nWwsuzBl2k01+dagU711i4Xl7y+MgdAGSoBHQH/K7nHeq8+vZGTZCQ16PISNtJFT8ZK6jSm8uKecDLmTZWDD0wR8+r5tzwg2cOoAe8RrXwIuU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=u9+9jIBu; arc=none smtp.client-ip=209.85.166.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="u9+9jIBu" Received: by mail-io1-f43.google.com with SMTP id ca18e2360f4ac-7d6112ba6baso58074939f.1 for ; Thu, 11 Apr 2024 08:36:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849775; x=1713454575; 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=+weEyOvy9CnYy06W/XGJXPiUa/KuSqJLTOLgcqE6BvI=; b=u9+9jIBu8+kkGc/eoNVgNfr8qn4+fGgRJ5vjwFVoLgnygQ3aiByMGF9GnK8W3ILBJa SnRJGzgmojjHApl9i4E6laPtOCQEMLZGIIPi1munWcIoLHurMpj/O79POnJ8t/Ifctsx az1MAmo8IsjJRsXv0XMWVAD/VF8fAUHRUrgCrdD0QAQdQkVzAbKqQxUNodWjoqD0Qcik LhqajDO7QqLDPyUQAihX1TxydXYAOl9G0TklOVc/xaSJO1pfn21Awhe52eOLu8dURPeB Uefp2Ykofv07HLGIiPAJJaYePJX8WvYbYmcOp+VLr7ahSFyhxlvxONXMJnMkRivtCOzl gqgw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849775; x=1713454575; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=+weEyOvy9CnYy06W/XGJXPiUa/KuSqJLTOLgcqE6BvI=; b=E/ZvzPJaAVOjv/19ARguO/uM2IVwR4frK7DkM+h9UA4HLguc7bJbhfpLCkWD2VSP2E E0pVhJG1hp7oPvA88TTwAAsHZFwzVXDaz0FsVmWOPBe7j79dSP3MrSekxbwPjJRIHJHo Xncl1H1O7ErGe5kuCXY982lWKAE+q/mni0+0DME7smFfxbe6rpnxrFcWX6DKKePrigBR 55trwenv4PSHFd15IKELxZ8S8+ybE7OETLNFZckVAN2NdV5OO0GD1K00tsKI1niozDt7 8LkRKxPhwobonHYhlEIBARxnZuvtMWgLAZYJAEtOyHG+X3K8QbWReVmWRVP5qhyJx0zS 80dw== X-Gm-Message-State: AOJu0YzU4AgeC2vLF42ATPxuo8kSkRc++bfdzsR15sE+C2kc4iyxX5y6 4/f4ZfjOWgKIIWYJbM6DuxrwrTUctoBquLYT/dvqsmgwLnqI70n2yApsHdCJKVPMb7miL+M8EtN g X-Google-Smtp-Source: AGHT+IGdVKrO++8guGRIpZur7pdvmmrS1LnNRDDwV8dTiFYe3YdS0UWF1orUngBLo7aiF990/jncaQ== X-Received: by 2002:a6b:f312:0:b0:7d5:de23:13a9 with SMTP id m18-20020a6bf312000000b007d5de2313a9mr161234ioh.1.1712849775054; Thu, 11 Apr 2024 08:36:15 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.36.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:36:13 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 162/437] usb: gadget: convert to read/write iterators Date: Thu, 11 Apr 2024 09:15:02 -0600 Message-ID: <20240411153126.16201-163-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/usb/gadget/function/f_fs.c | 6 ++++-- drivers/usb/gadget/function/f_hid.c | 17 ++++++++-------- drivers/usb/gadget/function/f_printer.c | 26 ++++++++++++------------- drivers/usb/gadget/legacy/inode.c | 6 ++++-- drivers/usb/gadget/udc/renesas_usb3.c | 14 ++++++------- 5 files changed, 36 insertions(+), 33 deletions(-) diff --git a/drivers/usb/gadget/function/f_fs.c b/drivers/usb/gadget/functi= on/f_fs.c index bffbc1dc651f..e3514d295e55 100644 --- a/drivers/usb/gadget/function/f_fs.c +++ b/drivers/usb/gadget/function/f_fs.c @@ -495,6 +495,7 @@ static ssize_t ffs_ep0_write(struct file *file, const c= har __user *buf, mutex_unlock(&ffs->mutex); return ret; } +FOPS_WRITE_ITER_HELPER(ffs_ep0_write); =20 /* Called with ffs->ev.waitq.lock and ffs->mutex held, both released on ex= it. */ static ssize_t __ffs_ep0_read_events(struct ffs_data *ffs, char __user *bu= f, @@ -632,6 +633,7 @@ static ssize_t ffs_ep0_read(struct file *file, char __u= ser *buf, kfree(data); return ret; } +FOPS_READ_ITER_HELPER(ffs_ep0_read); =20 static int ffs_ep0_open(struct inode *inode, struct file *file) { @@ -720,8 +722,8 @@ static const struct file_operations ffs_ep0_operations = =3D { .llseek =3D no_llseek, =20 .open =3D ffs_ep0_open, - .write =3D ffs_ep0_write, - .read =3D ffs_ep0_read, + .write_iter =3D ffs_ep0_write_iter, + .read_iter =3D ffs_ep0_read_iter, .release =3D ffs_ep0_release, .unlocked_ioctl =3D ffs_ep0_ioctl, .poll =3D ffs_ep0_poll, diff --git a/drivers/usb/gadget/function/f_hid.c b/drivers/usb/gadget/funct= ion/f_hid.c index 3c8a9dd585c0..13e5bab6e1b2 100644 --- a/drivers/usb/gadget/function/f_hid.c +++ b/drivers/usb/gadget/function/f_hid.c @@ -414,6 +414,7 @@ static ssize_t f_hidg_read(struct file *file, char __us= er *buffer, else return f_hidg_ssreport_read(file, buffer, count, ptr); } +FOPS_READ_ITER_HELPER(f_hidg_read); =20 static void f_hidg_req_complete(struct usb_ep *ep, struct usb_request *req) { @@ -431,10 +432,10 @@ static void f_hidg_req_complete(struct usb_ep *ep, st= ruct usb_request *req) wake_up(&hidg->write_queue); } =20 -static ssize_t f_hidg_write(struct file *file, const char __user *buffer, - size_t count, loff_t *offp) +static ssize_t f_hidg_write(struct kiocb *iocb, struct iov_iter *from) { - struct f_hidg *hidg =3D file->private_data; + struct f_hidg *hidg =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); struct usb_request *req; unsigned long flags; ssize_t status =3D -ENOMEM; @@ -451,7 +452,7 @@ static ssize_t f_hidg_write(struct file *file, const ch= ar __user *buffer, /* write queue */ while (!WRITE_COND) { spin_unlock_irqrestore(&hidg->write_spinlock, flags); - if (file->f_flags & O_NONBLOCK) + if (iocb->ki_filp->f_flags & O_NONBLOCK) return -EAGAIN; =20 if (wait_event_interruptible_exclusive( @@ -473,8 +474,8 @@ static ssize_t f_hidg_write(struct file *file, const ch= ar __user *buffer, goto release_write_pending; } =20 - status =3D copy_from_user(req->buf, buffer, count); - if (status !=3D 0) { + status =3D copy_from_iter_full(req->buf, count, from); + if (!status) { ERROR(hidg->func.config->cdev, "copy_from_user error\n"); status =3D -EINVAL; @@ -906,8 +907,8 @@ static const struct file_operations f_hidg_fops =3D { .owner =3D THIS_MODULE, .open =3D f_hidg_open, .release =3D f_hidg_release, - .write =3D f_hidg_write, - .read =3D f_hidg_read, + .write_iter =3D f_hidg_write, + .read_iter =3D f_hidg_read_iter, .poll =3D f_hidg_poll, .llseek =3D noop_llseek, }; diff --git a/drivers/usb/gadget/function/f_printer.c b/drivers/usb/gadget/f= unction/f_printer.c index 076dd4c1be96..de3863f0bfb6 100644 --- a/drivers/usb/gadget/function/f_printer.c +++ b/drivers/usb/gadget/function/f_printer.c @@ -426,10 +426,10 @@ setup_rx_reqs(struct printer_dev *dev) } } =20 -static ssize_t -printer_read(struct file *fd, char __user *buf, size_t len, loff_t *ptr) +static ssize_t printer_read(struct kiocb *iocb, struct iov_iter *to) { - struct printer_dev *dev =3D fd->private_data; + struct printer_dev *dev =3D iocb->ki_filp->private_data; + size_t len =3D iov_iter_count(to); unsigned long flags; size_t size; size_t bytes_copied; @@ -485,7 +485,7 @@ printer_read(struct file *fd, char __user *buf, size_t = len, loff_t *ptr) * If no data is available check if this is a NON-Blocking * call or not. */ - if (fd->f_flags & (O_NONBLOCK|O_NDELAY)) { + if (iocb->ki_filp->f_flags & (O_NONBLOCK|O_NDELAY)) { mutex_unlock(&dev->lock_printer_io); return -EAGAIN; } @@ -522,10 +522,9 @@ printer_read(struct file *fd, char __user *buf, size_t= len, loff_t *ptr) else size =3D len; =20 - size -=3D copy_to_user(buf, current_rx_buf, size); + size -=3D copy_to_iter(current_rx_buf, size, to); bytes_copied +=3D size; len -=3D size; - buf +=3D size; =20 spin_lock_irqsave(&dev->lock, flags); =20 @@ -568,10 +567,10 @@ printer_read(struct file *fd, char __user *buf, size_= t len, loff_t *ptr) return -EAGAIN; } =20 -static ssize_t -printer_write(struct file *fd, const char __user *buf, size_t len, loff_t = *ptr) +static ssize_t printer_write(struct kiocb *iocb, struct iov_iter *from) { - struct printer_dev *dev =3D fd->private_data; + struct printer_dev *dev =3D iocb->ki_filp->private_data; + size_t len =3D iov_iter_count(from); unsigned long flags; size_t size; /* Amount of data in a TX request. */ size_t bytes_copied =3D 0; @@ -604,7 +603,7 @@ printer_write(struct file *fd, const char __user *buf, = size_t len, loff_t *ptr) * If write buffers are available check if this is * a NON-Blocking call or not. */ - if (fd->f_flags & (O_NONBLOCK|O_NDELAY)) { + if (iocb->ki_filp->f_flags & (O_NONBLOCK|O_NDELAY)) { mutex_unlock(&dev->lock_printer_io); return -EAGAIN; } @@ -642,7 +641,7 @@ printer_write(struct file *fd, const char __user *buf, = size_t len, loff_t *ptr) /* Don't leave irqs off while doing memory copies */ spin_unlock_irqrestore(&dev->lock, flags); =20 - if (copy_from_user(req->buf, buf, size)) { + if (!copy_from_iter_full(req->buf, size, from)) { list_add(&req->list, &dev->tx_reqs); mutex_unlock(&dev->lock_printer_io); return bytes_copied; @@ -650,7 +649,6 @@ printer_write(struct file *fd, const char __user *buf, = size_t len, loff_t *ptr) =20 bytes_copied +=3D size; len -=3D size; - buf +=3D size; =20 spin_lock_irqsave(&dev->lock, flags); =20 @@ -794,8 +792,8 @@ printer_ioctl(struct file *fd, unsigned int code, unsig= ned long arg) static const struct file_operations printer_io_operations =3D { .owner =3D THIS_MODULE, .open =3D printer_open, - .read =3D printer_read, - .write =3D printer_write, + .read_iter =3D printer_read, + .write_iter =3D printer_write, .fsync =3D printer_fsync, .poll =3D printer_poll, .unlocked_ioctl =3D printer_ioctl, diff --git a/drivers/usb/gadget/legacy/inode.c b/drivers/usb/gadget/legacy/= inode.c index 03179b1880fd..2898840a7a41 100644 --- a/drivers/usb/gadget/legacy/inode.c +++ b/drivers/usb/gadget/legacy/inode.c @@ -1080,6 +1080,7 @@ ep0_read (struct file *fd, char __user *buf, size_t l= en, loff_t *ptr) spin_unlock_irq (&dev->lock); return retval; } +FOPS_READ_ITER_HELPER(ep0_read); =20 static struct usb_gadgetfs_event * next_event (struct dev_data *dev, enum usb_gadgetfs_event_type type) @@ -1919,6 +1920,7 @@ dev_config (struct file *fd, const char __user *buf, = size_t len, loff_t *ptr) dev->buf =3D NULL; return value; } +FOPS_WRITE_ITER_HELPER(dev_config); =20 static int gadget_dev_open (struct inode *inode, struct file *fd) @@ -1942,8 +1944,8 @@ static const struct file_operations ep0_operations = =3D { .llseek =3D no_llseek, =20 .open =3D gadget_dev_open, - .read =3D ep0_read, - .write =3D dev_config, + .read_iter =3D ep0_read_iter, + .write_iter =3D dev_config_iter, .fasync =3D ep0_fasync, .poll =3D ep0_poll, .unlocked_ioctl =3D gadget_dev_ioctl, diff --git a/drivers/usb/gadget/udc/renesas_usb3.c b/drivers/usb/gadget/udc= /renesas_usb3.c index 3b01734ce1b7..61f5d7ac47ee 100644 --- a/drivers/usb/gadget/udc/renesas_usb3.c +++ b/drivers/usb/gadget/udc/renesas_usb3.c @@ -2603,18 +2603,18 @@ static int renesas_usb3_b_device_open(struct inode = *inode, struct file *file) return single_open(file, renesas_usb3_b_device_show, inode->i_private); } =20 -static ssize_t renesas_usb3_b_device_write(struct file *file, - const char __user *ubuf, - size_t count, loff_t *ppos) +static ssize_t renesas_usb3_b_device_write(struct kiocb *iocb, + struct iov_iter *from) { - struct seq_file *s =3D file->private_data; + struct seq_file *s =3D iocb->ki_filp->private_data; struct renesas_usb3 *usb3 =3D s->private; + size_t count =3D iov_iter_count(from); char buf[32]; =20 if (!usb3->driver) return -ENODEV; =20 - if (copy_from_user(&buf, ubuf, min_t(size_t, sizeof(buf) - 1, count))) + if (!copy_from_iter_full(&buf, min_t(size_t, sizeof(buf) - 1, count), fro= m)) return -EFAULT; =20 usb3->start_to_connect =3D false; @@ -2637,8 +2637,8 @@ static ssize_t renesas_usb3_b_device_write(struct fil= e *file, =20 static const struct file_operations renesas_usb3_b_device_fops =3D { .open =3D renesas_usb3_b_device_open, - .write =3D renesas_usb3_b_device_write, - .read =3D seq_read, + .write_iter =3D renesas_usb3_b_device_write, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D single_release, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-il1-f180.google.com (mail-il1-f180.google.com [209.85.166.180]) (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 6FBF61C233E for ; Thu, 11 Apr 2024 15:36:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.180 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849778; cv=none; b=D6Gwb+8oVT8ToJtQUIUgcZ6u/PcOC7FTQEwEezvrA8xSXD4gIei2YgISPqykr5s/IGf1QHf5kwUydY+hnFaN2LpoZnf9DHGDEasFBYdgZnP+XRXvcXt6mN9Xoabl7ew7qD7OyPcdhzkHDlp+iF4v15cbbDzotxKfxoe/Kz5KCDU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849778; c=relaxed/simple; bh=/R2BeYlhfrBa/htPCC3HHf2TvwcQYfAjQ5baP8YTlLs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=SA1Cg8vwGNDLVZScgqEf/hmJEzdn0l7LQr0uC0lJr0zFF2fOVS/mBpBpcqoRFP6h1vfx0RdYlMH3zOKE2+N5i1JA4ao3hXLb6Xn/BRLeAAyPVHNOnRNkrHiALqgTSEyTyVsr02uuRbw9B5ki8EBYtbIjhDtw6b+Q61sqyu9QAts= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=Lgpw3Tqx; arc=none smtp.client-ip=209.85.166.180 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="Lgpw3Tqx" Received: by mail-il1-f180.google.com with SMTP id e9e14a558f8ab-36a34b68277so110735ab.0 for ; Thu, 11 Apr 2024 08:36:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849776; x=1713454576; 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=pbp/RQnmR075DrC7x5KXesv8hnwC9YQtvtSngsJEyrQ=; b=Lgpw3TqxQvdeqR4iWNmLah9LmXFR3VL8tUxTffJO/0cSEkbb/cm8GuE53+qhmM+ncD lD4WH7qQZjjbyM41blzmTuLBE1Ug+hz6w2x4nz9nHL3/PgxwtsrccRuiHhqFADYP8Mgh JzfUZTcfahwaAmENdo3HhTnHab3h9Zq/j70OrXAnD85nhgE7CjgNvj5ZN5YnMp6J51Zc ZDxMljnqSkI/9XkduENh8kfWykD2LXX5WriDJnXug+z6y+aEdD9TzF1Jif/72c2ZPxhV XyofPjwKUwnr3wdgqvNUtVWsKa8WHEHnBPRkKrdQ9GotSvY4I0kQjFDOGz3PGYQfKYIp SyIA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849776; x=1713454576; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=pbp/RQnmR075DrC7x5KXesv8hnwC9YQtvtSngsJEyrQ=; b=m9A4vFfevgMj8fc1NHegeo5o8NLyBMmZ20nhAEHr+JlTbWTzpeXGbaMxewLJupKVBF nEIlRPX5wqyRr0o63c1VH37sQT2gQqDWQXe4pK62p5KRpIZTQBOyUkNQ56AB2/bnzER4 0ksr9cI5ZSCCFNliyJxu8wG0k8TfF7V7EoiV4Yt0joI5Ot6NbJ4UonCRGPDikjoR3rpw ojdp6WSfPv0u+fcMMKXtEYVS6cUxZSPjMJNBpOasBUJmjkj3+3q6HJ+4PgcJa39UqCqq 2pjmgUFF19/lXEqJiYXlp90PGiCHFJAnpNVwYOOKTwWpWWHJ2X3Hwr1q0m7wK3okzwxB Hsrw== X-Gm-Message-State: AOJu0Yzeor0Z3KfUDOcUGS3zrw4BAfDgaOvhUbueBCP15ietALsWBLTj AtSeWsQQQNvQJDkq7SF0QEDkautc6Qxe2NIkAwbDSwD2juaYjM8X1SqUVM117VPgWiKOj3v5VRY n X-Google-Smtp-Source: AGHT+IGLq54DEe1zhqCraahGOdGsPkzsePVXA+w4AS3YhdrJmGgj6lDhuKgH977fWczZg5qz3VHK9A== X-Received: by 2002:a05:6602:4ed7:b0:7d5:ddc8:504d with SMTP id gk23-20020a0566024ed700b007d5ddc8504dmr188498iob.0.1712849776330; Thu, 11 Apr 2024 08:36:16 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.36.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:36:15 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 163/437] usb: host: ehci: convert to read/write iterators Date: Thu, 11 Apr 2024 09:15:03 -0600 Message-ID: <20240411153126.16201-164-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/usb/host/ehci-dbg.c | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/drivers/usb/host/ehci-dbg.c b/drivers/usb/host/ehci-dbg.c index c063fb042926..c9390a17c432 100644 --- a/drivers/usb/host/ehci-dbg.c +++ b/drivers/usb/host/ehci-dbg.c @@ -293,13 +293,13 @@ static int debug_bandwidth_open(struct inode *, struc= t file *); static int debug_periodic_open(struct inode *, struct file *); static int debug_registers_open(struct inode *, struct file *); =20 -static ssize_t debug_output(struct file*, char __user*, size_t, loff_t*); +static ssize_t debug_output(struct kiocb *, struct iov_iter *); static int debug_close(struct inode *, struct file *); =20 static const struct file_operations debug_async_fops =3D { .owner =3D THIS_MODULE, .open =3D debug_async_open, - .read =3D debug_output, + .read_iter =3D debug_output, .release =3D debug_close, .llseek =3D default_llseek, }; @@ -307,7 +307,7 @@ static const struct file_operations debug_async_fops = =3D { static const struct file_operations debug_bandwidth_fops =3D { .owner =3D THIS_MODULE, .open =3D debug_bandwidth_open, - .read =3D debug_output, + .read_iter =3D debug_output, .release =3D debug_close, .llseek =3D default_llseek, }; @@ -315,7 +315,7 @@ static const struct file_operations debug_bandwidth_fop= s =3D { static const struct file_operations debug_periodic_fops =3D { .owner =3D THIS_MODULE, .open =3D debug_periodic_open, - .read =3D debug_output, + .read_iter =3D debug_output, .release =3D debug_close, .llseek =3D default_llseek, }; @@ -323,7 +323,7 @@ static const struct file_operations debug_periodic_fops= =3D { static const struct file_operations debug_registers_fops =3D { .owner =3D THIS_MODULE, .open =3D debug_registers_open, - .read =3D debug_output, + .read_iter =3D debug_output, .release =3D debug_close, .llseek =3D default_llseek, }; @@ -952,10 +952,9 @@ static int fill_buffer(struct debug_buffer *buf) return ret; } =20 -static ssize_t debug_output(struct file *file, char __user *user_buf, - size_t len, loff_t *offset) +static ssize_t debug_output(struct kiocb *iocb, struct iov_iter *to) { - struct debug_buffer *buf =3D file->private_data; + struct debug_buffer *buf =3D iocb->ki_filp->private_data; int ret; =20 mutex_lock(&buf->mutex); @@ -968,9 +967,7 @@ static ssize_t debug_output(struct file *file, char __u= ser *user_buf, } mutex_unlock(&buf->mutex); =20 - ret =3D simple_read_from_buffer(user_buf, len, offset, - buf->output_buf, buf->count); - + ret =3D simple_copy_to_iter(buf->output_buf, &iocb->ki_pos, buf->count, t= o); out: return ret; } --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f47.google.com (mail-io1-f47.google.com [209.85.166.47]) (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 027781C6897 for ; Thu, 11 Apr 2024 15:36:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849780; cv=none; b=IZB1XuGgtP+G/QBrTxXrLexVLnf0AL53x2miRFc0AeLb9L/DYN3SXA/kVfOj9xJLbHXjVOyj+NL3I20x56clHYbCFeMZ5nuIMNkNhhRxeQypXBDys9YruBXuXB+FYVj+karES9a7p4Fo9egvuv3qfqoK2d6RTmKlbGjMXUxsPe8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849780; c=relaxed/simple; bh=1TJUdxOn8SvAXo66++GiAauAMR1729Nqfb3kGJAZDIE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=RDUSO93DCLQzy2Nemf8Fi581JXDxatLrxVVW8ZEzi+cfbuFcuHy24Gu7ahQ71zu8wgeYcsQxJh7vXN/9A+VIdVrNpzfXVKVu+k/pMvUfhqScdmfiyxzZt+YB2Iccp+FI1PZUY9q8iSsR5uzYgpqitXa5Fg0lJgaPzZlUbKrGyLg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=nzORRSOT; arc=none smtp.client-ip=209.85.166.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="nzORRSOT" Received: by mail-io1-f47.google.com with SMTP id ca18e2360f4ac-7d5ed700c2dso16163039f.0 for ; Thu, 11 Apr 2024 08:36:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849778; x=1713454578; 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=EBv8IDfSRUn7twlyubV+EXaW21C9+wFsBX7NFxTWmg8=; b=nzORRSOTrAvyZa5xczWkuu7rcrMpH2Ow4epWZGpBEBzYqKkdiJitXCOPP91IBQVnN8 /KpOaCfZQExnP0AjRulGlWpckkQzSGOQ5kmNAIYDA9/EAI0Y1cJy85oaj2qXjHZ6BjQa PcijK7WjzqSIizID2QKtOwK8lNxixrxlrmC0xraNqScKAgVHLXhvMAU6uiMSxEIwdIQV D3KEsvBq8TcK/YBf8wN1jcn6ZGpyG+5tdJ4D76R/IvzNqjEA92l0rhJTm3iVUYiHXDRF XvcIo0YZbxLYiVtZuZRMEISZOdCtD4BUVcUSBHVZSbuys53FKbNVpkIVysP9qFWiW+qk SMKA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849778; x=1713454578; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=EBv8IDfSRUn7twlyubV+EXaW21C9+wFsBX7NFxTWmg8=; b=Mgq6qSGXliYXpmOoMk2zpOg7QvhnrpNnk2nritynJbauqXgNMXNTvXRPXpjUvTc6NR kdcQKMFEWQOVVJi5GHbLWyJsnU7K+D7wmPXRWoeNOfcssW8Oa1Ma3vZAG5tcTU0gyJqe p/Idulzug0sERYnfmNkex5Y5zFc2nxe1tP7Z/Rwz0XuGsHbvkvneTRCWWWPpSiNBw6n1 CsZOHam7uY8oi6zQEBwDBbIwXjMjIcn8meetpq6vHu2yHiuJhM5dAPZ6sulbrxQlT5xy cohCkwt2jNrjPpsJKuKZ3MAVl+W7v7hVbIaRu1mUwqmPvpq72gZ8Nj1K+y3iuXBLpIps VAxg== X-Gm-Message-State: AOJu0YxER+frnreifGoocOYXk3gpCmyjQ/h+9u4Mj4sDWEoe09vdkQ2G /JAstBIFrB59fNKuZ5MMpqLjzYP2vwJ6L4a6NLF/3AL4UEMVJhaFHxbHu4nR4pM51cp8pEY7fD0 k X-Google-Smtp-Source: AGHT+IGMI/yfjAT3P3XF1d37Q192CNsL+f0/c34WOuNXUh+w+XXfzuRfJ1JP3RVpic8nNGkmIiHlXw== X-Received: by 2002:a6b:f312:0:b0:7d5:de23:13a9 with SMTP id m18-20020a6bf312000000b007d5de2313a9mr161397ioh.1.1712849777808; Thu, 11 Apr 2024 08:36:17 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.36.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:36:16 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 164/437] usb: host: ohci: convert to read/write iterators Date: Thu, 11 Apr 2024 09:15:04 -0600 Message-ID: <20240411153126.16201-165-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/usb/host/ohci-dbg.c | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/drivers/usb/host/ohci-dbg.c b/drivers/usb/host/ohci-dbg.c index 76bc8d56325d..dc40e655f824 100644 --- a/drivers/usb/host/ohci-dbg.c +++ b/drivers/usb/host/ohci-dbg.c @@ -361,27 +361,27 @@ static int debug_async_open(struct inode *, struct fi= le *); static int debug_periodic_open(struct inode *, struct file *); static int debug_registers_open(struct inode *, struct file *); static int debug_async_open(struct inode *, struct file *); -static ssize_t debug_output(struct file*, char __user*, size_t, loff_t*); +static ssize_t debug_output(struct kiocb *, struct iov_iter *); static int debug_close(struct inode *, struct file *); =20 static const struct file_operations debug_async_fops =3D { .owner =3D THIS_MODULE, .open =3D debug_async_open, - .read =3D debug_output, + .read_iter =3D debug_output, .release =3D debug_close, .llseek =3D default_llseek, }; static const struct file_operations debug_periodic_fops =3D { .owner =3D THIS_MODULE, .open =3D debug_periodic_open, - .read =3D debug_output, + .read_iter =3D debug_output, .release =3D debug_close, .llseek =3D default_llseek, }; static const struct file_operations debug_registers_fops =3D { .owner =3D THIS_MODULE, .open =3D debug_registers_open, - .read =3D debug_output, + .read_iter =3D debug_output, .release =3D debug_close, .llseek =3D default_llseek, }; @@ -701,10 +701,9 @@ static int fill_buffer(struct debug_buffer *buf) return ret; } =20 -static ssize_t debug_output(struct file *file, char __user *user_buf, - size_t len, loff_t *offset) +static ssize_t debug_output(struct kiocb *iocb, struct iov_iter *to) { - struct debug_buffer *buf =3D file->private_data; + struct debug_buffer *buf =3D iocb->ki_filp->private_data; int ret; =20 mutex_lock(&buf->mutex); @@ -717,9 +716,7 @@ static ssize_t debug_output(struct file *file, char __u= ser *user_buf, } mutex_unlock(&buf->mutex); =20 - ret =3D simple_read_from_buffer(user_buf, len, offset, - buf->page, buf->count); - + ret =3D simple_copy_to_iter(buf->page, &iocb->ki_pos, buf->count, to); out: return ret; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-il1-f172.google.com (mail-il1-f172.google.com [209.85.166.172]) (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 76A5B1C68AF for ; Thu, 11 Apr 2024 15:36:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.172 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849781; cv=none; b=QZrFVHOPF++v0AoVdgSKVI+Cinb6eJmSwHTMOTS7vMWZly8B7pWa9qIfs2ZcEcNBJpIT/VndrnoHUqIcKRZRQ0846LrTITRogouDkR/CUWQ9MfR4x+OV2mnwPi+0ZM2frGMiE381ZdfQbiE+x5sBz2PekbiUyzIeHGJNxMAA0mA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849781; c=relaxed/simple; bh=5Hl9sJiZmGzN48insGBMoPhuJNAaYBfMCPiCdS5O2vA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=PkFkxF7N2s7T2z5UPm2lwbiT4plZVNIytIj2mBDfn7rq1KKSZFyXf4kb5dfoe4KuCRI39WfolukvzdLQpbT1mDpbopWPVvulPnHI/G6/+niVs53TjMhtdYCZ/kq6QJvulnJ+DcWknE1jGv/nfrsuBdLeTSItzn3mCzrkWALi8Ag= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=yDpHxBcx; arc=none smtp.client-ip=209.85.166.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="yDpHxBcx" Received: by mail-il1-f172.google.com with SMTP id e9e14a558f8ab-36a34b68277so110805ab.0 for ; Thu, 11 Apr 2024 08:36:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849779; x=1713454579; 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=5ZXUWVzjzpqSSPI9h+Xhjlak12CvKdLC3cnm3Z7bVEM=; b=yDpHxBcxOd6+r/zWJydBMspXTCrpZHiukOtv+modBJIQaTNgZIvxRNPFUPE21VvUYr 4xfaF5SPbsm7koGoTq1S9ukk1USn7qqdnLAip17khyKg+PFQ8Tk0NY9TWLjFMxjAhwDh 6cnnGJmvj1UKY6PCkVn4hpb9WcelMR+GLT23LCqh6ND5nL1jZ7W7exshmtSsC7dLk6/U KbngjncK2c56F5Jb4cZ/TF3+hDuRnftNiUvRn1Tr/Sjx/juN0h/yb3P5Y8NSrfsWShIO 7KYmJi5Y30Lln7LSS3ZK7SyKEXYEWER2GXCVbOLpP52Wty5r+56/55hq0h7xoHWlIBET 6tSQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849779; x=1713454579; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=5ZXUWVzjzpqSSPI9h+Xhjlak12CvKdLC3cnm3Z7bVEM=; b=gKeqamdzEvJzota4OX7N1ZEARvb2QDWy9oUJrgEqkwchoB4DNDOUpQnJYf4vf2nX+8 ggk9LU1MMD3nUu929ZMnvp/jYXg9YfR4hSpcGrC/1fPHnBRbtU2sedNOsotmW7/cXvnv BICNlXQ52WKj0EGchuHKgJ0LwWSieJSDulz68t/8f7xOQXnP7SSkPIAh5TF8Nufb3+g7 us1A2DENKG8IFvxvwnO7ANc1M42iCBFL5ai9WdcvujOnLaWzf8+kTaFxvJIdOiigzLsz sfgiRcp4MF8SLhqllEpgFDxc89ZWrfRSYlXcrjBr/6ok+WJosV0G5LZFrYOMaGgA78kA O7gA== X-Gm-Message-State: AOJu0YxCCKArjG5W/rOchE6L3bdnt84QoXG996Oj33AAaU1PfcrOG9IG 3KCpYmTPpg6rANHULKEA/y6x4xEgMhZo213u3C5jyy8vO0JE9bsNfpfgB/NNGT51omryvo/6IRs u X-Google-Smtp-Source: AGHT+IGYcPN9OPc29KKgwUslmpYFbPG+9iq3sMjJNXiONb+oVDgol7ElIAo08r+wuwvPvOOgTD3u8g== X-Received: by 2002:a6b:6605:0:b0:7d4:1dae:da1a with SMTP id a5-20020a6b6605000000b007d41daeda1amr149589ioc.2.1712849779247; Thu, 11 Apr 2024 08:36:19 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.36.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:36:18 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 165/437] usb: host: uhci: convert to read/write iterators Date: Thu, 11 Apr 2024 09:15:05 -0600 Message-ID: <20240411153126.16201-166-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/usb/host/uhci-debug.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/drivers/usb/host/uhci-debug.c b/drivers/usb/host/uhci-debug.c index c4e67c4b51f6..e8329c44db59 100644 --- a/drivers/usb/host/uhci-debug.c +++ b/drivers/usb/host/uhci-debug.c @@ -589,11 +589,10 @@ static loff_t uhci_debug_lseek(struct file *file, lof= f_t off, int whence) return no_seek_end_llseek_size(file, off, whence, up->size); } =20 -static ssize_t uhci_debug_read(struct file *file, char __user *buf, - size_t nbytes, loff_t *ppos) +static ssize_t uhci_debug_read(struct kiocb *iocb, struct iov_iter *to) { - struct uhci_debug *up =3D file->private_data; - return simple_read_from_buffer(buf, nbytes, ppos, up->data, up->size); + struct uhci_debug *up =3D iocb->ki_filp->private_data; + return simple_copy_to_iter(up->data, &iocb->ki_pos, up->size, to); } =20 static int uhci_debug_release(struct inode *inode, struct file *file) @@ -610,7 +609,7 @@ static const struct file_operations uhci_debug_operatio= ns =3D { .owner =3D THIS_MODULE, .open =3D uhci_debug_open, .llseek =3D uhci_debug_lseek, - .read =3D uhci_debug_read, + .read_iter =3D uhci_debug_read, .release =3D uhci_debug_release, }; #define UHCI_DEBUG_OPS --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f49.google.com (mail-io1-f49.google.com [209.85.166.49]) (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 3CF281C8FBB for ; Thu, 11 Apr 2024 15:36:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849783; cv=none; b=Ukt0aiH1+zuU0WyUl5eYvVIibqh1EvbyZa4dDzBhvndaO0bziHgJ0roMhvVdKtxVxTG3LBtpXPMIWUXt+eznww1ZuNZxykMu4wag7ZwK0dxBt+E7oh4dhkVvR8oT/T6pmDPeUnm1KCdLL72w/72afvkoCrlAAYmCo0gU6oC3Ie0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849783; c=relaxed/simple; bh=tCNwQgQK9CmNxv1FGh773KunBY7kDDe5bl+LtM1G99I=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=u0vnjO0zQ8bXd2w657oPHskA8c7SPI0XDJQ88x2jg6RD58ywQutMHbbMiVTY8/hUlMcI0BIdHNtEgt75xECOtc6Nhd/guba0OBmDFuQhaTPkUZEUy8u2MASdQ8dITryNqAI84iLcMfmTN99Fv/yHB3NlYFNr28LP0qPVWGSlbc0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=nGl6VDpr; arc=none smtp.client-ip=209.85.166.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="nGl6VDpr" Received: by mail-io1-f49.google.com with SMTP id ca18e2360f4ac-7d6812b37a6so8950939f.0 for ; Thu, 11 Apr 2024 08:36:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849781; x=1713454581; 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=fE+QeweiNvcjh/13fo8jPtzqizzL+chR6NcoX8V8fRg=; b=nGl6VDprIPz1fozFi/EumzldVejd99JHkZ6vug1lSLq1jkxrszHau7Zrv0jNcrdXZS DPi5sGUiv0C8I7j6WdKNPK1jjw1FX/FRj4C41Y9O0lLL0/Th24+zeVW5y+DDEJ7Zuxny oj7GYbyP9rU6ZzsQAD6fv77d8uBqYDndojX7OXDFHLtpr8YRd2CKhh9vJiTR0VrekJ9a v3VNuiq2w8tuldQuf0fxDnP6hWVnVl35EtTSoA/apZ575n1Pv0qL6a2vgdmYKT1Phh8J f1ww0IRfIGUrTTJ3MrV++NpwlG8CH3qPg/p6UbBd9t/TQ471Lpa1l1ya/4O+2h2okbvk eUFg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849781; x=1713454581; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=fE+QeweiNvcjh/13fo8jPtzqizzL+chR6NcoX8V8fRg=; b=CStbCKdEOPtoHRocHaO1AL5jH7+x4SWvGxphhjN+lgbF2qUIUVw8DMv5Q0yUGJPPIi OEsZyAWjr0qSZ23uVNmO3YQYdbXEfBk9tlKl66d7XzQem9g3mVJY2+UmyWBKbk+os1Kz Z8u3RNbhaFxNBgm/mDz80t4UCZMGw/LTFHZQTv0uKypKcoZO7s9HBr93NLclPK+6rWHJ Oes1QRRmkQIAe0CLa8ZpNZE6XpG2RigRytwW2LoaZcOCRLDXNbriGZXrlYXIKnoc62Xf wbdfsKS0jJYlXaYeBfcP/WimDGrRCjCspfAtx8Rl1qsbpn5ZAllUHNwA+RwpfJOsHaxI hi9w== X-Gm-Message-State: AOJu0YxEH0uC+IxyXjT2PioY1cyRsESDB1Z5PWrUCdzWorOq7FG9Fe36 fjSBdL3Qwfth4X4s740Yb44PmcdEcomsj061ChyD8FtHnqWvfx19LFOtFhD/tFbjiveyhm1WG10 0 X-Google-Smtp-Source: AGHT+IESPApm7hbRL+nqvZ8faHnWCw1VXUlvr/wHJmK6d7miJ2+VnGvf8FNByVM8CX9rTg+W0SSJnw== X-Received: by 2002:a6b:5b10:0:b0:7d0:bd2b:43ba with SMTP id v16-20020a6b5b10000000b007d0bd2b43bamr222160ioh.0.1712849781055; Thu, 11 Apr 2024 08:36:21 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.36.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:36:19 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 166/437] usb: host: xhci: convert to read/write iterators Date: Thu, 11 Apr 2024 09:15:06 -0600 Message-ID: <20240411153126.16201-167-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/usb/host/xhci-debugfs.c | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/drivers/usb/host/xhci-debugfs.c b/drivers/usb/host/xhci-debugf= s.c index f8ba15e7c225..751e48d0b555 100644 --- a/drivers/usb/host/xhci-debugfs.c +++ b/drivers/usb/host/xhci-debugfs.c @@ -251,7 +251,7 @@ static int xhci_ring_open(struct inode *inode, struct f= ile *file) =20 static const struct file_operations xhci_ring_fops =3D { .open =3D xhci_ring_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D single_release, }; @@ -336,7 +336,7 @@ static int xhci_context_open(struct inode *inode, struc= t file *file) =20 static const struct file_operations xhci_context_fops =3D { .open =3D xhci_context_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D single_release, }; @@ -360,17 +360,17 @@ static int xhci_port_open(struct inode *inode, struct= file *file) return single_open(file, xhci_portsc_show, inode->i_private); } =20 -static ssize_t xhci_port_write(struct file *file, const char __user *ubuf, - size_t count, loff_t *ppos) +static ssize_t xhci_port_write(struct kiocb *iocb, struct iov_iter *from) { - struct seq_file *s =3D file->private_data; + struct seq_file *s =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); struct xhci_port *port =3D s->private; struct xhci_hcd *xhci =3D hcd_to_xhci(port->rhub->hcd); char buf[32]; u32 portsc; unsigned long flags; =20 - if (copy_from_user(&buf, ubuf, min_t(size_t, sizeof(buf) - 1, count))) + if (!copy_from_iter_full(&buf, min_t(size_t, sizeof(buf) - 1, count), fro= m)) return -EFAULT; =20 if (!strncmp(buf, "compliance", 10)) { @@ -397,8 +397,8 @@ static ssize_t xhci_port_write(struct file *file, cons= t char __user *ubuf, =20 static const struct file_operations port_fops =3D { .open =3D xhci_port_open, - .write =3D xhci_port_write, - .read =3D seq_read, + .write_iter =3D xhci_port_write, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D single_release, }; @@ -502,10 +502,10 @@ static int xhci_stream_id_open(struct inode *inode, s= truct file *file) return single_open(file, xhci_stream_id_show, inode->i_private); } =20 -static ssize_t xhci_stream_id_write(struct file *file, const char __user = *ubuf, - size_t count, loff_t *ppos) +static ssize_t xhci_stream_id_write(struct kiocb *iocb, struct iov_iter *f= rom) { - struct seq_file *s =3D file->private_data; + struct seq_file *s =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); struct xhci_ep_priv *epriv =3D s->private; int ret; u16 stream_id; /* MaxPStreams + 1 <=3D 16 */ @@ -514,7 +514,7 @@ static ssize_t xhci_stream_id_write(struct file *file, = const char __user *ubuf, return -EPERM; =20 /* Decimal number */ - ret =3D kstrtou16_from_user(ubuf, count, 10, &stream_id); + ret =3D kstrtou16_from_iter(from, count, 10, &stream_id); if (ret) return ret; =20 @@ -529,8 +529,8 @@ static ssize_t xhci_stream_id_write(struct file *file, = const char __user *ubuf, =20 static const struct file_operations stream_id_fops =3D { .open =3D xhci_stream_id_open, - .write =3D xhci_stream_id_write, - .read =3D seq_read, + .write_iter =3D xhci_stream_id_write, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D single_release, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f53.google.com (mail-io1-f53.google.com [209.85.166.53]) (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 AA8901C9EBE for ; Thu, 11 Apr 2024 15:36:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849786; cv=none; b=bL3IXedFeIWPTZc9G7JSEviMEAD+xcdqKEboRRfXAtVG1jA37drEGklhRs6BnIDRZODJcbrOER/5i58IrGaE1nI0p6280ZqbO02O3R610oVpGYgH/eshoSJVG3bD2EDZ2lN3KenOkyHGcm8OYW0pFWrw5IuLL5AqCn7amE62CCA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849786; c=relaxed/simple; bh=BpbLbOP2afdvtIC9iamDC2khJ9q6WVB0dG51UsiIlNY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=PJD3n/ETJKpJ/FEQlbRRuzDuQEDJ7Uldcxp/cXf0OfKEq4xUg7XdytGYLley5Gc4ssnm/YwvMrfP5b+Ug9hlZxTkngwO3L35tH0rp6Tr45hMsr2t1mgJqJP7EySG8IuJM1WSIT8cLW0je52kXKtHgzf4ehPg48JOgopdO7mh5T8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=099V+exf; arc=none smtp.client-ip=209.85.166.53 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="099V+exf" Received: by mail-io1-f53.google.com with SMTP id ca18e2360f4ac-7d6112ba6baso58077739f.1 for ; Thu, 11 Apr 2024 08:36:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849782; x=1713454582; 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=tzFflLsYEL6dEX0b2SgCkx7pDBMhEWrTGXs6PsOZyO8=; b=099V+exfwsx5swO8TfrfwPvTCeoM+11acZIE5ugkNYu20ON7DNszD81NPzleRG4c0o wFC0zR0wmw58Y7fNa0yVD+i5ziHAGiOwrQfXxgQDx6cQev+nd2EMM0m1T2AaxoxA1jhF ZaHFRjgZemb784FfoJFShuFwbf0moLISddoGRmeSeZEdumryw667ZXXJk1Z12VqsOQa4 PmeLqVbF/KwgUlaI2+a8eIWglAylT8QVPs/5hBOInp/UfAao6TWgwoLno+VYqBYm4a7P DThXSCRuSgvRJomQHSb7L3yVVUxhx1w9n7RFTN97Etahd9+S7v1g6kQFlbt2OPjUPDhH v2vg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849782; x=1713454582; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=tzFflLsYEL6dEX0b2SgCkx7pDBMhEWrTGXs6PsOZyO8=; b=YPg0kWaNXEyDkbtSApNJNTdUHAzTnOm/No7j7JZ2kYXcPu1IC2IN1FKXRSTX/xErOv D3hM95Re7vIlTZDlCW7qMAZaBpw6os27oMC8JgxN9Wnmm19ySx/6MC2r6hhr211nnBnD jM03lNgJFT/RRPWJHwj7MDismomXA2gwmSc8B28SdJQhlPsem2LMuwqkmLlHgco2reIW LTzEvli9EyhJu6Se/b5cYy9gUkHGdaEoX+Ih9/6NY2/G7l+t06N1zwTFBvSP7vsTav2B 3xMxQaW5WcZpbKR7XOudU00Uhbrve44UXq2B7uTbpK5R6obsc9s/qbQYHe+kLlhgv/0m 7ixA== X-Gm-Message-State: AOJu0Yx4LZIX+VpGt5UyohCIrlasb/YXzwuCHLP7Cxe8V19XAybXIJ60 GzjzmgL1krRAuMveq7ATBcT7GRw6Ku/3A3JooBJO78Q09SfwkYUP4/I/E1ZDfo5TXtH6ezRwN6s q X-Google-Smtp-Source: AGHT+IFszcf26vQCCbg8hYAeod09OX+GBgldCuTxvYlZ8bIe0UKrtuXkPk9+ZF/HKhcIDoEpxGcT2w== X-Received: by 2002:a05:6602:38d:b0:7d6:513b:254 with SMTP id f13-20020a056602038d00b007d6513b0254mr185368iov.2.1712849782653; Thu, 11 Apr 2024 08:36:22 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.36.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:36:21 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 167/437] usb: image: mdc800: convert to read/write iterators Date: Thu, 11 Apr 2024 09:15:07 -0600 Message-ID: <20240411153126.16201-168-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/usb/image/mdc800.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/drivers/usb/image/mdc800.c b/drivers/usb/image/mdc800.c index 7b7e1554ea20..ec52a144f8d7 100644 --- a/drivers/usb/image/mdc800.c +++ b/drivers/usb/image/mdc800.c @@ -677,10 +677,10 @@ static int mdc800_device_release (struct inode* inode= , struct file *file) /* * The Device read callback Function */ -static ssize_t mdc800_device_read (struct file *file, char __user *buf, si= ze_t len, loff_t *pos) +static ssize_t mdc800_device_read(struct kiocb *iocb, struct iov_iter *to) { + size_t len =3D iov_iter_count(to); size_t left=3Dlen, sts=3Dlen; /* single transfer size */ - char __user *ptr =3D buf; int retval; =20 mutex_lock(&mdc800->io_lock); @@ -754,12 +754,11 @@ static ssize_t mdc800_device_read (struct file *file,= char __user *buf, size_t l else { /* Copy Bytes */ - if (copy_to_user(ptr, &mdc800->out [mdc800->out_ptr], - sts)) { + if (!copy_to_iter_full(&mdc800->out [mdc800->out_ptr], + sts, to)) { mutex_unlock(&mdc800->io_lock); return -EFAULT; } - ptr+=3Dsts; left-=3Dsts; mdc800->out_ptr+=3Dsts; } @@ -936,7 +935,7 @@ static ssize_t mdc800_device_write (struct file *file, = const char __user *buf, s mutex_unlock(&mdc800->io_lock); return i; } - +FOPS_WRITE_ITER_HELPER(mdc800_device_write); =20 /*************************************************************************= ** Init and Cleanup this driver (Structs and types) @@ -946,8 +945,8 @@ static ssize_t mdc800_device_write (struct file *file, = const char __user *buf, s static const struct file_operations mdc800_device_ops =3D { .owner =3D THIS_MODULE, - .read =3D mdc800_device_read, - .write =3D mdc800_device_write, + .read_iter =3D mdc800_device_read, + .write_iter =3D mdc800_device_write_iter, .open =3D mdc800_device_open, .release =3D mdc800_device_release, .llseek =3D noop_llseek, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f46.google.com (mail-io1-f46.google.com [209.85.166.46]) (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 3C47A1C9ECE for ; Thu, 11 Apr 2024 15:36:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849788; cv=none; b=AVIjmWYGP9QuIf4Tlw/lRe1oO478fGvFZYkz9707MDwkM8QYpIt6sNOSkp06+q264K7TWLBvJDXni3RK1Z95hzWYLq8iAVLehmlsp7t9PsSTrVkiD+UY4q0+YqbX9CS9UCGxPInrJBUsCpC0ivk0vH8ZYKyfERJNuAyfPBV/efY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849788; c=relaxed/simple; bh=JjpU4GRBcne7lTFL4A+MIuHfW0eUTaqr2Y5mR//C6Ps=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=HPr0D7RWQFAJ3HA/i5k55Gw5vfwWpg9Y+l7+vI5XT/oULy/YjY6oVuKa5D84v8yYh9JiPx3O+MvHeinrmG1mp0ZcJ1uJ+jFxt+j4I3PmeNXPtt8k7NT3Z0fMxsqbp2agb4JZw1yLxkyBQtCP7HYOTfcjGaNegM4TFFr0SGJB+Ls= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=O2uig6EW; arc=none smtp.client-ip=209.85.166.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="O2uig6EW" Received: by mail-io1-f46.google.com with SMTP id ca18e2360f4ac-7d6112ba6baso58079039f.1 for ; Thu, 11 Apr 2024 08:36:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849784; x=1713454584; 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=njqcBwWUNR1MADk9nqYz8nv4i+lwHFUPJWFghnPuFjs=; b=O2uig6EWdPRgHZCZ7otrCPrfQypJ1eQs8IaGl9xO+Sjaq6qhRfI9goEzbM5DWWD6nW Md6ucGTyEPzUhp8nyegNQyQPVQ6JtPKrvXKydV7r22VKlR/YG97t8cLStJF3WsjcoIdc k9TuvH3aLnRPAwUpp731F8RGW9y36kUqhA5QwvAemUZ5e/2DnzKFtPs43hGMSceAz6q0 5aYbzpXEQvMkIxILaX+N3FR7BG3n+L9ngco6j97GONMy3ekJmgHa0CTgeETP278DBNrL fMPW3geiN6KvU2qvXBjkO1Mjg637mycUoNNr05s45nBYkrMF6kVIG2OyGOiZ1fdL51jU +B1A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849784; x=1713454584; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=njqcBwWUNR1MADk9nqYz8nv4i+lwHFUPJWFghnPuFjs=; b=erZQfcC8sOEJQyi2Y+SOsSbMuTI1UpjLnMeZSV8M7Krdctm64JTHSOR41NAOs0WP0X vd3+QAxHa6sTyvKy1S7YUgo8Lf+JYLOqnZRw2rBSqLM3DXQ2obJxVK1VKz2IpnrBgG2G +c5grEh86RHE+g5I2dcfenYDABBc1tKMf0MzM3001AY39/UWZPsfYXcezZrK85O1X2Qk IhCFVgVlvugghabqGxOJmUYgZb+vc8+nago+sTl3Y9JxcnPv0KNxeSAuUVZDFrgOiO7u T+DmU6JWOovfcPePGm0pI4BjIFptcirf+oprcmuLx1PMnc8A5jX+qemft7XgfNRBJUv1 w9hQ== X-Gm-Message-State: AOJu0YwvF6y2YkwGS5KNlHyN4/BhNzo8Qx/8NNqTj8kABApLDRmoUw1z OOFvfe74cWwgX+ElaegQxmrlLgm0+UF1TkcXCbdUbck/2n+9/BEfy5hReLeWAD64mBhbqzsid9W 7 X-Google-Smtp-Source: AGHT+IECsoBNkAbvG8lBtHH7uIgp/F+qevwgD8Qpg9Vu2GLAHqfkogTYBEztciutqEbyCeCDWjFT5g== X-Received: by 2002:a6b:f312:0:b0:7d5:de23:13a9 with SMTP id m18-20020a6bf312000000b007d5de2313a9mr161720ioh.1.1712849784482; Thu, 11 Apr 2024 08:36:24 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.36.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:36:22 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 168/437] usb: misc: convert to read/write iterators Date: Thu, 11 Apr 2024 09:15:08 -0600 Message-ID: <20240411153126.16201-169-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/usb/misc/adutux.c | 6 ++++-- drivers/usb/misc/chaoskey.c | 13 +++++-------- drivers/usb/misc/idmouse.c | 15 ++++++--------- drivers/usb/misc/iowarrior.c | 6 ++++-- drivers/usb/misc/ldusb.c | 24 ++++++++++++------------ drivers/usb/misc/legousbtower.c | 26 ++++++++++++++------------ drivers/usb/misc/sisusbvga/sisusbvga.c | 6 ++++-- drivers/usb/misc/usblcd.c | 20 ++++++++++---------- drivers/usb/misc/yurex.c | 19 +++++++++---------- 9 files changed, 68 insertions(+), 67 deletions(-) diff --git a/drivers/usb/misc/adutux.c b/drivers/usb/misc/adutux.c index ed6a19254d2f..20d6107682c2 100644 --- a/drivers/usb/misc/adutux.c +++ b/drivers/usb/misc/adutux.c @@ -499,6 +499,7 @@ static ssize_t adu_read(struct file *file, __user char = *buffer, size_t count, =20 return retval; } +FOPS_READ_ITER_HELPER(adu_read); =20 static ssize_t adu_write(struct file *file, const __user char *buffer, size_t count, loff_t *ppos) @@ -619,12 +620,13 @@ static ssize_t adu_write(struct file *file, const __u= ser char *buffer, remove_wait_queue(&dev->write_wait, &waita); return retval; } +FOPS_WRITE_ITER_HELPER(adu_write); =20 /* file operations needed when we register this driver */ static const struct file_operations adu_fops =3D { .owner =3D THIS_MODULE, - .read =3D adu_read, - .write =3D adu_write, + .read_iter =3D adu_read_iter, + .write_iter =3D adu_write_iter, .open =3D adu_open, .release =3D adu_release, .llseek =3D noop_llseek, diff --git a/drivers/usb/misc/chaoskey.c b/drivers/usb/misc/chaoskey.c index 6fb5140e29b9..400b19bb1ee6 100644 --- a/drivers/usb/misc/chaoskey.c +++ b/drivers/usb/misc/chaoskey.c @@ -403,18 +403,16 @@ static int _chaoskey_fill(struct chaoskey *dev) return result; } =20 -static ssize_t chaoskey_read(struct file *file, - char __user *buffer, - size_t count, - loff_t *ppos) +static ssize_t chaoskey_read(struct kiocb *iocb, struct iov_iter *to) { struct chaoskey *dev; ssize_t read_count =3D 0; int this_time; int result =3D 0; unsigned long remain; + size_t count =3D iov_iter_count(to); =20 - dev =3D file->private_data; + dev =3D iocb->ki_filp->private_data; =20 if (dev =3D=3D NULL || !dev->present) return -ENODEV; @@ -446,7 +444,7 @@ static ssize_t chaoskey_read(struct file *file, if (this_time > count) this_time =3D count; =20 - remain =3D copy_to_user(buffer, dev->buf + dev->used, this_time); + remain =3D !copy_to_iter_full(dev->buf + dev->used, this_time, to); if (remain) { result =3D -EFAULT; =20 @@ -460,7 +458,6 @@ static ssize_t chaoskey_read(struct file *file, =20 count -=3D this_time; read_count +=3D this_time; - buffer +=3D this_time; dev->used +=3D this_time; mutex_unlock(&dev->lock); } @@ -554,7 +551,7 @@ static int chaoskey_resume(struct usb_interface *interf= ace) /* file operation pointers */ static const struct file_operations chaoskey_fops =3D { .owner =3D THIS_MODULE, - .read =3D chaoskey_read, + .read_iter =3D chaoskey_read, .open =3D chaoskey_open, .release =3D chaoskey_release, .llseek =3D default_llseek, diff --git a/drivers/usb/misc/idmouse.c b/drivers/usb/misc/idmouse.c index ea39243efee3..91534f0982ea 100644 --- a/drivers/usb/misc/idmouse.c +++ b/drivers/usb/misc/idmouse.c @@ -79,9 +79,7 @@ struct usb_idmouse { }; =20 /* local function prototypes */ -static ssize_t idmouse_read(struct file *file, char __user *buffer, - size_t count, loff_t * ppos); - +static ssize_t idmouse_read(struct kiocb *iocb, struct iov_iter *to); static int idmouse_open(struct inode *inode, struct file *file); static int idmouse_release(struct inode *inode, struct file *file); =20 @@ -95,7 +93,7 @@ static int idmouse_resume(struct usb_interface *intf); /* file operation pointers */ static const struct file_operations idmouse_fops =3D { .owner =3D THIS_MODULE, - .read =3D idmouse_read, + .read_iter =3D idmouse_read, .open =3D idmouse_open, .release =3D idmouse_release, .llseek =3D default_llseek, @@ -290,10 +288,9 @@ static int idmouse_release(struct inode *inode, struct= file *file) return 0; } =20 -static ssize_t idmouse_read(struct file *file, char __user *buffer, size_t= count, - loff_t * ppos) +static ssize_t idmouse_read(struct kiocb *iocb, struct iov_iter *to) { - struct usb_idmouse *dev =3D file->private_data; + struct usb_idmouse *dev =3D iocb->ki_filp->private_data; int result; =20 /* lock this object */ @@ -305,8 +302,8 @@ static ssize_t idmouse_read(struct file *file, char __u= ser *buffer, size_t count return -ENODEV; } =20 - result =3D simple_read_from_buffer(buffer, count, ppos, - dev->bulk_in_buffer, IMGSIZE); + result =3D simple_copy_to_iter(dev->bulk_in_buffer, &iocb->ki_pos, + IMGSIZE, to); /* unlock the device */ mutex_unlock(&dev->lock); return result; diff --git a/drivers/usb/misc/iowarrior.c b/drivers/usb/misc/iowarrior.c index 6d28467ce352..bb0f28e1cdca 100644 --- a/drivers/usb/misc/iowarrior.c +++ b/drivers/usb/misc/iowarrior.c @@ -332,6 +332,7 @@ static ssize_t iowarrior_read(struct file *file, char _= _user *buffer, atomic_set(&dev->read_idx, read_idx); return count; } +FOPS_READ_ITER_HELPER(iowarrior_read); =20 /* * iowarrior_write @@ -468,6 +469,7 @@ static ssize_t iowarrior_write(struct file *file, mutex_unlock(&dev->mutex); return retval; } +FOPS_WRITE_ITER_HELPER(iowarrior_write); =20 /* * iowarrior_ioctl @@ -707,8 +709,8 @@ static __poll_t iowarrior_poll(struct file *file, poll_= table * wait) */ static const struct file_operations iowarrior_fops =3D { .owner =3D THIS_MODULE, - .write =3D iowarrior_write, - .read =3D iowarrior_read, + .write_iter =3D iowarrior_write_iter, + .read_iter =3D iowarrior_read_iter, .unlocked_ioctl =3D iowarrior_ioctl, .open =3D iowarrior_open, .release =3D iowarrior_release, diff --git a/drivers/usb/misc/ldusb.c b/drivers/usb/misc/ldusb.c index 7cbef74dfc9a..7fef44f35b45 100644 --- a/drivers/usb/misc/ldusb.c +++ b/drivers/usb/misc/ldusb.c @@ -433,16 +433,16 @@ static __poll_t ld_usb_poll(struct file *file, poll_t= able *wait) /* * ld_usb_read */ -static ssize_t ld_usb_read(struct file *file, char __user *buffer, size_t = count, - loff_t *ppos) +static ssize_t ld_usb_read(struct kiocb *iocb, struct iov_iter *to) { + size_t count =3D iov_iter_count(to); struct ld_usb *dev; size_t *actual_buffer; size_t bytes_to_read; int retval =3D 0; int rv; =20 - dev =3D file->private_data; + dev =3D iocb->ki_filp->private_data; =20 /* verify that we actually have some data to read */ if (count =3D=3D 0) @@ -466,7 +466,7 @@ static ssize_t ld_usb_read(struct file *file, char __us= er *buffer, size_t count, while (dev->ring_head =3D=3D dev->ring_tail) { dev->interrupt_in_done =3D 0; spin_unlock_irq(&dev->rbsl); - if (file->f_flags & O_NONBLOCK) { + if (iocb->ki_filp->f_flags & O_NONBLOCK) { retval =3D -EAGAIN; goto unlock_exit; } @@ -490,7 +490,7 @@ static ssize_t ld_usb_read(struct file *file, char __us= er *buffer, size_t count, *actual_buffer-bytes_to_read); =20 /* copy one interrupt_in_buffer from ring_buffer into userspace */ - if (copy_to_user(buffer, actual_buffer+1, bytes_to_read)) { + if (!copy_to_iter_full(actual_buffer+1, bytes_to_read, to)) { retval =3D -EFAULT; goto unlock_exit; } @@ -520,14 +520,14 @@ static ssize_t ld_usb_read(struct file *file, char __= user *buffer, size_t count, /* * ld_usb_write */ -static ssize_t ld_usb_write(struct file *file, const char __user *buffer, - size_t count, loff_t *ppos) +static ssize_t ld_usb_write(struct kiocb *iocb, struct iov_iter *from) { + size_t count =3D iov_iter_count(from); struct ld_usb *dev; size_t bytes_to_write; int retval =3D 0; =20 - dev =3D file->private_data; + dev =3D iocb->ki_filp->private_data; =20 /* verify that we actually have some data to write */ if (count =3D=3D 0) @@ -548,7 +548,7 @@ static ssize_t ld_usb_write(struct file *file, const ch= ar __user *buffer, =20 /* wait until previous transfer is finished */ if (dev->interrupt_out_busy) { - if (file->f_flags & O_NONBLOCK) { + if (iocb->ki_filp->f_flags & O_NONBLOCK) { retval =3D -EAGAIN; goto unlock_exit; } @@ -566,7 +566,7 @@ static ssize_t ld_usb_write(struct file *file, const ch= ar __user *buffer, dev_dbg(&dev->intf->dev, "%s: count =3D %zu, bytes_to_write =3D %zu\n", __func__, count, bytes_to_write); =20 - if (copy_from_user(dev->interrupt_out_buffer, buffer, bytes_to_write)) { + if (!copy_from_iter_full(dev->interrupt_out_buffer, bytes_to_write, from)= ) { retval =3D -EFAULT; goto unlock_exit; } @@ -622,8 +622,8 @@ static ssize_t ld_usb_write(struct file *file, const ch= ar __user *buffer, /* file operations needed when we register this driver */ static const struct file_operations ld_usb_fops =3D { .owner =3D THIS_MODULE, - .read =3D ld_usb_read, - .write =3D ld_usb_write, + .read_iter =3D ld_usb_read, + .write_iter =3D ld_usb_write, .open =3D ld_usb_open, .release =3D ld_usb_release, .poll =3D ld_usb_poll, diff --git a/drivers/usb/misc/legousbtower.c b/drivers/usb/misc/legousbtowe= r.c index 379cf01a6e96..57dcb5612734 100644 --- a/drivers/usb/misc/legousbtower.c +++ b/drivers/usb/misc/legousbtower.c @@ -218,8 +218,8 @@ struct lego_usb_tower { =20 =20 /* local function prototypes */ -static ssize_t tower_read(struct file *file, char __user *buffer, size_t c= ount, loff_t *ppos); -static ssize_t tower_write(struct file *file, const char __user *buffer, s= ize_t count, loff_t *ppos); +static ssize_t tower_read(struct kiocb *iocb, struct iov_iter *to); +static ssize_t tower_write(struct kiocb *iocb, struct iov_iter *from); static inline void tower_delete(struct lego_usb_tower *dev); static int tower_open(struct inode *inode, struct file *file); static int tower_release(struct inode *inode, struct file *file); @@ -237,8 +237,8 @@ static void tower_disconnect(struct usb_interface *inte= rface); /* file operations needed when we register this driver */ static const struct file_operations tower_fops =3D { .owner =3D THIS_MODULE, - .read =3D tower_read, - .write =3D tower_write, + .read_iter =3D tower_read, + .write_iter =3D tower_write, .open =3D tower_open, .release =3D tower_release, .poll =3D tower_poll, @@ -489,15 +489,16 @@ static loff_t tower_llseek(struct file *file, loff_t = off, int whence) /* * tower_read */ -static ssize_t tower_read(struct file *file, char __user *buffer, size_t c= ount, loff_t *ppos) +static ssize_t tower_read(struct kiocb *iocb, struct iov_iter *to) { + size_t count =3D iov_iter_count(to); struct lego_usb_tower *dev; size_t bytes_to_read; int i; int retval =3D 0; unsigned long timeout =3D 0; =20 - dev =3D file->private_data; + dev =3D iocb->ki_filp->private_data; =20 /* lock this object */ if (mutex_lock_interruptible(&dev->lock)) { @@ -523,7 +524,7 @@ static ssize_t tower_read(struct file *file, char __use= r *buffer, size_t count, /* wait for data */ tower_check_for_read_packet(dev); while (dev->read_packet_length =3D=3D 0) { - if (file->f_flags & O_NONBLOCK) { + if (iocb->ki_filp->f_flags & O_NONBLOCK) { retval =3D -EAGAIN; goto unlock_exit; } @@ -547,7 +548,7 @@ static ssize_t tower_read(struct file *file, char __use= r *buffer, size_t count, /* copy the data from read_buffer into userspace */ bytes_to_read =3D min(count, dev->read_packet_length); =20 - if (copy_to_user(buffer, dev->read_buffer, bytes_to_read)) { + if (!copy_to_iter_full(dev->read_buffer, bytes_to_read, to)) { retval =3D -EFAULT; goto unlock_exit; } @@ -573,13 +574,14 @@ static ssize_t tower_read(struct file *file, char __u= ser *buffer, size_t count, /* * tower_write */ -static ssize_t tower_write(struct file *file, const char __user *buffer, s= ize_t count, loff_t *ppos) +static ssize_t tower_write(struct kiocb *iocb, struct iov_iter *from) { + size_t count =3D iov_iter_count(from); struct lego_usb_tower *dev; size_t bytes_to_write; int retval =3D 0; =20 - dev =3D file->private_data; + dev =3D iocb->ki_filp->private_data; =20 /* lock this object */ if (mutex_lock_interruptible(&dev->lock)) { @@ -601,7 +603,7 @@ static ssize_t tower_write(struct file *file, const cha= r __user *buffer, size_t =20 /* wait until previous transfer is finished */ while (dev->interrupt_out_busy) { - if (file->f_flags & O_NONBLOCK) { + if (iocb->ki_filp->f_flags & O_NONBLOCK) { retval =3D -EAGAIN; goto unlock_exit; } @@ -616,7 +618,7 @@ static ssize_t tower_write(struct file *file, const cha= r __user *buffer, size_t dev_dbg(&dev->udev->dev, "%s: count =3D %zd, bytes_to_write =3D %zd\n", __func__, count, bytes_to_write); =20 - if (copy_from_user(dev->interrupt_out_buffer, buffer, bytes_to_write)) { + if (!copy_from_iter_full(dev->interrupt_out_buffer, bytes_to_write, from)= ) { retval =3D -EFAULT; goto unlock_exit; } diff --git a/drivers/usb/misc/sisusbvga/sisusbvga.c b/drivers/usb/misc/sisu= sbvga/sisusbvga.c index febf34f9f049..88a94fafe594 100644 --- a/drivers/usb/misc/sisusbvga/sisusbvga.c +++ b/drivers/usb/misc/sisusbvga/sisusbvga.c @@ -2428,6 +2428,7 @@ static ssize_t sisusb_read(struct file *file, char __= user *buffer, =20 return errno ? errno : bytes_read; } +FOPS_READ_ITER_HELPER(sisusb_read); =20 static ssize_t sisusb_write(struct file *file, const char __user *buffer, size_t count, loff_t *ppos) @@ -2572,6 +2573,7 @@ static ssize_t sisusb_write(struct file *file, const = char __user *buffer, =20 return errno ? errno : bytes_written; } +FOPS_WRITE_ITER_HELPER(sisusb_write); =20 static loff_t sisusb_lseek(struct file *file, loff_t offset, int orig) { @@ -2757,8 +2759,8 @@ static const struct file_operations usb_sisusb_fops = =3D { .owner =3D THIS_MODULE, .open =3D sisusb_open, .release =3D sisusb_release, - .read =3D sisusb_read, - .write =3D sisusb_write, + .read_iter =3D sisusb_read_iter, + .write_iter =3D sisusb_write_iter, .llseek =3D sisusb_lseek, #ifdef CONFIG_COMPAT .compat_ioctl =3D sisusb_compat_ioctl, diff --git a/drivers/usb/misc/usblcd.c b/drivers/usb/misc/usblcd.c index bb546f624a45..8d826e648b84 100644 --- a/drivers/usb/misc/usblcd.c +++ b/drivers/usb/misc/usblcd.c @@ -121,14 +121,14 @@ static int lcd_release(struct inode *inode, struct fi= le *file) return 0; } =20 -static ssize_t lcd_read(struct file *file, char __user * buffer, - size_t count, loff_t *ppos) +static ssize_t lcd_read(struct kiocb *iocb, struct iov_iter *to) { + size_t count =3D iov_iter_count(to); struct usb_lcd *dev; int retval =3D 0; int bytes_read; =20 - dev =3D file->private_data; + dev =3D iocb->ki_filp->private_data; =20 down_read(&dev->io_rwsem); =20 @@ -147,7 +147,7 @@ static ssize_t lcd_read(struct file *file, char __user = * buffer, =20 /* if the read was successful, copy the data to userspace */ if (!retval) { - if (copy_to_user(buffer, dev->bulk_in_buffer, bytes_read)) + if (!copy_to_iter_full(dev->bulk_in_buffer, bytes_read, to)) retval =3D -EFAULT; else retval =3D bytes_read; @@ -214,15 +214,15 @@ static void lcd_write_bulk_callback(struct urb *urb) up(&dev->limit_sem); } =20 -static ssize_t lcd_write(struct file *file, const char __user * user_buffe= r, - size_t count, loff_t *ppos) +static ssize_t lcd_write(struct kiocb *iocb, struct iov_iter *from) { + size_t count =3D iov_iter_count(from); struct usb_lcd *dev; int retval =3D 0, r; struct urb *urb =3D NULL; char *buf =3D NULL; =20 - dev =3D file->private_data; + dev =3D iocb->ki_filp->private_data; =20 /* verify that we actually have some data to write */ if (count =3D=3D 0) @@ -253,7 +253,7 @@ static ssize_t lcd_write(struct file *file, const char = __user * user_buffer, goto error; } =20 - if (copy_from_user(buf, user_buffer, count)) { + if (!copy_from_iter_full(buf, count, from)) { retval =3D -EFAULT; goto error; } @@ -296,8 +296,8 @@ static ssize_t lcd_write(struct file *file, const char = __user * user_buffer, =20 static const struct file_operations lcd_fops =3D { .owner =3D THIS_MODULE, - .read =3D lcd_read, - .write =3D lcd_write, + .read_iter =3D lcd_read, + .write_iter =3D lcd_write, .open =3D lcd_open, .unlocked_ioctl =3D lcd_ioctl, .release =3D lcd_release, diff --git a/drivers/usb/misc/yurex.c b/drivers/usb/misc/yurex.c index 9a0649d23693..b3dd24aeae23 100644 --- a/drivers/usb/misc/yurex.c +++ b/drivers/usb/misc/yurex.c @@ -398,15 +398,14 @@ static int yurex_release(struct inode *inode, struct = file *file) return 0; } =20 -static ssize_t yurex_read(struct file *file, char __user *buffer, size_t c= ount, - loff_t *ppos) +static ssize_t yurex_read(struct kiocb *iocb, struct iov_iter *to) { struct usb_yurex *dev; int len =3D 0; char in_buffer[MAX_S64_STRLEN]; unsigned long flags; =20 - dev =3D file->private_data; + dev =3D iocb->ki_filp->private_data; =20 mutex_lock(&dev->io_mutex); if (dev->disconnected) { /* already disconnected */ @@ -424,11 +423,10 @@ static ssize_t yurex_read(struct file *file, char __u= ser *buffer, size_t count, spin_unlock_irqrestore(&dev->lock, flags); mutex_unlock(&dev->io_mutex); =20 - return simple_read_from_buffer(buffer, count, ppos, in_buffer, len); + return simple_copy_to_iter(in_buffer, &iocb->ki_pos, len, to); } =20 -static ssize_t yurex_write(struct file *file, const char __user *user_buff= er, - size_t count, loff_t *ppos) +static ssize_t yurex_write(struct kiocb *iocb, struct iov_iter *from) { struct usb_yurex *dev; int i, set =3D 0, retval =3D 0; @@ -436,10 +434,11 @@ static ssize_t yurex_write(struct file *file, const c= har __user *user_buffer, char *data =3D buffer; unsigned long long c, c2 =3D 0; signed long timeout =3D 0; + size_t count =3D iov_iter_count(from); DEFINE_WAIT(wait); =20 count =3D min(sizeof(buffer) - 1, count); - dev =3D file->private_data; + dev =3D iocb->ki_filp->private_data; =20 /* verify that we actually have some data to write */ if (count =3D=3D 0) @@ -452,7 +451,7 @@ static ssize_t yurex_write(struct file *file, const cha= r __user *user_buffer, goto error; } =20 - if (copy_from_user(buffer, user_buffer, count)) { + if (!copy_from_iter_full(buffer, count, from)) { mutex_unlock(&dev->io_mutex); retval =3D -EFAULT; goto error; @@ -521,8 +520,8 @@ static ssize_t yurex_write(struct file *file, const cha= r __user *user_buffer, =20 static const struct file_operations yurex_fops =3D { .owner =3D THIS_MODULE, - .read =3D yurex_read, - .write =3D yurex_write, + .read_iter =3D yurex_read, + .write_iter =3D yurex_write, .open =3D yurex_open, .release =3D yurex_release, .fasync =3D yurex_fasync, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f47.google.com (mail-io1-f47.google.com [209.85.166.47]) (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 818B81C9ED3 for ; Thu, 11 Apr 2024 15:36:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849787; cv=none; b=pugJSeLLfj3XikUFzaGsghCYZv7qWe3jx/TFrfcwTb2zvD5vsbaQMa1VT9Nksa1zakKjyhMQ6OseE1qFtgNQZpAVSRkX5Z5Hu/U2UoNbKLpRxbFkBQwij6uj/HaTpM0Ti159/HXuoQdHrePmWHF/7y2wAmRH6cPQc1geiwCscyo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849787; c=relaxed/simple; bh=NVRs4dggM+Epm+8AHAcTeyE4WoLIT+cCoaaQM7m768Y=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=iiRIWWPPy8jU00PZgptrNgzXIfbzYkoYka8kCRPHKPzUbMTDfyakR/aqlahqZrXUjXKR/4Hm1Igrh3xm6cxgKNBxLiDyg03mf5zZdXoOpPuSAc4wx+vMC+p/0z3NgQhnjA5XhnZBaxgJQUO2owt79f1gu8RX28VMBG4u8kGfciE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=udHddoX/; arc=none smtp.client-ip=209.85.166.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="udHddoX/" Received: by mail-io1-f47.google.com with SMTP id ca18e2360f4ac-7d6812b37a6so8952339f.0 for ; Thu, 11 Apr 2024 08:36:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849785; x=1713454585; 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=9m4dGsh4a7mpzDXDOdvreeKb63yVkSfsQX8D+D5oolY=; b=udHddoX/+29UqlxTivy0sveuWnXCMsNVDX3ALbQk4wHQcE13PTLv7pLN39tTwb3XJS NTuvINK47LPhsqcUr6pWRs8+BVDfntOF+XCnpF7/aD9BOv5MxqFg9Ubcv09c5oV0vQZH cmRwcYlFSTPybx3vS912R2tccruSgsOtLvxBy2vqVK2k9f3vvXSBHiiuoV+7Sn2RVxIP FKQH1mnm959XDEScXljfKpuaiEuh1IgrcYI05JkHITCmj+RbHiQj0qmdGhrCfMxgWllU Gzt7XMUzfLf7mrNTMiJ3cQD4lPVrp/1Ig2J0wb0yT4vy254gzq9gxlokAUAFtIXUlXQn 9iOA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849785; x=1713454585; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=9m4dGsh4a7mpzDXDOdvreeKb63yVkSfsQX8D+D5oolY=; b=pi/dhYtqS+0iQvsTnN/Xx2q+UXI5cTr8wRW4FBon+BXMnwcbJYVJ9FoDiS2rEkG5WM lTSpYxhISk4vfpiInAU+nRw4Qy1RSTVtmSmX2FqZrkJTSpYLYvUtFONd+ACNlO0PBto0 ZKl6Sgx8xz6omGByMbF506vC4mFHyHPj1af7+hZOKupyL3g7UAGgnCBlrsVWgKQiqnct /NSEkOr+VhPHasv+SXIPMlSin3mkuqyI4+R8zvoLZiIoBgaS5cCLNVtn7jw8qYeYljrO ext9fn2PgBP8xrJ90Pk3Ty/35OPtwX4EOnOCpCGc3YDgd38v+LpMTDLLX0Q96w/EM/8p Vtxg== X-Gm-Message-State: AOJu0YzNLZWDQsTiC81ELaSDGjo3eQJ5YEyMwv2mvQP6al14N3FSUIbg YkM5ceSPRUf2a2KELdum3KEZAnlamdmcYHP+0j6glUt0rlSU7oSYsuhrdrDUqyUf55ih5Or7aWY P X-Google-Smtp-Source: AGHT+IFTfwhPk7/eXTPZUfgSoFQ8V0ilaiYLiDFM4QN9DUzhSCgLtuXioVlaxFiutxkib6gCDTbyuQ== X-Received: by 2002:a05:6602:21d7:b0:7d6:9ddf:5095 with SMTP id c23-20020a05660221d700b007d69ddf5095mr16493ioc.1.1712849785245; Thu, 11 Apr 2024 08:36:25 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.36.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:36:24 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 169/437] usb: mon: convert to read/write iterators Date: Thu, 11 Apr 2024 09:15:09 -0600 Message-ID: <20240411153126.16201-170-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/usb/mon/mon_bin.c | 3 ++- drivers/usb/mon/mon_stat.c | 9 ++++----- drivers/usb/mon/mon_text.c | 6 ++++-- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/drivers/usb/mon/mon_bin.c b/drivers/usb/mon/mon_bin.c index 4e30de4db1c0..af88dd18eafe 100644 --- a/drivers/usb/mon/mon_bin.c +++ b/drivers/usb/mon/mon_bin.c @@ -867,6 +867,7 @@ static ssize_t mon_bin_read(struct file *file, char __u= ser *buf, mutex_unlock(&rp->fetch_lock); return done; } +FOPS_READ_ITER_HELPER(mon_bin_read); =20 /* * Remove at most nevents from chunked buffer. @@ -1290,7 +1291,7 @@ static const struct file_operations mon_fops_binary = =3D { .owner =3D THIS_MODULE, .open =3D mon_bin_open, .llseek =3D no_llseek, - .read =3D mon_bin_read, + .read_iter =3D mon_bin_read_iter, /* .write =3D mon_text_write, */ .poll =3D mon_bin_poll, .unlocked_ioctl =3D mon_bin_ioctl, diff --git a/drivers/usb/mon/mon_stat.c b/drivers/usb/mon/mon_stat.c index 3c23805ab1a4..e13a81ade7cf 100644 --- a/drivers/usb/mon/mon_stat.c +++ b/drivers/usb/mon/mon_stat.c @@ -43,12 +43,11 @@ static int mon_stat_open(struct inode *inode, struct fi= le *file) return 0; } =20 -static ssize_t mon_stat_read(struct file *file, char __user *buf, - size_t nbytes, loff_t *ppos) +static ssize_t mon_stat_read(struct kiocb *iocb, struct iov_iter *to) { - struct snap *sp =3D file->private_data; + struct snap *sp =3D iocb->ki_filp->private_data; =20 - return simple_read_from_buffer(buf, nbytes, ppos, sp->str, sp->slen); + return simple_copy_to_iter(sp->str, &iocb->ki_pos, sp->slen, to); } =20 static int mon_stat_release(struct inode *inode, struct file *file) @@ -63,7 +62,7 @@ const struct file_operations mon_fops_stat =3D { .owner =3D THIS_MODULE, .open =3D mon_stat_open, .llseek =3D no_llseek, - .read =3D mon_stat_read, + .read_iter =3D mon_stat_read, /* .write =3D mon_stat_write, */ /* .poll =3D mon_stat_poll, */ /* .unlocked_ioctl =3D mon_stat_ioctl, */ diff --git a/drivers/usb/mon/mon_text.c b/drivers/usb/mon/mon_text.c index 2fe9b95bac1d..ec50a0e23117 100644 --- a/drivers/usb/mon/mon_text.c +++ b/drivers/usb/mon/mon_text.c @@ -428,6 +428,7 @@ static ssize_t mon_text_read_t(struct file *file, char = __user *buf, mutex_unlock(&rp->printf_lock); return ret; } +FOPS_READ_ITER_HELPER(mon_text_read_t); =20 /* ppos is not advanced since the llseek operation is not permitted. */ static ssize_t mon_text_read_u(struct file *file, char __user *buf, @@ -476,6 +477,7 @@ static ssize_t mon_text_read_u(struct file *file, char = __user *buf, mutex_unlock(&rp->printf_lock); return ret; } +FOPS_READ_ITER_HELPER(mon_text_read_u); =20 static struct mon_event_text *mon_text_read_wait(struct mon_reader_text *r= p, struct file *file) @@ -686,7 +688,7 @@ static const struct file_operations mon_fops_text_t =3D= { .owner =3D THIS_MODULE, .open =3D mon_text_open, .llseek =3D no_llseek, - .read =3D mon_text_read_t, + .read_iter =3D mon_text_read_t_iter, .release =3D mon_text_release, }; =20 @@ -694,7 +696,7 @@ static const struct file_operations mon_fops_text_u =3D= { .owner =3D THIS_MODULE, .open =3D mon_text_open, .llseek =3D no_llseek, - .read =3D mon_text_read_u, + .read_iter =3D mon_text_read_u_iter, .release =3D mon_text_release, }; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f42.google.com (mail-io1-f42.google.com [209.85.166.42]) (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 63F711CB30E for ; Thu, 11 Apr 2024 15:36:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849789; cv=none; b=l7i6hQd1Ai6j9MGQ68Lbu81HZsZ5hGoXpByeSHjK2lq6a14gdNcoQNfb0oCNYfWLEUuOcOqxVPx5NK1s4dko+lGcpB6pAzqrD9gWBSMRwOX99xpv02Kk4xMStpmD+s8EhDAjWXsCYN3AEH+nfGlpl+bShaIOm6LwtQfi6Hizm1Y= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849789; c=relaxed/simple; bh=guuW7TgbDIQpuCOftV0Fuj4SBIiQpBazY0xbSs421/4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=AG4zDhLfu6S/tN+/BrYrM24ci8x23y2UYT7JZh9YlpsIzGCH/KIaHphsGpPwS5Qwmry1WxY2XRnHTjlxQSPRndH+2zlVn+/4WmzxbV19USZS+UC7aqbAeSdbu6MuUN/4+qpvtgDbsbhZMJu3Jxeg2c1cpkijl4qNdALTbgVEhsY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=hfJkVsVW; arc=none smtp.client-ip=209.85.166.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="hfJkVsVW" Received: by mail-io1-f42.google.com with SMTP id ca18e2360f4ac-7c8e4c0412dso69573839f.1 for ; Thu, 11 Apr 2024 08:36:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849787; x=1713454587; 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=YLj3v5JToNx3nijiVkgXX/l/0GFAghw4iIT2lUEkeYc=; b=hfJkVsVWB1f22JGAm2CkAHPEr8c7o8zvwL/A8g2z50Bmc+fGLbe7apHotJiMqtpeXo BCgozHdVsdPFxZq+ENbq6tuRzdQUtFN5wQR1h9jbI1Zm8magrvbBTBrbpUaiBZaoVnuV 9BMranHlvVkTIh/6+M1TKNx9h598M6Mt3bBtGzNItPJ5nE6sMjExZUMafXDU0WJKS4IG AFjKsMV+72xJQHERGRmyIGAFNuSfncWxVYRh37JbWrU80dCyj4gDpY0nQitOPYQktDhJ I1em7hOpo2qXxRaqpCLb0ZsN/KCL8sLIgidZVlNny3CWI3g5pq5y8vNZ148tR+zk3eGh ybrw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849787; x=1713454587; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=YLj3v5JToNx3nijiVkgXX/l/0GFAghw4iIT2lUEkeYc=; b=mgc/ZsFhbglAASCyMDN26eeHke+Km27L85Jr9b5Mv5O7SqyegsSZNuoaPJ/k+oXL6m nz3RzeaZiHgfMAuAbxl/cyaCv9jCwCcWf/gPl8a9zDsfElLVKf0tCv29RMF0AcPyjEHO PbARedo2/Z1UvOn0HCVWXImawpqzwMQFPPtJJDGZqQzEwHPZUrIS4/LPlef6bp75SLLu BtAgQWqC6HFbf9NO4hiFThaSAcRPRROYR0EScD9HyFpkmvl0WfbDmLPpUl4+0EtEQbG5 deaLTbt0wo6aI3HXdSaa5tsIyy1azW6EEHlbZiRZNitZsIUX8HBHC4POWKLIfzjvS7Gx LFjg== X-Gm-Message-State: AOJu0YyLfX08Zkgp/FGblWoGX5KNNxd51fO1vXWD1fLfxTUrcmNf5+95 IjmsWIrVX8PkkRld+Zcsot8vyA6Gkjda8FGVuNLw1B4PAmvn5sTAZUpBYD/ShRcppYLo3vq5ej3 a X-Google-Smtp-Source: AGHT+IHSa6415qB75QXv1hj7N42foCQyvwRp1qwmFtqINRrNAxfIKP6yL4WCw63eIZKSwLW0JEPG/A== X-Received: by 2002:a6b:7b05:0:b0:7d6:60dc:bc8e with SMTP id l5-20020a6b7b05000000b007d660dcbc8emr194722iop.1.1712849787037; Thu, 11 Apr 2024 08:36:27 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.36.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:36:25 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 170/437] usb: mtu3: convert to read/write iterators Date: Thu, 11 Apr 2024 09:15:10 -0600 Message-ID: <20240411153126.16201-171-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/usb/mtu3/mtu3_debugfs.c | 40 ++++++++++++++++----------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/drivers/usb/mtu3/mtu3_debugfs.c b/drivers/usb/mtu3/mtu3_debugf= s.c index f0de99858353..da73f486bfea 100644 --- a/drivers/usb/mtu3/mtu3_debugfs.c +++ b/drivers/usb/mtu3/mtu3_debugfs.c @@ -272,7 +272,7 @@ static int mtu3_ep_open(struct inode *inode, struct fil= e *file) =20 static const struct file_operations mtu3_ep_fops =3D { .open =3D mtu3_ep_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D single_release, }; @@ -311,18 +311,18 @@ static int mtu3_probe_open(struct inode *inode, struc= t file *file) return single_open(file, mtu3_probe_show, inode->i_private); } =20 -static ssize_t mtu3_probe_write(struct file *file, const char __user *ubuf, - size_t count, loff_t *ppos) +static ssize_t mtu3_probe_write(struct kiocb *iocb, struct iov_iter *from) { - const char *file_name =3D file_dentry(file)->d_iname; - struct seq_file *sf =3D file->private_data; + const char *file_name =3D file_dentry(iocb->ki_filp)->d_iname; + struct seq_file *sf =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); struct mtu3 *mtu =3D sf->private; const struct debugfs_reg32 *regs; char buf[32]; u32 val; int i; =20 - if (copy_from_user(&buf, ubuf, min_t(size_t, sizeof(buf) - 1, count))) + if (!copy_from_iter_full(&buf, min_t(size_t, sizeof(buf) - 1, count), fro= m)) return -EFAULT; =20 if (kstrtou32(buf, 0, &val)) @@ -341,8 +341,8 @@ static ssize_t mtu3_probe_write(struct file *file, cons= t char __user *ubuf, =20 static const struct file_operations mtu3_probe_fops =3D { .open =3D mtu3_probe_open, - .write =3D mtu3_probe_write, - .read =3D seq_read, + .write_iter =3D mtu3_probe_write, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D single_release, }; @@ -443,14 +443,14 @@ static int ssusb_mode_open(struct inode *inode, struc= t file *file) return single_open(file, ssusb_mode_show, inode->i_private); } =20 -static ssize_t ssusb_mode_write(struct file *file, const char __user *ubuf, - size_t count, loff_t *ppos) +static ssize_t ssusb_mode_write(struct kiocb *iocb, struct iov_iter *from) { - struct seq_file *sf =3D file->private_data; + struct seq_file *sf =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); struct ssusb_mtk *ssusb =3D sf->private; char buf[16]; =20 - if (copy_from_user(&buf, ubuf, min_t(size_t, sizeof(buf) - 1, count))) + if (!copy_from_iter_full(&buf, min_t(size_t, sizeof(buf) - 1, count), fro= m)) return -EFAULT; =20 if (!strncmp(buf, "host", 4) && !ssusb->is_host) { @@ -467,8 +467,8 @@ static ssize_t ssusb_mode_write(struct file *file, cons= t char __user *ubuf, =20 static const struct file_operations ssusb_mode_fops =3D { .open =3D ssusb_mode_open, - .write =3D ssusb_mode_write, - .read =3D seq_read, + .write_iter =3D ssusb_mode_write, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D single_release, }; @@ -489,16 +489,16 @@ static int ssusb_vbus_open(struct inode *inode, struc= t file *file) return single_open(file, ssusb_vbus_show, inode->i_private); } =20 -static ssize_t ssusb_vbus_write(struct file *file, const char __user *ubuf, - size_t count, loff_t *ppos) +static ssize_t ssusb_vbus_write(struct kiocb *iocb, struct iov_iter *from) { - struct seq_file *sf =3D file->private_data; + struct seq_file *sf =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); struct ssusb_mtk *ssusb =3D sf->private; struct otg_switch_mtk *otg_sx =3D &ssusb->otg_switch; char buf[16]; bool enable; =20 - if (copy_from_user(&buf, ubuf, min_t(size_t, sizeof(buf) - 1, count))) + if (!copy_from_iter_full(&buf, min_t(size_t, sizeof(buf) - 1, count), fro= m)) return -EFAULT; =20 if (kstrtobool(buf, &enable)) { @@ -513,8 +513,8 @@ static ssize_t ssusb_vbus_write(struct file *file, cons= t char __user *ubuf, =20 static const struct file_operations ssusb_vbus_fops =3D { .open =3D ssusb_vbus_open, - .write =3D ssusb_vbus_write, - .read =3D seq_read, + .write_iter =3D ssusb_vbus_write, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D single_release, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-il1-f172.google.com (mail-il1-f172.google.com [209.85.166.172]) (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 0B44A1CB32D for ; Thu, 11 Apr 2024 15:36:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.172 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849791; cv=none; b=X1pibssqzykZEyI9slv71/k9//rG+Txe49piPkhHVFHMc53FFluNgtkSIHDEwBhYxG5nNByg8bM74PBodIAHtBAAwxmABGQY8rZf7IyFyc4FkvQYiaVQswP8zJz2TbXnq0d2TnHFOWr5AwF5hftdKPqlBiXycD0TXf2DY1iJM5k= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849791; c=relaxed/simple; bh=yAlklZvm5IMk94Jc/uHUPXnqrGtZbsp5ztM657QTPcc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=qSL0s8V27XZuLajp7V9y9cNrdFgEjEp5lhbkaauN9hnC3YaIp+YjjBhEZtgSPk7hB7nRo/QFbYUa/76/D9OkYrbaadLSf+EdbReIJZ+orhXD6/O2EMiNJpL/EduO7tcom5g3ZE4IVb6b4GcpSYgrgYQ2WfVr6fJ9krFSzy+CZ30= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=CHWC4cpG; arc=none smtp.client-ip=209.85.166.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="CHWC4cpG" Received: by mail-il1-f172.google.com with SMTP id e9e14a558f8ab-36a224d7414so183625ab.1 for ; Thu, 11 Apr 2024 08:36:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849789; x=1713454589; 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=+/G2gJus1LipzD215iHOXz0vCf2GXt4cDzWEUVHBzac=; b=CHWC4cpGM6kCnas0d/OIPwbr/oeqxSqZDzmavxPaWoCDgrRp0ubT/kLx3zjhAxIIEN xo8hbp1ZjAvXdptVcfBZb0NbFsdRgMvK+OlPAAj8O8aGfHyq3bxQ1vm4A0VSysjRqOrQ U7O8IUYRQgfwqk2Mhh5QRzrzvkW9ulQel7kw1EBsHgLhv4u4PpRnPlYPVl20WfKWzFsk ELr1khblhG5gX85bIwQgnEXdcNivhTy7zFYVbEcozfVWFrLarCjLMcAQoqnU4GZKH+sq rHi9moSHViW4v3AxAlTeFOmc1mk+4Czq4NmiIQ+zjPo9ARF1pDHl6QgKKE+7bUN6QIHB dB3Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849789; x=1713454589; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=+/G2gJus1LipzD215iHOXz0vCf2GXt4cDzWEUVHBzac=; b=OirEOqSni7j4ygz+jreLh1HP1QSIhzZbbPjn8bnmcIzk745m3RoYbPKuIpzBLleVJl XfI0Ae+jRn3Bx2Ou9fWrceBrSj1kDgdoUp8mcCicEwNAzEM9rf5Wcy5iIswe3m5UOqXv 05l3ho/I4UPB1/6S4cXrO7m9arJ42Xtt2o9KU6wM9dD9LLIAld+Dg/16Ppre6KLiHSUP 2Mv6xT4Bf/XLAp1w/ZFfowHG/50Ha6WDRk5xpedTgUgi8RYvucpL93MaDXH5q2EQojH9 3iXj4nas1Y+mgUeF6/jyEH9SkUK5lP8bMRqA2wDfSk0QZMP+awl3/xHfdyesVaOK7NKX Ld3g== X-Gm-Message-State: AOJu0YwUVTKNBcTjy7BG+Spjt8HpW6ijZyujP5CDsHooegdcKg4PIDWK UjWYORqsSRbCcs39AVurL8c/XYP9nlBWXa5SfrKIn/hCOy8eyktS00jVGja8Z5wiqsS9u1b4JO4 L X-Google-Smtp-Source: AGHT+IHe1W1ut2MKfhQ2cMLuEkp6FSV1gVB5sVkdoQo/b4IucPuAfmgD35JFXZCz8/NfHkRq1RNz5g== X-Received: by 2002:a6b:4e14:0:b0:7d6:631d:7b0 with SMTP id c20-20020a6b4e14000000b007d6631d07b0mr187701iob.1.1712849788913; Thu, 11 Apr 2024 08:36:28 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.36.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:36:27 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 171/437] usb: musb: convert to read/write iterators Date: Thu, 11 Apr 2024 09:15:11 -0600 Message-ID: <20240411153126.16201-172-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/usb/musb/musb_debugfs.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/drivers/usb/musb/musb_debugfs.c b/drivers/usb/musb/musb_debugf= s.c index 2d623284edf6..7123057d12f7 100644 --- a/drivers/usb/musb/musb_debugfs.c +++ b/drivers/usb/musb/musb_debugfs.c @@ -160,17 +160,17 @@ static int musb_test_mode_open(struct inode *inode, s= truct file *file) return single_open(file, musb_test_mode_show, inode->i_private); } =20 -static ssize_t musb_test_mode_write(struct file *file, - const char __user *ubuf, size_t count, loff_t *ppos) +static ssize_t musb_test_mode_write(struct kiocb *iocb, struct iov_iter *f= rom) { - struct seq_file *s =3D file->private_data; + struct seq_file *s =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); struct musb *musb =3D s->private; u8 test; char buf[24]; =20 memset(buf, 0x00, sizeof(buf)); =20 - if (copy_from_user(buf, ubuf, min_t(size_t, sizeof(buf) - 1, count))) + if (!copy_from_iter_full(buf, min_t(size_t, sizeof(buf) - 1, count), from= )) return -EFAULT; =20 pm_runtime_get_sync(musb->controller); @@ -223,8 +223,8 @@ static ssize_t musb_test_mode_write(struct file *file, =20 static const struct file_operations musb_test_mode_fops =3D { .open =3D musb_test_mode_open, - .write =3D musb_test_mode_write, - .read =3D seq_read, + .write_iter =3D musb_test_mode_write, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D single_release, }; @@ -260,17 +260,17 @@ static int musb_softconnect_open(struct inode *inode,= struct file *file) return single_open(file, musb_softconnect_show, inode->i_private); } =20 -static ssize_t musb_softconnect_write(struct file *file, - const char __user *ubuf, size_t count, loff_t *ppos) +static ssize_t musb_softconnect_write(struct kiocb *iocb, struct iov_iter = *from) { - struct seq_file *s =3D file->private_data; + struct seq_file *s =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); struct musb *musb =3D s->private; char buf[2]; u8 reg; =20 memset(buf, 0x00, sizeof(buf)); =20 - if (copy_from_user(&buf, ubuf, min_t(size_t, sizeof(buf) - 1, count))) + if (!copy_from_iter_full(&buf, min_t(size_t, sizeof(buf) - 1, count), fro= m)) return -EFAULT; =20 pm_runtime_get_sync(musb->controller); @@ -315,8 +315,8 @@ static ssize_t musb_softconnect_write(struct file *file, */ static const struct file_operations musb_softconnect_fops =3D { .open =3D musb_softconnect_open, - .write =3D musb_softconnect_write, - .read =3D seq_read, + .write_iter =3D musb_softconnect_write, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D single_release, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f41.google.com (mail-io1-f41.google.com [209.85.166.41]) (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 82D7620010A for ; Thu, 11 Apr 2024 15:36:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849792; cv=none; b=TS3Sz8n0/1jJiGvYrACiBjl1pwy6rMu8Krngjld+ns8KkC30kUnztd/+tOs2f36EWgJxqdVyVlV+EgheED61JvdqDDwAKWnLRrK2y91ETiMHLDxRSuzhHbG3nj61EdkM2dNoCQHJg1qZl9mf71l1ZT4M+Qzzy09s1f6rviaupLQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849792; c=relaxed/simple; bh=cUN4vPgeh8WHEDDgOp1Um0NiSnS/1lT8hVPX847W66g=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Kxeyk5tSaI9UtwgZb7QdJtAWQ3bW/countGNm9A8UTS4E6Sx1Yxdr9o6V6TbkmYqxOf5NxMxJWK5sR+BibZrjPX0nzLjMboRfHGe+M85D2hGL6Wa0Y6zRmW72JSKhp1VYjV+Zo57wdDn3aYAvIFYlACEZePVIZyt+LZeUM1qDao= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=U2k3S9j3; arc=none smtp.client-ip=209.85.166.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="U2k3S9j3" Received: by mail-io1-f41.google.com with SMTP id ca18e2360f4ac-7d6112ba6baso58081739f.1 for ; Thu, 11 Apr 2024 08:36:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849790; x=1713454590; 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=k1n7x/bP1FzpoPd9w3gudZwD48yNX49oAPai9XETXG0=; b=U2k3S9j3bweM4ON/sC3k+4Zy+nn3ITAQMLXm8XfvANt0JIa6q2Q2GH2mRx/eSV2uEi cfgzpnGzfQA5AFRZZXpNS0wOcN77cM0xu9GKwrpJ97YcuUZa2rN6eINp0gcHxDAhyRuS W0odti0kYvk4D3OSu/TSXu1kAqpspxfQzWRRhCU3UzOOX82jjmo4/rOZPttXI0lRnYiq RHt6MVsXWGG6YaymYlVYmZZKCMKEexGPtrkBBd54ncSwV9iX35JmeyBeEDDSrhcDRrmB SULdr0eSggX1ITH7P75OKXC93pVsL5lGjVmcq9re8PBmVrMWR5lH8AI57MALtNOzl9Xu KvmA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849790; x=1713454590; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=k1n7x/bP1FzpoPd9w3gudZwD48yNX49oAPai9XETXG0=; b=aBBYoqmlXmMs9dOuWF1boqKL9gG3JW64ReGPYiA+uaCjdedaFC0pncnGdHA+u1ne2P ZORYCDU1jKZOQszQz/GsJ+s24J+7odC9uYvnJuOwNvKmYi8IakRJf/yvvV+NflQ1qfL5 TZ6RikCjGwueinO3XhgPsQZsoKGgmN+cxZ7sNBaPfHQZ0BrFiGGWNxeShPDUKbXZ4qus D2p16TFr40M+w8zKP/N0kf40Bb27boIj7D6PnuTmRWBRTswMUK1G/9/qhUbZm8t/gtx8 5X7TTN5d8Am0kC8IDiSMy77UEdJGWO79cl/k3oLNI5FaKfggIESGLq2KsWKC2oqJz3jB A02w== X-Gm-Message-State: AOJu0YzRsmCIdzeGIyFtC3QkfbxuLWSFiyFXbgilSqkFQtlg0NpW0Rc3 uACjroKcvXfsA3XE0owB5mDwtbMNoqBJ1JGh6vEoAI6JzKkFy830fwCEjFS2EpXMKWXjuWcuanN J X-Google-Smtp-Source: AGHT+IE2+eglmMAHovhJa7gAQn430CIIcXkKY1JhjgiSSTztp1OyAEdYdNkCgTv1MnfihD1SdZtFGw== X-Received: by 2002:a05:6602:38d:b0:7d6:513b:254 with SMTP id f13-20020a056602038d00b007d6513b0254mr185709iov.2.1712849790450; Thu, 11 Apr 2024 08:36:30 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.36.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:36:29 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 172/437] usb: skeleton: convert to read/write iterators Date: Thu, 11 Apr 2024 09:15:12 -0600 Message-ID: <20240411153126.16201-173-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/usb/usb-skeleton.c | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/drivers/usb/usb-skeleton.c b/drivers/usb/usb-skeleton.c index 900a64ad25e4..f039a13382c1 100644 --- a/drivers/usb/usb-skeleton.c +++ b/drivers/usb/usb-skeleton.c @@ -221,14 +221,14 @@ static int skel_do_read_io(struct usb_skel *dev, size= _t count) return rv; } =20 -static ssize_t skel_read(struct file *file, char *buffer, size_t count, - loff_t *ppos) +static ssize_t skel_read(struct kiocb *iocb, struct iov_iter *to) { + size_t count =3D iov_iter_count(to); struct usb_skel *dev; int rv; bool ongoing_io; =20 - dev =3D file->private_data; + dev =3D iocb->ki_filp->private_data; =20 if (!count) return 0; @@ -251,7 +251,7 @@ static ssize_t skel_read(struct file *file, char *buffe= r, size_t count, =20 if (ongoing_io) { /* nonblocking IO shall not wait */ - if (file->f_flags & O_NONBLOCK) { + if (iocb->ki_filp->f_flags & O_NONBLOCK) { rv =3D -EAGAIN; goto exit; } @@ -301,9 +301,9 @@ static ssize_t skel_read(struct file *file, char *buffe= r, size_t count, * chunk tells us how much shall be copied */ =20 - if (copy_to_user(buffer, + if (!copy_to_iter_full( dev->bulk_in_buffer + dev->bulk_in_copied, - chunk)) + chunk, to)) rv =3D -EFAULT; else rv =3D chunk; @@ -356,16 +356,16 @@ static void skel_write_bulk_callback(struct urb *urb) up(&dev->limit_sem); } =20 -static ssize_t skel_write(struct file *file, const char *user_buffer, - size_t count, loff_t *ppos) +static ssize_t skel_write(struct kiocb *iocb, struct iov_iter *from) { + size_t count =3D iov_iter_count(from); struct usb_skel *dev; int retval =3D 0; struct urb *urb =3D NULL; char *buf =3D NULL; size_t writesize =3D min_t(size_t, count, MAX_TRANSFER); =20 - dev =3D file->private_data; + dev =3D iocb->ki_filp->private_data; =20 /* verify that we actually have some data to write */ if (count =3D=3D 0) @@ -375,7 +375,7 @@ static ssize_t skel_write(struct file *file, const char= *user_buffer, * limit the number of URBs in flight to stop a user from using up all * RAM */ - if (!(file->f_flags & O_NONBLOCK)) { + if (!(iocb->ki_filp->f_flags & O_NONBLOCK)) { if (down_interruptible(&dev->limit_sem)) { retval =3D -ERESTARTSYS; goto exit; @@ -413,7 +413,7 @@ static ssize_t skel_write(struct file *file, const char= *user_buffer, goto error; } =20 - if (copy_from_user(buf, user_buffer, writesize)) { + if (!copy_from_iter_full(buf, writesize, from)) { retval =3D -EFAULT; goto error; } @@ -467,8 +467,8 @@ static ssize_t skel_write(struct file *file, const char= *user_buffer, =20 static const struct file_operations skel_fops =3D { .owner =3D THIS_MODULE, - .read =3D skel_read, - .write =3D skel_write, + .read_iter =3D skel_read, + .write_iter =3D skel_write, .open =3D skel_open, .release =3D skel_release, .flush =3D skel_flush, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f51.google.com (mail-io1-f51.google.com [209.85.166.51]) (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 3801C200137 for ; Thu, 11 Apr 2024 15:36:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849794; cv=none; b=ASg+zrT3y5bcwxSgQFoJP1ccmsk+XzTXjbm8DHm5hWoJDcRjl7Nwpyn+1HkS9h/8Je/DO2FOqz37bWg79GSKnUXMntodvMlSyJzyB4mtfHkeHaf+DK+/2caL+DayAJhEgtpO2KsU9wCvegcirjSNzFVbSiDsuarhzb2r5Y4FXmQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849794; c=relaxed/simple; bh=HF6LMEYfoWSFQPO3QyPGLT0EkvxS9ec/1TTiEkjzb2k=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=L8u8ptv95REoRuOpHpCRaV35YwAiu7qFRNetImxsTxhiZq/6jPZGMlIg5/Emaq2M/wHtPVJ8Ge1jou3OThm9qaxCgG7oRb02nFPW+BcR2iIuCAnp6uigfoOdTNxt/9XEH8/9XFIutQTmB9aZj2qN/W2uYcdFW/I57zrb2TN5TpQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=YU3GpDXv; arc=none smtp.client-ip=209.85.166.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="YU3GpDXv" Received: by mail-io1-f51.google.com with SMTP id ca18e2360f4ac-7cc0e831e11so170522839f.1 for ; Thu, 11 Apr 2024 08:36:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849792; x=1713454592; 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=uL15F0ClScthbUxssz2YLqWSnBS/ZEF5VqONH3UoJfg=; b=YU3GpDXvpEcIkRe9CwxDLOT3YH8vb0kyqePIf849KdU9UMcuhvG0u5DZbTU8Mt51cf ryzcUuO43tDfYa9FGmPm2wDosBejGbgao7vkcV67Mk1KRn5UpKjYyPCkyVKdPaaGWdJt BuTDKbIHhWPjXsZTEbedUibidjHwmBwbp8k/gw2qTcd1LyALYw2NsHibHfFwEmiumk3y U4OQKcYEOCpkz3kILMMQpbJxd9uVgeuBNRPZeMfqf1oBgSmBbEGHE+Di3Dr9wjw0/k+P TCAeL9ondCVd7BPsAfRt/N6FjoqNw2i+/XtYS9xiS/fDdM/tQCact7GCk0xsQBxDwLX0 LuCw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849792; x=1713454592; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=uL15F0ClScthbUxssz2YLqWSnBS/ZEF5VqONH3UoJfg=; b=hzilUfyuWfvTcOKQU8SJwOBsXDlegWZdybBcQGcwifgYaVNI3dgcXoYZtVHhO/GUjz croD3GVL+0WutYXxd48Pp9jcHAQf2LHUab30L/zvxLXrNdLA7CuwhUXYG+WRLsYn31Cm AoTX13517W3iW0XgG3EeUNWXtJ8hB/ONT3bsnLZj3+07H/NijghmjF83ImBXufI+YLF1 KUB4iv0ix5tG3uGW+wvN5XcHi/8e5SlGvV3rjoO1UxxB993jd6+i8wllRxchVYzaeoyD ANR2w3oAqqNPWbc4sro4YSAF6dnrfvzoFZOkPELrz+cHbUJrmd5pGGyPEsaJRcd4n/uJ HjLg== X-Gm-Message-State: AOJu0Yz5TKDWT7yoFCtzotXUIkhfqw3SEvUaZN6TUzxOrut0BGSi7IWN 3ixU6xJYoud+RnA+4zfg8TWAyw1FpKJV0h4Y/qh5IP1VhGJauDrmNYu9qi/d5TN9u7yptoS1jY4 L X-Google-Smtp-Source: AGHT+IGxhP2M4YXbfxAu/holvWQtdx5By5BvNims6GE9WIbQMRcl5BlNhmF5Tt7LpYrMxu5B5vGdXg== X-Received: by 2002:a5e:9907:0:b0:7d6:751f:192 with SMTP id t7-20020a5e9907000000b007d6751f0192mr181575ioj.2.1712849792035; Thu, 11 Apr 2024 08:36:32 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.36.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:36:30 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 173/437] usb: gadget: atmel_usba_udc: convert to read/write iterators Date: Thu, 11 Apr 2024 09:15:13 -0600 Message-ID: <20240411153126.16201-174-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/usb/gadget/udc/atmel_usba_udc.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/drivers/usb/gadget/udc/atmel_usba_udc.c b/drivers/usb/gadget/u= dc/atmel_usba_udc.c index b76885d78e8a..318e9152f295 100644 --- a/drivers/usb/gadget/udc/atmel_usba_udc.c +++ b/drivers/usb/gadget/udc/atmel_usba_udc.c @@ -122,6 +122,7 @@ static ssize_t queue_dbg_read(struct file *file, char _= _user *buf, =20 return actual; } +FOPS_READ_ITER_HELPER(queue_dbg_read); =20 static int queue_dbg_release(struct inode *inode, struct file *file) { @@ -163,16 +164,14 @@ static int regs_dbg_open(struct inode *inode, struct = file *file) return ret; } =20 -static ssize_t regs_dbg_read(struct file *file, char __user *buf, - size_t nbytes, loff_t *ppos) +static ssize_t regs_dbg_read(struct kiocb *iocb, struct iov_iter *to) { - struct inode *inode =3D file_inode(file); + struct inode *inode =3D file_inode(iocb->ki_filp); int ret; =20 inode_lock(inode); - ret =3D simple_read_from_buffer(buf, nbytes, ppos, - file->private_data, - file_inode(file)->i_size); + ret =3D simple_copy_to_iter(iocb->ki_filp->private_data, &iocb->ki_pos, + file_inode(iocb->ki_filp)->i_size, to); inode_unlock(inode); =20 return ret; @@ -188,7 +187,7 @@ static const struct file_operations queue_dbg_fops =3D { .owner =3D THIS_MODULE, .open =3D queue_dbg_open, .llseek =3D no_llseek, - .read =3D queue_dbg_read, + .read_iter =3D queue_dbg_read_iter, .release =3D queue_dbg_release, }; =20 @@ -196,7 +195,7 @@ static const struct file_operations regs_dbg_fops =3D { .owner =3D THIS_MODULE, .open =3D regs_dbg_open, .llseek =3D generic_file_llseek, - .read =3D regs_dbg_read, + .read_iter =3D regs_dbg_read, .release =3D regs_dbg_release, }; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f52.google.com (mail-io1-f52.google.com [209.85.166.52]) (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 0624C20125C for ; Thu, 11 Apr 2024 15:36:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849796; cv=none; b=UPDShu5FPPmAryEl9iuJi/s3AbLFmtcC4bV7ncNxQ50/kw8i9t4XNe3coBdAwdsQdKvHiCrjbSvAY/69mX7CZn+IjovC0WWGb8AIbn3LGnP9AYrbcSV5JTadYoBEfeOmeK2UL/JUhB+Eb1pXPe1ijIreeOea3sRk5j20VmVUuyw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849796; c=relaxed/simple; bh=QoRZQDp/masRxhA6PCvHdofG0tdjMZX4GzliI7/aVzU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ZMLwe+bjOP210MdOXOVPw+M21F7W8x3qwtiASUGtCSFFAoCV7wWBpj4kseZhmdvxGdIipQzZZyJ0dF4XjYzcNqG7MlMNydWj/M2tOD9PxLV1qA/gA4vJTp5oyercmd41PuJ702eol9D8QF8KKTY7tY8nRkHvwxgBZNFm9QzQaQo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=JqSM9U3T; arc=none smtp.client-ip=209.85.166.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="JqSM9U3T" Received: by mail-io1-f52.google.com with SMTP id ca18e2360f4ac-7c8e4c0412dso69576939f.1 for ; Thu, 11 Apr 2024 08:36:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849794; x=1713454594; 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=4SNTwLx8Jm0YhaQgk0A8+JvzjJXzHU6OQ36V4qG+0l0=; b=JqSM9U3TeoB/614hvrF4NsxHYaXLs2+kGswTsIsUAdoYpbJ+8ZAepVHp5bma/9Fx81 JV+BRTYuQEYHut9fw+ruIlJUrgKKkTDSpkTX1oTe2rgYh1nEkXS6RAQ0A6N8m/v9agXl FDxbvsfX0ZW7K8L7cbWh8ToigZkuGPjo+yK9WtAAbkhGKh2izZW0dqQwiJ6EKmUpy4l8 hi1f0eWrkwSzgWEZN8C6XeiHMOiAUXfVslr3KCxWLjxFIOy8J/79ghdMrSsrdlWvH1Kv obAe5ThFQEi3VcPmWiP7ZSZwCa3g+p7QdqdRM5S8iGrBnkqBlyXANW5yKSzeNutlIt54 K19Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849794; x=1713454594; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=4SNTwLx8Jm0YhaQgk0A8+JvzjJXzHU6OQ36V4qG+0l0=; b=dY3UJ+evrO+QTSOTvCSHmcvyW5k0YxP7z0Kz7sdM3gAXdr0Nw7C9jQQKJexYRniHfj jX4evwoPLc0ab+nPI297FBUqCshF2Idx+7WbDpaPToKtd6Fat4OZW5O4OT7L5Dy3cxsZ y5XduRC6DBFC0ofM4ngqcSHv9Dpoea2MG2iSiRZGhigDXg9Z1YKGT52BAH2JVd/b1GfU WBdNKBXnTq55oLf1rFAlh2w7fyYg3mFv3weCf8jgtt6qGXQPyA8oQxk92FCwj5XkXZB3 V4KlZWKp97M0QhOnub2+dyy46gxcmzV1fRceTcHF8fRGoHZV4SzbW/bAjkeKWu8C7BD6 DIsQ== X-Gm-Message-State: AOJu0Yzc+gD6GE0K0MSK+XzA4+7iF842MDBzFw8FCmsv6YXnyLhi75J1 g7DPqiQ4fLCVrXMEELVwbtrhcFnBiRq3f+BrcKZSjssVHqJFVK+A0UN3iUp1Vw1gRkQlo+2C4RB Q X-Google-Smtp-Source: AGHT+IH6fLz8AbZCt6XOEm4orJmOLiLUM5ysZOxdu1+f4TK7uKUTEUUVa16soaa2QtJanzApO+pDpA== X-Received: by 2002:a6b:7b05:0:b0:7d6:60dc:bc8e with SMTP id l5-20020a6b7b05000000b007d660dcbc8emr194999iop.1.1712849793868; Thu, 11 Apr 2024 08:36:33 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.36.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:36:32 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 174/437] soc: qcom: convert to read/write iterators Date: Thu, 11 Apr 2024 09:15:14 -0600 Message-ID: <20240411153126.16201-175-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/soc/qcom/cmd-db.c | 2 +- drivers/soc/qcom/qcom_aoss.c | 14 ++++++------- drivers/soc/qcom/rmtfs_mem.c | 38 ++++++++++++++++++------------------ drivers/soc/qcom/socinfo.c | 4 ++-- 4 files changed, 29 insertions(+), 29 deletions(-) diff --git a/drivers/soc/qcom/cmd-db.c b/drivers/soc/qcom/cmd-db.c index a5fd68411bed..0589e63fdb0d 100644 --- a/drivers/soc/qcom/cmd-db.c +++ b/drivers/soc/qcom/cmd-db.c @@ -308,7 +308,7 @@ static const struct file_operations cmd_db_debugfs_ops = =3D { #ifdef CONFIG_DEBUG_FS .open =3D open_cmd_db_debugfs, #endif - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D single_release, }; diff --git a/drivers/soc/qcom/qcom_aoss.c b/drivers/soc/qcom/qcom_aoss.c index ca2f6b7629ce..6ce5fdf96432 100644 --- a/drivers/soc/qcom/qcom_aoss.c +++ b/drivers/soc/qcom/qcom_aoss.c @@ -504,11 +504,11 @@ static const struct qmp_debugfs_entry qmp_debugfs_ent= ries[QMP_DEBUGFS_FILES] =3D { { "prevent_ddr_collapse", "{class: ddr_mol, res: ddr, val: %s}", true, "m= ol", "off" }, }; =20 -static ssize_t qmp_debugfs_write(struct file *file, const char __user *use= r_buf, - size_t count, loff_t *pos) +static ssize_t qmp_debugfs_write(struct kiocb *iocb, struct iov_iter *from) { const struct qmp_debugfs_entry *entry =3D NULL; - struct qmp *qmp =3D file->private_data; + struct qmp *qmp =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); char buf[QMP_MSG_LEN]; unsigned int uint_val; const char *str_val; @@ -517,7 +517,7 @@ static ssize_t qmp_debugfs_write(struct file *file, con= st char __user *user_buf, int i; =20 for (i =3D 0; i < ARRAY_SIZE(qmp->debugfs_files); i++) { - if (qmp->debugfs_files[i] =3D=3D file->f_path.dentry) { + if (qmp->debugfs_files[i] =3D=3D iocb->ki_filp->f_path.dentry) { entry =3D &qmp_debugfs_entries[i]; break; } @@ -526,7 +526,7 @@ static ssize_t qmp_debugfs_write(struct file *file, con= st char __user *user_buf, return -EFAULT; =20 if (entry->is_bool) { - ret =3D kstrtobool_from_user(user_buf, count, &bool_val); + ret =3D kstrtobool_from_iter(from, count, &bool_val); if (ret) return ret; =20 @@ -536,7 +536,7 @@ static ssize_t qmp_debugfs_write(struct file *file, con= st char __user *user_buf, if (ret >=3D sizeof(buf)) return -EINVAL; } else { - ret =3D kstrtou32_from_user(user_buf, count, 0, &uint_val); + ret =3D kstrtou32_from_iter(from, count, 0, &uint_val); if (ret) return ret; =20 @@ -554,7 +554,7 @@ static ssize_t qmp_debugfs_write(struct file *file, con= st char __user *user_buf, =20 static const struct file_operations qmp_debugfs_fops =3D { .open =3D simple_open, - .write =3D qmp_debugfs_write, + .write_iter =3D qmp_debugfs_write, }; =20 static void qmp_debugfs_create(struct qmp *qmp) diff --git a/drivers/soc/qcom/rmtfs_mem.c b/drivers/soc/qcom/rmtfs_mem.c index df850d073102..065faa808f49 100644 --- a/drivers/soc/qcom/rmtfs_mem.c +++ b/drivers/soc/qcom/rmtfs_mem.c @@ -15,6 +15,7 @@ #include #include #include +#include =20 #define QCOM_RMTFS_MEM_DEV_MAX (MINORMASK + 1) #define NUM_MAX_VMIDS 2 @@ -79,40 +80,39 @@ static int qcom_rmtfs_mem_open(struct inode *inode, str= uct file *filp) =20 return 0; } -static ssize_t qcom_rmtfs_mem_read(struct file *filp, - char __user *buf, size_t count, loff_t *f_pos) +static ssize_t qcom_rmtfs_mem_read(struct kiocb *iocb, struct iov_iter *to) { - struct qcom_rmtfs_mem *rmtfs_mem =3D filp->private_data; + struct qcom_rmtfs_mem *rmtfs_mem =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(to); =20 - if (*f_pos >=3D rmtfs_mem->size) + if (iocb->ki_pos >=3D rmtfs_mem->size) return 0; =20 - if (*f_pos + count >=3D rmtfs_mem->size) - count =3D rmtfs_mem->size - *f_pos; + if (iocb->ki_pos + count >=3D rmtfs_mem->size) + count =3D rmtfs_mem->size - iocb->ki_pos; =20 - if (copy_to_user(buf, rmtfs_mem->base + *f_pos, count)) + if (!copy_to_iter_full(rmtfs_mem->base + iocb->ki_pos, count, to)) return -EFAULT; =20 - *f_pos +=3D count; + iocb->ki_pos +=3D count; return count; } =20 -static ssize_t qcom_rmtfs_mem_write(struct file *filp, - const char __user *buf, size_t count, - loff_t *f_pos) +static ssize_t qcom_rmtfs_mem_write(struct kiocb *iocb, struct iov_iter *f= rom) { - struct qcom_rmtfs_mem *rmtfs_mem =3D filp->private_data; + struct qcom_rmtfs_mem *rmtfs_mem =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); =20 - if (*f_pos >=3D rmtfs_mem->size) + if (iocb->ki_pos >=3D rmtfs_mem->size) return 0; =20 - if (*f_pos + count >=3D rmtfs_mem->size) - count =3D rmtfs_mem->size - *f_pos; + if (iocb->ki_pos + count >=3D rmtfs_mem->size) + count =3D rmtfs_mem->size - iocb->ki_pos; =20 - if (copy_from_user(rmtfs_mem->base + *f_pos, buf, count)) + if (!copy_from_iter_full(rmtfs_mem->base + iocb->ki_pos, count, from)) return -EFAULT; =20 - *f_pos +=3D count; + iocb->ki_pos +=3D count; return count; } =20 @@ -152,8 +152,8 @@ static int qcom_rmtfs_mem_mmap(struct file *filep, stru= ct vm_area_struct *vma) static const struct file_operations qcom_rmtfs_mem_fops =3D { .owner =3D THIS_MODULE, .open =3D qcom_rmtfs_mem_open, - .read =3D qcom_rmtfs_mem_read, - .write =3D qcom_rmtfs_mem_write, + .read_iter =3D qcom_rmtfs_mem_read, + .write_iter =3D qcom_rmtfs_mem_write, .release =3D qcom_rmtfs_mem_release, .llseek =3D default_llseek, .mmap =3D qcom_rmtfs_mem_mmap, diff --git a/drivers/soc/qcom/socinfo.c b/drivers/soc/qcom/socinfo.c index e8ff9819ac47..fbee271d4646 100644 --- a/drivers/soc/qcom/socinfo.c +++ b/drivers/soc/qcom/socinfo.c @@ -467,7 +467,7 @@ static int qcom_open_##name(struct inode *inode, struct= file *file) \ \ static const struct file_operations qcom_ ##name## _ops =3D { \ .open =3D qcom_open_##name, \ - .read =3D seq_read, \ + .read_iter =3D seq_read_iter, \ .llseek =3D seq_lseek, \ .release =3D single_release, \ } @@ -570,7 +570,7 @@ static int open_image_##type(struct inode *inode, struc= t file *file) \ \ static const struct file_operations qcom_image_##type##_ops =3D { \ .open =3D open_image_##type, \ - .read =3D seq_read, \ + .read_iter =3D seq_read_iter, \ .llseek =3D seq_lseek, \ .release =3D single_release, \ } --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f53.google.com (mail-io1-f53.google.com [209.85.166.53]) (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 8C39E201276 for ; Thu, 11 Apr 2024 15:36:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849797; cv=none; b=FSt1VMDQ+c0TKleq8icI74fGnHNy57CeZ74hOsQM9yUdviw/vpho1Fd+EcwRg91SqWETIpJQ01sx1Pzb+1r9lCEi6svwxtPf07x+xBiLi+4BRc/LuT04SiK1quuwEAXLrAibqQB32MhTMC9pn6+k06xtx6d/Phu2E0GpDOb8Zpw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849797; c=relaxed/simple; bh=V+A1nkvhvl13IKYVCuIvkbQ3Di0+j6PDDLeyNjLNF0Q=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Tz3WJ+cou1yFe04mBUq3PDxw6DiST+1iZ9S4rG6bYIQAASCM5sV/Ls1T1/8Xb4Q/+I08jvsII1loA2BsgmCKtFzA0IljaUHTSoUVm2MkzR/g7wgfiAX3HZWD2CDnXU4dNxwK4QAIjaGCHkCBUYMOwC6lwtrdr+tgXT1jEPhWztk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=b8n0a6t7; arc=none smtp.client-ip=209.85.166.53 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="b8n0a6t7" Received: by mail-io1-f53.google.com with SMTP id ca18e2360f4ac-7d67d1073easo9799239f.0 for ; Thu, 11 Apr 2024 08:36:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849795; x=1713454595; 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=oL9L1IR48g0iaoEF/IzKduE9IDhjnV8jH6inAswZfn4=; b=b8n0a6t7ZNczWIpFW1fLa1IEoY24JF88tgKuEQXG2stKYytTbT9347zR7WecAIL/2Q RGswxR8GeHzktzg5t7pa94qvN1Lpvf1i7bLijAu7tShOJUKgVN1276i28+RANgmaoIuB T5Pn1ABbYrE/MQtERvIeKP7P0twTUI7+tU1px7KTajZl9vlA+o2g5LFBnXjh9py+/QdY 937thj5kfU/N0FRiY8viVE+p9opsdi046nJTqDt7heYrdmLrICXOhiXpdIaKQ+Ei3Trq GUUmbv5PbCb4Bdd4RdFpQG6S7HXILrW/kDXWSd9kfyfqLrtJrrn3vbe+ZilvFPVbu+bM xM3A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849795; x=1713454595; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=oL9L1IR48g0iaoEF/IzKduE9IDhjnV8jH6inAswZfn4=; b=RBHi5zu8JZscIhR2m2hArmQbCxFWcLYl2m3Dl6IAim8qSQMnNTFDQl3jgqExZ+HCpR KQxIGRimF9q4jEMbhV1doahqWYyXPsYJYWabm5wo/8+AQMjKUZDxoCf3eqs0IEaygmww oJfPnmdxcgyFVWn/wvJIBnRfn1hALsmZ9qAojreRbjhMSyyqXq6MTONbPBjz/AF2jEsW AzYmhth8Qc6syjKd2KdZ1Pnj9w9yuKvah5NEi7qBS0jFzrqslk9o0BIic9HaSE84H5VQ BPwbkSXqEFrShD2uAp2w56dF1OEuDddtTzdt7uqxdAp1j/8PYZWtH/oY8GWbaT6ZDbzK 5DBQ== X-Gm-Message-State: AOJu0YwMPI5nrfJgeZB4a44/oAypH6hal+SWCR/YqeYptLY+jxBDairE ATcZ6vz37t5vveCownV+wICQuHw8WXTIJ7V96SNpLYK7LElBVZPEyDvj9vE8odjemAIejobNrjA m X-Google-Smtp-Source: AGHT+IE7ijAhUAHN0aF688PmYfj/x2MabXvHSCzq9Re3QssMmQ0rj6gmkFdLgWE/XTvBiV+/2H9Sgw== X-Received: by 2002:a6b:c34e:0:b0:7d6:7b7c:8257 with SMTP id t75-20020a6bc34e000000b007d67b7c8257mr218449iof.0.1712849795569; Thu, 11 Apr 2024 08:36:35 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.36.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:36:34 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 175/437] soc: aspeed: convert to read/write iterators Date: Thu, 11 Apr 2024 09:15:15 -0600 Message-ID: <20240411153126.16201-176-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/soc/aspeed/aspeed-lpc-snoop.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/soc/aspeed/aspeed-lpc-snoop.c b/drivers/soc/aspeed/asp= eed-lpc-snoop.c index 888b5840c015..e807893b1624 100644 --- a/drivers/soc/aspeed/aspeed-lpc-snoop.c +++ b/drivers/soc/aspeed/aspeed-lpc-snoop.c @@ -98,6 +98,7 @@ static ssize_t snoop_file_read(struct file *file, char __= user *buffer, =20 return copied; } +FOPS_READ_ITER_HELPER(snoop_file_read); =20 static __poll_t snoop_file_poll(struct file *file, struct poll_table_struct *pt) @@ -110,7 +111,7 @@ static __poll_t snoop_file_poll(struct file *file, =20 static const struct file_operations snoop_fops =3D { .owner =3D THIS_MODULE, - .read =3D snoop_file_read, + .read_iter =3D snoop_file_read_iter, .poll =3D snoop_file_poll, .llseek =3D noop_llseek, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f43.google.com (mail-io1-f43.google.com [209.85.166.43]) (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 7525120FA95 for ; Thu, 11 Apr 2024 15:36:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849799; cv=none; b=ji9U7pJRHz72uWdyBcFml5lfZ7rtCPD6tdsW35UUzNkN080vIKdcMXM2ht5V11ise7+NxBXNSmlZ8usdd/ghfxIJhV7KL1L5REFhDMu+v/KxGDqc0Lck/hjRM7A+v2nIWKsBqgvNVb5mAY/AQA+ItPMHTNoistW3nb1hAIiMMJY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849799; c=relaxed/simple; bh=dyBk2apMX/ifFP/+4yS2H6tcLaTw3coX+GcPJfP+YjU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=hQ3s3AqMxKztSytLos1IzgpCeXWVSYpJPySsFxyAJ2i/Y7peY3y01jcCLBeto84Is71MlqjYgW1rknIADgOTmztNHgw1qwoyLuNgS8ntsJ9ez6prJZtQIciFIF0I+wq3bNMpZYAzA0Vqv4Gz7mFLQWWYHl59oNbtGhzzPVe0tsM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=YTu+tNEF; arc=none smtp.client-ip=209.85.166.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="YTu+tNEF" Received: by mail-io1-f43.google.com with SMTP id ca18e2360f4ac-7c8e4c0412dso69578139f.1 for ; Thu, 11 Apr 2024 08:36:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849797; x=1713454597; 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=Lqcg6ZDAbIKmotLYf6+iLqPjbdjurOpU09d8FxULCvI=; b=YTu+tNEFE2wsa1kp+JugsbhuddBlzoFDNUx0lQaQ/uM6Dpi4xEM4xqtAt1DUEa/Ir0 mWmxzBk/Ydg3tk1MggrfaCvDeNsuNhGVd80Pa85Un6l5pRu2PmkEVkseN/LFZoCrNeRN Xk88QMG257tfbnO+/yS6at0fNXWyI3qJanYde8ZonkmkkMMQN2WnblNWE2VwN41YtUed hh8IS9Fyq+6OzQ+IYCeymkS0CZxJtEFyIa8A3DNZjfrHdskYR64uMIJHa8rk8rTRfgE7 nqu+QkPvrD7BxO3yWX4w6eSghglnfPkPUzi6HrbGIl6kVC8vqlQ0M/MNKUi1EONvwt3b KPZw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849797; x=1713454597; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Lqcg6ZDAbIKmotLYf6+iLqPjbdjurOpU09d8FxULCvI=; b=p763CLrl7aDUNZjVQHajLSZ5YwSpqx+H5v3rvHUnmYj4xBDtqqaXAyCXcuPlFjOOfY uNvUjyFFSuk/k/u6UDKAXJL/OTTJEU1uyXaONs6wJWZ4y8l6AFuqQk570KNgmWvIUwa5 wVTvd0kp4FBxHAIUhDmbYbr1gvJyEuHE3Tq2iuk8/27EHFImPaLl8b+BbPj+X30XeKwH DyvETkE3WBZ1Pd8OiiCMRwlTWYKbnAaJYb+GzHtCtqAByN8a/7P/3udoWrYoT/9BGRgY v/rF9rRiTMfmy504vCJ+AUxLJ4Uly11uYc0Dee6CReekGSMJ3qh5UPvjSrE/x4ILRQpy Q1Ew== X-Gm-Message-State: AOJu0Yxf34CvwzrJ3Mv1TLSV23jWs5nSHavA2rhvrmad7OyqVgOsn/ip mbzsGiciJfaJAB65jc9xELGJJd+jDUuXjHvccKHLqg8OzdR0L56ETovuU1xTYzgCDjWoWWc2B/U 2 X-Google-Smtp-Source: AGHT+IHf80KPyeEU/ju64U+CWV89mltOJW1S+O3V1TjChNaS4Udvvz2tGKlaS2VLZCzK55y6KFqftQ== X-Received: by 2002:a6b:c34e:0:b0:7d6:7b7c:8257 with SMTP id t75-20020a6bc34e000000b007d67b7c8257mr218547iof.0.1712849797224; Thu, 11 Apr 2024 08:36:37 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.36.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:36:35 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 176/437] soc: fsl: convert to read/write iterators Date: Thu, 11 Apr 2024 09:15:16 -0600 Message-ID: <20240411153126.16201-177-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/soc/fsl/dpaa2-console.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/drivers/soc/fsl/dpaa2-console.c b/drivers/soc/fsl/dpaa2-consol= e.c index 6dbc77db7718..c0ababa17763 100644 --- a/drivers/soc/fsl/dpaa2-console.c +++ b/drivers/soc/fsl/dpaa2-console.c @@ -189,12 +189,12 @@ static int dpaa2_console_close(struct inode *node, st= ruct file *fp) return 0; } =20 -static ssize_t dpaa2_console_read(struct file *fp, char __user *buf, - size_t count, loff_t *f_pos) +static ssize_t dpaa2_console_read(struct kiocb *iocb, struct iov_iter *to) { - struct console_data *cd =3D fp->private_data; + struct console_data *cd =3D iocb->ki_filp->private_data; size_t bytes =3D dpaa2_console_size(cd); size_t bytes_end =3D cd->end_addr - cd->cur_ptr; + size_t count =3D iov_iter_count(to); size_t written =3D 0; void *kbuf; int err; @@ -214,18 +214,17 @@ static ssize_t dpaa2_console_read(struct file *fp, ch= ar __user *buf, =20 if (bytes > bytes_end) { memcpy_fromio(kbuf, cd->cur_ptr, bytes_end); - if (copy_to_user(buf, kbuf, bytes_end)) { + if (!copy_to_iter_full(kbuf, bytes_end, to)) { err =3D -EFAULT; goto err_free_buf; } - buf +=3D bytes_end; cd->cur_ptr =3D cd->start_addr; bytes -=3D bytes_end; written +=3D bytes_end; } =20 memcpy_fromio(kbuf, cd->cur_ptr, bytes); - if (copy_to_user(buf, kbuf, bytes)) { + if (!copy_to_iter_full(kbuf, bytes, to)) { err =3D -EFAULT; goto err_free_buf; } @@ -245,7 +244,7 @@ static const struct file_operations dpaa2_mc_console_fo= ps =3D { .owner =3D THIS_MODULE, .open =3D dpaa2_mc_console_open, .release =3D dpaa2_console_close, - .read =3D dpaa2_console_read, + .read_iter =3D dpaa2_console_read, }; =20 static struct miscdevice dpaa2_mc_console_dev =3D { @@ -258,7 +257,7 @@ static const struct file_operations dpaa2_aiop_console_= fops =3D { .owner =3D THIS_MODULE, .open =3D dpaa2_aiop_console_open, .release =3D dpaa2_console_close, - .read =3D dpaa2_console_read, + .read_iter =3D dpaa2_console_read, }; =20 static struct miscdevice dpaa2_aiop_console_dev =3D { --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-il1-f174.google.com (mail-il1-f174.google.com [209.85.166.174]) (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 23EFD20FAB0 for ; Thu, 11 Apr 2024 15:36:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.174 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849801; cv=none; b=hjuqdP+nIfipEo6WHw30oCaXS8yk1ESj9sF/SPpu1AdoVb0FiWa+3YA4mwCAG8vlilizzPUrB997hNm6SQj8iFF8Chmxk4tTqnMAoDKUxqTLwq+ur15qwDQ3txtyGu8ByWfrGAauUm3fL+X/tUjYwhWjnwuBxlLokYDMwZAHOhg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849801; c=relaxed/simple; bh=KOH87F7Hovfayly8ms8RyViBM54trilhav2y778SWxI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ANcg5Ng2ZIYstVcjZTE3+RTBsMPDgATMLxjDflo38eMJB9uKAeRYT60y/UXuitjwYS47CU+sX/YFaVq5p2T0R3av/UklYUdJHf1nBk51qk6bScPnRLiPgX8AhUEFj+alQH5ewd+R87OLH/NC7Jmu1vhxoZFHAQdRSfT9QBwnk3k= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=HOH0fRpl; arc=none smtp.client-ip=209.85.166.174 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="HOH0fRpl" Received: by mail-il1-f174.google.com with SMTP id e9e14a558f8ab-36a224d7414so184095ab.1 for ; Thu, 11 Apr 2024 08:36:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849799; x=1713454599; 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=zwRCF1nnEbSrjuWDtl4ruNj2l8f6lTNKa8/0YdrjcDA=; b=HOH0fRpl7rALyWfCED1/Qh0QieXTzdLPREo4fqBKHAvMO8f+V86XzKXc4m2/nS8kKo WSW/0t5IqQdaHDHPKxRLxVXzK9t4FNJMyMnTIAdO7T+FYGXQ94F1hcF8kFMHIEy+rGaL cPkfYsrndDnsH/8YWlHhy6bINQCOAu4j/TXcFaZxj6jLxC0nw79x9BTtdY5hMGVLUX9a ec1F+OIYGQjzvc/KnAHpgRurdbK+HukMIYwYCw5o1OENsX7d3F0OTWdx/GpdLaAWRKnT m8RjMm4F7Vsnn7+P5gaoS9RN9+fGDLcsUL3Vvewez55NzauMkIPlZhRXGPmfJJMWzJND 94dg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849799; x=1713454599; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=zwRCF1nnEbSrjuWDtl4ruNj2l8f6lTNKa8/0YdrjcDA=; b=bt8FhDlQjaBknEfDkSHbYIqygK59U3NXsA8nNUTzpiFeyA0jgjkXKuvv09Vg8Di4kt B+3gVmQ6CfwTAoskmcuzOw6HBoV+DWw8ZbIN0kbnHXVddvYKge4Y6psziFPcbo8Sbl4q osy6Wx2iBXg1qqIfSHuKiv1GtT8G3De8iiPf4MxmwIhbjwGPKFVfp7k+YMMK0nH1fqnE 0vCFtEAlq/xwh3GM3tQFWSZ95qlv99UVVIbvtFXQl+3ffZpaJUUig0UVrN1SiTlRPEtI DV06EZngpvvtDjNVpNJD5YvPixqM2m9dyJ5uW3Oll0A0fkSkZmXIcf9pLTPOh+ZAJldO NhHw== X-Gm-Message-State: AOJu0YyozeNLUh2bJ91pDuBZw3J163E6eiC80kps17k37K+MXto0NpC9 QF1Y1vKf2ygOGvPZQy6xoNrCK1rWZPyPNy4SSLOLxRpvZQVE0hVAMj1oRp+J1GPdaiL7YrY7qZ6 9 X-Google-Smtp-Source: AGHT+IGHpjcd7IwU6M93tHoNcco7LOUxBXMjppSo0GW9P0W7q0ePB1Ps3ef/woGHVOoSFT+OYl3uhg== X-Received: by 2002:a6b:4e14:0:b0:7d6:631d:7b0 with SMTP id c20-20020a6b4e14000000b007d6631d07b0mr188247iob.1.1712849798978; Thu, 11 Apr 2024 08:36:38 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.36.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:36:37 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 177/437] soc: mediatek: convert to read/write iterators Date: Thu, 11 Apr 2024 09:15:17 -0600 Message-ID: <20240411153126.16201-178-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/soc/mediatek/mtk-svs.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/drivers/soc/mediatek/mtk-svs.c b/drivers/soc/mediatek/mtk-svs.c index c832f5c670bc..49e687a96aa0 100644 --- a/drivers/soc/mediatek/mtk-svs.c +++ b/drivers/soc/mediatek/mtk-svs.c @@ -149,7 +149,7 @@ static DEFINE_SPINLOCK(svs_lock); static const struct file_operations svs_##name##_debug_fops =3D { \ .owner =3D THIS_MODULE, \ .open =3D svs_##name##_debug_open, \ - .read =3D seq_read, \ + .read_iter =3D seq_read_iter, \ .llseek =3D seq_lseek, \ .release =3D single_release, \ } @@ -164,8 +164,8 @@ static DEFINE_SPINLOCK(svs_lock); static const struct file_operations svs_##name##_debug_fops =3D { \ .owner =3D THIS_MODULE, \ .open =3D svs_##name##_debug_open, \ - .read =3D seq_read, \ - .write =3D svs_##name##_debug_write, \ + .read_iter =3D seq_read_iter, \ + .write_iter =3D svs_##name##_debug_write, \ .llseek =3D seq_lseek, \ .release =3D single_release, \ } @@ -782,19 +782,18 @@ static int svs_enable_debug_show(struct seq_file *m, = void *v) return 0; } =20 -static ssize_t svs_enable_debug_write(struct file *filp, - const char __user *buffer, - size_t count, loff_t *pos) +static ssize_t svs_enable_debug_write(struct kiocb *iocb, struct iov_iter = *from) { - struct svs_bank *svsb =3D file_inode(filp)->i_private; + struct svs_bank *svsb =3D file_inode(iocb->ki_filp)->i_private; struct svs_platform *svsp =3D dev_get_drvdata(svsb->dev); + size_t count =3D iov_iter_count(from); int enabled, ret; char *buf =3D NULL; =20 if (count >=3D PAGE_SIZE) return -EINVAL; =20 - buf =3D (char *)memdup_user_nul(buffer, count); + buf =3D iterdup_nul(from, count); if (IS_ERR(buf)) return PTR_ERR(buf); =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f42.google.com (mail-io1-f42.google.com [209.85.166.42]) (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 43CB4210190 for ; Thu, 11 Apr 2024 15:36:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849803; cv=none; b=sQNLzrp7pPkb0RYYU2SAuCE8tIJVhzF8ezW/jNsnEn/XfZEr1+5IcHOgtq7ZcxgQ766qdiaZ7RmbVeHtT9Chw0vE/lqlPT0CQrygaaE4KV9fH3iETp75xQz6KyWg4aIPtFFKz9U1JSiI0sOTZ6ETBXL22FIbZSR/uQBppGApwTk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849803; c=relaxed/simple; bh=jxZ++vzschG/6E+J4D7CtFyNOzxPZ8UL7V2oGXKrB1Y=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=dzDDRljGfN8VT22/nGwk5MPVYzKj5I8rP5TLjZkKXsssO6g9hQDHmUtt+iD/b3hN+IuDz9WSLcEamplZzG+VTro1CBMhZljjDJluaTKY7S5kGIyF/EvLMz+d8ZqMQppuXg0YLtfbxEUb35RLJJRT0S6P/vcoAEiCmwRpiQPuCfE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=UDeU+LtM; arc=none smtp.client-ip=209.85.166.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="UDeU+LtM" Received: by mail-io1-f42.google.com with SMTP id ca18e2360f4ac-7d5ed700c2dso16170639f.0 for ; Thu, 11 Apr 2024 08:36:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849801; x=1713454601; 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=iGUvO4zd3WyI8Wwbfm4HcSUX/gc5O9QdnbNBe/njWD0=; b=UDeU+LtMp078eTNIPafPmRP+m3HfbhKaCTF0i3pOGl1Ww3mQCh2Qe2TwFf/u8geKjV i934EfAAbrnbddYepBv7U/roLCAKy+zdHwYeBhUcpq17By6vm7dlyCmPdDnjFEFN9hu9 t1LFj7Ar3zQbUAhO9So48z6PcqKw8x6BVoFC1KBhd/0CTeakCZ+PZE7Hg2nisWRrLsaj Ce7d/EaQrI7gy0vWoFb7T91J+QxVct8NZDteOsoxV8QybipHy2srI+9QfHjk9EQoUhyC ekioD6uV+399HtRFoGE9Vj5v/EVGqW5jEyzWQDdZj0w4dgzJdzXVv6wcqQKRcWLX9kWS I7TQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849801; x=1713454601; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=iGUvO4zd3WyI8Wwbfm4HcSUX/gc5O9QdnbNBe/njWD0=; b=t7+BJUgKbSVCqnOgZRtS0+fHXkb9vZQL59ZDfyIjeznCYv7zlxx+gvpIJaeo+gZAV/ OaSQmTubxIJEKpy4agqPrhKcwnpwUHzjh7tBKtkVsUYb9RMOHjZ6ZxZpSCvRd8w8yXKV hYCxR7Usd2pMueTEz6CKqRWzxa4Ssb4zWTYPedmiLpCk0b+iy5FnyTTnhv8kuL44ztmp QVqGuGCTfy3Fv6gZXh9f446oXUz8BTvBOD3btqv1Hzv+35oymfqh099bbLeU61cIOZVk q+uN7EhpzEghCuwpwny6I0rcNpA98p6jYsQgH+pRztezT+D/Osqjo1QvHJpp17E83YAX r5Cw== X-Gm-Message-State: AOJu0Yz/fjuFAvlvFBttjKamxr5nCyGx7MtL/+za+BGNpvIFUJHpKhGv 4hUcmJPbJgVzrGOIByE0Lr3yewpYE6WqijIzK3oqKRD6LRXebfzEksL051+cJGzTJb8XuvM+GAz w X-Google-Smtp-Source: AGHT+IHkDrSXh4o9sOO71DHiOQXpOEdbmizuKByZRr7+PwXdgdK8YUlxA8bgOnEeNPm9OrPtjHW8dw== X-Received: by 2002:a05:6602:38d:b0:7d6:513b:254 with SMTP id f13-20020a056602038d00b007d6513b0254mr186265iov.2.1712849800593; Thu, 11 Apr 2024 08:36:40 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.36.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:36:39 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 178/437] soc: sifive: ccache: convert to read/write iterators Date: Thu, 11 Apr 2024 09:15:18 -0600 Message-ID: <20240411153126.16201-179-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/cache/sifive_ccache.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/cache/sifive_ccache.c b/drivers/cache/sifive_ccache.c index 89ed6cd6b059..bcb6691f8f7c 100644 --- a/drivers/cache/sifive_ccache.c +++ b/drivers/cache/sifive_ccache.c @@ -71,12 +71,12 @@ enum { #ifdef CONFIG_DEBUG_FS static struct dentry *sifive_test; =20 -static ssize_t ccache_write(struct file *file, const char __user *data, - size_t count, loff_t *ppos) +static ssize_t ccache_write(struct kiocb *iocb, struct iov_iter *from) { + size_t count =3D iov_iter_count(from); unsigned int val; =20 - if (kstrtouint_from_user(data, count, 0, &val)) + if (kstrtouint_from_iter(from, count, 0, &val)) return -EINVAL; if ((val < 0xFF) || (val >=3D 0x10000 && val < 0x100FF)) writel(val, ccache_base + SIFIVE_CCACHE_ECCINJECTERR); @@ -88,7 +88,7 @@ static ssize_t ccache_write(struct file *file, const char= __user *data, static const struct file_operations ccache_fops =3D { .owner =3D THIS_MODULE, .open =3D simple_open, - .write =3D ccache_write + .write_iter =3D ccache_write }; =20 static void setup_sifive_debug(void) --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f41.google.com (mail-io1-f41.google.com [209.85.166.41]) (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 C936E21019D for ; Thu, 11 Apr 2024 15:36:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849804; cv=none; b=Ip21KAtp5MeTndPHcqsMFKkgQsN82NPCF6En4Ai2mkbBQ2b86kS+QIiKgMOO83rzzcnc4IYwJ3y3nbfSrZult9PqDXMn1ey74aldoMeOIbcFDHmpdytlIj1f/Ji11mVtAj2KXgoGkTfEeih3vXNZjisRcZbZFsHkEy7kp6qfPss= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849804; c=relaxed/simple; bh=vQqCsWx37c5fXoCKUup/UXJIYpBCTnV991TQMSFc2Eg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=gQ59/gjGtO4XrHxAEiDoW2mQTcYoh/0zk7+jXsPv7L2AG5DplgvvqaI3Rn1HdoZa16d52yy/676qboNu9JY4MWEryfFRnMht9Huhz3JD6LP/r/1IUMn5QUCi4NF3AotjkuCncuYFMGLQ8JyZ8q02O1TH5bXeXBal608dZ8hnr/Y= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=n5ZGFDYx; arc=none smtp.client-ip=209.85.166.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="n5ZGFDYx" Received: by mail-io1-f41.google.com with SMTP id ca18e2360f4ac-7cc0e831e11so170526839f.1 for ; Thu, 11 Apr 2024 08:36:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849801; x=1713454601; 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=IAMZb6K9t6m8t6kq1K6RlDLh4PdtnN/Ec68bkSjA/gc=; b=n5ZGFDYxQdeSjeHHkQMAl5URgKsTw9HFOWt0ffrTbnrn00cuVXwsO6Zg/hVQPbGzGz 1YUG5e95tn/HjfcTjd+KF8CqFyTAPCU5tf0R5bUyNJErU09jide0Uc+3TreAfOur7tap hrvAs4bonpihqoZXr+EgMZDOLGc/NE27QJQF+GxOrXZdh7Ilj93sDLBXIR5INLCq0bhZ v26wpkomYhLoNdoOJuVGdOePGKD0Mg+Xi3AzxEHrB5M0pGXo6MKfG6Dx1boQNxTyKw7Q kMDhKHecQV+QcIlR/TM18QjEeZS55LE0n0xuML8W6EAxXhR7jLCr//z2+R9LM1l/2wtc qVdg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849801; x=1713454601; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=IAMZb6K9t6m8t6kq1K6RlDLh4PdtnN/Ec68bkSjA/gc=; b=ohP6zBffWNUHkOb3fHLoP8O9k41VMy/ENZxeqV4XSnWn0RdlMcSugCX9U/LiCyGrKU BAMVgKshi1Mdx+nlpomxgD2IQb0WkNhbaGmUO8X4zZNnBfBovRpCYbDvjAxv6XwlSLQs os8QE0+qAY7+JwyObNkubZSDWsBAB0rpyAfUpfpPDVvuaHzsfKiqvAcsE4ZHt348KsJV k0JtT9orh6W9gPQT74BcdcBiN8pMQVURK1SR8RDJ5jKV3huczRwRyR+8BY7Yqm7+NNe1 XPY1+d4CuSIp2r9zHCBx+iwtPiDTojpGyhJoF90f7VhBIjYgYN3P9OBI25KUofEvLqLx v/IA== X-Gm-Message-State: AOJu0YwZEnYgBNVCDuMG4EP7O4MvPEkgzW5krKiGd1xb2sa+sUcP8aDy sMEMo8f4RXehP7zSz9OzS4loHH1s2OW+v6e1JKsSVwPYkoRpLGJ86hXzvhLWzL8XTzhczqMGipr g X-Google-Smtp-Source: AGHT+IGlcCG9WnQUNyIVo5ahNBsCmZpnmq/oTZS0DUZ3QjKAR7lpccts65dCfm+U7Ls7LzQBU332Ug== X-Received: by 2002:a6b:5b10:0:b0:7d0:bd2b:43ba with SMTP id v16-20020a6b5b10000000b007d0bd2b43bamr223206ioh.0.1712849801382; Thu, 11 Apr 2024 08:36:41 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.36.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:36:40 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 179/437] drivers/pinctrl: convert to ->read_iter and ->write_iter Date: Thu, 11 Apr 2024 09:15:19 -0600 Message-ID: <20240411153126.16201-180-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/pinctrl/pinmux.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/pinctrl/pinmux.c b/drivers/pinctrl/pinmux.c index d924207d629b..c7b229d76d7b 100644 --- a/drivers/pinctrl/pinmux.c +++ b/drivers/pinctrl/pinmux.c @@ -675,18 +675,18 @@ void pinmux_show_setting(struct seq_file *s, DEFINE_SHOW_ATTRIBUTE(pinmux_functions); DEFINE_SHOW_ATTRIBUTE(pinmux_pins); =20 -static ssize_t pinmux_select(struct file *file, const char __user *user_bu= f, - size_t len, loff_t *ppos) +static ssize_t pinmux_select(struct kiocb *iocb, struct iov_iter *from) { - struct seq_file *sfile =3D file->private_data; + struct seq_file *sfile =3D iocb->ki_filp->private_data; struct pinctrl_dev *pctldev =3D sfile->private; const struct pinmux_ops *pmxops =3D pctldev->desc->pmxops; + size_t len =3D iov_iter_count(from); const char *const *groups; char *buf, *gname, *fname; unsigned int num_groups; int fsel, gsel, ret; =20 - buf =3D memdup_user_nul(user_buf, len); + buf =3D iterdup_nul(from, len); if (IS_ERR(buf)) return PTR_ERR(buf); =20 @@ -758,7 +758,7 @@ static int pinmux_select_open(struct inode *inode, stru= ct file *file) static const struct file_operations pinmux_select_ops =3D { .owner =3D THIS_MODULE, .open =3D pinmux_select_open, - .write =3D pinmux_select, + .write_iter =3D pinmux_select, .llseek =3D no_llseek, .release =3D single_release, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f45.google.com (mail-io1-f45.google.com [209.85.166.45]) (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 6AB3E2101B3 for ; Thu, 11 Apr 2024 15:36:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849805; cv=none; b=f3GNHMOzNTxQ8BEOK5ZxUt72Vcne0P/VTg3yXv0sxO2ZPf6ZhlUlMqfL+1pDvtNdtb72HMtJX+cq05ThaTbnAndnbYgCPaN5M2wAglArJNZRNgOZ+UX/26kd9tDlPL41LKlaYVqAfqMN2C0vlrO4H4Q20+jc3arSokWVxABZ9Uo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849805; c=relaxed/simple; bh=pyvYWWGUyjKMAk/AcOSdEVAaBBpYfumBGfWTAKnEFSY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=jOyQ5pQtYVs6BSuLVPQTG3Rg1BYOdmloy4BDoeehTx7FOTD2T+nhHJ9R5K1cae7hBk3PnIqAqY5Aq/KNYyzBGDb4jqiRizuflhhr6qG4j7I44IGh7uwn7HxFovPKiMMvsfpu8RqGHKbUWt4WNjBxcKN2X1Q3lgG04vIuJ+f2ipU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=xIuHu5hP; arc=none smtp.client-ip=209.85.166.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="xIuHu5hP" Received: by mail-io1-f45.google.com with SMTP id ca18e2360f4ac-7c8e4c0412dso69580039f.1 for ; Thu, 11 Apr 2024 08:36:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849803; x=1713454603; 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=EKA2d/aP6YRdYPNLwp4fx6i6jJCH9DtxdgR1kae3vbk=; b=xIuHu5hP7ZDKOuiiIqnPF3mnGrIwPm92hU2OH+raqnFMbXxy9L3ILRIrZHj0OnTc8N YMAIVpto7ED2I6xb7r0rVCO54wteQx2N4ZrRarqiZILMSlLCHRaCJaYJYRm6kE3A9M1q hQMCuRDHx/uAsga0KWzv6ZB5SLGdQ5EHHRQbuA5cLzcs8evxYP861pMT9O1RT4TppuEk bJao3bidys0A6oCSsuumTCsB6fgNSi8THYqyp14mXyYnx/2XrLwZzKgYD8qN9Vkl69Xi n2KFJKBYLkVxtz6svB0Muq8K0S4DL9iPZwrTHcsZyq972i3nOHt98qb3GSTKmf6kvcpn 19nQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849803; x=1713454603; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=EKA2d/aP6YRdYPNLwp4fx6i6jJCH9DtxdgR1kae3vbk=; b=ZXoPoAHiigs+a5hGAMJvWVPLiuOsYxLotgdEifHxqBwq6IsFXvI6ab5coQ+V4qcSFZ h1P2JHmdBQtadDz1HheULtmW2CH8wv5ROTcM/dPHuMx0syqvQP5l2I3SNtDgTjc1JYw8 JSEbHXdCTYtyiHXysLsfXoCiYY7kBkxv6N1+Z15dZEu4MB9WTFFgIQUbuC0CXb/f6MvB XIiGqxmSto50vqI+9N+KbisMfFyR1qC8eDQIEMyPeBfzxp8eFDa8M/V+2NODL9eHNDKY /wfMRG0OE3f2GN9o+kZKEUJCyCDf/03m8CgHu7/+OyR4xJwaaxXsJZHc6ZbDcUm5KOYh mG8A== X-Gm-Message-State: AOJu0YxktsTTbmH0TxVaASitDN9EBs+BSz3HC2B0Htl2P5qVR1DD3EkD QOQY0EyanGBXsbPCnACMsAdpYYQnGFwSJJHXtdb6lTz9Pn5ljbdcrvqtV7Te8LNSQxqlTJ6esUh d X-Google-Smtp-Source: AGHT+IGBYVgA+CRyZYc1vhEASB0uOlHIAl4EMw35fkcKYfaTffCPX5bWT3S3pePOhPU9ubf7C3tCHA== X-Received: by 2002:a6b:c34e:0:b0:7d6:7b7c:8257 with SMTP id t75-20020a6bc34e000000b007d67b7c8257mr218896iof.0.1712849803358; Thu, 11 Apr 2024 08:36:43 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.36.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:36:41 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 180/437] drivers/phy: convert to ->read_iter and ->write_iter Date: Thu, 11 Apr 2024 09:15:20 -0600 Message-ID: <20240411153126.16201-181-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/phy/mediatek/phy-mtk-tphy.c | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/drivers/phy/mediatek/phy-mtk-tphy.c b/drivers/phy/mediatek/phy= -mtk-tphy.c index 25b86bbb9cec..8c57e2d89415 100644 --- a/drivers/phy/mediatek/phy-mtk-tphy.c +++ b/drivers/phy/mediatek/phy-mtk-tphy.c @@ -448,19 +448,19 @@ static int u2_phy_params_open(struct inode *inode, st= ruct file *file) return single_open(file, u2_phy_params_show, inode->i_private); } =20 -static ssize_t u2_phy_params_write(struct file *file, const char __user *u= buf, - size_t count, loff_t *ppos) +static ssize_t u2_phy_params_write(struct kiocb *iocb, struct iov_iter *fr= om) { - const char *fname =3D file_dentry(file)->d_iname; - struct seq_file *sf =3D file->private_data; + const char *fname =3D file_dentry(iocb->ki_filp)->d_iname; + struct seq_file *sf =3D iocb->ki_filp->private_data; struct mtk_phy_instance *inst =3D sf->private; struct u2phy_banks *u2_banks =3D &inst->u2_banks; + size_t count =3D iov_iter_count(from); void __iomem *com =3D u2_banks->com; ssize_t rc; u32 val; int ret; =20 - rc =3D kstrtouint_from_user(ubuf, USER_BUF_LEN(count), 0, &val); + rc =3D kstrtouint_from_iter(from, USER_BUF_LEN(count), 0, &val); if (rc) return rc; =20 @@ -504,8 +504,8 @@ static ssize_t u2_phy_params_write(struct file *file, c= onst char __user *ubuf, =20 static const struct file_operations u2_phy_fops =3D { .open =3D u2_phy_params_open, - .write =3D u2_phy_params_write, - .read =3D seq_read, + .write_iter =3D u2_phy_params_write, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D single_release, }; @@ -574,19 +574,19 @@ static int u3_phy_params_open(struct inode *inode, st= ruct file *file) return single_open(file, u3_phy_params_show, inode->i_private); } =20 -static ssize_t u3_phy_params_write(struct file *file, const char __user *u= buf, - size_t count, loff_t *ppos) +static ssize_t u3_phy_params_write(struct kiocb *iocb, struct iov_iter *fr= om) { - const char *fname =3D file_dentry(file)->d_iname; - struct seq_file *sf =3D file->private_data; + const char *fname =3D file_dentry(iocb->ki_filp)->d_iname; + struct seq_file *sf =3D iocb->ki_filp->private_data; struct mtk_phy_instance *inst =3D sf->private; struct u3phy_banks *u3_banks =3D &inst->u3_banks; void __iomem *phyd =3D u3_banks->phyd; + size_t count =3D iov_iter_count(from); ssize_t rc; u32 val; int ret; =20 - rc =3D kstrtouint_from_user(ubuf, USER_BUF_LEN(count), 0, &val); + rc =3D kstrtouint_from_iter(from, USER_BUF_LEN(count), 0, &val); if (rc) return rc; =20 @@ -624,8 +624,8 @@ static ssize_t u3_phy_params_write(struct file *file, c= onst char __user *ubuf, =20 static const struct file_operations u3_phy_fops =3D { .open =3D u3_phy_params_open, - .write =3D u3_phy_params_write, - .read =3D seq_read, + .write_iter =3D u3_phy_params_write, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D single_release, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-il1-f178.google.com (mail-il1-f178.google.com [209.85.166.178]) (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 24F0221C176 for ; Thu, 11 Apr 2024 15:36:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.178 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849807; cv=none; b=izRJBObfyfQDEfb9jGaPY/NfrVHMjTtkWtQor8c5pZZNWO94u2wrKPmNfegmUb6k2CBVfdc9PGHYqMGReNqfUYYlzV4CIZ4SXgvViYpDPIt/LxVOFie5/91C8fJA1AYWlp10uCruHvRfVssTd6WAfIjEv3DAMFH0kWQ2ZHCtvf0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849807; c=relaxed/simple; bh=frauEX6INwklrIHCsDw9vLd8RU5x+j5aNf+GKbFJXtk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=G7cDgNCbd1dehAQhToe2zizUM8DmwQOOFU/vLRcHhjBUY3IBC3gGFvzTcbeU1XKPA1yl7RWF079/aklGg6gA2FpunTmPQSRm0uhFXEEj36ETQuPQxJsKI9xOjbL4wXu8BV91qVKq83Nff+tjvtMsr5ZBh49rcyUUXZMg2h2OMew= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=dKXkxG40; arc=none smtp.client-ip=209.85.166.178 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="dKXkxG40" Received: by mail-il1-f178.google.com with SMTP id e9e14a558f8ab-36a224d7414so184305ab.1 for ; Thu, 11 Apr 2024 08:36:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849805; x=1713454605; 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=6uI5YkKJPy4+kmr48OtjUmofeu6Ns753KwID6IxcYoc=; b=dKXkxG40KJ6X0bRsVbZyNF9PnTw8mMf4WzgrYTHtKyUHAM4zJI3gPKKMcYGD68bIDR nck11ZkoCO1CqjAclPPLn0mCKr/XXvRmusf2+yqmYqowi4/9Jc+8okjFUQ03gcdvbxI3 yctjHkcLITpveAgsZa72CR83/M29c/gCGJb8EcCs8oxblESyjf4M+/nxCKIb6Dz8UO2d qRkqeHEcewM3ab9Ogi2QY4xXoyCdrWhdrrMYsNgUvAV8cSxXgS/qde5U6P3fvCp7YQle 4mRprx+lVyQkxvQEFiUNnmKjAvagwL6pBaiD9VnZNAB8m2DtXUZkh6lAzcKXeAgyb57z 6kCA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849805; x=1713454605; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=6uI5YkKJPy4+kmr48OtjUmofeu6Ns753KwID6IxcYoc=; b=ul67DnjrxeLfM8VhwKBhBStmragdlnLJMA4YxmNl5SJUFSxulCnKIs+tegRGkPtghp edOc4K22UFD/9pg3JrzZVoRNch1uYd5Ak8n3hPEzn/d95nGLAkj3qZ6M+jvAdIsbuLfw A+EF+Jb3+Hm6zFiaPH4XAhXh2wPKPAwHudXU9XcJN0RwWd0h9xM6rfER221coH5aTABa /9UBEzUng9fhF/KezNgfDD1tMr7kj5/wS8t7EuVgu+B2CtZy+yUC6at/zg35pLO99W7j gq1fHynqUgbjtTz02YJekhdJSZhaj3mTvcF0metJj49JbAgtNMQegY7f4EqPOfLzczu3 KS4A== X-Gm-Message-State: AOJu0Yyq74VDVDyMy/uV0j99PhqJ+lh7arL4ww8+vo0w+dBvjIDg4BDS sHrhyoPfnm6TXEwLmhlDIl0dZdOaNoh7d2z+C/Z3FlyekbPOfZq6y3aoMpUc8zbMA+TdUy3X2Ch f X-Google-Smtp-Source: AGHT+IFI4vGub9VJWXPqEfZniOHP9lopABuUTo+1W/ebIy1hezurAvbAJGuf6tb72MFY1skLkR/BZw== X-Received: by 2002:a05:6602:4ed7:b0:7d5:ddc8:504d with SMTP id gk23-20020a0566024ed700b007d5ddc8504dmr189481iob.0.1712849805058; Thu, 11 Apr 2024 08:36:45 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.36.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:36:43 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 181/437] drivers/ufs: convert to ->read_iter and ->write_iter Date: Thu, 11 Apr 2024 09:15:21 -0600 Message-ID: <20240411153126.16201-182-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/ufs/core/ufs-debugfs.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/ufs/core/ufs-debugfs.c b/drivers/ufs/core/ufs-debugfs.c index e3baed6c70bd..6f5116d024f3 100644 --- a/drivers/ufs/core/ufs-debugfs.c +++ b/drivers/ufs/core/ufs-debugfs.c @@ -157,17 +157,17 @@ static int ufs_saved_err_show(struct seq_file *s, voi= d *data) return 0; } =20 -static ssize_t ufs_saved_err_write(struct file *file, const char __user *b= uf, - size_t count, loff_t *ppos) +static ssize_t ufs_saved_err_write(struct kiocb *iocb, struct iov_iter *fr= om) { - struct ufs_debugfs_attr *attr =3D file->f_inode->i_private; - struct ufs_hba *hba =3D hba_from_file(file); + struct ufs_debugfs_attr *attr =3D iocb->ki_filp->f_inode->i_private; + struct ufs_hba *hba =3D hba_from_file(iocb->ki_filp); + size_t count =3D iov_iter_count(from); char val_str[16] =3D { }; int val, ret; =20 if (count > sizeof(val_str)) return -EINVAL; - if (copy_from_user(val_str, buf, count)) + if (!copy_from_iter_full(val_str, count, from)) return -EFAULT; ret =3D kstrtoint(val_str, 0, &val); if (ret < 0) @@ -196,8 +196,8 @@ static int ufs_saved_err_open(struct inode *inode, stru= ct file *file) static const struct file_operations ufs_saved_err_fops =3D { .owner =3D THIS_MODULE, .open =3D ufs_saved_err_open, - .read =3D seq_read, - .write =3D ufs_saved_err_write, + .read_iter =3D seq_read_iter, + .write_iter =3D ufs_saved_err_write, .llseek =3D seq_lseek, .release =3D single_release, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f42.google.com (mail-io1-f42.google.com [209.85.166.42]) (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 734B021C19D for ; Thu, 11 Apr 2024 15:36:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849809; cv=none; b=k4ZVSiZalTFiS8P3+qSTyF1u1YQ+oDfeIrl/m/7XB/4JZf9niwTvUTiCs0QOXXZ1/CawVvZDI1M2GjdlCInS6gtMu4QH1X1hi+KdHn9WPIiyHnVK/EBiyPONhPuRnzuslb2nX51p6dqtMyRRIyZyI+n4ucrqDGUTdkACaxWuEcE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849809; c=relaxed/simple; bh=HeUeBwDSc3iClftRlb4a5dUo5F/rbkCj5Y6bxhnSMJE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=joFNygJmP1u4K0gZSlAGeVP6N/ZQhEaI1qA4H5DodQ45xmbMNXQJVBGLhpZcMMVnnUf8Vy1+BQfYyU5KOwmNvx/U+SL2nH//LVuTysodtgRhd4ySe48PZ30lBbf/gIy0ZAbGlQT31lwV18JOihLg6Dcl36rsnJDJ1LBVIqA92TQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=qpLE6Cw2; arc=none smtp.client-ip=209.85.166.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="qpLE6Cw2" Received: by mail-io1-f42.google.com with SMTP id ca18e2360f4ac-7d6112ba6baso58087539f.1 for ; Thu, 11 Apr 2024 08:36:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849807; x=1713454607; 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=OybDisNMGnYP511VijlsuJv2L1EoAdGm1en+9fQU3qA=; b=qpLE6Cw2YYT71mZQErse04B4sCSf+mwqdB73mBCJBEmQ17bCZcKXcr9ekiRpREI9ca fRgIAbzaGXXhdj+nC8wE8r+V45FnHPeVw4L5UQmcR5UYlodwztiANS/gOzFXJ62UnmQz c30ObY1z+64lTMKJp8bh+Q3+qYrTE/Na8sVFhDW+e9+HnI5Z1DdfMjcS9flPYDVLX8IM OShPPxt3w6gzbSyEtAxh3luGxJio5wBUBHzX+pr981zswuM6rXOYsheScp35OY1oUa0O 4sveceBbuV4kk2km9Wwq68TC3Vt1yo764H6I+emLPdBX9pT4561qkv1z0QDrbW/hknDl us6w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849807; x=1713454607; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=OybDisNMGnYP511VijlsuJv2L1EoAdGm1en+9fQU3qA=; b=Ca3KSsbQ3Kwz6ZMSP3cHnP6fAeYP7yPZNQIA22jNsIkfPW4LwK71wBvqw0gYxou2zW qDI25Fu91aCbeS1ftPcr/XHEKco3HQifR0Ey8pMPcGi2k7hdm4tz57lge3XDeTVZMsCm TojX7DpwhuHr8wCKW/PQKfqXzt6Mv4DgT18KnK4xffjooVqDI3ohk+O7CQ2v3Sa1W33e uYNnKQ7+AobqmYzZsc/JvHiUQaqAiMUfK5ucQA0E6ymZ01PKJbHxD/W2SUf0AAJVio4d uGMjz89O5QMwGgJHa+hfs3hUSeGy4hyF8OPFHDvtF5r3O9dQ1U/3ukCbbbdfzKSbqYjQ 32ng== X-Gm-Message-State: AOJu0YwwUn193sSpmrXfPNk7o3b3PDmEauzwDFP2rDZZLXne0U0+jZ/N vdEpSafYzsgDmmsNxUUsyhEEDFaS8zn3HCScCKQYGK8TnTrPYJPtkskM+jMmwm+DMmXMEn6iR6Y K X-Google-Smtp-Source: AGHT+IH01bPHNhUNmfTGp23uDARl+Rp7Y+pp0KT3T2aHFHBc8zVBdZbr1E8m2PdUT2XIIdEXn5ZKzA== X-Received: by 2002:a6b:f312:0:b0:7d5:de23:13a9 with SMTP id m18-20020a6bf312000000b007d5de2313a9mr162730ioh.1.1712849806791; Thu, 11 Apr 2024 08:36:46 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.36.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:36:45 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 182/437] drivers/uio: convert to ->read_iter and ->write_iter Date: Thu, 11 Apr 2024 09:15:22 -0600 Message-ID: <20240411153126.16201-183-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/uio/uio.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/drivers/uio/uio.c b/drivers/uio/uio.c index 009158fef2a8..510d3707e694 100644 --- a/drivers/uio/uio.c +++ b/drivers/uio/uio.c @@ -563,10 +563,10 @@ static __poll_t uio_poll(struct file *filep, poll_tab= le *wait) return 0; } =20 -static ssize_t uio_read(struct file *filep, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t uio_read(struct kiocb *iocb, struct iov_iter *to) { - struct uio_listener *listener =3D filep->private_data; + struct uio_listener *listener =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(to); struct uio_device *idev =3D listener->dev; DECLARE_WAITQUEUE(wait, current); ssize_t retval =3D 0; @@ -591,7 +591,7 @@ static ssize_t uio_read(struct file *filep, char __user= *buf, event_count =3D atomic_read(&idev->event); if (event_count !=3D listener->event_count) { __set_current_state(TASK_RUNNING); - if (copy_to_user(buf, &event_count, count)) + if (!copy_to_iter_full(&event_count, count, to)) retval =3D -EFAULT; else { listener->event_count =3D event_count; @@ -600,7 +600,7 @@ static ssize_t uio_read(struct file *filep, char __user= *buf, break; } =20 - if (filep->f_flags & O_NONBLOCK) { + if (iocb->ki_filp->f_flags & O_NONBLOCK) { retval =3D -EAGAIN; break; } @@ -618,18 +618,18 @@ static ssize_t uio_read(struct file *filep, char __us= er *buf, return retval; } =20 -static ssize_t uio_write(struct file *filep, const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t uio_write(struct kiocb *iocb, struct iov_iter *from) { - struct uio_listener *listener =3D filep->private_data; + struct uio_listener *listener =3D iocb->ki_filp->private_data; struct uio_device *idev =3D listener->dev; + size_t count =3D iov_iter_count(from); ssize_t retval; s32 irq_on; =20 if (count !=3D sizeof(s32)) return -EINVAL; =20 - if (copy_from_user(&irq_on, buf, count)) + if (!copy_from_iter_full(&irq_on, count, from)) return -EFAULT; =20 mutex_lock(&idev->info_lock); @@ -866,8 +866,8 @@ static const struct file_operations uio_fops =3D { .owner =3D THIS_MODULE, .open =3D uio_open, .release =3D uio_release, - .read =3D uio_read, - .write =3D uio_write, + .read_iter =3D uio_read, + .write_iter =3D uio_write, .mmap =3D uio_mmap, .poll =3D uio_poll, .fasync =3D uio_fasync, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-il1-f175.google.com (mail-il1-f175.google.com [209.85.166.175]) (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 154EA3DABE9 for ; Thu, 11 Apr 2024 15:36:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.175 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849811; cv=none; b=bVnt3TVJBvRUSuFyYWJTQf32FxJdmp3hAksB2vaq0G0aHM9nnjcrHvh8qPQeZCTrLYQ7cFSLiUoKg/BOEStT2wsAhWWJzd4XDMnYi2QwIkynX9cyhWcLS/NHrnxRbzp8YFEHa+Ql0ksU9rW5mTtfsL/L5S2TSGVBTxWW6QWkSe4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849811; c=relaxed/simple; bh=sA+XsunIN7Bf4zgU6iMyCJHKJOwUd+f3Q2eN3z+SdfA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=DShcztlJ8ai1ZrtIFn2PAw+stdc0s+89c/hLTWdyjkSM9p3ylT0qX7l4taI67hiS4u8Fhs2bJDYWjzAdqAhWe9MClg7RZsl0zkmjIzjRL1Klr9Ue1Pu0+3n0G2VgfegE4bmjux92rJF8NTuzTdrx8UDJnQk2c6A6Iv7HFv2ro5k= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=pJYxrJoY; arc=none smtp.client-ip=209.85.166.175 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="pJYxrJoY" Received: by mail-il1-f175.google.com with SMTP id e9e14a558f8ab-36a34b68277so111765ab.0 for ; Thu, 11 Apr 2024 08:36:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849808; x=1713454608; 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=1ksW8iZ7HLDlCDIm8SE6LKBI38Lx/f0gksawzLlfosQ=; b=pJYxrJoYifzb6Jumes+zUHKAqSK2QpLh9QychcVWnxesaj09WGW3LcBc0vH347KTmO VV2weJnnIKP5oGg23oqWriY1UTLr4ckojyz322v0jecTp9p6BoJ69BUC7EWNb7HWwTmU z211NbSEd2lokP9/eU6+Ipr5S+PXCyzmX3cvEASiKSv12Agy7ky5c7diPVuR3hkhCaRk ocrZRfghL0obLT9vIeTcuzQArtha2n/HG4YRswP0VW2HC7k7tDi8FfVchOhcgqGHuvrx CEmNkMJ0SGZYPGSO1/rIsRxR6Wovuw7YtfF5ymz93Xq6XgKX2Awo3xPmO34lQV+DEkTY 8u2g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849808; x=1713454608; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=1ksW8iZ7HLDlCDIm8SE6LKBI38Lx/f0gksawzLlfosQ=; b=H2XA+pRW/A+MFFdEF3DlnAjA6ASpOGa3eFGrRA8c9rDe1EvtDscw6x0/UQTgoDrq9V J3I3TqV0mqcupJ9bEjVExoUrI5CoEAFOpSQdv9qFtbkjm1hI1L1Zhs6bojcdqUFh+U6W bdotMnY1Zgib9SJi3GqoSNk6/3TcxP6iyvyLRATSPjP3LqUpfrnWmV06fQhhz9vTIHFa JkfqUuuPamqDd8pYM7uO6IAgibqhOwE0kB8OwfP8ZcGVEchMcqYFtR2s5l3JgKoq19Rm SAsTvQg+T2Ifuj0DOuDeGxf9+eWuBZnG/wm5jHoEDlmHDtrIyo/hoLPif1tBEB9OLR4J xYcQ== X-Gm-Message-State: AOJu0Yxv6ganstHQuywAscnH+D75CBnpt/Wk3LdHQ1OF0LKGtuAHvIFT 1fgLw3aypZJquRSm/Hf77qK+ClNCf0enm6JOLqevi475Ozn4zlpqpHFnQp3UEdq6f11g1QKEEnh Q X-Google-Smtp-Source: AGHT+IG712jQ3Bq/z4hbhxeF+SJokw8o2l7BdWqCL5CrRA05sm39Md+vPgd4R76vl+fNPF+T8lwQyw== X-Received: by 2002:a05:6602:4ed7:b0:7d5:ddc8:504d with SMTP id gk23-20020a0566024ed700b007d5ddc8504dmr189561iob.0.1712849807563; Thu, 11 Apr 2024 08:36:47 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.36.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:36:47 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 183/437] drivers/platform: convert to ->read_iter and ->write_iter Date: Thu, 11 Apr 2024 09:15:23 -0600 Message-ID: <20240411153126.16201-184-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/platform/chrome/cros_ec_chardev.c | 20 +++++------ drivers/platform/chrome/cros_ec_debugfs.c | 33 ++++++++----------- drivers/platform/chrome/wilco_ec/debugfs.c | 19 +++++------ drivers/platform/chrome/wilco_ec/event.c | 18 +++++----- drivers/platform/chrome/wilco_ec/telemetry.c | 20 +++++------ drivers/platform/goldfish/goldfish_pipe.c | 6 ++-- drivers/platform/olpc/olpc-ec.c | 15 ++++----- .../surface/surface_aggregator_cdev.c | 3 +- drivers/platform/surface/surface_dtx.c | 3 +- drivers/platform/x86/amd/pmc/pmc.c | 21 ++++++------ drivers/platform/x86/amd/pmf/tee-if.c | 10 +++--- drivers/platform/x86/apple-gmux.c | 25 +++++++------- drivers/platform/x86/asus-wmi.c | 2 +- drivers/platform/x86/dell/dell-smbios-wmi.c | 11 +++---- drivers/platform/x86/dell/dell-smo8800.c | 3 +- drivers/platform/x86/intel/pmc/core.c | 24 +++++++------- drivers/platform/x86/intel/pmc/core.h | 4 +-- .../platform/x86/intel/telemetry/debugfs.c | 24 +++++++------- drivers/platform/x86/intel/tpmi.c | 11 ++++--- drivers/platform/x86/sony-laptop.c | 3 +- 20 files changed, 136 insertions(+), 139 deletions(-) diff --git a/drivers/platform/chrome/cros_ec_chardev.c b/drivers/platform/c= hrome/cros_ec_chardev.c index 81950bb2c6da..527588147a2f 100644 --- a/drivers/platform/chrome/cros_ec_chardev.c +++ b/drivers/platform/chrome/cros_ec_chardev.c @@ -197,13 +197,13 @@ static __poll_t cros_ec_chardev_poll(struct file *fil= p, poll_table *wait) return EPOLLIN | EPOLLRDNORM; } =20 -static ssize_t cros_ec_chardev_read(struct file *filp, char __user *buffer, - size_t length, loff_t *offset) +static ssize_t cros_ec_chardev_read(struct kiocb *iocb, struct iov_iter *t= o) { char msg[sizeof(struct ec_response_get_version) + sizeof(CROS_EC_DEV_VERSION)]; - struct chardev_priv *priv =3D filp->private_data; + struct chardev_priv *priv =3D iocb->ki_filp->private_data; struct cros_ec_dev *ec_dev =3D priv->ec_dev; + size_t length =3D iov_iter_count(to); size_t count; int ret; =20 @@ -211,7 +211,7 @@ static ssize_t cros_ec_chardev_read(struct file *filp, = char __user *buffer, struct ec_event *event; =20 event =3D cros_ec_chardev_fetch_event(priv, length !=3D 0, - !(filp->f_flags & O_NONBLOCK)); + !(iocb->ki_filp->f_flags & O_NONBLOCK)); if (IS_ERR(event)) return PTR_ERR(event); /* @@ -223,18 +223,18 @@ static ssize_t cros_ec_chardev_read(struct file *filp= , char __user *buffer, =20 /* The event is 1 byte of type plus the payload */ count =3D min(length, event->size + 1); - ret =3D copy_to_user(buffer, &event->event_type, count); + ret =3D !copy_to_iter_full(&event->event_type, count, to); kfree(event); if (ret) /* the copy failed */ return -EFAULT; - *offset =3D count; + iocb->ki_pos =3D count; return count; } =20 /* * Legacy behavior if no event mask is defined */ - if (*offset !=3D 0) + if (iocb->ki_pos !=3D 0) return 0; =20 ret =3D ec_get_version(ec_dev, msg, sizeof(msg)); @@ -243,10 +243,10 @@ static ssize_t cros_ec_chardev_read(struct file *filp= , char __user *buffer, =20 count =3D min(length, strlen(msg)); =20 - if (copy_to_user(buffer, msg, count)) + if (!copy_to_iter_full(msg, count, to)) return -EFAULT; =20 - *offset =3D count; + iocb->ki_pos =3D count; return count; } =20 @@ -366,7 +366,7 @@ static long cros_ec_chardev_ioctl(struct file *filp, un= signed int cmd, static const struct file_operations chardev_fops =3D { .open =3D cros_ec_chardev_open, .poll =3D cros_ec_chardev_poll, - .read =3D cros_ec_chardev_read, + .read_iter =3D cros_ec_chardev_read, .release =3D cros_ec_chardev_release, .unlocked_ioctl =3D cros_ec_chardev_ioctl, #ifdef CONFIG_COMPAT diff --git a/drivers/platform/chrome/cros_ec_debugfs.c b/drivers/platform/c= hrome/cros_ec_debugfs.c index 6bf6f0e7b597..d4a00fc8f958 100644 --- a/drivers/platform/chrome/cros_ec_debugfs.c +++ b/drivers/platform/chrome/cros_ec_debugfs.c @@ -128,17 +128,17 @@ static int cros_ec_console_log_open(struct inode *ino= de, struct file *file) return stream_open(inode, file); } =20 -static ssize_t cros_ec_console_log_read(struct file *file, char __user *bu= f, - size_t count, loff_t *ppos) +static ssize_t cros_ec_console_log_read(struct kiocb *iocb, struct iov_ite= r *to) { - struct cros_ec_debugfs *debug_info =3D file->private_data; + struct cros_ec_debugfs *debug_info =3D iocb->ki_filp->private_data; struct circ_buf *cb =3D &debug_info->log_buffer; + size_t count =3D iov_iter_count(to); ssize_t ret; =20 mutex_lock(&debug_info->log_mutex); =20 while (!CIRC_CNT(cb->head, cb->tail, LOG_SIZE)) { - if (file->f_flags & O_NONBLOCK) { + if (iocb->ki_filp->f_flags & O_NONBLOCK) { ret =3D -EAGAIN; goto error; } @@ -159,7 +159,7 @@ static ssize_t cros_ec_console_log_read(struct file *fi= le, char __user *buf, ret =3D min_t(size_t, CIRC_CNT_TO_END(cb->head, cb->tail, LOG_SIZE), count); =20 - if (copy_to_user(buf, cb->buf + cb->tail, ret)) { + if (!copy_to_iter_full(cb->buf + cb->tail, ret, to)) { ret =3D -EFAULT; goto error; } @@ -194,13 +194,10 @@ static int cros_ec_console_log_release(struct inode *= inode, struct file *file) return 0; } =20 -static ssize_t cros_ec_pdinfo_read(struct file *file, - char __user *user_buf, - size_t count, - loff_t *ppos) +static ssize_t cros_ec_pdinfo_read(struct kiocb *iocb, struct iov_iter *to) { char read_buf[EC_USB_PD_MAX_PORTS * 40], *p =3D read_buf; - struct cros_ec_debugfs *debug_info =3D file->private_data; + struct cros_ec_debugfs *debug_info =3D iocb->ki_filp->private_data; struct cros_ec_device *ec_dev =3D debug_info->ec->ec_dev; struct { struct cros_ec_command msg; @@ -242,8 +239,7 @@ static ssize_t cros_ec_pdinfo_read(struct file *file, resp->polarity); } =20 - return simple_read_from_buffer(user_buf, count, ppos, - read_buf, p - read_buf); + return simple_copy_to_iter(read_buf, &iocb->ki_pos, p - read_buf, to); } =20 static bool cros_ec_uptime_is_supported(struct cros_ec_device *ec_dev) @@ -265,10 +261,9 @@ static bool cros_ec_uptime_is_supported(struct cros_ec= _device *ec_dev) return true; } =20 -static ssize_t cros_ec_uptime_read(struct file *file, char __user *user_bu= f, - size_t count, loff_t *ppos) +static ssize_t cros_ec_uptime_read(struct kiocb *iocb, struct iov_iter *to) { - struct cros_ec_debugfs *debug_info =3D file->private_data; + struct cros_ec_debugfs *debug_info =3D iocb->ki_filp->private_data; struct cros_ec_device *ec_dev =3D debug_info->ec->ec_dev; struct { struct cros_ec_command cmd; @@ -290,13 +285,13 @@ static ssize_t cros_ec_uptime_read(struct file *file,= char __user *user_buf, ret =3D scnprintf(read_buf, sizeof(read_buf), "%u\n", resp->time_since_ec_boot_ms); =20 - return simple_read_from_buffer(user_buf, count, ppos, read_buf, ret); + return simple_copy_to_iter(read_buf, &iocb->ki_pos, ret, to); } =20 static const struct file_operations cros_ec_console_log_fops =3D { .owner =3D THIS_MODULE, .open =3D cros_ec_console_log_open, - .read =3D cros_ec_console_log_read, + .read_iter =3D cros_ec_console_log_read, .llseek =3D no_llseek, .poll =3D cros_ec_console_log_poll, .release =3D cros_ec_console_log_release, @@ -305,14 +300,14 @@ static const struct file_operations cros_ec_console_l= og_fops =3D { static const struct file_operations cros_ec_pdinfo_fops =3D { .owner =3D THIS_MODULE, .open =3D simple_open, - .read =3D cros_ec_pdinfo_read, + .read_iter =3D cros_ec_pdinfo_read, .llseek =3D default_llseek, }; =20 static const struct file_operations cros_ec_uptime_fops =3D { .owner =3D THIS_MODULE, .open =3D simple_open, - .read =3D cros_ec_uptime_read, + .read_iter =3D cros_ec_uptime_read, .llseek =3D default_llseek, }; =20 diff --git a/drivers/platform/chrome/wilco_ec/debugfs.c b/drivers/platform/= chrome/wilco_ec/debugfs.c index 93c11f81ca45..b3e1850a1dbc 100644 --- a/drivers/platform/chrome/wilco_ec/debugfs.c +++ b/drivers/platform/chrome/wilco_ec/debugfs.c @@ -92,10 +92,10 @@ static int parse_hex_sentence(const char *in, int isize= , u8 *out, int osize) /* The message type takes up two bytes*/ #define TYPE_AND_DATA_SIZE ((EC_MAILBOX_DATA_SIZE) + 2) =20 -static ssize_t raw_write(struct file *file, const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t raw_write(struct kiocb *iocb, struct iov_iter *from) { char *buf =3D debug_info->formatted_data; + size_t count =3D iov_iter_count(from); struct wilco_ec_message msg; u8 request_data[TYPE_AND_DATA_SIZE]; ssize_t kcount; @@ -104,8 +104,8 @@ static ssize_t raw_write(struct file *file, const char = __user *user_buf, if (count > FORMATTED_BUFFER_SIZE) return -EINVAL; =20 - kcount =3D simple_write_to_buffer(buf, FORMATTED_BUFFER_SIZE, ppos, - user_buf, count); + kcount =3D simple_copy_from_iter(buf, &iocb->ki_pos, FORMATTED_BUFFER_SIZ= E, + from); if (kcount < 0) return kcount; =20 @@ -132,8 +132,7 @@ static ssize_t raw_write(struct file *file, const char = __user *user_buf, return count; } =20 -static ssize_t raw_read(struct file *file, char __user *user_buf, size_t c= ount, - loff_t *ppos) +static ssize_t raw_read(struct kiocb *iocb, struct iov_iter *to) { int fmt_len =3D 0; =20 @@ -147,14 +146,14 @@ static ssize_t raw_read(struct file *file, char __use= r *user_buf, size_t count, debug_info->response_size =3D 0; } =20 - return simple_read_from_buffer(user_buf, count, ppos, - debug_info->formatted_data, fmt_len); + return simple_copy_to_iter(debug_info->formatted_data, &iocb->ki_pos, + fmt_len, to); } =20 static const struct file_operations fops_raw =3D { .owner =3D THIS_MODULE, - .read =3D raw_read, - .write =3D raw_write, + .read_iter =3D raw_read, + .write_iter =3D raw_write, .llseek =3D no_llseek, }; =20 diff --git a/drivers/platform/chrome/wilco_ec/event.c b/drivers/platform/ch= rome/wilco_ec/event.c index 13291fb4214e..581a4c13847c 100644 --- a/drivers/platform/chrome/wilco_ec/event.c +++ b/drivers/platform/chrome/wilco_ec/event.c @@ -335,10 +335,8 @@ static __poll_t event_poll(struct file *filp, poll_tab= le *wait) =20 /** * event_read() - Callback for passing event data to userspace via read(). - * @filp: The file we are reading from. - * @buf: Pointer to userspace buffer to fill with one event. - * @count: Number of bytes requested. Must be at least EC_ACPI_MAX_EVENT_S= IZE. - * @pos: File position pointer, irrelevant since we don't support seeking. + * @iocb: Metadata for IO + * @to: Pointer to userspace buffer to fill with one event. * * Removes the first event from the queue, places it in the passed buffer. * @@ -349,10 +347,10 @@ static __poll_t event_poll(struct file *filp, poll_ta= ble *wait) * * Return: Number of bytes placed in buffer, negative error code on failur= e. */ -static ssize_t event_read(struct file *filp, char __user *buf, size_t coun= t, - loff_t *pos) +static ssize_t event_read(struct kiocb *iocb, struct iov_iter *to) { - struct event_device_data *dev_data =3D filp->private_data; + struct event_device_data *dev_data =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(to); struct ec_event *event; ssize_t n_bytes_written =3D 0; int err; @@ -364,7 +362,7 @@ static ssize_t event_read(struct file *filp, char __use= r *buf, size_t count, spin_lock(&dev_data->queue_lock); while (event_queue_empty(dev_data->events)) { spin_unlock(&dev_data->queue_lock); - if (filp->f_flags & O_NONBLOCK) + if (iocb->ki_filp->f_flags & O_NONBLOCK) return -EAGAIN; =20 err =3D wait_event_interruptible(dev_data->wq, @@ -381,7 +379,7 @@ static ssize_t event_read(struct file *filp, char __use= r *buf, size_t count, event =3D event_queue_pop(dev_data->events); spin_unlock(&dev_data->queue_lock); n_bytes_written =3D ec_event_size(event); - if (copy_to_user(buf, event, n_bytes_written)) + if (!copy_to_iter_full(event, n_bytes_written, to)) n_bytes_written =3D -EFAULT; kfree(event); =20 @@ -401,7 +399,7 @@ static int event_release(struct inode *inode, struct fi= le *filp) static const struct file_operations event_fops =3D { .open =3D event_open, .poll =3D event_poll, - .read =3D event_read, + .read_iter =3D event_read, .release =3D event_release, .llseek =3D no_llseek, .owner =3D THIS_MODULE, diff --git a/drivers/platform/chrome/wilco_ec/telemetry.c b/drivers/platfor= m/chrome/wilco_ec/telemetry.c index b7c616f3d179..dbb937382cef 100644 --- a/drivers/platform/chrome/wilco_ec/telemetry.c +++ b/drivers/platform/chrome/wilco_ec/telemetry.c @@ -261,17 +261,17 @@ static int telem_open(struct inode *inode, struct fil= e *filp) return 0; } =20 -static ssize_t telem_write(struct file *filp, const char __user *buf, - size_t count, loff_t *pos) +static ssize_t telem_write(struct kiocb *iocb, struct iov_iter *from) { - struct telem_session_data *sess_data =3D filp->private_data; + struct telem_session_data *sess_data =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); struct wilco_ec_message msg =3D {}; int ret; =20 if (count > sizeof(sess_data->request)) return -EMSGSIZE; memset(&sess_data->request, 0, sizeof(sess_data->request)); - if (copy_from_user(&sess_data->request, buf, count)) + if (!copy_from_iter_full(&sess_data->request, count, from)) return -EFAULT; ret =3D check_telem_request(&sess_data->request, count); if (ret < 0) @@ -295,17 +295,17 @@ static ssize_t telem_write(struct file *filp, const c= har __user *buf, return count; } =20 -static ssize_t telem_read(struct file *filp, char __user *buf, size_t coun= t, - loff_t *pos) +static ssize_t telem_read(struct kiocb *iocb, struct iov_iter *to) { - struct telem_session_data *sess_data =3D filp->private_data; + struct telem_session_data *sess_data =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(to); =20 if (!sess_data->has_msg) return -ENODATA; if (count > sizeof(sess_data->response)) return -EINVAL; =20 - if (copy_to_user(buf, sess_data->response, count)) + if (!copy_to_iter_full(sess_data->response, count, to)) return -EFAULT; =20 sess_data->has_msg =3D false; @@ -326,8 +326,8 @@ static int telem_release(struct inode *inode, struct fi= le *filp) =20 static const struct file_operations telem_fops =3D { .open =3D telem_open, - .write =3D telem_write, - .read =3D telem_read, + .write_iter =3D telem_write, + .read_iter =3D telem_read, .release =3D telem_release, .llseek =3D no_llseek, .owner =3D THIS_MODULE, diff --git a/drivers/platform/goldfish/goldfish_pipe.c b/drivers/platform/g= oldfish/goldfish_pipe.c index 061aa9647c19..8a75fa0b139b 100644 --- a/drivers/platform/goldfish/goldfish_pipe.c +++ b/drivers/platform/goldfish/goldfish_pipe.c @@ -475,6 +475,7 @@ static ssize_t goldfish_pipe_read(struct file *filp, ch= ar __user *buffer, return goldfish_pipe_read_write(filp, buffer, bufflen, /* is_write */ 0); } +FOPS_READ_ITER_HELPER(goldfish_pipe_read); =20 static ssize_t goldfish_pipe_write(struct file *filp, const char __user *buffer, size_t bufflen, @@ -486,6 +487,7 @@ static ssize_t goldfish_pipe_write(struct file *filp, return goldfish_pipe_read_write(filp, no_const_buffer, bufflen, /* is_write */ 1); } +FOPS_WRITE_ITER_HELPER(goldfish_pipe_write); =20 static __poll_t goldfish_pipe_poll(struct file *filp, poll_table *wait) { @@ -779,8 +781,8 @@ static int goldfish_pipe_release(struct inode *inode, s= truct file *filp) =20 static const struct file_operations goldfish_pipe_fops =3D { .owner =3D THIS_MODULE, - .read =3D goldfish_pipe_read, - .write =3D goldfish_pipe_write, + .read_iter =3D goldfish_pipe_read_iter, + .write_iter =3D goldfish_pipe_write_iter, .poll =3D goldfish_pipe_poll, .open =3D goldfish_pipe_open, .release =3D goldfish_pipe_release, diff --git a/drivers/platform/olpc/olpc-ec.c b/drivers/platform/olpc/olpc-e= c.c index 921520475ff6..89cf016e0767 100644 --- a/drivers/platform/olpc/olpc-ec.c +++ b/drivers/platform/olpc/olpc-ec.c @@ -258,10 +258,10 @@ static DEFINE_MUTEX(ec_dbgfs_lock); static unsigned char ec_dbgfs_resp[EC_MAX_CMD_REPLY]; static unsigned int ec_dbgfs_resp_bytes; =20 -static ssize_t ec_dbgfs_cmd_write(struct file *file, const char __user *bu= f, - size_t size, loff_t *ppos) +static ssize_t ec_dbgfs_cmd_write(struct kiocb *iocb, struct iov_iter *fro= m) { int i, m; + size_t size =3D iov_iter_count(from); unsigned char ec_cmd[EC_MAX_CMD_ARGS]; unsigned int ec_cmd_int[EC_MAX_CMD_ARGS]; char cmdbuf[64] =3D ""; @@ -269,7 +269,7 @@ static ssize_t ec_dbgfs_cmd_write(struct file *file, co= nst char __user *buf, =20 mutex_lock(&ec_dbgfs_lock); =20 - size =3D simple_write_to_buffer(cmdbuf, sizeof(cmdbuf), ppos, buf, size); + size =3D simple_copy_from_iter(cmdbuf, &iocb->ki_pos, sizeof(cmdbuf), fro= m); =20 m =3D sscanf(cmdbuf, "%x:%u %x %x %x %x %x", &ec_cmd_int[0], &ec_dbgfs_resp_bytes, &ec_cmd_int[1], &ec_cmd_int[2], @@ -303,8 +303,7 @@ static ssize_t ec_dbgfs_cmd_write(struct file *file, co= nst char __user *buf, return size; } =20 -static ssize_t ec_dbgfs_cmd_read(struct file *file, char __user *buf, - size_t size, loff_t *ppos) +static ssize_t ec_dbgfs_cmd_read(struct kiocb *iocb, struct iov_iter *to) { unsigned int i, r; char *rp; @@ -319,12 +318,12 @@ static ssize_t ec_dbgfs_cmd_read(struct file *file, c= har __user *buf, rp +=3D sprintf(rp, "\n"); =20 r =3D rp - respbuf; - return simple_read_from_buffer(buf, size, ppos, respbuf, r); + return simple_copy_to_iter(respbuf, &iocb->ki_pos, r, to); } =20 static const struct file_operations ec_dbgfs_ops =3D { - .write =3D ec_dbgfs_cmd_write, - .read =3D ec_dbgfs_cmd_read, + .write_iter =3D ec_dbgfs_cmd_write, + .read_iter =3D ec_dbgfs_cmd_read, }; =20 static struct dentry *olpc_ec_setup_debugfs(void) diff --git a/drivers/platform/surface/surface_aggregator_cdev.c b/drivers/p= latform/surface/surface_aggregator_cdev.c index 07e065b9159f..232f487c3eaf 100644 --- a/drivers/platform/surface/surface_aggregator_cdev.c +++ b/drivers/platform/surface/surface_aggregator_cdev.c @@ -637,6 +637,7 @@ static ssize_t ssam_cdev_read(struct file *file, char _= _user *buf, size_t count, up_read(&cdev->lock); return copied; } +FOPS_READ_ITER_HELPER(ssam_cdev_read); =20 static __poll_t ssam_cdev_poll(struct file *file, struct poll_table_struct= *pt) { @@ -665,7 +666,7 @@ static const struct file_operations ssam_controller_fop= s =3D { .owner =3D THIS_MODULE, .open =3D ssam_cdev_device_open, .release =3D ssam_cdev_device_release, - .read =3D ssam_cdev_read, + .read_iter =3D ssam_cdev_read_iter, .poll =3D ssam_cdev_poll, .fasync =3D ssam_cdev_fasync, .unlocked_ioctl =3D ssam_cdev_device_ioctl, diff --git a/drivers/platform/surface/surface_dtx.c b/drivers/platform/surf= ace/surface_dtx.c index 2de843b7ea70..f2b3fe8dcd72 100644 --- a/drivers/platform/surface/surface_dtx.c +++ b/drivers/platform/surface/surface_dtx.c @@ -522,6 +522,7 @@ static ssize_t surface_dtx_read(struct file *file, char= __user *buf, size_t coun up_read(&ddev->lock); return copied; } +FOPS_READ_ITER_HELPER(surface_dtx_read); =20 static __poll_t surface_dtx_poll(struct file *file, struct poll_table_stru= ct *pt) { @@ -550,7 +551,7 @@ static const struct file_operations surface_dtx_fops = =3D { .owner =3D THIS_MODULE, .open =3D surface_dtx_open, .release =3D surface_dtx_release, - .read =3D surface_dtx_read, + .read_iter =3D surface_dtx_read_iter, .poll =3D surface_dtx_poll, .fasync =3D surface_dtx_fasync, .unlocked_ioctl =3D surface_dtx_ioctl, diff --git a/drivers/platform/x86/amd/pmc/pmc.c b/drivers/platform/x86/amd/= pmc/pmc.c index 108e12fd580f..c4342280e43d 100644 --- a/drivers/platform/x86/amd/pmc/pmc.c +++ b/drivers/platform/x86/amd/pmc/pmc.c @@ -214,14 +214,13 @@ static int amd_pmc_stb_debugfs_open(struct inode *ino= de, struct file *filp) return rc; } =20 -static ssize_t amd_pmc_stb_debugfs_read(struct file *filp, char __user *bu= f, size_t size, - loff_t *pos) +static ssize_t amd_pmc_stb_debugfs_read(struct kiocb *iocb, struct iov_ite= r *to) { - if (!filp->private_data) + if (!iocb->ki_filp->private_data) return -EINVAL; =20 - return simple_read_from_buffer(buf, size, pos, filp->private_data, - FIFO_SIZE * sizeof(u32)); + return simple_copy_to_iter(iocb->ki_filp->private_data, &iocb->ki_pos, + FIFO_SIZE * sizeof(u32), to); } =20 static int amd_pmc_stb_debugfs_release(struct inode *inode, struct file *f= ilp) @@ -233,7 +232,7 @@ static int amd_pmc_stb_debugfs_release(struct inode *in= ode, struct file *filp) static const struct file_operations amd_pmc_stb_debugfs_fops =3D { .owner =3D THIS_MODULE, .open =3D amd_pmc_stb_debugfs_open, - .read =3D amd_pmc_stb_debugfs_read, + .read_iter =3D amd_pmc_stb_debugfs_read, .release =3D amd_pmc_stb_debugfs_release, }; =20 @@ -321,12 +320,12 @@ static int amd_pmc_stb_debugfs_open_v2(struct inode *= inode, struct file *filp) return 0; } =20 -static ssize_t amd_pmc_stb_debugfs_read_v2(struct file *filp, char __user = *buf, size_t size, - loff_t *pos) +static ssize_t amd_pmc_stb_debugfs_read_v2(struct kiocb *iocb, + struct iov_iter *to) { - struct amd_pmc_stb_v2_data *data =3D filp->private_data; + struct amd_pmc_stb_v2_data *data =3D iocb->ki_filp->private_data; =20 - return simple_read_from_buffer(buf, size, pos, data->data, data->size); + return simple_copy_to_iter(data->data, &iocb->ki_pos, data->size, to); } =20 static int amd_pmc_stb_debugfs_release_v2(struct inode *inode, struct file= *filp) @@ -338,7 +337,7 @@ static int amd_pmc_stb_debugfs_release_v2(struct inode = *inode, struct file *filp static const struct file_operations amd_pmc_stb_debugfs_fops_v2 =3D { .owner =3D THIS_MODULE, .open =3D amd_pmc_stb_debugfs_open_v2, - .read =3D amd_pmc_stb_debugfs_read_v2, + .read_iter =3D amd_pmc_stb_debugfs_read_v2, .release =3D amd_pmc_stb_debugfs_release_v2, }; =20 diff --git a/drivers/platform/x86/amd/pmf/tee-if.c b/drivers/platform/x86/a= md/pmf/tee-if.c index b438de4d6bfc..3b6bf12a31c4 100644 --- a/drivers/platform/x86/amd/pmf/tee-if.c +++ b/drivers/platform/x86/amd/pmf/tee-if.c @@ -289,10 +289,10 @@ static void amd_pmf_hex_dump_pb(struct amd_pmf_dev *d= ev) dev->policy_sz, false); } =20 -static ssize_t amd_pmf_get_pb_data(struct file *filp, const char __user *b= uf, - size_t length, loff_t *pos) +static ssize_t amd_pmf_get_pb_data(struct kiocb *iocb, struct iov_iter *fr= om) { - struct amd_pmf_dev *dev =3D filp->private_data; + struct amd_pmf_dev *dev =3D iocb->ki_filp->private_data; + size_t length =3D iov_iter_count(from); unsigned char *new_policy_buf; int ret; =20 @@ -305,7 +305,7 @@ static ssize_t amd_pmf_get_pb_data(struct file *filp, c= onst char __user *buf, if (!new_policy_buf) return -ENOMEM; =20 - if (copy_from_user(new_policy_buf, buf, length)) { + if (!copy_from_iter_full(new_policy_buf, length, from)) { kfree(new_policy_buf); return -EFAULT; } @@ -323,7 +323,7 @@ static ssize_t amd_pmf_get_pb_data(struct file *filp, c= onst char __user *buf, } =20 static const struct file_operations pb_fops =3D { - .write =3D amd_pmf_get_pb_data, + .write_iter =3D amd_pmf_get_pb_data, .open =3D simple_open, }; =20 diff --git a/drivers/platform/x86/apple-gmux.c b/drivers/platform/x86/apple= -gmux.c index 1417e230edbd..7c078a27c67b 100644 --- a/drivers/platform/x86/apple-gmux.c +++ b/drivers/platform/x86/apple-gmux.c @@ -691,25 +691,26 @@ static void gmux_notify_handler(acpi_handle device, u= 32 value, void *context) * 1 and 4 byte writes are also allowed. */ =20 -static ssize_t gmux_selected_port_data_write(struct file *file, - const char __user *userbuf, size_t count, loff_t *ppos) +static ssize_t gmux_selected_port_data_write(struct kiocb *iocb, + struct iov_iter *from) { - struct apple_gmux_data *gmux_data =3D file->private_data; + struct apple_gmux_data *gmux_data =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); =20 - if (*ppos) + if (iocb->ki_pos) return -EINVAL; =20 if (count =3D=3D 1) { u8 data; =20 - if (copy_from_user(&data, userbuf, 1)) + if (!copy_from_iter_full(&data, 1, from)) return -EFAULT; =20 gmux_write8(gmux_data, gmux_data->selected_port, data); } else if (count =3D=3D 4) { u32 data; =20 - if (copy_from_user(&data, userbuf, 4)) + if (!copy_from_iter_full(&data, 4, from)) return -EFAULT; =20 gmux_write32(gmux_data, gmux_data->selected_port, data); @@ -719,21 +720,21 @@ static ssize_t gmux_selected_port_data_write(struct f= ile *file, return count; } =20 -static ssize_t gmux_selected_port_data_read(struct file *file, - char __user *userbuf, size_t count, loff_t *ppos) +static ssize_t gmux_selected_port_data_read(struct kiocb *iocb, + struct iov_iter *to) { - struct apple_gmux_data *gmux_data =3D file->private_data; + struct apple_gmux_data *gmux_data =3D iocb->ki_filp->private_data; u32 data; =20 data =3D gmux_read32(gmux_data, gmux_data->selected_port); =20 - return simple_read_from_buffer(userbuf, count, ppos, &data, sizeof(data)); + return simple_copy_to_iter(&data, &iocb->ki_pos, sizeof(data), to); } =20 static const struct file_operations gmux_port_data_ops =3D { .open =3D simple_open, - .write =3D gmux_selected_port_data_write, - .read =3D gmux_selected_port_data_read + .write_iter =3D gmux_selected_port_data_write, + .read_iter =3D gmux_selected_port_data_read }; =20 static void gmux_init_debugfs(struct apple_gmux_data *gmux_data) diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wm= i.c index 3f07bbf809ef..02d874c4d30c 100644 --- a/drivers/platform/x86/asus-wmi.c +++ b/drivers/platform/x86/asus-wmi.c @@ -4367,7 +4367,7 @@ static int asus_wmi_debugfs_open(struct inode *inode,= struct file *file) static const struct file_operations asus_wmi_debugfs_io_ops =3D { .owner =3D THIS_MODULE, .open =3D asus_wmi_debugfs_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D single_release, }; diff --git a/drivers/platform/x86/dell/dell-smbios-wmi.c b/drivers/platform= /x86/dell/dell-smbios-wmi.c index ae9012549560..89deb76c0d5e 100644 --- a/drivers/platform/x86/dell/dell-smbios-wmi.c +++ b/drivers/platform/x86/dell/dell-smbios-wmi.c @@ -123,13 +123,12 @@ static int dell_smbios_wmi_open(struct inode *inode, = struct file *filp) return nonseekable_open(inode, filp); } =20 -static ssize_t dell_smbios_wmi_read(struct file *filp, char __user *buffer= , size_t length, - loff_t *offset) +static ssize_t dell_smbios_wmi_read(struct kiocb *iocb, struct iov_iter *t= o) { - struct wmi_smbios_priv *priv =3D filp->private_data; + struct wmi_smbios_priv *priv =3D iocb->ki_filp->private_data; =20 - return simple_read_from_buffer(buffer, length, offset, &priv->req_buf_siz= e, - sizeof(priv->req_buf_size)); + return simple_copy_to_iter(&priv->req_buf_size, &iocb->ki_pos, + sizeof(priv->req_buf_size), to); } =20 static long dell_smbios_wmi_do_ioctl(struct wmi_smbios_priv *priv, @@ -189,7 +188,7 @@ static long dell_smbios_wmi_ioctl(struct file *filp, un= signed int cmd, unsigned static const struct file_operations dell_smbios_wmi_fops =3D { .owner =3D THIS_MODULE, .open =3D dell_smbios_wmi_open, - .read =3D dell_smbios_wmi_read, + .read_iter =3D dell_smbios_wmi_read, .unlocked_ioctl =3D dell_smbios_wmi_ioctl, .compat_ioctl =3D compat_ptr_ioctl, }; diff --git a/drivers/platform/x86/dell/dell-smo8800.c b/drivers/platform/x8= 6/dell/dell-smo8800.c index f7ec17c56833..b8fa22b0b6bd 100644 --- a/drivers/platform/x86/dell/dell-smo8800.c +++ b/drivers/platform/x86/dell/dell-smo8800.c @@ -74,6 +74,7 @@ static ssize_t smo8800_misc_read(struct file *file, char = __user *buf, =20 return retval; } +FOPS_READ_ITER_HELPER(smo8800_misc_read); =20 static int smo8800_misc_open(struct inode *inode, struct file *file) { @@ -98,7 +99,7 @@ static int smo8800_misc_release(struct inode *inode, stru= ct file *file) =20 static const struct file_operations smo8800_misc_fops =3D { .owner =3D THIS_MODULE, - .read =3D smo8800_misc_read, + .read_iter =3D smo8800_misc_read_iter, .open =3D smo8800_misc_open, .release =3D smo8800_misc_release, }; diff --git a/drivers/platform/x86/intel/pmc/core.c b/drivers/platform/x86/i= ntel/pmc/core.c index 10c96c1a850a..f419cc485411 100644 --- a/drivers/platform/x86/intel/pmc/core.c +++ b/drivers/platform/x86/intel/pmc/core.c @@ -525,18 +525,18 @@ int pmc_core_send_ltr_ignore(struct pmc_dev *pmcdev, = u32 value, int ignore) return 0; } =20 -static ssize_t pmc_core_ltr_ignore_write(struct file *file, - const char __user *userbuf, - size_t count, loff_t *ppos) +static ssize_t pmc_core_ltr_ignore_write(struct kiocb *iocb, + struct iov_iter *from) { - struct seq_file *s =3D file->private_data; + struct seq_file *s =3D iocb->ki_filp->private_data; struct pmc_dev *pmcdev =3D s->private; + size_t count =3D iov_iter_count(from); u32 buf_size, value; int err; =20 buf_size =3D min_t(u32, count, 64); =20 - err =3D kstrtou32_from_user(userbuf, buf_size, 10, &value); + err =3D kstrtou32_from_iter(from, buf_size, 10, &value); if (err) return err; =20 @@ -557,8 +557,8 @@ static int pmc_core_ltr_ignore_open(struct inode *inode= , struct file *file) =20 static const struct file_operations pmc_core_ltr_ignore_ops =3D { .open =3D pmc_core_ltr_ignore_open, - .read =3D seq_read, - .write =3D pmc_core_ltr_ignore_write, + .read_iter =3D seq_read_iter, + .write_iter =3D pmc_core_ltr_ignore_write, .llseek =3D seq_lseek, .release =3D single_release, }; @@ -911,11 +911,11 @@ static int pmc_core_lpm_latch_mode_show(struct seq_fi= le *s, void *unused) return 0; } =20 -static ssize_t pmc_core_lpm_latch_mode_write(struct file *file, - const char __user *userbuf, - size_t count, loff_t *ppos) +static ssize_t pmc_core_lpm_latch_mode_write(struct kiocb *iocb, + struct iov_iter *from) { - struct seq_file *s =3D file->private_data; + struct seq_file *s =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); struct pmc_dev *pmcdev =3D s->private; struct pmc *pmc =3D pmcdev->pmcs[PMC_IDX_MAIN]; bool clear =3D false, c10 =3D false; @@ -925,7 +925,7 @@ static ssize_t pmc_core_lpm_latch_mode_write(struct fil= e *file, =20 if (count > sizeof(buf) - 1) return -EINVAL; - if (copy_from_user(buf, userbuf, count)) + if (!copy_from_iter_full(buf, count, from)) return -EFAULT; buf[count] =3D '\0'; =20 diff --git a/drivers/platform/x86/intel/pmc/core.h b/drivers/platform/x86/i= ntel/pmc/core.h index 83504c49a0e3..5e4d1bef58e8 100644 --- a/drivers/platform/x86/intel/pmc/core.h +++ b/drivers/platform/x86/intel/pmc/core.h @@ -609,8 +609,8 @@ static int __name ## _open(struct inode *inode, struct = file *file) \ static const struct file_operations __name ## _fops =3D { \ .owner =3D THIS_MODULE, \ .open =3D __name ## _open, \ - .read =3D seq_read, \ - .write =3D __name ## _write, \ + .read_iter =3D seq_read_iter, \ + .write_iter =3D __name ## _write, \ .release =3D single_release, \ } =20 diff --git a/drivers/platform/x86/intel/telemetry/debugfs.c b/drivers/platf= orm/x86/intel/telemetry/debugfs.c index 1d4d0fbfd63c..1c2b05418345 100644 --- a/drivers/platform/x86/intel/telemetry/debugfs.c +++ b/drivers/platform/x86/intel/telemetry/debugfs.c @@ -679,14 +679,14 @@ static int telem_pss_trc_verb_show(struct seq_file *s= , void *unused) return 0; } =20 -static ssize_t telem_pss_trc_verb_write(struct file *file, - const char __user *userbuf, - size_t count, loff_t *ppos) +static ssize_t telem_pss_trc_verb_write(struct kiocb *iocb, + struct iov_iter *from) { + size_t count =3D iov_iter_count(from); u32 verbosity; int err; =20 - err =3D kstrtou32_from_user(userbuf, count, 0, &verbosity); + err =3D kstrtou32_from_iter(from, count, 0, &verbosity); if (err) return err; =20 @@ -706,8 +706,8 @@ static int telem_pss_trc_verb_open(struct inode *inode,= struct file *file) =20 static const struct file_operations telem_pss_trc_verb_ops =3D { .open =3D telem_pss_trc_verb_open, - .read =3D seq_read, - .write =3D telem_pss_trc_verb_write, + .read_iter =3D seq_read_iter, + .write_iter =3D telem_pss_trc_verb_write, .llseek =3D seq_lseek, .release =3D single_release, }; @@ -727,14 +727,14 @@ static int telem_ioss_trc_verb_show(struct seq_file *= s, void *unused) return 0; } =20 -static ssize_t telem_ioss_trc_verb_write(struct file *file, - const char __user *userbuf, - size_t count, loff_t *ppos) +static ssize_t telem_ioss_trc_verb_write(struct kiocb *iocb, + struct iov_iter *from) { + size_t count =3D iov_iter_count(from); u32 verbosity; int err; =20 - err =3D kstrtou32_from_user(userbuf, count, 0, &verbosity); + err =3D kstrtou32_from_iter(from, count, 0, &verbosity); if (err) return err; =20 @@ -754,8 +754,8 @@ static int telem_ioss_trc_verb_open(struct inode *inode= , struct file *file) =20 static const struct file_operations telem_ioss_trc_verb_ops =3D { .open =3D telem_ioss_trc_verb_open, - .read =3D seq_read, - .write =3D telem_ioss_trc_verb_write, + .read_iter =3D seq_read_iter, + .write_iter =3D telem_ioss_trc_verb_write, .llseek =3D seq_lseek, .release =3D single_release, }; diff --git a/drivers/platform/x86/intel/tpmi.c b/drivers/platform/x86/intel= /tpmi.c index 910df7c654f4..1de0ecfcf1e7 100644 --- a/drivers/platform/x86/intel/tpmi.c +++ b/drivers/platform/x86/intel/tpmi.c @@ -438,10 +438,11 @@ static int tpmi_mem_dump_show(struct seq_file *s, voi= d *unused) } DEFINE_SHOW_ATTRIBUTE(tpmi_mem_dump); =20 -static ssize_t mem_write(struct file *file, const char __user *userbuf, si= ze_t len, loff_t *ppos) +static ssize_t mem_write(struct kiocb *iocb, struct iov_iter *from) { - struct seq_file *m =3D file->private_data; + struct seq_file *m =3D iocb->ki_filp->private_data; struct intel_tpmi_pm_feature *pfs =3D m->private; + size_t len =3D iov_iter_count(from); u32 addr, value, punit, size; u32 num_elems, *array; void __iomem *mem; @@ -451,7 +452,7 @@ static ssize_t mem_write(struct file *file, const char = __user *userbuf, size_t l if (!size) return -EIO; =20 - ret =3D parse_int_array_user(userbuf, len, (int **)&array); + ret =3D parse_int_array_iter(from, (int **)&array); if (ret < 0) return ret; =20 @@ -510,8 +511,8 @@ static int mem_write_open(struct inode *inode, struct f= ile *file) =20 static const struct file_operations mem_write_ops =3D { .open =3D mem_write_open, - .read =3D seq_read, - .write =3D mem_write, + .read_iter =3D seq_read_iter, + .write_iter =3D mem_write, .llseek =3D seq_lseek, .release =3D single_release, }; diff --git a/drivers/platform/x86/sony-laptop.c b/drivers/platform/x86/sony= -laptop.c index 40878e327afd..6308feb23665 100644 --- a/drivers/platform/x86/sony-laptop.c +++ b/drivers/platform/x86/sony-laptop.c @@ -4097,6 +4097,7 @@ static ssize_t sonypi_misc_read(struct file *file, ch= ar __user *buf, =20 return ret; } +FOPS_READ_ITER_HELPER(sonypi_misc_read); =20 static __poll_t sonypi_misc_poll(struct file *file, poll_table *wait) { @@ -4249,7 +4250,7 @@ static long sonypi_misc_ioctl(struct file *fp, unsign= ed int cmd, =20 static const struct file_operations sonypi_misc_fops =3D { .owner =3D THIS_MODULE, - .read =3D sonypi_misc_read, + .read_iter =3D sonypi_misc_read_iter, .poll =3D sonypi_misc_poll, .open =3D sonypi_misc_open, .release =3D sonypi_misc_release, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f45.google.com (mail-io1-f45.google.com [209.85.166.45]) (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 CFBA23DABFF for ; Thu, 11 Apr 2024 15:36:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849812; cv=none; b=CRv3xw8oeia4+C5bKFwQDU7Qh0w0TMosnJ9ONg4h0eQwq7RG6RAqpTh71H+NbFG93a0ZOwuW4h+hWQiCE3n0y+K/7/rsmtbE1QRy/Fkqtmp/BX8CX9D+2P44CM4tBh/Zk7GHim50YFBHqww2mGw/O1gIK/5Q0oZNBhFISvbBGiE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849812; c=relaxed/simple; bh=QuK3dpYaFFx2Mh/ClUhCSjDZok6p++AOpN6yprAnvdg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=kx/G69Jcxv6iq0tDweZ2KiBY76u1Tv6zVGAqkE6HY6P9sQovRo70th5JDpWLSFvNvcFJRzlXjutLpstUKso5LjCMMooeuWUKFyEiV2N/i6ESc9ZA13BMhfBjr136SQKrwl5OSJmbw2TGAOhAyZ4Vd2xnvsSpUWXcFPQRGMSjpPs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=G0KU6SpF; arc=none smtp.client-ip=209.85.166.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="G0KU6SpF" Received: by mail-io1-f45.google.com with SMTP id ca18e2360f4ac-7d6812b37a6so8960839f.0 for ; Thu, 11 Apr 2024 08:36:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849809; x=1713454609; 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=yjV/Uh3tcbRSrddjd1Z8mJo7f9wXMqNoZNrlnVY07vI=; b=G0KU6SpFggch6VBBuXrDt0Zwo+RLnRPE4emHG3IVi/eRcoPh9wHs2t/JmFtXB94OiC msSM1z1Z9oran3lZxRZMczBgnz/d/ODRmGvfeJ1KCrir585gwjuMxQ8VNh4wAwRUPEEv 4/EjBHynJ3oOnv9hwwdVIY95ytH+yMWQGZD/9uYXl0QTKKqb+CxAkWGyhszqrOjx7QxM IXnUg/Zt+OeyC6Sr+9/tW1qa6zA2y4K+/3F8LL0uvVu/zuzPUj7VWOypcUoEUAJ+FSI0 NjypvPfRNvvd2Mu2ZsrmEQyH3puBG9a+sBn3MUFA2Tf1s9Z3LFRlemUtZv2X28IJMBz4 fi/g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849809; x=1713454609; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=yjV/Uh3tcbRSrddjd1Z8mJo7f9wXMqNoZNrlnVY07vI=; b=bP1D8rfTBewiIA3bsL+922xKQN2+9hlTbspUKw66Ui8kgYkNYoEsFaVz3G+TTFA604 sJWybFtfIRqRKPmSotGPcumIVovBxxiPOvaSccNx1P0K44Nc397vJxSIpAXjBZrwBjZP CQRra7Nrq+Y2DwahZ0jTUsHoaMOENTbouEzSP5NZ+h6At7tSENJm9ofZTifzKYPOa8Ns 8MbZIMIRn3Gfsz/nJ+EqVN8fTrn/4rPxB2R9IibrxVa1PWoFzME+KsBRiDyia0LBI+ay HABRB7qUscayOXA4SLvXenYYtrWStRmz26S4g8+6M7LMSU327jEsr/8nDk+1IV2JwhJf NoUQ== X-Gm-Message-State: AOJu0YyjJFumdZpSm6XXcZ0cbjmZQBLHx9wMPY29qpyJJCxdUJM5REQ1 YLNf34S6GC1mIhEEhEmpjELHJqf7oALkqEnrQ5wLOFcI4cnGhKMo2VlGTPRobs8sIeLyCJ4yTay D X-Google-Smtp-Source: AGHT+IEKl7tzo+UNouikvSySi4Sm3yB+IzdkbvPLnw5ufhKakYwKR9ZvaboISqEWVxdgCUbgoaApYQ== X-Received: by 2002:a05:6602:21d7:b0:7d6:9ddf:5095 with SMTP id c23-20020a05660221d700b007d69ddf5095mr17838ioc.1.1712849809229; Thu, 11 Apr 2024 08:36:49 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.36.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:36:47 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 184/437] drivers/mtd: convert to ->read_iter and ->write_iter Date: Thu, 11 Apr 2024 09:15:24 -0600 Message-ID: <20240411153126.16201-185-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/mtd/mtdchar.c | 52 ++++++++++++++++++------------------ drivers/mtd/ubi/cdev.c | 58 ++++++++++++++++++++--------------------- drivers/mtd/ubi/debug.c | 38 ++++++++++++--------------- drivers/mtd/ubi/ubi.h | 4 +-- drivers/mtd/ubi/upd.c | 24 ++++++++--------- 5 files changed, 83 insertions(+), 93 deletions(-) diff --git a/drivers/mtd/mtdchar.c b/drivers/mtd/mtdchar.c index 8dc4f5c493fc..0e3b6674f081 100644 --- a/drivers/mtd/mtdchar.c +++ b/drivers/mtd/mtdchar.c @@ -124,10 +124,10 @@ static int mtdchar_close(struct inode *inode, struct = file *file) * alignment requirements are not met in the NAND subdriver. */ =20 -static ssize_t mtdchar_read(struct file *file, char __user *buf, size_t co= unt, - loff_t *ppos) +static ssize_t mtdchar_read(struct kiocb *iocb, struct iov_iter *to) { - struct mtd_file_info *mfi =3D file->private_data; + struct mtd_file_info *mfi =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(to); struct mtd_info *mtd =3D mfi->mtd; size_t retlen; size_t total_retlen=3D0; @@ -138,9 +138,9 @@ static ssize_t mtdchar_read(struct file *file, char __u= ser *buf, size_t count, =20 pr_debug("MTD_read\n"); =20 - if (*ppos + count > mtd->size) { - if (*ppos < mtd->size) - count =3D mtd->size - *ppos; + if (iocb->ki_pos + count > mtd->size) { + if (iocb->ki_pos < mtd->size) + count =3D mtd->size - iocb->ki_pos; else count =3D 0; } @@ -157,11 +157,11 @@ static ssize_t mtdchar_read(struct file *file, char _= _user *buf, size_t count, =20 switch (mfi->mode) { case MTD_FILE_MODE_OTP_FACTORY: - ret =3D mtd_read_fact_prot_reg(mtd, *ppos, len, + ret =3D mtd_read_fact_prot_reg(mtd, iocb->ki_pos, len, &retlen, kbuf); break; case MTD_FILE_MODE_OTP_USER: - ret =3D mtd_read_user_prot_reg(mtd, *ppos, len, + ret =3D mtd_read_user_prot_reg(mtd, iocb->ki_pos, len, &retlen, kbuf); break; case MTD_FILE_MODE_RAW: @@ -173,12 +173,12 @@ static ssize_t mtdchar_read(struct file *file, char _= _user *buf, size_t count, ops.oobbuf =3D NULL; ops.len =3D len; =20 - ret =3D mtd_read_oob(mtd, *ppos, &ops); + ret =3D mtd_read_oob(mtd, iocb->ki_pos, &ops); retlen =3D ops.retlen; break; } default: - ret =3D mtd_read(mtd, *ppos, len, &retlen, kbuf); + ret =3D mtd_read(mtd, iocb->ki_pos, len, &retlen, kbuf); } /* Nand returns -EBADMSG on ECC errors, but it returns * the data. For our userspace tools it is important @@ -190,8 +190,8 @@ static ssize_t mtdchar_read(struct file *file, char __u= ser *buf, size_t count, * must be aware of the fact that it deals with NAND */ if (!ret || mtd_is_bitflip_or_eccerr(ret)) { - *ppos +=3D retlen; - if (copy_to_user(buf, kbuf, retlen)) { + iocb->ki_pos +=3D retlen; + if (!copy_to_iter_full(kbuf, retlen, to)) { kfree(kbuf); return -EFAULT; } @@ -199,7 +199,6 @@ static ssize_t mtdchar_read(struct file *file, char __u= ser *buf, size_t count, total_retlen +=3D retlen; =20 count -=3D retlen; - buf +=3D retlen; if (retlen =3D=3D 0) count =3D 0; } @@ -214,10 +213,10 @@ static ssize_t mtdchar_read(struct file *file, char _= _user *buf, size_t count, return total_retlen; } /* mtdchar_read */ =20 -static ssize_t mtdchar_write(struct file *file, const char __user *buf, si= ze_t count, - loff_t *ppos) +static ssize_t mtdchar_write(struct kiocb *iocb, struct iov_iter *from) { - struct mtd_file_info *mfi =3D file->private_data; + struct mtd_file_info *mfi =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); struct mtd_info *mtd =3D mfi->mtd; size_t size =3D count; char *kbuf; @@ -228,11 +227,11 @@ static ssize_t mtdchar_write(struct file *file, const= char __user *buf, size_t c =20 pr_debug("MTD_write\n"); =20 - if (*ppos >=3D mtd->size) + if (iocb->ki_pos >=3D mtd->size) return -ENOSPC; =20 - if (*ppos + count > mtd->size) - count =3D mtd->size - *ppos; + if (iocb->ki_pos + count > mtd->size) + count =3D mtd->size - iocb->ki_pos; =20 if (!count) return 0; @@ -244,7 +243,7 @@ static ssize_t mtdchar_write(struct file *file, const c= har __user *buf, size_t c while (count) { len =3D min_t(size_t, count, size); =20 - if (copy_from_user(kbuf, buf, len)) { + if (!copy_from_iter_full(kbuf, len, from)) { kfree(kbuf); return -EFAULT; } @@ -254,7 +253,7 @@ static ssize_t mtdchar_write(struct file *file, const c= har __user *buf, size_t c ret =3D -EROFS; break; case MTD_FILE_MODE_OTP_USER: - ret =3D mtd_write_user_prot_reg(mtd, *ppos, len, + ret =3D mtd_write_user_prot_reg(mtd, iocb->ki_pos, len, &retlen, kbuf); break; =20 @@ -268,13 +267,13 @@ static ssize_t mtdchar_write(struct file *file, const= char __user *buf, size_t c ops.ooboffs =3D 0; ops.len =3D len; =20 - ret =3D mtd_write_oob(mtd, *ppos, &ops); + ret =3D mtd_write_oob(mtd, iocb->ki_pos, &ops); retlen =3D ops.retlen; break; } =20 default: - ret =3D mtd_write(mtd, *ppos, len, &retlen, kbuf); + ret =3D mtd_write(mtd, iocb->ki_pos, len, &retlen, kbuf); } =20 /* @@ -286,10 +285,9 @@ static ssize_t mtdchar_write(struct file *file, const = char __user *buf, size_t c break; =20 if (!ret) { - *ppos +=3D retlen; + iocb->ki_pos +=3D retlen; total_retlen +=3D retlen; count -=3D retlen; - buf +=3D retlen; } else { kfree(kbuf); @@ -1401,8 +1399,8 @@ static int mtdchar_mmap(struct file *file, struct vm_= area_struct *vma) static const struct file_operations mtd_fops =3D { .owner =3D THIS_MODULE, .llseek =3D mtdchar_lseek, - .read =3D mtdchar_read, - .write =3D mtdchar_write, + .read_iter =3D mtdchar_read, + .write_iter =3D mtdchar_write, .unlocked_ioctl =3D mtdchar_unlocked_ioctl, #ifdef CONFIG_COMPAT .compat_ioctl =3D mtdchar_compat_ioctl, diff --git a/drivers/mtd/ubi/cdev.c b/drivers/mtd/ubi/cdev.c index 0d8f04cf03c5..ab99cfff211c 100644 --- a/drivers/mtd/ubi/cdev.c +++ b/drivers/mtd/ubi/cdev.c @@ -168,10 +168,10 @@ static int vol_cdev_fsync(struct file *file, loff_t s= tart, loff_t end, } =20 =20 -static ssize_t vol_cdev_read(struct file *file, __user char *buf, size_t c= ount, - loff_t *offp) +static ssize_t vol_cdev_read(struct kiocb *iocb, struct iov_iter *to) { - struct ubi_volume_desc *desc =3D file->private_data; + struct ubi_volume_desc *desc =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(to); struct ubi_volume *vol =3D desc->vol; struct ubi_device *ubi =3D vol->ubi; int err, lnum, off, len, tbuf_size; @@ -179,7 +179,7 @@ static ssize_t vol_cdev_read(struct file *file, __user = char *buf, size_t count, void *tbuf; =20 dbg_gen("read %zd bytes from offset %lld of volume %d", - count, *offp, vol->vol_id); + count, iocb->ki_pos, vol->vol_id); =20 if (vol->updating) { ubi_err(vol->ubi, "updating"); @@ -189,14 +189,14 @@ static ssize_t vol_cdev_read(struct file *file, __use= r char *buf, size_t count, ubi_err(vol->ubi, "damaged volume, update marker is set"); return -EBADF; } - if (*offp =3D=3D vol->used_bytes || count =3D=3D 0) + if (iocb->ki_pos =3D=3D vol->used_bytes || count =3D=3D 0) return 0; =20 if (vol->corrupted) dbg_gen("read from corrupted volume %d", vol->vol_id); =20 - if (*offp + count > vol->used_bytes) - count_save =3D count =3D vol->used_bytes - *offp; + if (iocb->ki_pos + count > vol->used_bytes) + count_save =3D count =3D vol->used_bytes - iocb->ki_pos; =20 tbuf_size =3D vol->usable_leb_size; if (count < tbuf_size) @@ -206,7 +206,7 @@ static ssize_t vol_cdev_read(struct file *file, __user = char *buf, size_t count, return -ENOMEM; =20 len =3D count > tbuf_size ? tbuf_size : count; - lnum =3D div_u64_rem(*offp, vol->usable_leb_size, &off); + lnum =3D div_u64_rem(iocb->ki_pos, vol->usable_leb_size, &off); =20 do { cond_resched(); @@ -225,15 +225,14 @@ static ssize_t vol_cdev_read(struct file *file, __use= r char *buf, size_t count, } =20 count -=3D len; - *offp +=3D len; + iocb->ki_pos +=3D len; =20 - err =3D copy_to_user(buf, tbuf, len); + err =3D !copy_to_iter_full(tbuf, len, to); if (err) { err =3D -EFAULT; break; } =20 - buf +=3D len; len =3D count > tbuf_size ? tbuf_size : count; } while (count); =20 @@ -245,10 +244,10 @@ static ssize_t vol_cdev_read(struct file *file, __use= r char *buf, size_t count, * This function allows to directly write to dynamic UBI volumes, without * issuing the volume update operation. */ -static ssize_t vol_cdev_direct_write(struct file *file, const char __user = *buf, - size_t count, loff_t *offp) +static ssize_t vol_cdev_direct_write(struct kiocb *iocb, struct iov_iter *= from) { - struct ubi_volume_desc *desc =3D file->private_data; + struct ubi_volume_desc *desc =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); struct ubi_volume *vol =3D desc->vol; struct ubi_device *ubi =3D vol->ubi; int lnum, off, len, tbuf_size, err =3D 0; @@ -259,19 +258,19 @@ static ssize_t vol_cdev_direct_write(struct file *fil= e, const char __user *buf, return -EPERM; =20 dbg_gen("requested: write %zd bytes to offset %lld of volume %u", - count, *offp, vol->vol_id); + count, iocb->ki_pos, vol->vol_id); =20 if (vol->vol_type =3D=3D UBI_STATIC_VOLUME) return -EROFS; =20 - lnum =3D div_u64_rem(*offp, vol->usable_leb_size, &off); + lnum =3D div_u64_rem(iocb->ki_pos, vol->usable_leb_size, &off); if (off & (ubi->min_io_size - 1)) { ubi_err(ubi, "unaligned position"); return -EINVAL; } =20 - if (*offp + count > vol->used_bytes) - count_save =3D count =3D vol->used_bytes - *offp; + if (iocb->ki_pos + count > vol->used_bytes) + count_save =3D count =3D vol->used_bytes - iocb->ki_pos; =20 /* We can write only in fractions of the minimum I/O unit */ if (count & (ubi->min_io_size - 1)) { @@ -294,7 +293,7 @@ static ssize_t vol_cdev_direct_write(struct file *file,= const char __user *buf, if (off + len >=3D vol->usable_leb_size) len =3D vol->usable_leb_size - off; =20 - err =3D copy_from_user(tbuf, buf, len); + err =3D !copy_from_iter_full(tbuf, len, from); if (err) { err =3D -EFAULT; break; @@ -311,8 +310,7 @@ static ssize_t vol_cdev_direct_write(struct file *file,= const char __user *buf, } =20 count -=3D len; - *offp +=3D len; - buf +=3D len; + iocb->ki_pos +=3D len; len =3D count > tbuf_size ? tbuf_size : count; } =20 @@ -320,25 +318,25 @@ static ssize_t vol_cdev_direct_write(struct file *fil= e, const char __user *buf, return err ? err : count_save - count; } =20 -static ssize_t vol_cdev_write(struct file *file, const char __user *buf, - size_t count, loff_t *offp) +static ssize_t vol_cdev_write(struct kiocb *iocb, struct iov_iter *from) { int err =3D 0; - struct ubi_volume_desc *desc =3D file->private_data; + struct ubi_volume_desc *desc =3D iocb->ki_filp->private_data; struct ubi_volume *vol =3D desc->vol; struct ubi_device *ubi =3D vol->ubi; + size_t count =3D iov_iter_count(from); =20 if (!vol->updating && !vol->changing_leb) - return vol_cdev_direct_write(file, buf, count, offp); + return vol_cdev_direct_write(iocb, from); =20 if (vol->updating) - err =3D ubi_more_update_data(ubi, vol, buf, count); + err =3D ubi_more_update_data(ubi, vol, from); else - err =3D ubi_more_leb_change_data(ubi, vol, buf, count); + err =3D ubi_more_leb_change_data(ubi, vol, from); =20 if (err < 0) { ubi_err(ubi, "cannot accept more %zd bytes of data, error %d", - count, err); + iov_iter_count(from), err); return err; } =20 @@ -1085,8 +1083,8 @@ const struct file_operations ubi_vol_cdev_operations = =3D { .open =3D vol_cdev_open, .release =3D vol_cdev_release, .llseek =3D vol_cdev_llseek, - .read =3D vol_cdev_read, - .write =3D vol_cdev_write, + .read_iter =3D vol_cdev_read, + .write_iter =3D vol_cdev_write, .fsync =3D vol_cdev_fsync, .unlocked_ioctl =3D vol_cdev_ioctl, .compat_ioctl =3D compat_ptr_ioctl, diff --git a/drivers/mtd/ubi/debug.c b/drivers/mtd/ubi/debug.c index d57f52bd2ff3..2b364dd8e92e 100644 --- a/drivers/mtd/ubi/debug.c +++ b/drivers/mtd/ubi/debug.c @@ -325,11 +325,11 @@ void ubi_debugfs_exit(void) } =20 /* Read an UBI debugfs file */ -static ssize_t dfs_file_read(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t dfs_file_read(struct kiocb *iocb, struct iov_iter *to) { - unsigned long ubi_num =3D (unsigned long)file->private_data; - struct dentry *dent =3D file->f_path.dentry; + unsigned long ubi_num =3D (unsigned long)iocb->ki_filp->private_data; + struct dentry *dent =3D iocb->ki_filp->f_path.dentry; + size_t count =3D iov_iter_count(to); struct ubi_device *ubi; struct ubi_debug_info *d; char buf[16]; @@ -354,23 +354,19 @@ static ssize_t dfs_file_read(struct file *file, char = __user *user_buf, val =3D d->emulate_io_failures; else if (dent =3D=3D d->dfs_emulate_failures) { snprintf(buf, sizeof(buf), "0x%04x\n", d->emulate_failures); - count =3D simple_read_from_buffer(user_buf, count, ppos, - buf, strlen(buf)); + count =3D simple_copy_to_iter(buf, &iocb->ki_pos, strlen(buf), to); goto out; } else if (dent =3D=3D d->dfs_emulate_power_cut) { snprintf(buf, sizeof(buf), "%u\n", d->emulate_power_cut); - count =3D simple_read_from_buffer(user_buf, count, ppos, - buf, strlen(buf)); + count =3D simple_copy_to_iter(buf, &iocb->ki_pos, strlen(buf), to); goto out; } else if (dent =3D=3D d->dfs_power_cut_min) { snprintf(buf, sizeof(buf), "%u\n", d->power_cut_min); - count =3D simple_read_from_buffer(user_buf, count, ppos, - buf, strlen(buf)); + count =3D simple_copy_to_iter(buf, &iocb->ki_pos, strlen(buf), to); goto out; } else if (dent =3D=3D d->dfs_power_cut_max) { snprintf(buf, sizeof(buf), "%u\n", d->power_cut_max); - count =3D simple_read_from_buffer(user_buf, count, ppos, - buf, strlen(buf)); + count =3D simple_copy_to_iter(buf, &iocb->ki_pos, strlen(buf), to); goto out; } else { count =3D -EINVAL; @@ -384,7 +380,7 @@ static ssize_t dfs_file_read(struct file *file, char __= user *user_buf, buf[1] =3D '\n'; buf[2] =3D 0x00; =20 - count =3D simple_read_from_buffer(user_buf, count, ppos, buf, 2); + count =3D simple_copy_to_iter(buf, &iocb->ki_pos, 2, to); =20 out: ubi_put_device(ubi); @@ -392,11 +388,11 @@ static ssize_t dfs_file_read(struct file *file, char = __user *user_buf, } =20 /* Write an UBI debugfs file */ -static ssize_t dfs_file_write(struct file *file, const char __user *user_b= uf, - size_t count, loff_t *ppos) +static ssize_t dfs_file_write(struct kiocb *iocb, struct iov_iter *from) { - unsigned long ubi_num =3D (unsigned long)file->private_data; - struct dentry *dent =3D file->f_path.dentry; + unsigned long ubi_num =3D (unsigned long)iocb->ki_filp->private_data; + struct dentry *dent =3D iocb->ki_filp->f_path.dentry; + size_t count =3D iov_iter_count(from); struct ubi_device *ubi; struct ubi_debug_info *d; size_t buf_size; @@ -409,7 +405,7 @@ static ssize_t dfs_file_write(struct file *file, const = char __user *user_buf, d =3D &ubi->dbg; =20 buf_size =3D min_t(size_t, count, (sizeof(buf) - 1)); - if (copy_from_user(buf, user_buf, buf_size)) { + if (!copy_from_iter_full(buf, buf_size, from)) { count =3D -EFAULT; goto out; } @@ -467,8 +463,8 @@ static ssize_t dfs_file_write(struct file *file, const = char __user *user_buf, * detailed_erase_block_info */ static const struct file_operations dfs_fops =3D { - .read =3D dfs_file_read, - .write =3D dfs_file_write, + .read_iter =3D dfs_file_read, + .write_iter =3D dfs_file_write, .open =3D simple_open, .llseek =3D no_llseek, .owner =3D THIS_MODULE, @@ -576,7 +572,7 @@ static int eraseblk_count_release(struct inode *inode, = struct file *f) static const struct file_operations eraseblk_count_fops =3D { .owner =3D THIS_MODULE, .open =3D eraseblk_count_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D eraseblk_count_release, }; diff --git a/drivers/mtd/ubi/ubi.h b/drivers/mtd/ubi/ubi.h index 32009a24869e..c932b1d31e6b 100644 --- a/drivers/mtd/ubi/ubi.h +++ b/drivers/mtd/ubi/ubi.h @@ -852,11 +852,11 @@ void ubi_free_volume(struct ubi_device *ubi, struct u= bi_volume *vol); int ubi_start_update(struct ubi_device *ubi, struct ubi_volume *vol, long long bytes); int ubi_more_update_data(struct ubi_device *ubi, struct ubi_volume *vol, - const void __user *buf, int count); + struct iov_iter *from); int ubi_start_leb_change(struct ubi_device *ubi, struct ubi_volume *vol, const struct ubi_leb_change_req *req); int ubi_more_leb_change_data(struct ubi_device *ubi, struct ubi_volume *vo= l, - const void __user *buf, int count); + struct iov_iter *from); =20 /* misc.c */ int ubi_calc_data_len(const struct ubi_device *ubi, const void *buf, diff --git a/drivers/mtd/ubi/upd.c b/drivers/mtd/ubi/upd.c index 962f693cf882..6fa6e5b67631 100644 --- a/drivers/mtd/ubi/upd.c +++ b/drivers/mtd/ubi/upd.c @@ -253,8 +253,7 @@ static int write_leb(struct ubi_device *ubi, struct ubi= _volume *vol, int lnum, * ubi_more_update_data - write more update data. * @ubi: UBI device description object * @vol: volume description object - * @buf: write data (user-space memory buffer) - * @count: how much bytes to write + * @from: write data (user-space memory buffer) * * This function writes more data to the volume which is being updated. It= may * be called arbitrary number of times until all the update data arriveis.= This @@ -263,11 +262,12 @@ static int write_leb(struct ubi_device *ubi, struct u= bi_volume *vol, int lnum, * negative error code in case of failure. */ int ubi_more_update_data(struct ubi_device *ubi, struct ubi_volume *vol, - const void __user *buf, int count) + struct iov_iter *from) { + size_t count =3D iov_iter_count(from); int lnum, offs, err =3D 0, len, to_write =3D count; =20 - dbg_gen("write %d of %lld bytes, %lld already passed", + dbg_gen("write %zd of %lld bytes, %lld already passed", count, vol->upd_bytes, vol->upd_received); =20 if (ubi->ro_mode) @@ -293,7 +293,7 @@ int ubi_more_update_data(struct ubi_device *ubi, struct= ubi_volume *vol, if (len > count) len =3D count; =20 - err =3D copy_from_user(vol->upd_buf + offs, buf, len); + err =3D !copy_from_iter_full(vol->upd_buf + offs, len, from); if (err) return -EFAULT; =20 @@ -314,7 +314,6 @@ int ubi_more_update_data(struct ubi_device *ubi, struct= ubi_volume *vol, =20 vol->upd_received +=3D len; count -=3D len; - buf +=3D len; lnum +=3D 1; } =20 @@ -328,7 +327,7 @@ int ubi_more_update_data(struct ubi_device *ubi, struct= ubi_volume *vol, else len =3D count; =20 - err =3D copy_from_user(vol->upd_buf, buf, len); + err =3D !copy_from_iter_full(vol->upd_buf, len, from); if (err) return -EFAULT; =20 @@ -343,7 +342,6 @@ int ubi_more_update_data(struct ubi_device *ubi, struct= ubi_volume *vol, vol->upd_received +=3D len; count -=3D len; lnum +=3D 1; - buf +=3D len; } =20 ubi_assert(vol->upd_received <=3D vol->upd_bytes); @@ -367,8 +365,7 @@ int ubi_more_update_data(struct ubi_device *ubi, struct= ubi_volume *vol, * ubi_more_leb_change_data - accept more data for atomic LEB change. * @ubi: UBI device description object * @vol: volume description object - * @buf: write data (user-space memory buffer) - * @count: how much bytes to write + * @from: write data (user-space memory buffer) * * This function accepts more data to the volume which is being under the * "atomic LEB change" operation. It may be called arbitrary number of tim= es @@ -378,11 +375,12 @@ int ubi_more_update_data(struct ubi_device *ubi, stru= ct ubi_volume *vol, * of failure. */ int ubi_more_leb_change_data(struct ubi_device *ubi, struct ubi_volume *vo= l, - const void __user *buf, int count) + struct iov_iter *from) { + size_t count =3D iov_iter_count(from); int err; =20 - dbg_gen("write %d of %lld bytes, %lld already passed", + dbg_gen("write %zd of %lld bytes, %lld already passed", count, vol->upd_bytes, vol->upd_received); =20 if (ubi->ro_mode) @@ -391,7 +389,7 @@ int ubi_more_leb_change_data(struct ubi_device *ubi, st= ruct ubi_volume *vol, if (vol->upd_received + count > vol->upd_bytes) count =3D vol->upd_bytes - vol->upd_received; =20 - err =3D copy_from_user(vol->upd_buf + vol->upd_received, buf, count); + err =3D !copy_from_iter_full(vol->upd_buf + vol->upd_received, count, fro= m); if (err) return -EFAULT; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f43.google.com (mail-io1-f43.google.com [209.85.166.43]) (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 50A133DAC03 for ; Thu, 11 Apr 2024 15:36:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849814; cv=none; b=ecDiHMiMdlEtwvsjvqjkL984WFYh66M261vMQvzZPeP1ue7N4OOESOg0eWb0GMSiM+iH1HYUkJehGugRyUOzb5CP3r/glPxG2KmURN7zHgywQq1xpwkXXseARAbgdZoTUfchjieKGTFOekEnOg3e64J5Rt8NWVlwq84j0IToImE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849814; c=relaxed/simple; bh=CBMg4hLBtzUqDlU4Be8FlKvPn5MyY9zwPHlF0/XAwN8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=oFTVzLaS9gStoqE2ahj+pPXRNceMnriLKu/iud8zfVG8cOgSqQuTME+VQQhBngKcDy3TKleuUyUaKn4sivnjRoAfJOQ1MQk5UiOnhbOit3pL7yL9BE4qWoVzWCO6rhci1PnQ3YbEo7mJ7me2nhSEDnxnVuw6V/U7b1RztQIJpSg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=xy9GfMuR; arc=none smtp.client-ip=209.85.166.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="xy9GfMuR" Received: by mail-io1-f43.google.com with SMTP id ca18e2360f4ac-7d5ed700c2dso16173039f.0 for ; Thu, 11 Apr 2024 08:36:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849810; x=1713454610; 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=H43tdm6qXVY7UF8KlBQbACCpMF5pPhva70Q2Qo/15+U=; b=xy9GfMuRQUlmuqwi6cX7RCAuHhoomC5Oyg5iZB7MVTBj+C1Uk8ipYYxBoGivXbbN/J hwN2iCd0oRKWTEuEzvl4fA2atyKxL87TQMzI+IDj8NSWZfiCa6+dZUC33KblT9cwP6dA ZYZTo7Wt/s2fCankU+h9DnTedDK40Rr/rg2rRknVo5xZQdRSi9NkVZeLCGPSLoCUvvpv TMue9AEN2GScbJFnzbBLrdyDaOBIz7Qu63OBqeEs9NsP+kzSPtUL8jT3YF8Aj8XpUwGV vMAmkkcpv8OxFHgK7iPwkSU9IVqnuGitQZuOCJIH+Tl8ktoXmgRxdsfK7Cxneqiyqwv5 l/pQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849810; x=1713454610; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=H43tdm6qXVY7UF8KlBQbACCpMF5pPhva70Q2Qo/15+U=; b=BnirhbN9tNaxiGtDz2EPdZKnLkFWgw27hCBecCu8BQo9QQgytPO5BP0BHs2h9JAeBc wG5Bmp7NEljFB/AGPWQkbtWM2Z9WMq0qbqdKkKB9QCWgWdDOnGduOaW3ycwSFcu8qh0R vHy5AjYzbbjkS21IlXnsmR5Iw5xEvU9uvsB/n+pWVq8013E2JGNktHEUfpEI4Y2CDaNZ Dfc4oLVc/EEqdCQGBNZoRbGG3VnyQ+AP2MqLQGE7rEdofxrflcuJs3FIT6WWuGbxQiMJ B1gZbKXIVvW0tnVgxOcgrxaRsYUQI70QKZ55Y/r0YVvSGP0VU/HGl0vWNSqpC6V50Vg1 eKfQ== X-Gm-Message-State: AOJu0YxjWAbvvlRFYXqMmIpuBJzYpHbzTWjHn2oiNQkixNrJ6S8RRuj+ j64IzjOUjuSgEPFypKxlv7IFOaF0mDvdjQx5gcz0wbVXS1c6Ix00HgScRkXs9LI5cAX1AvetbT4 O X-Google-Smtp-Source: AGHT+IHevWHDLKSNkMYGkAdh49/6+nBkaiIRtq0YdbJwllt1Yy/dEBC5kR3B8KifSuRC7CjjXFBctg== X-Received: by 2002:a6b:f312:0:b0:7d5:de23:13a9 with SMTP id m18-20020a6bf312000000b007d5de2313a9mr162857ioh.1.1712849810029; Thu, 11 Apr 2024 08:36:50 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.36.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:36:49 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 185/437] scsi: bfa: convert to read/write iterators Date: Thu, 11 Apr 2024 09:15:25 -0600 Message-ID: <20240411153126.16201-186-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/scsi/bfa/bfad_debugfs.c | 51 ++++++++++++++++----------------- 1 file changed, 24 insertions(+), 27 deletions(-) diff --git a/drivers/scsi/bfa/bfad_debugfs.c b/drivers/scsi/bfa/bfad_debugf= s.c index 52db147d9979..f9e1842e3a59 100644 --- a/drivers/scsi/bfa/bfad_debugfs.c +++ b/drivers/scsi/bfa/bfad_debugfs.c @@ -167,17 +167,15 @@ bfad_debugfs_lseek(struct file *file, loff_t offset, = int orig) debug->buffer_len); } =20 -static ssize_t -bfad_debugfs_read(struct file *file, char __user *buf, - size_t nbytes, loff_t *pos) +static ssize_t bfad_debugfs_read(struct kiocb *iocb, struct iov_iter *to) { - struct bfad_debug_info *debug =3D file->private_data; + struct bfad_debug_info *debug =3D iocb->ki_filp->private_data; =20 if (!debug || !debug->debug_buffer) return 0; =20 - return simple_read_from_buffer(buf, nbytes, pos, - debug->debug_buffer, debug->buffer_len); + return simple_copy_to_iter(debug->debug_buffer, &iocb->ki_pos, + debug->buffer_len, to); } =20 #define BFA_REG_CT_ADDRSZ (0x40000) @@ -210,22 +208,21 @@ bfad_reg_offset_check(struct bfa_s *bfa, u32 offset, = u32 len) return BFA_STATUS_OK; } =20 -static ssize_t -bfad_debugfs_read_regrd(struct file *file, char __user *buf, - size_t nbytes, loff_t *pos) +static ssize_t bfad_debugfs_read_regrd(struct kiocb *iocb, struct iov_iter= *to) { - struct bfad_debug_info *regrd_debug =3D file->private_data; + struct bfad_debug_info *regrd_debug =3D iocb->ki_filp->private_data; struct bfad_port_s *port =3D (struct bfad_port_s *)regrd_debug->i_private; + size_t nbytes =3D iov_iter_count(to); struct bfad_s *bfad =3D port->bfad; ssize_t rc; =20 if (!bfad->regdata) return 0; =20 - rc =3D simple_read_from_buffer(buf, nbytes, pos, - bfad->regdata, bfad->reglen); + rc =3D simple_copy_to_iter(bfad->regdata, &iocb->ki_pos, bfad->reglen, + to); =20 - if ((*pos + nbytes) >=3D bfad->reglen) { + if ((iocb->ki_pos + nbytes) >=3D bfad->reglen) { kfree(bfad->regdata); bfad->regdata =3D NULL; bfad->reglen =3D 0; @@ -235,11 +232,11 @@ bfad_debugfs_read_regrd(struct file *file, char __use= r *buf, } =20 static ssize_t -bfad_debugfs_write_regrd(struct file *file, const char __user *buf, - size_t nbytes, loff_t *ppos) +bfad_debugfs_write_regrd(struct kiocb *iocb, struct iov_iter *from) { - struct bfad_debug_info *regrd_debug =3D file->private_data; + struct bfad_debug_info *regrd_debug =3D iocb->ki_filp->private_data; struct bfad_port_s *port =3D (struct bfad_port_s *)regrd_debug->i_private; + size_t nbytes =3D iov_iter_count(from); struct bfad_s *bfad =3D port->bfad; struct bfa_s *bfa =3D &bfad->bfa; struct bfa_ioc_s *ioc =3D &bfa->ioc; @@ -250,7 +247,7 @@ bfad_debugfs_write_regrd(struct file *file, const char = __user *buf, unsigned long flags; void *kern_buf; =20 - kern_buf =3D memdup_user(buf, nbytes); + kern_buf =3D iterdup(from, nbytes); if (IS_ERR(kern_buf)) return PTR_ERR(kern_buf); =20 @@ -304,11 +301,11 @@ bfad_debugfs_write_regrd(struct file *file, const cha= r __user *buf, } =20 static ssize_t -bfad_debugfs_write_regwr(struct file *file, const char __user *buf, - size_t nbytes, loff_t *ppos) +bfad_debugfs_write_regwr(struct kiocb *iocb, struct iov_iter *from) { - struct bfad_debug_info *debug =3D file->private_data; + struct bfad_debug_info *debug =3D iocb->ki_filp->private_data; struct bfad_port_s *port =3D (struct bfad_port_s *)debug->i_private; + size_t nbytes =3D iov_iter_count(from); struct bfad_s *bfad =3D port->bfad; struct bfa_s *bfa =3D &bfad->bfa; struct bfa_ioc_s *ioc =3D &bfa->ioc; @@ -317,7 +314,7 @@ bfad_debugfs_write_regwr(struct file *file, const char = __user *buf, unsigned long flags; void *kern_buf; =20 - kern_buf =3D memdup_user(buf, nbytes); + kern_buf =3D iterdup(from, nbytes); if (IS_ERR(kern_buf)) return PTR_ERR(kern_buf); =20 @@ -382,7 +379,7 @@ static const struct file_operations bfad_debugfs_op_drv= trc =3D { .owner =3D THIS_MODULE, .open =3D bfad_debugfs_open_drvtrc, .llseek =3D bfad_debugfs_lseek, - .read =3D bfad_debugfs_read, + .read_iter =3D bfad_debugfs_read, .release =3D bfad_debugfs_release, }; =20 @@ -390,7 +387,7 @@ static const struct file_operations bfad_debugfs_op_fwt= rc =3D { .owner =3D THIS_MODULE, .open =3D bfad_debugfs_open_fwtrc, .llseek =3D bfad_debugfs_lseek, - .read =3D bfad_debugfs_read, + .read_iter =3D bfad_debugfs_read, .release =3D bfad_debugfs_release_fwtrc, }; =20 @@ -398,7 +395,7 @@ static const struct file_operations bfad_debugfs_op_fws= ave =3D { .owner =3D THIS_MODULE, .open =3D bfad_debugfs_open_fwsave, .llseek =3D bfad_debugfs_lseek, - .read =3D bfad_debugfs_read, + .read_iter =3D bfad_debugfs_read, .release =3D bfad_debugfs_release_fwtrc, }; =20 @@ -406,8 +403,8 @@ static const struct file_operations bfad_debugfs_op_reg= rd =3D { .owner =3D THIS_MODULE, .open =3D bfad_debugfs_open_reg, .llseek =3D bfad_debugfs_lseek, - .read =3D bfad_debugfs_read_regrd, - .write =3D bfad_debugfs_write_regrd, + .read_iter =3D bfad_debugfs_read_regrd, + .write_iter =3D bfad_debugfs_write_regrd, .release =3D bfad_debugfs_release, }; =20 @@ -415,7 +412,7 @@ static const struct file_operations bfad_debugfs_op_reg= wr =3D { .owner =3D THIS_MODULE, .open =3D bfad_debugfs_open_reg, .llseek =3D bfad_debugfs_lseek, - .write =3D bfad_debugfs_write_regwr, + .write_iter =3D bfad_debugfs_write_regwr, .release =3D bfad_debugfs_release, }; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f52.google.com (mail-io1-f52.google.com [209.85.166.52]) (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 0E5E93DAC18 for ; Thu, 11 Apr 2024 15:36:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849814; cv=none; b=VTnfCJSzh2720rkgH8P9V7DBqM3tfEOaNRpBtj5UVEtL74kJYCqCuCU0waRGCuXbm9hTQSxuG2GZPOuBo8pSMRYDuwMSQVlrZP1vakxiuc6smZIhhaJd0XtMs30qe4UAUAEFH4ui5SBkGdy2lvQ9Bdw2Qhb+oUue1Zu78Mh/nX8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849814; c=relaxed/simple; bh=rfz+O0uqNZr/oKCISs7Obwt+TIPvlNs8ZU0ahYZ9hMQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=OlMs47EM+OTueE7p2+oaIbXe4Cx9yZgMbAKnyA0Ap8bWb6pNEXoAZTIJLW7PwXwvO8iRZJ6fQ2t5aTaUju3rYkqSxHxMjpwEAzfF6QlY4keH8IZcWbKwbEcX1Q3LgJIjq2MZFBF7S3MpIxZ0+lYzTDt8xyYv+7cc8UvMJ7XzL4I= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=M7Y/y4zV; arc=none smtp.client-ip=209.85.166.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="M7Y/y4zV" Received: by mail-io1-f52.google.com with SMTP id ca18e2360f4ac-7d6812b37a6so8961439f.0 for ; Thu, 11 Apr 2024 08:36:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849812; x=1713454612; 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=+niwRwTilEtv6H6ChbZaxgzmpgAHxtENASmAVbkG/nU=; b=M7Y/y4zV+kFqUMAZDX7rQl9UqSHYpDB/tQgbl13CTi9BlWvZtd+V/8cyZZw9GCXjZq tJ5SasZbxtPcQHAdnZeVxhLzdkFjUIx/tBuHnl+PtYHwQQ0xKH7aSv6TPxIiMsAeR0Vx V7Lvos1wihhhYikJwn5Uy6S39vmO0P4EDDcPRIAPqaFOF+zAE0jLrczxHCz75hLJAF2I WgZYk0P7Jbk7SSs8Dx2krt8B5FwPKmG109oy6D5eF9/0P+YbuJMkRPMigTUrAuT6r3Bw cX/So8lWYwJkeVrG+VMYBu+ivTJWZz9jMWUR8kPxyx95lbtvkAV/l0SBBpWk1PIZ5dmJ /lWQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849812; x=1713454612; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=+niwRwTilEtv6H6ChbZaxgzmpgAHxtENASmAVbkG/nU=; b=Js1Q7UKUsDmvDDxMVeunc/vatBXg3hpLkSXIq+cKsKMoRBv9dMc9ucDjfQMX8c+2N2 pe9plSefBSjyulVAoSxiekFk4ryS9F+x5B72kt+n/Cbhra8eObuTkyrjikyQpQbnt1rS 6SNjKk5P4FUeelGGkQMl0/DBJvyvV4hXf858EvYMQ6hoskj3ke9bC6MuzXe1wDeRe5zx jiqJCBj+PKB/GevmMR4Q7jBooGnhf8XYd3G/aHDzb/qydR0RBQpl3xWMy7cErHfImkRN 5ofsOvm7qXxtob/4TzXgjjlN6ojnr1JDtb1IwaMJltgXSrOFmFADFcXmrgP0neXV8fB5 r2YA== X-Gm-Message-State: AOJu0YwqlRK7tYC2zzMmOMEtn1UpmJyP3MXd9mx+5NBl1132qikNAZSJ 0A56/KgLCla1Fn1i7tWYtT7f8ABOIHFc9vU8xObWNvBZlCORDWL01lSNdBZvI5RI7vt+ycBbXTk 0 X-Google-Smtp-Source: AGHT+IGMkeTtLoziutSAhwMvmaLe2zdxfslFrCy8hFB3sNO6kTGHkMF2NA+Gp4O9xoepp/n+n1dNyw== X-Received: by 2002:a6b:5b10:0:b0:7d0:bd2b:43ba with SMTP id v16-20020a6b5b10000000b007d0bd2b43bamr223683ioh.0.1712849812110; Thu, 11 Apr 2024 08:36:52 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.36.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:36:50 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 186/437] scsi: csiostor: convert to read/write iterators Date: Thu, 11 Apr 2024 09:15:26 -0600 Message-ID: <20240411153126.16201-187-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/scsi/csiostor/csio_init.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/drivers/scsi/csiostor/csio_init.c b/drivers/scsi/csiostor/csio= _init.c index d649b7a2a879..177d485975e1 100644 --- a/drivers/scsi/csiostor/csio_init.c +++ b/drivers/scsi/csiostor/csio_init.c @@ -59,13 +59,14 @@ static struct scsi_transport_template *csio_fcoe_transp= ort_vport; /* * debugfs support */ -static ssize_t -csio_mem_read(struct file *file, char __user *buf, size_t count, loff_t *p= pos) +static ssize_t csio_mem_read(struct kiocb *iocb, struct iov_iter *to) { - loff_t pos =3D *ppos; + loff_t pos =3D iocb->ki_pos; + struct file *file =3D iocb->ki_filp; loff_t avail =3D file_inode(file)->i_size; unsigned int mem =3D (uintptr_t)file->private_data & 3; struct csio_hw *hw =3D file->private_data - mem; + size_t count =3D iov_iter_count(to); =20 if (pos < 0) return -EINVAL; @@ -90,22 +91,21 @@ csio_mem_read(struct file *file, char __user *buf, size= _t count, loff_t *ppos) =20 ofst =3D pos % sizeof(data); len =3D min(count, sizeof(data) - ofst); - if (copy_to_user(buf, (u8 *)data + ofst, len)) + if (!copy_to_iter_full((u8 *)data + ofst, len, to)) return -EFAULT; =20 - buf +=3D len; pos +=3D len; count -=3D len; } - count =3D pos - *ppos; - *ppos =3D pos; + count =3D pos - iocb->ki_pos; + iocb->ki_pos =3D pos; return count; } =20 static const struct file_operations csio_mem_debugfs_fops =3D { .owner =3D THIS_MODULE, .open =3D simple_open, - .read =3D csio_mem_read, + .read_iter =3D csio_mem_read, .llseek =3D default_llseek, }; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f50.google.com (mail-io1-f50.google.com [209.85.166.50]) (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 C03B31B5C4C for ; Thu, 11 Apr 2024 15:36:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849816; cv=none; b=UooLhqu4z7BwC5W4H/fi1tyaE99tkLsZUSgI5QIGwCftDVOULH7j9hHkri7lKlMh5Cd3hd9tgk2KfR456jVmepiUQw0xKb2NakxLKmfK5wxBfC5EdlcsPGxkQ8W8dHvNgGIuqr0TuMFurDIs+bZwlVsYRbsiSEk1f3NIPr0bD1g= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849816; c=relaxed/simple; bh=6B5+sBgpQ49tvqpVnH31J+Qg5MY/I3Q98qyO2aPNYvE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=CeZ5M42DO8JsPMOIOALoWOXfuB0pEuAy0uiKQnL2zqQtdbDggzamOV8RHFCskBjcejPBqCZ53Lfx+L9PgN4oX+qQancLxDvYgcYMNJAgL14jGOB+t5sYPmtlZprbPP7VJ0jBIXIMkD0uopqb1QsJd8S5G7b0UG5i2CNH5taC17s= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=AE8Qtwz1; arc=none smtp.client-ip=209.85.166.50 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="AE8Qtwz1" Received: by mail-io1-f50.google.com with SMTP id ca18e2360f4ac-7d67d1073easo9805139f.0 for ; Thu, 11 Apr 2024 08:36:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849813; x=1713454613; 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=mNzRO5pO1j3jRjqZRnmLYzWISRQfbbN9QTBAFbt7aSo=; b=AE8Qtwz1/kjp43RmmvqxyCaH+zsfEX/qfBgxNoIg9Eo6ZyptOdCvZ8PpL3hTLItk8f JyDM8u7PBf2QalY+HcRvzM4b1ZoP+fjsTM3GN6nN3kFgjRe6jbQNvawTfM+GXEbyrMyb GLkZ7BTobupQqRkBpiWPmA03IX1vbwiWzvwHqmyB5JxY3uO/MVwhoKnYmDsLyDcLSspq 6tddqsDICYiS7DhKVZliZnSC/9UAV+p/2gpVNEsgcuUyjpSGmQsYCnxyGJEvAvrNBsZp SXN1Eif4bj4afVOK4ExG1T5k047upM6Dxl+dnm1wC2A9OryjeEeQxGzpfZgcd1m+pK67 sVMw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849813; x=1713454613; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=mNzRO5pO1j3jRjqZRnmLYzWISRQfbbN9QTBAFbt7aSo=; b=A7ybkrSvlKf/jf/d0IV/bpS+jkAVoVJtvX6//mDS7+ma/S4mMWFnxzyymiS5AO4tqr yF71HcLFzuOZyWHM0OcJ1x18C9W14E1XImdyE8JhkxaQGR5jj/nI51/V8Q9T2XuIz34+ 5lpskDxMrhA+zvW/LPkgRpmGqiRGvKvQUNY63ZSW0+yzxcvGFNGNgyF7CtX+mYrZ+gio ga/xl80QSZmct3eA/n+GKoEzUocO0Q3NHcUUx7MRO/DU2r/XnIIucQUMjia7cDsKqovv 9CFpLLAjabj1IXU87peDNBH3wy2GJCMumkmek4VRcwvjJwWujMJ5Iy+0WgQHD1l5GnxN SAqg== X-Gm-Message-State: AOJu0YzD5S6RNtviDxcsxhscuZXHrgIfp4rSvzQJ3Dc2JFT3x99c325q DZctQjGbX6SdnO/rLZAH1DaaghDehOY3wn1nESFVCJd4P7u8PWz6iTHY6fNp5j/DENhREwqDg0b h X-Google-Smtp-Source: AGHT+IHT9d6dRZv2UkY2CS17cfJ+3x6TGh873vCLv+jWLP9jrZ7f6kSj/ZWPV1EEPcxTEuz+4PGDXg== X-Received: by 2002:a6b:c34e:0:b0:7d6:7b7c:8257 with SMTP id t75-20020a6bc34e000000b007d67b7c8257mr219651iof.0.1712849813591; Thu, 11 Apr 2024 08:36:53 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.36.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:36:52 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 187/437] scsi: fnic: convert to read/write iterators Date: Thu, 11 Apr 2024 09:15:27 -0600 Message-ID: <20240411153126.16201-188-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/scsi/fnic/fnic_debugfs.c | 82 +++++++++++++------------------- 1 file changed, 33 insertions(+), 49 deletions(-) diff --git a/drivers/scsi/fnic/fnic_debugfs.c b/drivers/scsi/fnic/fnic_debu= gfs.c index 2619a2d4f5f1..2b2315e239f6 100644 --- a/drivers/scsi/fnic/fnic_debugfs.c +++ b/drivers/scsi/fnic/fnic_debugfs.c @@ -95,15 +95,13 @@ void fnic_debugfs_terminate(void) * Returns: * This function returns the amount of data that was read. */ -static ssize_t fnic_trace_ctrl_read(struct file *filp, - char __user *ubuf, - size_t cnt, loff_t *ppos) +static ssize_t fnic_trace_ctrl_read(struct kiocb *iocb, struct iov_iter *t= o) { char buf[64]; int len; u8 *trace_type; len =3D 0; - trace_type =3D (u8 *)filp->private_data; + trace_type =3D (u8 *)iocb->ki_filp->private_data; if (*trace_type =3D=3D fc_trc_flag->fnic_trace) len =3D sprintf(buf, "%d\n", fnic_tracing_enabled); else if (*trace_type =3D=3D fc_trc_flag->fc_trace) @@ -113,7 +111,7 @@ static ssize_t fnic_trace_ctrl_read(struct file *filp, else pr_err("fnic: Cannot read to any debugfs file\n"); =20 - return simple_read_from_buffer(ubuf, cnt, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 /* @@ -133,20 +131,19 @@ static ssize_t fnic_trace_ctrl_read(struct file *filp, * Returns: * This function returns the amount of data that was written. */ -static ssize_t fnic_trace_ctrl_write(struct file *filp, - const char __user *ubuf, - size_t cnt, loff_t *ppos) +static ssize_t fnic_trace_ctrl_write(struct kiocb *iocb, struct iov_iter *= from) { char buf[64]; unsigned long val; int ret; u8 *trace_type; - trace_type =3D (u8 *)filp->private_data; + size_t cnt =3D iov_iter_count(from); + trace_type =3D (u8 *)iocb->ki_filp->private_data; =20 if (cnt >=3D sizeof(buf)) return -EINVAL; =20 - if (copy_from_user(&buf, ubuf, cnt)) + if (!copy_from_iter_full(&buf, cnt, from)) return -EFAULT; =20 buf[cnt] =3D 0; @@ -164,16 +161,15 @@ static ssize_t fnic_trace_ctrl_write(struct file *fil= p, else pr_err("fnic: cannot write to any debugfs file\n"); =20 - (*ppos)++; - + iocb->ki_pos++; return cnt; } =20 static const struct file_operations fnic_trace_ctrl_fops =3D { .owner =3D THIS_MODULE, .open =3D simple_open, - .read =3D fnic_trace_ctrl_read, - .write =3D fnic_trace_ctrl_write, + .read_iter =3D fnic_trace_ctrl_read, + .write_iter =3D fnic_trace_ctrl_write, }; =20 /* @@ -267,17 +263,12 @@ static loff_t fnic_trace_debugfs_lseek(struct file *f= ile, * This function returns the amount of data that was read (this could be * less than @nbytes if the end of the file was reached). */ -static ssize_t fnic_trace_debugfs_read(struct file *file, - char __user *ubuf, - size_t nbytes, - loff_t *pos) +static ssize_t fnic_trace_debugfs_read(struct kiocb *iocb, struct iov_iter= *to) { - fnic_dbgfs_t *fnic_dbg_prt =3D file->private_data; - int rc =3D 0; - rc =3D simple_read_from_buffer(ubuf, nbytes, pos, - fnic_dbg_prt->buffer, - fnic_dbg_prt->buffer_len); - return rc; + fnic_dbgfs_t *fnic_dbg_prt =3D iocb->ki_filp->private_data; + + return simple_copy_to_iter(fnic_dbg_prt->buffer, &iocb->ki_pos, + fnic_dbg_prt->buffer_len, to); } =20 /* @@ -307,7 +298,7 @@ static const struct file_operations fnic_trace_debugfs_= fops =3D { .owner =3D THIS_MODULE, .open =3D fnic_trace_debugfs_open, .llseek =3D fnic_trace_debugfs_lseek, - .read =3D fnic_trace_debugfs_read, + .read_iter =3D fnic_trace_debugfs_read, .release =3D fnic_trace_debugfs_release, }; =20 @@ -459,18 +450,16 @@ static int fnic_reset_stats_open(struct inode *inode,= struct file *file) * Returns: * This function returns the amount of data that was read. */ -static ssize_t fnic_reset_stats_read(struct file *file, - char __user *ubuf, - size_t cnt, loff_t *ppos) +static ssize_t fnic_reset_stats_read(struct kiocb *iocb, struct iov_iter *= to) { - struct stats_debug_info *debug =3D file->private_data; + struct stats_debug_info *debug =3D iocb->ki_filp->private_data; struct fnic *fnic =3D (struct fnic *)debug->i_private; char buf[64]; int len; =20 len =3D sprintf(buf, "%u\n", fnic->reset_stats); =20 - return simple_read_from_buffer(ubuf, cnt, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 /* @@ -487,15 +476,15 @@ static ssize_t fnic_reset_stats_read(struct file *fil= e, * Returns: * This function returns the amount of data that was written. */ -static ssize_t fnic_reset_stats_write(struct file *file, - const char __user *ubuf, - size_t cnt, loff_t *ppos) +static ssize_t fnic_reset_stats_write(struct kiocb *iocb, + struct iov_iter *from) { - struct stats_debug_info *debug =3D file->private_data; + struct stats_debug_info *debug =3D iocb->ki_filp->private_data; struct fnic *fnic =3D (struct fnic *)debug->i_private; struct fnic_stats *stats =3D &fnic->fnic_stats; u64 *io_stats_p =3D (u64 *)&stats->io_stats; u64 *fw_stats_p =3D (u64 *)&stats->fw_stats; + size_t cnt =3D iov_iter_count(from); char buf[64]; unsigned long val; int ret; @@ -503,7 +492,7 @@ static ssize_t fnic_reset_stats_write(struct file *file, if (cnt >=3D sizeof(buf)) return -EINVAL; =20 - if (copy_from_user(&buf, ubuf, cnt)) + if (!copy_from_iter_full(&buf, cnt, from)) return -EFAULT; =20 buf[cnt] =3D 0; @@ -534,7 +523,7 @@ static ssize_t fnic_reset_stats_write(struct file *file, ktime_get_real_ts64(&stats->stats_timestamps.last_reset_time); } =20 - (*ppos)++; + iocb->ki_pos++; return cnt; } =20 @@ -615,17 +604,12 @@ static int fnic_stats_debugfs_open(struct inode *inod= e, * This function returns the amount of data that was read (this could be * less than @nbytes if the end of the file was reached). */ -static ssize_t fnic_stats_debugfs_read(struct file *file, - char __user *ubuf, - size_t nbytes, - loff_t *pos) +static ssize_t fnic_stats_debugfs_read(struct kiocb *iocb, struct iov_iter= *to) { - struct stats_debug_info *debug =3D file->private_data; - int rc =3D 0; - rc =3D simple_read_from_buffer(ubuf, nbytes, pos, - debug->debug_buffer, - debug->buffer_len); - return rc; + struct stats_debug_info *debug =3D iocb->ki_filp->private_data; + + return simple_copy_to_iter(debug->debug_buffer, &iocb->ki_pos, + debug->buffer_len, to); } =20 /* @@ -653,15 +637,15 @@ static int fnic_stats_debugfs_release(struct inode *i= node, static const struct file_operations fnic_stats_debugfs_fops =3D { .owner =3D THIS_MODULE, .open =3D fnic_stats_debugfs_open, - .read =3D fnic_stats_debugfs_read, + .read_iter =3D fnic_stats_debugfs_read, .release =3D fnic_stats_debugfs_release, }; =20 static const struct file_operations fnic_reset_debugfs_fops =3D { .owner =3D THIS_MODULE, .open =3D fnic_reset_stats_open, - .read =3D fnic_reset_stats_read, - .write =3D fnic_reset_stats_write, + .read_iter =3D fnic_reset_stats_read, + .write_iter =3D fnic_reset_stats_write, .release =3D fnic_reset_stats_release, }; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f46.google.com (mail-io1-f46.google.com [209.85.166.46]) (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 8FCC71B5C71 for ; Thu, 11 Apr 2024 15:36:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849818; cv=none; b=tAZDXfW7ZzAFWjxR3GF1v46MVUwpevXdW8eIESApz8XZA4pkcLTZ6HXuZzmdCJfMjem9WciTtysri/bySysvm3cyMSxTSRZNLuL4D1UrHX3Gdkatd0W6mRvcH12sEgvB+TXb1lso+4CG4H1zLorI8bcBlJI3PsrhyAdXQYmtmDM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849818; c=relaxed/simple; bh=CC1svicLdhaCZjlfFeGhHfz/dADQtWSLZWgsjapD24o=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=QePY4HY6G6NFQCi53h0kzuEsLi85+cbgRK3wijtVVim9oXifVfQftoEtYRt9PmxXE+NI3osVhpEqFEielfGEMDkbUBU86Wrr5S5iRFiKOInC4RBSlDweOCjbqE3RPIpVyDec36J5WVQggTmGZzhS9Ndd4zY7+ZoZo67E2a9pSQg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=Vx3+GN7z; arc=none smtp.client-ip=209.85.166.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="Vx3+GN7z" Received: by mail-io1-f46.google.com with SMTP id ca18e2360f4ac-7d6812b37a6so8962739f.0 for ; Thu, 11 Apr 2024 08:36:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849815; x=1713454615; 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=l+P5h9EHRqAZnU4fmhFvxdCq3ZFo6GEMZOC+/tcWY+Q=; b=Vx3+GN7zSp9uTMXiiGovRZb166y+aQlT46eCKmK8GXOIYocDZBui/sFWKCeHuSr12N epp8Q2B+31/fdrAV4ZJdE+EMrHirPDgYKjApuUORoyJm2/Vad4n6NhXcjcYkTyn0Etry U6yjnk9MYG+drfZ7RyrQx0WsE8wtdkY2IiG4PNfq2h+sWm/yBE/dERzUFGBzgZ2FY2z+ MwjCYS75DzUVIhQD0AaTENBlNMEz4maiyNiF71FJsL5cdG2woAP2LDc57tpCEMzIk/Tj 9RC2Ej+X7uKY01Xs8bMQ2E465QwQWsxfoAZEPqfavA7mh1KiMnWcVNmgX9vN2og6Mxx6 yLcg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849815; x=1713454615; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=l+P5h9EHRqAZnU4fmhFvxdCq3ZFo6GEMZOC+/tcWY+Q=; b=NoAn46wCS2bXr5Mp3hQOiiBSW3uO5HkrXH2gLHsTPqoX+U+bX7o6K8/prhOHgrR6Pv XG1xEJAV6w5Z+FsDJJV8IrfB1TFFLC1M9c3KiZTz4yM8o6bHdqOfQMwKh/k+PVnYktyg KLDthZyzaBSO9LKdEGWnCpnGYwIrwex7Es/2epp6/CEjRtWUrEqBkmk+2TvYXSTVZePY Jj6DaYADgjgzIfG7PqI0bCVPVmbnk8+hA+ugicXs0tSUfQaXr6ITYbZ1O5+Uqe5pN0gk jXvfct3mKISZHgdq9FsuyxmfbDN+EN5CmIP3L/+vScTUUFYVQ4PiMQiS91vFrc4I+tRz +A9A== X-Gm-Message-State: AOJu0Yx6JmfOv1eq4xDSWtOtKaQ4mFZ/X9l9+lbMsC+d3eC5nrSkBpbz 8A3ltPM1UTHxaEYASMAEAgqDa5MSmjVni1iLaZeK9w9XzeqCiY/161lXjSKljdGZwVqRMOLthy9 b X-Google-Smtp-Source: AGHT+IGDBdNyh7jdQ201cBXvSwj8qQJzK6uSpttLxgyYt5o8rwY9vuij5Z8tDQL9xw66cbUEjXPYKg== X-Received: by 2002:a6b:5b10:0:b0:7d0:bd2b:43ba with SMTP id v16-20020a6b5b10000000b007d0bd2b43bamr223815ioh.0.1712849815292; Thu, 11 Apr 2024 08:36:55 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.36.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:36:53 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 188/437] scsi: hisi_sas: convert to read/write iterators Date: Thu, 11 Apr 2024 09:15:28 -0600 Message-ID: <20240411153126.16201-189-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/scsi/hisi_sas/hisi_sas_v3_hw.c | 105 ++++++++++++------------- 1 file changed, 52 insertions(+), 53 deletions(-) diff --git a/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c b/drivers/scsi/hisi_sas= /hisi_sas_v3_hw.c index 7d2a33514538..79ad1662f601 100644 --- a/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c +++ b/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c @@ -3858,17 +3858,17 @@ static void debugfs_create_files_v3_hw(struct hisi_= hba *hisi_hba) &debugfs_ras_v3_hw_fops); } =20 -static ssize_t debugfs_trigger_dump_v3_hw_write(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t debugfs_trigger_dump_v3_hw_write(struct kiocb *iocb, + struct iov_iter *from) { - struct hisi_hba *hisi_hba =3D file->f_inode->i_private; + struct hisi_hba *hisi_hba =3D iocb->ki_filp->f_inode->i_private; + size_t count =3D iov_iter_count(from); char buf[8]; =20 if (count > 8) return -EFAULT; =20 - if (copy_from_user(buf, user_buf, count)) + if (!copy_from_iter_full(buf, count, from)) return -EFAULT; =20 if (buf[0] !=3D '1') @@ -3885,7 +3885,7 @@ static ssize_t debugfs_trigger_dump_v3_hw_write(struc= t file *file, } =20 static const struct file_operations debugfs_trigger_dump_v3_hw_fops =3D { - .write =3D &debugfs_trigger_dump_v3_hw_write, + .write_iter =3D debugfs_trigger_dump_v3_hw_write, .owner =3D THIS_MODULE, }; =20 @@ -3923,12 +3923,12 @@ static int debugfs_bist_linkrate_v3_hw_show(struct = seq_file *s, void *p) return 0; } =20 -static ssize_t debugfs_bist_linkrate_v3_hw_write(struct file *filp, - const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t debugfs_bist_linkrate_v3_hw_write_iter(struct kiocb *iocb, + struct iov_iter *from) { - struct seq_file *m =3D filp->private_data; + struct seq_file *m =3D iocb->ki_filp->private_data; struct hisi_hba *hisi_hba =3D m->private; + size_t count =3D iov_iter_count(from); char kbuf[16] =3D {}, *pkbuf; bool found =3D false; int i; @@ -3939,7 +3939,7 @@ static ssize_t debugfs_bist_linkrate_v3_hw_write(stru= ct file *filp, if (count >=3D sizeof(kbuf)) return -EOVERFLOW; =20 - if (copy_from_user(kbuf, buf, count)) + if (!copy_from_iter_full(kbuf, count, from)) return -EINVAL; =20 pkbuf =3D strstrip(kbuf); @@ -3997,12 +3997,11 @@ static int debugfs_bist_code_mode_v3_hw_show(struct= seq_file *s, void *p) return 0; } =20 -static ssize_t debugfs_bist_code_mode_v3_hw_write(struct file *filp, - const char __user *buf, - size_t count, - loff_t *ppos) +static ssize_t debugfs_bist_code_mode_v3_hw_write_iter(struct kiocb *iocb, + struct iov_iter *from) { - struct seq_file *m =3D filp->private_data; + struct seq_file *m =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); struct hisi_hba *hisi_hba =3D m->private; char kbuf[16] =3D {}, *pkbuf; bool found =3D false; @@ -4014,7 +4013,7 @@ static ssize_t debugfs_bist_code_mode_v3_hw_write(str= uct file *filp, if (count >=3D sizeof(kbuf)) return -EINVAL; =20 - if (copy_from_user(kbuf, buf, count)) + if (!copy_from_iter_full(kbuf, count, from)) return -EOVERFLOW; =20 pkbuf =3D strstrip(kbuf); @@ -4036,19 +4035,19 @@ static ssize_t debugfs_bist_code_mode_v3_hw_write(s= truct file *filp, } DEFINE_SHOW_STORE_ATTRIBUTE(debugfs_bist_code_mode_v3_hw); =20 -static ssize_t debugfs_bist_phy_v3_hw_write(struct file *filp, - const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t debugfs_bist_phy_v3_hw_write_iter(struct kiocb *iocb, + struct iov_iter *from) { - struct seq_file *m =3D filp->private_data; + struct seq_file *m =3D iocb->ki_filp->private_data; struct hisi_hba *hisi_hba =3D m->private; + size_t count =3D iov_iter_count(from); unsigned int phy_no; int val; =20 if (hisi_hba->debugfs_bist_enable) return -EPERM; =20 - val =3D kstrtouint_from_user(buf, count, 0, &phy_no); + val =3D kstrtouint_from_iter(from, count, 0, &phy_no); if (val) return val; =20 @@ -4070,19 +4069,19 @@ static int debugfs_bist_phy_v3_hw_show(struct seq_f= ile *s, void *p) } DEFINE_SHOW_STORE_ATTRIBUTE(debugfs_bist_phy_v3_hw); =20 -static ssize_t debugfs_bist_cnt_v3_hw_write(struct file *filp, - const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t debugfs_bist_cnt_v3_hw_write_iter(struct kiocb *iocb, + struct iov_iter *from) { - struct seq_file *m =3D filp->private_data; + struct seq_file *m =3D iocb->ki_filp->private_data; struct hisi_hba *hisi_hba =3D m->private; + size_t count =3D iov_iter_count(from); unsigned int cnt; int val; =20 if (hisi_hba->debugfs_bist_enable) return -EPERM; =20 - val =3D kstrtouint_from_user(buf, count, 0, &cnt); + val =3D kstrtouint_from_iter(from, count, 0, &cnt); if (val) return val; =20 @@ -4130,12 +4129,12 @@ static int debugfs_bist_mode_v3_hw_show(struct seq_= file *s, void *p) return 0; } =20 -static ssize_t debugfs_bist_mode_v3_hw_write(struct file *filp, - const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t debugfs_bist_mode_v3_hw_write_iter(struct kiocb *iocb, + struct iov_iter *from) { - struct seq_file *m =3D filp->private_data; + struct seq_file *m =3D iocb->ki_filp->private_data; struct hisi_hba *hisi_hba =3D m->private; + size_t count =3D iov_iter_count(from); char kbuf[16] =3D {}, *pkbuf; bool found =3D false; int i; @@ -4146,7 +4145,7 @@ static ssize_t debugfs_bist_mode_v3_hw_write(struct f= ile *filp, if (count >=3D sizeof(kbuf)) return -EINVAL; =20 - if (copy_from_user(kbuf, buf, count)) + if (!copy_from_iter_full(kbuf, count, from)) return -EOVERFLOW; =20 pkbuf =3D strstrip(kbuf); @@ -4167,16 +4166,16 @@ static ssize_t debugfs_bist_mode_v3_hw_write(struct= file *filp, } DEFINE_SHOW_STORE_ATTRIBUTE(debugfs_bist_mode_v3_hw); =20 -static ssize_t debugfs_bist_enable_v3_hw_write(struct file *filp, - const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t debugfs_bist_enable_v3_hw_write_iter(struct kiocb *iocb, + struct iov_iter *from) { - struct seq_file *m =3D filp->private_data; + struct seq_file *m =3D iocb->ki_filp->private_data; struct hisi_hba *hisi_hba =3D m->private; + size_t count =3D iov_iter_count(from); unsigned int enable; int val; =20 - val =3D kstrtouint_from_user(buf, count, 0, &enable); + val =3D kstrtouint_from_iter(from, count, 0, &enable); if (val) return val; =20 @@ -4218,15 +4217,15 @@ static const struct { { "SATA_6_0_GBPS" }, }; =20 -static ssize_t debugfs_v3_hw_write(struct file *filp, - const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t debugfs_v3_hw_write_iter(struct kiocb *iocb, + struct iov_iter *from) { - struct seq_file *m =3D filp->private_data; + struct seq_file *m =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); u32 *val =3D m->private; int res; =20 - res =3D kstrtouint_from_user(buf, count, 0, val); + res =3D kstrtouint_from_iter(from, count, 0, val); if (res) return res; =20 @@ -4243,16 +4242,16 @@ static int debugfs_v3_hw_show(struct seq_file *s, v= oid *p) } DEFINE_SHOW_STORE_ATTRIBUTE(debugfs_v3_hw); =20 -static ssize_t debugfs_phy_down_cnt_v3_hw_write(struct file *filp, - const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t debugfs_phy_down_cnt_v3_hw_write_iter(struct kiocb *iocb, + struct iov_iter *from) { - struct seq_file *s =3D filp->private_data; + struct seq_file *s =3D iocb->ki_filp->private_data; struct hisi_sas_phy *phy =3D s->private; + size_t count =3D iov_iter_count(from); unsigned int set_val; int res; =20 - res =3D kstrtouint_from_user(buf, count, 0, &set_val); + res =3D kstrtouint_from_iter(from, count, 0, &set_val); if (res) return res; =20 @@ -4370,15 +4369,15 @@ static int debugfs_update_fifo_config_v3_hw(struct = hisi_sas_phy *phy) return 0; } =20 -static ssize_t debugfs_fifo_update_cfg_v3_hw_write(struct file *filp, - const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t debugfs_fifo_update_cfg_v3_hw_write(struct kiocb *iocb, + struct iov_iter *from) { - struct hisi_sas_phy *phy =3D filp->private_data; + struct hisi_sas_phy *phy =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); bool update; int val; =20 - val =3D kstrtobool_from_user(buf, count, &update); + val =3D kstrtobool_from_iter(from, count, &update); if (val) return val; =20 @@ -4394,7 +4393,7 @@ static ssize_t debugfs_fifo_update_cfg_v3_hw_write(st= ruct file *filp, =20 static const struct file_operations debugfs_fifo_update_cfg_v3_hw_fops =3D= { .open =3D simple_open, - .write =3D debugfs_fifo_update_cfg_v3_hw_write, + .write_iter =3D debugfs_fifo_update_cfg_v3_hw_write, .owner =3D THIS_MODULE, }; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f46.google.com (mail-io1-f46.google.com [209.85.166.46]) (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 0091F1B6805 for ; Thu, 11 Apr 2024 15:36:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849822; cv=none; b=uLSVr73ih+Ov4QZBKGVlXy3X4+uVHIf800XGAxyTXwiqXlIrUEbk4ydwPoIxed7edtxnftn38q5ti8lTWMFt+T2O64iGlcvR6lfR21pvpqB9BUs6DuAVm1DGoFLzsPEdQ9ZCgRLKMLvScQHQLYFepBmDYBhBkYEZuU9EIn8T0Pc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849822; c=relaxed/simple; bh=d6VpjgzfajIj1UcUZFcEqQw0jsECoDaer/iWlPGCZqc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=TrIjt3xFgjeB7DmUI6fh4qjQwHuELW7ra+lcnnNTAKLNo3PL/Qaq3SW7u1fyHYOFHP1ijulYd9HvOX+WC8ynYyaKPy6WMUiLy6TVrY3ueoX3rLVzJ9GycdLU4FXMt9X/2dRAhjl2GVDA09ikJq4AMTG3rryaNsLcBtHQ2JCQ2DI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=dDnCc6yI; arc=none smtp.client-ip=209.85.166.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="dDnCc6yI" Received: by mail-io1-f46.google.com with SMTP id ca18e2360f4ac-7d5ed700c2dso16175039f.0 for ; Thu, 11 Apr 2024 08:36:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849818; x=1713454618; 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=ZaaiZmQRVLgjZ85lQORx1zhxx+qF5nkcdoRvFYzJZYo=; b=dDnCc6yIt+pAt3iHsk30ldlENfXtHUT3OZEtjP4ol6lLuh3WJ56wFk2Q5GGF0ZCkOf GfxtEAAhvIpymv6EGutVb1S3Sb6v+W/TT9Wcdy+g51RlGzjzFGAa1fM2UWDdHrNzUijn BjCKMA9JI2ZDNA6SJAlaHAsGg6UzezutCJhE2zYgujsO4NtLPpOyjbM/CZJzf0M2aktu GYYUuyRiKw2THGhdPQuBD84DVAm9AZGELGsEcnQOcaB0FeTLsCWY7owgJygDhchu9d8+ aDcZqDenORmkSru/tBj1fIcnmjldO+17ub/e/DcYWoML9cBqFn2O4h9uyws18tKX/pRW GZqg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849818; x=1713454618; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ZaaiZmQRVLgjZ85lQORx1zhxx+qF5nkcdoRvFYzJZYo=; b=TBbjDscb2csvhboPRs0xcUqFnkJBn6ZrFUQ9ozgw4Td5SCcQx2tHVliQdD7pqUK10q pnUNDvsvcte41hYXVLUZ0gGByUgiKje5tt9uSquTBcaB2vF2ThrxCwqlvfBcWeiEZDl+ hXeUFW/9jqbHDm5TH3lctM1NyAdgX1J3Hcqs/WlgG0G95Z+UEqmT3VYkOtx9dGs2xaYn NpwezR3jylB0F4jW1SYVbXv/F/7Sj9STfJkKNKsYRxZ23SI64aK4s9LmdQv6f2peYPBN avA76lrPFjsicN4NKixRIwEiDnThmxxZRljjm07Ks/lbDUGFCgzTZvk+a6NZbC4qyyeP 7xSQ== X-Gm-Message-State: AOJu0YyZ0ubzhV4CAueQOcCKQKERxfbjAIHS8qfFTj3j/J340T8IEVvs lOAoqDNMYtYxcmBNk/J4Vlf+qtFp23B9oUfU4qybbwR2TDe9dGOJvTiFkvhFKbC6WXbRHgH27vz U X-Google-Smtp-Source: AGHT+IHhcKO6ZHqR6gk//G+IVVL+I9XABi8txlOILR1cPBIOqHy1f6onAHF+XsEMjm66OuibsGCLYA== X-Received: by 2002:a05:6602:38d:b0:7d6:513b:254 with SMTP id f13-20020a056602038d00b007d6513b0254mr187090iov.2.1712849817223; Thu, 11 Apr 2024 08:36:57 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.36.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:36:55 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 189/437] scsi: lpfc: convert to read/write iterators Date: Thu, 11 Apr 2024 09:15:29 -0600 Message-ID: <20240411153126.16201-190-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/scsi/lpfc/lpfc_debugfs.c | 427 ++++++++++++++----------------- 1 file changed, 187 insertions(+), 240 deletions(-) diff --git a/drivers/scsi/lpfc/lpfc_debugfs.c b/drivers/scsi/lpfc/lpfc_debu= gfs.c index a2d2b02b3418..bc75753d6c4a 100644 --- a/drivers/scsi/lpfc/lpfc_debugfs.c +++ b/drivers/scsi/lpfc/lpfc_debugfs.c @@ -2146,11 +2146,11 @@ lpfc_debugfs_lockstat_open(struct inode *inode, str= uct file *file) } =20 static ssize_t -lpfc_debugfs_lockstat_write(struct file *file, const char __user *buf, - size_t nbytes, loff_t *ppos) +lpfc_debugfs_lockstat_write(struct kiocb *iocb, struct iov_iter *from) { - struct lpfc_debug *debug =3D file->private_data; + struct lpfc_debug *debug =3D iocb->ki_filp->private_data; struct lpfc_hba *phba =3D (struct lpfc_hba *)debug->i_private; + size_t nbytes =3D iov_iter_count(from); struct lpfc_sli4_hdw_queue *qp; char mybuf[64]; char *pbuf; @@ -2161,7 +2161,7 @@ lpfc_debugfs_lockstat_write(struct file *file, const = char __user *buf, =20 bsize =3D min(nbytes, (sizeof(mybuf) - 1)); =20 - if (copy_from_user(mybuf, buf, bsize)) + if (!copy_from_iter_full(mybuf, bsize, from)) return -EFAULT; pbuf =3D &mybuf[0]; =20 @@ -2371,12 +2371,10 @@ lpfc_debugfs_dumpHostSlim_open(struct inode *inode,= struct file *file) return rc; } =20 -static ssize_t -lpfc_debugfs_dif_err_read(struct file *file, char __user *buf, - size_t nbytes, loff_t *ppos) +static ssize_t lpfc_debugfs_dif_err_read(struct kiocb *iocb, struct iov_it= er *to) { - struct dentry *dent =3D file->f_path.dentry; - struct lpfc_hba *phba =3D file->private_data; + struct dentry *dent =3D iocb->ki_filp->f_path.dentry; + struct lpfc_hba *phba =3D iocb->ki_filp->private_data; char cbuf[32]; uint64_t tmp =3D 0; int cnt =3D 0; @@ -2410,22 +2408,22 @@ lpfc_debugfs_dif_err_read(struct file *file, char _= _user *buf, lpfc_printf_log(phba, KERN_ERR, LOG_INIT, "0547 Unknown debugfs error injection entry\n"); =20 - return simple_read_from_buffer(buf, nbytes, ppos, &cbuf, cnt); + return simple_copy_to_iter(&cbuf, &iocb->ki_pos, cnt, to); } =20 static ssize_t -lpfc_debugfs_dif_err_write(struct file *file, const char __user *buf, - size_t nbytes, loff_t *ppos) +lpfc_debugfs_dif_err_write(struct kiocb *iocb, struct iov_iter *from) { - struct dentry *dent =3D file->f_path.dentry; - struct lpfc_hba *phba =3D file->private_data; + struct dentry *dent =3D iocb->ki_filp->f_path.dentry; + struct lpfc_hba *phba =3D iocb->ki_filp->private_data; + size_t nbytes =3D iov_iter_count(from); char dstbuf[33]; uint64_t tmp =3D 0; int size; =20 memset(dstbuf, 0, 33); size =3D (nbytes < 32) ? nbytes : 32; - if (copy_from_user(dstbuf, buf, size)) + if (!copy_from_iter_full(dstbuf, size, from)) return -EFAULT; =20 if (dent =3D=3D phba->debug_InjErrLBA) { @@ -2537,10 +2535,8 @@ lpfc_debugfs_lseek(struct file *file, loff_t off, in= t whence) =20 /** * lpfc_debugfs_read - Read a debugfs file - * @file: The file pointer to read from. - * @buf: The buffer to copy the data to. - * @nbytes: The number of bytes to read. - * @ppos: The position in the file to start reading from. + * @iocb: Metadata for IO + * @to: The buffer to copy the data to. * * Description: * This routine reads data from from the buffer indicated in the private_d= ata @@ -2552,13 +2548,12 @@ lpfc_debugfs_lseek(struct file *file, loff_t off, i= nt whence) * than @nbytes if the end of the file was reached) or a negative error va= lue. **/ static ssize_t -lpfc_debugfs_read(struct file *file, char __user *buf, - size_t nbytes, loff_t *ppos) +lpfc_debugfs_read(struct kiocb *iocb, struct iov_iter *to) { - struct lpfc_debug *debug =3D file->private_data; + struct lpfc_debug *debug =3D iocb->ki_filp->private_data; =20 - return simple_read_from_buffer(buf, nbytes, ppos, debug->buffer, - debug->len); + return simple_copy_to_iter(debug->buffer, &iocb->ki_pos, debug->len, + to); } =20 /** @@ -2586,10 +2581,8 @@ lpfc_debugfs_release(struct inode *inode, struct fil= e *file) =20 /** * lpfc_debugfs_multixripools_write - Clear multi-XRI pools statistics - * @file: The file pointer to read from. - * @buf: The buffer to copy the user data from. - * @nbytes: The number of bytes to get. - * @ppos: The position in the file to start reading from. + * @iocb: Metadata for IO + * @from: The buffer to copy the user data from. * * Description: * This routine clears multi-XRI pools statistics when buf contains "clear= ". @@ -2600,10 +2593,10 @@ lpfc_debugfs_release(struct inode *inode, struct fi= le *file) * space. **/ static ssize_t -lpfc_debugfs_multixripools_write(struct file *file, const char __user *buf, - size_t nbytes, loff_t *ppos) +lpfc_debugfs_multixripools_write(struct kiocb *iocb, struct iov_iter *from) { - struct lpfc_debug *debug =3D file->private_data; + struct lpfc_debug *debug =3D iocb->ki_filp->private_data; + size_t nbytes =3D iov_iter_count(from); struct lpfc_hba *phba =3D (struct lpfc_hba *)debug->i_private; char mybuf[64]; char *pbuf; @@ -2617,7 +2610,7 @@ lpfc_debugfs_multixripools_write(struct file *file, c= onst char __user *buf, =20 memset(mybuf, 0, sizeof(mybuf)); =20 - if (copy_from_user(mybuf, buf, nbytes)) + if (!copy_from_iter_full(mybuf, nbytes, from)) return -EFAULT; pbuf =3D &mybuf[0]; =20 @@ -2680,12 +2673,12 @@ lpfc_debugfs_nvmestat_open(struct inode *inode, str= uct file *file) } =20 static ssize_t -lpfc_debugfs_nvmestat_write(struct file *file, const char __user *buf, - size_t nbytes, loff_t *ppos) +lpfc_debugfs_nvmestat_write(struct kiocb *iocb, struct iov_iter *from) { - struct lpfc_debug *debug =3D file->private_data; + struct lpfc_debug *debug =3D iocb->ki_filp->private_data; struct lpfc_vport *vport =3D (struct lpfc_vport *)debug->i_private; struct lpfc_hba *phba =3D vport->phba; + size_t nbytes =3D iov_iter_count(from); struct lpfc_nvmet_tgtport *tgtp; char mybuf[64]; char *pbuf; @@ -2698,7 +2691,7 @@ lpfc_debugfs_nvmestat_write(struct file *file, const = char __user *buf, =20 memset(mybuf, 0, sizeof(mybuf)); =20 - if (copy_from_user(mybuf, buf, nbytes)) + if (!copy_from_iter_full(mybuf, nbytes, from)) return -EFAULT; pbuf =3D &mybuf[0]; =20 @@ -2768,17 +2761,17 @@ lpfc_debugfs_scsistat_open(struct inode *inode, str= uct file *file) } =20 static ssize_t -lpfc_debugfs_scsistat_write(struct file *file, const char __user *buf, - size_t nbytes, loff_t *ppos) +lpfc_debugfs_scsistat_write(struct kiocb *iocb, struct iov_iter *from) { - struct lpfc_debug *debug =3D file->private_data; + struct lpfc_debug *debug =3D iocb->ki_filp->private_data; struct lpfc_vport *vport =3D (struct lpfc_vport *)debug->i_private; + size_t nbytes =3D iov_iter_count(from); struct lpfc_hba *phba =3D vport->phba; char mybuf[6] =3D {0}; int i; =20 - if (copy_from_user(mybuf, buf, (nbytes >=3D sizeof(mybuf)) ? - (sizeof(mybuf) - 1) : nbytes)) + if (!copy_from_iter_full(mybuf, (nbytes >=3D sizeof(mybuf)) ? + (sizeof(mybuf) - 1) : nbytes, from)) return -EFAULT; =20 if ((strncmp(&mybuf[0], "reset", strlen("reset")) =3D=3D 0) || @@ -2822,12 +2815,12 @@ lpfc_debugfs_ioktime_open(struct inode *inode, stru= ct file *file) } =20 static ssize_t -lpfc_debugfs_ioktime_write(struct file *file, const char __user *buf, - size_t nbytes, loff_t *ppos) +lpfc_debugfs_ioktime_write(struct kiocb *iocb, struct iov_iter *from) { - struct lpfc_debug *debug =3D file->private_data; + struct lpfc_debug *debug =3D iocb->ki_filp->private_data; struct lpfc_vport *vport =3D (struct lpfc_vport *)debug->i_private; struct lpfc_hba *phba =3D vport->phba; + size_t nbytes =3D iov_iter_count(from); char mybuf[64]; char *pbuf; =20 @@ -2836,7 +2829,7 @@ lpfc_debugfs_ioktime_write(struct file *file, const c= har __user *buf, =20 memset(mybuf, 0, sizeof(mybuf)); =20 - if (copy_from_user(mybuf, buf, nbytes)) + if (!copy_from_iter_full(mybuf, nbytes, from)) return -EFAULT; pbuf =3D &mybuf[0]; =20 @@ -2949,11 +2942,11 @@ lpfc_debugfs_nvmeio_trc_open(struct inode *inode, s= truct file *file) } =20 static ssize_t -lpfc_debugfs_nvmeio_trc_write(struct file *file, const char __user *buf, - size_t nbytes, loff_t *ppos) +lpfc_debugfs_nvmeio_trc_write(struct kiocb *iocb, struct iov_iter *from) { - struct lpfc_debug *debug =3D file->private_data; + struct lpfc_debug *debug =3D iocb->ki_filp->private_data; struct lpfc_hba *phba =3D (struct lpfc_hba *)debug->i_private; + size_t nbytes =3D iov_iter_count(from); int i; unsigned long sz; char mybuf[64]; @@ -2964,7 +2957,7 @@ lpfc_debugfs_nvmeio_trc_write(struct file *file, cons= t char __user *buf, =20 memset(mybuf, 0, sizeof(mybuf)); =20 - if (copy_from_user(mybuf, buf, nbytes)) + if (!copy_from_iter_full(mybuf, nbytes, from)) return -EFAULT; pbuf =3D &mybuf[0]; =20 @@ -3054,12 +3047,12 @@ lpfc_debugfs_hdwqstat_open(struct inode *inode, str= uct file *file) } =20 static ssize_t -lpfc_debugfs_hdwqstat_write(struct file *file, const char __user *buf, - size_t nbytes, loff_t *ppos) +lpfc_debugfs_hdwqstat_write(struct kiocb *iocb, struct iov_iter *from) { - struct lpfc_debug *debug =3D file->private_data; + struct lpfc_debug *debug =3D iocb->ki_filp->private_data; struct lpfc_vport *vport =3D (struct lpfc_vport *)debug->i_private; struct lpfc_hba *phba =3D vport->phba; + size_t nbytes =3D iov_iter_count(from); struct lpfc_hdwq_stat *c_stat; char mybuf[64]; char *pbuf; @@ -3070,7 +3063,7 @@ lpfc_debugfs_hdwqstat_write(struct file *file, const = char __user *buf, =20 memset(mybuf, 0, sizeof(mybuf)); =20 - if (copy_from_user(mybuf, buf, nbytes)) + if (!copy_from_iter_full(mybuf, nbytes, from)) return -EFAULT; pbuf =3D &mybuf[0]; =20 @@ -3139,9 +3132,10 @@ lpfc_debugfs_hdwqstat_write(struct file *file, const= char __user *buf, * This routine returns 0 when successful, it returns proper error code * back to the user space in error conditions. */ -static int lpfc_idiag_cmd_get(const char __user *buf, size_t nbytes, +static int lpfc_idiag_cmd_get(struct iov_iter *from, struct lpfc_idiag_cmd *idiag_cmd) { + size_t nbytes =3D iov_iter_count(from); char mybuf[64]; char *pbuf, *step_str; int i; @@ -3151,7 +3145,7 @@ static int lpfc_idiag_cmd_get(const char __user *buf,= size_t nbytes, memset(idiag_cmd, 0, sizeof(*idiag_cmd)); bsize =3D min(nbytes, (sizeof(mybuf)-1)); =20 - if (copy_from_user(mybuf, buf, bsize)) + if (!copy_from_iter_full(mybuf, bsize, from)) return -EFAULT; pbuf =3D &mybuf[0]; step_str =3D strsep(&pbuf, "\t "); @@ -3273,10 +3267,8 @@ lpfc_idiag_cmd_release(struct inode *inode, struct f= ile *file) =20 /** * lpfc_idiag_pcicfg_read - idiag debugfs read pcicfg - * @file: The file pointer to read from. - * @buf: The buffer to copy the data to. - * @nbytes: The number of bytes to read. - * @ppos: The position in the file to start reading from. + * @iocb: Metadata for IO + * @to: The buffer to copy the data to. * * Description: * This routine reads data from the @phba pci config space according to the @@ -3289,11 +3281,9 @@ lpfc_idiag_cmd_release(struct inode *inode, struct f= ile *file) * This function returns the amount of data that was read (this could be l= ess * than @nbytes if the end of the file was reached) or a negative error va= lue. **/ -static ssize_t -lpfc_idiag_pcicfg_read(struct file *file, char __user *buf, size_t nbytes, - loff_t *ppos) +static ssize_t lpfc_idiag_pcicfg_read(struct kiocb *iocb, struct iov_iter = *to) { - struct lpfc_debug *debug =3D file->private_data; + struct lpfc_debug *debug =3D iocb->ki_filp->private_data; struct lpfc_hba *phba =3D (struct lpfc_hba *)debug->i_private; int offset_label, offset, len =3D 0, index =3D LPFC_PCI_CFG_RD_SIZE; int where, count; @@ -3316,7 +3306,7 @@ lpfc_idiag_pcicfg_read(struct file *file, char __user= *buf, size_t nbytes, return 0; pbuffer =3D debug->buffer; =20 - if (*ppos) + if (iocb->ki_pos) return 0; =20 if (idiag.cmd.opcode =3D=3D LPFC_IDIAG_CMD_PCICFG_RD) { @@ -3349,7 +3339,7 @@ lpfc_idiag_pcicfg_read(struct file *file, char __user= *buf, size_t nbytes, len =3D 0; break; } - return simple_read_from_buffer(buf, nbytes, ppos, pbuffer, len); + return simple_copy_to_iter(pbuffer, &iocb->ki_pos, len, to); =20 pcicfg_browse: =20 @@ -3389,15 +3379,13 @@ lpfc_idiag_pcicfg_read(struct file *file, char __us= er *buf, size_t nbytes, } else idiag.offset.last_rd =3D 0; =20 - return simple_read_from_buffer(buf, nbytes, ppos, pbuffer, len); + return simple_copy_to_iter(pbuffer, &iocb->ki_pos, len, to); } =20 /** * lpfc_idiag_pcicfg_write - Syntax check and set up idiag pcicfg commands - * @file: The file pointer to read from. - * @buf: The buffer to copy the user data from. - * @nbytes: The number of bytes to get. - * @ppos: The position in the file to start reading from. + * @iocb: Metadata for IO + * @from: The buffer to copy the user data from. * * This routine get the debugfs idiag command struct from user space and * then perform the syntax check for PCI config space read or write command @@ -3411,11 +3399,11 @@ lpfc_idiag_pcicfg_read(struct file *file, char __us= er *buf, size_t nbytes, * space. */ static ssize_t -lpfc_idiag_pcicfg_write(struct file *file, const char __user *buf, - size_t nbytes, loff_t *ppos) +lpfc_idiag_pcicfg_write(struct kiocb *iocb, struct iov_iter *from) { - struct lpfc_debug *debug =3D file->private_data; + struct lpfc_debug *debug =3D iocb->ki_filp->private_data; struct lpfc_hba *phba =3D (struct lpfc_hba *)debug->i_private; + size_t nbytes =3D iov_iter_count(from); uint32_t where, value, count; uint32_t u32val; uint16_t u16val; @@ -3430,7 +3418,7 @@ lpfc_idiag_pcicfg_write(struct file *file, const char= __user *buf, /* This is a user write operation */ debug->op =3D LPFC_IDIAG_OP_WR; =20 - rc =3D lpfc_idiag_cmd_get(buf, nbytes, &idiag.cmd); + rc =3D lpfc_idiag_cmd_get(from, &idiag.cmd); if (rc < 0) return rc; =20 @@ -3571,10 +3559,8 @@ lpfc_idiag_pcicfg_write(struct file *file, const cha= r __user *buf, =20 /** * lpfc_idiag_baracc_read - idiag debugfs pci bar access read - * @file: The file pointer to read from. - * @buf: The buffer to copy the data to. - * @nbytes: The number of bytes to read. - * @ppos: The position in the file to start reading from. + * @iocb: Metadata for IO + * @to: The buffer to copy the data to. * * Description: * This routine reads data from the @phba pci bar memory mapped space @@ -3584,11 +3570,9 @@ lpfc_idiag_pcicfg_write(struct file *file, const cha= r __user *buf, * This function returns the amount of data that was read (this could be l= ess * than @nbytes if the end of the file was reached) or a negative error va= lue. **/ -static ssize_t -lpfc_idiag_baracc_read(struct file *file, char __user *buf, size_t nbytes, - loff_t *ppos) +static ssize_t lpfc_idiag_baracc_read(struct kiocb *iocb, struct iov_iter = *to) { - struct lpfc_debug *debug =3D file->private_data; + struct lpfc_debug *debug =3D iocb->ki_filp->private_data; struct lpfc_hba *phba =3D (struct lpfc_hba *)debug->i_private; int offset_label, offset, offset_run, len =3D 0, index; int bar_num, acc_range, bar_size; @@ -3611,7 +3595,7 @@ lpfc_idiag_baracc_read(struct file *file, char __user= *buf, size_t nbytes, return 0; pbuffer =3D debug->buffer; =20 - if (*ppos) + if (iocb->ki_pos) return 0; =20 if (idiag.cmd.opcode =3D=3D LPFC_IDIAG_CMD_BARACC_RD) { @@ -3652,7 +3636,7 @@ lpfc_idiag_baracc_read(struct file *file, char __user= *buf, size_t nbytes, } else goto baracc_browse; =20 - return simple_read_from_buffer(buf, nbytes, ppos, pbuffer, len); + return simple_copy_to_iter(pbuffer, &iocb->ki_pos, len, to); =20 baracc_browse: =20 @@ -3713,15 +3697,13 @@ lpfc_idiag_baracc_read(struct file *file, char __us= er *buf, size_t nbytes, idiag.offset.last_rd =3D offset; } =20 - return simple_read_from_buffer(buf, nbytes, ppos, pbuffer, len); + return simple_copy_to_iter(pbuffer, &iocb->ki_pos, len, to); } =20 /** * lpfc_idiag_baracc_write - Syntax check and set up idiag bar access comm= ands - * @file: The file pointer to read from. - * @buf: The buffer to copy the user data from. - * @nbytes: The number of bytes to get. - * @ppos: The position in the file to start reading from. + * @iocb: Metadata for IO + * @from: The buffer to copy the user data from. * * This routine get the debugfs idiag command struct from user space and * then perform the syntax check for PCI bar memory mapped space read or @@ -3736,12 +3718,12 @@ lpfc_idiag_baracc_read(struct file *file, char __us= er *buf, size_t nbytes, * space. */ static ssize_t -lpfc_idiag_baracc_write(struct file *file, const char __user *buf, - size_t nbytes, loff_t *ppos) +lpfc_idiag_baracc_write(struct kiocb *iocb, struct iov_iter *from) { - struct lpfc_debug *debug =3D file->private_data; + struct lpfc_debug *debug =3D iocb->ki_filp->private_data; struct lpfc_hba *phba =3D (struct lpfc_hba *)debug->i_private; uint32_t bar_num, bar_size, offset, value, acc_range; + size_t nbytes =3D iov_iter_count(from); struct pci_dev *pdev; void __iomem *mem_mapped_bar; uint32_t if_type; @@ -3755,7 +3737,7 @@ lpfc_idiag_baracc_write(struct file *file, const char= __user *buf, /* This is a user write operation */ debug->op =3D LPFC_IDIAG_OP_WR; =20 - rc =3D lpfc_idiag_cmd_get(buf, nbytes, &idiag.cmd); + rc =3D lpfc_idiag_cmd_get(from, &idiag.cmd); if (rc < 0) return rc; =20 @@ -4024,10 +4006,8 @@ __lpfc_idiag_print_eq(struct lpfc_queue *qp, char *e= qtype, =20 /** * lpfc_idiag_queinfo_read - idiag debugfs read queue information - * @file: The file pointer to read from. - * @buf: The buffer to copy the data to. - * @nbytes: The number of bytes to read. - * @ppos: The position in the file to start reading from. + * @iocb: Metadata for IO + * @to: The buffer to copy the data to. * * Description: * This routine reads data from the @phba SLI4 PCI function queue informat= ion, @@ -4040,11 +4020,9 @@ __lpfc_idiag_print_eq(struct lpfc_queue *qp, char *e= qtype, * This function returns the amount of data that was read (this could be l= ess * than @nbytes if the end of the file was reached) or a negative error va= lue. **/ -static ssize_t -lpfc_idiag_queinfo_read(struct file *file, char __user *buf, size_t nbytes, - loff_t *ppos) +static ssize_t lpfc_idiag_queinfo_read(struct kiocb *iocb, struct iov_iter= *to) { - struct lpfc_debug *debug =3D file->private_data; + struct lpfc_debug *debug =3D iocb->ki_filp->private_data; struct lpfc_hba *phba =3D (struct lpfc_hba *)debug->i_private; char *pbuffer; int max_cnt, rc, x, len =3D 0; @@ -4057,7 +4035,7 @@ lpfc_idiag_queinfo_read(struct file *file, char __use= r *buf, size_t nbytes, pbuffer =3D debug->buffer; max_cnt =3D LPFC_QUE_INFO_GET_BUF_SIZE - 256; =20 - if (*ppos) + if (iocb->ki_pos) return 0; =20 spin_lock_irq(&phba->hbalock); @@ -4152,14 +4130,14 @@ lpfc_idiag_queinfo_read(struct file *file, char __u= ser *buf, size_t nbytes, } =20 spin_unlock_irq(&phba->hbalock); - return simple_read_from_buffer(buf, nbytes, ppos, pbuffer, len); + return simple_copy_to_iter(pbuffer, &iocb->ki_pos, len, to); =20 too_big: len +=3D scnprintf(pbuffer + len, LPFC_QUE_INFO_GET_BUF_SIZE - len, "Truncated ...\n"); out: spin_unlock_irq(&phba->hbalock); - return simple_read_from_buffer(buf, nbytes, ppos, pbuffer, len); + return simple_copy_to_iter(pbuffer, &iocb->ki_pos, len, to); } =20 /** @@ -4249,11 +4227,9 @@ lpfc_idiag_queacc_read_qe(char *pbuffer, int len, st= ruct lpfc_queue *pque, * This function returns the amount of data that was read (this could be l= ess * than @nbytes if the end of the file was reached) or a negative error va= lue. **/ -static ssize_t -lpfc_idiag_queacc_read(struct file *file, char __user *buf, size_t nbytes, - loff_t *ppos) +static ssize_t lpfc_idiag_queacc_read(struct kiocb *iocb, struct iov_iter = *to) { - struct lpfc_debug *debug =3D file->private_data; + struct lpfc_debug *debug =3D iocb->ki_filp->private_data; uint32_t last_index, index, count; struct lpfc_queue *pque =3D NULL; char *pbuffer; @@ -4268,7 +4244,7 @@ lpfc_idiag_queacc_read(struct file *file, char __user= *buf, size_t nbytes, return 0; pbuffer =3D debug->buffer; =20 - if (*ppos) + if (iocb->ki_pos) return 0; =20 if (idiag.cmd.opcode =3D=3D LPFC_IDIAG_CMD_QUEACC_RD) { @@ -4285,7 +4261,7 @@ lpfc_idiag_queacc_read(struct file *file, char __user= *buf, size_t nbytes, /* Read a single entry from the queue */ len =3D lpfc_idiag_queacc_read_qe(pbuffer, len, pque, index); =20 - return simple_read_from_buffer(buf, nbytes, ppos, pbuffer, len); + return simple_copy_to_iter(pbuffer, &iocb->ki_pos, len, to); =20 que_browse: =20 @@ -4305,15 +4281,13 @@ lpfc_idiag_queacc_read(struct file *file, char __us= er *buf, size_t nbytes, index =3D 0; idiag.offset.last_rd =3D index; =20 - return simple_read_from_buffer(buf, nbytes, ppos, pbuffer, len); + return simple_copy_to_iter(pbuffer, &iocb->ki_pos, len, to); } =20 /** * lpfc_idiag_queacc_write - Syntax check and set up idiag queacc commands - * @file: The file pointer to read from. - * @buf: The buffer to copy the user data from. - * @nbytes: The number of bytes to get. - * @ppos: The position in the file to start reading from. + * @iocb: Metadata for IO + * @from: The buffer to copy the user data from. * * This routine get the debugfs idiag command struct from user space and t= hen * perform the syntax check for port queue read (dump) or write (set) comm= and @@ -4327,12 +4301,12 @@ lpfc_idiag_queacc_read(struct file *file, char __us= er *buf, size_t nbytes, * space. **/ static ssize_t -lpfc_idiag_queacc_write(struct file *file, const char __user *buf, - size_t nbytes, loff_t *ppos) +lpfc_idiag_queacc_write(struct kiocb *iocb, struct iov_iter *from) { - struct lpfc_debug *debug =3D file->private_data; + struct lpfc_debug *debug =3D iocb->ki_filp->private_data; struct lpfc_hba *phba =3D (struct lpfc_hba *)debug->i_private; uint32_t qidx, quetp, queid, index, count, offset, value; + size_t nbytes =3D iov_iter_count(from); uint32_t *pentry; struct lpfc_queue *pque, *qp; int rc; @@ -4340,7 +4314,7 @@ lpfc_idiag_queacc_write(struct file *file, const char= __user *buf, /* This is a user write operation */ debug->op =3D LPFC_IDIAG_OP_WR; =20 - rc =3D lpfc_idiag_cmd_get(buf, nbytes, &idiag.cmd); + rc =3D lpfc_idiag_cmd_get(from, &idiag.cmd); if (rc < 0) return rc; =20 @@ -4608,10 +4582,8 @@ lpfc_idiag_drbacc_read_reg(struct lpfc_hba *phba, ch= ar *pbuffer, =20 /** * lpfc_idiag_drbacc_read - idiag debugfs read port doorbell - * @file: The file pointer to read from. - * @buf: The buffer to copy the data to. - * @nbytes: The number of bytes to read. - * @ppos: The position in the file to start reading from. + * @iocb: Metadata for IO + * @to: the buffer to write to * * Description: * This routine reads data from the @phba device doorbell register accordi= ng @@ -4623,11 +4595,9 @@ lpfc_idiag_drbacc_read_reg(struct lpfc_hba *phba, ch= ar *pbuffer, * This function returns the amount of data that was read (this could be l= ess * than @nbytes if the end of the file was reached) or a negative error va= lue. **/ -static ssize_t -lpfc_idiag_drbacc_read(struct file *file, char __user *buf, size_t nbytes, - loff_t *ppos) +static ssize_t lpfc_idiag_drbacc_read(struct kiocb *iocb, struct iov_iter = *to) { - struct lpfc_debug *debug =3D file->private_data; + struct lpfc_debug *debug =3D iocb->ki_filp->private_data; struct lpfc_hba *phba =3D (struct lpfc_hba *)debug->i_private; uint32_t drb_reg_id, i; char *pbuffer; @@ -4642,7 +4612,7 @@ lpfc_idiag_drbacc_read(struct file *file, char __user= *buf, size_t nbytes, return 0; pbuffer =3D debug->buffer; =20 - if (*ppos) + if (iocb->ki_pos) return 0; =20 if (idiag.cmd.opcode =3D=3D LPFC_IDIAG_CMD_DRBACC_RD) @@ -4658,15 +4628,13 @@ lpfc_idiag_drbacc_read(struct file *file, char __us= er *buf, size_t nbytes, len =3D lpfc_idiag_drbacc_read_reg(phba, pbuffer, len, drb_reg_id); =20 - return simple_read_from_buffer(buf, nbytes, ppos, pbuffer, len); + return simple_copy_to_iter(pbuffer, &iocb->ki_pos, len, to); } =20 /** * lpfc_idiag_drbacc_write - Syntax check and set up idiag drbacc commands - * @file: The file pointer to read from. - * @buf: The buffer to copy the user data from. - * @nbytes: The number of bytes to get. - * @ppos: The position in the file to start reading from. + * @iocb: Metadata for IO + * @from: The buffer to copy the user data from. * * This routine get the debugfs idiag command struct from user space and t= hen * perform the syntax check for port doorbell register read (dump) or write @@ -4680,11 +4648,11 @@ lpfc_idiag_drbacc_read(struct file *file, char __us= er *buf, size_t nbytes, * space. **/ static ssize_t -lpfc_idiag_drbacc_write(struct file *file, const char __user *buf, - size_t nbytes, loff_t *ppos) +lpfc_idiag_drbacc_write( struct kiocb *iocb, struct iov_iter *from) { - struct lpfc_debug *debug =3D file->private_data; + struct lpfc_debug *debug =3D iocb->ki_filp->private_data; struct lpfc_hba *phba =3D (struct lpfc_hba *)debug->i_private; + size_t nbytes =3D iov_iter_count(from); uint32_t drb_reg_id, value, reg_val =3D 0; void __iomem *drb_reg; int rc; @@ -4692,7 +4660,7 @@ lpfc_idiag_drbacc_write(struct file *file, const char= __user *buf, /* This is a user write operation */ debug->op =3D LPFC_IDIAG_OP_WR; =20 - rc =3D lpfc_idiag_cmd_get(buf, nbytes, &idiag.cmd); + rc =3D lpfc_idiag_cmd_get(from, &idiag.cmd); if (rc < 0) return rc; =20 @@ -4828,10 +4796,8 @@ lpfc_idiag_ctlacc_read_reg(struct lpfc_hba *phba, ch= ar *pbuffer, =20 /** * lpfc_idiag_ctlacc_read - idiag debugfs read port and device control reg= ister - * @file: The file pointer to read from. - * @buf: The buffer to copy the data to. - * @nbytes: The number of bytes to read. - * @ppos: The position in the file to start reading from. + * @iocb: Metadata for IO + * @to: The buffer to copy the data to. * * Description: * This routine reads data from the @phba port and device registers accord= ing @@ -4842,10 +4808,9 @@ lpfc_idiag_ctlacc_read_reg(struct lpfc_hba *phba, ch= ar *pbuffer, * than @nbytes if the end of the file was reached) or a negative error va= lue. **/ static ssize_t -lpfc_idiag_ctlacc_read(struct file *file, char __user *buf, size_t nbytes, - loff_t *ppos) +lpfc_idiag_ctlacc_read(struct kiocb *iocb, struct iov_iter *to) { - struct lpfc_debug *debug =3D file->private_data; + struct lpfc_debug *debug =3D iocb->ki_filp->private_data; struct lpfc_hba *phba =3D (struct lpfc_hba *)debug->i_private; uint32_t ctl_reg_id, i; char *pbuffer; @@ -4860,7 +4825,7 @@ lpfc_idiag_ctlacc_read(struct file *file, char __user= *buf, size_t nbytes, return 0; pbuffer =3D debug->buffer; =20 - if (*ppos) + if (iocb->ki_pos) return 0; =20 if (idiag.cmd.opcode =3D=3D LPFC_IDIAG_CMD_CTLACC_RD) @@ -4876,15 +4841,13 @@ lpfc_idiag_ctlacc_read(struct file *file, char __us= er *buf, size_t nbytes, len =3D lpfc_idiag_ctlacc_read_reg(phba, pbuffer, len, ctl_reg_id); =20 - return simple_read_from_buffer(buf, nbytes, ppos, pbuffer, len); + return simple_copy_to_iter(pbuffer, &iocb->ki_pos, len, to); } =20 /** * lpfc_idiag_ctlacc_write - Syntax check and set up idiag ctlacc commands - * @file: The file pointer to read from. - * @buf: The buffer to copy the user data from. - * @nbytes: The number of bytes to get. - * @ppos: The position in the file to start reading from. + * @iocb: Metadata for IO + * @from: The buffer to copy the user data from. * * This routine get the debugfs idiag command struct from user space and t= hen * perform the syntax check for port and device control register read (dum= p) @@ -4895,11 +4858,11 @@ lpfc_idiag_ctlacc_read(struct file *file, char __us= er *buf, size_t nbytes, * space. **/ static ssize_t -lpfc_idiag_ctlacc_write(struct file *file, const char __user *buf, - size_t nbytes, loff_t *ppos) +lpfc_idiag_ctlacc_write(struct kiocb *iocb, struct iov_iter *from) { - struct lpfc_debug *debug =3D file->private_data; + struct lpfc_debug *debug =3D iocb->ki_filp->private_data; struct lpfc_hba *phba =3D (struct lpfc_hba *)debug->i_private; + size_t nbytes =3D iov_iter_count(from); uint32_t ctl_reg_id, value, reg_val =3D 0; void __iomem *ctl_reg; int rc; @@ -4907,7 +4870,7 @@ lpfc_idiag_ctlacc_write(struct file *file, const char= __user *buf, /* This is a user write operation */ debug->op =3D LPFC_IDIAG_OP_WR; =20 - rc =3D lpfc_idiag_cmd_get(buf, nbytes, &idiag.cmd); + rc =3D lpfc_idiag_cmd_get(from, &idiag.cmd); if (rc < 0) return rc; =20 @@ -5022,10 +4985,8 @@ lpfc_idiag_mbxacc_get_setup(struct lpfc_hba *phba, c= har *pbuffer) =20 /** * lpfc_idiag_mbxacc_read - idiag debugfs read on mailbox access - * @file: The file pointer to read from. - * @buf: The buffer to copy the data to. - * @nbytes: The number of bytes to read. - * @ppos: The position in the file to start reading from. + * @iocb: Metadata for IO + * @to: The buffer to copy the user data to. * * Description: * This routine reads data from the @phba driver mailbox access debugfs se= tup @@ -5035,11 +4996,9 @@ lpfc_idiag_mbxacc_get_setup(struct lpfc_hba *phba, c= har *pbuffer) * This function returns the amount of data that was read (this could be l= ess * than @nbytes if the end of the file was reached) or a negative error va= lue. **/ -static ssize_t -lpfc_idiag_mbxacc_read(struct file *file, char __user *buf, size_t nbytes, - loff_t *ppos) +static ssize_t lpfc_idiag_mbxacc_read(struct kiocb *iocb, struct iov_iter = *to) { - struct lpfc_debug *debug =3D file->private_data; + struct lpfc_debug *debug =3D iocb->ki_filp->private_data; struct lpfc_hba *phba =3D (struct lpfc_hba *)debug->i_private; char *pbuffer; int len =3D 0; @@ -5053,7 +5012,7 @@ lpfc_idiag_mbxacc_read(struct file *file, char __user= *buf, size_t nbytes, return 0; pbuffer =3D debug->buffer; =20 - if (*ppos) + if (iocb->ki_pos) return 0; =20 if ((idiag.cmd.opcode !=3D LPFC_IDIAG_CMD_MBXACC_DP) && @@ -5062,15 +5021,13 @@ lpfc_idiag_mbxacc_read(struct file *file, char __us= er *buf, size_t nbytes, =20 len =3D lpfc_idiag_mbxacc_get_setup(phba, pbuffer); =20 - return simple_read_from_buffer(buf, nbytes, ppos, pbuffer, len); + return simple_copy_to_iter(pbuffer, &iocb->ki_pos, len, to); } =20 /** * lpfc_idiag_mbxacc_write - Syntax check and set up idiag mbxacc commands - * @file: The file pointer to read from. - * @buf: The buffer to copy the user data from. - * @nbytes: The number of bytes to get. - * @ppos: The position in the file to start reading from. + * @iocb: Metadata for IO + * @from: The buffer to copy the user data from. * * This routine get the debugfs idiag command struct from user space and t= hen * perform the syntax check for driver mailbox command (dump) and sets up = the @@ -5081,17 +5038,17 @@ lpfc_idiag_mbxacc_read(struct file *file, char __us= er *buf, size_t nbytes, * space. **/ static ssize_t -lpfc_idiag_mbxacc_write(struct file *file, const char __user *buf, - size_t nbytes, loff_t *ppos) +lpfc_idiag_mbxacc_write(struct kiocb *iocb, struct iov_iter *from) { - struct lpfc_debug *debug =3D file->private_data; + struct lpfc_debug *debug =3D iocb->ki_filp->private_data; uint32_t mbx_dump_map, mbx_dump_cnt, mbx_word_cnt, mbx_mbox_cmd; + size_t nbytes =3D iov_iter_count(from); int rc; =20 /* This is a user write operation */ debug->op =3D LPFC_IDIAG_OP_WR; =20 - rc =3D lpfc_idiag_cmd_get(buf, nbytes, &idiag.cmd); + rc =3D lpfc_idiag_cmd_get(from, &idiag.cmd); if (rc < 0) return rc; =20 @@ -5341,10 +5298,8 @@ lpfc_idiag_extacc_drivr_get(struct lpfc_hba *phba, c= har *pbuffer, int len) =20 /** * lpfc_idiag_extacc_write - Syntax check and set up idiag extacc commands - * @file: The file pointer to read from. - * @buf: The buffer to copy the user data from. - * @nbytes: The number of bytes to get. - * @ppos: The position in the file to start reading from. + * @iocb: Metadata for IO + * @from: The buffer to copy the user data from. * * This routine get the debugfs idiag command struct from user space and t= hen * perform the syntax check for extent information access commands and sets @@ -5355,17 +5310,17 @@ lpfc_idiag_extacc_drivr_get(struct lpfc_hba *phba, = char *pbuffer, int len) * space. **/ static ssize_t -lpfc_idiag_extacc_write(struct file *file, const char __user *buf, - size_t nbytes, loff_t *ppos) +lpfc_idiag_extacc_write(struct kiocb *iocb, struct iov_iter *from) { - struct lpfc_debug *debug =3D file->private_data; + struct lpfc_debug *debug =3D iocb->ki_filp->private_data; + size_t nbytes =3D iov_iter_count(from); uint32_t ext_map; int rc; =20 /* This is a user write operation */ debug->op =3D LPFC_IDIAG_OP_WR; =20 - rc =3D lpfc_idiag_cmd_get(buf, nbytes, &idiag.cmd); + rc =3D lpfc_idiag_cmd_get(from, &idiag.cmd); if (rc < 0) return rc; =20 @@ -5387,10 +5342,8 @@ lpfc_idiag_extacc_write(struct file *file, const cha= r __user *buf, =20 /** * lpfc_idiag_extacc_read - idiag debugfs read access to extent information - * @file: The file pointer to read from. - * @buf: The buffer to copy the data to. - * @nbytes: The number of bytes to read. - * @ppos: The position in the file to start reading from. + * @iocb: Metadata for IO + * @to: The buffer to copy the user data to. * * Description: * This routine reads data from the proper extent information according to @@ -5400,11 +5353,9 @@ lpfc_idiag_extacc_write(struct file *file, const cha= r __user *buf, * This function returns the amount of data that was read (this could be l= ess * than @nbytes if the end of the file was reached) or a negative error va= lue. **/ -static ssize_t -lpfc_idiag_extacc_read(struct file *file, char __user *buf, size_t nbytes, - loff_t *ppos) +static ssize_t lpfc_idiag_extacc_read(struct kiocb *iocb, struct iov_iter = *to) { - struct lpfc_debug *debug =3D file->private_data; + struct lpfc_debug *debug =3D iocb->ki_filp->private_data; struct lpfc_hba *phba =3D (struct lpfc_hba *)debug->i_private; char *pbuffer; uint32_t ext_map; @@ -5418,7 +5369,7 @@ lpfc_idiag_extacc_read(struct file *file, char __user= *buf, size_t nbytes, if (!debug->buffer) return 0; pbuffer =3D debug->buffer; - if (*ppos) + if (iocb->ki_pos) return 0; if (idiag.cmd.opcode !=3D LPFC_IDIAG_CMD_EXTACC_RD) return 0; @@ -5431,7 +5382,7 @@ lpfc_idiag_extacc_read(struct file *file, char __user= *buf, size_t nbytes, if (ext_map & LPFC_EXT_ACC_DRIVR) len =3D lpfc_idiag_extacc_drivr_get(phba, pbuffer, len); =20 - return simple_read_from_buffer(buf, nbytes, ppos, pbuffer, len); + return simple_copy_to_iter(pbuffer, &iocb->ki_pos, len, to); } =20 static int @@ -5458,11 +5409,9 @@ lpfc_cgn_buffer_open(struct inode *inode, struct fil= e *file) return rc; } =20 -static ssize_t -lpfc_cgn_buffer_read(struct file *file, char __user *buf, size_t nbytes, - loff_t *ppos) +static ssize_t lpfc_cgn_buffer_read(struct kiocb *iocb, struct iov_iter *t= o) { - struct lpfc_debug *debug =3D file->private_data; + struct lpfc_debug *debug =3D iocb->ki_filp->private_data; struct lpfc_hba *phba =3D (struct lpfc_hba *)debug->i_private; char *buffer =3D debug->buffer; uint32_t *ptr; @@ -5512,7 +5461,7 @@ lpfc_cgn_buffer_read(struct file *file, char __user *= buf, size_t nbytes, "%08x %08x %08x %08x\n", *ptr, *(ptr + 1), *(ptr + 2), *(ptr + 3)); out: - return simple_read_from_buffer(buf, nbytes, ppos, buffer, len); + return simple_copy_to_iter(buffer, &iocb->ki_pos, len, to); } =20 static int @@ -5551,10 +5500,9 @@ lpfc_rx_monitor_open(struct inode *inode, struct fil= e *file) } =20 static ssize_t -lpfc_rx_monitor_read(struct file *file, char __user *buf, size_t nbytes, - loff_t *ppos) +lpfc_rx_monitor_read(struct kiocb *iocb, struct iov_iter *to) { - struct lpfc_rx_monitor_debug *debug =3D file->private_data; + struct lpfc_rx_monitor_debug *debug =3D iocb->ki_filp->private_data; struct lpfc_hba *phba =3D (struct lpfc_hba *)debug->i_private; char *buffer =3D debug->buffer; =20 @@ -5567,8 +5515,7 @@ lpfc_rx_monitor_read(struct file *file, char __user *= buf, size_t nbytes, LPFC_MAX_RXMONITOR_ENTRY); } =20 - return simple_read_from_buffer(buf, nbytes, ppos, buffer, - strlen(buffer)); + return simple_copy_to_iter(buffer, &iocb->ki_pos, strlen(buffer), to); } =20 static int @@ -5587,7 +5534,7 @@ static const struct file_operations lpfc_debugfs_op_d= isc_trc =3D { .owner =3D THIS_MODULE, .open =3D lpfc_debugfs_disc_trc_open, .llseek =3D lpfc_debugfs_lseek, - .read =3D lpfc_debugfs_read, + .read_iter =3D lpfc_debugfs_read, .release =3D lpfc_debugfs_release, }; =20 @@ -5596,7 +5543,7 @@ static const struct file_operations lpfc_debugfs_op_n= odelist =3D { .owner =3D THIS_MODULE, .open =3D lpfc_debugfs_nodelist_open, .llseek =3D lpfc_debugfs_lseek, - .read =3D lpfc_debugfs_read, + .read_iter =3D lpfc_debugfs_read, .release =3D lpfc_debugfs_release, }; =20 @@ -5605,8 +5552,8 @@ static const struct file_operations lpfc_debugfs_op_m= ultixripools =3D { .owner =3D THIS_MODULE, .open =3D lpfc_debugfs_multixripools_open, .llseek =3D lpfc_debugfs_lseek, - .read =3D lpfc_debugfs_read, - .write =3D lpfc_debugfs_multixripools_write, + .read_iter =3D lpfc_debugfs_read, + .write_iter =3D lpfc_debugfs_multixripools_write, .release =3D lpfc_debugfs_release, }; =20 @@ -5615,7 +5562,7 @@ static const struct file_operations lpfc_debugfs_op_h= bqinfo =3D { .owner =3D THIS_MODULE, .open =3D lpfc_debugfs_hbqinfo_open, .llseek =3D lpfc_debugfs_lseek, - .read =3D lpfc_debugfs_read, + .read_iter =3D lpfc_debugfs_read, .release =3D lpfc_debugfs_release, }; =20 @@ -5625,8 +5572,8 @@ static const struct file_operations lpfc_debugfs_op_l= ockstat =3D { .owner =3D THIS_MODULE, .open =3D lpfc_debugfs_lockstat_open, .llseek =3D lpfc_debugfs_lseek, - .read =3D lpfc_debugfs_read, - .write =3D lpfc_debugfs_lockstat_write, + .read_iter =3D lpfc_debugfs_read, + .write_iter =3D lpfc_debugfs_lockstat_iter, .release =3D lpfc_debugfs_release, }; #endif @@ -5636,7 +5583,7 @@ static const struct file_operations lpfc_debugfs_ras_= log =3D { .owner =3D THIS_MODULE, .open =3D lpfc_debugfs_ras_log_open, .llseek =3D lpfc_debugfs_lseek, - .read =3D lpfc_debugfs_read, + .read_iter =3D lpfc_debugfs_read, .release =3D lpfc_debugfs_ras_log_release, }; =20 @@ -5645,7 +5592,7 @@ static const struct file_operations lpfc_debugfs_op_d= umpHBASlim =3D { .owner =3D THIS_MODULE, .open =3D lpfc_debugfs_dumpHBASlim_open, .llseek =3D lpfc_debugfs_lseek, - .read =3D lpfc_debugfs_read, + .read_iter =3D lpfc_debugfs_read, .release =3D lpfc_debugfs_release, }; =20 @@ -5654,7 +5601,7 @@ static const struct file_operations lpfc_debugfs_op_d= umpHostSlim =3D { .owner =3D THIS_MODULE, .open =3D lpfc_debugfs_dumpHostSlim_open, .llseek =3D lpfc_debugfs_lseek, - .read =3D lpfc_debugfs_read, + .read_iter =3D lpfc_debugfs_read, .release =3D lpfc_debugfs_release, }; =20 @@ -5663,8 +5610,8 @@ static const struct file_operations lpfc_debugfs_op_n= vmestat =3D { .owner =3D THIS_MODULE, .open =3D lpfc_debugfs_nvmestat_open, .llseek =3D lpfc_debugfs_lseek, - .read =3D lpfc_debugfs_read, - .write =3D lpfc_debugfs_nvmestat_write, + .read_iter =3D lpfc_debugfs_read, + .write_iter =3D lpfc_debugfs_nvmestat_write, .release =3D lpfc_debugfs_release, }; =20 @@ -5673,8 +5620,8 @@ static const struct file_operations lpfc_debugfs_op_s= csistat =3D { .owner =3D THIS_MODULE, .open =3D lpfc_debugfs_scsistat_open, .llseek =3D lpfc_debugfs_lseek, - .read =3D lpfc_debugfs_read, - .write =3D lpfc_debugfs_scsistat_write, + .read_iter =3D lpfc_debugfs_read, + .write_iter =3D lpfc_debugfs_scsistat_write, .release =3D lpfc_debugfs_release, }; =20 @@ -5683,8 +5630,8 @@ static const struct file_operations lpfc_debugfs_op_i= oktime =3D { .owner =3D THIS_MODULE, .open =3D lpfc_debugfs_ioktime_open, .llseek =3D lpfc_debugfs_lseek, - .read =3D lpfc_debugfs_read, - .write =3D lpfc_debugfs_ioktime_write, + .read_iter =3D lpfc_debugfs_read, + .write_iter =3D lpfc_debugfs_ioktime_write, .release =3D lpfc_debugfs_release, }; =20 @@ -5693,8 +5640,8 @@ static const struct file_operations lpfc_debugfs_op_n= vmeio_trc =3D { .owner =3D THIS_MODULE, .open =3D lpfc_debugfs_nvmeio_trc_open, .llseek =3D lpfc_debugfs_lseek, - .read =3D lpfc_debugfs_read, - .write =3D lpfc_debugfs_nvmeio_trc_write, + .read_iter =3D lpfc_debugfs_read, + .write_iter =3D lpfc_debugfs_nvmeio_trc_write, .release =3D lpfc_debugfs_release, }; =20 @@ -5703,8 +5650,8 @@ static const struct file_operations lpfc_debugfs_op_h= dwqstat =3D { .owner =3D THIS_MODULE, .open =3D lpfc_debugfs_hdwqstat_open, .llseek =3D lpfc_debugfs_lseek, - .read =3D lpfc_debugfs_read, - .write =3D lpfc_debugfs_hdwqstat_write, + .read_iter =3D lpfc_debugfs_read, + .write_iter =3D lpfc_debugfs_hdwqstat_write, .release =3D lpfc_debugfs_release, }; =20 @@ -5713,8 +5660,8 @@ static const struct file_operations lpfc_debugfs_op_d= if_err =3D { .owner =3D THIS_MODULE, .open =3D simple_open, .llseek =3D lpfc_debugfs_lseek, - .read =3D lpfc_debugfs_dif_err_read, - .write =3D lpfc_debugfs_dif_err_write, + .read_iter =3D lpfc_debugfs_dif_err_read, + .write_iter =3D lpfc_debugfs_dif_err_write, .release =3D lpfc_debugfs_dif_err_release, }; =20 @@ -5723,7 +5670,7 @@ static const struct file_operations lpfc_debugfs_op_s= low_ring_trc =3D { .owner =3D THIS_MODULE, .open =3D lpfc_debugfs_slow_ring_trc_open, .llseek =3D lpfc_debugfs_lseek, - .read =3D lpfc_debugfs_read, + .read_iter =3D lpfc_debugfs_read, .release =3D lpfc_debugfs_release, }; =20 @@ -5738,8 +5685,8 @@ static const struct file_operations lpfc_idiag_op_pci= Cfg =3D { .owner =3D THIS_MODULE, .open =3D lpfc_idiag_open, .llseek =3D lpfc_debugfs_lseek, - .read =3D lpfc_idiag_pcicfg_read, - .write =3D lpfc_idiag_pcicfg_write, + .read_iter =3D lpfc_idiag_pcicfg_read, + .write_iter =3D lpfc_idiag_pcicfg_write, .release =3D lpfc_idiag_cmd_release, }; =20 @@ -5748,8 +5695,8 @@ static const struct file_operations lpfc_idiag_op_bar= Acc =3D { .owner =3D THIS_MODULE, .open =3D lpfc_idiag_open, .llseek =3D lpfc_debugfs_lseek, - .read =3D lpfc_idiag_baracc_read, - .write =3D lpfc_idiag_baracc_write, + .read_iter =3D lpfc_idiag_baracc_read, + .write_iter =3D lpfc_idiag_baracc_write, .release =3D lpfc_idiag_cmd_release, }; =20 @@ -5757,7 +5704,7 @@ static const struct file_operations lpfc_idiag_op_bar= Acc =3D { static const struct file_operations lpfc_idiag_op_queInfo =3D { .owner =3D THIS_MODULE, .open =3D lpfc_idiag_open, - .read =3D lpfc_idiag_queinfo_read, + .read_iter =3D lpfc_idiag_queinfo_read, .release =3D lpfc_idiag_release, }; =20 @@ -5766,8 +5713,8 @@ static const struct file_operations lpfc_idiag_op_que= Acc =3D { .owner =3D THIS_MODULE, .open =3D lpfc_idiag_open, .llseek =3D lpfc_debugfs_lseek, - .read =3D lpfc_idiag_queacc_read, - .write =3D lpfc_idiag_queacc_write, + .read_iter =3D lpfc_idiag_queacc_read, + .write_iter =3D lpfc_idiag_queacc_write, .release =3D lpfc_idiag_cmd_release, }; =20 @@ -5776,8 +5723,8 @@ static const struct file_operations lpfc_idiag_op_drb= Acc =3D { .owner =3D THIS_MODULE, .open =3D lpfc_idiag_open, .llseek =3D lpfc_debugfs_lseek, - .read =3D lpfc_idiag_drbacc_read, - .write =3D lpfc_idiag_drbacc_write, + .read_iter =3D lpfc_idiag_drbacc_read, + .write_iter =3D lpfc_idiag_drbacc_write, .release =3D lpfc_idiag_cmd_release, }; =20 @@ -5786,8 +5733,8 @@ static const struct file_operations lpfc_idiag_op_ctl= Acc =3D { .owner =3D THIS_MODULE, .open =3D lpfc_idiag_open, .llseek =3D lpfc_debugfs_lseek, - .read =3D lpfc_idiag_ctlacc_read, - .write =3D lpfc_idiag_ctlacc_write, + .read_iter =3D lpfc_idiag_ctlacc_read, + .write_iter =3D lpfc_idiag_ctlacc_write, .release =3D lpfc_idiag_cmd_release, }; =20 @@ -5796,8 +5743,8 @@ static const struct file_operations lpfc_idiag_op_mbx= Acc =3D { .owner =3D THIS_MODULE, .open =3D lpfc_idiag_open, .llseek =3D lpfc_debugfs_lseek, - .read =3D lpfc_idiag_mbxacc_read, - .write =3D lpfc_idiag_mbxacc_write, + .read_iter =3D lpfc_idiag_mbxacc_read, + .write_iter =3D lpfc_idiag_mbxacc_write, .release =3D lpfc_idiag_cmd_release, }; =20 @@ -5806,8 +5753,8 @@ static const struct file_operations lpfc_idiag_op_ext= Acc =3D { .owner =3D THIS_MODULE, .open =3D lpfc_idiag_open, .llseek =3D lpfc_debugfs_lseek, - .read =3D lpfc_idiag_extacc_read, - .write =3D lpfc_idiag_extacc_write, + .read_iter =3D lpfc_idiag_extacc_read, + .write_iter =3D lpfc_idiag_extacc_write, .release =3D lpfc_idiag_cmd_release, }; #undef lpfc_cgn_buffer_op @@ -5815,7 +5762,7 @@ static const struct file_operations lpfc_cgn_buffer_o= p =3D { .owner =3D THIS_MODULE, .open =3D lpfc_cgn_buffer_open, .llseek =3D lpfc_debugfs_lseek, - .read =3D lpfc_cgn_buffer_read, + .read_iter =3D lpfc_cgn_buffer_read, .release =3D lpfc_cgn_buffer_release, }; =20 @@ -5824,7 +5771,7 @@ static const struct file_operations lpfc_rx_monitor_o= p =3D { .owner =3D THIS_MODULE, .open =3D lpfc_rx_monitor_open, .llseek =3D lpfc_debugfs_lseek, - .read =3D lpfc_rx_monitor_read, + .read_iter =3D lpfc_rx_monitor_read, .release =3D lpfc_rx_monitor_release, }; #endif --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f48.google.com (mail-io1-f48.google.com [209.85.166.48]) (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 53B7D1B680C for ; Thu, 11 Apr 2024 15:36:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849820; cv=none; b=FJa9AZp1XF4fDGo355Wre1g510FxJVq0cYy0LCUKpEVdS/lYoQ2m/cbvSZMKrk1AIcSSrhLemw33+kC62V7fFGJAn7dlNdlnkfl+0UtxlXOTBhy4IJRrBCFpj0r4JhdtXIle/lwaGmfklcV1BPfnKl0DsLabMT3KriJh1gDD9PM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849820; c=relaxed/simple; bh=O7lZ/hhLmBQ7iZ9zpUnKqu87tUwBAsVmNJtxcuJqXS0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=VypCEdO3f0igdoN7obHKS2TpGXleRHxi/CbY1R+b7XLxL5fn1SNT57F8D9l/jgqfHIgI7td/H8sjc/Thpv/3DSBn+rhWNXRjbajcNahkk8/r8zSFLeRBr7/WZIlSHORWAAaQgwc0tEVv5FD6El8Tx+lLdxuFnBlJA+60PSiMzvE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=jfk00Jsz; arc=none smtp.client-ip=209.85.166.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="jfk00Jsz" Received: by mail-io1-f48.google.com with SMTP id ca18e2360f4ac-7d6812b37a6so8964339f.0 for ; Thu, 11 Apr 2024 08:36:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849818; x=1713454618; 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=vMmAvR/fEaupoAUATuQL+LXaXxKdjFUmcU+pS5j3aQM=; b=jfk00JsztQkZ0oTR/ZugWu8mN1UfHQliO8Vz2ObkbQura8PdgaYcqvKeAnUhzpUv9o sNDFK3kHxs4B2SUaoM91mrjuA7ZlyreIjxP68nHWdDuMDGMzssIMi/oDVh6pQ9wqmIU5 dIf170V7dSVOggL/+9LxpU1wx3UlAOCTmHIDsC/9E+/lBQCZTmlcgblJV6JLHZD0AZ0w H93ZemfqAULMoXKI1C7c/RVYBE9jXUJA9itsINekT44FZ79NtXq9W4+vrFahdJo1g9+a Yja4cbOvjpyB8J+vugLL1SF/6XNG3chAgugTL+m6KQbmjGf3lGHJYhebW6cKsqpN2VAI 9K7w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849818; x=1713454618; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=vMmAvR/fEaupoAUATuQL+LXaXxKdjFUmcU+pS5j3aQM=; b=SDXFA0C7Al3GKxNy7i1PYq3BNVayyn95g8z0t5CN8aFrXhkR638b9OKmfXMjAjuVix kG5zD4frmD7+nE8ngUxr/WnSTohNW0KvJu6jtiSJ9V4YLm4+kzXRhYhsSiiluYU+/+Kb wlmgFGSw8hVt0b5T4vFGh17T92ek+r5Aak4QC0Z536CsdjE9RmKqqKA9R5y7GjAtAF+A PRe6WRQKQcLnRZ3jKSeehPOpUSVt+JN5cyIsyiXKeNl1wGOtISCVVZGh1JdoKYRsyNTk 9zDh8brh7a0UVwik2B5PEqNk9fHDT7exRewLfXjzZsrS6v3df1zFZSlSSwGUDiGxwHhS XvDw== X-Gm-Message-State: AOJu0YycPguTfX3Nh0vqeqIWaz2qufw/7CQUq1LlQvrBl85g/IweX4ef dZV7EkZK8YbAFLt9TIR9saLqpYBlPKkDONwxgSLSeKj8fVW4jN7vGR1T5QPDz1MJ8vUYFcKVEvO D X-Google-Smtp-Source: AGHT+IEY0ef6J/nJCsO51GHWZB/gDmrRUuk9I+hMPeWKmkwlwDMev9yXPHFZrRnqXXfnlbNgZ897ng== X-Received: by 2002:a6b:5b10:0:b0:7d0:bd2b:43ba with SMTP id v16-20020a6b5b10000000b007d0bd2b43bamr223899ioh.0.1712849817966; Thu, 11 Apr 2024 08:36:57 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.36.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:36:57 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 190/437] scsi: megaraid: convert to read/write iterators Date: Thu, 11 Apr 2024 09:15:30 -0600 Message-ID: <20240411153126.16201-191-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/scsi/megaraid/megaraid_sas_debugfs.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/drivers/scsi/megaraid/megaraid_sas_debugfs.c b/drivers/scsi/me= garaid/megaraid_sas_debugfs.c index c69760775efa..d0b8626eebd8 100644 --- a/drivers/scsi/megaraid/megaraid_sas_debugfs.c +++ b/drivers/scsi/megaraid/megaraid_sas_debugfs.c @@ -45,15 +45,14 @@ struct dentry *megasas_debugfs_root; =20 static ssize_t -megasas_debugfs_read(struct file *filp, char __user *ubuf, size_t cnt, - loff_t *ppos) +megasas_debugfs_read(struct kiocb *iocb, struct iov_iter *to) { - struct megasas_debugfs_buffer *debug =3D filp->private_data; + struct megasas_debugfs_buffer *debug =3D iocb->ki_filp->private_data; =20 if (!debug || !debug->buf) return 0; =20 - return simple_read_from_buffer(ubuf, cnt, ppos, debug->buf, debug->len); + return simple_copy_to_iter(debug->buf, &iocb->ki_pos, debug->len, to); } =20 static int @@ -92,7 +91,7 @@ megasas_debugfs_release(struct inode *inode, struct file = *file) static const struct file_operations megasas_debugfs_raidmap_fops =3D { .owner =3D THIS_MODULE, .open =3D megasas_debugfs_raidmap_open, - .read =3D megasas_debugfs_read, + .read_iter =3D megasas_debugfs_read, .release =3D megasas_debugfs_release, }; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-il1-f173.google.com (mail-il1-f173.google.com [209.85.166.173]) (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 ED5CC1B7588 for ; Thu, 11 Apr 2024 15:37:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.173 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849822; cv=none; b=g/xF8HHMVcgfJlfxRLBU3ibH23KqDWzmF/G6vs0t6LU7iVF9BFafv4428hlOojm8C4t2LF7PTWTpJlhzqkgAXRo+ycYrgBGlKhFhr7iDY6rEOYvgdNwghE1Cpsr9r6h32C1+w2ovHX7E1G2zudoKbok+FJcbhOguauDQ99hdQ6E= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849822; c=relaxed/simple; bh=6H4AO/+hVC4jNHTfKQw22NU+CT8ZW7gHfHKvbTTwlNE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=qrL/jV9swscjJWGti2Ll0is3BqNhmtMG3Vk93sVkC84LKGBxZjnVA4EEdhka2bq0NpxGdo1lrY+ArUwmFWgaGiQqV2ivSKdxQTONPE5cW48DB5ur0UXU8KW9Dpkh6wawAlE94Gj5eGz9oQXWt1xSgfQpCOYfjtX/IxtWaJnuAY8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=REDQC9SD; arc=none smtp.client-ip=209.85.166.173 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="REDQC9SD" Received: by mail-il1-f173.google.com with SMTP id e9e14a558f8ab-36a34b68277so112135ab.0 for ; Thu, 11 Apr 2024 08:37:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849820; x=1713454620; 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=AnhOCVhHdtXmxDG6By9cE26ggBLF3GM0L2GicunETu0=; b=REDQC9SDkrsWQ9iGlXrShm2Lw2Hg1tt6FEk3olHdkF0YSQtjpi7657zkRToHGI9OV2 Tq6Q7I/GoE8P3aH/pH75gTJt31XWb1QtCd6BygJvVvDxl+QHu9uo4Oanvj3YoAo0Q/2c CeCg2BmgpSPgLqJvX9PjNsheGrOOu8VqLrr7RsuFNzeMqZwJffL1uaYBeJb6Ra0m5vV+ yG9jXTkZKXQxoMraOHywYe6aZ96fdo51GzChVsgcfygYFNcD0mjCJgPZ3uY64GRCYOga tmGF8pYZPzBpoD+Z40FiTISfME+G6KBMBTjbEujs0HkVsJmdCLyUQcar969H/VDo2u/R 8kTw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849820; x=1713454620; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=AnhOCVhHdtXmxDG6By9cE26ggBLF3GM0L2GicunETu0=; b=rVveNF+y2b5lKcr/AaE4gwnDhCTOBPRma2NwT/wdBJlzBK/C1UJT3K07S3zU98wWVY 8tJmTkq5UG6qUf81Z2CU77Ez04BFx0O0ymZpVRYPkzBg2zZmIIsRC86XU/WUsBjvDn1m hJckuJUIUqr4LKtl9Vp3fFTMFLYCjLAaYzZ/6L4X/aaAWrRSuOKw3jo7dzXb/xKdZzE/ NELSFso+O7Re9BDCFrP3fJcpQHQMdjZKnK2/37PySawkHP7dPrYCUY++gEywIGyq5dAC +h4JsXiuVz6ZS+DKOktlS9rl6niK0EdWTTAdQVEaBVH1RSCmdRugH106xQJ1NKpk47dP RXsw== X-Gm-Message-State: AOJu0YzqUJ8M0gNuCKfuR8zF7t2N2l13fJtuedFTDIOXEG2B4sN/RzW3 Zo61qHqA2IRQyiKX78dlPtULhEKPiWfvlQIHRAng6cbdPFM1TZuBW3aDMPVyfN5MOaH97oRjnmR 5 X-Google-Smtp-Source: AGHT+IEdDQ1i8fkevz6KK31iKoqlzOn6MpAqkriKwmkSlRTHWkqNqOgGVt6EM2GgwKX/jbERUgDdCQ== X-Received: by 2002:a6b:4e14:0:b0:7d6:631d:7b0 with SMTP id c20-20020a6b4e14000000b007d6631d07b0mr189296iob.1.1712849819949; Thu, 11 Apr 2024 08:36:59 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.36.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:36:58 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 191/437] scsi: mpt3sas: convert to read/write iterators Date: Thu, 11 Apr 2024 09:15:31 -0600 Message-ID: <20240411153126.16201-192-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/scsi/mpt3sas/mpt3sas_debugfs.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/drivers/scsi/mpt3sas/mpt3sas_debugfs.c b/drivers/scsi/mpt3sas/= mpt3sas_debugfs.c index a6ab1db81167..2cb768bcf5c2 100644 --- a/drivers/scsi/mpt3sas/mpt3sas_debugfs.c +++ b/drivers/scsi/mpt3sas/mpt3sas_debugfs.c @@ -36,17 +36,15 @@ static struct dentry *mpt3sas_debugfs_root; * @ppos: Offset in the file */ =20 -static ssize_t -_debugfs_iocdump_read(struct file *filp, char __user *ubuf, size_t cnt, - loff_t *ppos) +static ssize_t _debugfs_iocdump_read(struct kiocb *iocb, struct iov_iter *= to) =20 { - struct mpt3sas_debugfs_buffer *debug =3D filp->private_data; + struct mpt3sas_debugfs_buffer *debug =3D iocb->ki_filp->private_data; =20 if (!debug || !debug->buf) return 0; =20 - return simple_read_from_buffer(ubuf, cnt, ppos, debug->buf, debug->len); + return simple_copy_to_iter(debug->buf, &iocb->ki_pos, debug->len, to); } =20 /* @@ -89,7 +87,7 @@ _debugfs_iocdump_release(struct inode *inode, struct file= *file) static const struct file_operations mpt3sas_debugfs_iocdump_fops =3D { .owner =3D THIS_MODULE, .open =3D _debugfs_iocdump_open, - .read =3D _debugfs_iocdump_read, + .read_iter =3D _debugfs_iocdump_read, .release =3D _debugfs_iocdump_release, }; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f51.google.com (mail-io1-f51.google.com [209.85.166.51]) (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 41B881B75BA for ; Thu, 11 Apr 2024 15:37:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849824; cv=none; b=TJdvsHbA36sX5akqlXz+yExz2AuJQIi7gj2LNc9tAyezOAptyLW7aEQKVHiqjutmlCl4AVWwJCJMddQ2aMg/vnHeZKc7qGwXKc7XyZTVt44yLQst3kLNacXi6HftnUJd1STf3zQ3ddkZuwH9fBLUZcl4ub4ZjufsJgvySEfSgYw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849824; c=relaxed/simple; bh=M7HQAvvq2bZD0qtP9ygWTMqptkx9+n9nS7xEy8bJjLU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=HABmCoJO67gjPaeqUkyLtsGVx34UfopxfZ2ojYl37Pbre+pccn/9i7wENXngKxKt1+Q9qk6h3VVjH60WkmyHU2Y3e4Ju2Z5gEuKRHICW48+n8ABj3h8hsZpnIBF0wTxWjzTIF5S9dG6ktIFR6iid+xiSXh3ADj4Jbt4MOaxU15I= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=FCfeu0kp; arc=none smtp.client-ip=209.85.166.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="FCfeu0kp" Received: by mail-io1-f51.google.com with SMTP id ca18e2360f4ac-7c8e4c0412dso69587439f.1 for ; Thu, 11 Apr 2024 08:37:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849821; x=1713454621; 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=foLshYHoNSiA+bNhIaIfSXBA5u0u+3j+zD0hPKG7pGk=; b=FCfeu0kpzR7mIcOSHV15SY1qH0GrZ+PwD7RksUTbHt1Za4Pdse/jDX/FyfoEHMZGPS 07rQptLcme8rqXjqQ7lAKpmmOMYFNKmOKgnHTuY1AdZjlevSfXIOhQCwMdLkuvPlNtnI 9hxwEfmAGMlInp2n5SkI2ovRMQM8qPXBIkfiVUpZESdVN2Pl/mWqi140rBDksTE9bcLH /yK5RqpFhvzCWIdDTz7q+V5Xf1H2erjXRtrpUFgt66wxusthgGYOcKvy6bBLcurgeKhq CefxGiN8oztFc8lpjZ1Gb1nyNakOa1becxr2juSTkU/I+XTfunEp9grtGeHCF+2GcRMn Lw1Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849821; x=1713454621; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=foLshYHoNSiA+bNhIaIfSXBA5u0u+3j+zD0hPKG7pGk=; b=wO72kdKifD8m5U6UQvebITuLMn3OLiVI2bvfqBpFbPOXBxq8429Aoe9rcNaUDUwNC3 kz1kJcFnvzjbY4ckE7pz+TTPs5PJI9N8gvLxjLvJLoaAzxhJqJXOetSVrcYmdpyr4qkK uXw83z1f5N9AvDFu4HJhBSduNQ2ozx4r11PMcZHsD0RdnWi56Z0OZEViCgTfpxF/jKXa wu187sMy4EU+tgQlI8Kl+Eg9CClJTRb9TENxj3Ub40vWIMK69JZ08kaVnBd1i22zxsjP 65t9T7ky25BkOH/Gg94uoPAQbQvx6o75epCfzTX5k6Gc0V99ukrOgIVSzz31EvV2e6rM dhxQ== X-Gm-Message-State: AOJu0YwU2eYRZuk1tCN3D3b/YXIJSdfV/c3RoDPs0h8fdCAOps84AZhH eOidnc0VEdvOHdX43j7uOZvQXs/JiBRqw4Va7qGyymGkMM3RiAviansxBgfW3wjUg5Y6yHiP01N 9 X-Google-Smtp-Source: AGHT+IFtK2KWlUQeuUuPWw00Dsgk5pIdToc4ZvZvP4t2uT3OyJ4q3ahI03CARsSvcZ71dk/WdibusQ== X-Received: by 2002:a05:6602:84:b0:7d6:9d75:6de2 with SMTP id h4-20020a056602008400b007d69d756de2mr43618iob.2.1712849821608; Thu, 11 Apr 2024 08:37:01 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.37.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:37:00 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 192/437] scsi: qedf: convert to read/write iterators Date: Thu, 11 Apr 2024 09:15:32 -0600 Message-ID: <20240411153126.16201-193-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/scsi/qedf/qedf_dbg.h | 6 +-- drivers/scsi/qedf/qedf_debugfs.c | 76 +++++++++++++------------------- 2 files changed, 34 insertions(+), 48 deletions(-) diff --git a/drivers/scsi/qedf/qedf_dbg.h b/drivers/scsi/qedf/qedf_dbg.h index 5ec2b817c694..802cbb5353f7 100644 --- a/drivers/scsi/qedf/qedf_dbg.h +++ b/drivers/scsi/qedf/qedf_dbg.h @@ -133,8 +133,8 @@ struct qedf_list_of_funcs { { \ .owner =3D THIS_MODULE, \ .open =3D simple_open, \ - .read =3D drv##_dbg_##ops##_cmd_read, \ - .write =3D drv##_dbg_##ops##_cmd_write \ + .read_iter =3D drv##_dbg_##ops##_cmd_read, \ + .write_iter =3D drv##_dbg_##ops##_cmd_write \ } =20 /* Used for debugfs sequential files */ @@ -142,7 +142,7 @@ struct qedf_list_of_funcs { { \ .owner =3D THIS_MODULE, \ .open =3D drv##_dbg_##ops##_open, \ - .read =3D seq_read, \ + .read_iter =3D seq_read_iter, \ .llseek =3D seq_lseek, \ .release =3D single_release, \ } diff --git a/drivers/scsi/qedf/qedf_debugfs.c b/drivers/scsi/qedf/qedf_debu= gfs.c index 451fd236bfd0..53ae21f14a11 100644 --- a/drivers/scsi/qedf/qedf_debugfs.c +++ b/drivers/scsi/qedf/qedf_debugfs.c @@ -95,17 +95,14 @@ const struct qedf_debugfs_ops qedf_debugfs_ops[] =3D { =20 DECLARE_PER_CPU(struct qedf_percpu_iothread_s, qedf_percpu_iothreads); =20 -static ssize_t -qedf_dbg_fp_int_cmd_read(struct file *filp, char __user *buffer, size_t co= unt, - loff_t *ppos) +static ssize_t qedf_dbg_fp_int_cmd_read(struct kiocb *iocb, struct iov_ite= r *to) { ssize_t ret; size_t cnt =3D 0; char *cbuf; int id; struct qedf_fastpath *fp =3D NULL; - struct qedf_dbg_ctx *qedf_dbg =3D - (struct qedf_dbg_ctx *)filp->private_data; + struct qedf_dbg_ctx *qedf_dbg =3D iocb->ki_filp->private_data; struct qedf_ctx *qedf =3D container_of(qedf_dbg, struct qedf_ctx, dbg_ctx); =20 @@ -125,52 +122,47 @@ qedf_dbg_fp_int_cmd_read(struct file *filp, char __us= er *buffer, size_t count, "#%d: %lu\n", id, fp->completions); } =20 - ret =3D simple_read_from_buffer(buffer, count, ppos, cbuf, cnt); - + ret =3D simple_copy_to_iter(cbuf, &iocb->ki_pos, cnt, to); vfree(cbuf); - return ret; } =20 static ssize_t -qedf_dbg_fp_int_cmd_write(struct file *filp, const char __user *buffer, - size_t count, loff_t *ppos) +qedf_dbg_fp_int_cmd_write(struct kiocb *iocb, struct iov_iter *from) { - if (!count || *ppos) + size_t count =3D iov_iter_count(from); + + if (!count || iocb->ki_pos) return 0; =20 return count; } =20 -static ssize_t -qedf_dbg_debug_cmd_read(struct file *filp, char __user *buffer, size_t cou= nt, - loff_t *ppos) +static ssize_t qedf_dbg_debug_cmd_read(struct kiocb *iocb, struct iov_iter= *to) { int cnt; char cbuf[32]; - struct qedf_dbg_ctx *qedf_dbg =3D - (struct qedf_dbg_ctx *)filp->private_data; + struct qedf_dbg_ctx *qedf_dbg =3D iocb->ki_filp->private_data; =20 QEDF_INFO(qedf_dbg, QEDF_LOG_DEBUGFS, "debug mask=3D0x%x\n", qedf_debug); cnt =3D scnprintf(cbuf, sizeof(cbuf), "debug mask =3D 0x%x\n", qedf_debug= ); =20 - return simple_read_from_buffer(buffer, count, ppos, cbuf, cnt); + return simple_copy_to_iter(cbuf, &iocb->ki_pos, cnt, to); } =20 static ssize_t -qedf_dbg_debug_cmd_write(struct file *filp, const char __user *buffer, - size_t count, loff_t *ppos) +qedf_dbg_debug_cmd_write(struct kiocb *iocb, struct iov_iter *from) { uint32_t val; void *kern_buf; int rval; - struct qedf_dbg_ctx *qedf_dbg =3D - (struct qedf_dbg_ctx *)filp->private_data; + struct qedf_dbg_ctx *qedf_dbg =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); =20 - if (!count || *ppos) + if (!count || iocb->ki_pos) return 0; =20 - kern_buf =3D memdup_user(buffer, count); + kern_buf =3D iterdup(from, count); if (IS_ERR(kern_buf)) return PTR_ERR(kern_buf); =20 @@ -189,13 +181,11 @@ qedf_dbg_debug_cmd_write(struct file *filp, const cha= r __user *buffer, } =20 static ssize_t -qedf_dbg_stop_io_on_error_cmd_read(struct file *filp, char __user *buffer, - size_t count, loff_t *ppos) +qedf_dbg_stop_io_on_error_cmd_read(struct kiocb *iocb, struct iov_iter *to) { int cnt; char cbuf[7]; - struct qedf_dbg_ctx *qedf_dbg =3D - (struct qedf_dbg_ctx *)filp->private_data; + struct qedf_dbg_ctx *qedf_dbg =3D iocb->ki_filp->private_data; struct qedf_ctx *qedf =3D container_of(qedf_dbg, struct qedf_ctx, dbg_ctx); =20 @@ -203,26 +193,24 @@ qedf_dbg_stop_io_on_error_cmd_read(struct file *filp,= char __user *buffer, cnt =3D scnprintf(cbuf, sizeof(cbuf), "%s\n", qedf->stop_io_on_error ? "true" : "false"); =20 - return simple_read_from_buffer(buffer, count, ppos, cbuf, cnt); + return simple_copy_to_iter(cbuf, &iocb->ki_pos, cnt, to); } =20 static ssize_t -qedf_dbg_stop_io_on_error_cmd_write(struct file *filp, - const char __user *buffer, size_t count, - loff_t *ppos) +qedf_dbg_stop_io_on_error_cmd_write(struct kiocb *iocb, struct iov_iter *f= rom) { void *kern_buf; - struct qedf_dbg_ctx *qedf_dbg =3D - (struct qedf_dbg_ctx *)filp->private_data; + struct qedf_dbg_ctx *qedf_dbg =3D iocb->ki_filp->private_data; struct qedf_ctx *qedf =3D container_of(qedf_dbg, struct qedf_ctx, dbg_ctx); + size_t count =3D iov_iter_count(from); =20 QEDF_INFO(qedf_dbg, QEDF_LOG_DEBUGFS, "entered\n"); =20 - if (!count || *ppos) + if (!count || iocb->ki_pos) return 0; =20 - kern_buf =3D memdup_user(buffer, 6); + kern_buf =3D iterdup(from, 6); if (IS_ERR(kern_buf)) return PTR_ERR(kern_buf); =20 @@ -383,30 +371,28 @@ qedf_dbg_driver_stats_open(struct inode *inode, struc= t file *file) } =20 static ssize_t -qedf_dbg_clear_stats_cmd_read(struct file *filp, char __user *buffer, - size_t count, loff_t *ppos) +qedf_dbg_clear_stats_cmd_read(struct kiocb *iocb, struct iov_iter *to) { + size_t count =3D iov_iter_count(to); int cnt =3D 0; =20 /* Essentially a read stub */ - cnt =3D min_t(int, count, cnt - *ppos); - *ppos +=3D cnt; + cnt =3D min_t(int, count, cnt - iocb->ki_pos); + iocb->ki_pos +=3D cnt; return cnt; } =20 static ssize_t -qedf_dbg_clear_stats_cmd_write(struct file *filp, - const char __user *buffer, size_t count, - loff_t *ppos) +qedf_dbg_clear_stats_cmd_write(struct kiocb *iocb, struct iov_iter *from) { - struct qedf_dbg_ctx *qedf_dbg =3D - (struct qedf_dbg_ctx *)filp->private_data; + struct qedf_dbg_ctx *qedf_dbg =3D iocb->ki_filp->private_data; struct qedf_ctx *qedf =3D container_of(qedf_dbg, struct qedf_ctx, dbg_ctx); + size_t count =3D iov_iter_count(from); =20 QEDF_INFO(qedf_dbg, QEDF_LOG_DEBUGFS, "Clearing stat counters.\n"); =20 - if (!count || *ppos) + if (!count || iocb->ki_pos) return 0; =20 /* Clear stat counters exposed by 'stats' node */ --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-il1-f180.google.com (mail-il1-f180.google.com [209.85.166.180]) (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 932301B680D for ; Thu, 11 Apr 2024 15:37:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.180 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849824; cv=none; b=lRzu1pM9hqcA/Soe9gvXDlh1rdo204uRylTp6FNcU8aY5NbpaWu51vTjwys+t9lYNo/inU9gSU+znM12I8MVgOEYWhWbQpDW+62WE15e8ksOyMR1oTc4R+gvDlmcZWih7juShKJdoFTQ9Xp3zy3gdP2tGRHQ37M60PIBvAS+LSc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849824; c=relaxed/simple; bh=jWAAAIesOv7fWYH4bNsosL567ts5DOP4/ybaTZSCz4g=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=hfAYTmpbSwb6g/J4GVqVHtF37ZL5p7OaiYD1uO3EZAYxYirmwhyauYQGl7551TDEtlztq4YrwFC3iKLBfjomgdmKrIKSdYI7Z+GS+2Us2KFHa5OlCyHgxRg1NelVSYmHhqYCw1jllNg1iuXwB9E6bQch/nkyT9Q+OnlmwQFzcns= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=k+nqbdj9; arc=none smtp.client-ip=209.85.166.180 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="k+nqbdj9" Received: by mail-il1-f180.google.com with SMTP id e9e14a558f8ab-36a29832cbdso497025ab.1 for ; Thu, 11 Apr 2024 08:37:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849822; x=1713454622; 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=dN4C6p8p9L0bxTfswHkbtVwJ+3SBoqwHZjH9HEg+x1c=; b=k+nqbdj95PkT5Lk+gxrsJWMexqIEErGB5vkc/u6R3wzLxDQ5LIWI54QW4cVXZSIiAq 9gHx0b1F/SQgPW9ZuSbitozvZBg4BMp6KwqYTCoyRjlE5rMMYOVx1z86ZLheUdS3NDCa i93sdH4cFHMKVhBglgvdd/OV5jK5iRJnQhyAk3zSdOS7U17n1jxkruIz+5YRrmcz+BR/ nXH/bFuPOwpElghYacgJipS4AmAkn8aRa4+l1mhKq42rqggA3eVy78/jwTQgAeti50V2 mumODD9n7bPM325rL/JSUB87FVgeEo4L/evRFog9DBJh5D1RrIgPHE9NJGEgozgBw6sU i72A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849822; x=1713454622; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=dN4C6p8p9L0bxTfswHkbtVwJ+3SBoqwHZjH9HEg+x1c=; b=Hh6fbg8OtSOnPADD0c+rbR4tha6E2lw7xvQjfdqH43igdvOAu1Exg2UGgNKRD7rtoB GUnQacC91Dc3UX6j6CbJVpq6UwnzElnxgP4NzBCpCPqbJn9MiEr/yAD/50iqN+zrlQYA +uFEjWo7XWN5aQqEyHbSrNK4/c+OODpN/q2DGkNbCQl6b6pEuL0K2idXzH3baVicukKr uWYvd0IeCQKKZVvHxqev3Gpg5c9sQik/72Aa71d+cz/XaokzWJbUyi8zWs2OVa88wZcL c+VX/TOl80Lg8HxB4qW040OsFy4Huv3W91AEAHq320mcU9g7OeIcm0XIG0yYRCi6/acv wAeQ== X-Gm-Message-State: AOJu0YwvuQVvDZd6qUWbt01mE9qSLe+9w3bECeDVmpUw9uvex4lG8NlR OrBGafK3e2gA7SUx2p0QVAOoH3qtD13m/OXVvKKMIIWtykjBLUYb+8gsozxbuWEehhsnwKycrKt 0 X-Google-Smtp-Source: AGHT+IHBhSjSh7EQAU7KxjO9blQvY+IMYebvXJ7cMRBRdOnB7TuxW71SAejtMqETsz9lR9f5jX41og== X-Received: by 2002:a92:d352:0:b0:36a:1275:4aeb with SMTP id a18-20020a92d352000000b0036a12754aebmr5884543ilh.1.1712849822391; Thu, 11 Apr 2024 08:37:02 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.37.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:37:01 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 193/437] scsi: qedi: convert to read/write iterators Date: Thu, 11 Apr 2024 09:15:33 -0600 Message-ID: <20240411153126.16201-194-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/scsi/qedi/qedi_dbg.h | 6 +++--- drivers/scsi/qedi/qedi_debugfs.c | 20 ++++++++++++++++---- 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/drivers/scsi/qedi/qedi_dbg.h b/drivers/scsi/qedi/qedi_dbg.h index fdda12ef13b0..2b05de656aa8 100644 --- a/drivers/scsi/qedi/qedi_dbg.h +++ b/drivers/scsi/qedi/qedi_dbg.h @@ -114,8 +114,8 @@ struct qedi_debugfs_ops { { \ .owner =3D THIS_MODULE, \ .open =3D simple_open, \ - .read =3D drv##_dbg_##ops##_cmd_read, \ - .write =3D drv##_dbg_##ops##_cmd_write \ + .read_iter =3D drv##_dbg_##ops##_cmd_read, \ + .write_iter =3D drv##_dbg_##ops##_cmd_write \ } =20 /* Used for debugfs sequential files */ @@ -123,7 +123,7 @@ struct qedi_debugfs_ops { { \ .owner =3D THIS_MODULE, \ .open =3D drv##_dbg_##ops##_open, \ - .read =3D seq_read, \ + .read_iter =3D seq_read_iter, \ .llseek =3D seq_lseek, \ .release =3D single_release, \ } diff --git a/drivers/scsi/qedi/qedi_debugfs.c b/drivers/scsi/qedi/qedi_debu= gfs.c index 8deb2001dc2f..28fbbea694d5 100644 --- a/drivers/scsi/qedi/qedi_debugfs.c +++ b/drivers/scsi/qedi/qedi_debugfs.c @@ -91,8 +91,8 @@ const struct qedi_debugfs_ops qedi_debugfs_ops[] =3D { }; =20 static ssize_t -qedi_dbg_do_not_recover_cmd_write(struct file *filp, const char __user *bu= ffer, - size_t count, loff_t *ppos) +__qedi_dbg_do_not_recover_cmd_write(struct file *filp, const char __user *= buffer, + size_t count, loff_t *ppos) { size_t cnt =3D 0; struct qedi_dbg_ctx *qedi_dbg =3D @@ -117,8 +117,14 @@ qedi_dbg_do_not_recover_cmd_write(struct file *filp, c= onst char __user *buffer, } =20 static ssize_t -qedi_dbg_do_not_recover_cmd_read(struct file *filp, char __user *buffer, - size_t count, loff_t *ppos) +qedi_dbg_do_not_recover_cmd_write(struct kiocb *iocb, struct iov_iter *fro= m) +{ + return vfs_write_iter(iocb, from, __qedi_dbg_do_not_recover_cmd_write); +} + +static ssize_t +__qedi_dbg_do_not_recover_cmd_read(struct file *filp, char __user *buffer, + size_t count, loff_t *ppos) { size_t cnt =3D 0; =20 @@ -131,6 +137,12 @@ qedi_dbg_do_not_recover_cmd_read(struct file *filp, ch= ar __user *buffer, return cnt; } =20 +static ssize_t +qedi_dbg_do_not_recover_cmd_read(struct kiocb *iocb, struct iov_iter *to) +{ + return vfs_read_iter(iocb, to, __qedi_dbg_do_not_recover_cmd_read); +} + static int qedi_gbl_ctx_show(struct seq_file *s, void *unused) { --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f46.google.com (mail-io1-f46.google.com [209.85.166.46]) (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 5CF8A1B8339 for ; Thu, 11 Apr 2024 15:37:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849826; cv=none; b=nQG17EnwLyvHjjMRyItHZMDjTpRfSEdhyC7Qr+Wr7Z9RmGGL5F5wTB+ji+FxjlLVwMcWDeDNN5vO0m6/Ah5qPsyE6F6wOV570ez5Vx8jur/D5/b8IJnai92IAjLp4vcvTGZKEMm6MpBDH5voJ5Hcv28JLVLVwSlad6PHB8ll47s= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849826; c=relaxed/simple; bh=wAyhkeiT98OgDYnfb1/0TlRUPJy9U3NtVZbm/6cnRGk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=rQWAXU0gCb27/OEU43qiUeNQe/vYMadU8qBuZMVbL9Q2/akr6lazHUggNuskJoMWwZsgmboja+/dwkMqRk2ZM4mOtoHpN7mY+xAOps4ZDoSAH/8VfYwJSSSsUSnX2uQYFojNwJfmfSbIVWl3iS3OkwVGObpLQNBCnOVLf5fO2VE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=k3j01mFG; arc=none smtp.client-ip=209.85.166.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="k3j01mFG" Received: by mail-io1-f46.google.com with SMTP id ca18e2360f4ac-7d67d1073easo9809239f.0 for ; Thu, 11 Apr 2024 08:37:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849824; x=1713454624; 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=HWDh0fHrNKhYTff7Upo8ZcOWFWy4jGjf0GUm5p1uDg8=; b=k3j01mFGH+Umvif35nE/BlrnWm2l6kMOMzkmwpTT11bGx+o0laCkSucFSfLlZr0LHG gxjS74WzCfigIcpyM91hpOMXMcfJ/nMVzLddCRU+6xQhRnvIngRJ7qIFT6T4AdcOdDZj CnZCXvgZqpzx6RS4q31e5M5MQuS8044bzfpow6Eiqzq+pzyjTzHzrPjKL6W8Ap8UE8xl vXb1Hu9M/rXZUCs4mkx+cchoRCQkdvGXmAgd+0sJojNxwviH7xugWctU+wpBb9F9izgg YMlx2hWDHFH9B4hg0KENMopLETHfNzJELWvQEP6j8PpZvBaG4PujTgWZqEgpEaVZCa6n Uwiw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849824; x=1713454624; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=HWDh0fHrNKhYTff7Upo8ZcOWFWy4jGjf0GUm5p1uDg8=; b=CuKF/VZQibJ1ssuY/pvMyVqeChqqWUhX/LhTSaNkWS3n/8HpOQCgEImMlucQ9i6FGB Vp7LX6MKQBwv3/zFzWXKAirqUHmb41mhzbtzpBp75SaZiw8PaVtuUGxe1fESiVpAqTt5 q3zAN14cnIaTtTnccJmQBWU2slHgZYjRr5lHwZmZj2RMv7eJmMyPdi0FxBMuFFYIY0Dr rjiIjK17JWYE9Er+TMqRTFRQtSfN8TTL63S0RTqYQfZtHeS2S5+jwxeKemQ1I4P3x4Qa czaf504MVdPn6eyOcwEi/5mH/ZwiAH2o1NKLC1bohkfeEAwxxSqLBDedVjFxWni5V0dS EgwQ== X-Gm-Message-State: AOJu0YwzpPN+CYY8m7RDjOATw2Yf2Y9VuFtda+CBdkAv8oAmTqokVw13 StFf8kLXh9f94I45BOpZEYB9BOHRwOLskyD9YyhGLpe2SP1MhIXVxU8sEeXgTCnGfqQo6qJ7Glh Y X-Google-Smtp-Source: AGHT+IFMmGT6wfG7g0UVy3gvANf4vcwvYUQl+xWwkiJqTn4Drnl4Hg570k2iW5liDFh82653CNK+Eg== X-Received: by 2002:a92:de01:0:b0:36a:cf8:3fe6 with SMTP id x1-20020a92de01000000b0036a0cf83fe6mr5774650ilm.1.1712849824297; Thu, 11 Apr 2024 08:37:04 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.37.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:37:02 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 194/437] scsi: qla2xxx: convert to read/write iterators Date: Thu, 11 Apr 2024 09:15:34 -0600 Message-ID: <20240411153126.16201-195-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/scsi/qla2xxx/qla_dfs.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/scsi/qla2xxx/qla_dfs.c b/drivers/scsi/qla2xxx/qla_dfs.c index 55ff3d7482b3..6aacdb5c65aa 100644 --- a/drivers/scsi/qla2xxx/qla_dfs.c +++ b/drivers/scsi/qla2xxx/qla_dfs.c @@ -490,7 +490,7 @@ qla2x00_dfs_fce_release(struct inode *inode, struct fil= e *file) =20 static const struct file_operations dfs_fce_ops =3D { .open =3D qla2x00_dfs_fce_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D qla2x00_dfs_fce_release, }; @@ -569,13 +569,13 @@ qla_dfs_naqp_show(struct seq_file *s, void *unused) } \ } while (0) =20 -static ssize_t -qla_dfs_naqp_write(struct file *file, const char __user *buffer, - size_t count, loff_t *pos) +static ssize_t qla_dfs_naqp_write_iter(struct kiocb *iocb, + struct iov_iter *from) { - struct seq_file *s =3D file->private_data; + struct seq_file *s =3D iocb->ki_filp->private_data; struct scsi_qla_host *vha =3D s->private; struct qla_hw_data *ha =3D vha->hw; + size_t count =3D iov_iter_count(from); char *buf; int rc =3D 0; unsigned long num_act_qp; @@ -591,7 +591,7 @@ qla_dfs_naqp_write(struct file *file, const char __user= *buffer, vha->host_no); return -EINVAL; } - buf =3D memdup_user_nul(buffer, count); + buf =3D iterdup_nul(from, count); if (IS_ERR(buf)) { pr_err("host%ld: fail to copy user buffer.", vha->host_no); --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f48.google.com (mail-io1-f48.google.com [209.85.166.48]) (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 661BA1B9020 for ; Thu, 11 Apr 2024 15:37:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849828; cv=none; b=pPe7LRtsc55oO8Xo9VMqsQZIiGlI/Bf62nQKv7f12zwtCFQX8+kN9xg5eJaOkpPdsqbrRASHh0AGUCFU3X+8aCy7rpx213v96B6kPFs8qTIHAHavuInAsA9Yuv42nyq8yvyOd/erKMHC1auPm4HVEvGlOO3JuE91PHJW5ifqaKQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849828; c=relaxed/simple; bh=qK5szLXdyVuqPLYIC1jVGZl/1s22xhDB7QahhdBSXLM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=F4efzltEbXOQWVflofZeUb7oBG1rtd4HxofGE2e82CiEjvxy0APaO2qIxH6s+TpZJnRCefd9vWDc48vIHkTbHEYfPWw8ItGwzAJLt9U9V+ARGApg+tTNWEexOIYbgfpdmXbIn6I1ttC9BlEOSSyHkFGKzn/esLVpPfUj/3nJO48= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=WuPgbcCE; arc=none smtp.client-ip=209.85.166.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="WuPgbcCE" Received: by mail-io1-f48.google.com with SMTP id ca18e2360f4ac-7c8e4c0412dso69588939f.1 for ; Thu, 11 Apr 2024 08:37:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849826; x=1713454626; 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=J+fHintiUDqQC7r/OcrhdH2zxMAxaiRiiT+9Jp+x2sQ=; b=WuPgbcCEp8zJ8B24Fbkb7kEFui+PM5jbkvScSTQBpgilEQg68TYbCX68mtgvAkm1Q4 z+J+x0Fz9gQqBJcw0Kpl5EnICgAMej4urHCeVz4601VykE/AJW4LIyXbNGdV/oPVxbVN OxmYsHloK4GzfJHexCisPs8MrUAPkipgYjzMq9Rs7Dd+kY5MdQnO5hR3qkOdvYQV7xLL COxgTyqbqzSTTsLQN6fpiZ7sSjq/5KpHlk9mcRmhYwCKaT86mVwlH6zeVngWoKnsqY4n +JIzVKTc2sCY2Nl0ITTQ3C/RQ3oTx3xjapfQWg112kR6srvAQtVSMjiC2ilZo/CRfCxM wKVQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849826; x=1713454626; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=J+fHintiUDqQC7r/OcrhdH2zxMAxaiRiiT+9Jp+x2sQ=; b=xN2GIa48Ih9sEA/W/nJEx9jUUKdAR4oAL8qmswhwVMkx40asYoShGk2jw1XERto2mm Ve1IvThon76CJJ+CEZ0Cyp8Jh1Vt//wsckP2pqslpE2HqoJ+CfG9IQLGnNsHu+/I7/cv P5h2Z8esOQCyUxDTTXLXvqgscAD8AZzflts+gmLpqH3tDs56zezZFMWNdlH5xyQpz+Jl 7VW/f1AKzzVZ56fL4dr4+d5jGTgd1r0wPLUY+C1soVLgZJcpTIutmY4sg891LefAjHe0 ut1nmuzjd+68mJZBJLU8LVAjw80uwt86kPDRxciHUyaSpDeaJMhAx0Ue6BQpphLfyics UoSA== X-Gm-Message-State: AOJu0YzCw1vC9LPbPa9WECMtUYdWJH1vp9fuCbaSuXhR1mT0Qc4JdUiF lapr3JImMqZNXItF7NUfKkgqJBXRRDG2mGhdd1nunsSV/e1PlGZi6fFQqoOJQ3Mz3D0h5buAJmF D X-Google-Smtp-Source: AGHT+IFPkJC1IAApA/kP2dHjjXj45ocELcpHHDLtq9Hsd4goxU+g0QQ7gHo5x3U63KY/db+7Np5yWg== X-Received: by 2002:a92:2c10:0:b0:36a:2d25:3d82 with SMTP id t16-20020a922c10000000b0036a2d253d82mr6164390ile.0.1712849826253; Thu, 11 Apr 2024 08:37:06 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.37.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:37:04 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 195/437] scsi: snic: convert to read/write iterators Date: Thu, 11 Apr 2024 09:15:35 -0600 Message-ID: <20240411153126.16201-196-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/scsi/snic/snic_debugfs.c | 25 ++++++++++--------------- 1 file changed, 10 insertions(+), 15 deletions(-) diff --git a/drivers/scsi/snic/snic_debugfs.c b/drivers/scsi/snic/snic_debu= gfs.c index 9dd975b36b5b..0e81688746f1 100644 --- a/drivers/scsi/snic/snic_debugfs.c +++ b/drivers/scsi/snic/snic_debugfs.c @@ -69,18 +69,15 @@ snic_reset_stats_open(struct inode *inode, struct file = *filp) * This function returns the amount of data that was read. */ static ssize_t -snic_reset_stats_read(struct file *filp, - char __user *ubuf, - size_t cnt, - loff_t *ppos) +snic_reset_stats_read(struct kiocb *iocb, struct iov_iter *to) { - struct snic *snic =3D (struct snic *) filp->private_data; + struct snic *snic =3D iocb->ki_filp->private_data; char buf[64]; int len; =20 len =3D sprintf(buf, "%u\n", snic->reset_stats); =20 - return simple_read_from_buffer(ubuf, cnt, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 /* @@ -98,15 +95,13 @@ snic_reset_stats_read(struct file *filp, * This function returns the amount of data that was written. */ static ssize_t -snic_reset_stats_write(struct file *filp, - const char __user *ubuf, - size_t cnt, - loff_t *ppos) +snic_reset_stats_write(struct kiocb *iocb, struct iov_iter *from) { - struct snic *snic =3D (struct snic *) filp->private_data; + struct snic *snic =3D iocb->ki_filp->private_data; struct snic_stats *stats =3D &snic->s_stats; u64 *io_stats_p =3D (u64 *) &stats->io; u64 *fw_stats_p =3D (u64 *) &stats->fw; + size_t cnt =3D iov_iter_count(from); char buf[64]; unsigned long val; int ret; @@ -114,7 +109,7 @@ snic_reset_stats_write(struct file *filp, if (cnt >=3D sizeof(buf)) return -EINVAL; =20 - if (copy_from_user(&buf, ubuf, cnt)) + if (!copy_from_iter_full(&buf, cnt, from)) return -EFAULT; =20 buf[cnt] =3D '\0'; @@ -143,7 +138,7 @@ snic_reset_stats_write(struct file *filp, sizeof(struct snic_fw_stats) - sizeof(u64)); } =20 - (*ppos)++; + iocb->ki_pos++; =20 SNIC_HOST_INFO(snic->shost, "Reset Op: Driver statistics.\n"); =20 @@ -325,8 +320,8 @@ DEFINE_SHOW_ATTRIBUTE(snic_stats); static const struct file_operations snic_reset_stats_fops =3D { .owner =3D THIS_MODULE, .open =3D snic_reset_stats_open, - .read =3D snic_reset_stats_read, - .write =3D snic_reset_stats_write, + .read_iter =3D snic_reset_stats_read, + .write_iter =3D snic_reset_stats_write, .release =3D snic_reset_stats_release, }; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f49.google.com (mail-io1-f49.google.com [209.85.166.49]) (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 045FB1B9056 for ; Thu, 11 Apr 2024 15:37:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849831; cv=none; b=t5Nk07sm826p5z2GeI7TQuL55m7rgfr4OYGKeavLcHpI2ViiEpvZP5dSzDeLfXQr4lQveMNkhNpQdT/k6sMv1wPtDmfXwjmWZgSABpynHbRtaa6UJufXaGkTWv8migY56OrJ0T0oAWppJNjttdjT1hlWCNFdgAEMhI6S5GSdsj4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849831; c=relaxed/simple; bh=Uk4/86u1sZgKhsnKac3qE3uZAA6Tz/ktGLA/Cdn3h5U=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=kiQ4F5SYQ8lBe9c+2o+jWYZRGiKqm36g6RGbyUzPfxjn223k2LS26KS1YDssdug7YW8AwC0V1GQyZ3+a5t6n835RXvXPgAjCxU0h6/t95KFnSYnygtYwOnZmke8YNawcnYI5bIW+QEq2Pjg6nzJdkI3Sfd18Hj12HDkOS03R8aY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=zGSNUL5M; arc=none smtp.client-ip=209.85.166.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="zGSNUL5M" Received: by mail-io1-f49.google.com with SMTP id ca18e2360f4ac-7cc0e831e11so170536239f.1 for ; Thu, 11 Apr 2024 08:37:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849828; x=1713454628; 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=WNykTdc7WZM+SzzuWbUSY8jvBIjU+7Q2NKSdoeCiC58=; b=zGSNUL5MieZMAbKtjeuL3ZODUqwZn/P8BYBFP3hia1Iv8TetDdhIq2TCHxRJ4gzEhV 3VVQlW/22e6g5wHDNw+qocJU9FX/4gc4stP1TmhOPOMzM4kWNgev5UQ8yq5XtUmD473w DIoUdKQBop1FeUFetVczFMYmafl04ffqph4cRsNncB6T6uI3S8I3lqt54EXWSePpkEvu /Pgp9bkG4tJt7M7iMcF3qMky2pUNQHHyT40Ujm3V4fjJqql66Xjvw11ryQRasALImfU/ Oj2slSOPRd+2wj+SvgBbf1SGX1x+J3NQLUV8IctPQW6QJNjWoVH/4fcvXkP0EiIRYL/H 9lTA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849828; x=1713454628; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=WNykTdc7WZM+SzzuWbUSY8jvBIjU+7Q2NKSdoeCiC58=; b=OEa7v/3nV9LuSokjvmRkKB3q1cWS5Du+mWs4GRuLTfHufvoTTMZgLBvMm2I46k9f6t UoGZU/AqNL1D2+U/6ZSDHdMqLEbOMDmc75JmC7AyP8CNHnsxM8Xsl6bH0H0XcJ++/QYi xFQZaAKJ+JB9Y4C4IlNrqMsXjw8V4xaB8OGW7Ddv62QjW3DpIv1zLCcqyw3RlOiYihG5 eMULstIjSPoYJvUvIUVwwaalrMLRawZQeEVkvrxKeh2nTHmZUa7Xh/t9BMhVw8qDCKk3 66FRan67MPHUOjSQQXz4YTNNrz9mZLuU3ELJ/fYLKckEYTDPweDgqDg8ggVA0h+XMmVn 1Qxw== X-Gm-Message-State: AOJu0YxII7IhNKCn31Ea1qQoXRNmkwomFGKcwncXKbxFOpIhSVgfZkx0 PcEHyV/1XpQ21LzsiRBTYOhFSbCQQBSgGSJYtmwhHoL0iritC9JEcOoGhVBXkvcAQjxwC+UFUFO r X-Google-Smtp-Source: AGHT+IGS251v9Pgq8R4wYhXyf84XOvrPXCbac6DUOzrSkdm2I1gAQZUkKxVYmjsLS6uM/ybcf1M6zg== X-Received: by 2002:a6b:5b10:0:b0:7d0:bd2b:43ba with SMTP id v16-20020a6b5b10000000b007d0bd2b43bamr224337ioh.0.1712849828107; Thu, 11 Apr 2024 08:37:08 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.37.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:37:06 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 196/437] scsi: cxlflash: convert to read/write iterators Date: Thu, 11 Apr 2024 09:15:36 -0600 Message-ID: <20240411153126.16201-197-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/scsi/cxlflash/ocxl_hw.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/drivers/scsi/cxlflash/ocxl_hw.c b/drivers/scsi/cxlflash/ocxl_h= w.c index 6542818e595a..40fef6f919db 100644 --- a/drivers/scsi/cxlflash/ocxl_hw.c +++ b/drivers/scsi/cxlflash/ocxl_hw.c @@ -1010,10 +1010,9 @@ static unsigned int afu_poll(struct file *file, stru= ct poll_table_struct *poll) * * Return: size of the data read on success, -errno on failure */ -static ssize_t afu_read(struct file *file, char __user *buf, size_t count, - loff_t *off) +static ssize_t afu_read(struct kiocb *iocb, struct iov_iter *to) { - struct ocxlflash_context *ctx =3D file->private_data; + struct ocxlflash_context *ctx =3D iocb->ki_filp->private_data; struct device *dev =3D ctx->hw_afu->dev; struct cxl_event event; ulong lock_flags; @@ -1022,9 +1021,9 @@ static ssize_t afu_read(struct file *file, char __use= r *buf, size_t count, int bit; DEFINE_WAIT(event_wait); =20 - if (*off !=3D 0) { + if (iocb->ki_pos !=3D 0) { dev_err(dev, "%s: Non-zero offset not supported, off=3D%lld\n", - __func__, *off); + __func__, iocb->ki_pos); rc =3D -EINVAL; goto out; } @@ -1037,7 +1036,7 @@ static ssize_t afu_read(struct file *file, char __use= r *buf, size_t count, if (ctx_event_pending(ctx) || (ctx->state =3D=3D CLOSED)) break; =20 - if (file->f_flags & O_NONBLOCK) { + if (iocb->ki_filp->f_flags & O_NONBLOCK) { dev_err(dev, "%s: File cannot be blocked on I/O\n", __func__); rc =3D -EAGAIN; @@ -1081,7 +1080,7 @@ static ssize_t afu_read(struct file *file, char __use= r *buf, size_t count, =20 spin_unlock_irqrestore(&ctx->slock, lock_flags); =20 - if (copy_to_user(buf, &event, event.header.size)) { + if (!copy_to_iter_full(&event, event.header.size, to)) { dev_err(dev, "%s: copy_to_user failed\n", __func__); rc =3D -EFAULT; goto out; @@ -1176,7 +1175,7 @@ static int afu_mmap(struct file *file, struct vm_area= _struct *vma) static const struct file_operations ocxl_afu_fops =3D { .owner =3D THIS_MODULE, .poll =3D afu_poll, - .read =3D afu_read, + .read_iter =3D afu_read, .release =3D afu_release, .mmap =3D afu_mmap, }; @@ -1224,7 +1223,7 @@ static struct file *ocxlflash_get_fd(void *ctx_cookie, /* Patch the file ops that are not defined */ if (fops) { PATCH_FOPS(poll); - PATCH_FOPS(read); + PATCH_FOPS(read_iter); PATCH_FOPS(release); PATCH_FOPS(mmap); } else /* Use default ops */ --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f46.google.com (mail-io1-f46.google.com [209.85.166.46]) (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 DCAF41B75BA for ; Thu, 11 Apr 2024 15:37:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849832; cv=none; b=RpyMB7rPv90vvp/Yk9ENkPBVVfTFH6BXRjrTq08NA3dDACpWyH29JB1GDcJIjPKZdtrggiCF1uUSD45mNo1RJnQD0NseBzJUV8UNf24Bagw/Rg2lxg0pR6cl1vB/YAHhWKJJYWGpYUbn0OILLPVT4vxBOQKgAEgIEA7K+JfIPB0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849832; c=relaxed/simple; bh=Z1y0a7cfsKbXer9bxnTMnhG06Lav3WsujhBEpbb80wg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=VBamwYMafCLwh/Ge3lR1wLTt3rP4aY3AdLuBgAc87vSJ2uDkBEkvDIuOeIkaQNw0/Tz2FOWhxmqeVinoe4uYJbbem4RrNDkno8QFazA8kgFeE4D85KwFWwxCmoKnAcWH8oYD3VoeOCqAHWqDX8YKPIW3AAoNUPP4wzFzvDzqi/c= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=JS8kAWo2; arc=none smtp.client-ip=209.85.166.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="JS8kAWo2" Received: by mail-io1-f46.google.com with SMTP id ca18e2360f4ac-7c8e4c0412dso69590539f.1 for ; Thu, 11 Apr 2024 08:37:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849830; x=1713454630; 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=MzwRV6Ub2+8MLLvL1YevSUMEghNhZwcC41fBUD5SWfU=; b=JS8kAWo2gxHNr9etm50+7NztwEDLxSgIu8ojzWIOj1fa5bK3JTAKlqqkVn+5MylfXW 5NIjprOJe0sCIHKhC/FjhkjSI9Jjlg9/wo7bJ9N2XSpkxjDCpBg8uwpeI0D2UfyN22yb B+R/KxsSS7UQBMMbxTQGlTzXpOpPyLve65LIiJyS7SiB8PS4c/KceR1ZwcOFah1GNP// 2uTSlEsZP61+g7Qpdor2lol+noSkEI0XCPB7E6VN4K29kpEihj0feVteEX8JWjC4B/Y9 bUfy8gf0XXcECQSYdzw3tcJztZR1dHYf72FLzwyGRVDWdWzk54e6Ln0PBfxUR7rAW41P MsaA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849830; x=1713454630; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=MzwRV6Ub2+8MLLvL1YevSUMEghNhZwcC41fBUD5SWfU=; b=f8Mwn6fZw0Xl09eVacCDVhrtxCtO78myC0OPZObPJFEx9KGznxhceD8K8MXlWzdsnQ Nr7gIHN+WUqCpA1/YpzohXEVJq8VW52WZPiD4UZF1P4CXy9ildROo6y5bi7d2u9sox6S ZXIE7vuLLZjKCzVkyrNM45xUqr+f66vl8xVXr0y6117Itn3tpMHBblCmnZ9EI6h6LGn5 Pc+KcOfv+el6rMDjnNKdeFFPi1Li6mDW3/S6jYvIfYx3x9gRtTQm0c2VEePa5oYFLRTJ auwXXVv4+DLVyoMKeuNajHV2llOetyfSTifb7gig4RRpVPNEtz5aHr0qdI3rJfH0j41Y JItA== X-Gm-Message-State: AOJu0Yy4wF47gbKa0tpXgckXj3hMQLvlEn0F6LLLrIppZKTO1qnrNb2T OQprU1tjjNRTjQh7VsnssvbwgNHXrzHkbMmbe1VEoplPZnKOo/du5XbtEgwvLnLymxY33LpR3/i T X-Google-Smtp-Source: AGHT+IExF+UDHQROeA9N8YwCQ87ISmEhAnJ2pxxVKNnconvOMCw792lB/YVctPBK555e2kyufxMh+w== X-Received: by 2002:a6b:c34e:0:b0:7d6:7b7c:8257 with SMTP id t75-20020a6bc34e000000b007d67b7c8257mr220739iof.0.1712849829786; Thu, 11 Apr 2024 08:37:09 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.37.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:37:08 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 197/437] scsi: scsi_debug: convert to read/write iterators Date: Thu, 11 Apr 2024 09:15:37 -0600 Message-ID: <20240411153126.16201-198-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/scsi/scsi_debug.c | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/drivers/scsi/scsi_debug.c b/drivers/scsi/scsi_debug.c index acf0592d63da..0ce291a5e8fa 100644 --- a/drivers/scsi/scsi_debug.c +++ b/drivers/scsi/scsi_debug.c @@ -1022,19 +1022,19 @@ static int sdebug_error_open(struct inode *inode, s= truct file *file) return single_open(file, sdebug_error_show, inode->i_private); } =20 -static ssize_t sdebug_error_write(struct file *file, const char __user *ub= uf, - size_t count, loff_t *ppos) +static ssize_t sdebug_error_write(struct kiocb *iocb, struct iov_iter *fro= m) { char *buf; unsigned int inject_type; struct sdebug_err_inject *inject; - struct scsi_device *sdev =3D (struct scsi_device *)file->f_inode->i_priva= te; + struct scsi_device *sdev =3D iocb->ki_filp->f_inode->i_private; + size_t count =3D iov_iter_count(from); =20 buf =3D kzalloc(count + 1, GFP_KERNEL); if (!buf) return -ENOMEM; =20 - if (copy_from_user(buf, ubuf, count)) { + if (!copy_from_iter_full(buf, count, from)) { kfree(buf); return -EFAULT; } @@ -1095,8 +1095,8 @@ static ssize_t sdebug_error_write(struct file *file, = const char __user *ubuf, =20 static const struct file_operations sdebug_error_fops =3D { .open =3D sdebug_error_open, - .read =3D seq_read, - .write =3D sdebug_error_write, + .read_iter =3D seq_read_iter, + .write_iter =3D sdebug_error_write, .release =3D single_release, }; =20 @@ -1117,17 +1117,17 @@ static int sdebug_target_reset_fail_open(struct ino= de *inode, struct file *file) return single_open(file, sdebug_target_reset_fail_show, inode->i_private); } =20 -static ssize_t sdebug_target_reset_fail_write(struct file *file, - const char __user *ubuf, size_t count, loff_t *ppos) +static ssize_t sdebug_target_reset_fail_write(struct kiocb *iocb, + struct iov_iter *from) { int ret; - struct scsi_target *starget =3D - (struct scsi_target *)file->f_inode->i_private; + struct scsi_target *starget =3D iocb->ki_filp->f_inode->i_private; struct sdebug_target_info *targetip =3D (struct sdebug_target_info *)starget->hostdata; + size_t count =3D iov_iter_count(from); =20 if (targetip) { - ret =3D kstrtobool_from_user(ubuf, count, &targetip->reset_fail); + ret =3D kstrtobool_from_iter(from, count, &targetip->reset_fail); return ret < 0 ? ret : count; } return -ENODEV; @@ -1135,8 +1135,8 @@ static ssize_t sdebug_target_reset_fail_write(struct = file *file, =20 static const struct file_operations sdebug_target_reset_fail_fops =3D { .open =3D sdebug_target_reset_fail_open, - .read =3D seq_read, - .write =3D sdebug_target_reset_fail_write, + .read_iter =3D seq_read_iter, + .write_iter =3D sdebug_target_reset_fail_write, .release =3D single_release, }; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f42.google.com (mail-io1-f42.google.com [209.85.166.42]) (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 9AFBC1B9D98 for ; Thu, 11 Apr 2024 15:37:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849833; cv=none; b=lvEfpW2H7q1iMbIiwJT1snPjajIUrMyX4kf73la8kM0gH3D1999UwUPmpFw7voiICZQlLvRWskHc21T6RuLszC288ejlAOL202U08BgmRJ+Uj4pLuNIKwynYzsHhFf2/pGP/w+eda3qK1W7JCFjx6OWzaVw/CAeV/C0pPDpKU+c= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849833; c=relaxed/simple; bh=odAQ04P+3BOnBe320L7TKciJlTg7ftopyYuNxjuDYuo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Z4hJYx0hlGDzFmz7ukzN5ifw976HpRi7UGfZD1GAJRddFWnOIXqSw5M52/PQFP3N2gzOn+vUkgyzrimqEerN5GFvhgHfIM5dggOkCZT9xk4VnnQBtYxqE6gGYbM8bP7Qnu0v4aAGJlm4qUNnPvlnBYEHRC8SafGUKLmcQDsxRjE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=wGkXU0R0; arc=none smtp.client-ip=209.85.166.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="wGkXU0R0" Received: by mail-io1-f42.google.com with SMTP id ca18e2360f4ac-7d6812b37a6so8969139f.0 for ; Thu, 11 Apr 2024 08:37:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849831; x=1713454631; 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=BTpZYBkmfcRYdVtNQ9732MLhYR6po5tgWuFll5r7dqw=; b=wGkXU0R0KgF7s8t8xkgHI+9ZqGHFAhywir3LWYQTxYualkhTratEpq8GY4Qi0iigBq q7Pa6WFjZeBcQJD7oNmukf2GCr2tI6iGh/a8cREqu5gWmuFbQJRErGVM2U78MkMZx2G6 s9RBqmTYBOQzcuYmVyf0TEimy7DVe3am0clim91RJNv+1F0EVurTHsIdNF2Ef3qo+UYi +UemnuUxzFPFr0Wv+Db2X65qsRDALCIyyPhZfb16FQeJKQFoLYPfE8CwN/1aM3Mz9AWa 5J32U94c+MCZ5AG/0dkrkNJqP2KHLmh12f+RjMTEKVo243fQxJLagFJlvBr/h4vc5IoS lvnw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849831; x=1713454631; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=BTpZYBkmfcRYdVtNQ9732MLhYR6po5tgWuFll5r7dqw=; b=Znxk5d9Nl+YwK8TYNoFqOb+XdlbAhjJGDDYo+3VQiYgk9SqJVQ/x7HZFcOoaTqf+Pp 6V6G4FJSPufmmul0w4O9wVeHK+Zjo/DXjTHNmW764oCxfD+6UX+eNb27RbPE8pdnDOb0 A6yoIgYfeo4nm8F9VnYsDgGBULP/rBkmBqDv6ZLRA55Hxd4ehH90/fkRfJAFcnrKI1M8 gMh1b00oQ3G8EsbW+OnW7XJ1f3dryp84yxCO7SSTFfv4ByJd01SnEMSpz+klwnoqd7X7 tDk/N1OlCEGrrUH7s7K41nZjf8dF8Cl4S2yXMp7o7trZ1eieBsjGuA9KrAGyM/Mw9B1q AJrg== X-Gm-Message-State: AOJu0YwYWE+9eM96XnfZ7DfSfcz2NYta4xXeRHQxg+BZp0xHNbmxkssh 2QmVgjyUFhdEDnw8Z+10mB+S3htGJFqMgHyvX2ct9T346cgWRQrFLnNlQ+LlkNM4Q70PzQgwGB7 C X-Google-Smtp-Source: AGHT+IHLjPI86ucGR63DQvwMt9s/TYMWGBwrX8CdICAoaP5Q68eO98+NDFgxLik5oi6FVpjYggHfmw== X-Received: by 2002:a5e:9907:0:b0:7d6:751f:192 with SMTP id t7-20020a5e9907000000b007d6751f0192mr183166ioj.2.1712849831372; Thu, 11 Apr 2024 08:37:11 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.37.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:37:10 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 198/437] scsi: sg: convert to read/write iterators Date: Thu, 11 Apr 2024 09:15:38 -0600 Message-ID: <20240411153126.16201-199-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/scsi/sg.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/scsi/sg.c b/drivers/scsi/sg.c index 386981c6976a..c8047981eb9e 100644 --- a/drivers/scsi/sg.c +++ b/drivers/scsi/sg.c @@ -553,6 +553,7 @@ sg_read(struct file *filp, char __user *buf, size_t cou= nt, loff_t * ppos) kfree(old_hdr); return retval; } +FOPS_READ_ITER_HELPER(sg_read); =20 static ssize_t sg_new_read(Sg_fd * sfp, char __user *buf, size_t count, Sg_request * srp) @@ -707,6 +708,7 @@ sg_write(struct file *filp, const char __user *buf, siz= e_t count, loff_t * ppos) k =3D sg_common_write(sfp, srp, cmnd, sfp->timeout, blocking); return (k < 0) ? k : count; } +FOPS_WRITE_ITER_HELPER(sg_write); =20 static ssize_t sg_new_write(Sg_fd *sfp, struct file *file, const char __user *buf, @@ -1412,8 +1414,8 @@ sg_rq_end_io(struct request *rq, blk_status_t status) =20 static const struct file_operations sg_fops =3D { .owner =3D THIS_MODULE, - .read =3D sg_read, - .write =3D sg_write, + .read_iter =3D sg_read_iter, + .write_iter =3D sg_write_iter, .poll =3D sg_poll, .unlocked_ioctl =3D sg_ioctl, .compat_ioctl =3D compat_ptr_ioctl, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f45.google.com (mail-io1-f45.google.com [209.85.166.45]) (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 2A4E31B9DB5 for ; Thu, 11 Apr 2024 15:37:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849835; cv=none; b=Ni+eaVfbotM5oVxif7GQIJXROBArNDw5ug7gTsgEWyZJjxiCm/RAlSwI62lQSdWHDCYeWQgp9E+0n0cNaJBXBaT/w4sMzzIkZd2cKeMgXdRr3n3WTSG5C/adx5nzAvSbBcs3vEl2Z61pQ4iTLptaYVsR193xUDB3auBnlbKNNq8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849835; c=relaxed/simple; bh=LSCemXyH/56SX1zJGrPgI2h0vvaWN2kJRtNTOLW9cqI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ZJO1pqQ0YdaN6bA3f6uW3sdZqqoQtZyq1GtuAWmIpxnRyuuHr8PhQN++TjTJNCk0BexWtj4ZTMoABYb0s2BWES5w7sXnmo6NEVU9Umw7APErAjwWqr4zfd4CsNFWUwp62rY3LpaSWxuZCzlt7g8uUuUVK32/B5/97cdCTdxBA0U= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=nGgqGcFl; arc=none smtp.client-ip=209.85.166.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="nGgqGcFl" Received: by mail-io1-f45.google.com with SMTP id ca18e2360f4ac-7d6812b37a6so8969539f.0 for ; Thu, 11 Apr 2024 08:37:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849833; x=1713454633; 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=D5oledHPLkideaj9uMygX8qyloig1YMiFxHvmZuz7h8=; b=nGgqGcFlWnPo9v0jyQ7tekIh1qbhu8ee1j8kM4vJzYNZrMPwBwa0O2vigjcu2Of9d7 rMjTzwfIj/JMo6Y56AC4nIUB9JFBn+LofHpmXfs8uC8TYfh8GpzPkPZXyEC0XVuVwByp km5uLohs4wonZ9Jw5HCh1o3LK5lkWqDLdURD4GyJGdjk+3I16s65R4FkSy09/UbhCKUy K6xHxYktgK27R6yLWEFvYuSbajpC370SLs0j3UBEfmUAs2Lv1Uztx3BzD7DKSa+goJat HLdeBSCu/Idz9U54LdegxgTNuunce/aMAJ1FruvsftxxwY46wbk6/xF7SjjYAtyOBvX4 qymQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849833; x=1713454633; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=D5oledHPLkideaj9uMygX8qyloig1YMiFxHvmZuz7h8=; b=fShFN/KJNlReVOpjOP6l/LPquVoGKcBpGsJov9s0Nq15frDppZmgo7xDyaQwkC4rVf fNCjoOi0absv02MoQEir8ZgSrYgsNa18LosIgdYRd+2azHI3FQF+rl7YYzUrcjuNnSuv CKnxCZof/szxqBiu/D/IIo74+VIYFLkbZ9kO+hCafiwhO7ejfscVScHl/fj3pCfIw86I iVMo+3Xa6SAvz9iFQmWnGEEr5aShvJ1paVdgx6h1EUBEEZduyBZgm3FRrUSLATfA03to gi09Ey5JBQpzi3xGvOTS7hHR9Sq6QYv/asBrVOByB27LxB3ZhuM58UGOA7KyUND3+J3E E8Gw== X-Gm-Message-State: AOJu0YxKUe7NUeuYwZM5/g5SdMGmHkv4zPSSwtupGFfZ68RqIWkC5ZNW kCTMasPFTA6hYBwDc6XpMEr1nkLRck3Qe1NEksKyQ9vsvy9XJILOt3q//cva0xmZhDxzvb711Gb F X-Google-Smtp-Source: AGHT+IE9eIzvCX4LFfiaC6+USmpTRCiOAJl9udwOwJhsNeXUdKr7qLcTfv34xuDNpRzdBKyGt1+jyg== X-Received: by 2002:a05:6602:21d7:b0:7d6:9ddf:5095 with SMTP id c23-20020a05660221d700b007d69ddf5095mr19055ioc.1.1712849833025; Thu, 11 Apr 2024 08:37:13 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.37.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:37:11 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 199/437] scsi: st: convert to read/write iterators Date: Thu, 11 Apr 2024 09:15:39 -0600 Message-ID: <20240411153126.16201-200-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/scsi/st.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/scsi/st.c b/drivers/scsi/st.c index 5a9bcf8e0792..e96eb3607a82 100644 --- a/drivers/scsi/st.c +++ b/drivers/scsi/st.c @@ -1891,7 +1891,8 @@ st_write(struct file *filp, const char __user *buf, s= ize_t count, loff_t * ppos) =20 return retval; } -=0C +FOPS_WRITE_ITER_HELPER(st_write); + /* Read data from the tape. Returns zero in the normal case, one if the eof status has changed, and the negative error code in case of a fatal error. Otherwise updates the buffer and the eof state. @@ -2238,8 +2239,7 @@ st_read(struct file *filp, char __user *buf, size_t c= ount, loff_t * ppos) =20 return retval; } -=0C - +FOPS_READ_ITER_HELPER(st_read); =20 DEB( /* Set the driver options */ @@ -4146,8 +4146,8 @@ __setup("st=3D", st_setup); static const struct file_operations st_fops =3D { .owner =3D THIS_MODULE, - .read =3D st_read, - .write =3D st_write, + .read_iter =3D st_read_iter, + .write_iter =3D st_write_iter, .unlocked_ioctl =3D st_ioctl, #ifdef CONFIG_COMPAT .compat_ioctl =3D st_compat_ioctl, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f45.google.com (mail-io1-f45.google.com [209.85.166.45]) (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 ED0DA1BAA7D for ; Thu, 11 Apr 2024 15:37:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849837; cv=none; b=CRUJHs2DL3e+0lW95axNTjcM5+V7Czya0zqhcuz5UmszV1dfWlnl+VcwyomQuEe+as36S1/kN7aHlStbwFHtSundRPBaGLBi28jIzFUkRcnybrtLYF3CYTr7HR/qtpLnwqh6IIRz3MknKciOfy1nIfhkIQTYtWI9gPl25OvjQN0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849837; c=relaxed/simple; bh=EP/E7Xm9Ot3Cq2h5oizZSEHHnQWTQ1aP0zUjK8UvbNw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=cKnyAOuNLaxhb/kYXKacMYzmzwXiya388kOEapGjdlABSGLxc0zT3P9jTp5kvqbkc6KHO0Ep5mwrmc5DGTy903NKXANkFC9hgjEZjETOz2esToi36Amf81qxeBNl+aWAE5pEWoIMBJ6/Y19VA/JHrNt0GDAOqpAoOSP2ss8WLyo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=FMgeg/hD; arc=none smtp.client-ip=209.85.166.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="FMgeg/hD" Received: by mail-io1-f45.google.com with SMTP id ca18e2360f4ac-7cc0e831e11so170538639f.1 for ; Thu, 11 Apr 2024 08:37:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849835; x=1713454635; 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=BbXaeKZGRHtIX5aVUzcxot7CPweD14iG6EPytJkWhT8=; b=FMgeg/hDc52A0VTtuztDGvNi2RouEO77y5rAH9IRElWRDkGK+uFVQNdu5iMrmHLKJP YUW8/P9sNGYzgcje3hfB6m9EYA5wSkmG+wyIi84mLENem/tmTX7SSMT2m403HIcBUHnc yy/2I6JPO1t9m12Y+/iweHWhcX4LhUKGG2MpDN7akARYeDRYp/mjnG99frP+zr2ZF/WK jXMmSp2YCfQ2cIY7i9s9r8O+GkJXHaK4v5vBodm1GQx2GY/179Y9nsEkMhF/xIvXGnzf Yoo9NN1GXm0Pp8/Jtq3wMhCzoCmCNvkUlYzsaDAW6XkIYrNo2wsOLFtbJRziKpZQD4Om GmVA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849835; x=1713454635; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=BbXaeKZGRHtIX5aVUzcxot7CPweD14iG6EPytJkWhT8=; b=ewzthh61WKT0TG1Kiwn5Hcr5IxNN8ENafZ8DADOlw3hHTNXjb3Rgc7hob/49lvXaCE eoMK7I7VM4kVBOWqWAZjFl4vbYtIOCKGeInMH6E5gqAYTH5905CDNKfEtA2N+S8WcJQx /Pamya1iFdcPr7ezeo/oK403tf9KXNmXmW8Mr1C3Do/Pd/bj5izzat8jOOBhDVJmrupN Rv3QNn1NZ6RwweY6txDG2RZybWjw6/CEvf0FSNCpt2ghpQ8Xlmu8bI+1lMmlDqZCqwnR F2mpyozbXW2iTUYWh9IQ5MQhfZv0eesXoE65uynFmVzem3J1RyYEeNrWM/M3+jcrhX7v DI5g== X-Gm-Message-State: AOJu0YzlU1AXS6lgvyeNHwNSeiiyoRAJFpzAl4irGDr6X42V6jFQmKfR bVD8h7uRBRsEVEJdFV0ZCuoZgPXh3LCPNWiU5gxSZeDFPFWH2zHQ0FBM90eiiueISIbreppUEQw S X-Google-Smtp-Source: AGHT+IFnJYsKEzzuOe5VwJd6NN9azrTrqz+FQV451mSVbvFC2Euccz6BlIA9CiK2Ps8FBEN+FJfQxQ== X-Received: by 2002:a6b:5b10:0:b0:7d0:bd2b:43ba with SMTP id v16-20020a6b5b10000000b007d0bd2b43bamr224603ioh.0.1712849834729; Thu, 11 Apr 2024 08:37:14 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.37.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:37:13 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 200/437] staging: axis: convert to read/write iterators Date: Thu, 11 Apr 2024 09:15:40 -0600 Message-ID: <20240411153126.16201-201-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/staging/axis-fifo/axis-fifo.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/drivers/staging/axis-fifo/axis-fifo.c b/drivers/staging/axis-f= ifo/axis-fifo.c index ba8e08be0daf..9c9f0716e5f7 100644 --- a/drivers/staging/axis-fifo/axis-fifo.c +++ b/drivers/staging/axis-fifo/axis-fifo.c @@ -33,6 +33,7 @@ #include #include #include +#include =20 /* ---------------------------- * driver parameters @@ -332,10 +333,8 @@ static void reset_ip_core(struct axis_fifo *fifo) =20 /** * axis_fifo_read() - Read a packet from AXIS-FIFO character device. - * @f: Open file. - * @buf: User space buffer to read to. - * @len: User space buffer length. - * @off: Buffer offset. + * @iocb: Metadata for IO. + * @to: User space buffer to read to. * * As defined by the device's documentation, we need to check the device's * occupancy before reading the length register and then the data. All the= se @@ -451,10 +450,8 @@ static ssize_t axis_fifo_read(struct kiocb *iocb, stru= ct iov_iter *to) =20 /** * axis_fifo_write() - Write buffer to AXIS-FIFO character device. - * @f: Open file. - * @buf: User space buffer to write to the device. - * @len: User space buffer length. - * @off: Buffer offset. + * @iocb: Metadata for IO. + * @from: User space buffer to write to the device. * * As defined by the device's documentation, we need to write to the devic= e's * data buffer then to the device's packet length register atomically. Als= o, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f48.google.com (mail-io1-f48.google.com [209.85.166.48]) (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 73FAD1BAA95 for ; Thu, 11 Apr 2024 15:37:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849838; cv=none; b=EOyBNh3/vv+UtUvfwMZ1lkEc9Oj+uWSWwEy7bbs1GwRFG/C2JfUAu4K3LMg0ZtA0halOG8YUODiRgwn0SOwjqsG9etv00FIViXH7fw6Vat+DxHy6BGEYFov006ElPW1GJZjBLF3G7ZLhvomXeJU/YxrQk1xTnI2aivRfv6gTyEk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849838; c=relaxed/simple; bh=hzeGJuqsCNENJiQjtg2MffEahLh9ZmQ/4D1HGjsIBj0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=FEORkqNUFDYvtEbvIzVDaq2ZE5TdCLWv3/kK+kTCRdVu31uzWlxKlx42uLllq1ct7SYlYVRfeisazpmvzEtNdVrwIk5UOHoEIFF+Vd+tyCkpoBhZ5fhN2N7UClfD2KCm4NUkflgzp+nxcpjK5M7nnBHv9Tnn3YchRM2qfM9LXmk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=1c20Vr7i; arc=none smtp.client-ip=209.85.166.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="1c20Vr7i" Received: by mail-io1-f48.google.com with SMTP id ca18e2360f4ac-7cc0e831e11so170538939f.1 for ; Thu, 11 Apr 2024 08:37:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849836; x=1713454636; 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=CJHWZ8kVRf9wEcPJrG9reH4bITaufD9pcVT3oPpa9tY=; b=1c20Vr7iHeouKXDLeCgGs4o/O/T1HqrqfZcoMW6vHuOqgg6hxOEjtW4C2+k0FtGI86 0u99I9HYAFxClGkXOKoR/oaPSsCT4yUuYi5ue+3++t0CYpNZ6E56N7qQouW9lgv5LLzV 7fiFSdwc268W9Cpq6Y2iY3zFmoz9rhE8mw/NybjaN/V2RH0DMBmsbjGYJuMD1vcCj7l9 lRfDtuPqrgg9I3Gq1qTM8GINT3VRGYHWigliEimCLeo68E1nwu8pIfRcNcLPvhQhM1OG NDLiIfam4UiUgNpbBbkuwwInlwIUqdkswdq0bQD1A3sOXGwVjN8cxthqO+suIpM4eG0O i8zg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849836; x=1713454636; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=CJHWZ8kVRf9wEcPJrG9reH4bITaufD9pcVT3oPpa9tY=; b=M3EqWWkNIteIO9/Y3gTLStQ82nS8S9WnczEaac+eeG2uotT9zKGMnE/fr9zBx6avmp 54blJwaiLH2DJ1rKR/k9dEcgdOX5uRfJjhWZGcwjMR93zUALJGJ2T/AGMb0BtsDARS1Q dz+LCv4dS79vo6RGE72MJuJX7Q756vqReqrs3kISjkIhAYOrzQ1W1701KMYXNQpFSNxK ArWm8X5XwnEtzrcOFgMFa2o/xWgl8G/jp2ObBkPQageGZiRKwNWlLrmouY9pp4OtEwV/ shfd+12rcwz50+1v1Jrzhv//Q9+96KXGD6gyMrOjTJogKVWii56EYUjUjd0T8E13I7+D 5p+g== X-Gm-Message-State: AOJu0YzsAALXzsg3qoyufEHwaAuaHuS2dnbRTnfPGuvdbNsux5bW+ENL WdSTa3VdzTiXJLl0pYX85s0DerzdmQGYNsHG9xK9cEFeSlFYyLUAHSfFyG3j+MGnjAOPu3q1HfE o X-Google-Smtp-Source: AGHT+IEBvww1ZiWRpvw9iQvAZx3AB9ey7p+JIo6btKpdoFNqFL17IHMTxEC2zLUOF/nZ2nyJTykdXg== X-Received: by 2002:a5e:9907:0:b0:7d6:751f:192 with SMTP id t7-20020a5e9907000000b007d6751f0192mr183380ioj.2.1712849836257; Thu, 11 Apr 2024 08:37:16 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.37.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:37:15 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 201/437] staging: fieldbus: convert to read/write iterators Date: Thu, 11 Apr 2024 09:15:41 -0600 Message-ID: <20240411153126.16201-202-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/staging/fieldbus/dev_core.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/staging/fieldbus/dev_core.c b/drivers/staging/fieldbus= /dev_core.c index 0053ebd91442..4a9e211640db 100644 --- a/drivers/staging/fieldbus/dev_core.c +++ b/drivers/staging/fieldbus/dev_core.c @@ -194,6 +194,7 @@ static ssize_t fieldbus_read(struct file *filp, char __= user *buf, size_t size, of->dc_event =3D fbdev->dc_event; return fbdev->read_area(fbdev, buf, size, offset); } +FOPS_READ_ITER_HELPER(fieldbus_read); =20 static ssize_t fieldbus_write(struct file *filp, const char __user *buf, size_t size, loff_t *offset) @@ -203,6 +204,7 @@ static ssize_t fieldbus_write(struct file *filp, const = char __user *buf, =20 return fbdev->write_area(fbdev, buf, size, offset); } +FOPS_WRITE_ITER_HELPER(fieldbus_write); =20 static __poll_t fieldbus_poll(struct file *filp, poll_table *wait) { @@ -220,8 +222,8 @@ static __poll_t fieldbus_poll(struct file *filp, poll_t= able *wait) static const struct file_operations fieldbus_fops =3D { .open =3D fieldbus_open, .release =3D fieldbus_release, - .read =3D fieldbus_read, - .write =3D fieldbus_write, + .read_iter =3D fieldbus_read_iter, + .write_iter =3D fieldbus_write_iter, .poll =3D fieldbus_poll, .llseek =3D generic_file_llseek, .owner =3D THIS_MODULE, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f43.google.com (mail-io1-f43.google.com [209.85.166.43]) (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 1B57917AD6E for ; Thu, 11 Apr 2024 15:37:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849840; cv=none; b=Z1+kLYbRt7fm31ZZ28wSGskT9PANU5i9h9U/Psw6eiT3RZd8fn4ZaUH8fXHkR5t6SWYZgIFBjGibhZugtSY+cjfsp1hw1reQrFeHa4FOgos2+dzEUNhGh8lNAENqlcizcuqqYhmZi/ryfO0cYG3ayaOe2BdZAhUp60molEeD2cM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849840; c=relaxed/simple; bh=YgKKAw0gpDESSsI2B6G/XXVsv75kYSvOz6HNWqNIjR0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=StKLz+s7u4O7aMPbvw2J4tEK43mPk1NrhWtptA44fgdWA4vJYgTSno9Ps/Q4TwzgNLLSylUznpT82aen3fhObYVEpaG1qfUjEIT5dnFXBoAMR1vnZFiTPdeXJYCDp9vvhQSNK6qXbB8DFQbiY+/qtZFqQ0YDxvifMTHYlIINN3c= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=leBWsYW4; arc=none smtp.client-ip=209.85.166.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="leBWsYW4" Received: by mail-io1-f43.google.com with SMTP id ca18e2360f4ac-7d6812b37a6so8971239f.0 for ; Thu, 11 Apr 2024 08:37:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849838; x=1713454638; 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=k8L8sEl0WgDwyMr/iJ731l7Aq9M52WzbzAWJBy9EPdM=; b=leBWsYW4QeFWAsA3Zrh8b6jnUeUUDwwajofe4gzeGJkfQ5XdgFYy6etmzvqBZ2HqQL vPbBVycpxtIGwFh2EChzuJaibc+BRhdsnZlTBY1IrsgXJnIWf+mEQOHNSe+YSzirgL13 jA+NLgHmFQC1Yv1UHVcZ/TmYhqjbX4DHqMKoiHenjhcXUJBIluHYKhzBm+Kb7+395gGK BgPnmQespTllP3iRAHbSbEIrgUKQakZ1FEcHkvQ1CWMT/B/QH6g8WDz7xoUhwNjU43LM Hl0HmJ8/2KU+gQWraw6V3BJiDak4l9mvQlHicuOJ14w06IFG2Obj8DWwQw1qkrDReI2M NmlQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849838; x=1713454638; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=k8L8sEl0WgDwyMr/iJ731l7Aq9M52WzbzAWJBy9EPdM=; b=qEH/Srg1xHKOXbQbsqeuwmBWnZl2+s3wHN845qGQrY21CDvXrLEQS3EIuSpGQhzfPH xfQbBsKWBVoDoHzWvkmuIXL7Ey8n8sCKJPmlqySmlBCiwcb5RIwO+8RWhwisAVTxrTQV 1LIeT/bo9fQzuaGVALd1wC+FFv4wJrLKwrFksoPMAxLhttPJ6Xm/+NzF4b2g3HhuhDqM hgJHDZmSbh725sx3m+SqyLxBn8Fh5lWXrExoxY1GbA/wzHJ3HBbipA7n8LTmCB1SRusX UF6vlIpdOsrVu2c6T/SuXHqs28e1/7JQhqNg68mX1CADtZ+xFON+0f955JbaopGGh5aP JHPg== X-Gm-Message-State: AOJu0YySA07/th2t3Ql4KQ9Q+rbUUyF0nv5BBhB5B4SqELSTwzPtwdc2 bzONNR62nOxKgBzv9ehGXnig/1EfJpdkajah+CxHCnHna6kVGxLHXck9j57PeZdxuTISWkd102w 3 X-Google-Smtp-Source: AGHT+IFDeQ2HNukEXPQ2crxfo6oqaj6M/HAQG2sYDLHTDP9x0NiXerdTQ+bmFDY84FO5Vbk1KjH9Rw== X-Received: by 2002:a92:d352:0:b0:36a:1275:4aeb with SMTP id a18-20020a92d352000000b0036a12754aebmr5885173ilh.1.1712849837855; Thu, 11 Apr 2024 08:37:17 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.37.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:37:16 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 202/437] staging: greybus: convert to read/write iterators Date: Thu, 11 Apr 2024 09:15:42 -0600 Message-ID: <20240411153126.16201-203-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/greybus/es2.c | 29 ++++++++++++++--------------- drivers/greybus/svc.c | 27 ++++++++++++--------------- drivers/staging/greybus/camera.c | 22 ++++++++++------------ drivers/staging/greybus/raw.c | 6 ++++-- 4 files changed, 40 insertions(+), 44 deletions(-) diff --git a/drivers/greybus/es2.c b/drivers/greybus/es2.c index 1ee78d0d90b4..ef9c68ef8632 100644 --- a/drivers/greybus/es2.c +++ b/drivers/greybus/es2.c @@ -1109,10 +1109,10 @@ static int apb_log_poll(void *data) return 0; } =20 -static ssize_t apb_log_read(struct file *f, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t apb_log_read(struct kiocb *iocb, struct iov_iter *to) { - struct es2_ap_dev *es2 =3D file_inode(f)->i_private; + struct es2_ap_dev *es2 =3D file_inode(iocb->ki_filp)->i_private; + size_t count =3D iov_iter_count(to); ssize_t ret; size_t copied; char *tmp_buf; @@ -1125,7 +1125,7 @@ static ssize_t apb_log_read(struct file *f, char __us= er *buf, return -ENOMEM; =20 copied =3D kfifo_out(&es2->apb_log_fifo, tmp_buf, count); - ret =3D simple_read_from_buffer(buf, count, ppos, tmp_buf, copied); + ret =3D simple_copy_to_iter(tmp_buf, &iocb->ki_pos, copied, to); =20 kfree(tmp_buf); =20 @@ -1133,7 +1133,7 @@ static ssize_t apb_log_read(struct file *f, char __us= er *buf, } =20 static const struct file_operations apb_log_fops =3D { - .read =3D apb_log_read, + .read_iter =3D apb_log_read, }; =20 static void usb_log_enable(struct es2_ap_dev *es2) @@ -1163,25 +1163,24 @@ static void usb_log_disable(struct es2_ap_dev *es2) es2->apb_log_task =3D NULL; } =20 -static ssize_t apb_log_enable_read(struct file *f, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t apb_log_enable_read(struct kiocb *iocb, struct iov_iter *to) { - struct es2_ap_dev *es2 =3D file_inode(f)->i_private; + struct es2_ap_dev *es2 =3D file_inode(iocb->ki_filp)->i_private; int enable =3D !IS_ERR_OR_NULL(es2->apb_log_task); char tmp_buf[3]; =20 sprintf(tmp_buf, "%d\n", enable); - return simple_read_from_buffer(buf, count, ppos, tmp_buf, 2); + return simple_copy_to_iter(tmp_buf, &iocb->ki_pos, 2, to); } =20 -static ssize_t apb_log_enable_write(struct file *f, const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t apb_log_enable_write(struct kiocb *iocb, struct iov_iter *f= rom) { int enable; ssize_t retval; - struct es2_ap_dev *es2 =3D file_inode(f)->i_private; + struct es2_ap_dev *es2 =3D file_inode(iocb->ki_filp)->i_private; + size_t count =3D iov_iter_count(from); =20 - retval =3D kstrtoint_from_user(buf, count, 10, &enable); + retval =3D kstrtoint_from_iter(from, count, 10, &enable); if (retval) return retval; =20 @@ -1194,8 +1193,8 @@ static ssize_t apb_log_enable_write(struct file *f, c= onst char __user *buf, } =20 static const struct file_operations apb_log_enable_fops =3D { - .read =3D apb_log_enable_read, - .write =3D apb_log_enable_write, + .read_iter =3D apb_log_enable_read, + .write_iter =3D apb_log_enable_write, }; =20 static int apb_get_cport_count(struct usb_device *udev) diff --git a/drivers/greybus/svc.c b/drivers/greybus/svc.c index 4256467fcd35..989ee7a3ac17 100644 --- a/drivers/greybus/svc.c +++ b/drivers/greybus/svc.c @@ -673,11 +673,10 @@ static int gb_svc_version_request(struct gb_operation= *op) return 0; } =20 -static ssize_t pwr_debugfs_voltage_read(struct file *file, char __user *bu= f, - size_t len, loff_t *offset) +static ssize_t pwr_debugfs_voltage_read(struct kiocb *iocb, struct iov_ite= r *to) { struct svc_debugfs_pwrmon_rail *pwrmon_rails =3D - file_inode(file)->i_private; + file_inode(iocb->ki_filp)->i_private; struct gb_svc *svc =3D pwrmon_rails->svc; int ret, desc; u32 value; @@ -694,14 +693,13 @@ static ssize_t pwr_debugfs_voltage_read(struct file *= file, char __user *buf, =20 desc =3D scnprintf(buff, sizeof(buff), "%u\n", value); =20 - return simple_read_from_buffer(buf, len, offset, buff, desc); + return simple_copy_to_iter(buff, &iocb->ki_pos, desc, to); } =20 -static ssize_t pwr_debugfs_current_read(struct file *file, char __user *bu= f, - size_t len, loff_t *offset) +static ssize_t pwr_debugfs_current_read(struct kiocb *iocb, struct iov_ite= r *to) { struct svc_debugfs_pwrmon_rail *pwrmon_rails =3D - file_inode(file)->i_private; + file_inode(iocb->ki_filp)->i_private; struct gb_svc *svc =3D pwrmon_rails->svc; int ret, desc; u32 value; @@ -718,14 +716,13 @@ static ssize_t pwr_debugfs_current_read(struct file *= file, char __user *buf, =20 desc =3D scnprintf(buff, sizeof(buff), "%u\n", value); =20 - return simple_read_from_buffer(buf, len, offset, buff, desc); + return simple_copy_to_iter(buff, &iocb->ki_pos, desc, to); } =20 -static ssize_t pwr_debugfs_power_read(struct file *file, char __user *buf, - size_t len, loff_t *offset) +static ssize_t pwr_debugfs_power_read(struct kiocb *iocb, struct iov_iter = *to) { struct svc_debugfs_pwrmon_rail *pwrmon_rails =3D - file_inode(file)->i_private; + file_inode(iocb->ki_filp)->i_private; struct gb_svc *svc =3D pwrmon_rails->svc; int ret, desc; u32 value; @@ -741,19 +738,19 @@ static ssize_t pwr_debugfs_power_read(struct file *fi= le, char __user *buf, =20 desc =3D scnprintf(buff, sizeof(buff), "%u\n", value); =20 - return simple_read_from_buffer(buf, len, offset, buff, desc); + return simple_copy_to_iter(buff, &iocb->ki_pos, desc, to); } =20 static const struct file_operations pwrmon_debugfs_voltage_fops =3D { - .read =3D pwr_debugfs_voltage_read, + .read_iter =3D pwr_debugfs_voltage_read, }; =20 static const struct file_operations pwrmon_debugfs_current_fops =3D { - .read =3D pwr_debugfs_current_read, + .read_iter =3D pwr_debugfs_current_read, }; =20 static const struct file_operations pwrmon_debugfs_power_fops =3D { - .read =3D pwr_debugfs_power_read, + .read_iter =3D pwr_debugfs_power_read, }; =20 static void gb_svc_pwrmon_debugfs_init(struct gb_svc *svc) diff --git a/drivers/staging/greybus/camera.c b/drivers/staging/greybus/cam= era.c index a8173aa3a995..f18f690a31ee 100644 --- a/drivers/staging/greybus/camera.c +++ b/drivers/staging/greybus/camera.c @@ -1086,10 +1086,9 @@ static const struct gb_camera_debugfs_entry gb_camer= a_debugfs_entries[] =3D { }, }; =20 -static ssize_t gb_camera_debugfs_read(struct file *file, char __user *buf, - size_t len, loff_t *offset) +static ssize_t gb_camera_debugfs_read(struct kiocb *iocb, struct iov_iter = *to) { - const struct gb_camera_debugfs_entry *op =3D file->private_data; + const struct gb_camera_debugfs_entry *op =3D iocb->ki_filp->private_data; struct gb_camera *gcam =3D file_inode(file)->i_private; struct gb_camera_debugfs_buffer *buffer; ssize_t ret; @@ -1103,23 +1102,22 @@ static ssize_t gb_camera_debugfs_read(struct file *= file, char __user *buf, =20 buffer =3D &gcam->debugfs.buffers[op->buffer]; =20 - return simple_read_from_buffer(buf, len, offset, buffer->data, - buffer->length); + return simple_copy_to_iter(buffer->data, &iocb->ki_pos, buffer->length, + to); } =20 -static ssize_t gb_camera_debugfs_write(struct file *file, - const char __user *buf, size_t len, - loff_t *offset) +static ssize_t gb_camera_debugfs_write(struct kiocb *iocb, struct iov_iter= *from) { - const struct gb_camera_debugfs_entry *op =3D file->private_data; + const struct gb_camera_debugfs_entry *op =3D iocb->ki_filp->private_data; struct gb_camera *gcam =3D file_inode(file)->i_private; + size_t len =3D iov_iter_count(from); ssize_t ret; char *kbuf; =20 if (len > 1024) return -EINVAL; =20 - kbuf =3D memdup_user_nul(buf, len); + kbuf =3D iterdup_nul(buf, len); if (IS_ERR(kbuf)) return PTR_ERR(kbuf); =20 @@ -1149,8 +1147,8 @@ static int gb_camera_debugfs_open(struct inode *inode= , struct file *file) =20 static const struct file_operations gb_camera_debugfs_ops =3D { .open =3D gb_camera_debugfs_open, - .read =3D gb_camera_debugfs_read, - .write =3D gb_camera_debugfs_write, + .read_iter =3D gb_camera_debugfs_read, + .write_iter =3D gb_camera_debugfs_write, }; =20 static int gb_camera_debugfs_init(struct gb_camera *gcam) diff --git a/drivers/staging/greybus/raw.c b/drivers/staging/greybus/raw.c index 836d35e5fa85..44b85032b755 100644 --- a/drivers/staging/greybus/raw.c +++ b/drivers/staging/greybus/raw.c @@ -284,6 +284,7 @@ static ssize_t raw_write(struct file *file, const char = __user *buf, =20 return count; } +FOPS_WRITE_ITER_HELPER(raw_write); =20 static ssize_t raw_read(struct file *file, char __user *buf, size_t count, loff_t *ppos) @@ -316,11 +317,12 @@ static ssize_t raw_read(struct file *file, char __use= r *buf, size_t count, mutex_unlock(&raw->list_lock); return retval; } +FOPS_READ_ITER_HELPER(raw_read); =20 static const struct file_operations raw_fops =3D { .owner =3D THIS_MODULE, - .write =3D raw_write, - .read =3D raw_read, + .write_iter =3D raw_write_iter, + .read_iter =3D raw_read_iter, .open =3D raw_open, .llseek =3D noop_llseek, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f48.google.com (mail-io1-f48.google.com [209.85.166.48]) (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 BFE6817AD89 for ; Thu, 11 Apr 2024 15:37:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849842; cv=none; b=T8NIx6072hbbu4ZUWvwoubdJMgb2Pc8VGh7ctt8SD2XF3OSQrXw56bqMST19J/lhEszDasySZYkYfH919I8LnUrLZJj2jjPuR4c30x17VCAx6myUeUik9q0E7KdZgY+KI0oTqAE7wuZ7Mb/yv+2LcfNnpQP4l42jrjh4KGhtgmw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849842; c=relaxed/simple; bh=e2gTwFqCtDrY3UJAn9H2Bhmoo5CFknNWcQ48BCmUjKY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=XGvIReiL7KSnauqaTn28MNHMsgDGcZhmPcdfIOxKDBWysmw0Y+o78vJUhHlMvQX/Bm7u8O5/T/jrs1cyxbyk/wvd17y4l5suLVv+GwZsfIvVR7HuSuuYSJxVKLq7BWFOewTdR7yrMk1YeeAnb8jOn0iw85cSXNU+vIbYAZm8iTo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=ppxdMzeM; arc=none smtp.client-ip=209.85.166.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="ppxdMzeM" Received: by mail-io1-f48.google.com with SMTP id ca18e2360f4ac-7d6812b37a6so8971939f.0 for ; Thu, 11 Apr 2024 08:37:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849839; x=1713454639; 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=LWEn5iB1LmcjEiy1XdfAmvuMK+L+7s2BzBG5cbasvDQ=; b=ppxdMzeM6PVeL/AjRTCAj/Dn7PELly2hlKdjyW4a8BMH13UmuiqQ0EZbwY4zwjj/bz 5u7s0W+eMleHKpm3SFkxIY/9XBzzOcJI9JjkN5amckOY/WXzTgRh437YWHiTSOMkPmWL Ac/IplO1rHQgCv/bkDZQf5n6gwxKVfxLOgXNTd+BAfLZuUguj9nN7fuu6w2rcUdMRqPL hiVDzLc4F7CR8weCtnbw81WZsUDxnHYro9QwL09xpH4D/uVuLJZN1BfzzHnqSHHQMtwB 6jQq3vETn1wlpUkhRC9eO+SHxHEMxO1OinaRI/UAeA8330AOnWkZNHYE02+kQBgX9fBs gmQg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849839; x=1713454639; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=LWEn5iB1LmcjEiy1XdfAmvuMK+L+7s2BzBG5cbasvDQ=; b=aNNfvzT99ZNjEC9/COYDhgYt8TdJGZ7bgpEH/QGSirxZ8jF0a9kHOtWACHEB2mAgn7 Wofn9tavq8a7Ln3VWP2ByjrfabTh8Fs8cPtH0U1c47K0DC3M0sWV0xNp05MWjXx2LhR5 jBRV+r6y1Y23gNLB6hbh4nUBiInfJjhm9d2yfB/qRrk3ve3pyMzfUmBgsy5XWjAUbpsa dnRdJmfrHhyMdIngP5HP2WJl34VEuf3p3qmhAiVXLO2zpqMdIpLClQ3SrDg3q86sHNEw r+C3paH6vHtHpMHWrhdHmgGZ70RAWBdFev+UECN/lcBU/rxApmVYGHS2Jmgs93ASOOy2 IOjw== X-Gm-Message-State: AOJu0YyuiX87Qr9eMMyIb622hjRYWXPq6wChil3EBCIiPNeUUatyGtB8 dUsUK5n50RsYetf9r2QYs0VkpRORoX3ZkKrmb+UkVIMlKUvp6+4CIWFkOlMli9N0dEI4ya88oWB z X-Google-Smtp-Source: AGHT+IGdzPWk0DWzg/Wx0k5JD5EGSKe6rDKOsUGN7PQMJGG5K1QsfICRfNxifBHzhHrvz6rRXq85Tw== X-Received: by 2002:a92:d352:0:b0:36a:1275:4aeb with SMTP id a18-20020a92d352000000b0036a12754aebmr5885227ilh.1.1712849839682; Thu, 11 Apr 2024 08:37:19 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.37.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:37:18 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 203/437] staging: av7110: convert to read/write iterators Date: Thu, 11 Apr 2024 09:15:43 -0600 Message-ID: <20240411153126.16201-204-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/staging/media/av7110/av7110_av.c | 6 ++++-- drivers/staging/media/av7110/av7110_ca.c | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/drivers/staging/media/av7110/av7110_av.c b/drivers/staging/med= ia/av7110/av7110_av.c index 00dd6a7fea64..eb3ad2eae2d0 100644 --- a/drivers/staging/media/av7110/av7110_av.c +++ b/drivers/staging/media/av7110/av7110_av.c @@ -974,6 +974,7 @@ static ssize_t dvb_video_write(struct file *file, const= char __user *buf, else return dvb_play(av7110, buf, count, file->f_flags & O_NONBLOCK, 1); } +FOPS_WRITE_ITER_HELPER(dvb_video_write); =20 static __poll_t dvb_audio_poll(struct file *file, poll_table *wait) { @@ -1015,6 +1016,7 @@ static ssize_t dvb_audio_write(struct file *file, con= st char __user *buf, else return dvb_aplay(av7110, buf, count, file->f_flags & O_NONBLOCK, 0); } +FOPS_WRITE_ITER_HELPER(dvb_audio_write); =20 static u8 iframe_header[] =3D { 0x00, 0x00, 0x01, 0xe0, 0x00, 0x00, 0x80, = 0x00, 0x00 }; =20 @@ -1572,7 +1574,7 @@ static int dvb_audio_release(struct inode *inode, str= uct file *file) =20 static const struct file_operations dvb_video_fops =3D { .owner =3D THIS_MODULE, - .write =3D dvb_video_write, + .write_iter =3D dvb_video_write_iter, .unlocked_ioctl =3D dvb_generic_ioctl, .compat_ioctl =3D dvb_generic_ioctl, .open =3D dvb_video_open, @@ -1592,7 +1594,7 @@ static struct dvb_device dvbdev_video =3D { =20 static const struct file_operations dvb_audio_fops =3D { .owner =3D THIS_MODULE, - .write =3D dvb_audio_write, + .write_iter =3D dvb_audio_write_iter, .unlocked_ioctl =3D dvb_generic_ioctl, .compat_ioctl =3D dvb_generic_ioctl, .open =3D dvb_audio_open, diff --git a/drivers/staging/media/av7110/av7110_ca.c b/drivers/staging/med= ia/av7110/av7110_ca.c index c1338e074a3d..6b9c90562228 100644 --- a/drivers/staging/media/av7110/av7110_ca.c +++ b/drivers/staging/media/av7110/av7110_ca.c @@ -327,6 +327,7 @@ static ssize_t dvb_ca_write(struct file *file, const ch= ar __user *buf, dprintk(8, "av7110:%p\n",av7110); return ci_ll_write(&av7110->ci_wbuffer, file, buf, count, ppos); } +FOPS_WRITE_ITER_HELPER(dvb_ca_write); =20 static ssize_t dvb_ca_read(struct file *file, char __user *buf, size_t count, loff_t *ppos) @@ -337,11 +338,12 @@ static ssize_t dvb_ca_read(struct file *file, char __= user *buf, dprintk(8, "av7110:%p\n",av7110); return ci_ll_read(&av7110->ci_rbuffer, file, buf, count, ppos); } +FOPS_READ_ITER_HELPER(dvb_ca_read); =20 static const struct file_operations dvb_ca_fops =3D { .owner =3D THIS_MODULE, - .read =3D dvb_ca_read, - .write =3D dvb_ca_write, + .read_iter =3D dvb_ca_read_iter, + .write_iter =3D dvb_ca_write_iter, .unlocked_ioctl =3D dvb_generic_ioctl, .open =3D dvb_ca_open, .release =3D dvb_generic_release, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f50.google.com (mail-io1-f50.google.com [209.85.166.50]) (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 CB59939AF1 for ; Thu, 11 Apr 2024 15:37:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849844; cv=none; b=LxnDUVPb0DEkZN9fLHXEmN4kt6Qy0HKRzf+G2YGR6ZqzsVjDc9PeKySHvecPzgvWS0hIuD9xhauHiabtbmhM0HklRp0m07Xoc66uFSOFpwbIRarnB52a9xeeMQPkHp/a9q8rtGTeHXNvr12Ta0rjcS+/azP5Ipah7N9mDTQDHVI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849844; c=relaxed/simple; bh=aajrNqD/Rckw7jOidvZZUN6fQKDlQgxbvTZgO+e9Gq8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=vAiNA6sX0BtzRwM7xQHmWAEraNSwXDYJ+E04pkAA/DnHBJ0tTM1E82O1h9f2oyiSryaKeTinvU+xjxfsANTeVRVn+yh51fk2rWYCd/GRiWjUdn6aEbgxwJJxZmDbRYNms3+Ys8Iy0GG1F6St0TThQOX0OyKpuBAnnCeVK4kDDOU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=LQ76ahtj; arc=none smtp.client-ip=209.85.166.50 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="LQ76ahtj" Received: by mail-io1-f50.google.com with SMTP id ca18e2360f4ac-7cc0e831e11so170540739f.1 for ; Thu, 11 Apr 2024 08:37:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849842; x=1713454642; 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=Pe/uXO9WUbo/+TRHqVLJ2sBbazJNxXNSSYXndo+pK7U=; b=LQ76ahtjA3DCyZxr6OzWXDBxYNnEhoO+eWy7LJh7BRW/tC8Peye88jccRnyBT7x0ZX g5bsgO5HulhMorOR8ebE0j+mqEC60I+k5X1iZKmJQFrtrD7xqWj8Tq/KW2Z+7coiBn2O AQ/P4TEMyE0z5A0f/itlTKHyPexYvljmqtW06IxmN6QDourlkfJJ/4Y+cjNTZiO65xUv X0+3zddDiV/BtLqRoef9EeCvUWW1NhOeZiJGymOlyQNOv7FbtJ/9UPQg7rOqy8c7lTgQ ZV/tNYtLKs/SEvxa79xW31dcInsjC7+T4ByQ/vA5sMRjpnEC4Fjk6FztqSBn09zDIkJY XT8w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849842; x=1713454642; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Pe/uXO9WUbo/+TRHqVLJ2sBbazJNxXNSSYXndo+pK7U=; b=SBD379sc51vfpICsnnW33E8allgmu0aNuB6FYElZ0rsADFHSpoGWts62Mh3VvXGrfI QNREaonmbCzPg3hS9yDc+Mdsp1fCbW54JoP8DrDCB2HFN8Wlc/TO0/xGjhzoFo9y9H0x obR8CVES4bJRhmxkzRESAekM37GvPAA2nfSq4jRehGDomPB0ZMMcI46npOaviUkKlZ2s mWirGungWJMei56xdkNzyc8bq5PueU8JOM/Z2uXbHql32STlSDv3gm4DMUrDgch13Y25 MAW3TBPbBNcI4g44VRZ/+3eKPkU5iX7csw3qREjyhrS1OJccsW55g2/cncwSjQe4y2Ey WUIQ== X-Gm-Message-State: AOJu0YzpM6TKWDYps+VHl3gDecx2MR6L2I0nYS6GBvBPB+HCA+vpn/nT J+0XRPaTcTdLVPm4NTrqzBmjppaua29INjr1SXjlBeNATkVQ/1vglK/+m227dkxcnsgRUT0sWUX 4 X-Google-Smtp-Source: AGHT+IEOccgd7r+7kiKfP8/FuXJKQogbWfXF+ILwn8ZGkIRuH1eumh5NUUo92oaSIoQ79NCw1qMGOQ== X-Received: by 2002:a05:6602:21d7:b0:7d6:9ddf:5095 with SMTP id c23-20020a05660221d700b007d69ddf5095mr19532ioc.1.1712849841782; Thu, 11 Apr 2024 08:37:21 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.37.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:37:20 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 204/437] staging: vc04_services: convert to read/write iterators Date: Thu, 11 Apr 2024 09:15:44 -0600 Message-ID: <20240411153126.16201-205-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- .../interface/vchiq_arm/vchiq_debugfs.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_debugf= s.c b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_debugfs.c index d833e4e2973a..0e18e2020654 100644 --- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_debugfs.c +++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_debugfs.c @@ -52,15 +52,14 @@ static int debugfs_trace_open(struct inode *inode, stru= ct file *file) return single_open(file, debugfs_trace_show, inode->i_private); } =20 -static ssize_t debugfs_trace_write(struct file *file, - const char __user *buffer, - size_t count, loff_t *ppos) +static ssize_t debugfs_trace_write(struct kiocb *iocb, struct iov_iter *fr= om) { - struct seq_file *f =3D (struct seq_file *)file->private_data; + struct seq_file *f =3D iocb->ki_filp->private_data; struct vchiq_instance *instance =3D f->private; + size_t count =3D iov_iter_count(from); char firstchar; =20 - if (copy_from_user(&firstchar, buffer, 1)) + if (!copy_from_iter_full(&firstchar, 1, from)) return -EFAULT; =20 switch (firstchar) { @@ -78,16 +77,15 @@ static ssize_t debugfs_trace_write(struct file *file, break; } =20 - *ppos +=3D count; - + iocb->ki_pos +=3D count; return count; } =20 static const struct file_operations debugfs_trace_fops =3D { .owner =3D THIS_MODULE, .open =3D debugfs_trace_open, - .write =3D debugfs_trace_write, - .read =3D seq_read, + .write_iter =3D debugfs_trace_write, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D single_release, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-il1-f170.google.com (mail-il1-f170.google.com [209.85.166.170]) (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 90C7278C72 for ; Thu, 11 Apr 2024 15:37:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.170 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849846; cv=none; b=qeCDyPqpyRSDuCSgdwayFhzHwqDjv/TbP7NlxVa1SHInEBl8R/ZJ2O17Rllq9iGp/PoPZWyul51Dd0eOEBq5degJ89g6yEHazBqSu+EKnO5qYs9A+M2udvtoGAGgAP+ERt12maehi/EleK8GxxIEuZhBj3r82ZyBbDfAER2/quk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849846; c=relaxed/simple; bh=c4VQjDpBziD9iQRRsEw79UZ23vGA/d6lw6QGoXIK980=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=pgirqUH+qYLcu2gQH/QlQaZC8aEwfgSFWrC8PjYrJYvVyJiF23Qj4o5om+D4SIicRS9t/qfbKkPhL5YwYwYrLTnfXprkjU2CjxCgtp0vpqej1hccJaeJEQ/ia0Zptj30WmVF4kg5GiP7/YfLuNiVJezPhxWvp6Qs7ZgSnWq7KkY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=twjH1zcd; arc=none smtp.client-ip=209.85.166.170 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="twjH1zcd" Received: by mail-il1-f170.google.com with SMTP id e9e14a558f8ab-36a224d7414so185645ab.1 for ; Thu, 11 Apr 2024 08:37:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849843; x=1713454643; 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=NVcA11oiqqKckOIJKSAr7zcRS6dozXsd/egI2hKWTf0=; b=twjH1zcdKWU+4js0Og3OMdhLNmmY668O1FaSR+xkEG+TFonttdI7McQ3cQ7Mqrt5ma qJTSsJ+MF9FXVlfOFn6WbKb0v+RPLY39+vwpjGakI8pa0Mtti41LcNxbS5SRZjojbAqM yIcQSGwOj0S2ohzbcE/A2dczBwD+EVMeb+vRZ157rXCpCHndeeoNEo/N1keFePqCm9m9 kcqxiHJBKiulznydUh56E/4N1Cbwu9j1gWDhHIo7rY2zupm8JFAerhrjJrcEZ3cdUJnR FKmlMjDKxJEitwoEihYG13/ISWsoieOJhbEqm23/fv2Shlo/02enaPefa66nH/ffKVmP OdsQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849843; x=1713454643; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=NVcA11oiqqKckOIJKSAr7zcRS6dozXsd/egI2hKWTf0=; b=fw00/4hXPjItGJ7VKVSchFISQVDwhxjeqeMBIcfXEmknSgANmCjjfGWylD5xUMnFBJ dpe4ajoo5MO1JcIABKrOObC+bObw6yO3RFC2yhkJtw08F64+g8JoV5WI7QBHEzc/72dL R/EyJCpQ3/TMy+DTucfXjydlvdD6J75ybEme517/hj6vvXvTIcptIbvdmkgxtS5gjgEL Mk/Xa1fPI+Cb9bWAT3wf8U+mV1AuiiLNm/056jVHQH/9pM7T7vZuvUfEBKSWfM5HE/f0 LegoGwIe5kOM0/PwdkcW1l1Lmo5HajpiAv02g1EUFDvKiwlT7iHc4D/6AMFxw67Mke2d mYqw== X-Gm-Message-State: AOJu0YwCjRUn3RqkJmReyl4mMBxVhmr3zeMke/Jy++9OP2cPBuuTQtnB marppPK3neHRYK42vjfFnxiJm6ZUyRQoGZ+92Y50+PXaNUX1F1TYC5vJsFz3a7rCy24XNKTn+39 i X-Google-Smtp-Source: AGHT+IH0WMBZqOc3AZXqlMmX8eArsu9N275SgHnwH2q/eBuc5sPcd0b9N1yWQQcnV2NSgg9OR4td5A== X-Received: by 2002:a6b:6605:0:b0:7d4:1dae:da1a with SMTP id a5-20020a6b6605000000b007d41daeda1amr152171ioc.2.1712849843372; Thu, 11 Apr 2024 08:37:23 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.37.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:37:22 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 205/437] drivers/xen: convert to ->read_iter and ->write_iter Date: Thu, 11 Apr 2024 09:15:45 -0600 Message-ID: <20240411153126.16201-206-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/xen/evtchn.c | 25 ++++++++++++------------ drivers/xen/mcelog.c | 17 ++++++++-------- drivers/xen/xenbus/xenbus_dev_frontend.c | 24 +++++++++++------------ drivers/xen/xenfs/super.c | 7 +++---- drivers/xen/xenfs/xenstored.c | 11 +++++------ drivers/xen/xenfs/xensyms.c | 2 +- 6 files changed, 42 insertions(+), 44 deletions(-) diff --git a/drivers/xen/evtchn.c b/drivers/xen/evtchn.c index f6a2216c2c87..06af1a458e44 100644 --- a/drivers/xen/evtchn.c +++ b/drivers/xen/evtchn.c @@ -51,6 +51,7 @@ #include #include #include +#include =20 #include #include @@ -197,12 +198,12 @@ static irqreturn_t evtchn_interrupt(int irq, void *da= ta) return IRQ_HANDLED; } =20 -static ssize_t evtchn_read(struct file *file, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t evtchn_read(struct kiocb *iocb, struct iov_iter *to) { int rc; unsigned int c, p, bytes1 =3D 0, bytes2 =3D 0; - struct per_user_data *u =3D file->private_data; + struct per_user_data *u =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(to); =20 /* Whole number of ports. */ count &=3D ~(sizeof(evtchn_port_t)-1); @@ -227,7 +228,7 @@ static ssize_t evtchn_read(struct file *file, char __us= er *buf, =20 mutex_unlock(&u->ring_cons_mutex); =20 - if (file->f_flags & O_NONBLOCK) + if (iocb->ki_filp->f_flags & O_NONBLOCK) return -EAGAIN; =20 rc =3D wait_event_interruptible(u->evtchn_wait, @@ -256,9 +257,9 @@ static ssize_t evtchn_read(struct file *file, char __us= er *buf, =20 rc =3D -EFAULT; smp_rmb(); /* Ensure that we see the port before we copy it. */ - if (copy_to_user(buf, evtchn_ring_entry(u, c), bytes1) || + if (!copy_to_iter_full(evtchn_ring_entry(u, c), bytes1, to) || ((bytes2 !=3D 0) && - copy_to_user(&buf[bytes1], &u->ring[0], bytes2))) + !copy_to_iter_full(&u->ring[0], bytes2, to))) goto unlock_out; =20 WRITE_ONCE(u->ring_cons, c + (bytes1 + bytes2) / sizeof(evtchn_port_t)); @@ -269,12 +270,12 @@ static ssize_t evtchn_read(struct file *file, char __= user *buf, return rc; } =20 -static ssize_t evtchn_write(struct file *file, const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t evtchn_write(struct kiocb *iocb, struct iov_iter *from) { int rc, i; evtchn_port_t *kbuf =3D (evtchn_port_t *)__get_free_page(GFP_KERNEL); - struct per_user_data *u =3D file->private_data; + struct per_user_data *u =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); =20 if (kbuf =3D=3D NULL) return -ENOMEM; @@ -290,7 +291,7 @@ static ssize_t evtchn_write(struct file *file, const ch= ar __user *buf, count =3D PAGE_SIZE; =20 rc =3D -EFAULT; - if (copy_from_user(kbuf, buf, count) !=3D 0) + if (!copy_from_iter_full(kbuf, count, from) !=3D 0) goto out; =20 mutex_lock(&u->bind_mutex); @@ -687,8 +688,8 @@ static int evtchn_release(struct inode *inode, struct f= ile *filp) =20 static const struct file_operations evtchn_fops =3D { .owner =3D THIS_MODULE, - .read =3D evtchn_read, - .write =3D evtchn_write, + .read_iter =3D evtchn_read, + .write_iter =3D evtchn_write, .unlocked_ioctl =3D evtchn_ioctl, .poll =3D evtchn_poll, .fasync =3D evtchn_fasync, diff --git a/drivers/xen/mcelog.c b/drivers/xen/mcelog.c index e9ac3b8c4167..610b5f746ca4 100644 --- a/drivers/xen/mcelog.c +++ b/drivers/xen/mcelog.c @@ -103,10 +103,10 @@ static int xen_mce_chrdev_release(struct inode *inode= , struct file *file) return 0; } =20 -static ssize_t xen_mce_chrdev_read(struct file *filp, char __user *ubuf, - size_t usize, loff_t *off) +static ssize_t xen_mce_chrdev_read(struct kiocb *iocb, struct iov_iter *to) { - char __user *buf =3D ubuf; + size_t usize =3D iov_iter_count(to); + ssize_t copied; unsigned num; int i, err; =20 @@ -116,15 +116,16 @@ static ssize_t xen_mce_chrdev_read(struct file *filp,= char __user *ubuf, =20 /* Only supports full reads right now */ err =3D -EINVAL; - if (*off !=3D 0 || usize < XEN_MCE_LOG_LEN*sizeof(struct xen_mce)) + if (iocb->ki_pos !=3D 0 || usize < XEN_MCE_LOG_LEN*sizeof(struct xen_mce)) goto out; =20 err =3D 0; + copied =3D 0; for (i =3D 0; i < num; i++) { struct xen_mce *m =3D &xen_mcelog.entry[i]; =20 - err |=3D copy_to_user(buf, m, sizeof(*m)); - buf +=3D sizeof(*m); + err |=3D !copy_to_iter_full(m, sizeof(*m), to); + copied +=3D sizeof(*m); } =20 memset(xen_mcelog.entry, 0, num * sizeof(struct xen_mce)); @@ -136,7 +137,7 @@ static ssize_t xen_mce_chrdev_read(struct file *filp, c= har __user *ubuf, out: mutex_unlock(&mcelog_lock); =20 - return err ? err : buf - ubuf; + return err ? err : copied; } =20 static __poll_t xen_mce_chrdev_poll(struct file *file, poll_table *wait) @@ -179,7 +180,7 @@ static long xen_mce_chrdev_ioctl(struct file *f, unsign= ed int cmd, static const struct file_operations xen_mce_chrdev_ops =3D { .open =3D xen_mce_chrdev_open, .release =3D xen_mce_chrdev_release, - .read =3D xen_mce_chrdev_read, + .read_iter =3D xen_mce_chrdev_read, .poll =3D xen_mce_chrdev_poll, .unlocked_ioctl =3D xen_mce_chrdev_ioctl, .llseek =3D no_llseek, diff --git a/drivers/xen/xenbus/xenbus_dev_frontend.c b/drivers/xen/xenbus/= xenbus_dev_frontend.c index 6f56640092a9..3da823abfdc0 100644 --- a/drivers/xen/xenbus/xenbus_dev_frontend.c +++ b/drivers/xen/xenbus/xenbus_dev_frontend.c @@ -122,11 +122,10 @@ struct xenbus_file_priv { }; =20 /* Read out any raw xenbus messages queued up. */ -static ssize_t xenbus_file_read(struct file *filp, - char __user *ubuf, - size_t len, loff_t *ppos) +static ssize_t xenbus_file_read(struct kiocb *iocb, struct iov_iter *to) { - struct xenbus_file_priv *u =3D filp->private_data; + struct xenbus_file_priv *u =3D iocb->ki_filp->private_data; + size_t len =3D iov_iter_count(to); struct read_buffer *rb; ssize_t i; int ret; @@ -135,7 +134,7 @@ static ssize_t xenbus_file_read(struct file *filp, again: while (list_empty(&u->read_buffers)) { mutex_unlock(&u->reply_mutex); - if (filp->f_flags & O_NONBLOCK) + if (iocb->ki_filp->f_flags & O_NONBLOCK) return -EAGAIN; =20 ret =3D wait_event_interruptible(u->read_waitq, @@ -150,7 +149,7 @@ static ssize_t xenbus_file_read(struct file *filp, while (i < len) { size_t sz =3D min_t(size_t, len - i, rb->len - rb->cons); =20 - ret =3D copy_to_user(ubuf + i, &rb->msg[rb->cons], sz); + ret =3D !copy_to_iter_full(&rb->msg[rb->cons], sz, to); =20 i +=3D sz - ret; rb->cons +=3D sz - ret; @@ -547,11 +546,10 @@ static int xenbus_write_watch(unsigned msg_type, stru= ct xenbus_file_priv *u) return rc; } =20 -static ssize_t xenbus_file_write(struct file *filp, - const char __user *ubuf, - size_t len, loff_t *ppos) +static ssize_t xenbus_file_write(struct kiocb *iocb, struct iov_iter *from) { - struct xenbus_file_priv *u =3D filp->private_data; + struct xenbus_file_priv *u =3D iocb->ki_filp->private_data; + size_t len =3D iov_iter_count(from); uint32_t msg_type; int rc =3D len; int ret; @@ -585,7 +583,7 @@ static ssize_t xenbus_file_write(struct file *filp, goto out; } =20 - ret =3D copy_from_user(u->u.buffer + u->len, ubuf, len); + ret =3D !copy_from_iter_full(u->u.buffer + u->len, len, from); =20 if (ret !=3D 0) { rc =3D -EFAULT; @@ -695,8 +693,8 @@ static __poll_t xenbus_file_poll(struct file *file, pol= l_table *wait) } =20 const struct file_operations xen_xenbus_fops =3D { - .read =3D xenbus_file_read, - .write =3D xenbus_file_write, + .read_iter =3D xenbus_file_read, + .write_iter =3D xenbus_file_write, .open =3D xenbus_file_open, .release =3D xenbus_file_release, .poll =3D xenbus_file_poll, diff --git a/drivers/xen/xenfs/super.c b/drivers/xen/xenfs/super.c index d7d64235010d..54e4e4702572 100644 --- a/drivers/xen/xenfs/super.c +++ b/drivers/xen/xenfs/super.c @@ -28,19 +28,18 @@ MODULE_DESCRIPTION("Xen filesystem"); MODULE_LICENSE("GPL"); =20 -static ssize_t capabilities_read(struct file *file, char __user *buf, - size_t size, loff_t *off) +static ssize_t capabilities_read(struct kiocb *iocb, struct iov_iter *to) { char *tmp =3D ""; =20 if (xen_initial_domain()) tmp =3D "control_d\n"; =20 - return simple_read_from_buffer(buf, size, off, tmp, strlen(tmp)); + return simple_copy_to_iter(tmp, &iocb->ki_pos, strlen(tmp), to); } =20 static const struct file_operations capabilities_file_ops =3D { - .read =3D capabilities_read, + .read_iter =3D capabilities_read, .llseek =3D default_llseek, }; =20 diff --git a/drivers/xen/xenfs/xenstored.c b/drivers/xen/xenfs/xenstored.c index f59235f9f8a2..c4e8692deac2 100644 --- a/drivers/xen/xenfs/xenstored.c +++ b/drivers/xen/xenfs/xenstored.c @@ -9,11 +9,10 @@ =20 #include "xenfs.h" =20 -static ssize_t xsd_read(struct file *file, char __user *buf, - size_t size, loff_t *off) +static ssize_t xsd_read(struct kiocb *iocb, struct iov_iter *to) { - const char *str =3D (const char *)file->private_data; - return simple_read_from_buffer(buf, size, off, str, strlen(str)); + const char *str =3D (const char *)iocb->ki_filp->private_data; + return simple_copy_to_iter(str, &iocb->ki_pos, strlen(str), to); } =20 static int xsd_release(struct inode *inode, struct file *file) @@ -49,7 +48,7 @@ static int xsd_kva_mmap(struct file *file, struct vm_area= _struct *vma) const struct file_operations xsd_kva_file_ops =3D { .open =3D xsd_kva_open, .mmap =3D xsd_kva_mmap, - .read =3D xsd_read, + .read_iter =3D xsd_read, .release =3D xsd_release, }; =20 @@ -64,6 +63,6 @@ static int xsd_port_open(struct inode *inode, struct file= *file) =20 const struct file_operations xsd_port_file_ops =3D { .open =3D xsd_port_open, - .read =3D xsd_read, + .read_iter =3D xsd_read, .release =3D xsd_release, }; diff --git a/drivers/xen/xenfs/xensyms.c b/drivers/xen/xenfs/xensyms.c index b799bc759c15..ec30aa09620f 100644 --- a/drivers/xen/xenfs/xensyms.c +++ b/drivers/xen/xenfs/xensyms.c @@ -146,7 +146,7 @@ static int xensyms_release(struct inode *inode, struct = file *file) =20 const struct file_operations xensyms_ops =3D { .open =3D xensyms_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D xensyms_release }; --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f41.google.com (mail-io1-f41.google.com [209.85.166.41]) (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 6E28278C97 for ; Thu, 11 Apr 2024 15:37:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849848; cv=none; b=FQKFbpMUsTgQfWj7FvF5XOvJ2X0rm8PhSVML3F5NJtl0WSyhDjo+kOqwsD5nX3eAMGgUNJEgOpvd4Qi3vED9YWAinjWmVOElH5vYCxj2buUF7bRuHiAaomlwagBjYxwdy3Da5jbvch0xaqaiNespXzVHHeUC39Xs/pT2kZ9oaZ4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849848; c=relaxed/simple; bh=RwQMnBL78ma9gpE6oT6aJLPe7CuKFi1pZhRbZlKjVQM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ECglotMgL9G6u32en1NK2zBGhOEV/hdDwONU4gpLXO23IuvoleXgBdp+36sP0GmLohtPTRE0f2cQA0jC56g5XI0BbIzP9e44VI7VDXjVMmU1Qt12r4iFkKFmtaMiSkldp4hTnsaa0LH2XjyHYaOw8VRsuPIpZTEUsHN8OkndsHI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=0K5BRT66; arc=none smtp.client-ip=209.85.166.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="0K5BRT66" Received: by mail-io1-f41.google.com with SMTP id ca18e2360f4ac-7d6112ba6baso58103839f.1 for ; Thu, 11 Apr 2024 08:37:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849845; x=1713454645; 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=zxF/BLT131IOdlBMzuxjsslI37rIyb//18KVj2WFY3A=; b=0K5BRT66JD/0ZSkskLbPqSaKeKB3aNscsqzINz0cPBelD8L/y//im476J6+ZsXRRXY NeiYD7TObagOf/kUxrOalUxBNPP4rPC64SorSARPY2WEa/MCUhkSvj7IUEmEwWQruCd4 xtUPh01s22dxeNN0HyBWtbbFD3XsDjzH61tYgIGK9Z4IPN6kQoyGXAE+P1d2KjIqpEc8 w/FvcumNdMSWUpjNQWfFaqZGHT/Pv0uTvO4ybWmvaB62LulK8r8hlOmpIp54vGt/N7N5 tr0lYnbKTBnBkT34HGtNtiVn6tnQjxV2Tu7Vk2dy4E5SHX6UDqGnYu5gBf3dJ4NFvF4y c0lQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849845; x=1713454645; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=zxF/BLT131IOdlBMzuxjsslI37rIyb//18KVj2WFY3A=; b=hFvtvKyId8Oca2iN7zz7jUqQ5aka24PVA2GKBxLpOb3sUghWs1r2CihPLZd/G4FBFk 8ME/rfoPRk4uKIW2KuSnL0T+BEtCFcqhHvS7R34b9QRIKn/h+1dESOVHg24Tvk36kvTe iT7sq/VJeIV3r/dfcdt3sY4lV7KE8I3fuSqCWgqM7ayIlfIgx17GkBw9l8d9OxF5EEKm eSGFKvQQKCaSisw2ujARNBTOaj0++FhXX+UYHSMUIeXZunhEYPsoyFjQ48GFDZw0xjJc 0LXJIDXWG9F5HMmAjbNqlaBDQ7J4cHBeqX+ndVm3MPLluYyhsU4N0MUF6YAHxR3DxDHI AWwg== X-Gm-Message-State: AOJu0Yzu/2y9ih7r8vAs7Wi2lLdIQPNn4jhly05a4mpAgoXuGMhkOgoL Uufg2ZaBuvwZ2pTkkeymOeZiLThPnW7sFXCi0CNMlpyYoYvHknw3JPWYZR3HqEWFrBod6uSXTf8 0 X-Google-Smtp-Source: AGHT+IHLuzo97s9p6mRhxgClbTzcy/j8JUuvDz6VVR1yWPN9tFJhuLRoLVs+BQTtGI0OKbHV2X4ZIQ== X-Received: by 2002:a05:6602:38d:b0:7d6:513b:254 with SMTP id f13-20020a056602038d00b007d6513b0254mr188551iov.2.1712849845291; Thu, 11 Apr 2024 08:37:25 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.37.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:37:23 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 206/437] virt: convert to ->read_iter and ->write_iter Date: Thu, 11 Apr 2024 09:15:46 -0600 Message-ID: <20240411153126.16201-207-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- virt/kvm/kvm_main.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c index fb49c2a60200..9530584af843 100644 --- a/virt/kvm/kvm_main.c +++ b/virt/kvm/kvm_main.c @@ -4373,6 +4373,7 @@ static ssize_t kvm_vcpu_stats_read(struct file *file,= char __user *user_buffer, &kvm_vcpu_stats_desc[0], &vcpu->stat, sizeof(vcpu->stat), user_buffer, size, offset); } +FOPS_READ_ITER_HELPER(kvm_vcpu_stats_read); =20 static int kvm_vcpu_stats_release(struct inode *inode, struct file *file) { @@ -4384,7 +4385,7 @@ static int kvm_vcpu_stats_release(struct inode *inode= , struct file *file) =20 static const struct file_operations kvm_vcpu_stats_fops =3D { .owner =3D THIS_MODULE, - .read =3D kvm_vcpu_stats_read, + .read_iter =3D kvm_vcpu_stats_read_iter, .release =3D kvm_vcpu_stats_release, .llseek =3D noop_llseek, }; @@ -5064,6 +5065,7 @@ static ssize_t kvm_vm_stats_read(struct file *file, c= har __user *user_buffer, &kvm_vm_stats_desc[0], &kvm->stat, sizeof(kvm->stat), user_buffer, size, offset); } +FOPS_READ_ITER_HELPER(kvm_vm_stats_read); =20 static int kvm_vm_stats_release(struct inode *inode, struct file *file) { @@ -5075,7 +5077,7 @@ static int kvm_vm_stats_release(struct inode *inode, = struct file *file) =20 static const struct file_operations kvm_vm_stats_fops =3D { .owner =3D THIS_MODULE, - .read =3D kvm_vm_stats_read, + .read_iter =3D kvm_vm_stats_read_iter, .release =3D kvm_vm_stats_release, .llseek =3D noop_llseek, }; @@ -6153,8 +6155,8 @@ static const struct file_operations stat_fops_per_vm = =3D { .owner =3D THIS_MODULE, .open =3D kvm_stat_data_open, .release =3D kvm_debugfs_release, - .read =3D simple_attr_read, - .write =3D simple_attr_write, + .read_iter =3D simple_attr_read_iter, + .write_iter =3D simple_attr_write_iter, .llseek =3D no_llseek, }; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f45.google.com (mail-io1-f45.google.com [209.85.166.45]) (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 765473A8C0 for ; Thu, 11 Apr 2024 15:37:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849849; cv=none; b=ikp1k6M4HfHyBruCnnqysY4DkH4ZZgVlv4ENqJxb1o6bc5LR0QYDZRC+8d4uySyWivUhv1DyNeZbheB8FFNjIavRhakj+SiGwsS9FwVMEaV5fL2bPG2toL0rkXbdYGbkpfgUcte+Bbeu9BHFTDJ3FxfNMQp2m9vJJ3IYhvdGx6M= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849849; c=relaxed/simple; bh=0/SqUhOqyvP7dy+vm6DJOfkb0cXjPjSgzA5axHn0tPw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=qAuSvp+BrCwXM/9Y9XD2olpvGfDmGHdrcEtPgs6JS4L2K5mccT9Cqb7aaYThQhqUvjyATHX5t2SRf90XQEe8Xksbdkk8MA7PRFQMidndzVRh8SP9owYlfREDK3eZ3QSsiqg4zuLt0dGCzl0GuCg8LqoylwyDovwxlzypG6D6k6U= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=RCzpU39g; arc=none smtp.client-ip=209.85.166.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="RCzpU39g" Received: by mail-io1-f45.google.com with SMTP id ca18e2360f4ac-7d67d1073easo9819539f.0 for ; Thu, 11 Apr 2024 08:37:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849847; x=1713454647; 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=+hTcAQNOw+MiQWoEZcItkLvAsb+s8QLNOgcdw+/kA+0=; b=RCzpU39gsqaqWCXS1DH3jL+rgvzP6dWSzx+MJtV+mrO4APr/m/doGHS5Apz1lnA0F5 k1bDgwmDsJEZBfzczSJg/TlEgIKtEgZLOayO7lqqWDbFyUNJ8PCANz9ukVm6Ob7DN9VB Oa42tqkCvF5R7H/2NEVBwSMVXqZ1qiqWlfNLIjfh3MIIxkCtLJs6KglTcYA739dHteWb VnyJ5o/gI6m1pV5+8gpDmLVD+jV1b7AjHrjWmeKLJ398iWRlyod7pt60nFaLcvyBj5fE /i4UH6zg98wr0yw7yKRHAEzdrq3aRrSQlv5tjpmbire8V8HnHUCKxPNIl3wG/ve3GeoI rrvg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849847; x=1713454647; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=+hTcAQNOw+MiQWoEZcItkLvAsb+s8QLNOgcdw+/kA+0=; b=T5a0GBkwhlpWWQfNgmZGRceh5e5pN/vKEQUYcc/754Xt3rUbyqDfFG7eSPhouLkIrE dlFLFwFbP315cV1NxP7utMnAcBdn8oL43YWxDErn+egKPggmeYH91CudOMnVcepnGEtc YmdqyBotS6Bz71Xb+6Kkifa/iL+G5s2k8iwtlr238KB6kCzd0rpKIsQlFmLl+rVoh+FU +GvtkzW6ggbQDHnBtBDvkODn1k6kg5viRpkyrWaIZaoiXXsZGrZipSPVxYuEZCzep+ks Y2K7mcljLb3B2iaP+NCIDFG7xAuRUqIJ8Tp7tjRYXokwUfuyAaU8at3PSjf7V3yGPyZp AOxA== X-Gm-Message-State: AOJu0Yw8MeBnL4sZehGnuxrjQij07GRSQ4GHBjhPETdsHUYoJfgbpIDq d+oI62kodADHrdqY/fpw9bZpMrKCAiBhFDfmqoKXyZXbBcUWi5R+JgXSSmi3IpVjSelAy/9Qxan C X-Google-Smtp-Source: AGHT+IE7RwaCw8KQF7ouMhe3VdA0QmFxpnxQwnqQynS9goV9pf0wyevBnTTW+KyXt8LH9dsYQNX24w== X-Received: by 2002:a05:6602:84:b0:7d6:9d75:6de2 with SMTP id h4-20020a056602008400b007d69d756de2mr44760iob.2.1712849847192; Thu, 11 Apr 2024 08:37:27 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.37.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:37:25 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 207/437] virt: fsl_hypervisor: convert to read/write iterators Date: Thu, 11 Apr 2024 09:15:47 -0600 Message-ID: <20240411153126.16201-208-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/virt/fsl_hypervisor.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/drivers/virt/fsl_hypervisor.c b/drivers/virt/fsl_hypervisor.c index e92e2ceb12a4..dc84e0006201 100644 --- a/drivers/virt/fsl_hypervisor.c +++ b/drivers/virt/fsl_hypervisor.c @@ -590,11 +590,10 @@ static __poll_t fsl_hv_poll(struct file *filp, struct= poll_table_struct *p) * return them to the caller as an array of 32-bit integers. Otherwise, * block until there is at least one handle to return. */ -static ssize_t fsl_hv_read(struct file *filp, char __user *buf, size_t len, - loff_t *off) +static ssize_t fsl_hv_read(struct kiocb *iocb, struct iov_iter *to) { - struct doorbell_queue *dbq =3D filp->private_data; - uint32_t __user *p =3D (uint32_t __user *) buf; /* for put_user() */ + struct doorbell_queue *dbq =3D iocb->ki_filp->private_data; + size_t len =3D iov_iter_count(to); unsigned long flags; ssize_t count =3D 0; =20 @@ -613,7 +612,7 @@ static ssize_t fsl_hv_read(struct file *filp, char __us= er *buf, size_t len, spin_unlock_irqrestore(&dbq->lock, flags); if (count) break; - if (filp->f_flags & O_NONBLOCK) + if (iocb->ki_filp->f_flags & O_NONBLOCK) return -EAGAIN; if (wait_event_interruptible(dbq->wait, dbq->head !=3D dbq->tail)) @@ -639,9 +638,8 @@ static ssize_t fsl_hv_read(struct file *filp, char __us= er *buf, size_t len, =20 spin_unlock_irqrestore(&dbq->lock, flags); =20 - if (put_user(dbell, p)) + if (put_iter(dbell, to)) return -EFAULT; - p++; count +=3D sizeof(uint32_t); len -=3D sizeof(uint32_t); } @@ -700,7 +698,7 @@ static const struct file_operations fsl_hv_fops =3D { .open =3D fsl_hv_open, .release =3D fsl_hv_close, .poll =3D fsl_hv_poll, - .read =3D fsl_hv_read, + .read_iter =3D fsl_hv_read, .unlocked_ioctl =3D fsl_hv_ioctl, .compat_ioctl =3D compat_ptr_ioctl, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f41.google.com (mail-io1-f41.google.com [209.85.166.41]) (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 274341BC7B4 for ; Thu, 11 Apr 2024 15:37:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849851; cv=none; b=J0fFOMnsDxi4yX8AnUbF6y74k7o8zD4NgINXDrF091mnbQGQoTVxGx1mDSyinc17D7Gt3uy5Wo2THjlUHhlDqGoIPio/y32LrQNQAERZpU0qSk8EFZq0HJPLu/BHip8rRlANivjRF4slitcUkJS5f7k0JwQMJAhTzm8nTSEkvH8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849851; c=relaxed/simple; bh=tV9Lv4pqB34L8dYU/gwh9Bsh+yGwTixQqfbRED942KQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=b+ayLwU7JxLqZiMqjtkpt5oTeE86sR5Y4FT6RdGttdQPqaWqrTJH91u2E7EyW/+g7TpujQ2QGqQz9IkQAZdcJ+lEhBL2ncJiCQn1O+wu2g3/IRnTBVg8E03Mf/iD9zgHnuTTvxCMZFhaaqKn+MAAY6/0D9YgvGJhUHAUPmt1toE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=kv7FkJKC; arc=none smtp.client-ip=209.85.166.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="kv7FkJKC" Received: by mail-io1-f41.google.com with SMTP id ca18e2360f4ac-7d6812b37a6so8974539f.0 for ; Thu, 11 Apr 2024 08:37:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849849; x=1713454649; 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=sAF1bwapnqH/1s8SgdQui9NI3zwMPi3HaRH5YIg1/rA=; b=kv7FkJKCGDzhO4K94/84NGCcPs5F6w+4yeMwokt8faqoYpt70pMISsXAsWdA7CUqAa P6E4mEMM4GAjQTCqweoUiTMlaUXqxqDZDEKUkvvP3oDLqB5oph+7cUoiC6LHwWl98yYB znuOv/uDFZfstQPBmUnoJKW1gj0Lgg9oS0tWy/anECzbNSTTaDNcb/zxanPzdtxoEu/7 aYDBkft99WfR+dVY4i/2+acvRrfzLmFHgi1LfeBfn+oC8tk8fHY+IDaKBtzdIrl379s9 hy37kcg0+5B4XymgMtf+7irxd6JslJPmVMr3w0ygukZaFOASsVol1JNWD7D7v+dnqx3a bS8A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849849; x=1713454649; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=sAF1bwapnqH/1s8SgdQui9NI3zwMPi3HaRH5YIg1/rA=; b=xSe1lYXZth9WGZLKiIkjcpsYk4lB3bI6rhQP41EWZ4s3j9KkB7VpYn+jVj9NzOxd7b jZCqDkmOZf/Fkzlfr2raxww2c2PkbseI+U+lJqkGmxLP2zTt/2X9+feHE8vfJMJExGfl Qh3vWNiHj2fcD3f4ZzAPF0iYauzU5WUIgngEVZ4FulfoE9F7EicCb1ieOG4CLuQOHGdL GwP21VpfdokY0nEaPdkU5Zqu8oLdfKwg9LRW+d8VT7JSdf+18p9nxKRjE4po3cV15d8p UBp2NbmFpS5f6zfCzp71jO8MJygakPfLTJDF5apKAmkYVNBFiEVi70IqbKgySYnKLnLe DXvA== X-Gm-Message-State: AOJu0YyvZpiOes/iME0MRai4yiD6QCcX6AdRZ8YwAgIR5JQB/bGBzNj0 x3a1vSvKco4LLPH9TG/llzcaXKEFJHANyUEVbh4/A/xBWwiH910mSrolnUO45mNABehmD+3fKQI c X-Google-Smtp-Source: AGHT+IHubsdmPgrEJfXNJu5nk+o6Dc1LMsJh/xCIVrEi1kmpumXtaIlHwNhizATmCVsSKpUSZwiP2w== X-Received: by 2002:a5e:9907:0:b0:7d6:751f:192 with SMTP id t7-20020a5e9907000000b007d6751f0192mr184111ioj.2.1712849848996; Thu, 11 Apr 2024 08:37:28 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.37.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:37:27 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 208/437] drivers/video: convert to ->read_iter and ->write_iter Date: Thu, 11 Apr 2024 09:15:48 -0600 Message-ID: <20240411153126.16201-209-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/video/fbdev/core/fb_chrdev.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/video/fbdev/core/fb_chrdev.c b/drivers/video/fbdev/cor= e/fb_chrdev.c index 4ebd16b7e3b8..161f781912c3 100644 --- a/drivers/video/fbdev/core/fb_chrdev.c +++ b/drivers/video/fbdev/core/fb_chrdev.c @@ -42,6 +42,7 @@ static ssize_t fb_read(struct file *file, char __user *bu= f, size_t count, loff_t =20 return info->fbops->fb_read(info, buf, count, ppos); } +FOPS_READ_ITER_HELPER(fb_read); =20 static ssize_t fb_write(struct file *file, const char __user *buf, size_t = count, loff_t *ppos) { @@ -58,6 +59,7 @@ static ssize_t fb_write(struct file *file, const char __u= ser *buf, size_t count, =20 return info->fbops->fb_write(info, buf, count, ppos); } +FOPS_WRITE_ITER_HELPER(fb_write); =20 static long do_fb_ioctl(struct fb_info *info, unsigned int cmd, unsigned long arg) @@ -405,8 +407,8 @@ static unsigned long get_fb_unmapped_area(struct file *= filp, =20 static const struct file_operations fb_fops =3D { .owner =3D THIS_MODULE, - .read =3D fb_read, - .write =3D fb_write, + .read_iter =3D fb_read_iter, + .write_iter =3D fb_write_iter, .unlocked_ioctl =3D fb_ioctl, #ifdef CONFIG_COMPAT .compat_ioctl =3D fb_compat_ioctl, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-il1-f175.google.com (mail-il1-f175.google.com [209.85.166.175]) (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 D75911BC7DD for ; Thu, 11 Apr 2024 15:37:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.175 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849853; cv=none; b=DojsWNaNqmA0RlbdifZ7COfCYphfmfyLXobQ8km4htjgvIbSBP8w9eq7aAnVVBEMAp6/AfIM0D/ZV5SYjH+e5/5BQmThtf0vfE2HlCjEJersEg/smiov6c4nXEOxCw7FjwobDXyibzIreFsjemWt5khrQOg00zaSg3+a2rglu9U= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849853; c=relaxed/simple; bh=A/ARPEJgaL/gdbzluKeljTIFVTiT0oB/eqdxBeRSRHM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=MsBlzQIKf6yB14EdZuSu1DOstywzO5h8bG3DuohD18zeaLnISniBpAT2hOt6667nWahzRU5rzSuV/bO4g3fxxtlyD3hnD2UnqTLg87vb15VydgrZUOectPomLzvfWQCz/APqNNZ6VGrd32vuiiWkCJyWTYTWZw+Txxq2vwvUNu0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=lJEbol8m; arc=none smtp.client-ip=209.85.166.175 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="lJEbol8m" Received: by mail-il1-f175.google.com with SMTP id e9e14a558f8ab-36a34b68277so112815ab.0 for ; Thu, 11 Apr 2024 08:37:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849850; x=1713454650; 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=JYtTA9H+WWc32h2IwigD9uGXK3lgyvxGe6eHAhngjlc=; b=lJEbol8mJuS1rAPWvBEcj00JZG6O3XaKhyLZttYct2vIOApVPyX78gI54XGWyEPr09 GH4quRtaLWr/4iJm5qseuUBwwtXjpDeRcxp2IWLxytHoYPXlREkToHeFgomKV3jEZJeT 1dZRDxk+wFyqy/b0eE9YRrrPgx/w4LuaJCIOEPVWndbF0evlGBDC6wvWkB9zOWpzHMvl RNMDK2mvh4IAPKhoNy3eqmzbZAqqSZchhvOYJt844BRtW/fKW/ba6vHlW1zQUVFe3pQv RA1/CK0v9b/oshVKf9APIWNqP8Bb1g3uODHhGCK83yuLwhTxUPGyq3WxTrguWJPR7m8Q jJ3g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849850; x=1713454650; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=JYtTA9H+WWc32h2IwigD9uGXK3lgyvxGe6eHAhngjlc=; b=VKb5tmUuPwRcR86zxjDxGJHlrT0BpDc0TUimyH5RJOBZin6lLazDLoHHnfc+E6EBic lLqCAl++uRNb596uI5p0/XLyMy6i7pzea8+KppITQNLxsiUlM28qKCNF5inBhTV8P/eh AlfR6jXDL6Acb47qJpY6Mr1mtRo/ZQm3/lkpV4qwRWwt6oSAeycxqqiUgDK5F6lP2Ae/ i+Rbpvy/cATEBJhc3+Ni2XsylIKcXI7o0WN/mfkqqEjS514osFerHUQU6G1iWqKEPWTN nKpATbn+v7OLLlfjbp/0aOxxlylbOsQNvRVZCKEnR4dJfki+8aL9kEnoDA8WZ1lCKgNq uvMA== X-Gm-Message-State: AOJu0YxBYOGgEZNzi95+jGOVwTCo1Z3SsMUNeatlsA7hrlytfJQoofWm 57TeyhdF8PAQBH++tKOwiWvgxDUqjKmVZkV5MCM5nFcqY+Iu3Lh4hGC1aKz1B2SdaUUvkl1a2yw D X-Google-Smtp-Source: AGHT+IFdtxuOiVFxV1CiQJDAksC/DqZuXOp8FTKoUeJLrWQu6vnlea284iajxvCux8kswxmfgyGGiw== X-Received: by 2002:a6b:4e14:0:b0:7d6:631d:7b0 with SMTP id c20-20020a6b4e14000000b007d6631d07b0mr191166iob.1.1712849850636; Thu, 11 Apr 2024 08:37:30 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.37.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:37:29 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 209/437] video: fbdev: pxa3xx-gcu: convert to read/write iterators Date: Thu, 11 Apr 2024 09:15:49 -0600 Message-ID: <20240411153126.16201-210-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/video/fbdev/pxa3xx-gcu.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/drivers/video/fbdev/pxa3xx-gcu.c b/drivers/video/fbdev/pxa3xx-= gcu.c index 43c80316d84b..0890cea32df4 100644 --- a/drivers/video/fbdev/pxa3xx-gcu.c +++ b/drivers/video/fbdev/pxa3xx-gcu.c @@ -372,15 +372,13 @@ static int pxa3xx_gcu_open(struct inode *inode, struc= t file *file) return 0; } =20 -static ssize_t -pxa3xx_gcu_write(struct file *file, const char *buff, - size_t count, loff_t *offp) +static ssize_t pxa3xx_gcu_write(struct kiocb *iocb, struct iov_iter *from) { int ret; unsigned long flags; struct pxa3xx_gcu_batch *buffer; - struct pxa3xx_gcu_priv *priv =3D to_pxa3xx_gcu_priv(file); - + struct pxa3xx_gcu_priv *priv =3D to_pxa3xx_gcu_priv(iocb->ki_filp); + size_t count =3D iov_iter_count(from); size_t words =3D count / 4; =20 /* Does not need to be atomic. There's a lock in user space, @@ -409,7 +407,7 @@ pxa3xx_gcu_write(struct file *file, const char *buff, =20 =20 /* Copy data from user into buffer */ - ret =3D copy_from_user(buffer->ptr, buff, words * 4); + ret =3D !copy_from_iter_full(buffer->ptr, words * 4, from); if (ret) { spin_lock_irqsave(&priv->spinlock, flags); buffer->next =3D priv->free; @@ -569,7 +567,7 @@ pxa3xx_gcu_free_buffers(struct device *dev, static const struct file_operations pxa3xx_gcu_miscdev_fops =3D { .owner =3D THIS_MODULE, .open =3D pxa3xx_gcu_open, - .write =3D pxa3xx_gcu_write, + .write_iter =3D pxa3xx_gcu_write, .unlocked_ioctl =3D pxa3xx_gcu_ioctl, .mmap =3D pxa3xx_gcu_mmap, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f50.google.com (mail-io1-f50.google.com [209.85.166.50]) (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 1B1DC17CBFB for ; Thu, 11 Apr 2024 15:37:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849855; cv=none; b=tXQPXpy9ncR+ZEPgNlEmxccccD7hszQuSOoA/fXGnpU8kt66aZO/TM0xhz0NBtyuIRGVE+klKYV8wB2/mMEBv9lc441j/J1e50gLh8GEXo56Ki0lU5CTh4ef/I2VmXiMBDQsZqXOrkS9KYfh4wzQLoIYmRYO1AIQtpUnuOpPmOc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849855; c=relaxed/simple; bh=RYfj26rwOD0NcTI7naAxIxhbDaPw//slAvca4bWdwoU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Sb0xduM+c5teTRhoU+Ef6ig7VUq/hDNsgn8Gv7CSum5unupUO1G5JnlgvL6NCKOiCeh5soKKo4KNcRaJCiNk6YvFUyN9ml9T6on275U3B+gOXu8gWa4RGR//eQdAeNN9JPT5sIV4O7r3MNKCa2RRn6NIuakhptXgzd2PbuliVZc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=w6HQfqMq; arc=none smtp.client-ip=209.85.166.50 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="w6HQfqMq" Received: by mail-io1-f50.google.com with SMTP id ca18e2360f4ac-7d6112ba6baso58106939f.1 for ; Thu, 11 Apr 2024 08:37:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849852; x=1713454652; 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=pYTio9cuTG8IqodR8qPe4BDqonf+sOjdiG84YSGYG2E=; b=w6HQfqMq7inW1aO+TdJd0bUbZmJNQ1auJ1I9M6QC8zC2JBfwbexT4623RI/E3XHpq1 CD9n/YXwrq86xgS5WodQRbZAHZiDgjCDzdsLhC/zy2IOxO1QQh7pj1p67E77RvMBF6tC eYwe4zNMpGhONbGPe2QtVY3sRNcv6GothOTrvxAXmgXq6QDMwxiK2DOvSmE/GpuUhVOC xJmSH+wGsPO/rmkj0XDy2XXh1UM17BHY7o6odZ5fKMQ6sbPLychWeFmtsg4WNljRNVDU UH3SwdK3+4fYILZI4+aJdYV1FxUICLrW89BS3T4w6WPFDmgbmqBiDFDctvHTjGNasf7T otUg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849852; x=1713454652; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=pYTio9cuTG8IqodR8qPe4BDqonf+sOjdiG84YSGYG2E=; b=OSAJbIzW+GVIeSyIfNMaB3/ulzpygG/ZrilBQX9uwOY3Wp1v1p81Cf1/Wwve+OHvV1 1TVVxeAM54m2Kk7uxkefEtt7dJW8+X5LMGOlMlJOh3ICg7KOx6TcBcuCK4IYDQLzJwMf u/jznxKlch+klCzJJ1HDgq/ZNuiCmoZFlJ+Yr23ZhEiQv9c7E6X/cMhPKaHRRMfIal/e I1u0O5BT1jgXm/rhu+zIAAYzw3d9nRhAicR+qmEphDN5OJoU/A67lM5/k1WXfc1r+kpL eLCTcrIQcISSOM8Y1uiR6lmj1dRn9QyptdDkM79Ditz3oc7g27Fr4GRFkDtxJffdYt/d AbmQ== X-Gm-Message-State: AOJu0Yy/wW/+Pki7Coam4kc6hBvEpHVNceG39GQjXFE1VLpWtqhq4Qp1 zEnFc7hdC/5IH7oU6DwDEkuJ/6K/C7TgXLtc0gBdxpPOh6ziilE7BcaTDybIQ1hkFH+/CoOx9rz f X-Google-Smtp-Source: AGHT+IEcj/GcF7xVAU2gaxvOoFIGX2VqxiPCzMNztrOzGIShRqSzNTT7SlA/dtk4NqkLbxMyB1276Q== X-Received: by 2002:a6b:f312:0:b0:7d5:de23:13a9 with SMTP id m18-20020a6bf312000000b007d5de2313a9mr165045ioh.1.1712849852377; Thu, 11 Apr 2024 08:37:32 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.37.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:37:30 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 210/437] drivers/iommu: convert intel iommu to read/write iterators Date: Thu, 11 Apr 2024 09:15:50 -0600 Message-ID: <20240411153126.16201-211-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/iommu/intel/debugfs.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/iommu/intel/debugfs.c b/drivers/iommu/intel/debugfs.c index 86b506af7daa..8655098a3a17 100644 --- a/drivers/iommu/intel/debugfs.c +++ b/drivers/iommu/intel/debugfs.c @@ -679,19 +679,19 @@ static int dmar_perf_latency_open(struct inode *inode= , struct file *filp) return single_open(filp, latency_show, NULL); } =20 -static ssize_t dmar_perf_latency_write(struct file *filp, - const char __user *ubuf, - size_t cnt, loff_t *ppos) +static ssize_t dmar_perf_latency_write(struct kiocb *iocb, + struct iov_iter *from) { struct dmar_drhd_unit *drhd; struct intel_iommu *iommu; + size_t cnt =3D iov_iter_count(from); int counting; char buf[64]; =20 if (cnt > 63) cnt =3D 63; =20 - if (copy_from_user(&buf, ubuf, cnt)) + if (!copy_from_iter_full(&buf, cnt, from)) return -EFAULT; =20 buf[cnt] =3D 0; @@ -738,14 +738,14 @@ static ssize_t dmar_perf_latency_write(struct file *f= ilp, return -EINVAL; } =20 - *ppos +=3D cnt; + iocb->ki_pos +=3D cnt; return cnt; } =20 static const struct file_operations dmar_perf_latency_fops =3D { .open =3D dmar_perf_latency_open, - .write =3D dmar_perf_latency_write, - .read =3D seq_read, + .write_iter =3D dmar_perf_latency_write, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D single_release, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f45.google.com (mail-io1-f45.google.com [209.85.166.45]) (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 6B7543BBC7 for ; Thu, 11 Apr 2024 15:37:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849855; cv=none; b=Lx4MJ8v4/h9A+AbznfRKFPjfblVbDoLu23PoN/Mf5hdvIJuE6KgfxiGO99wXa2x7x7foZZ2Mvy1vYKAwi8FDd5t2AC8n7vcVdW7hseFv2LI4i/YsMIS0OvQzFFZxe/OwI0avS70SZyjCUsbc7MzGUV2lxpwNadoDrX02BLdCYE8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849855; c=relaxed/simple; bh=Jj/NcxDqsb3ke7CqA5w00fJhJUeMhJsECJ2fjtlkHS0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=n9UC9AUO8JowJiSOELuknWLpwatsNGL0qI4mfoWk63Nfw9NLOHqshFUHz1+hpEusRu91ujBUN/ZUCv8qUOWKQVTKLBiXCF+DwCAdbzo3/1tycA5oM1soGOoNhlpKB8G3/f2mUx5Bm9KYSQlCKJt8uvDPgIxx2VXmWDdLNFTDbEU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=j3hkh06g; arc=none smtp.client-ip=209.85.166.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="j3hkh06g" Received: by mail-io1-f45.google.com with SMTP id ca18e2360f4ac-7d6812b37a6so8975039f.0 for ; Thu, 11 Apr 2024 08:37:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849853; x=1713454653; 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=nnCvDuWCdqbx45susY4lKXAhNpbfLhWCqwRwbKGo0sM=; b=j3hkh06gB1K16vvNeTGw35z4a4FteMe8rQBdc1aCAr2HaSM2JolvR3Zn3QySJdRIM3 FroRnDJPlzr8s63o6Ye8ujfdxPGz3sE1gExYQlepRgrOLu29S6Bg9i+jQTPXnuVo+pcG FCNSYky3VJvRljPjdpdBJUpum0GDGcyg/FIPHmqPJlfeqagEiOiT3Dp+3uQydlyGsBaM F/haa/BdY3hkpu4veaCtBg6piyt8nBu2a3dO3JTdc9GlTq4tWbsz9yg/bcPruELfm5qc sfqa4sjJ59C9PrHJ7ab5bffSA7pe9NeEL8EcxidOblSUGap1AS4QrMGOAwYLXu+yFewp k7zQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849853; x=1713454653; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=nnCvDuWCdqbx45susY4lKXAhNpbfLhWCqwRwbKGo0sM=; b=lUDB8C8LmIwOMbLqp67gweZYdkiJyJI3QYiwWazpDHutcPv68IRKZM06cdiKHpg8gB HLDSH+YX5jMXDtg1oOfVZVo3myE8V24T8O7+NHVK+L54AU110YwUjHPzziVSQz1K9qsj LocBOy3WmP2bjSFXLE5TdcstN2CySMwjbM2o9VxFv3Fnizn5ekG7yKfWSeHIgi11XLxI 9VtsKyD7OOcy8VB29KuRpQ2AFTKag7BPKU4mdJWmErR+bZBCN57+S6M5DZq1UNpoF1Zq QFALgS4v23XHmwysspkA9X9TSm5XIPgFHSEGlsRLF56MchoYQFw9pcE/gn4PRd04oxTE TTxg== X-Gm-Message-State: AOJu0Yy02OLeXH+am4a+VrTTAkcfYayCoTW2bqqYuLOVbblyO+gNgopm 8++BcaqQzxlr4bz8HVk3CP0cwhMI+dNBHdOfNecwIkzVpiUSY78hKvQiERXIewEBa7rAnuHRxTy X X-Google-Smtp-Source: AGHT+IFP88+t14a0gCZ4AAPs0EFTnm4sLMkslOZbEiO0AB3P/WW3J3e5pySiphlIuoPzja9E1UjhrQ== X-Received: by 2002:a05:6602:21d7:b0:7d6:9ddf:5095 with SMTP id c23-20020a05660221d700b007d69ddf5095mr19999ioc.1.1712849853069; Thu, 11 Apr 2024 08:37:33 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.37.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:37:32 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 211/437] drivers/iommu: convert omap to read/write iterators Date: Thu, 11 Apr 2024 09:15:51 -0600 Message-ID: <20240411153126.16201-212-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/iommu/omap-iommu-debug.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/drivers/iommu/omap-iommu-debug.c b/drivers/iommu/omap-iommu-de= bug.c index 259f65291d90..46798b7584b5 100644 --- a/drivers/iommu/omap-iommu-debug.c +++ b/drivers/iommu/omap-iommu-debug.c @@ -11,6 +11,7 @@ #include #include #include +#include #include #include #include @@ -80,10 +81,10 @@ static ssize_t omap_iommu_dump_ctx(struct omap_iommu *o= bj, char *buf, return bytes; } =20 -static ssize_t debug_read_regs(struct file *file, char __user *userbuf, - size_t count, loff_t *ppos) +static ssize_t debug_read_regs(struct kiocb *iocb, struct iov_iter *to) { - struct omap_iommu *obj =3D file->private_data; + struct omap_iommu *obj =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(to); char *p, *buf; ssize_t bytes; =20 @@ -100,7 +101,7 @@ static ssize_t debug_read_regs(struct file *file, char = __user *userbuf, bytes =3D omap_iommu_dump_ctx(obj, p, count); if (bytes < 0) goto err; - bytes =3D simple_read_from_buffer(userbuf, count, ppos, buf, bytes); + bytes =3D simple_copy_to_iter(buf, &iocb->ki_pos, bytes, to); =20 err: mutex_unlock(&iommu_debug_lock); @@ -231,7 +232,7 @@ static int pagetable_show(struct seq_file *s, void *dat= a) #define DEBUG_FOPS_RO(name) \ static const struct file_operations name##_fops =3D { \ .open =3D simple_open, \ - .read =3D debug_read_##name, \ + .read_iter =3D debug_read_##name, \ .llseek =3D generic_file_llseek, \ } =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f51.google.com (mail-io1-f51.google.com [209.85.166.51]) (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 B63A4824B1 for ; Thu, 11 Apr 2024 15:37:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849859; cv=none; b=bqV2UJwBWZJY30UC7mfnT3wS/AsRWfJ2q5KC/w2XRE2+RgIkp0pRxhKtwtATlRRpqX5HvEaxfmrRmfZ6cs3hH4y7gsaueScfg5CC7xYG6R7xixJI3scjKSUmyJv9GRdJeV3DoaXojLVon5h7oCha/pSFizHV8IMwdFe6IVe9rqw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849859; c=relaxed/simple; bh=sF5CnpUgy1jnJz8h8X7hCF8xIhL0U1ovl4Q04fzjlSE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=W1LzzwswE+bDKiyOKYDbFfUJIoe/1yHDCA78t9zCXW+BMNAirUBBdQKJmx9zXNtjF0ee2gtFWjkHq0BVbGG41tYxj/XBPE44dOiQOOS2Y9IDVtlcVYqgUhAoEOUjN2GQmw2Peu3U8JGu81BqZnLFbIrPieKZFnST+iCAwLQaMK4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=3Ozb8xI+; arc=none smtp.client-ip=209.85.166.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="3Ozb8xI+" Received: by mail-io1-f51.google.com with SMTP id ca18e2360f4ac-7cc0e831e11so170543839f.1 for ; Thu, 11 Apr 2024 08:37:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849856; x=1713454656; 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=rsFGX0TYl3O1OSJSeVzEizUpvXJtnGL1+uYUf77M1nU=; b=3Ozb8xI+hxmahmERtsyWFoxiWw89WVLFPy9JW8qq0qhTf9KrcRI8oUE8a4KH2rildy UNXLqr++qxNol2DjbmblUj1hajJuBkpGFLKqt8OtICTX0bzEu5V9s7a/AjGDLfW5vyth a+hR/wrvPPqhIlBBcEi2EXsyQuDFyh9sEBv76QLWpBclX8UTO8GObLa++9zs13jVU7wP q8SO9LrY83Z62uy7PbZY/oiWAMtL6Hz2QLIPZPc7gUMTrUQmamwV8mzM4okQ12Bt6fe6 YooNjzkpK9mDececZLnYmmKmHg95+HfzqGhSMIBwYHyHINLsSrBnNo5bopDOvvTxic8m HQHQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849856; x=1713454656; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=rsFGX0TYl3O1OSJSeVzEizUpvXJtnGL1+uYUf77M1nU=; b=upYT7DIYFANibfgerVQkLHQXbIpAA4JnxPGIUP+GmPcgtDcJXyQ0W6VzUZ3yLeH2Wf tXT7l0sicuQsItJNhS67bQg4zD/DPelvKt/oLvtdteXNsI7wc7lwCWPIhGVXJcaMzdUP mMDxbqp8YjIzAiCdwtzJRwwf/OgZ03Eg2JHBQEiKrYyN7RaBCCPWgv/v4d5ImdOOESJa Yq74JihIy5PqhFS6iHTiJ5AcUhOZYejOQnqN0h/PTcnCILCftMyCX5sEBU+ZAVnMnAtt 3qJsqYwMQJuPzbyeFKnTxzVjltNmwusqyDikli6VNuQikhJGfR4MqM2ZJ6F4tT22X9ZV u71Q== X-Gm-Message-State: AOJu0YwBMVLGXXHQzITDj7PYWPkkkI+BvUJcPB8yiYdhlOl/tFfpyzXb SuWwHba1Px6GkolCR2eOBzxV/Gcrccadqsdf9HfoYnYKNtG2lW6wmjfr4CWR9OZyhqnyzdWztp8 U X-Google-Smtp-Source: AGHT+IEQ0qgle4KJlGoYgug2VFdto2t72uKs/ssKrgEqzUoFAI3nRkJ5TyBiUnhjFRmIr0tRrmh2rg== X-Received: by 2002:a5e:9907:0:b0:7d6:751f:192 with SMTP id t7-20020a5e9907000000b007d6751f0192mr184463ioj.2.1712849855019; Thu, 11 Apr 2024 08:37:35 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.37.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:37:33 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 212/437] misc: bcm_vk: convert to iterators Date: Thu, 11 Apr 2024 09:15:52 -0600 Message-ID: <20240411153126.16201-213-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/misc/bcm-vk/bcm_vk.h | 6 ++---- drivers/misc/bcm-vk/bcm_vk_dev.c | 4 ++-- drivers/misc/bcm-vk/bcm_vk_msg.c | 23 ++++++++++------------- 3 files changed, 14 insertions(+), 19 deletions(-) diff --git a/drivers/misc/bcm-vk/bcm_vk.h b/drivers/misc/bcm-vk/bcm_vk.h index 386884c2a263..efc91635fa42 100644 --- a/drivers/misc/bcm-vk/bcm_vk.h +++ b/drivers/misc/bcm-vk/bcm_vk.h @@ -487,10 +487,8 @@ static inline bool bcm_vk_msgq_marker_valid(struct bcm= _vk *vk) } =20 int bcm_vk_open(struct inode *inode, struct file *p_file); -ssize_t bcm_vk_read(struct file *p_file, char __user *buf, size_t count, - loff_t *f_pos); -ssize_t bcm_vk_write(struct file *p_file, const char __user *buf, - size_t count, loff_t *f_pos); +ssize_t bcm_vk_read(struct kiocb *iocb, struct iov_iter *to); +ssize_t bcm_vk_write(struct kiocb *iocb, struct iov_iter *from); __poll_t bcm_vk_poll(struct file *p_file, struct poll_table_struct *wait); int bcm_vk_release(struct inode *inode, struct file *p_file); void bcm_vk_release_data(struct kref *kref); diff --git a/drivers/misc/bcm-vk/bcm_vk_dev.c b/drivers/misc/bcm-vk/bcm_vk_= dev.c index d4a96137728d..1fadb7b2dec1 100644 --- a/drivers/misc/bcm-vk/bcm_vk_dev.c +++ b/drivers/misc/bcm-vk/bcm_vk_dev.c @@ -1258,8 +1258,8 @@ static long bcm_vk_ioctl(struct file *file, unsigned = int cmd, unsigned long arg) static const struct file_operations bcm_vk_fops =3D { .owner =3D THIS_MODULE, .open =3D bcm_vk_open, - .read =3D bcm_vk_read, - .write =3D bcm_vk_write, + .read_iter =3D bcm_vk_read, + .write_iter =3D bcm_vk_write, .poll =3D bcm_vk_poll, .release =3D bcm_vk_release, .mmap =3D bcm_vk_mmap, diff --git a/drivers/misc/bcm-vk/bcm_vk_msg.c b/drivers/misc/bcm-vk/bcm_vk_= msg.c index 1f42d1d5a630..31418a677ecd 100644 --- a/drivers/misc/bcm-vk/bcm_vk_msg.c +++ b/drivers/misc/bcm-vk/bcm_vk_msg.c @@ -13,6 +13,7 @@ #include #include #include +#include =20 #include "bcm_vk.h" #include "bcm_vk_msg.h" @@ -998,18 +999,16 @@ int bcm_vk_open(struct inode *inode, struct file *p_f= ile) return rc; } =20 -ssize_t bcm_vk_read(struct file *p_file, - char __user *buf, - size_t count, - loff_t *f_pos) +ssize_t bcm_vk_read(struct kiocb *iocb, struct iov_iter *to) { ssize_t rc =3D -ENOMSG; - struct bcm_vk_ctx *ctx =3D p_file->private_data; + struct bcm_vk_ctx *ctx =3D iocb->ki_filp->private_data; struct bcm_vk *vk =3D container_of(ctx->miscdev, struct bcm_vk, miscdev); struct device *dev =3D &vk->pdev->dev; struct bcm_vk_msg_chan *chan =3D &vk->to_h_msg_chan; struct bcm_vk_wkent *entry =3D NULL, *iter; + size_t count =3D iov_iter_count(to); u32 q_num; u32 rsp_length; =20 @@ -1047,7 +1046,7 @@ ssize_t bcm_vk_read(struct file *p_file, /* retrieve the passed down msg_id */ set_msg_id(&entry->to_h_msg[0], entry->usr_msg_id); rsp_length =3D entry->to_h_blks * VK_MSGQ_BLK_SIZE; - if (copy_to_user(buf, entry->to_h_msg, rsp_length) =3D=3D 0) + if (!copy_to_iter_full(entry->to_h_msg, rsp_length, to)) rc =3D rsp_length; =20 bcm_vk_free_wkent(dev, entry); @@ -1060,7 +1059,7 @@ ssize_t bcm_vk_read(struct file *p_file, */ set_msg_id(&tmp_msg, entry->usr_msg_id); tmp_msg.size =3D entry->to_h_blks - 1; - if (copy_to_user(buf, &tmp_msg, VK_MSGQ_BLK_SIZE) !=3D 0) { + if (!copy_to_iter_full(&tmp_msg, VK_MSGQ_BLK_SIZE, to)) { dev_err(dev, "Error return 1st block in -EMSGSIZE\n"); rc =3D -EFAULT; } @@ -1068,17 +1067,15 @@ ssize_t bcm_vk_read(struct file *p_file, return rc; } =20 -ssize_t bcm_vk_write(struct file *p_file, - const char __user *buf, - size_t count, - loff_t *f_pos) +ssize_t bcm_vk_write(struct kiocb *iocb, struct iov_iter *from) { ssize_t rc; - struct bcm_vk_ctx *ctx =3D p_file->private_data; + struct bcm_vk_ctx *ctx =3D iocb->ki_filp->private_data; struct bcm_vk *vk =3D container_of(ctx->miscdev, struct bcm_vk, miscdev); struct bcm_vk_msgq __iomem *msgq; struct device *dev =3D &vk->pdev->dev; + size_t count =3D iov_iter_count(from); struct bcm_vk_wkent *entry; u32 sgl_extra_blks; u32 q_num; @@ -1107,7 +1104,7 @@ ssize_t bcm_vk_write(struct file *p_file, } =20 /* now copy msg from user space, and then formulate the work entry */ - if (copy_from_user(&entry->to_v_msg[0], buf, count)) { + if (!copy_from_iter_full(&entry->to_v_msg[0], count, from)) { rc =3D -EFAULT; goto write_free_ent; } --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f42.google.com (mail-io1-f42.google.com [209.85.166.42]) (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 0C1AD824A0 for ; Thu, 11 Apr 2024 15:37:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849858; cv=none; b=l10iaP2Ve0Sie5fQaXRIxWksxFiuyhZedJdaBkGMhkBixS+bDThCJHB/Lir8LMIQUNFG9fvjwCnNYcKduDTo9LriEZftlqQj++g/9BCDSUTBmKg7PeV8YaJ1ecz3mVeKsczD2uqEp79haI4N3Wl2z/rUTJoxg7kCQ1py9tTUJFU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849858; c=relaxed/simple; bh=BAPWAjZLiDROs8jxMHAOxFaSHauyl2uBclzPLslEJ2s=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=dgHX9Apjyf7wDcNH4nkNrVaRPyl1kVx2nnoYmRCG6jDh65AOwxP6Q6KJGUZyi8ee2LSW+nMhKaBhTpwLOkMGBQmWNKzBXR1T1V+pkJKUXj5YPhf23B0nHKHKAUlN/WElFHl+0hIuCjDoz095NZMMP5G9p3B+IbU54NouBk8aRPc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=TZPzQtGf; arc=none smtp.client-ip=209.85.166.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="TZPzQtGf" Received: by mail-io1-f42.google.com with SMTP id ca18e2360f4ac-7d6112ba6baso58108139f.1 for ; Thu, 11 Apr 2024 08:37:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849856; x=1713454656; 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=URP2qTC8kfAbg68QrAJNbB4HOOdUB0afPA5uur+wxo0=; b=TZPzQtGfkEqixlwJDx/4aMPxQsA650iHZOkSqaLCqhsTJyH+1OtnNRMfduMqkabeZK seYzVftWaEpNGKYf7env9x8iIpvM6Mh/xSWeaakIpox1JgrxI7+hNOMkOoJY+/t7j6F7 5Y76w/u0swX8udv0scANjHrDLeKaCt+AXqZWu4MY4T4KBWHRKOcGHbZA8UGg7b6ockA3 romxGAt8rBP82GaAvgK/6RKdK0nukJcT94SEhN6xGC09gozArpeE2hPf/91QIYBMRB0z gm/+ed2bqgxQW/1KEkY6gPPfRPjKCSROzINOTqhuS6UKzoY6Di1hHzjDx0IY47uWLPS7 6PNA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849856; x=1713454656; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=URP2qTC8kfAbg68QrAJNbB4HOOdUB0afPA5uur+wxo0=; b=rXyqNiCS38Wk6aYyV2YG5bicfMyP+QFN8niT8kL0mG30Ez1REVGWoQSnwUA7TXe4jv oF8J1mFGh9+b1/TmgbmcYtGdl3bY73c6nvsdF1joOt4fWyiVSvL0tjyGi2/JYMg65l+2 ul5FPJ/vpVYfK/ZqL5xKzi5NuLuGQSmINrFdRd8g3WYX7VEYn/5FjTtAz8OrRA908ROg gerLC8+6+2i0hFdOZK+dZ4s8dpnomgFxj5JPbcFmAf+awJ/X//DH4/wibxTLSjDzekpg tV47IuQeLaX/eHExzNKUg4l6SaZFgWn+dFVVxQvPyaI82Qo2m/igi6VaVFrbeM5z4OfS 9Qeg== X-Gm-Message-State: AOJu0YwJs0mPs4b4fIICn0EdnLOK1tRcdk06Vdv1YdQXHhKrHgAY+yiK werG9nf/TBbc2fHvW5DdOoEATmzEUDy+AyR59NsBWctHvVuzpicDugACdPTE/Uv+CpsfTyHigLo p X-Google-Smtp-Source: AGHT+IG8jZcgUW4t+29t9+YD5GFKkaOIqqAeOZyjQT4aIh4EWqH71jFBjK14TXyyp/9pIy400ODDzw== X-Received: by 2002:a6b:f312:0:b0:7d5:de23:13a9 with SMTP id m18-20020a6bf312000000b007d5de2313a9mr165215ioh.1.1712849855715; Thu, 11 Apr 2024 08:37:35 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.37.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:37:35 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 213/437] misc: lis3lv02d: convert to iterators Date: Thu, 11 Apr 2024 09:15:53 -0600 Message-ID: <20240411153126.16201-214-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/misc/lis3lv02d/lis3lv02d.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/drivers/misc/lis3lv02d/lis3lv02d.c b/drivers/misc/lis3lv02d/li= s3lv02d.c index 49868a45c0ad..e12677611146 100644 --- a/drivers/misc/lis3lv02d/lis3lv02d.c +++ b/drivers/misc/lis3lv02d/lis3lv02d.c @@ -27,6 +27,7 @@ #include #include #include +#include #include "lis3lv02d.h" =20 #define DRIVER_NAME "lis3lv02d" @@ -596,12 +597,12 @@ static int lis3lv02d_misc_release(struct inode *inode= , struct file *file) return 0; } =20 -static ssize_t lis3lv02d_misc_read(struct file *file, char __user *buf, - size_t count, loff_t *pos) +static ssize_t lis3lv02d_misc_read(struct kiocb *iocb, struct iov_iter *to) { - struct lis3lv02d *lis3 =3D container_of(file->private_data, + struct lis3lv02d *lis3 =3D container_of(iocb->ki_filp->private_data, struct lis3lv02d, miscdev); =20 + size_t count =3D iov_iter_count(to); DECLARE_WAITQUEUE(wait, current); u32 data; unsigned char byte_data; @@ -617,7 +618,7 @@ static ssize_t lis3lv02d_misc_read(struct file *file, c= har __user *buf, if (data) break; =20 - if (file->f_flags & O_NONBLOCK) { + if (iocb->ki_filp->f_flags & O_NONBLOCK) { retval =3D -EAGAIN; goto out; } @@ -638,7 +639,7 @@ static ssize_t lis3lv02d_misc_read(struct file *file, c= har __user *buf, /* make sure we are not going into copy_to_user() with * TASK_INTERRUPTIBLE state */ set_current_state(TASK_RUNNING); - if (copy_to_user(buf, &byte_data, sizeof(byte_data))) + if (!copy_to_iter_full(&byte_data, sizeof(byte_data), to)) retval =3D -EFAULT; =20 out: @@ -670,7 +671,7 @@ static int lis3lv02d_misc_fasync(int fd, struct file *f= ile, int on) static const struct file_operations lis3lv02d_misc_fops =3D { .owner =3D THIS_MODULE, .llseek =3D no_llseek, - .read =3D lis3lv02d_misc_read, + .read_iter =3D lis3lv02d_misc_read, .open =3D lis3lv02d_misc_open, .release =3D lis3lv02d_misc_release, .poll =3D lis3lv02d_misc_poll, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-il1-f176.google.com (mail-il1-f176.google.com [209.85.166.176]) (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 0479F3B2A8 for ; Thu, 11 Apr 2024 15:37:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.176 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849860; cv=none; b=Ho0U+8aohNnNDhnFEU6cc2Ld1HYaoU7+pVilxPklzKmhFaslp6aWOQD1jSlpgczUBeI9M2GPDXJIO4KiNPCc7Qsr1QVnvTJ6fxmeK2tk48VbDU1yd/eXGmHpLjuP6x+t77ML7c562XO8W3ORR+3uySKZClgkjsnjG4fEnef3vrE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849860; c=relaxed/simple; bh=fuNH7H35Fr1gbYOH3tDTlpJb1H8dO6w2oUmmxKFFPCY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=YmS+NpbVdyng2YJ9hL7iso+TkYHkKDE/xunxv0SVFQdYV9bHd8+10OhW2TRgXkdVdf7LRsnvFuCGRBFKYpcwm1vdCukDp0/EEIpE3T0oODWUVj1fgemEJRZ7BoHBQXSRQ3B8cRmFRZwQztrvqhpKhXygZJW3C03UofpOUiVfhMI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=inMV2Mjz; arc=none smtp.client-ip=209.85.166.176 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="inMV2Mjz" Received: by mail-il1-f176.google.com with SMTP id e9e14a558f8ab-36a224d7414so185945ab.1 for ; Thu, 11 Apr 2024 08:37:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849858; x=1713454658; 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=DkxbKUE7zw8SWj7NeL7kJSvCh3cG4pC9ZQfME48WxZw=; b=inMV2MjzKoN+cf3DzJHPQuVvJviolz7MUoaVtiouD+ZxB7nunvPS/PxpCwA0M5kvp4 CFIuNHIq5yDxV/1lsYtAIDMx0erA6MQv9sWdnXvT9BeMtlbVu98lo8/cL41FovOEY7wq FHm6o4XwArumDCHuov1Q2AZLzh5MwYt/D2r66k69pVKqUDPoDLVK3FCcipyKxv0fuBhu YlRYsJ9IyY1nfa6seuOMTTMhm/mSB+Y8wPCXjZoSDc/+sNmMdnt8WdVImwx5ETQuuhaZ ym/cC2c0zNoNKkvmsKrV2h15wbNIZnCQ3x3CNPjyZ2cx8xYzgvnVSPaWVkIb7T80fEi8 9HNw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849858; x=1713454658; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=DkxbKUE7zw8SWj7NeL7kJSvCh3cG4pC9ZQfME48WxZw=; b=fgURrv44nFI64iO++vgoYF1TZn4rWEHNPzGZkGT7m/WHV1ZjpfDTHHoqCxpN1tVBnY JRL/4/MqFnaEP7RXz2eNHBitzHbgNpTf1U18hiyivvTm42xUgCZrZ38l6xi9qrTgw2yZ a1UuC4B9QKImIYdk0uBTXFHwDZ47P+ii1wQ72duCaVwFkBbavC8wTWrzM04k7dPGpoQz PSxLu7GVFvvQUdxmizyiQGhLe7yablnofQYaGQkz8WhfO3eCkuHqXCPfx9XnCfjT1O+e 5XWDlm6yee1I0MvtDe+vgpiXEDvhA3NB2nvtm4BUedG/pec+2ooC+OVlRFfooRIC7hcT 9F7w== X-Gm-Message-State: AOJu0YwAX+evFMCORqdaiMq6MSh0iIx/3Njnv/OY27cDOQyu0kfyfIik xcCnhVjkoCv53C3EQ2DxHks9vB/qRsppUaCtFF/TTJD8IDqF3X+FF7B9QJrdWaA3lld597+vRJQ Y X-Google-Smtp-Source: AGHT+IGXxfNPFZVg02CSpk2D+4CXTmtslsx+KNhszjd3sOKYvU0s9Xsise+s1/EAJOXbgUaWYjL6NA== X-Received: by 2002:a6b:6605:0:b0:7d4:1dae:da1a with SMTP id a5-20020a6b6605000000b007d41daeda1amr152695ioc.2.1712849857826; Thu, 11 Apr 2024 08:37:37 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.37.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:37:36 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 214/437] misc: eeprom/idt_89hpesx: convert to read/write iterators Date: Thu, 11 Apr 2024 09:15:54 -0600 Message-ID: <20240411153126.16201-215-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/misc/eeprom/idt_89hpesx.c | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/drivers/misc/eeprom/idt_89hpesx.c b/drivers/misc/eeprom/idt_89= hpesx.c index 327afb866b21..dfb68c0cc999 100644 --- a/drivers/misc/eeprom/idt_89hpesx.c +++ b/drivers/misc/eeprom/idt_89hpesx.c @@ -900,20 +900,20 @@ static ssize_t eeprom_read(struct file *filp, struct = kobject *kobj, * ":". Register address must be aligned within 4 bytes * (one DWORD). */ -static ssize_t idt_dbgfs_csr_write(struct file *filep, const char __user *= ubuf, - size_t count, loff_t *offp) +static ssize_t idt_dbgfs_csr_write(struct kiocb *iocb, struct iov_iter *fr= om) { - struct idt_89hpesx_dev *pdev =3D filep->private_data; + struct idt_89hpesx_dev *pdev =3D iocb->ki_filp->private_data; char *colon_ch, *csraddr_str, *csrval_str; + size_t count =3D iov_iter_count(from); int ret; u32 csraddr, csrval; char *buf; =20 - if (*offp) + if (iocb->ki_pos) return 0; =20 /* Copy data from User-space */ - buf =3D memdup_user_nul(ubuf, count); + buf =3D iterdup(from, count); if (IS_ERR(buf)) return PTR_ERR(buf); =20 @@ -987,10 +987,9 @@ static ssize_t idt_dbgfs_csr_write(struct file *filep,= const char __user *ubuf, * It just prints the pair "0x:0x" to passed buffer. */ #define CSRBUF_SIZE ((size_t)32) -static ssize_t idt_dbgfs_csr_read(struct file *filep, char __user *ubuf, - size_t count, loff_t *offp) +static ssize_t idt_dbgfs_csr_read(struct kiocb *iocb, struct iov_iter *to) { - struct idt_89hpesx_dev *pdev =3D filep->private_data; + struct idt_89hpesx_dev *pdev =3D iocb->ki_filp->private_data; u32 csraddr, csrval; char buf[CSRBUF_SIZE]; int ret, size; @@ -1008,7 +1007,7 @@ static ssize_t idt_dbgfs_csr_read(struct file *filep,= char __user *ubuf, (unsigned int)csraddr, (unsigned int)csrval); =20 /* Copy data to User-space */ - return simple_read_from_buffer(ubuf, count, offp, buf, size); + return simple_copy_to_iter(buf, &iocb->ki_pos, size, to); } =20 /* @@ -1025,8 +1024,8 @@ static BIN_ATTR_RW(eeprom, EEPROM_DEF_SIZE); static const struct file_operations csr_dbgfs_ops =3D { .owner =3D THIS_MODULE, .open =3D simple_open, - .write =3D idt_dbgfs_csr_write, - .read =3D idt_dbgfs_csr_read + .write_iter =3D idt_dbgfs_csr_write, + .read_iter =3D idt_dbgfs_csr_read }; =20 /*=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f41.google.com (mail-io1-f41.google.com [209.85.166.41]) (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 BBC831BE402 for ; Thu, 11 Apr 2024 15:37:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849862; cv=none; b=Oo+bgmZA6kHGA2xZLTviBL/d6RUDeYiyb/1jVk691Tfu4g21BHnJFielPYw2W5YVSsIuNrHZW+d6bIHYhbw4u6slsYIdXtQ8NF+tSHyG6wvXih0OVoj3KrvxjOJ3DL3DbaNPugnM5gMPZVkfs2wskTHle1gIXmPXkjwEMjkg7kw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849862; c=relaxed/simple; bh=XLKt5eZDBTC++5sY/reTHPqBAamAX+Hj6woXPkidhOg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=TPwY2pXVag46vE0jUdg+x9nSRyfPVrJUPOucFkAbGOrhRqUos/MjQ8gWid1TqTLm1fryxrHUvSPcyW3/nbMtABNgBOtUNhlQg3jeD7e8C2fgzmtxsVzbfuUsMTktEHJVSFFQL10gx7Wz5a844VyUO2R4dE9g5kwHdwM83v1JX+w= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=zHw/Aszq; arc=none smtp.client-ip=209.85.166.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="zHw/Aszq" Received: by mail-io1-f41.google.com with SMTP id ca18e2360f4ac-7d6812b37a6so8976839f.0 for ; Thu, 11 Apr 2024 08:37:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849859; x=1713454659; 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=bGKEb36ML3r27fIXcnvi5oJlug0A+w9Xl9vTN9Gmtag=; b=zHw/Aszqtd+VKhT2B8BgPzyLBQNsLqMzorWOR9e1dGjgGS/5bBaxDsZf53P44tU4cm ek1H2Dx7L3uJ5m7/zbT9NKPV2zL8LmWDbPNMF+hKbaxjGCSFtm55cJDfU2aILN7Xkq0x 0CYDWrYTmUdSebxZI3MeGau5f4DhgzUBEaC98tWmtYM8sr9iipJGpki695rzpyErnyBK HcXRDQlZsxyKxb6Qry+aXWCOjsFJ/OPH7rwmSpW6MJ/fkir00eY3dNnzv4l54S1ZVmV+ 8uH3psAW9UXXe8ad+sRb8bPi59vmLxLVY+DQgxOu7f1UJSjWbAzsdhfxegXRk0+Pfi8W xwYQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849859; x=1713454659; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=bGKEb36ML3r27fIXcnvi5oJlug0A+w9Xl9vTN9Gmtag=; b=LwogDigQbVo1Kcnv3cBJy5tzembiInkGFVGRqHZRuR5WJ/JWaZLn7qxYSTlfIjVt48 5I40jtE+G40yIj2yCdtHqhh2rdglhFmAGKZ4i5xdNc5qL2cyU+OPlpkB1RCDKm00IrnW 0uPolrSiog/iBWSkyOMwVSpP82m7obY0eDH7HLra8ADYZ/f6/CkJ1iXw7OJz36Izt3R8 hnxMSWoTOoF8KhT5jrg9GrVmtsORiL4KGDEZNn4TVAr433AHHOluOuGw1rvcpIu7u2gG qCjKm41lLuly/t03L9Zwi9XEemchATlEQ0cMf/qD7AYZB3PjHAcR72KXxn37rTCwDFng tiZA== X-Gm-Message-State: AOJu0YzphYEhDBFlmB+hr+5h1Pk3+Oz2MYb+lKvXtBlyNIAQB55+/AOB ccqnX4ZXwoa8F9fFTX0JYw4ojmg1gv+vba49rPQrfkSoIE8R5OlqRq2liubPLqLhqKU7aUFkc2M S X-Google-Smtp-Source: AGHT+IE+1ky5a5pzX9vWbt+tq4TPiJFUTZ8+sFIEPAzFX6Mrk7iWvRZdjBYHoKhkcZHzma7LUtx7Mg== X-Received: by 2002:a05:6602:21d7:b0:7d6:9ddf:5095 with SMTP id c23-20020a05660221d700b007d69ddf5095mr20294ioc.1.1712849859497; Thu, 11 Apr 2024 08:37:39 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.37.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:37:38 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 215/437] misc: hpilo: convert to read/write iterators Date: Thu, 11 Apr 2024 09:15:55 -0600 Message-ID: <20240411153126.16201-216-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/misc/hpilo.c | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/drivers/misc/hpilo.c b/drivers/misc/hpilo.c index 04bd34c8c506..27282629e383 100644 --- a/drivers/misc/hpilo.c +++ b/drivers/misc/hpilo.c @@ -23,6 +23,7 @@ #include #include #include +#include #include "hpilo.h" =20 static const struct class ilo_class =3D { @@ -431,13 +432,13 @@ static void ilo_set_reset(struct ilo_hwinfo *hw) } } =20 -static ssize_t ilo_read(struct file *fp, char __user *buf, - size_t len, loff_t *off) +static ssize_t ilo_read(struct kiocb *iocb, struct iov_iter *to) { int err, found, cnt, pkt_id, pkt_len; - struct ccb_data *data =3D fp->private_data; + struct ccb_data *data =3D iocb->ki_filp->private_data; struct ccb *driver_ccb =3D &data->driver_ccb; struct ilo_hwinfo *hw =3D data->ilo_hw; + size_t len =3D iov_iter_count(to); void *pkt; =20 if (is_channel_reset(driver_ccb)) { @@ -473,7 +474,7 @@ static ssize_t ilo_read(struct file *fp, char __user *b= uf, if (pkt_len < len) len =3D pkt_len; =20 - err =3D copy_to_user(buf, pkt, len); + err =3D !copy_to_iter_full(pkt, len, to); =20 /* return the received packet to the queue */ ilo_pkt_enqueue(hw, driver_ccb, RECVQ, pkt_id, desc_mem_sz(1)); @@ -481,13 +482,13 @@ static ssize_t ilo_read(struct file *fp, char __user = *buf, return err ? -EFAULT : len; } =20 -static ssize_t ilo_write(struct file *fp, const char __user *buf, - size_t len, loff_t *off) +static ssize_t ilo_write(struct kiocb *iocb, struct iov_iter *from) { int err, pkt_id, pkt_len; - struct ccb_data *data =3D fp->private_data; + struct ccb_data *data =3D iocb->ki_filp->private_data; struct ccb *driver_ccb =3D &data->driver_ccb; struct ilo_hwinfo *hw =3D data->ilo_hw; + size_t len =3D iov_iter_count(from); void *pkt; =20 if (is_channel_reset(driver_ccb)) @@ -502,7 +503,7 @@ static ssize_t ilo_write(struct file *fp, const char __= user *buf, len =3D pkt_len; =20 /* on failure, set the len to 0 to return empty packet to the device */ - err =3D copy_from_user(pkt, buf, len); + err =3D !copy_from_iter_full(pkt, len, from); if (err) len =3D 0; =20 @@ -635,8 +636,8 @@ static int ilo_open(struct inode *ip, struct file *fp) =20 static const struct file_operations ilo_fops =3D { .owner =3D THIS_MODULE, - .read =3D ilo_read, - .write =3D ilo_write, + .read_iter =3D ilo_read, + .write_iter =3D ilo_write, .poll =3D ilo_poll, .open =3D ilo_open, .release =3D ilo_close, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f52.google.com (mail-io1-f52.google.com [209.85.166.52]) (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 4DF0A1BE418 for ; Thu, 11 Apr 2024 15:37:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849863; cv=none; b=mhMpK0k+3qwcdsTzRUVJNr8RdT3DG7a9ah9gFZ4EaHJJ78u0pMrxCH5LZN85vZ0wiVJ8XTLFhZRTqmvMyMIIUCrUc7ojph2ieHVCXlZgDDYMaVDJ+SP0v/v4x3Wc+F5Z486jHzHpg5FvmenaycOsMvYUccLvZ4rQws4p/bTccpk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849863; c=relaxed/simple; bh=b8fBtgiZiqGJZMi5lYFhAdirVPCXkwCkZCiHBhjnpKA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=p/E/LhmsyQKg8uYlqkRQfGtwDIpmAXArj60jlHdR3Uhuxh8MQTsknWVzLevA/2jYyeMSBcC12fhnoIvXQreACAynUqrYN907ZDRerf3oKJU8jDFhp51j4Q3lyThmHnabBs0i+g0A2Imy7qtjm1UYqG55+daQ5u7eVIXADkxuCHY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=DOMfSM0d; arc=none smtp.client-ip=209.85.166.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="DOMfSM0d" Received: by mail-io1-f52.google.com with SMTP id ca18e2360f4ac-7d6112ba6baso58109239f.1 for ; Thu, 11 Apr 2024 08:37:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849861; x=1713454661; 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=7FyqLSYmWmwJxpm8RitgJ8rY2UKti8lQVAXLtysgzwI=; b=DOMfSM0d9YWlEQDz4Oa+utjVjIXvsHJ758WskB605NoBkEbWOAIGQ73RmIR5+RRLco a9bFlYoQrKev+XP4ivx7mFdYkVTFRwuf8hUul61Fx5QggQ3EQLqXvBbPYMeqX+nmcZUU GOMJYF4rqnAivuXUNKocmVmRFkXH6CFeSY1ylcBOqzgDLm1+or8gRy00qE9HuIATwK2r tlKObKjah3RPOEGLAWz4CYyQ8hY0UM4wSVs6D+xErDzCos+C7tNRQlfkPLfEWbzUPE/t l5fePqusQpdo2SCxDRddnXLUWY/Xd994m6V+GXmRjb0nYnOD17770DvSZ5uuiTrFqeYP JH8w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849861; x=1713454661; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=7FyqLSYmWmwJxpm8RitgJ8rY2UKti8lQVAXLtysgzwI=; b=Sg+KM4QkCOvLBm2/pbhAkOZpPTKuA2bY3Qj9ATjamyfHmQvxGD8HsMAaIYcd44+LuJ NprEWtDCgTOGmY6kgF+uPJ/wDenLNB9HCgWhkUxdSH8JjsjF9ZatdmAKwN8xaFzAyl3j PipAl9/E2zGjZuoJ73os4zSiZ1poy+aYRKTLGQug1GVfMs/EaWPMNEwUveoHIZBXwpza +ZzM4iGhl9Y3CYOw1DrhC45oe2GZYn46NctyfAwI1TBc2T2rPG+C46/hKPMRzZR5iHhU Et8Q3g5eohCTN+MhQPqphsTGvlmPWQ89PK1OdL+T5SIULURMokyplD5vFG4UtDgmuqWb blPA== X-Gm-Message-State: AOJu0Yymv2xpj+9luXPhZgLEhkJ+QGj4iibowS0j0s/mKEb0iFjouglQ cQKHdPbmPMCk+xXhwdZtdjG0aEywMdhND0/VTzN6G4m1BXy+Rdlt12gK5fwRmeGVdNVfP8Sxcrl E X-Google-Smtp-Source: AGHT+IF0y7qbQbSe1fj9uYpj2j+i794cOX9/VCudphc1XHGTQq40b4cfW70Y89FIB9QO2cYwhxF92A== X-Received: by 2002:a05:6602:38d:b0:7d6:513b:254 with SMTP id f13-20020a056602038d00b007d6513b0254mr189457iov.2.1712849861103; Thu, 11 Apr 2024 08:37:41 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.37.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:37:39 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 216/437] misc: lkdtm: convert to read/write iterators Date: Thu, 11 Apr 2024 09:15:56 -0600 Message-ID: <20240411153126.16201-217-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/misc/lkdtm/core.c | 40 +++++++++++++++++---------------------- 1 file changed, 17 insertions(+), 23 deletions(-) diff --git a/drivers/misc/lkdtm/core.c b/drivers/misc/lkdtm/core.c index 5732fd59a227..12f02713f39c 100644 --- a/drivers/misc/lkdtm/core.c +++ b/drivers/misc/lkdtm/core.c @@ -27,20 +27,17 @@ #include #include #include +#include =20 #define DEFAULT_COUNT 10 =20 static int lkdtm_debugfs_open(struct inode *inode, struct file *file); -static ssize_t lkdtm_debugfs_read(struct file *f, char __user *user_buf, - size_t count, loff_t *off); -static ssize_t direct_entry(struct file *f, const char __user *user_buf, - size_t count, loff_t *off); +static ssize_t lkdtm_debugfs_read(struct kiocb *iocb, struct iov_iter *to); +static ssize_t direct_entry(struct kiocb *iocb, struct iov_iter *from); =20 #ifdef CONFIG_KPROBES static int lkdtm_kprobe_handler(struct kprobe *kp, struct pt_regs *regs); -static ssize_t lkdtm_debugfs_entry(struct file *f, - const char __user *user_buf, - size_t count, loff_t *off); +static ssize_t lkdtm_debugfs_entry(struct kiocb *iocb, struct iov_iter *fr= om); # define CRASHPOINT_KPROBE(_symbol) \ .kprobe =3D { \ .symbol_name =3D (_symbol), \ @@ -64,10 +61,10 @@ struct crashpoint { { \ .name =3D _name, \ .fops =3D { \ - .read =3D lkdtm_debugfs_read, \ + .read_iter=3D lkdtm_debugfs_read, \ .llseek =3D generic_file_llseek, \ .open =3D lkdtm_debugfs_open, \ - .write =3D CRASHPOINT_WRITE(_symbol) \ + .write_iter =3D CRASHPOINT_WRITE(_symbol) \ }, \ CRASHPOINT_KPROBE(_symbol) \ } @@ -224,12 +221,11 @@ static int lkdtm_kprobe_handler(struct kprobe *kp, st= ruct pt_regs *regs) return 0; } =20 -static ssize_t lkdtm_debugfs_entry(struct file *f, - const char __user *user_buf, - size_t count, loff_t *off) +static ssize_t lkdtm_debugfs_entry(struct kiocb *iocb, struct iov_iter *fr= om) { - struct crashpoint *crashpoint =3D file_inode(f)->i_private; + struct crashpoint *crashpoint =3D file_inode(iocb->ki_filp)->i_private; const struct crashtype *crashtype =3D NULL; + size_t count =3D iov_iter_count(from); char *buf; int err; =20 @@ -239,7 +235,7 @@ static ssize_t lkdtm_debugfs_entry(struct file *f, buf =3D (char *)__get_free_page(GFP_KERNEL); if (!buf) return -ENOMEM; - if (copy_from_user(buf, user_buf, count)) { + if (!copy_from_iter_full(buf, count, from)) { free_page((unsigned long) buf); return -EFAULT; } @@ -257,15 +253,14 @@ static ssize_t lkdtm_debugfs_entry(struct file *f, if (err < 0) return err; =20 - *off +=3D count; + iocb->ki_pos +=3D count; =20 return count; } #endif =20 /* Generic read callback that just prints out the available crash types */ -static ssize_t lkdtm_debugfs_read(struct file *f, char __user *user_buf, - size_t count, loff_t *off) +static ssize_t lkdtm_debugfs_read(struct kiocb *iocb, struct iov_iter *to) { int n, cat, idx; ssize_t out; @@ -288,8 +283,7 @@ static ssize_t lkdtm_debugfs_read(struct file *f, char = __user *user_buf, } buf[n] =3D '\0'; =20 - out =3D simple_read_from_buffer(user_buf, count, off, - buf, n); + out =3D simple_copy_to_iter(buf, &iocb->ki_pos, n, to); free_page((unsigned long) buf); =20 return out; @@ -301,10 +295,10 @@ static int lkdtm_debugfs_open(struct inode *inode, st= ruct file *file) } =20 /* Special entry to just crash directly. Available without KPROBEs */ -static ssize_t direct_entry(struct file *f, const char __user *user_buf, - size_t count, loff_t *off) +static ssize_t direct_entry(struct kiocb *iocb, struct iov_iter *from) { const struct crashtype *crashtype; + size_t count =3D iov_iter_count(from); char *buf; int err; =20 @@ -316,7 +310,7 @@ static ssize_t direct_entry(struct file *f, const char = __user *user_buf, buf =3D (char *)__get_free_page(GFP_KERNEL); if (!buf) return -ENOMEM; - if (copy_from_user(buf, user_buf, count)) { + if (!copy_from_iter_full(buf, count, from)) { free_page((unsigned long) buf); return -EFAULT; } @@ -331,7 +325,7 @@ static ssize_t direct_entry(struct file *f, const char = __user *user_buf, =20 pr_info("Performing direct entry %s\n", crashtype->name); err =3D lkdtm_do_action(crashtype); - *off +=3D count; + iocb->ki_pos +=3D count; =20 if (err) return err; --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-il1-f175.google.com (mail-il1-f175.google.com [209.85.166.175]) (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 83D951BED7B for ; Thu, 11 Apr 2024 15:37:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.175 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849865; cv=none; b=du7A0y4P4FbJ3+S9nLZRelU7t1lfLadRhrZGluM71pVoab61Q1+fRyDPjyGgAzyCQnecXyLRSUeLmdEe5lYVUQj+QZVODOnbGhLMEcAkTSzkMRuP87d5r66Ir4Tllil8ds0nZqw6lggvi0hUD+HCY4vJ9zO/TRYwytaqT+LzO68= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849865; c=relaxed/simple; bh=myd+Daz97F2ut49cTnMTTS/WXIDFCLtYMyovDtiMPJM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=BzPs1z4RAZOr8QWK6uIMtQxUh0K4FCx03n8IzCDBKgBXZdL6sna2XqIqDARSYKAruvTxkgnpn0e7/VOLqDhWYU16tzchE1983vAVPctvSFpcT7E+gbKySlvcneJz4lM2JxtVVBQnxCOmyFjl1U1NE1r2zJfLhrlGy+XQFid56AU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=Qv40WMGZ; arc=none smtp.client-ip=209.85.166.175 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="Qv40WMGZ" Received: by mail-il1-f175.google.com with SMTP id e9e14a558f8ab-36a34b68277so113155ab.0 for ; Thu, 11 Apr 2024 08:37:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849863; x=1713454663; 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=HWM7bBVX/AOnqo7s8vRCNjIByq38EP8G7k94XlB2Tzo=; b=Qv40WMGZ0blJJBdZlXq3Qeu9umfuXmdhOTrblt08L1b33zlz8/m+9bKozTIO7ZN6Ic 5bfuh8xmCJD0/6J8t+IKTMGcDUgMmBkXb5ZuAu1fER5kcIn4KGvADEHNydzHCBmXNJl5 5pvJ1BWcBx9YbLCdnKskJ2GHBUYbRKHTITvGkNVSZKHb7KpCo2RgXdheebpPfmleAvHH BNnKTejhnGZ4hec47SGbhchZDMRcy07Pcw/vKtQVUe0h+/WVVsUCFRzotne+FvZ7MnTX GjwT3AFdwEwJEjbbSeoPjX+P0zSB3aY1ahKAhgYvg2XFQbn64b8haMfbk0Lovo/6/SNE WDgA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849863; x=1713454663; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=HWM7bBVX/AOnqo7s8vRCNjIByq38EP8G7k94XlB2Tzo=; b=H1VJ/nUvdkLfCCh3pe4PWCd9WrmgprtZuMociXPDdZt3tLIMjLFw0TisQrbIqCmybB xIONoQ0kcvwB/C30v+JVixHeyCd6wX5gBr+YrfOs6SXdwb+OuWw1h32J2UIAlemudjeU 7J1RvGB62r9mKMcRGmmezyMR8ueyiFnoVWlRI/jKOtjTYCk3URRP6yNe7rva6cRHI7u6 B2gLWcSyISfJELTPbxa05z9oBPT3wrRuxDgOFIEeCbkDEkvQe5VYfzU1KSvAsTAeLg5E V833vW0DhCPZ2wZLYHryRJxR1tIcsTWkcFUsZv2wnNPFHtxRl13kWQ7K0TixMyIFtSWR BJwA== X-Gm-Message-State: AOJu0Yxp9Bte6cROtZsfhYSlLT702PyHM+U7C/ruqOSZwLE05DQssWmr 3HNwk2sBu9LulvAIkdQcohTmn4PmzCfYy+1QwAUrOuU9Q7UjSRYOZzptHGkK2oV7+uS3x2WPt+C B X-Google-Smtp-Source: AGHT+IFnJhbCydeWVqztP5Nfh1oYFE624XpSmg9S+kK42TiXNmAxZXJRd6n/5jEqq/MpmI3wf9BsRw== X-Received: by 2002:a92:d812:0:b0:369:bf80:e367 with SMTP id y18-20020a92d812000000b00369bf80e367mr6246145ilm.3.1712849863315; Thu, 11 Apr 2024 08:37:43 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.37.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:37:41 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 217/437] misc: open-dice: convert to read/write iterators Date: Thu, 11 Apr 2024 09:15:57 -0600 Message-ID: <20240411153126.16201-218-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/misc/open-dice.c | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/drivers/misc/open-dice.c b/drivers/misc/open-dice.c index 1e3eb2aa44d9..0fe66a17f27d 100644 --- a/drivers/misc/open-dice.c +++ b/drivers/misc/open-dice.c @@ -25,6 +25,7 @@ #include #include #include +#include =20 #define DRIVER_NAME "open-dice" =20 @@ -61,26 +62,24 @@ static int open_dice_wipe(struct open_dice_drvdata *drv= data) /* * Copies the size of the reserved memory region to the user-provided buff= er. */ -static ssize_t open_dice_read(struct file *filp, char __user *ptr, size_t = len, - loff_t *off) +static ssize_t open_dice_read(struct kiocb *iocb, struct iov_iter *to) { - unsigned long val =3D to_open_dice_drvdata(filp)->rmem->size; + unsigned long val =3D to_open_dice_drvdata(iocb->ki_filp)->rmem->size; =20 - return simple_read_from_buffer(ptr, len, off, &val, sizeof(val)); + return simple_copy_to_iter(&val, &iocb->ki_pos, sizeof(val), to); } =20 /* * Triggers a wipe of the reserved memory region. The user-provided pointer * is never dereferenced. */ -static ssize_t open_dice_write(struct file *filp, const char __user *ptr, - size_t len, loff_t *off) +static ssize_t open_dice_write(struct kiocb *iocb, struct iov_iter *from) { - if (open_dice_wipe(to_open_dice_drvdata(filp))) + if (open_dice_wipe(to_open_dice_drvdata(iocb->ki_filp))) return -EIO; =20 /* Consume the input buffer. */ - return len; + return iov_iter_count(from); } =20 /* @@ -106,8 +105,8 @@ static int open_dice_mmap(struct file *filp, struct vm_= area_struct *vma) =20 static const struct file_operations open_dice_fops =3D { .owner =3D THIS_MODULE, - .read =3D open_dice_read, - .write =3D open_dice_write, + .read_iter =3D open_dice_read, + .write_iter =3D open_dice_write, .mmap =3D open_dice_mmap, }; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f42.google.com (mail-io1-f42.google.com [209.85.166.42]) (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 B16211BED97 for ; Thu, 11 Apr 2024 15:37:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849868; cv=none; b=Mtuq1vO0qpode7IJsc6/K2A+PFXR3+jhNW1zcsVnlIzcJJse18Ej7SUSjZmS1vXIvO9eb8jjXUP1PGrX4PzTI0RCGbpJYMAwIhv0YGljWU/kdeXYCa52kYaJYSV3dvDV64gckxOaUk7iq7w3dTuWke49FlnkQa+Aku6fw4F2rLo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849868; c=relaxed/simple; bh=1UdNv5U1emH9JAurW/QvLJxO9pAOFAvRC5+gJWMaXCI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=qaxdmb3YcARlaX3OVYkQSsTZRj6t+u40L4lluTP/v7AlNPMVmP5woKO44P5DT/FnoMv9rXdfhKb62SATaBcuSG1nbGzbpNFdZFlUNIdGCg0bawhAyEGqUWM4a2cFn3LTAc5aKYlrhACRUk88pHOa6clEweK1eUb2k1HxUoHOhZg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=x1SO5Z60; arc=none smtp.client-ip=209.85.166.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="x1SO5Z60" Received: by mail-io1-f42.google.com with SMTP id ca18e2360f4ac-7d6812b37a6so8978439f.0 for ; Thu, 11 Apr 2024 08:37:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849865; x=1713454665; 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=0KCAzXLIsOopEV86W9ZOhnzNKs/kN2+Z3mGkecdfZBk=; b=x1SO5Z60yZY5HEB/19D3PfCntgbs88e1a2wpBvnxfme1Rji5TMldqK6OvywpQBawvK Fhi4vS3aU5bB4S+2YphDdSDSw5VHFXCdiQdp+4BpOe/xx+QLlozEbPX45cIcg8RXyiw2 schRiDV49ZCh8wXEs+glwGAumfmDqLxS7jENhvr/Rr9pl+MZJMHODCVoD0mpvejrq027 2QD0CEuTMA6GOnPV0oc+Gt1jUqDPfITEvBS/OebyToE2BlHf6YQiyeC7AfwlNxva1bl9 2lWQwxEBQ7ywupiilMYD8sbXylbhBw5zP52v3LStlh00fe37ngj6LuoC2I4r6fsDH61b Mc/g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849865; x=1713454665; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=0KCAzXLIsOopEV86W9ZOhnzNKs/kN2+Z3mGkecdfZBk=; b=GFrM+IJIY9rmNZbx7rrP673Lcpppxh+c+5pVDj+x5ZrgoN1dAFF3A4rW6Chi05Usbq yy8zIpyHg6Enno+gukYYzEyRLmHqYrYChJwN2bVsc8v4sueS1QjgPb1L5Bjcs1n4yZiN XYi9SWOYsCCQqxy7yU9NvH5a8ZAcAmC2o5sjSE33lp5oAqDJXT6xaK9Wi52wbUKYU5iX b1XxOP4S+YeW2VHIxqiPFsBOYJyuk/umBsg6hHoyVqOuXCPoaIDbFZ5pebGwTMHJWQTz 26XJwn2VZDZ59lEUCnLxx3zim3nFUq7zL6OH6GixR/ieOIex2ZEURtXm/YXiZCC1rWtI 8BeA== X-Gm-Message-State: AOJu0Yybog6bztyrA32YENG+0Yy8IL/cZytbOiqrGN9cxFfYqgOBBnCJ 5SL1lBCb+04djoqyxGEzzEh5pczQlm6n3Wtl7ApvTWb7Z/S6AQ/ne5EkN4eGcixMPK9+6LoUykS 7 X-Google-Smtp-Source: AGHT+IHWzdFOOh+smnVtBm72whFts10EnA8bKrHgB5LuGlqbh4f95rpJyUvVpQHLa1j/5+p9QH/08w== X-Received: by 2002:a92:2912:0:b0:36a:f9aa:5757 with SMTP id l18-20020a922912000000b0036af9aa5757mr3586963ilg.2.1712849865528; Thu, 11 Apr 2024 08:37:45 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.37.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:37:43 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 218/437] misc: tps6594-pfsm: convert to read/write iterators Date: Thu, 11 Apr 2024 09:15:58 -0600 Message-ID: <20240411153126.16201-219-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/misc/tps6594-pfsm.c | 30 ++++++++++++++---------------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/drivers/misc/tps6594-pfsm.c b/drivers/misc/tps6594-pfsm.c index 88dcac814892..3e3da7b4bb7e 100644 --- a/drivers/misc/tps6594-pfsm.c +++ b/drivers/misc/tps6594-pfsm.c @@ -45,11 +45,11 @@ struct tps6594_pfsm { struct regmap *regmap; }; =20 -static ssize_t tps6594_pfsm_read(struct file *f, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t tps6594_pfsm_read(struct kiocb *iocb, struct iov_iter *to) { - struct tps6594_pfsm *pfsm =3D TPS6594_FILE_TO_PFSM(f); - loff_t pos =3D *ppos; + struct tps6594_pfsm *pfsm =3D TPS6594_FILE_TO_PFSM(iocb->ki_filp); + size_t count =3D iov_iter_count(to); + loff_t pos =3D iocb->ki_pos; unsigned int val; int ret; int i; @@ -66,20 +66,19 @@ static ssize_t tps6594_pfsm_read(struct file *f, char _= _user *buf, if (ret) return ret; =20 - if (put_user(val, buf + i)) + if (put_iter(val, to)) return -EFAULT; } =20 - *ppos =3D pos + count; - + iocb->ki_pos =3D pos + count; return count; } =20 -static ssize_t tps6594_pfsm_write(struct file *f, const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t tps6594_pfsm_write(struct kiocb *iocb, struct iov_iter *fro= m) { - struct tps6594_pfsm *pfsm =3D TPS6594_FILE_TO_PFSM(f); - loff_t pos =3D *ppos; + struct tps6594_pfsm *pfsm =3D TPS6594_FILE_TO_PFSM(iocb->ki_filp); + size_t count =3D iov_iter_count(from); + loff_t pos =3D iocb->ki_pos; char val; int ret; int i; @@ -92,7 +91,7 @@ static ssize_t tps6594_pfsm_write(struct file *f, const c= har __user *buf, count =3D TPS6594_PMIC_MAX_POS - pos; =20 for (i =3D 0 ; i < count ; i++) { - if (get_user(val, buf + i)) + if (get_iter(val, from)) return -EFAULT; =20 ret =3D regmap_write(pfsm->regmap, pos + i, val); @@ -100,8 +99,7 @@ static ssize_t tps6594_pfsm_write(struct file *f, const = char __user *buf, return ret; } =20 - *ppos =3D pos + count; - + iocb->ki_pos =3D pos + count; return count; } =20 @@ -221,8 +219,8 @@ static long tps6594_pfsm_ioctl(struct file *f, unsigned= int cmd, unsigned long a static const struct file_operations tps6594_pfsm_fops =3D { .owner =3D THIS_MODULE, .llseek =3D generic_file_llseek, - .read =3D tps6594_pfsm_read, - .write =3D tps6594_pfsm_write, + .read_iter =3D tps6594_pfsm_read, + .write_iter =3D tps6594_pfsm_write, .unlocked_ioctl =3D tps6594_pfsm_ioctl, .compat_ioctl =3D compat_ptr_ioctl, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f44.google.com (mail-io1-f44.google.com [209.85.166.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 77B2C1BF6C3 for ; Thu, 11 Apr 2024 15:37:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849869; cv=none; b=KZVIp9xSQUxKNCSesvhelE8g+B2tZfSiSyGnFgGioGAOlyqagFz3Wp0BrGAseNm6GWyfwh77hPKZL+WhyqlfTo2XdkZQHZKkNZISg4JbOMfuhfnlEb+F5OEn3ipKS7GsDttv3GPo2qloZAbE3My0p86AwJ5q6h7E7rI6JtIIY98= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849869; c=relaxed/simple; bh=v6xQDF2DsXo/J4VZREBtbRAjZJR/I2UhXb1KxbqlFZc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=NatEKjHsHblIYteVj6zXdLTcciwDRg4v92Mhsi819+kokM1ekBW95svkLcNEcVIsUIww82hA8KVtpnyn+9dMC/vYsFaytrj+2CNNZUHl08ec70vik8zf8XB4mbTpHj285Pd5R/8u/KJPmn29Z8wr2Vm1Z6DJCuvdGOOz4R+kuJ8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=BYrp01L1; arc=none smtp.client-ip=209.85.166.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="BYrp01L1" Received: by mail-io1-f44.google.com with SMTP id ca18e2360f4ac-7d6112ba6baso58111939f.1 for ; Thu, 11 Apr 2024 08:37:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849867; x=1713454667; 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=BnR78Ozn/BF2UUUk9wDuww3MAd2hdQuOFs4UAEs8Yu8=; b=BYrp01L1EDwJE6vVRaoIa1D13BZTxgcQ7SwEq38qZyw0J6fYn7tDKTy8a91vSgJkhG ydPIXVPXEDlMVXRfayC7Rs6nJ+S5V6hbcPAlCAQNPVYzk3kvfihN5qFlg89k+qVrfM75 8UZuLcMtPnRJUOZvrhtFfLIaq9cg+CdzDAzw8s6gl/Rb0ZI5aDTklSAGVZn+0s2ZTUU1 UUqR9lEMD62dyxNZ+o/AyEYm+GW72e/eNfrPhdlXyCOHJO59YrVmDGafprOxEcjpeVj+ VIiB7OmwdRxDepQKam50erPGDLeyY0G2M44MF9IXZMzxfLkjTcJZ8c4LBxQ4iLyp+UCz TdSg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849867; x=1713454667; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=BnR78Ozn/BF2UUUk9wDuww3MAd2hdQuOFs4UAEs8Yu8=; b=H04yhy1UsFsY0lIXyb5cz10SwoNmbtw4S/Jt4O5rxtDQm+bAfX7QdOZwqwxvMFbpM8 m/LcVDSzK/uu9zzppzHy67QuMpc0h5OLH2U2gAMSDiJ8rtRAeBKKlDOx1QbzJ2XiYCgV EjJAUX9hbRMsfgcxJqh9Nh7xMRYg7Y4g2EzDhQFDIlLTByFaTQxwvIjUtLaYhNaXy2Ak C5ykRp61d9rdBSBn29FKlGR42sgpooZgEeg2vL/PiMr/gDNUYnDl7wUXM7mhjDXUJ6x4 NoQImvRm6Dihw4HxcuMgPLNYVIgScf2F8cz07sIJpa1Jbec0e2i8MI2I795F64fSBdxm bM4A== X-Gm-Message-State: AOJu0YyyKAm2rFDywlXPw53gfCfkf8DTB1LLO4Yz5EYbQ0X/Dn/M7SOE EUcxfMOrpdSB3nxkK7uaijL/JV/wv1juyJvss2OA9BlzE663DNAdqB1E0mwk+Q6dwKcRkGbC4TF K X-Google-Smtp-Source: AGHT+IGxGQHUg8krv6TpOiSEesmyHCH2hqEIftKoGAMVG2w33GqrNfgRNVnf9Z+omnIWbR4892NS6w== X-Received: by 2002:a05:6602:38d:b0:7d6:513b:254 with SMTP id f13-20020a056602038d00b007d6513b0254mr189835iov.2.1712849867353; Thu, 11 Apr 2024 08:37:47 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.37.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:37:45 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 219/437] misc: ibmvmc: convert to read/write iterators Date: Thu, 11 Apr 2024 09:15:59 -0600 Message-ID: <20240411153126.16201-220-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/misc/ibmvmc.c | 40 +++++++++++++++++----------------------- 1 file changed, 17 insertions(+), 23 deletions(-) diff --git a/drivers/misc/ibmvmc.c b/drivers/misc/ibmvmc.c index e5f935b5249d..545739f1f342 100644 --- a/drivers/misc/ibmvmc.c +++ b/drivers/misc/ibmvmc.c @@ -900,21 +900,20 @@ static int ibmvmc_close(struct inode *inode, struct f= ile *file) * 0 - Success * Non-zero - Failure */ -static ssize_t ibmvmc_read(struct file *file, char *buf, size_t nbytes, - loff_t *ppos) +static ssize_t ibmvmc_read(struct kiocb *iocb, struct iov_iter *to) { struct ibmvmc_file_session *session; struct ibmvmc_hmc *hmc; struct crq_server_adapter *adapter; struct ibmvmc_buffer *buffer; + size_t nbytes =3D iov_iter_count(to); ssize_t n; ssize_t retval =3D 0; unsigned long flags; DEFINE_WAIT(wait); =20 - pr_debug("ibmvmc: read: file =3D 0x%lx, buf =3D 0x%lx, nbytes =3D 0x%lx\n= ", - (unsigned long)file, (unsigned long)buf, - (unsigned long)nbytes); + pr_debug("ibmvmc: read: file =3D 0x%lx, nbytes =3D 0x%lx\n", + (unsigned long)iocb->ki_filp, (unsigned long)nbytes); =20 if (nbytes =3D=3D 0) return 0; @@ -925,7 +924,7 @@ static ssize_t ibmvmc_read(struct file *file, char *buf= , size_t nbytes, return -EINVAL; } =20 - session =3D file->private_data; + session =3D iocb->ki_filp->private_data; if (!session) { pr_warn("ibmvmc: read: no session\n"); return -EIO; @@ -957,7 +956,7 @@ static ssize_t ibmvmc_read(struct file *file, char *buf= , size_t nbytes, retval =3D -EBADFD; goto out; } - if (file->f_flags & O_NONBLOCK) { + if (iocb->ki_filp->f_flags & O_NONBLOCK) { retval =3D -EAGAIN; goto out; } @@ -977,7 +976,7 @@ static ssize_t ibmvmc_read(struct file *file, char *buf= , size_t nbytes, spin_unlock_irqrestore(&hmc->lock, flags); =20 nbytes =3D min_t(size_t, nbytes, buffer->msg_len); - n =3D copy_to_user((void *)buf, buffer->real_addr_local, nbytes); + n =3D !copy_to_iter_full(buffer->real_addr_local, nbytes, to); dev_dbg(adapter->dev, "read: copy to user nbytes =3D 0x%lx.\n", nbytes); ibmvmc_free_hmc_buffer(hmc, buffer); retval =3D nbytes; @@ -1027,27 +1026,25 @@ static unsigned int ibmvmc_poll(struct file *file, = poll_table *wait) /** * ibmvmc_write - Write * - * @file: file struct - * @buffer: Character buffer - * @count: Count field - * @ppos: Offset + * @iocb: metadata for IO + * @from: Character buffer * * Return: * 0 - Success * Non-zero - Failure */ -static ssize_t ibmvmc_write(struct file *file, const char *buffer, - size_t count, loff_t *ppos) +static ssize_t ibmvmc_write(struct kiocb *iocb, struct iov_iter *from) { + struct file *file =3D iocb->ki_filp; struct inode *inode; struct ibmvmc_buffer *vmc_buffer; struct ibmvmc_file_session *session; struct crq_server_adapter *adapter; + size_t count =3D iov_iter_count(from); struct ibmvmc_hmc *hmc; unsigned char *buf; unsigned long flags; size_t bytes; - const char *p =3D buffer; size_t c =3D count; int ret =3D 0; =20 @@ -1109,19 +1106,17 @@ static ssize_t ibmvmc_write(struct file *file, cons= t char *buffer, } buf =3D vmc_buffer->real_addr_local; =20 + ret =3D 0; while (c > 0) { bytes =3D min_t(size_t, c, vmc_buffer->size); =20 - bytes -=3D copy_from_user(buf, p, bytes); - if (!bytes) { + if (!copy_from_iter_full(buf, bytes, from)) { ret =3D -EFAULT; goto out; } c -=3D bytes; - p +=3D bytes; + ret +=3D bytes; } - if (p =3D=3D buffer) - goto out; =20 inode =3D file_inode(file); inode_set_mtime_to_ts(inode, inode_set_ctime_current(inode)); @@ -1131,7 +1126,6 @@ static ssize_t ibmvmc_write(struct file *file, const = char *buffer, (unsigned long)file, (unsigned long)count); =20 ibmvmc_send_msg(adapter, vmc_buffer, hmc, count); - ret =3D p - buffer; out: spin_unlock_irqrestore(&hmc->lock, flags); return (ssize_t)(ret); @@ -1387,8 +1381,8 @@ static long ibmvmc_ioctl(struct file *file, =20 static const struct file_operations ibmvmc_fops =3D { .owner =3D THIS_MODULE, - .read =3D ibmvmc_read, - .write =3D ibmvmc_write, + .read_iter =3D ibmvmc_read, + .write_iter =3D ibmvmc_write, .poll =3D ibmvmc_poll, .unlocked_ioctl =3D ibmvmc_ioctl, .open =3D ibmvmc_open, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-il1-f172.google.com (mail-il1-f172.google.com [209.85.166.172]) (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 432131BF6DD for ; Thu, 11 Apr 2024 15:37:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.172 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849871; cv=none; b=W7Y0TgxRQ0ib/3l5wmj1W3TGV8G4HlIuPiIGEj2dEjg5JKojKUxsp2EsGQhiYw2ex7Kv9/Tqk+9Vg2qVPZskouuA9RS2Tcv7OwA6s6vuDQ5jNPtMmNdQ6Fc8rsN/2m3OhFCoF5MJs6wyrAJ6lI281LUWsQN4hv0GlQKkhEDV8bs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849871; c=relaxed/simple; bh=Vz6vYIbHFmvE5P5GLeQq8JWnIBczfO2XcZE527zR1EU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=rKoI64SncUm0OpIVC+nuDxXkn83uuwZ+zKhLEREByNxYw/r8QkL7jmGUtvVXPn/qhU9GbbabxfHhiDkWHVzAKk99JWrOr1StuA4WLP575QwuEFz/mxcjRe7Skv2Z6p0rqfANoJI1ve4FvI9p2nm+x8+7vQ8mYSCfGpW+kbB+7Io= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=vmfFPwWU; arc=none smtp.client-ip=209.85.166.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="vmfFPwWU" Received: by mail-il1-f172.google.com with SMTP id e9e14a558f8ab-36a224d7414so186375ab.1 for ; Thu, 11 Apr 2024 08:37:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849869; x=1713454669; 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=l7jqrmre/JH0aJ6hz13hdPTdjED5/S1D26qp0iqqT6Q=; b=vmfFPwWUMc8h9CDcC7i5ON8/SXnxL888FzqN784vmj0XXcivNwj880AZXYEUWqOUBw Ov/0rM02im03WH6eOsdabGL/R78egWWyuTsr7PvVqKCas1Dohp++gH8CYdtKlOH0jrMN qkTOuKpSMeRVqJX/itL7a9EUvXZTpUGIvsQqtjMErf5g1mrQiOit0ofmhrm1fUSGrk/u bZBvC5iUWeXl54L5dUqjWEjuCwv/+l5YvWkgCsCsUKuQ/w2bmOkU37St+QbERN3nxMs7 pR05ye72mN5sDYwKz9PPT5SLYbfK0xmyb7zMEJ6G49W+l33G1TUcGcOGmjgdt8ajdMTC dTyw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849869; x=1713454669; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=l7jqrmre/JH0aJ6hz13hdPTdjED5/S1D26qp0iqqT6Q=; b=HuYX9njyASQruemTQmwEBdhtlZycN1+djBOCqVRztONnp3Pky9ABBWyDt7F4EgUmbe BkVNcTa3iVhyJDuI5seffgn3yMnjjStKhO5qMUBi3i6YI+LqB0xQ+laJgbAqYPrfYmM4 eY0ET067pP8IQzT2NBgl5JLb2s/KZ/LpJXwXcRNnQnooGJ9SG79RBFR1KTL7rZt+DMcS nHwRVe5uoVTZ2YSx0I1+cYbF9Cxd9q4JOlVRNWCdBAG1axbTZpHGOK8X9ubqNNedAyt5 sK76/vvte+f03k30GnaQvLiO6dWWCdAM1dbGbc4AHOnxMWLl77cdbJg8F2QZARJEkUgW AO/w== X-Gm-Message-State: AOJu0Yxoq8CYivrbjd2RuVYRYj2Rt+4mY85H0pXKNqNmWmEhOifQvsWw goEBt+OYUVzV+qrXzNviibThaOuuC9Me4pB6sWK6bftIReJXhTxkoMs39vGDJdmNcEjUEanGZU3 I X-Google-Smtp-Source: AGHT+IHGyjzpCpmpERvO+y1YG62BhKCqPdd3pDVquqdAN1vOiKsyChQGg38rkfuT2lP4pO7AkQYogA== X-Received: by 2002:a6b:4e14:0:b0:7d6:631d:7b0 with SMTP id c20-20020a6b4e14000000b007d6631d07b0mr192068iob.1.1712849869060; Thu, 11 Apr 2024 08:37:49 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.37.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:37:47 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 220/437] misc: cxl: convert to read/write iterators Date: Thu, 11 Apr 2024 09:16:00 -0600 Message-ID: <20240411153126.16201-221-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/misc/cxl/api.c | 7 +++---- drivers/misc/cxl/cxl.h | 2 +- drivers/misc/cxl/file.c | 23 +++++++++++------------ include/misc/cxl.h | 3 +-- 4 files changed, 16 insertions(+), 19 deletions(-) diff --git a/drivers/misc/cxl/api.c b/drivers/misc/cxl/api.c index d85c56530863..54e1f5b917e2 100644 --- a/drivers/misc/cxl/api.c +++ b/drivers/misc/cxl/api.c @@ -375,10 +375,9 @@ __poll_t cxl_fd_poll(struct file *file, struct poll_ta= ble_struct *poll) return afu_poll(file, poll); } EXPORT_SYMBOL_GPL(cxl_fd_poll); -ssize_t cxl_fd_read(struct file *file, char __user *buf, size_t count, - loff_t *off) +ssize_t cxl_fd_read(struct kiocb *iocb, struct iov_iter *to) { - return afu_read(file, buf, count, off); + return afu_read(iocb, to); } EXPORT_SYMBOL_GPL(cxl_fd_read); =20 @@ -410,7 +409,7 @@ struct file *cxl_get_fd(struct cxl_context *ctx, struct= file_operations *fops, if (fops) { PATCH_FOPS(open); PATCH_FOPS(poll); - PATCH_FOPS(read); + PATCH_FOPS(read_iter); PATCH_FOPS(release); PATCH_FOPS(unlocked_ioctl); PATCH_FOPS(compat_ioctl); diff --git a/drivers/misc/cxl/cxl.h b/drivers/misc/cxl/cxl.h index 6ad0ab892675..6b6738b28f69 100644 --- a/drivers/misc/cxl/cxl.h +++ b/drivers/misc/cxl/cxl.h @@ -1045,7 +1045,7 @@ int afu_release(struct inode *inode, struct file *fil= e); long afu_ioctl(struct file *file, unsigned int cmd, unsigned long arg); int afu_mmap(struct file *file, struct vm_area_struct *vm); __poll_t afu_poll(struct file *file, struct poll_table_struct *poll); -ssize_t afu_read(struct file *file, char __user *buf, size_t count, loff_t= *off); +ssize_t afu_read(struct kiocb *iocb, struct iov_iter *to); extern const struct file_operations afu_fops; =20 struct cxl *cxl_guest_init_adapter(struct device_node *np, struct platform= _device *dev); diff --git a/drivers/misc/cxl/file.c b/drivers/misc/cxl/file.c index 012e11b959bc..c911bd785f26 100644 --- a/drivers/misc/cxl/file.c +++ b/drivers/misc/cxl/file.c @@ -385,7 +385,7 @@ __poll_t afu_poll(struct file *file, struct poll_table_= struct *poll) } =20 static ssize_t afu_driver_event_copy(struct cxl_context *ctx, - char __user *buf, + struct iov_iter *to, struct cxl_event *event, struct cxl_event_afu_driver_reserved *pl) { @@ -403,14 +403,13 @@ static ssize_t afu_driver_event_copy(struct cxl_conte= xt *ctx, } =20 /* Copy event header */ - if (copy_to_user(buf, event, sizeof(struct cxl_event_header))) { + if (!copy_to_iter_full(event, sizeof(struct cxl_event_header), to)) { ctx->afu_driver_ops->event_delivered(ctx, pl, -EFAULT); return -EFAULT; } =20 /* Copy event data */ - buf +=3D sizeof(struct cxl_event_header); - if (copy_to_user(buf, &pl->data, pl->data_size)) { + if (!copy_to_iter_full(&pl->data, pl->data_size, to)) { ctx->afu_driver_ops->event_delivered(ctx, pl, -EFAULT); return -EFAULT; } @@ -419,11 +418,11 @@ static ssize_t afu_driver_event_copy(struct cxl_conte= xt *ctx, return event->header.size; } =20 -ssize_t afu_read(struct file *file, char __user *buf, size_t count, - loff_t *off) +ssize_t afu_read(struct kiocb *iocb, struct iov_iter *to) { - struct cxl_context *ctx =3D file->private_data; + struct cxl_context *ctx =3D iocb->ki_filp->private_data; struct cxl_event_afu_driver_reserved *pl =3D NULL; + size_t count =3D iov_iter_count(to); struct cxl_event event; unsigned long flags; int rc; @@ -447,7 +446,7 @@ ssize_t afu_read(struct file *file, char __user *buf, s= ize_t count, goto out; } =20 - if (file->f_flags & O_NONBLOCK) { + if (iocb->ki_filp->f_flags & O_NONBLOCK) { rc =3D -EAGAIN; goto out; } @@ -505,9 +504,9 @@ ssize_t afu_read(struct file *file, char __user *buf, s= ize_t count, spin_unlock_irqrestore(&ctx->lock, flags); =20 if (event.header.type =3D=3D CXL_EVENT_AFU_DRIVER) - return afu_driver_event_copy(ctx, buf, &event, pl); + return afu_driver_event_copy(ctx, to, &event, pl); =20 - if (copy_to_user(buf, &event, event.header.size)) + if (!copy_to_iter_full(&event, event.header.size, to)) return -EFAULT; return event.header.size; =20 @@ -525,7 +524,7 @@ const struct file_operations afu_fops =3D { .owner =3D THIS_MODULE, .open =3D afu_open, .poll =3D afu_poll, - .read =3D afu_read, + .read_iter =3D afu_read, .release =3D afu_release, .unlocked_ioctl =3D afu_ioctl, .compat_ioctl =3D afu_compat_ioctl, @@ -536,7 +535,7 @@ static const struct file_operations afu_master_fops =3D= { .owner =3D THIS_MODULE, .open =3D afu_master_open, .poll =3D afu_poll, - .read =3D afu_read, + .read_iter =3D afu_read, .release =3D afu_release, .unlocked_ioctl =3D afu_ioctl, .compat_ioctl =3D afu_compat_ioctl, diff --git a/include/misc/cxl.h b/include/misc/cxl.h index d8044299d654..3758f9c8f83f 100644 --- a/include/misc/cxl.h +++ b/include/misc/cxl.h @@ -196,8 +196,7 @@ int cxl_fd_release(struct inode *inode, struct file *fi= le); long cxl_fd_ioctl(struct file *file, unsigned int cmd, unsigned long arg); int cxl_fd_mmap(struct file *file, struct vm_area_struct *vm); __poll_t cxl_fd_poll(struct file *file, struct poll_table_struct *poll); -ssize_t cxl_fd_read(struct file *file, char __user *buf, size_t count, - loff_t *off); +ssize_t cxl_fd_read(struct kiocb *iocb, struct iov_iter *to); =20 /* * For EEH, a driver may want to assert a PERST will reload the same image --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f53.google.com (mail-io1-f53.google.com [209.85.166.53]) (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 E56851BF6D4 for ; Thu, 11 Apr 2024 15:37:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849873; cv=none; b=to4qiHUUSc06Pr5WWKddK4weHlKCEFfe00l387j281APkaoF3UrCtY2Yn+JE1pi5YLKCa3KJqHakc61XGJxoww9Lftg1Z9GPA85OF2k6QX4w4OI9lhvuFTMG2YSi2DPFHa1CUERSca3xX7aa54W0p9MTCVFJrtDV3fkEJai0UxE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849873; c=relaxed/simple; bh=0J7Q2MvB635C1+FHgq8Eb2Om1kmf6vDfEm5ruRllB+E=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=f759lWunrOSTyTiO8hUsuFEr+FZvNmKHbBvs+2jnshI4yt7aNBXaA7eZq5ukTlMEHduRyIenp5IfRMGMjDWJ9vPomw0os3bBxHf6vhebcpAgDAyuJdoWqILa/G0ziOHhWobo+/m6XTsKLuiYH30drSET0g2jExBGn6yt0S1tNpI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=GHZQgN8m; arc=none smtp.client-ip=209.85.166.53 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="GHZQgN8m" Received: by mail-io1-f53.google.com with SMTP id ca18e2360f4ac-7d6812b37a6so8979739f.0 for ; Thu, 11 Apr 2024 08:37:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849870; x=1713454670; 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=wJwtdrcwe+OoWl7LuV1eYspYqfyxpFOhMB1I5yXjxxs=; b=GHZQgN8mwjr474II1jcVecjVg1txWrK0Pe3NvPzYGxtWDwi2FESGrGR5478eL64AUc lIxVxlPLYFCaAg0g2hNwvlPfLiKFCSCVtvFubRSoM9Aw+PcYQDR1oCqEbvrHZ3WCp6Wa vPW5yh+sXVBQ7Y8yjR8tR6aoe/I+TvDqqtYMZHvWl3utJMXRWraQ1WE8f6fD+JBuAsdW J4KRkd3SIDra4u6YVRT8Mujtc+F6WRU0/L19QIRxcVYjgZDYYJQwoVL414IHJ+vzzzqI cJ7feb0R6LBV3zkkO3nn4F2m1Yc8tgwsCgrLkAZS78ADivgWec4H2pQxPicGYf7M9oBi iZAg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849870; x=1713454670; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=wJwtdrcwe+OoWl7LuV1eYspYqfyxpFOhMB1I5yXjxxs=; b=G6ISIUCxHMwQuEG9pLeH7hEVvVJMwycJ6lCBiWGMlL/Sgv+syIpDQHAde8xUKf9HJ1 jX2YOjfgbq4hxXNETZxFSZ4Ww1pp1fuLtQzRS2bcyXoJQksLZ4ZoOBx7YZ2Z70ReXiXE ESZlfkrY7PNzbr7nj3aaujVe4NV+F0t8FUCAaYmq2CPAE6UFPV2h87RJLOYMU/Bn1Xz4 gcnDt8snunHsuiOGBQKO6YbQlhqi8g2z99txyUEeJk4gWd1ycddT0ThbqnKhV1yWpThC l9KVcq73GPEq6MuuSOPYa4paVh//owiqoHId1H77IJyRusJimcr41OznvCGm+LVtHefv DcRw== X-Gm-Message-State: AOJu0YwKE57QSFt4D0VFHE1Hio0dse7HD7/9OzGbL4zCOadpB9iDD2+9 rqGFyOov/ofgQ581Nd6Qc5tBcYWDYmnDEmIZT1IhqpJl+xcFPav3uatAN5YldOLDVJPnZvVvgJH p X-Google-Smtp-Source: AGHT+IFBj/RoCPqgOTqQCHaUq1++Zrbd40bPVjb8YqPBndUz9s014v+utxX83MzoNRrBhe+c7S/eJg== X-Received: by 2002:a6b:5b10:0:b0:7d0:bd2b:43ba with SMTP id v16-20020a6b5b10000000b007d0bd2b43bamr226133ioh.0.1712849870666; Thu, 11 Apr 2024 08:37:50 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.37.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:37:49 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 221/437] misc: ocxl: convert to read/write iterators Date: Thu, 11 Apr 2024 09:16:01 -0600 Message-ID: <20240411153126.16201-222-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/misc/ocxl/file.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/drivers/misc/ocxl/file.c b/drivers/misc/ocxl/file.c index 7eb74711ac96..09ed5f0eee8a 100644 --- a/drivers/misc/ocxl/file.c +++ b/drivers/misc/ocxl/file.c @@ -352,7 +352,7 @@ static unsigned int afu_poll(struct file *file, struct = poll_table_struct *wait) */ static ssize_t append_xsl_error(struct ocxl_context *ctx, struct ocxl_kernel_event_header *header, - char __user *buf) + struct iov_iter *to) { struct ocxl_kernel_event_xsl_fault_error body; =20 @@ -376,7 +376,7 @@ static ssize_t append_xsl_error(struct ocxl_context *ct= x, =20 header->type =3D OCXL_AFU_EVENT_XSL_FAULT_ERROR; =20 - if (copy_to_user(buf, &body, sizeof(body))) + if (!copy_to_iter(&body, sizeof(body), to)) return -EFAULT; =20 return sizeof(body); @@ -391,11 +391,11 @@ static ssize_t append_xsl_error(struct ocxl_context *= ctx, * Body (struct ocxl_kernel_event_*) * Header... */ -static ssize_t afu_read(struct file *file, char __user *buf, size_t count, - loff_t *off) +static ssize_t afu_read(struct kiocb *iocb, struct iov_iter *to) { - struct ocxl_context *ctx =3D file->private_data; + struct ocxl_context *ctx =3D iocb->ki_filp->private_data; struct ocxl_kernel_event_header header; + size_t count =3D iov_iter_count(to); ssize_t rc; ssize_t used =3D 0; DEFINE_WAIT(event_wait); @@ -403,7 +403,7 @@ static ssize_t afu_read(struct file *file, char __user = *buf, size_t count, memset(&header, 0, sizeof(header)); =20 /* Require offset to be 0 */ - if (*off !=3D 0) + if (iocb->ki_pos !=3D 0) return -EINVAL; =20 if (count < (sizeof(struct ocxl_kernel_event_header) + @@ -420,7 +420,7 @@ static ssize_t afu_read(struct file *file, char __user = *buf, size_t count, if (ctx->status =3D=3D CLOSED) break; =20 - if (file->f_flags & O_NONBLOCK) { + if (iocb->ki_filp->f_flags & O_NONBLOCK) { finish_wait(&ctx->events_wq, &event_wait); return -EAGAIN; } @@ -436,7 +436,7 @@ static ssize_t afu_read(struct file *file, char __user = *buf, size_t count, finish_wait(&ctx->events_wq, &event_wait); =20 if (has_xsl_error(ctx)) { - used =3D append_xsl_error(ctx, &header, buf + sizeof(header)); + used =3D append_xsl_error(ctx, &header, to); if (used < 0) return used; } @@ -444,7 +444,7 @@ static ssize_t afu_read(struct file *file, char __user = *buf, size_t count, if (!afu_events_pending(ctx)) header.flags |=3D OCXL_KERNEL_EVENT_FLAG_LAST; =20 - if (copy_to_user(buf, &header, sizeof(header))) + if (!copy_to_iter_full(&header, sizeof(header), to)) return -EFAULT; =20 used +=3D sizeof(header); @@ -476,7 +476,7 @@ static const struct file_operations ocxl_afu_fops =3D { .compat_ioctl =3D afu_compat_ioctl, .mmap =3D afu_mmap, .poll =3D afu_poll, - .read =3D afu_read, + .read_iter =3D afu_read, .release =3D afu_release, }; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f41.google.com (mail-io1-f41.google.com [209.85.166.41]) (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 A68BB3D579 for ; Thu, 11 Apr 2024 15:37:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849875; cv=none; b=kMtM424ogR0vE9+FJZReFica1C01bWaFxGMHLtPkglIe0mPaCJZ7vP4uSlCa8E7Lfijq0sqKUzepaPjh29rSOp3Wd91zxABGKf2ccMm21+TDaiqwGudYtUr9biTRj7XtUevZus4vXc7egR4/Ju2KLCMPYGg+XvLbR1Iq7hF947U= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849875; c=relaxed/simple; bh=HI6n6cFPPfll7bQ+Kmt38ePuXYCcYimcze1i2sFfkyA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=lHr66Wo3ncMNaNraQH1ybUc8nd7NtocZPk8wkvdtopvALIwsCCwBhseU8tQ/Jf2NKj47lub2hWBfPNU98f1EAJKApIwqh6icmKju5mtKdMbsF6vt+DZj6BuGGMWI9l3yyITU4zyakcWae+HNuh3t/Z0UTmJcutf6os0AmYXoATM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=itper5SB; arc=none smtp.client-ip=209.85.166.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="itper5SB" Received: by mail-io1-f41.google.com with SMTP id ca18e2360f4ac-7d6112ba6baso58114939f.1 for ; Thu, 11 Apr 2024 08:37:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849872; x=1713454672; 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=mJB5B+coAVvlhitIoWDtN7J9U3iUGwpQ3FYYkVGK6bo=; b=itper5SBoITYqPKXQOG/BcwKYBVJAHKYRElOnjsoo+pqOehrbbtGv2nj9PRGoGz7yw HC7bONfMc43gkXC8/gdIQ+NuclpnfRmSvQDe5loG3sR9tgT38NgeBbxwAiGXGkmy0Sya h5piidCkJOsTIZEsi+YBmp6MC+uddk+stngmYkHFwgiGnpqz88Hn81QZWCPcYPsZ+x7S +zfPfG9WUXtwIPEPmdnRtY2VgAKwXNWw7DbhDIT6oHcKYieOqqQ2OWQt954mta7S4ioe gkjkTZ+CpAbWq5qgZUmCmQo8rd5H5ELlgKKXDYkcLyARPxemn9zXCjfA1Ytf5ZD6bCme V0tQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849872; x=1713454672; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=mJB5B+coAVvlhitIoWDtN7J9U3iUGwpQ3FYYkVGK6bo=; b=KyEtdnZveT6Qhjd71wz3gz5LdZLkshtYXXUvQ25fOIvXoiety1OGr4a/uihBq3hrFP oSUdHGnoQfhk6j6i08WCsplzlBr6uDVcRmxZHpwXft8LXlaLzJ/rk/KM8ryFRETPioJ8 knHQEwEwuLjGGTcDoIBERq2kdDtVlEP7/mpsnohZS8iYDqsKZQ41SBYf0zv0Cvo+H8bt RiSx8os8tnLAnqLirfvEnW6j29BXL94e3+CG71yldmifYqfc8FL3H1uc2ig7/Hw4CLY2 AP+EgKEcJ3iG2oGspfW8fs3JUhPHC3TQcsUQ3dhblgJZLrX8AaKgyISQ0QFFAehjytZo Jt4Q== X-Gm-Message-State: AOJu0Yya9D5YqjsxC7pOEwZp8UeUOqEGmwlHHLUvOR/MP1RU1hjtRtGf FItqyBAmq4U4yBIJeCRMwWS9qfsIZUFUVcicW3x/8opbZIi1LA1d1xJ11rkt2ghWMq1WJKo9OKV 6 X-Google-Smtp-Source: AGHT+IEKaL+1mh4n0QApyJLN37yCnPC/UQyAEdgA9POkyiOVxY12TJOqFU2kBBO12aGpSblAO5DgKg== X-Received: by 2002:a6b:f312:0:b0:7d5:de23:13a9 with SMTP id m18-20020a6bf312000000b007d5de2313a9mr166079ioh.1.1712849872485; Thu, 11 Apr 2024 08:37:52 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.37.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:37:50 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 222/437] drivers/isdn: convert to read/write iterators Date: Thu, 11 Apr 2024 09:16:02 -0600 Message-ID: <20240411153126.16201-223-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/isdn/capi/capi.c | 22 +++++++++++----------- drivers/isdn/mISDN/timerdev.c | 16 ++++++++-------- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/drivers/isdn/capi/capi.c b/drivers/isdn/capi/capi.c index 3ed257334562..6b613e03d85b 100644 --- a/drivers/isdn/capi/capi.c +++ b/drivers/isdn/capi/capi.c @@ -648,10 +648,10 @@ static void capi_recv_message(struct capi20_appl *ap,= struct sk_buff *skb) =20 /* -------- file_operations for capidev ----------------------------- */ =20 -static ssize_t -capi_read(struct file *file, char __user *buf, size_t count, loff_t *ppos) +static ssize_t capi_read(struct kiocb *iocb, struct iov_iter *to) { - struct capidev *cdev =3D file->private_data; + struct capidev *cdev =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(to); struct sk_buff *skb; size_t copied; int err; @@ -661,7 +661,7 @@ capi_read(struct file *file, char __user *buf, size_t c= ount, loff_t *ppos) =20 skb =3D skb_dequeue(&cdev->recvqueue); if (!skb) { - if (file->f_flags & O_NONBLOCK) + if (iocb->ki_filp->f_flags & O_NONBLOCK) return -EAGAIN; err =3D wait_event_interruptible(cdev->recvwait, (skb =3D skb_dequeue(&cdev->recvqueue))); @@ -672,7 +672,7 @@ capi_read(struct file *file, char __user *buf, size_t c= ount, loff_t *ppos) skb_queue_head(&cdev->recvqueue, skb); return -EMSGSIZE; } - if (copy_to_user(buf, skb->data, skb->len)) { + if (!copy_to_iter_full(skb->data, skb->len, to)) { skb_queue_head(&cdev->recvqueue, skb); return -EFAULT; } @@ -683,10 +683,10 @@ capi_read(struct file *file, char __user *buf, size_t= count, loff_t *ppos) return copied; } =20 -static ssize_t -capi_write(struct file *file, const char __user *buf, size_t count, loff_t= *ppos) +static ssize_t capi_write(struct kiocb *iocb, struct iov_iter *from) { - struct capidev *cdev =3D file->private_data; + struct capidev *cdev =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); struct sk_buff *skb; u16 mlen; =20 @@ -700,7 +700,7 @@ capi_write(struct file *file, const char __user *buf, s= ize_t count, loff_t *ppos if (!skb) return -ENOMEM; =20 - if (copy_from_user(skb_put(skb, count), buf, count)) { + if (!copy_from_iter_full(skb_put(skb, count), count, from)) { kfree_skb(skb); return -EFAULT; } @@ -1025,8 +1025,8 @@ static const struct file_operations capi_fops =3D { .owner =3D THIS_MODULE, .llseek =3D no_llseek, - .read =3D capi_read, - .write =3D capi_write, + .read_iter =3D capi_read, + .write_iter =3D capi_write, .poll =3D capi_poll, .unlocked_ioctl =3D capi_unlocked_ioctl, #ifdef CONFIG_COMPAT diff --git a/drivers/isdn/mISDN/timerdev.c b/drivers/isdn/mISDN/timerdev.c index 83d6b484d3c6..cf52b08e2fad 100644 --- a/drivers/isdn/mISDN/timerdev.c +++ b/drivers/isdn/mISDN/timerdev.c @@ -89,17 +89,17 @@ mISDN_close(struct inode *ino, struct file *filep) return 0; } =20 -static ssize_t -mISDN_read(struct file *filep, char __user *buf, size_t count, loff_t *off) +static ssize_t mISDN_read(struct kiocb *iocb, struct iov_iter *to) { - struct mISDNtimerdev *dev =3D filep->private_data; + struct mISDNtimerdev *dev =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(to); struct list_head *list =3D &dev->expired; struct mISDNtimer *timer; int ret =3D 0; =20 if (*debug & DEBUG_TIMER) - printk(KERN_DEBUG "%s(%p, %p, %d, %p)\n", __func__, - filep, buf, (int)count, off); + printk(KERN_DEBUG "%s(%p, %d)\n", __func__, + iocb->ki_filp, (int)count); =20 if (count < sizeof(int)) return -ENOSPC; @@ -107,7 +107,7 @@ mISDN_read(struct file *filep, char __user *buf, size_t= count, loff_t *off) spin_lock_irq(&dev->lock); while (list_empty(list) && (dev->work =3D=3D 0)) { spin_unlock_irq(&dev->lock); - if (filep->f_flags & O_NONBLOCK) + if (iocb->ki_filp->f_flags & O_NONBLOCK) return -EAGAIN; wait_event_interruptible(dev->wait, (dev->work || !list_empty(list))); @@ -121,7 +121,7 @@ mISDN_read(struct file *filep, char __user *buf, size_t= count, loff_t *off) timer =3D list_first_entry(list, struct mISDNtimer, list); list_del(&timer->list); spin_unlock_irq(&dev->lock); - if (put_user(timer->id, (int __user *)buf)) + if (put_iter(timer->id, to)) ret =3D -EFAULT; else ret =3D sizeof(int); @@ -261,7 +261,7 @@ mISDN_ioctl(struct file *filep, unsigned int cmd, unsig= ned long arg) =20 static const struct file_operations mISDN_fops =3D { .owner =3D THIS_MODULE, - .read =3D mISDN_read, + .read_iter =3D mISDN_read, .poll =3D mISDN_poll, .unlocked_ioctl =3D mISDN_ioctl, .open =3D mISDN_open, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f54.google.com (mail-io1-f54.google.com [209.85.166.54]) (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 2A4AE84DF8 for ; Thu, 11 Apr 2024 15:37:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849876; cv=none; b=k4PZHp0E7b0FXmT68yaGwcASwHmbDtQVAePwo9J2VtGx9jJ4klA+/lxHaeoZ81peMcdmPcgBORQSQ8Vy6Jk6+51dBz1l5baTlzZD5RsklxmZ6zNC2GjkUKksURwMFTRxKLhCElfJch+i5MD5TwMwPO0ii+WQwIxHlP/d5KIXZf4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849876; c=relaxed/simple; bh=2b+wmRTPa43GlgcQRxpKllSYOoAfs4n74u6WABWCQoI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=pRM+m7szQmPPa8TSM6uWKuH3vhdui4h0W4T1KJvqoslZMYyH+GYBFgUiMEkorsMqiDXoe01QnNo9BGQDj7SPp4FwaNvMzRdkCYvdL1Yq7ANRCJ/UThN3dg+f9VIveQWQeqMb1fxK+dG1CFqQB4afo7bqRQkTaCNk/oSW2c/Mni4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=f7cZ+6n4; arc=none smtp.client-ip=209.85.166.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="f7cZ+6n4" Received: by mail-io1-f54.google.com with SMTP id ca18e2360f4ac-7d67d1073easo9828139f.0 for ; Thu, 11 Apr 2024 08:37:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849874; x=1713454674; 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=gMcAzrEZJ/ituJuEchEklnEamqivJ8zTrCNfYMwWS1g=; b=f7cZ+6n49Le4VTGXUfWqbG1cDzS1KEUwXH1dfuuPxoAtNfAzEqsdaqyErowjKF/V2u PkdIIInVhaKsw3/r7VCKSylUwDCTgXa5Ld5ZOuKupvV3bzPZDhn7dBS2aAyZz7CCC+S4 nC+Hde56F+DI9Z1Q+Ri6uheFlnS6hXjBsxg0OpAtHb9gcSkKUiMztVPIdC351sRekuyz 7nNGGLFtD2fxMKeD09yFY78eabd1kEiTYppmreRkHiD+vDjhwxBs8eq2PaBXZ5n1JC7z 2oDq7h54bPD/spOKXa3FjUUHdY8kNziBjsAh6vusLW9Nb/wS4xXza3+wH43oM0PUWca/ StTQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849874; x=1713454674; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=gMcAzrEZJ/ituJuEchEklnEamqivJ8zTrCNfYMwWS1g=; b=KMSsr6GEUDbMKh58ZB0Km0jr4GC/tuoxKYnDQ8bTRT5627Q7yWGEWqZQnR7xmd4sO2 jrMoDNy4RNnO6DxpVLSnE73ras++M7eoXiHqZTDglTfaexaDjWYMD657ZKzPZcLUaz/R LtrRzGZtggR3hk44xyfm1FTRAzFrMrTsFBvllYETKRKFcHFhbam7+em8bWX1p1/7LcQK rs/rJcx11I4aNZ3+FdQynr9f25A/Nb1byVvyVv+oqwsA/mj1jgXkQGIguJV+ozkWYSoL ATEC072bf52WM3mBsE0B1CgLRGykN7M2zrkg8/fQWmaZeNxDOifivPv9SeCfEmFw5vjX 52XA== X-Gm-Message-State: AOJu0Yy0gCFMx/WLf1aXqR0+e9ZnASP+Old1GFG/SDnUH7xP+HoIthIU UPgSmOzM0VZZZZCC8glcoAttZ4N0cT40PsQvG14RgeGiW0/8ueXsQ1kaMZhFiE3Srwgtuh+PNmy Z X-Google-Smtp-Source: AGHT+IEwi6vJuKt9dpmAhSXAkYuOH2Zxw0c5i3O3wYHyS8ooLuWOsOeMVVGldgROJjwAutjJBm2/Xg== X-Received: by 2002:a92:2c10:0:b0:36a:2d25:3d82 with SMTP id t16-20020a922c10000000b0036a2d253d82mr6166719ile.0.1712849874001; Thu, 11 Apr 2024 08:37:54 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.37.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:37:52 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 223/437] drivers/leds: convert to read/write iterators Date: Thu, 11 Apr 2024 09:16:03 -0600 Message-ID: <20240411153126.16201-224-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/leds/uleds.c | 33 ++++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/drivers/leds/uleds.c b/drivers/leds/uleds.c index 3d361c920030..b1fa00407364 100644 --- a/drivers/leds/uleds.c +++ b/drivers/leds/uleds.c @@ -70,10 +70,10 @@ static int uleds_open(struct inode *inode, struct file = *file) return 0; } =20 -static ssize_t uleds_write(struct file *file, const char __user *buffer, - size_t count, loff_t *ppos) +static ssize_t uleds_write(struct kiocb *iocb, struct iov_iter *from) { - struct uleds_device *udev =3D file->private_data; + struct uleds_device *udev =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); const char *name; int ret; =20 @@ -94,8 +94,8 @@ static ssize_t uleds_write(struct file *file, const char = __user *buffer, goto out; } =20 - if (copy_from_user(&udev->user_dev, buffer, - sizeof(struct uleds_user_dev))) { + if (!copy_from_iter_full(&udev->user_dev, sizeof(struct uleds_user_dev), + from)) { ret =3D -EFAULT; goto out; } @@ -128,10 +128,10 @@ static ssize_t uleds_write(struct file *file, const c= har __user *buffer, return ret; } =20 -static ssize_t uleds_read(struct file *file, char __user *buffer, size_t c= ount, - loff_t *ppos) +static ssize_t uleds_read(struct kiocb *iocb, struct iov_iter *to) { - struct uleds_device *udev =3D file->private_data; + struct uleds_device *udev =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(to); ssize_t retval; =20 if (count < sizeof(udev->brightness)) @@ -144,13 +144,16 @@ static ssize_t uleds_read(struct file *file, char __u= ser *buffer, size_t count, =20 if (udev->state !=3D ULEDS_STATE_REGISTERED) { retval =3D -ENODEV; - } else if (!udev->new_data && (file->f_flags & O_NONBLOCK)) { + } else if (!udev->new_data && (iocb->ki_filp->f_flags & O_NONBLOCK)) { retval =3D -EAGAIN; } else if (udev->new_data) { - retval =3D copy_to_user(buffer, &udev->brightness, - sizeof(udev->brightness)); + retval =3D !copy_to_iter_full(&udev->brightness, + sizeof(udev->brightness), to); udev->new_data =3D false; - retval =3D sizeof(udev->brightness); + if (retval) + retval =3D -EFAULT; + else + retval =3D sizeof(udev->brightness); } =20 mutex_unlock(&udev->mutex); @@ -158,7 +161,7 @@ static ssize_t uleds_read(struct file *file, char __use= r *buffer, size_t count, if (retval) break; =20 - if (!(file->f_flags & O_NONBLOCK)) + if (!(iocb->ki_filp->f_flags & O_NONBLOCK)) retval =3D wait_event_interruptible(udev->waitq, udev->new_data || udev->state !=3D ULEDS_STATE_REGISTERED); @@ -197,8 +200,8 @@ static const struct file_operations uleds_fops =3D { .owner =3D THIS_MODULE, .open =3D uleds_open, .release =3D uleds_release, - .read =3D uleds_read, - .write =3D uleds_write, + .read_iter =3D uleds_read, + .write_iter =3D uleds_write, .poll =3D uleds_poll, .llseek =3D no_llseek, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-il1-f178.google.com (mail-il1-f178.google.com [209.85.166.178]) (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 64D2C84E0C for ; Thu, 11 Apr 2024 15:37:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.178 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849878; cv=none; b=lBbxn3ZcNpOrDmBSHa/XdTbF9e7DB4bGytTMifwSBM/MBVyLAnUBuLIJMZSY+5ol3NRNEVvz9L16VO9xRGEmHHE1mj132gvu0D5f0oqWzPbVVcEwQ7bpfRAAk42xaEzCnHIbjLM7UKJ8G3uPub5bjCInAm/rzQmP4cEuqzaa7CU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849878; c=relaxed/simple; bh=dKegfD9inuQjrfp8V5zNelclZEXv78SMco6P6shv3uI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=BpI87EAqwFcdBvbxzWwSRZKRIt8XyGLYF8zBgzerHb1mie8Q/llO/fxeVrivW7lkVRkB4DqH8bds9rmgD9C/3NBrrMI3WNcyHzBynzBgfs9X1C2TJ1heRcAKGsq5iPfSfUlXPnSYIEAhcal7FH3sTc0ivuL0q0NQNsffWrz9foc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=2iiqG55b; arc=none smtp.client-ip=209.85.166.178 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="2iiqG55b" Received: by mail-il1-f178.google.com with SMTP id e9e14a558f8ab-36a34b68277so113435ab.0 for ; Thu, 11 Apr 2024 08:37:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849876; x=1713454676; 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=xw+QYykvlRHgH9Je+PZEWfmF+Zqn65SJAhuGyu3q7/0=; b=2iiqG55bBKXRyYrMZIiYjpvt+Hj7vNBfesFwbQxHCYzMKExIUPm2XY/F/WYhtY8vcD SgEh888IZnZoCEV4i1q9CCe5A7cIPOxOUYfFpSuRH+pS7ainGGfejnbn1ITHonkSqNcp 2nG0DIqaVXb5QwGchGqdoFBzO7Lh1zwncJLvEhZscCb3hJ1RjlDw9mCXWisdt5tG7T8o ULGeMYXgcRBFJp5q2zUDbdzL1vl5CCYcpJTLSiQ+byqhsq6xhfmbv/guMZ7RQn235bp3 WX0HGejstNMITuP7FdwPv4zoULudiqQv0O8HqQ62+M4Fa/xfr4gJNBSQpaXbg93N8DS3 0MEQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849876; x=1713454676; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=xw+QYykvlRHgH9Je+PZEWfmF+Zqn65SJAhuGyu3q7/0=; b=QgcPHIZqRTt3AT+vp1TsTDttyq8QAq4tLblBeSGKBCaRsHQCNF1kuLPm0hg0J4oiZi cQYipurwPE+gjno16T3r03YKznUMARK7WqHd7wS1f1oKkTloKi6TyBZsHpISOf5hE5rU b9F/Y2+XcSRHIMjfTdS+NVw9fcxj29Pk7nsI37AUie1NTRMNpIyv5rQkZwnSER1H8dIC UOmZjJG6JakXfh2qe4xvfTIh3a5zGDE0uf6qntDOkjpApmbGlrtcC3NQL5IMyIC4eKhE ppRtYk8Dt2aQGBrUknIQG+Mxvu6+48bno1hILwY6BILwOwyMFgaFVqIinxsBoZ8Z3olw OrGA== X-Gm-Message-State: AOJu0YwrOlB2C5spGYUdFDeHITj9oF6cZyE4P24fdl1M19u8ZyeSIxE2 e3mtrhZ2sfyTmYgmH411gdKR2bJJkbkPkjAKcKOfsBJV0yZf661/oThe7P/c67Nu44F0r2plWxc T X-Google-Smtp-Source: AGHT+IEHOoJy72rxpyg1edLQH4yXh7NVot/7LS01gHyKrcefNPzq4rE7DULR2F+phC4pmh28+DGK+w== X-Received: by 2002:a6b:4e14:0:b0:7d6:631d:7b0 with SMTP id c20-20020a6b4e14000000b007d6631d07b0mr192416iob.1.1712849875805; Thu, 11 Apr 2024 08:37:55 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.37.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:37:54 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 224/437] drivers/mailbox: convert to read/write iterators Date: Thu, 11 Apr 2024 09:16:04 -0600 Message-ID: <20240411153126.16201-225-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/mailbox/bcm-pdc-mailbox.c | 9 ++++---- drivers/mailbox/mailbox-test.c | 37 ++++++++++++++----------------- 2 files changed, 21 insertions(+), 25 deletions(-) diff --git a/drivers/mailbox/bcm-pdc-mailbox.c b/drivers/mailbox/bcm-pdc-ma= ilbox.c index 1768d3d5aaa0..4fd840cd7193 100644 --- a/drivers/mailbox/bcm-pdc-mailbox.c +++ b/drivers/mailbox/bcm-pdc-mailbox.c @@ -420,8 +420,7 @@ static struct pdc_globals pdcg; /* top level debug FS directory for PDC driver */ static struct dentry *debugfs_dir; =20 -static ssize_t pdc_debugfs_read(struct file *filp, char __user *ubuf, - size_t count, loff_t *offp) +static ssize_t pdc_debugfs_read(struct kiocb *iocb, struct iov_iter *to) { struct pdc_state *pdcs; char *buf; @@ -433,7 +432,7 @@ static ssize_t pdc_debugfs_read(struct file *filp, char= __user *ubuf, if (!buf) return -ENOMEM; =20 - pdcs =3D filp->private_data; + pdcs =3D iocb->ki_filp->private_data; out_offset =3D 0; out_offset +=3D scnprintf(buf + out_offset, out_count - out_offset, "SPU %u stats:\n", pdcs->pdc_idx); @@ -469,7 +468,7 @@ static ssize_t pdc_debugfs_read(struct file *filp, char= __user *ubuf, if (out_offset > out_count) out_offset =3D out_count; =20 - ret =3D simple_read_from_buffer(ubuf, count, offp, buf, out_offset); + ret =3D simple_copy_to_iter(buf, &iocb->ki_pos, out_offset, to); kfree(buf); return ret; } @@ -477,7 +476,7 @@ static ssize_t pdc_debugfs_read(struct file *filp, char= __user *ubuf, static const struct file_operations pdc_debugfs_stats =3D { .owner =3D THIS_MODULE, .open =3D simple_open, - .read =3D pdc_debugfs_read, + .read_iter =3D pdc_debugfs_read, }; =20 /** diff --git a/drivers/mailbox/mailbox-test.c b/drivers/mailbox/mailbox-test.c index 3386b4e72551..27176797770b 100644 --- a/drivers/mailbox/mailbox-test.c +++ b/drivers/mailbox/mailbox-test.c @@ -46,11 +46,10 @@ struct mbox_test_device { struct dentry *root_debugfs_dir; }; =20 -static ssize_t mbox_test_signal_write(struct file *filp, - const char __user *userbuf, - size_t count, loff_t *ppos) +static ssize_t mbox_test_signal_write(struct kiocb *iocb, struct iov_iter = *from) { - struct mbox_test_device *tdev =3D filp->private_data; + struct mbox_test_device *tdev =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); =20 if (!tdev->tx_channel) { dev_err(tdev->dev, "Channel cannot do Tx\n"); @@ -71,7 +70,7 @@ static ssize_t mbox_test_signal_write(struct file *filp, return -ENOMEM; } =20 - if (copy_from_user(tdev->signal, userbuf, count)) { + if (!copy_from_iter_full(tdev->signal, count, from)) { kfree(tdev->signal); tdev->signal =3D NULL; return -EFAULT; @@ -81,7 +80,7 @@ static ssize_t mbox_test_signal_write(struct file *filp, } =20 static const struct file_operations mbox_test_signal_ops =3D { - .write =3D mbox_test_signal_write, + .write_iter =3D mbox_test_signal_write, .open =3D simple_open, .llseek =3D generic_file_llseek, }; @@ -93,11 +92,11 @@ static int mbox_test_message_fasync(int fd, struct file= *filp, int on) return fasync_helper(fd, filp, on, &tdev->async_queue); } =20 -static ssize_t mbox_test_message_write(struct file *filp, - const char __user *userbuf, - size_t count, loff_t *ppos) +static ssize_t mbox_test_message_write(struct kiocb *iocb, + struct iov_iter *from) { - struct mbox_test_device *tdev =3D filp->private_data; + struct mbox_test_device *tdev =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); char *message; void *data; int ret; @@ -121,7 +120,7 @@ static ssize_t mbox_test_message_write(struct file *fil= p, mutex_lock(&tdev->mutex); =20 tdev->message =3D message; - ret =3D copy_from_user(tdev->message, userbuf, count); + ret =3D !copy_from_iter_full(tdev->message, count, from); if (ret) { ret =3D -EFAULT; goto out; @@ -168,10 +167,9 @@ static bool mbox_test_message_data_ready(struct mbox_t= est_device *tdev) return data_ready; } =20 -static ssize_t mbox_test_message_read(struct file *filp, char __user *user= buf, - size_t count, loff_t *ppos) +static ssize_t mbox_test_message_read(struct kiocb *iocb, struct iov_iter = *to) { - struct mbox_test_device *tdev =3D filp->private_data; + struct mbox_test_device *tdev =3D iocb->ki_filp->private_data; unsigned long flags; char *touser, *ptr; int l =3D 0; @@ -185,8 +183,7 @@ static ssize_t mbox_test_message_read(struct file *filp= , char __user *userbuf, =20 if (!tdev->rx_channel) { ret =3D snprintf(touser, 20, "\n"); - ret =3D simple_read_from_buffer(userbuf, count, ppos, - touser, ret); + ret =3D simple_copy_to_iter(touser, &iocb->ki_pos, ret, to); goto kfree_err; } =20 @@ -198,7 +195,7 @@ static ssize_t mbox_test_message_read(struct file *filp= , char __user *userbuf, if (mbox_test_message_data_ready(tdev)) break; =20 - if (filp->f_flags & O_NONBLOCK) { + if (iocb->ki_filp->f_flags & O_NONBLOCK) { ret =3D -EAGAIN; goto waitq_err; } @@ -231,7 +228,7 @@ static ssize_t mbox_test_message_read(struct file *filp= , char __user *userbuf, =20 spin_unlock_irqrestore(&tdev->lock, flags); =20 - ret =3D simple_read_from_buffer(userbuf, count, ppos, touser, MBOX_HEXDUM= P_MAX_LEN); + ret =3D simple_copy_to_iter(touser, &iocb->ki_pos, MBOX_HEXDUMP_MAX_LEN, = to); waitq_err: __set_current_state(TASK_RUNNING); remove_wait_queue(&tdev->waitq, &wait); @@ -253,8 +250,8 @@ mbox_test_message_poll(struct file *filp, struct poll_t= able_struct *wait) } =20 static const struct file_operations mbox_test_message_ops =3D { - .write =3D mbox_test_message_write, - .read =3D mbox_test_message_read, + .write_iter =3D mbox_test_message_write, + .read_iter =3D mbox_test_message_read, .fasync =3D mbox_test_message_fasync, .poll =3D mbox_test_message_poll, .open =3D simple_open, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-il1-f179.google.com (mail-il1-f179.google.com [209.85.166.179]) (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 C79241C1241 for ; Thu, 11 Apr 2024 15:37:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.179 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849879; cv=none; b=oFJkNQSTv1CfbnXQfCHQNZO+Rc1WySeoefWeaAUjOO0WbtUi1Vq7QvQEtMSXujoZL4DGRTxP611TaV2ISCkWRzUCpwKcMTGWHKAa63qIH2tnm5C+XtxpB66XoxZwYa5YOdsciunZzA5MPL+T4zesLGrH2tdGfzot59OmcGo9g0A= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849879; c=relaxed/simple; bh=eBQ5PolULrG7X1JocqFDWqUH0cPAdjxu60/Hv9y8eeg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=bbK2OmTadFID55DSTvIV7sH6Zgb6gG8hZEg8UnLod0w+qiby/J7H4LuLsInbySAMTnjIRKP1T/t6PmDy/FD5eBuNf4Vrhq+oAE9wSiIzkr4ebXTE9lzoTWmSdvOw7iavhJzJjRfETDJevCAkXc6VoNqZKw3K7orjVkvaRxmUDy4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=1zgtg6GR; arc=none smtp.client-ip=209.85.166.179 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="1zgtg6GR" Received: by mail-il1-f179.google.com with SMTP id e9e14a558f8ab-36a34b68277so113465ab.0 for ; Thu, 11 Apr 2024 08:37:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849876; x=1713454676; 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=dBG0Icemg3I1csuXuhMuMpuiVldFWp6vm8d9fo6GTjE=; b=1zgtg6GRoHaSTWDkF/2pl/IhO8zq0SysCWh75SjJZcepZN6ROAcsonmQXqSgDA0GPG DhAzBjJG3V2NWhJiIfpHFGKevLkSJ+8DnYXCya3gloQFEouSYwspsDsPHysQFUzLgdiE 55rZxlIi0R36riEYFMH2W9Xww2YFTYvoxtfrgBlsgz8AHoAXpskvGFrJgHgIbIbi6x4T aXmJzDsm784+5R3i/dFndwJgY7yynbQikq4KbwTn8Ca0uL3COiWNUz4F3hlVN4b0yU71 i6gwspU+CXlb9sMkqzO68IcKgm2mewh1NGc4Tygcy44VyduMWOsskzXNu7YXLuFM6n3R LHCA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849876; x=1713454676; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=dBG0Icemg3I1csuXuhMuMpuiVldFWp6vm8d9fo6GTjE=; b=X+inUqjSrYkavwJUvEA5uRyoI7JBYgJ+jFeoY00pXcaor23U/XUCjZbKK0tx3Lqf6H eBvjkUpLZXiCjQr3qaQG6RnuwijHrt2MpZzh53nvdYoMmZdRW19ix2zL/pIPcYpVb8bG 2qDgEyqUi7U1XL6ahXsF+PpI6VdcNwMs+BSjOlSUhPekNVpcDSSGpHDa528lAOXkP/+V UXFGl6XYeZ7MrwSdajaPaqKDkAoYUqbW+Cd7loKtfR+7dSWWcEAl4k/2oVsWhPcXH3TE 5LwLF0nMrFA9EHUmetLxjtBCEQZOyUqNMIO1o/tXOpkdE6lQV6aV6nNuOioVPNIIgW4a n+3A== X-Gm-Message-State: AOJu0Yz7yrmUcpJglAjYbVG31ABMnq/0pfsRuT+ExXXuLNt5H3DuxnTQ +CHBed9WJ3yWPsmAJVGGqacLwQeJkr+iPBKvpjyD+kkBG1b+Eh6RUOFkQ1YiGehZedR5DaO+Qnc T X-Google-Smtp-Source: AGHT+IFwjYlOkkCwuMKp/loKt26xX8GHZiCPqI3W6/dL9QRd9qRU17Nak5JAWlOnGaPP/xK2LG7jbw== X-Received: by 2002:a05:6602:4ed7:b0:7d5:ddc8:504d with SMTP id gk23-20020a0566024ed700b007d5ddc8504dmr192286iob.0.1712849876517; Thu, 11 Apr 2024 08:37:56 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.37.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:37:56 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 225/437] drivers/mfd: convert to read/write iterators Date: Thu, 11 Apr 2024 09:16:05 -0600 Message-ID: <20240411153126.16201-226-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/mfd/aat2870-core.c | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/drivers/mfd/aat2870-core.c b/drivers/mfd/aat2870-core.c index 2fee62f1016c..78a8809908ff 100644 --- a/drivers/mfd/aat2870-core.c +++ b/drivers/mfd/aat2870-core.c @@ -248,10 +248,9 @@ static ssize_t aat2870_dump_reg(struct aat2870_data *a= at2870, char *buf) return count; } =20 -static ssize_t aat2870_reg_read_file(struct file *file, char __user *user_= buf, - size_t count, loff_t *ppos) +static ssize_t aat2870_reg_read_file(struct kiocb *iocb, struct iov_iter *= to) { - struct aat2870_data *aat2870 =3D file->private_data; + struct aat2870_data *aat2870 =3D iocb->ki_filp->private_data; char *buf; ssize_t ret; =20 @@ -261,18 +260,17 @@ static ssize_t aat2870_reg_read_file(struct file *fil= e, char __user *user_buf, =20 ret =3D aat2870_dump_reg(aat2870, buf); if (ret >=3D 0) - ret =3D simple_read_from_buffer(user_buf, count, ppos, buf, ret); + ret =3D simple_copy_from_iter(buf, &iocb->ki_pos, ret, to); =20 kfree(buf); =20 return ret; } =20 -static ssize_t aat2870_reg_write_file(struct file *file, - const char __user *user_buf, size_t count, - loff_t *ppos) +static ssize_t aat2870_reg_write_file(struct kiocb *iocb, struct iov_iter = *from) { - struct aat2870_data *aat2870 =3D file->private_data; + struct aat2870_data *aat2870 =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); char buf[32]; ssize_t buf_size; char *start =3D buf; @@ -280,7 +278,7 @@ static ssize_t aat2870_reg_write_file(struct file *file, int ret; =20 buf_size =3D min(count, (size_t)(sizeof(buf)-1)); - if (copy_from_user(buf, user_buf, buf_size)) { + if (!copy_from_iter_full(buf, buf_size, from)) { dev_err(aat2870->dev, "Failed to copy from user\n"); return -EFAULT; } @@ -314,8 +312,8 @@ static ssize_t aat2870_reg_write_file(struct file *file, =20 static const struct file_operations aat2870_reg_fops =3D { .open =3D simple_open, - .read =3D aat2870_reg_read_file, - .write =3D aat2870_reg_write_file, + .read_iter =3D aat2870_reg_read_file, + .write_iter =3D aat2870_reg_write_file, }; =20 static void aat2870_init_debugfs(struct aat2870_data *aat2870) --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f52.google.com (mail-io1-f52.google.com [209.85.166.52]) (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 0432B1C1255 for ; Thu, 11 Apr 2024 15:37:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849880; cv=none; b=OcO5V2UvUnj9wacLZCMzobtZDY/+6ufjzjQ5v34WHhoPOW53YAZVPI+GM/dbC5+RJFXi3cF/tpzV7LSyLn/qdWawWM5TAPUnNT4HM1GrEzvcCur+kgLUK+JGOBkj2P2ZTDBw6ut7VLYxmOi6HHMw8wsDqLRtL+xTzZPSeGY4cTA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849880; c=relaxed/simple; bh=MWdx3rz/sc91IFygSSCDHGaPSdRdKiYNqKCQ44OvdrY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=C6VylRBexR5L0wpCyvgeTZydcdAs5CwoDbFelgNc0lGQ58giKAbM+L8cKCuh9OM+K17UpUZOAE7te1AekvIrFUGXEMUYg/efeXo4dOfm8UWa9ZOqmtWJChFLDITS/RUjwso1Qhz7INW1MxmM2Llgom1x/k0fRc/VxYKs9RJzUJY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=doNXXIkE; arc=none smtp.client-ip=209.85.166.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="doNXXIkE" Received: by mail-io1-f52.google.com with SMTP id ca18e2360f4ac-7d67d1073easo9829539f.0 for ; Thu, 11 Apr 2024 08:37:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849878; x=1713454678; 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=n97IIU2zaCdKoY8yB2Fau470KNN6tacDcLkGNstggiw=; b=doNXXIkE7FA2IUyI3/BIKnlLjR1tFOJHypamEOBiJ4sJ6MyGyns7155h5DFx6mkhFd YqhhpOvRxxeUKbShSxqEbaaHdDGnQgUWGUbH30bsRvvwUWwxFLl2FrGPAJz2Aa23RjSz teW82eFNKBAlN07bkoU6krO1Uo2rKxgW/dERN4VXu+o74Nmf3IJDdSSXp645KnrXGFCN GKySDEQp6IaQaYoFe01bfkWJ4XV2Ee5mYhQ91BwlJLBC0RuCashrt9MQssh9u0j/vmk7 zJxU4AGJXc6TWLZ9AhwjOcqRDjpQzUhgQBV6GCeMbeYtypLvlgJlcdkr2xmWwIEYokAp +Zbw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849878; x=1713454678; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=n97IIU2zaCdKoY8yB2Fau470KNN6tacDcLkGNstggiw=; b=nQ9lLmeGXNGz6nFjiEt0aiT8rGWuCB/O95tfHdXy2wWqRmVUgbNDpIg+LeG0waj/eS HWtEHDKli79QeExd488LPaRJdve5j/CJKgFTnvAFkH0USGSCjgczKUh54VGMh9AdUr6Z BaexkNjqtt1ZeFo4ZZQ3dAe+4nmUiftb25lDbSWAm9ArEbRipDIirB3jcdd5cU/zDrAa mydx1Rc8hafMkfabcD9JpUtZ81+XBj0Ludh3WLiRSP/LIQSBJ6BFJB1zcgzMUvHpg2r2 7T9AmLi53LvqAmbz2n7/N6RyAB2B45Z1BzRysfBNOYgQ62yqCTbqF+mezSEM6qliU1cU Ycng== X-Gm-Message-State: AOJu0YwZDkl3jiKHr7Usk5P+izTsx99zFg7G3MIu8RkSCe8O2ULJXnFb alCLeaUSCht2iWK/I2rjHZPQbuDnZnPznrTPEi8cwONguZZbMXYQW1o2rIXNls8jTeo/qkV0Gif J X-Google-Smtp-Source: AGHT+IEEt7GpWqA55B96X34ugI8NwzS71hc8dTUzlAD24YEBQal9bya9EZfArtI2kAzT2mgGpC4vww== X-Received: by 2002:a6b:c34e:0:b0:7d6:7b7c:8257 with SMTP id t75-20020a6bc34e000000b007d67b7c8257mr223226iof.0.1712849877852; Thu, 11 Apr 2024 08:37:57 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.37.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:37:56 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 226/437] drivers/misc/mei: convert to read/write iterators Date: Thu, 11 Apr 2024 09:16:06 -0600 Message-ID: <20240411153126.16201-227-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/misc/mei/main.c | 53 ++++++++++++++++++----------------------- 1 file changed, 23 insertions(+), 30 deletions(-) diff --git a/drivers/misc/mei/main.c b/drivers/misc/mei/main.c index 79e6f3c1341f..2bab5b317b99 100644 --- a/drivers/misc/mei/main.c +++ b/drivers/misc/mei/main.c @@ -159,20 +159,19 @@ static int mei_release(struct inode *inode, struct fi= le *file) /** * mei_read - the read function. * - * @file: pointer to file structure - * @ubuf: pointer to user buffer - * @length: buffer length - * @offset: data offset in buffer + * @iocb: metadata for IO + * @to: pointer to user buffer * * Return: >=3D0 data length on success , <0 on error */ -static ssize_t mei_read(struct file *file, char __user *ubuf, - size_t length, loff_t *offset) +static ssize_t mei_read(struct kiocb *iocb, struct iov_iter *to) { + struct file *file =3D iocb->ki_filp; struct mei_cl *cl =3D file->private_data; struct mei_device *dev; struct mei_cl_cb *cb =3D NULL; - bool nonblock =3D !!(file->f_flags & O_NONBLOCK); + bool nonblock =3D !!(iocb->ki_filp->f_flags & O_NONBLOCK); + size_t length =3D iov_iter_count(to); ssize_t rets; =20 if (WARN_ON(!cl || !cl->dev)) @@ -192,17 +191,12 @@ static ssize_t mei_read(struct file *file, char __use= r *ubuf, goto out; } =20 - if (ubuf =3D=3D NULL) { - rets =3D -EMSGSIZE; - goto out; - } - cb =3D mei_cl_read_cb(cl, file); if (cb) goto copy_buffer; =20 - if (*offset > 0) - *offset =3D 0; + if (iocb->ki_pos > 0) + iocb->ki_pos =3D 0; =20 rets =3D mei_cl_read_start(cl, length, file); if (rets && rets !=3D -EBUSY) { @@ -245,31 +239,31 @@ static ssize_t mei_read(struct file *file, char __use= r *ubuf, } =20 cl_dbg(dev, cl, "buf.size =3D %zu buf.idx =3D %zu offset =3D %lld\n", - cb->buf.size, cb->buf_idx, *offset); - if (*offset >=3D cb->buf_idx) { + cb->buf.size, cb->buf_idx, iocb->ki_pos); + if (iocb->ki_pos >=3D cb->buf_idx) { rets =3D 0; goto free; } =20 /* length is being truncated to PAGE_SIZE, * however buf_idx may point beyond that */ - length =3D min_t(size_t, length, cb->buf_idx - *offset); + length =3D min_t(size_t, length, cb->buf_idx - iocb->ki_pos); =20 - if (copy_to_user(ubuf, cb->buf.data + *offset, length)) { + if (!copy_to_iter(cb->buf.data + iocb->ki_pos, length, to)) { dev_dbg(dev->dev, "failed to copy data to userland\n"); rets =3D -EFAULT; goto free; } =20 rets =3D length; - *offset +=3D length; + iocb->ki_pos +=3D length; /* not all data was read, keep the cb */ - if (*offset < cb->buf_idx) + if (iocb->ki_pos < cb->buf_idx) goto out; =20 free: mei_cl_del_rd_completed(cl, cb); - *offset =3D 0; + iocb->ki_pos =3D 0; =20 out: cl_dbg(dev, cl, "end mei read rets =3D %zd\n", rets); @@ -301,17 +295,16 @@ static u8 mei_cl_vtag_by_fp(const struct mei_cl *cl, = const struct file *fp) /** * mei_write - the write function. * - * @file: pointer to file structure - * @ubuf: pointer to user buffer - * @length: buffer length - * @offset: data offset in buffer + * @iocb: metadata for IO + * @from: pointer to user buffer * * Return: >=3D0 data length on success , <0 on error */ -static ssize_t mei_write(struct file *file, const char __user *ubuf, - size_t length, loff_t *offset) +static ssize_t mei_write(struct kiocb *iocb, struct iov_iter *from) { + struct file *file =3D iocb->ki_filp; struct mei_cl *cl =3D file->private_data; + size_t length =3D iov_iter_count(from); struct mei_cl_cb *cb; struct mei_device *dev; ssize_t rets; @@ -377,7 +370,7 @@ static ssize_t mei_write(struct file *file, const char = __user *ubuf, } cb->vtag =3D mei_cl_vtag_by_fp(cl, file); =20 - rets =3D copy_from_user(cb->buf.data, ubuf, length); + rets =3D !copy_from_iter_full(cb->buf.data, length, from); if (rets) { dev_dbg(dev->dev, "failed to copy data from userland\n"); rets =3D -EFAULT; @@ -1167,12 +1160,12 @@ ATTRIBUTE_GROUPS(mei); */ static const struct file_operations mei_fops =3D { .owner =3D THIS_MODULE, - .read =3D mei_read, + .read_iter =3D mei_read, .unlocked_ioctl =3D mei_ioctl, .compat_ioctl =3D compat_ptr_ioctl, .open =3D mei_open, .release =3D mei_release, - .write =3D mei_write, + .write_iter =3D mei_write, .poll =3D mei_poll, .fsync =3D mei_fsync, .fasync =3D mei_fasync, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f44.google.com (mail-io1-f44.google.com [209.85.166.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 CD3081C1AE6 for ; Thu, 11 Apr 2024 15:38:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849882; cv=none; b=Rba1FCcJSM2LfqXIh5gyjB92huD7Z1W67kFTTTBCpyr6sgUKBqPexuokyOolRbBftEsNgHflnLtMUCnEUtR2IBW7i2IUzVpeC9PCYWuA6H2OS+Gs4FFjW/sc6T9I31BOPT7INZ/iCljg/jv7fDzE0g2vEcQPpRIWoPRVp6dnH6Y= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849882; c=relaxed/simple; bh=6X6jAKa3dWU3lq3ru8ux95v8OJLf7IzSdNHkXzZB8OE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=tBOnAXkXxHI7qb5pO/xIehxO1rXRFQIhV+yaDYbIAf4RxaVNy00FPXrvni0GUuWkeRPSXIZA69x0+K42uNQ4q6+SlpHsn5fzxWUVZvpWv/7jAWu9Kpl7WOd8tKZxQYwuBUUqUEe04ie8+n9R9RvySz4VZp9Hi+Un2cczzc3fVDo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=x1tJ53kN; arc=none smtp.client-ip=209.85.166.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="x1tJ53kN" Received: by mail-io1-f44.google.com with SMTP id ca18e2360f4ac-7d67d1073easo9830239f.0 for ; Thu, 11 Apr 2024 08:38:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849879; x=1713454679; 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=c8tWM1HuHPpRlDt3cdCZk4Rq3a8/t27j4pr9RvVTiQw=; b=x1tJ53kNOkdfmhpAh3hFLz4VrevEvyFGYp47wU9Xq4V723wpRkiPDJAhX1dIZOUfSv mgwsxnzBsqXSBsjBLnKcwa0Dtc1zkTKKkjA75d3cOAH2HpLZwRdrZKbqr69hjrX+6Hhn Jd7/X7vgci56z3hkQHpE9vlPv/sYIb3onCfqWqMTZJW0jf/w4qT+VcjUWE1E5piK3irm ewRtA0bjlgnSXrm/mjhhMWQLsFnQEZz0CjkmAM0Nz4mObYMfclKop0u8I/dh13hXvcVd 04r5NhDbMNsUqVHVwamO9ts5Q56IRaam7c2nG54A8b6L+zb25AEGjDR9IwgLyV771N3H 2OBw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849879; x=1713454679; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=c8tWM1HuHPpRlDt3cdCZk4Rq3a8/t27j4pr9RvVTiQw=; b=RFBds3HotLAbrvJpysytukgZPe/zfV/OcQc00ZzwS+R3TzESKSbsnFmBZRXH1ngK0W peeooIHUgm9pJfkPDvn5BZrCiNsqg4kC4UfsTG3NOYwCcmD6c5zpnnd9fvXPImVGTG7D JEiJv62vzNQ6+hWG19kAOgTwF2/9CtqaT33aWjwbOOSscLk3tqsVZz22+PYdqvGcbrSZ d8Tfxr2TTf6X0p4muNEGtG7L0odWUyw76sYMZKUbWji6Pec35si2IjJ32Tcyg2MGKDOO qZ326pXO+DV0o2zD81kyf6Q7kDdxHRNkUEolutjNCIHnkKdE61W46hGpwmeUnh2mF4HB ASMQ== X-Gm-Message-State: AOJu0YzzbgkSciDrsr0n+tOR9gfAV0HNmIPH8raSGPBrBuSjmXjc5ozK 5nO+7W4WyxbdCgXczsvMZ/YzNDntGnN/YzqbMsik6rPAPM3SXbf4EbJ3E6lWyPrqMlSQKAscf19 3 X-Google-Smtp-Source: AGHT+IHMkSCiCyAQ43i3rGFmnOms9FbdSB+Lgec75jE2V21MxYMsWwTg2GqPaKFenYH199gPJkWELw== X-Received: by 2002:a05:6602:84:b0:7d6:9d75:6de2 with SMTP id h4-20020a056602008400b007d69d756de2mr46000iob.2.1712849879651; Thu, 11 Apr 2024 08:37:59 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.37.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:37:58 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 227/437] misc: ibmasm: convert to read/write iterators Date: Thu, 11 Apr 2024 09:16:07 -0600 Message-ID: <20240411153126.16201-228-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/misc/ibmasm/ibmasmfs.c | 94 ++++++++++++++++++---------------- 1 file changed, 50 insertions(+), 44 deletions(-) diff --git a/drivers/misc/ibmasm/ibmasmfs.c b/drivers/misc/ibmasm/ibmasmfs.c index c44de892a61e..8f7ea4214d20 100644 --- a/drivers/misc/ibmasm/ibmasmfs.c +++ b/drivers/misc/ibmasm/ibmasmfs.c @@ -256,18 +256,19 @@ static int command_file_close(struct inode *inode, st= ruct file *file) return 0; } =20 -static ssize_t command_file_read(struct file *file, char __user *buf, size= _t count, loff_t *offset) +static ssize_t command_file_read(struct kiocb *iocb, struct iov_iter *to) { - struct ibmasmfs_command_data *command_data =3D file->private_data; + struct ibmasmfs_command_data *command_data =3D iocb->ki_filp->private_dat= a; + size_t count =3D iov_iter_count(to); struct command *cmd; int len; unsigned long flags; =20 - if (*offset < 0) + if (iocb->ki_pos < 0) return -EINVAL; if (count =3D=3D 0 || count > IBMASM_CMD_MAX_BUFFER_SIZE) return 0; - if (*offset !=3D 0) + if (iocb->ki_pos !=3D 0) return 0; =20 spin_lock_irqsave(&command_data->sp->lock, flags); @@ -284,7 +285,7 @@ static ssize_t command_file_read(struct file *file, cha= r __user *buf, size_t cou return -EIO; } len =3D min(count, cmd->buffer_size); - if (copy_to_user(buf, cmd->buffer, len)) { + if (!copy_to_iter_full(cmd->buffer, len, to)) { command_put(cmd); return -EFAULT; } @@ -293,17 +294,18 @@ static ssize_t command_file_read(struct file *file, c= har __user *buf, size_t cou return len; } =20 -static ssize_t command_file_write(struct file *file, const char __user *ub= uff, size_t count, loff_t *offset) +static ssize_t command_file_write(struct kiocb *iocb, struct iov_iter *fro= m) { - struct ibmasmfs_command_data *command_data =3D file->private_data; + struct ibmasmfs_command_data *command_data =3D iocb->ki_filp->private_dat= a; + size_t count =3D iov_iter_count(from); struct command *cmd; unsigned long flags; =20 - if (*offset < 0) + if (iocb->ki_pos < 0) return -EINVAL; if (count =3D=3D 0 || count > IBMASM_CMD_MAX_BUFFER_SIZE) return 0; - if (*offset !=3D 0) + if (iocb->ki_pos !=3D 0) return 0; =20 /* commands are executed sequentially, only one command at a time */ @@ -314,7 +316,7 @@ static ssize_t command_file_write(struct file *file, co= nst char __user *ubuff, s if (!cmd) return -ENOMEM; =20 - if (copy_from_user(cmd->buffer, ubuff, count)) { + if (!copy_from_iter_full(cmd->buffer, count, from)) { command_put(cmd); return -EFAULT; } @@ -365,19 +367,20 @@ static int event_file_close(struct inode *inode, stru= ct file *file) return 0; } =20 -static ssize_t event_file_read(struct file *file, char __user *buf, size_t= count, loff_t *offset) +static ssize_t event_file_read(struct kiocb *iocb, struct iov_iter *to) { - struct ibmasmfs_event_data *event_data =3D file->private_data; + struct ibmasmfs_event_data *event_data =3D iocb->ki_filp->private_data; struct event_reader *reader =3D &event_data->reader; struct service_processor *sp =3D event_data->sp; + size_t count =3D iov_iter_count(to); int ret; unsigned long flags; =20 - if (*offset < 0) + if (iocb->ki_pos < 0) return -EINVAL; if (count =3D=3D 0 || count > IBMASM_EVENT_MAX_SIZE) return 0; - if (*offset !=3D 0) + if (iocb->ki_pos !=3D 0) return 0; =20 spin_lock_irqsave(&sp->lock, flags); @@ -397,7 +400,7 @@ static ssize_t event_file_read(struct file *file, char = __user *buf, size_t count goto out; } =20 - if (copy_to_user(buf, reader->data, reader->data_size)) { + if (!copy_to_iter_full(reader->data, reader->data_size, to)) { ret =3D -EFAULT; goto out; } @@ -408,15 +411,16 @@ static ssize_t event_file_read(struct file *file, cha= r __user *buf, size_t count return ret; } =20 -static ssize_t event_file_write(struct file *file, const char __user *buf,= size_t count, loff_t *offset) +static ssize_t event_file_write(struct kiocb *iocb, struct iov_iter *from) { - struct ibmasmfs_event_data *event_data =3D file->private_data; + struct ibmasmfs_event_data *event_data =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); =20 - if (*offset < 0) + if (iocb->ki_pos < 0) return -EINVAL; if (count !=3D 1) return 0; - if (*offset !=3D 0) + if (iocb->ki_pos !=3D 0) return 0; =20 ibmasm_cancel_next_event(&event_data->reader); @@ -449,17 +453,18 @@ static int r_heartbeat_file_close(struct inode *inode= , struct file *file) return 0; } =20 -static ssize_t r_heartbeat_file_read(struct file *file, char __user *buf, = size_t count, loff_t *offset) +static ssize_t r_heartbeat_file_read(struct kiocb *iocb, struct iov_iter *= to) { - struct ibmasmfs_heartbeat_data *rhbeat =3D file->private_data; + struct ibmasmfs_heartbeat_data *rhbeat =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(to); unsigned long flags; int result; =20 - if (*offset < 0) + if (iocb->ki_pos < 0) return -EINVAL; if (count =3D=3D 0 || count > 1024) return 0; - if (*offset !=3D 0) + if (iocb->ki_pos !=3D 0) return 0; =20 /* allow only one reverse heartbeat per process */ @@ -477,15 +482,16 @@ static ssize_t r_heartbeat_file_read(struct file *fil= e, char __user *buf, size_t return result; } =20 -static ssize_t r_heartbeat_file_write(struct file *file, const char __user= *buf, size_t count, loff_t *offset) +static ssize_t r_heartbeat_file_write(struct kiocb *iocb, struct iov_iter = *from) { - struct ibmasmfs_heartbeat_data *rhbeat =3D file->private_data; + struct ibmasmfs_heartbeat_data *rhbeat =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); =20 - if (*offset < 0) + if (iocb->ki_pos < 0) return -EINVAL; if (count !=3D 1) return 0; - if (*offset !=3D 0) + if (iocb->ki_pos !=3D 0) return 0; =20 if (rhbeat->active) @@ -499,9 +505,9 @@ static int remote_settings_file_close(struct inode *ino= de, struct file *file) return 0; } =20 -static ssize_t remote_settings_file_read(struct file *file, char __user *b= uf, size_t count, loff_t *offset) +static ssize_t remote_settings_file_read(struct kiocb *iocb, struct iov_it= er *to) { - void __iomem *address =3D (void __iomem *)file->private_data; + void __iomem *address =3D (void __iomem *)iocb->ki_filp->private_data; int len =3D 0; unsigned int value; char lbuf[20]; @@ -509,28 +515,28 @@ static ssize_t remote_settings_file_read(struct file = *file, char __user *buf, si value =3D readl(address); len =3D snprintf(lbuf, sizeof(lbuf), "%d\n", value); =20 - return simple_read_from_buffer(buf, count, offset, lbuf, len); + return simple_copy_to_iter(lbuf, &iocb->ki_pos, len, to); } =20 -static ssize_t remote_settings_file_write(struct file *file, const char __= user *ubuff, size_t count, loff_t *offset) +static ssize_t remote_settings_file_write(struct kiocb *iocb, struct iov_i= ter *from) { - void __iomem *address =3D (void __iomem *)file->private_data; + void __iomem *address =3D (void __iomem *)iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); char *buff; unsigned int value; =20 - if (*offset < 0) + if (iocb->ki_pos < 0) return -EINVAL; if (count =3D=3D 0 || count > 1024) return 0; - if (*offset !=3D 0) + if (iocb->ki_pos !=3D 0) return 0; =20 buff =3D kzalloc (count + 1, GFP_KERNEL); if (!buff) return -ENOMEM; =20 - - if (copy_from_user(buff, ubuff, count)) { + if (!copy_from_iter_full(buff, count, from)) { kfree(buff); return -EFAULT; } @@ -545,32 +551,32 @@ static ssize_t remote_settings_file_write(struct file= *file, const char __user * static const struct file_operations command_fops =3D { .open =3D command_file_open, .release =3D command_file_close, - .read =3D command_file_read, - .write =3D command_file_write, + .read_iter =3D command_file_read, + .write_iter =3D command_file_write, .llseek =3D generic_file_llseek, }; =20 static const struct file_operations event_fops =3D { .open =3D event_file_open, .release =3D event_file_close, - .read =3D event_file_read, - .write =3D event_file_write, + .read_iter =3D event_file_read, + .write_iter =3D event_file_write, .llseek =3D generic_file_llseek, }; =20 static const struct file_operations r_heartbeat_fops =3D { .open =3D r_heartbeat_file_open, .release =3D r_heartbeat_file_close, - .read =3D r_heartbeat_file_read, - .write =3D r_heartbeat_file_write, + .read_iter =3D r_heartbeat_file_read, + .write_iter =3D r_heartbeat_file_write, .llseek =3D generic_file_llseek, }; =20 static const struct file_operations remote_settings_fops =3D { .open =3D simple_open, .release =3D remote_settings_file_close, - .read =3D remote_settings_file_read, - .write =3D remote_settings_file_write, + .read_iter =3D remote_settings_file_read, + .write_iter =3D remote_settings_file_write, .llseek =3D generic_file_llseek, }; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f54.google.com (mail-io1-f54.google.com [209.85.166.54]) (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 9485F1C1B1C for ; Thu, 11 Apr 2024 15:38:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849883; cv=none; b=TLqYQVOeb6EYdYPYGGdHRt22Bz1H6wwmN6hoHrPI6PXG6ZY5z1hoiT/U4GhmMhzut0wqjalGFRVIHIQdsm+aaOA5NE2yQ433hg+whx/OmGx9qCREkwkSICaw6LwlsIhHwVLvN/wxu06NqLGiCNQGX8jeklv8zWZ8Q6j86dVUJhw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849883; c=relaxed/simple; bh=mYl5XN2Q12i1GShXzHmxni38VagWFUolvBXdQvo6NdQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=MpwctQohZYb+RpmvZ0Up2IcwdFC/e+S04Sgwp0n8L7H/3m7ddprjHj/N6YTW3xqRsQ0XOAZdNI0TWSQy+WzQ2EHKoEhTlv3Bly3IAgG/aVbseO038+0gBVqhQuXKp5jq8Q/A/jQ9foMhPFpBHmSeaLgKg2W1KLF2gauCv16GVdw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=beUsZ5f4; arc=none smtp.client-ip=209.85.166.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="beUsZ5f4" Received: by mail-io1-f54.google.com with SMTP id ca18e2360f4ac-7c8e4c0412dso69612939f.1 for ; Thu, 11 Apr 2024 08:38:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849881; x=1713454681; 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=4jOOzNnHmJV0Fu/jL3HQdbehM157IGkalVPtNhVpP6k=; b=beUsZ5f4HaSYmGZ6byTqSwdqTYN0IUyu8fMQljxaWJZh3vWTXkG/eDgbXuc+qxrvXr ptjtbYzoJedcCTDCJhcb1dvasuucErASKFeKf+o9ljj4OfiZvRbRYKmtoufJpArEFE/D VujwwgEqmpCg2qWqfzGlZRQizR8th3JMprfBsL5G9HeQXbrrA4Qkb5s0U9Gw3nxYEHso kMR/UtSSXtrbcgteB1g7/N90LrXKUEkpCLW5hqL8r28fDzpWeMX8sqB61nQ8YiTGbckj lKjy7Hw18Od+Q+KKqYLtS41YUn6l0bJ+vIOU0If/0HpWyfIxj/Gsq0U73IkDjur6ZT5X aBZw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849881; x=1713454681; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=4jOOzNnHmJV0Fu/jL3HQdbehM157IGkalVPtNhVpP6k=; b=Wk0sEJZrwK42vlWZ3zQ7mrjfP+N1UjajQ1zzV+bD6rxoV/1vtv/cwrX8rG9nAGeIEd gu9I/AR8928OV0vPA6zvD5gm+kJn9G02F+HCApcvn8F1P9gjJ1NbGGNIGKNO8qGAJmpq XP84qlNn86v+tMXFqDmaKLfgt9HHG1tLjXygumk8nTcbk62M7c+eAhuuSaV+2up9WVwo kEwiem3OOKWchqjKw+4llyVNAWrE0ltErU8f63uLCc4xdp+l6kkH9zIHQ22LTlDdZmTT XxHemkjGBjmN+9HJo4QO/9bhzLAuCMzCC9Zi4UV9S/0293EBxF3tJRuyBRjz6lcoaij9 SLAw== X-Gm-Message-State: AOJu0YytpejSodRi0ZBjEvBUy+UoDe7gVnXeP9muZ/Y9kufxdDcrC5wV 2CWZUQ77Ac1fU6y1jffnd/MMmeFdEAWdHvnhwO8eSkrOBlnzlIG2kdbWhLf6AajORkXzTOW9qC5 F X-Google-Smtp-Source: AGHT+IGlR1p56kEdU8dyVq4RHJtB5RWJIu3PnVaVc0rf4t53SGUVPOHPkpHnRNc/JWTmDhdDwwkOYw== X-Received: by 2002:a6b:7b05:0:b0:7d6:60dc:bc8e with SMTP id l5-20020a6b7b05000000b007d660dcbc8emr197747iop.1.1712849881443; Thu, 11 Apr 2024 08:38:01 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.37.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:37:59 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 228/437] drivers/spi: convert to read/write iterators Date: Thu, 11 Apr 2024 09:16:08 -0600 Message-ID: <20240411153126.16201-229-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/spi/spidev.c | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/drivers/spi/spidev.c b/drivers/spi/spidev.c index 95fb5f1c91c1..1b5e13492b4d 100644 --- a/drivers/spi/spidev.c +++ b/drivers/spi/spidev.c @@ -154,27 +154,28 @@ spidev_sync_read(struct spidev_data *spidev, size_t l= en) =20 /* Read-only message with current device setup */ static ssize_t -spidev_read(struct file *filp, char __user *buf, size_t count, loff_t *f_p= os) +spidev_read(struct kiocb *iocb, struct iov_iter *to) { struct spidev_data *spidev; ssize_t status; + size_t count =3D iov_iter_count(to); =20 /* chipselect only toggles at start or end of operation */ if (count > bufsiz) return -EMSGSIZE; =20 - spidev =3D filp->private_data; + spidev =3D iocb->ki_filp->private_data; =20 mutex_lock(&spidev->buf_lock); status =3D spidev_sync_read(spidev, count); if (status > 0) { - unsigned long missing; + unsigned long copied; =20 - missing =3D copy_to_user(buf, spidev->rx_buffer, status); - if (missing =3D=3D status) + copied =3D copy_to_iter(spidev->rx_buffer, status, to); + if (!copied) status =3D -EFAULT; else - status =3D status - missing; + status =3D status - copied; } mutex_unlock(&spidev->buf_lock); =20 @@ -183,25 +184,25 @@ spidev_read(struct file *filp, char __user *buf, size= _t count, loff_t *f_pos) =20 /* Write-only message with current device setup */ static ssize_t -spidev_write(struct file *filp, const char __user *buf, - size_t count, loff_t *f_pos) +spidev_write(struct kiocb *iocb, struct iov_iter *from) { struct spidev_data *spidev; ssize_t status; - unsigned long missing; + unsigned long copied; + size_t count =3D iov_iter_count(from); =20 /* chipselect only toggles at start or end of operation */ if (count > bufsiz) return -EMSGSIZE; =20 - spidev =3D filp->private_data; + spidev =3D iocb->ki_filp->private_data; =20 mutex_lock(&spidev->buf_lock); - missing =3D copy_from_user(spidev->tx_buffer, buf, count); - if (missing =3D=3D 0) - status =3D spidev_sync_write(spidev, count); - else + copied =3D copy_from_iter(spidev->tx_buffer, count, from); + if (copied =3D=3D 0) status =3D -EFAULT; + else + status =3D spidev_sync_write(spidev, count); mutex_unlock(&spidev->buf_lock); =20 return status; @@ -679,8 +680,8 @@ static const struct file_operations spidev_fops =3D { * gets more complete API coverage. It'll simplify things * too, except for the locking. */ - .write =3D spidev_write, - .read =3D spidev_read, + .write_iter =3D spidev_write, + .read_iter =3D spidev_read, .unlocked_ioctl =3D spidev_ioctl, .compat_ioctl =3D spidev_compat_ioctl, .open =3D spidev_open, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f48.google.com (mail-io1-f48.google.com [209.85.166.48]) (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 DE8801C2FD1 for ; Thu, 11 Apr 2024 15:38:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849886; cv=none; b=ig3eyuB4WCvs5q083Yah+M1zS4lJLIslKzLzQrI66QguC3E+2tPfCilzrQD7FQwVw32TG8fStqHh/+fUZcbJgjsOSoo12Tvpcs+DGmLCmUTW8N593c039IwBu7U+5UMBTxI7T0vzFrvO2+Iu14AOYCUMDonTTDdJQzZO+b2uJh8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849886; c=relaxed/simple; bh=v8C/lvedvI6wXG2vqxwSCKy1AMIR477ttE6+t9PHQKo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=VtNx023k9F2QN44kGH8JXnhvPwqZ3emB/k/7zixQnZJOTXtoZ2WSE6IRPHM8HJllN9RJPc3YbF8PMRuv+xVfvs9kOsYaLvMEXO89kR3A8qLjVVJ0unt0eulUMrVDOrfFAHJ53MIwcGkfVUBEfPrtXby0EWA6C110vZqBkEzLHTw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=qzoRC7x6; arc=none smtp.client-ip=209.85.166.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="qzoRC7x6" Received: by mail-io1-f48.google.com with SMTP id ca18e2360f4ac-7d6112ba6baso58119239f.1 for ; Thu, 11 Apr 2024 08:38:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849883; x=1713454683; 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=AaoK8FTbbHnEwz1cy7WsiiIGpGZVFO82Tn20A2e7QqE=; b=qzoRC7x6F5GixRMGzv7OjufYiiBg2ouUeVd75CSYIL6n3MewBm3NIYU27lfOZLY9Fn +R3IB9/8YP+qTkShWQ7T7GdexxjxDHIxKdy/DapZdzB8/udWfslj9vB5v6bRF/EIPBht fFJpaISvtvMP3r9q79XrdQhNAleU2602DZbZoW8GThKRah0Bfg+eHwbJbgClPyRFPJht kcGECPnPhhiFuFmeIBXNqDaPmd+zaws170yN8zPftEASMRFsBIZSx/XpirnCV8/ooRud fxZW+OhsGxVfDvZq6Gqe75ZtHMND8lysiaYGZBx/a8yJx7JoAI8H/G2qlEBDdWocxH7N Y4Gw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849883; x=1713454683; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=AaoK8FTbbHnEwz1cy7WsiiIGpGZVFO82Tn20A2e7QqE=; b=aiqYOTZERcMzGTwo4ip6PCL9gSt+Benoryud8MMcXco46CeL1dA3D862d+KcRHqY4r xGL7IYuCvI4EW9fCCSDIZ+cZOxtAr9XLXxXkx1QisqAkXxAt07BbQhjs1wtUIokECzdh sdmCM1uYMacUkBV2blhtkOskXCwl8BiIFA5khLGD44yLVCOA9dxzTyEsLFHnnSqq3hMj 1S5MX4uhtfZmCiFkTHdI5XJLeAC6KItFuqUisr9gHl9ygJA9IPmwEm3rdeW/KSt1EUOf 0eQcUbBGhV2hULJS/on51kbScxLPDm6pcsgfxVecfoZ9bV7Z1+wRwPkLwAufc1w2obQM cvng== X-Gm-Message-State: AOJu0YyowwTkOTHvZT1ePBzf3RMX6fOWq/hIPN7/iJBTiceWTTS09n2/ nsA31UjgAEOsisCQS5KUdcVqVJdPgVblDfauvh9mzBsbeha/omiJCnPN8pZrQTbxVEPmPHkWDq6 K X-Google-Smtp-Source: AGHT+IEbPn05+VYqd8pmO3GqN7HdKihwl2X6Tdn6pmFycduls/9U2b0zQiJfOzAHSrunkkGw8wz5cQ== X-Received: by 2002:a6b:f312:0:b0:7d5:de23:13a9 with SMTP id m18-20020a6bf312000000b007d5de2313a9mr166641ioh.1.1712849883197; Thu, 11 Apr 2024 08:38:03 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.38.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:38:01 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 229/437] drivers/nfc: convert to read/write iterators Date: Thu, 11 Apr 2024 09:16:09 -0600 Message-ID: <20240411153126.16201-230-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/nfc/virtual_ncidev.c | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/drivers/nfc/virtual_ncidev.c b/drivers/nfc/virtual_ncidev.c index 590b038e449e..59c75de758d7 100644 --- a/drivers/nfc/virtual_ncidev.c +++ b/drivers/nfc/virtual_ncidev.c @@ -79,10 +79,10 @@ static const struct nci_ops virtual_nci_ops =3D { .send =3D virtual_nci_send }; =20 -static ssize_t virtual_ncidev_read(struct file *file, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t virtual_ncidev_read(struct kiocb *iocb, struct iov_iter *to) { - struct virtual_nci_dev *vdev =3D file->private_data; + struct virtual_nci_dev *vdev =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(to); size_t actual_len; =20 mutex_lock(&vdev->mtx); @@ -95,7 +95,7 @@ static ssize_t virtual_ncidev_read(struct file *file, cha= r __user *buf, =20 actual_len =3D min_t(size_t, count, vdev->send_buff->len); =20 - if (copy_to_user(buf, vdev->send_buff->data, actual_len)) { + if (!copy_to_iter_full(vdev->send_buff->data, actual_len, to)) { mutex_unlock(&vdev->mtx); return -EFAULT; } @@ -110,18 +110,17 @@ static ssize_t virtual_ncidev_read(struct file *file,= char __user *buf, return actual_len; } =20 -static ssize_t virtual_ncidev_write(struct file *file, - const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t virtual_ncidev_write(struct kiocb *iocb, struct iov_iter *f= rom) { - struct virtual_nci_dev *vdev =3D file->private_data; + struct virtual_nci_dev *vdev =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); struct sk_buff *skb; =20 skb =3D alloc_skb(count, GFP_KERNEL); if (!skb) return -ENOMEM; =20 - if (copy_from_user(skb_put(skb, count), buf, count)) { + if (!copy_from_iter_full(skb_put(skb, count), count, from)) { kfree_skb(skb); return -EFAULT; } @@ -191,8 +190,8 @@ static long virtual_ncidev_ioctl(struct file *file, uns= igned int cmd, =20 static const struct file_operations virtual_ncidev_fops =3D { .owner =3D THIS_MODULE, - .read =3D virtual_ncidev_read, - .write =3D virtual_ncidev_write, + .read_iter =3D virtual_ncidev_read, + .write_iter =3D virtual_ncidev_write, .open =3D virtual_ncidev_open, .release =3D virtual_ncidev_close, .unlocked_ioctl =3D virtual_ncidev_ioctl --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f49.google.com (mail-io1-f49.google.com [209.85.166.49]) (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 475BC1C2FD7 for ; Thu, 11 Apr 2024 15:38:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849886; cv=none; b=pCgAB2cdShGbt7CTXN1NOcwikU1f/EsqVabNOWPe06u7+OkdY/ONciaPveqRDpWrEb8DTnhaAdPFoAmY8fgxHoL6bkZkKsgzDcKOpmawVq/VDKRPRooWGAoXq75asbM8jftNyEvfYtF0/nYTp0djB4ioO7J7s/YcXn3iah32Lug= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849886; c=relaxed/simple; bh=4JJm/KkWl0SukclIW9s5cbvCHsQQU5brbMVnKTM3pFQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=L1GVul9fTYKB4HwWDeg2SM9rccXNIdQjv/jINnMOzpkL0YcFhFuhVejuYG+6SLMSXhdECrT443YYWlHGRZobz0b5SVC7zoZKJ67In3+pQAQfE3Ym/7b/NZ9cyWJOcnOaW9USnkvvQ46AawFHwxFeZHFUXZmkN7Q2lN5exHRDfK0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=unaqoQ3s; arc=none smtp.client-ip=209.85.166.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="unaqoQ3s" Received: by mail-io1-f49.google.com with SMTP id ca18e2360f4ac-7d6812b37a6so8985139f.0 for ; Thu, 11 Apr 2024 08:38:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849884; x=1713454684; 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=WsVADeoU1kD62gaq96AoIhBA124QCFXfr0s9DkU4GEs=; b=unaqoQ3sdM41LPBN5EX/frsCxxzA+23eZyMYJx/IWmdm9yhsrNaOA5p7j/jfaxV7dp uKXvSCph7eE7jFcgEK2Uwwht72u000mxgoeCKSULlySr1R8rtLodiJ3QmsbNqiaagVET wWgExgVgS4EeTffGX2dYa4Ur2/Hbh7gOyV6UQFS7hlM6tIziaRgec/0bz5/qb4TrE0Ef sD/ABSs48vCUnLzpOuMU+p6Gbpecw8BPmkAZf5+Sw12v1gFlZJrL4IUnOgZb7SOUKhQx huhnVPV8ckV+uvyzMtZTSAoTKMqhITHS1O1TG+xGzLDMapff4ZDl4w6XutGDBsATFQtk Hc5w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849884; x=1713454684; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=WsVADeoU1kD62gaq96AoIhBA124QCFXfr0s9DkU4GEs=; b=eeIDHFqM3iBDx2isuQbjO7rHckcl0ELcAJV47VdRW1ErM44Vizs1tEycpayIsc78hH OSGW3zKBfC2iKd0iczp99B8Z9DqMaKvTFZ/E7fM57mknj4cOcL8adrG+aKfaU3ym9FP6 gmZThq7/VXDscHLu4ZAlhY9FEGFSMkZje5j2b2DSA4Z6uxmwaLOxiH0dCPp3aZztsD0o 0CRzHfne41LLlEnfFKi5OxKFL76j0zKAZTlEbShPAY9s2eLMLyfDjZQB1uErAC97tosm asBfyxHJEgcGNbMiu/KW4LmCezJAWZXvmSjrcFrVenO/AB2/Rpe1va/0uBN4A8l/ZrpD h5EQ== X-Gm-Message-State: AOJu0YzdZJxuCYiVlTyIYqDffGNtXwiN96wgHy2W51sJzcGG1DlxQDTg qhxclUlFdiWzN4reaNjtpdetDVsxCx40X3xgCmntBR52fBi+K170DTtj5qZpFBgf1xqOw20Y/gr L X-Google-Smtp-Source: AGHT+IHDSpoAbZf1SRKbRPzle5GLUkotYkc6rMb00ZnzIGzvK1hgjO5I2IFY0xWDRDs4OHy+ev1LDQ== X-Received: by 2002:a5e:9907:0:b0:7d6:751f:192 with SMTP id t7-20020a5e9907000000b007d6751f0192mr185850ioj.2.1712849883882; Thu, 11 Apr 2024 08:38:03 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.38.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:38:03 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 230/437] drivers/nvme: convert to read/write iterators Date: Thu, 11 Apr 2024 09:16:10 -0600 Message-ID: <20240411153126.16201-231-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/nvme/host/fabrics.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/nvme/host/fabrics.c b/drivers/nvme/host/fabrics.c index 1f0ea1f32d22..6d0251cc4bf3 100644 --- a/drivers/nvme/host/fabrics.c +++ b/drivers/nvme/host/fabrics.c @@ -1326,10 +1326,10 @@ static const struct class nvmf_class =3D { static struct device *nvmf_device; static DEFINE_MUTEX(nvmf_dev_mutex); =20 -static ssize_t nvmf_dev_write(struct file *file, const char __user *ubuf, - size_t count, loff_t *pos) +static ssize_t nvmf_dev_write(struct kiocb *iocb, struct iov_iter *from) { - struct seq_file *seq_file =3D file->private_data; + struct seq_file *seq_file =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); struct nvme_ctrl *ctrl; const char *buf; int ret =3D 0; @@ -1337,7 +1337,7 @@ static ssize_t nvmf_dev_write(struct file *file, cons= t char __user *ubuf, if (count > PAGE_SIZE) return -ENOMEM; =20 - buf =3D memdup_user_nul(ubuf, count); + buf =3D iterdup_nul(from, count); if (IS_ERR(buf)) return PTR_ERR(buf); =20 @@ -1422,8 +1422,8 @@ static int nvmf_dev_release(struct inode *inode, stru= ct file *file) =20 static const struct file_operations nvmf_dev_fops =3D { .owner =3D THIS_MODULE, - .write =3D nvmf_dev_write, - .read =3D seq_read, + .write_iter =3D nvmf_dev_write, + .read_iter =3D seq_read_iter, .open =3D nvmf_dev_open, .release =3D nvmf_dev_release, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f49.google.com (mail-io1-f49.google.com [209.85.166.49]) (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 EFE731C2FF8 for ; Thu, 11 Apr 2024 15:38:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849888; cv=none; b=LoLpNe0NV0bQxddOtd73/eiCuN+F/6mCbQBSXyuKJ5nfZYePeoCCQAK3gSiBGoXvh/Jhu8ncoEhBeTtimo8DhF2r8qBa3xfCPC3mZBWyYhRI1IXwMx/Y25bpV+JRao4O5PtK9eWFlqks71kVC56y91luDHelDDfSVtMVdx5Gzzs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849888; c=relaxed/simple; bh=3yIpst5kLmXkwWBNErLf6OLJBGgyTE9txj7gnX4Igc4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=DG7q6f8TMfmdE2hue3X4FrnUKTDmxj3foYQ5ARXZXRusEuJBoVh5c05NcKF8y+YCm9toudl+FZtRmBdMqA6NS4dalS7D4lMncLUcAn8snrrpCbMqJY8yMDU63H0ahU2mPKr+3iSWKsc05THThcnnCqqVs8VwuDEP4JQG8h9h1vk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=IXEHDMDU; arc=none smtp.client-ip=209.85.166.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="IXEHDMDU" Received: by mail-io1-f49.google.com with SMTP id ca18e2360f4ac-7c8e4c0412dso69614339f.1 for ; Thu, 11 Apr 2024 08:38:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849886; x=1713454686; 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=peTjKRC6X+86PGwc2Q6phD2WDOs6FCjj6AMdXL0+48U=; b=IXEHDMDUR8RJNf41ZCgk+msfbysMztyKSrVgQtaDoAdzhF9RFLwWXkgcHa+qkJccxl GDyJm6fCyvJCHJ/MEaKKJkUmAhyqSNkGmuB0wBoWTnOCOI3W7jm0fui/LbhYmb1AXcKz 0c2I8nv6qOCtiDXSeCvwN2BYd/PbsxFqMsLHCmwaUP7/9qBff5JumfFnS/XeTKD/Pdx6 iWCqhypEHq6DD4jTR0jYMX/4rZH+FzP2bGINFT69LzOU90/45qorjPjCe0vav30UayhU CPO7Kizs9mWlu3/y25CzRwFz+oYuUAOjvagzs/W3lA6wdOCPK6JHQV5CV3N+9XBcIzrb Vn5A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849886; x=1713454686; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=peTjKRC6X+86PGwc2Q6phD2WDOs6FCjj6AMdXL0+48U=; b=GFlOwMCuxozq+jqDBsV5hzCvhjfRNanh3nCi9IjYo5d4OpaiOmRoMEqHwoJkvDbnsd sL9/DNBdIMO866caH7IWiOJIBwxqE/eeyOFaIIPWGgLIjoGRo0dijHgpgkgD7oJ3c4LB jLhwO4rsl9yh7mUMFohPXBisERdlksbFS2LfhpsCRt7IwGIAjQI+ZJtUA5LKhEi6TiiS 1jZvz1lCJ0vwBKl1ukQz4Cc+cf42+866VM7jvDzlp01mIzbYOPDKi7YrZ9eCGKDR7ekK 1UUfvzs0rBHrA2y98SPfE/E+t7uFJNHTuE7/NOs13Su0KyGaNoaZ8K3LT0IwJeT+5+Al 6yEA== X-Gm-Message-State: AOJu0YzOkGVjg2kA5JTW+D6hWZtbXKcL78+npH4F2gZiydw97MhVG3lW 0cJKos8Ybdx6moyZ02dpdJB3QQHWLbNKiGsknwsEeixiXZJSDVXqUK8xr59Sap7bIFhW+naMeIz U X-Google-Smtp-Source: AGHT+IFqzDhd4vpIbktVNX7vcPIZY1szCHLjxjvrGB3WL7sDNMtmXGBxcSQrlI5mUWavOEmQOGbQhw== X-Received: by 2002:a6b:7b05:0:b0:7d6:60dc:bc8e with SMTP id l5-20020a6b7b05000000b007d660dcbc8emr197945iop.1.1712849885904; Thu, 11 Apr 2024 08:38:05 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.38.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:38:04 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 231/437] drivers/firewire: convert to read/write iterators Date: Thu, 11 Apr 2024 09:16:11 -0600 Message-ID: <20240411153126.16201-232-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/firewire/core-cdev.c | 15 +++++++-------- drivers/firewire/nosy.c | 18 ++++++++---------- 2 files changed, 15 insertions(+), 18 deletions(-) diff --git a/drivers/firewire/core-cdev.c b/drivers/firewire/core-cdev.c index 6274b86eb943..ded5873c444b 100644 --- a/drivers/firewire/core-cdev.c +++ b/drivers/firewire/core-cdev.c @@ -301,9 +301,9 @@ static void queue_event(struct client *client, struct e= vent *event, wake_up_interruptible(&client->wait); } =20 -static int dequeue_event(struct client *client, - char __user *buffer, size_t count) +static int dequeue_event(struct client *client, struct iov_iter *to) { + size_t count =3D iov_iter_count(to); struct event *event; size_t size, total; int i, ret; @@ -326,7 +326,7 @@ static int dequeue_event(struct client *client, total =3D 0; for (i =3D 0; i < ARRAY_SIZE(event->v) && total < count; i++) { size =3D min(event->v[i].size, count - total); - if (copy_to_user(buffer + total, event->v[i].data, size)) { + if (!copy_to_iter_full(event->v[i].data, size, to)) { ret =3D -EFAULT; goto out; } @@ -340,12 +340,11 @@ static int dequeue_event(struct client *client, return ret; } =20 -static ssize_t fw_device_op_read(struct file *file, char __user *buffer, - size_t count, loff_t *offset) +static ssize_t fw_device_op_read(struct kiocb *iocb, struct iov_iter *to) { - struct client *client =3D file->private_data; + struct client *client =3D iocb->ki_filp->private_data; =20 - return dequeue_event(client, buffer, count); + return dequeue_event(client, to); } =20 static void fill_bus_reset_event(struct fw_cdev_event_bus_reset *event, @@ -1922,7 +1921,7 @@ const struct file_operations fw_device_ops =3D { .owner =3D THIS_MODULE, .llseek =3D no_llseek, .open =3D fw_device_op_open, - .read =3D fw_device_op_read, + .read_iter =3D fw_device_op_read, .unlocked_ioctl =3D fw_device_op_ioctl, .mmap =3D fw_device_op_mmap, .release =3D fw_device_op_release, diff --git a/drivers/firewire/nosy.c b/drivers/firewire/nosy.c index b0d671db178a..d4e7f465afc4 100644 --- a/drivers/firewire/nosy.c +++ b/drivers/firewire/nosy.c @@ -133,8 +133,7 @@ packet_buffer_destroy(struct packet_buffer *buffer) kfree(buffer->data); } =20 -static int -packet_buffer_get(struct client *client, char __user *data, size_t user_le= ngth) +static int packet_buffer_get(struct client *client, struct iov_iter *to) { struct packet_buffer *buffer =3D &client->buffer; size_t length; @@ -154,15 +153,15 @@ packet_buffer_get(struct client *client, char __user = *data, size_t user_length) length =3D buffer->head->length; =20 if (&buffer->head->data[length] < end) { - if (copy_to_user(data, buffer->head->data, length)) + if (!copy_to_iter_full(buffer->head->data, length, to)) return -EFAULT; buffer->head =3D (struct packet *) &buffer->head->data[length]; } else { size_t split =3D end - buffer->head->data; =20 - if (copy_to_user(data, buffer->head->data, split)) + if (!copy_to_iter_full(buffer->head->data, split, to)) return -EFAULT; - if (copy_to_user(data + split, buffer->data, length - split)) + if (!copy_to_iter_full(buffer->data, length - split, to)) return -EFAULT; buffer->head =3D (struct packet *) &buffer->data[length - split]; } @@ -332,12 +331,11 @@ nosy_poll(struct file *file, poll_table *pt) return ret; } =20 -static ssize_t -nosy_read(struct file *file, char __user *buffer, size_t count, loff_t *of= fset) +static ssize_t nosy_read(struct kiocb *iocb, struct iov_iter *to) { - struct client *client =3D file->private_data; + struct client *client =3D iocb->ki_filp->private_data; =20 - return packet_buffer_get(client, buffer, count); + return packet_buffer_get(client, to); } =20 static long @@ -393,7 +391,7 @@ nosy_ioctl(struct file *file, unsigned int cmd, unsigne= d long arg) =20 static const struct file_operations nosy_ops =3D { .owner =3D THIS_MODULE, - .read =3D nosy_read, + .read_iter =3D nosy_read, .unlocked_ioctl =3D nosy_ioctl, .poll =3D nosy_poll, .open =3D nosy_open, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f48.google.com (mail-io1-f48.google.com [209.85.166.48]) (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 D406D127E1E for ; Thu, 11 Apr 2024 15:38:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849890; cv=none; b=U75D+wwav19v0puQaPEE/uiJjlBAq/A41QLm30c4P0XFQKvcuKP6yTxzKcnhnmUBAoSIgIUbjtkQehj2msUoKQJNOdytaD3qRlZL28bBO7h+eLyryuAGOLaj/ymZWF249wsqLjoOyiGKCkEcM+mY2KU+Pu7V2SdG9zhJaMW9CJo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849890; c=relaxed/simple; bh=G7fA2zph9UHpcDHHvN1L+DDxS/deAwJXMw5zl2iH8TM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=B1ijzcrLxsiD71NGGy+9ikCtXm+40vNm2xVxFVMmuvEtnrYwOESV7Rmtb4apNcbqSUBLk0ilyd25PuoojfO/hRSBz0+9AbMTVpXOnOFI7Ddhbj0gEMxmkCEnDMPdTh9/u8jwfIExDc1j/rUwFmEOeLtp+6j8v0Bpfavmm+sfhAA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=V9WdfyPi; arc=none smtp.client-ip=209.85.166.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="V9WdfyPi" Received: by mail-io1-f48.google.com with SMTP id ca18e2360f4ac-7d6812b37a6so8986439f.0 for ; Thu, 11 Apr 2024 08:38:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849887; x=1713454687; 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=JsibYaDnAk7XMCHdjfEv+RnnWbGsgcEz7VUXWsWdK5Y=; b=V9WdfyPi+XOl3V2+u2JZ8Dn+LU6Orjqh3+AwOB+ORXleb2YmMh8WWOOcdyn7v8SFhj u7KJ2lHaGBWuFpF1xa0Lqn7YwQ0ekW6MIGJt6SXKMVnwQgiTFHb8T7stPmSzHIyrG02h 0de7oy12xJ7sOMUku+jZdNRR8yrkj6oa7gctibj4qDFhQAQBNi+P/fFIdG/5tv2m3EK6 JwdEY3FJ7uTCFMK84UplVQPAtXmo6z+fyfL5LD+/Pg+Z6NcgAO0uLJEDL0z5AeF2kzFS f5SZeYMnh6IlXYDGxkkqBkBpWRPZpOY6f2qUYkN1Uy87BNMHa9x6aZ5ZBhv5aJi3+xXG ItQQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849887; x=1713454687; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=JsibYaDnAk7XMCHdjfEv+RnnWbGsgcEz7VUXWsWdK5Y=; b=Tw3WM8jLFv55TcXswkkf1vDQ+jM1+ZueLCFC4XRlylFx+B7JxKgAMtdSyQgsGbYbxB +3O+gbBhW8C/5fQvaZF/P4fYMrwILd1rg/z/ukB1diX3kINtaK3T+VgpKAar0FKJW+RB ovuU+nrAn9qHKNz7Da5AVRHYj25Jg3L8wk8cmC6AglXEKlRG3+bJOtc6+IZK2P6mVFtW jkzF98YWwC9o3Fo9lOV5cbqIYKTyebn6f5AQD/Bs49kcC3pPmwklWfU1nFawF396nSLK TA7OWbtGV8wFMVcnAco65FkBjw8Bt7pZNpvW06bN0Qop4WvgTN//jI23N4EsHJHNlYOO jGMQ== X-Gm-Message-State: AOJu0Ywvv5HVO4hriOp8PJABBPqbLnWvrHgpZCLD3BBm8xAUWFmBDHWI bwccsKNcoCggQhpOhhYW/4L15F0FkmEPos1wLwMycXFw+UQEOzVLle8yWs+UudOt8J8Fuazy3xu v X-Google-Smtp-Source: AGHT+IGPHP3+WiPBRD8kOKazk8x4E9Co3eargOhC09iK+qoEAoWMV4y2Ia/CmDHXI6HD5T9dZ8YX5A== X-Received: by 2002:a6b:5b10:0:b0:7d0:bd2b:43ba with SMTP id v16-20020a6b5b10000000b007d0bd2b43bamr226822ioh.0.1712849887593; Thu, 11 Apr 2024 08:38:07 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.38.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:38:06 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 232/437] drivers/mfd: convert to read/write iterators Date: Thu, 11 Apr 2024 09:16:12 -0600 Message-ID: <20240411153126.16201-233-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/mfd/tps65010.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/mfd/tps65010.c b/drivers/mfd/tps65010.c index 2b9105295f30..74272a534020 100644 --- a/drivers/mfd/tps65010.c +++ b/drivers/mfd/tps65010.c @@ -290,7 +290,7 @@ static int dbg_tps_open(struct inode *inode, struct fil= e *file) =20 static const struct file_operations debug_fops =3D { .open =3D dbg_tps_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D single_release, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f48.google.com (mail-io1-f48.google.com [209.85.166.48]) (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 CBF111C2FE5 for ; Thu, 11 Apr 2024 15:38:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849892; cv=none; b=FIMhZkz12RGmLFD44sPdGaook1eY6HwtlcdQ3t8xPe3ThNXA4vpyeV9vDZjuJsPax/TfYaOdcdZTAZd/NgMtPa/Wc0Cb+kLZsD5AfgoI172v3Ax+0UTql5NEIryleGaHoIqU2ER7MFKnMWi1+/sULchDwM1W7h542Iw7AUfNKo0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849892; c=relaxed/simple; bh=I008nlz7hMIwHwSINpFNSBgOki5AL1aXDldRxzQYz70=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=lBzC59Yrm+s9pr/MtkEJqkXLxFlRgf5vn6UzyLTL2xugO04Uj2d1hKqirzrjKKzZRobKVzKvYTVq9+3E2teldP8ZWgLVuCAE4UwwPgvVvPoDu50S0IbmKoTvP/iBCIjxcP0ncXrBXSlt1NdDOTlVmOBxmuQoqQ2Uwt1gHHtCYRA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=PYrXGQJd; arc=none smtp.client-ip=209.85.166.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="PYrXGQJd" Received: by mail-io1-f48.google.com with SMTP id ca18e2360f4ac-7d6112ba6baso58122039f.1 for ; Thu, 11 Apr 2024 08:38:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849889; x=1713454689; 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=9lLImXXFpvamki8Dp2j4GmpSOc49UTRYWPsz9Jb4zBA=; b=PYrXGQJdgrOoRVuTwoAQ/lBvmnxSAK+f8fE/QI9CN+T1pDSCofaIXEBSRbVEqeGL6N dzo9g8n3ylxr4rDWvIT56SYVHNrBiNIOp9FygZFxfDJocrLmgly8N5KMzcRDmLSqEZ6F 1m7MXWq9oAu6ZooAge9d7HqCWfjZ/NKlLMwpCrqt3CVzoc/shDZ3r8EEwv3ZfY4lsYVa wHjnrNRQol+I1DEYluSVdjQ4lPrP+hAjo8CO7TPFclypODGrXJTgU3CyR8skozO2zcXZ 2SPIJVIhbqadTfJGgs6WrqpIOLeG7kfCUX0CxeeHLv3wwdqsrTKc1fInkLEibtXG/lcr ymBA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849889; x=1713454689; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=9lLImXXFpvamki8Dp2j4GmpSOc49UTRYWPsz9Jb4zBA=; b=oqDy6TYH5d+RrVTPOIyWeRSSHdV6ocWl0Aw+eSNTo/M73o1P87b4P5ET99uJ7FPgWq uvWt2VTD0FiNSkKQCpJr5BG/Uvxz7BYMa9xx8H2pB0t6xDAcmdu1iQ8V/op2TzBPHUJP BM9MNumh4WhdGAV09+HtNMzI6jBVgKieI4k3w4f7GTqYrsCs0HRxaUXITwei9yIQ8SYe 1v31xlHsNqGyEWNIc6d4EdtIwMGBjKDfN3cFMktQC7oallK43bM7mp+p702rwMciI6yO jdAlRZEqJJUV2X1jdHvxqlmmibVUlH+JOrtwWCnOepKq7Dn1k+SplNjrMsI//NvBQO2W F6GQ== X-Gm-Message-State: AOJu0YyPXKaKgBGFJ//kKZoKXQQMZ1XkhaDGoLkKuThTZqsnrYKAkwI/ ycijUUof3oe3QqsW+d/Nup47WJv9muwfH4/EROG08ZI6gD1jjEsjoCA/4UPx5EJe5fRWGqhzNuQ h X-Google-Smtp-Source: AGHT+IFb0BrpOrAko9/+CF8RMEsOfyF47lvXP0onZh9YPbf0Gcw1a2F20SLH4zq+2rGd9jHsAwA+pg== X-Received: by 2002:a6b:cd08:0:b0:7d5:fe3e:90ff with SMTP id d8-20020a6bcd08000000b007d5fe3e90ffmr207124iog.0.1712849889399; Thu, 11 Apr 2024 08:38:09 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.38.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:38:07 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 233/437] watchdog: acquirewdt: convert to read/write iterators Date: Thu, 11 Apr 2024 09:16:13 -0600 Message-ID: <20240411153126.16201-234-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/watchdog/acquirewdt.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/watchdog/acquirewdt.c b/drivers/watchdog/acquirewdt.c index 53b04abd55b0..cdc27fc68f4a 100644 --- a/drivers/watchdog/acquirewdt.c +++ b/drivers/watchdog/acquirewdt.c @@ -114,9 +114,9 @@ static void acq_stop(void) * /dev/watchdog handling */ =20 -static ssize_t acq_write(struct file *file, const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t acq_write(struct kiocb *iocb, struct iov_iter *from) { + size_t count =3D iov_iter_count(from); /* See if we got the magic character 'V' and reload the timer */ if (count) { if (!nowayout) { @@ -128,7 +128,7 @@ static ssize_t acq_write(struct file *file, const char = __user *buf, magic character */ for (i =3D 0; i !=3D count; i++) { char c; - if (get_user(c, buf + i)) + if (get_iter(c, from)) return -EFAULT; if (c =3D=3D 'V') expect_close =3D 42; @@ -219,7 +219,7 @@ static int acq_close(struct inode *inode, struct file *= file) static const struct file_operations acq_fops =3D { .owner =3D THIS_MODULE, .llseek =3D no_llseek, - .write =3D acq_write, + .write_iter =3D acq_write, .unlocked_ioctl =3D acq_ioctl, .compat_ioctl =3D compat_ptr_ioctl, .open =3D acq_open, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f44.google.com (mail-io1-f44.google.com [209.85.166.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 DFF731C42E6 for ; Thu, 11 Apr 2024 15:38:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849895; cv=none; b=NqD+NIjfs59WAfsrHPRK4sLDXYTy4BafxYBTpYdzb0U7z3PexHbW5r9ypg3b4bWdmNAoFOliua1a3y7o18Mo0epeWbmoV2O+sXcsc/bod408XRKlZu4yAGpwpNoECOmQIX+chBwkc8qnO0hTH0MflQAom57t67qK3KbgOh8J1j8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849895; c=relaxed/simple; bh=6/+WHJeAq5tum1kEkpNqKpjWymK7+gbS40aMopxhBDw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=rL7sLXkpI9IjobPe62grsgEUv7bTqEuegA3peJ9fQN+YYrM7E/Nsd3OOQ2cyydWHD1Pamgpd+CnAwZw/Jmar+voiQr+xSu667fZ1mDiwpn6dYvXFgamA620MTc521qFWYygUb778zMQ5h6KXGbz9BovMXdZnLgGcS4Y+rflUJIE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=Mf8uJjuV; arc=none smtp.client-ip=209.85.166.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="Mf8uJjuV" Received: by mail-io1-f44.google.com with SMTP id ca18e2360f4ac-7d6812b37a6so8987939f.0 for ; Thu, 11 Apr 2024 08:38:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849892; x=1713454692; 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=d5BCglZo6iVaCCleAsTPCfSecI5kckk3+SFyaP5fatk=; b=Mf8uJjuVgYHcFQiMUsm+kISzku8omtxqsLjb08Xt2n95TfOdtZ7OZo3FwvgqATwBjp /YszQIqHI4USNqUa/uSajs9dseOxZ1LfMBd82nolsNk/nfs2ktKV0hVGtN6Qlf/N0cxr SspMbcfzgWkzrPQk9SzHgc5bZcuC0ByvQZ9+6OoWO3LzZwvTcTP/aujRUqgFI2SPShcQ HSoU+9aamNCr0Y0mxMQfNjvwaTDACNm5Sw7rHSl7WjgEdQOHQg6rPGR/opjv6f1juRKv 51YSEaik6RyTxt5Wuc8wnMR7YExZhPuKyvJ7rCcOGNGbosrl8YbVNI/yjAq3H/Trj2Up 43Rw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849892; x=1713454692; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=d5BCglZo6iVaCCleAsTPCfSecI5kckk3+SFyaP5fatk=; b=Z08f5tbeYgumNkHT82t5HgaPmN73zybBMWw0ZZ77lDsXCyL3QorWF3mKOisIX840Qg iDFIzX0p1N70Fr1cTflSsrORWHszgkqobb8J2HLY7ywptT1SPA/zSc90RLxox1T9kmF9 E4iAWCTrigiW5Cla6fA0M+ky1FJdEAiAYwhUsXN1raNQvYCELigHqRykLMkreW1Zd1WA CGnmPMCaXperMzG1q0AsoB3YT3tloYyUEkLIsh+q+185n6jAcf21zO1zw3lxbq0RMbwX E6V6X4OY6OYN04klQnXz9gEmWuzUWcAOYAcfYenqInKRnfNQfox/ibVOfpTAAZIT+PLS tx7Q== X-Gm-Message-State: AOJu0Yy5hWU1J9ln9ooKsG/YQILramVXHEdbCDgD8CrKFJI7oqUevLGo c69ZEEar0NU4UQk3gIjWDZsJm0vZjNsmsKyia0DVv6NmcUosGfcR1iMHAuldvvMQGZ/hHwBPXNO l X-Google-Smtp-Source: AGHT+IEGTLll7CUAudSE9xkn6vyPAMxTcyvciT0m91/FVdrgWezeRNf2xd9R2gT+eT1SED/TgdbqCQ== X-Received: by 2002:a6b:5b10:0:b0:7d0:bd2b:43ba with SMTP id v16-20020a6b5b10000000b007d0bd2b43bamr227035ioh.0.1712849892389; Thu, 11 Apr 2024 08:38:12 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.38.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:38:09 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 234/437] watchdog: advantechwdt: convert to read/write iterators Date: Thu, 11 Apr 2024 09:16:14 -0600 Message-ID: <20240411153126.16201-235-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/watchdog/advantechwdt.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/watchdog/advantechwdt.c b/drivers/watchdog/advantechwd= t.c index 7a0acbc3e4dd..95c1b90abedc 100644 --- a/drivers/watchdog/advantechwdt.c +++ b/drivers/watchdog/advantechwdt.c @@ -106,9 +106,9 @@ static int advwdt_set_heartbeat(int t) * /dev/watchdog handling */ =20 -static ssize_t advwdt_write(struct file *file, const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t advwdt_write(struct kiocb *iocb, struct iov_iter *from) { + size_t count =3D iov_iter_count(from); if (count) { if (!nowayout) { size_t i; @@ -117,7 +117,7 @@ static ssize_t advwdt_write(struct file *file, const ch= ar __user *buf, =20 for (i =3D 0; i !=3D count; i++) { char c; - if (get_user(c, buf + i)) + if (get_iter(c, from)) return -EFAULT; if (c =3D=3D 'V') adv_expect_close =3D 42; @@ -218,7 +218,7 @@ static int advwdt_close(struct inode *inode, struct fil= e *file) static const struct file_operations advwdt_fops =3D { .owner =3D THIS_MODULE, .llseek =3D no_llseek, - .write =3D advwdt_write, + .write_iter =3D advwdt_write, .unlocked_ioctl =3D advwdt_ioctl, .compat_ioctl =3D compat_ptr_ioctl, .open =3D advwdt_open, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f47.google.com (mail-io1-f47.google.com [209.85.166.47]) (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 6813B1C42EC for ; Thu, 11 Apr 2024 15:38:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849895; cv=none; b=K44UOPnKLM5GHo4A5Zc1pucCz3O7Iy2bhuz+zM4JDzlxn8NiVX353iR/Rqhjke7CSEzUQF9wFc9Z5c2TUgcl/LfQkRa6AEzimjZ4I7+nT7SbmFl0v8PUM5ZtbmJFGUeXfNjd3kRnBJ9By5qzZWDwpMCf+VLksY69A0jsItwAy9U= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849895; c=relaxed/simple; bh=cqP6/eNNDYGKZNeUngaOLUPMxWLy3k/FtRZC7c9+8g4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=PfofKZ4OEqn/6JYbfd+oeoGhXN1fn/rAj0DvzZvQs75vSVR/i5In3beXe/ivJX5lxj2bMf1GfMGphKetEButGb7wVtxIBAq4g20R3xHUdDo3fqnQHtMY7EbhelP0gMGOobjaD6cZ8Py0bYV/97GF+y0y96JYkmdkuSFPagAU3U4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=3NnQ0aWO; arc=none smtp.client-ip=209.85.166.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="3NnQ0aWO" Received: by mail-io1-f47.google.com with SMTP id ca18e2360f4ac-7d6112ba6baso58123839f.1 for ; Thu, 11 Apr 2024 08:38:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849893; x=1713454693; 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=PhAbVJ2K5jbbaJhnUs+1XH0nElLiKOnDW3DkM0X7Oes=; b=3NnQ0aWOlNQ1tJ6so8YQQAoyaLgsOdRcRa8mgENURixlg+zHUzvxP9QPBhVvsWIjA4 32kXpuF8SuW5E43qxfS/rLYPgQgL3v5c3F6WW90pQii+RELpFDiPxHhLlYo8MeuIzuKi o2IwwQn3bu4YiMFZ3U0nEno4WJ0NRZBkrKOkZW1TPvjvA1WV0KrNpFX7Pl96Cf/TJtSE HuzKixLsrP1ARttQulGfszilpjhKQxW2kMgtrRtsKgJk1XyXaR1nH76p8JakWysZ2MLh ehFK8t8yzDAacDR8t+C1OwY9erDGDodxkiwfSFW18T/svLX1YSMfbP9qkYcJjomOlPSZ blgw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849893; x=1713454693; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=PhAbVJ2K5jbbaJhnUs+1XH0nElLiKOnDW3DkM0X7Oes=; b=YSEGG0fSF0RbwJHcyuAITbj5rp3wIAe1u5DlHbw/L587P9WVeVPtJRYPJnIgUW8Diu ozmzQGEEQvAMzTIEPVQijt1CNca73yUxui+868DeUjpBEz2Gbi/VNbtAM2Iyxwv1B+HB rCTbsbdmBUu0TIlafrxslfgZWli0GUc6R8q3xvn/YBMgfhh/dZBd4nyxn3xK1kcyHWWg 97JF93MuFAMHXkRdzVgbm7KZqTffOdcdnw7AccjnEKwxPS3sgxARsjyvxsCh36Ts/mac fuAtU/wMipF141GAB7R25c5K9gBNG3KHrendfQOiu5VGHSuZiaoWDpVD5SJn19qUXHyH WA6w== X-Gm-Message-State: AOJu0YwaNoVirrHbp5S7OR2wXJLMdKHo2oZGa7ZIk0IdZFjQeloxFdCZ 0ecUW52v4DpCtO0dwjbbD0DM+Vx2Vdqc7+qMd7xJL0rdJIpegAyBICM3ZEZmFZW/4I3wl4gO+SQ 6 X-Google-Smtp-Source: AGHT+IEmVqndftm9s+1W6nV93kdj13j2PFB3OLU+/xhDG2PSZIulIz81ewUJuSmSsBd0BL+yB+NB3g== X-Received: by 2002:a05:6602:38d:b0:7d6:513b:254 with SMTP id f13-20020a056602038d00b007d6513b0254mr191262iov.2.1712849893064; Thu, 11 Apr 2024 08:38:13 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.38.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:38:12 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 235/437] watchdog: alim1535_wdt: convert to read/write iterators Date: Thu, 11 Apr 2024 09:16:15 -0600 Message-ID: <20240411153126.16201-236-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/watchdog/alim1535_wdt.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/watchdog/alim1535_wdt.c b/drivers/watchdog/alim1535_wd= t.c index bfb9a91ca1df..9a12706d9cdf 100644 --- a/drivers/watchdog/alim1535_wdt.c +++ b/drivers/watchdog/alim1535_wdt.c @@ -134,9 +134,9 @@ static int ali_settimer(int t) * the next close to turn off the watchdog. */ =20 -static ssize_t ali_write(struct file *file, const char __user *data, - size_t len, loff_t *ppos) +static ssize_t ali_write(struct kiocb *iocb, struct iov_iter *from) { + size_t len =3D iov_iter_count(from); /* See if we got the magic character 'V' and reload the timer */ if (len) { if (!nowayout) { @@ -150,7 +150,7 @@ static ssize_t ali_write(struct file *file, const char = __user *data, the magic character */ for (i =3D 0; i !=3D len; i++) { char c; - if (get_user(c, data + i)) + if (get_iter(c, from)) return -EFAULT; if (c =3D=3D 'V') ali_expect_release =3D 42; @@ -360,7 +360,7 @@ static int __init ali_find_watchdog(void) static const struct file_operations ali_fops =3D { .owner =3D THIS_MODULE, .llseek =3D no_llseek, - .write =3D ali_write, + .write_iter =3D ali_write, .unlocked_ioctl =3D ali_ioctl, .compat_ioctl =3D compat_ptr_ioctl, .open =3D ali_open, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f46.google.com (mail-io1-f46.google.com [209.85.166.46]) (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 4C9481C2FD1 for ; Thu, 11 Apr 2024 15:38:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849897; cv=none; b=S3lLyLghJ9tVnsPR+17y3DPFBG6X7rEAdPfvPRBC8DIBtxKy82n6kkuEUMm6k8zFaYlBRDSmLHV99R5gk7z+CitkEm/eVEFbhJaQgpQHN7MZGG9Jef2ccU9ipGg+pywm2ok3gM2ZdjXtRrwulAIvfR6AMU1nJsq2BSAC5lZgOJ0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849897; c=relaxed/simple; bh=CG+fd5YwGcC31BmCXrMGBAeAKLv09/NOtaC12bBDtbg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=AcPxJmWlNbKHxSrgUd7pwbeBqg9VB6tSk4bv6ZuiS8eneq42r61/YeqZ/jpSs4D3948qVtFzHPPOvdw2XefHmJvsIkceThBamDC+mqsFGua9GLUHYuIWqK+r5c8kZlWSGNREQnrgit+8HQNTFJ1G6EBYnknj8JS0gcaRlMLG+C4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=y4UAPSXg; arc=none smtp.client-ip=209.85.166.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="y4UAPSXg" Received: by mail-io1-f46.google.com with SMTP id ca18e2360f4ac-7c8e4c0412dso69617339f.1 for ; Thu, 11 Apr 2024 08:38:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849895; x=1713454695; 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=dNT64WxlYKBuIztLWlaKGIAGqxpzer/IPML++IxexrU=; b=y4UAPSXg8I3hNZ9M3zvFBKvdPuSQTHl1ajIFclz6+JitpW/IMm1PFYMjlJvvvtu6qZ oFS/LNuO7uxjUU0Vi5fVoCYun5orqNmcR0u9+MVyuw28B890obXJd6MPN95vqGlqRHGA ZeYPoaF+XoKhRPTAqBvOGW1dNSaydqT2uhjYK0lWtyh35qrGpkgpad5oQKbK0l6mAcpV JxVXzywnNijLAnwhb3Gw951QEcIkLba15MGrn4y2e4wfBxToQntgmdXgEmVgZhZGkyVf 8gJW0O3C789qULa0F71oF6G6vTUTt3CrCs5s0FFPZ2IFsgfksBMMWEETmPbG4nJ3yr6m CpRw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849895; x=1713454695; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=dNT64WxlYKBuIztLWlaKGIAGqxpzer/IPML++IxexrU=; b=KtdP+NVcpxyhJq37hrjIfoTxujmLrSNGM9Y4bd/Xfdp6WKLpXE4eTu3tOu5+DTPcZj kLk+Th5HRUret6RMfgahpxhjk4wL1xn+shJRGorFwlGSYQbRbFhOj17PXVJ4HzC1zWss qvdOkSYK3wswgPO80z8yOrf3eWGT4cgp6jVk8CM10ndVCPU6PHC9UKzr4i7YhcCSeuzo dH9RQwcJgKqyZwm53wORuzKe6kN6NZVQhWrg9S5/E4mxFzpQnqDnw+l5JnyNe4pIRkUt Ll8wEsOHc5mKQ1ugYTdNOGAIatzERnvtgJ3Iiw9WpjGRrYPc7h8lY+zznEZjbsRocYVZ BPbw== X-Gm-Message-State: AOJu0Yx1BhLNwKyU99tNEvDX8AEXHaTg55BXfgpr0w6b8fp5BjLtVTjP 0DtRUXv+hgb0RZPI2nRcQL/udaHiTtGZhBYbtL1GaJhFEfnNRg5nh2RP5FLqb3/+xr49yauligR x X-Google-Smtp-Source: AGHT+IFAeoOifF/OpoDvfzQMl3mIrl4iWDmasa5z7XH62rNh074ViiRIYsS1O/nTPpsFbWWHderVxg== X-Received: by 2002:a05:6602:84:b0:7d6:9d75:6de2 with SMTP id h4-20020a056602008400b007d69d756de2mr46624iob.2.1712849894771; Thu, 11 Apr 2024 08:38:14 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.38.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:38:13 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 236/437] watchdog: alim7101_wdt: convert to read/write iterators Date: Thu, 11 Apr 2024 09:16:16 -0600 Message-ID: <20240411153126.16201-237-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/watchdog/alim7101_wdt.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/watchdog/alim7101_wdt.c b/drivers/watchdog/alim7101_wd= t.c index 4ff7f5afb7aa..5a85f53542d9 100644 --- a/drivers/watchdog/alim7101_wdt.c +++ b/drivers/watchdog/alim7101_wdt.c @@ -181,9 +181,9 @@ static void wdt_keepalive(void) * /dev/watchdog handling */ =20 -static ssize_t fop_write(struct file *file, const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t fop_write(struct kiocb *iocb, struct iov_iter *from) { + size_t count =3D iov_iter_count(from); /* See if we got the magic character 'V' and reload the timer */ if (count) { if (!nowayout) { @@ -196,7 +196,7 @@ static ssize_t fop_write(struct file *file, const char = __user *buf, /* now scan */ for (ofs =3D 0; ofs !=3D count; ofs++) { char c; - if (get_user(c, buf + ofs)) + if (get_iter(c, from)) return -EFAULT; if (c =3D=3D 'V') wdt_expect_close =3D 42; @@ -290,7 +290,7 @@ static long fop_ioctl(struct file *file, unsigned int c= md, unsigned long arg) static const struct file_operations wdt_fops =3D { .owner =3D THIS_MODULE, .llseek =3D no_llseek, - .write =3D fop_write, + .write_iter =3D fop_write, .open =3D fop_open, .release =3D fop_close, .unlocked_ioctl =3D fop_ioctl, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f54.google.com (mail-io1-f54.google.com [209.85.166.54]) (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 DBC671C4C27 for ; Thu, 11 Apr 2024 15:38:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849898; cv=none; b=RDxspwsXvXmmIkFGxg683EY6BF+T472OLxe0ZT18ydIRWuShEFzI0CSkG+n3Wc8q3xm+5ud0yCFpOD+9jwvHAXtmW+YWIXV77RWd5jmAIz7BvPR/eAQpvmFb0CrxFsTwZwWf4nM/j60VUMDRVY2i5Wi+QFR7zNfuKjTnh6fnYtI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849898; c=relaxed/simple; bh=1r4eslxLt6ueCoMhWGBz0NGQ8+WXDixhYonNogvvO6g=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=FQ+sOUCshmOHmZgGCdAkhsuak6lkpofC09XKdBBIyBAln1cAFJyk+jk6XqmTcnqBqJqOZ7pBg+DMXTZOXFe9mVm8HpNOm73QEuPYJFyKcvFgeHobOlOXV/QjcbFZagoUDSE28ffN9vBExa7e7mPTeAVYoxZxBzS2w3Cr7sQFcHA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=Zo0LRL7o; arc=none smtp.client-ip=209.85.166.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="Zo0LRL7o" Received: by mail-io1-f54.google.com with SMTP id ca18e2360f4ac-7d6812b37a6so8989139f.0 for ; Thu, 11 Apr 2024 08:38:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849895; x=1713454695; 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=jT+ow2SZLliaFc9itBO70O6+R5hwCgvMhvgLlFMq7yE=; b=Zo0LRL7oogkpWZcRWTYjOR0oOnifF6a3MUcUEzt5/jm7USoReINKFMl7UnOvJvBnDi by2kPIx6ayD6Cwi9sKOMcszvUvNllqnE3cStvj674uZZVj8Wm9nvhwDj61DJWRE04z4G 8G8CzhuCpcUAYZW42jalaKBri0pznA8nUJfhTkROpBxpvm95eGo/TZ/65ErllPouOCvb Rgay4p1pfoMTfQ92079jfzFoQMqiVrnpbeIMvANUSimFrlJ+P5mjhmcehmwwNJuzqA9h 5yzDOFlQRh3FYxVWbxiAxBAfXPWyixvuBGCEWaQ5B98qpwDN+kxRxVpcT4DZq8E7U/Ix 4+cA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849895; x=1713454695; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=jT+ow2SZLliaFc9itBO70O6+R5hwCgvMhvgLlFMq7yE=; b=CDZ3GdTe5hL1RaJfJWWf7ZgqQj1WauFYSnSND4Py8fF3hyh8THwPJE+BiUl5mc4dH4 LJUUufi5NGgY/zuEVjocRyLpzbfMvrn6eLkjH6lB36QWYpgbkqWPejRfBwhvI4a10dbI 6WD9qKPEB6xlQJ+ciH2s01Rc2FFgN5oCIdG+sfIjuWxSVY0WA4hQ82rKmbf0yZtC9CHt NtXXj1Sfm9jZ/BaVKSWBIFmlxqV8KRjZ/jHiNqBxWHclXk61YMsEt0ttn/9+aXugCPpU d2l3ifBy8EohswCJV9h4N9p06SvfqkE98fUSOqpxGOQJZYTtuuvPtHBPY/an4/IgAzyL Rxsw== X-Gm-Message-State: AOJu0Yyg1DMJS28yo9D346ySSETPJ4h4+cS0esB/OluAtPb09hZo/QJ6 7fo8e3/nCWeF0lXtRDnBVOxVWRi2EvpMb/yFJ/QvOMlcrLJUWQcZfh0/AE5mg7yRcE5Ffo1ti+H E X-Google-Smtp-Source: AGHT+IF4f/8do6cedWd+JNFRC2Q4ASmJOtnz/0ZzMCcgEJ+i/BmrOv1Ia8v4cF8jyuAKunGgvcH3bg== X-Received: by 2002:a05:6602:21d7:b0:7d6:9ddf:5095 with SMTP id c23-20020a05660221d700b007d69ddf5095mr21903ioc.1.1712849895509; Thu, 11 Apr 2024 08:38:15 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.38.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:38:15 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 237/437] watchdog: at91rm9200_wdt: convert to read/write iterators Date: Thu, 11 Apr 2024 09:16:17 -0600 Message-ID: <20240411153126.16201-238-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/watchdog/at91rm9200_wdt.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/drivers/watchdog/at91rm9200_wdt.c b/drivers/watchdog/at91rm920= 0_wdt.c index 558015f08c7a..1860fbeb6e57 100644 --- a/drivers/watchdog/at91rm9200_wdt.c +++ b/drivers/watchdog/at91rm9200_wdt.c @@ -199,11 +199,10 @@ static long at91_wdt_ioctl(struct file *file, /* * Pat the watchdog whenever device is written to. */ -static ssize_t at91_wdt_write(struct file *file, const char *data, - size_t len, loff_t *ppos) +static ssize_t at91_wdt_write(struct kiocb *iocb, struct iov_iter *from) { at91_wdt_reload(); /* pat the watchdog */ - return len; + return iov_iter_count(from); } =20 /* .......................................................................= .. */ @@ -215,7 +214,7 @@ static const struct file_operations at91wdt_fops =3D { .compat_ioctl =3D compat_ptr_ioctl, .open =3D at91_wdt_open, .release =3D at91_wdt_close, - .write =3D at91_wdt_write, + .write_iter =3D at91_wdt_write, }; =20 static struct miscdevice at91wdt_miscdev =3D { --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f54.google.com (mail-io1-f54.google.com [209.85.166.54]) (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 6ABAF1C4C49 for ; Thu, 11 Apr 2024 15:38:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849899; cv=none; b=P7NtlXbyZXHnz/Tqi7PE3U4rksAljHoZpxPpu3MvvWyq5fi01HFzDHgyFY5fR6B/RZxuS0fKFIDPNfd+74CeG9FmMjcIXRwkTOs0McsShhop4/o74y7cfCofCQD5RJDiiPFsbHkwBh9EA37Lc6JETNiMEel5hk2W2tvwn3Sdi7s= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849899; c=relaxed/simple; bh=3/V667XKBglm9im1Z9fRJ1TA+beLvb8GZxgDNkg/7F4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=vBoDly/hz7W0g19cNlo99ZIwxUrrSw4awd15DE739qtmcwPb65LEX0solzzmOnSREooUctpGE+5JMK8hLDEmIzV2NA9pNPGRu4IfzklIMcc8qP1PIXk9u0H4IY4l6sEK/oVfbZMluX+QbPIt+9KgTkotMqsViTQIqPUw8qMOiFE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=ED5xFJjn; arc=none smtp.client-ip=209.85.166.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="ED5xFJjn" Received: by mail-io1-f54.google.com with SMTP id ca18e2360f4ac-7d67d1073easo9837039f.0 for ; Thu, 11 Apr 2024 08:38:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849897; x=1713454697; 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=fl12uZ8o/yOCWgQSdPpy5k35ORLGY8Lo/Z/2sz1z1GA=; b=ED5xFJjnM4a70pZfWb0JCjsA2lS6+cTWweFdg1/HnIp8cdeXHigXND7jAUYyJy2jyL HaFWmrbw0q54VZdYuvsdUQrz9XSYYchMx89CTSDYht8+9g6/R27mdr0idvoe0My+D/GQ nJGgOIJFBNcSYQlW7kQoyP20+BO3h9Vi1sQSPp7i6GUYqIktkniDLTHo1vLBpQNkZ1cW KG3V6UNduTMADqsqh/UgCF06zGWvVnEPqu2RSCx6X4hjErhI6tG1JSrZpqUcgEnojH8d J/RUOs5n2x1EQ+QSf8cdllGmFQMmN4higtk7WK8q8mhsEdDp9mbSC2PS43xPLgCk6WPz mZtA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849897; x=1713454697; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=fl12uZ8o/yOCWgQSdPpy5k35ORLGY8Lo/Z/2sz1z1GA=; b=Gi3HVB0mpU3FZ0z9l2d8KdXbd+D7S8aHAkJdRbh0wR+xXa5GmVgEymJT5HT3w0CPyd 7RuFqxhIXYMBEm+Z4QmpLhgsGGN373XXQ2RB0GWDg08+ZSxP50iqJ60ru7XLu5xuvYf7 xp/np96cCHTv9NZ6rC1ua++EfmgRgan6ultPIohYy7cGbJ8aO6M8u0nwqD3cD3EZpUDX omze1Y21ZKvZFs06SqkCTG7w38eoshN01DrTRJAXprIVQBMC2hdDIeYzBGoRaJakVjKU 9F4qmCCSklfU+Xt3BW9ge7OErOGENzuqHkkczXIfo3s6CVPNcQwkendgSQTCiWGvo2HJ ef2Q== X-Gm-Message-State: AOJu0YxpTLNB1kf5HDIDz8sQqvrrNIc2nYw13SHEgBNN8dIlxyTdKzYv xFiLPRnmIn4BRakweSZjRXx7nweBUjtY00A1n1A7UnLkanSPzYhnUMwL9shyCvRuZBO5GUkmvtB 1 X-Google-Smtp-Source: AGHT+IF+NfFxryjzYWEnMoPD6xrhhk2OL/eZiwnbDZGQ8nvDVNp5EqqEOVrr1AkYFEjkqvSFJRg6fQ== X-Received: by 2002:a05:6602:84:b0:7d6:9d75:6de2 with SMTP id h4-20020a056602008400b007d69d756de2mr46713iob.2.1712849897275; Thu, 11 Apr 2024 08:38:17 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.38.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:38:15 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 238/437] watchdog: cpu5wdt: convert to read/write iterators Date: Thu, 11 Apr 2024 09:16:18 -0600 Message-ID: <20240411153126.16201-239-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/watchdog/cpu5wdt.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/watchdog/cpu5wdt.c b/drivers/watchdog/cpu5wdt.c index 688b112e712b..cef1d6ba6ecf 100644 --- a/drivers/watchdog/cpu5wdt.c +++ b/drivers/watchdog/cpu5wdt.c @@ -174,9 +174,9 @@ static long cpu5wdt_ioctl(struct file *file, unsigned i= nt cmd, return 0; } =20 -static ssize_t cpu5wdt_write(struct file *file, const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t cpu5wdt_write(struct kiocb *iocb, struct iov_iter *from) { + size_t count =3D iov_iter_count(from); if (!count) return -EIO; cpu5wdt_reset(); @@ -189,7 +189,7 @@ static const struct file_operations cpu5wdt_fops =3D { .unlocked_ioctl =3D cpu5wdt_ioctl, .compat_ioctl =3D compat_ptr_ioctl, .open =3D cpu5wdt_open, - .write =3D cpu5wdt_write, + .write_iter =3D cpu5wdt_write, .release =3D cpu5wdt_release, }; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f44.google.com (mail-io1-f44.google.com [209.85.166.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 D1ED91C42FD for ; Thu, 11 Apr 2024 15:38:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849901; cv=none; b=mLFNM97rzTXZ2d099zTpdxL9UomIdk7TIoza05BIzroCzQ32v4aIsWCm6xAV2V8QhdZrNK40meauCVkWGViqAF8XFvNVyryFV+w1qT5o2LFyiWEcOsL9jA5WGAvahp9iyIGYFBIsKcSp+pKUiMuW2702r7JMqznB5fVBsXWy8d8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849901; c=relaxed/simple; bh=r0gpEGLufdSSDJSUSmGBpzIFe7zazyP/Lyd4xKydQHw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=mFOYor3UOIDmEILISl48uMGHWADcn+pI/n3uQbT/pCQGUJNsrnzBzTbBkZBi8qLsTOLFy9ZHTd68tpTHkIiw1pzJSZhjk8qey/YMrdHx/WAaib6Ca3kK3DI6UnhUYv1YeJLB0GAkpe7FHa6F0AjL7BmRRdcg7gifFiQ/eVSTeHw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=Ot29EPLW; arc=none smtp.client-ip=209.85.166.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="Ot29EPLW" Received: by mail-io1-f44.google.com with SMTP id ca18e2360f4ac-7d6112ba6baso58130839f.1 for ; Thu, 11 Apr 2024 08:38:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849899; x=1713454699; 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=KIhvJ0QTKEm+dZZbpq9+5Ejm0PJbjdv4ucEw2PtmBxk=; b=Ot29EPLWSRAXEAXyghEyhV32mFkzJzTQmpoONGUc7fWj9l17KK+U/CoUOD4MY2elrO cNli+yf0iKYZ38hFCCmh1lV7mvAYAmvP6rPTPh0u6cKZMUc5xHx4xrL44OH7dCV6CuVD HA+C4NfxRGu7wO1nRJgGquj8MURKUqjlDEz6BO8oPc8iyddWuYo0VrqxcPM/UG6R1wPi riOshhzLOsHl7Hj+ZYYcUXjrEeYTycl7OCHWxTDBwlP6oDcArZv+BqX0dsIe1nQLsSVa cV/U+xqNl7Xz5X5ep3BsTblGX8hVpHB33Lrt+8n6tyzU1nzblDmaWkpnNDSnbUBt9I+0 pBGQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849899; x=1713454699; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=KIhvJ0QTKEm+dZZbpq9+5Ejm0PJbjdv4ucEw2PtmBxk=; b=RtgAP2BAQ1FkeBZy2uId3e70HWAgLpNIipHP+nhQwD8ZqsHTbd7FjBlIoVQfqEuKtT fI+nHFes+D5/lF4ZiBNVzOCQ0RQFkBzCuX9E2R8fXhLKa/nmNuoG43v+oro9YCU+nBHk D5B0fu/vQ4KDw5URKduIS0ZnH407u/U9sSQRyxsMgSHD9N2AqVzPCjxyOu7VOoZagwR2 7hojMkt+iWI/NmYdcxayjL8Jfk04hQyGlj8chbOQA63+EoX7BdQYfLBmDxIk8rF+/Fu9 q2LC/EwDGjVDluUV/KbSREIohIDvdj1xTgHMDSoxtO21h0GsVkEvwlyVIQtJaMaH2+ja D3WA== X-Gm-Message-State: AOJu0YyoXziU69SPaKWtY1uZmvBD1WuJIFDjcpmdgUjY/40PauV8Ui4A GJleBoAyIy30ietSOkjvm7ctTfvremFwBfMMgz3okXvaSz9XCwLHzb8TLrj4HP7V0lNqNpEEvoc S X-Google-Smtp-Source: AGHT+IEstS7kc7SyMyIlbgeC5GZU3Pzkh4u9326ew14GjN70UKhmkHatszxWPiWpe4+fhx/VKL1iwQ== X-Received: by 2002:a6b:cd08:0:b0:7d5:fe3e:90ff with SMTP id d8-20020a6bcd08000000b007d5fe3e90ffmr207390iog.0.1712849898846; Thu, 11 Apr 2024 08:38:18 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.38.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:38:17 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 239/437] watchdog: eurotechwdt: convert to read/write iterators Date: Thu, 11 Apr 2024 09:16:19 -0600 Message-ID: <20240411153126.16201-240-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/watchdog/eurotechwdt.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/drivers/watchdog/eurotechwdt.c b/drivers/watchdog/eurotechwdt.c index e26609ad4c17..e11b4acfa8ed 100644 --- a/drivers/watchdog/eurotechwdt.c +++ b/drivers/watchdog/eurotechwdt.c @@ -186,18 +186,16 @@ static void eurwdt_ping(void) =20 /** * eurwdt_write: - * @file: file handle to the watchdog - * @buf: buffer to write (unused as data does not matter here - * @count: count of bytes - * @ppos: pointer to the position to write. No seeks allowed + * @iocb: metadata for IO + * @from: buffer to write (unused as data does not matter here * * A write to a watchdog device is defined as a keepalive signal. Any * write of data will do, as we don't define content meaning. */ =20 -static ssize_t eurwdt_write(struct file *file, const char __user *buf, -size_t count, loff_t *ppos) +static ssize_t eurwdt_write(struct kiocb *iocb, struct iov_iter *from) { + size_t count =3D iov_iter_count(from); if (count) { if (!nowayout) { size_t i; @@ -206,7 +204,7 @@ size_t count, loff_t *ppos) =20 for (i =3D 0; i !=3D count; i++) { char c; - if (get_user(c, buf + i)) + if (get_iter(c, from)) return -EFAULT; if (c =3D=3D 'V') eur_expect_close =3D 42; @@ -369,7 +367,7 @@ static int eurwdt_notify_sys(struct notifier_block *thi= s, unsigned long code, static const struct file_operations eurwdt_fops =3D { .owner =3D THIS_MODULE, .llseek =3D no_llseek, - .write =3D eurwdt_write, + .write_iter =3D eurwdt_write, .unlocked_ioctl =3D eurwdt_ioctl, .compat_ioctl =3D compat_ptr_ioctl, .open =3D eurwdt_open, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f48.google.com (mail-io1-f48.google.com [209.85.166.48]) (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 21B9C17D005 for ; Thu, 11 Apr 2024 15:38:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849904; cv=none; b=NRRO6C6fjU0Er4hoxf9grgofNd155G92bwU4ppKpCe5MyfvL4Y2Y5aBl9nU0Leh3KWKCdVkesgjEr2nyVHEjvZj52HPuqjgATEv6IYyqV8JDwYQQdPtgDk3Y1G+PoOko/obKhIY0oDsApz18LqzHeMg1mFUwdwgndshGMDxZ7LA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849904; c=relaxed/simple; bh=E2wx/0FL1TQR0BsAabiuUfktTaJ7onkJ24+tyDM+ewU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=oW6Pxy9sNnAUO2zK0sIfjVSO4i0R6XDARDi4RAiMndvwQQf8BJDh+CrybZ/iH4+ZSTspyGuTP4XnFSSBeTvbsaKLCmN/IeBT6q2KqvpZm7ixqBMxqkZUZk4shAxafMDre3rd03drA2SLiO3Bw/5bBGlOSzB8nxNu+zkEVrluLzw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=cBOCkMds; arc=none smtp.client-ip=209.85.166.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="cBOCkMds" Received: by mail-io1-f48.google.com with SMTP id ca18e2360f4ac-7d6812b37a6so8991939f.0 for ; Thu, 11 Apr 2024 08:38:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849902; x=1713454702; 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=qdXV8ZsMH7zUbt3+z3Z9fZuxmHYAX1pvA/Y9quQEfus=; b=cBOCkMdsBOAcYmA6bitrpRVwtKBPwqSIB6WBeekRnbtnRqZUqmjvct2ECwB7nQ3dv9 4aUjWb2aQnqvds2IKjKw9Fhh2w7waSzgRO4SaIWjj+sKa4DoNQSa+lvO98kBOX45PuMB Em21HbW4/DULHz9Td9ZZZgZWUrq1jXKXWm9hd/JgQ+DaKEaBv633UZMN2ZiQ3hdx2y8Y tIbxSw5t/SiyVTUL9eI0lF61dac84RQBAY5oF3ulFlg7ahbqgBiiv7WGYpZFEMRPu721 P9vuxzXA8sFcbTJ1XMFUQEPLIuaVkY93sjy88sty9lrNxk7eS6nch1QaXHB9sGiVlIMc TbKg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849902; x=1713454702; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=qdXV8ZsMH7zUbt3+z3Z9fZuxmHYAX1pvA/Y9quQEfus=; b=c5fUEOP/d8pu01VHjZXty+uZsXlcqtZRq61VoMTD3+pRyVMIYfQVdgnAX57CyT8RWw Rx5dvFtqE2C4GVYXV3uQTiZ31VkO1GJ6MSQDBugulsl0F0rpZ7x0mOULJaMMyNL6qGvp l8X50+s4fqous7OFw0kXfqo/0olXcIOKnAr3QkFTVynphuHF3mlVgB2HyVCl31K8zeBD WYO9U3JL778SxzAd04hfTIA0U2s0Yxlt2v8lgbBKQTzy1DaWu7znl1767Ak1S1CLgSJe IUB9cdHAM9ljuovpXile3H76/sVFOb2Vz8BKcbre2v0mdQCpnVdA1TB1cUj2seiglznn pNXA== X-Gm-Message-State: AOJu0YydmK6trUVDvQxpDYkA8sF+0ddwZfkfRVBY+3AtxlCPudpa/Efu hcJcvgIA4B0sF1krg7feGsR+l4xNWztW7KnTtZ8zuVv64JuIPu+SS3KAs9BM2G/WTFNbOgbGLiI j X-Google-Smtp-Source: AGHT+IHZFZfM0kIu9pfljFzZLFycWuKGa7YxO9qmmY+N0Y1NVNfICo8J+2Ib/cobvcwvH2ZU+Xsj2A== X-Received: by 2002:a92:2912:0:b0:36a:f9aa:5757 with SMTP id l18-20020a922912000000b0036af9aa5757mr3588463ilg.2.1712849900494; Thu, 11 Apr 2024 08:38:20 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.38.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:38:19 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 240/437] watchdog: geodewdt: convert to read/write iterators Date: Thu, 11 Apr 2024 09:16:20 -0600 Message-ID: <20240411153126.16201-241-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/watchdog/geodewdt.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/watchdog/geodewdt.c b/drivers/watchdog/geodewdt.c index 5186c37ad451..2a0c904536d9 100644 --- a/drivers/watchdog/geodewdt.c +++ b/drivers/watchdog/geodewdt.c @@ -108,9 +108,9 @@ static int geodewdt_release(struct inode *inode, struct= file *file) return 0; } =20 -static ssize_t geodewdt_write(struct file *file, const char __user *data, - size_t len, loff_t *ppos) +static ssize_t geodewdt_write(struct kiocb *iocb, struct iov_iter *from) { + size_t len =3D iov_iter_count(from); if (len) { if (!nowayout) { size_t i; @@ -119,7 +119,7 @@ static ssize_t geodewdt_write(struct file *file, const = char __user *data, for (i =3D 0; i !=3D len; i++) { char c; =20 - if (get_user(c, data + i)) + if (get_iter(c, from)) return -EFAULT; =20 if (c =3D=3D 'V') @@ -197,7 +197,7 @@ static long geodewdt_ioctl(struct file *file, unsigned = int cmd, static const struct file_operations geodewdt_fops =3D { .owner =3D THIS_MODULE, .llseek =3D no_llseek, - .write =3D geodewdt_write, + .write_iter =3D geodewdt_write, .unlocked_ioctl =3D geodewdt_ioctl, .compat_ioctl =3D compat_ptr_ioctl, .open =3D geodewdt_open, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f45.google.com (mail-io1-f45.google.com [209.85.166.45]) (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 7210B3FE4B for ; Thu, 11 Apr 2024 15:38:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849903; cv=none; b=Ks1WzWV2tTzXw+h4ejlmYfHjZh22ZRXgk7gzC1+SYYr2XY+Qz8zr4eNVVH5WCZG9ZQSGlOsGRs2I1QXEbIbAABjF/Jh3WBy49ks71NxH3swL4O6Na3Rpl9H3xJrPg35qzapchfqGDUZjPP/1SWaLNIWAY9+vk9NqSd5aWZHXGok= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849903; c=relaxed/simple; bh=QkykjnyhiIsmqxTqNUJFbZcIYgen5qApI74Rmh1qFY0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=aDSClpMd8eldl2KrHIuIlFsY4NV04y3yvuToBpOd0MAmpbb45b14l6qQ1z2/I7+JwdT4/ra0/CI/7OEmHyWbEM5SLcx4xfrfGafkvXziRiH3ie/66yp0p/JvdUI3enwvu1qx4U7fPnTM1JhGsqVcKwNA9T7fuIsyG3n6Exs18Cg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=rXyI+QWR; arc=none smtp.client-ip=209.85.166.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="rXyI+QWR" Received: by mail-io1-f45.google.com with SMTP id ca18e2360f4ac-7cc0e831e11so170556739f.1 for ; Thu, 11 Apr 2024 08:38:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849901; x=1713454701; 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=3feDQWPp0h4HB2jNcmqUMgdeJ8japBxB2SfPZpWZN3M=; b=rXyI+QWRzjv/1Ip4BcK7l343U9F7UCXR7eq2F4XlzgDhfSCoS5WDh3X0q7QSd1/tL0 gd3iCzTndf2ZOLJJMmV728jMZCPovS2dGdlsstjAXeS4GIyh1Sb8UTEL56OprcA7PtyT 5y9mzIVlC6pLFWQ9lUI9u0ae9+Z0oy+KwERRAUkt6kVnpiURaty2dWai9zuPGp4NZKXL afD7uDrDm2jtddckRKbumvqeISBJIm5BNIH52mf27PhRaV/2e0HEMtnhesQEOMBzAqDE W76rs+HRlHHO3H/rnpBb3KWIj5rQ5KTK+NwgSdhEycRsZNuCnjcjwVk0ggpWZSsxgMzI hS2w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849901; x=1713454701; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=3feDQWPp0h4HB2jNcmqUMgdeJ8japBxB2SfPZpWZN3M=; b=IwkEUrysn66rzdq8ChH5dc4pLZVF/FouSYspvKwJ1E6KD/2KipGzC+Tk3HbUMpzwhk dYs4TE2LEaT2xVnwlAJDR3LaKhU0s1VKNM23r8+aupgh1AWV9unHjR7mDblT8pkkz47G tACOFCN4OAEg895Nisk7aNttj7c9zOIcz3X9jc/Z5RtFeHmFc3BK/7bWpYgQe8tGYeZs flw1TS9hPe2BwYZANNp4cGHXS/CUBM075MUYb0vPpcTypdT00FrjfUxDjUKPWfv3b2Yk cyDbYXkV5sQx1x6z2ZPnAGOmR50ZmgmkX7ws3VScmvVEnjT+QwCY9Air2Fn/ecXWWZUU Gh1g== X-Gm-Message-State: AOJu0YwkzJY94pQ3GeWX9rWsPnyM67k71/tAddA9Nhh4wZH01xkPukEN cZYD8uLwnlZA6Tf6nzO2xd82y1lGXsJi0Lm2ZtfhN9QPqvhGmDCrBrC1iBoJMy+yedutJ1zqcLS x X-Google-Smtp-Source: AGHT+IFK/kmmEeAD+Q+Gz99Ep0sisFLM6Ckl7gV99dZbTFVo2hKKE2rkIT0pfK+XOPDrblDiAfohGg== X-Received: by 2002:a05:6602:21d7:b0:7d6:9ddf:5095 with SMTP id c23-20020a05660221d700b007d69ddf5095mr22163ioc.1.1712849901349; Thu, 11 Apr 2024 08:38:21 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.38.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:38:20 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 241/437] watchdog: ib700wdt: convert to read/write iterators Date: Thu, 11 Apr 2024 09:16:21 -0600 Message-ID: <20240411153126.16201-242-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/watchdog/ib700wdt.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/watchdog/ib700wdt.c b/drivers/watchdog/ib700wdt.c index 39ea97009abd..e5daeed9cd5c 100644 --- a/drivers/watchdog/ib700wdt.c +++ b/drivers/watchdog/ib700wdt.c @@ -141,9 +141,9 @@ static int ibwdt_set_heartbeat(int t) * /dev/watchdog handling */ =20 -static ssize_t ibwdt_write(struct file *file, const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t ibwdt_write(struct kiocb *iocb, struct iov_iter *from) { + size_t count =3D iov_iter_count(from); if (count) { if (!nowayout) { size_t i; @@ -153,7 +153,7 @@ static ssize_t ibwdt_write(struct file *file, const cha= r __user *buf, =20 for (i =3D 0; i !=3D count; i++) { char c; - if (get_user(c, buf + i)) + if (get_iter(c, from)) return -EFAULT; if (c =3D=3D 'V') expect_close =3D 42; @@ -257,7 +257,7 @@ static int ibwdt_close(struct inode *inode, struct file= *file) static const struct file_operations ibwdt_fops =3D { .owner =3D THIS_MODULE, .llseek =3D no_llseek, - .write =3D ibwdt_write, + .write_iter =3D ibwdt_write, .unlocked_ioctl =3D ibwdt_ioctl, .compat_ioctl =3D compat_ptr_ioctl, .open =3D ibwdt_open, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f42.google.com (mail-io1-f42.google.com [209.85.166.42]) (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 BCFF917D02E for ; Thu, 11 Apr 2024 15:38:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849906; cv=none; b=VxVzesLS85FZQ9s1+o7pf8UNAb4TJg9a/c8Z8x6k+wwcGaUy69DszlvqZaCCb/bkM/xu1S4oV5TSRb+6/zOm3XQ2kvMqFliM1eV99SIzAICjNi8O/3rDOku9Q9hAD3e5rE6ezkSvfW9zH45Jwe5R70jrp0BAHNVLG9rFZ6wadCE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849906; c=relaxed/simple; bh=N4nExDWA7OmsTzkEctqwF2b4RV4IXx38lL/NmgBXH/w=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=RXQXXLdPJfNwh8gERWdnIQ5ZHHIjEEac3jLDkb2epQhc7629SaiLc3Lg+YHdOfLxqKU8F/hRWugVzLhq40KUn0DFJuOP43b3GCieJJQjQMaRiDjgo2bmOmUqQtgf6qAdZ1MFWqE28FBcKQjRqkP2pMH151O323pVbT75E/z1i7c= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=C9HpiM9R; arc=none smtp.client-ip=209.85.166.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="C9HpiM9R" Received: by mail-io1-f42.google.com with SMTP id ca18e2360f4ac-7d5ed700c2dso16196339f.0 for ; Thu, 11 Apr 2024 08:38:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849903; x=1713454703; 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=KuUzYYjLzz4CaZgUUCfgVZo9cOAScMQAGckrv6qJaRc=; b=C9HpiM9RVc1Oz/vSYIUaZ6/kQceRidt0B1ke/2Cx+7Esi7KVGD7DmEspEvCnPLmxGy dWATAcyGlEFjYXTVj8qMyEaTX7wRn43FHNwqfi/+IOtwCMCvrOyqRA7Zcl5i+p9pF+vR QcGkZffCRzlFhQy3aGYY67xLsEl98q5RZK+5mxrXKC1IAECSSrs2vGFP11Qo8sxTvHJG CntsrsWjsEoOJJHshpcv+xhy7adyN3HI+xh4T9EpWg/2UsSjA+wF5Pr8GNMhuw74uMB/ ag/VIh80OD9Rzh8x1AWf+VOFfd5GyUuXDaZO94UQBDB5XA38wQw+bqIbHDhYmG77MSSz wZHQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849903; x=1713454703; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=KuUzYYjLzz4CaZgUUCfgVZo9cOAScMQAGckrv6qJaRc=; b=KjDYDEPjp1ZrcOiC6jl1s+bPYsOxRJ9nHnZOjyIHrwQFANPb7m0p9pyQ8KajCz2yzz 4gPKbJnCRSIBQ8QrXEXWGa1oNZIAwr3JEEfrml4iHJHLoFmR5xcJncKMBZjns5yAQX9z RTDRw1S5NXgs6oNX25Xq4rrL6iO5vhX0miuKaJKjCQmOnpVo8KGE5AvkteQPOt03R/qi oQMtinuTBBTD8sXCrqBKaNNmztwTMzjScVNFE5uE0gAqNEK4P29AuGezpydTmwHkqor/ LgRds6hwYXpK6FtScdraqRFKUhh9AJERJ1X026sl6Xm1zxMPanjq8N93ncnJIdlUlNeP xMUg== X-Gm-Message-State: AOJu0YwX+KpPJ5H5IvwBDKeVDtJeI72kighetSXAaAsTMXiNriT0ocdT LFcYVmGigrsYbOKKtV8knGC8cD0nDtuh+CREyBSrEpqCZoHCOqqoUoLGet9EJRaISMhO0NqnOG+ L X-Google-Smtp-Source: AGHT+IHTpawGEPV0gQ3wIVBu/3Mu7Yg9/nvQWbK3jXBoAd38lfG/nreJRNcDYM8bsAIU7XoCZROtZQ== X-Received: by 2002:a05:6602:38d:b0:7d6:513b:254 with SMTP id f13-20020a056602038d00b007d6513b0254mr191847iov.2.1712849903603; Thu, 11 Apr 2024 08:38:23 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.38.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:38:21 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 242/437] watchdog: ibmasr: convert to read/write iterators Date: Thu, 11 Apr 2024 09:16:22 -0600 Message-ID: <20240411153126.16201-243-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/watchdog/ibmasr.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/watchdog/ibmasr.c b/drivers/watchdog/ibmasr.c index 6955c693b5fd..6f0931f33a6d 100644 --- a/drivers/watchdog/ibmasr.c +++ b/drivers/watchdog/ibmasr.c @@ -243,9 +243,9 @@ static int __init asr_get_base_address(void) } =20 =20 -static ssize_t asr_write(struct file *file, const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t asr_write(struct kiocb *iocb, struct iov_iter *from) { + size_t count =3D iov_iter_count(from); if (count) { if (!nowayout) { size_t i; @@ -255,7 +255,7 @@ static ssize_t asr_write(struct file *file, const char = __user *buf, =20 for (i =3D 0; i !=3D count; i++) { char c; - if (get_user(c, buf + i)) + if (get_iter(c, from)) return -EFAULT; if (c =3D=3D 'V') asr_expect_close =3D 42; @@ -341,7 +341,7 @@ static int asr_release(struct inode *inode, struct file= *file) static const struct file_operations asr_fops =3D { .owner =3D THIS_MODULE, .llseek =3D no_llseek, - .write =3D asr_write, + .write_iter =3D asr_write, .unlocked_ioctl =3D asr_ioctl, .compat_ioctl =3D compat_ptr_ioctl, .open =3D asr_open, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f54.google.com (mail-io1-f54.google.com [209.85.166.54]) (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 691701C6602 for ; Thu, 11 Apr 2024 15:38:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849908; cv=none; b=OSI7DJyS6j9JgICq4grmxvFmQiDJzQTylMddsp7gl7qkX517dlnaRLX+gn5W9hQ0wDTq2nKSWqqN0kGQFXTboa010I2JlS+MfbxYs9YiMWlt8eE7+luA6oKfzqPRH8zQ0x1ahdGcmCmiZHqVzLFEJOZoYIEf2zxPoiaOvG6qkTk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849908; c=relaxed/simple; bh=+94MxtKY02TZlqNeg+4IQ4Lt/c63Jz0sgjsSICoX8B4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=pTmnb1UIfYkd2v5NkqAovJToIzSxuRWUByd2SMt59z5Htmx4OXlIYd/hdeR3QSez/ufnoonAhtcfUroE4LnsbrHdDoXPz95Jpj1kWHdl35DzIYEiecM7lMseto1E69+WoyNduVtsAnLYLo1HqKRI/CxGtSgDh68MspmVnVgfK6o= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=wsrWXzkU; arc=none smtp.client-ip=209.85.166.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="wsrWXzkU" Received: by mail-io1-f54.google.com with SMTP id ca18e2360f4ac-7d6812b37a6so8992839f.0 for ; Thu, 11 Apr 2024 08:38:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849905; x=1713454705; 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=okoTn2nT+86tQe7VPgwHrzIkRc/ZO+p8AbDzoheVfL4=; b=wsrWXzkU7JnvR+0R8/sy4OdRon8LU/WQ8D3BS9Ho9WCGKQZSAf8Evp5tinuK9lFVye 9jIcoDOoVcFAMTBIC0nMpa3fWOGPWhay6Xg6st/B5O5/C1e7yori1bNg2GqzdB94M53q z5RsJuTZ60LnrBDrpf6lopVSiSbDmr8Cmz/kf+Tlz+PjRbTyr10tQJEGOxquSP4hfeWP THfJ3StgYzFjzc7ikgoVhMe3EkgXS0Y1hxaDsZ5pxrYD20I1ncAPgAnypXfK+uk7C3Ht iqSkldhVV7qUn2W6RLYjXP7p2ynAiJuaxFYZkZj3H2WGIFSXBrS2aSmLCpK2G1NtR/xO Bnxg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849905; x=1713454705; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=okoTn2nT+86tQe7VPgwHrzIkRc/ZO+p8AbDzoheVfL4=; b=ZfMnKSORXFsBFiLLFKI0lCkfq/7oyunvbyZYvSrFQ/G/6O8hyxXyCnyzqjZwzetzDL c14btY5OCD8X4ZA2/I182yVpxlWPGtR0O31T0XDC8mPOGrrvg4UeZTN4bEE+B5FOUuRg foQCovPv32dsUPPwAdsq8Jli89DZMmgUKL9gw03SLtSsgYRVbM3wenQoaEAh1c4dV/mZ ZsfAD5QF4z5eWvzlpXB8KNoBUHECeUmmQADoiKGp3zEtoZGCyjar5Aa/xcv2XjZD3iGw k/V/YNrSwV+wAWL+NQGdDR+8fo0i6gfXHO7L8qN8gUFthezE4XkfgsXOksdnFqfq2skL PRyA== X-Gm-Message-State: AOJu0YzNZRgdOeQQMbjXomiZXV1kJFCVG86n5EJOFJTzCRCmA/RuU7Zj 862SySwAxxkFYI50iEbW2rFn47H+ZQlAVscTbe747jpnUsA6NrAatstjbzfMjfCcR7LgUpxyQS7 x X-Google-Smtp-Source: AGHT+IHN413/KGhGH+P2SZGFF1t47mQR+8MCJqu+pikWgOAYPmclAXnj/11pjI+ZT/4cRVXwUItaqA== X-Received: by 2002:a5e:9907:0:b0:7d6:751f:192 with SMTP id t7-20020a5e9907000000b007d6751f0192mr186912ioj.2.1712849905221; Thu, 11 Apr 2024 08:38:25 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.38.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:38:23 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 243/437] watchdog: it8712f_wdt: convert to read/write iterators Date: Thu, 11 Apr 2024 09:16:23 -0600 Message-ID: <20240411153126.16201-244-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/watchdog/it8712f_wdt.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/watchdog/it8712f_wdt.c b/drivers/watchdog/it8712f_wdt.c index 3ce6a58bd81e..897f312eb5c9 100644 --- a/drivers/watchdog/it8712f_wdt.c +++ b/drivers/watchdog/it8712f_wdt.c @@ -228,9 +228,9 @@ static struct notifier_block it8712f_wdt_notifier =3D { .notifier_call =3D it8712f_wdt_notify, }; =20 -static ssize_t it8712f_wdt_write(struct file *file, const char __user *dat= a, - size_t len, loff_t *ppos) +static ssize_t it8712f_wdt_write(struct kiocb *iocb, struct iov_iter *from) { + size_t len =3D iov_iter_count(from); /* check for a magic close character */ if (len) { size_t i; @@ -240,7 +240,7 @@ static ssize_t it8712f_wdt_write(struct file *file, con= st char __user *data, expect_close =3D 0; for (i =3D 0; i < len; ++i) { char c; - if (get_user(c, data + i)) + if (get_iter(c, from)) return -EFAULT; if (c =3D=3D 'V') expect_close =3D 42; @@ -342,7 +342,7 @@ static int it8712f_wdt_release(struct inode *inode, str= uct file *file) static const struct file_operations it8712f_wdt_fops =3D { .owner =3D THIS_MODULE, .llseek =3D no_llseek, - .write =3D it8712f_wdt_write, + .write_iter =3D it8712f_wdt_write, .unlocked_ioctl =3D it8712f_wdt_ioctl, .compat_ioctl =3D compat_ptr_ioctl, .open =3D it8712f_wdt_open, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f51.google.com (mail-io1-f51.google.com [209.85.166.51]) (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 E94E11C660A for ; Thu, 11 Apr 2024 15:38:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849909; cv=none; b=k4fMBldaHyb2KtdN65RjXpvPAIMjT0BHfmDyaPPUVFlkzBDBVf0x+07HFqdwJrWLt3H1ECBIMBwSRwJX7a62u71np9T4f7kCdSmTlc68yPY/txKKRYM6Zs7p+Q0EVSfUAAqTwGV/TywEfxVDspEwz5Ut0/Ut+ArKJEDFvH9E414= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849909; c=relaxed/simple; bh=ljM+THJt9ckIMz7+H38GYD20ieLBnVjWZXbkjayQiHY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=F3qRJuH78TDeXHfkWJsUA6OmAYnsxt/aS2zTvHFBIj/MPBhcVv6XrVlPEL2vLtdi3GbRYFEh3OJvRFW+0z2jRhTi6w6xnWTfUeQI46TV6vhIxllfKuDr+J0FjZxHXdvQ9LIH6MBIk78U6mXxVnk0wu/0unD1E8iW6o6qqYRtYvc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=eCVyoydJ; arc=none smtp.client-ip=209.85.166.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="eCVyoydJ" Received: by mail-io1-f51.google.com with SMTP id ca18e2360f4ac-7d6112ba6baso58133539f.1 for ; Thu, 11 Apr 2024 08:38:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849907; x=1713454707; 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=QehkgIXotruTVsg7DERL5D7J+WaSkDbqFA6PyqD6gNU=; b=eCVyoydJClPhgvzoa98MtcukCqYCbaHRDtb7+8/ZzxZCsvescIV/hePT+gOlIpiNcq BKI80zRbmSTu/azuftk0nqrd71b+t82PboJzkFdk1rCjCM4gACj5UQEAWNtxw9jiyjjE deFdF0YNcv3u8EndpQEVJv+XoJmzOWeXpN0qB+sWzJEMkZBa72KAmjfLADb4fGC61nCa f6WehYP3eC3Z3KuZhzS7F32Fa2zkAGax5BKw+KYZefbNZsjOH9vUPC4fKvYbQjli1WIq 4IJmEc+lY2OajUJoyTyvxrEGXmovCGr8ysqvZUfde1pHXlzWUsSzikHq/H7NscMrrlBM Hn8g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849907; x=1713454707; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=QehkgIXotruTVsg7DERL5D7J+WaSkDbqFA6PyqD6gNU=; b=ACqVu9IhdQYpLiDgz2IMRyTdnDIpjrMumoCByv/8jTHQI/dlubN42/4k0ziPd5+FtK NpMtplIp2Mf/Qf71zPc+CeVc6qo6ppwi2bJgBCnDRkDW15Y3tbuLi7IZ6vZGsyl8R57i ScT3h3pXTqvOLqeWN5Ps7x0nSuUzMi6DCw4Jiq9Ecjlo2CrAamL0Vs1X55KJWK+E6AfN ALeplcg9B0rFlvU/QoFhibbaqr5Z3LNdsTAFdwdMGFIErRZRzAW/h5q9uIn/rDh9fB/P pP1uhowGExOC1xC6p8JYcq/XgzLgZvzdn1+cgiDVSkaIuc6tkU2H/2ASahinCvELPApo VBOA== X-Gm-Message-State: AOJu0Yy6zz3kaj1rPNrAg01BJdsjl1ObOYtxBa899Uwk1uKj7C4Buv2E 6kPIRnAd8Wor+yVYv/oQHeKvWSkl0y+/a5oMCrK8pIdlpQcwlc+ixcAaL8M+25nJlyS4ZjYs+Hr H X-Google-Smtp-Source: AGHT+IF1UdoMhnDJSYWjhnlLX6od0W4qUpS6aX3gzGu/DBr8cPEhCqdE+q3VLxzqDwODTbnwvt5+qA== X-Received: by 2002:a6b:cd08:0:b0:7d5:fe3e:90ff with SMTP id d8-20020a6bcd08000000b007d5fe3e90ffmr207639iog.0.1712849906862; Thu, 11 Apr 2024 08:38:26 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.38.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:38:25 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 244/437] watchdog: machzwd: convert to read/write iterators Date: Thu, 11 Apr 2024 09:16:24 -0600 Message-ID: <20240411153126.16201-245-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/watchdog/machzwd.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/watchdog/machzwd.c b/drivers/watchdog/machzwd.c index 73f2221f6222..c36a0a441c2c 100644 --- a/drivers/watchdog/machzwd.c +++ b/drivers/watchdog/machzwd.c @@ -262,9 +262,9 @@ static void zf_ping(struct timer_list *unused) pr_crit("I will reset your machine\n"); } =20 -static ssize_t zf_write(struct file *file, const char __user *buf, size_t = count, - loff_t *ppos) +static ssize_t zf_write(struct kiocb *iocb, struct iov_iter *from) { + size_t count =3D iov_iter_count(from); /* See if we got the magic character */ if (count) { /* @@ -282,7 +282,7 @@ static ssize_t zf_write(struct file *file, const char _= _user *buf, size_t count, /* now scan */ for (ofs =3D 0; ofs !=3D count; ofs++) { char c; - if (get_user(c, buf + ofs)) + if (get_iter(c, from)) return -EFAULT; if (c =3D=3D 'V') { zf_expect_close =3D 42; @@ -360,7 +360,7 @@ static int zf_notify_sys(struct notifier_block *this, u= nsigned long code, static const struct file_operations zf_fops =3D { .owner =3D THIS_MODULE, .llseek =3D no_llseek, - .write =3D zf_write, + .write_iter =3D zf_write, .unlocked_ioctl =3D zf_ioctl, .compat_ioctl =3D compat_ptr_ioctl, .open =3D zf_open, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f54.google.com (mail-io1-f54.google.com [209.85.166.54]) (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 76F441C6614 for ; Thu, 11 Apr 2024 15:38:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849910; cv=none; b=iHJAGSmOt9loMg3EmG1YNKJd6M6qFxssSY301uLXREY0V00dHpcShlMwzomGvUlVse5ovcu2RJQkK3jegfegobY0vdtwD1uqM0laP3qNP2AQw3fgzLwkh4+SJRmHSwI8p1vH5Cy4aq5fdj5mZf2o79bo3eR3+gX1gbjqzIRCtlU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849910; c=relaxed/simple; bh=+IwXRNokeWhuKQAbLUvjR7gXm5aqUPimPCYVp+GDpH0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=d3r27vlCwIY0qeOIUF8Qcjcxx9eBIscvxxNUkCIE0NZelQVpnSBe6GlV2tViqEfXwQdQg+rZ780oOtW/mxdNFk9j6OT10eLsbIHS7ZgKXjXAfRIChUIysOo4SPofKMOfIYa//kqw/ijRkIxDEnDmeUEFD8PRanBDDbpJAV+YhJI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=l/6us2eA; arc=none smtp.client-ip=209.85.166.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="l/6us2eA" Received: by mail-io1-f54.google.com with SMTP id ca18e2360f4ac-7d5ed700c2dso16197739f.0 for ; Thu, 11 Apr 2024 08:38:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849908; x=1713454708; 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=+wBNOT3qBs3L+vPl85zEaCnmdS1VUYoqA6qMqegfI90=; b=l/6us2eATqk53WQ76S6+qcXtvHXbhNVv7QpFVxgZEhLSj1UAncR58rijRR3QCPUjgK LDd5QU+PcZZrIdLMKqxgVlpMx9UeBXPb4e/c00uC6RfU0rVLPPX7+rJd7kRBm3EIbrKy OmYUH/zOskFHtDh7r7auZ0m27DFDgbQKV++YyYDgjG7VEj14PqCCvclEKcnM0V5SszV9 pvauRhC+nm98OdCVD9vpXIh7iYPsjz3kbgaai60cZkkrepUPkSw+3DMoCtzdfGMqwvsg XTwriL1iFTZVyE4ayHP25yCqtWD7FDYaPnH8KhGPEyYgo38G4O7vncxiyoiHTi9wn0rd DsQA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849908; x=1713454708; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=+wBNOT3qBs3L+vPl85zEaCnmdS1VUYoqA6qMqegfI90=; b=GhFN6wWA2ZuhIuppuyqDnjyoVtvhgkf49EGIN3+T1MzZhLCbXRBMkvsqWcwfXPVTDI DsxBKMBG3S+piioKMVF0Z34y33pZkKP3dDJ72ilB580uXMhBiLdt/oBCG432TLsBwwWp bytsW8Lv/rQuOL7U5qIPEeo3gTO06xKBsrLDPODYdW4XIamx9LdlaXJM6u3SahV4TsnF WP07Nu+bgLUwsNjtLiAzViRsPTbPQiWklW0J/LHKeKOE5X0P8YybCRV/mzLA4+1L4mLs hGRwkSW2lTsVTuFvCE4kaetxtzYVAWU6oS0hXsfgnBw7fwFfrjLQL6GFdtPovydsxRDy 90rw== X-Gm-Message-State: AOJu0Yz817U6NGZXRNeXSUhrdfkEmmDHMRI3LwLQ6fDjn7y9dxUMg1hu Z+7Y9HG8impvUfzjPM1tXv/X8y3YKqmMrtC+zMs10qUa9KOmNUuVGIDgkcNB6apYwl/4Ol3Ruxu x X-Google-Smtp-Source: AGHT+IE/oCPwP51bVh8500g6VRMlGGJDRvP9V4RPf/6KCltUvCCQGADu8MDv2+0V4UJo1Ewu/sYiWg== X-Received: by 2002:a05:6602:38d:b0:7d6:513b:254 with SMTP id f13-20020a056602038d00b007d6513b0254mr192183iov.2.1712849908351; Thu, 11 Apr 2024 08:38:28 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.38.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:38:27 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 245/437] watchdog: mei_wdt: convert to read/write iterators Date: Thu, 11 Apr 2024 09:16:25 -0600 Message-ID: <20240411153126.16201-246-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/watchdog/mei_wdt.c | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/drivers/watchdog/mei_wdt.c b/drivers/watchdog/mei_wdt.c index c7a7235e6224..c930fb5b8fe1 100644 --- a/drivers/watchdog/mei_wdt.c +++ b/drivers/watchdog/mei_wdt.c @@ -491,10 +491,9 @@ static void mei_wdt_notif(struct mei_cl_device *cldev) =20 #if IS_ENABLED(CONFIG_DEBUG_FS) =20 -static ssize_t mei_dbgfs_read_activation(struct file *file, char __user *u= buf, - size_t cnt, loff_t *ppos) +static ssize_t mei_dbgfs_read_activation(struct kiocb *iocb, struct iov_it= er *to) { - struct mei_wdt *wdt =3D file->private_data; + struct mei_wdt *wdt =3D iocb->ki_filp->private_data; const size_t bufsz =3D 32; char buf[32]; ssize_t pos; @@ -504,31 +503,30 @@ static ssize_t mei_dbgfs_read_activation(struct file = *file, char __user *ubuf, __mei_wdt_is_registered(wdt) ? "activated" : "deactivated"); mutex_unlock(&wdt->reg_lock); =20 - return simple_read_from_buffer(ubuf, cnt, ppos, buf, pos); + return simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); } =20 static const struct file_operations dbgfs_fops_activation =3D { .open =3D simple_open, - .read =3D mei_dbgfs_read_activation, + .read_iter =3D mei_dbgfs_read_activation, .llseek =3D generic_file_llseek, }; =20 -static ssize_t mei_dbgfs_read_state(struct file *file, char __user *ubuf, - size_t cnt, loff_t *ppos) +static ssize_t mei_dbgfs_read_state(struct kiocb *iocb, struct iov_iter *t= o) { - struct mei_wdt *wdt =3D file->private_data; + struct mei_wdt *wdt =3D iocb->ki_filp->private_data; char buf[32]; ssize_t pos; =20 pos =3D scnprintf(buf, sizeof(buf), "state: %s\n", mei_wdt_state_str(wdt->state)); =20 - return simple_read_from_buffer(ubuf, cnt, ppos, buf, pos); + return simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); } =20 static const struct file_operations dbgfs_fops_state =3D { .open =3D simple_open, - .read =3D mei_dbgfs_read_state, + .read_iter =3D mei_dbgfs_read_state, .llseek =3D generic_file_llseek, }; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f46.google.com (mail-io1-f46.google.com [209.85.166.46]) (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 1D9A31C78A3 for ; Thu, 11 Apr 2024 15:38:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849913; cv=none; b=R3Qfqt1NEpCv/9HeQrbKPnCoS4cDhXVRdL7LnnmhAvcDoVx/auZGVk0UYgZQov7u38STSLolvYJ0WNKSp/RGy7KR+K9WK6R2Cy3EncM15r9pLxuWlZ0DUoFo/BZTzuOxll4oD035V1u+/+uacKObkuzX7yKrgs+CwJ6N+KugEXc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849913; c=relaxed/simple; bh=BasxfhQEod1bJbCsdbb2lOU/at88LePhdvuBSWPDt+8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Ul7CME5s3/manVRHZkkhJlT1/Zt9tWdpfU7oF0c4wRj8WGC5qPPCIgrOiU9uoedIhWF2rUQBjmOh5nJMRhpG2fhKz/lC6oXaV4RE7/Qec/4SCuARQeeoLhP9ukrVWzRrke1AyNYUjVeDruQFsLH14wgFgRFLisZEHTBwOb3Hbpc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=WffN6EoQ; arc=none smtp.client-ip=209.85.166.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="WffN6EoQ" Received: by mail-io1-f46.google.com with SMTP id ca18e2360f4ac-7d6812b37a6so8995639f.0 for ; Thu, 11 Apr 2024 08:38:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849910; x=1713454710; 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=5wyltxKqyWDKiScpm9eN+uoTYMnZ87KTKt8KHo7rP74=; b=WffN6EoQNThbn27nDgh3ZhwR9HzUyCr7FBcnuEHijBqFoZYeTSADnlieE8ifYfWXvC k6AyuYku4yttTRiWQwzxH+6WDiw+4dcQWTSFur6UdcSIt/k6hggAkIf16dKBGa1CvAnk db8Eeq5SFI2cLjUd3yg5D73T3DUrt3qrAlc8GWj1wZCuqr73KCVgaiqDi7KUJTqpcWfD K2Bs3BV2H5FFw1TxUcaxJ64Wkcnj12vzjQIKuTj/VAPBzP+DkldjA8+cdzvESPDTlGiG QlQXnazOqMW9yC/UsbV4bISp2zGdgJhT/Fcw+ISekjAUE0aOySZlKqyVYupaqMAX4I9G fBsg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849910; x=1713454710; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=5wyltxKqyWDKiScpm9eN+uoTYMnZ87KTKt8KHo7rP74=; b=J+2nL1UQJ0ZWjvWLXOHLp7wAWD8FsEcgvKcE23NM3bvy4EFgQOiFOxRb54Hat35Tz4 ieuSkx3BB+HcMWC276VMU8pB8oWPQd8i+eAMIfIAthqtLLr/2xPUePrarRsgY01WT9pK j4P92LAnEVtAMzh/PA/a1eykxWpYzkluTWnbWRS2pRhXbTHD/p1i1FPWxx/POwLpQF8S t7eKu6o6fgnZ+tiI+Ixc7SG9fHtE8UbaXjP1Byk+W9LqVc8mH4ke7oAinWBEp1+tvFnJ vUACzd6nh0OBs+sHH+vUTjfkoYLMFkaQtELTIzImGXIhgqo3g5kHihxfjl+21qiBqou2 tZHw== X-Gm-Message-State: AOJu0Yxx0vsCl2vKbm73o7cnqwtUf4JknYZr0fxH8jn6uTQqrE9RVUhA 26uISbgv5y3teV2SZYLaOarTuSyzD99Um3D1J/b7iLZgo8uk6C4ZRejr9XdkSl7pURfOxkOMOjC M X-Google-Smtp-Source: AGHT+IHgbydv83su+kgFyC6+IcuI6zRw/TO/axqCwmPZRj/J1EA/dAJi7AAFXUYX3xeR5zxVdpX4rQ== X-Received: by 2002:a5e:9907:0:b0:7d6:751f:192 with SMTP id t7-20020a5e9907000000b007d6751f0192mr187141ioj.2.1712849910038; Thu, 11 Apr 2024 08:38:30 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.38.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:38:28 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 246/437] watchdog: nv_tco: convert to read/write iterators Date: Thu, 11 Apr 2024 09:16:26 -0600 Message-ID: <20240411153126.16201-247-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/watchdog/nv_tco.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/watchdog/nv_tco.c b/drivers/watchdog/nv_tco.c index ac4a9c16341d..e9535ba7eba7 100644 --- a/drivers/watchdog/nv_tco.c +++ b/drivers/watchdog/nv_tco.c @@ -174,9 +174,9 @@ static int nv_tco_release(struct inode *inode, struct f= ile *file) return 0; } =20 -static ssize_t nv_tco_write(struct file *file, const char __user *data, - size_t len, loff_t *ppos) +static ssize_t nv_tco_write(struct kiocb *iocb, struct iov_iter *from) { + size_t len =3D iov_iter_count(from); /* See if we got the magic character 'V' and reload the timer */ if (len) { if (!nowayout) { @@ -194,7 +194,7 @@ static ssize_t nv_tco_write(struct file *file, const ch= ar __user *data, */ for (i =3D 0; i !=3D len; i++) { char c; - if (get_user(c, data + i)) + if (get_iter(c, from)) return -EFAULT; if (c =3D=3D 'V') tco_expect_close =3D 42; @@ -265,7 +265,7 @@ static long nv_tco_ioctl(struct file *file, unsigned in= t cmd, static const struct file_operations nv_tco_fops =3D { .owner =3D THIS_MODULE, .llseek =3D no_llseek, - .write =3D nv_tco_write, + .write_iter =3D nv_tco_write, .unlocked_ioctl =3D nv_tco_ioctl, .compat_ioctl =3D compat_ptr_ioctl, .open =3D nv_tco_open, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f41.google.com (mail-io1-f41.google.com [209.85.166.41]) (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 524651C78B5 for ; Thu, 11 Apr 2024 15:38:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849917; cv=none; b=AkkJ9K1BY94GGBTdxWHJCNp9h7BMLqSAEP0cp+u8ztUtIaSB0Rehe0uGTocEzSTTH/Ljv2XNoBE6tZ+rObqNKh3TI8lSOdrR1Z4SdxWPi6oyNJv8EDWnBFWJ5jSb7miZLVPmBsdoRMYsrh+PBR0/87q25W/fiU0tMFoWDgtewv8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849917; c=relaxed/simple; bh=JyrSgEWmnB0+i/PGcTcMfPot7iUEdAjZpBOz2oR4uRM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ZSM7KcSuELclfZrYZWaSybw9+h3ghyP4HnfsdRnNYtTZE81eutl+Lc8ALYvLHg7ztbIAKr5WgvkTYHb766BDtgqmUhfDDsqTWo+XOi5AdjVcSpFF+trUSHwoSaj/4EbCBGcGLplPVGcmkddV/kiMuP1AP8SH43M0hd7LZ0jXmnA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=gtP14Zat; arc=none smtp.client-ip=209.85.166.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="gtP14Zat" Received: by mail-io1-f41.google.com with SMTP id ca18e2360f4ac-7cb9dd46babso81847039f.1 for ; Thu, 11 Apr 2024 08:38:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849912; x=1713454712; 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=NlOUr1EzAS7CVoLA5em7+gghkhMr/unbCXEUYj4vSEc=; b=gtP14Zat11c7wFb25K2uBlhuTM3HKWEtDGklZO3ch7IY0h89XLIo3H7Sk0tPax8Po3 uUCAIUZjUe+FUbaPdInUQHMB46v6SLFwbY4DqPR7c7Cb7lzeKcQBcYSLLcFYTDoraCEP Skx/SqbijLZI14FeFLlgmSPZG2b4ranJdkwj4IN6ZMmt74yW32d4XsF5XhMxjufyZl/N M8p/s54ZU75qSfWwoPIShXLCTNFF3vDkdmsIDx3YJvqNLGmm40qbd//JkdWtGguiTLm9 vmmdYMi8w3lRuTe4NkGxE1ySwilP/kD3vbOQGE3leua+aZQNHfolJXWHj7oa6B7+tBXl PgNg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849912; x=1713454712; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=NlOUr1EzAS7CVoLA5em7+gghkhMr/unbCXEUYj4vSEc=; b=bDjC1w9ocb141uwLExmzq2xeMoU9ubPDX8RgQGjRZlVOJypHmI93ZbOmDzrCnb/4oH yYebcbI2SdxcKY4xWXfbwZ/3LEq23cL59Rat0rc6wXbej3mmUjNRkjXOw619wv+Z9HoA 5ZU+TI28ZgXqLgZ0a10oEA1HBGX8+mU4VquZmopd7Dz8APgopd9MDuJJ6mwGEfBneLYe PyzK0q0fYYJcS0DaTj1sz8y/f3S31tJm3nlijxQ6v0DugsxZPBOsc+qvd2cLBYyXrBya ZpEk+ahO3nOrotqLYErbnsQO3Q0MHGIhE1zUsoEkHOllMP2NNgQAcWdn5g/2xf7dfDRo YWFA== X-Gm-Message-State: AOJu0YxuaoiPQ15U6L/V9Gta3ZUrscYJaJ4WctdX8AibI9vhUGuVMuT2 NNC6sseazH0OwsuSiulqJqggGTD+4dy2vIOPYCynIyGuK1QWVsWnrmKM7gyuLQVI76D5vL5mHaq M X-Google-Smtp-Source: AGHT+IE5oxf9h5bS0OTGuK4vRoNwOZASV5KV8VWxoBsjKvWu95XsX5N63LpGOtavGk89BgBXsKURZw== X-Received: by 2002:a05:6602:4ed7:b0:7d5:ddc8:504d with SMTP id gk23-20020a0566024ed700b007d5ddc8504dmr193781iob.0.1712849911673; Thu, 11 Apr 2024 08:38:31 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.38.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:38:30 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 247/437] watchdog: pc87413_wdt: convert to read/write iterators Date: Thu, 11 Apr 2024 09:16:27 -0600 Message-ID: <20240411153126.16201-248-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/watchdog/pc87413_wdt.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/drivers/watchdog/pc87413_wdt.c b/drivers/watchdog/pc87413_wdt.c index c7f745caf203..7ccc5aa4bd25 100644 --- a/drivers/watchdog/pc87413_wdt.c +++ b/drivers/watchdog/pc87413_wdt.c @@ -327,18 +327,16 @@ static int pc87413_status(void) =20 /** * pc87413_write: - * @file: file handle to the watchdog - * @data: data buffer to write - * @len: length in bytes - * @ppos: pointer to the position to write. No seeks allowed + * @iocb: metadata for IO + * @from: data buffer to write * * A write to a watchdog device is defined as a keepalive signal. Any * write of data will do, as we we don't define content meaning. */ =20 -static ssize_t pc87413_write(struct file *file, const char __user *data, - size_t len, loff_t *ppos) +static ssize_t pc87413_write(struct kiocb *iocb, struct iov_iter *from) { + size_t len =3D iov_iter_count(from); /* See if we got the magic character 'V' and reload the timer */ if (len) { if (!nowayout) { @@ -351,7 +349,7 @@ static ssize_t pc87413_write(struct file *file, const c= har __user *data, magic character */ for (i =3D 0; i !=3D len; i++) { char c; - if (get_user(c, data + i)) + if (get_iter(c, from)) return -EFAULT; if (c =3D=3D 'V') expect_close =3D 42; @@ -471,7 +469,7 @@ static int pc87413_notify_sys(struct notifier_block *th= is, static const struct file_operations pc87413_fops =3D { .owner =3D THIS_MODULE, .llseek =3D no_llseek, - .write =3D pc87413_write, + .write_iter =3D pc87413_write, .unlocked_ioctl =3D pc87413_ioctl, .compat_ioctl =3D compat_ptr_ioctl, .open =3D pc87413_open, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f44.google.com (mail-io1-f44.google.com [209.85.166.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 ADD441C78B8 for ; Thu, 11 Apr 2024 15:38:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849915; cv=none; b=k5pkd6qkDubwlqcrv0mZz42SfYoqxnC0G+l7JgoIhU/d7ApEiyENlwR8JOW9WnP0lktPiMj9aURxTUEzHSFAbW+HRzJFhojDSGcQBEPL9yu6FVTM8osX/xhZmjXWoHIlV0/gq6sAZ2qshk+5Zv8u6KkFs92UEeOk/itcMpMxffg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849915; c=relaxed/simple; bh=+a9yMv63GNbPPQbv5rx9qnLZOj3TsWDDG0kOJBo0jB4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=fXK+XSqx+eTsUo5493dSB6kP9H7PcWedcC+88PCBQ7qrUe8tytV36r0gP6Whu2zohvsLjhpUguTyKOyDfj68V3YhuWeha3RBvwNLevowt4xew+1xGzCj3pfTqHFXHyukGGlNwopJO5+am5lR05wAsiRDLvcc8VLldIk7jvnYWzU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=STWKswIH; arc=none smtp.client-ip=209.85.166.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="STWKswIH" Received: by mail-io1-f44.google.com with SMTP id ca18e2360f4ac-7c8e4c0412dso69620339f.1 for ; Thu, 11 Apr 2024 08:38:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849912; x=1713454712; 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=Y456vMouMnj4swZsS7YmKvdJiW0TUbGoVTArYCeV1kk=; b=STWKswIHXUSrn9dnUrOd40DImLNjJa7djRZoanY/Wzr3QJeVB5V+t7WRxISgsOX90i yv7y3CF2BSc66nA0JRsAkECUsNh16zhz0szhn/4yfJBXxNAXWZQxnWILtGxjdaESjJ5i +W6oO739mSyOMJegy4FO7w7R2O9ofjJmLQQRTjowlRfASwadzFHIBH510gtLXwVuoCf6 nV3Y3S3Nh+tVBBarVII3kJiddnGXt8hJdkJygaDWhwMkZmhhlMPVhLRaj3U/GuoR9VdQ 3xvXHkpg7Tg4E+uxOXsawgmFJ06AxDHXa/hkznBOgtg+euZ/OdBfLZ4/FEoomoZzczCa PkFQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849912; x=1713454712; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Y456vMouMnj4swZsS7YmKvdJiW0TUbGoVTArYCeV1kk=; b=ZjZ6XSPem2UeavPQk4iZ8G8z+Y9HUUDZY8GDANVMIt6Z8ity/4a4JPLs639BMma9ly T6DSSRpqVSwfblwHlRD5V+WGvZpaHnjJ021Dg9TiRn9JvNYT2xo3f8IgcZy1H6s9tRbv jvGb5E0Pr6FlpbTMPyJAkbW4PCdNeuTxcB1mfm5A0+Myvh1qB8lm2gXlryENSKP//wLF dM/LY2EwRTbOC1WIwMqCBkQ5MXvfSJDJ3hUYl3yGN9h9H0FVY+HT6ZYe/85om61rPANd kU/tAy9rN9YfnZAiy6CfxWAFz3LhCX/ucDeOZilNkyRy60Ncvn+/JchHeRXmiZ7NqxsB qKlw== X-Gm-Message-State: AOJu0YykbV3fO6eV3C5bYaJtoMyC7jH1lyBsuoc7n2kBaG708co/cCrV 0TG3WJNaYmbHB44JRdA7KaMP3Kb6+BjFBg6+WLWDM7+LeMey0vHi38WMiBioX+25FvKQmOULOPf 9 X-Google-Smtp-Source: AGHT+IE4OWXW2o2MsDWyflkQWF3oIitZ8eWiwp/C6ZBmEtntvHLaJ8FsEPNMCyIyO2SlrK0ayPwRlw== X-Received: by 2002:a6b:7b05:0:b0:7d6:60dc:bc8e with SMTP id l5-20020a6b7b05000000b007d660dcbc8emr199106iop.1.1712849912398; Thu, 11 Apr 2024 08:38:32 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.38.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:38:31 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 248/437] watchdog: pcwd_pci: convert to read/write iterators Date: Thu, 11 Apr 2024 09:16:28 -0600 Message-ID: <20240411153126.16201-249-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/watchdog/pcwd_pci.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/drivers/watchdog/pcwd_pci.c b/drivers/watchdog/pcwd_pci.c index 54d86fcb1837..6b7b3bd2ed83 100644 --- a/drivers/watchdog/pcwd_pci.c +++ b/drivers/watchdog/pcwd_pci.c @@ -431,9 +431,9 @@ static int pcipcwd_get_timeleft(int *time_left) * /dev/watchdog handling */ =20 -static ssize_t pcipcwd_write(struct file *file, const char __user *data, - size_t len, loff_t *ppos) +static ssize_t pcipcwd_write(struct kiocb *iocb, struct iov_iter *from) { + size_t len =3D iov_iter_count(from); /* See if we got the magic character 'V' and reload the timer */ if (len) { if (!nowayout) { @@ -447,7 +447,7 @@ static ssize_t pcipcwd_write(struct file *file, const c= har __user *data, * magic character */ for (i =3D 0; i !=3D len; i++) { char c; - if (get_user(c, data + i)) + if (get_iter(c, from)) return -EFAULT; if (c =3D=3D 'V') expect_release =3D 42; @@ -597,15 +597,14 @@ static int pcipcwd_release(struct inode *inode, struc= t file *file) * /dev/temperature handling */ =20 -static ssize_t pcipcwd_temp_read(struct file *file, char __user *data, - size_t len, loff_t *ppos) +static ssize_t pcipcwd_temp_read(struct kiocb *iocb, struct iov_iter *to) { int temperature; =20 if (pcipcwd_get_temperature(&temperature)) return -EFAULT; =20 - if (copy_to_user(data, &temperature, 1)) + if (!copy_to_iter_full(&temperature, 1, to)) return -EFAULT; =20 return 1; @@ -644,7 +643,7 @@ static int pcipcwd_notify_sys(struct notifier_block *th= is, unsigned long code, static const struct file_operations pcipcwd_fops =3D { .owner =3D THIS_MODULE, .llseek =3D no_llseek, - .write =3D pcipcwd_write, + .write_iter =3D pcipcwd_write, .unlocked_ioctl =3D pcipcwd_ioctl, .compat_ioctl =3D compat_ptr_ioctl, .open =3D pcipcwd_open, @@ -660,7 +659,7 @@ static struct miscdevice pcipcwd_miscdev =3D { static const struct file_operations pcipcwd_temp_fops =3D { .owner =3D THIS_MODULE, .llseek =3D no_llseek, - .read =3D pcipcwd_temp_read, + .read_iter =3D pcipcwd_temp_read, .open =3D pcipcwd_temp_open, .release =3D pcipcwd_temp_release, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f47.google.com (mail-io1-f47.google.com [209.85.166.47]) (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 0041A1C821A for ; Thu, 11 Apr 2024 15:38:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849918; cv=none; b=m2Q936KhGg3c4oPMMweKZb9qHlS/L5J4xgTLg1Ihb/NPGIi/e97Kcv2+dnsdXvMSXZ7FY4TTQErOVjiuLOOjJEDtOGoZOXRrtZb1v7ZIfn7dSIm5smAKF5sgzOgx4VMWGmSP8Uz8qwD7IH1NLvkCyfCJteP+IYIh23AwTqn0w5s= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849918; c=relaxed/simple; bh=OQ0W9bp0HU7TtMcL48U2CrHKsJboA+uK+477ONyAyyk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=owAx2Oyxr2ytp8/e/wEM6WqUKmRxibmlB746XAwl7QwGNzSgr+P/+j2OtZIygtGKAhi6KU2YdAbpNEi2PVWwYrkMRgCvfZm9L/3Uz5Cj/phIG31bwBDBC0naPbthhYiC1CZ+xSbKx9S9OxCu9wXMDjUytldPb5NHlM1jecBsGAQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=Obt1PtK0; arc=none smtp.client-ip=209.85.166.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="Obt1PtK0" Received: by mail-io1-f47.google.com with SMTP id ca18e2360f4ac-7cc0e831e11so170561139f.1 for ; Thu, 11 Apr 2024 08:38:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849916; x=1713454716; 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=32KyDmFi9HeKijDVBtDWWRaKu/f1KLN1UiQaEnm+lrg=; b=Obt1PtK0QGv1FEw5o/TfMFxgMV7YbpY4+MEBFLoswpT1H7sujFrgcv765FEkaQL3Py Rp5H6j6C6/FhCONio1pVUcjZkhFERGynNGyUXEcoWBEIPsEVU8KJ3c6862m3Dji5uKzx SE7k+n84wWXfqZWdHBqF0Flh2W1vQ4Vlq5HNC/QqLJGdfk55d3unSfbJTepAp+88akV8 q4OfkDTmsR8c6i6M9NIsYI752zstKFEF/o/MhqW57HCvlV02XwEiD8rBtZBc1ew27iZV 21uUza3anRU0LBQiaj9AIhZvut7B84bk6c7rxF8rkeF3Y3E0b3XEECCI//UifL2eOOdD 0Hsw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849916; x=1713454716; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=32KyDmFi9HeKijDVBtDWWRaKu/f1KLN1UiQaEnm+lrg=; b=ljqk4GZH679D92uENqsduX4JiJixZNBGvcUoGfg9bcDyIJpiSlhZWS6j5EHbCjgIOK V1dgmWxVgikD+ponoodiEt61i7jGCbpnCMHLecT4Me4Im7NU6apnHXBNBtOOntm/1ooS np4VQFDt6rFiWC3XwSO21UamBHl9glfIINQ5VSDUIhXEEZ6yxPvxsm8FlEutMqi53669 DBsI4d1fCxmLjwJslWGZDasOYKHBGAR1ZGHE5NkjgxtjR9KK5Bwf9JK3TliG5dJVTtth kCpdcEPDaZ0Td72OHmqnaYxIl7Fz0jYhviGfxwGPPqiuYDv7hAAfVHfXDeLt6LusdGe6 /MPQ== X-Gm-Message-State: AOJu0Yzv/vs+38JRf72gS6Iimd3c02pzS/jtuh1U+ygvn6SohjA56E1f 112RjpD/BhI1UCkulDQHYl5vx0ashJj09/FYZAk505Vig1rcEZ5nPAJAzonCLSywfErIxfJc/JD I X-Google-Smtp-Source: AGHT+IFm8OhKpoqYmuU8IKgCLH0ijvDh6j2SwClDhK7c/zBrtw+xgww/diD3AGqupcOZKcp/e3Jnlw== X-Received: by 2002:a05:6602:21d7:b0:7d6:9ddf:5095 with SMTP id c23-20020a05660221d700b007d69ddf5095mr22752ioc.1.1712849914416; Thu, 11 Apr 2024 08:38:34 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.38.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:38:32 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 249/437] watchdog: pcwd_usb: convert to read/write iterators Date: Thu, 11 Apr 2024 09:16:29 -0600 Message-ID: <20240411153126.16201-250-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/watchdog/pcwd_usb.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/drivers/watchdog/pcwd_usb.c b/drivers/watchdog/pcwd_usb.c index 8202f0a6b093..5fd830c0fdf3 100644 --- a/drivers/watchdog/pcwd_usb.c +++ b/drivers/watchdog/pcwd_usb.c @@ -358,9 +358,9 @@ static int usb_pcwd_get_timeleft(struct usb_pcwd_privat= e *usb_pcwd, * /dev/watchdog handling */ =20 -static ssize_t usb_pcwd_write(struct file *file, const char __user *data, - size_t len, loff_t *ppos) +static ssize_t usb_pcwd_write(struct kiocb *iocb, struct iov_iter *from) { + size_t len =3D iov_iter_count(from); /* See if we got the magic character 'V' and reload the timer */ if (len) { if (!nowayout) { @@ -374,7 +374,7 @@ static ssize_t usb_pcwd_write(struct file *file, const = char __user *data, * magic character */ for (i =3D 0; i !=3D len; i++) { char c; - if (get_user(c, data + i)) + if (get_iter(c, from)) return -EFAULT; if (c =3D=3D 'V') expect_release =3D 42; @@ -506,15 +506,15 @@ static int usb_pcwd_release(struct inode *inode, stru= ct file *file) * /dev/temperature handling */ =20 -static ssize_t usb_pcwd_temperature_read(struct file *file, char __user *d= ata, - size_t len, loff_t *ppos) +static ssize_t usb_pcwd_temperature_read(struct kiocb *iocb, + struct iov_iter *to) { int temperature; =20 if (usb_pcwd_get_temperature(usb_pcwd_device, &temperature)) return -EFAULT; =20 - if (copy_to_user(data, &temperature, 1)) + if (!copy_to_iter_full(&temperature, 1, to)) return -EFAULT; =20 return 1; @@ -550,7 +550,7 @@ static int usb_pcwd_notify_sys(struct notifier_block *t= his, unsigned long code, static const struct file_operations usb_pcwd_fops =3D { .owner =3D THIS_MODULE, .llseek =3D no_llseek, - .write =3D usb_pcwd_write, + .write_iter =3D usb_pcwd_write, .unlocked_ioctl =3D usb_pcwd_ioctl, .compat_ioctl =3D compat_ptr_ioctl, .open =3D usb_pcwd_open, @@ -566,7 +566,7 @@ static struct miscdevice usb_pcwd_miscdev =3D { static const struct file_operations usb_pcwd_temperature_fops =3D { .owner =3D THIS_MODULE, .llseek =3D no_llseek, - .read =3D usb_pcwd_temperature_read, + .read_iter =3D usb_pcwd_temperature_read, .open =3D usb_pcwd_temperature_open, .release =3D usb_pcwd_temperature_release, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f52.google.com (mail-io1-f52.google.com [209.85.166.52]) (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 70DE01C820E for ; Thu, 11 Apr 2024 15:38:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849917; cv=none; b=gc46Fp5WkaZzZX1cSONeiBQT1X/ndhCY1wylChL2MA+Pjh9JHPjQptt9Yy6sif2kqXvAN8FBtt3As+/eObtP03UBbVJWy16ZGcT+/0ndAEfvlIXv3sPB1VP6mmpnUq+NMYNH3hy4S5BADMyJunJ5ckZ8UlmBvqeFyAqikUHdC+M= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849917; c=relaxed/simple; bh=9llkeOK29Lea4aDs2Og1dKys9kjegYcBXnNLhMvi5Yk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=iAr3YkocX2mfJhbf9H2t9mMxMoe864EaYukEWfddLL6BktfOivGmCajG2BA8JjDY8mJfHUPeDtnn1cUrhrVAStb9aWq9nt901Gk9BY1Hf1SCTCmusa92UXVizOli+uw2rq99HbdioBu4ihNqHvz3MLjYofw0m+HGTcU7q+1OZLk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=HaIkyjC0; arc=none smtp.client-ip=209.85.166.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="HaIkyjC0" Received: by mail-io1-f52.google.com with SMTP id ca18e2360f4ac-7d6112ba6baso58137139f.1 for ; Thu, 11 Apr 2024 08:38:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849915; x=1713454715; 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=5usfOwW+TdAOAtqFSdSFLDeFIH/am800/p+fFXMWAh0=; b=HaIkyjC0t/yr15CR9mR6ICr7XlEvdac2JNHQb+djyVk1+es4uUc3F2eKmdjaDL0nXB ZewrZNN/DWCLaT8YqCOpWVLH010vx+XmvqUTtHcz6+plK1UrwQQUxlrmdgqKOu0LpCM9 qWJTleWaNFeUh22P6zpcB37VSIzBEwtOpuf4eMiqYTCi0ASEaFGTq+9TdHTslf3i0eCA HuWcePCC34yPIl23oJR2VMbTGxG0oaXLHekm+8Le43cmTyK9hqAfUe4PiescAiuv8+uD wdX5xS2TbMu2HnY4xEsnGGAW9/N0z4BhN0ruBMyGN+wnf+f55+Ev/QM2nQ1PfmxgjBld bf9Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849915; x=1713454715; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=5usfOwW+TdAOAtqFSdSFLDeFIH/am800/p+fFXMWAh0=; b=kXfxUh/k0Txeww2qQkLyHIUohTIg4FmN3Hr8+M1VW5ML+5+WAx5caF6E9RBYtu9cNU zt+J2merWlosC4lSYGu/gHHVetPOeTHsyZp3EYNq68zK2qqAg6nQehRFy3DM7dlRlGYV tn6Lc7t0adxf9YVI624H8zWjwPyY7/fhwFFOjE6xDSEG2w8skbStzo0jDBp/ofV8ZwHr 8EWw1BIsyuqPmNnQ5MTFTC4YgO5CqGNR8xUEMdSei7hCNMVjwKzxvlDd5IZKPA2MxHdC hHFkv+wop7lA5H5MdvSvCJSSSMbkNhsn2l9zEIWl/L0alyHldlUFSlqh/nQYQt0rShu+ dRsA== X-Gm-Message-State: AOJu0Yy1YsmF2wAgKqmq47pqNSLiRTTY/QiT4tp9LFKfjx9hEKKLB3hX DneGPb0Xmgz+IkQFzHO4OK6wF7bQiLvWIUMd6px8fRaB49tJfjS3iJqhSBf+0Sy9cLlz5/4bfp0 3 X-Google-Smtp-Source: AGHT+IGQkgCgv9qCzf2YKDbhAobuqMXjNVkpDK/dn3kzh8sS5SZ8uxlrwyRSQiA7GwFUxrV5JAOMbA== X-Received: by 2002:a05:6602:38d:b0:7d6:513b:254 with SMTP id f13-20020a056602038d00b007d6513b0254mr192635iov.2.1712849915313; Thu, 11 Apr 2024 08:38:35 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.38.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:38:34 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 250/437] watchdog: rdc321x_wdt: convert to read/write iterators Date: Thu, 11 Apr 2024 09:16:30 -0600 Message-ID: <20240411153126.16201-251-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/watchdog/rdc321x_wdt.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/watchdog/rdc321x_wdt.c b/drivers/watchdog/rdc321x_wdt.c index 6176f4343fc5..de3210a342ff 100644 --- a/drivers/watchdog/rdc321x_wdt.c +++ b/drivers/watchdog/rdc321x_wdt.c @@ -184,9 +184,9 @@ static long rdc321x_wdt_ioctl(struct file *file, unsign= ed int cmd, return 0; } =20 -static ssize_t rdc321x_wdt_write(struct file *file, const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t rdc321x_wdt_write(struct kiocb *iocb, struct iov_iter *from) { + size_t count =3D iov_iter_count(from); if (!count) return -EIO; =20 @@ -201,7 +201,7 @@ static const struct file_operations rdc321x_wdt_fops = =3D { .unlocked_ioctl =3D rdc321x_wdt_ioctl, .compat_ioctl =3D compat_ptr_ioctl, .open =3D rdc321x_wdt_open, - .write =3D rdc321x_wdt_write, + .write_iter =3D rdc321x_wdt_write, .release =3D rdc321x_wdt_release, }; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-il1-f182.google.com (mail-il1-f182.google.com [209.85.166.182]) (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 69C7D1C8235 for ; Thu, 11 Apr 2024 15:38:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.182 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849920; cv=none; b=boiDDyo5CDtItsd8fCjzCZSsiDY0CMI8XXfgCUSbDlburrvSTX+LABs3rtWjKzqlMqnYfbUEystBsQR6XKmMwHTZD4vVOHhBqL8Ctm9XaCGEtrmA8qPy8Ks/ed19MWaHNsMiB90E0TqYPoMGmAvhGIOED3OU/S873/KmkMsV8xA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849920; c=relaxed/simple; bh=F83XvFrx76isF/dT0LWcQ3VyyodAlP/DQbr4dsQvEmA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=s8v2soJNDCqhiCtibLI63ioO8K64/5I6lF2i34/30DOp/qWUbnB3UkTw/uFxmpjAjcXkwVMmYkA6t4WhAeDyPbJq3T7gNBsoJ21osWiMxu9E6nIp9uDA+m0COS6K2iO7letpP8MwwgqiQHx1Lw/Jf83E/3t7ZJXStrnVz5lTV50= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=CYtWoUu5; arc=none smtp.client-ip=209.85.166.182 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="CYtWoUu5" Received: by mail-il1-f182.google.com with SMTP id e9e14a558f8ab-36a224d7414so187805ab.1 for ; Thu, 11 Apr 2024 08:38:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849917; x=1713454717; 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=53JvdJjKxSCyz+n3tel8rdHfSTpWXYjnOnA3jputiX4=; b=CYtWoUu5Vdu82iify3aGoCaO6DNSJH77WXN9CH0MfeoBFjnvQUp6kz6TDsO7YcdTQ9 blKZxBfVrhLIylD7I5juUiMZ4tB/Z3jaicOqvDQSx4jMYoasOKwQPwowbhh/nc+l0T4s 5/AfbnkFTuIBuPxFnULaYmKwm6muf0lN4ZoiHS2rS62tKhlSVL5aR6uKnK/1NWr4ZYIz oAno4guJTb4J/IinM/2jdPxIZ+JBbApKHz8yhWVREvetSMDVVHiwGtEjkBH5vj57mLKg ulWAz1WWqT0VSUcRdeEfF8HUlgUnFDvzVL3NiB036idNkPCmZCmOsV/CI7WwkuWNh/5U dwBw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849917; x=1713454717; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=53JvdJjKxSCyz+n3tel8rdHfSTpWXYjnOnA3jputiX4=; b=c/MFo1V7BexI6aMZHc1/gK8eT+Hp1WwWZxfCmESjfKZ8HqxWqXgmPy4zOYJdHidhhw ozzg2rVPn46GkCNrk6QbzwC74q8m+8VzhcCFWJ0GpVmt4/g6v3/gSbPeQxhblfZSGAWO kAGWQTF4qL8qYa0eG+7CU6UzoN1uDWd6xuejjmQHATgdcLReZbh7MKhUBvivyZhxnPjB DgG9Ff1y5v8evpufIXn/LJmYxvZKZy6JWGlj9Ylw0D83rWmXeiofMkMWhRFJSKlhYveo 1BoOnCz0fzMC90ecVDHHwGn1f0UfGjsVgdYjhdbcT83AE3s861lekG79mZt7uZwLOMpK SMfQ== X-Gm-Message-State: AOJu0YzSPAoykUaSCpc711/EB+vp4XGsV7zkQC538Anbfckf2B/9ILvm OKnh8fav3bHtZEOybLLyKKllQ1XZivI5lASSt2+mQhanYj9frlTskTUCcr1EijlH6k0FyRdhOgv v X-Google-Smtp-Source: AGHT+IHgT/GA7IZXC2b2jbDlZSMezJ45cpXcmO1zDsViOYy2Fdj156QagtF5/3o8QUYsToF92KBMhQ== X-Received: by 2002:a6b:4e14:0:b0:7d6:631d:7b0 with SMTP id c20-20020a6b4e14000000b007d6631d07b0mr194501iob.1.1712849917254; Thu, 11 Apr 2024 08:38:37 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.38.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:38:35 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 251/437] watchdog: sa1100_wdt: convert to read/write iterators Date: Thu, 11 Apr 2024 09:16:31 -0600 Message-ID: <20240411153126.16201-252-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/watchdog/sa1100_wdt.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/watchdog/sa1100_wdt.c b/drivers/watchdog/sa1100_wdt.c index 5d2df008b92a..f994b52565ec 100644 --- a/drivers/watchdog/sa1100_wdt.c +++ b/drivers/watchdog/sa1100_wdt.c @@ -98,9 +98,9 @@ static int sa1100dog_release(struct inode *inode, struct = file *file) return 0; } =20 -static ssize_t sa1100dog_write(struct file *file, const char __user *data, - size_t len, loff_t *ppos) +static ssize_t sa1100dog_write(struct kiocb *iocb, struct iov_iter *from) { + size_t len =3D iov_iter_count(from); if (len) /* Refresh OSMR3 timer. */ sa1100_wr(sa1100_rd(REG_OSCR) + pre_margin, REG_OSMR3); @@ -165,7 +165,7 @@ static long sa1100dog_ioctl(struct file *file, unsigned= int cmd, static const struct file_operations sa1100dog_fops =3D { .owner =3D THIS_MODULE, .llseek =3D no_llseek, - .write =3D sa1100dog_write, + .write_iter =3D sa1100dog_write, .unlocked_ioctl =3D sa1100dog_ioctl, .compat_ioctl =3D compat_ptr_ioctl, .open =3D sa1100dog_open, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f42.google.com (mail-io1-f42.google.com [209.85.166.42]) (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 BF56817D14C for ; Thu, 11 Apr 2024 15:38:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849922; cv=none; b=uGE6/fX+AsyucGSV5LuqUIkDPW29scFctZN0xLWI4fU+GfqQ+yayG9Laq/HvxBkSUG4WVcM8GIhhXL4TWVy64jbyLov4PVyaLCj7p462HzEVaIUd8R8Cp9y82VmaMu0TlBMi4GraLEMO03xUWQrezvKKWR/yFzpWmLp9WhRFGaI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849922; c=relaxed/simple; bh=bCtXbQ0OFBriS+yV5uGvubGKabA1yy1bdobVM9qbR+4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=XiLsvRY2+CsR5M5QvjUe/EA6MnjeIoNCrgdBSK4rPhnDVG39P35uuQKoX/MhONiwEjcIDlmTCAcUPPkk/1mnZUayREt0AGV0HjLLOQXJIb3S+46yEw190eiFM1C5whkZ10B+3AXVzWp1GFf9HR5VGKbWafecyQiaF9hYMZUgYSs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=ZbPyJ9er; arc=none smtp.client-ip=209.85.166.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="ZbPyJ9er" Received: by mail-io1-f42.google.com with SMTP id ca18e2360f4ac-7d67d1073easo9841839f.0 for ; Thu, 11 Apr 2024 08:38:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849920; x=1713454720; 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=lmAhqQs5gVR2K93MNDL7yppZPnqIKQFXDAq/G1NusRk=; b=ZbPyJ9er5612zJh0owAbDX4zz18CLf6HzujoTrCrKwzE3bMseK+ufRrwEcw5m0zCDZ P/B08Ai9MrC+1x01Pba7YDtYZHXbHMaKHrjw1/wVRQMDXbvTdqi4YQgqydhMzL/fKnUm XFu2tXi37j30W0RVvG99VKbbj9u16vxe4fFH+/unICh83cs2AtXg5VGvAlJDg0uJu6RY RGPZldLkz8chOS78UdsPczZV0wdhO3A8hITQbHfMp/a0X2yDtqNk1BTfMBNu+i0uj1rs dyve7vwgzC1Fynh2SS/gmYTOTwGQI/dKhh1ovrvaGGOgF2xrJTYQWaYVS4b5BQ82Uxo1 m4aw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849920; x=1713454720; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=lmAhqQs5gVR2K93MNDL7yppZPnqIKQFXDAq/G1NusRk=; b=j9lE7HimIuNrW3cNXfHk5UyxG/HZXVutVPOv0h18Mf4oJykwBhhBzzOx92x+c1v1DA oZ2O85OAiQU2EjOSuxIljb/5YRV1XS/yXGpjvIWR3nlr2Ul0wMe9CUCwsXjN7PV6IOS7 kXJbnJ+hUAXX6P7HYrqdhIS+mJ64l5nuQHIIJvXeDzIJvJ0DJFRPs6Y0mjfTvGg+Dn00 D1fh2mMlsc694fwSkWzYhHZXGB6RAAxTdbnCLd/jhVnBFUv61mnV7AH9DvYYMB0g4r7U GFcK0WeThyTNgwwzMgNx/5bTLW3/WMHv/q8yffyUBrM8HpFrbPvVoXCuGQPUZFhTRIU4 OAcw== X-Gm-Message-State: AOJu0YzsfEfbvmCLWJV5FAMy1VKwlLtxYCflEZlmV/2MFLpomOmFHS+U oh7iOWM3yc/vjr7WM+dbte9qGffMmVb6qATgKlQTjo0+GVDBJ+hNmvBa/yRGFGEwEe5z68bsTSt T X-Google-Smtp-Source: AGHT+IHfwTWtg5oSdR+PY0YSMZZaUnlWS33fdEB+hp9xkuxA2fyywFgsVUGizmtShZyVraqS+w0IfA== X-Received: by 2002:a6b:7b05:0:b0:7d6:60dc:bc8e with SMTP id l5-20020a6b7b05000000b007d660dcbc8emr199412iop.1.1712849919228; Thu, 11 Apr 2024 08:38:39 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.38.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:38:37 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 252/437] watchdog: sbc60xxwdt: convert to read/write iterators Date: Thu, 11 Apr 2024 09:16:32 -0600 Message-ID: <20240411153126.16201-253-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/watchdog/sbc60xxwdt.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/watchdog/sbc60xxwdt.c b/drivers/watchdog/sbc60xxwdt.c index 7b974802dfc7..ce727f42b88e 100644 --- a/drivers/watchdog/sbc60xxwdt.c +++ b/drivers/watchdog/sbc60xxwdt.c @@ -161,9 +161,9 @@ static void wdt_keepalive(void) * /dev/watchdog handling */ =20 -static ssize_t fop_write(struct file *file, const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t fop_write(struct kiocb *iocb, struct iov_iter *from) { + size_t count =3D iov_iter_count(from); /* See if we got the magic character 'V' and reload the timer */ if (count) { if (!nowayout) { @@ -177,7 +177,7 @@ static ssize_t fop_write(struct file *file, const char = __user *buf, magic character */ for (ofs =3D 0; ofs !=3D count; ofs++) { char c; - if (get_user(c, buf + ofs)) + if (get_iter(c, from)) return -EFAULT; if (c =3D=3D 'V') wdt_expect_close =3D 42; @@ -276,7 +276,7 @@ static long fop_ioctl(struct file *file, unsigned int c= md, unsigned long arg) static const struct file_operations wdt_fops =3D { .owner =3D THIS_MODULE, .llseek =3D no_llseek, - .write =3D fop_write, + .write_iter =3D fop_write, .open =3D fop_open, .release =3D fop_close, .unlocked_ioctl =3D fop_ioctl, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f53.google.com (mail-io1-f53.google.com [209.85.166.53]) (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 633B017D15D for ; Thu, 11 Apr 2024 15:38:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849922; cv=none; b=cvXgMzR4Akmi6l6WXxAr4UiOp5g2iWipzKK5uLt40nUtSu5uGiy/Y54YA32QFH5J1j5gaPVoacMNJggL0sFRa75KI89JJ3LCsXiS6n+SgY+8XLpGD+m4SI7Avn5BbxyhuQugOgOd271UbsFPJVQwP8efBfu6DLy/ogaMzVVQuHY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849922; c=relaxed/simple; bh=yvj6Fx2S8MgjUf4sPizIzz/1gQ6nUrv6shwg9v2Oi2A=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=E6067YNy1oN7S12yIFGxec0kqSOmyceGFr8uxWrMxJ2yH7oCC4LXBaQDj181tryiwgWYywuk+uBg1uyQaVmmr+Dp/ZxIii2guA7DU4PjuauO+9BL69c26pGY2wf5t4TYJyAGM0xXRyhkcxk6JCW52eZlaSKxtIhUnAT/aNZ7i9c= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=vahgsLwS; arc=none smtp.client-ip=209.85.166.53 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="vahgsLwS" Received: by mail-io1-f53.google.com with SMTP id ca18e2360f4ac-7d6812b37a6so8998639f.0 for ; Thu, 11 Apr 2024 08:38:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849920; x=1713454720; 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=OlTiJyqp1UTe69uWYXEk00kh5Kvuj6AMI5UGQjYjQno=; b=vahgsLwSyGC3CxbEGGMrVeGszY5AKTXii26wQKBcmOxU5ow5G0OxGveTUvBOthj78V N1sao+6Nl4dOC6pFINkdabN7PwJ60vc2+DMCmyJ3u6q+S8Fk1HUAt4A6JyVliWSHg77c dFqMobX4UAA0apqNu2pGR+PUPnH/90CGufjUQNTjcXNdMqaqW8LNlb2uGBg3Dd6JAwST 3lAfOQfwa4v5kngiUp0wtgV1U38DnDoBQppypJYLgc904D/M4pTHXsh3w82SRvjp2DIL fESB+PhAHpe5L3gAu0vSuiEtknR/jR+hm8IlqBf2VB6X/zVI6DD8xKgutdjssJv0Svkg Qmdw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849920; x=1713454720; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=OlTiJyqp1UTe69uWYXEk00kh5Kvuj6AMI5UGQjYjQno=; b=cAYdyg3p1DJzHjaEqFgxmy24ZHAOvZhfq4a5YxgMNiG7MbYhbYwuuRtEPxsLcyMRAk B5qct4SQ7k4785qNjOcfXtUy09Dh7TtlFjcmQq+T+cZ0iuLcCcqwP/pVtUplnPIjdKlD MMIIDD8lahLCbcNr57pX+b8k2n8qbWRCINaLGNiwEiWWiMTu+BJWY7cb5ZW7zAyL4NRt JRYr1plWdtDOCGETnOU3Y30ityj8xQ2DHfk8JeDFAiQ76nGqkvJgdSfX2cUvMspgiCjc cR9Y9PC4QZNC3ieoF/Js7hWv82pr+BvsvAUcRutLK/zmqvcXP7qNDU6o6s68rBCfTkbp 3zUg== X-Gm-Message-State: AOJu0YzG3GjOG/T8IhaPG4udZD54rifRlg6hVGly1ENZiGQB5MFqMtbN O8e31y6Vw9dgRCxqBPAkPspnOoq/6AQLUMyWfU73bI43VjRWwzJ9ZDWhJLYlmWHc3640UZjdEEr P X-Google-Smtp-Source: AGHT+IFwu2SbuFOvmNnvtle476cDHH8Rw5UilYmORIunXUwkT0lHMbmPaK4+7lPb/wPGTXnrkwKDUA== X-Received: by 2002:a6b:5b10:0:b0:7d0:bd2b:43ba with SMTP id v16-20020a6b5b10000000b007d0bd2b43bamr228148ioh.0.1712849919961; Thu, 11 Apr 2024 08:38:39 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.38.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:38:39 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 253/437] watchdog: sbc_epx_c3: convert to read/write iterators Date: Thu, 11 Apr 2024 09:16:33 -0600 Message-ID: <20240411153126.16201-254-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/watchdog/sbc_epx_c3.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/watchdog/sbc_epx_c3.c b/drivers/watchdog/sbc_epx_c3.c index 5e3a9ddb952e..6bbb9db5e57e 100644 --- a/drivers/watchdog/sbc_epx_c3.c +++ b/drivers/watchdog/sbc_epx_c3.c @@ -89,9 +89,9 @@ static int epx_c3_release(struct inode *inode, struct fil= e *file) return 0; } =20 -static ssize_t epx_c3_write(struct file *file, const char __user *data, - size_t len, loff_t *ppos) +static ssize_t epx_c3_write(struct kiocb *iocb, struct iov_iter *from) { + size_t len =3D iov_iter_count(from); /* Refresh the timer. */ if (len) epx_c3_pet(); @@ -154,7 +154,7 @@ static int epx_c3_notify_sys(struct notifier_block *thi= s, unsigned long code, static const struct file_operations epx_c3_fops =3D { .owner =3D THIS_MODULE, .llseek =3D no_llseek, - .write =3D epx_c3_write, + .write_iter =3D epx_c3_write, .unlocked_ioctl =3D epx_c3_ioctl, .compat_ioctl =3D compat_ptr_ioctl, .open =3D epx_c3_open, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-il1-f176.google.com (mail-il1-f176.google.com [209.85.166.176]) (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 45F511CA6AF for ; Thu, 11 Apr 2024 15:38:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.176 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849924; cv=none; b=RGImOaHZpWrARuR6vu/Rj2lp8Z5sx/qbKA3sflMazU/WvAIER0Gfeb2xcFu1o0E6qXSae57xZy3eOEq8YdXaVJTKLQrrf0BtVBxsEKJCMgiWuzONphzu+2KO0t/Oh8MYg2nyDCKVVP530xyIOF4UE20qavwWfk2/f74TpXTST/0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849924; c=relaxed/simple; bh=yMIlP0uDT1a2iJJZCesxiZF6Nz8GjshlxZnxGTaAbG8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Xg2JXoTN3wP2PfnN9jk+Y7F3qodi6SG/2x1mE6Ur6HJ8qn3aoAhBpawdOtsIuWMSFLGHQc+lebSbSlWThNFtkcD9A4j06EhGrQ6yrn+P8JquDNglgaXvi0svfHWKxw3r226o+x99uM/voTY4NfsU3jKk6q6rLBGb9qFaIBgOafc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=wIpmiuBK; arc=none smtp.client-ip=209.85.166.176 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="wIpmiuBK" Received: by mail-il1-f176.google.com with SMTP id e9e14a558f8ab-36a34b68277so114635ab.0 for ; Thu, 11 Apr 2024 08:38:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849922; x=1713454722; 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=uZcK1rfwTZjRRHJsk4dAWwu4NrkxOOrPp/qD5fIYkqA=; b=wIpmiuBKK8KJrHbiOfcy4CQ4OQHXGxUEHwaAI3iqaUlCypHsPhxNON4J3C/KusS6HK I+L4Mwt9NTNQQRWxu/2eIQaRqCZf25J4dF8Pe7KUiO2Rx/itxyo2qMLi46AqjzIPrLCt 4oMvJp3Lj1cqsUXoaegy0Xq3WRyKaEo7rcthbO6dayIcy1T3uG4aVgi/NEpqxK5bL0E1 cTn03eMAZYYLArL2t9w9dOVqUMHOPci0BCjO/u1YlJV2a0T82qyWbgdbn1jcD5/A1t8B d1nFfPTEQKD35b+z7eZ/TUpy4u24ux86EnqfvGCWTKLtwo2tMtVf0DHrbTxDHt8JBhVt wfEg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849922; x=1713454722; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=uZcK1rfwTZjRRHJsk4dAWwu4NrkxOOrPp/qD5fIYkqA=; b=qosLEmz+H4W975hl8gLocQD4Zy4UpVqXBvOekXiqgfeNhufliSrCIkvwZloSm/mrez DNkAmP5QFiUk1b47xGe8WoCSQ+erYX+L0HZsW/zyb3BsKVdGQw1HJ0IwMdEtVTtegj2+ Cct82P/oXdWLI8hVrfCaq4s/wnUJD0fpaw8pi/JCzqqyfQnwdEzXwkSAfLZee8SETdGJ GxWqWtd1FVtoTR+AhqZpu3a824IAKMw9Oh1CuvVUkbiVLItVzIqDtilF6aUX/REgMdrw 3esJDziuLX2iqn5BcgOhRamoIBHkbPMc7dICgEh6qAOt7F4xltL5zyqsRMLEn7xWwjtA VmMA== X-Gm-Message-State: AOJu0YwcH3vm88voNvWdooM7lMZi7/XPS+gID5nUP/C6FfdHXklJ3ggo IrHNGeoXCIRf4RGyzOEAUYuIwrRarC2hxPeYwdTkY3RMJx9BCiwRMLAXvOVSDZd+JIlWV7B0XrF i X-Google-Smtp-Source: AGHT+IFuLySlU4iWbv5CDw6a/05Zws62ozI4Zsdn7o/vO1K2z/0X5B8OA3pCg4o98Ig67i22TzTNvQ== X-Received: by 2002:a6b:4e14:0:b0:7d6:631d:7b0 with SMTP id c20-20020a6b4e14000000b007d6631d07b0mr194733iob.1.1712849922076; Thu, 11 Apr 2024 08:38:42 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.38.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:38:40 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 254/437] watchdog: sbc_fitpc2_wdt: convert to read/write iterators Date: Thu, 11 Apr 2024 09:16:34 -0600 Message-ID: <20240411153126.16201-255-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/watchdog/sbc_fitpc2_wdt.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/drivers/watchdog/sbc_fitpc2_wdt.c b/drivers/watchdog/sbc_fitpc= 2_wdt.c index b8eb8d5ca1af..1619f92814cf 100644 --- a/drivers/watchdog/sbc_fitpc2_wdt.c +++ b/drivers/watchdog/sbc_fitpc2_wdt.c @@ -76,9 +76,9 @@ static int fitpc2_wdt_open(struct inode *inode, struct fi= le *file) return stream_open(inode, file); } =20 -static ssize_t fitpc2_wdt_write(struct file *file, const char __user *data, - size_t len, loff_t *ppos) +static ssize_t fitpc2_wdt_write(struct kiocb *iocb, struct iov_iter *from) { + size_t len =3D iov_iter_count(from); size_t i; =20 if (!len) @@ -94,7 +94,7 @@ static ssize_t fitpc2_wdt_write(struct file *file, const = char __user *data, for (i =3D 0; i !=3D len; i++) { char c; =20 - if (get_user(c, data + i)) + if (get_iter(c, from)) return -EFAULT; =20 if (c =3D=3D 'V') @@ -107,7 +107,6 @@ static ssize_t fitpc2_wdt_write(struct file *file, cons= t char __user *data, return len; } =20 - static const struct watchdog_info ident =3D { .options =3D WDIOF_MAGICCLOSE | WDIOF_SETTIMEOUT | WDIOF_KEEPALIVEPING, @@ -182,7 +181,7 @@ static int fitpc2_wdt_release(struct inode *inode, stru= ct file *file) static const struct file_operations fitpc2_wdt_fops =3D { .owner =3D THIS_MODULE, .llseek =3D no_llseek, - .write =3D fitpc2_wdt_write, + .write_iter =3D fitpc2_wdt_write, .unlocked_ioctl =3D fitpc2_wdt_ioctl, .compat_ioctl =3D compat_ptr_ioctl, .open =3D fitpc2_wdt_open, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f47.google.com (mail-io1-f47.google.com [209.85.166.47]) (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 5EC0D1CAE63 for ; Thu, 11 Apr 2024 15:38:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849926; cv=none; b=Wcf5CisIjKKQNGnRIU79CV3CvyUhI2AeTrxA4dNJmtnRDVJZYP5RCP+H/1sFMc42cuDN4kTsboLxgC/fVqJmvjr9pTav+nrZ/rb4GBPObdzLJYAxfbx6j7kqhwrRV9tUBLrlSoxMibK+3Lu3qeMOMnwkXE3etyOqC5kL3fbzLwk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849926; c=relaxed/simple; bh=6B2WoKPOI5jH9L3xtmppLbFB0kE2ZS0Md7S/WyFPe08=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=L1bVDJCiKhXPTpoREkNQjbF3E5Jbwods+kyFPtjkIMDp0kUCmHGtnuyRzmye4bL4LkfrWA6DFM7nMd7JsXRyltXV59JhSE9J3+goM0D6MHJ+8oi39Vmn4PpUrMmbXiXbS/eZ+HCEinYflF8SsY4OWzfFJxTxO+4nOD2ikYpmDyY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=oQ89gQS+; arc=none smtp.client-ip=209.85.166.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="oQ89gQS+" Received: by mail-io1-f47.google.com with SMTP id ca18e2360f4ac-7c8e4c0412dso69622639f.1 for ; Thu, 11 Apr 2024 08:38:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849924; x=1713454724; 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=Oa7N/DWhQ/KXmWbuqOdMWw3Ybx3W+kEd/hmFicp6e0Q=; b=oQ89gQS+cOjKMsZI0ObHaBKWnys7VhnHlinN7o7nIkluGaLoz+rrh1LiwiQ1npQ3dR 0SxFr3tLMm84S8utVjVM6NRx8aamOfs60SAajbPeHKATYwZ2qPGsudqkdHNvVZRR0WfQ g5nzvAU1cPEgPTR754sDn9eNEtRdaxAssikeqMqahNuVbyM3nR2RRLktcA4FcZgDsEJc LcSxDok6WaNpONUzg2kfJ+eGGpZh1pE9Hz9/JHlD+1QIWOMgLpOQqtmoZrTDj7+1ePl8 dz9UvSWXHRMEKLrVsOUGD/u0wnKnjBOzfT4MNyw1KdEDjxgkcBmAMFTtl5Y+mh1THNTb t1vA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849924; x=1713454724; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Oa7N/DWhQ/KXmWbuqOdMWw3Ybx3W+kEd/hmFicp6e0Q=; b=pDcPALe5vMR06JeMZ9Yj9D4+F4RH93s+udA0SwMV9JFI0KijushMBI0d4qbtE1dA7f x4mKTXFeMZ/1nnNRg+yR6B+JY+Qyv4suPXsuHMJImTMeHZbQWo/meaQo83FV2mg3rqAN rI6vBY7Tykt5AGPkD46ZiAD5HTUBa3FH8DsPwFMvn4OA3ut2gDQpGbmAh2Q/mTRFlnev udHNsbMjxW3VYiUJRAFH0gRvmCogIMZxv63Vre3SsdmrMJd/AWsri8Frw+2YoE3JlJhP K6ceGWq5axyZW0qXsLiKey9eJONuL+ikqbhm5ragkUmCgFVGD29+JWZlX/pMXllPAEgi b5lw== X-Gm-Message-State: AOJu0Ywj05U/U16QKQMWr6uFCdPsgqgHY43FZ2LNbKhqthNV+zmbZ4sK xULYE2VmryCJxmoy0bf6+lgg+T2oqxriM/RTET7iw0W3oMR9FnbnSsWHcaJvj5g1XHc3mAeLeRd 1 X-Google-Smtp-Source: AGHT+IFnwgiMRjG8PSme/0DJx1aTrwzMspdRbmD46KqjAxncydpAqgsEfy+CGbGkM0TUoUL5R++DmQ== X-Received: by 2002:a6b:7b05:0:b0:7d6:60dc:bc8e with SMTP id l5-20020a6b7b05000000b007d660dcbc8emr199627iop.1.1712849924293; Thu, 11 Apr 2024 08:38:44 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.38.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:38:42 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 255/437] watchdog: sc1200wdt: convert to read/write iterators Date: Thu, 11 Apr 2024 09:16:35 -0600 Message-ID: <20240411153126.16201-256-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/watchdog/sc1200wdt.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/drivers/watchdog/sc1200wdt.c b/drivers/watchdog/sc1200wdt.c index f22ebe89fe13..d8d8bee1d6d4 100644 --- a/drivers/watchdog/sc1200wdt.c +++ b/drivers/watchdog/sc1200wdt.c @@ -261,9 +261,9 @@ static int sc1200wdt_release(struct inode *inode, struc= t file *file) } =20 =20 -static ssize_t sc1200wdt_write(struct file *file, const char __user *data, - size_t len, loff_t *ppos) +static ssize_t sc1200wdt_write(struct kiocb *iocb, struct iov_iter *from) { + size_t len =3D iov_iter_count(from); if (len) { if (!nowayout) { size_t i; @@ -273,7 +273,7 @@ static ssize_t sc1200wdt_write(struct file *file, const= char __user *data, for (i =3D 0; i !=3D len; i++) { char c; =20 - if (get_user(c, data + i)) + if (get_iter(c, from)) return -EFAULT; if (c =3D=3D 'V') expect_close =3D 42; @@ -287,7 +287,6 @@ static ssize_t sc1200wdt_write(struct file *file, const= char __user *data, return 0; } =20 - static int sc1200wdt_notify_sys(struct notifier_block *this, unsigned long code, void *unused) { @@ -305,7 +304,7 @@ static struct notifier_block sc1200wdt_notifier =3D { static const struct file_operations sc1200wdt_fops =3D { .owner =3D THIS_MODULE, .llseek =3D no_llseek, - .write =3D sc1200wdt_write, + .write_iter =3D sc1200wdt_write, .unlocked_ioctl =3D sc1200wdt_ioctl, .compat_ioctl =3D compat_ptr_ioctl, .open =3D sc1200wdt_open, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-il1-f169.google.com (mail-il1-f169.google.com [209.85.166.169]) (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 432B41CAE93 for ; Thu, 11 Apr 2024 15:38:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.169 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849928; cv=none; b=kUpqOsvPnOTuzbl8WFyNzQgKoYCbHmKOzsU0Z2tZ0s2kGL3akAm1VXC/iJYQv6qD0/WUNL/WywesFqUzrBvQJRQOn7vup/ZrsM6j7gfVYYkGso2RhYWQ+sP8GQ7TxOhX40ZjFKCWkn5LepCvStS/piMxCeENLgYtTVvTmWkywO4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849928; c=relaxed/simple; bh=V2pknhwZI2GhsZ1za3+1JnKfg9SgjeH1J9FHXA1o/lI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=a0DlNTcjz3qOXozYaX4F2z/d1Lwkujf/WE2HPQ36SkEeFa2B9zva1M4eyVoI0E1T3C9aa/xMwwN1C3Us5gmeOeEEk/mGNZuU10vNWQqvo+FjWc3YhlcNYTwiyoCi0FYIO5fIaz/JUBTwO3vuu5Vs1Tmac9ymcnMcNdPqxZEWcs4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=Vj3VqRYb; arc=none smtp.client-ip=209.85.166.169 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="Vj3VqRYb" Received: by mail-il1-f169.google.com with SMTP id e9e14a558f8ab-36a224d7414so188065ab.1 for ; Thu, 11 Apr 2024 08:38:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849926; x=1713454726; 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=ERW5BR/BtJ4YToiXkMeRs6Mbsl8L+nhWw3aXXM96rYs=; b=Vj3VqRYbQhkf7o8/CG/18g+ladX3cM2WzvYInokRLjDaodiH0KGTz3ataAasDi1FDP 4/wIVHwU70RqVnZLUgJr88tCCF1k8/i8EWUOCIvtykCBupqm5kQvsonSLTQdMzjNQkX3 fxKDNqBIBCZrwhWYCRAOz8TImDBJSM6jSDge2MBCEVwWRtbXkcQPreZdtKSLVLp0S0gv 9dSm+WUxAb0gUxY3KRbBED45NRgLX/01hbQDp5H9rCYZCLJ7Z5rohI2+/vaokwanZ66a ikTD6uQRxV6zcQQ72Emntw7Yfb5WMhaLShd9Q7ZHhf/6y7iTFloPC0bIoLF9L9siMUfT +pjw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849926; x=1713454726; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ERW5BR/BtJ4YToiXkMeRs6Mbsl8L+nhWw3aXXM96rYs=; b=aGU2PbnjxsP7l9/vq/nmrG+MLCjiUJrZcuSi7tRXHQZkOB68M6LIH5NEYVrYO/ZIz5 xEvQpWLV+sKP5HNSBaROngJQ4Ey6vgfLFZksVsKy2xXTVfrjKR0U5GSu95BQjCwBtLJA RrTowUv41FJQWbG8IFA/rUjpuOPmfAMaEIV3JSEeuoGvqsUrpFd04KAG9j6RdFud/yg1 +yzl24dpnxHi00g4Ik5LyTtlXAUM/QlXKhuhXQ0R/2+Y6pewRY0vH00A2tEjIJpGRwr/ IbAjpFKxvf/1s8NydZ2yT8OdM+La29Vl/i+Z3+SMhMZx6L9U6ZEoxsg1DJrgGMapVhVf NpFQ== X-Gm-Message-State: AOJu0YwZ7mDHif/2vLRnVSabCS6gv8iLIcKAfqFA6A6SrrZb7PjL9A1z J58C+WPHxVDr/SCFGxBzujceh5Mkd6hvu+ZZqRd9duVK26j7IJlRo50DDtxnue8TITuVXwfJmZY u X-Google-Smtp-Source: AGHT+IG+EWZ/xsJas1ogVghq5x9xscOsX0/9t5Mv+eVzp+taq0mNNTvrfcTyDAiAJ/sp/KPVhxJxCQ== X-Received: by 2002:a05:6602:4ed7:b0:7d5:ddc8:504d with SMTP id gk23-20020a0566024ed700b007d5ddc8504dmr194377iob.0.1712849926153; Thu, 11 Apr 2024 08:38:46 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.38.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:38:44 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 256/437] watchdog: sc520_wdt: convert to read/write iterators Date: Thu, 11 Apr 2024 09:16:36 -0600 Message-ID: <20240411153126.16201-257-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/watchdog/sc520_wdt.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/watchdog/sc520_wdt.c b/drivers/watchdog/sc520_wdt.c index ca65468f4b9c..a428f1e28fbd 100644 --- a/drivers/watchdog/sc520_wdt.c +++ b/drivers/watchdog/sc520_wdt.c @@ -215,9 +215,9 @@ static int wdt_set_heartbeat(int t) * /dev/watchdog handling */ =20 -static ssize_t fop_write(struct file *file, const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t fop_write(struct kiocb *iocb, struct iov_iter *from) { + size_t count =3D iov_iter_count(from); /* See if we got the magic character 'V' and reload the timer */ if (count) { if (!nowayout) { @@ -230,7 +230,7 @@ static ssize_t fop_write(struct file *file, const char = __user *buf, /* now scan */ for (ofs =3D 0; ofs !=3D count; ofs++) { char c; - if (get_user(c, buf + ofs)) + if (get_iter(c, from)) return -EFAULT; if (c =3D=3D 'V') wdt_expect_close =3D 42; @@ -332,7 +332,7 @@ static long fop_ioctl(struct file *file, unsigned int c= md, unsigned long arg) static const struct file_operations wdt_fops =3D { .owner =3D THIS_MODULE, .llseek =3D no_llseek, - .write =3D fop_write, + .write_iter =3D fop_write, .open =3D fop_open, .release =3D fop_close, .unlocked_ioctl =3D fop_ioctl, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f43.google.com (mail-io1-f43.google.com [209.85.166.43]) (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 51B7A1CC484 for ; Thu, 11 Apr 2024 15:38:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849930; cv=none; b=X13FipSDUtkSYRe+/iXWXoGS1ATfakZvroDzzjpCUgO4MpnZ7S6qTr6Iu0YZD4DLv7XSVNWPOBteH4LHH/M4GZTeiI0mc7Pj0lxqnuSQwr2jpT9+MinmuRKIPjTbx0yf4t+VFPVFJQFTslLWl997V26cI09pROUVTVml7vKmu9k= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849930; c=relaxed/simple; bh=7iJXfU5jCucGr+eEvpvjiL4pcU31bePF+ueSaFrtxy4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=DB9r2UP7pVThlJU9MBtc++UIIIXZ3/szaWN2xAVhyAYsuYRdGdMck2bmMBBbVSEC7DjmouYkkW1yNgBGk8CF6bqA5FYTI1AQOetD2RL19nzloa1QwSq/Ep8XL8QHeBL0SbTSttxZvXAjtXBxwNV0EigKAHnxyn77N4mYwcij7hU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=0PAaLGLv; arc=none smtp.client-ip=209.85.166.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="0PAaLGLv" Received: by mail-io1-f43.google.com with SMTP id ca18e2360f4ac-7d6112ba6baso58143939f.1 for ; Thu, 11 Apr 2024 08:38:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849928; x=1713454728; 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=RhMJhyVPdOsvYcqKap6p1ZAiSgbrC/XhXzgpPRTiZdk=; b=0PAaLGLvGLKSUBGZ6pgX9PW9Hz6GYJdjvddYAo5O5sTLm/UFVDC9vSUaXAkqo3z7yO vZNmoMZNoTFH+ZaVcLm6CK31oW7W0rVkOpvnST44ECOPm0us3UPRPg0mlWnEicIT45QI o41FRJBRv8N2w/SSOPlz3QjccUexqdgN8ga8B6/jNqip3lMozT6l4qC9VDssZrqqiZQM EgUjSzMHnEvghAPH8dMLW7gPBikbJJLsu99OAgUBi5clQSdmQI3bcvnCt1V6OM+6Ty2G i0CWwhmFbBhzwUl1rBdXjPL0xDI0xf9tlYBbcfBdNwmY4w3JKkOhc+BMaMZP1p2LC/n0 A9UQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849928; x=1713454728; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=RhMJhyVPdOsvYcqKap6p1ZAiSgbrC/XhXzgpPRTiZdk=; b=fWRHBEWQtSqGqNVWKgM8TWHUPQs12tFopEgtydfJRwLzvFZps3cY47hy1QuPHC7V2F uiNkO8a3Y/G0FSRwqDf+02y/G1MM5OLFIb31CtWIsFl/qkd55swtJ8flc3sq8601eErP GOWZ6EhUhoxWTAikTUZOGoQNCK3lD7fritjthWmmJRZtLK3+/+PbyUpFaY9F2Gi+V8Ad qI1UX/1lZUNVAc768dY7YbXl1vXNriAq+1ArQIUAtVDc6RnoiHb7j4oCtM40e/MKEQHw 7I8LK4qgJbHVPj4/Yw5NwzQc0sZ8T3cIvcXDa1eD1pgSgOeJ8eARV0sZjFH6Er3mCohg JUvg== X-Gm-Message-State: AOJu0YyYAKuC/lFjtr8/DJr2zD6zgDyvIQkw7NW8Uq9InupdPaDzmBtr 22EdtUq940eQxrdVvQo034vHVnZ77DkYoWzUsPCtL6oV+c+Vue3tVtR+jJUy0eZiz6Yrh+3AnRh w X-Google-Smtp-Source: AGHT+IGeAKw+iJTqtazdA9um32b5fcrxRWLXpIqGQADo0c9PhtnRjWE1tw2jEDQa9GEpjP7J3A8I0g== X-Received: by 2002:a6b:f312:0:b0:7d5:de23:13a9 with SMTP id m18-20020a6bf312000000b007d5de2313a9mr168396ioh.1.1712849928048; Thu, 11 Apr 2024 08:38:48 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.38.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:38:46 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 257/437] watchdog: sch311x_wdt: convert to read/write iterators Date: Thu, 11 Apr 2024 09:16:37 -0600 Message-ID: <20240411153126.16201-258-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/watchdog/sch311x_wdt.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/watchdog/sch311x_wdt.c b/drivers/watchdog/sch311x_wdt.c index 409d49880170..2d93a0353e79 100644 --- a/drivers/watchdog/sch311x_wdt.c +++ b/drivers/watchdog/sch311x_wdt.c @@ -218,9 +218,9 @@ static void sch311x_wdt_get_status(int *status) * /dev/watchdog handling */ =20 -static ssize_t sch311x_wdt_write(struct file *file, const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t sch311x_wdt_write(struct kiocb *iocb, struct iov_iter *from) { + size_t count =3D iov_iter_count(from); if (count) { if (!nowayout) { size_t i; @@ -229,7 +229,7 @@ static ssize_t sch311x_wdt_write(struct file *file, con= st char __user *buf, =20 for (i =3D 0; i !=3D count; i++) { char c; - if (get_user(c, buf + i)) + if (get_iter(c, from)) return -EFAULT; if (c =3D=3D 'V') sch311x_wdt_expect_close =3D 42; @@ -335,7 +335,7 @@ static int sch311x_wdt_close(struct inode *inode, struc= t file *file) static const struct file_operations sch311x_wdt_fops =3D { .owner =3D THIS_MODULE, .llseek =3D no_llseek, - .write =3D sch311x_wdt_write, + .write_iter =3D sch311x_wdt_write, .unlocked_ioctl =3D sch311x_wdt_ioctl, .compat_ioctl =3D compat_ptr_ioctl, .open =3D sch311x_wdt_open, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f47.google.com (mail-io1-f47.google.com [209.85.166.47]) (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 9967E1CC4AA for ; Thu, 11 Apr 2024 15:38:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849932; cv=none; b=o1EqAourQ02uekb3r7eEw4mNjeGJkotsBKM+TzA3nGrNo3FeLykqS92QW9A/fcwuJuQKcfNNJqaBkYP6Uzpjz7R/hpsP+Wm9wEmT6KnD2PNFv9n2e+4fuIglhT0D46U58MrSjPpAGKIZCnY58jlCVTRHR9zu6zA0xfBKqlPtJrw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849932; c=relaxed/simple; bh=QW5JsnuNpQivub7twXafOPYH5EAcQBabP9oDDI8Pp7U=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=oQtXxQakF7Z/W8i4pImfarQWyvZvXbqRvK7CoVuc8OJ/NLzD/graswPi17wumOPgkYob6K0y+boChSqdA4tlCv3N/BUoMJj/A6uxbo3FEE7plTyLTZbziEc4mHE6PTT0NLk8LrvccDG7yMPHr3qAxavUqi+ZEL5IsjpmYyIwHKs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=YKCzNatO; arc=none smtp.client-ip=209.85.166.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="YKCzNatO" Received: by mail-io1-f47.google.com with SMTP id ca18e2360f4ac-7cc0e831e11so170565439f.1 for ; Thu, 11 Apr 2024 08:38:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849930; x=1713454730; 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=V9OGk8BSTo3E8SS1FHxgTQ8p7oobNBmq1HPuHXWy2Gw=; b=YKCzNatOl6qvWHot15l97qf12qUwVHAhY9CuWtM4cFpwb15jqgaU129rTqCB7J4V+s i4zSlqooe4xi9TVCjdi6L+IAisOOlLS/fFzqRXa0qn3HMDO42xtpeP/pDzVNR1Mac681 yAOtZkPxIyo3f0AhWbYgjDkAiDIdd2CDuf/LGoZimyiLiDaq8ED5uh+iojlKHip17rgK pHgYZ0Lo0FkrQ2gICxL/fQODB73liljcJENxWtAqIQRiwum/+zouvMnUA4i4cx6Di/zj tkQqVKZ4fQaVVoUYzdiVIc4uC0dGk5eWvaHNalaEEKBkxJTIZV9HH1fBwoQvjp+ffI2C sXMQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849930; x=1713454730; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=V9OGk8BSTo3E8SS1FHxgTQ8p7oobNBmq1HPuHXWy2Gw=; b=mzSXPGo+ijVyLPO36kG7VlVtq4bp1vjJLqbFmq7MIkILpKYfAQTLUteyEhejOjXn3p hZhxU0gRg/fX0srTRSGanxXjc3t7HSuC3SuKIywQRj/bG6Vt+TF/tw6Rvxy61m/Y+o9i K11Kak6Qv2LHsZO+AVoYHeSD2RRLATxWcSOinjJxLuKe4os4/1/UNQTGpubdzgPVyCxX AMWUPRDwDChMQNoncyEBHIGQh/0+Jkih2PCPOGyajyEZb3dPk45cJPz+kQnzzjfdauEA iEncw5SygAiWBZfOB9cJNfKfL4a3Jy4DNDZzziGJFyRWxVIqdlEAcdwjDlnMLUpOd30S z2cQ== X-Gm-Message-State: AOJu0YwsbAPiC+e0U3ifMBqeifdXFiEKarhdkWsW0YuaA4bqZrFSJVUk qKEPhfcnlrh2lpF5DJGIZ+373Avs0JJzXmYtpb3reIm0pMBBpS/W+Dj/GqoEDwDHcfWhD3nBkH9 F X-Google-Smtp-Source: AGHT+IHx00UzVHHxsBrfoJ3AP8mTejCHu2px1XLuCdgQcLCHW+rpGi8p9OJsmawQOX0PnWQjn8ZX1g== X-Received: by 2002:a6b:5b10:0:b0:7d0:bd2b:43ba with SMTP id v16-20020a6b5b10000000b007d0bd2b43bamr228568ioh.0.1712849930358; Thu, 11 Apr 2024 08:38:50 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.38.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:38:48 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 258/437] watchdog: smsc37b787_wdt: convert to read/write iterators Date: Thu, 11 Apr 2024 09:16:38 -0600 Message-ID: <20240411153126.16201-259-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/watchdog/smsc37b787_wdt.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/watchdog/smsc37b787_wdt.c b/drivers/watchdog/smsc37b78= 7_wdt.c index 7463df479d11..e1a0c1b4ca90 100644 --- a/drivers/watchdog/smsc37b787_wdt.c +++ b/drivers/watchdog/smsc37b787_wdt.c @@ -386,9 +386,9 @@ static int wb_smsc_wdt_release(struct inode *inode, str= uct file *file) =20 /* write =3D> update the timer to keep the machine alive */ =20 -static ssize_t wb_smsc_wdt_write(struct file *file, const char __user *dat= a, - size_t len, loff_t *ppos) +static ssize_t wb_smsc_wdt_write(struct kiocb *iocb, struct iov_iter *from) { + size_t len =3D iov_iter_count(from); /* See if we got the magic character 'V' and reload the timer */ if (len) { if (!nowayout) { @@ -401,7 +401,7 @@ static ssize_t wb_smsc_wdt_write(struct file *file, con= st char __user *data, magic character */ for (i =3D 0; i !=3D len; i++) { char c; - if (get_user(c, data + i)) + if (get_iter(c, from)) return -EFAULT; if (c =3D=3D 'V') expect_close =3D 42; @@ -503,7 +503,7 @@ static int wb_smsc_wdt_notify_sys(struct notifier_block= *this, static const struct file_operations wb_smsc_wdt_fops =3D { .owner =3D THIS_MODULE, .llseek =3D no_llseek, - .write =3D wb_smsc_wdt_write, + .write_iter =3D wb_smsc_wdt_write, .unlocked_ioctl =3D wb_smsc_wdt_ioctl, .compat_ioctl =3D compat_ptr_ioctl, .open =3D wb_smsc_wdt_open, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f46.google.com (mail-io1-f46.google.com [209.85.166.46]) (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 36AF41CC4BC for ; Thu, 11 Apr 2024 15:38:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849934; cv=none; b=fkvuD2RfYJFqOpX+dNmS8wpm5ugjU7a3fp1HQVZolbayIrBulnNWiNuHMloUDLJ8B3K4iSJleDBr9oEHSyycQNJPmGQeg7+uYWyL5UlL5BgL9U0umdUoAE2MtV4V60ETNSl4r88k+5RJefnQ6gOFustAR91kNssB+CBA8p4Cq+Y= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849934; c=relaxed/simple; bh=KhElin05L3HRMuFXkSKrkWiDXpTOzGaQNIbrAPIJ758=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=dGCwJUZECFAg2if7VPRFYB6N+XzkF6ju0UWptib0hUx3QzwsHMdXUuKha/SNXfkv0x0Jy2PufAzzfCyrVFAvDOwT86B9NuSWAFxHOVI5BBuYZQiJlFfJ3FXHtfzj5QVwCTO4nWGsxe9X4heI063xaB2S2OKU40vEeIbdUXPFwf8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=U2UNswVq; arc=none smtp.client-ip=209.85.166.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="U2UNswVq" Received: by mail-io1-f46.google.com with SMTP id ca18e2360f4ac-7d5ed700c2dso16204639f.0 for ; Thu, 11 Apr 2024 08:38:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849932; x=1713454732; 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=fMR7VhGGRmCpKQy7RpuzVduqXFufN0s3k6wCvkujAKM=; b=U2UNswVq6M7KcXX/ZMHdyRmIgFFa2UL0rYoIN3oIKzISL8lLFwvP2rS0ykyRG92aAf EmqMKsd8CZw1UGZPaAE243sRfaNuCPy8wVcBgDo/8YNvQDzGa1/rm02JXB8dj5YISXMe VOpkcHGatXsiicYEIKl5PMRD8HDDu5/S0HBDBURSDZCFGp3LQiUEMQ3HhZGbo3+kYQEW hHaftDmEQVzOxsorGJtIuiToDWHa+QHZeF45/HhaXNWacyPyvZkT7d1l35eaZ4Ao65y4 C0pGhSJOMXPdIficcjxxX3QKl2xunKyx9PQVtvCM4RUMFDrIFX4O9d/hmsH0SU4x6Cb8 bUZw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849932; x=1713454732; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=fMR7VhGGRmCpKQy7RpuzVduqXFufN0s3k6wCvkujAKM=; b=uIe9nC0qoi5QL3ZmxU7mHAnScmHAgL0bqtz5914S3STRqBLQHvPz6ouurOyO/ieXhs r+267PeXnT5fgwfFf1FXFPWfOHu1zVqNAQmPHUFqI6XLrtm9uD9+IPRxcJ/+Y9YXw0sT RjnEucNB9mNH77AxVCLjifuiPrQ4DkGs5VAlxutFBCPoG79yG1EvFV5z27uTVZUjxzi6 0x8b6Dvj/j772zDZquWPFYaXH4y6l36EmGFAZNrQKMOvRoMIqp1W1xU1Eg2WPpn1hA8w JWyrD+z/H7Tgb+f+OOOKsOMz4qZp2nk1SxR/EmtVpJLXGcqHU3k+EMl54MY4BA2bTcle aQOA== X-Gm-Message-State: AOJu0Yw4czLeMjhx4DklJhxcbHZyVQVZFbZ31N/UQ1/rFvZV8y1vcB1K CFuScjN2UlaYkqZhPqzoW9FSsdN/tdfD4grK3MRL3SEy8fI1k3EhVIuxw3You0E1HbvW0PKnzZR Y X-Google-Smtp-Source: AGHT+IGUIor0GgPlLR+NLHgZuwl6+Ry4Wvs8Judccn7K9DibZMfAIriMRGaKFI/KaCnxzIjEkqBH5A== X-Received: by 2002:a05:6602:38d:b0:7d6:513b:254 with SMTP id f13-20020a056602038d00b007d6513b0254mr193521iov.2.1712849932187; Thu, 11 Apr 2024 08:38:52 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.38.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:38:50 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 259/437] watchdog: w83877f_wdt: convert to read/write iterators Date: Thu, 11 Apr 2024 09:16:39 -0600 Message-ID: <20240411153126.16201-260-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/watchdog/w83877f_wdt.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/watchdog/w83877f_wdt.c b/drivers/watchdog/w83877f_wdt.c index f2650863fd02..5c55951f9d5b 100644 --- a/drivers/watchdog/w83877f_wdt.c +++ b/drivers/watchdog/w83877f_wdt.c @@ -183,9 +183,9 @@ static void wdt_keepalive(void) * /dev/watchdog handling */ =20 -static ssize_t fop_write(struct file *file, const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t fop_write(struct kiocb *iocb, struct iov_iter *from) { + size_t count =3D iov_iter_count(from); /* See if we got the magic character 'V' and reload the timer */ if (count) { if (!nowayout) { @@ -199,7 +199,7 @@ static ssize_t fop_write(struct file *file, const char = __user *buf, magic character */ for (ofs =3D 0; ofs !=3D count; ofs++) { char c; - if (get_user(c, buf + ofs)) + if (get_iter(c, from)) return -EFAULT; if (c =3D=3D 'V') wdt_expect_close =3D 42; @@ -300,7 +300,7 @@ static long fop_ioctl(struct file *file, unsigned int c= md, unsigned long arg) static const struct file_operations wdt_fops =3D { .owner =3D THIS_MODULE, .llseek =3D no_llseek, - .write =3D fop_write, + .write_iter =3D fop_write, .open =3D fop_open, .release =3D fop_close, .unlocked_ioctl =3D fop_ioctl, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-il1-f170.google.com (mail-il1-f170.google.com [209.85.166.170]) (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 EE5371CAE8E for ; Thu, 11 Apr 2024 15:38:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.170 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849936; cv=none; b=l3pCgGpUwXHhiUQ1vrKyUx1he7LabMSnhXf3xndKi1Bp+dOxH4ZZtnc7LUz9fCGcgLWj8m4+QcI4gGbkFatJe8uglyVT05Xh1jt+rqS2r9T3fHEO99twxiFJHZgnjvbRmIdOG7itM07ZRDCg3ozBgBltaMA0GyilD53L3g57EYY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849936; c=relaxed/simple; bh=D1i61hy/OGU/BxDFd2yZetRX2a3LrZr04fgGEwdIAKs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=TFsMQNNJdpBtvtt0QJOvpQ0w9QtH9hoBawgMEaRr+0jwxE9LYMfqHDSMrQfm0y1AH9vFZaTjkPwb1QDwtPKgruhuarkhV0aBetANsOTS9GFi1qfow5V8oHwxJAaZA+ZCkoJnUxUdYbI8Xe0xjO+BHWk1tu02dDb++19ZwxhjvCY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=M15IK9YL; arc=none smtp.client-ip=209.85.166.170 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="M15IK9YL" Received: by mail-il1-f170.google.com with SMTP id e9e14a558f8ab-36a34b68277so114915ab.0 for ; Thu, 11 Apr 2024 08:38:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849934; x=1713454734; 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=82ju2a3lzjB0FXBKzrCXQHn/nfbrPYZeNscDq2Myhhs=; b=M15IK9YLVmZx03KmTRz+xlghs8Zkl4HiDUbxVotfWnOtI1Iwy7bVrtRnfFl5aCA2y+ 0yaWW5+10at1Q5HKKKhjkJEPDn+FT+8Mly1fBEwcE2kItFOEI8vxfeWPz+N6jrDWegcg odAqc9Cd2jOG7UbdhCOM+5PT8hruc2okxIE4OtJYJm571hX6e44IrcXUZTH1I2+Vbo1I uvleAyw2VfZ0i8rMH4Peq3W+MPAe9NoQJ0DcxAYyP3O4W8ECyIftZ6H/VjfuLBT+e1Mm DTmm7u+A0N+yAjHI/Ue4inZDVtSq7eQJffufSSWEfG+WGg7bF1QFLKrObOxm3WaP2pg/ e+aw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849934; x=1713454734; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=82ju2a3lzjB0FXBKzrCXQHn/nfbrPYZeNscDq2Myhhs=; b=ICRp3qHV5GKNdd7o04NWPtXNKUsN8Ld8iQhi1JxLmA0cmcc3HbhdXikjybt3XsG3Yd TRERlgGtdd3K/cLFXezCLRaySuOwsB1/rBgnClcm7nn7gqNS9UVWsCuLwvzjWCz5TkA4 Mg7Nh8tM6NTFnAaWUJHbQ5QDPXAjQQmkCBICbtCSVokyu46BSyOk2R+VYgkG0YZOznc3 S/94R3QXLL9IPHHfAM3760nw7upTHeTJra4PAgbyW417+Ujv4YAuo4OzKMsAN3aXN+OS x/DiPc2+mTivUQMGBCnj5A1zerEHTWQIcOYu5zCX5xfKAIwgTq6Bx94x5uYibgKzIaCf CDbw== X-Gm-Message-State: AOJu0Yz1lDxt1mLf+NiKPV6rB6QWP1fDsydocj/+7fZVxHK8hx+g/zT8 kC1pj+npDSVAg+a2PDnHENVP+ZmoYFxoeuaaI6iiEnYPyl3VHjOqsC+4g6t5SHyQjY9B02mMf26 4 X-Google-Smtp-Source: AGHT+IEiFHbMRIsw76oJgyHlTtQXP12zhA8SJ3cGwX31ogb/WkTO9K48efPQt/2SnzGra+rAecxXiQ== X-Received: by 2002:a6b:4e14:0:b0:7d6:631d:7b0 with SMTP id c20-20020a6b4e14000000b007d6631d07b0mr195274iob.1.1712849933788; Thu, 11 Apr 2024 08:38:53 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.38.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:38:52 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 260/437] watchdog: w83977f_wdt: convert to read/write iterators Date: Thu, 11 Apr 2024 09:16:40 -0600 Message-ID: <20240411153126.16201-261-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/watchdog/w83977f_wdt.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/watchdog/w83977f_wdt.c b/drivers/watchdog/w83977f_wdt.c index 31bf21ceaf48..2b9a8920ac2c 100644 --- a/drivers/watchdog/w83977f_wdt.c +++ b/drivers/watchdog/w83977f_wdt.c @@ -324,9 +324,9 @@ static int wdt_release(struct inode *inode, struct file= *file) * write of data will do, as we don't define content meaning. */ =20 -static ssize_t wdt_write(struct file *file, const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t wdt_write(struct kiocb *iocb, struct iov_iter *from) { + size_t count =3D iov_iter_count(from); /* See if we got the magic character 'V' and reload the timer */ if (count) { if (!nowayout) { @@ -340,7 +340,7 @@ static ssize_t wdt_write(struct file *file, const char = __user *buf, magic character */ for (ofs =3D 0; ofs !=3D count; ofs++) { char c; - if (get_user(c, buf + ofs)) + if (get_iter(c, from)) return -EFAULT; if (c =3D=3D 'V') expect_close =3D 42; @@ -444,7 +444,7 @@ static int wdt_notify_sys(struct notifier_block *this, = unsigned long code, static const struct file_operations wdt_fops =3D { .owner =3D THIS_MODULE, .llseek =3D no_llseek, - .write =3D wdt_write, + .write_iter =3D wdt_write, .unlocked_ioctl =3D wdt_ioctl, .compat_ioctl =3D compat_ptr_ioctl, .open =3D wdt_open, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f48.google.com (mail-io1-f48.google.com [209.85.166.48]) (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 625BA1CCEE9 for ; Thu, 11 Apr 2024 15:38:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849938; cv=none; b=WmIqQbbTBBScAyNzSa8D33oSuF4esfeE4g2CfAwnA1QdkX3hHsfGo138RA3qWjRpf2Lbeq5Hlklh8k9eO8R6zguL+61AGWx5NkycRBbmlpZkq64ZevDOm5wmNvFqCOrVtVaX+st+y/D3B176IJXRLz/j8BqOi/SZ3Gptf81pfVA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849938; c=relaxed/simple; bh=uz1UIVkUObBVPUP9l685tSTHjPvXyiUur4zY67F/rRo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=L6ZRWMiqirBnmWAWn6sJXgQ6PPd3uz+DQlfnNziBXZE0BTURb77gho9HYOpvOD825+yj0pLli3Rx7A3fGiDvz2zsinceseZy7VNR6tUaSfSTCdm8SXyJYGtvBJ3/I6r03TmKbArghHj1XaKtwmBAa7wcR0awG766GRiH8vx5hb8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=ptijERZZ; arc=none smtp.client-ip=209.85.166.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="ptijERZZ" Received: by mail-io1-f48.google.com with SMTP id ca18e2360f4ac-7d6812b37a6so9004539f.0 for ; Thu, 11 Apr 2024 08:38:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849936; x=1713454736; 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=ugjaLLgj3DqyxTYX0rLANZyd9K+HJWGaprm3UVS6Ptk=; b=ptijERZZ+hNLqe7LeHiB8K1IT+KyBGs9RBTsV7aZ1doEdSBNPMhFA3PWOOe3hsB7aO lzFWYEdlJ8t/pNRhEMzrpnPP6HV/xTvYvDN8kTg3wdNon8a8EW/M2X8hZVLa1DLDgyzO yaXqLqhUrDRLekoFiLpdCjZFKIlh0+mbAARWuR2apfJbVGMdh2nd+Pquvho+++4Aztzy XnO4LE8PP4ujqRcMm4ZEqFvhX99Uhubo4imMQ050O9sL0/GL+t9Dq9WfNxPEncFb7fDU W0ls6EtkH2HZGHtmFNnWNwDZWCjC48mkfARmaqEsGzzPVXMznTKq9+tGh8ouAhCMGpZQ LDOg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849936; x=1713454736; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ugjaLLgj3DqyxTYX0rLANZyd9K+HJWGaprm3UVS6Ptk=; b=BGUXwFO67qOUY4BHMCvsVGSkFtXyGUfSIVPP9MFSJnIF85qJtUDbEgY1kj/zNuMWMM b76g2Tc4CFvNDl4fXZcR2yFr0bCKIGjRPVViRDRsR7pkFvSEG2aXo3hrrtuz6XjB/yIW XOBNQTXe+jrojuw7cuKRTvENtdLHwIm2DdmI/h/YZ7Taw86An1YyjddUAwTkqRPi7e1X fH0uNnVzZgYPuTzYHfagTYElzm02vxWAKTHm8rdN7SU11BIvMao7hQxA4d4H/l4JMduB I/esc155pT9V2JmM4wQ93JmiMNMoq5+TcGgHl8p5Smb5Bh9ev0VfM6nrI2TEN5lEN71K oetg== X-Gm-Message-State: AOJu0Ywp+pTw8Nvu01+l19JaBZ1PpKfO0ToFSn8doc8xuzZLXlhkys9v DcDMQog+WcsxLs7NmFGVNU493xfO2U0YK3bSrWiH5MrOV4KptgGqgBvgxKDGRQ31H9zHmexywGC N X-Google-Smtp-Source: AGHT+IHe+5XMhbQ2lmBmBEPOkYPj32y9j/v2NNNtoHb5dH3ecr3shfz+1m8qD3fCNMO7Iwb7JBA3JQ== X-Received: by 2002:a5e:9907:0:b0:7d6:751f:192 with SMTP id t7-20020a5e9907000000b007d6751f0192mr188442ioj.2.1712849936220; Thu, 11 Apr 2024 08:38:56 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.38.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:38:54 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 261/437] watchdog: wafer5823wdt: convert to read/write iterators Date: Thu, 11 Apr 2024 09:16:41 -0600 Message-ID: <20240411153126.16201-262-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/watchdog/wafer5823wdt.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/watchdog/wafer5823wdt.c b/drivers/watchdog/wafer5823wd= t.c index a8a1ed215e1e..64d6317f058f 100644 --- a/drivers/watchdog/wafer5823wdt.c +++ b/drivers/watchdog/wafer5823wdt.c @@ -91,9 +91,9 @@ static void wafwdt_stop(void) inb_p(wdt_stop); } =20 -static ssize_t wafwdt_write(struct file *file, const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t wafwdt_write(struct kiocb *iocb, struct iov_iter *from) { + size_t count =3D iov_iter_count(from); /* See if we got the magic character 'V' and reload the timer */ if (count) { if (!nowayout) { @@ -106,7 +106,7 @@ static ssize_t wafwdt_write(struct file *file, const ch= ar __user *buf, character */ for (i =3D 0; i !=3D count; i++) { char c; - if (get_user(c, buf + i)) + if (get_iter(c, from)) return -EFAULT; if (c =3D=3D 'V') expect_close =3D 42; @@ -228,7 +228,7 @@ static int wafwdt_notify_sys(struct notifier_block *thi= s, unsigned long code, static const struct file_operations wafwdt_fops =3D { .owner =3D THIS_MODULE, .llseek =3D no_llseek, - .write =3D wafwdt_write, + .write_iter =3D wafwdt_write, .unlocked_ioctl =3D wafwdt_ioctl, .compat_ioctl =3D compat_ptr_ioctl, .open =3D wafwdt_open, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-il1-f178.google.com (mail-il1-f178.google.com [209.85.166.178]) (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 B1A9D1CCF12 for ; Thu, 11 Apr 2024 15:38:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.178 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849940; cv=none; b=MTira5aS8n41ZpaaClIeXnOwE7nXE6MG1LTjjmYEZ5iAKYxUPxckcsXCoTBS0+hTrWT8jXNW5Q5csyPSgSDoQxShpJJF/pvXyg2LuY4cTLP+sNWC0J1FIcvOyep+G5y3HE9JJknMAOl495izCYWq56JKR796og/+qycbe1wpBSw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849940; c=relaxed/simple; bh=PU1Zf+zrd7sTsTKINY0PwDd5tG03rzKZ5kv3h7QMxb4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Mup8ZZEzOa7Bv2c/3SKl8UjK+viQq0a+vunlulMFUWIAlwbbVj8zBlK7qJsQLJjnPWG7X2OZiCqzTmHTVjy9ILkOIGCONmTWqxm9S0nJ3TLXWuNj/FLw2KJwzVnxIX9WgEtFWNxePPZ335c5IQFo55CmqoRKLr6ioIedS8RYo5A= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=Z/Dt6OQE; arc=none smtp.client-ip=209.85.166.178 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="Z/Dt6OQE" Received: by mail-il1-f178.google.com with SMTP id e9e14a558f8ab-36a224d7414so188375ab.1 for ; Thu, 11 Apr 2024 08:38:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849937; x=1713454737; 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=mscnvAodvFjnkULv9sqFuSpmTwvvYlqWrZMKP6DUYFM=; b=Z/Dt6OQE046C1t2qAj0oEqPQBaU7MCZqIp6r1cKksPcdjrgtgCnC8sjBmo6dXOJblF wqNvm1Tk4CYIEHY7rEY1ICUoAoLpbIz1/51V1VRHqIEUBZEW8lg1oegDxNZfwSkpIcQU gqLud18TyPHVFHCX8bmWOKySKKYSujpLv43hju70b0pRz0mOdXDx0HxkC3nopj796U9f OupFgBCKPwsmPlvSueLQWDb/fusIklGXe0FeO2ndG3auB+NZY6+VIm/NhqcGQi2yDTO3 nm/pH12nq4dkuBYT99JsbK5Tg2fCZ1WpVWueIJDji15VhcSpNod8h+cyQ2VytUKicVWW 3hXw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849937; x=1713454737; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=mscnvAodvFjnkULv9sqFuSpmTwvvYlqWrZMKP6DUYFM=; b=J4ZukF04dNjiPVTGXiv+E1yiR7YJ/+T5UtZ6NUv2Iu6ZKlrWarczIHnIhz9DvDDOv9 X6c5SttbXABRd+M9qW1ZPf9Q+dbPF34yvQjwJUrHvaPVbE+cNWkkRnAJjrnk4YGoAw8s vDOM+os32hn3CKuE/pQmuvXaWvtXhl9V3VZyt7uAu+wSQQEG/k04Ma7UgXAkdvUK+PWm 211RD5aO0U3kldqruxf8vGTXEUvoq4w6OKMH9M44dhypsg+vt2lNUPbZLb19poBaK4Wr 4OerwAEy4jamhM5WPOk8c8ylxaZLrFGHeaLDdiEAiXMXALGEmaTzQZ0CJiku00pYTSY2 39tA== X-Gm-Message-State: AOJu0YygqFGeS9ZZXqCGxy99HXxHN5NKFQIz3JJoo2TboHm8sjsTMSDn F8uKBNNt440TczckspuQkTkODHdkwxYhqDyyqmDCxBfBczxnpiQ6c14dm9K+SV/Yf/eZVxeQ+4s y X-Google-Smtp-Source: AGHT+IEgR3dLXx8dpXgCulV8iX4I7eQsVkZbc1zWKcRZNkFQZ0SRTV8xvZPozVp3oYIDVjKASibu+Q== X-Received: by 2002:a05:6602:4ed7:b0:7d5:ddc8:504d with SMTP id gk23-20020a0566024ed700b007d5ddc8504dmr194815iob.0.1712849937495; Thu, 11 Apr 2024 08:38:57 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.38.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:38:56 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 262/437] watchdog: watchdog_dev: convert to read/write iterators Date: Thu, 11 Apr 2024 09:16:42 -0600 Message-ID: <20240411153126.16201-263-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/watchdog/watchdog_dev.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/watchdog/watchdog_dev.c b/drivers/watchdog/watchdog_de= v.c index e2bd266b1b5b..828141d16264 100644 --- a/drivers/watchdog/watchdog_dev.c +++ b/drivers/watchdog/watchdog_dev.c @@ -694,10 +694,10 @@ static int watchdog_ioctl_op(struct watchdog_device *= wdd, unsigned int cmd, * * Return: @len if successful, error otherwise. */ -static ssize_t watchdog_write(struct file *file, const char __user *data, - size_t len, loff_t *ppos) +static ssize_t watchdog_write(struct kiocb *iocb, struct iov_iter *from) { - struct watchdog_core_data *wd_data =3D file->private_data; + struct watchdog_core_data *wd_data =3D iocb->ki_filp->private_data; + size_t len =3D iov_iter_count(from); struct watchdog_device *wdd; int err; size_t i; @@ -714,7 +714,7 @@ static ssize_t watchdog_write(struct file *file, const = char __user *data, =20 /* scan to see whether or not we got the magic character */ for (i =3D 0; i !=3D len; i++) { - if (get_user(c, data + i)) + if (get_iter(c, from)) return -EFAULT; if (c =3D=3D 'V') set_bit(_WDOG_ALLOW_RELEASE, &wd_data->status); @@ -991,7 +991,7 @@ static int watchdog_release(struct inode *inode, struct= file *file) =20 static const struct file_operations watchdog_fops =3D { .owner =3D THIS_MODULE, - .write =3D watchdog_write, + .write_iter =3D watchdog_write, .unlocked_ioctl =3D watchdog_ioctl, .compat_ioctl =3D compat_ptr_ioctl, .open =3D watchdog_open, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f47.google.com (mail-io1-f47.google.com [209.85.166.47]) (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 917B91CD76D for ; Thu, 11 Apr 2024 15:39:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849942; cv=none; b=V+dBfck8HX1+NxuGOFl4VquqePTfvH0hcb23DYH+PGniMp9EuaO6lp7Z3DdTmHKcEnhXdDpx1KRKdw/dygHxpLDMd48uLbm7QZdYCWkASDR20b0ycp2GWFeCqBR0u+/Cz7QmHMBu0odLL1v4TER35g8zdTrqaByJvsKy75FZxA4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849942; c=relaxed/simple; bh=5L5X9RRdtX6cte1fQhAG6PLg0zKC8wCBomjPeYYi17s=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=bn28MffWC2koLb/bB8b2W0IK6qiHpU7H0Zp2zIHavhfJndDPVHculGguMtGYxaivypkUIjtPTcuAH8n7dYxH26BgjUxUDjUBWhCyNxDWX1ZdzXo9Ea7zf1POm29TNs7MNx2M5szJatxTHyEzovIT6pb+6q4BHAkFVI4NCCnHBkY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=aQ6NP5Gi; arc=none smtp.client-ip=209.85.166.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="aQ6NP5Gi" Received: by mail-io1-f47.google.com with SMTP id ca18e2360f4ac-7c8e4c0412dso69626939f.1 for ; Thu, 11 Apr 2024 08:39:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849939; x=1713454739; 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=6lmvmWxQcOR/remXZ8+nEl5Yz08ETmiFLxioOyAPUV8=; b=aQ6NP5GiBjq32o3V9rEEwbOED259LEL1yYb3cZWMOQON1Irb1OJAxz6IMvwloGobKj gjYiCJCnZkZsa5HlRy7IAIpclDcbi6bqZpAleGTL2tGIzHdWJ/iIX6uuXRp4Ayd2tKzd kZtV6bkO/dICU/CzqcOUQO0Ke7h9UWVo0Buyp+faE+VFP2krYeH+63O849eZr3NNT9j3 nA0d5gbT4ds1t00nxiFi4kSALmxKMwRBzbNY+XapiJ9ssAu4Fe3T7Bd14WeDeNrRsWSR sfUjuldoN4xOpHJVx4mnXvvCwiWS/VKeF5ZD1622WTnWSqMZm86cUa4GDMXOsv40mZMm Ub5Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849939; x=1713454739; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=6lmvmWxQcOR/remXZ8+nEl5Yz08ETmiFLxioOyAPUV8=; b=kAJiJfelfFfmdgtIEuFLukp0v/49IPxR2JGkW2UIxTNDc5GevamjywM2udMix0tHBw SXJHLUcNCPqAysv4rZ9IP8whGhyUvLVmHM236plW1FNSjWpARrVsk1W1W2lMlIyf5aIz LnVBVQ9OteZrbBgZvRv4XibGT1sq+dZUtgKciV+FnNU5K/XECRJYLcD03rJ4Ux4jk4cn lFatezieydrNK/Xfn2mf7PeNUUuE9xLJuKH8gLJ3uWGwOoSr+qHRNQCRN3e/2InyQylY RJGdNCHo4ubIEcl4+yy++jXYkCOSjEdvyaOEH3CzyRx6FTcoReBvo49TMgL5sZzXdRWO Ig4Q== X-Gm-Message-State: AOJu0Yy0X8GwBgJBv+51EIiCcsSYPmaMfeCuKJsOz0CMlJ4sbTViGhXo nFiuSucY4uIhd3zyCDzqiv+/zppYBR1vxDCVURKtFNTM7fOCqks7j9v4xT0+8CIDFbwLc2iundj L X-Google-Smtp-Source: AGHT+IHuoVHx7arwizqFHOEBaQ+dd3PKm/hh0Id6D0LyZ7MjZ6SxKypWCmmyEaa4VYJcW3CaYFuZaw== X-Received: by 2002:a05:6602:84:b0:7d6:9d75:6de2 with SMTP id h4-20020a056602008400b007d69d756de2mr48390iob.2.1712849939380; Thu, 11 Apr 2024 08:38:59 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.38.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:38:57 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 263/437] watchdog: wdt_pci: convert to read/write iterators Date: Thu, 11 Apr 2024 09:16:43 -0600 Message-ID: <20240411153126.16201-264-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/watchdog/wdt_pci.c | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/drivers/watchdog/wdt_pci.c b/drivers/watchdog/wdt_pci.c index d5e56b601351..21efe34c9fd6 100644 --- a/drivers/watchdog/wdt_pci.c +++ b/drivers/watchdog/wdt_pci.c @@ -350,9 +350,9 @@ static irqreturn_t wdtpci_interrupt(int irq, void *dev_= id) * write of data will do, as we we don't define content meaning. */ =20 -static ssize_t wdtpci_write(struct file *file, const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t wdtpci_write(struct kiocb *iocb, struct iov_iter *from) { + size_t count =3D iov_iter_count(from); if (count) { if (!nowayout) { size_t i; @@ -362,7 +362,7 @@ static ssize_t wdtpci_write(struct file *file, const ch= ar __user *buf, =20 for (i =3D 0; i !=3D count; i++) { char c; - if (get_user(c, buf + i)) + if (get_iter(c, from)) return -EFAULT; if (c =3D=3D 'V') expect_close =3D 42; @@ -487,24 +487,21 @@ static int wdtpci_release(struct inode *inode, struct= file *file) =20 /** * wdtpci_temp_read: - * @file: file handle to the watchdog board - * @buf: buffer to write 1 byte into - * @count: length of buffer - * @ptr: offset (no seek allowed) + * @iocb: metadata for IO + * @to: buffer to write 1 byte into * * Read reports the temperature in degrees Fahrenheit. The API is in * fahrenheit. It was designed by an imperial measurement luddite. */ =20 -static ssize_t wdtpci_temp_read(struct file *file, char __user *buf, - size_t count, loff_t *ptr) +static ssize_t wdtpci_temp_read(struct kiocb *iocb, struct iov_iter *to) { int temperature; =20 if (wdtpci_get_temperature(&temperature)) return -EFAULT; =20 - if (copy_to_user(buf, &temperature, 1)) + if (!copy_to_iter_full(&temperature, 1, to)) return -EFAULT; =20 return 1; @@ -564,7 +561,7 @@ static int wdtpci_notify_sys(struct notifier_block *thi= s, unsigned long code, static const struct file_operations wdtpci_fops =3D { .owner =3D THIS_MODULE, .llseek =3D no_llseek, - .write =3D wdtpci_write, + .write_iter =3D wdtpci_write, .unlocked_ioctl =3D wdtpci_ioctl, .compat_ioctl =3D compat_ptr_ioctl, .open =3D wdtpci_open, @@ -580,7 +577,7 @@ static struct miscdevice wdtpci_miscdev =3D { static const struct file_operations wdtpci_temp_fops =3D { .owner =3D THIS_MODULE, .llseek =3D no_llseek, - .read =3D wdtpci_temp_read, + .read_iter =3D wdtpci_temp_read, .open =3D wdtpci_temp_open, .release =3D wdtpci_temp_release, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f52.google.com (mail-io1-f52.google.com [209.85.166.52]) (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 E60261CD791 for ; Thu, 11 Apr 2024 15:39:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849944; cv=none; b=Ccqz7gCvkNzj/MnGNN5tBUrHsczQxFz65cUCqbjweM0l6Kc6KGPRjDP7KHH9f8rTLKjgyudgOQs84tSg59dAEWt2a2U+JKzbMPIBNDmvwT7D/MiWBw9hN2azMPm/2IT6y1J6xMABRifSIzESxd93a4v1gybGIn7/oyuJwa2gnMw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849944; c=relaxed/simple; bh=tEBrsDAZS3Ny8CrlOon0agqSfFrbHui1S0+OBOmhGy8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=XchoziRvH0JpXZGrJLXRTP9Uqgjc7aAJgjhZ1lunUe5rjN+f5mAkCChZjwdB62s2crqBu+nfxYt7bwBGKDKMbNTr/gTIW9NTK60QIrB/gEMSuhRkFr+n19kd2o/jHN9tS4hK02W9+4z/t0EomA7WZBlWY3IoZ0Og4Ao2lPSsM8M= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=ToS5Fnlq; arc=none smtp.client-ip=209.85.166.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="ToS5Fnlq" Received: by mail-io1-f52.google.com with SMTP id ca18e2360f4ac-7d6812b37a6so9007339f.0 for ; Thu, 11 Apr 2024 08:39:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849941; x=1713454741; 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=HcBnsvHagPaDeZjkv6Pf7/fUmIrYE3dMaGaCiiCnZlk=; b=ToS5FnlqXj0ppSnuPNRMoNO5dha6d0b/NLR475rsIsg1FdNusOQiWXblQNWAWFBJjx LCyT62qnBRFzSLcj7T5i7Z3Z+/EK+lEo1/cQzn4NmcP3/Y2nBx62NJaHk94KnfbiZaqD sLaGFwMp5u2Kd99v+bGU9Uy7Hm29pZ507o82FglYUOOIgAMd6j/zCFOaZneQ/+OJ1LoM RlKjqtj9UbptfQX3o455ZjoAW819G2UeDGj40gG1dxNN+DYtHZ5fwdfcJc2q37dYyLk4 MIBx0H22/IiP6wwm3Eua5fc1WUCNtAm4yIZMtc1EerRbelonwcQBDbVc1SA1+NLliL0l vWZA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849941; x=1713454741; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=HcBnsvHagPaDeZjkv6Pf7/fUmIrYE3dMaGaCiiCnZlk=; b=E48Mtrb+smhjbRwHVMW1z5hq1St26qkCVtdRyJnFKn9W7qkmP02abcKRL5rNnVLqix KHCJDz9qBVG0SSMRouEPFJXTmrSUbitoTYEgQrv3jMhIJGHeLlNKXcHD6IaW6F2/IruN q4b8Th9AibKcEwQPtSE9cwUE1W1ckK7HoGZK5jGrjo5Nfm6uQx5qX+5yudJtZpD1QVRT n+QiAEg1Kek/lTYyVxD2JWWWpB5ct8fJWatgQKqKiD8tyj6AbYTjQC3kig56r3SFWCor 5XWcVvffm1tiM1DACDMDbcHcZ1LAWw5HVMlZUCBLnK8gGhuFKd2FMkjHGt3ciiC8msmR 9vCA== X-Gm-Message-State: AOJu0YxEa4odNPXRaBadc9CCbxv5qBGf9T8sZLlczTm8HLy4LrrY0ZcS M6uvN7d/LN7MoD/+OR/HyyRFFH9lS2KxHvvUFcacbLfQyiNiZD6tExjSTu7tvX6hNwDPOahnk6b H X-Google-Smtp-Source: AGHT+IGoRLxw9fldMFTa1V/UIUupj9pXp8w3CdLrfncJy+MvVt0Iq2zQaMv9t+BJzgG44m6TU9yQhQ== X-Received: by 2002:a5e:9907:0:b0:7d6:751f:192 with SMTP id t7-20020a5e9907000000b007d6751f0192mr188616ioj.2.1712849941227; Thu, 11 Apr 2024 08:39:01 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.38.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:38:59 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 264/437] watchdog: ath79_wdt: convert to read/write iterators Date: Thu, 11 Apr 2024 09:16:44 -0600 Message-ID: <20240411153126.16201-265-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/watchdog/ath79_wdt.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/watchdog/ath79_wdt.c b/drivers/watchdog/ath79_wdt.c index e5cc30622b12..33320f83c190 100644 --- a/drivers/watchdog/ath79_wdt.c +++ b/drivers/watchdog/ath79_wdt.c @@ -146,9 +146,10 @@ static int ath79_wdt_release(struct inode *inode, stru= ct file *file) return 0; } =20 -static ssize_t ath79_wdt_write(struct file *file, const char *data, - size_t len, loff_t *ppos) +static ssize_t ath79_wdt_write(struct kiocb *iocb, struct iov_iter *from) { + size_t len =3D iov_iter_count(from); + if (len) { if (!nowayout) { size_t i; @@ -158,7 +159,7 @@ static ssize_t ath79_wdt_write(struct file *file, const= char *data, for (i =3D 0; i !=3D len; i++) { char c; =20 - if (get_user(c, data + i)) + if (get_iter(c, from)) return -EFAULT; =20 if (c =3D=3D 'V') @@ -232,7 +233,7 @@ static long ath79_wdt_ioctl(struct file *file, unsigned= int cmd, static const struct file_operations ath79_wdt_fops =3D { .owner =3D THIS_MODULE, .llseek =3D no_llseek, - .write =3D ath79_wdt_write, + .write_iter =3D ath79_wdt_write, .unlocked_ioctl =3D ath79_wdt_ioctl, .compat_ioctl =3D compat_ptr_ioctl, .open =3D ath79_wdt_open, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-il1-f182.google.com (mail-il1-f182.google.com [209.85.166.182]) (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 4D0F11CD77F for ; Thu, 11 Apr 2024 15:39:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.182 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849944; cv=none; b=ZUmWf9LGfCOFVljWtAU2XP1r1DVZhKJ4M9ylqC9c4Ka8Mx1w/AuelMGMkhDMiu60danNdANvqy4hGx6e5zt1x5J86Yn1mZ0TWoTYc4A4doDeL4r4bb8MR9vs9qWKsGI7OjQLsQPZQXSZCQ0dJU/HAPtoc9+myQWFFTOabj2EALI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849944; c=relaxed/simple; bh=xShioC90yhdGNMgFydnNZ/9wTb65LFc2jsMjXFGjd80=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ijCSsdBVjrhPRHQWyIyOfEXgR1XMuQWBEjh+NqusAzarwbV8Y6gmI9vtRVvAg0Q//G3TBkSr0rCxfrGVw7eOBWDHb395sP4PnskzNRUEXyoBJ1ApRQ2VYVAieET2ca6Yl4VsFxGbyVGxQ4kJwg0tYs87v6DbpMDNYFMWPMvJYnY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=AbpVXOCY; arc=none smtp.client-ip=209.85.166.182 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="AbpVXOCY" Received: by mail-il1-f182.google.com with SMTP id e9e14a558f8ab-36a224d7414so188575ab.1 for ; Thu, 11 Apr 2024 08:39:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849942; x=1713454742; 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=cXpsrimWRyxwEEReCCDJMdTK91+YNZPOEGJBjVtf1ZE=; b=AbpVXOCYvYlXOsNIVjoUkikXYrPxqQ/ie/Y1jUxr3bhlnSSe7dzFJiWkXzwVgt5xEH 7Tsn8PqbOmIXv6IHGzyRStX0VqFyc0q8m1G1n+PYrkhp9rPbaRGPaQX98saQXJNWUtzJ EPgGgD4BpTHpRlvglA/UusdMgF2m4JhkjmP0JHRUGjAu5bGfh6eHHBvNHQsJR3XIkfSh jmQ++eT++VEcGLxXRmtumEtCptjZTZS/oMpn2TS5XgEszNSQE80qlso6R3f5UjnOUOOr r+uH8qolvPfqQO2h09bRxGkL1JQq5hOlpODuVZ0gmO041v/WyL2PPLsEPwsiomGdh4ud yQtQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849942; x=1713454742; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=cXpsrimWRyxwEEReCCDJMdTK91+YNZPOEGJBjVtf1ZE=; b=xBr9efI+KG/AreQD8DqgZRFHVDu3NUumeHWsipI3KdJAB3bjvQ63yWR2HS8ZL5af6p L91u3pY4vVnraOFstJVNmsC0deKE7x+6x6nV/zuZdem1UjV1fdJRlXQLyaIV0IHazI6B 76fnAcVOGzOvy6QR3/IWyYs4sZ+86hxniGZznLq/m0acEYLMEMYim7gqmWPmoPO0ymlu 50vVAhnC9ltnIqKY3y5xZXe4ShR2TjFzY6Juhcldiphoyh30PidxJCqvxoecxdUFvA6Q BaqEGXoyEWznN/9gb41tTjpFqV4/8VG9v17AyLSsYBcJBxxahjXqAqflyDoXqyTV1Z7o k95Q== X-Gm-Message-State: AOJu0YwKyhUT5ztCzY4V+vfpDK2rk0sZK5Y7MAkSq+xcSrttEkcAhzO1 gvKF+h/OG+h7y1nz04hvEPpIXgR6uj/UB0qM6vBSOtTe1CAokVOdQ4WmVcolqRiu4fZL4jyzMs/ n X-Google-Smtp-Source: AGHT+IEm+e6VGvD/D28PJ/V7Q3R3ewu5QB3578H8F1yMFWKL/QZAURXSF6wFiy3kF1eVl/6CaSlxDg== X-Received: by 2002:a92:d812:0:b0:369:bf80:e367 with SMTP id y18-20020a92d812000000b00369bf80e367mr6248808ilm.3.1712849942000; Thu, 11 Apr 2024 08:39:02 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.39.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:39:01 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 265/437] watchdog: cpwd: convert to read/write iterators Date: Thu, 11 Apr 2024 09:16:45 -0600 Message-ID: <20240411153126.16201-266-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/watchdog/cpwd.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/drivers/watchdog/cpwd.c b/drivers/watchdog/cpwd.c index 901b94d456db..ca6d08107043 100644 --- a/drivers/watchdog/cpwd.c +++ b/drivers/watchdog/cpwd.c @@ -478,10 +478,10 @@ static long cpwd_compat_ioctl(struct file *file, unsi= gned int cmd, unsigned long return cpwd_ioctl(file, cmd, (unsigned long)compat_ptr(arg)); } =20 -static ssize_t cpwd_write(struct file *file, const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t cpwd_write(struct kiocb *iocb, struct iov_iter *from) { - struct inode *inode =3D file_inode(file); + struct inode *inode =3D file_inode(iocb->ki_filp); + size_t count =3D iov_iter_count(from); struct cpwd *p =3D cpwd_device; int index =3D iminor(inode); =20 @@ -493,8 +493,7 @@ static ssize_t cpwd_write(struct file *file, const char= __user *buf, return 0; } =20 -static ssize_t cpwd_read(struct file *file, char __user *buffer, - size_t count, loff_t *ppos) +static ssize_t cpwd_read(struct kiocb *iocb, struct iov_iter *to) { return -EINVAL; } @@ -504,8 +503,8 @@ static const struct file_operations cpwd_fops =3D { .unlocked_ioctl =3D cpwd_ioctl, .compat_ioctl =3D cpwd_compat_ioctl, .open =3D cpwd_open, - .write =3D cpwd_write, - .read =3D cpwd_read, + .write_iter =3D cpwd_write, + .read_iter =3D cpwd_read, .release =3D cpwd_release, .llseek =3D no_llseek, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-il1-f182.google.com (mail-il1-f182.google.com [209.85.166.182]) (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 D54851CCEFC for ; Thu, 11 Apr 2024 15:39:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.182 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849946; cv=none; b=BuKbgvgxmuFMkX7JpnyIO48EjGFsR7qzDPW9/8npyYT7gpEDLGzF+4c3Ft4pYk6tVCL0fWIpsb8Iy9+TXD2LnFrB/hWmF4EM2zuPtkz5bV+TqVERLGAQwbHhicNtn17uMw73AVnxzcbygx+2mVB3f7FxUO+1Cz509TtqWPGhZ/Q= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849946; c=relaxed/simple; bh=C/kcR+2TmhsL/54XIKPsKZnfpufS58ky2N3uJgGsAY8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=gNb5ZOxHBwTbbnpAD7L/2V+EBaAXybINZyV8ke95/ypqxVDPpx+i46qmpYy3HDJKVtMX0yj6pniqjyAk9H44OEmq0PDPrSQ/N5fog452Zi1r2BujwFb3G0JdyMJi7Al/vdcrdjFOaNupud6BfSN77iYxlGMAHI3/dK2H2umTlr8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=iknL07PA; arc=none smtp.client-ip=209.85.166.182 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="iknL07PA" Received: by mail-il1-f182.google.com with SMTP id e9e14a558f8ab-36a34b68277so115215ab.0 for ; Thu, 11 Apr 2024 08:39:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849944; x=1713454744; 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=mW1Ga2j4WmUcn8NPaIMNg4g8DxrNk3iZBbEGDGb7W/Q=; b=iknL07PAvG01EuSYcPWoBI1pRoT+UbwbUXqCvb8TjLrYKccE8y7iUTxExmr3oLYE7S 75BECi5ugyphTfElrL/JG96u1sMo2mmz3TJC3QfL9yEQz8eQa5zBDXBHYTUK5D2Ba+2U FzHUooyZkZ00dpOBk2SyyxBEei1XS1nMzNvWJkznTTGktNCZOma0ywvcj6Qw3f3QC7C2 xul4qr5vzznFdAekcXrWZlQX/OmSOqBE4iqEhD+cj6fJk4YTzhMTkmV6Ebh32E2JD713 HS5geBF7MRP7IA7dL0R7tNsDacuQr0J2NXA9/mRrlVZ1aN/NlxW2+lliMiwSJIcr8uvq dpTA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849944; x=1713454744; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=mW1Ga2j4WmUcn8NPaIMNg4g8DxrNk3iZBbEGDGb7W/Q=; b=lLz5xQ9OirADkPtyBC+7cusrumcGPTyBAqQmOA9aCGH8f2Smcwjkzec0LJLRlz7v2K SclephmKLyeDTZSmyO3HVQyoCdxXXMwtAVs8hN28CAfCxxBbYdQuHBReMuoVywXn0Flb vjjOSO/fg3TlSx5ss0Ea2HkAOpNyBVuD+dP8/hMupPcnJnKz+12mL09t/qyO62R2JYEg 05q7JdYlNMMHjOLacrC8TIqBCweF/fOff/3z3w25S2YITvigSTKlcuYkPDEMfNfGuaGO zCouG3WGD0BtyRBMPKvj3+8YhefCA/DZdy1y+WSSmlIEIWCAHzygwYDSWhjkNUS4U+8M gDPA== X-Gm-Message-State: AOJu0YwmjAE1pMeelE3wmblMamJPT4kve4o5c0Ijqoo6yps95Yja5k21 f+EMA4OKuTgGjxLPFTcbpWHDk0BQvtrWl9d6q1gozEQegSLRGWpaNA96KvfnsE/stMjcPh/SHoE k X-Google-Smtp-Source: AGHT+IFxCFU+fwD3VfcXuRxpCy4cNHfQ6+sBajCToN/4moqVePjcMdzp/LG6DzYv7mNM8gKaA9LeDw== X-Received: by 2002:a6b:6605:0:b0:7d4:1dae:da1a with SMTP id a5-20020a6b6605000000b007d41daeda1amr155858ioc.2.1712849943753; Thu, 11 Apr 2024 08:39:03 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.39.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:39:02 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 266/437] watchdog: gef_wdt: convert to read/write iterators Date: Thu, 11 Apr 2024 09:16:46 -0600 Message-ID: <20240411153126.16201-267-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/watchdog/gef_wdt.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/watchdog/gef_wdt.c b/drivers/watchdog/gef_wdt.c index 6a1db1c783fa..c946fd169966 100644 --- a/drivers/watchdog/gef_wdt.c +++ b/drivers/watchdog/gef_wdt.c @@ -132,9 +132,10 @@ static void gef_wdt_set_timeout(unsigned int timeout) } =20 =20 -static ssize_t gef_wdt_write(struct file *file, const char __user *data, - size_t len, loff_t *ppos) +static ssize_t gef_wdt_write(struct kiocb *iocb, struct iov_iter *from) { + size_t len =3D iov_iter_count(from); + if (len) { if (!nowayout) { size_t i; @@ -143,7 +144,7 @@ static ssize_t gef_wdt_write(struct file *file, const c= har __user *data, =20 for (i =3D 0; i !=3D len; i++) { char c; - if (get_user(c, data + i)) + if (get_iter(c, from)) return -EFAULT; if (c =3D=3D 'V') expect_close =3D 42; @@ -246,7 +247,7 @@ static int gef_wdt_release(struct inode *inode, struct = file *file) static const struct file_operations gef_wdt_fops =3D { .owner =3D THIS_MODULE, .llseek =3D no_llseek, - .write =3D gef_wdt_write, + .write_iter =3D gef_wdt_write, .unlocked_ioctl =3D gef_wdt_ioctl, .compat_ioctl =3D compat_ptr_ioctl, .open =3D gef_wdt_open, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-il1-f181.google.com (mail-il1-f181.google.com [209.85.166.181]) (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 9E4F91CE14F for ; Thu, 11 Apr 2024 15:39:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.181 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849947; cv=none; b=Gs/KT2BCPNl8hW1XQx+qULSNLHr5ptRbMUmg7bluyqmXhprKJPziZl6NEH6yULw5uXvLoduLRh3vXPCS34esp5mrS5OGPfcAmIvet/GPMJ0M81I0Am7nrhSf3ugMNQzQypJB/sXWtLyoVh03cuegi/FZMJgYrxED+zoELO+V37Y= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849947; c=relaxed/simple; bh=h05w1fIvvQ/GeEEHj7/5r7NdU+VBB3mOK+XJzBiSv1k=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=d03Ga7//sXvr3gh12DOD4vtWxv2oyUeDygX5nNIhmtiYHOD7LU38Dh2qemMDUYO46MR4EoULJwUqRWQwxzdZT9Fc7+rPU3w+IM/qFME2U1rd/dxCmgPdYiWKeSNVeqpHGbK8DLC5cYX3QRMXz3yLwbsAbJ+nz/YVWvHxt7iLAc4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=AJXzLw4/; arc=none smtp.client-ip=209.85.166.181 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="AJXzLw4/" Received: by mail-il1-f181.google.com with SMTP id e9e14a558f8ab-36a224d7414so188735ab.1 for ; Thu, 11 Apr 2024 08:39:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849945; x=1713454745; 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=xbF3UXpuNXnX+RWcPteWXT9lUZLHHoAbQrgAhbldMKM=; b=AJXzLw4/yyPKkF4bAQtuB6J5YKMWSV42JJMd6BUn+YsCHNOfTD6RpXbxBrmB9a25pG 8GfBfc0/1iTQNPwCE82vFTQdMHZMxUOM9wJv6kF2MCj6ejc+p9EBscZ7eShVlKLn+AdZ 9pgRRln9W5tJCYcGsy/fQZQ7ImI6FUHWv+d5jCLakrh+H0kZ1xd2rVWqOxy+P9QH2RMa ZtwjhTulHeODfAUkJdWR3uHm2Xs0Yo7QXclio2FzLfTCsT/GhkNxaYLgVuSe1t/JdnQM fMOhYW8Mv4XguX1vLj+s89h6MZMBYlW9yt7+1aTkAV3Ti+2XMj80bhogjfkb8PK1UaLF Qw6Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849945; x=1713454745; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=xbF3UXpuNXnX+RWcPteWXT9lUZLHHoAbQrgAhbldMKM=; b=wL5dmwphtrtixatZ8344dpxBr95JUHauTmk8z5c98YzxpCbo1+8IF2+s9uOo6OxxPl ZXgtqUamgNomTpJDITSaBYp4NtEbUfxlLqurDr+QCi9h5DL2x9sCzjHRNE8RcW+w09Rj /s0vV6hmCpvq9/XbNhkXSqTcnSwW0W3vECMgvi1fycHLAwQ/RYu5ttxMBRbeRWkgV6Ab tctxV/ElTL1vHVvO+VzlsJ6XiwqoIFqKGub2N9dK4GHGlbMKc6KJJB0FVaqBuLetIr35 r7lOJOeHdd7Sk25Ok3Yxtci30KvkNe/jK4C/Dfkvsjfxxx4wELFjRy57Clkt+iGYt21l syaw== X-Gm-Message-State: AOJu0Yw4E6fsQhRWWE03pRoJA/fPtRYaQKPtRjDQ6OWw8cl2dWwJmue3 Il9Cb4GQx3G/sAL9PIm7/pZL7H+0mdteWdDtNjIsHT1TC6SDmaQ0d9Wrlmo+8ing46YEibGbrVw N X-Google-Smtp-Source: AGHT+IFk4CQ80j/TNHVe/xNKfOPLRdzp8/k+5dSMnIN2J1B6bRGjgxJE6OmhCi1Wg0FAAy6TiAUhlA== X-Received: by 2002:a05:6e02:1d99:b0:36a:38bf:5fb2 with SMTP id h25-20020a056e021d9900b0036a38bf5fb2mr7484896ila.2.1712849945541; Thu, 11 Apr 2024 08:39:05 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.39.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:39:04 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 267/437] watchdog: indydog: convert to read/write iterators Date: Thu, 11 Apr 2024 09:16:47 -0600 Message-ID: <20240411153126.16201-268-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/watchdog/indydog.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/watchdog/indydog.c b/drivers/watchdog/indydog.c index 9857bb74a723..967a95a886a4 100644 --- a/drivers/watchdog/indydog.c +++ b/drivers/watchdog/indydog.c @@ -86,9 +86,9 @@ static int indydog_release(struct inode *inode, struct fi= le *file) return 0; } =20 -static ssize_t indydog_write(struct file *file, const char *data, - size_t len, loff_t *ppos) +static ssize_t indydog_write(struct kiocb *iocb, struct iov_iter *from) { + size_t len =3D iov_iter_count(from); /* Refresh the timer. */ if (len) indydog_ping(); @@ -150,7 +150,7 @@ static int indydog_notify_sys(struct notifier_block *th= is, static const struct file_operations indydog_fops =3D { .owner =3D THIS_MODULE, .llseek =3D no_llseek, - .write =3D indydog_write, + .write_iter =3D indydog_write, .unlocked_ioctl =3D indydog_ioctl, .compat_ioctl =3D compat_ptr_ioctl, .open =3D indydog_open, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f43.google.com (mail-io1-f43.google.com [209.85.166.43]) (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 0CFC51CEC0A for ; Thu, 11 Apr 2024 15:39:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849952; cv=none; b=od27YtDq92KfRbKMvp/YoJ4ECLEib+8YXXXjPKkaIUzLNOHYsptawDGKp01VLSZ/b+6p60tlDfkY4FQUIBLgrWbv17LXNMtsjNVKE8DH1vFTWRGqKtFb37jBLpsV40wpvRmYOp2jPsQJs93oRkoCdGHTLg9M/YBJqkb4jsHkAu0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849952; c=relaxed/simple; bh=5RokoYY97O92F3nBGNpj79AYkayDk+hD9WXYds/TkwQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=o2MBAP0wT9jOjit0lHrCwdk8VxEKk17gdXWhQvmd22SJsgTq94Pueox6Gv1dum2QnVuwYDUQe63hcwGyUD+wlL/qs4IoOsi6kV8rN55/irHGsR2zjnSB65Ma3tAUra7U84c7VPY+4odcfRyz79B7i48nzY3+c71xQ9b1CkrEF9c= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=ykytTZEr; arc=none smtp.client-ip=209.85.166.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="ykytTZEr" Received: by mail-io1-f43.google.com with SMTP id ca18e2360f4ac-7d6112ba6baso58154239f.1 for ; Thu, 11 Apr 2024 08:39:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849948; x=1713454748; 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=WgRqu6yvlu9SBgogevmne3UKzxDxb2/oRz4MOUfYFjQ=; b=ykytTZErCQdf4IrjShyo4N4HbLe/GZpizxhN7jwcSmCG/sFZasPnCwjg9/Ai12lg8f LK2wnfv5PMbvfHjj6PvxoPDwB7vwfrOUAuoI2uyqMwQadjA2jdC5uZ/yV2QXA1hqsEKU vNmrT+UEZDIDUG2dPF75CIkwgm2vONZWugPrMhexKxjEWaZ4tyOQWc34fcPsA/p07+FE Fo1OIORGztVMehVMTSDXQPxZmiiiBoTiHF0WEpn4vqIVFdrwMRtlXX9Ld8SvXNezFZYr 2MQgqyAxm/5YJDmoJIMmD6OEBJgsNczdhKIXpvsbqd5qVHHbGjjOHnkSReK8TJ7mysqb K1hw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849948; x=1713454748; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=WgRqu6yvlu9SBgogevmne3UKzxDxb2/oRz4MOUfYFjQ=; b=MRfZeSyKnWHJR4LxcYqg/TDhA9dbfdzS6cq3nNqjfEtegQ+iMs4TdvKtN3tWPeOmam 8Ij8RYFSBGets+hLtTnHdyVdZueeLyfmdyRafrd261Kslpn3Js7A/9APdOwH63XKFZCz pFu1Zb3upKxB25miaz3Pyrkxb+j7/cKTNyTZZUPulx06sjbRtTBA1yZ9dREdlZHyAjrO /dug9yWUp7r4YcFsBzeFDKfOMNDLt9oB2bPlMNe3cNjt/UpIchK2lguScfmMf/YXR2eg kOkd+kvdEMFd6vciyBvFyVxaoVB6Rlny/K3/pqtBSSZJzVAq8PoPUx6We4Hstk26dOhg 806g== X-Gm-Message-State: AOJu0YwzX+k/xDx7fxeOmA4F3+1rRVNft7qsJqZLHLBC+IZIxDLKbxug QVPxvc6NF6Gzl5peASBRthPpAaNukGn9zeYqy0sl5l+82QYCR78vKUW5jB/mq2QWbemt3MHFLAu e X-Google-Smtp-Source: AGHT+IFxY6DuhZNb2Yvzn6ZfmJq29RiKLmpUXOLomlIbyp7EmkTNQWa0F194HE1QxoJTEy3c/ZfgwQ== X-Received: by 2002:a05:6602:38d:b0:7d6:513b:254 with SMTP id f13-20020a056602038d00b007d6513b0254mr194338iov.2.1712849947071; Thu, 11 Apr 2024 08:39:07 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.39.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:39:05 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 268/437] watchdog: m54xx_wdt: convert to read/write iterators Date: Thu, 11 Apr 2024 09:16:48 -0600 Message-ID: <20240411153126.16201-269-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/watchdog/m54xx_wdt.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/watchdog/m54xx_wdt.c b/drivers/watchdog/m54xx_wdt.c index 062ea3e6497e..1421e305ca12 100644 --- a/drivers/watchdog/m54xx_wdt.c +++ b/drivers/watchdog/m54xx_wdt.c @@ -87,9 +87,10 @@ static int m54xx_wdt_open(struct inode *inode, struct fi= le *file) return stream_open(inode, file); } =20 -static ssize_t m54xx_wdt_write(struct file *file, const char *data, - size_t len, loff_t *ppos) +static ssize_t m54xx_wdt_write(struct kiocb *iocb, struct iov_iter *from) { + size_t len =3D iov_iter_count(from); + if (len) { if (!nowayout) { size_t i; @@ -99,7 +100,7 @@ static ssize_t m54xx_wdt_write(struct file *file, const = char *data, for (i =3D 0; i !=3D len; i++) { char c; =20 - if (get_user(c, data + i)) + if (get_iter(c, from)) return -EFAULT; if (c =3D=3D 'V') set_bit(WDT_OK_TO_CLOSE, &wdt_status); @@ -180,7 +181,7 @@ static int m54xx_wdt_release(struct inode *inode, struc= t file *file) static const struct file_operations m54xx_wdt_fops =3D { .owner =3D THIS_MODULE, .llseek =3D no_llseek, - .write =3D m54xx_wdt_write, + .write_iter =3D m54xx_wdt_write, .unlocked_ioctl =3D m54xx_wdt_ioctl, .compat_ioctl =3D compat_ptr_ioctl, .open =3D m54xx_wdt_open, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f48.google.com (mail-io1-f48.google.com [209.85.166.48]) (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 808ED1CEBF7 for ; Thu, 11 Apr 2024 15:39:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849950; cv=none; b=P7l/pk2jjgbOB1+OKnXOYmFavmK84gNyyg/Qdj7FT+3GcdFfocp5zQ0KLYNqNeWz3p2qWIH1HopIVL96vAesnSye1y8Icbes4Y0crLmFkyw6xsG6s3Lb061NnQE7F4BmT85DMsgRnoLZgbFxagzSBtwKYOWxz6UWERgR0+Y8rBQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849950; c=relaxed/simple; bh=SbLNY+YyvJ/n6VTS+ylql2LpwNRyjmAEGcM8JUKgiKA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=MIkJTpeDy6Agr2hyvuFGfuy0ncKPhsdzWaVLIXpCUHY6LhURX16NGQpFCUbZigYqIgraAGoFnPTSeUeGuMwviW3N7+puUiFyR7UVL+v4UAKTr8MyWiegA/+LtrnqjVXYUltN258oAXlf5BjV5ZHlnx9lsaBr9B0x2FW9MzQpbOM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=Wzc4i2zq; arc=none smtp.client-ip=209.85.166.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="Wzc4i2zq" Received: by mail-io1-f48.google.com with SMTP id ca18e2360f4ac-7cc0e831e11so170571239f.1 for ; Thu, 11 Apr 2024 08:39:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849948; x=1713454748; 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=tpLqbHCHiRrmIVcljtjWUdMhXXoiWWwTkINzbnINGFE=; b=Wzc4i2zq5l1S/VOE/RRMXDXDbW7C/ODbUMpnG8gpRbyhRg53TyHaVYS5Fn5bqwPRum 5drh5V0JqIwlaT+iz/hPxN0rvGVaTFQVDvst12738qpPKB/+DeuKOYzlC6hdsco4AeM9 TtpxqTtt3nAaT0lgq+i6QhmOQtkWEf0r+ewZhUKLk2RZdzkYPRmwZGiDJSqcJp3oCzAG WaSTbmzo8QKSjcWMMHVWtQMwouD/oh9VAzWS7v1nLtliqZbvtJMyQbAalzDsw67lYzTX 7jFFiFbPR5EeilblU1iAojoZQmVMybgqoRPtalbSQEKvXXfMfYaiCn8TbcjRF3XdD82V 1haA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849948; x=1713454748; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=tpLqbHCHiRrmIVcljtjWUdMhXXoiWWwTkINzbnINGFE=; b=JTXCwM/3vNt9dYf+jJRvYdxeXqqcMe/gts2X7y4eW6gi4gZnfpz6HtPVgnoWq830mQ exvz+CvfbytfiXe5x5qOZdFsKOFjeNISSWrQS6DuZOkj4BH0iRF/WE216F6iENb1Kl3a ai0nqpCY0W82i0/hLFxIszoAU6MGtlBemGgdgnj30ROI5yNQaGYPmVQK0vDsAjN1/1et xG+DacpS6miRYXHmd2P5AHaaua1gw/k/cZlDAWUj0rc3Mj9uSue9j2G8kong4/rK8fUp NqNJiZ6BpXtxoIlTDnbCiZmNEZmT9ID5FYexRnOo8LPoQDOTIWRMsoI4Xb7bzXCkZKRL +/wQ== X-Gm-Message-State: AOJu0YzwzQFBSKFO7/2W62IvWf1B3ClM8EeTF6xZnGsUIJg5S1+4c+hI LkEX0i5haUgZT/CUiClYn63KpL6SL9g/H8Dnxlj0gskuGjVV3Kgqlach+vz1GUHy+bucfAZb0p3 G X-Google-Smtp-Source: AGHT+IFcVo3i3o/k5twA0Rsb+cYBtE2c3K44//46cCuLHDOULy4stZ5TI90lUoAvBGpM6sfP9x7/8w== X-Received: by 2002:a5e:9907:0:b0:7d6:751f:192 with SMTP id t7-20020a5e9907000000b007d6751f0192mr188822ioj.2.1712849947944; Thu, 11 Apr 2024 08:39:07 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.39.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:39:07 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 269/437] watchdog: mixcomwd: convert to read/write iterators Date: Thu, 11 Apr 2024 09:16:49 -0600 Message-ID: <20240411153126.16201-270-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/watchdog/mixcomwd.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/watchdog/mixcomwd.c b/drivers/watchdog/mixcomwd.c index d387bad377c4..c980e542c31b 100644 --- a/drivers/watchdog/mixcomwd.c +++ b/drivers/watchdog/mixcomwd.c @@ -166,9 +166,10 @@ static int mixcomwd_release(struct inode *inode, struc= t file *file) } =20 =20 -static ssize_t mixcomwd_write(struct file *file, const char __user *data, - size_t len, loff_t *ppos) +static ssize_t mixcomwd_write(struct kiocb *iocb, struct iov_iter *from) { + size_t len =3D iov_iter_count(from); + if (len) { if (!nowayout) { size_t i; @@ -178,7 +179,7 @@ static ssize_t mixcomwd_write(struct file *file, const = char __user *data, =20 for (i =3D 0; i !=3D len; i++) { char c; - if (get_user(c, data + i)) + if (get_iter(c, from)) return -EFAULT; if (c =3D=3D 'V') expect_close =3D 42; @@ -225,7 +226,7 @@ static long mixcomwd_ioctl(struct file *file, static const struct file_operations mixcomwd_fops =3D { .owner =3D THIS_MODULE, .llseek =3D no_llseek, - .write =3D mixcomwd_write, + .write_iter =3D mixcomwd_write, .unlocked_ioctl =3D mixcomwd_ioctl, .compat_ioctl =3D compat_ptr_ioctl, .open =3D mixcomwd_open, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f51.google.com (mail-io1-f51.google.com [209.85.166.51]) (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 557DF1CEBE4 for ; Thu, 11 Apr 2024 15:39:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849951; cv=none; b=a/cqu7vLxbM0+YRDzkuh6GuKxIBgRY2wJFT8LhwQHUSLM7ijrqdNKIjM+ebRcNwDRYTjp49+P/PFgFwr4S5p6+X1nOOFIPYq+VhwfAnlQOPkBlfdMXrzd/LLD89TsulqwIZVg+tNxpCCWyvezHdO84adbWUyoVTPoWisJgP4Zy8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849951; c=relaxed/simple; bh=X6nzda4eNRoIOHJaJaQB1VJEo53IsCvtdTl+QikkZdE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=MTaeuj8bihLggiuCAdSs8TGGWHRER4jxhvQ6f0hmH55DQGTuhd20kCztgs9PNfvxGHFRryIidBmVf4tiUQ7i84NxykGA5f58ECtfC/Hb2p/Mo/kGFrYsA+UBp3vrN0GnUt/zA8fGMvUQDNp/Fcujz4l64uVfqajuXcVvbS+xlOs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=O5kkwLrA; arc=none smtp.client-ip=209.85.166.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="O5kkwLrA" Received: by mail-io1-f51.google.com with SMTP id ca18e2360f4ac-7cc0e831e11so170571539f.1 for ; Thu, 11 Apr 2024 08:39:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849948; x=1713454748; 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=PmEx9YmC+id1TZPj4p7DnNRAPC699v0oUB7DGNRCskA=; b=O5kkwLrA15lnRv/g9lRYbJD5pSCcEyOJ+CpxEW44wbiLtXRfBoLeUwLnP0cZVddYad rEpM49Tvngi5//98JfU9cjq82AYkZNbNxCmEfiGgPHVBVQ8+i7YrckpCPEMJwIva30pG JupnD4ePrb6WMI1rixTKbvnIeS/1P0LjmrmQNW9AE0WhinvzzdszrwuIHLNxlCatbM/x /DKD+ENycLf8BCEBlpkmEKlTQajt5frGYXgqEEKkE8nKqG7tGo+Cz9laD23xa8JnSrAa 6GH1DwXanPbbrXumFU+lrPdukYllPTMgSodWd6jw6BVVVnmdUErBFFn03G4yerjTS047 dzwg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849948; x=1713454748; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=PmEx9YmC+id1TZPj4p7DnNRAPC699v0oUB7DGNRCskA=; b=enMio4k+CIbB53kA21v7Xyn0bEDfRCAeWQGPGnxylfZB0x9TMb6GOyOWYCIFnTK9fY HvQUDIf0Wjckqz3EF5QUN80AP0s5/k3GlJyVvtRTfdob32eV9GnFJzPdJVSSdJ6WW+QT 6cULWrirEF0vXXpjlhLvdVfcy2byGj9T1MT3PjY5P4mTLXE6NJZ1H59S2tfbY/JKdZYQ lrjq6FWHvZ/o4omm+np2KK6aQdup5Vmp2FawGCxoExEqXokvaX8ZsE3zYmGOs7wdFbZJ qTeDqe0JxroOsBBWK/CtAseQtkmpDDCD729qmu9ZLJ+39xUCi3QTRvVlbnlp7kAzO6b3 QoBA== X-Gm-Message-State: AOJu0YxHUx00KZwfcOTx9DEJe6B/3toSsw8tTWIvKG2TipiYl9IYi0IT 8qORqFyORpm+CuKgoH+HGY03YkaVwU7aKS8l2wYagtPn8Ua3L5DO1KAuYqy3I4X8iJIgDZ4NGVd 9 X-Google-Smtp-Source: AGHT+IHz+2RSJBbM/HwLPknABONCodw6JwzOq1bMFJzvsGerMZg3xAP+BnP3118pOgNPOtzqqz7n6A== X-Received: by 2002:a5e:9907:0:b0:7d6:751f:192 with SMTP id t7-20020a5e9907000000b007d6751f0192mr188842ioj.2.1712849948652; Thu, 11 Apr 2024 08:39:08 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.39.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:39:08 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 270/437] watchdog: mtx-1_wdt: convert to read/write iterators Date: Thu, 11 Apr 2024 09:16:50 -0600 Message-ID: <20240411153126.16201-271-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/watchdog/mtx-1_wdt.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/watchdog/mtx-1_wdt.c b/drivers/watchdog/mtx-1_wdt.c index 152e41ecbb14..1d7f5154c144 100644 --- a/drivers/watchdog/mtx-1_wdt.c +++ b/drivers/watchdog/mtx-1_wdt.c @@ -166,9 +166,9 @@ static long mtx1_wdt_ioctl(struct file *file, unsigned = int cmd, } =20 =20 -static ssize_t mtx1_wdt_write(struct file *file, const char *buf, - size_t count, loff_t *ppos) +static ssize_t mtx1_wdt_write(struct kiocb *iocb, struct iov_iter *from) { + size_t count =3D iov_iter_count(from); if (!count) return -EIO; mtx1_wdt_reset(); @@ -181,7 +181,7 @@ static const struct file_operations mtx1_wdt_fops =3D { .unlocked_ioctl =3D mtx1_wdt_ioctl, .compat_ioctl =3D compat_ptr_ioctl, .open =3D mtx1_wdt_open, - .write =3D mtx1_wdt_write, + .write_iter =3D mtx1_wdt_write, .release =3D mtx1_wdt_release, }; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f43.google.com (mail-io1-f43.google.com [209.85.166.43]) (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 127601CEBE8 for ; Thu, 11 Apr 2024 15:39:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849953; cv=none; b=P7C5BVwsUtwVZCBEKGrURAlJgaC2qfCSl/S1XwJCi6WypY/0IXSWSsjtNy+UYzmRj4ny55F+jIrPITQhniNem8x4TtukixfUby5Qi79+NK/10tWecrG6euCA5nCw288KEyQIpYzqrxxYY8VHLPycOiI7lZi7Xe2EcCVOKUXwJqw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849953; c=relaxed/simple; bh=5MwfqhUBb8B/5Qs46Wfdn5mfen8Ks1g5KO4fzTQoHC4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=he+TTPb32fkurCQFz8SVV4zbIKER7w4I030kdw84RJFwbJUj/LwLPXtk5Nf1w9Jv0E90AYS+N67S7v2nOrKXh3fuyxEZiYaSrizhrDV5y9MXtn2cAKXJNxVv9yRgSKx76d+nVtnuuLAY8/QvMnUKnplRZ/INE+YT46gR6pcEcR8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=QEVSSn1l; arc=none smtp.client-ip=209.85.166.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="QEVSSn1l" Received: by mail-io1-f43.google.com with SMTP id ca18e2360f4ac-7d5ed700c2dso16208439f.0 for ; Thu, 11 Apr 2024 08:39:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849951; x=1713454751; 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=y80FFdMmbg2mjqEQywLLQI/f2SdKNe+1liZ3cfliOVA=; b=QEVSSn1lCNAkncank18Jtz9SHrYecWt5aQapQiNgmQKcL36byX8Ymd7d0/NpeJ+sZh yTC7qKl1lutHXoeeXLhv0hEyay/ck6LGgws14cHyqzkmVBORCt27sv8TeCvmTTje2OHS lKlPfa4NVLsJPO4QtsZyUGACq+DtI/6iHE9esjYoMbyItH5f637N14pTZrHgYggxsaRe EKY/vVcmK+CaXdVRAYMV6mRSZrCD3rrSfRWVLZ/Ft0AP1QfQah1ZNEqA/mag1hG+s/vF 91lV0uBtG9tGM0TZI/gqQMfkLx2RbAHyCZz+gXQcRRB2ij96eSSP7o41HW1KlfCqET5v XidA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849951; x=1713454751; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=y80FFdMmbg2mjqEQywLLQI/f2SdKNe+1liZ3cfliOVA=; b=WfL+9KDDu+KVcyJtEMgxFt5OTVsRs/InjQZkO4YJZkdaUpbDOhQXTi/+SXK9PUKt2k cLyq6/vkS7RIZCY9YsxuJNI209WCVknJfMlNImm37wYRqPSjT29Ikly5agWYaGlQhKdQ 6M+wmrSy52lWrwcUn9o0GnzxHEuQ7Kc3w324iiKSa5HSF2bWKP87jr6QW7tfwOHqO1k0 Nu1G8RXxZXeliPo7WtUGCF4g5dOTHKLaEnJO8Mn14HD4bsdNED3UuMTutFBpBetdUDW1 DS894jL2bN/pEZifz9M1demP6k3BjjmwGNJJNbMFQWcqMmt6Z38bJkq5+4nunrKQtULe I0ag== X-Gm-Message-State: AOJu0YzErqqCw2YUpYN5t0HF3qHDqZQUgNOf3K/rXAwEKN58ot5rxPXL CtgY+aHVFDYihPaxdDXCps3lBAtK0utjALxo60Tk+72GM6HWureEOv3m1EHeqQ/CqcAbBH8U9tX / X-Google-Smtp-Source: AGHT+IEunKW4kAfHp3WRRBeOgGCYq2JINlgAHZ0q0QdnJUb96Q/xKojcyB0lbQFDxC4LrLTKEIxvaw== X-Received: by 2002:a6b:cd08:0:b0:7d5:fe3e:90ff with SMTP id d8-20020a6bcd08000000b007d5fe3e90ffmr208819iog.0.1712849950896; Thu, 11 Apr 2024 08:39:10 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.39.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:39:08 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 271/437] watchdog: pcwd: convert to read/write iterators Date: Thu, 11 Apr 2024 09:16:51 -0600 Message-ID: <20240411153126.16201-272-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/watchdog/pcwd.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/drivers/watchdog/pcwd.c b/drivers/watchdog/pcwd.c index a793b03a785d..9515f87c0b9e 100644 --- a/drivers/watchdog/pcwd.c +++ b/drivers/watchdog/pcwd.c @@ -663,9 +663,9 @@ static long pcwd_ioctl(struct file *file, unsigned int = cmd, unsigned long arg) return 0; } =20 -static ssize_t pcwd_write(struct file *file, const char __user *buf, size_= t len, - loff_t *ppos) +static ssize_t pcwd_write(struct kiocb *iocb, struct iov_iter *from) { + size_t len =3D iov_iter_count(from); if (len) { if (!nowayout) { size_t i; @@ -676,7 +676,7 @@ static ssize_t pcwd_write(struct file *file, const char= __user *buf, size_t len, for (i =3D 0; i !=3D len; i++) { char c; =20 - if (get_user(c, buf + i)) + if (get_iter(c, from)) return -EFAULT; if (c =3D=3D 'V') expect_close =3D 42; @@ -716,15 +716,14 @@ static int pcwd_close(struct inode *inode, struct fil= e *file) * /dev/temperature handling */ =20 -static ssize_t pcwd_temp_read(struct file *file, char __user *buf, size_t = count, - loff_t *ppos) +static ssize_t pcwd_temp_read(struct kiocb *iocb, struct iov_iter *to) { int temperature; =20 if (pcwd_get_temperature(&temperature)) return -EFAULT; =20 - if (copy_to_user(buf, &temperature, 1)) + if (!copy_to_iter_full(&temperature, 1, to)) return -EFAULT; =20 return 1; @@ -750,7 +749,7 @@ static int pcwd_temp_close(struct inode *inode, struct = file *file) static const struct file_operations pcwd_fops =3D { .owner =3D THIS_MODULE, .llseek =3D no_llseek, - .write =3D pcwd_write, + .write_iter =3D pcwd_write, .unlocked_ioctl =3D pcwd_ioctl, .compat_ioctl =3D compat_ptr_ioctl, .open =3D pcwd_open, @@ -766,7 +765,7 @@ static struct miscdevice pcwd_miscdev =3D { static const struct file_operations pcwd_temp_fops =3D { .owner =3D THIS_MODULE, .llseek =3D no_llseek, - .read =3D pcwd_temp_read, + .read_iter =3D pcwd_temp_read, .open =3D pcwd_temp_open, .release =3D pcwd_temp_close, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-il1-f169.google.com (mail-il1-f169.google.com [209.85.166.169]) (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 ADFB8154852 for ; Thu, 11 Apr 2024 15:39:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.169 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849955; cv=none; b=jrNSxUXDtfWRrbNGbJ96INWnNNyezcqPqXf6Wr3VGtOatnQzdii0uuSFc5V1ZwSV8Z61TwkugHYumz3DBVTHiFxx1NTfDKCAuNP5cXCmI64Z5J8BeTJyWU/FXJuVHH70KXd2sGx1AZvIDSf1YElscRBDt5hcR93bhYAaAQ2ABy4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849955; c=relaxed/simple; bh=/wkwY1Z44nmGszAk6jmCpjniCVU8/egqz5fntl8fqhY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=TTcD4JvGlfoQ2J1lBVWutBUaUh1+fCzi9BiLksi0bg1EegSE0QqvjsBdm4ddLenBqcFhXzJlfR5u6o1iULzxJ0l7pzgr1WyXny3MfRwTbeBmeMlRxsoJkcOEnLBWcdcz293aM4vENMVtJpqAkYEwt+KE99f+Wg7VyEuo502wm6I= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=lFUG+lNB; arc=none smtp.client-ip=209.85.166.169 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="lFUG+lNB" Received: by mail-il1-f169.google.com with SMTP id e9e14a558f8ab-36a224d7414so188915ab.1 for ; Thu, 11 Apr 2024 08:39:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849952; x=1713454752; 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=566s8Y6cLJziK/Nzw7hAPOYHoC3UrD4uE/BWUdAvK+8=; b=lFUG+lNBXW38KhuzC+vI6/hPIUnjJLnDwpvHDkECCJi4EmJa1z/qP2LWXVchyacfKA twiG5eC8KWMG72stUL5X27bI38G2ZhoLN1J2TEu8rRPJPpyd8JV4cb0vl1ZaUoCyLShc XFQid4QlywxG3Rw0R340NVyEPR4i+f0u4RyoDrQdd28WpZwqwjI4l+SiWYVk2s8YbEWT aKawANF1HvnW1+yPEftaDV/i7wTBCpJ0Khr75WtygPbuyUBxI1op2ELxiwVg+WOkeSfk kqsnBl2LGvwlX/8SQGbb/+xUdeGMZ7287vTxV8FDdhiUfbniJJh0JJZdnEXUZWw5NMEE n1tg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849952; x=1713454752; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=566s8Y6cLJziK/Nzw7hAPOYHoC3UrD4uE/BWUdAvK+8=; b=M4hGNEYTQr7ewqDN56qGYC3Ur+leWjw8bqR4kSD53o5yDSnP5EjSvmCQ4Lpaj2AbNo vBkJ6luHUqc1lK3pOK8Xbg/17LqWCx7pnH7TK1qfeVc+jalFXQcbiOa/sHbyBRzgN9Cj 13nfnVMq2QDQOR4+BLJqE4LXqmOybBT8n/m5GN5ZvjVk9pM13tw70HoDMtRT73tO5clO vyVHNuzLc6tnCMlVCl3IA4b2eHgg6ZDaHTLuI5cJT8P+/Cs9QMC4/bGmGIJe4BNLnE35 Y/KZGOFwx7BaQ0VrM6Ylqb1oDD56mOm2LOGAa4d420bhh2ler1NfYH2RBuK10XMWRFWR P49w== X-Gm-Message-State: AOJu0YxAqQM6aaK8gRp5a3/rFuypGYRJQ7EOjyY5rC1xfwAi5Ql0Fet7 pZAm/UTg9TZR7F6kQHkPlE+P7DQ2QrEPsHeQi7JCYicnBLeCVq356P18J+kmRd6/vaFmf5qRMwk j X-Google-Smtp-Source: AGHT+IGsfvfbEpGxbvlDWUavSb5evdIAFp6brMAv+k6XjRktkq+wLeNLOn+r5tj2x1PYFF4K23tNVw== X-Received: by 2002:a6b:6605:0:b0:7d4:1dae:da1a with SMTP id a5-20020a6b6605000000b007d41daeda1amr156141ioc.2.1712849952559; Thu, 11 Apr 2024 08:39:12 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.39.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:39:11 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 272/437] watchdog: pika_wdt: convert to read/write iterators Date: Thu, 11 Apr 2024 09:16:52 -0600 Message-ID: <20240411153126.16201-273-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/watchdog/pika_wdt.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/watchdog/pika_wdt.c b/drivers/watchdog/pika_wdt.c index 782b8c23d99c..bf1ac356df69 100644 --- a/drivers/watchdog/pika_wdt.c +++ b/drivers/watchdog/pika_wdt.c @@ -139,9 +139,10 @@ static int pikawdt_release(struct inode *inode, struct= file *file) /* * Pat the watchdog whenever device is written to. */ -static ssize_t pikawdt_write(struct file *file, const char __user *data, - size_t len, loff_t *ppos) +static ssize_t pikawdt_write(struct kiocb *iocb, struct iov_iter *from) { + size_t len =3D iov_iter_count(from); + if (!len) return 0; =20 @@ -153,7 +154,7 @@ static ssize_t pikawdt_write(struct file *file, const c= har __user *data, =20 for (i =3D 0; i < len; i++) { char c; - if (get_user(c, data + i)) + if (get_iter(c, from)) return -EFAULT; if (c =3D=3D 'V') { pikawdt_private.expect_close =3D 42; @@ -212,7 +213,7 @@ static const struct file_operations pikawdt_fops =3D { .llseek =3D no_llseek, .open =3D pikawdt_open, .release =3D pikawdt_release, - .write =3D pikawdt_write, + .write_iter =3D pikawdt_write, .unlocked_ioctl =3D pikawdt_ioctl, .compat_ioctl =3D compat_ptr_ioctl, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f50.google.com (mail-io1-f50.google.com [209.85.166.50]) (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 4E99815487B for ; Thu, 11 Apr 2024 15:39:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849956; cv=none; b=F7fMmYRxr4q6M0GHi5KW2tPKbQtYAvTfIjxh1r6am9KBW6JW0uRYKHiq7QJRqsjOlZYUufIJIip1JQbmbakq4FPo+7QOsPiUe/OH8sNm5vxtHuSizoTc7VMuv8xtFHH7yOTyPZw7MbJdE72mjNmS5vodOPm7aez18UkNitBZzHo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849956; c=relaxed/simple; bh=VcsBVZtz+JJy48VV91zYEvK1ueffH3e4bxoR66JiCys=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Xb64Klxqy+TLitXDbiXpdXpoqKaDbiUxPumzYIe9H4k9rV4EN/RppmUFEgRCwABjmi8G3h259/nq9oLHjQ7mRa55s5X3y1qBmbPTr1pO4iK0u3IXIwL5p1U4K1yPXjiMjLdR87oKZFjicO1z61T1i789AuoMVMo7pWAzLr66rZU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=z0eMUD8c; arc=none smtp.client-ip=209.85.166.50 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="z0eMUD8c" Received: by mail-io1-f50.google.com with SMTP id ca18e2360f4ac-7d6112ba6baso58156439f.1 for ; Thu, 11 Apr 2024 08:39:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849954; x=1713454754; 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=ULLvcJ//537IPsZSnWbIfATv4VlFUZIbUClwMCj/AXo=; b=z0eMUD8cnb2bQja+w5DgzMh9NJvi5wYURnLiZnqmKcNq2AS2hm2w/jroNpmn0fyLi+ AGgM8sW9L6qCaQ5YUFpP5zkl5VG5WoQDN1+N6Yk66v+CV8vVtaOYWqOfA67UUZHvRr+s Jvh8EsErH8SzprLe5K6+tY+DY06i0Smkba0rm4tPfKwuxXzrTHne6x+gpTr57DV/sOFp Opmzy2VptxGJhOfmj9H6zg+cjwdQqckn9iaUUSuzAa4JeVZgqhoqYV82z1F0lgPs3N+E jjZ7tTMwo0MedZMNozGQthIaVHwf/PNnaRbF0yD9l2jy1ySe+37P9k+aJZlUlUoMz561 k97A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849954; x=1713454754; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ULLvcJ//537IPsZSnWbIfATv4VlFUZIbUClwMCj/AXo=; b=t8e3shCQvZeWvzj2mEivYv1QCSg+1lVwbnOcXAT+x7gUPX1UJiR2NW/MaZUzXvORlA 2ixDVWlQHX/y/sp0l7coNfub62t3jmkl9uOeXZ9cWNZeirEcdVVg9F9BJcwY7BVMAh6T nZ/9OLPvcxAH4xBjJk3WFM11x8bN2r5F7Kg0my4C8pWwHeWG0Pxr2kUgucEnaDOt7/WC DVghqOrTm80a1DzGm29XCkggLZteGlcHubJ0K910q6dzfW5QKM5ktRwGduTcMUEvgjrE J05t8xcjg7vy2gA3F4rCgU+LInBRkFS4pLBMiVrUOEL7jgEbG/adLvbBIJ/Qrw7WOXM9 YOsQ== X-Gm-Message-State: AOJu0Yz0yFwJdPccKGKulfU9TokVL/Xm10sxJVIkmzV/UQRhuvSdooLx DnG59oY4DQdNWnhh/rwC2w9/gX9bP/9ZPhVB9f8AK845sDc9ytASM5D+crsE+0EBajX65pexLkm Z X-Google-Smtp-Source: AGHT+IE61O5n7k0vrG2eFRX2nYSl0SnD44wEqJb8nO2P+iRMkkizkUbXBHk3N8A5QhgXHGADQwISNw== X-Received: by 2002:a6b:f312:0:b0:7d5:de23:13a9 with SMTP id m18-20020a6bf312000000b007d5de2313a9mr169444ioh.1.1712849954189; Thu, 11 Apr 2024 08:39:14 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.39.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:39:12 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 273/437] watchdog: rc32434_wdt: convert to read/write iterators Date: Thu, 11 Apr 2024 09:16:53 -0600 Message-ID: <20240411153126.16201-274-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/watchdog/rc32434_wdt.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/watchdog/rc32434_wdt.c b/drivers/watchdog/rc32434_wdt.c index 417f9b75679c..76c046c9beb9 100644 --- a/drivers/watchdog/rc32434_wdt.c +++ b/drivers/watchdog/rc32434_wdt.c @@ -161,9 +161,9 @@ static int rc32434_wdt_release(struct inode *inode, str= uct file *file) return 0; } =20 -static ssize_t rc32434_wdt_write(struct file *file, const char *data, - size_t len, loff_t *ppos) +static ssize_t rc32434_wdt_write(struct kiocb *iocb, struct iov_iter *from) { + size_t len =3D iov_iter_count(from); if (len) { if (!nowayout) { size_t i; @@ -173,7 +173,7 @@ static ssize_t rc32434_wdt_write(struct file *file, con= st char *data, =20 for (i =3D 0; i !=3D len; i++) { char c; - if (get_user(c, data + i)) + if (get_iter(c, from)) return -EFAULT; if (c =3D=3D 'V') expect_close =3D 42; @@ -243,7 +243,7 @@ static long rc32434_wdt_ioctl(struct file *file, unsign= ed int cmd, static const struct file_operations rc32434_wdt_fops =3D { .owner =3D THIS_MODULE, .llseek =3D no_llseek, - .write =3D rc32434_wdt_write, + .write_iter =3D rc32434_wdt_write, .unlocked_ioctl =3D rc32434_wdt_ioctl, .compat_ioctl =3D compat_ptr_ioctl, .open =3D rc32434_wdt_open, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f41.google.com (mail-io1-f41.google.com [209.85.166.41]) (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 641A01CFD1C for ; Thu, 11 Apr 2024 15:39:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849958; cv=none; b=r3GQIssCcuWKtG/kbut1U4V/9LmTitDmBr4FbaqotsoCwUDHf0trHYEh3UUSqNtZ3BFN36aGSvaHGdTHgf2mN65gxNZB2BZje72KoRzV/00WdggYQGHFgwS+zyrWUoNmvoOPTS1jj0DRsAv6ypjCFe8pIx1GjNm1xxbEiHQLRd4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849958; c=relaxed/simple; bh=lz0rOiedaWxp+pS40Kc92MD0eOVvy2p5WRBw8pg/VqI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Z+hNG1bu+vLtNvZfn5my2CxpQinEc8nQLeC8y60XRnITZkNS00ziWc2xI6LdSx/lapDEtpb4gTkMxzMn60bdwZxRBS70W9YkM8PFKNFIp7Y8oydJ1eyHA7HBYEZa4QDS6kcyownZ9NMISk0VH/Zy8EDdZJ6HxEKiz4+bF6iXWYk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=l6fcmBw4; arc=none smtp.client-ip=209.85.166.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="l6fcmBw4" Received: by mail-io1-f41.google.com with SMTP id ca18e2360f4ac-7cc0e831e11so170574039f.1 for ; Thu, 11 Apr 2024 08:39:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849956; x=1713454756; 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=ub05T/jdp78Vmeoz4SlijoCMJBTdavqApNfMHzHgYRw=; b=l6fcmBw43na1wTWjoUgGQP9pO9zjDZ6fgNmX79oLrN4NAu4ACMfOn4J00LD3mzAbU1 /NmvIbfLvVZ0igF6/mPZPI+5EYGH5AWNqEW+MNLqof2E8OCGglZb8YSwUb2Msl9V7bFf bybVB+0xbTIohjRaR7CHRBfWcVVyDo93yuRJMVqh21kP+lh69zHtoPpWCKVTnCt/ttS0 T5RSnbUhUTOTm91aDHmH2dYxg5D4RvmpB4kk2Bo4Z+gjuyK2agdYqRB9tfI82+md/Bvi t6q0eGYchMnsN4d5kFFdSvOlX2IM9wMadT8g89HNoLfAb8N1tPjyEfoSqv4SkPpJi7IU T9kg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849956; x=1713454756; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ub05T/jdp78Vmeoz4SlijoCMJBTdavqApNfMHzHgYRw=; b=C5teWNB1e85cYj2PGeQPxn6lwzfKSWkxXZzB3oQFUNYJnfWH32ENsahaKQzeRT2Ert jT3z2Ihe8kpxaMha0AmVgfJHWPLPW1wyZpvGgDBVp+01oWsuEc7SZm9Yit0ijSVjw6TZ aRIultX0bQ8KeBorf0eFyUGdWp0axi1Je9Xb15P+6TJxkGu3inQqwMpEvg599Lo6zEbP a1eJGmQOoO27SBbvo1ZgXV0RLAuHW2IMy8uGqumOVnxj9UGa7fBHU9iSAFa+SnNbLmYv d2ysiJXg2YhAxWAN/t2oAxfpmAxjzujGk7PnN+W5TsV+tKPT9dI4z+fYpcszDPA/etbG z4jw== X-Gm-Message-State: AOJu0YydXwMm2nFbpiog0ZLDs401nrCNb7QVT40Em+ENA2v5eHpvVU3R PVAM+xjSRPo1B7os977ngLNMjFMsuAmt+rBKFEZE3aURU76q4YP6ai9zikhDPixOeaFvj15lkRV X X-Google-Smtp-Source: AGHT+IHHztP40vc+223DwzjfTKflzZtg7zX7jwhpbjEd3mzgNVprpjE3b/tOu21UjmrU+7iYYwhMGA== X-Received: by 2002:a6b:5b10:0:b0:7d0:bd2b:43ba with SMTP id v16-20020a6b5b10000000b007d0bd2b43bamr229809ioh.0.1712849955896; Thu, 11 Apr 2024 08:39:15 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.39.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:39:14 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 274/437] watchdog: riowd: convert to read/write iterators Date: Thu, 11 Apr 2024 09:16:54 -0600 Message-ID: <20240411153126.16201-275-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/watchdog/riowd.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/watchdog/riowd.c b/drivers/watchdog/riowd.c index b293792a292a..d9a85b4c1de2 100644 --- a/drivers/watchdog/riowd.c +++ b/drivers/watchdog/riowd.c @@ -145,10 +145,10 @@ static long riowd_ioctl(struct file *filp, unsigned i= nt cmd, unsigned long arg) return 0; } =20 -static ssize_t riowd_write(struct file *file, const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t riowd_write(struct kiocb *iocb, struct iov_iter *from) { struct riowd *p =3D riowd_device; + size_t count =3D iov_iter_count(from); =20 if (count) { riowd_writereg(p, riowd_timeout, WDTO_INDEX); @@ -164,7 +164,7 @@ static const struct file_operations riowd_fops =3D { .unlocked_ioctl =3D riowd_ioctl, .compat_ioctl =3D compat_ptr_ioctl, .open =3D riowd_open, - .write =3D riowd_write, + .write_iter =3D riowd_write, .release =3D riowd_release, }; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f41.google.com (mail-io1-f41.google.com [209.85.166.41]) (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 DF8781CFD26 for ; Thu, 11 Apr 2024 15:39:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849959; cv=none; b=ULamtzNwiO6CAsBrOLBzug5nJNlBXtLHJ71bENw0SsR+VXzv6dU56FWCzDtPyUS3D/gp/chqf4AdblHSZGqTsj5RvPkOmL8OKDNv+0xUjaa/Oes6RAT343jdX64j8Dopa2i2Li1nWj0VXvvJrd72wNpKoZKpG21/iFexlZGmLUM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849959; c=relaxed/simple; bh=K1SKuLbLHQ+XjjGUNFAADcDccp7tMugiM2fba9f7wU8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=suQ4KLmQW48EfXYbXoEGnA+Pr8enBWPwX8fU7l00gI38/kUByZYi/V9p4FBvPpfLQ5ZfsG5jrw2lkVfPZuEjBuLXBHpb0Uec48Vnn/DV+VnU6ToFreni88bmYR4FKINphGCfeUhFaXeiLtsoidsWlBJtV92Rfrs4X2NLaJPjcLg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=VN9UOzMH; arc=none smtp.client-ip=209.85.166.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="VN9UOzMH" Received: by mail-io1-f41.google.com with SMTP id ca18e2360f4ac-7d5ed700c2dso16209839f.0 for ; Thu, 11 Apr 2024 08:39:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849956; x=1713454756; 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=9AqxnqBVB6hfcyjEvePFFAZPh9dtkk1FAtMabuM1LjE=; b=VN9UOzMHtIq7zpKE9CKM5wvUkIp5UIgdGO0fIEGSO+gxjFWF6LPndmHPIwQwbBHSCQ oE7jgPXihDGlCy4gscAmT44nPbOqJhjt8MMrg5b919hF0UzUjG5mBhGqiScOTFPQK9/+ 0icxRsFz6/zLG2yd8BhdwRfQ+JbSe8ZIJe4dkgdb1DBkDbcQsRytCxKXeqima9GmSzqF gXgpi1Lm1wHcCq5Jlrc4erkWv0LVkdM24PPYyTd0I0D/9wJou7+GDp7yWWmd+dFFom50 UuNvxIELSgGndUjWV81APLGkqRAOOPceX2SwllmFUO4dRQ8jMHNnGRhcAmJQhUwhWhes 23DQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849956; x=1713454756; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=9AqxnqBVB6hfcyjEvePFFAZPh9dtkk1FAtMabuM1LjE=; b=dsFp51HYGq8RW2UoRnBnQxgLyGtblVpuWf2KNBZahVzStErmkpllTNXKAVf3sOhywI 3skItMZ1OLDzErgkb9anHEP0cTCQXUpAR/UzvYGEoR5QdOWAA+PKp+bwCTS92W2uHc2H +6WlYD+JuaXAZNG+cCgBqw7/7R9Dw003RlH09wGAfKbtDwY1BLK7DUl2YbdRb/8AyzPm 924SqM7EXr10LdRhR0aK3dSzpk/xlvpTgmX4L7Q+6mreOCSDNPcPxx4UvF6p6mE0KTGs hTRpbq1FkzOrnO1ULCuYQQ7gjiN/SDsueGwzG8yLHL+gylRTIyYPBnmjEdoRhGjSGgcr 4TLA== X-Gm-Message-State: AOJu0YyhjNWYB3+fLHoJmxw8Ubw8HJKLi4OdcZ+IbTngZu44o66VI9yw XSL9QTU33PA8+e8uN50/6sRWFHknFd6DsynHfsBS5nBnr2PljXjN4CwZuXVDR2aA9OfwXJXrBoo g X-Google-Smtp-Source: AGHT+IHDKM5qIfJDmpu0WJZzabsxJ8A2uCgkqV8BOAxeejDkyUdkfIuVmlH7f2nM6tHqQ7d21e9i1g== X-Received: by 2002:a6b:f312:0:b0:7d5:de23:13a9 with SMTP id m18-20020a6bf312000000b007d5de2313a9mr169561ioh.1.1712849956616; Thu, 11 Apr 2024 08:39:16 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.39.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:39:16 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 275/437] watchdog: sb_wdog: convert to read/write iterators Date: Thu, 11 Apr 2024 09:16:55 -0600 Message-ID: <20240411153126.16201-276-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/watchdog/sb_wdog.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/watchdog/sb_wdog.c b/drivers/watchdog/sb_wdog.c index 504be461f992..cb1123b7bdbf 100644 --- a/drivers/watchdog/sb_wdog.c +++ b/drivers/watchdog/sb_wdog.c @@ -141,9 +141,9 @@ static int sbwdog_release(struct inode *inode, struct f= ile *file) /* * 42 - the answer */ -static ssize_t sbwdog_write(struct file *file, const char __user *data, - size_t len, loff_t *ppos) +static ssize_t sbwdog_write(struct kiocb *iocb, struct iov_iter *from) { + size_t len =3D iov_iter_count(from); int i; =20 if (len) { @@ -155,7 +155,7 @@ static ssize_t sbwdog_write(struct file *file, const ch= ar __user *data, for (i =3D 0; i !=3D len; i++) { char c; =20 - if (get_user(c, data + i)) + if (get_iter(c, from)) return -EFAULT; if (c =3D=3D 'V') expect_close =3D 42; @@ -235,7 +235,7 @@ static int sbwdog_notify_sys(struct notifier_block *thi= s, unsigned long code, static const struct file_operations sbwdog_fops =3D { .owner =3D THIS_MODULE, .llseek =3D no_llseek, - .write =3D sbwdog_write, + .write_iter =3D sbwdog_write, .unlocked_ioctl =3D sbwdog_ioctl, .compat_ioctl =3D compat_ptr_ioctl, .open =3D sbwdog_open, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f47.google.com (mail-io1-f47.google.com [209.85.166.47]) (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 9585146522 for ; Thu, 11 Apr 2024 15:39:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849960; cv=none; b=dbAmV3zSHjxYMSkXUdj8kwgly08S908DjPLwHdIB9fYa2rPXcd2hZBI1F2dQIIJtGuXokSFIoyFPjTK0XEFOvEHhLmQbCHDGqmM9hBN+oI40uJQmw2uBdz4oOttA2XOa8ew8iyvzftPQVFlWD/8xfP+Ofj8VHhEewuuaBXWts20= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849960; c=relaxed/simple; bh=1P3PvXzmLXRyEqwVZrDsHvdiTkQ5YAPCllYVkquxbos=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=pVBqkO6lgScWTPWbW8Diwq4Ie9vV8UnHHlhXo8dfxm1YtF/sBJyZTkKDpHSTA8FXiWS5pPKPqA96xS7kmZu4AiOWZrBWXQQwZM8PPFlUQ53cyFObAC5DJsYU2iUaUvDnTnU5EfzStWdU+agDeGzaJkI1D5v4fBJsmZFw1Atf79o= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=0SO3hafi; arc=none smtp.client-ip=209.85.166.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="0SO3hafi" Received: by mail-io1-f47.google.com with SMTP id ca18e2360f4ac-7d67d1073easo9854739f.0 for ; Thu, 11 Apr 2024 08:39:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849958; x=1713454758; 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=WKexpSQQyqoFLPKhZyGGJ/yk2BE5+WHRWZNOAGWWcOE=; b=0SO3hafiqAUPUsxFAyZEbGrrLeyQXF04F9q/5t47EBgJY3no17n7dzTJMLwmUx5Zzb mZs43Q9vsJIxpl8M743JbhSTggc0b+NsZopXUc9U9v4lBglzpNm7ubYqa5DP6QlLA3Qa cDm117bRpA7r1yHPV3wLAEQzZoQM67PZWTRgoAnBoJVJQvDRwBWSlz4SwUpGglLemdbJ cHrR1E0hKlP+eHMcUKnxmNYZHDgHSqWaDajK6sKMimZjOoqRgg8kgpQjwXkptSigXV1r oIkQmpyxrISiK2KOw6K0u94kmwnUvccnCzzlE7KsVyTeMW/tlXFaFUnQrHkxEKNYJoEg XGDA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849958; x=1713454758; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=WKexpSQQyqoFLPKhZyGGJ/yk2BE5+WHRWZNOAGWWcOE=; b=DhBXzeJmafVrIXpRioM7TFg0lYk5p6hfDbuQBi6SS/yLFBm61A4XFJ6akMEEAZTCAE P7canPPS4Z12UR8hXxFRplL5yAA4GdYwlkmBBQ2oLguoP+U3BabEtcDMVFN3A8oBQuzG rMGWL95TevJN99/gg1YCcto1yQ2JklQhhww3XL6eGMFyo5Pii1XNHPQuTB53EVZxhbgM sUtWWFpR7KoScaFuesaRkqJdhFSMp5BtTH9lmWEuH6Bq+CPwus4B28grvNxU83Dt51qV 0rzD5DJkKhVaTL1RfD4SiuCuV82a9RkHLXqnTdswdz3xA+NcnAmbj0XTyavH1CLZvTpD Wq2Q== X-Gm-Message-State: AOJu0YwSNXYYLdJMpKuM1sI6b/135qVpQj/KE8PZce8IG0Gk3BPFGAd2 rmYPuKk/q6N4i8S62shVJ209Z5r8RchAlmkWg5lqtGjK5TAWwplbz31cj7hIIWJQbm4lxBwyp+W B X-Google-Smtp-Source: AGHT+IF8OAWwnp+ltJT3BQTpk83sMFklSXMKE6Le/mZ15E6LAWrx6spdiDIIJaVMhp8wIPxQfHMGWw== X-Received: by 2002:a6b:7b05:0:b0:7d6:60dc:bc8e with SMTP id l5-20020a6b7b05000000b007d660dcbc8emr201242iop.1.1712849958396; Thu, 11 Apr 2024 08:39:18 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.39.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:39:16 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 276/437] watchdog: sbc7240_wdt: convert to read/write iterators Date: Thu, 11 Apr 2024 09:16:56 -0600 Message-ID: <20240411153126.16201-277-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/watchdog/sbc7240_wdt.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/watchdog/sbc7240_wdt.c b/drivers/watchdog/sbc7240_wdt.c index d640b26e18a6..3e31a047bb91 100644 --- a/drivers/watchdog/sbc7240_wdt.c +++ b/drivers/watchdog/sbc7240_wdt.c @@ -91,9 +91,9 @@ static inline void wdt_keepalive(void) /* * /dev/watchdog handling */ -static ssize_t fop_write(struct file *file, const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t fop_write(struct kiocb *iocb, struct iov_iter *from) { + size_t count =3D iov_iter_count(from); size_t i; char c; =20 @@ -104,7 +104,7 @@ static ssize_t fop_write(struct file *file, const char = __user *buf, =20 /* is there a magic char ? */ for (i =3D 0; i !=3D count; i++) { - if (get_user(c, buf + i)) + if (get_iter(c, from)) return -EFAULT; if (c =3D=3D SBC7240_MAGIC_CHAR) { set_bit(SBC7240_EXPECT_CLOSE_STATUS_BIT, @@ -206,7 +206,7 @@ static long fop_ioctl(struct file *file, unsigned int c= md, unsigned long arg) static const struct file_operations wdt_fops =3D { .owner =3D THIS_MODULE, .llseek =3D no_llseek, - .write =3D fop_write, + .write_iter =3D fop_write, .open =3D fop_open, .release =3D fop_close, .unlocked_ioctl =3D fop_ioctl, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-il1-f177.google.com (mail-il1-f177.google.com [209.85.166.177]) (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 DE53F1D06AB for ; Thu, 11 Apr 2024 15:39:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.177 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849963; cv=none; b=RN9VDRShyGt48SvdwIQPzbZK3T4MS2mjURTr8kIuihvNJJj1Kvz5O0Yk+oJVj0/yfEbhV9wnZt8RWaecqZxLom4CH6cv2GdP4Mnqd3eyZPAM2fQ9Foy5uLAe2s4mcSZpXTsPugRvaqCVMJD8ApSOKPmoGlQ5m0Spoa0VupMoYUE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849963; c=relaxed/simple; bh=XBEHWph1C6KPFL4Qb85w1TmxaNAE9JgrJtvz1hAQ2ic=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=hcbUSVY2i/zR5lsXDCN8opsgU95ATVzeTkw2LdluqaSC37rZQ5NENpB/B7HXAhNz4MJYLO6eC0zNEeUvO3h5h+PcZX6PHqlSMtg8QevqfVF6MikrnJRSfplT8JH79hsV9hGTYkGfSUrSHkhHREpobd93WPxICxQs8dGjTiKzP1g= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=vVYowf5K; arc=none smtp.client-ip=209.85.166.177 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="vVYowf5K" Received: by mail-il1-f177.google.com with SMTP id e9e14a558f8ab-36a34b68277so115465ab.0 for ; Thu, 11 Apr 2024 08:39:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849961; x=1713454761; 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=+Izb7L2YwoSWL1quYfYW4ZlQuCKzQgWxxQVekCns6Fk=; b=vVYowf5KNfWIIjPxGUrBRRS9+1FiwbCBRrMhT0CSmdRHYHGQPl+RjEQnuSkJs53o0L 2Ald2ik81hversb40+9rJ3qcLkDmtOyeBH/2e9QVuYRZdMCkEmXcErEEponHwSafWLvG bHltkn/2E/IMEGrw5yiJ3TkECqCKY6YWpVj+/H3cEqDBd0G1nLZ4AHhpN17/dBLgwzzG YvuqCI9C8eN4ADDrSao/D4QCRPMk3k9rRFAGQDLkSu1CpYjNzyGozcGNqyFdHBX8Q1hq QliWgJ1Ss7PjfWnlKnuhy5FKPOSTrxl+/0Ls3+2F3cQTgrRyOJfJQpoJFFPwt0BgjsnA CSdA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849961; x=1713454761; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=+Izb7L2YwoSWL1quYfYW4ZlQuCKzQgWxxQVekCns6Fk=; b=Mjp70xZKjQ0gek6x+IRkZRd23JPpj8B34gqKB3Y6uLcFuXKmxXgy9c/2UV449FTP1I 387dudkmJLzvoTk7EgLwlGGf4mupwGhTKiZs2dQbNvtPBcp+75EbBpr8mE6U2hJ7tVTF US4damtj40chrt+jtgghieo/DMFW+RWdG/0mLD3WsYyC5gIee8JHkGsC0GxTgwGq6v1s lHTOyHIsoNnXymEC7xozrrwpSUM5Aac3Yz/QrybvFg1rXmXtFhwMHAQ1+nG/MMMlGSp2 rwoovKV6piLqmestpBiAQ83cv5rsBbn5CBM0yUvrJQfp/sOORWcrpmy/MYj5JIZHmPEU FVgg== X-Gm-Message-State: AOJu0YzS9lN5xnM4PBrURzfBaoEZFduyhzTYuIW9KYtyKOn22U6ajn9+ aHGiBciV1/o41EKWfnuaXeQbgIEbIMtkwCbU+5HS4rkg0Lg0/XqmchsRY/6RLUsY6mjAN3X9+Az 5 X-Google-Smtp-Source: AGHT+IFUMhDd+ATrzSUDh7lZM9EEk3Q36/nTPmzcKwFmsA2tBhrW6ijoVHARw2V7h3i6f8nx+wpkDQ== X-Received: by 2002:a05:6602:4ed7:b0:7d5:ddc8:504d with SMTP id gk23-20020a0566024ed700b007d5ddc8504dmr195728iob.0.1712849960215; Thu, 11 Apr 2024 08:39:20 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.39.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:39:18 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 277/437] watchdog: sbc8360: convert to read/write iterators Date: Thu, 11 Apr 2024 09:16:57 -0600 Message-ID: <20240411153126.16201-278-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/watchdog/sbc8360.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/watchdog/sbc8360.c b/drivers/watchdog/sbc8360.c index 4f8b9912fc51..5d7042c85988 100644 --- a/drivers/watchdog/sbc8360.c +++ b/drivers/watchdog/sbc8360.c @@ -234,9 +234,10 @@ static void sbc8360_stop(void) } =20 /* Userspace pings kernel driver, or requests clean close */ -static ssize_t sbc8360_write(struct file *file, const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t sbc8360_write(struct kiocb *iocb, struct iov_iter *from) { + size_t count =3D iov_iter_count(from); + if (count) { if (!nowayout) { size_t i; @@ -246,7 +247,7 @@ static ssize_t sbc8360_write(struct file *file, const c= har __user *buf, =20 for (i =3D 0; i !=3D count; i++) { char c; - if (get_user(c, buf + i)) + if (get_iter(c, from)) return -EFAULT; if (c =3D=3D 'V') expect_close =3D 42; @@ -302,7 +303,7 @@ static int sbc8360_notify_sys(struct notifier_block *th= is, unsigned long code, static const struct file_operations sbc8360_fops =3D { .owner =3D THIS_MODULE, .llseek =3D no_llseek, - .write =3D sbc8360_write, + .write_iter =3D sbc8360_write, .open =3D sbc8360_open, .release =3D sbc8360_close, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f41.google.com (mail-io1-f41.google.com [209.85.166.41]) (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 3BFCE1D06AF for ; Thu, 11 Apr 2024 15:39:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849963; cv=none; b=ArEEQgNntLTKY9dWfucoxGWRqlAxFJkt/HWhYD51eSdAR8ihd5/jItpPo6FeFVquN3AiQYwhqPANNKtT9TFpXKwivbWHW05NbCiyoqiSEI2n1LmU8lxeNe65RekRee/G0D46r8e41ew6xpZUpucHqRPTeF7uX4Xkf+OhQSObI/0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849963; c=relaxed/simple; bh=KnIgl6MglrfY4Pt7bofkCvBlvNUeMdpx2F0wfVTu/FU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=g27Z6T7FkUY+5BOf3a9ZULGKwsHJKrRrRuU8xEh1guEmaIBrkGGdcwM7qTsWk+ZUU/rM1wAewg0/ldPuNEt/jVKiBg5y9ylGrHvJGPIRl0LQjAho/EYKNIlZ162xes+qYEktIapS0xBB4ZlTCBWpnT3SAO3v8F3lhUVH9vD46Pc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=rBa0+pzq; arc=none smtp.client-ip=209.85.166.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="rBa0+pzq" Received: by mail-io1-f41.google.com with SMTP id ca18e2360f4ac-7d5ed700c2dso16211239f.0 for ; Thu, 11 Apr 2024 08:39:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849961; x=1713454761; 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=l6G8RAv71+gB9tO1QisjQW3vm4/xEhWblxWLBkHrSlY=; b=rBa0+pzqw5Ix3Ga47dRUerWlGzpW01jwIzw/FOjVbdKONu4iBTyE+zqmslWno0hM9w AzdEiGiSXAPJSa5GRntcGNH1F/LpQx/85Qfzhy7+TAqvXgsgUaWE84yS823dlwjlyOLg B8/EzdaOiFhJC6Kg9P33Q5Z/c4EfcFSCzrsgegg7LWwRNx9xteyh0Z37zQwg7rdp6bSo QWGWKVaHSIDHBkgFgRLC6VRrxUZ7D04qRl7AfOl8ox+S5kPXPlO6QfuvdLNd7OjJqoKW z8VCVgZ+u9PW7bL9FpjD8Z3wEGL6GbgQXm8LADQ1iwsiclKvMKxh7dhY4Qc4ziwaqeub 2ifA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849961; x=1713454761; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=l6G8RAv71+gB9tO1QisjQW3vm4/xEhWblxWLBkHrSlY=; b=CJARdhw5PZG2oRRLD+Ne15l27LivKMd5VUYpTpfdmIvEMDSptIkZ1CMXqWgn5AUQb7 2DHoJnWJXZxd3cEJA1otXPX4ZYigjMqIuiQEopEU2tteE281DIm8wVwnmA99Qq1VUA4D Yg+omNmRJaDneqy8HQ3KbaCkvY8REi0CSGgansUpjSmMpvSWhGTjXdge91KVejAugl/p Ecvh0veWnu+cBqfDS08b4PDtiemu9VTBrm6fwJhDWIIihQHaPQWcoqF/iOEBK3mfgSbj lTA0vwoQlfVDYpUBA/8zIAL9eFuok78OcEXq3u78fqWCyckgTNr2ei1CiQE1oqUiceOn BAIQ== X-Gm-Message-State: AOJu0Yyb3gSxxXnVEt4Mjh0wwRwdZjICwI9w8/2iuIah0um0YR1dPV7n xVl581PbF9uJk5if9OdURjobzL/SYIboTlOLdFpzFJQbXl9j/BtPuNGerhgP4b6lVboYJbmaP+1 5 X-Google-Smtp-Source: AGHT+IH3RdrqUtnTptptmjmZ4TCgDnV6ILHKj3WtgTrkwZaQYht0xcILzsFJYQGpUjFJYZ/FSy8QIA== X-Received: by 2002:a6b:f312:0:b0:7d5:de23:13a9 with SMTP id m18-20020a6bf312000000b007d5de2313a9mr169765ioh.1.1712849960921; Thu, 11 Apr 2024 08:39:20 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.39.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:39:20 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 278/437] watchdog: scx200_wdt: convert to read/write iterators Date: Thu, 11 Apr 2024 09:16:58 -0600 Message-ID: <20240411153126.16201-279-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/watchdog/scx200_wdt.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/watchdog/scx200_wdt.c b/drivers/watchdog/scx200_wdt.c index 7b5e18323f3f..a9b6a4734805 100644 --- a/drivers/watchdog/scx200_wdt.c +++ b/drivers/watchdog/scx200_wdt.c @@ -128,9 +128,10 @@ static struct notifier_block scx200_wdt_notifier =3D { .notifier_call =3D scx200_wdt_notify_sys, }; =20 -static ssize_t scx200_wdt_write(struct file *file, const char __user *data, - size_t len, loff_t *ppos) +static ssize_t scx200_wdt_write(struct kiocb *iocb, struct iov_iter *from) { + size_t len =3D iov_iter_count(from); + /* check for a magic close character */ if (len) { size_t i; @@ -140,7 +141,7 @@ static ssize_t scx200_wdt_write(struct file *file, cons= t char __user *data, expect_close =3D 0; for (i =3D 0; i < len; ++i) { char c; - if (get_user(c, data + i)) + if (get_iter(c, from)) return -EFAULT; if (c =3D=3D 'V') expect_close =3D 42; @@ -199,7 +200,7 @@ static long scx200_wdt_ioctl(struct file *file, unsigne= d int cmd, static const struct file_operations scx200_wdt_fops =3D { .owner =3D THIS_MODULE, .llseek =3D no_llseek, - .write =3D scx200_wdt_write, + .write_iter =3D scx200_wdt_write, .unlocked_ioctl =3D scx200_wdt_ioctl, .compat_ioctl =3D compat_ptr_ioctl, .open =3D scx200_wdt_open, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f54.google.com (mail-io1-f54.google.com [209.85.166.54]) (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 CC7861D0EF0 for ; Thu, 11 Apr 2024 15:39:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849966; cv=none; b=q247o/FsaaAPfycLgDkHHK8YsEx8asHV0wLKzQi7qep8HmhRwvCKJI8i20xPgWmtOKLJnVHqXf2c/ZvwMUbmkQC9n5/8+HSrl8Jua7CM0XhiAeYYskJ5+5fJ5bpIzF0jg4CeQ3i2JH7UMK8j5L8eZbEbYAZBxOsqy7i27KJJmFU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849966; c=relaxed/simple; bh=XSDs3cU9rj+x1JPGkiTPvq3pxijO3vs2c6WGeCdHo8M=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=IBnQO/BknPSm1K0vkBVxANSmJg+JdDj/jhZSM0hL+ioiqK56hnpXu/sQLY/nV6lP5I0At5p/58tUq7vELtj+KkDWJeCvyqTuRhNJwpeD4evf7szmRQqgUPL8oVYBa6bKRYEy+zH8MPQqMEt7IbYnWD1Q62T0CYdyF7HvC50lru4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=YE90ZHHp; arc=none smtp.client-ip=209.85.166.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="YE90ZHHp" Received: by mail-io1-f54.google.com with SMTP id ca18e2360f4ac-7d6112ba6baso58160139f.1 for ; Thu, 11 Apr 2024 08:39:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849963; x=1713454763; 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=SFQTNrnvRbaU79eFHZUCx+SNcopoXcWQ3jEGPidKEg0=; b=YE90ZHHpuicqxgUaBivT6iKTgnwkBR8EBDaTx8EmiirCZagRa4a1/+Qa671XL3Nvwb UtKBYS/xMApi4Ko50E9isoqwO/JCzB5PxolG2k8F/EsvYWHooxMt5mTshSfpX2/HAD7j Ubqb+N/FJGBc/fM4OMz+jK4kr988WK20mAFS/JfMehHX+9MoVe+6aXGyiZ1Mg56VO3iz rsylE6/Su5z6QBgozAN69iK6UmZ4sSDtFbKz1eemORXY+vkiWattq0nN553L8ppGpFOC VOr+F9iFdHwxBarb/uXOC+nfcUPMRl6T+wczLJlQe6OajeOVLU4X1VCny5KLcOBA6YLD OlJw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849963; x=1713454763; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=SFQTNrnvRbaU79eFHZUCx+SNcopoXcWQ3jEGPidKEg0=; b=EE4qZKjFPqkF7i35ASiXdtymx6rXrJUEjqNksW/GRPhNRMGQsdABU6RlXyE7O969wc 48xXCaiyk4zu/pyyBquH3SNqlQw0F82exThVVI3Z70rR3N/dMdPERARw+iK6fibhC1Gm c856DofM6tvOILjtUm6OfBH9iBWVLl5hHhJnfpZ8Eh0LB6g5bU4GRRZZS3roGyFHRoa8 ++pCQ1TBJKIapaEwuZiUB5lViqKzAH0YEoIXlbl2HkccF8HaZ9JYKaUy1kLYgxbunGye GvEflOBivspEiuZRvHn3+c+veOYooBh4jgob3BwOAcoNf64GeEYRrNydMynsIuWCssTT AtSQ== X-Gm-Message-State: AOJu0YyzARj4jwBZTCy4ybvXbkTlkMGB5q9WWAmWeD8t3rn3vPRbuuCc K8URSHGajwD5NQPkAU2Lvtz+vkEM4UsrW/Exs3sLux8880pk9UUCsnZlIPnw2vRyiBCgS945F7H 9 X-Google-Smtp-Source: AGHT+IHzBfa5XTjezPtl1VEG+SI5zqaGqUKI+OBRJwq6PhBQQYHxfz5x4RQgR5y6Lh1J/HTQA8e7dQ== X-Received: by 2002:a05:6602:38d:b0:7d6:513b:254 with SMTP id f13-20020a056602038d00b007d6513b0254mr195325iov.2.1712849963011; Thu, 11 Apr 2024 08:39:23 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.39.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:39:21 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 279/437] watchdog: wdrtas: convert to read/write iterators Date: Thu, 11 Apr 2024 09:16:59 -0600 Message-ID: <20240411153126.16201-280-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/watchdog/wdrtas.c | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/drivers/watchdog/wdrtas.c b/drivers/watchdog/wdrtas.c index c00627825de8..591e5dcc8383 100644 --- a/drivers/watchdog/wdrtas.c +++ b/drivers/watchdog/wdrtas.c @@ -231,9 +231,9 @@ static int wdrtas_get_boot_status(void) * character 'V'. This character allows the watchdog device to be closed * properly. */ -static ssize_t wdrtas_write(struct file *file, const char __user *buf, - size_t len, loff_t *ppos) +static ssize_t wdrtas_write(struct kiocb *iocb, struct iov_iter *from) { + size_t len =3D iov_iter_count(from); int i; char c; =20 @@ -244,7 +244,7 @@ static ssize_t wdrtas_write(struct file *file, const ch= ar __user *buf, wdrtas_expect_close =3D 0; /* look for 'V' */ for (i =3D 0; i < len; i++) { - if (get_user(c, buf + i)) + if (get_iter(c, from)) return -EFAULT; /* allow to close device */ if (c =3D=3D 'V') @@ -392,10 +392,8 @@ static int wdrtas_close(struct inode *inode, struct fi= le *file) =20 /** * wdrtas_temp_read - gives back the temperature in fahrenheit - * @file: file structure - * @buf: user buffer - * @count: number of bytes to be read - * @ppos: position in file + * @iocb: metadata for IO + * @to: user buffer * * returns always 1 or -EFAULT in case of user space copy failures, <0 on * other failures @@ -403,8 +401,7 @@ static int wdrtas_close(struct inode *inode, struct fil= e *file) * wdrtas_temp_read gives the temperature to the users by copying this * value as one byte into the user space buffer. The unit is Fahrenheit... */ -static ssize_t wdrtas_temp_read(struct file *file, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t wdrtas_temp_read(struct kiocb *iocb, struct iov_iter *to) { int temperature =3D 0; =20 @@ -412,7 +409,7 @@ static ssize_t wdrtas_temp_read(struct file *file, char= __user *buf, if (temperature < 0) return temperature; =20 - if (copy_to_user(buf, &temperature, 1)) + if (!copy_to_iter_full(&temperature, 1, to)) return -EFAULT; =20 return 1; @@ -470,7 +467,7 @@ static int wdrtas_reboot(struct notifier_block *this, static const struct file_operations wdrtas_fops =3D { .owner =3D THIS_MODULE, .llseek =3D no_llseek, - .write =3D wdrtas_write, + .write_iter =3D wdrtas_write, .unlocked_ioctl =3D wdrtas_ioctl, .compat_ioctl =3D compat_ptr_ioctl, .open =3D wdrtas_open, @@ -486,7 +483,7 @@ static struct miscdevice wdrtas_miscdev =3D { static const struct file_operations wdrtas_temp_fops =3D { .owner =3D THIS_MODULE, .llseek =3D no_llseek, - .read =3D wdrtas_temp_read, + .read_iter =3D wdrtas_temp_read, .open =3D wdrtas_temp_open, .release =3D wdrtas_temp_close, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f42.google.com (mail-io1-f42.google.com [209.85.166.42]) (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 F1CF21D0F06 for ; Thu, 11 Apr 2024 15:39:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849967; cv=none; b=OxAqWXWpHctORR/6catOfZyLZfsIk26JpM/8YDHA8YeeeqAd5REIpBAEiwq5XhHj7aZNNjU1/6xbEYiCp8Ij/69nXaP9t/UAgpl3o0czsE4PV+uEYmxqAfCji0hGpUWE71QzuqIOxUWaywx6K5Z+HKFuECkYmESJhSFJl5O01QE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849967; c=relaxed/simple; bh=D0X+0qHO4LOxbD44kAq8JISn/l9Eg21JclAtONFSTmc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=LTkqvCgTBsg+4H20rhmC2HScF/2/cc3BGqBFCnTq90BpRDsZmI1S36mX3yMT6H8E1CL2ms0fYeDeK//yR5fB2VgwKOZserrGHSFs57vy/JDtbbFQgs7jImwNDRL45Bmz+wgndWyOBT/KWPnzPTY0XTfz+1vUPnKZDTjHwvcFle8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=j4LWdugy; arc=none smtp.client-ip=209.85.166.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="j4LWdugy" Received: by mail-io1-f42.google.com with SMTP id ca18e2360f4ac-7c8e4c0412dso69634839f.1 for ; Thu, 11 Apr 2024 08:39:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849965; x=1713454765; 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=7SBd5rZ9o1mmKXDhdun2TfAKNJ6vmtHzimJxT00GKKI=; b=j4LWdugy0K9YfyTPRDO/EZ/2/QV4O+Bp0GxU4BCxkM99nwZ8bMwFZV56LwmcI0w8Th kz94iqGeQjYPzk4nMB3WmElpv1gQAQbaTYgGPLV96FihxjdlWCekb4OMENg0fNVLkfjy kAUTlE6pOX1MxhT7ZGAg4J8CRoHUfCbGoGsP3kpHA1rjHkBnvEu5di7YBYMqK4pglxqK MffhItBEPkP8BrOAh/KlM61lhf5L8FLBbZHXnk9d9UDS8Ji7og/RifnS4vLPw8qLlbv0 jf+PpdJtcIQbMPoh/JVBMop8uL2/BZFRonZVF57B7AiL/g3A3GURbI5Y3Z6AFXUduMs+ ki2Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849965; x=1713454765; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=7SBd5rZ9o1mmKXDhdun2TfAKNJ6vmtHzimJxT00GKKI=; b=tKKZB/2k93l9SUc1gzf6vZz5eSavjLGfjDvWDIVnRJ4vWxtNPKRBQhCOOJdrhqtOy8 DlfAbdXpM0EoOg8RsgFLN4KLvBgWiCBm1kKckRuMol+axOrWaEa0i3gvbvG2skRXamIZ wSd+4z5By+Ncbm9oTM4nsvoMw6KRqEP/QShxgJF93X1feZPo+uSK4fgqt0qDsDGEjBjO weHjsRP7xBk/n1IU72F7Pqjw8Ujyd3mEce/q6XNamyK4gdA1YSp6cfN0XcaV1TNlzGqd sXAHmudcjs+bGOnd2IS35L0YluHBxmQN+GWQ/uDDKIKSz/gaa4t76vFS/9x7KB6wKtgK 5qog== X-Gm-Message-State: AOJu0YzZDcyOc06WpzURo/is3pi6TYwqdAuAAOCG9vfXBQYUT14xrtW4 og6WJknfYKWZbjwhfcvRcznfySGtq8DCdWXelS+RW5Vl8T/su8vwY4/FQfIissHGGeJJfBI746u 3 X-Google-Smtp-Source: AGHT+IGjEQD8a64IsmpxMnNHA9MDi9GjRz4TS4tRz7fvCZDtwTvhtiInOlcH+7QFBf+gPPLi3xowNA== X-Received: by 2002:a6b:7b05:0:b0:7d6:60dc:bc8e with SMTP id l5-20020a6b7b05000000b007d660dcbc8emr201536iop.1.1712849964834; Thu, 11 Apr 2024 08:39:24 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.39.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:39:23 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 280/437] watchdog: wdt: convert to read/write iterators Date: Thu, 11 Apr 2024 09:17:00 -0600 Message-ID: <20240411153126.16201-281-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/watchdog/wdt.c | 28 ++++++++++++---------------- 1 file changed, 12 insertions(+), 16 deletions(-) diff --git a/drivers/watchdog/wdt.c b/drivers/watchdog/wdt.c index 183876156243..4f942a82271b 100644 --- a/drivers/watchdog/wdt.c +++ b/drivers/watchdog/wdt.c @@ -305,18 +305,17 @@ static irqreturn_t wdt_interrupt(int irq, void *dev_i= d) =20 /** * wdt_write: - * @file: file handle to the watchdog - * @buf: buffer to write (unused as data does not matter here - * @count: count of bytes - * @ppos: pointer to the position to write. No seeks allowed + * @iocb: metadata for the request + * @from: iov_iter to read from * * A write to a watchdog device is defined as a keepalive signal. Any * write of data will do, as we we don't define content meaning. */ =20 -static ssize_t wdt_write(struct file *file, const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t wdt_write(struct kiocb *iocb, struct iov_iter *from) { + size_t count =3D iov_iter_count(from); + if (count) { if (!nowayout) { size_t i; @@ -326,7 +325,7 @@ static ssize_t wdt_write(struct file *file, const char = __user *buf, =20 for (i =3D 0; i !=3D count; i++) { char c; - if (get_user(c, buf + i)) + if (get_iter(c, from)) return -EFAULT; if (c =3D=3D 'V') expect_close =3D 42; @@ -447,21 +446,18 @@ static int wdt_release(struct inode *inode, struct fi= le *file) =20 /** * wdt_temp_read: - * @file: file handle to the watchdog board - * @buf: buffer to write 1 byte into - * @count: length of buffer - * @ptr: offset (no seek allowed) + * @iocb: metadata for the request + * @to: iov_iter to write to * * Temp_read reports the temperature in degrees Fahrenheit. The API is in * farenheit. It was designed by an imperial measurement luddite. */ =20 -static ssize_t wdt_temp_read(struct file *file, char __user *buf, - size_t count, loff_t *ptr) +static ssize_t wdt_temp_read(struct kiocb *iocb, struct iov_iter *to) { int temperature =3D wdt_get_temperature(); =20 - if (copy_to_user(buf, &temperature, 1)) + if (!copy_to_iter_full(&temperature, 1, to)) return -EFAULT; =20 return 1; @@ -521,7 +517,7 @@ static int wdt_notify_sys(struct notifier_block *this, = unsigned long code, static const struct file_operations wdt_fops =3D { .owner =3D THIS_MODULE, .llseek =3D no_llseek, - .write =3D wdt_write, + .write_iter =3D wdt_write, .unlocked_ioctl =3D wdt_ioctl, .compat_ioctl =3D compat_ptr_ioctl, .open =3D wdt_open, @@ -537,7 +533,7 @@ static struct miscdevice wdt_miscdev =3D { static const struct file_operations wdt_temp_fops =3D { .owner =3D THIS_MODULE, .llseek =3D no_llseek, - .read =3D wdt_temp_read, + .read_iter =3D wdt_temp_read, .open =3D wdt_temp_open, .release =3D wdt_temp_release, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f53.google.com (mail-io1-f53.google.com [209.85.166.53]) (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 D975C1D0F1F for ; Thu, 11 Apr 2024 15:39:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849969; cv=none; b=pCZz0rhMKlUgLSOVFGAyFbhgTvuiaRyzaWD01ZDB7yL3+fL+v9TUl06fTH4HnAKKfzAitRCWrGJkWVDiN6zACfqk6X3pY1y+OW1B5K0rnE/n7mRmg7+Db2FIYgBzuHyiN8BupjtBlZZJUteLkP5ElP0RVhxK9qFQ+AyVdE+co6o= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849969; c=relaxed/simple; bh=LvjgQGgL0Wz/MDWHW7PN3eTY0hDprMvFuMvVC4I1sGI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=WZsPeygrfEL8XijBWeBpqDaYlWYQizN4U0TMz+hlZxg/1o3duYfK0O9QWcxVsagGS8rvtHKCF7ToN9eGMM+6+IEOGNUj+nMrvVmwOFWVTmiVp4h7VffTyvkTcdjzycYeS/mzZzngxVyT6Ipzb3QKOCg5bdYF7jw7uYBwNcbgCDo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=HTUh/qrv; arc=none smtp.client-ip=209.85.166.53 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="HTUh/qrv" Received: by mail-io1-f53.google.com with SMTP id ca18e2360f4ac-7cc0e831e11so170579939f.1 for ; Thu, 11 Apr 2024 08:39:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849967; x=1713454767; 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=V5mzaQmM9seghk8pfFNXBPZTgd7LDqNjJYdodgsGpAU=; b=HTUh/qrvAkRD7QRTxzz/S0gTx3eWIGoUQrqSuoVMJZlnzDa264jhgYX8wzJJOG33Wk l9vQpi9OKMDJOum3NOGj/t+fF0OyXWzh5U/M8U5unbK25H1pbsnmN+3ZYBsSurXiWPM8 iTdWb3ItUD5YVDeCiHUjs95R+zKVPsEbJVtJ4n91Bx4k4eigY4hQN3yeAmpOt9aMmWC1 yImrGr+fJkSiQE0eNFQvZbdE4yKWmH1NIXNy6wXx1CBvDTLrVrsMHbtZFu9qElpJulPE L7icwgibNCPF4iRdl8hNUKRG9XMjtc/XOsdNcpF9x4JJs1m9+MY08fIC87oIUBQctgHP r6uA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849967; x=1713454767; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=V5mzaQmM9seghk8pfFNXBPZTgd7LDqNjJYdodgsGpAU=; b=WrAmpy1nJ0o3pbBhVOL3LFjcDPBhlauehh8O7c2nSIlq3Xl92JOyQyRT7YkqVSr0u6 JdHFLOefYq0TIJ15QUIWpenSnh9pF+9aKxloBcb+YZSVHqjsDoThqnSTYPSyusVJ7dge hfEAYL5lQxZw9b7yZqN1XJJ0ydO5ZOpXlPflSvvXAuDTDl+SwGrPX7EyWgsKkSjon22D 2tQhnPbjWVtoZ1bcnQ6TdNsHnr4OGDTJK22xmu57LDydq5+j/GHwSU+5reQ6yEl2CIKB 7RxhtR2n0fGac/3YhFNWmwUK/nAYn9gCOuDnEjj+JvInyQs9qZ+sn7XE8vU0E0wwc1IW pgow== X-Gm-Message-State: AOJu0YyLN9ct6/FpCOUoz0ZTJR3u/vilOYdpzEpBWiRgt9YbTj4diDQ0 hme72V2zWFXtimJpc2seDx00FYjBuSFH9vtRmIAAsyKnZ99OofvoiCGmILWicLpFS0HEjmmxu6/ M X-Google-Smtp-Source: AGHT+IHc+e+Yl91tLQa26taE8mJivesenFYJc1bk1daajtTdP/TkXDV5gl8C2bBHDvHXpIyxGt86EA== X-Received: by 2002:a5e:9907:0:b0:7d6:751f:192 with SMTP id t7-20020a5e9907000000b007d6751f0192mr189480ioj.2.1712849966730; Thu, 11 Apr 2024 08:39:26 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.39.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:39:25 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 281/437] watchdog: wdt285: convert to read/write iterators Date: Thu, 11 Apr 2024 09:17:01 -0600 Message-ID: <20240411153126.16201-282-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/watchdog/wdt285.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/watchdog/wdt285.c b/drivers/watchdog/wdt285.c index 5b7be7a62d54..eee5aada2ddd 100644 --- a/drivers/watchdog/wdt285.c +++ b/drivers/watchdog/wdt285.c @@ -114,9 +114,10 @@ static int watchdog_release(struct inode *inode, struc= t file *file) return 0; } =20 -static ssize_t watchdog_write(struct file *file, const char __user *data, - size_t len, loff_t *ppos) +static ssize_t watchdog_write(struct kiocb *iocb, struct iov_iter *from) { + size_t len =3D iov_iter_count(from); + /* * Refresh the timer. */ @@ -179,7 +180,7 @@ static long watchdog_ioctl(struct file *file, unsigned = int cmd, static const struct file_operations watchdog_fops =3D { .owner =3D THIS_MODULE, .llseek =3D no_llseek, - .write =3D watchdog_write, + .write_iter =3D watchdog_write, .unlocked_ioctl =3D watchdog_ioctl, .compat_ioctl =3D compat_ptr_ioctl, .open =3D watchdog_open, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-il1-f179.google.com (mail-il1-f179.google.com [209.85.166.179]) (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 59BC24779C for ; Thu, 11 Apr 2024 15:39:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.179 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849972; cv=none; b=D0qoJ5EtKSJMBYemUmjkguA4gAlpvHipsKYHGOf2X/azL2dI/OesWsnRQIc1yDEaovEnz+xh1oGZVHuVRAwQCOKB29OcP0Nc4/W2u9khHcGfIm1pMGOnAuGzpY7K28GxZl2MUVWNQTuVrX737dpVrfSEF2jFXpmzT84ri00gnLs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849972; c=relaxed/simple; bh=mitoK38F4rHn3RGv60MpF5u5BORTHUIfBPm+AR2T63s=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=hXxwLkK+lCH7FcH1+AaWxaX7putG6mPVfFbYbTMyk9HoBTF9Khu9iaUgEPW5ibgyzEchlhk3wZLOEOoAkxyx5I8lwPuJ2o+8T7fuWSFTbGCYSW7Gt36Wbf17lTM+YNu9UdhAvcBqlTel6dIug3srQZQQ29DEhWgdkZaCwv8ib1w= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=Kv3/JTYl; arc=none smtp.client-ip=209.85.166.179 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="Kv3/JTYl" Received: by mail-il1-f179.google.com with SMTP id e9e14a558f8ab-36a34b68277so115665ab.0 for ; Thu, 11 Apr 2024 08:39:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849969; x=1713454769; 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=9qErY0UtmcVaF+o8yj8E2fnKvMqRmo+f4G5KHnsKYdo=; b=Kv3/JTYl3AX+7bydhUNdo8jmSPmMR6mZaGolE8+F0KijUec5atfZNwegRtDqGwLekk kYCfAyOhoDwxQt/4fRnSvUZq26gDiXAWw1UaGh0PyNkkKhpvRyY2MbKhQnyb3sn0LaZz opO07u7WsAQWQ71z5dKcDNO6ZL3NDMN6+Ao0y0eo/9tASB1fxO6OAz+mcXFzprww9bE9 MEypWrka5E1O4U8s3psSqKnq7N2NDfV7/Dpw3SuRl58Nr3qboorGEoUqaD4DfW49Y6FD 271BTAC3rfB/pB7ajMND4bDIwRGEKW/jdkozqMPULryEQ1o/Pru+G0nKJnffg0Pl2VqZ TgTQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849969; x=1713454769; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=9qErY0UtmcVaF+o8yj8E2fnKvMqRmo+f4G5KHnsKYdo=; b=eSPanYD4OsqDIKkJjkBuduU4+Wz7HSeNn9Hf3cmf686Y5D0t10GkiBA80VfbaOP+AU TzPKEUUOXpoUnQ6MobmF4TyEZPL7czbJw4F7ssxINnqWruO2O1XlZVV3bT4CSOY2I3y4 +6K+oSUGWlPgHOzGfzY8a2gc6ZIO14NAXH1o8C2JkW9hrLrhSpH/7o0tzKZY61fatTIj CtiqaEvWHCxd5j4Z4qgKVnyAoZq8/7iY9ySOfwI+0f6/vFYEIbL3TofrN0eqfbjBzUEB 6Kq+SxMhiuOh5zas3gYBfWJd8YoM5iFjTM5CSlpy87/TRxqn+ScK7mun+tA/5sASdGHU lxGw== X-Gm-Message-State: AOJu0YxASjX6WNBZ883Kw35e7kEMQMBtVTx1pZr2Py65qO6v7T/4iDYZ KJNem5yTKyLOqY9PJ++mrnk483739XI17iVaKGFEFqxpdp+rk3fxlXRwZTRj+aeAFmQoS4CC8HE c X-Google-Smtp-Source: AGHT+IE34/yvRaO5iMGmfJXMNgG8TMN191HKJOQIb32Rgr8wcwGlrRgIY3CkuM4R/DCJ3jy9/iF/+w== X-Received: by 2002:a05:6602:4ed7:b0:7d5:ddc8:504d with SMTP id gk23-20020a0566024ed700b007d5ddc8504dmr196086iob.0.1712849968649; Thu, 11 Apr 2024 08:39:28 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.39.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:39:27 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 282/437] watchdog: wdt977: convert to read/write iterators Date: Thu, 11 Apr 2024 09:17:02 -0600 Message-ID: <20240411153126.16201-283-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/watchdog/wdt977.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/watchdog/wdt977.c b/drivers/watchdog/wdt977.c index c9b8e863f70f..e50a7374ceb1 100644 --- a/drivers/watchdog/wdt977.c +++ b/drivers/watchdog/wdt977.c @@ -301,9 +301,10 @@ static int wdt977_release(struct inode *inode, struct = file *file) * write of data will do, as we we don't define content meaning. */ =20 -static ssize_t wdt977_write(struct file *file, const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t wdt977_write(struct kiocb *iocb, struct iov_iter *from) { + size_t count =3D iov_iter_count(from); + if (count) { if (!nowayout) { size_t i; @@ -313,7 +314,7 @@ static ssize_t wdt977_write(struct file *file, const ch= ar __user *buf, =20 for (i =3D 0; i !=3D count; i++) { char c; - if (get_user(c, buf + i)) + if (get_iter(c, from)) return -EFAULT; if (c =3D=3D 'V') expect_close =3D 42; @@ -420,7 +421,7 @@ static int wdt977_notify_sys(struct notifier_block *thi= s, unsigned long code, static const struct file_operations wdt977_fops =3D { .owner =3D THIS_MODULE, .llseek =3D no_llseek, - .write =3D wdt977_write, + .write_iter =3D wdt977_write, .unlocked_ioctl =3D wdt977_ioctl, .compat_ioctl =3D compat_ptr_ioctl, .open =3D wdt977_open, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f52.google.com (mail-io1-f52.google.com [209.85.166.52]) (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 46B4A15535B for ; Thu, 11 Apr 2024 15:39:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849973; cv=none; b=NcJmRg6frFjD+Sy+daNZVZsn4Pcon4fFhn4Dsa9O0GipDRWrTfV5mThNVtoaVQi+hLpcSAAAWcEiM3pF0CYRRZVft+b0RvTahQabYaDWfia1ahEkkOrvkzbqlxwwSAdN6rJ6lxqciOB29JZ+gU4kAbuN+XTSw2UkLjwlQhLkNFA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849973; c=relaxed/simple; bh=kBOG6gh9L+YlXUEO5PvC5HwNjQ+tJN1HQ2raep5WTkw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=d0e3t/ge5CZW2AS39c/fOUOSNoYc9+atSUwOQleQAvvem7/Fy7NM+QHyNscw3qOEHaaTGXlRDGygGitgerJxM+IatTffSWebOGSSnrQuPHagGRpN1FTUHoryMOGpSsNjDJ2ZbwAxVO0zOSSonXXJ/FZKWbkoPGrKxGyUlrd4L1M= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=jmfoVQB2; arc=none smtp.client-ip=209.85.166.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="jmfoVQB2" Received: by mail-io1-f52.google.com with SMTP id ca18e2360f4ac-7c8e4c0412dso69635839f.1 for ; Thu, 11 Apr 2024 08:39:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849969; x=1713454769; 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=wyiv3PYk9uivp8uRbPKfheMtxKLuVXL7eV2fO7HBsks=; b=jmfoVQB2l7npa+vChySWBlEM7k9h/jRMrg3OL++SemkaaPhXopomw2KYADHoOuE688 yBjtb8szD28w05ikvOzt2v2720i+kMJWKXhFxF2dqo6LygiHIbyP9a/s1U4C/AXF0wQc JPWh75ul5gWCi3ApwZD/YEyripLBCTJAJSdkYFKVK7uKJXZQ11zGxYnm/lL78z3csCsE FxDawscqYeSX0/E9TGztT7jjec5Cr9HklhTCFpfxkNcUjoUofdbIAO6NoLD1l2HSDsZ3 bjIHevRakpBMW4XhMDW0Bl4mb8LtI4U49O753G5eCOzMWRQeYXiDXo3PmbXfmZpQusW8 LdRw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849969; x=1713454769; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=wyiv3PYk9uivp8uRbPKfheMtxKLuVXL7eV2fO7HBsks=; b=akGMd67fkZgXjGIrEO8vI4fKiVK37z1JYxA3V4akQzviKOR6sSDMcuiT82fwz8s4rq Xqif3BXKjtEmYowPWHe1vAudNoNk8WJtoLSXfxHA+QE//oY/RDrGaET5OTjHWOBkbfH4 CoapP51ct8gAQNHQ41NDkHID/6fjwmRAmWMieeTwqn7kr8KvzFvrRw2AW84d9uYTYV9M 2aGMfZIVnoqyYbLbvyUMPVS/xyM03sGBNRVL/M7xvkWzSOLsxKA9X8KjRwZNc10k3nQI o0VtVcITd8Ztq+G9zdNT8MVNLuI6xsFg/jFi68vrsQn5uYDLWf1Ti9yj6BnyO1c1k9Ky kWEg== X-Gm-Message-State: AOJu0YxBEBX9vYd8Vw7gA1nUyJaoevGNue9T46ouZqwhjIWRngIf2KG9 KvAQxj5quEQVvXlHta4ePcxnwiAKUHwhb+UZnrkfRxMJI30ctDUTe7eik94tHCOCd8L9oRPUCog h X-Google-Smtp-Source: AGHT+IHnHqHFdbaYWaxk1fQBzMyd2DbudQT1Wh4gn2HLzuhQ7Cs4H7PH0h48GZ0QDr0OdZw8jfahzg== X-Received: by 2002:a6b:c34e:0:b0:7d6:7b7c:8257 with SMTP id t75-20020a6bc34e000000b007d67b7c8257mr227452iof.0.1712849969399; Thu, 11 Apr 2024 08:39:29 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.39.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:39:28 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 283/437] fs/binfmt_misc: convert to read/write iterators Date: Thu, 11 Apr 2024 09:17:03 -0600 Message-ID: <20240411153126.16201-284-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- fs/binfmt_misc.c | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/fs/binfmt_misc.c b/fs/binfmt_misc.c index 68fa225f89e5..f44b626c4df7 100644 --- a/fs/binfmt_misc.c +++ b/fs/binfmt_misc.c @@ -734,10 +734,9 @@ static void remove_binfmt_handler(struct binfmt_misc *= misc, Node *e) =20 /* / */ =20 -static ssize_t -bm_entry_read(struct file *file, char __user *buf, size_t nbytes, loff_t *= ppos) +static ssize_t bm_entry_read(struct kiocb *iocb, struct iov_iter *to) { - Node *e =3D file_inode(file)->i_private; + Node *e =3D file_inode(iocb->ki_filp)->i_private; ssize_t res; char *page; =20 @@ -747,7 +746,7 @@ bm_entry_read(struct file *file, char __user *buf, size= _t nbytes, loff_t *ppos) =20 entry_status(e, page); =20 - res =3D simple_read_from_buffer(buf, nbytes, ppos, page, strlen(page)); + res =3D simple_copy_to_iter(page, &iocb->ki_pos, strlen(page), to); =20 free_page((unsigned long) page); return res; @@ -794,10 +793,11 @@ static ssize_t bm_entry_write(struct file *file, cons= t char __user *buffer, =20 return count; } +FOPS_WRITE_ITER_HELPER(bm_entry_write); =20 static const struct file_operations bm_entry_operations =3D { - .read =3D bm_entry_read, - .write =3D bm_entry_write, + .read_iter =3D bm_entry_read, + .write_iter =3D bm_entry_write_iter, .llseek =3D default_llseek, }; =20 @@ -882,23 +882,23 @@ static ssize_t bm_register_write(struct file *file, c= onst char __user *buffer, } return count; } +FOPS_WRITE_ITER_HELPER(bm_register_write); =20 static const struct file_operations bm_register_operations =3D { - .write =3D bm_register_write, + .write_iter =3D bm_register_write_iter, .llseek =3D noop_llseek, }; =20 /* /status */ =20 -static ssize_t -bm_status_read(struct file *file, char __user *buf, size_t nbytes, loff_t = *ppos) +static ssize_t bm_status_read(struct kiocb *iocb, struct iov_iter *to) { struct binfmt_misc *misc; char *s; =20 - misc =3D i_binfmt_misc(file_inode(file)); + misc =3D i_binfmt_misc(file_inode(iocb->ki_filp)); s =3D misc->enabled ? "enabled\n" : "disabled\n"; - return simple_read_from_buffer(buf, nbytes, ppos, s, strlen(s)); + return simple_copy_to_iter(s, &iocb->ki_pos, strlen(s), to); } =20 static ssize_t bm_status_write(struct file *file, const char __user *buffe= r, @@ -944,10 +944,11 @@ static ssize_t bm_status_write(struct file *file, con= st char __user *buffer, =20 return count; } +FOPS_WRITE_ITER_HELPER(bm_status_write); =20 static const struct file_operations bm_status_operations =3D { - .read =3D bm_status_read, - .write =3D bm_status_write, + .read_iter =3D bm_status_read, + .write_iter =3D bm_status_write_iter, .llseek =3D default_llseek, }; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f42.google.com (mail-io1-f42.google.com [209.85.166.42]) (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 19DED1D06B7 for ; Thu, 11 Apr 2024 15:39:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849974; cv=none; b=jC9VR76PuVRR/hZH7+YYC1cWchZfTxFazPYTeLVhfSRGWlOE8EJpDJHLYgLy0qUkOeXLlfqslzCnUF6iXsQlMuftwpH7Xxydo08EdLBeEdlUnot+ON3WKyVtvLJYHt7RUnlIwxcq7b/uvNG64K4VfdnUkOWnNwyf5+OqIfa51vE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849974; c=relaxed/simple; bh=sKPRHeETElflsb6nSEP14O/1aFOyRze+VoqZ/IV2QSo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=OLJ9D3WNhAl+mmsaz43wZxKMOrqAH/zFW84rBG32J0wvJZcStfdghhFJaSGECfojBNfavmmQv8egxg/LzCwBuqip41FiSrAyB3hHhU72/7hMZDehH41ibF4osUfQLrrQVozAy1Pne7H0GKEZELRUquoEt8BGRj6a8bVEIc/jOSA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=hEmy5Eoa; arc=none smtp.client-ip=209.85.166.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="hEmy5Eoa" Received: by mail-io1-f42.google.com with SMTP id ca18e2360f4ac-7d5ed700c2dso16212839f.0 for ; Thu, 11 Apr 2024 08:39:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849971; x=1713454771; 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=3pjd3b1JXXFVuK6R3VsMghe7Mtr0cnNAn12vvOo0KLY=; b=hEmy5EoaPOISReBPOt++EXM1j1sWG112FYYRi57MIkbsN72BHafDHv0yc1joJWPILA +lEdt9Fh+09KYorlubdiIiaVu4cZxXq2fUfmq7C5/KUSLIQoUBC6Mhg6KN8vish/ZdGf MQM3SRgE6QxK/oXzUKfE1S75HqBr3xqS1RR6EDD6crgy5lfMzd+tDWIzT7asiLMkXnLM FbgsIwZIvzF0w/L4DVZZeuGE9gSyOPP2/nT8/7ADWKcePPA0YsnfZSh15qOeZ1jU5aWC 3DDyBDriOaLT1XbcYgxTpXzyVWIwzHh16V922u4f2kr52/fZzMrDAuH0AjZSbxoLDFER vMzQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849971; x=1713454771; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=3pjd3b1JXXFVuK6R3VsMghe7Mtr0cnNAn12vvOo0KLY=; b=JqxmmYM8+KtTgMx8Qy0r6A7a8LU7UykYtMdPV8E6lfgMNJwDjKFX+MHa5RGnjFHtxH iPUHqDVl4poJorlqSY3UYh9WLGLO6K7LlDDIUTt6rcnwJ7dyIqX2lYAtSrtEXrGx/HLU umKaomBEXcLjrv2HplJGjc0joris4c5S87kpHFBerTyEPJ9sKVKDtpsN9VyQtgqf7JL7 9Yoo7pLHc9rKUqo3YH4ttX6/wkoHCjC2+4XO6FZOBTkvfmts50qGeOKaImtd8NiNmp8k iVEv+MGhYGpXQxHN/sTtPyxx5b/u7NLpPuF+YjlDpOzz41CsnXmhT/KcfTfYzAR5nSiz vN8w== X-Gm-Message-State: AOJu0YzXCxoCa4uXM5UjjtYZZLEO4n4JKdONAPAz24LYUN/3XiE0IGRS OCZo3kSEwwEd10RMlpzwgS5TsYqh11ncjjRZAmdDJqOAvU3Ory5AQBHhryok9GfYJnMVqw8Tii8 S X-Google-Smtp-Source: AGHT+IEPPNqk26FmdivXxob7LijqHEfjQTrgSAleyaKOFR57EK5kRAD+PqOXxVXJxGlY9CG/ZYAz9g== X-Received: by 2002:a05:6602:38d:b0:7d6:513b:254 with SMTP id f13-20020a056602038d00b007d6513b0254mr195682iov.2.1712849970400; Thu, 11 Apr 2024 08:39:30 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.39.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:39:29 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 284/437] fs/coda: convert to read/write iterators Date: Thu, 11 Apr 2024 09:17:04 -0600 Message-ID: <20240411153126.16201-285-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- fs/coda/psdev.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/fs/coda/psdev.c b/fs/coda/psdev.c index 3c3148588491..1c7f1c5c4941 100644 --- a/fs/coda/psdev.c +++ b/fs/coda/psdev.c @@ -196,16 +196,17 @@ static ssize_t coda_psdev_write(struct file *file, co= nst char __user *buf, out: return(count ? count : retval); =20 } +FOPS_WRITE_ITER_HELPER(coda_psdev_write); =20 /* * Read a message from the kernel to Venus */ =20 -static ssize_t coda_psdev_read(struct file * file, char __user * buf,=20 - size_t nbytes, loff_t *off) +static ssize_t coda_psdev_read(struct kiocb *iocb, struct iov_iter *to) { DECLARE_WAITQUEUE(wait, current); - struct venus_comm *vcp =3D (struct venus_comm *) file->private_dat= a; + struct venus_comm *vcp =3D iocb->ki_filp->private_data; + size_t nbytes =3D iov_iter_count(to); struct upc_req *req; ssize_t retval =3D 0, count =3D 0; =20 @@ -218,7 +219,7 @@ static ssize_t coda_psdev_read(struct file * file, char= __user * buf, set_current_state(TASK_INTERRUPTIBLE); =20 while (list_empty(&vcp->vc_pending)) { - if (file->f_flags & O_NONBLOCK) { + if (iocb->ki_filp->f_flags & O_NONBLOCK) { retval =3D -EAGAIN; break; } @@ -248,9 +249,9 @@ static ssize_t coda_psdev_read(struct file * file, char= __user * buf, count =3D nbytes; } =20 - if (copy_to_user(buf, req->uc_data, count)) + if (!copy_to_iter_full(req->uc_data, count, to)) retval =3D -EFAULT; - =20 + /* If request was not a signal, enqueue and don't free */ if (!(req->uc_flags & CODA_REQ_ASYNC)) { req->uc_flags |=3D CODA_REQ_READ; @@ -344,8 +345,8 @@ static int coda_psdev_release(struct inode * inode, str= uct file * file) =20 static const struct file_operations coda_psdev_fops =3D { .owner =3D THIS_MODULE, - .read =3D coda_psdev_read, - .write =3D coda_psdev_write, + .read_iter =3D coda_psdev_read, + .write_iter =3D coda_psdev_write_iter, .poll =3D coda_psdev_poll, .unlocked_ioctl =3D coda_psdev_ioctl, .open =3D coda_psdev_open, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f42.google.com (mail-io1-f42.google.com [209.85.166.42]) (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 A21D747A55 for ; Thu, 11 Apr 2024 15:39:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849974; cv=none; b=I1BXlYlaDVEZFQSPX2MFPRtoZqT0e8PYM+bMl7L0gvLMHTIQhzvbVleuNil6gfzOJ21JHVjMxJIfAFjHRc89ZpbuZ1Z8HJ/edjUq5ShuZm64Esc1seSqisuCqENi9eXAKcZ9w69pjo6ycsnPjvAUod9HOGbs9dDYBwHucNoo4wQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849974; c=relaxed/simple; bh=dpjjwJpMsVv1KxGUBCsBNvBL0/N3BNgZWI4u6TND3cM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=YI5+In9huDb8JM39xsRyBi3Qgej6ob+SSHpv/hTlBgtbepqHPq+zMmSQgE+tqj5v/I03Qf66eDtZKaFRlvBVzNCKZQedKyGnLG/miRbergTz/yH0TQ9mmajMtYTURNlXUwwsM4VNK88fyKFasUWLmY/znjE22/woWJjORDAhReM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=L5M2j7BA; arc=none smtp.client-ip=209.85.166.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="L5M2j7BA" Received: by mail-io1-f42.google.com with SMTP id ca18e2360f4ac-7c8e4c0412dso69636339f.1 for ; Thu, 11 Apr 2024 08:39:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849971; x=1713454771; 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=Xh/LnGv4wN19TgvJnr2PitMJOHvtGuK64MU0s7R/ELU=; b=L5M2j7BAm+RXF0na0TxAGovYldAaE2SwppnTPj619wpuIuvyCbF9X95TRcdpbg0lFo SMScmp4C56cL8hQYnzGkgU9RtlKDkUJiSgBrg+kbXAVQ/CGl6wAVpSZWHNFSapQbqgfX cUuXWqw+RXwz3+uclLE5QMNkGwHtRrmZL32/3TTeiB2fuouechP1CnJGKjhABf+62JaP +PfJvQTg/zVBJvKyMdHtpmrk7vqrBP53Ki0fBkqbci4Fne79IvbZbT+zMrfCP2nbkuk/ IXy2UaA89as9dJr7+1dXZ40sZcxPR3n2IgWHUYgCrRCbOav2GiCpRxbGsXHu1RKLBazD IEaw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849971; x=1713454771; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Xh/LnGv4wN19TgvJnr2PitMJOHvtGuK64MU0s7R/ELU=; b=DynUYjXU5bKo0lj7RioxXfHBF1zNUiwfPaaRaGYkONmZLDVJGthv1Ud8f6JYPpXFik TdpgiSsmEhpXjkdBLxvJRmpcYVonxG9VsRLHoJOPRSLl2m8pFxDx8Dv/evx96m/2jWyB ZRz1KeEhJiDqLBkHQShSHft5Y1DPchYgXqf1UtlCCgtTkoPFE85vtt6A5fgW7yzL6scZ wQiF1kC+ncBmOzKVlJ9HvrgDFRkdPoN1pNWUCzXtW6kFWIUBfHeggvgHaruDfyIDSWeI cW18Az64q4L+LHvyyKWh7hgBqVGunjsojSU43fTLdJicSf6j3Kc/16MYBEtl40704Ulr sPbg== X-Gm-Message-State: AOJu0YzUja587/I3JvFq+78jUH6bwQZKvj5Rf45DKS1hyMFTtVk1ztIr 9FVy5rZIVGpnuuw/G4lY2/P8XBzsSzkEhomHQWLpQuhhsGPdfackzE0NE2TwwY6cGA1+8seFR7R B X-Google-Smtp-Source: AGHT+IEO7aRCs6Pg4FzBAtH2QjSaW9e0qzDN92Fs8nDkVQE7QOHAtWtg0prfuYeC8GVs/H2Y7css8A== X-Received: by 2002:a6b:c34e:0:b0:7d6:7b7c:8257 with SMTP id t75-20020a6bc34e000000b007d67b7c8257mr227522iof.0.1712849971438; Thu, 11 Apr 2024 08:39:31 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.39.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:39:30 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 285/437] fs/nfsd: convert to read/write iterators Date: Thu, 11 Apr 2024 09:17:05 -0600 Message-ID: <20240411153126.16201-286-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- fs/nfsd/nfs4state.c | 5 +++-- fs/nfsd/nfsctl.c | 10 ++++++---- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c index 84d4093ca713..cbe82431633a 100644 --- a/fs/nfsd/nfs4state.c +++ b/fs/nfsd/nfs4state.c @@ -2958,7 +2958,7 @@ static int client_opens_release(struct inode *inode, = struct file *file) =20 static const struct file_operations client_states_fops =3D { .open =3D client_states_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D client_opens_release, }; @@ -3011,9 +3011,10 @@ static ssize_t client_ctl_write(struct file *file, c= onst char __user *buf, drop_client(clp); return 7; } +FOPS_WRITE_ITER_HELPER(client_ctl_write); =20 static const struct file_operations client_ctl_fops =3D { - .write =3D client_ctl_write, + .write_iter =3D client_ctl_write_iter, .release =3D simple_transaction_release, }; =20 diff --git a/fs/nfsd/nfsctl.c b/fs/nfsd/nfsctl.c index ecd18bffeebc..788194ac663d 100644 --- a/fs/nfsd/nfsctl.c +++ b/fs/nfsd/nfsctl.c @@ -118,6 +118,7 @@ static ssize_t nfsctl_transaction_write(struct file *fi= le, const char __user *bu simple_transaction_set(file, rv); return size; } +FOPS_WRITE_ITER_HELPER(nfsctl_transaction_write); =20 static ssize_t nfsctl_transaction_read(struct file *file, char __user *buf= , size_t size, loff_t *pos) { @@ -132,10 +133,11 @@ static ssize_t nfsctl_transaction_read(struct file *f= ile, char __user *buf, size } return simple_transaction_read(file, buf, size, pos); } +FOPS_READ_ITER_HELPER(nfsctl_transaction_read); =20 static const struct file_operations transaction_ops =3D { - .write =3D nfsctl_transaction_write, - .read =3D nfsctl_transaction_read, + .write_iter =3D nfsctl_transaction_write_iter, + .read_iter =3D nfsctl_transaction_read_iter, .release =3D simple_transaction_release, .llseek =3D default_llseek, }; @@ -162,7 +164,7 @@ static int exports_nfsd_open(struct inode *inode, struc= t file *file) =20 static const struct file_operations exports_nfsd_operations =3D { .open =3D exports_nfsd_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D seq_release, }; @@ -177,7 +179,7 @@ DEFINE_SHOW_ATTRIBUTE(export_features); =20 static const struct file_operations pool_stats_operations =3D { .open =3D nfsd_pool_stats_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D seq_release, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f45.google.com (mail-io1-f45.google.com [209.85.166.45]) (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 E14DB1D214F for ; Thu, 11 Apr 2024 15:39:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849976; cv=none; b=VMJYwctq8944LJUwaBBGdDzydF1oXk3+hz2gTFFWudyZFlmjyYTbBLHhYmqdqW7Ef4JCZYtvEOyaE5RRxkl5S6/ZUFRWHcQK1NohYyW50psXB4GNl44liJ5PmB4ADwq0taSk8Ae2cb3nOJQXxAESk3CX3R3lbTjsSJQ0Cyk5X6E= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849976; c=relaxed/simple; bh=bSyPTnaqBqw4Xs8QnICt+Ts5wtEFukOjwG63LhUNraA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=tAxtvq0PUYM7Ttw2rSfK7YOUWanYImykniq/yqDG2Su/xeIM7+NQvEGYdAHpLwW9h4po/0adEYlQZkNzFm6dPjzN6bdAM/Iny7MA6GOdCFUmR5ge+uwVqqKE1F5osptK+If3hDLTeqLgbcspmdFMfxK3xqpj48T295u46xe2Cdc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=KT8+WxK/; arc=none smtp.client-ip=209.85.166.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="KT8+WxK/" Received: by mail-io1-f45.google.com with SMTP id ca18e2360f4ac-7d6112ba6baso58164339f.1 for ; Thu, 11 Apr 2024 08:39:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849974; x=1713454774; 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=08PAtrhbE+R6iK58OUJxn9BiTqf8PwssoESggNQBtJA=; b=KT8+WxK/lV217baW2oBNVcPCkbn+Yj2nWrsTsSqqmXGvjsP0KjK3yxISz9FG6mJGd1 /bX1qg5+UUin/1QsYxBZkWufG+S4hTV4dasdEu1DUfKMFoF9fyQ6/JyrdDjxp6m2YASh 14eAlZSivMwwr1oU8m+Mj+jOV8sdA6BnmnZ0FXEOq4wJ9YJRxj7Kfj8GByh9mYTACITY 1EKxsSCK5vZ9BK59KXv4OnvNrrOLgQq6W4JSrBeWKhQIbGCvOup7ISNBkU24eUBmsKSk 3px1Gl5rthsRc8iVOBeW6IdHtGJ9TISWUtaHSd/RfAMH9jVarF02SDzafzn5UMFaooNu 1x3A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849974; x=1713454774; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=08PAtrhbE+R6iK58OUJxn9BiTqf8PwssoESggNQBtJA=; b=pWe7aS0t3BwfuPLNTlXLjbHKLclzCX+jjFte8DGXeW3ufhdo6GGxCM5Hbbs6lJTNlY Sd4Xq1vlmnSRdBaCRxcT3YuQdZWMAgBCln0iXAna+R7UaTEXxXBddPDoNDaDhFGinG9B JDtx9bfbiNNG4kgHjWUGpbYd9TJhIAjalBgvJwqH07YeUt//08GXpM8qtLERYrq0aQ+z jnywhKixn5yQ92Yh7ZgcUY1sY49tA36Q+p4TXrhrX+sB1I+ku0bHsHYTSTXt6+HUKOt7 0xgmGZSj/iiAADVq6zwWQ6gidqYvj9B8s9xK/wnnEFdj9U7l5589N9xyWPXhYDHSW/ku lGPw== X-Gm-Message-State: AOJu0YwcUFp+v5PZduBuhs0WaRDf/dJallNg7RksqLPwWfADwgELc3rx 90DtLqq8zzBsT5YOWAfAojFYRuApAP+7x5zKsEKxiUITVFi9IXkjMpL+52ehBkN50g0G44yErLX m X-Google-Smtp-Source: AGHT+IE2C1+VxSUMyChMtYz/iB/fEb/18L0FB9m2Venps3jy90x+a0TUyubgTvbaJWYr7oSwn1WmwQ== X-Received: by 2002:a05:6602:38d:b0:7d6:513b:254 with SMTP id f13-20020a056602038d00b007d6513b0254mr195838iov.2.1712849973657; Thu, 11 Apr 2024 08:39:33 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.39.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:39:31 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 286/437] ubifs: convert to read/write iterators Date: Thu, 11 Apr 2024 09:17:06 -0600 Message-ID: <20240411153126.16201-287-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- fs/ubifs/debug.c | 59 ++++++++++++++++++++++-------------------------- 1 file changed, 27 insertions(+), 32 deletions(-) diff --git a/fs/ubifs/debug.c b/fs/ubifs/debug.c index 2d63f57aca6f..52f93ea1ac7f 100644 --- a/fs/ubifs/debug.c +++ b/fs/ubifs/debug.c @@ -2677,17 +2677,15 @@ static int dfs_file_open(struct inode *inode, struc= t file *file) /** * provide_user_output - provide output to the user reading a debugfs file. * @val: boolean value for the answer - * @u: the buffer to store the answer at - * @count: size of the buffer - * @ppos: position in the @u output buffer + * @iocb: metadata for IO + * @to: the buffer to store the answer at * * This is a simple helper function which stores @val boolean value in the= user * buffer when the user reads one of UBIFS debugfs files. Returns amount of * bytes written to @u in case of success and a negative error code in cas= e of * failure. */ -static int provide_user_output(int val, char __user *u, size_t count, - loff_t *ppos) +static int provide_user_output(int val, struct kiocb *iocb, struct iov_ite= r *to) { char buf[3]; =20 @@ -2698,14 +2696,13 @@ static int provide_user_output(int val, char __user= *u, size_t count, buf[1] =3D '\n'; buf[2] =3D 0x00; =20 - return simple_read_from_buffer(u, count, ppos, buf, 2); + return simple_copy_to_iter(buf, &iocb->ki_pos, 2, to); } =20 -static ssize_t dfs_file_read(struct file *file, char __user *u, size_t cou= nt, - loff_t *ppos) +static ssize_t dfs_file_read(struct kiocb *iocb, struct iov_iter *to) { - struct dentry *dent =3D file->f_path.dentry; - struct ubifs_info *c =3D file->private_data; + struct dentry *dent =3D iocb->ki_filp->f_path.dentry; + struct ubifs_info *c =3D iocb->ki_filp->private_data; struct ubifs_debug_info *d =3D c->dbg; int val; =20 @@ -2726,26 +2723,25 @@ static ssize_t dfs_file_read(struct file *file, cha= r __user *u, size_t count, else return -EINVAL; =20 - return provide_user_output(val, u, count, ppos); + return provide_user_output(val, iocb, to); } -FOPS_READ_ITER_HELPER(dfs_file_read); =20 /** * interpret_user_input - interpret user debugfs file input. - * @u: user-provided buffer with the input - * @count: buffer size + * @from: user-provided buffer with the input * * This is a helper function which interpret user input to a boolean UBIFS * debugfs file. Returns %0 or %1 in case of success and a negative error = code * in case of failure. */ -static int interpret_user_input(const char __user *u, size_t count) +static int interpret_user_input(struct iov_iter *from) { + size_t count =3D iov_iter_count(from); size_t buf_size; char buf[8]; =20 buf_size =3D min_t(size_t, count, (sizeof(buf) - 1)); - if (copy_from_user(buf, u, buf_size)) + if (!copy_from_iter_full(buf, buf_size, from)) return -EFAULT; =20 if (buf[0] =3D=3D '1') @@ -2756,12 +2752,13 @@ static int interpret_user_input(const char __user *= u, size_t count) return -EINVAL; } =20 -static ssize_t dfs_file_write(struct file *file, const char __user *u, - size_t count, loff_t *ppos) +static ssize_t dfs_file_write(struct kiocb *iocb, struct iov_iter *from) { + struct file *file =3D iocb->ki_filp; struct ubifs_info *c =3D file->private_data; struct ubifs_debug_info *d =3D c->dbg; struct dentry *dent =3D file->f_path.dentry; + size_t count =3D iov_iter_count(from); int val; =20 if (file->f_path.dentry =3D=3D d->dfs_dump_lprops) { @@ -2779,7 +2776,7 @@ static ssize_t dfs_file_write(struct file *file, cons= t char __user *u, return count; } =20 - val =3D interpret_user_input(u, count); + val =3D interpret_user_input(from); if (val < 0) return val; =20 @@ -2802,12 +2799,11 @@ static ssize_t dfs_file_write(struct file *file, co= nst char __user *u, =20 return count; } -FOPS_WRITE_ITER_HELPER(dfs_file_write); =20 static const struct file_operations dfs_fops =3D { .open =3D dfs_file_open, - .read_iter =3D dfs_file_read_iter, - .write_iter =3D dfs_file_write_iter, + .read_iter =3D dfs_file_read, + .write_iter =3D dfs_file_write, .owner =3D THIS_MODULE, .llseek =3D no_llseek, }; @@ -2898,10 +2894,9 @@ static struct dentry *dfs_chk_lprops; static struct dentry *dfs_chk_fs; static struct dentry *dfs_tst_rcvry; =20 -static ssize_t dfs_global_file_read(struct file *file, char __user *u, - size_t count, loff_t *ppos) +static ssize_t dfs_global_file_read(struct kiocb *iocb, struct iov_iter *t= o) { - struct dentry *dent =3D file->f_path.dentry; + struct dentry *dent =3D iocb->ki_filp->f_path.dentry; int val; =20 if (dent =3D=3D dfs_chk_gen) @@ -2919,16 +2914,16 @@ static ssize_t dfs_global_file_read(struct file *fi= le, char __user *u, else return -EINVAL; =20 - return provide_user_output(val, u, count, ppos); + return provide_user_output(val, iocb, to); } =20 -static ssize_t dfs_global_file_write(struct file *file, const char __user = *u, - size_t count, loff_t *ppos) +static ssize_t dfs_global_file_write(struct kiocb *iocb, struct iov_iter *= from) { - struct dentry *dent =3D file->f_path.dentry; + struct dentry *dent =3D iocb->ki_filp->f_path.dentry; + size_t count =3D iov_iter_count(from); int val; =20 - val =3D interpret_user_input(u, count); + val =3D interpret_user_input(from); if (val < 0) return val; =20 @@ -2951,8 +2946,8 @@ static ssize_t dfs_global_file_write(struct file *fil= e, const char __user *u, } =20 static const struct file_operations dfs_global_fops =3D { - .read =3D dfs_global_file_read, - .write =3D dfs_global_file_write, + .read_iter =3D dfs_global_file_read, + .write_iter =3D dfs_global_file_write, .owner =3D THIS_MODULE, .llseek =3D no_llseek, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f52.google.com (mail-io1-f52.google.com [209.85.166.52]) (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 440081D29E7 for ; Thu, 11 Apr 2024 15:39:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849978; cv=none; b=TKl0Qy/h0OQxxmV5Efomy7KGAFvxx8owr/XnOojMcC27vUT1CE9t0jGY37Yi2rI0hhWRszLdB6SB6EbW82YG1n/o7sAt8ipn9HZdhOP99lhFXWnOSKDnJPvrFDI5Umgj1RnAg/JsS6hsmG3qjXT6OpQX+PY5KEjzzxMuN7Pc+ps= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849978; c=relaxed/simple; bh=Oi1CL4SZ7jF5iZGPiPuWgGK8ZRI8ipyz2HPqUMkXGTo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=AdDDjrSpTZgZRGsP+zDbl0Nd1LQtzxl2Ctr/HvkXTVXcR1Lt7twmJTHFwa4MFpCi0wnFvHnWMrxjYOfZOJQQ6rhfFwV25Dy7p/CUPlEYkMsq1nOR74jw4ka4LmPosH7RDuGvgw3Tj1PDehYAPjJtwNXg1lrCIHmsPErk2dEmqM4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=nYUqtFwi; arc=none smtp.client-ip=209.85.166.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="nYUqtFwi" Received: by mail-io1-f52.google.com with SMTP id ca18e2360f4ac-7d5ed700c2dso16213939f.0 for ; Thu, 11 Apr 2024 08:39:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849976; x=1713454776; 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=wCrr/tS5aR2avoRP2BBFyz38JLXO1ubG5EpJ8aJmhaU=; b=nYUqtFwipJX7ZeQxeOhAPZz9k7x8bbpazOLQUdCiFqtURc1xG4LJ3gcAAxoYlOd9+R aMMFFZVagv5CFPCQ9MtZJurD6x5mc9DCCIdTJEuOgnXCTGVaaBj5WitR7FEDT8Gbvy9u pVl3yzapGqwwpk5t3v7plarfSa70ddacA8HtdMJTCUUTCagFzp46fYOynfmeWENI+k1D K1q+pVBWKxYcoriaEeckmzLTKecCInIvw23/AVGEtVo0904qO41HvRUd/Jwg44RCPHrG CNhdAu86CdJLzuAsiK3TRMV2GYWOYQ7/f5a+jwiPY0wpQdHIGTlpMSwnGszESk0Gggzt EMqQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849976; x=1713454776; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=wCrr/tS5aR2avoRP2BBFyz38JLXO1ubG5EpJ8aJmhaU=; b=DJM02hMqZR9QDCSIJIZcPFVonawi4xMRkXsDyOZIJ6U/h21H1K0L4VRehq4CKCqHfL 7g/TUSbGnB0aOjOK9v8eR6TgyuPWuEzRQnX6hEFuxwkaOKqf1H4x3Hxf+oJiEr/kKRVG MlIxBxeejTTBmaayUFqDyxDbezTfack4pcgOjE2Nrwira82O76VJtzkJTFwEtGaNtGHJ P/Z0MpbJ7Zql2di4Pspg1XF1APwsLAAUc8iLYb/nm0Jj2srQupaM5z8n0DQ2m1g5b91H CToQ6tZAe2M28HZ9/ZbOionYQGBXDA7NAIq2pQnt/CqaniqTFRA8V+352qgusPeq5vSx fRsA== X-Gm-Message-State: AOJu0YyVlRSS23BL14Iq4XsWQ9ik+iYAn5z1N/vY/FbdG2BRfmrMQdGB uA/9QYFS+dF9INSHZ8EkpNsVfZiLPgFIkvyqUWoQoSTBwXNz4kCE/MREKhTBaRWQxNGacKk7o2Q D X-Google-Smtp-Source: AGHT+IG3PcXy2sM7qioOv3aZPlpA11Fr3mjwfnVeG9gcwygon6ME7zge95ABkf8g6X/YripE4PZpAg== X-Received: by 2002:a6b:cd08:0:b0:7d5:fe3e:90ff with SMTP id d8-20020a6bcd08000000b007d5fe3e90ffmr209462iog.0.1712849976065; Thu, 11 Apr 2024 08:39:36 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.39.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:39:33 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 287/437] cachefiles: convert to read/write iterators Date: Thu, 11 Apr 2024 09:17:07 -0600 Message-ID: <20240411153126.16201-288-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- fs/cachefiles/daemon.c | 35 ++++++++++++++++------------------- fs/cachefiles/internal.h | 4 ++-- fs/cachefiles/ondemand.c | 5 +++-- 3 files changed, 21 insertions(+), 23 deletions(-) diff --git a/fs/cachefiles/daemon.c b/fs/cachefiles/daemon.c index 6465e2574230..4a6a31a76d35 100644 --- a/fs/cachefiles/daemon.c +++ b/fs/cachefiles/daemon.c @@ -23,10 +23,8 @@ =20 static int cachefiles_daemon_open(struct inode *, struct file *); static int cachefiles_daemon_release(struct inode *, struct file *); -static ssize_t cachefiles_daemon_read(struct file *, char __user *, size_t, - loff_t *); -static ssize_t cachefiles_daemon_write(struct file *, const char __user *, - size_t, loff_t *); +static ssize_t cachefiles_daemon_read(struct kiocb *, struct iov_iter *); +static ssize_t cachefiles_daemon_write(struct kiocb *, struct iov_iter *); static __poll_t cachefiles_daemon_poll(struct file *, struct poll_table_struct *); static int cachefiles_daemon_frun(struct cachefiles_cache *, char *); @@ -50,8 +48,8 @@ const struct file_operations cachefiles_daemon_fops =3D { .owner =3D THIS_MODULE, .open =3D cachefiles_daemon_open, .release =3D cachefiles_daemon_release, - .read =3D cachefiles_daemon_read, - .write =3D cachefiles_daemon_write, + .read_iter =3D cachefiles_daemon_read, + .write_iter =3D cachefiles_daemon_write, .poll =3D cachefiles_daemon_poll, .llseek =3D noop_llseek, }; @@ -207,8 +205,9 @@ static int cachefiles_daemon_release(struct inode *inod= e, struct file *file) } =20 static ssize_t cachefiles_do_daemon_read(struct cachefiles_cache *cache, - char __user *_buffer, size_t buflen) + struct iov_iter *to) { + size_t buflen =3D iov_iter_count(to); unsigned long long b_released; unsigned f_released; char buffer[256]; @@ -245,7 +244,7 @@ static ssize_t cachefiles_do_daemon_read(struct cachefi= les_cache *cache, if (n > buflen) return -EMSGSIZE; =20 - if (copy_to_user(_buffer, buffer, n) !=3D 0) + if (!copy_to_iter_full(buffer, n, to) !=3D 0) return -EFAULT; =20 return n; @@ -254,10 +253,9 @@ static ssize_t cachefiles_do_daemon_read(struct cachef= iles_cache *cache, /* * Read the cache state. */ -static ssize_t cachefiles_daemon_read(struct file *file, char __user *_buf= fer, - size_t buflen, loff_t *pos) +static ssize_t cachefiles_daemon_read(struct kiocb *iocb, struct iov_iter = *to) { - struct cachefiles_cache *cache =3D file->private_data; + struct cachefiles_cache *cache =3D iocb->ki_filp->private_data; =20 //_enter(",,%zu,", buflen); =20 @@ -265,21 +263,20 @@ static ssize_t cachefiles_daemon_read(struct file *fi= le, char __user *_buffer, return 0; =20 if (cachefiles_in_ondemand_mode(cache)) - return cachefiles_ondemand_daemon_read(cache, _buffer, buflen); + return cachefiles_ondemand_daemon_read(cache, to); else - return cachefiles_do_daemon_read(cache, _buffer, buflen); + return cachefiles_do_daemon_read(cache, to); } =20 /* * Take a command from cachefilesd, parse it and act on it. */ -static ssize_t cachefiles_daemon_write(struct file *file, - const char __user *_data, - size_t datalen, - loff_t *pos) +static ssize_t cachefiles_daemon_write(struct kiocb *iocb, + struct iov_iter *from) { const struct cachefiles_daemon_cmd *cmd; - struct cachefiles_cache *cache =3D file->private_data; + struct cachefiles_cache *cache =3D iocb->ki_filp->private_data; + size_t datalen =3D iov_iter_count(from); ssize_t ret; char *data, *args, *cp; =20 @@ -294,7 +291,7 @@ static ssize_t cachefiles_daemon_write(struct file *fil= e, return -EOPNOTSUPP; =20 /* drag the command string into the kernel so we can parse it */ - data =3D memdup_user_nul(_data, datalen); + data =3D iterdup_nul(from, datalen); if (IS_ERR(data)) return PTR_ERR(data); =20 diff --git a/fs/cachefiles/internal.h b/fs/cachefiles/internal.h index d33169f0018b..2b5565d38cb3 100644 --- a/fs/cachefiles/internal.h +++ b/fs/cachefiles/internal.h @@ -298,7 +298,7 @@ extern bool cachefiles_commit_tmpfile(struct cachefiles= _cache *cache, */ #ifdef CONFIG_CACHEFILES_ONDEMAND extern ssize_t cachefiles_ondemand_daemon_read(struct cachefiles_cache *ca= che, - char __user *_buffer, size_t buflen); + struct iov_iter *to); =20 extern int cachefiles_ondemand_copen(struct cachefiles_cache *cache, char *args); @@ -341,7 +341,7 @@ static inline bool cachefiles_ondemand_is_reopening_rea= d(struct cachefiles_req * =20 #else static inline ssize_t cachefiles_ondemand_daemon_read(struct cachefiles_ca= che *cache, - char __user *_buffer, size_t buflen) + struct iov_iter *to) { return -EOPNOTSUPP; } diff --git a/fs/cachefiles/ondemand.c b/fs/cachefiles/ondemand.c index 4ba42f1fa3b4..e27144ff2050 100644 --- a/fs/cachefiles/ondemand.c +++ b/fs/cachefiles/ondemand.c @@ -295,8 +295,9 @@ static struct cachefiles_req *cachefiles_ondemand_selec= t_req(struct xa_state *xa } =20 ssize_t cachefiles_ondemand_daemon_read(struct cachefiles_cache *cache, - char __user *_buffer, size_t buflen) + struct iov_iter *to) { + size_t buflen =3D iov_iter_count(to); struct cachefiles_req *req; struct cachefiles_msg *msg; unsigned long id =3D 0; @@ -345,7 +346,7 @@ ssize_t cachefiles_ondemand_daemon_read(struct cachefil= es_cache *cache, msg->msg_id =3D id; msg->object_id =3D req->object->ondemand->ondemand_id; =20 - if (copy_to_user(_buffer, msg, n) !=3D 0) { + if (!copy_to_iter_full(msg, n, to) !=3D 0) { ret =3D -EFAULT; goto err_put_fd; } --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-il1-f174.google.com (mail-il1-f174.google.com [209.85.166.174]) (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 2BC9F14F64 for ; Thu, 11 Apr 2024 15:39:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.174 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849980; cv=none; b=TX/s0GaxYFHjCEVTsSRwIgU/hIVTfk/7ElA7j9u3mh2RbdKPfS99ON+oVNugBMpT2h3tb1i+J+aOZxGKcSeFNDzE7qa8yq7NvaHDv1fptBwugCqphUd2rdn9OtMcj0DgqYv02gV0DUndWsPJyg9Rnkj0aS9h7EqYDuTUftuDEcE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849980; c=relaxed/simple; bh=XiXOfTTNOd1sJPDc63QHE7E6r8vBnGvBV/iAtaV5FJs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=PE+0bTCAEVB590QND+9cWl4SIUK9vgtyKW4DMpWdRNsVOa/4dPY88yzWQ5c4hxBtXESDPRALhdNM1K+PJpoogNdGv91gaVDL9ZI+y+mGgMTmLAzSM2e0IKjv4u/QLmTwqkB/uMae6ZX5KGE9lhZPiHMh3p58AqurHxzRGkV5tNw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=fLgqN+Ju; arc=none smtp.client-ip=209.85.166.174 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="fLgqN+Ju" Received: by mail-il1-f174.google.com with SMTP id e9e14a558f8ab-36a34b68277so115975ab.0 for ; Thu, 11 Apr 2024 08:39:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849978; x=1713454778; 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=xcj7frfmKf3TG9j28sfetheUjR7sb7AoMM45ttfCxdo=; b=fLgqN+JuClkupZsDsa1SPi5ZusoElc/QpWhs+3ivK2q/Xmo5L+ZiajF3vJ4x2qydqn IEX0psf2aSieYxDdFBs1Rxl3wTwwzcYDVQRihAVAZi/Vl5ACYfG8WI//B3WZUAl1xLgP Rb9RCyIt0tJq5w7AI3/SkkP3O8IK0j7nmFFrqjr4/aaVT3GixJB0TYVaIbPT1SLbYaaH LjTiioZ94G9p1wuJ4PTHPPoTj9TpOphbI3IAar/bftMIsGwmQLIbfNuxNrK3GNYeSAxb Ccp++LJRUSzQAlBGezfDtbAz+3I6869rr0AmanQUA4a8nQOxIzqctfOn4VajJGFaSF85 RFCg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849978; x=1713454778; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=xcj7frfmKf3TG9j28sfetheUjR7sb7AoMM45ttfCxdo=; b=Zq1cX7QXx8xb/LaAQok6pEGQjKnIrHI1a8B0lvOMioysfVYmfO0UAioN+/qd+ZljNr 0hkJpcHh5kU+tEJtw+mAiXz8g6ONfwF7GW+fC5dKRW9sk8eMR6ZIFuGcXD/NH71DtPeb om0RWRKLxmd7JhxaLmfpGv3iZEnOkGBTGiCc+8bHAKnMu7ejcLFBJpSHrniFlZlPO13j eCm6K+UG+wZEm3PEM/+oxESqrJBWKaKkuSIbKywEON6+BWd3HZ+T1kfRmUkB2b+J8aJy aBkC1LSnohC1Flih0aznhLVpr6tSjcQJgcKrkaS9ebv8qlE6zabCC5c86t76mwY7fsSM YOEA== X-Gm-Message-State: AOJu0Yylx2QwhdaLsgk65W2y/wkVevcPSrdKsCY9Fq/OO8t/Y7ot/fld bb1dQ0kqWBNcQySOo/L40rCVWIbemR9EcRxoid5Pf6KV+4t+AYg4XRLMb8NhZuNq4mTAXbCt2em b X-Google-Smtp-Source: AGHT+IGEpbjvDzN2GlW9PZ/5cx0O1gBDadkYDq+bNS3Wgl6WnkWnqURHxy8JV82XFrTBukdYX2EXRQ== X-Received: by 2002:a92:c56f:0:b0:369:e37d:541f with SMTP id b15-20020a92c56f000000b00369e37d541fmr6997412ilj.1.1712849977921; Thu, 11 Apr 2024 08:39:37 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.39.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:39:36 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 288/437] fs/xfs: convert to read/write iterators Date: Thu, 11 Apr 2024 09:17:08 -0600 Message-ID: <20240411153126.16201-289-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- fs/xfs/scrub/stats.c | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/fs/xfs/scrub/stats.c b/fs/xfs/scrub/stats.c index 42cafbed94ac..bd546b61334d 100644 --- a/fs/xfs/scrub/stats.c +++ b/fs/xfs/scrub/stats.c @@ -235,12 +235,10 @@ xchk_stats_merge( =20 static ssize_t xchk_scrub_stats_read( - struct file *file, - char __user *ubuf, - size_t count, - loff_t *ppos) + struct kiocb *iocb, + struct iov_iter *to) { - struct xchk_stats *cs =3D file->private_data; + struct xchk_stats *cs =3D iocb->ki_filp->private_data; char *buf; size_t bufsize; ssize_t avail, ret; @@ -250,7 +248,7 @@ xchk_scrub_stats_read( * do not want userspace to receive garbled text from multiple calls. * If the file position is greater than 0, return a short read. */ - if (*ppos > 0) + if (iocb->ki_pos > 0) return 0; =20 bufsize =3D xchk_stats_estimate_bufsize(cs); @@ -265,7 +263,7 @@ xchk_scrub_stats_read( goto out; } =20 - ret =3D simple_read_from_buffer(ubuf, count, ppos, buf, avail); + ret =3D simple_copy_to_iter(buf, &iocb->ki_pos, avail, to); out: kvfree(buf); return ret; @@ -273,21 +271,20 @@ xchk_scrub_stats_read( =20 static const struct file_operations scrub_stats_fops =3D { .open =3D simple_open, - .read =3D xchk_scrub_stats_read, + .read_iter =3D xchk_scrub_stats_read, }; =20 static ssize_t xchk_clear_scrub_stats_write( - struct file *file, - const char __user *ubuf, - size_t count, - loff_t *ppos) + struct kiocb *iocb, + struct iov_iter *from) { - struct xchk_stats *cs =3D file->private_data; + struct xchk_stats *cs =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); unsigned int val; int ret; =20 - ret =3D kstrtouint_from_user(ubuf, count, 0, &val); + ret =3D kstrtouint_from_iter(from, count, 0, &val); if (ret) return ret; =20 @@ -300,7 +297,7 @@ xchk_clear_scrub_stats_write( =20 static const struct file_operations clear_scrub_stats_fops =3D { .open =3D simple_open, - .write =3D xchk_clear_scrub_stats_write, + .write_iter =3D xchk_clear_scrub_stats_write, }; =20 /* Initialize the stats object. */ --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f41.google.com (mail-io1-f41.google.com [209.85.166.41]) (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 10B5817588 for ; Thu, 11 Apr 2024 15:39:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849983; cv=none; b=YmGssRJ/XEbcG2NbSC/5N0mStwLF5y4isFceGZUhi7s/XziD3xF024t6mrdkI0ZLSf+NJZrfPBNu5fiv48+dLI1n6UkntHIGf/kaXvOSaLeS2nEQU/2yuUdgqWxS7BDEwLROZhct3dONOtQr0nMVTj7lt97zk5whcxHC6Gw71K8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849983; c=relaxed/simple; bh=DHMCYYdUCRmhOpDhCXsUNeZsXB4zDSnDq1t7y0GuQrY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=f/PQLLAyyQX//FJjBY7rwK6FIB/ve7G8uzIUw4iSBhHzODwHhfAHkL313EQhb8LhgEZodA7Iz5RKNyQC2wlDdWm5y5NtZgpjsVGwHXpI9s/VUdN4/sPln7YCOHLutzLvjq04ipNP2yPwOl9pDQJDsHXdgZk48t/wsvVcX7XjYI8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=k32LLqze; arc=none smtp.client-ip=209.85.166.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="k32LLqze" Received: by mail-io1-f41.google.com with SMTP id ca18e2360f4ac-7d6112ba6baso58171039f.1 for ; Thu, 11 Apr 2024 08:39:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849979; x=1713454779; 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=8GcTesiZb4x6GGSKP7V2H2rQRehxL1gBgTA2zgMpf1Y=; b=k32LLqzeFV3/CijDCPxMAZBsSCk+u2VEBZIhCC550zasoG8zWI94WR0KO06fDoBJM8 VkmCJH3cNFnHGv7S9QgguNPg+KaWdF0a6yh++p5Oo48AqwQKegJJ9iLlh/s3BaVfIsbK lgi6jJHrXuTFP1XMQE1K5r3PxBjlkbQ0XrE8DJ0pXtwxkbUT4FEIays2Ukd5sERMJzBu tBJR2yvMb/qt8wtFyz/wJ53N4/tIvUnqmoXPKQisjhKGlkDQF96Whu12tCwbHmcXpJLj PemWmAprEwOo+9AK8MPjQXvKUHLKVJ4+Rn7ACaV2qfiRETcZU5YnDoGO2MmDDus5957E TQZA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849979; x=1713454779; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=8GcTesiZb4x6GGSKP7V2H2rQRehxL1gBgTA2zgMpf1Y=; b=q668YDKXW/tCpiDrGPhKaTDTmWtALKXfeFF86y2md4A8dBtgGGTUnk4s35iIICiBRJ oq4VbjiUiCSBalxqAnmuyyu1ghWKN7ioGbXETvb3L3Xha/0eKl+jZrGurFCpMSuuRR53 5vrMSOU4dUKEi7ODDa9/E2FootTsfV0G39II+wwIu65jKeJemXmarRvwUrcsgalOzMDA lNv/HIhcEaACDsnIXo8cyOW/91WEKcyYKdw96Yw1GNrlGYtObBY0tcXqFN5a9J2DE+tL 6+bDkKWFI2ba8gELcwTvx7P55XAIwE5h6PhfcE9ezn771iYtzWzcbuuf7hiSY3P5hYbV U5rw== X-Gm-Message-State: AOJu0YzgFAx3rV7BGRaBgkq8+dLV5DGGLuPNkPiOoS3qy1cXKbmnFUuj q0nPkAW2utX4R+j7z0nCG2Iu7DFuPkzznmSRfQqVrRYYKRSGZPqlb9BE8z+FoDKKy/S1hnAvkUZ 7 X-Google-Smtp-Source: AGHT+IHZM910AfQ/3vgC/pPYbjR4S5LmFsbnLM9ttLjIN3mqH+NvXYT6FtZgBRM+t45xJgTSSe12fQ== X-Received: by 2002:a05:6602:38d:b0:7d6:513b:254 with SMTP id f13-20020a056602038d00b007d6513b0254mr196106iov.2.1712849979487; Thu, 11 Apr 2024 08:39:39 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.39.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:39:38 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 289/437] fs/bcachefs: convert to read/write iterators Date: Thu, 11 Apr 2024 09:17:09 -0600 Message-ID: <20240411153126.16201-290-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- fs/bcachefs/chardev.c | 10 +++++----- fs/bcachefs/debug.c | 24 ++++++++++++++++-------- fs/bcachefs/thread_with_file.c | 14 ++++++++------ 3 files changed, 29 insertions(+), 19 deletions(-) diff --git a/fs/bcachefs/chardev.c b/fs/bcachefs/chardev.c index cbfa6459bdbc..9f27c3f4b960 100644 --- a/fs/bcachefs/chardev.c +++ b/fs/bcachefs/chardev.c @@ -438,10 +438,9 @@ static int bch2_data_job_release(struct inode *inode, = struct file *file) return 0; } =20 -static ssize_t bch2_data_job_read(struct file *file, char __user *buf, - size_t len, loff_t *ppos) +static ssize_t bch2_data_job_read(struct kiocb *iocb, struct iov_iter *to) { - struct bch_data_ctx *ctx =3D container_of(file->private_data, struct bch_= data_ctx, thr); + struct bch_data_ctx *ctx =3D container_of(iocb->ki_filp->private_data, st= ruct bch_data_ctx, thr); struct bch_fs *c =3D ctx->c; struct bch_ioctl_data_event e =3D { .type =3D BCH_DATA_EVENT_PROGRESS, @@ -451,16 +450,17 @@ static ssize_t bch2_data_job_read(struct file *file, = char __user *buf, .p.sectors_done =3D atomic64_read(&ctx->stats.sectors_seen), .p.sectors_total =3D bch2_fs_usage_read_short(c).used, }; + size_t len =3D iov_iter_count(to); =20 if (len < sizeof(e)) return -EINVAL; =20 - return copy_to_user_errcode(buf, &e, sizeof(e)) ?: sizeof(e); + return copy_to_iter(&e, sizeof(e), to); } =20 static const struct file_operations bcachefs_data_ops =3D { .release =3D bch2_data_job_release, - .read =3D bch2_data_job_read, + .read_iter =3D bch2_data_job_read, .llseek =3D no_llseek, }; =20 diff --git a/fs/bcachefs/debug.c b/fs/bcachefs/debug.c index 208ce6f0fc43..9b5c7aa57fda 100644 --- a/fs/bcachefs/debug.c +++ b/fs/bcachefs/debug.c @@ -384,12 +384,13 @@ static ssize_t bch2_read_btree(struct file *file, cha= r __user *buf, }))) ?: i->ret; } +FOPS_READ_ITER_HELPER(bch2_read_btree); =20 static const struct file_operations btree_debug_ops =3D { .owner =3D THIS_MODULE, .open =3D bch2_dump_open, .release =3D bch2_dump_release, - .read =3D bch2_read_btree, + .read_iter =3D bch2_read_btree_iter, }; =20 static ssize_t bch2_read_btree_formats(struct file *file, char __user *buf, @@ -438,12 +439,13 @@ static ssize_t bch2_read_btree_formats(struct file *f= ile, char __user *buf, =20 return ret ?: i->ret; } +FOPS_READ_ITER_HELPER(bch2_read_btree_formats); =20 static const struct file_operations btree_format_debug_ops =3D { .owner =3D THIS_MODULE, .open =3D bch2_dump_open, .release =3D bch2_dump_release, - .read =3D bch2_read_btree_formats, + .read_iter =3D bch2_read_btree_formats_iter, }; =20 static ssize_t bch2_read_bfloat_failed(struct file *file, char __user *buf, @@ -477,12 +479,13 @@ static ssize_t bch2_read_bfloat_failed(struct file *f= ile, char __user *buf, }))) ?: i->ret; } +FOPS_READ_ITER_HELPER(bch2_read_bfloat_failed); =20 static const struct file_operations bfloat_failed_debug_ops =3D { .owner =3D THIS_MODULE, .open =3D bch2_dump_open, .release =3D bch2_dump_release, - .read =3D bch2_read_bfloat_failed, + .read_iter =3D bch2_read_bfloat_failed_iter, }; =20 static void bch2_cached_btree_node_to_text(struct printbuf *out, struct bc= h_fs *c, @@ -584,12 +587,13 @@ static ssize_t bch2_cached_btree_nodes_read(struct fi= le *file, char __user *buf, =20 return ret ?: i->ret; } +FOPS_READ_ITER_HELPER(bch2_cached_btree_nodes_read); =20 static const struct file_operations cached_btree_nodes_ops =3D { .owner =3D THIS_MODULE, .open =3D bch2_dump_open, .release =3D bch2_dump_release, - .read =3D bch2_cached_btree_nodes_read, + .read_iter =3D bch2_cached_btree_nodes_read_iter, }; =20 static ssize_t bch2_btree_transactions_read(struct file *file, char __user= *buf, @@ -648,12 +652,13 @@ static ssize_t bch2_btree_transactions_read(struct fi= le *file, char __user *buf, =20 return ret ?: i->ret; } +FOPS_READ_ITER_HELPER(bch2_btree_transactions_read); =20 static const struct file_operations btree_transactions_ops =3D { .owner =3D THIS_MODULE, .open =3D bch2_dump_open, .release =3D bch2_dump_release, - .read =3D bch2_btree_transactions_read, + .read_iter =3D bch2_btree_transactions_read_iter, }; =20 static ssize_t bch2_journal_pins_read(struct file *file, char __user *buf, @@ -685,12 +690,13 @@ static ssize_t bch2_journal_pins_read(struct file *fi= le, char __user *buf, =20 return i->ret; } +FOPS_READ_ITER_HELPER(bch2_journal_pins_read); =20 static const struct file_operations journal_pins_ops =3D { .owner =3D THIS_MODULE, .open =3D bch2_dump_open, .release =3D bch2_dump_release, - .read =3D bch2_journal_pins_read, + .read_iter =3D bch2_journal_pins_read_iter, }; =20 static int btree_transaction_stats_open(struct inode *inode, struct file *= file) @@ -792,12 +798,13 @@ static ssize_t btree_transaction_stats_read(struct fi= le *file, char __user *buf, =20 return i->ret; } +FOPS_READ_ITER_HELPER(btree_transaction_stats_read); =20 static const struct file_operations btree_transaction_stats_op =3D { .owner =3D THIS_MODULE, .open =3D btree_transaction_stats_open, .release =3D btree_transaction_stats_release, - .read =3D btree_transaction_stats_read, + .read_iter =3D btree_transaction_stats_read_iter, }; =20 static ssize_t bch2_btree_deadlock_read(struct file *file, char __user *bu= f, @@ -852,12 +859,13 @@ static ssize_t bch2_btree_deadlock_read(struct file *= file, char __user *buf, =20 return ret ?: i->ret; } +FOPS_READ_ITER_HELPER(bch2_btree_deadlock_read); =20 static const struct file_operations btree_deadlock_ops =3D { .owner =3D THIS_MODULE, .open =3D bch2_dump_open, .release =3D bch2_dump_release, - .read =3D bch2_btree_deadlock_read, + .read_iter =3D bch2_btree_deadlock_read_iter, }; =20 void bch2_fs_debug_exit(struct bch_fs *c) diff --git a/fs/bcachefs/thread_with_file.c b/fs/bcachefs/thread_with_file.c index 940db15d6a93..fa6f333605da 100644 --- a/fs/bcachefs/thread_with_file.c +++ b/fs/bcachefs/thread_with_file.c @@ -27,11 +27,11 @@ int bch2_run_thread_with_file(struct thread_with_file *= thr, int ret, fd =3D -1; unsigned fd_flags =3D O_CLOEXEC; =20 - if (fops->read && fops->write) + if (fops->read_iter && fops->write_iter) fd_flags |=3D O_RDWR; - else if (fops->read) + else if (fops->read_iter) fd_flags |=3D O_RDONLY; - else if (fops->write) + else if (fops->write_iter) fd_flags |=3D O_WRONLY; =20 char name[TASK_COMM_LEN]; @@ -145,6 +145,7 @@ static ssize_t thread_with_stdio_read(struct file *file= , char __user *ubuf, =20 return copied ?: ret; } +FOPS_READ_ITER_HELPER(thread_with_stdio_read); =20 static int thread_with_stdio_release(struct inode *inode, struct file *fil= e) { @@ -211,6 +212,7 @@ static ssize_t thread_with_stdio_write(struct file *fil= e, const char __user *ubu =20 return copied ?: ret; } +FOPS_WRITE_ITER_HELPER(thread_with_stdio_write); =20 static __poll_t thread_with_stdio_poll(struct file *file, struct poll_tabl= e_struct *wait) { @@ -267,8 +269,8 @@ static long thread_with_stdio_ioctl(struct file *file, = unsigned int cmd, unsigne =20 static const struct file_operations thread_with_stdio_fops =3D { .llseek =3D no_llseek, - .read =3D thread_with_stdio_read, - .write =3D thread_with_stdio_write, + .read_iter =3D thread_with_stdio_read_iter, + .write_iter =3D thread_with_stdio_write_iter, .poll =3D thread_with_stdio_poll, .flush =3D thread_with_stdio_flush, .release =3D thread_with_stdio_release, @@ -277,7 +279,7 @@ static const struct file_operations thread_with_stdio_f= ops =3D { =20 static const struct file_operations thread_with_stdout_fops =3D { .llseek =3D no_llseek, - .read =3D thread_with_stdio_read, + .read_iter =3D thread_with_stdio_read_iter, .poll =3D thread_with_stdout_poll, .flush =3D thread_with_stdio_flush, .release =3D thread_with_stdio_release, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f50.google.com (mail-io1-f50.google.com [209.85.166.50]) (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 87DD31D2A1E for ; Thu, 11 Apr 2024 15:39:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849983; cv=none; b=CbEbHhK5uRLIqqsnqVTdxLuKVHLNJrsTlexdULIkeVvgkI3PDKtmxANezQySIrV7nSa4Jd0KA3J8awHzmkYRcJcxM903Zz/xjV9GzNGx8gll/QBm1C2swSmXcqQdA+6JXv0yE4jclDKsWal/65K5w/BK9TN8nxtn9IuU+doZ4FY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849983; c=relaxed/simple; bh=ES225KtuVoJ5i6v6nvtizWVMfFAa5TGb/0Yk5uukEPE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=r9n1ucvtgxKtEyPR6nh9TOBoc8yLc61XTygGwJ5LBI/YsYqUrcRCxuvXQOMO6XlDif/VsPXAU2fs1h/HjtDfbS2aOqxzpFTJrigrEzt8YQUfby1dXapmnS7PdnzTGIVj53rZxbLKI3AjnoTvobjWySiAt2y96xE0eBq5Hw/D2Wc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=n0WHij6j; arc=none smtp.client-ip=209.85.166.50 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="n0WHij6j" Received: by mail-io1-f50.google.com with SMTP id ca18e2360f4ac-7cc0e831e11so170583139f.1 for ; Thu, 11 Apr 2024 08:39:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849980; x=1713454780; 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=+nLu7wpnWOLvM+s2AzprnSTFqRjsfhkfx2fTjpg7ngA=; b=n0WHij6je4wpMpzHb7A5vMzVc1l0h1v5QeJJZNviDy7eK9Xj/SLRKsy5Jyp9jXaVtM LkCSS7Nhbh9dydZQfsXcuBAmUXBOP5uVdsWUyYG0t7cVP5S2x2VlOoSPJphh56hevEJY uAgt0xWaC2QwKYYQw28AktFTaWKgs/ADFoCKRuJLa9fJL2wqdlY2PrlPYmeekvqNhvDs NbTVnZWekg2c7U/kCc5gWQtmzwzphJD8D/9EsubiYP4K+YltzhfrQmlOomMb3SV3KsJM g6HSL3/33Nz9iKsZzmPlbHd1frcGAaxhK9TnqJoB0HNlje4N4Q7HtOFbFV2tPGkD4pO/ MILw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849980; x=1713454780; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=+nLu7wpnWOLvM+s2AzprnSTFqRjsfhkfx2fTjpg7ngA=; b=dtq8dCnBcT70KeXT3cVJTGLB93zSDiQnBfW0jqnDMC05go0NcMRmK1OlUOOtqulk5c 9hnEiOSn6V0vpwsMIUcHLsAkPSJVGuu0VeY5MCzzQybyJpWd5kQ7gvNlcC11ppx2BTEm mDtdFIu4n8gA93P5Bd5//jnqQfpXRMVbDCb39hHa5+oJ/WVACcKpP6o74X6JTV31Y1go RjhFIz1f0P1WqvtBzKVns+54xLGEq6jx63DohNeLECja8r45y47gc92q9tUPlFz9VbQK QhGq2/bOJg0obZRSKJjtfbByE4fvKMb5wBXtJHXV+ZIOyTRcWYZ0Zidi4Ogr+Rcjpi6k EwvQ== X-Gm-Message-State: AOJu0Yw8TDqSXaBGG1XnksgOqNLQjp2NDK2lK30bUHpGHBDcAQ2GyAMd eU+tgfNh4+mheIPYNp6/j4HSfAkEe6ct7k0fIz8wpXZ50GcP1eVPD15Y+PlWFLWU4+3+PmJC7K9 X X-Google-Smtp-Source: AGHT+IFKxP68b1/qavwsvg18NGRRbHieEwN3uZfjp4zvWzZzKwO/J4I5ASD4jVp8a+UNEuY2tJWbLQ== X-Received: by 2002:a92:d352:0:b0:36a:1275:4aeb with SMTP id a18-20020a92d352000000b0036a12754aebmr5890513ilh.1.1712849980225; Thu, 11 Apr 2024 08:39:40 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.39.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:39:39 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 290/437] fs/ocfs2: convert to read/write iterators Date: Thu, 11 Apr 2024 09:17:10 -0600 Message-ID: <20240411153126.16201-291-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- fs/ocfs2/cluster/netdebug.c | 11 ++++++----- fs/ocfs2/dlmfs/dlmfs.c | 38 +++++++++++++++++-------------------- 2 files changed, 23 insertions(+), 26 deletions(-) diff --git a/fs/ocfs2/cluster/netdebug.c b/fs/ocfs2/cluster/netdebug.c index fde10358c8ee..877955f35aef 100644 --- a/fs/ocfs2/cluster/netdebug.c +++ b/fs/ocfs2/cluster/netdebug.c @@ -468,17 +468,18 @@ static int o2net_debug_release(struct inode *inode, s= truct file *file) return 0; } =20 -static ssize_t o2net_debug_read(struct file *file, char __user *buf, - size_t nbytes, loff_t *ppos) +static ssize_t o2net_debug_read(struct kiocb *iocb, struct iov_iter *to) { - return simple_read_from_buffer(buf, nbytes, ppos, file->private_data, - i_size_read(file->f_mapping->host)); + struct file *file =3D iocb->ki_filp; + + return simple_copy_to_iter(file->private_data, &iocb->ki_pos, + i_size_read(file->f_mapping->host), to); } =20 static const struct file_operations nodes_fops =3D { .open =3D nodes_fop_open, .release =3D o2net_debug_release, - .read =3D o2net_debug_read, + .read_iter =3D o2net_debug_read, .llseek =3D generic_file_llseek, }; =20 diff --git a/fs/ocfs2/dlmfs/dlmfs.c b/fs/ocfs2/dlmfs/dlmfs.c index 7fc0e920eda7..a13b80cb11f1 100644 --- a/fs/ocfs2/dlmfs/dlmfs.c +++ b/fs/ocfs2/dlmfs/dlmfs.c @@ -28,6 +28,7 @@ #include #include #include +#include =20 #include =20 @@ -219,47 +220,42 @@ static __poll_t dlmfs_file_poll(struct file *file, po= ll_table *wait) return event; } =20 -static ssize_t dlmfs_file_read(struct file *file, - char __user *buf, - size_t count, - loff_t *ppos) +static ssize_t dlmfs_file_read(struct kiocb *iocb, struct iov_iter *to) { char lvb[DLM_LVB_LEN]; =20 - if (!user_dlm_read_lvb(file_inode(file), lvb)) + if (!user_dlm_read_lvb(file_inode(iocb->ki_filp), lvb)) return 0; =20 - return simple_read_from_buffer(buf, count, ppos, lvb, sizeof(lvb)); + return simple_copy_to_iter(lvb, &iocb->ki_pos, sizeof(lvb), to); } =20 -static ssize_t dlmfs_file_write(struct file *filp, - const char __user *buf, - size_t count, - loff_t *ppos) +static ssize_t dlmfs_file_write(struct kiocb *iocb, struct iov_iter *from) { char lvb_buf[DLM_LVB_LEN]; - int bytes_left; - struct inode *inode =3D file_inode(filp); + int copied; + struct inode *inode =3D file_inode(iocb->ki_filp); + size_t count =3D iov_iter_count(from); =20 mlog(0, "inode %lu, count =3D %zu, *ppos =3D %llu\n", - inode->i_ino, count, *ppos); + inode->i_ino, count, iocb->ki_pos); =20 - if (*ppos >=3D DLM_LVB_LEN) + if (iocb->ki_pos >=3D DLM_LVB_LEN) return -ENOSPC; =20 /* don't write past the lvb */ - if (count > DLM_LVB_LEN - *ppos) - count =3D DLM_LVB_LEN - *ppos; + if (count > DLM_LVB_LEN - iocb->ki_pos) + count =3D DLM_LVB_LEN - iocb->ki_pos; =20 if (!count) return 0; =20 - bytes_left =3D copy_from_user(lvb_buf, buf, count); - count -=3D bytes_left; + copied =3D copy_from_iter(lvb_buf, count, from); + count -=3D copied; if (count) user_dlm_write_lvb(inode, lvb_buf, count); =20 - *ppos =3D *ppos + count; + iocb->ki_pos +=3D count; mlog(0, "wrote %zu bytes\n", count); return count; } @@ -525,8 +521,8 @@ static const struct file_operations dlmfs_file_operatio= ns =3D { .open =3D dlmfs_file_open, .release =3D dlmfs_file_release, .poll =3D dlmfs_file_poll, - .read =3D dlmfs_file_read, - .write =3D dlmfs_file_write, + .read_iter =3D dlmfs_file_read, + .write_iter =3D dlmfs_file_write, .llseek =3D default_llseek, }; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-il1-f177.google.com (mail-il1-f177.google.com [209.85.166.177]) (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 E971A1D370B for ; Thu, 11 Apr 2024 15:39:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.177 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849987; cv=none; b=PC8I2WqsM1p0DFQzyEKLDOskXOEv6UKx0mFJupxjTjdzeoun812whXSRp6Dfbg0G0mP3se/iEhr8bvpO3JCoik2il5RF9Q7134NW7hFHkU9IV+dI7wETPCEeP7vvtABlpEWPgUAQWiniEonKH3MyEDlOPAMShEOQB+03/HLshJo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849987; c=relaxed/simple; bh=JEwIyhrb4B8Cd4P3gfUy6BSaexYaYBtcvRp4BZDhVh8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Wp4UkqhIV3x5tGQdl4C14Da417Joh3TFJLNHPpHsXt2FYg9KQwGqOW5iTbKz9beh30ZJBSFA1N7f1KXe6FW9Yvda4yHJyyBUPoTrgRmwCEMeeTxEBHWhglyqODzSSYku4Og+BzWIFebr0QpMtJeK14ixa1nR9ATelx4VS1P+b0w= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=YwVB9E41; arc=none smtp.client-ip=209.85.166.177 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="YwVB9E41" Received: by mail-il1-f177.google.com with SMTP id e9e14a558f8ab-36a34b68277so116875ab.0 for ; Thu, 11 Apr 2024 08:39:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849983; x=1713454783; 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=mwr1GPSeZp0pZoSE/EKWdcZh0vh8v5dKr9MrE/elW1Y=; b=YwVB9E412SdDCsaC6PZuz0RsQmG+pWlpJYJsjnm+mKhNY5lYcj2MEhIdbnQ08e8yqM moqi2IGcXs2xF0VBZyUgI+rSVVJwF6MAaojQU/NAC88EhCkrpYtA2D288waMtuHouQ47 gyrOYsQ9cqGsRZGeFEYB0fTcv0tTwkQrZG8wg7dr+yRKxSVq78W/Hosn3CvXvtEuBbR1 SKEw6c9hw1WP32EayKfolObIcgAglElIrq4jz4bMTVWGS8X0gcL8N/NJS0zrt+blTMbL ZaaB0fJNLudfMx9khX9WLFqTUh9QLk/SZR4qwBlmyc/fH7Cs0TymvAiW657rEbZE9fGB dgMA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849983; x=1713454783; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=mwr1GPSeZp0pZoSE/EKWdcZh0vh8v5dKr9MrE/elW1Y=; b=DnW+PvFXxajxziZO0KgkCQ2UHHt2/kQEVEpqDHLo1geRzX6Xw5YNeWDfOf5yzq+m4q 4owowEgZboEt5nTOqt8h/KLc+qAu2ad7J+voij7+7SO+YOX9itPl2kQ4hqyZQFAKZPa0 7LWI9tEEARw/y6in77zn3+tNLcLg6HdddYtkpd1zllk55hjFxvdUrfShApOJx5pgHOtS XiSfRV6/0V2jeNB4tU3l9C71+39Njpf9l5bq9lGqKhOcRqr6p/N47/pAYL4cMjYiKDLU adUUP4yI2epR3lhj27/1RL7yFHAuZe+0ai4dDbQvy4KeVvDlmkGAaoE0um05npKua4u9 7GNw== X-Gm-Message-State: AOJu0Ywk1gj5z+Pzl+Zqe4sifk8YI4FHsuipigsXb0uCnbULQgEFqi7q MT0ATHi5BNKvEJtCz2XLvGkkvmkfJVVnwvcHc9ve8ahgrdxRS0g0pc7dd9xGk1tMDF3unF17nQU 1 X-Google-Smtp-Source: AGHT+IHDVyjlOOFDURMMfBAsRqBh3DkIfNQnR2+QmQbTCQBCqsR0uUxeefJ/nOi5jUgJQGsgxE/2CA== X-Received: by 2002:a6b:6605:0:b0:7d4:1dae:da1a with SMTP id a5-20020a6b6605000000b007d41daeda1amr157399ioc.2.1712849983189; Thu, 11 Apr 2024 08:39:43 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.39.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:39:40 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 291/437] drivers/net/wireless/marvell: convert to read/write iterators Date: Thu, 11 Apr 2024 09:17:11 -0600 Message-ID: <20240411153126.16201-292-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- .../net/wireless/marvell/libertas/debugfs.c | 242 +++++++----------- .../net/wireless/marvell/mwifiex/debugfs.c | 183 ++++++------- 2 files changed, 172 insertions(+), 253 deletions(-) diff --git a/drivers/net/wireless/marvell/libertas/debugfs.c b/drivers/net/= wireless/marvell/libertas/debugfs.c index c604613ab506..0a5a2084b0d6 100644 --- a/drivers/net/wireless/marvell/libertas/debugfs.c +++ b/drivers/net/wireless/marvell/libertas/debugfs.c @@ -22,18 +22,16 @@ static char *szStates[] =3D { static void lbs_debug_init(struct lbs_private *priv); #endif =20 -static ssize_t write_file_dummy(struct file *file, const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t write_file_dummy(struct kiocb *iocb, struct iov_iter *from) { return -EINVAL; } =20 static const size_t len =3D PAGE_SIZE; =20 -static ssize_t lbs_dev_info(struct file *file, char __user *userbuf, - size_t count, loff_t *ppos) +static ssize_t lbs_dev_info(struct kiocb *iocb, struct iov_iter *to) { - struct lbs_private *priv =3D file->private_data; + struct lbs_private *priv =3D iocb->ki_filp->private_data; size_t pos =3D 0; unsigned long addr =3D get_zeroed_page(GFP_KERNEL); char *buf =3D (char *)addr; @@ -46,23 +44,22 @@ static ssize_t lbs_dev_info(struct file *file, char __u= ser *userbuf, pos +=3D snprintf(buf+pos, len-pos, "region_code =3D %02x\n", (u32) priv->regioncode); =20 - res =3D simple_read_from_buffer(userbuf, count, ppos, buf, pos); + res =3D simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); =20 free_page(addr); return res; } =20 -static ssize_t lbs_sleepparams_write(struct file *file, - const char __user *user_buf, size_t count, - loff_t *ppos) +static ssize_t lbs_sleepparams_write(struct kiocb *iocb, struct iov_iter *= from) { - struct lbs_private *priv =3D file->private_data; + struct lbs_private *priv =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); ssize_t ret; struct sleep_params sp; int p1, p2, p3, p4, p5, p6; char *buf; =20 - buf =3D memdup_user_nul(user_buf, min(count, len - 1)); + buf =3D iterdup_nul(from, min(count, len - 1)); if (IS_ERR(buf)) return PTR_ERR(buf); =20 @@ -89,10 +86,9 @@ static ssize_t lbs_sleepparams_write(struct file *file, return ret; } =20 -static ssize_t lbs_sleepparams_read(struct file *file, char __user *userbu= f, - size_t count, loff_t *ppos) +static ssize_t lbs_sleepparams_read(struct kiocb *iocb, struct iov_iter *t= o) { - struct lbs_private *priv =3D file->private_data; + struct lbs_private *priv =3D iocb->ki_filp->private_data; ssize_t ret; size_t pos =3D 0; struct sleep_params sp; @@ -110,23 +106,22 @@ static ssize_t lbs_sleepparams_read(struct file *file= , char __user *userbuf, sp.sp_calcontrol, sp.sp_extsleepclk, sp.sp_reserved); =20 - ret =3D simple_read_from_buffer(userbuf, count, ppos, buf, pos); + ret =3D simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); =20 out_unlock: free_page(addr); return ret; } =20 -static ssize_t lbs_host_sleep_write(struct file *file, - const char __user *user_buf, size_t count, - loff_t *ppos) +static ssize_t lbs_host_sleep_write(struct kiocb *iocb, struct iov_iter *f= rom) { - struct lbs_private *priv =3D file->private_data; + struct lbs_private *priv =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); ssize_t ret; int host_sleep; char *buf; =20 - buf =3D memdup_user_nul(user_buf, min(count, len - 1)); + buf =3D iterdup_nul(from, min(count, len - 1)); if (IS_ERR(buf)) return PTR_ERR(buf); =20 @@ -159,10 +154,9 @@ static ssize_t lbs_host_sleep_write(struct file *file, return ret; } =20 -static ssize_t lbs_host_sleep_read(struct file *file, char __user *userbuf, - size_t count, loff_t *ppos) +static ssize_t lbs_host_sleep_read(struct kiocb *iocb, struct iov_iter *to) { - struct lbs_private *priv =3D file->private_data; + struct lbs_private *priv =3D iocb->ki_filp->private_data; ssize_t ret; size_t pos =3D 0; unsigned long addr =3D get_zeroed_page(GFP_KERNEL); @@ -172,7 +166,7 @@ static ssize_t lbs_host_sleep_read(struct file *file, c= har __user *userbuf, =20 pos +=3D snprintf(buf, len, "%d\n", priv->is_host_sleep_activated); =20 - ret =3D simple_read_from_buffer(userbuf, count, ppos, buf, pos); + ret =3D simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); =20 free_page(addr); return ret; @@ -215,12 +209,11 @@ static void *lbs_tlv_find(uint16_t tlv_type, const ui= nt8_t *tlv, uint16_t size) =20 =20 static ssize_t lbs_threshold_read(uint16_t tlv_type, uint16_t event_mask, - struct file *file, char __user *userbuf, - size_t count, loff_t *ppos) + struct kiocb *iocb, struct iov_iter *to) { struct cmd_ds_802_11_subscribe_event *subscribed; struct mrvl_ie_thresholds *got; - struct lbs_private *priv =3D file->private_data; + struct lbs_private *priv =3D iocb->ki_filp->private_data; ssize_t ret =3D 0; size_t pos =3D 0; char *buf; @@ -255,7 +248,7 @@ static ssize_t lbs_threshold_read(uint16_t tlv_type, ui= nt16_t event_mask, !!(events & event_mask)); } =20 - ret =3D simple_read_from_buffer(userbuf, count, ppos, buf, pos); + ret =3D simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); =20 out_cmd: kfree(subscribed); @@ -267,19 +260,18 @@ static ssize_t lbs_threshold_read(uint16_t tlv_type, = uint16_t event_mask, =20 =20 static ssize_t lbs_threshold_write(uint16_t tlv_type, uint16_t event_mask, - struct file *file, - const char __user *userbuf, size_t count, - loff_t *ppos) + struct kiocb *iocb, struct iov_iter *from) { struct cmd_ds_802_11_subscribe_event *events; struct mrvl_ie_thresholds *tlv; - struct lbs_private *priv =3D file->private_data; + struct lbs_private *priv =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); int value, freq, new_mask; uint16_t curr_mask; char *buf; int ret; =20 - buf =3D memdup_user_nul(userbuf, min(count, len - 1)); + buf =3D iterdup_nul(from, min(count, len - 1)); if (IS_ERR(buf)) return PTR_ERR(buf); =20 @@ -335,105 +327,81 @@ static ssize_t lbs_threshold_write(uint16_t tlv_type= , uint16_t event_mask, } =20 =20 -static ssize_t lbs_lowrssi_read(struct file *file, char __user *userbuf, - size_t count, loff_t *ppos) +static ssize_t lbs_lowrssi_read(struct kiocb *iocb, struct iov_iter *to) { return lbs_threshold_read(TLV_TYPE_RSSI_LOW, CMD_SUBSCRIBE_RSSI_LOW, - file, userbuf, count, ppos); + iocb, to); } =20 - -static ssize_t lbs_lowrssi_write(struct file *file, const char __user *use= rbuf, - size_t count, loff_t *ppos) +static ssize_t lbs_lowrssi_write(struct kiocb *iocb, struct iov_iter *from) { return lbs_threshold_write(TLV_TYPE_RSSI_LOW, CMD_SUBSCRIBE_RSSI_LOW, - file, userbuf, count, ppos); + iocb, from); } =20 - -static ssize_t lbs_lowsnr_read(struct file *file, char __user *userbuf, - size_t count, loff_t *ppos) +static ssize_t lbs_lowsnr_read(struct kiocb *iocb, struct iov_iter *to) { return lbs_threshold_read(TLV_TYPE_SNR_LOW, CMD_SUBSCRIBE_SNR_LOW, - file, userbuf, count, ppos); + iocb, to); } =20 - -static ssize_t lbs_lowsnr_write(struct file *file, const char __user *user= buf, - size_t count, loff_t *ppos) +static ssize_t lbs_lowsnr_write(struct kiocb *iocb, struct iov_iter *from) { return lbs_threshold_write(TLV_TYPE_SNR_LOW, CMD_SUBSCRIBE_SNR_LOW, - file, userbuf, count, ppos); + iocb, from); } =20 - -static ssize_t lbs_failcount_read(struct file *file, char __user *userbuf, - size_t count, loff_t *ppos) +static ssize_t lbs_failcount_read(struct kiocb *iocb, struct iov_iter *to) { return lbs_threshold_read(TLV_TYPE_FAILCOUNT, CMD_SUBSCRIBE_FAILCOUNT, - file, userbuf, count, ppos); + iocb, to); } =20 - -static ssize_t lbs_failcount_write(struct file *file, const char __user *u= serbuf, - size_t count, loff_t *ppos) +static ssize_t lbs_failcount_write(struct kiocb *iocb, struct iov_iter *fr= om) { return lbs_threshold_write(TLV_TYPE_FAILCOUNT, CMD_SUBSCRIBE_FAILCOUNT, - file, userbuf, count, ppos); + iocb, from); } =20 - -static ssize_t lbs_highrssi_read(struct file *file, char __user *userbuf, - size_t count, loff_t *ppos) +static ssize_t lbs_highrssi_read(struct kiocb *iocb, struct iov_iter *to) { return lbs_threshold_read(TLV_TYPE_RSSI_HIGH, CMD_SUBSCRIBE_RSSI_HIGH, - file, userbuf, count, ppos); + iocb, to); } =20 - -static ssize_t lbs_highrssi_write(struct file *file, const char __user *us= erbuf, - size_t count, loff_t *ppos) +static ssize_t lbs_highrssi_write(struct kiocb *iocb, struct iov_iter *fro= m) { return lbs_threshold_write(TLV_TYPE_RSSI_HIGH, CMD_SUBSCRIBE_RSSI_HIGH, - file, userbuf, count, ppos); + iocb, from); } =20 - -static ssize_t lbs_highsnr_read(struct file *file, char __user *userbuf, - size_t count, loff_t *ppos) +static ssize_t lbs_highsnr_read(struct kiocb *iocb, struct iov_iter *to) { return lbs_threshold_read(TLV_TYPE_SNR_HIGH, CMD_SUBSCRIBE_SNR_HIGH, - file, userbuf, count, ppos); + iocb, to); } =20 - -static ssize_t lbs_highsnr_write(struct file *file, const char __user *use= rbuf, - size_t count, loff_t *ppos) +static ssize_t lbs_highsnr_write(struct kiocb *iocb, struct iov_iter *from) { return lbs_threshold_write(TLV_TYPE_SNR_HIGH, CMD_SUBSCRIBE_SNR_HIGH, - file, userbuf, count, ppos); + iocb, from); } =20 -static ssize_t lbs_bcnmiss_read(struct file *file, char __user *userbuf, - size_t count, loff_t *ppos) +static ssize_t lbs_bcnmiss_read(struct kiocb *iocb, struct iov_iter *to) { return lbs_threshold_read(TLV_TYPE_BCNMISS, CMD_SUBSCRIBE_BCNMISS, - file, userbuf, count, ppos); + iocb, to); } =20 - -static ssize_t lbs_bcnmiss_write(struct file *file, const char __user *use= rbuf, - size_t count, loff_t *ppos) +static ssize_t lbs_bcnmiss_write(struct kiocb *iocb, struct iov_iter *from) { return lbs_threshold_write(TLV_TYPE_BCNMISS, CMD_SUBSCRIBE_BCNMISS, - file, userbuf, count, ppos); + iocb, from); } =20 - -static ssize_t lbs_rdmac_read(struct file *file, char __user *userbuf, - size_t count, loff_t *ppos) +static ssize_t lbs_rdmac_read(struct kiocb *iocb, struct iov_iter *to) { - struct lbs_private *priv =3D file->private_data; + struct lbs_private *priv =3D iocb->ki_filp->private_data; ssize_t pos =3D 0; int ret; unsigned long addr =3D get_zeroed_page(GFP_KERNEL); @@ -448,20 +416,19 @@ static ssize_t lbs_rdmac_read(struct file *file, char= __user *userbuf, if (!ret) { pos =3D snprintf(buf, len, "MAC[0x%x] =3D 0x%08x\n", priv->mac_offset, val); - ret =3D simple_read_from_buffer(userbuf, count, ppos, buf, pos); + ret =3D simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); } free_page(addr); return ret; } =20 -static ssize_t lbs_rdmac_write(struct file *file, - const char __user *userbuf, - size_t count, loff_t *ppos) +static ssize_t lbs_rdmac_write(struct kiocb *iocb, struct iov_iter *from) { - struct lbs_private *priv =3D file->private_data; + struct lbs_private *priv =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); char *buf; =20 - buf =3D memdup_user_nul(userbuf, min(count, len - 1)); + buf =3D iterdup_nul(from, min(count, len - 1)); if (IS_ERR(buf)) return PTR_ERR(buf); =20 @@ -470,17 +437,15 @@ static ssize_t lbs_rdmac_write(struct file *file, return count; } =20 -static ssize_t lbs_wrmac_write(struct file *file, - const char __user *userbuf, - size_t count, loff_t *ppos) +static ssize_t lbs_wrmac_write(struct kiocb *iocb, struct iov_iter *from) { - - struct lbs_private *priv =3D file->private_data; + struct lbs_private *priv =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); ssize_t res; u32 offset, value; char *buf; =20 - buf =3D memdup_user_nul(userbuf, min(count, len - 1)); + buf =3D iterdup_nul(from, min(count, len - 1)); if (IS_ERR(buf)) return PTR_ERR(buf); =20 @@ -500,10 +465,9 @@ static ssize_t lbs_wrmac_write(struct file *file, return res; } =20 -static ssize_t lbs_rdbbp_read(struct file *file, char __user *userbuf, - size_t count, loff_t *ppos) +static ssize_t lbs_rdbbp_read(struct kiocb *iocb, struct iov_iter *to) { - struct lbs_private *priv =3D file->private_data; + struct lbs_private *priv =3D iocb->ki_filp->private_data; ssize_t pos =3D 0; int ret; unsigned long addr =3D get_zeroed_page(GFP_KERNEL); @@ -518,21 +482,20 @@ static ssize_t lbs_rdbbp_read(struct file *file, char= __user *userbuf, if (!ret) { pos =3D snprintf(buf, len, "BBP[0x%x] =3D 0x%08x\n", priv->bbp_offset, val); - ret =3D simple_read_from_buffer(userbuf, count, ppos, buf, pos); + ret =3D simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); } free_page(addr); =20 return ret; } =20 -static ssize_t lbs_rdbbp_write(struct file *file, - const char __user *userbuf, - size_t count, loff_t *ppos) +static ssize_t lbs_rdbbp_write(struct kiocb *iocb, struct iov_iter *from) { - struct lbs_private *priv =3D file->private_data; + struct lbs_private *priv =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); char *buf; =20 - buf =3D memdup_user_nul(userbuf, min(count, len - 1)); + buf =3D iterdup_nul(from, min(count, len - 1)); if (IS_ERR(buf)) return PTR_ERR(buf); =20 @@ -542,17 +505,15 @@ static ssize_t lbs_rdbbp_write(struct file *file, return count; } =20 -static ssize_t lbs_wrbbp_write(struct file *file, - const char __user *userbuf, - size_t count, loff_t *ppos) +static ssize_t lbs_wrbbp_write(struct kiocb *iocb, struct iov_iter *from) { - - struct lbs_private *priv =3D file->private_data; + struct lbs_private *priv =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); ssize_t res; u32 offset, value; char *buf; =20 - buf =3D memdup_user_nul(userbuf, min(count, len - 1)); + buf =3D iterdup_nul(from, min(count, len - 1)); if (IS_ERR(buf)) return PTR_ERR(buf); =20 @@ -572,10 +533,9 @@ static ssize_t lbs_wrbbp_write(struct file *file, return res; } =20 -static ssize_t lbs_rdrf_read(struct file *file, char __user *userbuf, - size_t count, loff_t *ppos) +static ssize_t lbs_rdrf_read(struct kiocb *iocb, struct iov_iter *to) { - struct lbs_private *priv =3D file->private_data; + struct lbs_private *priv =3D iocb->ki_filp->private_data; ssize_t pos =3D 0; int ret; unsigned long addr =3D get_zeroed_page(GFP_KERNEL); @@ -590,21 +550,20 @@ static ssize_t lbs_rdrf_read(struct file *file, char = __user *userbuf, if (!ret) { pos =3D snprintf(buf, len, "RF[0x%x] =3D 0x%08x\n", priv->rf_offset, val); - ret =3D simple_read_from_buffer(userbuf, count, ppos, buf, pos); + ret =3D simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); } free_page(addr); =20 return ret; } =20 -static ssize_t lbs_rdrf_write(struct file *file, - const char __user *userbuf, - size_t count, loff_t *ppos) +static ssize_t lbs_rdrf_write(struct kiocb *iocb, struct iov_iter *from) { - struct lbs_private *priv =3D file->private_data; + struct lbs_private *priv =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); char *buf; =20 - buf =3D memdup_user_nul(userbuf, min(count, len - 1)); + buf =3D iterdup_nul(from, min(count, len - 1)); if (IS_ERR(buf)) return PTR_ERR(buf); =20 @@ -613,17 +572,15 @@ static ssize_t lbs_rdrf_write(struct file *file, return count; } =20 -static ssize_t lbs_wrrf_write(struct file *file, - const char __user *userbuf, - size_t count, loff_t *ppos) +static ssize_t lbs_wrrf_write(struct kiocb *iocb, struct iov_iter *from) { - - struct lbs_private *priv =3D file->private_data; + struct lbs_private *priv =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); ssize_t res; u32 offset, value; char *buf; =20 - buf =3D memdup_user_nul(userbuf, min(count, len - 1)); + buf =3D iterdup_nul(from, min(count, len - 1)); if (IS_ERR(buf)) return PTR_ERR(buf); =20 @@ -646,8 +603,8 @@ static ssize_t lbs_wrrf_write(struct file *file, #define FOPS(fread, fwrite) { \ .owner =3D THIS_MODULE, \ .open =3D simple_open, \ - .read =3D (fread), \ - .write =3D (fwrite), \ + .read_iter =3D (fread), \ + .write_iter =3D (fwrite), \ .llseek =3D generic_file_llseek, \ } =20 @@ -796,15 +753,12 @@ static int num_of_items =3D ARRAY_SIZE(items); /** * lbs_debugfs_read - proc read function * - * @file: file to read - * @userbuf: pointer to buffer - * @count: number of bytes to read - * @ppos: read data starting position + * @iocb: metadata for IO + * @to: iov_iter to copy to * * returns: amount of data read or negative error code */ -static ssize_t lbs_debugfs_read(struct file *file, char __user *userbuf, - size_t count, loff_t *ppos) +static ssize_t lbs_debugfs_read(struct kiocb *iocb, struct iov_iter *to) { int val =3D 0; size_t pos =3D 0; @@ -819,7 +773,7 @@ static ssize_t lbs_debugfs_read(struct file *file, char= __user *userbuf, =20 p =3D buf; =20 - d =3D file->private_data; + d =3D iocb->ki_filp->private_data; =20 for (i =3D 0; i < num_of_items; i++) { if (d[i].size =3D=3D 1) @@ -834,7 +788,7 @@ static ssize_t lbs_debugfs_read(struct file *file, char= __user *userbuf, pos +=3D sprintf(p + pos, "%s=3D%d\n", d[i].name, val); } =20 - res =3D simple_read_from_buffer(userbuf, count, ppos, p, pos); + res =3D simple_copy_to_iter(p, &iocb->ki_pos, pos, to); =20 free_page(addr); return res; @@ -843,28 +797,26 @@ static ssize_t lbs_debugfs_read(struct file *file, ch= ar __user *userbuf, /** * lbs_debugfs_write - proc write function * - * @f: file pointer - * @buf: pointer to data buffer - * @cnt: data number to write - * @ppos: file position + * @iocb: metadata for IO + * @from: iov_iter to cooy from * * returns: amount of data written */ -static ssize_t lbs_debugfs_write(struct file *f, const char __user *buf, - size_t cnt, loff_t *ppos) +static ssize_t lbs_debugfs_write(struct kiocb *iocb, struct iov_iter *from) { + size_t cnt =3D iov_iter_count(from); int r, i; char *pdata; char *p; char *p0; char *p1; char *p2; - struct debug_data *d =3D f->private_data; + struct debug_data *d =3D iocb->ki_filp->private_data; =20 if (cnt =3D=3D 0) return 0; =20 - pdata =3D memdup_user_nul(buf, cnt); + pdata =3D iterdup_nul(from, cnt); if (IS_ERR(pdata)) return PTR_ERR(pdata); =20 @@ -902,8 +854,8 @@ static ssize_t lbs_debugfs_write(struct file *f, const = char __user *buf, static const struct file_operations lbs_debug_fops =3D { .owner =3D THIS_MODULE, .open =3D simple_open, - .write =3D lbs_debugfs_write, - .read =3D lbs_debugfs_read, + .write_iter =3D lbs_debugfs_write, + .read_iter =3D lbs_debugfs_read, .llseek =3D default_llseek, }; =20 diff --git a/drivers/net/wireless/marvell/mwifiex/debugfs.c b/drivers/net/w= ireless/marvell/mwifiex/debugfs.c index 9deaf59dcb62..ad94780582e2 100644 --- a/drivers/net/wireless/marvell/mwifiex/debugfs.c +++ b/drivers/net/wireless/marvell/mwifiex/debugfs.c @@ -58,12 +58,9 @@ static char *bss_modes[] =3D { * - Multicast count * - Multicast addresses */ -static ssize_t -mwifiex_info_read(struct file *file, char __user *ubuf, - size_t count, loff_t *ppos) +static ssize_t mwifiex_info_read(struct kiocb *iocb, struct iov_iter *to) { - struct mwifiex_private *priv =3D - (struct mwifiex_private *) file->private_data; + struct mwifiex_private *priv =3D iocb->ki_filp->private_data; struct net_device *netdev =3D priv->netdev; struct netdev_hw_addr *ha; struct netdev_queue *txq; @@ -133,8 +130,8 @@ mwifiex_info_read(struct file *file, char __user *ubuf, } p +=3D sprintf(p, "\n"); =20 - ret =3D simple_read_from_buffer(ubuf, count, ppos, (char *) page, - (unsigned long) p - page); + ret =3D simple_copy_to_iter((char *) page, &iocb->ki_pos, + (unsigned long) p - page, to); =20 free_and_exit: free_page(page); @@ -162,12 +159,9 @@ mwifiex_info_read(struct file *file, char __user *ubuf, * - Number of received beacons * - Number of missed beacons */ -static ssize_t -mwifiex_getlog_read(struct file *file, char __user *ubuf, - size_t count, loff_t *ppos) +static ssize_t mwifiex_getlog_read(struct kiocb *iocb, struct iov_iter *to) { - struct mwifiex_private *priv =3D - (struct mwifiex_private *) file->private_data; + struct mwifiex_private *priv =3D iocb->ki_filp->private_data; unsigned long page =3D get_zeroed_page(GFP_KERNEL); char *p =3D (char *) page; ssize_t ret; @@ -220,8 +214,8 @@ mwifiex_getlog_read(struct file *file, char __user *ubu= f, stats.bcn_miss_cnt); =20 =20 - ret =3D simple_read_from_buffer(ubuf, count, ppos, (char *) page, - (unsigned long) p - page); + ret =3D simple_copy_to_iter((char *) page, &iocb->ki_pos, + (unsigned long) p - page, to); =20 free_and_exit: free_page(page); @@ -238,12 +232,9 @@ mwifiex_getlog_read(struct file *file, char __user *ub= uf, * - Receive packet number of each nosie_flr * - Receive packet number of each signal streath */ -static ssize_t -mwifiex_histogram_read(struct file *file, char __user *ubuf, - size_t count, loff_t *ppos) +static ssize_t mwifiex_histogram_read(struct kiocb *iocb, struct iov_iter = *to) { - struct mwifiex_private *priv =3D - (struct mwifiex_private *)file->private_data; + struct mwifiex_private *priv =3D iocb->ki_filp->private_data; ssize_t ret; struct mwifiex_histogram_data *phist_data; int i, value; @@ -309,8 +300,8 @@ mwifiex_histogram_read(struct file *file, char __user *= ubuf, i, value); } =20 - ret =3D simple_read_from_buffer(ubuf, count, ppos, (char *)page, - (unsigned long)p - page); + ret =3D simple_copy_to_iter((char *)page, &iocb->ki_pos, + (unsigned long)p - page, to); =20 free_and_exit: free_page(page); @@ -318,10 +309,9 @@ mwifiex_histogram_read(struct file *file, char __user = *ubuf, } =20 static ssize_t -mwifiex_histogram_write(struct file *file, const char __user *ubuf, - size_t count, loff_t *ppos) +mwifiex_histogram_write(struct kiocb *iocb, struct iov_iter *from) { - struct mwifiex_private *priv =3D (void *)file->private_data; + struct mwifiex_private *priv =3D iocb->ki_filp->private_data; =20 if (priv && priv->hist_data) mwifiex_hist_data_reset(priv); @@ -377,12 +367,9 @@ static struct mwifiex_debug_info info; * - Tx BA stream table (TID, RA) * - Rx reorder table (TID, TA, Start window, Window size, Buffer) */ -static ssize_t -mwifiex_debug_read(struct file *file, char __user *ubuf, - size_t count, loff_t *ppos) +static ssize_t mwifiex_debug_read(struct kiocb *iocb, struct iov_iter *to) { - struct mwifiex_private *priv =3D - (struct mwifiex_private *) file->private_data; + struct mwifiex_private *priv =3D iocb->ki_filp->private_data; unsigned long page =3D get_zeroed_page(GFP_KERNEL); char *p =3D (char *) page; ssize_t ret; @@ -396,8 +383,8 @@ mwifiex_debug_read(struct file *file, char __user *ubuf, =20 p +=3D mwifiex_debug_info_to_buffer(priv, p, &info); =20 - ret =3D simple_read_from_buffer(ubuf, count, ppos, (char *) page, - (unsigned long) p - page); + ret =3D simple_copy_to_iter((char *) page, &iocb->ki_pos, + (unsigned long) p - page, to); =20 free_and_exit: free_page(page); @@ -414,14 +401,14 @@ static u32 saved_reg_type, saved_reg_offset, saved_re= g_value; * This function can be used to write to a register. */ static ssize_t -mwifiex_regrdwr_write(struct file *file, - const char __user *ubuf, size_t count, loff_t *ppos) +mwifiex_regrdwr_write(struct kiocb *iocb, struct iov_iter *from) { char *buf; int ret; u32 reg_type =3D 0, reg_offset =3D 0, reg_value =3D UINT_MAX; + size_t count =3D iov_iter_count(from); =20 - buf =3D memdup_user_nul(ubuf, min(count, (size_t)(PAGE_SIZE - 1))); + buf =3D iterdup_nul(from, min(count, (size_t)(PAGE_SIZE - 1))); if (IS_ERR(buf)) return PTR_ERR(buf); =20 @@ -451,12 +438,9 @@ mwifiex_regrdwr_write(struct file *file, * * This function can be used to read from a register. */ -static ssize_t -mwifiex_regrdwr_read(struct file *file, char __user *ubuf, - size_t count, loff_t *ppos) +static ssize_t mwifiex_regrdwr_read(struct kiocb *iocb, struct iov_iter *t= o) { - struct mwifiex_private *priv =3D - (struct mwifiex_private *) file->private_data; + struct mwifiex_private *priv =3D iocb->ki_filp->private_data; unsigned long addr =3D get_zeroed_page(GFP_KERNEL); char *buf =3D (char *) addr; int pos =3D 0, ret =3D 0; @@ -479,7 +463,7 @@ mwifiex_regrdwr_read(struct file *file, char __user *ub= uf, saved_reg_type, saved_reg_offset, saved_reg_value); =20 - ret =3D simple_read_from_buffer(ubuf, count, ppos, buf, pos); + ret =3D simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); =20 goto done; } @@ -494,7 +478,7 @@ mwifiex_regrdwr_read(struct file *file, char __user *ub= uf, pos +=3D snprintf(buf, PAGE_SIZE, "%u 0x%x 0x%x\n", saved_reg_type, saved_reg_offset, reg_value); =20 - ret =3D simple_read_from_buffer(ubuf, count, ppos, buf, pos); + ret =3D simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); =20 done: free_page(addr); @@ -506,11 +490,9 @@ mwifiex_regrdwr_read(struct file *file, char __user *u= buf, * This function can be used read driver debugging mask value. */ static ssize_t -mwifiex_debug_mask_read(struct file *file, char __user *ubuf, - size_t count, loff_t *ppos) +mwifiex_debug_mask_read(struct kiocb *iocb, struct iov_iter *to) { - struct mwifiex_private *priv =3D - (struct mwifiex_private *)file->private_data; + struct mwifiex_private *priv =3D iocb->ki_filp->private_data; unsigned long page =3D get_zeroed_page(GFP_KERNEL); char *buf =3D (char *)page; size_t ret =3D 0; @@ -521,7 +503,7 @@ mwifiex_debug_mask_read(struct file *file, char __user = *ubuf, =20 pos +=3D snprintf(buf, PAGE_SIZE, "debug mask=3D0x%08x\n", priv->adapter->debug_mask); - ret =3D simple_read_from_buffer(ubuf, count, ppos, buf, pos); + ret =3D simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); =20 free_page(page); return ret; @@ -532,15 +514,15 @@ mwifiex_debug_mask_read(struct file *file, char __use= r *ubuf, * This function can be used read driver debugging mask value. */ static ssize_t -mwifiex_debug_mask_write(struct file *file, const char __user *ubuf, - size_t count, loff_t *ppos) +mwifiex_debug_mask_write(struct kiocb *iocb, struct iov_iter *from) { int ret; unsigned long debug_mask; - struct mwifiex_private *priv =3D (void *)file->private_data; + struct mwifiex_private *priv =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); char *buf; =20 - buf =3D memdup_user_nul(ubuf, min(count, (size_t)(PAGE_SIZE - 1))); + buf =3D iterdup_nul(from, min(count, (size_t)(PAGE_SIZE - 1))); if (IS_ERR(buf)) return PTR_ERR(buf); =20 @@ -559,15 +541,14 @@ mwifiex_debug_mask_write(struct file *file, const cha= r __user *ubuf, /* debugfs verext file write handler. * This function is called when the 'verext' file is opened for write */ -static ssize_t -mwifiex_verext_write(struct file *file, const char __user *ubuf, - size_t count, loff_t *ppos) +static ssize_t mwifiex_verext_write(struct kiocb *iocb, struct iov_iter *f= rom) { int ret; u32 versionstrsel; - struct mwifiex_private *priv =3D (void *)file->private_data; + struct mwifiex_private *priv =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); =20 - ret =3D kstrtou32_from_user(ubuf, count, 10, &versionstrsel); + ret =3D kstrtou32_from_iter(from, count, 10, &versionstrsel); if (ret) return ret; =20 @@ -581,11 +562,9 @@ mwifiex_verext_write(struct file *file, const char __u= ser *ubuf, * This function can be used read driver exteneed verion string. */ static ssize_t -mwifiex_verext_read(struct file *file, char __user *ubuf, - size_t count, loff_t *ppos) +mwifiex_verext_read(struct kiocb *iocb, struct iov_iter *to) { - struct mwifiex_private *priv =3D - (struct mwifiex_private *)file->private_data; + struct mwifiex_private *priv =3D iocb->ki_filp->private_data; char buf[256]; int ret; =20 @@ -593,25 +572,24 @@ mwifiex_verext_read(struct file *file, char __user *u= buf, ret =3D snprintf(buf, sizeof(buf), "version string: %s\n", priv->version_str); =20 - return simple_read_from_buffer(ubuf, count, ppos, buf, ret); + return simple_copy_to_iter(buf, &iocb->ki_pos, ret, to); } =20 /* Proc memrw file write handler. * This function is called when the 'memrw' file is opened for writing * This function can be used to write to a memory location. */ -static ssize_t -mwifiex_memrw_write(struct file *file, const char __user *ubuf, size_t cou= nt, - loff_t *ppos) +static ssize_t mwifiex_memrw_write(struct kiocb *iocb, struct iov_iter *fr= om) { int ret; char cmd; struct mwifiex_ds_mem_rw mem_rw; u16 cmd_action; - struct mwifiex_private *priv =3D (void *)file->private_data; + struct mwifiex_private *priv =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); char *buf; =20 - buf =3D memdup_user_nul(ubuf, min(count, (size_t)(PAGE_SIZE - 1))); + buf =3D iterdup_nul(from, min(count, (size_t)(PAGE_SIZE - 1))); if (IS_ERR(buf)) return PTR_ERR(buf); =20 @@ -647,11 +625,9 @@ mwifiex_memrw_write(struct file *file, const char __us= er *ubuf, size_t count, * This function is called when the 'memrw' file is opened for reading * This function can be used to read from a memory location. */ -static ssize_t -mwifiex_memrw_read(struct file *file, char __user *ubuf, - size_t count, loff_t *ppos) +static ssize_t mwifiex_memrw_read(struct kiocb *iocb, struct iov_iter *to) { - struct mwifiex_private *priv =3D (void *)file->private_data; + struct mwifiex_private *priv =3D iocb->ki_filp->private_data; unsigned long addr =3D get_zeroed_page(GFP_KERNEL); char *buf =3D (char *)addr; int ret, pos =3D 0; @@ -661,7 +637,7 @@ mwifiex_memrw_read(struct file *file, char __user *ubuf, =20 pos +=3D snprintf(buf, PAGE_SIZE, "0x%x 0x%x\n", priv->mem_rw.addr, priv->mem_rw.value); - ret =3D simple_read_from_buffer(ubuf, count, ppos, buf, pos); + ret =3D simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); =20 free_page(addr); return ret; @@ -676,15 +652,14 @@ static u32 saved_offset =3D -1, saved_bytes =3D -1; * * This function can be used to write to a RDEEPROM location. */ -static ssize_t -mwifiex_rdeeprom_write(struct file *file, - const char __user *ubuf, size_t count, loff_t *ppos) +static ssize_t mwifiex_rdeeprom_write(struct kiocb *iocb, struct iov_iter = *from) { char *buf; int ret =3D 0; int offset =3D -1, bytes =3D -1; + size_t count =3D iov_iter_count(from); =20 - buf =3D memdup_user_nul(ubuf, min(count, (size_t)(PAGE_SIZE - 1))); + buf =3D iterdup_nul(from, min(count, (size_t)(PAGE_SIZE - 1))); if (IS_ERR(buf)) return PTR_ERR(buf); =20 @@ -713,12 +688,9 @@ mwifiex_rdeeprom_write(struct file *file, * * This function can be used to read from a RDEEPROM location. */ -static ssize_t -mwifiex_rdeeprom_read(struct file *file, char __user *ubuf, - size_t count, loff_t *ppos) +static ssize_t mwifiex_rdeeprom_read(struct kiocb *iocb, struct iov_iter *= to) { - struct mwifiex_private *priv =3D - (struct mwifiex_private *) file->private_data; + struct mwifiex_private *priv =3D iocb->ki_filp->private_data; unsigned long addr =3D get_zeroed_page(GFP_KERNEL); char *buf =3D (char *) addr; int pos, ret, i; @@ -747,7 +719,7 @@ mwifiex_rdeeprom_read(struct file *file, char __user *u= buf, pos +=3D scnprintf(buf + pos, PAGE_SIZE - pos, "%d ", value[i]); =20 done: - ret =3D simple_read_from_buffer(ubuf, count, ppos, buf, pos); + ret =3D simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); out_free: free_page(addr); return ret; @@ -756,18 +728,17 @@ mwifiex_rdeeprom_read(struct file *file, char __user = *ubuf, /* Proc hscfg file write handler * This function can be used to configure the host sleep parameters. */ -static ssize_t -mwifiex_hscfg_write(struct file *file, const char __user *ubuf, - size_t count, loff_t *ppos) +static ssize_t mwifiex_hscfg_write(struct kiocb *iocb, struct iov_iter *fr= om) { - struct mwifiex_private *priv =3D (void *)file->private_data; + struct mwifiex_private *priv =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); char *buf; int ret, arg_num; struct mwifiex_ds_hs_cfg hscfg; int conditions =3D HS_CFG_COND_DEF; u32 gpio =3D HS_CFG_GPIO_DEF, gap =3D HS_CFG_GAP_DEF; =20 - buf =3D memdup_user_nul(ubuf, min(count, (size_t)(PAGE_SIZE - 1))); + buf =3D iterdup_nul(from, min(count, (size_t)(PAGE_SIZE - 1))); if (IS_ERR(buf)) return PTR_ERR(buf); =20 @@ -815,11 +786,9 @@ mwifiex_hscfg_write(struct file *file, const char __us= er *ubuf, * This function can be used to read host sleep configuration * parameters from driver. */ -static ssize_t -mwifiex_hscfg_read(struct file *file, char __user *ubuf, - size_t count, loff_t *ppos) +static ssize_t mwifiex_hscfg_read(struct kiocb *iocb, struct iov_iter *to) { - struct mwifiex_private *priv =3D (void *)file->private_data; + struct mwifiex_private *priv =3D iocb->ki_filp->private_data; unsigned long addr =3D get_zeroed_page(GFP_KERNEL); char *buf =3D (char *)addr; int pos, ret; @@ -834,17 +803,16 @@ mwifiex_hscfg_read(struct file *file, char __user *ub= uf, pos =3D snprintf(buf, PAGE_SIZE, "%u 0x%x 0x%x\n", hscfg.conditions, hscfg.gpio, hscfg.gap); =20 - ret =3D simple_read_from_buffer(ubuf, count, ppos, buf, pos); + ret =3D simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); =20 free_page(addr); return ret; } =20 -static ssize_t -mwifiex_timeshare_coex_read(struct file *file, char __user *ubuf, - size_t count, loff_t *ppos) +static ssize_t mwifiex_timeshare_coex_read(struct kiocb *iocb, + struct iov_iter *to) { - struct mwifiex_private *priv =3D file->private_data; + struct mwifiex_private *priv =3D iocb->ki_filp->private_data; char buf[3]; bool timeshare_coex; int ret; @@ -859,21 +827,21 @@ mwifiex_timeshare_coex_read(struct file *file, char _= _user *ubuf, return ret; =20 len =3D sprintf(buf, "%d\n", timeshare_coex); - return simple_read_from_buffer(ubuf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 static ssize_t -mwifiex_timeshare_coex_write(struct file *file, const char __user *ubuf, - size_t count, loff_t *ppos) +mwifiex_timeshare_coex_write(struct kiocb *iocb, struct iov_iter *from) { bool timeshare_coex; - struct mwifiex_private *priv =3D file->private_data; + struct mwifiex_private *priv =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); int ret; =20 if (priv->adapter->fw_api_ver !=3D MWIFIEX_FW_V15) return -EOPNOTSUPP; =20 - ret =3D kstrtobool_from_user(ubuf, count, ×hare_coex); + ret =3D kstrtobool_from_iter(from, count, ×hare_coex); if (ret) return ret; =20 @@ -885,16 +853,15 @@ mwifiex_timeshare_coex_write(struct file *file, const= char __user *ubuf, return count; } =20 -static ssize_t -mwifiex_reset_write(struct file *file, - const char __user *ubuf, size_t count, loff_t *ppos) +static ssize_t mwifiex_reset_write(struct kiocb *iocb, struct iov_iter *fr= om) { - struct mwifiex_private *priv =3D file->private_data; + struct mwifiex_private *priv =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); struct mwifiex_adapter *adapter =3D priv->adapter; bool result; int rc; =20 - rc =3D kstrtobool_from_user(ubuf, count, &result); + rc =3D kstrtobool_from_iter(from, count, &result); if (rc) return rc; =20 @@ -916,20 +883,20 @@ mwifiex_reset_write(struct file *file, =20 #define MWIFIEX_DFS_FILE_OPS(name) \ static const struct file_operations mwifiex_dfs_##name##_fops =3D { \ - .read =3D mwifiex_##name##_read, \ - .write =3D mwifiex_##name##_write, \ + .read_iter =3D mwifiex_##name##_read, \ + .write_iter =3D mwifiex_##name##_write, \ .open =3D simple_open, \ }; =20 #define MWIFIEX_DFS_FILE_READ_OPS(name) \ static const struct file_operations mwifiex_dfs_##name##_fops =3D { \ - .read =3D mwifiex_##name##_read, \ + .read_iter =3D mwifiex_##name##_read, \ .open =3D simple_open, \ }; =20 #define MWIFIEX_DFS_FILE_WRITE_OPS(name) \ static const struct file_operations mwifiex_dfs_##name##_fops =3D { \ - .write =3D mwifiex_##name##_write, \ + .write_iter =3D mwifiex_##name##_write, \ .open =3D simple_open, \ }; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f44.google.com (mail-io1-f44.google.com [209.85.166.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 C57DF1D3715 for ; Thu, 11 Apr 2024 15:39:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849988; cv=none; b=rWx/83FeMnHgsAo25plm/q89nIa+d5NWyNXnA0swK57g1KjtFDAy/EMYruT++fnqH53zs2CT1TvgY1wFiydoSQBtYAkUTk/s7EO6GcKFr/8kD3MvSYSXAX9km6C84c0ZTRBPaSyor20aIfcfzmL88b04/p+X9v/j89n3bwzzjck= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849988; c=relaxed/simple; bh=RXUlDOLuNF/HHMmDhiKlgGCW6A93WhnZ1njUSN+7FP4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=n98WQs4RmrMtDlxKWKTMLG/mGzuJRrppY8F9W2tMX+EUAdzQO+F+7NFABf4rGPXosAatrAiGedgZHhyztEMFxbiyXLHd7J9y2yoZBjRR8+IWS4nPPKk1dVkDw6DtB4MhrAmHBiOsV49yqg+XW1qvZusJVZrbkcFM8SairyixCmw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=kc/WGvPH; arc=none smtp.client-ip=209.85.166.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="kc/WGvPH" Received: by mail-io1-f44.google.com with SMTP id ca18e2360f4ac-7c8e4c0412dso69641939f.1 for ; Thu, 11 Apr 2024 08:39:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849984; x=1713454784; 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=0DfTI2DpINtENEVOMzZkNWy1YEK4tmII71QpZm5OrVg=; b=kc/WGvPH628XPxr1aUtSLtuVryhXSBlsctCxvsOtp2iT4F7xFiqfJKijvrs54CyTP4 maZfCxXeOEcvas6B2IW4gUcvZvV6zesaEYEFDdRV8JOp2Ex1j3tftF0OhYNMzXOH2YuV Q06uiteWWOKnjHZZ+VpCcUCF2XtJ3ZSYkTfIHa08PYwd/cyWUghOlEMsVAoFQbtOiXHY 4ZUPjmjCBfsjkgjvKDUl5NbmZn5xbTs66z5szQmVKB+r+Havj1ypOy3MDzwPy5LIzpe1 yIilQ54Wo8WcNLzVDk9IgVJksI1gQYWI1trpPqhaCvBvkafoXYrNy0yaCWyrXZWvkgpY sndg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849984; x=1713454784; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=0DfTI2DpINtENEVOMzZkNWy1YEK4tmII71QpZm5OrVg=; b=esLRwPAPje6XpB9HouAy42PCQxbLCy8exj0KaaARxrQYR5wVXEXDyE5EIX2s08GAiE PTjIilu+1R9KpYei2obn0Dk9CpnnowgZO8lr4GGWSx5Dxq+JuTw2kfY2GtqWRwCzIgcF bny45GMFTfCO4qXDoiLyAjJsRpUbiaZP28m/G1J8jg5HUSbMGNjpApMl0RKGxJ7MD+vy DdsLIjPtVO8h6FHs7124wqL/9q98FZ6iWkwVquKxDw/lK7zjXw0xzT2zEaen2dP4oQCr Fi6r+UE2Z79x5LztJ57AMHUaHl3SK4xKoy9puibI8cYl3kztgAQZ6SBJKzTH1iqT7t0y L6+g== X-Gm-Message-State: AOJu0Yxy419E2xJGnNyRDubKiZKhbGJGOVTZim+Vfbbd+v+rDFMXyunv TtsZpgS6uOb5OIbKNjsYZSQXBwvmqKlRhxPK0+ihx8YB8MqiyfPUpcJBpmK+piN/xndRM7QRA5m F X-Google-Smtp-Source: AGHT+IEYDUj3JvPKraxejtWRtkJHMkOS7p5ypbE+pOyLK5tsOI8e0rgiKevEx6Pk7wqxWupTA16XVA== X-Received: by 2002:a6b:7b05:0:b0:7d6:60dc:bc8e with SMTP id l5-20020a6b7b05000000b007d660dcbc8emr202278iop.1.1712849984049; Thu, 11 Apr 2024 08:39:44 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.39.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:39:43 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 292/437] fs/proc: convert to read/write iterators Date: Thu, 11 Apr 2024 09:17:12 -0600 Message-ID: <20240411153126.16201-293-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- fs/proc/base.c | 316 ++++++++++++++++----------------- fs/proc/fd.c | 2 +- fs/proc/inode.c | 18 +- fs/proc/task_mmu.c | 37 ++-- fs/proc/task_nommu.c | 2 +- include/linux/user_namespace.h | 10 +- kernel/user_namespace.c | 39 ++-- 7 files changed, 214 insertions(+), 210 deletions(-) diff --git a/fs/proc/base.c b/fs/proc/base.c index 4c6a7aafe66a..d810ede0e399 100644 --- a/fs/proc/base.c +++ b/fs/proc/base.c @@ -373,9 +373,10 @@ static ssize_t proc_pid_cmdline_read(struct file *file= , char __user *buf, *pos +=3D ret; return ret; } +FOPS_READ_ITER_HELPER(proc_pid_cmdline_read); =20 static const struct file_operations proc_pid_cmdline_ops =3D { - .read =3D proc_pid_cmdline_read, + .read_iter =3D proc_pid_cmdline_read_iter, .llseek =3D generic_file_llseek, }; =20 @@ -525,23 +526,22 @@ static int lstats_open(struct inode *inode, struct fi= le *file) return single_open(file, lstats_show_proc, inode); } =20 -static ssize_t lstats_write(struct file *file, const char __user *buf, - size_t count, loff_t *offs) +static ssize_t lstats_write(struct kiocb *iocb, struct iov_iter *from) { - struct task_struct *task =3D get_proc_task(file_inode(file)); + struct task_struct *task =3D get_proc_task(file_inode(iocb->ki_filp)); =20 if (!task) return -ESRCH; clear_tsk_latency_tracing(task); put_task_struct(task); =20 - return count; + return iov_iter_count(from); } =20 static const struct file_operations proc_lstats_operations =3D { .open =3D lstats_open, - .read =3D seq_read, - .write =3D lstats_write, + .read_iter =3D seq_read_iter, + .write_iter =3D lstats_write, .llseek =3D seq_lseek, .release =3D single_release, }; @@ -788,7 +788,7 @@ static int proc_single_open(struct inode *inode, struct= file *filp) =20 static const struct file_operations proc_single_file_operations =3D { .open =3D proc_single_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D single_release, }; @@ -835,11 +835,11 @@ static int mem_open(struct inode *inode, struct file = *file) return ret; } =20 -static ssize_t mem_rw(struct file *file, char __user *buf, - size_t count, loff_t *ppos, int write) +static ssize_t mem_rw(struct kiocb *iocb, struct iov_iter *iov, int write) { - struct mm_struct *mm =3D file->private_data; - unsigned long addr =3D *ppos; + struct mm_struct *mm =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(iov); + unsigned long addr =3D iocb->ki_pos; ssize_t copied; char *page; unsigned int flags; @@ -860,7 +860,7 @@ static ssize_t mem_rw(struct file *file, char __user *b= uf, while (count > 0) { size_t this_len =3D min_t(size_t, count, PAGE_SIZE); =20 - if (write && copy_from_user(page, buf, this_len)) { + if (write && !copy_from_iter_full(page, this_len, iov)) { copied =3D -EFAULT; break; } @@ -872,17 +872,16 @@ static ssize_t mem_rw(struct file *file, char __user = *buf, break; } =20 - if (!write && copy_to_user(buf, page, this_len)) { + if (!write && !copy_to_iter_full(page, this_len, iov)) { copied =3D -EFAULT; break; } =20 - buf +=3D this_len; addr +=3D this_len; copied +=3D this_len; count -=3D this_len; } - *ppos =3D addr; + iocb->ki_pos =3D addr; =20 mmput(mm); free: @@ -890,16 +889,14 @@ static ssize_t mem_rw(struct file *file, char __user = *buf, return copied; } =20 -static ssize_t mem_read(struct file *file, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t mem_read(struct kiocb *iocb, struct iov_iter *to) { - return mem_rw(file, buf, count, ppos, 0); + return mem_rw(iocb, to, 0); } =20 -static ssize_t mem_write(struct file *file, const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t mem_write(struct kiocb *iocb, struct iov_iter *from) { - return mem_rw(file, (char __user*)buf, count, ppos, 1); + return mem_rw(iocb, from, 1); } =20 loff_t mem_lseek(struct file *file, loff_t offset, int orig) @@ -928,8 +925,8 @@ static int mem_release(struct inode *inode, struct file= *file) =20 static const struct file_operations proc_mem_operations =3D { .llseek =3D mem_lseek, - .read =3D mem_read, - .write =3D mem_write, + .read_iter =3D mem_read, + .write_iter =3D mem_write, .open =3D mem_open, .release =3D mem_release, }; @@ -939,13 +936,13 @@ static int environ_open(struct inode *inode, struct f= ile *file) return __mem_open(inode, file, PTRACE_MODE_READ); } =20 -static ssize_t environ_read(struct file *file, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t environ_read(struct kiocb *iocb, struct iov_iter *to) { + size_t count =3D iov_iter_count(to); char *page; - unsigned long src =3D *ppos; + unsigned long src =3D iocb->ki_pos; int ret =3D 0; - struct mm_struct *mm =3D file->private_data; + struct mm_struct *mm =3D iocb->ki_filp->private_data; unsigned long env_start, env_end; =20 /* Ensure the process spawned far enough to have an environment. */ @@ -984,17 +981,16 @@ static ssize_t environ_read(struct file *file, char _= _user *buf, break; } =20 - if (copy_to_user(buf, page, retval)) { + if (!copy_to_iter_full(page, retval, to)) { ret =3D -EFAULT; break; } =20 ret +=3D retval; src +=3D retval; - buf +=3D retval; count -=3D retval; } - *ppos =3D src; + iocb->ki_pos =3D src; mmput(mm); =20 free: @@ -1004,7 +1000,7 @@ static ssize_t environ_read(struct file *file, char _= _user *buf, =20 static const struct file_operations proc_environ_operations =3D { .open =3D environ_open, - .read =3D environ_read, + .read_iter =3D environ_read, .llseek =3D generic_file_llseek, .release =3D mem_release, }; @@ -1014,10 +1010,9 @@ static int auxv_open(struct inode *inode, struct fil= e *file) return __mem_open(inode, file, PTRACE_MODE_READ_FSCREDS); } =20 -static ssize_t auxv_read(struct file *file, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t auxv_read(struct kiocb *iocb, struct iov_iter *to) { - struct mm_struct *mm =3D file->private_data; + struct mm_struct *mm =3D iocb->ki_filp->private_data; unsigned int nwords =3D 0; =20 if (!mm) @@ -1025,21 +1020,20 @@ static ssize_t auxv_read(struct file *file, char __= user *buf, do { nwords +=3D 2; } while (mm->saved_auxv[nwords - 2] !=3D 0); /* AT_NULL */ - return simple_read_from_buffer(buf, count, ppos, mm->saved_auxv, - nwords * sizeof(mm->saved_auxv[0])); + return simple_copy_to_iter(mm->saved_auxv, &iocb->ki_pos, + nwords * sizeof(mm->saved_auxv[0]), to); } =20 static const struct file_operations proc_auxv_operations =3D { .open =3D auxv_open, - .read =3D auxv_read, + .read_iter =3D auxv_read, .llseek =3D generic_file_llseek, .release =3D mem_release, }; =20 -static ssize_t oom_adj_read(struct file *file, char __user *buf, size_t co= unt, - loff_t *ppos) +static ssize_t oom_adj_read(struct kiocb *iocb, struct iov_iter *to) { - struct task_struct *task =3D get_proc_task(file_inode(file)); + struct task_struct *task =3D get_proc_task(file_inode(iocb->ki_filp)); char buffer[PROC_NUMBUF]; int oom_adj =3D OOM_ADJUST_MIN; size_t len; @@ -1055,7 +1049,7 @@ static ssize_t oom_adj_read(struct file *file, char _= _user *buf, size_t count, if (oom_adj > OOM_ADJUST_MAX) oom_adj =3D OOM_ADJUST_MAX; len =3D snprintf(buffer, sizeof(buffer), "%d\n", oom_adj); - return simple_read_from_buffer(buf, count, ppos, buffer, len); + return simple_copy_to_iter(buffer, &iocb->ki_pos, len, to); } =20 static int __set_oom_adj(struct file *file, int oom_adj, bool legacy) @@ -1151,16 +1145,16 @@ static int __set_oom_adj(struct file *file, int oom= _adj, bool legacy) * * oom_adj cannot be removed since existing userspace binaries use it. */ -static ssize_t oom_adj_write(struct file *file, const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t oom_adj_write(struct kiocb *iocb, struct iov_iter *from) { + size_t count =3D iov_iter_count(from); char buffer[PROC_NUMBUF] =3D {}; int oom_adj; int err; =20 if (count > sizeof(buffer) - 1) count =3D sizeof(buffer) - 1; - if (copy_from_user(buffer, buf, count)) { + if (!copy_from_iter_full(buffer, count, from)) { err =3D -EFAULT; goto out; } @@ -1183,21 +1177,20 @@ static ssize_t oom_adj_write(struct file *file, con= st char __user *buf, else oom_adj =3D (oom_adj * OOM_SCORE_ADJ_MAX) / -OOM_DISABLE; =20 - err =3D __set_oom_adj(file, oom_adj, true); + err =3D __set_oom_adj(iocb->ki_filp, oom_adj, true); out: return err < 0 ? err : count; } =20 static const struct file_operations proc_oom_adj_operations =3D { - .read =3D oom_adj_read, - .write =3D oom_adj_write, + .read_iter =3D oom_adj_read, + .write_iter =3D oom_adj_write, .llseek =3D generic_file_llseek, }; =20 -static ssize_t oom_score_adj_read(struct file *file, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t oom_score_adj_read(struct kiocb *iocb, struct iov_iter *to) { - struct task_struct *task =3D get_proc_task(file_inode(file)); + struct task_struct *task =3D get_proc_task(file_inode(iocb->ki_filp)); char buffer[PROC_NUMBUF]; short oom_score_adj =3D OOM_SCORE_ADJ_MIN; size_t len; @@ -1207,19 +1200,19 @@ static ssize_t oom_score_adj_read(struct file *file= , char __user *buf, oom_score_adj =3D task->signal->oom_score_adj; put_task_struct(task); len =3D snprintf(buffer, sizeof(buffer), "%hd\n", oom_score_adj); - return simple_read_from_buffer(buf, count, ppos, buffer, len); + return simple_copy_to_iter(buffer, &iocb->ki_pos, len, to); } =20 -static ssize_t oom_score_adj_write(struct file *file, const char __user *b= uf, - size_t count, loff_t *ppos) +static ssize_t oom_score_adj_write(struct kiocb *iocb, struct iov_iter *fr= om) { + size_t count =3D iov_iter_count(from); char buffer[PROC_NUMBUF] =3D {}; int oom_score_adj; int err; =20 if (count > sizeof(buffer) - 1) count =3D sizeof(buffer) - 1; - if (copy_from_user(buffer, buf, count)) { + if (!copy_from_iter_full(buffer, count, from)) { err =3D -EFAULT; goto out; } @@ -1233,23 +1226,22 @@ static ssize_t oom_score_adj_write(struct file *fil= e, const char __user *buf, goto out; } =20 - err =3D __set_oom_adj(file, oom_score_adj, false); + err =3D __set_oom_adj(iocb->ki_filp, oom_score_adj, false); out: return err < 0 ? err : count; } =20 static const struct file_operations proc_oom_score_adj_operations =3D { - .read =3D oom_score_adj_read, - .write =3D oom_score_adj_write, + .read_iter =3D oom_score_adj_read, + .write_iter =3D oom_score_adj_write, .llseek =3D default_llseek, }; =20 #ifdef CONFIG_AUDIT #define TMPBUFLEN 11 -static ssize_t proc_loginuid_read(struct file * file, char __user * buf, - size_t count, loff_t *ppos) +static ssize_t proc_loginuid_read(struct kiocb *iocb, struct iov_iter *to) { - struct inode * inode =3D file_inode(file); + struct inode * inode =3D file_inode(iocb->ki_filp); struct task_struct *task =3D get_proc_task(inode); ssize_t length; char tmpbuf[TMPBUFLEN]; @@ -1257,16 +1249,16 @@ static ssize_t proc_loginuid_read(struct file * fil= e, char __user * buf, if (!task) return -ESRCH; length =3D scnprintf(tmpbuf, TMPBUFLEN, "%u", - from_kuid(file->f_cred->user_ns, + from_kuid(iocb->ki_filp->f_cred->user_ns, audit_get_loginuid(task))); put_task_struct(task); - return simple_read_from_buffer(buf, count, ppos, tmpbuf, length); + return simple_copy_to_iter(tmpbuf, &iocb->ki_pos, length, to); } =20 -static ssize_t proc_loginuid_write(struct file * file, const char __user *= buf, - size_t count, loff_t *ppos) +static ssize_t proc_loginuid_write(struct kiocb *iocb, struct iov_iter *fr= om) { - struct inode * inode =3D file_inode(file); + struct inode * inode =3D file_inode(iocb->ki_filp); + size_t count =3D iov_iter_count(from); uid_t loginuid; kuid_t kloginuid; int rv; @@ -1282,12 +1274,12 @@ static ssize_t proc_loginuid_write(struct file * fi= le, const char __user * buf, } rcu_read_unlock(); =20 - if (*ppos !=3D 0) { + if (iocb->ki_pos !=3D 0) { /* No partial writes. */ return -EINVAL; } =20 - rv =3D kstrtou32_from_user(buf, count, 10, &loginuid); + rv =3D kstrtou32_from_iter(from, count, 10, &loginuid); if (rv < 0) return rv; =20 @@ -1295,7 +1287,7 @@ static ssize_t proc_loginuid_write(struct file * file= , const char __user * buf, if (loginuid =3D=3D AUDIT_UID_UNSET) { kloginuid =3D INVALID_UID; } else { - kloginuid =3D make_kuid(file->f_cred->user_ns, loginuid); + kloginuid =3D make_kuid(iocb->ki_filp->f_cred->user_ns, loginuid); if (!uid_valid(kloginuid)) return -EINVAL; } @@ -1307,15 +1299,14 @@ static ssize_t proc_loginuid_write(struct file * fi= le, const char __user * buf, } =20 static const struct file_operations proc_loginuid_operations =3D { - .read =3D proc_loginuid_read, - .write =3D proc_loginuid_write, + .read_iter =3D proc_loginuid_read, + .write_iter =3D proc_loginuid_write, .llseek =3D generic_file_llseek, }; =20 -static ssize_t proc_sessionid_read(struct file * file, char __user * buf, - size_t count, loff_t *ppos) +static ssize_t proc_sessionid_read(struct kiocb *iocb, struct iov_iter *to) { - struct inode * inode =3D file_inode(file); + struct inode * inode =3D file_inode(iocb->ki_filp); struct task_struct *task =3D get_proc_task(inode); ssize_t length; char tmpbuf[TMPBUFLEN]; @@ -1325,20 +1316,19 @@ static ssize_t proc_sessionid_read(struct file * fi= le, char __user * buf, length =3D scnprintf(tmpbuf, TMPBUFLEN, "%u", audit_get_sessionid(task)); put_task_struct(task); - return simple_read_from_buffer(buf, count, ppos, tmpbuf, length); + return simple_copy_to_iter(tmpbuf, &iocb->ki_pos, length, to); } =20 static const struct file_operations proc_sessionid_operations =3D { - .read =3D proc_sessionid_read, + .read_iter =3D proc_sessionid_read, .llseek =3D generic_file_llseek, }; #endif =20 #ifdef CONFIG_FAULT_INJECTION -static ssize_t proc_fault_inject_read(struct file * file, char __user * bu= f, - size_t count, loff_t *ppos) +static ssize_t proc_fault_inject_read(struct kiocb *iocb, struct iov_iter = *to) { - struct task_struct *task =3D get_proc_task(file_inode(file)); + struct task_struct *task =3D get_proc_task(file_inode(iocb->ki_filp)); char buffer[PROC_NUMBUF]; size_t len; int make_it_fail; @@ -1349,13 +1339,12 @@ static ssize_t proc_fault_inject_read(struct file *= file, char __user * buf, put_task_struct(task); =20 len =3D snprintf(buffer, sizeof(buffer), "%i\n", make_it_fail); - - return simple_read_from_buffer(buf, count, ppos, buffer, len); + return simple_copy_to_iter(buffer, &iocb->ki_pos, len, to); } =20 -static ssize_t proc_fault_inject_write(struct file * file, - const char __user * buf, size_t count, loff_t *ppos) +static ssize_t proc_fault_inject_write(struct kiocb *iocb, struct iov_iter= *from) { + size_t count =3D iov_iter_count(from); struct task_struct *task; char buffer[PROC_NUMBUF] =3D {}; int make_it_fail; @@ -1366,7 +1355,7 @@ static ssize_t proc_fault_inject_write(struct file * = file, =20 if (count > sizeof(buffer) - 1) count =3D sizeof(buffer) - 1; - if (copy_from_user(buffer, buf, count)) + if (!copy_from_iter_full(buffer, count, from)) return -EFAULT; rv =3D kstrtoint(strstrip(buffer), 0, &make_it_fail); if (rv < 0) @@ -1374,7 +1363,7 @@ static ssize_t proc_fault_inject_write(struct file * = file, if (make_it_fail < 0 || make_it_fail > 1) return -EINVAL; =20 - task =3D get_proc_task(file_inode(file)); + task =3D get_proc_task(file_inode(iocb->ki_filp)); if (!task) return -ESRCH; task->make_it_fail =3D make_it_fail; @@ -1384,23 +1373,23 @@ static ssize_t proc_fault_inject_write(struct file = * file, } =20 static const struct file_operations proc_fault_inject_operations =3D { - .read =3D proc_fault_inject_read, - .write =3D proc_fault_inject_write, + .read_iter =3D proc_fault_inject_read, + .write_iter =3D proc_fault_inject_write, .llseek =3D generic_file_llseek, }; =20 -static ssize_t proc_fail_nth_write(struct file *file, const char __user *b= uf, - size_t count, loff_t *ppos) +static ssize_t proc_fail_nth_write(struct kiocb *iocb, struct iov_iter *fr= om) { + size_t count =3D iov_iter_count(from); struct task_struct *task; int err; unsigned int n; =20 - err =3D kstrtouint_from_user(buf, count, 0, &n); + err =3D kstrtouint_from_iter(from, count, 0, &n); if (err) return err; =20 - task =3D get_proc_task(file_inode(file)); + task =3D get_proc_task(file_inode(iocb->ki_filp)); if (!task) return -ESRCH; task->fail_nth =3D n; @@ -1409,24 +1398,23 @@ static ssize_t proc_fail_nth_write(struct file *fil= e, const char __user *buf, return count; } =20 -static ssize_t proc_fail_nth_read(struct file *file, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t proc_fail_nth_read(struct kiocb *iocb, struct iov_iter *to) { struct task_struct *task; char numbuf[PROC_NUMBUF]; ssize_t len; =20 - task =3D get_proc_task(file_inode(file)); + task =3D get_proc_task(file_inode(iocb->ki_filp)); if (!task) return -ESRCH; len =3D snprintf(numbuf, sizeof(numbuf), "%u\n", task->fail_nth); put_task_struct(task); - return simple_read_from_buffer(buf, count, ppos, numbuf, len); + return simple_copy_to_iter(numbuf, &iocb->ki_pos, len, to); } =20 static const struct file_operations proc_fail_nth_operations =3D { - .read =3D proc_fail_nth_read, - .write =3D proc_fail_nth_write, + .read_iter =3D proc_fail_nth_read, + .write_iter =3D proc_fail_nth_write, }; #endif =20 @@ -1451,11 +1439,9 @@ static int sched_show(struct seq_file *m, void *v) return 0; } =20 -static ssize_t -sched_write(struct file *file, const char __user *buf, - size_t count, loff_t *offset) +static ssize_t sched_write(struct kiocb *iocb, struct iov_iter *from) { - struct inode *inode =3D file_inode(file); + struct inode *inode =3D file_inode(iocb->ki_filp); struct task_struct *p; =20 p =3D get_proc_task(inode); @@ -1465,7 +1451,7 @@ sched_write(struct file *file, const char __user *buf, =20 put_task_struct(p); =20 - return count; + return iov_iter_count(from); } =20 static int sched_open(struct inode *inode, struct file *filp) @@ -1475,8 +1461,8 @@ static int sched_open(struct inode *inode, struct fil= e *filp) =20 static const struct file_operations proc_pid_sched_operations =3D { .open =3D sched_open, - .read =3D seq_read, - .write =3D sched_write, + .read_iter =3D seq_read_iter, + .write_iter =3D sched_write, .llseek =3D seq_lseek, .release =3D single_release, }; @@ -1502,11 +1488,10 @@ static int sched_autogroup_show(struct seq_file *m,= void *v) return 0; } =20 -static ssize_t -sched_autogroup_write(struct file *file, const char __user *buf, - size_t count, loff_t *offset) +static ssize_t sched_autogroup_write(struct kiocb *iocb, struct iov_iter *= from) { - struct inode *inode =3D file_inode(file); + struct inode *inode =3D file_inode(iocb->ki_filp); + size_t count =3D iov_iter_count(from); struct task_struct *p; char buffer[PROC_NUMBUF] =3D {}; int nice; @@ -1514,7 +1499,7 @@ sched_autogroup_write(struct file *file, const char _= _user *buf, =20 if (count > sizeof(buffer) - 1) count =3D sizeof(buffer) - 1; - if (copy_from_user(buffer, buf, count)) + if (!copy_from_iter_full(buffer, count, from)) return -EFAULT; =20 err =3D kstrtoint(strstrip(buffer), 0, &nice); @@ -1549,8 +1534,8 @@ static int sched_autogroup_open(struct inode *inode, = struct file *filp) =20 static const struct file_operations proc_pid_sched_autogroup_operations = =3D { .open =3D sched_autogroup_open, - .read =3D seq_read, - .write =3D sched_autogroup_write, + .read_iter =3D seq_read_iter, + .write_iter =3D sched_autogroup_write, .llseek =3D seq_lseek, .release =3D single_release, }; @@ -1572,21 +1557,21 @@ static int timens_offsets_show(struct seq_file *m, = void *v) return 0; } =20 -static ssize_t timens_offsets_write(struct file *file, const char __user *= buf, - size_t count, loff_t *ppos) +static ssize_t timens_offsets_write(struct kiocb *iocb, struct iov_iter *f= rom) { - struct inode *inode =3D file_inode(file); + struct inode *inode =3D file_inode(iocb->ki_filp); + size_t count =3D iov_iter_count(from); struct proc_timens_offset offsets[2]; char *kbuf =3D NULL, *pos, *next_line; struct task_struct *p; int ret, noffsets; =20 /* Only allow < page size writes at the beginning of the file */ - if ((*ppos !=3D 0) || (count >=3D PAGE_SIZE)) + if ((iocb->ki_pos !=3D 0) || (count >=3D PAGE_SIZE)) return -EINVAL; =20 /* Slurp in the user data */ - kbuf =3D memdup_user_nul(buf, count); + kbuf =3D iterdup_nul(from, count); if (IS_ERR(kbuf)) return PTR_ERR(kbuf); =20 @@ -1634,7 +1619,7 @@ static ssize_t timens_offsets_write(struct file *file= , const char __user *buf, p =3D get_proc_task(inode); if (!p) goto out; - ret =3D proc_timens_set_offset(file, p, offsets, noffsets); + ret =3D proc_timens_set_offset(iocb->ki_filp, p, offsets, noffsets); put_task_struct(p); if (ret) goto out; @@ -1652,22 +1637,22 @@ static int timens_offsets_open(struct inode *inode,= struct file *filp) =20 static const struct file_operations proc_timens_offsets_operations =3D { .open =3D timens_offsets_open, - .read =3D seq_read, - .write =3D timens_offsets_write, + .read_iter =3D seq_read_iter, + .write_iter =3D timens_offsets_write, .llseek =3D seq_lseek, .release =3D single_release, }; #endif /* CONFIG_TIME_NS */ =20 -static ssize_t comm_write(struct file *file, const char __user *buf, - size_t count, loff_t *offset) +static ssize_t comm_write(struct kiocb *iocb, struct iov_iter *from) { - struct inode *inode =3D file_inode(file); + struct inode *inode =3D file_inode(iocb->ki_filp); + size_t count =3D iov_iter_count(from); struct task_struct *p; char buffer[TASK_COMM_LEN] =3D {}; const size_t maxlen =3D sizeof(buffer) - 1; =20 - if (copy_from_user(buffer, buf, count > maxlen ? maxlen : count)) + if (!copy_from_iter_full(buffer, count > maxlen ? maxlen : count, from)) return -EFAULT; =20 p =3D get_proc_task(inode); @@ -1710,8 +1695,8 @@ static int comm_open(struct inode *inode, struct file= *filp) =20 static const struct file_operations proc_pid_set_comm_operations =3D { .open =3D comm_open, - .read =3D seq_read, - .write =3D comm_write, + .read_iter =3D seq_read_iter, + .write_iter =3D comm_write, .llseek =3D seq_lseek, .release =3D single_release, }; @@ -2530,21 +2515,21 @@ static int proc_timers_open(struct inode *inode, st= ruct file *file) =20 static const struct file_operations proc_timers_operations =3D { .open =3D proc_timers_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D seq_release_private, }; #endif =20 -static ssize_t timerslack_ns_write(struct file *file, const char __user *b= uf, - size_t count, loff_t *offset) +static ssize_t timerslack_ns_write(struct kiocb *iocb, struct iov_iter *fr= om) { - struct inode *inode =3D file_inode(file); + struct inode *inode =3D file_inode(iocb->ki_filp); + size_t count =3D iov_iter_count(from); struct task_struct *p; u64 slack_ns; int err; =20 - err =3D kstrtoull_from_user(buf, count, 10, &slack_ns); + err =3D kstrtoull_from_iter(from, count, 10, &slack_ns); if (err < 0) return err; =20 @@ -2622,8 +2607,8 @@ static int timerslack_ns_open(struct inode *inode, st= ruct file *filp) =20 static const struct file_operations proc_pid_set_timerslack_ns_operations = =3D { .open =3D timerslack_ns_open, - .read =3D seq_read, - .write =3D timerslack_ns_write, + .read_iter =3D seq_read_iter, + .write_iter =3D timerslack_ns_write, .llseek =3D seq_lseek, .release =3D single_release, }; @@ -2714,10 +2699,9 @@ static int proc_pid_attr_open(struct inode *inode, s= truct file *file) return 0; } =20 -static ssize_t proc_pid_attr_read(struct file * file, char __user * buf, - size_t count, loff_t *ppos) +static ssize_t proc_pid_attr_read(struct kiocb *iocb, struct iov_iter *to) { - struct inode * inode =3D file_inode(file); + struct inode * inode =3D file_inode(iocb->ki_filp); char *p =3D NULL; ssize_t length; struct task_struct *task =3D get_proc_task(inode); @@ -2726,25 +2710,25 @@ static ssize_t proc_pid_attr_read(struct file * fil= e, char __user * buf, return -ESRCH; =20 length =3D security_getprocattr(task, PROC_I(inode)->op.lsmid, - file->f_path.dentry->d_name.name, + iocb->ki_filp->f_path.dentry->d_name.name, &p); put_task_struct(task); if (length > 0) - length =3D simple_read_from_buffer(buf, count, ppos, p, length); + length =3D simple_copy_to_iter(p, &iocb->ki_pos, length, to); kfree(p); return length; } =20 -static ssize_t proc_pid_attr_write(struct file * file, const char __user *= buf, - size_t count, loff_t *ppos) +static ssize_t proc_pid_attr_write(struct kiocb *iocb, struct iov_iter *fr= om) { - struct inode * inode =3D file_inode(file); + struct inode * inode =3D file_inode(iocb->ki_filp); + size_t count =3D iov_iter_count(from); struct task_struct *task; void *page; int rv; =20 /* A task may only write when it was the opener. */ - if (file->private_data !=3D current->mm) + if (iocb->ki_filp->private_data !=3D current->mm) return -EPERM; =20 rcu_read_lock(); @@ -2769,10 +2753,10 @@ static ssize_t proc_pid_attr_write(struct file * fi= le, const char __user * buf, count =3D PAGE_SIZE; =20 /* No partial writes. */ - if (*ppos !=3D 0) + if (iocb->ki_pos !=3D 0) return -EINVAL; =20 - page =3D memdup_user(buf, count); + page =3D iterdup(from, count); if (IS_ERR(page)) { rv =3D PTR_ERR(page); goto out; @@ -2784,8 +2768,8 @@ static ssize_t proc_pid_attr_write(struct file * file= , const char __user * buf, goto out_free; =20 rv =3D security_setprocattr(PROC_I(inode)->op.lsmid, - file->f_path.dentry->d_name.name, page, - count); + iocb->ki_filp->f_path.dentry->d_name.name, + page, count); mutex_unlock(¤t->signal->cred_guard_mutex); out_free: kfree(page); @@ -2795,8 +2779,8 @@ static ssize_t proc_pid_attr_write(struct file * file= , const char __user * buf, =20 static const struct file_operations proc_pid_attr_operations =3D { .open =3D proc_pid_attr_open, - .read =3D proc_pid_attr_read, - .write =3D proc_pid_attr_write, + .read_iter =3D proc_pid_attr_read, + .write_iter =3D proc_pid_attr_write, .llseek =3D generic_file_llseek, .release =3D mem_release, }; @@ -2892,10 +2876,9 @@ static const struct inode_operations proc_attr_dir_i= node_operations =3D { #endif =20 #ifdef CONFIG_ELF_CORE -static ssize_t proc_coredump_filter_read(struct file *file, char __user *b= uf, - size_t count, loff_t *ppos) +static ssize_t proc_coredump_filter_read(struct kiocb *iocb, struct iov_it= er *to) { - struct task_struct *task =3D get_proc_task(file_inode(file)); + struct task_struct *task =3D get_proc_task(file_inode(iocb->ki_filp)); struct mm_struct *mm; char buffer[PROC_NUMBUF]; size_t len; @@ -2911,7 +2894,7 @@ static ssize_t proc_coredump_filter_read(struct file = *file, char __user *buf, ((mm->flags & MMF_DUMP_FILTER_MASK) >> MMF_DUMP_FILTER_SHIFT)); mmput(mm); - ret =3D simple_read_from_buffer(buf, count, ppos, buffer, len); + ret =3D simple_copy_to_iter(buffer, &iocb->ki_pos, len, to); } =20 put_task_struct(task); @@ -2919,11 +2902,10 @@ static ssize_t proc_coredump_filter_read(struct fil= e *file, char __user *buf, return ret; } =20 -static ssize_t proc_coredump_filter_write(struct file *file, - const char __user *buf, - size_t count, - loff_t *ppos) +static ssize_t proc_coredump_filter_write(struct kiocb *iocb, + struct iov_iter *from) { + size_t count =3D iov_iter_count(from); struct task_struct *task; struct mm_struct *mm; unsigned int val; @@ -2931,12 +2913,12 @@ static ssize_t proc_coredump_filter_write(struct fi= le *file, int i; unsigned long mask; =20 - ret =3D kstrtouint_from_user(buf, count, 0, &val); + ret =3D kstrtouint_from_iter(from, count, 0, &val); if (ret < 0) return ret; =20 ret =3D -ESRCH; - task =3D get_proc_task(file_inode(file)); + task =3D get_proc_task(file_inode(iocb->ki_filp)); if (!task) goto out_no_task; =20 @@ -2962,8 +2944,8 @@ static ssize_t proc_coredump_filter_write(struct file= *file, } =20 static const struct file_operations proc_coredump_filter_operations =3D { - .read =3D proc_coredump_filter_read, - .write =3D proc_coredump_filter_write, + .read_iter =3D proc_coredump_filter_read, + .write_iter =3D proc_coredump_filter_write, .llseek =3D generic_file_llseek, }; #endif @@ -3098,24 +3080,24 @@ static int proc_projid_map_open(struct inode *inode= , struct file *file) =20 static const struct file_operations proc_uid_map_operations =3D { .open =3D proc_uid_map_open, - .write =3D proc_uid_map_write, - .read =3D seq_read, + .write_iter =3D proc_uid_map_write_iter, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D proc_id_map_release, }; =20 static const struct file_operations proc_gid_map_operations =3D { .open =3D proc_gid_map_open, - .write =3D proc_gid_map_write, - .read =3D seq_read, + .write_iter =3D proc_gid_map_write_iter, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D proc_id_map_release, }; =20 static const struct file_operations proc_projid_map_operations =3D { .open =3D proc_projid_map_open, - .write =3D proc_projid_map_write, - .read =3D seq_read, + .write_iter =3D proc_projid_map_write_iter, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D proc_id_map_release, }; @@ -3165,8 +3147,8 @@ static int proc_setgroups_release(struct inode *inode= , struct file *file) =20 static const struct file_operations proc_setgroups_operations =3D { .open =3D proc_setgroups_open, - .write =3D proc_setgroups_write, - .read =3D seq_read, + .write_iter =3D proc_setgroups_write, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D proc_setgroups_release, }; diff --git a/fs/proc/fd.c b/fs/proc/fd.c index 63a3aebdf223..ee3f608559e5 100644 --- a/fs/proc/fd.c +++ b/fs/proc/fd.c @@ -103,7 +103,7 @@ static int seq_fdinfo_open(struct inode *inode, struct = file *file) =20 static const struct file_operations proc_fdinfo_file_operations =3D { .open =3D seq_fdinfo_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D single_release, }; diff --git a/fs/proc/inode.c b/fs/proc/inode.c index dcd513dccf55..092164889e74 100644 --- a/fs/proc/inode.c +++ b/fs/proc/inode.c @@ -325,6 +325,11 @@ static ssize_t proc_reg_read(struct file *file, char _= _user *buf, size_t count, return rv; } =20 +static ssize_t __proc_reg_read_iter(struct kiocb *iocb, struct iov_iter *t= o) +{ + return vfs_read_iter(iocb, to, proc_reg_read); +} + static ssize_t pde_write(struct proc_dir_entry *pde, struct file *file, co= nst char __user *buf, size_t count, loff_t *ppos) { typeof_member(struct proc_ops, proc_write) write; @@ -348,6 +353,7 @@ static ssize_t proc_reg_write(struct file *file, const = char __user *buf, size_t } return rv; } +FOPS_WRITE_ITER_HELPER(proc_reg_write); =20 static __poll_t pde_poll(struct proc_dir_entry *pde, struct file *file, st= ruct poll_table_struct *pts) { @@ -571,8 +577,8 @@ static int proc_reg_release(struct inode *inode, struct= file *file) =20 static const struct file_operations proc_reg_file_ops =3D { .llseek =3D proc_reg_llseek, - .read =3D proc_reg_read, - .write =3D proc_reg_write, + .read_iter =3D __proc_reg_read_iter, + .write_iter =3D proc_reg_write_iter, .poll =3D proc_reg_poll, .unlocked_ioctl =3D proc_reg_unlocked_ioctl, .mmap =3D proc_reg_mmap, @@ -584,7 +590,7 @@ static const struct file_operations proc_reg_file_ops = =3D { static const struct file_operations proc_iter_file_ops =3D { .llseek =3D proc_reg_llseek, .read_iter =3D proc_reg_read_iter, - .write =3D proc_reg_write, + .write_iter =3D proc_reg_write_iter, .splice_read =3D copy_splice_read, .poll =3D proc_reg_poll, .unlocked_ioctl =3D proc_reg_unlocked_ioctl, @@ -597,8 +603,8 @@ static const struct file_operations proc_iter_file_ops = =3D { #ifdef CONFIG_COMPAT static const struct file_operations proc_reg_file_ops_compat =3D { .llseek =3D proc_reg_llseek, - .read =3D proc_reg_read, - .write =3D proc_reg_write, + .read_iter =3D proc_reg_read_iter, + .write_iter =3D proc_reg_write_iter, .poll =3D proc_reg_poll, .unlocked_ioctl =3D proc_reg_unlocked_ioctl, .compat_ioctl =3D proc_reg_compat_ioctl, @@ -612,7 +618,7 @@ static const struct file_operations proc_iter_file_ops_= compat =3D { .llseek =3D proc_reg_llseek, .read_iter =3D proc_reg_read_iter, .splice_read =3D copy_splice_read, - .write =3D proc_reg_write, + .write_iter =3D proc_reg_write_iter, .poll =3D proc_reg_poll, .unlocked_ioctl =3D proc_reg_unlocked_ioctl, .compat_ioctl =3D proc_reg_compat_ioctl, diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c index 23fbab954c20..ff86fe94fcba 100644 --- a/fs/proc/task_mmu.c +++ b/fs/proc/task_mmu.c @@ -360,7 +360,7 @@ static int pid_maps_open(struct inode *inode, struct fi= le *file) =20 const struct file_operations proc_pid_maps_operations =3D { .open =3D pid_maps_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D proc_map_release, }; @@ -1049,14 +1049,14 @@ static int smaps_rollup_release(struct inode *inode= , struct file *file) =20 const struct file_operations proc_pid_smaps_operations =3D { .open =3D pid_smaps_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D proc_map_release, }; =20 const struct file_operations proc_pid_smaps_rollup_operations =3D { .open =3D smaps_rollup_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D smaps_rollup_release, }; @@ -1242,9 +1242,9 @@ static const struct mm_walk_ops clear_refs_walk_ops = =3D { .walk_lock =3D PGWALK_WRLOCK, }; =20 -static ssize_t clear_refs_write(struct file *file, const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t clear_refs_write(struct kiocb *iocb, struct iov_iter *from) { + size_t count =3D iov_iter_count(from); struct task_struct *task; char buffer[PROC_NUMBUF] =3D {}; struct mm_struct *mm; @@ -1255,7 +1255,7 @@ static ssize_t clear_refs_write(struct file *file, co= nst char __user *buf, =20 if (count > sizeof(buffer) - 1) count =3D sizeof(buffer) - 1; - if (copy_from_user(buffer, buf, count)) + if (!copy_from_iter_full(buffer, count, from)) return -EFAULT; rv =3D kstrtoint(strstrip(buffer), 10, &itype); if (rv < 0) @@ -1264,7 +1264,7 @@ static ssize_t clear_refs_write(struct file *file, co= nst char __user *buf, if (type < CLEAR_REFS_ALL || type >=3D CLEAR_REFS_LAST) return -EINVAL; =20 - task =3D get_proc_task(file_inode(file)); + task =3D get_proc_task(file_inode(iocb->ki_filp)); if (!task) return -ESRCH; mm =3D get_task_mm(task); @@ -1318,7 +1318,7 @@ static ssize_t clear_refs_write(struct file *file, co= nst char __user *buf, } =20 const struct file_operations proc_clear_refs_operations =3D { - .write =3D clear_refs_write, + .write_iter =3D clear_refs_write, .llseek =3D noop_llseek, }; =20 @@ -1645,10 +1645,10 @@ static const struct mm_walk_ops pagemap_ops =3D { * determine which areas of memory are actually mapped and llseek to * skip over unmapped regions. */ -static ssize_t pagemap_read(struct file *file, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t pagemap_read(struct kiocb *iocb, struct iov_iter *to) { - struct mm_struct *mm =3D file->private_data; + struct mm_struct *mm =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(to); struct pagemapread pm; unsigned long src; unsigned long svpfn; @@ -1661,7 +1661,7 @@ static ssize_t pagemap_read(struct file *file, char _= _user *buf, =20 ret =3D -EINVAL; /* file position must be aligned */ - if ((*ppos % PM_ENTRY_BYTES) || (count % PM_ENTRY_BYTES)) + if ((iocb->ki_pos % PM_ENTRY_BYTES) || (count % PM_ENTRY_BYTES)) goto out_mm; =20 ret =3D 0; @@ -1669,7 +1669,7 @@ static ssize_t pagemap_read(struct file *file, char _= _user *buf, goto out_mm; =20 /* do not disclose physical addresses: attack vector */ - pm.show_pfn =3D file_ns_capable(file, &init_user_ns, CAP_SYS_ADMIN); + pm.show_pfn =3D file_ns_capable(iocb->ki_filp, &init_user_ns, CAP_SYS_ADM= IN); =20 pm.len =3D (PAGEMAP_WALK_SIZE >> PAGE_SHIFT); pm.buffer =3D kmalloc_array(pm.len, PM_ENTRY_BYTES, GFP_KERNEL); @@ -1677,7 +1677,7 @@ static ssize_t pagemap_read(struct file *file, char _= _user *buf, if (!pm.buffer) goto out_mm; =20 - src =3D *ppos; + src =3D iocb->ki_pos; svpfn =3D src / PM_ENTRY_BYTES; end_vaddr =3D mm->task_size; =20 @@ -1719,15 +1719,14 @@ static ssize_t pagemap_read(struct file *file, char= __user *buf, start_vaddr =3D end; =20 len =3D min(count, PM_ENTRY_BYTES * pm.pos); - if (copy_to_user(buf, pm.buffer, len)) { + if (!copy_to_iter_full(pm.buffer, len, to)) { ret =3D -EFAULT; goto out_free; } copied +=3D len; - buf +=3D len; count -=3D len; } - *ppos +=3D copied; + iocb->ki_pos +=3D copied; if (!ret || ret =3D=3D PM_END_OF_BUFFER) ret =3D copied; =20 @@ -2518,7 +2517,7 @@ static long do_pagemap_cmd(struct file *file, unsigne= d int cmd, =20 const struct file_operations proc_pagemap_operations =3D { .llseek =3D mem_lseek, /* borrow this */ - .read =3D pagemap_read, + .read_iter =3D pagemap_read, .open =3D pagemap_open, .release =3D pagemap_release, .unlocked_ioctl =3D do_pagemap_cmd, @@ -2787,7 +2786,7 @@ static int pid_numa_maps_open(struct inode *inode, st= ruct file *file) =20 const struct file_operations proc_pid_numa_maps_operations =3D { .open =3D pid_numa_maps_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D proc_map_release, }; diff --git a/fs/proc/task_nommu.c b/fs/proc/task_nommu.c index bce674533000..b1385bf8dd05 100644 --- a/fs/proc/task_nommu.c +++ b/fs/proc/task_nommu.c @@ -289,7 +289,7 @@ static int pid_maps_open(struct inode *inode, struct fi= le *file) =20 const struct file_operations proc_pid_maps_operations =3D { .open =3D pid_maps_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D map_release, }; diff --git a/include/linux/user_namespace.h b/include/linux/user_namespace.h index 6030a8235617..181ba788a56b 100644 --- a/include/linux/user_namespace.h +++ b/include/linux/user_namespace.h @@ -174,13 +174,15 @@ static inline void put_user_ns(struct user_namespace = *ns) } =20 struct seq_operations; +struct kiocb; +struct iov_iter; extern const struct seq_operations proc_uid_seq_operations; extern const struct seq_operations proc_gid_seq_operations; extern const struct seq_operations proc_projid_seq_operations; -extern ssize_t proc_uid_map_write(struct file *, const char __user *, size= _t, loff_t *); -extern ssize_t proc_gid_map_write(struct file *, const char __user *, size= _t, loff_t *); -extern ssize_t proc_projid_map_write(struct file *, const char __user *, s= ize_t, loff_t *); -extern ssize_t proc_setgroups_write(struct file *, const char __user *, si= ze_t, loff_t *); +ssize_t proc_uid_map_write_iter(struct kiocb *iocb, struct iov_iter *from); +ssize_t proc_gid_map_write_iter(struct kiocb *iocb, struct iov_iter *from); +ssize_t proc_projid_map_write_iter(struct kiocb *iocb, struct iov_iter *fr= om); +ssize_t proc_setgroups_write(struct kiocb *iocb, struct iov_iter *from); extern int proc_setgroups_show(struct seq_file *m, void *v); extern bool userns_may_setgroups(const struct user_namespace *ns); extern bool in_userns(const struct user_namespace *ancestor, diff --git a/kernel/user_namespace.c b/kernel/user_namespace.c index 0b0b95418b16..05ec5be1c2d7 100644 --- a/kernel/user_namespace.c +++ b/kernel/user_namespace.c @@ -1108,8 +1108,8 @@ static ssize_t map_write(struct file *file, const cha= r __user *buf, return ret; } =20 -ssize_t proc_uid_map_write(struct file *file, const char __user *buf, - size_t size, loff_t *ppos) +static ssize_t proc_uid_map_write(struct file *file, const char __user *bu= f, + size_t size, loff_t *ppos) { struct seq_file *seq =3D file->private_data; struct user_namespace *ns =3D seq->private; @@ -1125,8 +1125,13 @@ ssize_t proc_uid_map_write(struct file *file, const = char __user *buf, &ns->uid_map, &ns->parent->uid_map); } =20 -ssize_t proc_gid_map_write(struct file *file, const char __user *buf, - size_t size, loff_t *ppos) +ssize_t proc_uid_map_write_iter(struct kiocb *iocb, struct iov_iter *from) +{ + return vfs_write_iter(iocb, from, proc_uid_map_write); +} + +static ssize_t proc_gid_map_write(struct file *file, const char __user *bu= f, + size_t size, loff_t *ppos) { struct seq_file *seq =3D file->private_data; struct user_namespace *ns =3D seq->private; @@ -1142,8 +1147,13 @@ ssize_t proc_gid_map_write(struct file *file, const = char __user *buf, &ns->gid_map, &ns->parent->gid_map); } =20 -ssize_t proc_projid_map_write(struct file *file, const char __user *buf, - size_t size, loff_t *ppos) +ssize_t proc_gid_map_write_iter(struct kiocb *iocb, struct iov_iter *from) +{ + return vfs_write_iter(iocb, from, proc_gid_map_write); +} + +static ssize_t proc_projid_map_write(struct file *file, const char __user = *buf, + size_t size, loff_t *ppos) { struct seq_file *seq =3D file->private_data; struct user_namespace *ns =3D seq->private; @@ -1160,6 +1170,11 @@ ssize_t proc_projid_map_write(struct file *file, con= st char __user *buf, &ns->projid_map, &ns->parent->projid_map); } =20 +ssize_t proc_projid_map_write_iter(struct kiocb *iocb, struct iov_iter *fr= om) +{ + return vfs_write_iter(iocb, from, proc_projid_map_write); +} + static bool new_idmap_permitted(const struct file *file, struct user_namespace *ns, int cap_setid, struct uid_gid_map *new_map) @@ -1213,23 +1228,23 @@ int proc_setgroups_show(struct seq_file *seq, void = *v) return 0; } =20 -ssize_t proc_setgroups_write(struct file *file, const char __user *buf, - size_t count, loff_t *ppos) +ssize_t proc_setgroups_write(struct kiocb *iocb, struct iov_iter *from) { - struct seq_file *seq =3D file->private_data; + struct seq_file *seq =3D iocb->ki_filp->private_data; struct user_namespace *ns =3D seq->private; + size_t count =3D iov_iter_count(from); char kbuf[8], *pos; bool setgroups_allowed; ssize_t ret; =20 /* Only allow a very narrow range of strings to be written */ ret =3D -EINVAL; - if ((*ppos !=3D 0) || (count >=3D sizeof(kbuf))) + if ((iocb->ki_pos !=3D 0) || (count >=3D sizeof(kbuf))) goto out; =20 /* What was written? */ ret =3D -EFAULT; - if (copy_from_user(kbuf, buf, count)) + if (!copy_from_iter_full(kbuf, count, from)) goto out; kbuf[count] =3D '\0'; pos =3D kbuf; @@ -1271,7 +1286,7 @@ ssize_t proc_setgroups_write(struct file *file, const= char __user *buf, mutex_unlock(&userns_state_mutex); =20 /* Report a successful write */ - *ppos =3D count; + iocb->ki_pos =3D count; ret =3D count; out: return ret; --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f42.google.com (mail-io1-f42.google.com [209.85.166.42]) (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 545651D371B for ; Thu, 11 Apr 2024 15:39:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849988; cv=none; b=msz9czNvJ/JEUwA2PTntlUTiX0bCMT34i9iZaFoYoU8KE4wvWxA4FskmKSMFhSMWmkZRF/OCelj4pgcg3DiLv71/3/E33JyIc2VqknEXLVK0dA+oxv5YiQ8baRr8WKqDkYKfSUCXgGi48y03ToXp6XAOehVbB2ImK8A1I02Gxlw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849988; c=relaxed/simple; bh=/Q6KnapLBPJz/Wdlpldx5vt5/82eFPTxGeq6XHjxjjg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=XjkDXPdvSFcHz4atdFyb6s8jI1JBGMvrB7YQzcW3AjcKR+xKDKI7yAMj1DHp7PJ/ftAeFQOGntz9cA5IeHLXQS/8v89S/2WekC3E5fNIUY1zx4vZRVDz1XwkTDHq4CijMBQ+yRK9BtEMYNMahn0MJTrQUSwLrJf7Fvnq8l/qPD0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=Azk91P5H; arc=none smtp.client-ip=209.85.166.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="Azk91P5H" Received: by mail-io1-f42.google.com with SMTP id ca18e2360f4ac-7d6112ba6baso58172639f.1 for ; Thu, 11 Apr 2024 08:39:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849985; x=1713454785; 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=jKK8dgn5uHLUesU0IBjCDwlOEErVfVZOLDyYwXoDWEY=; b=Azk91P5Hwdb/xJrc+7xAw/lBkPyqsgCBnanN9q8xUvQTP6UYSqgnM3D6x971drzrw2 AYAiCzOVIVcYGbqGOGTpTutq29HyhINzpNP4ERzg84jXgG8xb+HGob8wiu0S2iuYQybW klF+pp9LcK29gJ7AeJDRsm1wc8aZgEzSrnFClVS6OsWlNbVRgz20LxuZd/YjezbfRDO2 Gnmvs+BRFiEBvFLF0sIPYtDxJivFCXBLxsAqfwUByZQ6hP9MwY3XSWsrY9ZtIGFzwNiP JQ1Y2HuqLGXGlzWRjyxejds7OwyDhsz/7ah6+vcxh8OCWiAGd1uCmhMKKHfUFEYlxYG5 NPKQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849985; x=1713454785; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=jKK8dgn5uHLUesU0IBjCDwlOEErVfVZOLDyYwXoDWEY=; b=Fh25VXqX1GCsnq19AQSbai7R00gG9nEkWTZOaTIr44TOXzcde65BtJC9Q4YnIddeOu aQuPWweMp2zRkRNTs1PcOyhiIomjQL1dqrN1VBsCzLs6BKI5NjMm86oKfALq7qwNAhDj RNg31ihuB18b1BAvUd6YPG9N2tTdv3lKCTWnqqfnwKKri7grUUwUMGXzZmM5pzmvLpdg Z6nTy3eKEzIIbOjnO5eAmyI/3Rdy2IcojC7TnApA5pwxNBxbt0Zx9+8DbuCIBflW4pHa iqKgOKlvuuGLtvP0TCVDdf0A+SAc2w9CPnNlBPjLU8OSfHMXoJhTpFeR30tPesUxlFhd p7Bw== X-Gm-Message-State: AOJu0YzYWPwc7g1XiJ6BV9Cd8hQdI25Q2jVB4bp2Sw2IzX959fk+/zJ0 FfgYPRpAS1/mLhluFIkLj7mT0wkjnzAneJ8cKNPG2mu2hUInx+XySAZasNhUeZqAAA3yKxq5yg+ Q X-Google-Smtp-Source: AGHT+IHVh6JfR09vkvCedDaYlIm0CPu/ZIhxQhCOwTnDrDtWv8MFcPMxK2RLduyxZknP+Z/1G011fQ== X-Received: by 2002:a05:6602:38d:b0:7d6:513b:254 with SMTP id f13-20020a056602038d00b007d6513b0254mr196423iov.2.1712849984910; Thu, 11 Apr 2024 08:39:44 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.39.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:39:44 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 293/437] fs: convert fs_open to read/write iterators Date: Thu, 11 Apr 2024 09:17:13 -0600 Message-ID: <20240411153126.16201-294-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- fs/fsopen.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/fs/fsopen.c b/fs/fsopen.c index 6593ae518115..a68b7d4071b1 100644 --- a/fs/fsopen.c +++ b/fs/fsopen.c @@ -14,6 +14,7 @@ #include #include #include +#include #include #include "internal.h" #include "mount.h" @@ -21,12 +22,12 @@ /* * Allow the user to read back any error, warning or informational message= s. */ -static ssize_t fscontext_read(struct file *file, - char __user *_buf, size_t len, loff_t *pos) +static ssize_t fscontext_read(struct kiocb *iocb, struct iov_iter *to) { - struct fs_context *fc =3D file->private_data; + struct fs_context *fc =3D iocb->ki_filp->private_data; struct fc_log *log =3D fc->log.log; unsigned int logsize =3D ARRAY_SIZE(log->buffer); + size_t len =3D iov_iter_count(to); ssize_t ret; char *p; bool need_free; @@ -54,7 +55,7 @@ static ssize_t fscontext_read(struct file *file, if (n > len) goto err_free; ret =3D -EFAULT; - if (copy_to_user(_buf, p, n) !=3D 0) + if (!copy_to_iter_full(p, n, to) !=3D 0) goto err_free; ret =3D n; =20 @@ -76,7 +77,7 @@ static int fscontext_release(struct inode *inode, struct = file *file) } =20 const struct file_operations fscontext_fops =3D { - .read =3D fscontext_read, + .read_iter =3D fscontext_read, .release =3D fscontext_release, .llseek =3D no_llseek, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f45.google.com (mail-io1-f45.google.com [209.85.166.45]) (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 627231D4287 for ; Thu, 11 Apr 2024 15:39:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849989; cv=none; b=CN3dEf/d63TzR8GAy0rRdTletMZp466MHVxQK0ai1OJ9IEerwvQbnhLJvVNqIAtwuzgOdhyI5UBoI07c8Hh/XRCbDPtqRxO+a5JJ3kJsTyjFuTaNPTHimgIG2Uyf8F7nV04MUbzw2LHGV1BpUgANKbwNlAkQRfWU2y3JUp/vV2M= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849989; c=relaxed/simple; bh=WjK5tt/lcF0gsGNNsa8rRdS16AVptBWg/Fhf3kHfxBM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=oiFK0NruItuVDvkQHr9Oj8/fbZVGAixr81lqHumizixidk2IQ2LbKlexpT2A0aRwvOAHl683NnVzUZG+cLca8uWyTW6dV9SgSaKGmdFQYA+CM7DlKe9XzdMsjsFCgFoGR4VQnQ3RJ49BwtxJ+3zfLiQKXoylPnghY3xJ5S4ieyM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=BTZ17wky; arc=none smtp.client-ip=209.85.166.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="BTZ17wky" Received: by mail-io1-f45.google.com with SMTP id ca18e2360f4ac-7d6812b37a6so9031339f.0 for ; Thu, 11 Apr 2024 08:39:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849987; x=1713454787; 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=btfIbjHEzJkQLorNtQGt+Q3lPeOfCGKan/kFhND/Ei8=; b=BTZ17wkyDFmWExYVarB6TOwTQLfGcrHnxc0ondUdivVTBaEdPntMYQwDBzv/am38or Zhm+J+7tZTjz7rC/7YcYlKImSvLfm/WxfiKEIU4P4Bi1Fm1pJY8ysAEZhWvoIhU9gLS0 wzElawcZYBZ5jyG34BXcM1nsP9nUu4bvadX7MPDlAjna99t234bx/0j3rcfhN9EhVeBg dQwscS4bwKXtL4s3l6RZfgvLgvsKIv+xicp5AIBlg0IpVXthKK+CWcZDi7XUnNzSXe0I POEGykAqFRlL5iJFFps2P/IwG1k9JkVje5GpCMhn6OQwzf8J/fPagipgVwgiJSs3tZBS 2heQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849987; x=1713454787; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=btfIbjHEzJkQLorNtQGt+Q3lPeOfCGKan/kFhND/Ei8=; b=fwH9mkHdfmBQRyHgfTE3kFxzl4dgH8pC11b4kK6CbK8QJVQ1pVqwYmLW1ontrDYQbL /lXGsgAol6WxNLC2uU2Xx2ZNE2AzUjwJvtrXn/3DrF4k/7d4gmZknV/KpxU+f7O0HSOb d0kjwsWm/4+Tw6lM22ajaiF8fZTnaf31beywXHIU/EPMKKykE9S1RlUKtvMmLyG8jVD3 xYTdwnup82oNjPb5R9JfC1/N4t2tYd6cj9r7136akU9TSgxkd2J3PQ3kAIOaM+u+btuB eUFeZxY3T0pKZg5dpCJHk65MgyC/Bzk3T+7Q9O498hAnUb92ogBvtwJZ9bdmV7pM6oej uarw== X-Gm-Message-State: AOJu0YxRC1hHZCe66lKeIwi4wiNVJGlpQeOq0KXdC+fZmBfu75dtb7tS pvHFoGtuoDH92upsycjMKn/cWq5pEnN4KcwcYUY1SZosJbAzKqeq8WPYPlJ6HPutbST8gd1IT1K O X-Google-Smtp-Source: AGHT+IEB9YUjmtVH3xNUWJAGSMnshONGN3/FcQK1+z2FMRrHlSgDT6WHM0JjJmd6FHy9mIvsXmlBJA== X-Received: by 2002:a5e:9907:0:b0:7d6:751f:192 with SMTP id t7-20020a5e9907000000b007d6751f0192mr190297ioj.2.1712849987075; Thu, 11 Apr 2024 08:39:47 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.39.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:39:45 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 294/437] openpromfs: convert to read/write iterators Date: Thu, 11 Apr 2024 09:17:14 -0600 Message-ID: <20240411153126.16201-295-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- fs/openpromfs/inode.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fs/openpromfs/inode.c b/fs/openpromfs/inode.c index e25eceac86f4..66667b55562b 100644 --- a/fs/openpromfs/inode.c +++ b/fs/openpromfs/inode.c @@ -159,7 +159,7 @@ static int property_open(struct inode *inode, struct fi= le *file) =20 static const struct file_operations openpromfs_prop_ops =3D { .open =3D property_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D seq_release, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f52.google.com (mail-io1-f52.google.com [209.85.166.52]) (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 121271D2A1E for ; Thu, 11 Apr 2024 15:39:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849993; cv=none; b=TXXxDbM+NfggAE50q1zwAKkiXOh5n8fHwF25WJ7Q1NSNvlSJZVPUgXiF0y8TknnC4m7ply3lkyKivNHqld0Cu98eiaMDfZ1OxC9f7sr9AYchVI8H3xE8pdTlAwgTpYKsnYW73gcFu4vHv6wyT+hmbEShYEbiovK5pjPeKBbvT0o= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849993; c=relaxed/simple; bh=RUqCIlWh5Lno+H9NA44P/nJeW+YKWl4NhVLEkfMKYDk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ZhFoHut1rqthoyla9vZs1Z1Y6uEsojhD3yq5/RiXUEwctsj21wRLCn5Oox08pBi1Lz0LoViZq+6rZJF2uFDvY6ORPsWJfDankBB33nuOUNJQY1RxS8hqAeINQWbpXVPBypEwHxq5180C3KTDRauHotOmR73OXEYAQriX10Etdcs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=FcxIs4Eu; arc=none smtp.client-ip=209.85.166.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="FcxIs4Eu" Received: by mail-io1-f52.google.com with SMTP id ca18e2360f4ac-7cc0e831e11so170589539f.1 for ; Thu, 11 Apr 2024 08:39:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849989; x=1713454789; 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=BVmbO/u0RfFp7oLs75EMek47Iv2G10BWIgRDZrKc9u4=; b=FcxIs4Eu6zdYI3PWGSI9A9HTT8wvbbQBqZDYPO60Jj8qioGdWnzNIaqtPd1tyk7psg FIcoYLTKuzTCCkqqPUxYktZ+50TxmQodLvVFlaWE48hSVPoeLb+XWPVKPVQfO+gohFkb WeaIsH09LCteezzQqG/fHmo76WhDppPn7Qy6wk3ZXa1iOg/fKxThOSVCgucN0OrfTB7t RIG0xmNTyLfjlhbE2t2R+uZmM7owZeoqI/0LTKbV/9Eqz1Hf9V+rH/StAOixY1rBacqe K+hptnD+c374La2VWieCIBMZP5oZtt82uK+25bsCD80ZJC2M5Zq5g6e+JVD2lG8Ybqiu OdnA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849989; x=1713454789; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=BVmbO/u0RfFp7oLs75EMek47Iv2G10BWIgRDZrKc9u4=; b=EBJWQSzYYNvMbwXgKmcZeWnxpDbLjajYxjnaZV81GSTjDuv5d0gthodtthoPnKEi1Q tllOyO6JYj0FqSwlMAGG7I8fWxO+n2QIHEXr3FvqvVcjxPtF2/mHnRutLgQuCy1Rr9/j CJQ0uGSVU1Se105WlSKYnIknsvJyjAQNQvPM0f1YsCRMO/H7mXYb9pvq6XXAkSGYM+Qu VcmDSgj+OiWSYI5RWwermT2Fo8kl+30dDwAM1XAZhoxnSv1KpCNIIpKX0NFf/fGWx+ZD 0jD4qr1w3tnYHPRQhZOna+NNPB6UOS0+Dm8loTEEazNE3B3/cX3RYZ9x7OXPBmDlPf8o TQVg== X-Gm-Message-State: AOJu0YzwWZu1atYXLziqlWah6ECqGcDXJqM2t0BG4oacw8lb2giMBcco nU8I5GbXiGI8MMyW82qoXEDpxMqtnrf5Yk2J4cVOEUY3I5FVQYorsAGlJalg5qwkk5PcIJ7smwQ Z X-Google-Smtp-Source: AGHT+IGpGtVk/LdrIySyA+rOU9fWkiHwF2fSOPg8f2sc6qqkfKlmRMlCJAv8yLvhLov0wcsUOiOyKw== X-Received: by 2002:a6b:5b10:0:b0:7d0:bd2b:43ba with SMTP id v16-20020a6b5b10000000b007d0bd2b43bamr231323ioh.0.1712849988931; Thu, 11 Apr 2024 08:39:48 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.39.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:39:47 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 295/437] drivers/net/wireless/ti: convert to read/write iterators Date: Thu, 11 Apr 2024 09:17:15 -0600 Message-ID: <20240411153126.16201-296-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/net/wireless/ti/wl1251/debugfs.c | 38 ++- drivers/net/wireless/ti/wl18xx/debugfs.c | 73 ++--- drivers/net/wireless/ti/wlcore/debugfs.c | 373 ++++++++++------------- drivers/net/wireless/ti/wlcore/debugfs.h | 37 +-- 4 files changed, 231 insertions(+), 290 deletions(-) diff --git a/drivers/net/wireless/ti/wl1251/debugfs.c b/drivers/net/wireles= s/ti/wl1251/debugfs.c index a1b778a0fda0..66e57dd0add4 100644 --- a/drivers/net/wireless/ti/wl1251/debugfs.c +++ b/drivers/net/wireless/ti/wl1251/debugfs.c @@ -20,19 +20,18 @@ /* debugfs macros idea from mac80211 */ =20 #define DEBUGFS_READONLY_FILE(name, buflen, fmt, value...) \ -static ssize_t name## _read(struct file *file, char __user *userbuf, \ - size_t count, loff_t *ppos) \ +static ssize_t name## _read(struct kiocb *iocb, struct iov_iter *to) \ { \ - struct wl1251 *wl =3D file->private_data; \ + struct wl1251 *wl =3D iocb->ki_filp->private_data; \ char buf[buflen]; \ int res; \ \ res =3D scnprintf(buf, buflen, fmt "\n", ##value); \ - return simple_read_from_buffer(userbuf, count, ppos, buf, res); \ + return simple_copy_to_iter(buf, &iocb->ki_pos, res, to); \ } \ \ static const struct file_operations name## _ops =3D { \ - .read =3D name## _read, \ + .read_iter =3D name## _read, \ .open =3D simple_open, \ .llseek =3D generic_file_llseek, \ }; @@ -48,11 +47,10 @@ static const struct file_operations name## _ops =3D { = \ } while (0) =20 #define DEBUGFS_FWSTATS_FILE(sub, name, buflen, fmt) \ -static ssize_t sub## _ ##name## _read(struct file *file, \ - char __user *userbuf, \ - size_t count, loff_t *ppos) \ +static ssize_t sub## _ ##name## _read(struct kiocb *iocb, \ + struct iov_iter *to) \ { \ - struct wl1251 *wl =3D file->private_data; \ + struct wl1251 *wl =3D iocb->ki_filp->private_data; \ char buf[buflen]; \ int res; \ \ @@ -60,11 +58,11 @@ static ssize_t sub## _ ##name## _read(struct file *file= , \ \ res =3D scnprintf(buf, buflen, fmt "\n", \ wl->stats.fw_stats->sub.name); \ - return simple_read_from_buffer(userbuf, count, ppos, buf, res); \ + return simple_copy_to_iter(buf, &iocb->ki_pos, res, to); \ } \ \ static const struct file_operations sub## _ ##name## _ops =3D { \ - .read =3D sub## _ ##name## _read, \ + .read_iter =3D sub## _ ##name## _read, \ .open =3D simple_open, \ .llseek =3D generic_file_llseek, \ }; @@ -194,10 +192,9 @@ DEBUGFS_READONLY_FILE(retry_count, 20, "%u", wl->stats= .retry_count); DEBUGFS_READONLY_FILE(excessive_retries, 20, "%u", wl->stats.excessive_retries); =20 -static ssize_t tx_queue_len_read(struct file *file, char __user *userbuf, - size_t count, loff_t *ppos) +static ssize_t tx_queue_len_read(struct kiocb *iocb, struct iov_iter *to) { - struct wl1251 *wl =3D file->private_data; + struct wl1251 *wl =3D iocb->ki_filp->private_data; u32 queue_len; char buf[20]; int res; @@ -205,19 +202,18 @@ static ssize_t tx_queue_len_read(struct file *file, c= har __user *userbuf, queue_len =3D skb_queue_len(&wl->tx_queue); =20 res =3D scnprintf(buf, sizeof(buf), "%u\n", queue_len); - return simple_read_from_buffer(userbuf, count, ppos, buf, res); + return simple_copy_to_iter(buf, &iocb->ki_pos, res, to); } =20 static const struct file_operations tx_queue_len_ops =3D { - .read =3D tx_queue_len_read, + .read_iter =3D tx_queue_len_read, .open =3D simple_open, .llseek =3D generic_file_llseek, }; =20 -static ssize_t tx_queue_status_read(struct file *file, char __user *userbu= f, - size_t count, loff_t *ppos) +static ssize_t tx_queue_status_read(struct kiocb *iocb, struct iov_iter *t= o) { - struct wl1251 *wl =3D file->private_data; + struct wl1251 *wl =3D iocb->ki_filp->private_data; char buf[3], status; int len; =20 @@ -227,11 +223,11 @@ static ssize_t tx_queue_status_read(struct file *file= , char __user *userbuf, status =3D 'r'; =20 len =3D scnprintf(buf, sizeof(buf), "%c\n", status); - return simple_read_from_buffer(userbuf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 static const struct file_operations tx_queue_status_ops =3D { - .read =3D tx_queue_status_read, + .read_iter =3D tx_queue_status_read, .open =3D simple_open, .llseek =3D generic_file_llseek, }; diff --git a/drivers/net/wireless/ti/wl18xx/debugfs.c b/drivers/net/wireles= s/ti/wl18xx/debugfs.c index 80fbf740fe6d..629838b1a959 100644 --- a/drivers/net/wireless/ti/wl18xx/debugfs.c +++ b/drivers/net/wireless/ti/wl18xx/debugfs.c @@ -175,10 +175,9 @@ WL18XX_DEBUGFS_FWSTATS_FILE(roaming, rssi_level, "%d"); =20 WL18XX_DEBUGFS_FWSTATS_FILE(dfs, num_of_radar_detections, "%d"); =20 -static ssize_t conf_read(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t conf_read(struct kiocb *iocb, struct iov_iter *to) { - struct wl1271 *wl =3D file->private_data; + struct wl1271 *wl =3D iocb->ki_filp->private_data; struct wl18xx_priv *priv =3D wl->priv; struct wlcore_conf_header header; char *buf, *pos; @@ -205,23 +204,22 @@ static ssize_t conf_read(struct file *file, char __us= er *user_buf, =20 mutex_unlock(&wl->mutex); =20 - ret =3D simple_read_from_buffer(user_buf, count, ppos, buf, len); + ret =3D simple_copy_to_iter(buf, &iocb->ki_pos, len, to); =20 kfree(buf); return ret; } =20 static const struct file_operations conf_ops =3D { - .read =3D conf_read, + .read_iter =3D conf_read, .open =3D simple_open, .llseek =3D default_llseek, }; =20 -static ssize_t clear_fw_stats_write(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t clear_fw_stats_write(struct kiocb *iocb, struct iov_iter *f= rom) { - struct wl1271 *wl =3D file->private_data; + struct wl1271 *wl =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); int ret; =20 mutex_lock(&wl->mutex); @@ -240,20 +238,19 @@ static ssize_t clear_fw_stats_write(struct file *file, } =20 static const struct file_operations clear_fw_stats_ops =3D { - .write =3D clear_fw_stats_write, + .write_iter =3D clear_fw_stats_write, .open =3D simple_open, .llseek =3D default_llseek, }; =20 -static ssize_t radar_detection_write(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t radar_detection_write(struct kiocb *iocb, struct iov_iter *= from) { - struct wl1271 *wl =3D file->private_data; + struct wl1271 *wl =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); int ret; u8 channel; =20 - ret =3D kstrtou8_from_user(user_buf, count, 10, &channel); + ret =3D kstrtou8_from_iter(from, count, 10, &channel); if (ret < 0) { wl1271_warning("illegal channel"); return -EINVAL; @@ -280,20 +277,19 @@ static ssize_t radar_detection_write(struct file *fil= e, } =20 static const struct file_operations radar_detection_ops =3D { - .write =3D radar_detection_write, + .write_iter =3D radar_detection_write, .open =3D simple_open, .llseek =3D default_llseek, }; =20 -static ssize_t dynamic_fw_traces_write(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t dynamic_fw_traces_write(struct kiocb *iocb, struct iov_iter= *from) { - struct wl1271 *wl =3D file->private_data; + struct wl1271 *wl =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); unsigned long value; int ret; =20 - ret =3D kstrtoul_from_user(user_buf, count, 0, &value); + ret =3D kstrtoul_from_iter(from, count, 0, &value); if (ret < 0) return ret; =20 @@ -319,33 +315,29 @@ static ssize_t dynamic_fw_traces_write(struct file *f= ile, return count; } =20 -static ssize_t dynamic_fw_traces_read(struct file *file, - char __user *userbuf, - size_t count, loff_t *ppos) +static ssize_t dynamic_fw_traces_read(struct kiocb *iocb, struct iov_iter = *to) { - struct wl1271 *wl =3D file->private_data; - return wl1271_format_buffer(userbuf, count, ppos, - "%d\n", wl->dynamic_fw_traces); + struct wl1271 *wl =3D iocb->ki_filp->private_data; + return wl1271_format_buffer(iocb, to, "%d\n", wl->dynamic_fw_traces); } =20 static const struct file_operations dynamic_fw_traces_ops =3D { - .read =3D dynamic_fw_traces_read, - .write =3D dynamic_fw_traces_write, + .read_iter =3D dynamic_fw_traces_read, + .write_iter =3D dynamic_fw_traces_write, .open =3D simple_open, .llseek =3D default_llseek, }; =20 #ifdef CONFIG_CFG80211_CERTIFICATION_ONUS -static ssize_t radar_debug_mode_write(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t radar_debug_mode_write(struct kiocb *iocb, struct iov_iter = *from) { - struct wl1271 *wl =3D file->private_data; + struct wl1271 *wl =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); struct wl12xx_vif *wlvif; unsigned long value; int ret; =20 - ret =3D kstrtoul_from_user(user_buf, count, 10, &value); + ret =3D kstrtoul_from_iter(from, count, 10, &value); if (ret < 0) { wl1271_warning("illegal radar_debug_mode value!"); return -EINVAL; @@ -381,19 +373,16 @@ static ssize_t radar_debug_mode_write(struct file *fi= le, return count; } =20 -static ssize_t radar_debug_mode_read(struct file *file, - char __user *userbuf, - size_t count, loff_t *ppos) +static ssize_t radar_debug_mode_read(struct kiocb *iocb, struct iov_iter *= to) { - struct wl1271 *wl =3D file->private_data; + struct wl1271 *wl =3D iocb->ki_filp->private_data; =20 - return wl1271_format_buffer(userbuf, count, ppos, - "%d\n", wl->radar_debug_mode); + return wl1271_format_buffer(iocb, to, "%d\n", wl->radar_debug_mode); } =20 static const struct file_operations radar_debug_mode_ops =3D { - .write =3D radar_debug_mode_write, - .read =3D radar_debug_mode_read, + .write_iter =3D radar_debug_mode_write, + .read_iter =3D radar_debug_mode_read, .open =3D simple_open, .llseek =3D default_llseek, }; diff --git a/drivers/net/wireless/ti/wlcore/debugfs.c b/drivers/net/wireles= s/ti/wlcore/debugfs.c index eb3d3f0e0b4d..1834cc60aab7 100644 --- a/drivers/net/wireless/ti/wlcore/debugfs.c +++ b/drivers/net/wireless/ti/wlcore/debugfs.c @@ -28,8 +28,7 @@ #define WLCORE_MAX_BLOCK_SIZE ((size_t)(4*PAGE_SIZE)) =20 /* debugfs macros idea from mac80211 */ -int wl1271_format_buffer(char __user *userbuf, size_t count, - loff_t *ppos, char *fmt, ...) +int wl1271_format_buffer(struct kiocb *iocb, struct iov_iter *to, char *fm= t, ...) { va_list args; char buf[DEBUGFS_FORMAT_BUFFER_SIZE]; @@ -39,7 +38,7 @@ int wl1271_format_buffer(char __user *userbuf, size_t cou= nt, res =3D vscnprintf(buf, sizeof(buf), fmt, args); va_end(args); =20 - return simple_read_from_buffer(userbuf, count, ppos, buf, res); + return simple_copy_to_iter(buf, &iocb->ki_pos, res, to); } EXPORT_SYMBOL_GPL(wl1271_format_buffer); =20 @@ -75,10 +74,9 @@ DEBUGFS_READONLY_FILE(retry_count, "%u", wl->stats.retry= _count); DEBUGFS_READONLY_FILE(excessive_retries, "%u", wl->stats.excessive_retries); =20 -static ssize_t tx_queue_len_read(struct file *file, char __user *userbuf, - size_t count, loff_t *ppos) +static ssize_t tx_queue_len_read(struct kiocb *iocb, struct iov_iter *to) { - struct wl1271 *wl =3D file->private_data; + struct wl1271 *wl =3D iocb->ki_filp->private_data; u32 queue_len; char buf[20]; int res; @@ -86,11 +84,11 @@ static ssize_t tx_queue_len_read(struct file *file, cha= r __user *userbuf, queue_len =3D wl1271_tx_total_queue_count(wl); =20 res =3D scnprintf(buf, sizeof(buf), "%u\n", queue_len); - return simple_read_from_buffer(userbuf, count, ppos, buf, res); + return simple_copy_to_iter(buf, &iocb->ki_pos, res, to); } =20 static const struct file_operations tx_queue_len_ops =3D { - .read =3D tx_queue_len_read, + .read_iter =3D tx_queue_len_read, .open =3D simple_open, .llseek =3D default_llseek, }; @@ -120,25 +118,23 @@ static void chip_op_handler(struct wl1271 *wl, unsign= ed long value, #define WL12XX_CONF_DEBUGFS(param, conf_sub_struct, \ min_val, max_val, write_handler_locked, \ write_handler_arg) \ - static ssize_t param##_read(struct file *file, \ - char __user *user_buf, \ - size_t count, loff_t *ppos) \ + static ssize_t param##_read(struct kiocb *iocb, \ + struct iov_iter *to) \ { \ - struct wl1271 *wl =3D file->private_data; \ - return wl1271_format_buffer(user_buf, count, \ - ppos, "%d\n", \ - wl->conf.conf_sub_struct.param); \ + struct wl1271 *wl =3D iocb->ki_filp->private_data; \ + return wl1271_format_buffer(iocb, to, "%d\n", \ + wl->conf.conf_sub_struct.param); \ } \ \ - static ssize_t param##_write(struct file *file, \ - const char __user *user_buf, \ - size_t count, loff_t *ppos) \ + static ssize_t param##_write(struct kiocb *iocb, \ + struct iov_iter *from) \ { \ - struct wl1271 *wl =3D file->private_data; \ + struct wl1271 *wl =3D iocb->ki_filp->private_data; \ + size_t count =3D iov_iter_count(from); \ unsigned long value; \ int ret; \ \ - ret =3D kstrtoul_from_user(user_buf, count, 10, &value); \ + ret =3D kstrtoul_from_iter(from, count, 10, &value); \ if (ret < 0) { \ wl1271_warning("illegal value for " #param); \ return -EINVAL; \ @@ -159,8 +155,8 @@ static void chip_op_handler(struct wl1271 *wl, unsigned= long value, } \ \ static const struct file_operations param##_ops =3D { \ - .read =3D param##_read, \ - .write =3D param##_write, \ + .read_iter =3D param##_read, \ + .write_iter =3D param##_write, \ .open =3D simple_open, \ .llseek =3D default_llseek, \ }; @@ -172,10 +168,9 @@ WL12XX_CONF_DEBUGFS(irq_blk_threshold, rx, 0, 65535, WL12XX_CONF_DEBUGFS(irq_timeout, rx, 0, 100, chip_op_handler, wl1271_acx_init_rx_interrupt) =20 -static ssize_t gpio_power_read(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t gpio_power_read(struct kiocb *iocb, struct iov_iter *to) { - struct wl1271 *wl =3D file->private_data; + struct wl1271 *wl =3D iocb->ki_filp->private_data; bool state =3D test_bit(WL1271_FLAG_GPIO_POWER, &wl->flags); =20 int res; @@ -183,18 +178,17 @@ static ssize_t gpio_power_read(struct file *file, cha= r __user *user_buf, =20 res =3D scnprintf(buf, sizeof(buf), "%d\n", state); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, res); + return simple_copy_to_iter(buf, &iocb->ki_pos, res, to); } =20 -static ssize_t gpio_power_write(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t gpio_power_write(struct kiocb *iocb, struct iov_iter *from) { - struct wl1271 *wl =3D file->private_data; + struct wl1271 *wl =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); unsigned long value; int ret; =20 - ret =3D kstrtoul_from_user(user_buf, count, 10, &value); + ret =3D kstrtoul_from_iter(from, count, 10, &value); if (ret < 0) { wl1271_warning("illegal value in gpio_power"); return -EINVAL; @@ -212,51 +206,47 @@ static ssize_t gpio_power_write(struct file *file, } =20 static const struct file_operations gpio_power_ops =3D { - .read =3D gpio_power_read, - .write =3D gpio_power_write, + .read_iter =3D gpio_power_read, + .write_iter =3D gpio_power_write, .open =3D simple_open, .llseek =3D default_llseek, }; =20 -static ssize_t start_recovery_write(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t start_recovery_write(struct kiocb *iocb, struct iov_iter *f= rom) { - struct wl1271 *wl =3D file->private_data; + struct wl1271 *wl =3D iocb->ki_filp->private_data; =20 mutex_lock(&wl->mutex); wl12xx_queue_recovery_work(wl); mutex_unlock(&wl->mutex); =20 - return count; + return iov_iter_count(from); } =20 static const struct file_operations start_recovery_ops =3D { - .write =3D start_recovery_write, + .write_iter =3D start_recovery_write, .open =3D simple_open, .llseek =3D default_llseek, }; =20 -static ssize_t dynamic_ps_timeout_read(struct file *file, char __user *use= r_buf, - size_t count, loff_t *ppos) +static ssize_t dynamic_ps_timeout_read(struct kiocb *iocb, struct iov_iter= *to) { - struct wl1271 *wl =3D file->private_data; + struct wl1271 *wl =3D iocb->ki_filp->private_data; =20 - return wl1271_format_buffer(user_buf, count, - ppos, "%d\n", + return wl1271_format_buffer(iocb, to, "%d\n", wl->conf.conn.dynamic_ps_timeout); } =20 -static ssize_t dynamic_ps_timeout_write(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t dynamic_ps_timeout_write(struct kiocb *iocb, + struct iov_iter *from) { - struct wl1271 *wl =3D file->private_data; + struct wl1271 *wl =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); struct wl12xx_vif *wlvif; unsigned long value; int ret; =20 - ret =3D kstrtoul_from_user(user_buf, count, 10, &value); + ret =3D kstrtoul_from_iter(from, count, 10, &value); if (ret < 0) { wl1271_warning("illegal value in dynamic_ps"); return -EINVAL; @@ -296,32 +286,29 @@ static ssize_t dynamic_ps_timeout_write(struct file *= file, } =20 static const struct file_operations dynamic_ps_timeout_ops =3D { - .read =3D dynamic_ps_timeout_read, - .write =3D dynamic_ps_timeout_write, + .read_iter =3D dynamic_ps_timeout_read, + .write_iter =3D dynamic_ps_timeout_write, .open =3D simple_open, .llseek =3D default_llseek, }; =20 -static ssize_t forced_ps_read(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t forced_ps_read(struct kiocb *iocb, struct iov_iter *to) { - struct wl1271 *wl =3D file->private_data; + struct wl1271 *wl =3D iocb->ki_filp->private_data; =20 - return wl1271_format_buffer(user_buf, count, - ppos, "%d\n", + return wl1271_format_buffer(iocb, to, "%d\n", wl->conf.conn.forced_ps); } =20 -static ssize_t forced_ps_write(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t forced_ps_write(struct kiocb *iocb, struct iov_iter *from) { - struct wl1271 *wl =3D file->private_data; + struct wl1271 *wl =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); struct wl12xx_vif *wlvif; unsigned long value; int ret, ps_mode; =20 - ret =3D kstrtoul_from_user(user_buf, count, 10, &value); + ret =3D kstrtoul_from_iter(from, count, 10, &value); if (ret < 0) { wl1271_warning("illegal value in forced_ps"); return -EINVAL; @@ -366,31 +353,29 @@ static ssize_t forced_ps_write(struct file *file, } =20 static const struct file_operations forced_ps_ops =3D { - .read =3D forced_ps_read, - .write =3D forced_ps_write, + .read_iter =3D forced_ps_read, + .write_iter =3D forced_ps_write, .open =3D simple_open, .llseek =3D default_llseek, }; =20 -static ssize_t split_scan_timeout_read(struct file *file, char __user *use= r_buf, - size_t count, loff_t *ppos) +static ssize_t split_scan_timeout_read(struct kiocb *iocb, struct iov_iter= *to) { - struct wl1271 *wl =3D file->private_data; + struct wl1271 *wl =3D iocb->ki_filp->private_data; =20 - return wl1271_format_buffer(user_buf, count, - ppos, "%d\n", + return wl1271_format_buffer(iocb, to, "%d\n", wl->conf.scan.split_scan_timeout / 1000); } =20 -static ssize_t split_scan_timeout_write(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t split_scan_timeout_write(struct kiocb *iocb, + struct iov_iter *from) { - struct wl1271 *wl =3D file->private_data; + struct wl1271 *wl =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); unsigned long value; int ret; =20 - ret =3D kstrtoul_from_user(user_buf, count, 10, &value); + ret =3D kstrtoul_from_iter(from, count, 10, &value); if (ret < 0) { wl1271_warning("illegal value in split_scan_timeout"); return -EINVAL; @@ -408,16 +393,15 @@ static ssize_t split_scan_timeout_write(struct file *= file, } =20 static const struct file_operations split_scan_timeout_ops =3D { - .read =3D split_scan_timeout_read, - .write =3D split_scan_timeout_write, + .read_iter =3D split_scan_timeout_read, + .write_iter =3D split_scan_timeout_write, .open =3D simple_open, .llseek =3D default_llseek, }; =20 -static ssize_t driver_state_read(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t driver_state_read(struct kiocb *iocb, struct iov_iter *to) { - struct wl1271 *wl =3D file->private_data; + struct wl1271 *wl =3D iocb->ki_filp->private_data; int res =3D 0; ssize_t ret; char *buf; @@ -502,21 +486,20 @@ static ssize_t driver_state_read(struct file *file, c= har __user *user_buf, =20 mutex_unlock(&wl->mutex); =20 - ret =3D simple_read_from_buffer(user_buf, count, ppos, buf, res); + ret =3D simple_copy_to_iter(buf, &iocb->ki_pos, res, to); kfree(buf); return ret; } =20 static const struct file_operations driver_state_ops =3D { - .read =3D driver_state_read, + .read_iter =3D driver_state_read, .open =3D simple_open, .llseek =3D default_llseek, }; =20 -static ssize_t vifs_state_read(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t vifs_state_read(struct kiocb *iocb, struct iov_iter *to) { - struct wl1271 *wl =3D file->private_data; + struct wl1271 *wl =3D iocb->ki_filp->private_data; struct wl12xx_vif *wlvif; int ret, res =3D 0; const int buf_size =3D 4096; @@ -612,21 +595,20 @@ static ssize_t vifs_state_read(struct file *file, cha= r __user *user_buf, =20 mutex_unlock(&wl->mutex); =20 - ret =3D simple_read_from_buffer(user_buf, count, ppos, buf, res); + ret =3D simple_copy_to_iter(buf, &iocb->ki_pos, res, to); kfree(buf); return ret; } =20 static const struct file_operations vifs_state_ops =3D { - .read =3D vifs_state_read, + .read_iter =3D vifs_state_read, .open =3D simple_open, .llseek =3D default_llseek, }; =20 -static ssize_t dtim_interval_read(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t dtim_interval_read(struct kiocb *iocb, struct iov_iter *to) { - struct wl1271 *wl =3D file->private_data; + struct wl1271 *wl =3D iocb->ki_filp->private_data; u8 value; =20 if (wl->conf.conn.wake_up_event =3D=3D CONF_WAKE_UP_EVENT_DTIM || @@ -635,18 +617,17 @@ static ssize_t dtim_interval_read(struct file *file, = char __user *user_buf, else value =3D 0; =20 - return wl1271_format_buffer(user_buf, count, ppos, "%d\n", value); + return wl1271_format_buffer(iocb, to, "%d\n", value); } =20 -static ssize_t dtim_interval_write(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t dtim_interval_write(struct kiocb *iocb, struct iov_iter *fr= om) { - struct wl1271 *wl =3D file->private_data; + struct wl1271 *wl =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); unsigned long value; int ret; =20 - ret =3D kstrtoul_from_user(user_buf, count, 10, &value); + ret =3D kstrtoul_from_iter(from, count, 10, &value); if (ret < 0) { wl1271_warning("illegal value for dtim_interval"); return -EINVAL; @@ -675,19 +656,18 @@ static ssize_t dtim_interval_write(struct file *file, } =20 static const struct file_operations dtim_interval_ops =3D { - .read =3D dtim_interval_read, - .write =3D dtim_interval_write, + .read_iter =3D dtim_interval_read, + .write_iter =3D dtim_interval_write, .open =3D simple_open, .llseek =3D default_llseek, }; =20 =20 =20 -static ssize_t suspend_dtim_interval_read(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t suspend_dtim_interval_read(struct kiocb *iocb, + struct iov_iter *to) { - struct wl1271 *wl =3D file->private_data; + struct wl1271 *wl =3D iocb->ki_filp->private_data; u8 value; =20 if (wl->conf.conn.suspend_wake_up_event =3D=3D CONF_WAKE_UP_EVENT_DTIM || @@ -696,18 +676,18 @@ static ssize_t suspend_dtim_interval_read(struct file= *file, else value =3D 0; =20 - return wl1271_format_buffer(user_buf, count, ppos, "%d\n", value); + return wl1271_format_buffer(iocb, to, "%d\n", value); } =20 -static ssize_t suspend_dtim_interval_write(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t suspend_dtim_interval_write(struct kiocb *iocb, + struct iov_iter *from) { - struct wl1271 *wl =3D file->private_data; + struct wl1271 *wl =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); unsigned long value; int ret; =20 - ret =3D kstrtoul_from_user(user_buf, count, 10, &value); + ret =3D kstrtoul_from_iter(from, count, 10, &value); if (ret < 0) { wl1271_warning("illegal value for suspend_dtim_interval"); return -EINVAL; @@ -731,18 +711,16 @@ static ssize_t suspend_dtim_interval_write(struct fil= e *file, return count; } =20 - static const struct file_operations suspend_dtim_interval_ops =3D { - .read =3D suspend_dtim_interval_read, - .write =3D suspend_dtim_interval_write, + .read_iter =3D suspend_dtim_interval_read, + .write_iter =3D suspend_dtim_interval_write, .open =3D simple_open, .llseek =3D default_llseek, }; =20 -static ssize_t beacon_interval_read(struct file *file, char __user *user_b= uf, - size_t count, loff_t *ppos) +static ssize_t beacon_interval_read(struct kiocb *iocb, struct iov_iter *t= o) { - struct wl1271 *wl =3D file->private_data; + struct wl1271 *wl =3D iocb->ki_filp->private_data; u8 value; =20 if (wl->conf.conn.wake_up_event =3D=3D CONF_WAKE_UP_EVENT_BEACON || @@ -751,18 +729,17 @@ static ssize_t beacon_interval_read(struct file *file= , char __user *user_buf, else value =3D 0; =20 - return wl1271_format_buffer(user_buf, count, ppos, "%d\n", value); + return wl1271_format_buffer(iocb, to, "%d\n", value); } =20 -static ssize_t beacon_interval_write(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t beacon_interval_write(struct kiocb *iocb, struct iov_iter *= from) { - struct wl1271 *wl =3D file->private_data; + struct wl1271 *wl =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); unsigned long value; int ret; =20 - ret =3D kstrtoul_from_user(user_buf, count, 10, &value); + ret =3D kstrtoul_from_iter(from, count, 10, &value); if (ret < 0) { wl1271_warning("illegal value for beacon_interval"); return -EINVAL; @@ -791,22 +768,22 @@ static ssize_t beacon_interval_write(struct file *fil= e, } =20 static const struct file_operations beacon_interval_ops =3D { - .read =3D beacon_interval_read, - .write =3D beacon_interval_write, + .read_iter =3D beacon_interval_read, + .write_iter =3D beacon_interval_write, .open =3D simple_open, .llseek =3D default_llseek, }; =20 -static ssize_t rx_streaming_interval_write(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t rx_streaming_interval_write(struct kiocb *iocb, + struct iov_iter *from) { - struct wl1271 *wl =3D file->private_data; + struct wl1271 *wl =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); struct wl12xx_vif *wlvif; unsigned long value; int ret; =20 - ret =3D kstrtoul_from_user(user_buf, count, 10, &value); + ret =3D kstrtoul_from_iter(from, count, 10, &value); if (ret < 0) { wl1271_warning("illegal value in rx_streaming_interval!"); return -EINVAL; @@ -837,32 +814,31 @@ static ssize_t rx_streaming_interval_write(struct fil= e *file, return count; } =20 -static ssize_t rx_streaming_interval_read(struct file *file, - char __user *userbuf, - size_t count, loff_t *ppos) +static ssize_t rx_streaming_interval_read(struct kiocb *iocb, + struct iov_iter *to) { - struct wl1271 *wl =3D file->private_data; - return wl1271_format_buffer(userbuf, count, ppos, - "%d\n", wl->conf.rx_streaming.interval); + struct wl1271 *wl =3D iocb->ki_filp->private_data; + return wl1271_format_buffer(iocb, to, "%d\n", + wl->conf.rx_streaming.interval); } =20 static const struct file_operations rx_streaming_interval_ops =3D { - .read =3D rx_streaming_interval_read, - .write =3D rx_streaming_interval_write, + .read_iter =3D rx_streaming_interval_read, + .write_iter =3D rx_streaming_interval_write, .open =3D simple_open, .llseek =3D default_llseek, }; =20 -static ssize_t rx_streaming_always_write(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t rx_streaming_always_write(struct kiocb *iocb, + struct iov_iter *from) { - struct wl1271 *wl =3D file->private_data; + struct wl1271 *wl =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); struct wl12xx_vif *wlvif; unsigned long value; int ret; =20 - ret =3D kstrtoul_from_user(user_buf, count, 10, &value); + ret =3D kstrtoul_from_iter(from, count, 10, &value); if (ret < 0) { wl1271_warning("illegal value in rx_streaming_write!"); return -EINVAL; @@ -893,32 +869,29 @@ static ssize_t rx_streaming_always_write(struct file = *file, return count; } =20 -static ssize_t rx_streaming_always_read(struct file *file, - char __user *userbuf, - size_t count, loff_t *ppos) +static ssize_t rx_streaming_always_read(struct kiocb *iocb, struct iov_ite= r *to) { - struct wl1271 *wl =3D file->private_data; - return wl1271_format_buffer(userbuf, count, ppos, - "%d\n", wl->conf.rx_streaming.always); + struct wl1271 *wl =3D iocb->ki_filp->private_data; + return wl1271_format_buffer(iocb, to, "%d\n", + wl->conf.rx_streaming.always); } =20 static const struct file_operations rx_streaming_always_ops =3D { - .read =3D rx_streaming_always_read, - .write =3D rx_streaming_always_write, + .read_iter =3D rx_streaming_always_read, + .write_iter =3D rx_streaming_always_write, .open =3D simple_open, .llseek =3D default_llseek, }; =20 -static ssize_t beacon_filtering_write(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t beacon_filtering_write(struct kiocb *iocb, struct iov_iter = *from) { - struct wl1271 *wl =3D file->private_data; + struct wl1271 *wl =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); struct wl12xx_vif *wlvif; unsigned long value; int ret; =20 - ret =3D kstrtoul_from_user(user_buf, count, 0, &value); + ret =3D kstrtoul_from_iter(from, count, 0, &value); if (ret < 0) { wl1271_warning("illegal value for beacon_filtering!"); return -EINVAL; @@ -942,49 +915,42 @@ static ssize_t beacon_filtering_write(struct file *fi= le, } =20 static const struct file_operations beacon_filtering_ops =3D { - .write =3D beacon_filtering_write, + .write_iter =3D beacon_filtering_write, .open =3D simple_open, .llseek =3D default_llseek, }; =20 -static ssize_t fw_stats_raw_read(struct file *file, - char __user *userbuf, - size_t count, loff_t *ppos) +static ssize_t fw_stats_raw_read(struct kiocb *iocb, struct iov_iter *to) { - struct wl1271 *wl =3D file->private_data; + struct wl1271 *wl =3D iocb->ki_filp->private_data; =20 wl1271_debugfs_update_stats(wl); =20 - return simple_read_from_buffer(userbuf, count, ppos, - wl->stats.fw_stats, - wl->stats.fw_stats_len); + return simple_copy_to_iter(wl->stats.fw_stats, &iocb->ki_pos, + wl->stats.fw_stats_len, to); } =20 static const struct file_operations fw_stats_raw_ops =3D { - .read =3D fw_stats_raw_read, + .read_iter =3D fw_stats_raw_read, .open =3D simple_open, .llseek =3D default_llseek, }; =20 -static ssize_t sleep_auth_read(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t sleep_auth_read(struct kiocb *iocb, struct iov_iter *to) { - struct wl1271 *wl =3D file->private_data; + struct wl1271 *wl =3D iocb->ki_filp->private_data; =20 - return wl1271_format_buffer(user_buf, count, - ppos, "%d\n", - wl->sleep_auth); + return wl1271_format_buffer(iocb, to, "%d\n", wl->sleep_auth); } =20 -static ssize_t sleep_auth_write(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t sleep_auth_write(struct kiocb *iocb, struct iov_iter *from) { - struct wl1271 *wl =3D file->private_data; + struct wl1271 *wl =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); unsigned long value; int ret; =20 - ret =3D kstrtoul_from_user(user_buf, count, 0, &value); + ret =3D kstrtoul_from_iter(from, count, 0, &value); if (ret < 0) { wl1271_warning("illegal value in sleep_auth"); return -EINVAL; @@ -1023,18 +989,17 @@ static ssize_t sleep_auth_write(struct file *file, } =20 static const struct file_operations sleep_auth_ops =3D { - .read =3D sleep_auth_read, - .write =3D sleep_auth_write, + .read_iter =3D sleep_auth_read, + .write_iter =3D sleep_auth_write, .open =3D simple_open, .llseek =3D default_llseek, }; =20 -static ssize_t dev_mem_read(struct file *file, - char __user *user_buf, size_t count, - loff_t *ppos) +static ssize_t dev_mem_read(struct kiocb *iocb, struct iov_iter *to) { - struct wl1271 *wl =3D file->private_data; + struct wl1271 *wl =3D iocb->ki_filp->private_data; struct wlcore_partition_set part, old_part; + size_t count =3D iov_iter_count(to); size_t bytes =3D count; int ret; char *buf; @@ -1043,7 +1008,7 @@ static ssize_t dev_mem_read(struct file *file, if (bytes % 4) return -EINVAL; =20 - if (*ppos % 4) + if (iocb->ki_pos % 4) return -EINVAL; =20 /* function should return in reasonable time */ @@ -1053,7 +1018,7 @@ static ssize_t dev_mem_read(struct file *file, return -EINVAL; =20 memset(&part, 0, sizeof(part)); - part.mem.start =3D *ppos; + part.mem.start =3D iocb->ki_pos; part.mem.size =3D bytes; =20 buf =3D kmalloc(bytes, GFP_KERNEL); @@ -1097,13 +1062,13 @@ static ssize_t dev_mem_read(struct file *file, mutex_unlock(&wl->mutex); =20 if (ret =3D=3D 0) { - ret =3D copy_to_user(user_buf, buf, bytes); - if (ret < bytes) { + ret =3D copy_to_iter(buf, bytes, to); + if (!ret) { + ret =3D -EFAULT; + } else { bytes -=3D ret; - *ppos +=3D bytes; + iocb->ki_pos +=3D bytes; ret =3D 0; - } else { - ret =3D -EFAULT; } } =20 @@ -1112,10 +1077,10 @@ static ssize_t dev_mem_read(struct file *file, return ((ret =3D=3D 0) ? bytes : ret); } =20 -static ssize_t dev_mem_write(struct file *file, const char __user *user_bu= f, - size_t count, loff_t *ppos) +static ssize_t dev_mem_write(struct kiocb *iocb, struct iov_iter *from) { - struct wl1271 *wl =3D file->private_data; + struct wl1271 *wl =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); struct wlcore_partition_set part, old_part; size_t bytes =3D count; int ret; @@ -1125,7 +1090,7 @@ static ssize_t dev_mem_write(struct file *file, const= char __user *user_buf, if (bytes % 4) return -EINVAL; =20 - if (*ppos % 4) + if (iocb->ki_pos % 4) return -EINVAL; =20 /* function should return in reasonable time */ @@ -1135,10 +1100,10 @@ static ssize_t dev_mem_write(struct file *file, con= st char __user *user_buf, return -EINVAL; =20 memset(&part, 0, sizeof(part)); - part.mem.start =3D *ppos; + part.mem.start =3D iocb->ki_pos; part.mem.size =3D bytes; =20 - buf =3D memdup_user(user_buf, bytes); + buf =3D iterdup(from, bytes); if (IS_ERR(buf)) return PTR_ERR(buf); =20 @@ -1179,7 +1144,7 @@ static ssize_t dev_mem_write(struct file *file, const= char __user *user_buf, mutex_unlock(&wl->mutex); =20 if (ret =3D=3D 0) - *ppos +=3D bytes; + iocb->ki_pos +=3D bytes; =20 kfree(buf); =20 @@ -1197,30 +1162,26 @@ static loff_t dev_mem_seek(struct file *file, loff_= t offset, int orig) =20 static const struct file_operations dev_mem_ops =3D { .open =3D simple_open, - .read =3D dev_mem_read, - .write =3D dev_mem_write, + .read_iter =3D dev_mem_read, + .write_iter =3D dev_mem_write, .llseek =3D dev_mem_seek, }; =20 -static ssize_t fw_logger_read(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t fw_logger_read(struct kiocb *iocb, struct iov_iter *to) { - struct wl1271 *wl =3D file->private_data; + struct wl1271 *wl =3D iocb->ki_filp->private_data; =20 - return wl1271_format_buffer(user_buf, count, - ppos, "%d\n", - wl->conf.fwlog.output); + return wl1271_format_buffer(iocb, to, "%d\n", wl->conf.fwlog.output); } =20 -static ssize_t fw_logger_write(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t fw_logger_write(struct kiocb *iocb, struct iov_iter *from) { - struct wl1271 *wl =3D file->private_data; + struct wl1271 *wl =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); unsigned long value; int ret; =20 - ret =3D kstrtoul_from_user(user_buf, count, 0, &value); + ret =3D kstrtoul_from_iter(from, count, 0, &value); if (ret < 0) { wl1271_warning("illegal value in fw_logger"); return -EINVAL; @@ -1257,8 +1218,8 @@ static ssize_t fw_logger_write(struct file *file, =20 static const struct file_operations fw_logger_ops =3D { .open =3D simple_open, - .read =3D fw_logger_read, - .write =3D fw_logger_write, + .read_iter =3D fw_logger_read, + .write_iter =3D fw_logger_write, .llseek =3D default_llseek, }; =20 diff --git a/drivers/net/wireless/ti/wlcore/debugfs.h b/drivers/net/wireles= s/ti/wlcore/debugfs.h index a9e13e6d65c5..294ac6e29c5f 100644 --- a/drivers/net/wireless/ti/wlcore/debugfs.h +++ b/drivers/net/wireless/ti/wlcore/debugfs.h @@ -12,8 +12,8 @@ =20 #include "wlcore.h" =20 -__printf(4, 5) int wl1271_format_buffer(char __user *userbuf, size_t count, - loff_t *ppos, char *fmt, ...); +__printf(3, 4) int wl1271_format_buffer(struct kiocb *iocb, struct iov_ite= r *to, + char *fmt, ...); =20 int wl1271_debugfs_init(struct wl1271 *wl); void wl1271_debugfs_exit(struct wl1271 *wl); @@ -23,16 +23,14 @@ void wl1271_debugfs_update_stats(struct wl1271 *wl); #define DEBUGFS_FORMAT_BUFFER_SIZE 256 =20 #define DEBUGFS_READONLY_FILE(name, fmt, value...) \ -static ssize_t name## _read(struct file *file, char __user *userbuf, \ - size_t count, loff_t *ppos) \ +static ssize_t name## _read(struct kiocb *iocb, struct iov_iter *to) \ { \ - struct wl1271 *wl =3D file->private_data; \ - return wl1271_format_buffer(userbuf, count, ppos, \ - fmt "\n", ##value); \ + struct wl1271 *wl =3D iocb->ki_filp->private_data; \ + return wl1271_format_buffer(iocb, to, fmt "\n", ##value); \ } \ \ static const struct file_operations name## _ops =3D { \ - .read =3D name## _read, \ + .read_iter =3D name## _read, \ .open =3D simple_open, \ .llseek =3D generic_file_llseek, \ }; @@ -51,31 +49,28 @@ static const struct file_operations name## _ops =3D { = \ } while (0) =20 #define DEBUGFS_FWSTATS_FILE(sub, name, fmt, struct_type) \ -static ssize_t sub## _ ##name## _read(struct file *file, \ - char __user *userbuf, \ - size_t count, loff_t *ppos) \ +static ssize_t sub## _ ##name## _read(struct kiocb *iocb, \ + struct iov_iter *to) \ { \ - struct wl1271 *wl =3D file->private_data; \ + struct wl1271 *wl =3D iocb->ki_filp->private_data; \ struct struct_type *stats =3D wl->stats.fw_stats; \ \ wl1271_debugfs_update_stats(wl); \ \ - return wl1271_format_buffer(userbuf, count, ppos, fmt "\n", \ - stats->sub.name); \ + return wl1271_format_buffer(iocb, to, fmt "\n", stats->sub.name);\ } \ \ static const struct file_operations sub## _ ##name## _ops =3D { \ - .read =3D sub## _ ##name## _read, \ + .read_iter =3D sub## _ ##name## _read, \ .open =3D simple_open, \ .llseek =3D generic_file_llseek, \ }; =20 #define DEBUGFS_FWSTATS_FILE_ARRAY(sub, name, len, struct_type) \ -static ssize_t sub## _ ##name## _read(struct file *file, \ - char __user *userbuf, \ - size_t count, loff_t *ppos) \ +static ssize_t sub## _ ##name## _read(struct kiocb *iocb, \ + struct iov_iter *to) \ { \ - struct wl1271 *wl =3D file->private_data; \ + struct wl1271 *wl =3D iocb->ki_filp->private_data; \ struct struct_type *stats =3D wl->stats.fw_stats; \ char buf[DEBUGFS_FORMAT_BUFFER_SIZE] =3D ""; \ int pos =3D 0; \ @@ -87,11 +82,11 @@ static ssize_t sub## _ ##name## _read(struct file *file= , \ pos +=3D snprintf(buf + pos, sizeof(buf) - pos, \ "[%d] =3D %d\n", i, stats->sub.name[i]); \ \ - return wl1271_format_buffer(userbuf, count, ppos, "%s", buf); \ + return wl1271_format_buffer(iocb, to, "%s", buf); \ } \ \ static const struct file_operations sub## _ ##name## _ops =3D { \ - .read =3D sub## _ ##name## _read, \ + .read_iter =3D sub## _ ##name## _read, \ .open =3D simple_open, \ .llseek =3D generic_file_llseek, \ }; --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f44.google.com (mail-io1-f44.google.com [209.85.166.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 86CF61D4EFD for ; Thu, 11 Apr 2024 15:39:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849999; cv=none; b=OdOL+842BMqZ7GgpB4mayTOGop54l0xueeta1L0eURgN8N0o/FcMQZA7XyIsmrPpCtfqoy+iE6I/komEi/dRwfTWQx664jcgAYLb+QDwIUWYYU3AyFSWELBpFAkvpGPEsQTZN+/1UwVNVvud0V9iWP9LWUy1XVfJfnP6wMSbKTc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849999; c=relaxed/simple; bh=JYKfeQH2W+lGFMiN70P4JMv0IGkYPq0LTxf+Rri3iS8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=TsWEWN/ZrnvOSSXqYs8X/pLkGp9WutGTkGqkKmrkJ7XLai3DyG0D8k1dx9iyuE4IsVwoUhbjENJ+fxlaGlO7yMbau+rCAKEBa+hT2hMelDQR+MrM5AN6j8TPkxEBWrx5oLJxDMqKocIg6ZN4Y6TnFCgxDCSgRFCkQBxhR5eQA4o= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=zMe54c/4; arc=none smtp.client-ip=209.85.166.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="zMe54c/4" Received: by mail-io1-f44.google.com with SMTP id ca18e2360f4ac-7c8e4c0412dso69644039f.1 for ; Thu, 11 Apr 2024 08:39:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849991; x=1713454791; 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=0ZqU3+NCMJGiTAxcck0eszLTPFhfVI7z5jzATIpnvgo=; b=zMe54c/4afUtmXi70jtbV4CuJW4TinIDIORfPpHvu+GV4taUYyY1HE+YHdFUzzPM8Z GPZ3iU4qDHVVOmI+Ye9F7e02glQP//R6GnP70N/R6SjKlku/c1N8+qJmfnsef1LOnZrg IBdvrWSz2MZXPz8l2x+H6jqykhRkCKAwrnczBd2meMxZveYryXBTMIeMkCDp5XYP+P1q M98jIBAtJgXhHYQ0G4B1wuMRwfauvUSGEQsrJPcrjqZG/YX8H8fUjnqdxnktDSp/5+FY 1cN+LVSjv8FAift7lUisBddUjEqpBRrWFGnA2T9SLV/ywl/UTmfY3Yt8OT9C6utuRv8L 4v0g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849991; x=1713454791; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=0ZqU3+NCMJGiTAxcck0eszLTPFhfVI7z5jzATIpnvgo=; b=hM8vI48iqNv96ZwAXBXdHqRCUWlGeHGydWjIXHJVFIhJ8C6pWcTdTFDPy+NuvyNYtR A284VF1Q67XmCB/z4zyhzt/K4XMGGxn9j/7utKJ4hcRFsnqctQE5wj8omr7LGdjDEqXS sKacxkUVJ+wgo4C2G5l/xRYA6q5IJfOwR27RFVeImGwBBckY68x0JUxlUfWV42+Q/N1r L28pxMYyDOy8fsheQgvmH4Qf13Bc3Dvq/ZA6o/oI0eeQ933z5P0db0PRB74GmmuypEGR mhskktzIsr/GpAgWyWOVDy/4qEZIQseWO4siSJnkayIO3DIAwvhYAG7ss4Z7jxbm94mK WD/w== X-Gm-Message-State: AOJu0YxedJecCEo73Cc3ZHzmxY7FuTJzRc2njWIr/lj+h3c3pFuVFSxP 6rGUPccZUMmrRrCXFOhJVVjI7sEhURjodJKXEiLhLYTSRHYLMDOBLWSWlf8WZYMCCt6k5GbntQG g X-Google-Smtp-Source: AGHT+IFdFDBeKm0x8jyYKNs0LTrQp8AwQPqhlrn10Fh2gRuf80LDVNpppIPeWVvLqAXLTebMuXPvWw== X-Received: by 2002:a6b:7b05:0:b0:7d6:60dc:bc8e with SMTP id l5-20020a6b7b05000000b007d660dcbc8emr202506iop.1.1712849990063; Thu, 11 Apr 2024 08:39:50 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.39.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:39:49 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 296/437] drivers/net/wireless/intel: convert to read/write iterators Date: Thu, 11 Apr 2024 09:17:16 -0600 Message-ID: <20240411153126.16201-297-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/net/wireless/intel/iwlegacy/3945-rs.c | 9 +- drivers/net/wireless/intel/iwlegacy/4965-rs.c | 39 +- drivers/net/wireless/intel/iwlegacy/debug.c | 280 +++++------ .../net/wireless/intel/iwlwifi/dvm/debugfs.c | 455 ++++++++---------- drivers/net/wireless/intel/iwlwifi/dvm/rs.c | 42 +- .../net/wireless/intel/iwlwifi/fw/debugfs.c | 23 +- drivers/net/wireless/intel/iwlwifi/mei/main.c | 18 +- drivers/net/wireless/intel/iwlwifi/mvm/d3.c | 7 +- .../wireless/intel/iwlwifi/mvm/debugfs-vif.c | 81 ++-- .../net/wireless/intel/iwlwifi/mvm/debugfs.c | 227 ++++----- .../net/wireless/intel/iwlwifi/mvm/debugfs.h | 9 +- drivers/net/wireless/intel/iwlwifi/mvm/rs.c | 62 ++- .../net/wireless/intel/iwlwifi/pcie/trans.c | 85 ++-- 13 files changed, 609 insertions(+), 728 deletions(-) diff --git a/drivers/net/wireless/intel/iwlegacy/3945-rs.c b/drivers/net/wi= reless/intel/iwlegacy/3945-rs.c index 0eaad980c85c..1a14dce71bff 100644 --- a/drivers/net/wireless/intel/iwlegacy/3945-rs.c +++ b/drivers/net/wireless/intel/iwlegacy/3945-rs.c @@ -801,14 +801,13 @@ il3945_rs_get_rate(void *il_r, struct ieee80211_sta *= sta, void *il_sta, #ifdef CONFIG_MAC80211_DEBUGFS =20 static ssize_t -il3945_sta_dbgfs_stats_table_read(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos) +il3945_sta_dbgfs_stats_table_read(struct kiocb *iocb, struct iov_iter *to) { char *buff; int desc =3D 0; int j; ssize_t ret; - struct il3945_rs_sta *lq_sta =3D file->private_data; + struct il3945_rs_sta *lq_sta =3D iocb->ki_filp->private_data; =20 buff =3D kmalloc(1024, GFP_KERNEL); if (!buff) @@ -827,13 +826,13 @@ il3945_sta_dbgfs_stats_table_read(struct file *file, = char __user *user_buf, lq_sta->win[j].success_counter, lq_sta->win[j].success_ratio); } - ret =3D simple_read_from_buffer(user_buf, count, ppos, buff, desc); + ret =3D simple_copy_to_iter(buff, &iocb->ki_pos, desc, to); kfree(buff); return ret; } =20 static const struct file_operations rs_sta_dbgfs_stats_table_ops =3D { - .read =3D il3945_sta_dbgfs_stats_table_read, + .read_iter =3D il3945_sta_dbgfs_stats_table_read, .open =3D simple_open, .llseek =3D default_llseek, }; diff --git a/drivers/net/wireless/intel/iwlegacy/4965-rs.c b/drivers/net/wi= reless/intel/iwlegacy/4965-rs.c index 718efb1aa1b0..958d7e8e26d6 100644 --- a/drivers/net/wireless/intel/iwlegacy/4965-rs.c +++ b/drivers/net/wireless/intel/iwlegacy/4965-rs.c @@ -2527,11 +2527,10 @@ il4965_rs_dbgfs_set_mcs(struct il_lq_sta *lq_sta, u= 32 * rate_n_flags, int idx) } =20 static ssize_t -il4965_rs_sta_dbgfs_scale_table_write(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +il4965_rs_sta_dbgfs_scale_table_write(struct kiocb *iocb, struct iov_iter = *from) { - struct il_lq_sta *lq_sta =3D file->private_data; + struct il_lq_sta *lq_sta =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); struct il_priv *il; char buf[64]; size_t buf_size; @@ -2540,7 +2539,7 @@ il4965_rs_sta_dbgfs_scale_table_write(struct file *fi= le, il =3D lq_sta->drv; memset(buf, 0, sizeof(buf)); buf_size =3D min(count, sizeof(buf) - 1); - if (copy_from_user(buf, user_buf, buf_size)) + if (!copy_from_iter_full(buf, buf_size, from)) return -EFAULT; =20 if (sscanf(buf, "%x", &parsed_rate) =3D=3D 1) @@ -2564,8 +2563,7 @@ il4965_rs_sta_dbgfs_scale_table_write(struct file *fi= le, } =20 static ssize_t -il4965_rs_sta_dbgfs_scale_table_read(struct file *file, char __user *user_= buf, - size_t count, loff_t *ppos) +il4965_rs_sta_dbgfs_scale_table_read(struct kiocb *iocb, struct iov_iter *= to) { char *buff; int desc =3D 0; @@ -2573,7 +2571,7 @@ il4965_rs_sta_dbgfs_scale_table_read(struct file *fil= e, char __user *user_buf, int idx =3D 0; ssize_t ret; =20 - struct il_lq_sta *lq_sta =3D file->private_data; + struct il_lq_sta *lq_sta =3D iocb->ki_filp->private_data; struct il_priv *il; struct il_scale_tbl_info *tbl =3D &(lq_sta->lq_info[lq_sta->active_tbl]); =20 @@ -2659,28 +2657,27 @@ il4965_rs_sta_dbgfs_scale_table_read(struct file *f= ile, char __user *user_buf, } } =20 - ret =3D simple_read_from_buffer(user_buf, count, ppos, buff, desc); + ret =3D simple_copy_to_iter(buff, &iocb->ki_pos, desc, to); kfree(buff); return ret; } =20 static const struct file_operations rs_sta_dbgfs_scale_table_ops =3D { - .write =3D il4965_rs_sta_dbgfs_scale_table_write, - .read =3D il4965_rs_sta_dbgfs_scale_table_read, + .write_iter =3D il4965_rs_sta_dbgfs_scale_table_write, + .read_iter =3D il4965_rs_sta_dbgfs_scale_table_read, .open =3D simple_open, .llseek =3D default_llseek, }; =20 static ssize_t -il4965_rs_sta_dbgfs_stats_table_read(struct file *file, char __user *user_= buf, - size_t count, loff_t *ppos) +il4965_rs_sta_dbgfs_stats_table_read(struct kiocb *iocb, struct iov_iter *= to) { char *buff; int desc =3D 0; int i, j; ssize_t ret; =20 - struct il_lq_sta *lq_sta =3D file->private_data; + struct il_lq_sta *lq_sta =3D iocb->ki_filp->private_data; =20 buff =3D kmalloc(1024, GFP_KERNEL); if (!buff) @@ -2705,25 +2702,23 @@ il4965_rs_sta_dbgfs_stats_table_read(struct file *f= ile, char __user *user_buf, lq_sta->lq_info[i].win[j].success_ratio); } } - ret =3D simple_read_from_buffer(user_buf, count, ppos, buff, desc); + ret =3D simple_copy_to_iter(buff, &iocb->ki_pos, desc, to); kfree(buff); return ret; } =20 static const struct file_operations rs_sta_dbgfs_stats_table_ops =3D { - .read =3D il4965_rs_sta_dbgfs_stats_table_read, + .read_iter =3D il4965_rs_sta_dbgfs_stats_table_read, .open =3D simple_open, .llseek =3D default_llseek, }; =20 static ssize_t -il4965_rs_sta_dbgfs_rate_scale_data_read(struct file *file, - char __user *user_buf, size_t count, - loff_t *ppos) +il4965_rs_sta_dbgfs_rate_scale_data_read(struct kiocb *iocb, struct iov_it= er *to) { char buff[120]; int desc =3D 0; - struct il_lq_sta *lq_sta =3D file->private_data; + struct il_lq_sta *lq_sta =3D iocb->ki_filp->private_data; struct il_scale_tbl_info *tbl =3D &lq_sta->lq_info[lq_sta->active_tbl]; =20 if (is_Ht(tbl->lq_type)) @@ -2735,11 +2730,11 @@ il4965_rs_sta_dbgfs_rate_scale_data_read(struct fil= e *file, sprintf(buff + desc, "Bit Rate=3D %d Mb/s\n", il_rates[lq_sta->last_txrate_idx].ieee >> 1); =20 - return simple_read_from_buffer(user_buf, count, ppos, buff, desc); + return simple_copy_to_iter(buff, &iocb->ki_pos, desc, to); } =20 static const struct file_operations rs_sta_dbgfs_rate_scale_data_ops =3D { - .read =3D il4965_rs_sta_dbgfs_rate_scale_data_read, + .read_iter =3D il4965_rs_sta_dbgfs_rate_scale_data_read, .open =3D simple_open, .llseek =3D default_llseek, }; diff --git a/drivers/net/wireless/intel/iwlegacy/debug.c b/drivers/net/wire= less/intel/iwlegacy/debug.c index d998a3f1b056..c824c1db8186 100644 --- a/drivers/net/wireless/intel/iwlegacy/debug.c +++ b/drivers/net/wireless/intel/iwlegacy/debug.c @@ -120,20 +120,18 @@ EXPORT_SYMBOL(il_update_stats); =20 /* file operation */ #define DEBUGFS_READ_FUNC(name) \ -static ssize_t il_dbgfs_##name##_read(struct file *file, \ - char __user *user_buf, \ - size_t count, loff_t *ppos); +static ssize_t il_dbgfs_##name##_read(struct kiocb *iocb, \ + struct iov_iter *to); \ =20 #define DEBUGFS_WRITE_FUNC(name) \ -static ssize_t il_dbgfs_##name##_write(struct file *file, \ - const char __user *user_buf, \ - size_t count, loff_t *ppos); +static ssize_t il_dbgfs_##name##_write(struct kiocb *iocb, \ + struct iov_iter *from); \ =20 =20 #define DEBUGFS_READ_FILE_OPS(name) \ DEBUGFS_READ_FUNC(name); \ static const struct file_operations il_dbgfs_##name##_ops =3D { \ - .read =3D il_dbgfs_##name##_read, \ + .read_iter =3D il_dbgfs_##name##_read, \ .open =3D simple_open, \ .llseek =3D generic_file_llseek, \ }; @@ -141,7 +139,7 @@ static const struct file_operations il_dbgfs_##name##_o= ps =3D { \ #define DEBUGFS_WRITE_FILE_OPS(name) \ DEBUGFS_WRITE_FUNC(name); \ static const struct file_operations il_dbgfs_##name##_ops =3D { \ - .write =3D il_dbgfs_##name##_write, \ + .write_iter =3D il_dbgfs_##name##_write, \ .open =3D simple_open, \ .llseek =3D generic_file_llseek, \ }; @@ -150,8 +148,8 @@ static const struct file_operations il_dbgfs_##name##_o= ps =3D { \ DEBUGFS_READ_FUNC(name); \ DEBUGFS_WRITE_FUNC(name); \ static const struct file_operations il_dbgfs_##name##_ops =3D { \ - .write =3D il_dbgfs_##name##_write, \ - .read =3D il_dbgfs_##name##_read, \ + .write_iter =3D il_dbgfs_##name##_write, \ + .read_iter =3D il_dbgfs_##name##_read, \ .open =3D simple_open, \ .llseek =3D generic_file_llseek, \ }; @@ -196,12 +194,10 @@ il_get_ctrl_string(int cmd) } } =20 -static ssize_t -il_dbgfs_tx_stats_read(struct file *file, char __user *user_buf, size_t co= unt, - loff_t *ppos) +static ssize_t il_dbgfs_tx_stats_read(struct kiocb *iocb, struct iov_iter = *to) { =20 - struct il_priv *il =3D file->private_data; + struct il_priv *il =3D iocb->ki_filp->private_data; char *buf; int pos =3D 0; =20 @@ -231,24 +227,23 @@ il_dbgfs_tx_stats_read(struct file *file, char __user= *user_buf, size_t count, pos +=3D scnprintf(buf + pos, bufsz - pos, "\tbytes: %llu\n", il->tx_stats.data_bytes); - ret =3D simple_read_from_buffer(user_buf, count, ppos, buf, pos); + ret =3D simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); kfree(buf); return ret; } =20 static ssize_t -il_dbgfs_clear_traffic_stats_write(struct file *file, - const char __user *user_buf, size_t count, - loff_t *ppos) +il_dbgfs_clear_traffic_stats_write(struct kiocb *iocb, struct iov_iter *fr= om) { - struct il_priv *il =3D file->private_data; + struct il_priv *il =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); u32 clear_flag; char buf[8]; int buf_size; =20 memset(buf, 0, sizeof(buf)); buf_size =3D min(count, sizeof(buf) - 1); - if (copy_from_user(buf, user_buf, buf_size)) + if (!copy_from_iter_full(buf, buf_size, from)) return -EFAULT; if (sscanf(buf, "%x", &clear_flag) !=3D 1) return -EFAULT; @@ -257,12 +252,10 @@ il_dbgfs_clear_traffic_stats_write(struct file *file, return count; } =20 -static ssize_t -il_dbgfs_rx_stats_read(struct file *file, char __user *user_buf, size_t co= unt, - loff_t *ppos) +static ssize_t il_dbgfs_rx_stats_read(struct kiocb *iocb, struct iov_iter = *to) { =20 - struct il_priv *il =3D file->private_data; + struct il_priv *il =3D iocb->ki_filp->private_data; char *buf; int pos =3D 0; int cnt; @@ -293,7 +286,7 @@ il_dbgfs_rx_stats_read(struct file *file, char __user *= user_buf, size_t count, scnprintf(buf + pos, bufsz - pos, "\tbytes: %llu\n", il->rx_stats.data_bytes); =20 - ret =3D simple_read_from_buffer(user_buf, count, ppos, buf, pos); + ret =3D simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); kfree(buf); return ret; } @@ -301,16 +294,14 @@ il_dbgfs_rx_stats_read(struct file *file, char __user= *user_buf, size_t count, #define BYTE1_MASK 0x000000ff; #define BYTE2_MASK 0x0000ffff; #define BYTE3_MASK 0x00ffffff; -static ssize_t -il_dbgfs_sram_read(struct file *file, char __user *user_buf, size_t count, - loff_t *ppos) +static ssize_t il_dbgfs_sram_read(struct kiocb *iocb, struct iov_iter *to) { u32 val; char *buf; ssize_t ret; int i; int pos =3D 0; - struct il_priv *il =3D file->private_data; + struct il_priv *il =3D iocb->ki_filp->private_data; size_t bufsz; =20 /* default is to dump the entire data segment */ @@ -355,23 +346,22 @@ il_dbgfs_sram_read(struct file *file, char __user *us= er_buf, size_t count, } pos +=3D scnprintf(buf + pos, bufsz - pos, "\n"); =20 - ret =3D simple_read_from_buffer(user_buf, count, ppos, buf, pos); + ret =3D simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); kfree(buf); return ret; } =20 -static ssize_t -il_dbgfs_sram_write(struct file *file, const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t il_dbgfs_sram_write(struct kiocb *iocb, struct iov_iter *fr= om) { - struct il_priv *il =3D file->private_data; + struct il_priv *il =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); char buf[64]; int buf_size; u32 offset, len; =20 memset(buf, 0, sizeof(buf)); buf_size =3D min(count, sizeof(buf) - 1); - if (copy_from_user(buf, user_buf, buf_size)) + if (!copy_from_iter_full(buf, buf_size, from)) return -EFAULT; =20 if (sscanf(buf, "%x,%x", &offset, &len) =3D=3D 2) { @@ -385,11 +375,9 @@ il_dbgfs_sram_write(struct file *file, const char __us= er *user_buf, return count; } =20 -static ssize_t -il_dbgfs_stations_read(struct file *file, char __user *user_buf, size_t co= unt, - loff_t *ppos) +static ssize_t il_dbgfs_stations_read(struct kiocb *iocb, struct iov_iter = *to) { - struct il_priv *il =3D file->private_data; + struct il_priv *il =3D iocb->ki_filp->private_data; struct il_station_entry *station; int max_sta =3D il->hw_params.max_stations; char *buf; @@ -444,17 +432,15 @@ il_dbgfs_stations_read(struct file *file, char __user= *user_buf, size_t count, pos +=3D scnprintf(buf + pos, bufsz - pos, "\n"); } =20 - ret =3D simple_read_from_buffer(user_buf, count, ppos, buf, pos); + ret =3D simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); kfree(buf); return ret; } =20 -static ssize_t -il_dbgfs_nvm_read(struct file *file, char __user *user_buf, size_t count, - loff_t *ppos) +static ssize_t il_dbgfs_nvm_read(struct kiocb *iocb, struct iov_iter *to) { ssize_t ret; - struct il_priv *il =3D file->private_data; + struct il_priv *il =3D iocb->ki_filp->private_data; int pos =3D 0, ofs =3D 0, buf_size =3D 0; const u8 *ptr; char *buf; @@ -488,16 +474,14 @@ il_dbgfs_nvm_read(struct file *file, char __user *use= r_buf, size_t count, ofs, ptr + ofs); } =20 - ret =3D simple_read_from_buffer(user_buf, count, ppos, buf, pos); + ret =3D simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); kfree(buf); return ret; } =20 -static ssize_t -il_dbgfs_channels_read(struct file *file, char __user *user_buf, size_t co= unt, - loff_t *ppos) +static ssize_t il_dbgfs_channels_read(struct kiocb *iocb, struct iov_iter = *to) { - struct il_priv *il =3D file->private_data; + struct il_priv *il =3D iocb->ki_filp->private_data; struct ieee80211_channel *channels =3D NULL; const struct ieee80211_supported_band *supp_band =3D NULL; int pos =3D 0, i, bufsz =3D PAGE_SIZE; @@ -567,17 +551,15 @@ il_dbgfs_channels_read(struct file *file, char __user= *user_buf, size_t count, flags & IEEE80211_CHAN_NO_IR ? "passive only" : "active/passive"); } - ret =3D simple_read_from_buffer(user_buf, count, ppos, buf, pos); + ret =3D simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); kfree(buf); return ret; } =20 -static ssize_t -il_dbgfs_status_read(struct file *file, char __user *user_buf, size_t coun= t, - loff_t *ppos) +static ssize_t il_dbgfs_status_read(struct kiocb *iocb, struct iov_iter *t= o) { =20 - struct il_priv *il =3D file->private_data; + struct il_priv *il =3D iocb->ki_filp->private_data; char buf[512]; int pos =3D 0; const size_t bufsz =3D sizeof(buf); @@ -630,15 +612,13 @@ il_dbgfs_status_read(struct file *file, char __user *= user_buf, size_t count, pos +=3D scnprintf(buf + pos, bufsz - pos, "S_FW_ERROR:\t %d\n", test_bit(S_FW_ERROR, &il->status)); - return simple_read_from_buffer(user_buf, count, ppos, buf, pos); + return simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); } =20 -static ssize_t -il_dbgfs_interrupt_read(struct file *file, char __user *user_buf, size_t c= ount, - loff_t *ppos) +static ssize_t il_dbgfs_interrupt_read(struct kiocb *iocb, struct iov_iter= *to) { =20 - struct il_priv *il =3D file->private_data; + struct il_priv *il =3D iocb->ki_filp->private_data; int pos =3D 0; int cnt =3D 0; char *buf; @@ -707,23 +687,23 @@ il_dbgfs_interrupt_read(struct file *file, char __use= r *user_buf, size_t count, scnprintf(buf + pos, bufsz - pos, "Unexpected INTA:\t\t %u\n", il->isr_stats.unhandled); =20 - ret =3D simple_read_from_buffer(user_buf, count, ppos, buf, pos); + ret =3D simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); kfree(buf); return ret; } =20 static ssize_t -il_dbgfs_interrupt_write(struct file *file, const char __user *user_buf, - size_t count, loff_t *ppos) +il_dbgfs_interrupt_write(struct kiocb *iocb, struct iov_iter *from) { - struct il_priv *il =3D file->private_data; + struct il_priv *il =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); char buf[8]; int buf_size; u32 reset_flag; =20 memset(buf, 0, sizeof(buf)); buf_size =3D min(count, sizeof(buf) - 1); - if (copy_from_user(buf, user_buf, buf_size)) + if (!copy_from_iter_full(buf, buf_size, from)) return -EFAULT; if (sscanf(buf, "%x", &reset_flag) !=3D 1) return -EFAULT; @@ -733,11 +713,9 @@ il_dbgfs_interrupt_write(struct file *file, const char= __user *user_buf, return count; } =20 -static ssize_t -il_dbgfs_qos_read(struct file *file, char __user *user_buf, size_t count, - loff_t *ppos) +static ssize_t il_dbgfs_qos_read(struct kiocb *iocb, struct iov_iter *to) { - struct il_priv *il =3D file->private_data; + struct il_priv *il =3D iocb->ki_filp->private_data; int pos =3D 0, i; char buf[256]; const size_t bufsz =3D sizeof(buf); @@ -755,21 +733,21 @@ il_dbgfs_qos_read(struct file *file, char __user *use= r_buf, size_t count, il->qos_data.def_qos_parm.ac[i].edca_txop); } =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, pos); + return simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); } =20 static ssize_t -il_dbgfs_disable_ht40_write(struct file *file, const char __user *user_buf, - size_t count, loff_t *ppos) +il_dbgfs_disable_ht40_write(struct kiocb *iocb, struct iov_iter *from) { - struct il_priv *il =3D file->private_data; + struct il_priv *il =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); char buf[8]; int buf_size; int ht40; =20 memset(buf, 0, sizeof(buf)); buf_size =3D min(count, sizeof(buf) - 1); - if (copy_from_user(buf, user_buf, buf_size)) + if (!copy_from_iter_full(buf, buf_size, from)) return -EFAULT; if (sscanf(buf, "%d", &ht40) !=3D 1) return -EFAULT; @@ -784,11 +762,9 @@ il_dbgfs_disable_ht40_write(struct file *file, const c= har __user *user_buf, return count; } =20 -static ssize_t -il_dbgfs_disable_ht40_read(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t il_dbgfs_disable_ht40_read(struct kiocb *iocb, struct iov_i= ter *to) { - struct il_priv *il =3D file->private_data; + struct il_priv *il =3D iocb->ki_filp->private_data; char buf[100]; int pos =3D 0; const size_t bufsz =3D sizeof(buf); @@ -796,7 +772,7 @@ il_dbgfs_disable_ht40_read(struct file *file, char __us= er *user_buf, pos +=3D scnprintf(buf + pos, bufsz - pos, "11n 40MHz Mode: %s\n", il->disable_ht40 ? "Disabled" : "Enabled"); - return simple_read_from_buffer(user_buf, count, ppos, buf, pos); + return simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); } =20 DEBUGFS_READ_WRITE_FILE_OPS(sram); @@ -808,12 +784,10 @@ DEBUGFS_READ_WRITE_FILE_OPS(interrupt); DEBUGFS_READ_FILE_OPS(qos); DEBUGFS_READ_WRITE_FILE_OPS(disable_ht40); =20 -static ssize_t -il_dbgfs_tx_queue_read(struct file *file, char __user *user_buf, size_t co= unt, - loff_t *ppos) +static ssize_t il_dbgfs_tx_queue_read(struct kiocb *iocb, struct iov_iter = *to) { =20 - struct il_priv *il =3D file->private_data; + struct il_priv *il =3D iocb->ki_filp->private_data; struct il_tx_queue *txq; struct il_queue *q; char *buf; @@ -850,17 +824,15 @@ il_dbgfs_tx_queue_read(struct file *file, char __user= *user_buf, size_t count, " stop-count: %d\n", atomic_read(&il->queue_stop_count[cnt])); } - ret =3D simple_read_from_buffer(user_buf, count, ppos, buf, pos); + ret =3D simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); kfree(buf); return ret; } =20 -static ssize_t -il_dbgfs_rx_queue_read(struct file *file, char __user *user_buf, size_t co= unt, - loff_t *ppos) +static ssize_t il_dbgfs_rx_queue_read(struct kiocb *iocb, struct iov_iter = *to) { =20 - struct il_priv *il =3D file->private_data; + struct il_priv *il =3D iocb->ki_filp->private_data; struct il_rx_queue *rxq =3D &il->rxq; char buf[256]; int pos =3D 0; @@ -881,11 +853,11 @@ il_dbgfs_rx_queue_read(struct file *file, char __user= *user_buf, size_t count, scnprintf(buf + pos, bufsz - pos, "closed_rb_num: Not Allocated\n"); } - return simple_read_from_buffer(user_buf, count, ppos, buf, pos); + return simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); } =20 static ssize_t -il_dbgfs_ucode_rx_stats_read(struct file *file, char __user *user_buf, +__il_dbgfs_ucode_rx_stats_read(struct file *file, char __user *user_buf, size_t count, loff_t *ppos) { struct il_priv *il =3D file->private_data; @@ -893,30 +865,47 @@ il_dbgfs_ucode_rx_stats_read(struct file *file, char = __user *user_buf, return il->debugfs_ops->rx_stats_read(file, user_buf, count, ppos); } =20 +static ssize_t il_dbgfs_ucode_rx_stats_read(struct kiocb *iocb, + struct iov_iter *to) +{ + return vfs_read_iter(iocb, to, __il_dbgfs_ucode_rx_stats_read); +} + static ssize_t -il_dbgfs_ucode_tx_stats_read(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos) +__il_dbgfs_ucode_tx_stats_read(struct file *file, char __user *user_buf, + size_t count, loff_t *ppos) { struct il_priv *il =3D file->private_data; =20 return il->debugfs_ops->tx_stats_read(file, user_buf, count, ppos); } =20 +static ssize_t il_dbgfs_ucode_tx_stats_read(struct kiocb *iocb, + struct iov_iter *to) +{ + return vfs_read_iter(iocb, to, __il_dbgfs_ucode_tx_stats_read); +} + static ssize_t -il_dbgfs_ucode_general_stats_read(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos) +__il_dbgfs_ucode_general_stats_read(struct file *file, char __user *user_b= uf, + size_t count, loff_t *ppos) { struct il_priv *il =3D file->private_data; =20 return il->debugfs_ops->general_stats_read(file, user_buf, count, ppos); } =20 -static ssize_t -il_dbgfs_sensitivity_read(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t il_dbgfs_ucode_general_stats_read(struct kiocb *iocb, + struct iov_iter *to) { + return vfs_read_iter(iocb, to, __il_dbgfs_ucode_general_stats_read); +} =20 - struct il_priv *il =3D file->private_data; + +static ssize_t il_dbgfs_sensitivity_read(struct kiocb *iocb, struct iov_it= er *to) +{ + + struct il_priv *il =3D iocb->ki_filp->private_data; int pos =3D 0; int cnt =3D 0; char *buf; @@ -1005,17 +994,14 @@ il_dbgfs_sensitivity_read(struct file *file, char __= user *user_buf, scnprintf(buf + pos, bufsz - pos, "nrg_th_ofdm:\t\t\t %u\n", data->nrg_th_ofdm); =20 - ret =3D simple_read_from_buffer(user_buf, count, ppos, buf, pos); + ret =3D simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); kfree(buf); return ret; } =20 -static ssize_t -il_dbgfs_chain_noise_read(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t il_dbgfs_chain_noise_read(struct kiocb *iocb, struct iov_it= er *to) { - - struct il_priv *il =3D file->private_data; + struct il_priv *il =3D iocb->ki_filp->private_data; int pos =3D 0; int cnt =3D 0; char *buf; @@ -1076,16 +1062,15 @@ il_dbgfs_chain_noise_read(struct file *file, char _= _user *user_buf, scnprintf(buf + pos, bufsz - pos, "state:\t\t\t\t %u\n", data->state); =20 - ret =3D simple_read_from_buffer(user_buf, count, ppos, buf, pos); + ret =3D simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); kfree(buf); return ret; } =20 -static ssize_t -il_dbgfs_power_save_status_read(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t il_dbgfs_power_save_status_read(struct kiocb *iocb, + struct iov_iter *to) { - struct il_priv *il =3D file->private_data; + struct il_priv *il =3D iocb->ki_filp->private_data; char buf[60]; int pos =3D 0; const size_t bufsz =3D sizeof(buf); @@ -1102,22 +1087,21 @@ il_dbgfs_power_save_status_read(struct file *file, = char __user *user_buf, (pwrsave_status =3D=3D CSR_GP_REG_PHY_POWER_SAVE) ? "PHY" : "error"); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, pos); + return simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); } =20 static ssize_t -il_dbgfs_clear_ucode_stats_write(struct file *file, - const char __user *user_buf, size_t count, - loff_t *ppos) +il_dbgfs_clear_ucode_stats_write(struct kiocb *iocb, struct iov_iter *from) { - struct il_priv *il =3D file->private_data; + struct il_priv *il =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); char buf[8]; int buf_size; int clear; =20 memset(buf, 0, sizeof(buf)); buf_size =3D min(count, sizeof(buf) - 1); - if (copy_from_user(buf, user_buf, buf_size)) + if (!copy_from_iter_full(buf, buf_size, from)) return -EFAULT; if (sscanf(buf, "%d", &clear) !=3D 1) return -EFAULT; @@ -1130,38 +1114,31 @@ il_dbgfs_clear_ucode_stats_write(struct file *file, return count; } =20 -static ssize_t -il_dbgfs_rxon_flags_read(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t il_dbgfs_rxon_flags_read(struct kiocb *iocb, struct iov_ite= r *to) { - - struct il_priv *il =3D file->private_data; + struct il_priv *il =3D iocb->ki_filp->private_data; int len =3D 0; char buf[20]; =20 len =3D sprintf(buf, "0x%04X\n", le32_to_cpu(il->active.flags)); - return simple_read_from_buffer(user_buf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 static ssize_t -il_dbgfs_rxon_filter_flags_read(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos) +il_dbgfs_rxon_filter_flags_read(struct kiocb *iocb, struct iov_iter *to) { - - struct il_priv *il =3D file->private_data; + struct il_priv *il =3D iocb->ki_filp->private_data; int len =3D 0; char buf[20]; =20 len =3D sprintf(buf, "0x%04X\n", le32_to_cpu(il->active.filter_flags)); - return simple_read_from_buffer(user_buf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 -static ssize_t -il_dbgfs_fh_reg_read(struct file *file, char __user *user_buf, size_t coun= t, - loff_t *ppos) +static ssize_t il_dbgfs_fh_reg_read(struct kiocb *iocb, struct iov_iter *t= o) { - struct il_priv *il =3D file->private_data; + struct il_priv *il =3D iocb->ki_filp->private_data; char *buf; int pos =3D 0; ssize_t ret =3D -EFAULT; @@ -1170,8 +1147,7 @@ il_dbgfs_fh_reg_read(struct file *file, char __user *= user_buf, size_t count, ret =3D pos =3D il->ops->dump_fh(il, &buf, true); if (buf) { ret =3D - simple_read_from_buffer(user_buf, count, ppos, buf, - pos); + simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); kfree(buf); } } @@ -1180,11 +1156,9 @@ il_dbgfs_fh_reg_read(struct file *file, char __user = *user_buf, size_t count, } =20 static ssize_t -il_dbgfs_missed_beacon_read(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos) +il_dbgfs_missed_beacon_read(struct kiocb *iocb, struct iov_iter *to) { - - struct il_priv *il =3D file->private_data; + struct il_priv *il =3D iocb->ki_filp->private_data; int pos =3D 0; char buf[12]; const size_t bufsz =3D sizeof(buf); @@ -1193,21 +1167,21 @@ il_dbgfs_missed_beacon_read(struct file *file, char= __user *user_buf, scnprintf(buf + pos, bufsz - pos, "%d\n", il->missed_beacon_threshold); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, pos); + return simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); } =20 static ssize_t -il_dbgfs_missed_beacon_write(struct file *file, const char __user *user_bu= f, - size_t count, loff_t *ppos) +il_dbgfs_missed_beacon_write(struct kiocb *iocb, struct iov_iter *from) { - struct il_priv *il =3D file->private_data; + struct il_priv *il =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); char buf[8]; int buf_size; int missed; =20 memset(buf, 0, sizeof(buf)); buf_size =3D min(count, sizeof(buf) - 1); - if (copy_from_user(buf, user_buf, buf_size)) + if (!copy_from_iter_full(buf, buf_size, from)) return -EFAULT; if (sscanf(buf, "%d", &missed) !=3D 1) return -EINVAL; @@ -1221,12 +1195,9 @@ il_dbgfs_missed_beacon_write(struct file *file, cons= t char __user *user_buf, return count; } =20 -static ssize_t -il_dbgfs_force_reset_read(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t il_dbgfs_force_reset_read(struct kiocb *iocb, struct iov_it= er *to) { - - struct il_priv *il =3D file->private_data; + struct il_priv *il =3D iocb->ki_filp->private_data; int pos =3D 0; char buf[300]; const size_t bufsz =3D sizeof(buf); @@ -1249,35 +1220,32 @@ il_dbgfs_force_reset_read(struct file *file, char _= _user *user_buf, scnprintf(buf + pos, bufsz - pos, "\treset duration: %lu\n", force_reset->reset_duration); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, pos); + return simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); } =20 static ssize_t -il_dbgfs_force_reset_write(struct file *file, const char __user *user_buf, - size_t count, loff_t *ppos) +il_dbgfs_force_reset_write(struct kiocb *iocb, struct iov_iter *from) { - int ret; - struct il_priv *il =3D file->private_data; + struct il_priv *il =3D iocb->ki_filp->private_data; =20 ret =3D il_force_reset(il, true); =20 - return ret ? ret : count; + return ret ? ret : iov_iter_count(from); } =20 static ssize_t -il_dbgfs_wd_timeout_write(struct file *file, const char __user *user_buf, - size_t count, loff_t *ppos) +il_dbgfs_wd_timeout_write(struct kiocb *iocb, struct iov_iter *from) { - - struct il_priv *il =3D file->private_data; + struct il_priv *il =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); char buf[8]; int buf_size; int timeout; =20 memset(buf, 0, sizeof(buf)); buf_size =3D min(count, sizeof(buf) - 1); - if (copy_from_user(buf, user_buf, buf_size)) + if (!copy_from_iter_full(buf, buf_size, from)) return -EFAULT; if (sscanf(buf, "%d", &timeout) !=3D 1) return -EINVAL; diff --git a/drivers/net/wireless/intel/iwlwifi/dvm/debugfs.c b/drivers/net= /wireless/intel/iwlwifi/dvm/debugfs.c index b246dbd371b3..b2ff6164fbcb 100644 --- a/drivers/net/wireless/intel/iwlwifi/dvm/debugfs.c +++ b/drivers/net/wireless/intel/iwlwifi/dvm/debugfs.c @@ -27,14 +27,14 @@ /* file operation */ #define DEBUGFS_READ_FILE_OPS(name) \ static const struct file_operations iwl_dbgfs_##name##_ops =3D { \ - .read =3D iwl_dbgfs_##name##_read, \ + .read_iter =3D iwl_dbgfs_##name##_read, \ .open =3D simple_open, \ .llseek =3D generic_file_llseek, \ }; =20 #define DEBUGFS_WRITE_FILE_OPS(name) \ static const struct file_operations iwl_dbgfs_##name##_ops =3D { \ - .write =3D iwl_dbgfs_##name##_write, \ + .write_iter =3D iwl_dbgfs_##name##_write, \ .open =3D simple_open, \ .llseek =3D generic_file_llseek, \ }; @@ -42,15 +42,13 @@ static const struct file_operations iwl_dbgfs_##name##_= ops =3D { \ =20 #define DEBUGFS_READ_WRITE_FILE_OPS(name) \ static const struct file_operations iwl_dbgfs_##name##_ops =3D { \ - .write =3D iwl_dbgfs_##name##_write, \ - .read =3D iwl_dbgfs_##name##_read, \ + .write_iter =3D iwl_dbgfs_##name##_write, \ + .read_iter =3D iwl_dbgfs_##name##_read, \ .open =3D simple_open, \ .llseek =3D generic_file_llseek, \ }; =20 -static ssize_t iwl_dbgfs_sram_read(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t iwl_dbgfs_sram_read(struct kiocb *iocb, struct iov_iter *to) { u32 val =3D 0; char *buf; @@ -61,7 +59,7 @@ static ssize_t iwl_dbgfs_sram_read(struct file *file, int len =3D 0; int pos =3D 0; int sram; - struct iwl_priv *priv =3D file->private_data; + struct iwl_priv *priv =3D iocb->ki_filp->private_data; const struct fw_img *img; size_t bufsz; =20 @@ -133,23 +131,22 @@ static ssize_t iwl_dbgfs_sram_read(struct file *file, if (i) pos +=3D scnprintf(buf + pos, bufsz - pos, "\n"); =20 - ret =3D simple_read_from_buffer(user_buf, count, ppos, buf, pos); + ret =3D simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); kfree(buf); return ret; } =20 -static ssize_t iwl_dbgfs_sram_write(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t iwl_dbgfs_sram_write(struct kiocb *iocb, struct iov_iter *f= rom) { - struct iwl_priv *priv =3D file->private_data; + struct iwl_priv *priv =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); char buf[64]; int buf_size; u32 offset, len; =20 memset(buf, 0, sizeof(buf)); buf_size =3D min(count, sizeof(buf) - 1); - if (copy_from_user(buf, user_buf, buf_size)) + if (!copy_from_iter_full(buf, buf_size, from)) return -EFAULT; =20 if (sscanf(buf, "%x,%x", &offset, &len) =3D=3D 2) { @@ -166,24 +163,21 @@ static ssize_t iwl_dbgfs_sram_write(struct file *file, return count; } =20 -static ssize_t iwl_dbgfs_wowlan_sram_read(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t iwl_dbgfs_wowlan_sram_read(struct kiocb *iocb, + struct iov_iter *to) { - struct iwl_priv *priv =3D file->private_data; + struct iwl_priv *priv =3D iocb->ki_filp->private_data; const struct fw_img *img =3D &priv->fw->img[IWL_UCODE_WOWLAN]; =20 if (!priv->wowlan_sram) return -ENODATA; =20 - return simple_read_from_buffer(user_buf, count, ppos, - priv->wowlan_sram, - img->sec[IWL_UCODE_SECTION_DATA].len); + return simple_copy_to_iter(priv->wowlan_sram, &iocb->ki_pos, + img->sec[IWL_UCODE_SECTION_DATA].len, to); } -static ssize_t iwl_dbgfs_stations_read(struct file *file, char __user *use= r_buf, - size_t count, loff_t *ppos) +static ssize_t iwl_dbgfs_stations_read(struct kiocb *iocb, struct iov_iter= *to) { - struct iwl_priv *priv =3D file->private_data; + struct iwl_priv *priv =3D iocb->ki_filp->private_data; struct iwl_station_entry *station; struct iwl_tid_data *tid_data; char *buf; @@ -231,18 +225,15 @@ static ssize_t iwl_dbgfs_stations_read(struct file *f= ile, char __user *user_buf, pos +=3D scnprintf(buf + pos, bufsz - pos, "\n"); } =20 - ret =3D simple_read_from_buffer(user_buf, count, ppos, buf, pos); + ret =3D simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); kfree(buf); return ret; } =20 -static ssize_t iwl_dbgfs_nvm_read(struct file *file, - char __user *user_buf, - size_t count, - loff_t *ppos) +static ssize_t iwl_dbgfs_nvm_read(struct kiocb *iocb, struct iov_iter *to) { ssize_t ret; - struct iwl_priv *priv =3D file->private_data; + struct iwl_priv *priv =3D iocb->ki_filp->private_data; int pos =3D 0, ofs =3D 0, buf_size =3D 0; const u8 *ptr; char *buf; @@ -270,15 +261,14 @@ static ssize_t iwl_dbgfs_nvm_read(struct file *file, ofs, ptr + ofs); } =20 - ret =3D simple_read_from_buffer(user_buf, count, ppos, buf, pos); + ret =3D simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); kfree(buf); return ret; } =20 -static ssize_t iwl_dbgfs_channels_read(struct file *file, char __user *use= r_buf, - size_t count, loff_t *ppos) +static ssize_t iwl_dbgfs_channels_read(struct kiocb *iocb, struct iov_iter= *to) { - struct iwl_priv *priv =3D file->private_data; + struct iwl_priv *priv =3D iocb->ki_filp->private_data; struct ieee80211_channel *channels =3D NULL; const struct ieee80211_supported_band *supp_band =3D NULL; int pos =3D 0, i, bufsz =3D PAGE_SIZE; @@ -335,16 +325,14 @@ static ssize_t iwl_dbgfs_channels_read(struct file *f= ile, char __user *user_buf, IEEE80211_CHAN_NO_IR ? "passive only" : "active/passive"); } - ret =3D simple_read_from_buffer(user_buf, count, ppos, buf, pos); + ret =3D simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); kfree(buf); return ret; } =20 -static ssize_t iwl_dbgfs_status_read(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) { - - struct iwl_priv *priv =3D file->private_data; +static ssize_t iwl_dbgfs_status_read(struct kiocb *iocb, struct iov_iter *= to) +{ + struct iwl_priv *priv =3D iocb->ki_filp->private_data; char buf[512]; int pos =3D 0; const size_t bufsz =3D sizeof(buf); @@ -371,14 +359,13 @@ static ssize_t iwl_dbgfs_status_read(struct file *fil= e, test_bit(STATUS_POWER_PMI, &priv->status)); pos +=3D scnprintf(buf + pos, bufsz - pos, "STATUS_FW_ERROR:\t %d\n", test_bit(STATUS_FW_ERROR, &priv->status)); - return simple_read_from_buffer(user_buf, count, ppos, buf, pos); + return simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); } =20 -static ssize_t iwl_dbgfs_rx_handlers_read(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) { - - struct iwl_priv *priv =3D file->private_data; +static ssize_t iwl_dbgfs_rx_handlers_read(struct kiocb *iocb, + struct iov_iter *to) +{ + struct iwl_priv *priv =3D iocb->ki_filp->private_data; =20 int pos =3D 0; int cnt =3D 0; @@ -398,24 +385,23 @@ static ssize_t iwl_dbgfs_rx_handlers_read(struct file= *file, priv->rx_handlers_stats[cnt]); } =20 - ret =3D simple_read_from_buffer(user_buf, count, ppos, buf, pos); + ret =3D simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); kfree(buf); return ret; } =20 -static ssize_t iwl_dbgfs_rx_handlers_write(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t iwl_dbgfs_rx_handlers_write(struct kiocb *iocb, + struct iov_iter *from) { - struct iwl_priv *priv =3D file->private_data; - + struct iwl_priv *priv =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); char buf[8]; int buf_size; u32 reset_flag; =20 memset(buf, 0, sizeof(buf)); buf_size =3D min(count, sizeof(buf) - 1); - if (copy_from_user(buf, user_buf, buf_size)) + if (!copy_from_iter_full(buf, buf_size, from)) return -EFAULT; if (sscanf(buf, "%x", &reset_flag) !=3D 1) return -EFAULT; @@ -426,10 +412,9 @@ static ssize_t iwl_dbgfs_rx_handlers_write(struct file= *file, return count; } =20 -static ssize_t iwl_dbgfs_qos_read(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t iwl_dbgfs_qos_read(struct kiocb *iocb, struct iov_iter *to) { - struct iwl_priv *priv =3D file->private_data; + struct iwl_priv *priv =3D iocb->ki_filp->private_data; struct iwl_rxon_context *ctx; int pos =3D 0, i; char buf[256 * NUM_IWL_RXON_CTX]; @@ -450,14 +435,13 @@ static ssize_t iwl_dbgfs_qos_read(struct file *file, = char __user *user_buf, } pos +=3D scnprintf(buf + pos, bufsz - pos, "\n"); } - return simple_read_from_buffer(user_buf, count, ppos, buf, pos); + return simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); } =20 -static ssize_t iwl_dbgfs_thermal_throttling_read(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t iwl_dbgfs_thermal_throttling_read(struct kiocb *iocb, + struct iov_iter *to) { - struct iwl_priv *priv =3D file->private_data; + struct iwl_priv *priv =3D iocb->ki_filp->private_data; struct iwl_tt_mgmt *tt =3D &priv->thermal_throttle; struct iwl_tt_restriction *restriction; char buf[100]; @@ -482,21 +466,21 @@ static ssize_t iwl_dbgfs_thermal_throttling_read(stru= ct file *file, "HT mode: %d\n", restriction->is_ht); } - return simple_read_from_buffer(user_buf, count, ppos, buf, pos); + return simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); } =20 -static ssize_t iwl_dbgfs_disable_ht40_write(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t iwl_dbgfs_disable_ht40_write(struct kiocb *iocb, + struct iov_iter *from) { - struct iwl_priv *priv =3D file->private_data; + struct iwl_priv *priv =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); char buf[8]; int buf_size; int ht40; =20 memset(buf, 0, sizeof(buf)); buf_size =3D min(count, sizeof(buf) - 1); - if (copy_from_user(buf, user_buf, buf_size)) + if (!copy_from_iter_full(buf, buf_size, from)) return -EFAULT; if (sscanf(buf, "%d", &ht40) !=3D 1) return -EFAULT; @@ -508,11 +492,10 @@ static ssize_t iwl_dbgfs_disable_ht40_write(struct fi= le *file, return count; } =20 -static ssize_t iwl_dbgfs_disable_ht40_read(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t iwl_dbgfs_disable_ht40_read(struct kiocb *iocb, + struct iov_iter *to) { - struct iwl_priv *priv =3D file->private_data; + struct iwl_priv *priv =3D iocb->ki_filp->private_data; char buf[100]; int pos =3D 0; const size_t bufsz =3D sizeof(buf); @@ -520,35 +503,34 @@ static ssize_t iwl_dbgfs_disable_ht40_read(struct fil= e *file, pos +=3D scnprintf(buf + pos, bufsz - pos, "11n 40MHz Mode: %s\n", priv->disable_ht40 ? "Disabled" : "Enabled"); - return simple_read_from_buffer(user_buf, count, ppos, buf, pos); + return simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); } =20 -static ssize_t iwl_dbgfs_temperature_read(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t iwl_dbgfs_temperature_read(struct kiocb *iocb, + struct iov_iter *to) { - struct iwl_priv *priv =3D file->private_data; + struct iwl_priv *priv =3D iocb->ki_filp->private_data; char buf[8]; int pos =3D 0; const size_t bufsz =3D sizeof(buf); =20 pos +=3D scnprintf(buf + pos, bufsz - pos, "%d\n", priv->temperature); - return simple_read_from_buffer(user_buf, count, ppos, buf, pos); + return simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); } =20 =20 -static ssize_t iwl_dbgfs_sleep_level_override_write(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t iwl_dbgfs_sleep_level_override_write(struct kiocb *iocb, + struct iov_iter *from) { - struct iwl_priv *priv =3D file->private_data; + struct iwl_priv *priv =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); char buf[8]; int buf_size; int value; =20 memset(buf, 0, sizeof(buf)); buf_size =3D min(count, sizeof(buf) - 1); - if (copy_from_user(buf, user_buf, buf_size)) + if (!copy_from_iter_full(buf, buf_size, from)) return -EFAULT; =20 if (sscanf(buf, "%d", &value) !=3D 1) @@ -579,11 +561,10 @@ static ssize_t iwl_dbgfs_sleep_level_override_write(s= truct file *file, return count; } =20 -static ssize_t iwl_dbgfs_sleep_level_override_read(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t iwl_dbgfs_sleep_level_override_read(struct kiocb *iocb, + struct iov_iter *to) { - struct iwl_priv *priv =3D file->private_data; + struct iwl_priv *priv =3D iocb->ki_filp->private_data; char buf[10]; int pos, value; const size_t bufsz =3D sizeof(buf); @@ -594,14 +575,13 @@ static ssize_t iwl_dbgfs_sleep_level_override_read(st= ruct file *file, value +=3D 1; =20 pos =3D scnprintf(buf, bufsz, "%d\n", value); - return simple_read_from_buffer(user_buf, count, ppos, buf, pos); + return simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); } =20 -static ssize_t iwl_dbgfs_current_sleep_command_read(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t iwl_dbgfs_current_sleep_command_read(struct kiocb *iocb, + struct iov_iter *to) { - struct iwl_priv *priv =3D file->private_data; + struct iwl_priv *priv =3D iocb->ki_filp->private_data; char buf[200]; int pos =3D 0, i; const size_t bufsz =3D sizeof(buf); @@ -618,7 +598,7 @@ static ssize_t iwl_dbgfs_current_sleep_command_read(str= uct file *file, "sleep_interval[%d]: %d\n", i, le32_to_cpu(cmd->sleep_interval[i])); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, pos); + return simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); } =20 DEBUGFS_READ_WRITE_FILE_OPS(sram); @@ -663,11 +643,10 @@ static int iwl_statistics_flag(struct iwl_priv *priv,= char *buf, int bufsz) return p; } =20 -static ssize_t iwl_dbgfs_ucode_rx_stats_read(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t iwl_dbgfs_ucode_rx_stats_read(struct kiocb *iocb, + struct iov_iter *to) { - struct iwl_priv *priv =3D file->private_data; + struct iwl_priv *priv =3D iocb->ki_filp->private_data; int pos =3D 0; char *buf; int bufsz =3D sizeof(struct statistics_rx_phy) * 40 + @@ -1091,16 +1070,15 @@ static ssize_t iwl_dbgfs_ucode_rx_stats_read(struct= file *file, =20 spin_unlock_bh(&priv->statistics.lock); =20 - ret =3D simple_read_from_buffer(user_buf, count, ppos, buf, pos); + ret =3D simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); kfree(buf); return ret; } =20 -static ssize_t iwl_dbgfs_ucode_tx_stats_read(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t iwl_dbgfs_ucode_tx_stats_read(struct kiocb *iocb, + struct iov_iter *to) { - struct iwl_priv *priv =3D file->private_data; + struct iwl_priv *priv =3D iocb->ki_filp->private_data; int pos =3D 0; char *buf; int bufsz =3D (sizeof(struct statistics_tx) * 48) + 250; @@ -1288,16 +1266,15 @@ static ssize_t iwl_dbgfs_ucode_tx_stats_read(struct= file *file, =20 spin_unlock_bh(&priv->statistics.lock); =20 - ret =3D simple_read_from_buffer(user_buf, count, ppos, buf, pos); + ret =3D simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); kfree(buf); return ret; } =20 -static ssize_t iwl_dbgfs_ucode_general_stats_read(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t iwl_dbgfs_ucode_general_stats_read(struct kiocb *iocb, + struct iov_iter *to) { - struct iwl_priv *priv =3D file->private_data; + struct iwl_priv *priv =3D iocb->ki_filp->private_data; int pos =3D 0; char *buf; int bufsz =3D sizeof(struct statistics_general) * 10 + 300; @@ -1408,16 +1385,15 @@ static ssize_t iwl_dbgfs_ucode_general_stats_read(s= truct file *file, =20 spin_unlock_bh(&priv->statistics.lock); =20 - ret =3D simple_read_from_buffer(user_buf, count, ppos, buf, pos); + ret =3D simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); kfree(buf); return ret; } =20 -static ssize_t iwl_dbgfs_ucode_bt_stats_read(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t iwl_dbgfs_ucode_bt_stats_read(struct kiocb *iocb, + struct iov_iter *to) { - struct iwl_priv *priv =3D (struct iwl_priv *)file->private_data; + struct iwl_priv *priv =3D iocb->ki_filp->private_data; int pos =3D 0; char *buf; int bufsz =3D (sizeof(struct statistics_bt_activity) * 24) + 200; @@ -1496,16 +1472,15 @@ static ssize_t iwl_dbgfs_ucode_bt_stats_read(struct= file *file, =20 spin_unlock_bh(&priv->statistics.lock); =20 - ret =3D simple_read_from_buffer(user_buf, count, ppos, buf, pos); + ret =3D simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); kfree(buf); return ret; } =20 -static ssize_t iwl_dbgfs_reply_tx_error_read(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t iwl_dbgfs_reply_tx_error_read(struct kiocb *iocb, + struct iov_iter *to) { - struct iwl_priv *priv =3D (struct iwl_priv *)file->private_data; + struct iwl_priv *priv =3D iocb->ki_filp->private_data; int pos =3D 0; char *buf; int bufsz =3D (sizeof(struct reply_tx_error_statistics) * 24) + @@ -1638,16 +1613,15 @@ static ssize_t iwl_dbgfs_reply_tx_error_read(struct= file *file, pos +=3D scnprintf(buf + pos, bufsz - pos, "UNKNOWN:\t\t\t%u\n", priv->reply_agg_tx_stats.unknown); =20 - ret =3D simple_read_from_buffer(user_buf, count, ppos, buf, pos); + ret =3D simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); kfree(buf); return ret; } =20 -static ssize_t iwl_dbgfs_sensitivity_read(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) { - - struct iwl_priv *priv =3D file->private_data; +static ssize_t iwl_dbgfs_sensitivity_read(struct kiocb *iocb, + struct iov_iter *to) +{ + struct iwl_priv *priv =3D iocb->ki_filp->private_data; int pos =3D 0; int cnt =3D 0; char *buf; @@ -1716,17 +1690,16 @@ static ssize_t iwl_dbgfs_sensitivity_read(struct fi= le *file, pos +=3D scnprintf(buf + pos, bufsz - pos, "nrg_th_ofdm:\t\t\t %u\n", data->nrg_th_ofdm); =20 - ret =3D simple_read_from_buffer(user_buf, count, ppos, buf, pos); + ret =3D simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); kfree(buf); return ret; } =20 =20 -static ssize_t iwl_dbgfs_chain_noise_read(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) { - - struct iwl_priv *priv =3D file->private_data; +static ssize_t iwl_dbgfs_chain_noise_read(struct kiocb *iocb, + struct iov_iter *to) +{ + struct iwl_priv *priv =3D iocb->ki_filp->private_data; int pos =3D 0; int cnt =3D 0; char *buf; @@ -1773,16 +1746,15 @@ static ssize_t iwl_dbgfs_chain_noise_read(struct fi= le *file, pos +=3D scnprintf(buf + pos, bufsz - pos, "state:\t\t\t\t %u\n", data->state); =20 - ret =3D simple_read_from_buffer(user_buf, count, ppos, buf, pos); + ret =3D simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); kfree(buf); return ret; } =20 -static ssize_t iwl_dbgfs_power_save_status_read(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t iwl_dbgfs_power_save_status_read(struct kiocb *iocb, + struct iov_iter *to) { - struct iwl_priv *priv =3D file->private_data; + struct iwl_priv *priv =3D iocb->ki_filp->private_data; char buf[60]; int pos =3D 0; const size_t bufsz =3D sizeof(buf); @@ -1798,21 +1770,21 @@ static ssize_t iwl_dbgfs_power_save_status_read(str= uct file *file, (pwrsave_status =3D=3D CSR_GP_REG_PHY_POWER_SAVE) ? "PHY" : "error"); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, pos); + return simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); } =20 -static ssize_t iwl_dbgfs_clear_ucode_statistics_write(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t iwl_dbgfs_clear_ucode_statistics_write(struct kiocb *iocb, + struct iov_iter *from) { - struct iwl_priv *priv =3D file->private_data; + struct iwl_priv *priv =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); char buf[8]; int buf_size; int clear; =20 memset(buf, 0, sizeof(buf)); buf_size =3D min(count, sizeof(buf) - 1); - if (copy_from_user(buf, user_buf, buf_size)) + if (!copy_from_iter_full(buf, buf_size, from)) return -EFAULT; if (sscanf(buf, "%d", &clear) !=3D 1) return -EFAULT; @@ -1825,11 +1797,10 @@ static ssize_t iwl_dbgfs_clear_ucode_statistics_wri= te(struct file *file, return count; } =20 -static ssize_t iwl_dbgfs_ucode_tracing_read(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) { - - struct iwl_priv *priv =3D file->private_data; +static ssize_t iwl_dbgfs_ucode_tracing_read(struct kiocb *iocb, + struct iov_iter *to) +{ + struct iwl_priv *priv =3D iocb->ki_filp->private_data; int pos =3D 0; char buf[128]; const size_t bufsz =3D sizeof(buf); @@ -1843,21 +1814,21 @@ static ssize_t iwl_dbgfs_ucode_tracing_read(struct = file *file, pos +=3D scnprintf(buf + pos, bufsz - pos, "wraps_more_count:\t\t %u\n", priv->event_log.wraps_more_count); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, pos); + return simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); } =20 -static ssize_t iwl_dbgfs_ucode_tracing_write(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t iwl_dbgfs_ucode_tracing_write(struct kiocb *iocb, + struct iov_iter *from) { - struct iwl_priv *priv =3D file->private_data; + struct iwl_priv *priv =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); char buf[8]; int buf_size; int trace; =20 memset(buf, 0, sizeof(buf)); buf_size =3D min(count, sizeof(buf) - 1); - if (copy_from_user(buf, user_buf, buf_size)) + if (!copy_from_iter_full(buf, buf_size, from)) return -EFAULT; if (sscanf(buf, "%d", &trace) !=3D 1) return -EFAULT; @@ -1876,37 +1847,34 @@ static ssize_t iwl_dbgfs_ucode_tracing_write(struct= file *file, return count; } =20 -static ssize_t iwl_dbgfs_rxon_flags_read(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) { - - struct iwl_priv *priv =3D file->private_data; +static ssize_t iwl_dbgfs_rxon_flags_read(struct kiocb *iocb, + struct iov_iter *to) +{ + struct iwl_priv *priv =3D iocb->ki_filp->private_data; int len =3D 0; char buf[20]; =20 len =3D sprintf(buf, "0x%04X\n", le32_to_cpu(priv->contexts[IWL_RXON_CTX_BSS].active.flags)); - return simple_read_from_buffer(user_buf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 -static ssize_t iwl_dbgfs_rxon_filter_flags_read(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) { - - struct iwl_priv *priv =3D file->private_data; +static ssize_t iwl_dbgfs_rxon_filter_flags_read(struct kiocb *iocb, + struct iov_iter *to) +{ + struct iwl_priv *priv =3D iocb->ki_filp->private_data; int len =3D 0; char buf[20]; =20 len =3D sprintf(buf, "0x%04X\n", le32_to_cpu(priv->contexts[IWL_RXON_CTX_BSS].active.filter_flags)); - return simple_read_from_buffer(user_buf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 -static ssize_t iwl_dbgfs_missed_beacon_read(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) { - - struct iwl_priv *priv =3D file->private_data; +static ssize_t iwl_dbgfs_missed_beacon_read(struct kiocb *iocb, + struct iov_iter *to) +{ + struct iwl_priv *priv =3D iocb->ki_filp->private_data; int pos =3D 0; char buf[12]; const size_t bufsz =3D sizeof(buf); @@ -1914,21 +1882,21 @@ static ssize_t iwl_dbgfs_missed_beacon_read(struct = file *file, pos +=3D scnprintf(buf + pos, bufsz - pos, "%d\n", priv->missed_beacon_threshold); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, pos); + return simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); } =20 -static ssize_t iwl_dbgfs_missed_beacon_write(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t iwl_dbgfs_missed_beacon_write(struct kiocb *iocb, + struct iov_iter *from) { - struct iwl_priv *priv =3D file->private_data; + struct iwl_priv *priv =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); char buf[8]; int buf_size; int missed; =20 memset(buf, 0, sizeof(buf)); buf_size =3D min(count, sizeof(buf) - 1); - if (copy_from_user(buf, user_buf, buf_size)) + if (!copy_from_iter_full(buf, buf_size, from)) return -EFAULT; if (sscanf(buf, "%d", &missed) !=3D 1) return -EINVAL; @@ -1943,11 +1911,10 @@ static ssize_t iwl_dbgfs_missed_beacon_write(struct= file *file, return count; } =20 -static ssize_t iwl_dbgfs_plcp_delta_read(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) { - - struct iwl_priv *priv =3D file->private_data; +static ssize_t iwl_dbgfs_plcp_delta_read(struct kiocb *iocb, + struct iov_iter *to) +{ + struct iwl_priv *priv =3D iocb->ki_filp->private_data; int pos =3D 0; char buf[12]; const size_t bufsz =3D sizeof(buf); @@ -1955,21 +1922,21 @@ static ssize_t iwl_dbgfs_plcp_delta_read(struct fil= e *file, pos +=3D scnprintf(buf + pos, bufsz - pos, "%u\n", priv->plcp_delta_threshold); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, pos); + return simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); } =20 -static ssize_t iwl_dbgfs_plcp_delta_write(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) { - - struct iwl_priv *priv =3D file->private_data; +static ssize_t iwl_dbgfs_plcp_delta_write(struct kiocb *iocb, + struct iov_iter *from) +{ + struct iwl_priv *priv =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); char buf[8]; int buf_size; int plcp; =20 memset(buf, 0, sizeof(buf)); buf_size =3D min(count, sizeof(buf) - 1); - if (copy_from_user(buf, user_buf, buf_size)) + if (!copy_from_iter_full(buf, buf_size, from)) return -EFAULT; if (sscanf(buf, "%d", &plcp) !=3D 1) return -EINVAL; @@ -1982,11 +1949,9 @@ static ssize_t iwl_dbgfs_plcp_delta_write(struct fil= e *file, return count; } =20 -static ssize_t iwl_dbgfs_rf_reset_read(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t iwl_dbgfs_rf_reset_read(struct kiocb *iocb, struct iov_iter= *to) { - struct iwl_priv *priv =3D file->private_data; + struct iwl_priv *priv =3D iocb->ki_filp->private_data; int pos =3D 0; char buf[300]; const size_t bufsz =3D sizeof(buf); @@ -2004,32 +1969,32 @@ static ssize_t iwl_dbgfs_rf_reset_read(struct file = *file, "\tnumber of reset request reject: %d\n", rf_reset->reset_reject_count); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, pos); + return simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); } =20 -static ssize_t iwl_dbgfs_rf_reset_write(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) { - - struct iwl_priv *priv =3D file->private_data; +static ssize_t iwl_dbgfs_rf_reset_write(struct kiocb *iocb, + struct iov_iter *from) +{ + struct iwl_priv *priv =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); int ret; =20 ret =3D iwl_force_rf_reset(priv, true); return ret ? ret : count; } =20 -static ssize_t iwl_dbgfs_txfifo_flush_write(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) { - - struct iwl_priv *priv =3D file->private_data; +static ssize_t iwl_dbgfs_txfifo_flush_write(struct kiocb *iocb, + struct iov_iter *from) +{ + struct iwl_priv *priv =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); char buf[8]; int buf_size; int flush; =20 memset(buf, 0, sizeof(buf)); buf_size =3D min(count, sizeof(buf) - 1); - if (copy_from_user(buf, user_buf, buf_size)) + if (!copy_from_iter_full(buf, buf_size, from)) return -EFAULT; if (sscanf(buf, "%d", &flush) !=3D 1) return -EINVAL; @@ -2042,18 +2007,16 @@ static ssize_t iwl_dbgfs_txfifo_flush_write(struct = file *file, return count; } =20 -static ssize_t iwl_dbgfs_bt_traffic_read(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) { - - struct iwl_priv *priv =3D (struct iwl_priv *)file->private_data; +static ssize_t iwl_dbgfs_bt_traffic_read(struct kiocb *iocb, struct iov_it= er *to) +{ + struct iwl_priv *priv =3D iocb->ki_filp->private_data; int pos =3D 0; char buf[200]; const size_t bufsz =3D sizeof(buf); =20 if (!priv->bt_enable_flag) { pos +=3D scnprintf(buf + pos, bufsz - pos, "BT coex disabled\n"); - return simple_read_from_buffer(user_buf, count, ppos, buf, pos); + return simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); } pos +=3D scnprintf(buf + pos, bufsz - pos, "BT enable flag: 0x%x\n", priv->bt_enable_flag); @@ -2084,14 +2047,13 @@ static ssize_t iwl_dbgfs_bt_traffic_read(struct fil= e *file, break; } =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, pos); + return simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); } =20 -static ssize_t iwl_dbgfs_protection_mode_read(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t iwl_dbgfs_protection_mode_read(struct kiocb *iocb, + struct iov_iter *to) { - struct iwl_priv *priv =3D (struct iwl_priv *)file->private_data; + struct iwl_priv *priv =3D iocb->ki_filp->private_data; =20 int pos =3D 0; char buf[40]; @@ -2105,14 +2067,14 @@ static ssize_t iwl_dbgfs_protection_mode_read(struc= t file *file, else pos +=3D scnprintf(buf + pos, bufsz - pos, "N/A"); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, pos); + return simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); } =20 -static ssize_t iwl_dbgfs_protection_mode_write(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) { - - struct iwl_priv *priv =3D file->private_data; +static ssize_t iwl_dbgfs_protection_mode_write(struct kiocb *iocb, + struct iov_iter *from) +{ + struct iwl_priv *priv =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); char buf[8]; int buf_size; int rts; @@ -2122,7 +2084,7 @@ static ssize_t iwl_dbgfs_protection_mode_write(struct= file *file, =20 memset(buf, 0, sizeof(buf)); buf_size =3D min(count, sizeof(buf) - 1); - if (copy_from_user(buf, user_buf, buf_size)) + if (!copy_from_iter_full(buf, buf_size, from)) return -EFAULT; if (sscanf(buf, "%d", &rts) !=3D 1) return -EINVAL; @@ -2149,17 +2111,17 @@ static int iwl_cmd_echo_test(struct iwl_priv *priv) return ret; } =20 -static ssize_t iwl_dbgfs_echo_test_write(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t iwl_dbgfs_echo_test_write(struct kiocb *iocb, + struct iov_iter *from) { - struct iwl_priv *priv =3D file->private_data; + struct iwl_priv *priv =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); char buf[8]; int buf_size; =20 memset(buf, 0, sizeof(buf)); buf_size =3D min(count, sizeof(buf) - 1); - if (copy_from_user(buf, user_buf, buf_size)) + if (!copy_from_iter_full(buf, buf_size, from)) return -EFAULT; =20 iwl_cmd_echo_test(priv); @@ -2167,26 +2129,24 @@ static ssize_t iwl_dbgfs_echo_test_write(struct fil= e *file, } =20 #ifdef CONFIG_IWLWIFI_DEBUG -static ssize_t iwl_dbgfs_log_event_read(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t iwl_dbgfs_log_event_read(struct kiocb *iocb, struct iov_ite= r *to) { - struct iwl_priv *priv =3D file->private_data; + struct iwl_priv *priv =3D iocb->ki_filp->private_data; char *buf =3D NULL; ssize_t ret; =20 ret =3D iwl_dump_nic_event_log(priv, true, &buf); if (ret > 0) - ret =3D simple_read_from_buffer(user_buf, count, ppos, buf, ret); + ret =3D simple_copy_to_iter(buf, &iocb->ki_pos, ret, to); kfree(buf); return ret; } =20 -static ssize_t iwl_dbgfs_log_event_write(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t iwl_dbgfs_log_event_write(struct kiocb *iocb, + struct iov_iter *from) { - struct iwl_priv *priv =3D file->private_data; + struct iwl_priv *priv =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); u32 event_log_flag; char buf[8]; int buf_size; @@ -2197,7 +2157,7 @@ static ssize_t iwl_dbgfs_log_event_write(struct file = *file, =20 memset(buf, 0, sizeof(buf)); buf_size =3D min(count, sizeof(buf) - 1); - if (copy_from_user(buf, user_buf, buf_size)) + if (!copy_from_iter_full(buf, buf_size, from)) return -EFAULT; if (sscanf(buf, "%u", &event_log_flag) !=3D 1) return -EFAULT; @@ -2208,11 +2168,10 @@ static ssize_t iwl_dbgfs_log_event_write(struct fil= e *file, } #endif =20 -static ssize_t iwl_dbgfs_calib_disabled_read(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t iwl_dbgfs_calib_disabled_read(struct kiocb *iocb, + struct iov_iter *to) { - struct iwl_priv *priv =3D file->private_data; + struct iwl_priv *priv =3D iocb->ki_filp->private_data; char buf[120]; int pos =3D 0; const size_t bufsz =3D sizeof(buf); @@ -2233,21 +2192,21 @@ static ssize_t iwl_dbgfs_calib_disabled_read(struct= file *file, IWL_TX_POWER_CALIB_DISABLED) ? "DISABLED" : "ENABLED"); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, pos); + return simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); } =20 -static ssize_t iwl_dbgfs_calib_disabled_write(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t iwl_dbgfs_calib_disabled_write(struct kiocb *iocb, + struct iov_iter *from) { - struct iwl_priv *priv =3D file->private_data; + struct iwl_priv *priv =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); char buf[8]; u32 calib_disabled; int buf_size; =20 memset(buf, 0, sizeof(buf)); buf_size =3D min(count, sizeof(buf) - 1); - if (copy_from_user(buf, user_buf, buf_size)) + if (!copy_from_iter_full(buf, buf_size, from)) return -EFAULT; if (sscanf(buf, "%x", &calib_disabled) !=3D 1) return -EFAULT; @@ -2257,11 +2216,11 @@ static ssize_t iwl_dbgfs_calib_disabled_write(struc= t file *file, return count; } =20 -static ssize_t iwl_dbgfs_fw_restart_write(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t iwl_dbgfs_fw_restart_write(struct kiocb *iocb, + struct iov_iter *from) { - struct iwl_priv *priv =3D file->private_data; + struct iwl_priv *priv =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); bool fw_restart =3D iwlwifi_mod_params.fw_restart; int __maybe_unused ret; =20 diff --git a/drivers/net/wireless/intel/iwlwifi/dvm/rs.c b/drivers/net/wire= less/intel/iwlwifi/dvm/rs.c index f4a6f76cf193..64ef58cc2bc0 100644 --- a/drivers/net/wireless/intel/iwlwifi/dvm/rs.c +++ b/drivers/net/wireless/intel/iwlwifi/dvm/rs.c @@ -3037,20 +3037,20 @@ static void rs_dbgfs_set_mcs(struct iwl_lq_sta *lq_= sta, } } =20 -static ssize_t rs_sta_dbgfs_scale_table_write(struct file *file, - const char __user *user_buf, size_t count, loff_t *ppos) +static ssize_t rs_sta_dbgfs_scale_table_write(struct kiocb *iocb, + struct iov_iter *from) { - struct iwl_lq_sta *lq_sta =3D file->private_data; + struct iwl_lq_sta *lq_sta =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); struct iwl_priv *priv; char buf[64]; size_t buf_size; u32 parsed_rate; =20 - priv =3D lq_sta->drv; memset(buf, 0, sizeof(buf)); buf_size =3D min(count, sizeof(buf) - 1); - if (copy_from_user(buf, user_buf, buf_size)) + if (!copy_from_iter_full(buf, buf_size, from)) return -EFAULT; =20 if (sscanf(buf, "%x", &parsed_rate) =3D=3D 1) @@ -3063,8 +3063,8 @@ static ssize_t rs_sta_dbgfs_scale_table_write(struct = file *file, return count; } =20 -static ssize_t rs_sta_dbgfs_scale_table_read(struct file *file, - char __user *user_buf, size_t count, loff_t *ppos) +static ssize_t rs_sta_dbgfs_scale_table_read(struct kiocb *iocb, + struct iov_iter *to) { char *buff; int desc =3D 0; @@ -3089,7 +3089,7 @@ static ssize_t rs_sta_dbgfs_scale_table_read(struct f= ile *file, { "60", "64QAM 5/6"}, }; =20 - struct iwl_lq_sta *lq_sta =3D file->private_data; + struct iwl_lq_sta *lq_sta =3D iocb->ki_filp->private_data; struct iwl_priv *priv; struct iwl_scale_tbl_info *tbl =3D &(lq_sta->lq_info[lq_sta->active_tbl]); =20 @@ -3160,26 +3160,26 @@ static ssize_t rs_sta_dbgfs_scale_table_read(struct= file *file, } } =20 - ret =3D simple_read_from_buffer(user_buf, count, ppos, buff, desc); + ret =3D simple_copy_to_iter(buff, &iocb->ki_pos, desc, to); kfree(buff); return ret; } =20 static const struct file_operations rs_sta_dbgfs_scale_table_ops =3D { - .write =3D rs_sta_dbgfs_scale_table_write, - .read =3D rs_sta_dbgfs_scale_table_read, + .write_iter =3D rs_sta_dbgfs_scale_table_write, + .read_iter =3D rs_sta_dbgfs_scale_table_read, .open =3D simple_open, .llseek =3D default_llseek, }; -static ssize_t rs_sta_dbgfs_stats_table_read(struct file *file, - char __user *user_buf, size_t count, loff_t *ppos) +static ssize_t rs_sta_dbgfs_stats_table_read(struct kiocb *iocb, + struct iov_iter *to) { char *buff; int desc =3D 0; int i, j; ssize_t ret; =20 - struct iwl_lq_sta *lq_sta =3D file->private_data; + struct iwl_lq_sta *lq_sta =3D iocb->ki_filp->private_data; =20 buff =3D kmalloc(1024, GFP_KERNEL); if (!buff) @@ -3204,21 +3204,21 @@ static ssize_t rs_sta_dbgfs_stats_table_read(struct= file *file, lq_sta->lq_info[i].win[j].success_ratio); } } - ret =3D simple_read_from_buffer(user_buf, count, ppos, buff, desc); + ret =3D simple_copy_to_iter(buff, &iocb->ki_pos, desc, to); kfree(buff); return ret; } =20 static const struct file_operations rs_sta_dbgfs_stats_table_ops =3D { - .read =3D rs_sta_dbgfs_stats_table_read, + .read_iter =3D rs_sta_dbgfs_stats_table_read, .open =3D simple_open, .llseek =3D default_llseek, }; =20 -static ssize_t rs_sta_dbgfs_rate_scale_data_read(struct file *file, - char __user *user_buf, size_t count, loff_t *ppos) +static ssize_t rs_sta_dbgfs_rate_scale_data_read(struct kiocb *iocb, + struct iov_iter *to) { - struct iwl_lq_sta *lq_sta =3D file->private_data; + struct iwl_lq_sta *lq_sta =3D iocb->ki_filp->private_data; struct iwl_scale_tbl_info *tbl =3D &lq_sta->lq_info[lq_sta->active_tbl]; char buff[120]; int desc =3D 0; @@ -3232,11 +3232,11 @@ static ssize_t rs_sta_dbgfs_rate_scale_data_read(st= ruct file *file, "Bit Rate=3D %d Mb/s\n", iwl_rates[lq_sta->last_txrate_idx].ieee >> 1); =20 - return simple_read_from_buffer(user_buf, count, ppos, buff, desc); + return simple_copy_to_iter(buff, &iocb->ki_pos, desc, to); } =20 static const struct file_operations rs_sta_dbgfs_rate_scale_data_ops =3D { - .read =3D rs_sta_dbgfs_rate_scale_data_read, + .read_iter =3D rs_sta_dbgfs_rate_scale_data_read, .open =3D simple_open, .llseek =3D default_llseek, }; diff --git a/drivers/net/wireless/intel/iwlwifi/fw/debugfs.c b/drivers/net/= wireless/intel/iwlwifi/fw/debugfs.c index 751a125a1566..7378c6fed447 100644 --- a/drivers/net/wireless/intel/iwlwifi/fw/debugfs.c +++ b/drivers/net/wireless/intel/iwlwifi/fw/debugfs.c @@ -33,10 +33,10 @@ static int _iwl_dbgfs_##name##_open(struct inode *inode= , \ } =20 #define FWRT_DEBUGFS_READ_WRAPPER(name) \ -static ssize_t _iwl_dbgfs_##name##_read(struct file *file, \ - char __user *user_buf, \ - size_t count, loff_t *ppos) \ +static ssize_t _iwl_dbgfs_##name##_read(struct kiocb *iocb, \ + struct iov_iter *to) \ { \ + struct file *file =3D iocb->ki_filp; \ struct dbgfs_##name##_data *data =3D file->private_data; \ \ if (!data->read_done) { \ @@ -48,8 +48,8 @@ static ssize_t _iwl_dbgfs_##name##_read(struct file *file= , \ \ if (data->rlen < 0) \ return data->rlen; \ - return simple_read_from_buffer(user_buf, count, ppos, \ - data->rbuf, data->rlen); \ + return simple_copy_to_iter(data->rbuf, &iocb->ki_pos, \ + data->rlen, to); \ } =20 static int _iwl_dbgfs_release(struct inode *inode, struct file *file) @@ -63,7 +63,7 @@ static int _iwl_dbgfs_release(struct inode *inode, struct= file *file) FWRT_DEBUGFS_OPEN_WRAPPER(name, buflen, argtype) \ FWRT_DEBUGFS_READ_WRAPPER(name) \ static const struct file_operations iwl_dbgfs_##name##_ops =3D { \ - .read =3D _iwl_dbgfs_##name##_read, \ + .read_iter =3D _iwl_dbgfs_##name##_read, \ .open =3D _iwl_dbgfs_##name##_open, \ .llseek =3D generic_file_llseek, \ .release =3D _iwl_dbgfs_release, \ @@ -83,15 +83,16 @@ static ssize_t _iwl_dbgfs_##name##_write(struct file *f= ile, \ return -EFAULT; \ \ return iwl_dbgfs_##name##_write(arg, buf, buf_size); \ -} +} \ +FOPS_WRITE_ITER_HELPER(_iwl_dbgfs_##name##_write); \ =20 #define _FWRT_DEBUGFS_READ_WRITE_FILE_OPS(name, buflen, argtype) \ FWRT_DEBUGFS_OPEN_WRAPPER(name, buflen, argtype) \ FWRT_DEBUGFS_WRITE_WRAPPER(name, buflen, argtype) \ FWRT_DEBUGFS_READ_WRAPPER(name) \ static const struct file_operations iwl_dbgfs_##name##_ops =3D { \ - .write =3D _iwl_dbgfs_##name##_write, \ - .read =3D _iwl_dbgfs_##name##_read, \ + .write_iter =3D _iwl_dbgfs_##name##_write_iter, \ + .read_iter =3D _iwl_dbgfs_##name##_read, \ .open =3D _iwl_dbgfs_##name##_open, \ .llseek =3D generic_file_llseek, \ .release =3D _iwl_dbgfs_release, \ @@ -101,7 +102,7 @@ static const struct file_operations iwl_dbgfs_##name##_= ops =3D { \ FWRT_DEBUGFS_OPEN_WRAPPER(name, buflen, argtype) \ FWRT_DEBUGFS_WRITE_WRAPPER(name, buflen, argtype) \ static const struct file_operations iwl_dbgfs_##name##_ops =3D { \ - .write =3D _iwl_dbgfs_##name##_write, \ + .write_iter =3D _iwl_dbgfs_##name##_write_iter, \ .open =3D _iwl_dbgfs_##name##_open, \ .llseek =3D generic_file_llseek, \ .release =3D _iwl_dbgfs_release, \ @@ -391,7 +392,7 @@ static int iwl_dbgfs_fw_info_open(struct inode *inode, = struct file *filp) static const struct file_operations iwl_dbgfs_fw_info_ops =3D { .owner =3D THIS_MODULE, .open =3D iwl_dbgfs_fw_info_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D seq_release_private, }; diff --git a/drivers/net/wireless/intel/iwlwifi/mei/main.c b/drivers/net/wi= reless/intel/iwlwifi/mei/main.c index 1dd9106c6513..5ad9530659be 100644 --- a/drivers/net/wireless/intel/iwlwifi/mei/main.c +++ b/drivers/net/wireless/intel/iwlwifi/mei/main.c @@ -1849,9 +1849,8 @@ EXPORT_SYMBOL_GPL(iwl_mei_unregister_complete); #if IS_ENABLED(CONFIG_DEBUG_FS) =20 static ssize_t -iwl_mei_dbgfs_send_start_message_write(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +iwl_mei_dbgfs_send_start_message_write(struct kiocb *iocb, + struct iov_iter *from) { int ret; =20 @@ -1866,26 +1865,25 @@ iwl_mei_dbgfs_send_start_message_write(struct file = *file, =20 out: mutex_unlock(&iwl_mei_mutex); - return ret ?: count; + return ret ?: iov_iter_count(from); } =20 static const struct file_operations iwl_mei_dbgfs_send_start_message_ops = =3D { - .write =3D iwl_mei_dbgfs_send_start_message_write, + .write_iter =3D iwl_mei_dbgfs_send_start_message_write, .open =3D simple_open, .llseek =3D default_llseek, }; =20 -static ssize_t iwl_mei_dbgfs_req_ownership_write(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t iwl_mei_dbgfs_req_ownership_write(struct kiocb *iocb, + struct iov_iter *from) { iwl_mei_get_ownership(); =20 - return count; + return iov_iter_count(from); } =20 static const struct file_operations iwl_mei_dbgfs_req_ownership_ops =3D { - .write =3D iwl_mei_dbgfs_req_ownership_write, + .write_iter =3D iwl_mei_dbgfs_req_ownership_write, .open =3D simple_open, .llseek =3D default_llseek, }; diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/d3.c b/drivers/net/wire= less/intel/iwlwifi/mvm/d3.c index 52518a47554e..1d911bbef018 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/d3.c +++ b/drivers/net/wireless/intel/iwlwifi/mvm/d3.c @@ -3405,10 +3405,9 @@ static int iwl_mvm_d3_test_open(struct inode *inode,= struct file *file) return 0; } =20 -static ssize_t iwl_mvm_d3_test_read(struct file *file, char __user *user_b= uf, - size_t count, loff_t *ppos) +static ssize_t iwl_mvm_d3_test_read(struct kiocb *iocb, struct iov_iter *t= o) { - struct iwl_mvm *mvm =3D file->private_data; + struct iwl_mvm *mvm =3D iocb->ki_filp->private_data; unsigned long end =3D jiffies + 60 * HZ; u32 pme_asserted; =20 @@ -3492,7 +3491,7 @@ static int iwl_mvm_d3_test_release(struct inode *inod= e, struct file *file) const struct file_operations iwl_dbgfs_d3_test_ops =3D { .llseek =3D no_llseek, .open =3D iwl_mvm_d3_test_open, - .read =3D iwl_mvm_d3_test_read, + .read_iter =3D iwl_mvm_d3_test_read, .release =3D iwl_mvm_d3_test_release, }; #endif diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/debugfs-vif.c b/drivers= /net/wireless/intel/iwlwifi/mvm/debugfs-vif.c index 7fe57ecd0682..ea93054caf5a 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/debugfs-vif.c +++ b/drivers/net/wireless/intel/iwlwifi/mvm/debugfs-vif.c @@ -132,11 +132,10 @@ static ssize_t iwl_dbgfs_pm_params_write(struct ieee8= 0211_vif *vif, char *buf, return ret ?: count; } =20 -static ssize_t iwl_dbgfs_tx_pwr_lmt_read(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t iwl_dbgfs_tx_pwr_lmt_read_iter(struct kiocb *iocb, + struct iov_iter *to) { - struct ieee80211_vif *vif =3D file->private_data; + struct ieee80211_vif *vif =3D iocb->ki_filp->private_data; char buf[64]; int bufsz =3D sizeof(buf); int pos; @@ -144,14 +143,13 @@ static ssize_t iwl_dbgfs_tx_pwr_lmt_read(struct file = *file, pos =3D scnprintf(buf, bufsz, "bss limit =3D %d\n", vif->bss_conf.txpower); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, pos); + return simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); } =20 -static ssize_t iwl_dbgfs_pm_params_read(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t iwl_dbgfs_pm_params_read_iter(struct kiocb *iocb, + struct iov_iter *to) { - struct ieee80211_vif *vif =3D file->private_data; + struct ieee80211_vif *vif =3D iocb->ki_filp->private_data; struct iwl_mvm_vif *mvmvif =3D iwl_mvm_vif_from_mac80211(vif); struct iwl_mvm *mvm =3D mvmvif->mvm; char buf[512]; @@ -160,14 +158,13 @@ static ssize_t iwl_dbgfs_pm_params_read(struct file *= file, =20 pos =3D iwl_mvm_power_mac_dbgfs_read(mvm, vif, buf, bufsz); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, pos); + return simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); } =20 -static ssize_t iwl_dbgfs_mac_params_read(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t iwl_dbgfs_mac_params_read_iter(struct kiocb *iocb, + struct iov_iter *to) { - struct ieee80211_vif *vif =3D file->private_data; + struct ieee80211_vif *vif =3D iocb->ki_filp->private_data; struct iwl_mvm_vif *mvmvif =3D iwl_mvm_vif_from_mac80211(vif); struct iwl_mvm *mvm =3D mvmvif->mvm; u8 ap_sta_id; @@ -244,7 +241,7 @@ static ssize_t iwl_dbgfs_mac_params_read(struct file *f= ile, =20 mutex_unlock(&mvm->mutex); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, pos); + return simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); } =20 static void iwl_dbgfs_update_bf(struct ieee80211_vif *vif, @@ -389,11 +386,10 @@ static ssize_t iwl_dbgfs_bf_params_write(struct ieee8= 0211_vif *vif, char *buf, return ret ?: count; } =20 -static ssize_t iwl_dbgfs_bf_params_read(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t iwl_dbgfs_bf_params_read_iter(struct kiocb *iocb, + struct iov_iter *to) { - struct ieee80211_vif *vif =3D file->private_data; + struct ieee80211_vif *vif =3D iocb->ki_filp->private_data; struct iwl_mvm_vif *mvmvif =3D iwl_mvm_vif_from_mac80211(vif); char buf[256]; int pos =3D 0; @@ -435,14 +431,13 @@ static ssize_t iwl_dbgfs_bf_params_read(struct file *= file, pos +=3D scnprintf(buf+pos, bufsz-pos, "ba_enable_beacon_abort =3D %d\n", le32_to_cpu(cmd.ba_enable_beacon_abort)); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, pos); + return simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); } =20 -static ssize_t iwl_dbgfs_os_device_timediff_read(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t iwl_dbgfs_os_device_timediff_read_iter(struct kiocb *iocb, + struct iov_iter *to) { - struct ieee80211_vif *vif =3D file->private_data; + struct ieee80211_vif *vif =3D iocb->ki_filp->private_data; struct iwl_mvm_vif *mvmvif =3D iwl_mvm_vif_from_mac80211(vif); struct iwl_mvm *mvm =3D mvmvif->mvm; u32 curr_gp2; @@ -460,7 +455,7 @@ static ssize_t iwl_dbgfs_os_device_timediff_read(struct= file *file, diff =3D curr_os - curr_gp2; pos +=3D scnprintf(buf + pos, bufsz - pos, "diff=3D%lld\n", diff); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, pos); + return simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); } =20 static ssize_t iwl_dbgfs_low_latency_write(struct ieee80211_vif *vif, char= *buf, @@ -517,11 +512,10 @@ iwl_dbgfs_low_latency_force_write(struct ieee80211_vi= f *vif, char *buf, return count; } =20 -static ssize_t iwl_dbgfs_low_latency_read(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t iwl_dbgfs_low_latency_read_iter(struct kiocb *iocb, + struct iov_iter *to) { - struct ieee80211_vif *vif =3D file->private_data; + struct ieee80211_vif *vif =3D iocb->ki_filp->private_data; struct iwl_mvm_vif *mvmvif =3D iwl_mvm_vif_from_mac80211(vif); char format[] =3D "traffic=3D%d\ndbgfs=3D%d\nvcmd=3D%d\nvif_type=3D%d\n" "dbgfs_force_enable=3D%d\ndbgfs_force=3D%d\nactual=3D%d\n"; @@ -542,20 +536,19 @@ static ssize_t iwl_dbgfs_low_latency_read(struct file= *file, LOW_LATENCY_DEBUGFS_FORCE_ENABLE), !!(mvmvif->low_latency & LOW_LATENCY_DEBUGFS_FORCE), !!(mvmvif->low_latency_actual)); - return simple_read_from_buffer(user_buf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 -static ssize_t iwl_dbgfs_uapsd_misbehaving_read(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t iwl_dbgfs_uapsd_misbehaving_read_iter(struct kiocb *iocb, + struct iov_iter *to) { - struct ieee80211_vif *vif =3D file->private_data; + struct ieee80211_vif *vif =3D iocb->ki_filp->private_data; struct iwl_mvm_vif *mvmvif =3D iwl_mvm_vif_from_mac80211(vif); char buf[20]; int len; =20 len =3D sprintf(buf, "%pM\n", mvmvif->uapsd_misbehaving_ap_addr); - return simple_read_from_buffer(user_buf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 static ssize_t iwl_dbgfs_uapsd_misbehaving_write(struct ieee80211_vif *vif, @@ -624,11 +617,10 @@ static ssize_t iwl_dbgfs_rx_phyinfo_write(struct ieee= 80211_vif *vif, char *buf, return ret ?: count; } =20 -static ssize_t iwl_dbgfs_rx_phyinfo_read(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t iwl_dbgfs_rx_phyinfo_read_iter(struct kiocb *iocb, + struct iov_iter *to) { - struct ieee80211_vif *vif =3D file->private_data; + struct ieee80211_vif *vif =3D iocb->ki_filp->private_data; struct iwl_mvm_vif *mvmvif =3D iwl_mvm_vif_from_mac80211(vif); char buf[8]; int len; @@ -636,7 +628,7 @@ static ssize_t iwl_dbgfs_rx_phyinfo_read(struct file *f= ile, len =3D scnprintf(buf, sizeof(buf), "0x%04x\n", mvmvif->mvm->dbgfs_rx_phyinfo); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 static void iwl_dbgfs_quota_check(void *data, u8 *mac, @@ -678,18 +670,17 @@ static ssize_t iwl_dbgfs_quota_min_write(struct ieee8= 0211_vif *vif, char *buf, return ret ?: count; } =20 -static ssize_t iwl_dbgfs_quota_min_read(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t iwl_dbgfs_quota_min_read_iter(struct kiocb *iocb, + struct iov_iter *to) { - struct ieee80211_vif *vif =3D file->private_data; + struct ieee80211_vif *vif =3D iocb->ki_filp->private_data; struct iwl_mvm_vif *mvmvif =3D iwl_mvm_vif_from_mac80211(vif); char buf[10]; int len; =20 len =3D scnprintf(buf, sizeof(buf), "%d\n", mvmvif->dbgfs_quota_min); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 #define MVM_DEBUGFS_WRITE_FILE_OPS(name, bufsz) \ diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/debugfs.c b/drivers/net= /wireless/intel/iwlwifi/mvm/debugfs.c index 79f4ac8cbc72..af0cc36aac13 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/debugfs.c +++ b/drivers/net/wireless/intel/iwlwifi/mvm/debugfs.c @@ -19,11 +19,10 @@ #include "fw/error-dump.h" #include "fw/api/phy-ctxt.h" =20 -static ssize_t iwl_dbgfs_ctdp_budget_read(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t iwl_dbgfs_ctdp_budget_read_iter(struct kiocb *iocb, + struct iov_iter *to) { - struct iwl_mvm *mvm =3D file->private_data; + struct iwl_mvm *mvm =3D iocb->ki_filp->private_data; char buf[16]; int pos, budget; =20 @@ -43,7 +42,7 @@ static ssize_t iwl_dbgfs_ctdp_budget_read(struct file *fi= le, =20 pos =3D scnprintf(buf, sizeof(buf), "%d\n", budget); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, pos); + return simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); } =20 static ssize_t iwl_dbgfs_stop_ctdp_write(struct iwl_mvm *mvm, char *buf, @@ -182,10 +181,9 @@ static ssize_t iwl_dbgfs_sta_drain_write(struct iwl_mv= m *mvm, char *buf, return ret; } =20 -static ssize_t iwl_dbgfs_sram_read(struct file *file, char __user *user_bu= f, - size_t count, loff_t *ppos) +static ssize_t iwl_dbgfs_sram_read_iter(struct kiocb *iocb, struct iov_ite= r *to) { - struct iwl_mvm *mvm =3D file->private_data; + struct iwl_mvm *mvm =3D iocb->ki_filp->private_data; const struct fw_img *img; unsigned int ofs, len; size_t ret; @@ -210,7 +208,7 @@ static ssize_t iwl_dbgfs_sram_read(struct file *file, c= har __user *user_buf, =20 iwl_trans_read_mem_bytes(mvm->trans, ofs, ptr, len); =20 - ret =3D simple_read_from_buffer(user_buf, count, ppos, ptr, len); + ret =3D simple_copy_to_iter(ptr, &iocb->ki_pos, len, to); =20 kfree(ptr); =20 @@ -248,11 +246,10 @@ static ssize_t iwl_dbgfs_sram_write(struct iwl_mvm *m= vm, char *buf, return count; } =20 -static ssize_t iwl_dbgfs_set_nic_temperature_read(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t iwl_dbgfs_set_nic_temperature_read_iter(struct kiocb *iocb, + struct iov_iter *to) { - struct iwl_mvm *mvm =3D file->private_data; + struct iwl_mvm *mvm =3D iocb->ki_filp->private_data; char buf[16]; int pos; =20 @@ -261,7 +258,7 @@ static ssize_t iwl_dbgfs_set_nic_temperature_read(struc= t file *file, else pos =3D scnprintf(buf, sizeof(buf), "%d\n", mvm->temperature); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, pos); + return simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); } =20 /* @@ -315,11 +312,10 @@ static ssize_t iwl_dbgfs_set_nic_temperature_write(st= ruct iwl_mvm *mvm, return count; } =20 -static ssize_t iwl_dbgfs_nic_temp_read(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t iwl_dbgfs_nic_temp_read_iter(struct kiocb *iocb, + struct iov_iter *to) { - struct iwl_mvm *mvm =3D file->private_data; + struct iwl_mvm *mvm =3D iocb->ki_filp->private_data; char buf[16]; int pos, ret; s32 temp; @@ -336,15 +332,14 @@ static ssize_t iwl_dbgfs_nic_temp_read(struct file *f= ile, =20 pos =3D scnprintf(buf, sizeof(buf), "%d\n", temp); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, pos); + return simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); } =20 #ifdef CONFIG_ACPI -static ssize_t iwl_dbgfs_sar_geo_profile_read(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t iwl_dbgfs_sar_geo_profile_read_iter(struct kiocb *iocb, + struct iov_iter *to) { - struct iwl_mvm *mvm =3D file->private_data; + struct iwl_mvm *mvm =3D iocb->ki_filp->private_data; char buf[256]; int pos =3D 0; int bufsz =3D sizeof(buf); @@ -379,14 +374,13 @@ static ssize_t iwl_dbgfs_sar_geo_profile_read(struct = file *file, } mutex_unlock(&mvm->mutex); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, pos); + return simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); } =20 -static ssize_t iwl_dbgfs_wifi_6e_enable_read(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t iwl_dbgfs_wifi_6e_enable_read_iter(struct kiocb *iocb, + struct iov_iter *to) { - struct iwl_mvm *mvm =3D file->private_data; + struct iwl_mvm *mvm =3D iocb->ki_filp->private_data; int err, pos; char buf[12]; u32 value; @@ -397,14 +391,14 @@ static ssize_t iwl_dbgfs_wifi_6e_enable_read(struct f= ile *file, =20 pos =3D sprintf(buf, "0x%08x\n", value); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, pos); + return simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); } #endif =20 -static ssize_t iwl_dbgfs_stations_read(struct file *file, char __user *use= r_buf, - size_t count, loff_t *ppos) +static ssize_t iwl_dbgfs_stations_read_iter(struct kiocb *iocb, + struct iov_iter *to) { - struct iwl_mvm *mvm =3D file->private_data; + struct iwl_mvm *mvm =3D iocb->ki_filp->private_data; struct ieee80211_sta *sta; char buf[400]; int i, pos =3D 0, bufsz =3D sizeof(buf); @@ -427,7 +421,7 @@ static ssize_t iwl_dbgfs_stations_read(struct file *fil= e, char __user *user_buf, =20 mutex_unlock(&mvm->mutex); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, pos); + return simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); } =20 static ssize_t iwl_dbgfs_rs_data_read(struct ieee80211_link_sta *link_sta, @@ -524,11 +518,10 @@ static ssize_t iwl_dbgfs_amsdu_len_read(struct ieee80= 211_link_sta *link_sta, return simple_read_from_buffer(user_buf, count, ppos, buf, pos); } =20 -static ssize_t iwl_dbgfs_disable_power_off_read(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t iwl_dbgfs_disable_power_off_read_iter(struct kiocb *iocb, + struct iov_iter *to) { - struct iwl_mvm *mvm =3D file->private_data; + struct iwl_mvm *mvm =3D iocb->ki_filp->private_data; char buf[64]; int bufsz =3D sizeof(buf); int pos =3D 0; @@ -538,7 +531,7 @@ static ssize_t iwl_dbgfs_disable_power_off_read(struct = file *file, pos +=3D scnprintf(buf+pos, bufsz-pos, "disable_power_off_d3=3D%d\n", mvm->disable_power_off_d3); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, pos); + return simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); } =20 static ssize_t iwl_dbgfs_disable_power_off_write(struct iwl_mvm *mvm, char= *buf, @@ -628,10 +621,10 @@ int iwl_mvm_coex_dump_mbox(struct iwl_bt_coex_profile= _notif *notif, char *buf, return pos; } =20 -static ssize_t iwl_dbgfs_bt_notif_read(struct file *file, char __user *use= r_buf, - size_t count, loff_t *ppos) +static ssize_t iwl_dbgfs_bt_notif_read_iter(struct kiocb *iocb, + struct iov_iter *to) { - struct iwl_mvm *mvm =3D file->private_data; + struct iwl_mvm *mvm =3D iocb->ki_filp->private_data; struct iwl_bt_coex_profile_notif *notif =3D &mvm->last_bt_notif; char *buf; int ret, pos =3D 0, bufsz =3D sizeof(char) * 1024; @@ -665,17 +658,17 @@ static ssize_t iwl_dbgfs_bt_notif_read(struct file *f= ile, char __user *user_buf, =20 mutex_unlock(&mvm->mutex); =20 - ret =3D simple_read_from_buffer(user_buf, count, ppos, buf, pos); + ret =3D simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); kfree(buf); =20 return ret; } #undef BT_MBOX_PRINT =20 -static ssize_t iwl_dbgfs_bt_cmd_read(struct file *file, char __user *user_= buf, - size_t count, loff_t *ppos) +static ssize_t iwl_dbgfs_bt_cmd_read_iter(struct kiocb *iocb, + struct iov_iter *to) { - struct iwl_mvm *mvm =3D file->private_data; + struct iwl_mvm *mvm =3D iocb->ki_filp->private_data; struct iwl_bt_coex_ci_cmd *cmd =3D &mvm->last_bt_ci_cmd; char buf[256]; int bufsz =3D sizeof(buf); @@ -693,7 +686,7 @@ static ssize_t iwl_dbgfs_bt_cmd_read(struct file *file,= char __user *user_buf, =20 mutex_unlock(&mvm->mutex); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, pos); + return simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); } =20 static ssize_t @@ -748,10 +741,10 @@ iwl_dbgfs_bt_force_ant_write(struct iwl_mvm *mvm, cha= r *buf, return ret ?: count; } =20 -static ssize_t iwl_dbgfs_fw_ver_read(struct file *file, char __user *user_= buf, - size_t count, loff_t *ppos) +static ssize_t iwl_dbgfs_fw_ver_read_iter(struct kiocb *iocb, + struct iov_iter *to) { - struct iwl_mvm *mvm =3D file->private_data; + struct iwl_mvm *mvm =3D iocb->ki_filp->private_data; char *buff, *pos, *endpos; static const size_t bufsz =3D 1024; char _fw_name_pre[FW_NAME_PRE_BUFSIZE]; @@ -773,17 +766,16 @@ static ssize_t iwl_dbgfs_fw_ver_read(struct file *fil= e, char __user *user_buf, pos +=3D scnprintf(pos, endpos - pos, "Bus: %s\n", mvm->fwrt.dev->bus->name); =20 - ret =3D simple_read_from_buffer(user_buf, count, ppos, buff, pos - buff); + ret =3D simple_copy_to_iter(buff, &iocb->ki_pos, pos - buff, to); kfree(buff); =20 return ret; } =20 -static ssize_t iwl_dbgfs_tas_get_status_read(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t iwl_dbgfs_tas_get_status_read_iter(struct kiocb *iocb, + struct iov_iter *to) { - struct iwl_mvm *mvm =3D file->private_data; + struct iwl_mvm *mvm =3D iocb->ki_filp->private_data; struct iwl_mvm_tas_status_resp tas_rsp; struct iwl_mvm_tas_status_resp *rsp =3D &tas_rsp; static const size_t bufsz =3D 1024; @@ -957,17 +949,16 @@ static ssize_t iwl_dbgfs_tas_get_status_read(struct f= ile *file, } =20 out: - ret =3D simple_read_from_buffer(user_buf, count, ppos, buff, pos - buff); + ret =3D simple_copy_to_iter(buff, &iocb->ki_pos, pos - buff, to); kfree(buff); iwl_free_resp(&hcmd); return ret; } =20 -static ssize_t iwl_dbgfs_phy_integration_ver_read(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t iwl_dbgfs_phy_integration_ver_read_iter(struct kiocb *iocb, + struct iov_iter *to) { - struct iwl_mvm *mvm =3D file->private_data; + struct iwl_mvm *mvm =3D iocb->ki_filp->private_data; char *buf; size_t bufsz; int pos; @@ -981,7 +972,7 @@ static ssize_t iwl_dbgfs_phy_integration_ver_read(struc= t file *file, pos =3D scnprintf(buf, bufsz, "%.*s\n", mvm->fw->phy_integration_ver_len, mvm->fw->phy_integration_ver); =20 - ret =3D simple_read_from_buffer(user_buf, count, ppos, buf, pos); + ret =3D simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); =20 kfree(buf); return ret; @@ -992,11 +983,10 @@ static ssize_t iwl_dbgfs_phy_integration_ver_read(str= uct file *file, fmt_table, #_memb, \ le32_to_cpu(_struct->_memb)) =20 -static ssize_t iwl_dbgfs_fw_rx_stats_read(struct file *file, - char __user *user_buf, size_t count, - loff_t *ppos) +static ssize_t iwl_dbgfs_fw_rx_stats_read_iter(struct kiocb *iocb, + struct iov_iter *to) { - struct iwl_mvm *mvm =3D file->private_data; + struct iwl_mvm *mvm =3D iocb->ki_filp->private_data; static const char *fmt_table =3D "\t%-30s %10u\n"; static const char *fmt_header =3D "%-32s\n"; int pos =3D 0; @@ -1182,16 +1172,15 @@ static ssize_t iwl_dbgfs_fw_rx_stats_read(struct fi= le *file, =20 mutex_unlock(&mvm->mutex); =20 - ret =3D simple_read_from_buffer(user_buf, count, ppos, buf, pos); + ret =3D simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); kfree(buf); =20 return ret; } #undef PRINT_STAT_LE32 =20 -static ssize_t iwl_dbgfs_fw_system_stats_read(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t iwl_dbgfs_fw_system_stats_read_iter(struct kiocb *iocb, + struct iov_iter *to) { char *buff, *pos, *endpos; int ret; @@ -1199,7 +1188,7 @@ static ssize_t iwl_dbgfs_fw_system_stats_read(struct = file *file, int i; struct iwl_mvm_vif *mvmvif; struct ieee80211_vif *vif; - struct iwl_mvm *mvm =3D file->private_data; + struct iwl_mvm *mvm =3D iocb->ki_filp->private_data; u8 cmd_ver =3D iwl_fw_lookup_cmd_ver(mvm->fw, WIDE_ID(SYSTEM_GROUP, SYSTEM_STATISTICS_CMD), @@ -1278,7 +1267,7 @@ static ssize_t iwl_dbgfs_fw_system_stats_read(struct = file *file, mutex_unlock(&mvm->mutex); =20 send_out: - ret =3D simple_read_from_buffer(user_buf, count, ppos, buff, pos - buff); + ret =3D simple_copy_to_iter(buff, &iocb->ki_pos, pos - buff, to); kfree(buff); =20 return ret; @@ -1360,6 +1349,7 @@ static ssize_t iwl_dbgfs_drv_rx_stats_read(struct fil= e *file, return iwl_dbgfs_frame_stats_read(mvm, user_buf, count, ppos, &mvm->drv_rx_stats); } +FOPS_READ_ITER_HELPER(iwl_dbgfs_drv_rx_stats_read); =20 static ssize_t iwl_dbgfs_fw_restart_write(struct iwl_mvm *mvm, char *buf, size_t count, loff_t *ppos) @@ -1405,11 +1395,9 @@ static ssize_t iwl_dbgfs_fw_nmi_write(struct iwl_mvm= *mvm, char *buf, } =20 static ssize_t -iwl_dbgfs_scan_ant_rxchain_read(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +iwl_dbgfs_scan_ant_rxchain_read_iter(struct kiocb *iocb, struct iov_iter *= to) { - struct iwl_mvm *mvm =3D file->private_data; + struct iwl_mvm *mvm =3D iocb->ki_filp->private_data; int pos =3D 0; char buf[32]; const size_t bufsz =3D sizeof(buf); @@ -1422,7 +1410,7 @@ iwl_dbgfs_scan_ant_rxchain_read(struct file *file, pos +=3D scnprintf(buf + pos, bufsz - pos, "B"); pos +=3D scnprintf(buf + pos, bufsz - pos, " (%x)\n", mvm->scan_rx_ant); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, pos); + return simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); } =20 static ssize_t @@ -1653,11 +1641,10 @@ static ssize_t iwl_dbgfs_inject_beacon_ie_restore_w= rite(struct iwl_mvm *mvm, return ret ?: count; } =20 -static ssize_t iwl_dbgfs_fw_dbg_conf_read(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t iwl_dbgfs_fw_dbg_conf_read_iter(struct kiocb *iocb, + struct iov_iter *to) { - struct iwl_mvm *mvm =3D file->private_data; + struct iwl_mvm *mvm =3D iocb->ki_filp->private_data; int conf; char buf[8]; const size_t bufsz =3D sizeof(buf); @@ -1669,7 +1656,7 @@ static ssize_t iwl_dbgfs_fw_dbg_conf_read(struct file= *file, =20 pos +=3D scnprintf(buf + pos, bufsz - pos, "%d\n", conf); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, pos); + return simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); } =20 static ssize_t iwl_dbgfs_fw_dbg_conf_write(struct iwl_mvm *mvm, @@ -1834,6 +1821,7 @@ static ssize_t _iwl_dbgfs_link_sta_##name##_write(str= uct file *file, \ file, \ buf, buf_size, ppos); \ } \ +FOPS_WRITE_ITER_HELPER(_iwl_dbgfs_link_sta_##name##_write); \ =20 #define MVM_DEBUGFS_LINK_STA_READ_WRAPPER(name) \ static ssize_t _iwl_dbgfs_link_sta_##name##_read(struct file *file, \ @@ -1844,11 +1832,12 @@ static ssize_t _iwl_dbgfs_link_sta_##name##_read(st= ruct file *file, \ file, \ user_buf, count, ppos); \ } \ +FOPS_READ_ITER_HELPER(_iwl_dbgfs_link_sta_##name##_read); \ =20 #define MVM_DEBUGFS_WRITE_LINK_STA_FILE_OPS(name, bufsz) \ MVM_DEBUGFS_LINK_STA_WRITE_WRAPPER(name, bufsz) \ static const struct file_operations iwl_dbgfs_link_sta_##name##_ops =3D { \ - .write =3D _iwl_dbgfs_link_sta_##name##_write, \ + .write_iter =3D _iwl_dbgfs_link_sta_##name##_write_iter, \ .open =3D simple_open, \ .llseek =3D generic_file_llseek, \ } @@ -1856,7 +1845,7 @@ static const struct file_operations iwl_dbgfs_link_st= a_##name##_ops =3D { \ #define MVM_DEBUGFS_READ_LINK_STA_FILE_OPS(name) \ MVM_DEBUGFS_LINK_STA_READ_WRAPPER(name) \ static const struct file_operations iwl_dbgfs_link_sta_##name##_ops =3D { \ - .read =3D _iwl_dbgfs_link_sta_##name##_read, \ + .read_iter =3D _iwl_dbgfs_link_sta_##name##_read_iter, \ .open =3D simple_open, \ .llseek =3D generic_file_llseek, \ } @@ -1865,8 +1854,8 @@ static const struct file_operations iwl_dbgfs_link_st= a_##name##_ops =3D { \ MVM_DEBUGFS_LINK_STA_READ_WRAPPER(name) \ MVM_DEBUGFS_LINK_STA_WRITE_WRAPPER(name, bufsz) \ static const struct file_operations iwl_dbgfs_link_sta_##name##_ops =3D { \ - .read =3D _iwl_dbgfs_link_sta_##name##_read, \ - .write =3D _iwl_dbgfs_link_sta_##name##_write, \ + .read_iter =3D _iwl_dbgfs_link_sta_##name##_read_iter, \ + .write_iter =3D _iwl_dbgfs_link_sta_##name##_write_iter, \ .open =3D simple_open, \ .llseek =3D generic_file_llseek, \ } @@ -1878,11 +1867,9 @@ static const struct file_operations iwl_dbgfs_link_s= ta_##name##_ops =3D { \ MVM_DEBUGFS_ADD_LINK_STA_FILE_ALIAS(#name, name, parent, mode) =20 static ssize_t -iwl_dbgfs_prph_reg_read(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +iwl_dbgfs_prph_reg_read_iter(struct kiocb *iocb, struct iov_iter *to) { - struct iwl_mvm *mvm =3D file->private_data; + struct iwl_mvm *mvm =3D iocb->ki_filp->private_data; int pos =3D 0; char buf[32]; const size_t bufsz =3D sizeof(buf); @@ -1894,7 +1881,7 @@ iwl_dbgfs_prph_reg_read(struct file *file, mvm->dbgfs_prph_reg_addr, iwl_read_prph(mvm->trans, mvm->dbgfs_prph_reg_addr)); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, pos); + return simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); } =20 static ssize_t @@ -2012,10 +1999,9 @@ iwl_dbgfs_he_sniffer_params_write(struct iwl_mvm *mv= m, char *buf, } =20 static ssize_t -iwl_dbgfs_he_sniffer_params_read(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos) +iwl_dbgfs_he_sniffer_params_read_iter(struct kiocb *iocb, struct iov_iter = *to) { - struct iwl_mvm *mvm =3D file->private_data; + struct iwl_mvm *mvm =3D iocb->ki_filp->private_data; u8 buf[32]; int len; =20 @@ -2025,14 +2011,13 @@ iwl_dbgfs_he_sniffer_params_read(struct file *file,= char __user *user_buf, mvm->cur_bssid[1], mvm->cur_bssid[2], mvm->cur_bssid[3], mvm->cur_bssid[4], mvm->cur_bssid[5]); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 static ssize_t -iwl_dbgfs_uapsd_noagg_bssids_read(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos) +iwl_dbgfs_uapsd_noagg_bssids_read_iter(struct kiocb *iocb, struct iov_iter= *to) { - struct iwl_mvm *mvm =3D file->private_data; + struct iwl_mvm *mvm =3D iocb->ki_filp->private_data; u8 buf[IWL_MVM_UAPSD_NOAGG_BSSIDS_NUM * ETH_ALEN * 3 + 1]; unsigned int pos =3D 0; size_t bufsz =3D sizeof(buf); @@ -2046,7 +2031,7 @@ iwl_dbgfs_uapsd_noagg_bssids_read(struct file *file, = char __user *user_buf, =20 mutex_unlock(&mvm->mutex); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, pos); + return simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); } =20 static ssize_t @@ -2110,11 +2095,10 @@ static ssize_t iwl_dbgfs_rfi_freq_table_write(struc= t iwl_mvm *mvm, char *buf, #define IWL_RFI_BUF_SIZE (IWL_RFI_LUT_INSTALLED_SIZE *\ (5 + IWL_RFI_LUT_ENTRY_CHANNELS_NUM * (6 + 5))) =20 -static ssize_t iwl_dbgfs_rfi_freq_table_read(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t iwl_dbgfs_rfi_freq_table_read_iter(struct kiocb *iocb, + struct iov_iter *to) { - struct iwl_mvm *mvm =3D file->private_data; + struct iwl_mvm *mvm =3D iocb->ki_filp->private_data; struct iwl_rfi_freq_table_resp_cmd *resp; u32 status; char buf[IWL_RFI_BUF_SIZE]; @@ -2144,7 +2128,7 @@ static ssize_t iwl_dbgfs_rfi_freq_table_read(struct f= ile *file, =20 out: kfree(resp); - return simple_read_from_buffer(user_buf, count, ppos, buf, pos); + return simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); } =20 MVM_DEBUGFS_READ_WRITE_FILE_OPS(prph_reg, 64); @@ -2200,12 +2184,12 @@ MVM_DEBUGFS_READ_WRITE_FILE_OPS(he_sniffer_params, = 32); MVM_DEBUGFS_WRITE_FILE_OPS(ltr_config, 512); MVM_DEBUGFS_READ_WRITE_FILE_OPS(rfi_freq_table, 16); =20 -static ssize_t iwl_dbgfs_mem_read(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t iwl_dbgfs_mem_read(struct kiocb *iocb, struct iov_iter *to) { - struct iwl_mvm *mvm =3D file->private_data; + struct iwl_mvm *mvm =3D iocb->ki_filp->private_data; struct iwl_dbg_mem_access_cmd cmd =3D {}; struct iwl_dbg_mem_access_rsp *rsp; + size_t count =3D iov_iter_count(to); struct iwl_host_cmd hcmd =3D { .flags =3D CMD_WANT_SKB | CMD_SEND_IN_RFKILL, .data =3D { &cmd, }, @@ -2217,12 +2201,12 @@ static ssize_t iwl_dbgfs_mem_read(struct file *file= , char __user *user_buf, if (!iwl_mvm_firmware_running(mvm)) return -EIO; =20 - hcmd.id =3D WIDE_ID(DEBUG_GROUP, *ppos >> 24 ? UMAC_RD_WR : LMAC_RD_WR); + hcmd.id =3D WIDE_ID(DEBUG_GROUP, iocb->ki_pos >> 24 ? UMAC_RD_WR : LMAC_R= D_WR); cmd.op =3D cpu_to_le32(DEBUG_MEM_OP_READ); =20 /* Take care of alignment of both the position and the length */ - delta =3D *ppos & 0x3; - cmd.addr =3D cpu_to_le32(*ppos - delta); + delta =3D iocb->ki_pos & 0x3; + cmd.addr =3D cpu_to_le32(iocb->ki_pos - delta); cmd.len =3D cpu_to_le32(min(ALIGN(count + delta, 4) / 4, (size_t)DEBUG_MEM_MAX_SIZE_DWORDS)); =20 @@ -2252,19 +2236,18 @@ static ssize_t iwl_dbgfs_mem_read(struct file *file= , char __user *user_buf, goto out; } =20 - ret =3D len - copy_to_user(user_buf, (u8 *)rsp->data + delta, len); - *ppos +=3D ret; + ret =3D copy_to_iter((u8 *)rsp->data + delta, len, to); + iocb->ki_pos +=3D ret; =20 out: iwl_free_resp(&hcmd); return ret; } =20 -static ssize_t iwl_dbgfs_mem_write(struct file *file, - const char __user *user_buf, size_t count, - loff_t *ppos) +static ssize_t iwl_dbgfs_mem_write(struct kiocb *iocb, struct iov_iter *fr= om) { - struct iwl_mvm *mvm =3D file->private_data; + struct iwl_mvm *mvm =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); struct iwl_dbg_mem_access_cmd *cmd; struct iwl_dbg_mem_access_rsp *rsp; struct iwl_host_cmd hcmd =3D {}; @@ -2276,11 +2259,11 @@ static ssize_t iwl_dbgfs_mem_write(struct file *fil= e, if (!iwl_mvm_firmware_running(mvm)) return -EIO; =20 - hcmd.id =3D WIDE_ID(DEBUG_GROUP, *ppos >> 24 ? UMAC_RD_WR : LMAC_RD_WR); + hcmd.id =3D WIDE_ID(DEBUG_GROUP, iocb->ki_pos >> 24 ? UMAC_RD_WR : LMAC_R= D_WR); =20 - if (*ppos & 0x3 || count < 4) { + if (iocb->ki_pos & 0x3 || count < 4) { op =3D DEBUG_MEM_OP_WRITE_BYTES; - len =3D min(count, (size_t)(4 - (*ppos & 0x3))); + len =3D min(count, (size_t)(4 - (iocb->ki_pos & 0x3))); data_size =3D len; } else { op =3D DEBUG_MEM_OP_WRITE; @@ -2295,8 +2278,8 @@ static ssize_t iwl_dbgfs_mem_write(struct file *file, =20 cmd->op =3D cpu_to_le32(op); cmd->len =3D cpu_to_le32(len); - cmd->addr =3D cpu_to_le32(*ppos); - if (copy_from_user((void *)cmd->data, user_buf, data_size)) { + cmd->addr =3D cpu_to_le32(iocb->ki_pos); + if (!copy_from_iter_full((void *)cmd->data, data_size, from)) { kfree(cmd); return -EFAULT; } @@ -2326,7 +2309,7 @@ static ssize_t iwl_dbgfs_mem_write(struct file *file, } =20 ret =3D data_size; - *ppos +=3D ret; + iocb->ki_pos +=3D ret; =20 out: iwl_free_resp(&hcmd); @@ -2334,8 +2317,8 @@ static ssize_t iwl_dbgfs_mem_write(struct file *file, } =20 static const struct file_operations iwl_dbgfs_mem_ops =3D { - .read =3D iwl_dbgfs_mem_read, - .write =3D iwl_dbgfs_mem_write, + .read_iter =3D iwl_dbgfs_mem_read, + .write_iter =3D iwl_dbgfs_mem_write, .open =3D simple_open, .llseek =3D default_llseek, }; diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/debugfs.h b/drivers/net= /wireless/intel/iwlwifi/mvm/debugfs.h index cc2c45b45ddc..911c4f97709d 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/debugfs.h +++ b/drivers/net/wireless/intel/iwlwifi/mvm/debugfs.h @@ -6,7 +6,7 @@ */ #define MVM_DEBUGFS_READ_FILE_OPS(name) \ static const struct file_operations iwl_dbgfs_##name##_ops =3D { \ - .read =3D iwl_dbgfs_##name##_read, \ + .read_iter =3D iwl_dbgfs_##name##_read_iter, \ .open =3D simple_open, \ .llseek =3D generic_file_llseek, \ } @@ -25,12 +25,13 @@ static ssize_t _iwl_dbgfs_##name##_write(struct file *f= ile, \ \ return iwl_dbgfs_##name##_write(arg, buf, buf_size, ppos); \ } \ +FOPS_WRITE_ITER_HELPER(_iwl_dbgfs_##name##_write); \ =20 #define _MVM_DEBUGFS_READ_WRITE_FILE_OPS(name, buflen, argtype) \ MVM_DEBUGFS_WRITE_WRAPPER(name, buflen, argtype) \ static const struct file_operations iwl_dbgfs_##name##_ops =3D { \ - .write =3D _iwl_dbgfs_##name##_write, \ - .read =3D iwl_dbgfs_##name##_read, \ + .write_iter =3D _iwl_dbgfs_##name##_write_iter, \ + .read_iter =3D iwl_dbgfs_##name##_read_iter, \ .open =3D simple_open, \ .llseek =3D generic_file_llseek, \ }; @@ -38,7 +39,7 @@ static const struct file_operations iwl_dbgfs_##name##_op= s =3D { \ #define _MVM_DEBUGFS_WRITE_FILE_OPS(name, buflen, argtype) \ MVM_DEBUGFS_WRITE_WRAPPER(name, buflen, argtype) \ static const struct file_operations iwl_dbgfs_##name##_ops =3D { \ - .write =3D _iwl_dbgfs_##name##_write, \ + .write_iter =3D _iwl_dbgfs_##name##_write_iter, \ .open =3D simple_open, \ .llseek =3D generic_file_llseek, \ }; diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/rs.c b/drivers/net/wire= less/intel/iwlwifi/mvm/rs.c index a8c4e354e2ce..d034eff48c37 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/rs.c +++ b/drivers/net/wireless/intel/iwlwifi/mvm/rs.c @@ -3720,10 +3720,11 @@ static void rs_program_fix_rate(struct iwl_mvm *mvm, } } =20 -static ssize_t rs_sta_dbgfs_scale_table_write(struct file *file, - const char __user *user_buf, size_t count, loff_t *ppos) +static ssize_t rs_sta_dbgfs_scale_table_write(struct kiocb *iocb, + struct iov_iter *from) { - struct iwl_lq_sta *lq_sta =3D file->private_data; + struct iwl_lq_sta *lq_sta =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); struct iwl_mvm *mvm; char buf[64]; size_t buf_size; @@ -3732,7 +3733,7 @@ static ssize_t rs_sta_dbgfs_scale_table_write(struct = file *file, mvm =3D lq_sta->pers.drv; memset(buf, 0, sizeof(buf)); buf_size =3D min(count, sizeof(buf) - 1); - if (copy_from_user(buf, user_buf, buf_size)) + if (!copy_from_iter_full(buf, buf_size, from)) return -EFAULT; =20 if (sscanf(buf, "%x", &parsed_rate) =3D=3D 1) @@ -3745,8 +3746,8 @@ static ssize_t rs_sta_dbgfs_scale_table_write(struct = file *file, return count; } =20 -static ssize_t rs_sta_dbgfs_scale_table_read(struct file *file, - char __user *user_buf, size_t count, loff_t *ppos) +static ssize_t rs_sta_dbgfs_scale_table_read(struct kiocb *iocb, + struct iov_iter *to) { char *buff; int desc =3D 0; @@ -3754,7 +3755,7 @@ static ssize_t rs_sta_dbgfs_scale_table_read(struct f= ile *file, ssize_t ret; static const size_t bufsz =3D 2048; =20 - struct iwl_lq_sta *lq_sta =3D file->private_data; + struct iwl_lq_sta *lq_sta =3D iocb->ki_filp->private_data; struct iwl_mvm_sta *mvmsta =3D container_of(lq_sta, struct iwl_mvm_sta, deflink.lq_sta.rs_drv); struct iwl_mvm *mvm; @@ -3840,19 +3841,19 @@ static ssize_t rs_sta_dbgfs_scale_table_read(struct= file *file, buff[desc++] =3D '\n'; } =20 - ret =3D simple_read_from_buffer(user_buf, count, ppos, buff, desc); + ret =3D simple_copy_to_iter(buff, &iocb->ki_pos, desc, to); kfree(buff); return ret; } =20 static const struct file_operations rs_sta_dbgfs_scale_table_ops =3D { - .write =3D rs_sta_dbgfs_scale_table_write, - .read =3D rs_sta_dbgfs_scale_table_read, + .write_iter =3D rs_sta_dbgfs_scale_table_write, + .read_iter =3D rs_sta_dbgfs_scale_table_read, .open =3D simple_open, .llseek =3D default_llseek, }; -static ssize_t rs_sta_dbgfs_stats_table_read(struct file *file, - char __user *user_buf, size_t count, loff_t *ppos) +static ssize_t rs_sta_dbgfs_stats_table_read(struct kiocb *iocb, + struct iov_iter *to) { char *buff; int desc =3D 0; @@ -3860,7 +3861,7 @@ static ssize_t rs_sta_dbgfs_stats_table_read(struct f= ile *file, ssize_t ret; struct iwl_scale_tbl_info *tbl; struct rs_rate *rate; - struct iwl_lq_sta *lq_sta =3D file->private_data; + struct iwl_lq_sta *lq_sta =3D iocb->ki_filp->private_data; =20 buff =3D kmalloc(1024, GFP_KERNEL); if (!buff) @@ -3888,20 +3889,19 @@ static ssize_t rs_sta_dbgfs_stats_table_read(struct= file *file, tbl->win[j].success_ratio); } } - ret =3D simple_read_from_buffer(user_buf, count, ppos, buff, desc); + ret =3D simple_copy_to_iter(buff, &iocb->ki_pos, desc, to); kfree(buff); return ret; } =20 static const struct file_operations rs_sta_dbgfs_stats_table_ops =3D { - .read =3D rs_sta_dbgfs_stats_table_read, + .read_iter =3D rs_sta_dbgfs_stats_table_read, .open =3D simple_open, .llseek =3D default_llseek, }; =20 -static ssize_t rs_sta_dbgfs_drv_tx_stats_read(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t rs_sta_dbgfs_drv_tx_stats_read(struct kiocb *iocb, + struct iov_iter *to) { static const char * const column_name[] =3D { [RS_COLUMN_LEGACY_ANT_A] =3D "LEGACY_ANT_A", @@ -3937,7 +3937,7 @@ static ssize_t rs_sta_dbgfs_drv_tx_stats_read(struct = file *file, char *buff, *pos, *endpos; int col, rate; ssize_t ret; - struct iwl_lq_sta *lq_sta =3D file->private_data; + struct iwl_lq_sta *lq_sta =3D iocb->ki_filp->private_data; struct rs_rate_stats *stats; static const size_t bufsz =3D 1024; =20 @@ -3967,33 +3967,31 @@ static ssize_t rs_sta_dbgfs_drv_tx_stats_read(struc= t file *file, pos +=3D scnprintf(pos, endpos - pos, "\n"); } =20 - ret =3D simple_read_from_buffer(user_buf, count, ppos, buff, pos - buff); + ret =3D simple_copy_to_iter(buff, &iocb->ki_pos, pos - buff, to); kfree(buff); return ret; } =20 -static ssize_t rs_sta_dbgfs_drv_tx_stats_write(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t rs_sta_dbgfs_drv_tx_stats_write(struct kiocb *iocb, + struct iov_iter *from) { - struct iwl_lq_sta *lq_sta =3D file->private_data; + struct iwl_lq_sta *lq_sta =3D iocb->ki_filp->private_data; memset(lq_sta->pers.tx_stats, 0, sizeof(lq_sta->pers.tx_stats)); =20 - return count; + return iov_iter_count(from); } =20 static const struct file_operations rs_sta_dbgfs_drv_tx_stats_ops =3D { - .read =3D rs_sta_dbgfs_drv_tx_stats_read, - .write =3D rs_sta_dbgfs_drv_tx_stats_write, + .read_iter =3D rs_sta_dbgfs_drv_tx_stats_read, + .write_iter =3D rs_sta_dbgfs_drv_tx_stats_write, .open =3D simple_open, .llseek =3D default_llseek, }; =20 -static ssize_t iwl_dbgfs_ss_force_read(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t iwl_dbgfs_ss_force_read_iter(struct kiocb *iocb, + struct iov_iter *to) { - struct iwl_lq_sta *lq_sta =3D file->private_data; + struct iwl_lq_sta *lq_sta =3D iocb->ki_filp->private_data; char buf[12]; int bufsz =3D sizeof(buf); int pos =3D 0; @@ -4006,7 +4004,7 @@ static ssize_t iwl_dbgfs_ss_force_read(struct file *f= ile, =20 pos +=3D scnprintf(buf+pos, bufsz-pos, "%s\n", ss_force_name[lq_sta->pers.ss_force]); - return simple_read_from_buffer(user_buf, count, ppos, buf, pos); + return simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); } =20 static ssize_t iwl_dbgfs_ss_force_write(struct iwl_lq_sta *lq_sta, char *b= uf, diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/trans.c b/drivers/net/= wireless/intel/iwlwifi/pcie/trans.c index 6c76b2dd6878..b4e057adcdfe 100644 --- a/drivers/net/wireless/intel/iwlwifi/pcie/trans.c +++ b/drivers/net/wireless/intel/iwlwifi/pcie/trans.c @@ -2574,22 +2574,22 @@ void iwl_pcie_dump_csr(struct iwl_trans *trans) /* file operation */ #define DEBUGFS_READ_FILE_OPS(name) \ static const struct file_operations iwl_dbgfs_##name##_ops =3D { \ - .read =3D iwl_dbgfs_##name##_read, \ + .read_iter =3D iwl_dbgfs_##name##_read, \ .open =3D simple_open, \ .llseek =3D generic_file_llseek, \ }; =20 #define DEBUGFS_WRITE_FILE_OPS(name) \ static const struct file_operations iwl_dbgfs_##name##_ops =3D { \ - .write =3D iwl_dbgfs_##name##_write, \ + .write_iter =3D iwl_dbgfs_##name##_write_iter, \ .open =3D simple_open, \ .llseek =3D generic_file_llseek, \ }; =20 #define DEBUGFS_READ_WRITE_FILE_OPS(name) \ static const struct file_operations iwl_dbgfs_##name##_ops =3D { \ - .write =3D iwl_dbgfs_##name##_write, \ - .read =3D iwl_dbgfs_##name##_read, \ + .write_iter =3D iwl_dbgfs_##name##_write_iter, \ + .read_iter =3D iwl_dbgfs_##name##_read, \ .open =3D simple_open, \ .llseek =3D generic_file_llseek, \ }; @@ -2684,11 +2684,9 @@ static int iwl_dbgfs_tx_queue_open(struct inode *ino= de, struct file *filp) return 0; } =20 -static ssize_t iwl_dbgfs_rx_queue_read(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t iwl_dbgfs_rx_queue_read(struct kiocb *iocb, struct iov_iter= *to) { - struct iwl_trans *trans =3D file->private_data; + struct iwl_trans *trans =3D iocb->ki_filp->private_data; struct iwl_trans_pcie *trans_pcie =3D IWL_TRANS_GET_PCIE_TRANS(trans); char *buf; int pos =3D 0, i, ret; @@ -2727,17 +2725,15 @@ static ssize_t iwl_dbgfs_rx_queue_read(struct file = *file, "\tclosed_rb_num: Not Allocated\n"); } } - ret =3D simple_read_from_buffer(user_buf, count, ppos, buf, pos); + ret =3D simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); kfree(buf); =20 return ret; } =20 -static ssize_t iwl_dbgfs_interrupt_read(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t iwl_dbgfs_interrupt_read(struct kiocb *iocb, struct iov_ite= r *to) { - struct iwl_trans *trans =3D file->private_data; + struct iwl_trans *trans =3D iocb->ki_filp->private_data; struct iwl_trans_pcie *trans_pcie =3D IWL_TRANS_GET_PCIE_TRANS(trans); struct isr_statistics *isr_stats =3D &trans_pcie->isr_stats; =20 @@ -2786,22 +2782,22 @@ static ssize_t iwl_dbgfs_interrupt_read(struct file= *file, pos +=3D scnprintf(buf + pos, bufsz - pos, "Unexpected INTA:\t\t %u\n", isr_stats->unhandled); =20 - ret =3D simple_read_from_buffer(user_buf, count, ppos, buf, pos); + ret =3D simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); kfree(buf); return ret; } =20 -static ssize_t iwl_dbgfs_interrupt_write(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t iwl_dbgfs_interrupt_write_iter(struct kiocb *iocb, + struct iov_iter *from) { - struct iwl_trans *trans =3D file->private_data; + struct iwl_trans *trans =3D iocb->ki_filp->private_data; struct iwl_trans_pcie *trans_pcie =3D IWL_TRANS_GET_PCIE_TRANS(trans); struct isr_statistics *isr_stats =3D &trans_pcie->isr_stats; + size_t count =3D iov_iter_count(from); u32 reset_flag; int ret; =20 - ret =3D kstrtou32_from_user(user_buf, count, 16, &reset_flag); + ret =3D kstrtou32_from_iter(from, count, 16, &reset_flag); if (ret) return ret; if (reset_flag =3D=3D 0) @@ -2810,22 +2806,19 @@ static ssize_t iwl_dbgfs_interrupt_write(struct fil= e *file, return count; } =20 -static ssize_t iwl_dbgfs_csr_write(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t iwl_dbgfs_csr_write_iter(struct kiocb *iocb, + struct iov_iter *from) { - struct iwl_trans *trans =3D file->private_data; + struct iwl_trans *trans =3D iocb->ki_filp->private_data; =20 iwl_pcie_dump_csr(trans); =20 - return count; + return iov_iter_count(from); } =20 -static ssize_t iwl_dbgfs_fh_reg_read(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t iwl_dbgfs_fh_reg_read(struct kiocb *iocb, struct iov_iter *= to) { - struct iwl_trans *trans =3D file->private_data; + struct iwl_trans *trans =3D iocb->ki_filp->private_data; char *buf =3D NULL; ssize_t ret; =20 @@ -2834,16 +2827,14 @@ static ssize_t iwl_dbgfs_fh_reg_read(struct file *f= ile, return ret; if (!buf) return -EINVAL; - ret =3D simple_read_from_buffer(user_buf, count, ppos, buf, ret); + ret =3D simple_copy_to_iter(buf, &iocb->ki_pos, ret, to); kfree(buf); return ret; } =20 -static ssize_t iwl_dbgfs_rfkill_read(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t iwl_dbgfs_rfkill_read(struct kiocb *iocb, struct iov_iter *= to) { - struct iwl_trans *trans =3D file->private_data; + struct iwl_trans *trans =3D iocb->ki_filp->private_data; struct iwl_trans_pcie *trans_pcie =3D IWL_TRANS_GET_PCIE_TRANS(trans); char buf[100]; int pos; @@ -2853,19 +2844,19 @@ static ssize_t iwl_dbgfs_rfkill_read(struct file *f= ile, !(iwl_read32(trans, CSR_GP_CNTRL) & CSR_GP_CNTRL_REG_FLAG_HW_RF_KILL_SW)); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, pos); + return simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); } =20 -static ssize_t iwl_dbgfs_rfkill_write(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t iwl_dbgfs_rfkill_write_iter(struct kiocb *iocb, + struct iov_iter *from) { - struct iwl_trans *trans =3D file->private_data; + struct iwl_trans *trans =3D iocb->ki_filp->private_data; struct iwl_trans_pcie *trans_pcie =3D IWL_TRANS_GET_PCIE_TRANS(trans); + size_t count =3D iov_iter_count(from); bool new_value; int ret; =20 - ret =3D kstrtobool_from_user(user_buf, count, &new_value); + ret =3D kstrtobool_from_iter(from, count, &new_value); if (ret) return ret; if (new_value =3D=3D trans_pcie->debug_rfkill) @@ -3008,20 +2999,18 @@ static ssize_t iwl_dbgfs_monitor_data_read(struct f= ile *file, =20 return bytes_copied; } +FOPS_READ_ITER_HELPER(iwl_dbgfs_monitor_data_read); =20 -static ssize_t iwl_dbgfs_rf_read(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t iwl_dbgfs_rf_read(struct kiocb *iocb, struct iov_iter *to) { - struct iwl_trans *trans =3D file->private_data; + struct iwl_trans *trans =3D iocb->ki_filp->private_data; struct iwl_trans_pcie *trans_pcie =3D IWL_TRANS_GET_PCIE_TRANS(trans); =20 if (!trans_pcie->rf_name[0]) return -ENODEV; =20 - return simple_read_from_buffer(user_buf, count, ppos, - trans_pcie->rf_name, - strlen(trans_pcie->rf_name)); + return simple_copy_to_iter(trans_pcie->rf_name, &iocb->ki_pos, + strlen(trans_pcie->rf_name), to); } =20 DEBUGFS_READ_WRITE_FILE_OPS(interrupt); @@ -3034,13 +3023,13 @@ DEBUGFS_READ_FILE_OPS(rf); static const struct file_operations iwl_dbgfs_tx_queue_ops =3D { .owner =3D THIS_MODULE, .open =3D iwl_dbgfs_tx_queue_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D seq_release_private, }; =20 static const struct file_operations iwl_dbgfs_monitor_data_ops =3D { - .read =3D iwl_dbgfs_monitor_data_read, + .read_iter =3D iwl_dbgfs_monitor_data_read_iter, .open =3D iwl_dbgfs_monitor_data_open, .release =3D iwl_dbgfs_monitor_data_release, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f47.google.com (mail-io1-f47.google.com [209.85.166.47]) (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 0ECAC1D4EFF for ; Thu, 11 Apr 2024 15:39:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849994; cv=none; b=PP+hb/o85OtobgmJrPO7MoZKCAF3ZHWPaB0Ht6TAAuiNM/gXcttvkYdudZcis0f7z4JOTIMvTZfU6EJpH8YicoDRNJJ6qhp150uIC+einzl0z6IinZfiRkt3yAichm2XHHUPYzTV+mekIEfBeWvjAyfKilyFoEUK3ryH3PRGSpI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849994; c=relaxed/simple; bh=fwJ7khPh4ChdkEO88piUTbxHoQXcEodNw8Xfb0B3BC4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=qglxIAdTgqr2K7gkKhuTolWQd+tnMKhsrp0z53Ho+00fMrsGqXkv+tp5XD82Z0Fx+qDjjF45usfxm38Pe0Rt/gZB1Hb1EcfxUatxTryCb/szX7tzDXa1wRdKIxJoKffp8wA+p0I/Cutxo49AHx84s8mpd9jyyIPRbcJJV5ZSx0I= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=EzEFqTzl; arc=none smtp.client-ip=209.85.166.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="EzEFqTzl" Received: by mail-io1-f47.google.com with SMTP id ca18e2360f4ac-7d5ed700c2dso16219339f.0 for ; Thu, 11 Apr 2024 08:39:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849991; x=1713454791; 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=sY1G3WB3oWbEDWMyhadFocvPxsdClQQVjP7gxOGVYlE=; b=EzEFqTzlmioIKn+4V2NuZGm2fKU7s/LJNcpCV2UMzE9StFy3nMoYvWASW7XkqiHSKZ 28nr3OXhEqF33DJOoyAYv02MvmaLAtopHodWO7/SdHF9wrohKl1pvZ/ClGHYCgS1KbCk Amd1vokgqn80zLYH82U78PiCEmr0SXzlzmc7y2kmC5HsPZOpl0B0/xqyjTgCYn//naHZ 7nc6o+/Hkl3+OE9jMI69FlHhVpPRRAe/y2RqlSU1GcqGzaKAK3rlZcKwGTVp+1eJfDP4 fJ4MrIzyqPw5Pw5ZO0j9AP4I5at6dB8lS8ObPFJu59KjhQOkdy7RrID52c+6eO0HVkgQ 18+A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849991; x=1713454791; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=sY1G3WB3oWbEDWMyhadFocvPxsdClQQVjP7gxOGVYlE=; b=lSUQrQGBPg8PonwOfnlrvaEmzAGjPcxvS8m+/w2o2cJzAmWa2Jt/UAM2z+uqCUCzLY y6ZBsY5SI/jMRa7srr5frt2hnvIV7KS52s34s9ZkTez5WgQuwE6Oi5NedIqinnPGpBxj dhmzpBUlW/91W+1nKb0AUenCnxGgPK6r7h/PjCjPEgP1SuNmQslpzlRdUHtZ/z7ikhqR xUGXKv9kUriHsg1mXFLZJq0mFmkMqw0hDPUmP8enLFtiG3fc7A9OAwX2bQP68r3w0cpf Hwb9/MDID7IYY5dyaOzRJYQpB+skugqUava2gP5pASYpaByuYQ9u3M5LFYwmprPutv35 9jyQ== X-Gm-Message-State: AOJu0YxQitsi4zNOvqv9ePjfiIlu26zhR3y0ji4Txt4ngYZMlAoS30Ri /xNTZfQK56qmWxH7nGmGN+AxckPLmABBT13acE7LlIPyQPUcwppiOIt2WQDCTPFVI8Hz96jm3zR N X-Google-Smtp-Source: AGHT+IGso9ZMv8lNDU+B9K8NWTUuro6/iLrPH7TO+3/QoCJWPqBw/GGHReebqcWD5ghB7c3MWBbTnQ== X-Received: by 2002:a05:6602:38d:b0:7d6:513b:254 with SMTP id f13-20020a056602038d00b007d6513b0254mr196815iov.2.1712849991612; Thu, 11 Apr 2024 08:39:51 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.39.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:39:50 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 297/437] drivers/net/wireless/mediatek: convert to read/write iterators Date: Thu, 11 Apr 2024 09:17:17 -0600 Message-ID: <20240411153126.16201-298-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- .../wireless/mediatek/mt76/mt7615/debugfs.c | 20 ++++--- .../wireless/mediatek/mt76/mt7915/debugfs.c | 52 +++++++++---------- .../wireless/mediatek/mt76/mt7996/debugfs.c | 33 ++++++------ 3 files changed, 48 insertions(+), 57 deletions(-) diff --git a/drivers/net/wireless/mediatek/mt76/mt7615/debugfs.c b/drivers/= net/wireless/mediatek/mt76/mt7615/debugfs.c index 2a6d317db5e0..d645550bab86 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7615/debugfs.c +++ b/drivers/net/wireless/mediatek/mt76/mt7615/debugfs.c @@ -436,11 +436,9 @@ mt7615_rf_reg_get(void *data, u64 *val) DEFINE_DEBUGFS_ATTRIBUTE(fops_rf_reg, mt7615_rf_reg_get, mt7615_rf_reg_set, "0x%08llx\n"); =20 -static ssize_t -mt7615_ext_mac_addr_read(struct file *file, char __user *userbuf, - size_t count, loff_t *ppos) +static ssize_t mt7615_ext_mac_addr_read(struct kiocb *iocb, struct iov_ite= r *to) { - struct mt7615_dev *dev =3D file->private_data; + struct mt7615_dev *dev =3D iocb->ki_filp->private_data; u32 len =3D 32 * ((ETH_ALEN * 3) + 4) + 1; u8 addr[ETH_ALEN]; char *buf; @@ -464,17 +462,17 @@ mt7615_ext_mac_addr_read(struct file *file, char __us= er *userbuf, ofs +=3D snprintf(buf + ofs, len - ofs, "%d=3D%pM\n", i, addr); } =20 - ofs =3D simple_read_from_buffer(userbuf, count, ppos, buf, ofs); + ofs =3D simple_copy_to_iter(buf, &iocb->ki_pos, ofs, to); =20 kfree(buf); return ofs; } =20 static ssize_t -mt7615_ext_mac_addr_write(struct file *file, const char __user *userbuf, - size_t count, loff_t *ppos) +mt7615_ext_mac_addr_write(struct kiocb *iocb, struct iov_iter *from) { - struct mt7615_dev *dev =3D file->private_data; + struct mt7615_dev *dev =3D iocb->ki_filp->private_data;; + size_t count =3D iov_iter_count(from); unsigned long idx =3D 0; u8 addr[ETH_ALEN]; char buf[32]; @@ -483,7 +481,7 @@ mt7615_ext_mac_addr_write(struct file *file, const char= __user *userbuf, if (count > sizeof(buf)) return -EINVAL; =20 - if (copy_from_user(buf, userbuf, count)) + if (!copy_from_iter_full(buf, count, from)) return -EFAULT; =20 buf[sizeof(buf) - 1] =3D '\0'; @@ -526,8 +524,8 @@ mt7615_ext_mac_addr_write(struct file *file, const char= __user *userbuf, static const struct file_operations fops_ext_mac_addr =3D { .open =3D simple_open, .llseek =3D generic_file_llseek, - .read =3D mt7615_ext_mac_addr_read, - .write =3D mt7615_ext_mac_addr_write, + .read_iter =3D mt7615_ext_mac_addr_read, + .write_iter =3D mt7615_ext_mac_addr_write, .owner =3D THIS_MODULE, }; =20 diff --git a/drivers/net/wireless/mediatek/mt76/mt7915/debugfs.c b/drivers/= net/wireless/mediatek/mt76/mt7915/debugfs.c index 6c3696c8c700..66ffdd915bc5 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7915/debugfs.c +++ b/drivers/net/wireless/mediatek/mt76/mt7915/debugfs.c @@ -46,10 +46,10 @@ DEFINE_DEBUGFS_ATTRIBUTE(fops_implicit_txbf, mt7915_imp= licit_txbf_get, =20 /* test knob of system error recovery */ static ssize_t -mt7915_sys_recovery_set(struct file *file, const char __user *user_buf, - size_t count, loff_t *ppos) +mt7915_sys_recovery_set(struct kiocb *iocb, struct iov_iter *from) { - struct mt7915_phy *phy =3D file->private_data; + struct mt7915_phy *phy =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); struct mt7915_dev *dev =3D phy->dev; bool band =3D phy->mt76->band_idx; char buf[16]; @@ -59,7 +59,7 @@ mt7915_sys_recovery_set(struct file *file, const char __u= ser *user_buf, if (count >=3D sizeof(buf)) return -EINVAL; =20 - if (copy_from_user(buf, user_buf, count)) + if (!copy_from_iter_full(buf, count, from)) return -EFAULT; =20 if (count && buf[count - 1] =3D=3D '\n') @@ -121,11 +121,9 @@ mt7915_sys_recovery_set(struct file *file, const char = __user *user_buf, return ret ? ret : count; } =20 -static ssize_t -mt7915_sys_recovery_get(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t mt7915_sys_recovery_get(struct kiocb *iocb, struct iov_iter= *to) { - struct mt7915_phy *phy =3D file->private_data; + struct mt7915_phy *phy =3D iocb->ki_filp->private_data; struct mt7915_dev *dev =3D phy->dev; char *buff; int desc =3D 0; @@ -196,14 +194,14 @@ mt7915_sys_recovery_get(struct file *file, char __use= r *user_buf, dev->recovery.wm_reset_count, dev->recovery.wa_reset_count); =20 - ret =3D simple_read_from_buffer(user_buf, count, ppos, buff, desc); + ret =3D simple_copy_to_iter(buff, &iocb->ki_pos, desc, to); kfree(buff); return ret; } =20 static const struct file_operations mt7915_sys_recovery_ops =3D { - .write =3D mt7915_sys_recovery_set, - .read =3D mt7915_sys_recovery_get, + .write_iter =3D mt7915_sys_recovery_set, + .read_iter =3D mt7915_sys_recovery_get, .open =3D simple_open, .llseek =3D default_llseek, }; @@ -968,11 +966,9 @@ DEFINE_SHOW_ATTRIBUTE(mt7915_xmit_queues); } \ }) =20 -static ssize_t -mt7915_rate_txpower_get(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t mt7915_rate_txpower_get(struct kiocb *iocb, struct iov_iter= *to) { - struct mt7915_phy *phy =3D file->private_data; + struct mt7915_phy *phy =3D iocb->ki_filp->private_data; struct mt7915_dev *dev =3D phy->dev; s8 txpwr[MT7915_SKU_RATE_NUM]; static const size_t sz =3D 2048; @@ -1038,7 +1034,7 @@ mt7915_rate_txpower_get(struct file *file, char __use= r *user_buf, len +=3D scnprintf(buf + len, sz - len, "\nTx power (bbp) : %6ld\n", mt76_get_field(dev, reg, MT_WF_PHY_TPC_POWER)); =20 - ret =3D simple_read_from_buffer(user_buf, count, ppos, buf, len); + ret =3D simple_copy_to_iter(buf, &iocb->ki_pos, len, to); =20 out: kfree(buf); @@ -1046,10 +1042,10 @@ mt7915_rate_txpower_get(struct file *file, char __u= ser *user_buf, } =20 static ssize_t -mt7915_rate_txpower_set(struct file *file, const char __user *user_buf, - size_t count, loff_t *ppos) +mt7915_rate_txpower_set(struct kiocb *iocb, struct iov_iter *from) { - struct mt7915_phy *phy =3D file->private_data; + struct mt7915_phy *phy =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); struct mt7915_dev *dev =3D phy->dev; struct mt76_phy *mphy =3D phy->mt76; struct mt7915_mcu_txpower_sku req =3D { @@ -1064,7 +1060,7 @@ mt7915_rate_txpower_set(struct file *file, const char= __user *user_buf, if (count >=3D sizeof(buf)) return -EINVAL; =20 - if (copy_from_user(buf, user_buf, count)) + if (!copy_from_iter_full(buf, count, from)) return -EFAULT; =20 if (count && buf[count - 1] =3D=3D '\n') @@ -1139,8 +1135,8 @@ mt7915_rate_txpower_set(struct file *file, const char= __user *user_buf, } =20 static const struct file_operations mt7915_rate_txpower_fops =3D { - .write =3D mt7915_rate_txpower_set, - .read =3D mt7915_rate_txpower_get, + .write_iter =3D mt7915_rate_txpower_set, + .read_iter =3D mt7915_rate_txpower_get, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, @@ -1311,13 +1307,13 @@ bool mt7915_debugfs_rx_log(struct mt7915_dev *dev, = const void *data, int len) #ifdef CONFIG_MAC80211_DEBUGFS /** per-station debugfs **/ =20 -static ssize_t mt7915_sta_fixed_rate_set(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t mt7915_sta_fixed_rate_set(struct kiocb *iocb, + struct iov_iter *from) { - struct ieee80211_sta *sta =3D file->private_data; + struct ieee80211_sta *sta =3D iocb->ki_filp->private_data; struct mt7915_sta *msta =3D (struct mt7915_sta *)sta->drv_priv; struct mt7915_dev *dev =3D msta->vif->phy->dev; + size_t count =3D iov_iter_count(from); struct ieee80211_vif *vif; struct sta_phy phy =3D {}; char buf[100]; @@ -1328,7 +1324,7 @@ static ssize_t mt7915_sta_fixed_rate_set(struct file = *file, if (count >=3D sizeof(buf)) return -EINVAL; =20 - if (copy_from_user(buf, user_buf, count)) + if (!copy_from_iter_full(buf, count, from)) return -EFAULT; =20 if (count && buf[count - 1] =3D=3D '\n') @@ -1371,7 +1367,7 @@ static ssize_t mt7915_sta_fixed_rate_set(struct file = *file, } =20 static const struct file_operations fops_fixed_rate =3D { - .write =3D mt7915_sta_fixed_rate_set, + .write_iter =3D mt7915_sta_fixed_rate_set, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, diff --git a/drivers/net/wireless/mediatek/mt76/mt7996/debugfs.c b/drivers/= net/wireless/mediatek/mt76/mt7996/debugfs.c index 9bd953586b04..afd8a6623b9c 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7996/debugfs.c +++ b/drivers/net/wireless/mediatek/mt76/mt7996/debugfs.c @@ -47,11 +47,10 @@ DEFINE_DEBUGFS_ATTRIBUTE(fops_implicit_txbf, mt7996_imp= licit_txbf_get, mt7996_implicit_txbf_set, "%lld\n"); =20 /* test knob of system error recovery */ -static ssize_t -mt7996_sys_recovery_set(struct file *file, const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t mt7996_sys_recovery_set(struct kiocb *iocb, struct iov_iter= *from) { - struct mt7996_phy *phy =3D file->private_data; + struct mt7996_phy *phy =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); struct mt7996_dev *dev =3D phy->dev; bool band =3D phy->mt76->band_idx; char buf[16]; @@ -61,7 +60,7 @@ mt7996_sys_recovery_set(struct file *file, const char __u= ser *user_buf, if (count >=3D sizeof(buf)) return -EINVAL; =20 - if (copy_from_user(buf, user_buf, count)) + if (!copy_from_iter_full(buf, count, from)) return -EFAULT; =20 if (count && buf[count - 1] =3D=3D '\n') @@ -122,11 +121,9 @@ mt7996_sys_recovery_set(struct file *file, const char = __user *user_buf, return ret ? ret : count; } =20 -static ssize_t -mt7996_sys_recovery_get(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t mt7996_sys_recovery_get(struct kiocb *iocb, struct iov_iter= *to) { - struct mt7996_phy *phy =3D file->private_data; + struct mt7996_phy *phy =3D iocb->ki_filp->private_data; struct mt7996_dev *dev =3D phy->dev; char *buff; int desc =3D 0; @@ -205,14 +202,14 @@ mt7996_sys_recovery_get(struct file *file, char __use= r *user_buf, dev->recovery.wm_reset_count, dev->recovery.wa_reset_count); =20 - ret =3D simple_read_from_buffer(user_buf, count, ppos, buff, desc); + ret =3D simple_copy_to_iter(buff, &iocb->ki_pos, desc, to); kfree(buff); return ret; } =20 static const struct file_operations mt7996_sys_recovery_ops =3D { - .write =3D mt7996_sys_recovery_set, - .read =3D mt7996_sys_recovery_get, + .write_iter =3D mt7996_sys_recovery_set, + .read_iter =3D mt7996_sys_recovery_get, .open =3D simple_open, .llseek =3D default_llseek, }; @@ -886,15 +883,15 @@ bool mt7996_debugfs_rx_log(struct mt7996_dev *dev, co= nst void *data, int len) #ifdef CONFIG_MAC80211_DEBUGFS /** per-station debugfs **/ =20 -static ssize_t mt7996_sta_fixed_rate_set(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t mt7996_sta_fixed_rate_set(struct kiocb *iocb, + struct iov_iter *from) { #define SHORT_PREAMBLE 0 #define LONG_PREAMBLE 1 - struct ieee80211_sta *sta =3D file->private_data; + struct ieee80211_sta *sta =3D iocb->ki_filp->private_data; struct mt7996_sta *msta =3D (struct mt7996_sta *)sta->drv_priv; struct mt7996_dev *dev =3D msta->vif->phy->dev; + size_t count =3D iov_iter_count(from); struct ra_rate phy =3D {}; char buf[100]; int ret; @@ -903,7 +900,7 @@ static ssize_t mt7996_sta_fixed_rate_set(struct file *f= ile, if (count >=3D sizeof(buf)) return -EINVAL; =20 - if (copy_from_user(buf, user_buf, count)) + if (!copy_from_iter_full(buf, count, from)) return -EFAULT; =20 if (count && buf[count - 1] =3D=3D '\n') @@ -944,7 +941,7 @@ static ssize_t mt7996_sta_fixed_rate_set(struct file *f= ile, } =20 static const struct file_operations fops_fixed_rate =3D { - .write =3D mt7996_sta_fixed_rate_set, + .write_iter =3D mt7996_sta_fixed_rate_set, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f52.google.com (mail-io1-f52.google.com [209.85.166.52]) (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 0897A1D4F10 for ; Thu, 11 Apr 2024 15:39:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849997; cv=none; b=L5okwVxfB/Q9dbD8xYYBLFzndFlWkyIOb0P7G5G47PJ66JTrfS1qjiqcbBcoGHrpv5g+xRLbtmvkrbihkI5zCFdWrqkScl5rNGbJGTmYzm5xSIbI8oU7u7ko1RXHYDXzc03RcJeWPALqI05Iz8VZjd9B8fjo+x7x1l9BOa3/9us= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849997; c=relaxed/simple; bh=/LZAFyBz2OJAp6gm6I/UMuET8X2zjRlG7mzov9CE9fI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=n1ezz4OGCR3Iad/j5p0XiOSPgiKWLXgOUUYBD4PiRcss+Ffih4A40KQIO/+R2I5qafLvZfZywljKwACMPMKh4Bqw45AvKLry5xH3VW/uescMYO6yygHvWhzozFLCn8L4u8uUrNc+EELd8Lk2GaJ7fA+PZTm9uHs02cxT0Wj2yg4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=3C8PbngL; arc=none smtp.client-ip=209.85.166.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="3C8PbngL" Received: by mail-io1-f52.google.com with SMTP id ca18e2360f4ac-7d6812b37a6so9033639f.0 for ; Thu, 11 Apr 2024 08:39:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849994; x=1713454794; 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=enTo/mQ1pweo1a8RhDYh+R6rp1ViKSzwVDf9GltQJ94=; b=3C8PbngL2yn3fRVgusewDLSy2kCEd3BYNbwsejl1sxg5U3Iauv430Ykf0/W/jHW/ms f/b9gy5b+YQwM7htv/gBzj0pFwPeLWtpi8dfU2tIE5iS8AR8h/SC4Sy9DlCoxqeOcQSs bltDxRa/ETSt6CddAdYAfM5lPBO+N80TR7ZXykG+i88Li1lbLPFCjxEpNLWWJp2gLrjl VWqDWSyvqt2OqC5MqEvWZ6poSuMTvGGXSXg7fz5pT9+4eTZYllqO5Pnwbyumy+uvH9R7 ALhIwldLECoLIvpTShAudyH3pAvPVuJ7UTwZl84qeGzkLj1DMJ5SxMlKpppSEY0dH7IK pK5A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849994; x=1713454794; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=enTo/mQ1pweo1a8RhDYh+R6rp1ViKSzwVDf9GltQJ94=; b=JxEGDvqz0mJrV2qSZmVkQ5ekh5JyBkOLBiRXrw1LZlQEzrskXxRHg7Ee2Q8IxaxtRY R32J+h4GZA346UHOx1b0qtD17Lenavcwz5yCszLukZOxwVtRjwu2uvIIki5uCS0CGdoa JQEzmPtRjnyi1cGLA0vnfacvtEeYwhoju1GB1pla3MWiHNZceJfcp7f6WUljhVDp14xu oLYtSKAVQEx8fH3M31T1m+djvqQknJjm6EyPeLUa+Fte0Mjja3XmPDwWGkUkcuFnzVQe rLjJwJsYnrdP72ONV+G7gZkgx1WNbk3Ht8ExOmBdqEeMo3w6Hj1B+1UchNX5jiJG3qtH VCXA== X-Gm-Message-State: AOJu0YyJsI43ZORT/YM/9Jk0hNtan0L3Q8tibPiyWEfrxm5ckEphKp8G 2jS4ItgRk4drBr619eJrzTRwwqox308Lk/x8VgZJB+jOXHt2ooRTHT4jV6qdHWSNvjP1EaK/BPr F X-Google-Smtp-Source: AGHT+IFqGXrofdgBmfAQfP9nXT6iHWuueflfmKgcvAN+1/5Di47qfYnEb8SQbmSQ4c1tcrOSOQzf/A== X-Received: by 2002:a05:6602:21d7:b0:7d6:9ddf:5095 with SMTP id c23-20020a05660221d700b007d69ddf5095mr26444ioc.1.1712849993745; Thu, 11 Apr 2024 08:39:53 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.39.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:39:51 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 298/437] drivers/net/wireless/ath/ath5k: convert to read/write iterators Date: Thu, 11 Apr 2024 09:17:18 -0600 Message-ID: <20240411153126.16201-299-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/net/wireless/ath/ath5k/debug.c | 148 +++++++++++-------------- 1 file changed, 66 insertions(+), 82 deletions(-) diff --git a/drivers/net/wireless/ath/ath5k/debug.c b/drivers/net/wireless/= ath/ath5k/debug.c index ec130510aeb2..22f19957887c 100644 --- a/drivers/net/wireless/ath/ath5k/debug.c +++ b/drivers/net/wireless/ath/ath5k/debug.c @@ -172,10 +172,9 @@ DEFINE_SEQ_ATTRIBUTE(registers); =20 /* debugfs: beacons */ =20 -static ssize_t read_file_beacon(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t read_file_beacon(struct kiocb *iocb, struct iov_iter *to) { - struct ath5k_hw *ah =3D file->private_data; + struct ath5k_hw *ah =3D iocb->ki_filp->private_data; char buf[500]; unsigned int len =3D 0; unsigned int v; @@ -217,18 +216,17 @@ static ssize_t read_file_beacon(struct file *file, ch= ar __user *user_buf, if (len > sizeof(buf)) len =3D sizeof(buf); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 -static ssize_t write_file_beacon(struct file *file, - const char __user *userbuf, - size_t count, loff_t *ppos) +static ssize_t write_file_beacon(struct kiocb *iocb, struct iov_iter *from) { - struct ath5k_hw *ah =3D file->private_data; + struct ath5k_hw *ah =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); char buf[20]; =20 count =3D min_t(size_t, count, sizeof(buf) - 1); - if (copy_from_user(buf, userbuf, count)) + if (!copy_from_iter_full(buf, count, from)) return -EFAULT; =20 buf[count] =3D '\0'; @@ -243,8 +241,8 @@ static ssize_t write_file_beacon(struct file *file, } =20 static const struct file_operations fops_beacon =3D { - .read =3D read_file_beacon, - .write =3D write_file_beacon, + .read_iter =3D read_file_beacon, + .write_iter =3D write_file_beacon, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, @@ -253,18 +251,16 @@ static const struct file_operations fops_beacon =3D { =20 /* debugfs: reset */ =20 -static ssize_t write_file_reset(struct file *file, - const char __user *userbuf, - size_t count, loff_t *ppos) +static ssize_t write_file_reset(struct kiocb *iocb, struct iov_iter *from) { - struct ath5k_hw *ah =3D file->private_data; + struct ath5k_hw *ah =3D iocb->ki_filp->private_data; ATH5K_DBG(ah, ATH5K_DEBUG_RESET, "debug file triggered reset\n"); ieee80211_queue_work(ah->hw, &ah->reset_work); - return count; + return iov_iter_count(from); } =20 static const struct file_operations fops_reset =3D { - .write =3D write_file_reset, + .write_iter =3D write_file_reset, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D noop_llseek, @@ -293,10 +289,9 @@ static const struct { { ATH5K_DEBUG_ANY, "all", "show all debug levels" }, }; =20 -static ssize_t read_file_debug(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t read_file_debug(struct kiocb *iocb, struct iov_iter *to) { - struct ath5k_hw *ah =3D file->private_data; + struct ath5k_hw *ah =3D iocb->ki_filp->private_data; char buf[700]; unsigned int len =3D 0; unsigned int i; @@ -318,19 +313,18 @@ static ssize_t read_file_debug(struct file *file, cha= r __user *user_buf, if (len > sizeof(buf)) len =3D sizeof(buf); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 -static ssize_t write_file_debug(struct file *file, - const char __user *userbuf, - size_t count, loff_t *ppos) +static ssize_t write_file_debug(struct kiocb *iocb, struct iov_iter *from) { - struct ath5k_hw *ah =3D file->private_data; + struct ath5k_hw *ah =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); unsigned int i; char buf[20]; =20 count =3D min_t(size_t, count, sizeof(buf) - 1); - if (copy_from_user(buf, userbuf, count)) + if (!copy_from_iter_full(buf, count, from)) return -EFAULT; =20 buf[count] =3D '\0'; @@ -345,8 +339,8 @@ static ssize_t write_file_debug(struct file *file, } =20 static const struct file_operations fops_debug =3D { - .read =3D read_file_debug, - .write =3D write_file_debug, + .read_iter =3D read_file_debug, + .write_iter =3D write_file_debug, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, @@ -355,10 +349,9 @@ static const struct file_operations fops_debug =3D { =20 /* debugfs: antenna */ =20 -static ssize_t read_file_antenna(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t read_file_antenna(struct kiocb *iocb, struct iov_iter *to) { - struct ath5k_hw *ah =3D file->private_data; + struct ath5k_hw *ah =3D iocb->ki_filp->private_data; char buf[700]; unsigned int len =3D 0; unsigned int i; @@ -423,19 +416,18 @@ static ssize_t read_file_antenna(struct file *file, c= har __user *user_buf, if (len > sizeof(buf)) len =3D sizeof(buf); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 -static ssize_t write_file_antenna(struct file *file, - const char __user *userbuf, - size_t count, loff_t *ppos) +static ssize_t write_file_antenna(struct kiocb *iocb, struct iov_iter *fro= m) { - struct ath5k_hw *ah =3D file->private_data; + struct ath5k_hw *ah =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); unsigned int i; char buf[20]; =20 count =3D min_t(size_t, count, sizeof(buf) - 1); - if (copy_from_user(buf, userbuf, count)) + if (!copy_from_iter_full(buf, count, from)) return -EFAULT; =20 buf[count] =3D '\0'; @@ -459,8 +451,8 @@ static ssize_t write_file_antenna(struct file *file, } =20 static const struct file_operations fops_antenna =3D { - .read =3D read_file_antenna, - .write =3D write_file_antenna, + .read_iter =3D read_file_antenna, + .write_iter =3D write_file_antenna, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, @@ -468,10 +460,9 @@ static const struct file_operations fops_antenna =3D { =20 /* debugfs: misc */ =20 -static ssize_t read_file_misc(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t read_file_misc(struct kiocb *iocb, struct iov_iter *to) { - struct ath5k_hw *ah =3D file->private_data; + struct ath5k_hw *ah =3D iocb->ki_filp->private_data; char buf[700]; unsigned int len =3D 0; u32 filt =3D ath5k_hw_get_rx_filter(ah); @@ -511,11 +502,11 @@ static ssize_t read_file_misc(struct file *file, char= __user *user_buf, if (len > sizeof(buf)) len =3D sizeof(buf); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 static const struct file_operations fops_misc =3D { - .read =3D read_file_misc, + .read_iter =3D read_file_misc, .open =3D simple_open, .owner =3D THIS_MODULE, }; @@ -523,10 +514,9 @@ static const struct file_operations fops_misc =3D { =20 /* debugfs: frameerrors */ =20 -static ssize_t read_file_frameerrors(struct file *file, char __user *user_= buf, - size_t count, loff_t *ppos) +static ssize_t read_file_frameerrors(struct kiocb *iocb, struct iov_iter *= to) { - struct ath5k_hw *ah =3D file->private_data; + struct ath5k_hw *ah =3D iocb->ki_filp->private_data; struct ath5k_statistics *st =3D &ah->stats; char buf[700]; unsigned int len =3D 0; @@ -596,19 +586,18 @@ static ssize_t read_file_frameerrors(struct file *fil= e, char __user *user_buf, if (len > sizeof(buf)) len =3D sizeof(buf); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 -static ssize_t write_file_frameerrors(struct file *file, - const char __user *userbuf, - size_t count, loff_t *ppos) +static ssize_t write_file_frameerrors(struct kiocb *iocb, struct iov_iter = *from) { - struct ath5k_hw *ah =3D file->private_data; + struct ath5k_hw *ah =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); struct ath5k_statistics *st =3D &ah->stats; char buf[20]; =20 count =3D min_t(size_t, count, sizeof(buf) - 1); - if (copy_from_user(buf, userbuf, count)) + if (!copy_from_iter_full(buf, count, from)) return -EFAULT; =20 buf[count] =3D '\0'; @@ -631,8 +620,8 @@ static ssize_t write_file_frameerrors(struct file *file, } =20 static const struct file_operations fops_frameerrors =3D { - .read =3D read_file_frameerrors, - .write =3D write_file_frameerrors, + .read_iter =3D read_file_frameerrors, + .write_iter =3D write_file_frameerrors, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, @@ -641,10 +630,9 @@ static const struct file_operations fops_frameerrors = =3D { =20 /* debugfs: ani */ =20 -static ssize_t read_file_ani(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t read_file_ani(struct kiocb *iocb, struct iov_iter *to) { - struct ath5k_hw *ah =3D file->private_data; + struct ath5k_hw *ah =3D iocb->ki_filp->private_data; struct ath5k_statistics *st =3D &ah->stats; struct ath5k_ani_state *as =3D &ah->ani_state; =20 @@ -746,18 +734,17 @@ static ssize_t read_file_ani(struct file *file, char = __user *user_buf, if (len > sizeof(buf)) len =3D sizeof(buf); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 -static ssize_t write_file_ani(struct file *file, - const char __user *userbuf, - size_t count, loff_t *ppos) +static ssize_t write_file_ani(struct kiocb *iocb, struct iov_iter *from) { - struct ath5k_hw *ah =3D file->private_data; + struct ath5k_hw *ah =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); char buf[20]; =20 count =3D min_t(size_t, count, sizeof(buf) - 1); - if (copy_from_user(buf, userbuf, count)) + if (!copy_from_iter_full(buf, count, from)) return -EFAULT; =20 buf[count] =3D '\0'; @@ -796,8 +783,8 @@ static ssize_t write_file_ani(struct file *file, } =20 static const struct file_operations fops_ani =3D { - .read =3D read_file_ani, - .write =3D write_file_ani, + .read_iter =3D read_file_ani, + .write_iter =3D write_file_ani, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, @@ -806,10 +793,9 @@ static const struct file_operations fops_ani =3D { =20 /* debugfs: queues etc */ =20 -static ssize_t read_file_queue(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t read_file_queue(struct kiocb *iocb, struct iov_iter *to) { - struct ath5k_hw *ah =3D file->private_data; + struct ath5k_hw *ah =3D iocb->ki_filp->private_data; char buf[700]; unsigned int len =3D 0; =20 @@ -844,18 +830,17 @@ static ssize_t read_file_queue(struct file *file, cha= r __user *user_buf, if (len > sizeof(buf)) len =3D sizeof(buf); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 -static ssize_t write_file_queue(struct file *file, - const char __user *userbuf, - size_t count, loff_t *ppos) +static ssize_t write_file_queue(struct kiocb *iocb, struct iov_iter *from) { - struct ath5k_hw *ah =3D file->private_data; + struct ath5k_hw *ah =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); char buf[20]; =20 count =3D min_t(size_t, count, sizeof(buf) - 1); - if (copy_from_user(buf, userbuf, count)) + if (!copy_from_iter_full(buf, count, from)) return -EFAULT; =20 buf[count] =3D '\0'; @@ -869,8 +854,8 @@ static ssize_t write_file_queue(struct file *file, =20 =20 static const struct file_operations fops_queue =3D { - .read =3D read_file_queue, - .write =3D write_file_queue, + .read_iter =3D read_file_queue, + .write_iter =3D write_file_queue, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, @@ -948,12 +933,11 @@ static int open_file_eeprom(struct inode *inode, stru= ct file *file) =20 } =20 -static ssize_t read_file_eeprom(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t read_file_eeprom(struct kiocb *iocb, struct iov_iter *to) { - struct eeprom_private *ep =3D file->private_data; + struct eeprom_private *ep =3D iocb->ki_filp->private_data; =20 - return simple_read_from_buffer(user_buf, count, ppos, ep->buf, ep->len); + return simple_copy_to_iter(ep->buf, &iocb->ki_pos, ep->len, to); } =20 static int release_file_eeprom(struct inode *inode, struct file *file) @@ -968,7 +952,7 @@ static int release_file_eeprom(struct inode *inode, str= uct file *file) =20 static const struct file_operations fops_eeprom =3D { .open =3D open_file_eeprom, - .read =3D read_file_eeprom, + .read_iter =3D read_file_eeprom, .release =3D release_file_eeprom, .owner =3D THIS_MODULE, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f51.google.com (mail-io1-f51.google.com [209.85.166.51]) (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 E54A23D994 for ; Thu, 11 Apr 2024 15:39:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849999; cv=none; b=C6z8yqN/sAZYBhWBgC66/qHKcz9PVyHmUMt+lIURSvqQxcJnitmTl5En4kGWGF2s9oD9rFB6CCrqlLMUm33w0iGLGRF5ORVUFK6iXIc4CGJ6dFR+w8LxDEGeUp1hiHB4FjOSdDwE2ETxHOvxJ7Xq7GZfsouAG1jv+7oT0g9y7D4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849999; c=relaxed/simple; bh=PbdVf0K/1JPdqb+hLBCBRO0RlaNJgFCGXdvGnloyWdU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=RJaH6yfXtRt7B0f8bpJjSZbhDsCLzUVAPUYXMZqzyO6qHmXy3k2xkUw2tI+IwHuSb0eF/URwGEQxsAN/IBu6rpEFjjtpxclaoY72R78B/XXBtU1g+DOOpDxPNZAz+Z+2nw62UIptNwdRD6tfRcynhSKAb8RzVU8tLQB3GU3Pud8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=pgtUb0kD; arc=none smtp.client-ip=209.85.166.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="pgtUb0kD" Received: by mail-io1-f51.google.com with SMTP id ca18e2360f4ac-7d5ed700c2dso16220039f.0 for ; Thu, 11 Apr 2024 08:39:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712849996; x=1713454796; 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=4pDARPBcElBGsSHm8QEfTMGjLKvFl8SxKd0i1UsOV8I=; b=pgtUb0kDTxLxOIsaMvslieI3WRVNY+mF4vXKlVQr4jLETLJvdpzpohzCpW7ZLNZ8j3 TWdtCvXC+HERpUgBgtNLxiy0wEZfeNUm2VBfqBQsCdTl3xgldjRw/Cg+y85faCg62brM CbilYcXyw68H61XgLr3kjXjpp2LtWWr1WMYIFDQR4ffI3OOmot7RnLQrifEm32y+TlZW gbNhfDxd04HukURnXM6NQnwsDKL5teOQK+mxAA3uuBji/wObfa+eKF90HVCDV0FUnkzr DGzK4RA/BNyWNOnrhfiOaLYHwtAC3o4Vd0saGJ4nrRaofs8A25jR1k3afxEYjDag62sE Wz/A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712849996; x=1713454796; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=4pDARPBcElBGsSHm8QEfTMGjLKvFl8SxKd0i1UsOV8I=; b=Ls/xe8w5EVUeiMgEf+OA5cttFShMx1kJldkhjICVlmPqYbr9rk5gdrvVuoByRXlgJV 39A80s/AhVNhT5YNF3VFqUc+E5m7B8KRuixglYAO9BgzKQDc12wYTeA6gg7DB1+z8T6T lC32LfPplop/+TmZloAtqf+UmwuaNACr7IKe9F8hqtA8b114ICb/LaFEmHmp9RvsZcZj /UQ1pdlhTUvBu2SV/YAqyHz/6T20ueR/Dctdyf4+jujFSJqv9GXQ4WBBsBlk3K4kpVtH 8UPTfvU7he6aPGMhPU5HjuthTP9CWWq6sqqVkQOZIsAzT7Zp+3W//pKlWDTyOwxTsrPe kB6Q== X-Gm-Message-State: AOJu0YxtZfZxkflO6eRaUlTcz3o6V0YRBzxs5LcBaz+sZUeTo74zaDGP MKPfrzn/QWU3iTDQMYIMog/Hf/vjHcPnixsGASzb49DdYM6Y/xasScT+vNcbX8kEw011egSiDgc 8 X-Google-Smtp-Source: AGHT+IEAXgN5MwVFD82Eadbq74dT8IJrprZ0LXFpImQ3FnGZHeEAaaV0xxoY30FGXk3VabEtRzcmSA== X-Received: by 2002:a6b:f312:0:b0:7d5:de23:13a9 with SMTP id m18-20020a6bf312000000b007d5de2313a9mr171405ioh.1.1712849995641; Thu, 11 Apr 2024 08:39:55 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.39.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:39:54 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 299/437] drivers/net/wireless/ath/ath6kl: convert to read/write iterators Date: Thu, 11 Apr 2024 09:17:19 -0600 Message-ID: <20240411153126.16201-300-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/net/wireless/ath/ath6kl/debug.c | 312 +++++++++++------------- 1 file changed, 144 insertions(+), 168 deletions(-) diff --git a/drivers/net/wireless/ath/ath6kl/debug.c b/drivers/net/wireless= /ath/ath6kl/debug.c index b837d31416df..f3a7385cf7e5 100644 --- a/drivers/net/wireless/ath/ath6kl/debug.c +++ b/drivers/net/wireless/ath/ath6kl/debug.c @@ -297,10 +297,9 @@ void ath6kl_debug_war(struct ath6kl *ar, enum ath6kl_w= ar war) } } =20 -static ssize_t read_file_war_stats(struct file *file, char __user *user_bu= f, - size_t count, loff_t *ppos) +static ssize_t read_file_war_stats(struct kiocb *iocb, struct iov_iter *to) { - struct ath6kl *ar =3D file->private_data; + struct ath6kl *ar =3D iocb->ki_filp->private_data; char *buf; unsigned int len =3D 0, buf_len =3D 1500; ssize_t ret_cnt; @@ -320,14 +319,14 @@ static ssize_t read_file_war_stats(struct file *file,= char __user *user_buf, if (WARN_ON(len > buf_len)) len =3D buf_len; =20 - ret_cnt =3D simple_read_from_buffer(user_buf, count, ppos, buf, len); + ret_cnt =3D simple_copy_to_iter(buf, &iocb->ki_pos, len, to); =20 kfree(buf); return ret_cnt; } =20 static const struct file_operations fops_war_stats =3D { - .read =3D read_file_war_stats, + .read_iter =3D read_file_war_stats, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, @@ -395,10 +394,10 @@ static int ath6kl_fwlog_release(struct inode *inode, = struct file *file) return 0; } =20 -static ssize_t ath6kl_fwlog_read(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath6kl_fwlog_read(struct kiocb *iocb, struct iov_iter *to) { - struct ath6kl *ar =3D file->private_data; + struct ath6kl *ar =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(to); struct sk_buff *skb; ssize_t ret_cnt; size_t len =3D 0; @@ -431,7 +430,7 @@ static ssize_t ath6kl_fwlog_read(struct file *file, cha= r __user *user_buf, =20 /* FIXME: what to do if len =3D=3D 0? */ =20 - ret_cnt =3D simple_read_from_buffer(user_buf, count, ppos, buf, len); + ret_cnt =3D simple_copy_to_iter(buf, &iocb->ki_pos, len, to); =20 vfree(buf); =20 @@ -441,17 +440,15 @@ static ssize_t ath6kl_fwlog_read(struct file *file, c= har __user *user_buf, static const struct file_operations fops_fwlog =3D { .open =3D ath6kl_fwlog_open, .release =3D ath6kl_fwlog_release, - .read =3D ath6kl_fwlog_read, + .read_iter =3D ath6kl_fwlog_read, .owner =3D THIS_MODULE, .llseek =3D default_llseek, }; =20 -static ssize_t ath6kl_fwlog_block_read(struct file *file, - char __user *user_buf, - size_t count, - loff_t *ppos) +static ssize_t ath6kl_fwlog_block_read(struct kiocb *iocb, struct iov_iter= *to) { - struct ath6kl *ar =3D file->private_data; + struct ath6kl *ar =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(to); struct sk_buff *skb; ssize_t ret_cnt; size_t len =3D 0, not_copied; @@ -498,13 +495,13 @@ static ssize_t ath6kl_fwlog_block_read(struct file *f= ile, =20 /* FIXME: what to do if len =3D=3D 0? */ =20 - not_copied =3D copy_to_user(user_buf, buf, len); + not_copied =3D !copy_to_iter_full(buf, len, to); if (not_copied !=3D 0) { ret_cnt =3D -EFAULT; goto out; } =20 - *ppos =3D *ppos + len; + iocb->ki_pos +=3D len; =20 ret_cnt =3D len; =20 @@ -517,31 +514,29 @@ static ssize_t ath6kl_fwlog_block_read(struct file *f= ile, static const struct file_operations fops_fwlog_block =3D { .open =3D ath6kl_fwlog_open, .release =3D ath6kl_fwlog_release, - .read =3D ath6kl_fwlog_block_read, + .read_iter =3D ath6kl_fwlog_block_read, .owner =3D THIS_MODULE, .llseek =3D default_llseek, }; =20 -static ssize_t ath6kl_fwlog_mask_read(struct file *file, char __user *user= _buf, - size_t count, loff_t *ppos) +static ssize_t ath6kl_fwlog_mask_read(struct kiocb *iocb, struct iov_iter = *to) { - struct ath6kl *ar =3D file->private_data; + struct ath6kl *ar =3D iocb->ki_filp->private_data; char buf[16]; int len; =20 len =3D snprintf(buf, sizeof(buf), "0x%x\n", ar->debug.fwlog_mask); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 -static ssize_t ath6kl_fwlog_mask_write(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath6kl_fwlog_mask_write(struct kiocb *iocb, struct iov_iter= *from) { - struct ath6kl *ar =3D file->private_data; + struct ath6kl *ar =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); int ret; =20 - ret =3D kstrtou32_from_user(user_buf, count, 0, &ar->debug.fwlog_mask); + ret =3D kstrtou32_from_iter(from, count, 0, &ar->debug.fwlog_mask); if (ret) return ret; =20 @@ -556,16 +551,15 @@ static ssize_t ath6kl_fwlog_mask_write(struct file *f= ile, =20 static const struct file_operations fops_fwlog_mask =3D { .open =3D simple_open, - .read =3D ath6kl_fwlog_mask_read, - .write =3D ath6kl_fwlog_mask_write, + .read_iter =3D ath6kl_fwlog_mask_read, + .write_iter =3D ath6kl_fwlog_mask_write, .owner =3D THIS_MODULE, .llseek =3D default_llseek, }; =20 -static ssize_t read_file_tgt_stats(struct file *file, char __user *user_bu= f, - size_t count, loff_t *ppos) +static ssize_t read_file_tgt_stats(struct kiocb *iocb, struct iov_iter *to) { - struct ath6kl *ar =3D file->private_data; + struct ath6kl *ar =3D iocb->ki_filp->private_data; struct ath6kl_vif *vif; struct target_stats *tgt_stats; char *buf; @@ -681,14 +675,14 @@ static ssize_t read_file_tgt_stats(struct file *file,= char __user *user_buf, if (len > buf_len) len =3D buf_len; =20 - ret_cnt =3D simple_read_from_buffer(user_buf, count, ppos, buf, len); + ret_cnt =3D simple_copy_to_iter(buf, &iocb->ki_pos, len, to); =20 kfree(buf); return ret_cnt; } =20 static const struct file_operations fops_tgt_stats =3D { - .read =3D read_file_tgt_stats, + .read_iter =3D read_file_tgt_stats, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, @@ -700,11 +694,10 @@ static const struct file_operations fops_tgt_stats = =3D { #define CREDIT_INFO_DISPLAY_STRING_LEN 200 #define CREDIT_INFO_LEN 128 =20 -static ssize_t read_file_credit_dist_stats(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t read_file_credit_dist_stats(struct kiocb *iocb, + struct iov_iter *to) { - struct ath6kl *ar =3D file->private_data; + struct ath6kl *ar =3D iocb->ki_filp->private_data; struct htc_target *target =3D ar->htc_target; struct htc_endpoint_credit_dist *ep_list; char *buf; @@ -747,13 +740,13 @@ static ssize_t read_file_credit_dist_stats(struct fil= e *file, if (len > buf_len) len =3D buf_len; =20 - ret_cnt =3D simple_read_from_buffer(user_buf, count, ppos, buf, len); + ret_cnt =3D simple_copy_to_iter(buf, &iocb->ki_pos, len, to); kfree(buf); return ret_cnt; } =20 static const struct file_operations fops_credit_dist_stats =3D { - .read =3D read_file_credit_dist_stats, + .read_iter =3D read_file_credit_dist_stats, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, @@ -778,11 +771,10 @@ static unsigned int print_endpoint_stat(struct htc_ta= rget *target, char *buf, return len; } =20 -static ssize_t ath6kl_endpoint_stats_read(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath6kl_endpoint_stats_read(struct kiocb *iocb, + struct iov_iter *to) { - struct ath6kl *ar =3D file->private_data; + struct ath6kl *ar =3D iocb->ki_filp->private_data; struct htc_target *target =3D ar->htc_target; char *buf; unsigned int buf_len, len =3D 0; @@ -828,22 +820,22 @@ static ssize_t ath6kl_endpoint_stats_read(struct file= *file, if (len > buf_len) len =3D buf_len; =20 - ret_cnt =3D simple_read_from_buffer(user_buf, count, ppos, buf, len); + ret_cnt =3D simple_copy_to_iter(buf, &iocb->ki_pos, len, to); kfree(buf); return ret_cnt; } =20 -static ssize_t ath6kl_endpoint_stats_write(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath6kl_endpoint_stats_write(struct kiocb *iocb, + struct iov_iter *from) { - struct ath6kl *ar =3D file->private_data; + struct ath6kl *ar =3D iocb->ki_filp->private_data; struct htc_target *target =3D ar->htc_target; + size_t count =3D iov_iter_count(from); int ret, i; u32 val; struct htc_endpoint_stats *ep_st; =20 - ret =3D kstrtou32_from_user(user_buf, count, 0, &val); + ret =3D kstrtou32_from_iter(from, count, 0, &val); if (ret) return ret; if (val =3D=3D 0) { @@ -858,8 +850,8 @@ static ssize_t ath6kl_endpoint_stats_write(struct file = *file, =20 static const struct file_operations fops_endpoint_stats =3D { .open =3D simple_open, - .read =3D ath6kl_endpoint_stats_read, - .write =3D ath6kl_endpoint_stats_write, + .read_iter =3D ath6kl_endpoint_stats_read, + .write_iter =3D ath6kl_endpoint_stats_write, .owner =3D THIS_MODULE, .llseek =3D default_llseek, }; @@ -889,10 +881,9 @@ static bool ath6kl_dbg_is_diag_reg_valid(u32 reg_addr) return false; } =20 -static ssize_t ath6kl_regread_read(struct file *file, char __user *user_bu= f, - size_t count, loff_t *ppos) +static ssize_t ath6kl_regread_read(struct kiocb *iocb, struct iov_iter *to) { - struct ath6kl *ar =3D file->private_data; + struct ath6kl *ar =3D iocb->ki_filp->private_data; u8 buf[50]; unsigned int len =3D 0; =20 @@ -903,17 +894,16 @@ static ssize_t ath6kl_regread_read(struct file *file,= char __user *user_buf, len +=3D scnprintf(buf + len, sizeof(buf) - len, "All diag registers\n"); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 -static ssize_t ath6kl_regread_write(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath6kl_regread_write(struct kiocb *iocb, struct iov_iter *f= rom) { - struct ath6kl *ar =3D file->private_data; + struct ath6kl *ar =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); unsigned long reg_addr; =20 - if (kstrtoul_from_user(user_buf, count, 0, ®_addr)) + if (kstrtoul_from_iter(from, count, 0, ®_addr)) return -EINVAL; =20 if ((reg_addr % 4) !=3D 0) @@ -928,8 +918,8 @@ static ssize_t ath6kl_regread_write(struct file *file, } =20 static const struct file_operations fops_diag_reg_read =3D { - .read =3D ath6kl_regread_read, - .write =3D ath6kl_regread_write, + .read_iter =3D ath6kl_regread_read, + .write_iter =3D ath6kl_regread_write, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, @@ -1000,11 +990,10 @@ static int ath6kl_regdump_open(struct inode *inode, = struct file *file) return -EIO; } =20 -static ssize_t ath6kl_regdump_read(struct file *file, char __user *user_bu= f, - size_t count, loff_t *ppos) +static ssize_t ath6kl_regdump_read(struct kiocb *iocb, struct iov_iter *to) { - u8 *buf =3D file->private_data; - return simple_read_from_buffer(user_buf, count, ppos, buf, strlen(buf)); + u8 *buf =3D iocb->ki_filp->private_data; + return simple_copy_to_iter(buf, &iocb->ki_pos, strlen(buf), to); } =20 static int ath6kl_regdump_release(struct inode *inode, struct file *file) @@ -1015,21 +1004,21 @@ static int ath6kl_regdump_release(struct inode *ino= de, struct file *file) =20 static const struct file_operations fops_reg_dump =3D { .open =3D ath6kl_regdump_open, - .read =3D ath6kl_regdump_read, + .read_iter =3D ath6kl_regdump_read, .release =3D ath6kl_regdump_release, .owner =3D THIS_MODULE, .llseek =3D default_llseek, }; =20 -static ssize_t ath6kl_lrssi_roam_write(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath6kl_lrssi_roam_write(struct kiocb *iocb, + struct iov_iter *from) { - struct ath6kl *ar =3D file->private_data; + struct ath6kl *ar =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); unsigned long lrssi_roam_threshold; int ret; =20 - if (kstrtoul_from_user(user_buf, count, 0, &lrssi_roam_threshold)) + if (kstrtoul_from_iter(from, count, 0, &lrssi_roam_threshold)) return -EINVAL; =20 ar->lrssi_roam_threshold =3D lrssi_roam_threshold; @@ -1041,53 +1030,48 @@ static ssize_t ath6kl_lrssi_roam_write(struct file = *file, return count; } =20 -static ssize_t ath6kl_lrssi_roam_read(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath6kl_lrssi_roam_read(struct kiocb *iocb, struct iov_iter = *to) { - struct ath6kl *ar =3D file->private_data; + struct ath6kl *ar =3D iocb->ki_filp->private_data; char buf[32]; unsigned int len; =20 len =3D snprintf(buf, sizeof(buf), "%u\n", ar->lrssi_roam_threshold); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 static const struct file_operations fops_lrssi_roam_threshold =3D { - .read =3D ath6kl_lrssi_roam_read, - .write =3D ath6kl_lrssi_roam_write, + .read_iter =3D ath6kl_lrssi_roam_read, + .write_iter =3D ath6kl_lrssi_roam_write, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, }; =20 -static ssize_t ath6kl_regwrite_read(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath6kl_regwrite_read(struct kiocb *iocb, struct iov_iter *t= o) { - struct ath6kl *ar =3D file->private_data; + struct ath6kl *ar =3D iocb->ki_filp->private_data; u8 buf[32]; unsigned int len =3D 0; =20 len =3D scnprintf(buf, sizeof(buf), "Addr: 0x%x Val: 0x%x\n", ar->debug.diag_reg_addr_wr, ar->debug.diag_reg_val_wr); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 -static ssize_t ath6kl_regwrite_write(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath6kl_regwrite_write(struct kiocb *iocb, struct iov_iter *= from) { - struct ath6kl *ar =3D file->private_data; + struct ath6kl *ar =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); char buf[32]; char *sptr, *token; unsigned int len =3D 0; u32 reg_addr, reg_val; =20 len =3D min(count, sizeof(buf) - 1); - if (copy_from_user(buf, user_buf, len)) + if (!copy_from_iter_full(buf, len, from)) return -EFAULT; =20 buf[len] =3D '\0'; @@ -1117,8 +1101,8 @@ static ssize_t ath6kl_regwrite_write(struct file *fil= e, } =20 static const struct file_operations fops_diag_reg_write =3D { - .read =3D ath6kl_regwrite_read, - .write =3D ath6kl_regwrite_write, + .read_iter =3D ath6kl_regwrite_read, + .write_iter =3D ath6kl_regwrite_write, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, @@ -1157,10 +1141,9 @@ int ath6kl_debug_roam_tbl_event(struct ath6kl *ar, c= onst void *buf, return 0; } =20 -static ssize_t ath6kl_roam_table_read(struct file *file, char __user *user= _buf, - size_t count, loff_t *ppos) +static ssize_t ath6kl_roam_table_read(struct kiocb *iocb, struct iov_iter = *to) { - struct ath6kl *ar =3D file->private_data; + struct ath6kl *ar =3D iocb->ki_filp->private_data; int ret; long left; struct wmi_target_roam_tbl *tbl; @@ -1215,31 +1198,31 @@ static ssize_t ath6kl_roam_table_read(struct file *= file, char __user *user_buf, if (len > buf_len) len =3D buf_len; =20 - ret_cnt =3D simple_read_from_buffer(user_buf, count, ppos, buf, len); + ret_cnt =3D simple_copy_to_iter(buf, &iocb->ki_pos, len, to); =20 kfree(buf); return ret_cnt; } =20 static const struct file_operations fops_roam_table =3D { - .read =3D ath6kl_roam_table_read, + .read_iter =3D ath6kl_roam_table_read, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, }; =20 -static ssize_t ath6kl_force_roam_write(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath6kl_force_roam_write(struct kiocb *iocb, + struct iov_iter *from) { - struct ath6kl *ar =3D file->private_data; + struct ath6kl *ar =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); int ret; char buf[20]; size_t len; u8 bssid[ETH_ALEN]; =20 len =3D min(count, sizeof(buf) - 1); - if (copy_from_user(buf, user_buf, len)) + if (!copy_from_iter_full(buf, len, from)) return -EFAULT; buf[len] =3D '\0'; =20 @@ -1254,24 +1237,23 @@ static ssize_t ath6kl_force_roam_write(struct file = *file, } =20 static const struct file_operations fops_force_roam =3D { - .write =3D ath6kl_force_roam_write, + .write_iter =3D ath6kl_force_roam_write, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, }; =20 -static ssize_t ath6kl_roam_mode_write(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath6kl_roam_mode_write(struct kiocb *iocb, struct iov_iter = *from) { - struct ath6kl *ar =3D file->private_data; + struct ath6kl *ar =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); int ret; char buf[20]; size_t len; enum wmi_roam_mode mode; =20 len =3D min(count, sizeof(buf) - 1); - if (copy_from_user(buf, user_buf, len)) + if (!copy_from_iter_full(buf, len, from)) return -EFAULT; buf[len] =3D '\0'; if (len > 0 && buf[len - 1] =3D=3D '\n') @@ -1294,7 +1276,7 @@ static ssize_t ath6kl_roam_mode_write(struct file *fi= le, } =20 static const struct file_operations fops_roam_mode =3D { - .write =3D ath6kl_roam_mode_write, + .write_iter =3D ath6kl_roam_mode_write, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, @@ -1305,27 +1287,25 @@ void ath6kl_debug_set_keepalive(struct ath6kl *ar, = u8 keepalive) ar->debug.keepalive =3D keepalive; } =20 -static ssize_t ath6kl_keepalive_read(struct file *file, char __user *user_= buf, - size_t count, loff_t *ppos) +static ssize_t ath6kl_keepalive_read(struct kiocb *iocb, struct iov_iter *= to) { - struct ath6kl *ar =3D file->private_data; + struct ath6kl *ar =3D iocb->ki_filp->private_data; char buf[16]; int len; =20 len =3D snprintf(buf, sizeof(buf), "%u\n", ar->debug.keepalive); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 -static ssize_t ath6kl_keepalive_write(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath6kl_keepalive_write(struct kiocb *iocb, struct iov_iter = *from) { - struct ath6kl *ar =3D file->private_data; + struct ath6kl *ar =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); int ret; u8 val; =20 - ret =3D kstrtou8_from_user(user_buf, count, 0, &val); + ret =3D kstrtou8_from_iter(from, count, 0, &val); if (ret) return ret; =20 @@ -1338,8 +1318,8 @@ static ssize_t ath6kl_keepalive_write(struct file *fi= le, =20 static const struct file_operations fops_keepalive =3D { .open =3D simple_open, - .read =3D ath6kl_keepalive_read, - .write =3D ath6kl_keepalive_write, + .read_iter =3D ath6kl_keepalive_read, + .write_iter =3D ath6kl_keepalive_write, .owner =3D THIS_MODULE, .llseek =3D default_llseek, }; @@ -1349,28 +1329,27 @@ void ath6kl_debug_set_disconnect_timeout(struct ath= 6kl *ar, u8 timeout) ar->debug.disc_timeout =3D timeout; } =20 -static ssize_t ath6kl_disconnect_timeout_read(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath6kl_disconnect_timeout_read(struct kiocb *iocb, + struct iov_iter *to) { - struct ath6kl *ar =3D file->private_data; + struct ath6kl *ar =3D iocb->ki_filp->private_data; char buf[16]; int len; =20 len =3D snprintf(buf, sizeof(buf), "%u\n", ar->debug.disc_timeout); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 -static ssize_t ath6kl_disconnect_timeout_write(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath6kl_disconnect_timeout_write(struct kiocb *iocb, + struct iov_iter *from) { - struct ath6kl *ar =3D file->private_data; + struct ath6kl *ar =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); int ret; u8 val; =20 - ret =3D kstrtou8_from_user(user_buf, count, 0, &val); + ret =3D kstrtou8_from_iter(from, count, 0, &val); if (ret) return ret; =20 @@ -1383,17 +1362,17 @@ static ssize_t ath6kl_disconnect_timeout_write(stru= ct file *file, =20 static const struct file_operations fops_disconnect_timeout =3D { .open =3D simple_open, - .read =3D ath6kl_disconnect_timeout_read, - .write =3D ath6kl_disconnect_timeout_write, + .read_iter =3D ath6kl_disconnect_timeout_read, + .write_iter =3D ath6kl_disconnect_timeout_write, .owner =3D THIS_MODULE, .llseek =3D default_llseek, }; =20 -static ssize_t ath6kl_create_qos_write(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath6kl_create_qos_write(struct kiocb *iocb, + struct iov_iter *from) { - struct ath6kl *ar =3D file->private_data; + struct ath6kl *ar =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); struct ath6kl_vif *vif; char buf[200]; ssize_t len; @@ -1407,7 +1386,7 @@ static ssize_t ath6kl_create_qos_write(struct file *f= ile, return -EIO; =20 len =3D min(count, sizeof(buf) - 1); - if (copy_from_user(buf, user_buf, len)) + if (!copy_from_iter_full(buf, len, from)) return -EFAULT; buf[len] =3D '\0'; sptr =3D buf; @@ -1561,17 +1540,17 @@ static ssize_t ath6kl_create_qos_write(struct file = *file, } =20 static const struct file_operations fops_create_qos =3D { - .write =3D ath6kl_create_qos_write, + .write_iter =3D ath6kl_create_qos_write, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, }; =20 -static ssize_t ath6kl_delete_qos_write(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath6kl_delete_qos_write(struct kiocb *iocb, + struct iov_iter *from) { - struct ath6kl *ar =3D file->private_data; + struct ath6kl *ar =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); struct ath6kl_vif *vif; char buf[100]; ssize_t len; @@ -1584,7 +1563,7 @@ static ssize_t ath6kl_delete_qos_write(struct file *f= ile, return -EIO; =20 len =3D min(count, sizeof(buf) - 1); - if (copy_from_user(buf, user_buf, len)) + if (!copy_from_iter_full(buf, len, from)) return -EFAULT; buf[len] =3D '\0'; sptr =3D buf; @@ -1608,17 +1587,17 @@ static ssize_t ath6kl_delete_qos_write(struct file = *file, } =20 static const struct file_operations fops_delete_qos =3D { - .write =3D ath6kl_delete_qos_write, + .write_iter =3D ath6kl_delete_qos_write, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, }; =20 -static ssize_t ath6kl_bgscan_int_write(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath6kl_bgscan_int_write(struct kiocb *iocb, + struct iov_iter *from) { - struct ath6kl *ar =3D file->private_data; + struct ath6kl *ar =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); struct ath6kl_vif *vif; u16 bgscan_int; char buf[32]; @@ -1629,7 +1608,7 @@ static ssize_t ath6kl_bgscan_int_write(struct file *f= ile, return -EIO; =20 len =3D min(count, sizeof(buf) - 1); - if (copy_from_user(buf, user_buf, len)) + if (!copy_from_iter_full(buf, len, from)) return -EFAULT; =20 buf[len] =3D '\0'; @@ -1648,17 +1627,16 @@ static ssize_t ath6kl_bgscan_int_write(struct file = *file, } =20 static const struct file_operations fops_bgscan_int =3D { - .write =3D ath6kl_bgscan_int_write, + .write_iter =3D ath6kl_bgscan_int_write, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, }; =20 -static ssize_t ath6kl_listen_int_write(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath6kl_listen_int_write(struct kiocb *iocb, struct iov_iter= *from) { - struct ath6kl *ar =3D file->private_data; + struct ath6kl *ar =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); struct ath6kl_vif *vif; u16 listen_interval; char buf[32]; @@ -1669,7 +1647,7 @@ static ssize_t ath6kl_listen_int_write(struct file *f= ile, return -EIO; =20 len =3D min(count, sizeof(buf) - 1); - if (copy_from_user(buf, user_buf, len)) + if (!copy_from_iter_full(buf, len, from)) return -EFAULT; =20 buf[len] =3D '\0'; @@ -1686,11 +1664,9 @@ static ssize_t ath6kl_listen_int_write(struct file *= file, return count; } =20 -static ssize_t ath6kl_listen_int_read(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath6kl_listen_int_read(struct kiocb *iocb, struct iov_iter = *to) { - struct ath6kl *ar =3D file->private_data; + struct ath6kl *ar =3D iocb->ki_filp->private_data; struct ath6kl_vif *vif; char buf[32]; int len; @@ -1701,22 +1677,22 @@ static ssize_t ath6kl_listen_int_read(struct file *= file, =20 len =3D scnprintf(buf, sizeof(buf), "%u\n", vif->listen_intvl_t); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 static const struct file_operations fops_listen_int =3D { - .read =3D ath6kl_listen_int_read, - .write =3D ath6kl_listen_int_write, + .read_iter =3D ath6kl_listen_int_read, + .write_iter =3D ath6kl_listen_int_write, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, }; =20 -static ssize_t ath6kl_power_params_write(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath6kl_power_params_write(struct kiocb *iocb, + struct iov_iter *from) { - struct ath6kl *ar =3D file->private_data; + struct ath6kl *ar =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); u8 buf[100]; unsigned int len =3D 0; char *sptr, *token; @@ -1724,7 +1700,7 @@ static ssize_t ath6kl_power_params_write(struct file = *file, tx_wakeup, num_tx; =20 len =3D min(count, sizeof(buf) - 1); - if (copy_from_user(buf, user_buf, len)) + if (!copy_from_iter_full(buf, len, from)) return -EFAULT; buf[len] =3D '\0'; sptr =3D buf; @@ -1766,7 +1742,7 @@ static ssize_t ath6kl_power_params_write(struct file = *file, } =20 static const struct file_operations fops_power_params =3D { - .write =3D ath6kl_power_params_write, + .write_iter =3D ath6kl_power_params_write, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f54.google.com (mail-io1-f54.google.com [209.85.166.54]) (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 F01D31D7811 for ; Thu, 11 Apr 2024 15:40:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850005; cv=none; b=SHLTbRnV0tqsWHZsI/IULjBt3HoQdhDYbCisidakFexF8d8dIl5LOGrRWKJ0+CUTi5KKjMw82OKOwC6TtlyTnDDOJ23Jw5AbdXaVNtRIMb6uXd67l6U1XKfU7K65wsIRRODswTZlQz5AvRXY437+A9GA4o5rRbenu2EwDNpzccY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850005; c=relaxed/simple; bh=IPrP+cE2axHvqXnrSIZipP5xO1MrQzdDIIUpapITT0o=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=bFKvU3TjUWpsgROTpYUJG+TWf/u2URYkTA382yWbH+Qi1/+B/yOOS/Zkv2cJls0u8NDieg/kCgSAZlzHoMpbwae2rXrjmLfkP0xbUKFePAy8yI+dwG/gspndtvxZI7L4cSFGOHJVk/2PRjvgfisSsRJMY/6sbXBpQ70/gF3I804= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=Hf10zh8d; arc=none smtp.client-ip=209.85.166.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="Hf10zh8d" Received: by mail-io1-f54.google.com with SMTP id ca18e2360f4ac-7c8e4c0412dso69647039f.1 for ; Thu, 11 Apr 2024 08:40:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850001; x=1713454801; 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=oRVEqZuKkvquICX1CJ1Ou2maDurlGxTuFPytSBLP/g4=; b=Hf10zh8dN+0n1nf9k2XZ0kqNi9NZHIWbli6WcGTBzXBfvqmCUZss6NYMQj+s4ijtJ0 B3koXevvr9YzktcIl7SSPVK70N2YGvAlhHzcbAuFz2JiXEAUH/I7yzRBF/KR1XmH5p1t O2Q9JbfA962FI4doDg5t5/nD4Tdk2NI35lIoTVLZ+IaafCDS/CdcgpByTAstXnw8Y5gR eJ2k2kOiDGhraS/R7qLf+0GRFnsKkAyUAIFqrfflUQKqLL8KImVKtMaSVqA1HcE9OpWC dMuRXU5C+Er09Wy7UVtR8a88/Ymvq/Mt7lS5EqGsyuJRW8hD9jbQO2ij1f1iYh6foeMK MXJQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850001; x=1713454801; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=oRVEqZuKkvquICX1CJ1Ou2maDurlGxTuFPytSBLP/g4=; b=h+ulfRW/vK7pyDUWDa4DBSPAcrSRKYdRhyPRSzrRVziJE4zcpnC/LvCOgp2c9HutE2 ue7L9kVdZ9FIZUfMArrXS1sllMzm1tEUBpmL8O4enfjcqsxh1UsoR+oKzOKbr9prygCQ lfCxh6MWdaSsEp9jDfNeO258vA3mzF7V28Z4xLLKrCXvic2mILYg8ypSTLrlGDag8o1p VdgRrZeW+7ab5NEOl9Jsy+5GQ0pdw4gCtPGKP16IpdGbN5gUnqu0AermxvQrU6be02NS DRc3W3vbE7gssOO/Q7b+sUFRlxP0VR9miwyygc+b98spsUtuaTwDjQPPtU8GugE/hcA+ L2UA== X-Gm-Message-State: AOJu0YzcQpxJjfJ+tvSHAuLhCEfxJoxrNkBryfPisGVSp8BXqev/ANUT emkYwWRlNXlOXoxC6gAh10gterVCiG4/Pz46FCzXm3JhnrMtKphfeGLszHLTXfVXYfEC392AAGe J X-Google-Smtp-Source: AGHT+IGl1pPTyFIzZldUrR25WxHkRKBwK2rRPZicOkCKBd6KYoGFzHGg+XhTJEiVrImE0aeiKeKm4g== X-Received: by 2002:a05:6602:84:b0:7d6:9d75:6de2 with SMTP id h4-20020a056602008400b007d69d756de2mr50534iob.2.1712850000801; Thu, 11 Apr 2024 08:40:00 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.39.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:39:55 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 300/437] drivers/net/wireless/ath/carl9170: convert to read/write iterators Date: Thu, 11 Apr 2024 09:17:20 -0600 Message-ID: <20240411153126.16201-301-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/net/wireless/ath/carl9170/debug.c | 25 +++++++++++------------ 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/drivers/net/wireless/ath/carl9170/debug.c b/drivers/net/wirele= ss/ath/carl9170/debug.c index bb40889d7c72..1116f7c8ef61 100644 --- a/drivers/net/wireless/ath/carl9170/debug.c +++ b/drivers/net/wireless/ath/carl9170/debug.c @@ -59,10 +59,10 @@ struct carl9170_debugfs_fops { enum carl9170_device_state req_dev_state; }; =20 -static ssize_t carl9170_debugfs_read(struct file *file, char __user *userb= uf, - size_t count, loff_t *ppos) +static ssize_t carl9170_debugfs_read(struct kiocb *iocb, struct iov_iter *= to) { struct carl9170_debugfs_fops *dfops; + size_t count =3D iov_iter_count(to); struct ar9170 *ar; char *buf =3D NULL, *res_buf =3D NULL; ssize_t ret =3D 0; @@ -71,11 +71,11 @@ static ssize_t carl9170_debugfs_read(struct file *file,= char __user *userbuf, if (!count) return 0; =20 - ar =3D file->private_data; + ar =3D iocb->ki_filp->private_data; =20 if (!ar) return -ENODEV; - dfops =3D container_of(debugfs_real_fops(file), + dfops =3D container_of(debugfs_real_fops(iocb->ki_filp), struct carl9170_debugfs_fops, fops); =20 if (!dfops->read) @@ -97,8 +97,7 @@ static ssize_t carl9170_debugfs_read(struct file *file, c= har __user *userbuf, res_buf =3D dfops->read(ar, buf, dfops->read_bufsize, &ret); =20 if (ret > 0) - err =3D simple_read_from_buffer(userbuf, count, ppos, - res_buf, ret); + err =3D simple_copy_to_iter(res_buf, &iocb->ki_pos, ret, to); else err =3D ret; =20 @@ -110,10 +109,10 @@ static ssize_t carl9170_debugfs_read(struct file *fil= e, char __user *userbuf, return err; } =20 -static ssize_t carl9170_debugfs_write(struct file *file, - const char __user *userbuf, size_t count, loff_t *ppos) +static ssize_t carl9170_debugfs_write(struct kiocb *iocb, struct iov_iter = *from) { struct carl9170_debugfs_fops *dfops; + size_t count =3D iov_iter_count(from); struct ar9170 *ar; char *buf =3D NULL; int err =3D 0; @@ -124,11 +123,11 @@ static ssize_t carl9170_debugfs_write(struct file *fi= le, if (count > PAGE_SIZE) return -E2BIG; =20 - ar =3D file->private_data; + ar =3D iocb->ki_filp->private_data; =20 if (!ar) return -ENODEV; - dfops =3D container_of(debugfs_real_fops(file), + dfops =3D container_of(debugfs_real_fops(iocb->ki_filp), struct carl9170_debugfs_fops, fops); =20 if (!dfops->write) @@ -138,7 +137,7 @@ static ssize_t carl9170_debugfs_write(struct file *file, if (!buf) return -ENOMEM; =20 - if (copy_from_user(buf, userbuf, count)) { + if (!copy_from_iter_full(buf, count, from)) { err =3D -EFAULT; goto out_free; } @@ -175,8 +174,8 @@ static const struct carl9170_debugfs_fops carl_debugfs_= ##name ##_ops =3D {\ .req_dev_state =3D _dstate, \ .fops =3D { \ .open =3D simple_open, \ - .read =3D carl9170_debugfs_read, \ - .write =3D carl9170_debugfs_write, \ + .read_iter =3D carl9170_debugfs_read, \ + .write_iter =3D carl9170_debugfs_write, \ .owner =3D THIS_MODULE \ }, \ } --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f42.google.com (mail-io1-f42.google.com [209.85.166.42]) (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 E1E2D1D7807 for ; Thu, 11 Apr 2024 15:40:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850005; cv=none; b=ldJ1zqPimsWNQA5FGJy8VS65oFkYEReh+nBYNaElWBXaps9XW4mTPOOA77mBUdtG15D4jB9vPQJtAip5vcI3HK2gYGuVGHY0FZe1y5GgaekP7OZPnubnu/ryvvc1Wd5aPTGVps1pqQwUq1lPZ0cvvMVrvw915gteiUy+YdUwbZ8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850005; c=relaxed/simple; bh=hXwDYhwj3YSZzWtjDd4fd9DrBed0R4EhaNgf27PusW4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=XFF7uKDy/uQdzwTCP+dIdScsc43r7pm5ZqoUgxHWFlK3TnpQV9tA++6Kc58+qLjmkYG2ATjWtIsZWqPR1Gqfg2JkGIV/3PxumER+6OMMlX+3TCtCYG0jKM34s3CS7wNpwwlrYY4mAuL+q5aCOPwbwTnPkxpVFe/Qd2Khf/fDzcY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=x7iqr8Yb; arc=none smtp.client-ip=209.85.166.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="x7iqr8Yb" Received: by mail-io1-f42.google.com with SMTP id ca18e2360f4ac-7d67d1073easo9870939f.0 for ; Thu, 11 Apr 2024 08:40:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850003; x=1713454803; 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=7QUhAUeMX/r2Id0WBJRretvoAUZBcP0M+PInid6//Ks=; b=x7iqr8YbNv38HMiY2eTr6bpY590zUC+90I1uCMBg6QncLLurqweRlRiwQooWFWJGoo YPNMAxPo89tOU9TS/XzMa/dWDn2ctZNOf+90qCF67RKQl1G5+AdD7dR0O+IlBoMm+AY3 DfNunysgfY5OpFtex5fsEIi5yW0UEsYOuIpLU8DcViKtjqq7T51zmA3c9pjJbuUnF6wS AH7ONNIpMoayuGmIzevHZWRCmEUL3tpjQYAwrbU8M/ravW6Cxel162tH1ARFenbdKI39 UpL5QbhzjWLtXopq334IRfK0Ms4XBhKc/UiXzXjVkd5YRaEygpVY93VCo6CcFM8Efv8K GmKQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850003; x=1713454803; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=7QUhAUeMX/r2Id0WBJRretvoAUZBcP0M+PInid6//Ks=; b=AfVPE5OqqobCzRhqU+f1iG4YDD/s7xVTel6K+pU4gF78xRGyRmEmYi/LLKJ8BdKikY Qw5qkWVZKoGKPZ/B+dZJbzXV2+V7WDveZIDe4myy0r0dF4q95znfb/7l7viAMVp1PNbb Ng07wX3sK3suq6Reha/vAOuAYk6HzBkEpQHzXpeehByRCAgFjq4HgaSx7ocf4PkAnM4O /91Btbic6Us14PkTIVMhB/lF60dM1kFLRY2jl4RsdL76yQ7RyziM1MmkmDH/LNSqho8N VITROWnqQmkdVIp7DXca8gITEa8t4O09yAh9E+OL+9aqw6f9LHe21D+0oGWsOnyQ9Seq F9lw== X-Gm-Message-State: AOJu0Yz8v3JB2J6Qfr8sWaaHIlpBOe7I1EkHVFLX7jNfVvToKfQphjan fSMDxmMRd6FRkPlP6MHCyimZSH7dF5Y+EwUcdNG4Jmjd8tkOSTllez9MKs/jDQDb2QdzPPskLHs M X-Google-Smtp-Source: AGHT+IFgpGWmQvaLTfrMew8M0fZrXdYSPPpFdq1PYyzzmuz2UTURF13wZvA/wVOizk+PlmNr76SnKA== X-Received: by 2002:a6b:c34e:0:b0:7d6:7b7c:8257 with SMTP id t75-20020a6bc34e000000b007d67b7c8257mr229139iof.0.1712850002746; Thu, 11 Apr 2024 08:40:02 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.40.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:40:01 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 301/437] drivers/net/wireless/ath/wcn36xx: convert to read/write iterators Date: Thu, 11 Apr 2024 09:17:21 -0600 Message-ID: <20240411153126.16201-302-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/net/wireless/ath/wcn36xx/debug.c | 42 +++++++++++------------- 1 file changed, 19 insertions(+), 23 deletions(-) diff --git a/drivers/net/wireless/ath/wcn36xx/debug.c b/drivers/net/wireles= s/ath/wcn36xx/debug.c index 58b3c0501bfd..9dbfb831c0fd 100644 --- a/drivers/net/wireless/ath/wcn36xx/debug.c +++ b/drivers/net/wireless/ath/wcn36xx/debug.c @@ -25,10 +25,9 @@ =20 #ifdef CONFIG_WCN36XX_DEBUGFS =20 -static ssize_t read_file_bool_bmps(struct file *file, char __user *user_bu= f, - size_t count, loff_t *ppos) +static ssize_t read_file_bool_bmps(struct kiocb *iocb, struct iov_iter *to) { - struct wcn36xx *wcn =3D file->private_data; + struct wcn36xx *wcn =3D iocb->ki_filp->private_data; struct wcn36xx_vif *vif_priv =3D NULL; struct ieee80211_vif *vif =3D NULL; char buf[3]; @@ -46,14 +45,13 @@ static ssize_t read_file_bool_bmps(struct file *file, c= har __user *user_buf, buf[1] =3D '\n'; buf[2] =3D 0x00; =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, 2); + return simple_copy_to_iter(buf, &iocb->ki_pos, 2, to); } =20 -static ssize_t write_file_bool_bmps(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t write_file_bool_bmps(struct kiocb *iocb, struct iov_iter *f= rom) { - struct wcn36xx *wcn =3D file->private_data; + struct wcn36xx *wcn =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); struct wcn36xx_vif *vif_priv =3D NULL; struct ieee80211_vif *vif =3D NULL; =20 @@ -61,7 +59,7 @@ static ssize_t write_file_bool_bmps(struct file *file, int buf_size; =20 buf_size =3D min(count, (sizeof(buf)-1)); - if (copy_from_user(buf, user_buf, buf_size)) + if (!copy_from_iter_full(buf, buf_size, from)) return -EFAULT; =20 switch (buf[0]) { @@ -92,15 +90,14 @@ static ssize_t write_file_bool_bmps(struct file *file, =20 static const struct file_operations fops_wcn36xx_bmps =3D { .open =3D simple_open, - .read =3D read_file_bool_bmps, - .write =3D write_file_bool_bmps, + .read_iter =3D read_file_bool_bmps, + .write_iter =3D write_file_bool_bmps, }; =20 -static ssize_t write_file_dump(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t write_file_dump(struct kiocb *iocb, struct iov_iter *from) { - struct wcn36xx *wcn =3D file->private_data; + struct wcn36xx *wcn =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); char buf[255], *tmp; int buf_size; u32 arg[WCN36xx_MAX_DUMP_ARGS]; @@ -110,7 +107,7 @@ static ssize_t write_file_dump(struct file *file, memset(arg, 0, sizeof(arg)); =20 buf_size =3D min(count, (sizeof(buf) - 1)); - if (copy_from_user(buf, user_buf, buf_size)) + if (!copy_from_iter_full(buf, buf_size, from)) return -EFAULT; =20 tmp =3D buf; @@ -134,14 +131,13 @@ static ssize_t write_file_dump(struct file *file, =20 static const struct file_operations fops_wcn36xx_dump =3D { .open =3D simple_open, - .write =3D write_file_dump, + .write_iter =3D write_file_dump, }; =20 -static ssize_t read_file_firmware_feature_caps(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t read_file_firmware_feature_caps(struct kiocb *iocb, + struct iov_iter *to) { - struct wcn36xx *wcn =3D file->private_data; + struct wcn36xx *wcn =3D iocb->ki_filp->private_data; size_t len =3D 0, buf_len =3D 2048; char *buf; int i; @@ -162,7 +158,7 @@ static ssize_t read_file_firmware_feature_caps(struct f= ile *file, } mutex_unlock(&wcn->hal_mutex); =20 - ret =3D simple_read_from_buffer(user_buf, count, ppos, buf, len); + ret =3D simple_copy_to_iter(buf, &iocb->ki_pos, len, to); kfree(buf); =20 return ret; @@ -170,7 +166,7 @@ static ssize_t read_file_firmware_feature_caps(struct f= ile *file, =20 static const struct file_operations fops_wcn36xx_firmware_feat_caps =3D { .open =3D simple_open, - .read =3D read_file_firmware_feature_caps, + .read_iter =3D read_file_firmware_feature_caps, }; =20 #define ADD_FILE(name, mode, fop, priv_data) \ --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f42.google.com (mail-io1-f42.google.com [209.85.166.42]) (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 3D7921D6382 for ; Thu, 11 Apr 2024 15:40:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850008; cv=none; b=KjSf0A320PVt3m40RD/wcqOp3GRbtzdSeGZxzcLHdsjpN7dXiDnUaCyGblz0LihlvTCyvnjA+8PU6XfXDaxtYX3u0GvaJnS+Gx4wFGK9nMIB7CPNYUif8VTruclemWtN2GZb1+YiY0xaJXMtETSglUlS+OhGl+1LVKJmnxNv5Js= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850008; c=relaxed/simple; bh=safo+3KppbrfaE/ZWM9s/00ZzRe2clHcb0Hc8+WBPxY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=DHzfM5H71zWeYk6xgi8c2GxWlIHAULETapYbKKYAeJYV9k/ijcHCmKvnsQ5v7p7+4JO6YJ1TStG/IA2uBELhanoAfxqx1SYj9VJZH+HRoq/ftUjpvAixNvwAMDg1p6JQEul7M+pnWjeFt68OQgdv6cwr6Y9VuNvMK1iQrLNPpx0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=NPB/0CXd; arc=none smtp.client-ip=209.85.166.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="NPB/0CXd" Received: by mail-io1-f42.google.com with SMTP id ca18e2360f4ac-7d6812b37a6so9037439f.0 for ; Thu, 11 Apr 2024 08:40:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850005; x=1713454805; 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=KhrkCaU9n4JlMQVLlm18IbTnJ2di94bLnrw1MBGlhbM=; b=NPB/0CXdGI033JoGCqHSbtkTeFSRIvx24tofSBVoDyhItQVIZkISn+23KSiDQXrqUE BwZvy1PjQj/nfmhlOtyn9JoULjrQ0hKM7z4AFDF3/LyqpKnJJLDNLb2UBsYIp1WZ7+3l 5PDHXojDghr33g9vky8PwaalyDNONCVaqvkDYcUIYfJsTpRrIE/xuzH3+c7NvTFxzbjZ mVteBfQuRV6y7QZW/6ykPjWxZKTD4pcXIztzNJVX7V/DLsuWHKX+eJREZHiKtxd3FN9j iUSEJlX1ODCibn9tBS8QH6jkhImc39s6IEsIL3MbpJBb3X/y7M8jkFSevCUnRFTYFSZL Vahw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850005; x=1713454805; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=KhrkCaU9n4JlMQVLlm18IbTnJ2di94bLnrw1MBGlhbM=; b=N58DztshToi6m/rsm//qO8kKq7KSLmpmxPd5iILp/+FIP5/Hn1kB4/YPQjb8kuMlB2 4ljkbR4NNRkupL5mgTPlYsWA2vlPT5iwBv5ijksjV1yZNKRWkeBVTWVGX1EGZNvOscWh Pxl3wwkDOZfAkR3+Kx6R+xur6Ex9/EOFIhNfE9ejO6DwmG8c6pxz2mfu1XRZGLeOSnNy PaHuLGaYb1E919unK2GrEiHqWd1Tk4j/hPOPVMtdlccDm8cceruEkGPFx2P7q6QuyQyv sEPknfq+XAQY6xioDkfNKMWV0C1Q7g/hgNOFlPiW0V8zgUdAsjwkUJIfGUNDJ1g4Im// Ne+Q== X-Gm-Message-State: AOJu0YwbJRmLqFPh8fIEMSgR7jiypN73BBmx7bjs7xsY5UY+WgzSqo+y 3o2jwlyXuBh2Q6TYoMThElbHtV2Z7gJb6BCBkE2dSZ6r5IpJ6FPxvXmTbGru4A+loT2atQmC901 Y X-Google-Smtp-Source: AGHT+IG8xPNdFOJIoUtw12SLGrSvmzguGqSK3Mxq5YaQ+5Fgy8jkSvl1y6T1OIkeG5JBrth6ri4jcA== X-Received: by 2002:a5e:9907:0:b0:7d6:751f:192 with SMTP id t7-20020a5e9907000000b007d6751f0192mr191175ioj.2.1712850004693; Thu, 11 Apr 2024 08:40:04 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.40.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:40:03 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 302/437] drivers/net/wireless/ath/wil6210: convert to read/write iterators Date: Thu, 11 Apr 2024 09:17:22 -0600 Message-ID: <20240411153126.16201-303-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/net/wireless/ath/wil6210/debugfs.c | 235 ++++++++++----------- drivers/net/wireless/ath/wil6210/pmc.c | 27 ++- drivers/net/wireless/ath/wil6210/pmc.h | 2 +- 3 files changed, 122 insertions(+), 142 deletions(-) diff --git a/drivers/net/wireless/ath/wil6210/debugfs.c b/drivers/net/wirel= ess/ath/wil6210/debugfs.c index c021ebcddee7..9cbbdd9b9b85 100644 --- a/drivers/net/wireless/ath/wil6210/debugfs.c +++ b/drivers/net/wireless/ath/wil6210/debugfs.c @@ -611,14 +611,14 @@ static int memread_show(struct seq_file *s, void *dat= a) } DEFINE_SHOW_ATTRIBUTE(memread); =20 -static ssize_t wil_read_file_ioblob(struct file *file, char __user *user_b= uf, - size_t count, loff_t *ppos) +static ssize_t wil_read_file_ioblob(struct kiocb *iocb, struct iov_iter *t= o) { enum { max_count =3D 4096 }; - struct wil_blob_wrapper *wil_blob =3D file->private_data; + struct wil_blob_wrapper *wil_blob =3D iocb->ki_filp->private_data; struct wil6210_priv *wil =3D wil_blob->wil; - loff_t aligned_pos, pos =3D *ppos; + loff_t aligned_pos, pos =3D iocb->ki_pos; size_t available =3D wil_blob->blob.size; + size_t count =3D iov_iter_count(to); void *buf; size_t unaligned_bytes, aligned_count, ret; int rc; @@ -659,7 +659,7 @@ static ssize_t wil_read_file_ioblob(struct file *file, = char __user *user_buf, wil_memcpy_fromio_32(buf, (const void __iomem *) wil_blob->blob.data + aligned_pos, aligned_count); =20 - ret =3D copy_to_user(user_buf, buf + unaligned_bytes, count); + ret =3D !copy_to_iter_full(buf + unaligned_bytes, count, to); =20 wil_mem_access_unlock(wil); wil_pm_runtime_put(wil); @@ -669,13 +669,12 @@ static ssize_t wil_read_file_ioblob(struct file *file= , char __user *user_buf, return -EFAULT; =20 count -=3D ret; - *ppos =3D pos + count; - + iocb->ki_pos =3D pos + count; return count; } =20 static const struct file_operations fops_ioblob =3D { - .read =3D wil_read_file_ioblob, + .read_iter =3D wil_read_file_ioblob, .open =3D simple_open, .llseek =3D default_llseek, }; @@ -690,15 +689,15 @@ struct dentry *wil_debugfs_create_ioblob(const char *= name, } =20 /*---write channel 1..4 to rxon for it, 0 to rxoff---*/ -static ssize_t wil_write_file_rxon(struct file *file, const char __user *b= uf, - size_t len, loff_t *ppos) +static ssize_t wil_write_file_rxon(struct kiocb *iocb, struct iov_iter *fr= om) { - struct wil6210_priv *wil =3D file->private_data; + struct wil6210_priv *wil =3D iocb->ki_filp->private_data; + size_t len =3D iov_iter_count(from); int rc; long channel; bool on; =20 - char *kbuf =3D memdup_user_nul(buf, len); + char *kbuf =3D iterdup_nul(from, len); =20 if (IS_ERR(kbuf)) return PTR_ERR(kbuf); @@ -727,19 +726,18 @@ static ssize_t wil_write_file_rxon(struct file *file,= const char __user *buf, } =20 static const struct file_operations fops_rxon =3D { - .write =3D wil_write_file_rxon, + .write_iter =3D wil_write_file_rxon, .open =3D simple_open, }; =20 -static ssize_t wil_write_file_rbufcap(struct file *file, - const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t wil_write_file_rbufcap(struct kiocb *iocb, struct iov_iter = *from) { - struct wil6210_priv *wil =3D file->private_data; + struct wil6210_priv *wil =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); int val; int rc; =20 - rc =3D kstrtoint_from_user(buf, count, 0, &val); + rc =3D kstrtoint_from_iter(from, count, 0, &val); if (rc) { wil_err(wil, "Invalid argument\n"); return rc; @@ -765,7 +763,7 @@ static ssize_t wil_write_file_rbufcap(struct file *file, } =20 static const struct file_operations fops_rbufcap =3D { - .write =3D wil_write_file_rbufcap, + .write_iter =3D wil_write_file_rbufcap, .open =3D simple_open, }; =20 @@ -774,10 +772,10 @@ static const struct file_operations fops_rbufcap =3D { * - "del_tx " to trigger DELBA for Tx side * - "del_rx " to trigger DELBA for Rx side */ -static ssize_t wil_write_back(struct file *file, const char __user *buf, - size_t len, loff_t *ppos) +static ssize_t wil_write_back(struct kiocb *iocb, struct iov_iter *from) { - struct wil6210_priv *wil =3D file->private_data; + struct wil6210_priv *wil =3D iocb->ki_filp->private_data; + size_t len =3D iov_iter_count(from); int rc; char *kbuf =3D kmalloc(len + 1, GFP_KERNEL); char cmd[9]; @@ -786,7 +784,7 @@ static ssize_t wil_write_back(struct file *file, const = char __user *buf, if (!kbuf) return -ENOMEM; =20 - rc =3D simple_write_to_buffer(kbuf, len, ppos, buf, len); + rc =3D simple_copy_from_iter(kbuf, &iocb->ki_pos, len, from); if (rc !=3D len) { kfree(kbuf); return rc >=3D 0 ? -EIO : rc; @@ -847,8 +845,7 @@ static ssize_t wil_write_back(struct file *file, const = char __user *buf, return len; } =20 -static ssize_t wil_read_back(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t wil_read_back(struct kiocb *iocb, struct iov_iter *to) { static const char text[] =3D "block ack control, write:\n" " - \"add \" to trigger ADDBA\n" @@ -857,13 +854,12 @@ static ssize_t wil_read_back(struct file *file, char = __user *user_buf, " - \"del_rx \" to trigger DELBA for Rx side\n" "If missing, set to \"STA_LEAVING\" (36)\n"; =20 - return simple_read_from_buffer(user_buf, count, ppos, text, - sizeof(text)); + return simple_copy_to_iter(text, &iocb->ki_pos, sizeof(text), to); } =20 static const struct file_operations fops_back =3D { - .read =3D wil_read_back, - .write =3D wil_write_back, + .read_iter =3D wil_read_back, + .write_iter =3D wil_write_back, .open =3D simple_open, }; =20 @@ -871,10 +867,10 @@ static const struct file_operations fops_back =3D { * - "alloc " to allocate PMC * - "free" to release memory allocated for PMC */ -static ssize_t wil_write_pmccfg(struct file *file, const char __user *buf, - size_t len, loff_t *ppos) +static ssize_t wil_write_pmccfg(struct kiocb *iocb, struct iov_iter *from) { - struct wil6210_priv *wil =3D file->private_data; + struct wil6210_priv *wil =3D iocb->ki_filp->private_data; + size_t len =3D iov_iter_count(from); int rc; char *kbuf =3D kmalloc(len + 1, GFP_KERNEL); char cmd[9]; @@ -883,7 +879,7 @@ static ssize_t wil_write_pmccfg(struct file *file, cons= t char __user *buf, if (!kbuf) return -ENOMEM; =20 - rc =3D simple_write_to_buffer(kbuf, len, ppos, buf, len); + rc =3D simple_copy_from_iter(kbuf, &iocb->ki_pos, len, from); if (rc !=3D len) { kfree(kbuf); return rc >=3D 0 ? -EIO : rc; @@ -921,10 +917,9 @@ static ssize_t wil_write_pmccfg(struct file *file, con= st char __user *buf, return len; } =20 -static ssize_t wil_read_pmccfg(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t wil_read_pmccfg(struct kiocb *iocb, struct iov_iter *to) { - struct wil6210_priv *wil =3D file->private_data; + struct wil6210_priv *wil =3D iocb->ki_filp->private_data; char text[256]; char help[] =3D "pmc control, write:\n" " - \"alloc \" to allocate pmc\n" @@ -933,19 +928,18 @@ static ssize_t wil_read_pmccfg(struct file *file, cha= r __user *user_buf, snprintf(text, sizeof(text), "Last command status: %d\n\n%s", wil_pmc_last_cmd_status(wil), help); =20 - return simple_read_from_buffer(user_buf, count, ppos, text, - strlen(text) + 1); + return simple_copy_to_iter(text, &iocb->ki_pos, strlen(text) + 1, to); } =20 static const struct file_operations fops_pmccfg =3D { - .read =3D wil_read_pmccfg, - .write =3D wil_write_pmccfg, + .read_iter =3D wil_read_pmccfg, + .write_iter =3D wil_write_pmccfg, .open =3D simple_open, }; =20 static const struct file_operations fops_pmcdata =3D { .open =3D simple_open, - .read =3D wil_pmc_read, + .read_iter =3D wil_pmc_read, .llseek =3D wil_pmc_llseek, }; =20 @@ -957,16 +951,16 @@ static int wil_pmcring_seq_open(struct inode *inode, = struct file *file) static const struct file_operations fops_pmcring =3D { .open =3D wil_pmcring_seq_open, .release =3D single_release, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, }; =20 /*---tx_mgmt---*/ /* Write mgmt frame to this file to send it */ -static ssize_t wil_write_file_txmgmt(struct file *file, const char __user = *buf, - size_t len, loff_t *ppos) +static ssize_t wil_write_file_txmgmt(struct kiocb *iocb, struct iov_iter *= from) { - struct wil6210_priv *wil =3D file->private_data; + struct wil6210_priv *wil =3D iocb->ki_filp->private_data; + size_t len =3D iov_iter_count(from); struct wiphy *wiphy =3D wil_to_wiphy(wil); struct wireless_dev *wdev =3D wil->main_ndev->ieee80211_ptr; struct cfg80211_mgmt_tx_params params; @@ -978,7 +972,7 @@ static ssize_t wil_write_file_txmgmt(struct file *file,= const char __user *buf, if (!len) return -EINVAL; =20 - frame =3D memdup_user(buf, len); + frame =3D iterdup(from, len); if (IS_ERR(frame)) return PTR_ERR(frame); =20 @@ -994,17 +988,17 @@ static ssize_t wil_write_file_txmgmt(struct file *fil= e, const char __user *buf, } =20 static const struct file_operations fops_txmgmt =3D { - .write =3D wil_write_file_txmgmt, + .write_iter =3D wil_write_file_txmgmt, .open =3D simple_open, }; =20 /* Write WMI command (w/o mbox header) to this file to send it * WMI starts from wil6210_mbox_hdr_wmi header */ -static ssize_t wil_write_file_wmi(struct file *file, const char __user *bu= f, - size_t len, loff_t *ppos) +static ssize_t wil_write_file_wmi(struct kiocb *iocb, struct iov_iter *fro= m) { - struct wil6210_priv *wil =3D file->private_data; + struct wil6210_priv *wil =3D iocb->ki_filp->private_data; + size_t len =3D iov_iter_count(from); struct wil6210_vif *vif =3D ndev_to_vif(wil->main_ndev); struct wmi_cmd_hdr *wmi; void *cmd; @@ -1012,10 +1006,10 @@ static ssize_t wil_write_file_wmi(struct file *file= , const char __user *buf, u16 cmdid; int rc1; =20 - if (cmdlen < 0 || *ppos !=3D 0) + if (cmdlen < 0 || iocb->ki_pos !=3D 0) return -EINVAL; =20 - wmi =3D memdup_user(buf, len); + wmi =3D iterdup(from, len); if (IS_ERR(wmi)) return PTR_ERR(wmi); =20 @@ -1031,7 +1025,7 @@ static ssize_t wil_write_file_wmi(struct file *file, = const char __user *buf, } =20 static const struct file_operations fops_wmi =3D { - .write =3D wil_write_file_wmi, + .write_iter =3D wil_write_file_wmi, .open =3D simple_open, }; =20 @@ -1484,10 +1478,9 @@ DEFINE_SHOW_ATTRIBUTE(info); /* mode =3D [manual|auto] * state =3D [idle|pending|running] */ -static ssize_t wil_read_file_recovery(struct file *file, char __user *user= _buf, - size_t count, loff_t *ppos) +static ssize_t wil_read_file_recovery(struct kiocb *iocb, struct iov_iter = *to) { - struct wil6210_priv *wil =3D file->private_data; + struct wil6210_priv *wil =3D iocb->ki_filp->private_data; char buf[80]; int n; static const char * const sstate[] =3D {"idle", "pending", "running"}; @@ -1498,17 +1491,16 @@ static ssize_t wil_read_file_recovery(struct file *= file, char __user *user_buf, =20 n =3D min_t(int, n, sizeof(buf)); =20 - return simple_read_from_buffer(user_buf, count, ppos, - buf, n); + return simple_copy_to_iter(buf, &iocb->ki_pos, n, to); } =20 -static ssize_t wil_write_file_recovery(struct file *file, - const char __user *buf_, - size_t count, loff_t *ppos) +static ssize_t wil_write_file_recovery(struct kiocb *iocb, + struct iov_iter *from) { - struct wil6210_priv *wil =3D file->private_data; + struct wil6210_priv *wil =3D iocb->ki_filp->private_data; static const char run_command[] =3D "run"; char buf[sizeof(run_command) + 1]; /* to detect "runx" */ + size_t count =3D iov_iter_count(from); ssize_t rc; =20 if (wil->recovery_state !=3D fw_recovery_pending) { @@ -1516,8 +1508,8 @@ static ssize_t wil_write_file_recovery(struct file *f= ile, return -EINVAL; } =20 - if (*ppos !=3D 0) { - wil_err(wil, "Offset [%d]\n", (int)*ppos); + if (iocb->ki_pos !=3D 0) { + wil_err(wil, "Offset [%d]\n", (int)iocb->ki_pos); return -EINVAL; } =20 @@ -1526,7 +1518,7 @@ static ssize_t wil_write_file_recovery(struct file *f= ile, return -EINVAL; } =20 - rc =3D simple_write_to_buffer(buf, sizeof(buf) - 1, ppos, buf_, count); + rc =3D simple_copy_from_iter(buf, &iocb->ki_pos, sizeof(buf) - 1, from); if (rc < 0) return rc; =20 @@ -1540,8 +1532,8 @@ static ssize_t wil_write_file_recovery(struct file *f= ile, } =20 static const struct file_operations fops_recovery =3D { - .read =3D wil_read_file_recovery, - .write =3D wil_write_file_recovery, + .read_iter =3D wil_read_file_recovery, + .write_iter =3D wil_write_file_recovery, .open =3D simple_open, }; =20 @@ -1766,15 +1758,15 @@ static int wil_tx_latency_seq_open(struct inode *in= ode, struct file *file) inode->i_private); } =20 -static ssize_t wil_tx_latency_write(struct file *file, const char __user *= buf, - size_t len, loff_t *ppos) +static ssize_t wil_tx_latency_write(struct kiocb *iocb, struct iov_iter *f= rom) { - struct seq_file *s =3D file->private_data; + struct seq_file *s =3D iocb->ki_filp->private_data; + size_t len =3D iov_iter_count(from); struct wil6210_priv *wil =3D s->private; int val, rc, i; bool enable; =20 - rc =3D kstrtoint_from_user(buf, len, 0, &val); + rc =3D kstrtoint_from_iter(from, len, 0, &val); if (rc) { wil_err(wil, "Invalid argument\n"); return rc; @@ -1818,8 +1810,8 @@ static ssize_t wil_tx_latency_write(struct file *file= , const char __user *buf, static const struct file_operations fops_tx_latency =3D { .open =3D wil_tx_latency_seq_open, .release =3D single_release, - .read =3D seq_read, - .write =3D wil_tx_latency_write, + .read_iter =3D seq_read_iter, + .write_iter =3D wil_tx_latency_write, .llseek =3D seq_lseek, }; =20 @@ -1930,10 +1922,10 @@ static int wil_link_stats_seq_open(struct inode *in= ode, struct file *file) return single_open(file, wil_link_stats_debugfs_show, inode->i_private); } =20 -static ssize_t wil_link_stats_write(struct file *file, const char __user *= buf, - size_t len, loff_t *ppos) +static ssize_t wil_link_stats_write(struct kiocb *iocb, struct iov_iter *f= rom) { - struct seq_file *s =3D file->private_data; + struct seq_file *s =3D iocb->ki_filp->private_data; + size_t len =3D iov_iter_count(from); struct wil6210_priv *wil =3D s->private; int cid, interval, rc, i; struct wil6210_vif *vif; @@ -1942,7 +1934,7 @@ static ssize_t wil_link_stats_write(struct file *file= , const char __user *buf, if (!kbuf) return -ENOMEM; =20 - rc =3D simple_write_to_buffer(kbuf, len, ppos, buf, len); + rc =3D simple_copy_from_iter(kbuf, &iocb->ki_pos, len, from); if (rc !=3D len) { kfree(kbuf); return rc >=3D 0 ? -EIO : rc; @@ -1982,8 +1974,8 @@ static ssize_t wil_link_stats_write(struct file *file= , const char __user *buf, static const struct file_operations fops_link_stats =3D { .open =3D wil_link_stats_seq_open, .release =3D single_release, - .read =3D seq_read, - .write =3D wil_link_stats_write, + .read_iter =3D seq_read_iter, + .write_iter =3D wil_link_stats_write, .llseek =3D seq_lseek, }; =20 @@ -2009,16 +2001,16 @@ wil_link_stats_global_seq_open(struct inode *inode,= struct file *file) } =20 static ssize_t -wil_link_stats_global_write(struct file *file, const char __user *buf, - size_t len, loff_t *ppos) +wil_link_stats_global_write(struct kiocb *iocb, struct iov_iter *from) { - struct seq_file *s =3D file->private_data; + struct seq_file *s =3D iocb->ki_filp->private_data; + size_t len =3D iov_iter_count(from); struct wil6210_priv *wil =3D s->private; int interval, rc; struct wil6210_vif *vif =3D ndev_to_vif(wil->main_ndev); =20 /* specify snapshot interval in ms */ - rc =3D kstrtoint_from_user(buf, len, 0, &interval); + rc =3D kstrtoint_from_iter(from, len, 0, &interval); if (rc || interval < 0) { wil_err(wil, "Invalid argument\n"); return -EINVAL; @@ -2036,13 +2028,12 @@ wil_link_stats_global_write(struct file *file, cons= t char __user *buf, static const struct file_operations fops_link_stats_global =3D { .open =3D wil_link_stats_global_seq_open, .release =3D single_release, - .read =3D seq_read, - .write =3D wil_link_stats_global_write, + .read_iter =3D seq_read_iter, + .write_iter =3D wil_link_stats_global_write, .llseek =3D seq_lseek, }; =20 -static ssize_t wil_read_file_led_cfg(struct file *file, char __user *user_= buf, - size_t count, loff_t *ppos) +static ssize_t wil_read_file_led_cfg(struct kiocb *iocb, struct iov_iter *= to) { char buf[80]; int n; @@ -2053,19 +2044,17 @@ static ssize_t wil_read_file_led_cfg(struct file *f= ile, char __user *user_buf, =20 n =3D min_t(int, n, sizeof(buf)); =20 - return simple_read_from_buffer(user_buf, count, ppos, - buf, n); + return simple_copy_to_iter(buf, &iocb->ki_pos, n, to); } =20 -static ssize_t wil_write_file_led_cfg(struct file *file, - const char __user *buf_, - size_t count, loff_t *ppos) +static ssize_t wil_write_file_led_cfg(struct kiocb *iocb, struct iov_iter = *from) { - struct wil6210_priv *wil =3D file->private_data; + struct wil6210_priv *wil =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); int val; int rc; =20 - rc =3D kstrtoint_from_user(buf_, count, 0, &val); + rc =3D kstrtoint_from_iter(from, count, 0, &val); if (rc) { wil_err(wil, "Invalid argument\n"); return rc; @@ -2083,25 +2072,25 @@ static ssize_t wil_write_file_led_cfg(struct file *= file, } =20 static const struct file_operations fops_led_cfg =3D { - .read =3D wil_read_file_led_cfg, - .write =3D wil_write_file_led_cfg, + .read_iter =3D wil_read_file_led_cfg, + .write_iter =3D wil_write_file_led_cfg, .open =3D simple_open, }; =20 /* led_blink_time, write: * " */ -static ssize_t wil_write_led_blink_time(struct file *file, - const char __user *buf, - size_t len, loff_t *ppos) +static ssize_t wil_write_led_blink_time(struct kiocb *iocb, + struct iov_iter *from) { int rc; + size_t len =3D iov_iter_count(from); char *kbuf =3D kmalloc(len + 1, GFP_KERNEL); =20 if (!kbuf) return -ENOMEM; =20 - rc =3D simple_write_to_buffer(kbuf, len, ppos, buf, len); + rc =3D simple_copy_from_iter(kbuf, &iocb->ki_pos, len, from); if (rc !=3D len) { kfree(kbuf); return rc >=3D 0 ? -EIO : rc; @@ -2125,8 +2114,7 @@ static ssize_t wil_write_led_blink_time(struct file *= file, return len; } =20 -static ssize_t wil_read_led_blink_time(struct file *file, char __user *use= r_buf, - size_t count, loff_t *ppos) +static ssize_t wil_read_led_blink_time(struct kiocb *iocb, struct iov_iter= *to) { static char text[400]; =20 @@ -2143,13 +2131,12 @@ static ssize_t wil_read_led_blink_time(struct file = *file, char __user *user_buf, led_blink_time[WIL_LED_TIME_FAST].on_ms, led_blink_time[WIL_LED_TIME_FAST].off_ms); =20 - return simple_read_from_buffer(user_buf, count, ppos, text, - sizeof(text)); + return simple_copy_to_iter(text, &iocb->ki_pos, sizeof(text), to); } =20 static const struct file_operations fops_led_blink_time =3D { - .read =3D wil_read_led_blink_time, - .write =3D wil_write_led_blink_time, + .read_iter =3D wil_read_led_blink_time, + .write_iter =3D wil_write_led_blink_time, .open =3D simple_open, }; =20 @@ -2180,22 +2167,18 @@ static int fw_version_show(struct seq_file *s, void= *data) DEFINE_SHOW_ATTRIBUTE(fw_version); =20 /*---------suspend_stats---------*/ -static ssize_t wil_write_suspend_stats(struct file *file, - const char __user *buf, - size_t len, loff_t *ppos) +static ssize_t wil_write_suspend_stats(struct kiocb *iocb, + struct iov_iter *from) { - struct wil6210_priv *wil =3D file->private_data; + struct wil6210_priv *wil =3D iocb->ki_filp->private_data; =20 memset(&wil->suspend_stats, 0, sizeof(wil->suspend_stats)); - - return len; + return iov_iter_count(from); } =20 -static ssize_t wil_read_suspend_stats(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t wil_read_suspend_stats(struct kiocb *iocb, struct iov_iter = *to) { - struct wil6210_priv *wil =3D file->private_data; + struct wil6210_priv *wil =3D iocb->ki_filp->private_data; char *text; int n, ret, text_size =3D 500; =20 @@ -2226,7 +2209,7 @@ static ssize_t wil_read_suspend_stats(struct file *fi= le, =20 n =3D min_t(int, n, text_size); =20 - ret =3D simple_read_from_buffer(user_buf, count, ppos, text, n); + ret =3D simple_copy_to_iter(text, &iocb->ki_pos, n, to); =20 kfree(text); =20 @@ -2234,22 +2217,22 @@ static ssize_t wil_read_suspend_stats(struct file *= file, } =20 static const struct file_operations fops_suspend_stats =3D { - .read =3D wil_read_suspend_stats, - .write =3D wil_write_suspend_stats, + .read_iter =3D wil_read_suspend_stats, + .write_iter =3D wil_write_suspend_stats, .open =3D simple_open, }; =20 /*---------compressed_rx_status---------*/ -static ssize_t wil_compressed_rx_status_write(struct file *file, - const char __user *buf, - size_t len, loff_t *ppos) +static ssize_t wil_compressed_rx_status_write(struct kiocb *iocb, + struct iov_iter *from) { - struct seq_file *s =3D file->private_data; + struct seq_file *s =3D iocb->ki_filp->private_data; + size_t len =3D iov_iter_count(from); struct wil6210_priv *wil =3D s->private; int compressed_rx_status; int rc; =20 - rc =3D kstrtoint_from_user(buf, len, 0, &compressed_rx_status); + rc =3D kstrtoint_from_iter(from, len, 0, &compressed_rx_status); if (rc) { wil_err(wil, "Invalid argument\n"); return rc; @@ -2288,8 +2271,8 @@ wil_compressed_rx_status_seq_open(struct inode *inode= , struct file *file) static const struct file_operations fops_compressed_rx_status =3D { .open =3D wil_compressed_rx_status_seq_open, .release =3D single_release, - .read =3D seq_read, - .write =3D wil_compressed_rx_status_write, + .read_iter =3D seq_read_iter, + .write_iter =3D wil_compressed_rx_status_write, .llseek =3D seq_lseek, }; =20 diff --git a/drivers/net/wireless/ath/wil6210/pmc.c b/drivers/net/wireless/= ath/wil6210/pmc.c index a2f7b4c1da48..9bd4bcd5bbcd 100644 --- a/drivers/net/wireless/ath/wil6210/pmc.c +++ b/drivers/net/wireless/ath/wil6210/pmc.c @@ -311,10 +311,10 @@ int wil_pmc_last_cmd_status(struct wil6210_priv *wil) /* Read from required position up to the end of current descriptor, * depends on descriptor size configured during alloc request. */ -ssize_t wil_pmc_read(struct file *filp, char __user *buf, size_t count, - loff_t *f_pos) +ssize_t wil_pmc_read(struct kiocb *iocb, struct iov_iter *to) { - struct wil6210_priv *wil =3D filp->private_data; + struct wil6210_priv *wil =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(to); struct pmc_ctx *pmc =3D &wil->pmc; size_t retval =3D 0; unsigned long long idx; @@ -334,33 +334,30 @@ ssize_t wil_pmc_read(struct file *filp, char __user *= buf, size_t count, =20 wil_dbg_misc(wil, "pmc_read: size %u, pos %lld\n", - (u32)count, *f_pos); + (u32)count, iocb->ki_pos); =20 pmc->last_cmd_status =3D 0; =20 - idx =3D *f_pos; + idx =3D iocb->ki_pos; do_div(idx, pmc->descriptor_size); - offset =3D *f_pos - (idx * pmc->descriptor_size); + offset =3D iocb->ki_pos - (idx * pmc->descriptor_size); =20 - if (*f_pos >=3D pmc_size) { + if (iocb->ki_pos >=3D pmc_size) { wil_dbg_misc(wil, "pmc_read: reached end of pmc buf: %lld >=3D %u\n", - *f_pos, (u32)pmc_size); + iocb->ki_pos, (u32)pmc_size); pmc->last_cmd_status =3D -ERANGE; goto out; } =20 wil_dbg_misc(wil, "pmc_read: read from pos %lld (descriptor %llu, offset %llu) %zu by= tes\n", - *f_pos, idx, offset, count); + iocb->ki_pos, idx, offset, count); =20 /* if no errors, return the copied byte count */ - retval =3D simple_read_from_buffer(buf, - count, - &offset, - pmc->descriptors[idx].va, - pmc->descriptor_size); - *f_pos +=3D retval; + retval =3D simple_copy_to_iter(pmc->descriptors[idx].va, &iocb->ki_pos, + pmc->descriptor_size, to); + iocb->ki_pos +=3D retval; out: mutex_unlock(&pmc->lock); =20 diff --git a/drivers/net/wireless/ath/wil6210/pmc.h b/drivers/net/wireless/= ath/wil6210/pmc.h index b3d79eb50a43..d5ea8e94ccc4 100644 --- a/drivers/net/wireless/ath/wil6210/pmc.h +++ b/drivers/net/wireless/ath/wil6210/pmc.h @@ -10,6 +10,6 @@ void wil_pmc_alloc(struct wil6210_priv *wil, int num_descriptors, int descriptor_size); void wil_pmc_free(struct wil6210_priv *wil, int send_pmc_cmd); int wil_pmc_last_cmd_status(struct wil6210_priv *wil); -ssize_t wil_pmc_read(struct file *, char __user *, size_t, loff_t *); +ssize_t wil_pmc_read(struct kiocb *iocb, struct iov_iter *to); loff_t wil_pmc_llseek(struct file *filp, loff_t off, int whence); int wil_pmcring_read(struct seq_file *s, void *data); --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f46.google.com (mail-io1-f46.google.com [209.85.166.46]) (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 5D0B81D8EAF for ; Thu, 11 Apr 2024 15:40:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850010; cv=none; b=oixzj91QbybP+CvN1cWQAkJJXVDcSqrTov5HNjcqjdeIh5jv2Qu4sKfHt3p1y5h02NyH66GzTkgAB7kCu2YuPIFqex6NfMXejWfkyZb180oiVr9qmO7FMMIKLglbzZ3ySa5yTRIZbQIUTPG0PnSt3o+1SIOADKKs3vbNIYJWDHs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850010; c=relaxed/simple; bh=IgRYp/Hxm5DGEfTo6/7noFjNi5D2RtGO1iJFKp/xbzI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=L2oQ5+lNGGouv+K9ELfE9mJd4b0rY4SfGIDUsp1pMPb90vZs9HXdBWzHrieQFqx4MB/Oicpk/PVx3mu9RPMd3Z9zcnp9/Wn87QuSLRdi85/M+5YAdJ0LQih04/tUMmS43HiQiHx5CThq2L4XMVOzKHU6JqflJwLd1Dzgi4nVde8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=kbq7vX5I; arc=none smtp.client-ip=209.85.166.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="kbq7vX5I" Received: by mail-io1-f46.google.com with SMTP id ca18e2360f4ac-7cc0e831e11so170594339f.1 for ; Thu, 11 Apr 2024 08:40:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850006; x=1713454806; 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=jH9WeNKS5cvWXammTwVIHJ5OZgsvJ7hVaDojdvy5Oqg=; b=kbq7vX5IExEQ+i7Y1MOUUTEWDeBv6oeModwZTqw29SNojH2H+q37vG5dINe9kGHzOU fr4EGLoCE2h/sDjPDrHOgMl0IN0fWmv9HT0hgkV3DeFWKB+8yzpogtsN917do9tedyUd rJ9wZdMuHkN6l1nK4Yac+piGFO8qgWurOXT+vM/xFVXa2Wpp/P2H9YOO9J9zImKWs0yX gZSwgGv6Z9LnSlXbSVxhzOl2PoIFwvD6xRZV1TB1m2Dh2T2K3X6PbWYQwB7/Tjhc1zdc 6xX8EZZhvW/O3EzKeq2I8Rmh6UMIGclzJ6ViqVCioOfYJbkOe1rbwn0jJwAHAzOVy0nU YmYw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850006; x=1713454806; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=jH9WeNKS5cvWXammTwVIHJ5OZgsvJ7hVaDojdvy5Oqg=; b=sPTVuTWiWIp13PiLby1ebPSlVTh65gVvgWi1YVDaZqnwx1MdmAZ5/sn94fK9fpFW1L gSnH8LB0AFv9RiSOCAqFFl7ANgNkU8DKgvR9gRSqqCvW7ARx4emmqto+vBxCR+9YPvaK WBreX3eCO99tD/GnTYGa3ueAhTenJgMp/rey2moGalVSLJ1oImQp0ZdxPu2YZgA0TWfO DQuETfRAIFC/7JTigiMCDya3mh5Y2dsiFciYkhd8vvKGiuGqqCfrsi283Fv4twujw4+y NizmsqXoXf1rpwFrCN4O1Hs4bhz4/y/TidFc0k8Nd7NSvbyR8GJ6sq6S/RndRA+Mjpb5 kMDg== X-Gm-Message-State: AOJu0Yw9EwDxhgzDXTm+ionTRL71v4RI1BRxykFozcXzkOI4TjVOjMEc 1/1KOaAbzA78vAgI+tq4xVZX9tOwNrkMYX9Q3KLfTtrjdyhFZqiU8Phpg8SnO2obUY0/jkMm8uP 7 X-Google-Smtp-Source: AGHT+IHB7bTiEePL0OhSCbxV1hNu8PRdzZ+2jb6nAmGhBgfiQbImU9HsnGUpWTxTmXBBCvPQaJKRug== X-Received: by 2002:a5e:9907:0:b0:7d6:751f:192 with SMTP id t7-20020a5e9907000000b007d6751f0192mr191217ioj.2.1712850005496; Thu, 11 Apr 2024 08:40:05 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.40.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:40:05 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 303/437] drivers/net/wireless/ath/ath9k: convert to read/write iterators Date: Thu, 11 Apr 2024 09:17:23 -0600 Message-ID: <20240411153126.16201-304-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/net/wireless/ath/ath9k/common-debug.c | 36 ++- .../net/wireless/ath/ath9k/common-spectral.c | 111 +++++---- drivers/net/wireless/ath/ath9k/debug.c | 210 ++++++++---------- drivers/net/wireless/ath/ath9k/debug_sta.c | 18 +- drivers/net/wireless/ath/ath9k/dfs_debug.c | 30 ++- .../net/wireless/ath/ath9k/htc_drv_debug.c | 82 +++---- drivers/net/wireless/ath/ath9k/tx99.c | 40 ++-- 7 files changed, 242 insertions(+), 285 deletions(-) diff --git a/drivers/net/wireless/ath/ath9k/common-debug.c b/drivers/net/wi= reless/ath/ath9k/common-debug.c index 7aefb79f6bed..080a57674c23 100644 --- a/drivers/net/wireless/ath/ath9k/common-debug.c +++ b/drivers/net/wireless/ath/ath9k/common-debug.c @@ -16,10 +16,9 @@ =20 #include "common.h" =20 -static ssize_t read_file_modal_eeprom(struct file *file, char __user *user= _buf, - size_t count, loff_t *ppos) +static ssize_t read_file_modal_eeprom(struct kiocb *iocb, struct iov_iter = *to) { - struct ath_hw *ah =3D file->private_data; + struct ath_hw *ah =3D iocb->ki_filp->private_data; u32 len =3D 0, size =3D 6000; char *buf; size_t retval; @@ -30,14 +29,14 @@ static ssize_t read_file_modal_eeprom(struct file *file= , char __user *user_buf, =20 len =3D ah->eep_ops->dump_eeprom(ah, false, buf, len, size); =20 - retval =3D simple_read_from_buffer(user_buf, count, ppos, buf, len); + retval =3D simple_copy_to_iter(buf, &iocb->ki_pos, len, to); kfree(buf); =20 return retval; } =20 static const struct file_operations fops_modal_eeprom =3D { - .read =3D read_file_modal_eeprom, + .read_iter =3D read_file_modal_eeprom, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, @@ -52,10 +51,9 @@ void ath9k_cmn_debug_modal_eeprom(struct dentry *debugfs= _phy, } EXPORT_SYMBOL(ath9k_cmn_debug_modal_eeprom); =20 -static ssize_t read_file_base_eeprom(struct file *file, char __user *user_= buf, - size_t count, loff_t *ppos) +static ssize_t read_file_base_eeprom(struct kiocb *iocb, struct iov_iter *= to) { - struct ath_hw *ah =3D file->private_data; + struct ath_hw *ah =3D iocb->ki_filp->private_data; u32 len =3D 0, size =3D 1500; ssize_t retval =3D 0; char *buf; @@ -66,14 +64,14 @@ static ssize_t read_file_base_eeprom(struct file *file,= char __user *user_buf, =20 len =3D ah->eep_ops->dump_eeprom(ah, true, buf, len, size); =20 - retval =3D simple_read_from_buffer(user_buf, count, ppos, buf, len); + retval =3D simple_copy_to_iter(buf, &iocb->ki_pos, len, to); kfree(buf); =20 return retval; } =20 static const struct file_operations fops_base_eeprom =3D { - .read =3D read_file_base_eeprom, + .read_iter =3D read_file_base_eeprom, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, @@ -120,8 +118,7 @@ void ath9k_cmn_debug_stat_rx(struct ath_rx_stats *rxsta= ts, } EXPORT_SYMBOL(ath9k_cmn_debug_stat_rx); =20 -static ssize_t read_file_recv(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t read_file_recv(struct kiocb *iocb, struct iov_iter *to) { #define RXS_ERR(s, e) \ do { \ @@ -130,7 +127,7 @@ static ssize_t read_file_recv(struct file *file, char _= _user *user_buf, rxstats->e); \ } while (0) =20 - struct ath_rx_stats *rxstats =3D file->private_data; + struct ath_rx_stats *rxstats =3D iocb->ki_filp->private_data; char *buf; unsigned int len =3D 0, size =3D 1600; ssize_t retval =3D 0; @@ -162,7 +159,7 @@ static ssize_t read_file_recv(struct file *file, char _= _user *user_buf, if (len > size) len =3D size; =20 - retval =3D simple_read_from_buffer(user_buf, count, ppos, buf, len); + retval =3D simple_copy_to_iter(buf, &iocb->ki_pos, len, to); kfree(buf); =20 return retval; @@ -171,7 +168,7 @@ static ssize_t read_file_recv(struct file *file, char _= _user *user_buf, } =20 static const struct file_operations fops_recv =3D { - .read =3D read_file_recv, + .read_iter =3D read_file_recv, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, @@ -184,14 +181,13 @@ void ath9k_cmn_debug_recv(struct dentry *debugfs_phy, } EXPORT_SYMBOL(ath9k_cmn_debug_recv); =20 -static ssize_t read_file_phy_err(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t read_file_phy_err(struct kiocb *iocb, struct iov_iter *to) { #define PHY_ERR(s, p) \ len +=3D scnprintf(buf + len, size - len, "%22s : %10u\n", s, \ rxstats->phy_err_stats[p]) =20 - struct ath_rx_stats *rxstats =3D file->private_data; + struct ath_rx_stats *rxstats =3D iocb->ki_filp->private_data; char *buf; unsigned int len =3D 0, size =3D 1600; ssize_t retval =3D 0; @@ -238,7 +234,7 @@ static ssize_t read_file_phy_err(struct file *file, cha= r __user *user_buf, if (len > size) len =3D size; =20 - retval =3D simple_read_from_buffer(user_buf, count, ppos, buf, len); + retval =3D simple_copy_to_iter(buf, &iocb->ki_pos, len, to); kfree(buf); =20 return retval; @@ -247,7 +243,7 @@ static ssize_t read_file_phy_err(struct file *file, cha= r __user *user_buf, } =20 static const struct file_operations fops_phy_err =3D { - .read =3D read_file_phy_err, + .read_iter =3D read_file_phy_err, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, diff --git a/drivers/net/wireless/ath/ath9k/common-spectral.c b/drivers/net= /wireless/ath/ath9k/common-spectral.c index 4b27445a5fb8..56ea7faf2da1 100644 --- a/drivers/net/wireless/ath/ath9k/common-spectral.c +++ b/drivers/net/wireless/ath/ath9k/common-spectral.c @@ -686,10 +686,9 @@ EXPORT_SYMBOL(ath_cmn_process_fft); /* spectral_scan_ctl */ /*********************/ =20 -static ssize_t read_file_spec_scan_ctl(struct file *file, char __user *use= r_buf, - size_t count, loff_t *ppos) +static ssize_t read_file_spec_scan_ctl(struct kiocb *iocb, struct iov_iter= *to) { - struct ath_spec_scan_priv *spec_priv =3D file->private_data; + struct ath_spec_scan_priv *spec_priv =3D iocb->ki_filp->private_data; char *mode =3D ""; unsigned int len; =20 @@ -708,7 +707,7 @@ static ssize_t read_file_spec_scan_ctl(struct file *fil= e, char __user *user_buf, break; } len =3D strlen(mode); - return simple_read_from_buffer(user_buf, count, ppos, mode, len); + return simple_copy_to_iter(mode, &iocb->ki_pos, len, to); } =20 void ath9k_cmn_spectral_scan_trigger(struct ath_common *common, @@ -786,12 +785,12 @@ int ath9k_cmn_spectral_scan_config(struct ath_common = *common, } EXPORT_SYMBOL(ath9k_cmn_spectral_scan_config); =20 -static ssize_t write_file_spec_scan_ctl(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t write_file_spec_scan_ctl(struct kiocb *iocb, + struct iov_iter *from) { - struct ath_spec_scan_priv *spec_priv =3D file->private_data; + struct ath_spec_scan_priv *spec_priv =3D iocb->ki_filp->private_data; struct ath_common *common =3D ath9k_hw_common(spec_priv->ah); + size_t count =3D iov_iter_count(from); char buf[32]; ssize_t len; =20 @@ -799,7 +798,7 @@ static ssize_t write_file_spec_scan_ctl(struct file *fi= le, return -EOPNOTSUPP; =20 len =3D min(count, sizeof(buf) - 1); - if (copy_from_user(buf, user_buf, len)) + if (!copy_from_iter_full(buf, len, from)) return -EFAULT; =20 buf[len] =3D '\0'; @@ -826,8 +825,8 @@ static ssize_t write_file_spec_scan_ctl(struct file *fi= le, } =20 static const struct file_operations fops_spec_scan_ctl =3D { - .read =3D read_file_spec_scan_ctl, - .write =3D write_file_spec_scan_ctl, + .read_iter =3D read_file_spec_scan_ctl, + .write_iter =3D write_file_spec_scan_ctl, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, @@ -837,27 +836,26 @@ static const struct file_operations fops_spec_scan_ct= l =3D { /* spectral_short_repeat */ /*************************/ =20 -static ssize_t read_file_spectral_short_repeat(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t read_file_spectral_short_repeat(struct kiocb *iocb, + struct iov_iter *to) { - struct ath_spec_scan_priv *spec_priv =3D file->private_data; + struct ath_spec_scan_priv *spec_priv =3D iocb->ki_filp->private_data; char buf[32]; unsigned int len; =20 len =3D sprintf(buf, "%d\n", spec_priv->spec_config.short_repeat); - return simple_read_from_buffer(user_buf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 -static ssize_t write_file_spectral_short_repeat(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t write_file_spectral_short_repeat(struct kiocb *iocb, + struct iov_iter *from) { - struct ath_spec_scan_priv *spec_priv =3D file->private_data; + struct ath_spec_scan_priv *spec_priv =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); unsigned long val; ssize_t ret; =20 - ret =3D kstrtoul_from_user(user_buf, count, 0, &val); + ret =3D kstrtoul_from_iter(from, count, 0, &val); if (ret) return ret; =20 @@ -869,8 +867,8 @@ static ssize_t write_file_spectral_short_repeat(struct = file *file, } =20 static const struct file_operations fops_spectral_short_repeat =3D { - .read =3D read_file_spectral_short_repeat, - .write =3D write_file_spectral_short_repeat, + .read_iter =3D read_file_spectral_short_repeat, + .write_iter =3D write_file_spectral_short_repeat, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, @@ -880,27 +878,25 @@ static const struct file_operations fops_spectral_sho= rt_repeat =3D { /* spectral_count */ /******************/ =20 -static ssize_t read_file_spectral_count(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t read_file_spectral_count(struct kiocb *iocb, struct iov_ite= r *to) { - struct ath_spec_scan_priv *spec_priv =3D file->private_data; + struct ath_spec_scan_priv *spec_priv =3D iocb->ki_filp->private_data; char buf[32]; unsigned int len; =20 len =3D sprintf(buf, "%d\n", spec_priv->spec_config.count); - return simple_read_from_buffer(user_buf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 -static ssize_t write_file_spectral_count(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t write_file_spectral_count(struct kiocb *iocb, + struct iov_iter *from) { - struct ath_spec_scan_priv *spec_priv =3D file->private_data; + struct ath_spec_scan_priv *spec_priv =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); unsigned long val; ssize_t ret; =20 - ret =3D kstrtoul_from_user(user_buf, count, 0, &val); + ret =3D kstrtoul_from_iter(from, count, 0, &val); if (ret) return ret; if (val > 255) @@ -911,8 +907,8 @@ static ssize_t write_file_spectral_count(struct file *f= ile, } =20 static const struct file_operations fops_spectral_count =3D { - .read =3D read_file_spectral_count, - .write =3D write_file_spectral_count, + .read_iter =3D read_file_spectral_count, + .write_iter =3D write_file_spectral_count, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, @@ -922,27 +918,25 @@ static const struct file_operations fops_spectral_cou= nt =3D { /* spectral_period */ /*******************/ =20 -static ssize_t read_file_spectral_period(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t read_file_spectral_period(struct kiocb *iocb, struct iov_it= er *to) { - struct ath_spec_scan_priv *spec_priv =3D file->private_data; + struct ath_spec_scan_priv *spec_priv =3D iocb->ki_filp->private_data; char buf[32]; unsigned int len; =20 len =3D sprintf(buf, "%d\n", spec_priv->spec_config.period); - return simple_read_from_buffer(user_buf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 -static ssize_t write_file_spectral_period(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t write_file_spectral_period(struct kiocb *iocb, + struct iov_iter *from) { - struct ath_spec_scan_priv *spec_priv =3D file->private_data; + struct ath_spec_scan_priv *spec_priv =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); unsigned long val; ssize_t ret; =20 - ret =3D kstrtoul_from_user(user_buf, count, 0, &val); + ret =3D kstrtoul_from_iter(from, count, 0, &val); if (ret) return ret; =20 @@ -954,8 +948,8 @@ static ssize_t write_file_spectral_period(struct file *= file, } =20 static const struct file_operations fops_spectral_period =3D { - .read =3D read_file_spectral_period, - .write =3D write_file_spectral_period, + .read_iter =3D read_file_spectral_period, + .write_iter =3D write_file_spectral_period, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, @@ -965,27 +959,26 @@ static const struct file_operations fops_spectral_per= iod =3D { /* spectral_fft_period */ /***********************/ =20 -static ssize_t read_file_spectral_fft_period(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t read_file_spectral_fft_period(struct kiocb *iocb, + struct iov_iter *to) { - struct ath_spec_scan_priv *spec_priv =3D file->private_data; + struct ath_spec_scan_priv *spec_priv =3D iocb->ki_filp->private_data; char buf[32]; unsigned int len; =20 len =3D sprintf(buf, "%d\n", spec_priv->spec_config.fft_period); - return simple_read_from_buffer(user_buf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 -static ssize_t write_file_spectral_fft_period(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t write_file_spectral_fft_period(struct kiocb *iocb, + struct iov_iter *from) { - struct ath_spec_scan_priv *spec_priv =3D file->private_data; + struct ath_spec_scan_priv *spec_priv =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); unsigned long val; ssize_t ret; =20 - ret =3D kstrtoul_from_user(user_buf, count, 0, &val); + ret =3D kstrtoul_from_iter(from, count, 0, &val); if (ret) return ret; =20 @@ -997,8 +990,8 @@ static ssize_t write_file_spectral_fft_period(struct fi= le *file, } =20 static const struct file_operations fops_spectral_fft_period =3D { - .read =3D read_file_spectral_fft_period, - .write =3D write_file_spectral_fft_period, + .read_iter =3D read_file_spectral_fft_period, + .write_iter =3D write_file_spectral_fft_period, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, diff --git a/drivers/net/wireless/ath/ath9k/debug.c b/drivers/net/wireless/= ath/ath9k/debug.c index d84e3ee7b5d9..728b11732afd 100644 --- a/drivers/net/wireless/ath/ath9k/debug.c +++ b/drivers/net/wireless/ath/ath9k/debug.c @@ -68,11 +68,10 @@ void ath9k_debug_sync_cause(struct ath_softc *sc, u32 s= ync_cause) sc->debug.stats.istats.mac_sleep_access++; } =20 -static ssize_t ath9k_debugfs_read_buf(struct file *file, char __user *user= _buf, - size_t count, loff_t *ppos) +static ssize_t ath9k_debugfs_read_buf(struct kiocb *iocb, struct iov_iter = *to) { - u8 *buf =3D file->private_data; - return simple_read_from_buffer(user_buf, count, ppos, buf, strlen(buf)); + u8 *buf =3D iocb->ki_filp->private_data; + return simple_copy_to_iter(buf, &iocb->ki_pos, strlen(buf), to); } =20 static int ath9k_debugfs_release_buf(struct inode *inode, struct file *fil= e) @@ -83,27 +82,26 @@ static int ath9k_debugfs_release_buf(struct inode *inod= e, struct file *file) =20 #ifdef CONFIG_ATH_DEBUG =20 -static ssize_t read_file_debug(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t read_file_debug(struct kiocb *iocb, struct iov_iter *to) { - struct ath_softc *sc =3D file->private_data; + struct ath_softc *sc =3D iocb->ki_filp->private_data; struct ath_common *common =3D ath9k_hw_common(sc->sc_ah); char buf[32]; unsigned int len; =20 len =3D sprintf(buf, "0x%08x\n", common->debug_mask); - return simple_read_from_buffer(user_buf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 -static ssize_t write_file_debug(struct file *file, const char __user *user= _buf, - size_t count, loff_t *ppos) +static ssize_t write_file_debug(struct kiocb *iocb, struct iov_iter *from) { - struct ath_softc *sc =3D file->private_data; + struct ath_softc *sc =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); struct ath_common *common =3D ath9k_hw_common(sc->sc_ah); unsigned long mask; ssize_t ret; =20 - ret =3D kstrtoul_from_user(user_buf, count, 0, &mask); + ret =3D kstrtoul_from_iter(from, count, 0, &mask); if (ret) return ret; =20 @@ -112,8 +110,8 @@ static ssize_t write_file_debug(struct file *file, cons= t char __user *user_buf, } =20 static const struct file_operations fops_debug =3D { - .read =3D read_file_debug, - .write =3D write_file_debug, + .read_iter =3D read_file_debug, + .write_iter =3D write_file_debug, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, @@ -124,10 +122,9 @@ static const struct file_operations fops_debug =3D { #define DMA_BUF_LEN 1024 =20 =20 -static ssize_t read_file_ani(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t read_file_ani(struct kiocb *iocb, struct iov_iter *to) { - struct ath_softc *sc =3D file->private_data; + struct ath_softc *sc =3D iocb->ki_filp->private_data; struct ath_common *common =3D ath9k_hw_common(sc->sc_ah); struct ath_hw *ah =3D sc->sc_ah; unsigned int len =3D 0; @@ -173,22 +170,21 @@ static ssize_t read_file_ani(struct file *file, char = __user *user_buf, if (len > size) len =3D size; =20 - retval =3D simple_read_from_buffer(user_buf, count, ppos, buf, len); + retval =3D simple_copy_to_iter(buf, &iocb->ki_pos, len, to); kfree(buf); =20 return retval; } =20 -static ssize_t write_file_ani(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t write_file_ani(struct kiocb *iocb, struct iov_iter *from) { - struct ath_softc *sc =3D file->private_data; + struct ath_softc *sc =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); struct ath_common *common =3D ath9k_hw_common(sc->sc_ah); unsigned long ani; ssize_t ret; =20 - ret =3D kstrtoul_from_user(user_buf, count, 0, &ani); + ret =3D kstrtoul_from_iter(from, count, 0, &ani); if (ret) return ret; =20 @@ -208,8 +204,8 @@ static ssize_t write_file_ani(struct file *file, } =20 static const struct file_operations fops_ani =3D { - .read =3D read_file_ani, - .write =3D write_file_ani, + .read_iter =3D read_file_ani, + .write_iter =3D write_file_ani, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, @@ -217,30 +213,29 @@ static const struct file_operations fops_ani =3D { =20 #ifdef CONFIG_ATH9K_BTCOEX_SUPPORT =20 -static ssize_t read_file_bt_ant_diversity(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t read_file_bt_ant_diversity(struct kiocb *iocb, + struct iov_iter *to) { - struct ath_softc *sc =3D file->private_data; + struct ath_softc *sc =3D iocb->ki_filp->private_data; struct ath_common *common =3D ath9k_hw_common(sc->sc_ah); char buf[32]; unsigned int len; =20 len =3D sprintf(buf, "%d\n", common->bt_ant_diversity); - return simple_read_from_buffer(user_buf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 -static ssize_t write_file_bt_ant_diversity(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t write_file_bt_ant_diversity(struct kiocb *iocb, + struct iov_iter *from) { - struct ath_softc *sc =3D file->private_data; + struct ath_softc *sc =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); struct ath_common *common =3D ath9k_hw_common(sc->sc_ah); struct ath9k_hw_capabilities *pCap =3D &sc->sc_ah->caps; unsigned long bt_ant_diversity; ssize_t ret; =20 - ret =3D kstrtoul_from_user(user_buf, count, 0, &bt_ant_diversity); + ret =3D kstrtoul_from_iter(from, count, 0, &bt_ant_diversity); if (ret) return ret; =20 @@ -258,8 +253,8 @@ static ssize_t write_file_bt_ant_diversity(struct file = *file, } =20 static const struct file_operations fops_bt_ant_diversity =3D { - .read =3D read_file_bt_ant_diversity, - .write =3D write_file_bt_ant_diversity, + .read_iter =3D read_file_bt_ant_diversity, + .write_iter =3D write_file_bt_ant_diversity, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, @@ -281,11 +276,10 @@ void ath9k_debug_stat_ant(struct ath_softc *sc, as_alt->rssi_avg =3D alt_rssi_avg; } =20 -static ssize_t read_file_antenna_diversity(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t read_file_antenna_diversity(struct kiocb *iocb, + struct iov_iter *to) { - struct ath_softc *sc =3D file->private_data; + struct ath_softc *sc =3D iocb->ki_filp->private_data; struct ath_hw *ah =3D sc->sc_ah; struct ath9k_hw_capabilities *pCap =3D &ah->caps; struct ath_antenna_stats *as_main =3D &sc->debug.stats.ant_stats[ANT_MAIN= ]; @@ -373,14 +367,14 @@ static ssize_t read_file_antenna_diversity(struct fil= e *file, if (len > size) len =3D size; =20 - retval =3D simple_read_from_buffer(user_buf, count, ppos, buf, len); + retval =3D simple_copy_to_iter(buf, &iocb->ki_pos, len, to); kfree(buf); =20 return retval; } =20 static const struct file_operations fops_antenna_diversity =3D { - .read =3D read_file_antenna_diversity, + .read_iter =3D read_file_antenna_diversity, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, @@ -769,17 +763,16 @@ static int open_file_reset(struct inode *inode, struc= t file *f) return single_open(f, read_file_reset, inode->i_private); } =20 -static ssize_t write_file_reset(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t write_file_reset(struct kiocb *iocb, struct iov_iter *from) { - struct ath_softc *sc =3D file_inode(file)->i_private; + struct ath_softc *sc =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); struct ath_hw *ah =3D sc->sc_ah; struct ath_common *common =3D ath9k_hw_common(ah); unsigned long val; ssize_t ret; =20 - ret =3D kstrtoul_from_user(user_buf, count, 0, &val); + ret =3D kstrtoul_from_iter(from, count, 0, &val); if (ret) return ret; =20 @@ -800,8 +793,8 @@ static ssize_t write_file_reset(struct file *file, } =20 static const struct file_operations fops_reset =3D { - .read =3D seq_read, - .write =3D write_file_reset, + .read_iter =3D seq_read_iter, + .write_iter =3D write_file_reset, .open =3D open_file_reset, .owner =3D THIS_MODULE, .llseek =3D seq_lseek, @@ -850,25 +843,24 @@ void ath_debug_stat_rx(struct ath_softc *sc, struct a= th_rx_status *rs) ath9k_cmn_debug_stat_rx(&sc->debug.stats.rxstats, rs); } =20 -static ssize_t read_file_regidx(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t read_file_regidx(struct kiocb *iocb, struct iov_iter *to) { - struct ath_softc *sc =3D file->private_data; + struct ath_softc *sc =3D iocb->ki_filp->private_data; char buf[32]; unsigned int len; =20 len =3D sprintf(buf, "0x%08x\n", sc->debug.regidx); - return simple_read_from_buffer(user_buf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 -static ssize_t write_file_regidx(struct file *file, const char __user *use= r_buf, - size_t count, loff_t *ppos) +static ssize_t write_file_regidx(struct kiocb *iocb, struct iov_iter *from) { - struct ath_softc *sc =3D file->private_data; + struct ath_softc *sc =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); unsigned long regidx; ssize_t ret; =20 - ret =3D kstrtoul_from_user(user_buf, count, 0, ®idx); + ret =3D kstrtoul_from_iter(from, count, 0, ®idx); if (ret) return ret; =20 @@ -877,17 +869,16 @@ static ssize_t write_file_regidx(struct file *file, c= onst char __user *user_buf, } =20 static const struct file_operations fops_regidx =3D { - .read =3D read_file_regidx, - .write =3D write_file_regidx, + .read_iter =3D read_file_regidx, + .write_iter =3D write_file_regidx, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, }; =20 -static ssize_t read_file_regval(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t read_file_regval(struct kiocb *iocb, struct iov_iter *to) { - struct ath_softc *sc =3D file->private_data; + struct ath_softc *sc =3D iocb->ki_filp->private_data; struct ath_hw *ah =3D sc->sc_ah; char buf[32]; unsigned int len; @@ -897,18 +888,18 @@ static ssize_t read_file_regval(struct file *file, ch= ar __user *user_buf, regval =3D REG_READ_D(ah, sc->debug.regidx); ath9k_ps_restore(sc); len =3D sprintf(buf, "0x%08x\n", regval); - return simple_read_from_buffer(user_buf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 -static ssize_t write_file_regval(struct file *file, const char __user *use= r_buf, - size_t count, loff_t *ppos) +static ssize_t write_file_regval(struct kiocb *iocb, struct iov_iter *from) { - struct ath_softc *sc =3D file->private_data; + struct ath_softc *sc =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); struct ath_hw *ah =3D sc->sc_ah; unsigned long regval; ssize_t ret; =20 - ret =3D kstrtoul_from_user(user_buf, count, 0, ®val); + ret =3D kstrtoul_from_iter(from, count, 0, ®val); if (ret) return ret; =20 @@ -919,8 +910,8 @@ static ssize_t write_file_regval(struct file *file, con= st char __user *user_buf, } =20 static const struct file_operations fops_regval =3D { - .read =3D read_file_regval, - .write =3D write_file_regval, + .read_iter =3D read_file_regval, + .write_iter =3D write_file_regval, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, @@ -974,7 +965,7 @@ static int open_file_regdump(struct inode *inode, struc= t file *file) =20 static const struct file_operations fops_regdump =3D { .open =3D open_file_regdump, - .read =3D ath9k_debugfs_read_buf, + .read_iter =3D ath9k_debugfs_read_buf, .release =3D ath9k_debugfs_release_buf, .owner =3D THIS_MODULE, .llseek =3D default_llseek,/* read accesses f_pos */ @@ -1010,10 +1001,9 @@ static int read_file_dump_nfcal(struct seq_file *fil= e, void *data) } =20 #ifdef CONFIG_ATH9K_BTCOEX_SUPPORT -static ssize_t read_file_btcoex(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t read_file_btcoex(struct kiocb *iocb, struct iov_iter *to) { - struct ath_softc *sc =3D file->private_data; + struct ath_softc *sc =3D iocb->ki_filp->private_data; u32 len =3D 0, size =3D 1500; char *buf; size_t retval; @@ -1030,14 +1020,14 @@ static ssize_t read_file_btcoex(struct file *file, = char __user *user_buf, =20 len =3D ath9k_dump_btcoex(sc, buf, size); exit: - retval =3D simple_read_from_buffer(user_buf, count, ppos, buf, len); + retval =3D simple_copy_to_iter(buf, &iocb->ki_pos, len, to); kfree(buf); =20 return retval; } =20 static const struct file_operations fops_btcoex =3D { - .read =3D read_file_btcoex, + .read_iter =3D read_file_btcoex, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, @@ -1045,10 +1035,9 @@ static const struct file_operations fops_btcoex =3D { #endif =20 #ifdef CONFIG_ATH9K_DYNACK -static ssize_t read_file_ackto(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t read_file_ackto(struct kiocb *iocb, struct iov_iter *to) { - struct ath_softc *sc =3D file->private_data; + struct ath_softc *sc =3D iocb->ki_filp->private_data; struct ath_hw *ah =3D sc->sc_ah; char buf[32]; unsigned int len; @@ -1056,11 +1045,11 @@ static ssize_t read_file_ackto(struct file *file, c= har __user *user_buf, len =3D sprintf(buf, "%u %c\n", ah->dynack.ackto, (ah->dynack.enabled) ? 'A' : 'S'); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 static const struct file_operations fops_ackto =3D { - .read =3D read_file_ackto, + .read_iter =3D read_file_ackto, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, @@ -1069,10 +1058,9 @@ static const struct file_operations fops_ackto =3D { =20 #ifdef CONFIG_ATH9K_WOW =20 -static ssize_t read_file_wow(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t read_file_wow(struct kiocb *iocb, struct iov_iter *to) { - struct ath_softc *sc =3D file->private_data; + struct ath_softc *sc =3D iocb->ki_filp->private_data; unsigned int len =3D 0, size =3D 32; ssize_t retval; char *buf; @@ -1087,20 +1075,20 @@ static ssize_t read_file_wow(struct file *file, cha= r __user *user_buf, if (len > size) len =3D size; =20 - retval =3D simple_read_from_buffer(user_buf, count, ppos, buf, len); + retval =3D simple_copy_to_iter(buf, &iocb->ki_pos, len, to); kfree(buf); =20 return retval; } =20 -static ssize_t write_file_wow(struct file *file, const char __user *user_b= uf, - size_t count, loff_t *ppos) +static ssize_t write_file_wow(struct kiocb *iocb, struct iov_iter *from) { - struct ath_softc *sc =3D file->private_data; + struct ath_softc *sc =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); unsigned long val; ssize_t ret; =20 - ret =3D kstrtoul_from_user(user_buf, count, 0, &val); + ret =3D kstrtoul_from_iter(from, count, 0, &val); if (ret) return ret; =20 @@ -1116,8 +1104,8 @@ static ssize_t write_file_wow(struct file *file, cons= t char __user *user_buf, } =20 static const struct file_operations fops_wow =3D { - .read =3D read_file_wow, - .write =3D write_file_wow, + .read_iter =3D read_file_wow, + .write_iter =3D write_file_wow, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, @@ -1125,10 +1113,9 @@ static const struct file_operations fops_wow =3D { =20 #endif =20 -static ssize_t read_file_tpc(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t read_file_tpc(struct kiocb *iocb, struct iov_iter *to) { - struct ath_softc *sc =3D file->private_data; + struct ath_softc *sc =3D iocb->ki_filp->private_data; struct ath_hw *ah =3D sc->sc_ah; unsigned int len =3D 0, size =3D 32; ssize_t retval; @@ -1144,22 +1131,22 @@ static ssize_t read_file_tpc(struct file *file, cha= r __user *user_buf, if (len > size) len =3D size; =20 - retval =3D simple_read_from_buffer(user_buf, count, ppos, buf, len); + retval =3D simple_copy_to_iter(buf, &iocb->ki_pos, len, to); kfree(buf); =20 return retval; } =20 -static ssize_t write_file_tpc(struct file *file, const char __user *user_b= uf, - size_t count, loff_t *ppos) +static ssize_t write_file_tpc(struct kiocb *iocb, struct iov_iter *from) { - struct ath_softc *sc =3D file->private_data; + struct ath_softc *sc =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); struct ath_hw *ah =3D sc->sc_ah; unsigned long val; ssize_t ret; bool tpc_enabled; =20 - ret =3D kstrtoul_from_user(user_buf, count, 0, &val); + ret =3D kstrtoul_from_iter(from, count, 0, &val); if (ret) return ret; =20 @@ -1180,18 +1167,16 @@ static ssize_t write_file_tpc(struct file *file, co= nst char __user *user_buf, } =20 static const struct file_operations fops_tpc =3D { - .read =3D read_file_tpc, - .write =3D write_file_tpc, + .read_iter =3D read_file_tpc, + .write_iter =3D write_file_tpc, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, }; =20 -static ssize_t read_file_nf_override(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t read_file_nf_override(struct kiocb *iocb, struct iov_iter *= to) { - struct ath_softc *sc =3D file->private_data; + struct ath_softc *sc =3D iocb->ki_filp->private_data; struct ath_hw *ah =3D sc->sc_ah; char buf[32]; unsigned int len; @@ -1201,21 +1186,20 @@ static ssize_t read_file_nf_override(struct file *f= ile, else len =3D sprintf(buf, "%d\n", ah->nf_override); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 -static ssize_t write_file_nf_override(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t write_file_nf_override(struct kiocb *iocb, struct iov_iter = *from) { - struct ath_softc *sc =3D file->private_data; + struct ath_softc *sc =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); struct ath_hw *ah =3D sc->sc_ah; long val; char buf[32]; ssize_t len; =20 len =3D min(count, sizeof(buf) - 1); - if (copy_from_user(buf, user_buf, len)) + if (!copy_from_iter_full(buf, len, from)) return -EFAULT; =20 buf[len] =3D '\0'; @@ -1242,8 +1226,8 @@ static ssize_t write_file_nf_override(struct file *fi= le, } =20 static const struct file_operations fops_nf_override =3D { - .read =3D read_file_nf_override, - .write =3D write_file_nf_override, + .read_iter =3D read_file_nf_override, + .write_iter =3D write_file_nf_override, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, diff --git a/drivers/net/wireless/ath/ath9k/debug_sta.c b/drivers/net/wirel= ess/ath/ath9k/debug_sta.c index 1e2a30019fb6..18aa2b6d1c72 100644 --- a/drivers/net/wireless/ath/ath9k/debug_sta.c +++ b/drivers/net/wireless/ath/ath9k/debug_sta.c @@ -20,10 +20,9 @@ /* node_aggr */ /*************/ =20 -static ssize_t read_file_node_aggr(struct file *file, char __user *user_bu= f, - size_t count, loff_t *ppos) +static ssize_t read_file_node_aggr(struct kiocb *iocb, struct iov_iter *to) { - struct ath_node *an =3D file->private_data; + struct ath_node *an =3D iocb->ki_filp->private_data; struct ath_softc *sc =3D an->sc; struct ath_atx_tid *tid; struct ath_txq *txq; @@ -71,14 +70,14 @@ static ssize_t read_file_node_aggr(struct file *file, c= har __user *user_buf, ath_txq_unlock(sc, txq); } exit: - retval =3D simple_read_from_buffer(user_buf, count, ppos, buf, len); + retval =3D simple_copy_to_iter(buf, &iocb->ki_pos, len, to); kfree(buf); =20 return retval; } =20 static const struct file_operations fops_node_aggr =3D { - .read =3D read_file_node_aggr, + .read_iter =3D read_file_node_aggr, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, @@ -165,10 +164,9 @@ void ath_debug_rate_stats(struct ath_softc *sc, rstats->ofdm_stats[i].ofdm_cnt); \ } while (0) =20 -static ssize_t read_file_node_recv(struct file *file, char __user *user_bu= f, - size_t count, loff_t *ppos) +static ssize_t read_file_node_recv(struct kiocb *iocb, struct iov_iter *to) { - struct ath_node *an =3D file->private_data; + struct ath_node *an =3D iocb->ki_filp->private_data; struct ath_softc *sc =3D an->sc; struct ath_hw *ah =3D sc->sc_ah; struct ath_rx_rate_stats *rstats; @@ -226,7 +224,7 @@ static ssize_t read_file_node_recv(struct file *file, c= har __user *user_buf, PRINT_OFDM_RATE("OFDM-48M", 6); PRINT_OFDM_RATE("OFDM-54M", 7); =20 - retval =3D simple_read_from_buffer(user_buf, count, ppos, buf, len); + retval =3D simple_copy_to_iter(buf, &iocb->ki_pos, len, to); kfree(buf); =20 return retval; @@ -236,7 +234,7 @@ static ssize_t read_file_node_recv(struct file *file, c= har __user *user_buf, #undef PRINT_CCK_RATE =20 static const struct file_operations fops_node_recv =3D { - .read =3D read_file_node_recv, + .read_iter =3D read_file_node_recv, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, diff --git a/drivers/net/wireless/ath/ath9k/dfs_debug.c b/drivers/net/wirel= ess/ath/ath9k/dfs_debug.c index 8e18e9b4ef48..709e8be90e99 100644 --- a/drivers/net/wireless/ath/ath9k/dfs_debug.c +++ b/drivers/net/wireless/ath/ath9k/dfs_debug.c @@ -31,10 +31,9 @@ static struct ath_dfs_pool_stats dfs_pool_stats =3D { 0 = }; len +=3D scnprintf(buf + len, size - len, "%28s : %10u\n", s, \ dfs_pool_stats.p); =20 -static ssize_t read_file_dfs(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t read_file_dfs(struct kiocb *iocb, struct iov_iter *to) { - struct ath_softc *sc =3D file->private_data; + struct ath_softc *sc =3D iocb->ki_filp->private_data; struct ath9k_hw_version *hw_ver =3D &sc->sc_ah->hw_version; char *buf; unsigned int len =3D 0, size =3D 8000; @@ -86,7 +85,7 @@ static ssize_t read_file_dfs(struct file *file, char __us= er *user_buf, if (len > size) len =3D size; =20 - retval =3D simple_read_from_buffer(user_buf, count, ppos, buf, len); + retval =3D simple_copy_to_iter(buf, &iocb->ki_pos, len, to); kfree(buf); =20 return retval; @@ -94,14 +93,14 @@ static ssize_t read_file_dfs(struct file *file, char __= user *user_buf, =20 /* magic number to prevent accidental reset of DFS statistics */ #define DFS_STATS_RESET_MAGIC 0x80000000 -static ssize_t write_file_dfs(struct file *file, const char __user *user_b= uf, - size_t count, loff_t *ppos) +static ssize_t write_file_dfs(struct kiocb *iocb, struct iov_iter *from) { - struct ath_softc *sc =3D file->private_data; + struct ath_softc *sc =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); unsigned long val; ssize_t ret; =20 - ret =3D kstrtoul_from_user(user_buf, count, 0, &val); + ret =3D kstrtoul_from_iter(from, count, 0, &val); if (ret) return ret; if (val =3D=3D DFS_STATS_RESET_MAGIC) @@ -110,27 +109,26 @@ static ssize_t write_file_dfs(struct file *file, cons= t char __user *user_buf, return count; } =20 -static ssize_t write_file_simulate_radar(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t write_file_simulate_radar(struct kiocb *iocb, + struct iov_iter *from) { - struct ath_softc *sc =3D file->private_data; + struct ath_softc *sc =3D iocb->ki_filp->private_data; =20 ieee80211_radar_detected(sc->hw); =20 - return count; + return iov_iter_count(from); } =20 static const struct file_operations fops_simulate_radar =3D { - .write =3D write_file_simulate_radar, + .write_iter =3D write_file_simulate_radar, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, }; =20 static const struct file_operations fops_dfs_stats =3D { - .read =3D read_file_dfs, - .write =3D write_file_dfs, + .read_iter =3D read_file_dfs, + .write_iter =3D write_file_dfs, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, diff --git a/drivers/net/wireless/ath/ath9k/htc_drv_debug.c b/drivers/net/w= ireless/ath/ath9k/htc_drv_debug.c index f7c6d9bc9311..4743687dc8ab 100644 --- a/drivers/net/wireless/ath/ath9k/htc_drv_debug.c +++ b/drivers/net/wireless/ath/ath9k/htc_drv_debug.c @@ -16,10 +16,9 @@ =20 #include "htc.h" =20 -static ssize_t read_file_tgt_int_stats(struct file *file, char __user *use= r_buf, - size_t count, loff_t *ppos) +static ssize_t read_file_tgt_int_stats(struct kiocb *iocb, struct iov_iter= *to) { - struct ath9k_htc_priv *priv =3D file->private_data; + struct ath9k_htc_priv *priv =3D iocb->ki_filp->private_data; struct ath9k_htc_target_int_stats cmd_rsp; char buf[512]; unsigned int len =3D 0; @@ -64,20 +63,19 @@ static ssize_t read_file_tgt_int_stats(struct file *fil= e, char __user *user_buf, if (len > sizeof(buf)) len =3D sizeof(buf); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 static const struct file_operations fops_tgt_int_stats =3D { - .read =3D read_file_tgt_int_stats, + .read_iter =3D read_file_tgt_int_stats, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, }; =20 -static ssize_t read_file_tgt_tx_stats(struct file *file, char __user *user= _buf, - size_t count, loff_t *ppos) +static ssize_t read_file_tgt_tx_stats(struct kiocb *iocb, struct iov_iter = *to) { - struct ath9k_htc_priv *priv =3D file->private_data; + struct ath9k_htc_priv *priv =3D iocb->ki_filp->private_data; struct ath9k_htc_target_tx_stats cmd_rsp; char buf[512]; unsigned int len =3D 0; @@ -134,20 +132,19 @@ static ssize_t read_file_tgt_tx_stats(struct file *fi= le, char __user *user_buf, if (len > sizeof(buf)) len =3D sizeof(buf); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 static const struct file_operations fops_tgt_tx_stats =3D { - .read =3D read_file_tgt_tx_stats, + .read_iter =3D read_file_tgt_tx_stats, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, }; =20 -static ssize_t read_file_tgt_rx_stats(struct file *file, char __user *user= _buf, - size_t count, loff_t *ppos) +static ssize_t read_file_tgt_rx_stats(struct kiocb *iocb, struct iov_iter = *to) { - struct ath9k_htc_priv *priv =3D file->private_data; + struct ath9k_htc_priv *priv =3D iocb->ki_filp->private_data; struct ath9k_htc_target_rx_stats cmd_rsp; char buf[512]; unsigned int len =3D 0; @@ -180,20 +177,19 @@ static ssize_t read_file_tgt_rx_stats(struct file *fi= le, char __user *user_buf, if (len > sizeof(buf)) len =3D sizeof(buf); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 static const struct file_operations fops_tgt_rx_stats =3D { - .read =3D read_file_tgt_rx_stats, + .read_iter =3D read_file_tgt_rx_stats, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, }; =20 -static ssize_t read_file_xmit(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t read_file_xmit(struct kiocb *iocb, struct iov_iter *to) { - struct ath9k_htc_priv *priv =3D file->private_data; + struct ath9k_htc_priv *priv =3D iocb->ki_filp->private_data; char buf[512]; unsigned int len =3D 0; =20 @@ -232,11 +228,11 @@ static ssize_t read_file_xmit(struct file *file, char= __user *user_buf, if (len > sizeof(buf)) len =3D sizeof(buf); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 static const struct file_operations fops_xmit =3D { - .read =3D read_file_xmit, + .read_iter =3D read_file_xmit, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, @@ -248,10 +244,9 @@ void ath9k_htc_err_stat_rx(struct ath9k_htc_priv *priv, ath9k_cmn_debug_stat_rx(&priv->debug.rx_stats, rs); } =20 -static ssize_t read_file_skb_rx(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t read_file_skb_rx(struct kiocb *iocb, struct iov_iter *to) { - struct ath9k_htc_priv *priv =3D file->private_data; + struct ath9k_htc_priv *priv =3D iocb->ki_filp->private_data; char *buf; unsigned int len =3D 0, size =3D 1500; ssize_t retval =3D 0; @@ -273,23 +268,22 @@ static ssize_t read_file_skb_rx(struct file *file, ch= ar __user *user_buf, if (len > size) len =3D size; =20 - retval =3D simple_read_from_buffer(user_buf, count, ppos, buf, len); + retval =3D simple_copy_to_iter(buf, &iocb->ki_pos, len, to); kfree(buf); =20 return retval; } =20 static const struct file_operations fops_skb_rx =3D { - .read =3D read_file_skb_rx, + .read_iter =3D read_file_skb_rx, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, }; =20 -static ssize_t read_file_slot(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t read_file_slot(struct kiocb *iocb, struct iov_iter *to) { - struct ath9k_htc_priv *priv =3D file->private_data; + struct ath9k_htc_priv *priv =3D iocb->ki_filp->private_data; char buf[512]; unsigned int len; =20 @@ -300,20 +294,19 @@ static ssize_t read_file_slot(struct file *file, char= __user *user_buf, MAX_TX_BUF_NUM, priv->tx.tx_slot, bitmap_weight(priv->tx.tx_slot, MAX_TX_BUF_NUM)); spin_unlock_bh(&priv->tx.tx_lock); - return simple_read_from_buffer(user_buf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 static const struct file_operations fops_slot =3D { - .read =3D read_file_slot, + .read_iter =3D read_file_slot, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, }; =20 -static ssize_t read_file_queue(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t read_file_queue(struct kiocb *iocb, struct iov_iter *to) { - struct ath9k_htc_priv *priv =3D file->private_data; + struct ath9k_htc_priv *priv =3D iocb->ki_filp->private_data; char buf[512]; unsigned int len =3D 0; =20 @@ -346,38 +339,37 @@ static ssize_t read_file_queue(struct file *file, cha= r __user *user_buf, if (len > sizeof(buf)) len =3D sizeof(buf); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); =20 } =20 static const struct file_operations fops_queue =3D { - .read =3D read_file_queue, + .read_iter =3D read_file_queue, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, }; =20 -static ssize_t read_file_debug(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t read_file_debug(struct kiocb *iocb, struct iov_iter *to) { - struct ath9k_htc_priv *priv =3D file->private_data; + struct ath9k_htc_priv *priv =3D iocb->ki_filp->private_data; struct ath_common *common =3D ath9k_hw_common(priv->ah); char buf[32]; unsigned int len; =20 len =3D sprintf(buf, "0x%08x\n", common->debug_mask); - return simple_read_from_buffer(user_buf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 -static ssize_t write_file_debug(struct file *file, const char __user *user= _buf, - size_t count, loff_t *ppos) +static ssize_t write_file_debug(struct kiocb *iocb, struct iov_iter *from) { - struct ath9k_htc_priv *priv =3D file->private_data; + struct ath9k_htc_priv *priv =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); struct ath_common *common =3D ath9k_hw_common(priv->ah); unsigned long mask; ssize_t ret; =20 - ret =3D kstrtoul_from_user(user_buf, count, 0, &mask); + ret =3D kstrtoul_from_iter(from, count, 0, &mask); if (ret) return ret; =20 @@ -386,8 +378,8 @@ static ssize_t write_file_debug(struct file *file, cons= t char __user *user_buf, } =20 static const struct file_operations fops_debug =3D { - .read =3D read_file_debug, - .write =3D write_file_debug, + .read_iter =3D read_file_debug, + .write_iter =3D write_file_debug, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, diff --git a/drivers/net/wireless/ath/ath9k/tx99.c b/drivers/net/wireless/a= th/ath9k/tx99.c index f2144fd39093..349aa30cef9f 100644 --- a/drivers/net/wireless/ath/ath9k/tx99.c +++ b/drivers/net/wireless/ath/ath9k/tx99.c @@ -156,21 +156,20 @@ static int ath9k_tx99_init(struct ath_softc *sc) return 0; } =20 -static ssize_t read_file_tx99(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t read_file_tx99(struct kiocb *iocb, struct iov_iter *to) { - struct ath_softc *sc =3D file->private_data; + struct ath_softc *sc =3D iocb->ki_filp->private_data; char buf[3]; unsigned int len; =20 len =3D sprintf(buf, "%d\n", sc->tx99_state); - return simple_read_from_buffer(user_buf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 -static ssize_t write_file_tx99(struct file *file, const char __user *user_= buf, - size_t count, loff_t *ppos) +static ssize_t write_file_tx99(struct kiocb *iocb, struct iov_iter *from) { - struct ath_softc *sc =3D file->private_data; + struct ath_softc *sc =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); struct ath_common *common =3D ath9k_hw_common(sc->sc_ah); bool start; ssize_t ret; @@ -182,7 +181,7 @@ static ssize_t write_file_tx99(struct file *file, const= char __user *user_buf, if (sc->cur_chan->nvifs > 1) return -EOPNOTSUPP; =20 - ret =3D kstrtobool_from_user(user_buf, count, &start); + ret =3D kstrtobool_from_iter(from, count, &start); if (ret) return ret; =20 @@ -211,18 +210,16 @@ static ssize_t write_file_tx99(struct file *file, con= st char __user *user_buf, } =20 static const struct file_operations fops_tx99 =3D { - .read =3D read_file_tx99, - .write =3D write_file_tx99, + .read_iter =3D read_file_tx99, + .write_iter =3D write_file_tx99, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, }; =20 -static ssize_t read_file_tx99_power(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t read_file_tx99_power(struct kiocb *iocb, struct iov_iter *t= o) { - struct ath_softc *sc =3D file->private_data; + struct ath_softc *sc =3D iocb->ki_filp->private_data; char buf[32]; unsigned int len; =20 @@ -230,18 +227,17 @@ static ssize_t read_file_tx99_power(struct file *file, sc->tx99_power, sc->tx99_power / 2); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 -static ssize_t write_file_tx99_power(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t write_file_tx99_power(struct kiocb *iocb, struct iov_iter *= from) { - struct ath_softc *sc =3D file->private_data; + struct ath_softc *sc =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); int r; u8 tx_power; =20 - r =3D kstrtou8_from_user(user_buf, count, 0, &tx_power); + r =3D kstrtou8_from_iter(from, count, 0, &tx_power); if (r) return r; =20 @@ -258,8 +254,8 @@ static ssize_t write_file_tx99_power(struct file *file, } =20 static const struct file_operations fops_tx99_power =3D { - .read =3D read_file_tx99_power, - .write =3D write_file_tx99_power, + .read_iter =3D read_file_tx99_power, + .write_iter =3D write_file_tx99_power, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f48.google.com (mail-io1-f48.google.com [209.85.166.48]) (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 4238C1D8EC1 for ; Thu, 11 Apr 2024 15:40:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850011; cv=none; b=hCKeWXw1CZ+GGKg1bCLVE/DxV96tdqQz81tpBmzqOCIvMQ6R44Dglp7WmnQ6TB58gCfqohrktQhmmeqMNUr5+fVRAveM/YdhmJafHEFu5cBWQvKnO39Rg3aCStgmceoUpmU6MEMCpti6kyePcceNOupOjXSgco11zoUvFlpwNn8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850011; c=relaxed/simple; bh=fMtQ2Prs6T1En5TxP1vEmkXLOaTYUjpnIJqVHqvgXzM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ZNjCajhtrskv1WDob4qMjj/XIB9SdOyG4NPtJ6VdtUk3I9oz3h2Pv29FluW/WvBgjORBQy3nF76LCfuk2pIDctR6hf+MGlqX4VqL0/oN5aMx7BG7eHeME9JzEKNS2tqFZtljZGenuNK+qbaW0qwEcvgcLgaYv3p4+5ECJ/n6QYs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=mkjZrDT3; arc=none smtp.client-ip=209.85.166.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="mkjZrDT3" Received: by mail-io1-f48.google.com with SMTP id ca18e2360f4ac-7d6112ba6baso58188639f.1 for ; Thu, 11 Apr 2024 08:40:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850007; x=1713454807; 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=VgXVEFtMhht0OwQoGmHmbQ6tKLYTDBCjb5aIv528JJk=; b=mkjZrDT34VrHxV9EXIS7FvzfxVWrPFwVmSK3YbrAtba6VRsP5in439vcEpKZ9DcmHZ /w0iC7iUx5VUr1W+CVdlbkkl8YzZcJQ9b8BXHvcu+v8odRecFtpa34N88ar4dkTk3OKj c2wZ4TdUJNPymRepWtRuan8S4rvLdgn2Lb63dI0vyoO3soynZv5dJYyw3iLaNgX2ny9l +/zeyAig3IyMYeXC2CMDueQxKwbPKCBixPh6209rlfHla0oo09TdOTCBA8S9LI9rtz6/ ZsJJ9Eaa1C991QtFtJsKLkVWmQCVuHUV9irDnDF6/BmYufMCEeFTI0YsQ9Sa5AAcEA71 Kxvw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850007; x=1713454807; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=VgXVEFtMhht0OwQoGmHmbQ6tKLYTDBCjb5aIv528JJk=; b=AaoyP2Wecj4/7AmhCkl8KQzDS221cggrd7gFuALqmIdVZ6LkMMgZdcLTVXcLiA5gc/ v5LvJ2kQYn8ZOIZ9/BNRVY5kap1CegmGgnaDYTgQn0MTbjJmrmZy1Wu/zh9GVvDyn8cS qjPJgcODITZHBjO7XfiRpyIOnEbcx1QlLNKl2Xo6qzbWQYq950KUmn0e/87wb0YLoF7w NnuEZS6+yB0Urtk6a1w9Z+KfUT9dEg93UhU/LbTdISZAw5AjfUh431xDo4TI7Vj5OKmb WEnCGFR59vguBwFS6ghNqMt3WrEmkVNeBudTL+olJZy4YVtMmDL2mHWizhzUYSiqKknK UXnQ== X-Gm-Message-State: AOJu0YwtJ4zuHDr+8NiAbqxANm+F6X8RYpeQTshruXuMq4Ihgi6CgKAr +vYVi6Et1rd5WHzED588MA9qlAI7DMrUbDfmeKDdvX0+0YOusQJz19G8hWL+aUG+T7+CxI+4Fe9 a X-Google-Smtp-Source: AGHT+IHlQ7/5w4t4qJ6dVpGomkfluZHEeOBi0QTzcC4rYo6W7VRA60KdNIK75jtBJ+p73gx6TgHJ5w== X-Received: by 2002:a6b:f312:0:b0:7d5:de23:13a9 with SMTP id m18-20020a6bf312000000b007d5de2313a9mr172000ioh.1.1712850006441; Thu, 11 Apr 2024 08:40:06 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.40.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:40:05 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 304/437] drivers/net/wireless/ath/ath10k: convert to read/write iterators Date: Thu, 11 Apr 2024 09:17:24 -0600 Message-ID: <20240411153126.16201-305-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/net/wireless/ath/ath10k/debug.c | 502 ++++++++---------- drivers/net/wireless/ath/ath10k/debugfs_sta.c | 119 ++--- drivers/net/wireless/ath/ath10k/spectral.c | 65 ++- 3 files changed, 316 insertions(+), 370 deletions(-) diff --git a/drivers/net/wireless/ath/ath10k/debug.c b/drivers/net/wireless= /ath/ath10k/debug.c index b93a64bf8190..63193a566868 100644 --- a/drivers/net/wireless/ath/ath10k/debug.c +++ b/drivers/net/wireless/ath/ath10k/debug.c @@ -148,11 +148,9 @@ EXPORT_SYMBOL(ath10k_warn); =20 #ifdef CONFIG_ATH10K_DEBUGFS =20 -static ssize_t ath10k_read_wmi_services(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath10k_read_wmi_services(struct kiocb *iocb, struct iov_ite= r *to) { - struct ath10k *ar =3D file->private_data; + struct ath10k *ar =3D iocb->ki_filp->private_data; char *buf; size_t len =3D 0, buf_len =3D 8192; const char *name; @@ -186,7 +184,7 @@ static ssize_t ath10k_read_wmi_services(struct file *fi= le, } spin_unlock_bh(&ar->data_lock); =20 - ret_cnt =3D simple_read_from_buffer(user_buf, count, ppos, buf, len); + ret_cnt =3D simple_copy_to_iter(buf, &iocb->ki_pos, len, to); =20 mutex_unlock(&ar->conf_mutex); =20 @@ -195,7 +193,7 @@ static ssize_t ath10k_read_wmi_services(struct file *fi= le, } =20 static const struct file_operations fops_wmi_services =3D { - .read =3D ath10k_read_wmi_services, + .read_iter =3D ath10k_read_wmi_services, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, @@ -442,28 +440,26 @@ static int ath10k_fw_stats_release(struct inode *inod= e, struct file *file) return 0; } =20 -static ssize_t ath10k_fw_stats_read(struct file *file, char __user *user_b= uf, - size_t count, loff_t *ppos) +static ssize_t ath10k_fw_stats_read(struct kiocb *iocb, struct iov_iter *t= o) { - const char *buf =3D file->private_data; + const char *buf =3D iocb->ki_filp->private_data; size_t len =3D strlen(buf); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 static const struct file_operations fops_fw_stats =3D { .open =3D ath10k_fw_stats_open, .release =3D ath10k_fw_stats_release, - .read =3D ath10k_fw_stats_read, + .read_iter =3D ath10k_fw_stats_read, .owner =3D THIS_MODULE, .llseek =3D default_llseek, }; =20 -static ssize_t ath10k_debug_fw_reset_stats_read(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath10k_debug_fw_reset_stats_read(struct kiocb *iocb, + struct iov_iter *to) { - struct ath10k *ar =3D file->private_data; + struct ath10k *ar =3D iocb->ki_filp->private_data; int ret; size_t len =3D 0, buf_len =3D 500; char *buf; @@ -485,7 +481,7 @@ static ssize_t ath10k_debug_fw_reset_stats_read(struct = file *file, =20 spin_unlock_bh(&ar->data_lock); =20 - ret =3D simple_read_from_buffer(user_buf, count, ppos, buf, len); + ret =3D simple_copy_to_iter(buf, &iocb->ki_pos, len, to); =20 kfree(buf); =20 @@ -494,7 +490,7 @@ static ssize_t ath10k_debug_fw_reset_stats_read(struct = file *file, =20 static const struct file_operations fops_fw_reset_stats =3D { .open =3D simple_open, - .read =3D ath10k_debug_fw_reset_stats_read, + .read_iter =3D ath10k_debug_fw_reset_stats_read, .owner =3D THIS_MODULE, .llseek =3D default_llseek, }; @@ -519,9 +515,8 @@ static int ath10k_debug_fw_assert(struct ath10k *ar) ar->wmi.cmd->vdev_install_key_cmdid); } =20 -static ssize_t ath10k_read_simulate_fw_crash(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath10k_read_simulate_fw_crash(struct kiocb *iocb, + struct iov_iter *to) { const char buf[] =3D "To simulate firmware crash write one of the keywords to this file:\n" @@ -530,7 +525,7 @@ static ssize_t ath10k_read_simulate_fw_crash(struct fil= e *file, "`assert` - this will send special illegal parameter to firmware to caus= e assert failure and crash.\n" "`hw-restart` - this will simply queue hw restart without fw/hw actually= crashing.\n"; =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, strlen(buf)); + return simple_copy_to_iter(buf, &iocb->ki_pos, strlen(buf), to); } =20 /* Simulate firmware crash: @@ -540,26 +535,26 @@ static ssize_t ath10k_read_simulate_fw_crash(struct f= ile *file, * vdev id. This is hard firmware crash because it is recoverable only by = cold * firmware reset. */ -static ssize_t ath10k_write_simulate_fw_crash(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath10k_write_simulate_fw_crash(struct kiocb *iocb, + struct iov_iter *from) { - struct ath10k *ar =3D file->private_data; + struct ath10k *ar =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); char buf[32] =3D {0}; ssize_t rc; int ret; =20 /* filter partial writes and invalid commands */ - if (*ppos !=3D 0 || count >=3D sizeof(buf) || count =3D=3D 0) + if (iocb->ki_pos !=3D 0 || count >=3D sizeof(buf) || count =3D=3D 0) return -EINVAL; =20 - rc =3D simple_write_to_buffer(buf, sizeof(buf) - 1, ppos, user_buf, count= ); + rc =3D simple_copy_from_iter(buf, &iocb->ki_pos, sizeof(buf) - 1, from); if (rc < 0) return rc; =20 /* drop the possible '\n' from the end */ - if (buf[*ppos - 1] =3D=3D '\n') - buf[*ppos - 1] =3D '\0'; + if (buf[iocb->ki_pos - 1] =3D=3D '\n') + buf[iocb->ki_pos - 1] =3D '\0'; =20 mutex_lock(&ar->conf_mutex); =20 @@ -605,37 +600,34 @@ static ssize_t ath10k_write_simulate_fw_crash(struct = file *file, } =20 static const struct file_operations fops_simulate_fw_crash =3D { - .read =3D ath10k_read_simulate_fw_crash, - .write =3D ath10k_write_simulate_fw_crash, + .read_iter =3D ath10k_read_simulate_fw_crash, + .write_iter =3D ath10k_write_simulate_fw_crash, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, }; =20 -static ssize_t ath10k_read_chip_id(struct file *file, char __user *user_bu= f, - size_t count, loff_t *ppos) +static ssize_t ath10k_read_chip_id(struct kiocb *iocb, struct iov_iter *to) { - struct ath10k *ar =3D file->private_data; + struct ath10k *ar =3D iocb->ki_filp->private_data; size_t len; char buf[50]; =20 len =3D scnprintf(buf, sizeof(buf), "0x%08x\n", ar->bus_param.chip_id); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 static const struct file_operations fops_chip_id =3D { - .read =3D ath10k_read_chip_id, + .read_iter =3D ath10k_read_chip_id, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, }; =20 -static ssize_t ath10k_reg_addr_read(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath10k_reg_addr_read(struct kiocb *iocb, struct iov_iter *t= o) { - struct ath10k *ar =3D file->private_data; + struct ath10k *ar =3D iocb->ki_filp->private_data; u8 buf[32]; size_t len =3D 0; u32 reg_addr; @@ -646,18 +638,17 @@ static ssize_t ath10k_reg_addr_read(struct file *file, =20 len +=3D scnprintf(buf + len, sizeof(buf) - len, "0x%x\n", reg_addr); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 -static ssize_t ath10k_reg_addr_write(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath10k_reg_addr_write(struct kiocb *iocb, struct iov_iter *= from) { - struct ath10k *ar =3D file->private_data; + struct ath10k *ar =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); u32 reg_addr; int ret; =20 - ret =3D kstrtou32_from_user(user_buf, count, 0, ®_addr); + ret =3D kstrtou32_from_iter(from, count, 0, ®_addr); if (ret) return ret; =20 @@ -672,18 +663,16 @@ static ssize_t ath10k_reg_addr_write(struct file *fil= e, } =20 static const struct file_operations fops_reg_addr =3D { - .read =3D ath10k_reg_addr_read, - .write =3D ath10k_reg_addr_write, + .read_iter =3D ath10k_reg_addr_read, + .write_iter =3D ath10k_reg_addr_write, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, }; =20 -static ssize_t ath10k_reg_value_read(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath10k_reg_value_read(struct kiocb *iocb, struct iov_iter *= to) { - struct ath10k *ar =3D file->private_data; + struct ath10k *ar =3D iocb->ki_filp->private_data; u8 buf[48]; size_t len; u32 reg_addr, reg_val; @@ -702,7 +691,7 @@ static ssize_t ath10k_reg_value_read(struct file *file, reg_val =3D ath10k_hif_read32(ar, reg_addr); len =3D scnprintf(buf, sizeof(buf), "0x%08x:0x%08x\n", reg_addr, reg_val); =20 - ret =3D simple_read_from_buffer(user_buf, count, ppos, buf, len); + ret =3D simple_copy_to_iter(buf, &iocb->ki_pos, len, to); =20 exit: mutex_unlock(&ar->conf_mutex); @@ -710,11 +699,10 @@ static ssize_t ath10k_reg_value_read(struct file *fil= e, return ret; } =20 -static ssize_t ath10k_reg_value_write(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath10k_reg_value_write(struct kiocb *iocb, struct iov_iter = *from) { - struct ath10k *ar =3D file->private_data; + struct ath10k *ar =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); u32 reg_addr, reg_val; int ret; =20 @@ -728,7 +716,7 @@ static ssize_t ath10k_reg_value_write(struct file *file, =20 reg_addr =3D ar->debug.reg_addr; =20 - ret =3D kstrtou32_from_user(user_buf, count, 0, ®_val); + ret =3D kstrtou32_from_iter(from, count, 0, ®_val); if (ret) goto exit; =20 @@ -743,22 +731,21 @@ static ssize_t ath10k_reg_value_write(struct file *fi= le, } =20 static const struct file_operations fops_reg_value =3D { - .read =3D ath10k_reg_value_read, - .write =3D ath10k_reg_value_write, + .read_iter =3D ath10k_reg_value_read, + .write_iter =3D ath10k_reg_value_write, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, }; =20 -static ssize_t ath10k_mem_value_read(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath10k_mem_value_read(struct kiocb *iocb, struct iov_iter *= to) { - struct ath10k *ar =3D file->private_data; + struct ath10k *ar =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(to); u8 *buf; int ret; =20 - if (*ppos < 0) + if (iocb->ki_pos < 0) return -EINVAL; =20 if (!count) @@ -778,21 +765,21 @@ static ssize_t ath10k_mem_value_read(struct file *fil= e, goto exit; } =20 - ret =3D ath10k_hif_diag_read(ar, *ppos, buf, count); + ret =3D ath10k_hif_diag_read(ar, iocb->ki_pos, buf, count); if (ret) { ath10k_warn(ar, "failed to read address 0x%08x via diagnose window from = debugfs: %d\n", - (u32)(*ppos), ret); + (u32)(iocb->ki_pos), ret); goto exit; } =20 - ret =3D copy_to_user(user_buf, buf, count); + ret =3D !copy_to_iter_full(buf, count, to); if (ret) { ret =3D -EFAULT; goto exit; } =20 count -=3D ret; - *ppos +=3D count; + iocb->ki_pos +=3D count; ret =3D count; =20 exit: @@ -802,15 +789,14 @@ static ssize_t ath10k_mem_value_read(struct file *fil= e, return ret; } =20 -static ssize_t ath10k_mem_value_write(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath10k_mem_value_write(struct kiocb *iocb, struct iov_iter = *from) { - struct ath10k *ar =3D file->private_data; + struct ath10k *ar =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); u8 *buf; int ret; =20 - if (*ppos < 0) + if (iocb->ki_pos < 0) return -EINVAL; =20 if (!count) @@ -830,20 +816,20 @@ static ssize_t ath10k_mem_value_write(struct file *fi= le, goto exit; } =20 - ret =3D copy_from_user(buf, user_buf, count); + ret =3D !copy_from_iter_full(buf, count, from); if (ret) { ret =3D -EFAULT; goto exit; } =20 - ret =3D ath10k_hif_diag_write(ar, *ppos, buf, count); + ret =3D ath10k_hif_diag_write(ar, iocb->ki_pos, buf, count); if (ret) { ath10k_warn(ar, "failed to write address 0x%08x via diagnose window from= debugfs: %d\n", - (u32)(*ppos), ret); + (u32)(iocb->ki_pos), ret); goto exit; } =20 - *ppos +=3D count; + iocb->ki_pos +=3D count; ret =3D count; =20 exit: @@ -854,8 +840,8 @@ static ssize_t ath10k_mem_value_write(struct file *file, } =20 static const struct file_operations fops_mem_value =3D { - .read =3D ath10k_mem_value_read, - .write =3D ath10k_mem_value_write, + .read_iter =3D ath10k_mem_value_read, + .write_iter =3D ath10k_mem_value_write, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, @@ -902,28 +888,27 @@ static void ath10k_debug_htt_stats_dwork(struct work_= struct *work) mutex_unlock(&ar->conf_mutex); } =20 -static ssize_t ath10k_read_htt_stats_mask(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath10k_read_htt_stats_mask(struct kiocb *iocb, + struct iov_iter *to) { - struct ath10k *ar =3D file->private_data; + struct ath10k *ar =3D iocb->ki_filp->private_data; char buf[32]; size_t len; =20 len =3D scnprintf(buf, sizeof(buf), "%lu\n", ar->debug.htt_stats_mask); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 -static ssize_t ath10k_write_htt_stats_mask(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath10k_write_htt_stats_mask(struct kiocb *iocb, + struct iov_iter *from) { - struct ath10k *ar =3D file->private_data; + struct ath10k *ar =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); unsigned long mask; int ret; =20 - ret =3D kstrtoul_from_user(user_buf, count, 0, &mask); + ret =3D kstrtoul_from_iter(from, count, 0, &mask); if (ret) return ret; =20 @@ -948,18 +933,17 @@ static ssize_t ath10k_write_htt_stats_mask(struct fil= e *file, } =20 static const struct file_operations fops_htt_stats_mask =3D { - .read =3D ath10k_read_htt_stats_mask, - .write =3D ath10k_write_htt_stats_mask, + .read_iter =3D ath10k_read_htt_stats_mask, + .write_iter =3D ath10k_write_htt_stats_mask, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, }; =20 -static ssize_t ath10k_read_htt_max_amsdu_ampdu(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath10k_read_htt_max_amsdu_ampdu(struct kiocb *iocb, + struct iov_iter *to) { - struct ath10k *ar =3D file->private_data; + struct ath10k *ar =3D iocb->ki_filp->private_data; char buf[64]; u8 amsdu, ampdu; size_t len; @@ -972,20 +956,19 @@ static ssize_t ath10k_read_htt_max_amsdu_ampdu(struct= file *file, =20 len =3D scnprintf(buf, sizeof(buf), "%u %u\n", amsdu, ampdu); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 -static ssize_t ath10k_write_htt_max_amsdu_ampdu(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath10k_write_htt_max_amsdu_ampdu(struct kiocb *iocb, + struct iov_iter *from) { - struct ath10k *ar =3D file->private_data; + struct ath10k *ar =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); int res; char buf[64] =3D {0}; unsigned int amsdu, ampdu; =20 - res =3D simple_write_to_buffer(buf, sizeof(buf) - 1, ppos, - user_buf, count); + res =3D simple_copy_from_iter(buf, &iocb->ki_pos, sizeof(buf) - 1, from); if (res <=3D 0) return res; =20 @@ -1010,39 +993,35 @@ static ssize_t ath10k_write_htt_max_amsdu_ampdu(stru= ct file *file, } =20 static const struct file_operations fops_htt_max_amsdu_ampdu =3D { - .read =3D ath10k_read_htt_max_amsdu_ampdu, - .write =3D ath10k_write_htt_max_amsdu_ampdu, + .read_iter =3D ath10k_read_htt_max_amsdu_ampdu, + .write_iter =3D ath10k_write_htt_max_amsdu_ampdu, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, }; =20 -static ssize_t ath10k_read_fw_dbglog(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath10k_read_fw_dbglog(struct kiocb *iocb, struct iov_iter *= to) { - struct ath10k *ar =3D file->private_data; + struct ath10k *ar =3D iocb->ki_filp->private_data; size_t len; char buf[96]; =20 len =3D scnprintf(buf, sizeof(buf), "0x%16llx %u\n", ar->debug.fw_dbglog_mask, ar->debug.fw_dbglog_level); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 -static ssize_t ath10k_write_fw_dbglog(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath10k_write_fw_dbglog(struct kiocb *iocb, struct iov_iter = *from) { - struct ath10k *ar =3D file->private_data; + struct ath10k *ar =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); int ret; char buf[96] =3D {0}; unsigned int log_level; u64 mask; =20 - ret =3D simple_write_to_buffer(buf, sizeof(buf) - 1, ppos, - user_buf, count); + ret =3D simple_copy_from_iter(buf, &iocb->ki_pos, sizeof(buf) - 1, from); if (ret <=3D 0) return ret; =20 @@ -1241,8 +1220,8 @@ void ath10k_debug_get_et_stats(struct ieee80211_hw *h= w, } =20 static const struct file_operations fops_fw_dbglog =3D { - .read =3D ath10k_read_fw_dbglog, - .write =3D ath10k_write_fw_dbglog, + .read_iter =3D ath10k_read_fw_dbglog, + .write_iter =3D ath10k_write_fw_dbglog, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, @@ -1298,32 +1277,31 @@ static int ath10k_debug_cal_data_open(struct inode = *inode, struct file *file) return 0; } =20 -static ssize_t ath10k_debug_cal_data_read(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath10k_debug_cal_data_read(struct kiocb *iocb, + struct iov_iter *to) { - struct ath10k *ar =3D file->private_data; + struct ath10k *ar =3D iocb->ki_filp->private_data; + size_t count; =20 mutex_lock(&ar->conf_mutex); =20 - count =3D simple_read_from_buffer(user_buf, count, ppos, - ar->debug.cal_data, - ar->hw_params.cal_data_len); + count =3D simple_copy_to_iter(ar->debug.cal_data, &iocb->ki_pos, + ar->hw_params.cal_data_len, to); =20 mutex_unlock(&ar->conf_mutex); =20 return count; } =20 -static ssize_t ath10k_write_ani_enable(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath10k_write_ani_enable(struct kiocb *iocb, + struct iov_iter *from) { - struct ath10k *ar =3D file->private_data; + struct ath10k *ar =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); int ret; u8 enable; =20 - if (kstrtou8_from_user(user_buf, count, 0, &enable)) + if (kstrtou8_from_iter(from, count, 0, &enable)) return -EINVAL; =20 mutex_lock(&ar->conf_mutex); @@ -1349,21 +1327,20 @@ static ssize_t ath10k_write_ani_enable(struct file = *file, return ret; } =20 -static ssize_t ath10k_read_ani_enable(struct file *file, char __user *user= _buf, - size_t count, loff_t *ppos) +static ssize_t ath10k_read_ani_enable(struct kiocb *iocb, struct iov_iter = *to) { - struct ath10k *ar =3D file->private_data; + struct ath10k *ar =3D iocb->ki_filp->private_data; size_t len; char buf[32]; =20 len =3D scnprintf(buf, sizeof(buf), "%d\n", ar->ani_enabled); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 static const struct file_operations fops_ani_enable =3D { - .read =3D ath10k_read_ani_enable, - .write =3D ath10k_write_ani_enable, + .read_iter =3D ath10k_read_ani_enable, + .write_iter =3D ath10k_write_ani_enable, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, @@ -1371,33 +1348,31 @@ static const struct file_operations fops_ani_enable= =3D { =20 static const struct file_operations fops_cal_data =3D { .open =3D ath10k_debug_cal_data_open, - .read =3D ath10k_debug_cal_data_read, + .read_iter =3D ath10k_debug_cal_data_read, .owner =3D THIS_MODULE, .llseek =3D default_llseek, }; =20 -static ssize_t ath10k_read_nf_cal_period(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath10k_read_nf_cal_period(struct kiocb *iocb, struct iov_it= er *to) { - struct ath10k *ar =3D file->private_data; + struct ath10k *ar =3D iocb->ki_filp->private_data; size_t len; char buf[32]; =20 len =3D scnprintf(buf, sizeof(buf), "%d\n", ar->debug.nf_cal_period); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 -static ssize_t ath10k_write_nf_cal_period(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath10k_write_nf_cal_period(struct kiocb *iocb, + struct iov_iter *from) { - struct ath10k *ar =3D file->private_data; + struct ath10k *ar =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); unsigned long period; int ret; =20 - ret =3D kstrtoul_from_user(user_buf, count, 0, &period); + ret =3D kstrtoul_from_iter(from, count, 0, &period); if (ret) return ret; =20 @@ -1435,8 +1410,8 @@ static ssize_t ath10k_write_nf_cal_period(struct file= *file, } =20 static const struct file_operations fops_nf_cal_period =3D { - .read =3D ath10k_read_nf_cal_period, - .write =3D ath10k_write_nf_cal_period, + .read_iter =3D ath10k_read_nf_cal_period, + .write_iter =3D ath10k_write_nf_cal_period, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, @@ -1673,19 +1648,18 @@ static int ath10k_tpc_stats_release(struct inode *i= node, struct file *file) return 0; } =20 -static ssize_t ath10k_tpc_stats_read(struct file *file, char __user *user_= buf, - size_t count, loff_t *ppos) +static ssize_t ath10k_tpc_stats_read(struct kiocb *iocb, struct iov_iter *= to) { - const char *buf =3D file->private_data; + const char *buf =3D iocb->ki_filp->private_data; size_t len =3D strlen(buf); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 static const struct file_operations fops_tpc_stats =3D { .open =3D ath10k_tpc_stats_open, .release =3D ath10k_tpc_stats_release, - .read =3D ath10k_tpc_stats_read, + .read_iter =3D ath10k_tpc_stats_read, .owner =3D THIS_MODULE, .llseek =3D default_llseek, }; @@ -1759,11 +1733,10 @@ void ath10k_debug_stop(struct ath10k *ar) ath10k_wmi_pdev_pktlog_disable(ar); } =20 -static ssize_t ath10k_write_simulate_radar(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath10k_write_simulate_radar(struct kiocb *iocb, + struct iov_iter *from) { - struct ath10k *ar =3D file->private_data; + struct ath10k *ar =3D iocb->ki_filp->private_data; struct ath10k_vif *arvif; =20 /* Just check for the first vif alone, as all the vifs will be @@ -1775,12 +1748,11 @@ static ssize_t ath10k_write_simulate_radar(struct f= ile *file, return -EINVAL; =20 ieee80211_radar_detected(ar->hw); - - return count; + return iov_iter_count(from); } =20 static const struct file_operations fops_simulate_radar =3D { - .write =3D ath10k_write_simulate_radar, + .write_iter =3D ath10k_write_simulate_radar, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, @@ -1794,12 +1766,11 @@ static const struct file_operations fops_simulate_r= adar =3D { len +=3D scnprintf(buf + len, size - len, "%-28s : %10u\n", s, \ ar->debug.dfs_pool_stats.p)) =20 -static ssize_t ath10k_read_dfs_stats(struct file *file, char __user *user_= buf, - size_t count, loff_t *ppos) +static ssize_t ath10k_read_dfs_stats(struct kiocb *iocb, struct iov_iter *= to) { int retval =3D 0, len =3D 0; const int size =3D 8000; - struct ath10k *ar =3D file->private_data; + struct ath10k *ar =3D iocb->ki_filp->private_data; char *buf; =20 buf =3D kzalloc(size, GFP_KERNEL); @@ -1835,28 +1806,28 @@ static ssize_t ath10k_read_dfs_stats(struct file *f= ile, char __user *user_buf, if (len > size) len =3D size; =20 - retval =3D simple_read_from_buffer(user_buf, count, ppos, buf, len); + retval =3D simple_copy_to_iter(buf, &iocb->ki_pos, len, to); kfree(buf); =20 return retval; } =20 static const struct file_operations fops_dfs_stats =3D { - .read =3D ath10k_read_dfs_stats, + .read_iter =3D ath10k_read_dfs_stats, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, }; =20 -static ssize_t ath10k_write_pktlog_filter(struct file *file, - const char __user *ubuf, - size_t count, loff_t *ppos) +static ssize_t ath10k_write_pktlog_filter(struct kiocb *iocb, + struct iov_iter *from) { - struct ath10k *ar =3D file->private_data; + struct ath10k *ar =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); u32 filter; int ret; =20 - if (kstrtouint_from_user(ubuf, count, 0, &filter)) + if (kstrtouint_from_iter(from, count, 0, &filter)) return -EINVAL; =20 mutex_lock(&ar->conf_mutex); @@ -1895,11 +1866,10 @@ static ssize_t ath10k_write_pktlog_filter(struct fi= le *file, return ret; } =20 -static ssize_t ath10k_read_pktlog_filter(struct file *file, char __user *u= buf, - size_t count, loff_t *ppos) +static ssize_t ath10k_read_pktlog_filter(struct kiocb *iocb, struct iov_it= er *to) { char buf[32]; - struct ath10k *ar =3D file->private_data; + struct ath10k *ar =3D iocb->ki_filp->private_data; int len =3D 0; =20 mutex_lock(&ar->conf_mutex); @@ -1907,23 +1877,23 @@ static ssize_t ath10k_read_pktlog_filter(struct fil= e *file, char __user *ubuf, ar->pktlog_filter); mutex_unlock(&ar->conf_mutex); =20 - return simple_read_from_buffer(ubuf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 static const struct file_operations fops_pktlog_filter =3D { - .read =3D ath10k_read_pktlog_filter, - .write =3D ath10k_write_pktlog_filter, + .read_iter =3D ath10k_read_pktlog_filter, + .write_iter =3D ath10k_write_pktlog_filter, .open =3D simple_open }; =20 -static ssize_t ath10k_write_quiet_period(struct file *file, - const char __user *ubuf, - size_t count, loff_t *ppos) +static ssize_t ath10k_write_quiet_period(struct kiocb *iocb, + struct iov_iter *from) { - struct ath10k *ar =3D file->private_data; + struct ath10k *ar =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); u32 period; =20 - if (kstrtouint_from_user(ubuf, count, 0, &period)) + if (kstrtouint_from_iter(from, count, 0, &period)) return -EINVAL; =20 if (period < ATH10K_QUIET_PERIOD_MIN) { @@ -1939,11 +1909,10 @@ static ssize_t ath10k_write_quiet_period(struct fil= e *file, return count; } =20 -static ssize_t ath10k_read_quiet_period(struct file *file, char __user *ub= uf, - size_t count, loff_t *ppos) +static ssize_t ath10k_read_quiet_period(struct kiocb *iocb, struct iov_ite= r *to) { char buf[32]; - struct ath10k *ar =3D file->private_data; + struct ath10k *ar =3D iocb->ki_filp->private_data; int len =3D 0; =20 mutex_lock(&ar->conf_mutex); @@ -1951,25 +1920,24 @@ static ssize_t ath10k_read_quiet_period(struct file= *file, char __user *ubuf, ar->thermal.quiet_period); mutex_unlock(&ar->conf_mutex); =20 - return simple_read_from_buffer(ubuf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 static const struct file_operations fops_quiet_period =3D { - .read =3D ath10k_read_quiet_period, - .write =3D ath10k_write_quiet_period, + .read_iter =3D ath10k_read_quiet_period, + .write_iter =3D ath10k_write_quiet_period, .open =3D simple_open }; =20 -static ssize_t ath10k_write_btcoex(struct file *file, - const char __user *ubuf, - size_t count, loff_t *ppos) +static ssize_t ath10k_write_btcoex(struct kiocb *iocb, struct iov_iter *fr= om) { - struct ath10k *ar =3D file->private_data; + struct ath10k *ar =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); ssize_t ret; bool val; u32 pdev_param; =20 - ret =3D kstrtobool_from_user(ubuf, count, &val); + ret =3D kstrtobool_from_iter(from, count, &val); if (ret) return ret; =20 @@ -2016,11 +1984,10 @@ static ssize_t ath10k_write_btcoex(struct file *fil= e, return ret; } =20 -static ssize_t ath10k_read_btcoex(struct file *file, char __user *ubuf, - size_t count, loff_t *ppos) +static ssize_t ath10k_read_btcoex(struct kiocb *iocb, struct iov_iter *to) { char buf[32]; - struct ath10k *ar =3D file->private_data; + struct ath10k *ar =3D iocb->ki_filp->private_data; int len =3D 0; =20 mutex_lock(&ar->conf_mutex); @@ -2028,24 +1995,24 @@ static ssize_t ath10k_read_btcoex(struct file *file= , char __user *ubuf, test_bit(ATH10K_FLAG_BTCOEX, &ar->dev_flags)); mutex_unlock(&ar->conf_mutex); =20 - return simple_read_from_buffer(ubuf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 static const struct file_operations fops_btcoex =3D { - .read =3D ath10k_read_btcoex, - .write =3D ath10k_write_btcoex, + .read_iter =3D ath10k_read_btcoex, + .write_iter =3D ath10k_write_btcoex, .open =3D simple_open }; =20 -static ssize_t ath10k_write_enable_extd_tx_stats(struct file *file, - const char __user *ubuf, - size_t count, loff_t *ppos) +static ssize_t ath10k_write_enable_extd_tx_stats(struct kiocb *iocb, + struct iov_iter *from) { - struct ath10k *ar =3D file->private_data; + struct ath10k *ar =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); u32 filter; int ret; =20 - if (kstrtouint_from_user(ubuf, count, 0, &filter)) + if (kstrtouint_from_iter(from, count, 0, &filter)) return -EINVAL; =20 mutex_lock(&ar->conf_mutex); @@ -2069,13 +2036,12 @@ static ssize_t ath10k_write_enable_extd_tx_stats(st= ruct file *file, return ret; } =20 -static ssize_t ath10k_read_enable_extd_tx_stats(struct file *file, - char __user *ubuf, - size_t count, loff_t *ppos) +static ssize_t ath10k_read_enable_extd_tx_stats(struct kiocb *iocb, + struct iov_iter *to) =20 { char buf[32]; - struct ath10k *ar =3D file->private_data; + struct ath10k *ar =3D iocb->ki_filp->private_data; int len =3D 0; =20 mutex_lock(&ar->conf_mutex); @@ -2083,24 +2049,24 @@ static ssize_t ath10k_read_enable_extd_tx_stats(str= uct file *file, ar->debug.enable_extd_tx_stats); mutex_unlock(&ar->conf_mutex); =20 - return simple_read_from_buffer(ubuf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 static const struct file_operations fops_enable_extd_tx_stats =3D { - .read =3D ath10k_read_enable_extd_tx_stats, - .write =3D ath10k_write_enable_extd_tx_stats, + .read_iter =3D ath10k_read_enable_extd_tx_stats, + .write_iter =3D ath10k_write_enable_extd_tx_stats, .open =3D simple_open }; =20 -static ssize_t ath10k_write_peer_stats(struct file *file, - const char __user *ubuf, - size_t count, loff_t *ppos) +static ssize_t ath10k_write_peer_stats(struct kiocb *iocb, + struct iov_iter *from) { - struct ath10k *ar =3D file->private_data; + struct ath10k *ar =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); ssize_t ret; bool val; =20 - ret =3D kstrtobool_from_user(ubuf, count, &val); + ret =3D kstrtobool_from_iter(from, count, &val); if (ret) return ret; =20 @@ -2132,12 +2098,10 @@ static ssize_t ath10k_write_peer_stats(struct file = *file, return ret; } =20 -static ssize_t ath10k_read_peer_stats(struct file *file, char __user *ubuf, - size_t count, loff_t *ppos) - +static ssize_t ath10k_read_peer_stats(struct kiocb *iocb, struct iov_iter = *to) { char buf[32]; - struct ath10k *ar =3D file->private_data; + struct ath10k *ar =3D iocb->ki_filp->private_data; int len =3D 0; =20 mutex_lock(&ar->conf_mutex); @@ -2145,20 +2109,19 @@ static ssize_t ath10k_read_peer_stats(struct file *= file, char __user *ubuf, test_bit(ATH10K_FLAG_PEER_STATS, &ar->dev_flags)); mutex_unlock(&ar->conf_mutex); =20 - return simple_read_from_buffer(ubuf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 static const struct file_operations fops_peer_stats =3D { - .read =3D ath10k_read_peer_stats, - .write =3D ath10k_write_peer_stats, + .read_iter =3D ath10k_read_peer_stats, + .write_iter =3D ath10k_write_peer_stats, .open =3D simple_open }; =20 -static ssize_t ath10k_debug_fw_checksums_read(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath10k_debug_fw_checksums_read(struct kiocb *iocb, + struct iov_iter *to) { - struct ath10k *ar =3D file->private_data; + struct ath10k *ar =3D iocb->ki_filp->private_data; size_t len =3D 0, buf_len =3D 4096; ssize_t ret_cnt; char *buf; @@ -2194,7 +2157,7 @@ static ssize_t ath10k_debug_fw_checksums_read(struct = file *file, crc32_le(0, ar->normal_mode_fw.board_data, ar->normal_mode_fw.board_len)); =20 - ret_cnt =3D simple_read_from_buffer(user_buf, count, ppos, buf, len); + ret_cnt =3D simple_copy_to_iter(buf, &iocb->ki_pos, len, to); =20 mutex_unlock(&ar->conf_mutex); =20 @@ -2203,33 +2166,32 @@ static ssize_t ath10k_debug_fw_checksums_read(struc= t file *file, } =20 static const struct file_operations fops_fw_checksums =3D { - .read =3D ath10k_debug_fw_checksums_read, + .read_iter =3D ath10k_debug_fw_checksums_read, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, }; =20 -static ssize_t ath10k_sta_tid_stats_mask_read(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath10k_sta_tid_stats_mask_read(struct kiocb *iocb, + struct iov_iter *to) { - struct ath10k *ar =3D file->private_data; + struct ath10k *ar =3D iocb->ki_filp->private_data; char buf[32]; size_t len; =20 len =3D scnprintf(buf, sizeof(buf), "0x%08x\n", ar->sta_tid_stats_mask); - return simple_read_from_buffer(user_buf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 -static ssize_t ath10k_sta_tid_stats_mask_write(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath10k_sta_tid_stats_mask_write(struct kiocb *iocb, + struct iov_iter *from) { - struct ath10k *ar =3D file->private_data; + struct ath10k *ar =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); ssize_t ret; u32 mask; =20 - ret =3D kstrtoint_from_user(user_buf, count, 0, &mask); + ret =3D kstrtoint_from_iter(from, count, 0, &mask); if (ret) return ret; =20 @@ -2239,8 +2201,8 @@ static ssize_t ath10k_sta_tid_stats_mask_write(struct= file *file, } =20 static const struct file_operations fops_sta_tid_stats_mask =3D { - .read =3D ath10k_sta_tid_stats_mask_read, - .write =3D ath10k_sta_tid_stats_mask_write, + .read_iter =3D ath10k_sta_tid_stats_mask_read, + .write_iter =3D ath10k_sta_tid_stats_mask_write, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, @@ -2317,33 +2279,32 @@ static int ath10k_tpc_stats_final_release(struct in= ode *inode, return 0; } =20 -static ssize_t ath10k_tpc_stats_final_read(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath10k_tpc_stats_final_read(struct kiocb *iocb, + struct iov_iter *to) { - const char *buf =3D file->private_data; + const char *buf =3D iocb->ki_filp->private_data; unsigned int len =3D strlen(buf); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 static const struct file_operations fops_tpc_stats_final =3D { .open =3D ath10k_tpc_stats_final_open, .release =3D ath10k_tpc_stats_final_release, - .read =3D ath10k_tpc_stats_final_read, + .read_iter =3D ath10k_tpc_stats_final_read, .owner =3D THIS_MODULE, .llseek =3D default_llseek, }; =20 -static ssize_t ath10k_write_warm_hw_reset(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath10k_write_warm_hw_reset(struct kiocb *iocb, + struct iov_iter *from) { - struct ath10k *ar =3D file->private_data; + struct ath10k *ar =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); int ret; bool val; =20 - if (kstrtobool_from_user(user_buf, count, &val)) + if (kstrtobool_from_iter(from, count, &val)) return -EFAULT; =20 if (!val) @@ -2372,7 +2333,7 @@ static ssize_t ath10k_write_warm_hw_reset(struct file= *file, } =20 static const struct file_operations fops_warm_hw_reset =3D { - .write =3D ath10k_write_warm_hw_reset, + .write_iter =3D ath10k_write_warm_hw_reset, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, @@ -2389,16 +2350,16 @@ static void ath10k_peer_ps_state_disable(void *data, spin_unlock_bh(&ar->data_lock); } =20 -static ssize_t ath10k_write_ps_state_enable(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath10k_write_ps_state_enable(struct kiocb *iocb, + struct iov_iter *from) { - struct ath10k *ar =3D file->private_data; + struct ath10k *ar =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); int ret; u32 param; u8 ps_state_enable; =20 - if (kstrtou8_from_user(user_buf, count, 0, &ps_state_enable)) + if (kstrtou8_from_iter(from, count, 0, &ps_state_enable)) return -EINVAL; =20 if (ps_state_enable > 1) @@ -2433,11 +2394,10 @@ static ssize_t ath10k_write_ps_state_enable(struct = file *file, return ret; } =20 -static ssize_t ath10k_read_ps_state_enable(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath10k_read_ps_state_enable(struct kiocb *iocb, + struct iov_iter *to) { - struct ath10k *ar =3D file->private_data; + struct ath10k *ar =3D iocb->ki_filp->private_data; int len =3D 0; char buf[32]; =20 @@ -2446,26 +2406,26 @@ static ssize_t ath10k_read_ps_state_enable(struct f= ile *file, ar->ps_state_enable); mutex_unlock(&ar->conf_mutex); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 static const struct file_operations fops_ps_state_enable =3D { - .read =3D ath10k_read_ps_state_enable, - .write =3D ath10k_write_ps_state_enable, + .read_iter =3D ath10k_read_ps_state_enable, + .write_iter =3D ath10k_write_ps_state_enable, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, }; =20 -static ssize_t ath10k_write_reset_htt_stats(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath10k_write_reset_htt_stats(struct kiocb *iocb, + struct iov_iter *from) { - struct ath10k *ar =3D file->private_data; + struct ath10k *ar =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); unsigned long reset; int ret; =20 - ret =3D kstrtoul_from_user(user_buf, count, 0, &reset); + ret =3D kstrtoul_from_iter(from, count, 0, &reset); if (ret) return ret; =20 @@ -2489,7 +2449,7 @@ static ssize_t ath10k_write_reset_htt_stats(struct fi= le *file, } =20 static const struct file_operations fops_reset_htt_stats =3D { - .write =3D ath10k_write_reset_htt_stats, + .write_iter =3D ath10k_write_reset_htt_stats, .owner =3D THIS_MODULE, .open =3D simple_open, .llseek =3D default_llseek, diff --git a/drivers/net/wireless/ath/ath10k/debugfs_sta.c b/drivers/net/wi= reless/ath/ath10k/debugfs_sta.c index 394bf3c32abf..450ccb3b4483 100644 --- a/drivers/net/wireless/ath/ath10k/debugfs_sta.c +++ b/drivers/net/wireless/ath/ath10k/debugfs_sta.c @@ -173,11 +173,10 @@ void ath10k_sta_update_rx_duration(struct ath10k *ar, ath10k_sta_update_stats_rx_duration(ar, stats); } =20 -static ssize_t ath10k_dbg_sta_read_aggr_mode(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath10k_dbg_sta_read_aggr_mode(struct kiocb *iocb, + struct iov_iter *to) { - struct ieee80211_sta *sta =3D file->private_data; + struct ieee80211_sta *sta =3D iocb->ki_filp->private_data; struct ath10k_sta *arsta =3D (struct ath10k_sta *)sta->drv_priv; struct ath10k *ar =3D arsta->arvif->ar; char buf[32]; @@ -189,20 +188,20 @@ static ssize_t ath10k_dbg_sta_read_aggr_mode(struct f= ile *file, "auto" : "manual"); mutex_unlock(&ar->conf_mutex); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 -static ssize_t ath10k_dbg_sta_write_aggr_mode(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath10k_dbg_sta_write_aggr_mode(struct kiocb *iocb, + struct iov_iter *from) { - struct ieee80211_sta *sta =3D file->private_data; + struct ieee80211_sta *sta =3D iocb->ki_filp->private_data; struct ath10k_sta *arsta =3D (struct ath10k_sta *)sta->drv_priv; struct ath10k *ar =3D arsta->arvif->ar; + size_t count =3D iov_iter_count(from); u32 aggr_mode; int ret; =20 - if (kstrtouint_from_user(user_buf, count, 0, &aggr_mode)) + if (kstrtouint_from_iter(from, count, 0, &aggr_mode)) return -EINVAL; =20 if (aggr_mode >=3D ATH10K_DBG_AGGR_MODE_MAX) @@ -228,26 +227,25 @@ static ssize_t ath10k_dbg_sta_write_aggr_mode(struct = file *file, } =20 static const struct file_operations fops_aggr_mode =3D { - .read =3D ath10k_dbg_sta_read_aggr_mode, - .write =3D ath10k_dbg_sta_write_aggr_mode, + .read_iter =3D ath10k_dbg_sta_read_aggr_mode, + .write_iter =3D ath10k_dbg_sta_write_aggr_mode, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, }; =20 -static ssize_t ath10k_dbg_sta_write_addba(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath10k_dbg_sta_write_addba(struct kiocb *iocb, + struct iov_iter *from) { - struct ieee80211_sta *sta =3D file->private_data; + struct ieee80211_sta *sta =3D iocb->ki_filp->private_data; struct ath10k_sta *arsta =3D (struct ath10k_sta *)sta->drv_priv; struct ath10k *ar =3D arsta->arvif->ar; + size_t count =3D iov_iter_count(from); u32 tid, buf_size; int ret; char buf[64] =3D {0}; =20 - ret =3D simple_write_to_buffer(buf, sizeof(buf) - 1, ppos, - user_buf, count); + ret =3D simple_copy_from_iter(buf, &iocb->ki_pos, sizeof(buf) - 1, from); if (ret <=3D 0) return ret; =20 @@ -280,25 +278,24 @@ static ssize_t ath10k_dbg_sta_write_addba(struct file= *file, } =20 static const struct file_operations fops_addba =3D { - .write =3D ath10k_dbg_sta_write_addba, + .write_iter =3D ath10k_dbg_sta_write_addba, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, }; =20 -static ssize_t ath10k_dbg_sta_write_addba_resp(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath10k_dbg_sta_write_addba_resp(struct kiocb *iocb, + struct iov_iter *from) { - struct ieee80211_sta *sta =3D file->private_data; + struct ieee80211_sta *sta =3D iocb->ki_filp->private_data; struct ath10k_sta *arsta =3D (struct ath10k_sta *)sta->drv_priv; struct ath10k *ar =3D arsta->arvif->ar; + size_t count =3D iov_iter_count(from); u32 tid, status; int ret; char buf[64] =3D {0}; =20 - ret =3D simple_write_to_buffer(buf, sizeof(buf) - 1, ppos, - user_buf, count); + ret =3D simple_copy_from_iter(buf, &iocb->ki_pos, sizeof(buf) - 1, from); if (ret <=3D 0) return ret; =20 @@ -330,25 +327,24 @@ static ssize_t ath10k_dbg_sta_write_addba_resp(struct= file *file, } =20 static const struct file_operations fops_addba_resp =3D { - .write =3D ath10k_dbg_sta_write_addba_resp, + .write_iter =3D ath10k_dbg_sta_write_addba_resp, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, }; =20 -static ssize_t ath10k_dbg_sta_write_delba(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath10k_dbg_sta_write_delba(struct kiocb *iocb, + struct iov_iter *from) { - struct ieee80211_sta *sta =3D file->private_data; + struct ieee80211_sta *sta =3D iocb->ki_filp->private_data; struct ath10k_sta *arsta =3D (struct ath10k_sta *)sta->drv_priv; struct ath10k *ar =3D arsta->arvif->ar; + size_t count =3D iov_iter_count(from); u32 tid, initiator, reason; int ret; char buf[64] =3D {0}; =20 - ret =3D simple_write_to_buffer(buf, sizeof(buf) - 1, ppos, - user_buf, count); + ret =3D simple_copy_from_iter(buf, &iocb->ki_pos, sizeof(buf) - 1, from); if (ret <=3D 0) return ret; =20 @@ -381,18 +377,16 @@ static ssize_t ath10k_dbg_sta_write_delba(struct file= *file, } =20 static const struct file_operations fops_delba =3D { - .write =3D ath10k_dbg_sta_write_delba, + .write_iter =3D ath10k_dbg_sta_write_delba, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, }; =20 -static ssize_t ath10k_dbg_sta_read_peer_debug_trigger(struct file *file, - char __user *user_buf, - size_t count, - loff_t *ppos) +static ssize_t ath10k_dbg_sta_read_peer_debug_trigger(struct kiocb *iocb, + struct iov_iter *to) { - struct ieee80211_sta *sta =3D file->private_data; + struct ieee80211_sta *sta =3D iocb->ki_filp->private_data; struct ath10k_sta *arsta =3D (struct ath10k_sta *)sta->drv_priv; struct ath10k *ar =3D arsta->arvif->ar; char buf[8]; @@ -403,21 +397,21 @@ static ssize_t ath10k_dbg_sta_read_peer_debug_trigger= (struct file *file, "Write 1 to once trigger the debug logs\n"); mutex_unlock(&ar->conf_mutex); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 static ssize_t -ath10k_dbg_sta_write_peer_debug_trigger(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +ath10k_dbg_sta_write_peer_debug_trigger(struct kiocb *iocb, + struct iov_iter *from) { - struct ieee80211_sta *sta =3D file->private_data; + struct ieee80211_sta *sta =3D iocb->ki_filp->private_data; struct ath10k_sta *arsta =3D (struct ath10k_sta *)sta->drv_priv; struct ath10k *ar =3D arsta->arvif->ar; + size_t count =3D iov_iter_count(from); u8 peer_debug_trigger; int ret; =20 - if (kstrtou8_from_user(user_buf, count, 0, &peer_debug_trigger)) + if (kstrtou8_from_iter(from, count, 0, &peer_debug_trigger)) return -EINVAL; =20 if (peer_debug_trigger !=3D 1) @@ -444,17 +438,16 @@ ath10k_dbg_sta_write_peer_debug_trigger(struct file *= file, =20 static const struct file_operations fops_peer_debug_trigger =3D { .open =3D simple_open, - .read =3D ath10k_dbg_sta_read_peer_debug_trigger, - .write =3D ath10k_dbg_sta_write_peer_debug_trigger, + .read_iter =3D ath10k_dbg_sta_read_peer_debug_trigger, + .write_iter =3D ath10k_dbg_sta_write_peer_debug_trigger, .owner =3D THIS_MODULE, .llseek =3D default_llseek, }; =20 -static ssize_t ath10k_dbg_sta_read_peer_ps_state(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath10k_dbg_sta_read_peer_ps_state(struct kiocb *iocb, + struct iov_iter *to) { - struct ieee80211_sta *sta =3D file->private_data; + struct ieee80211_sta *sta =3D iocb->ki_filp->private_data; struct ath10k_sta *arsta =3D (struct ath10k_sta *)sta->drv_priv; struct ath10k *ar =3D arsta->arvif->ar; char buf[20]; @@ -467,12 +460,12 @@ static ssize_t ath10k_dbg_sta_read_peer_ps_state(stru= ct file *file, =20 spin_unlock_bh(&ar->data_lock); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 static const struct file_operations fops_peer_ps_state =3D { .open =3D simple_open, - .read =3D ath10k_dbg_sta_read_peer_ps_state, + .read_iter =3D ath10k_dbg_sta_read_peer_ps_state, .owner =3D THIS_MODULE, .llseek =3D default_llseek, }; @@ -560,11 +553,10 @@ static char *get_num_amsdu_subfrm_str(enum ath10k_ams= du_subfrm_num i) len +=3D scnprintf(buf + len, buf_len - len, "\n"); \ } while (0) =20 -static ssize_t ath10k_dbg_sta_read_tid_stats(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath10k_dbg_sta_read_tid_stats(struct kiocb *iocb, + struct iov_iter *to) { - struct ieee80211_sta *sta =3D file->private_data; + struct ieee80211_sta *sta =3D iocb->ki_filp->private_data; struct ath10k_sta *arsta =3D (struct ath10k_sta *)sta->drv_priv; struct ath10k *ar =3D arsta->arvif->ar; struct ath10k_sta_tid_stats *stats =3D arsta->tid_stats; @@ -627,7 +619,7 @@ static ssize_t ath10k_dbg_sta_read_tid_stats(struct fil= e *file, =20 spin_unlock_bh(&ar->data_lock); =20 - ret =3D simple_read_from_buffer(user_buf, count, ppos, buf, len); + ret =3D simple_copy_to_iter(buf, &iocb->ki_pos, len, to); =20 kfree(buf); =20 @@ -638,16 +630,15 @@ static ssize_t ath10k_dbg_sta_read_tid_stats(struct f= ile *file, =20 static const struct file_operations fops_tid_stats_dump =3D { .open =3D simple_open, - .read =3D ath10k_dbg_sta_read_tid_stats, + .read_iter =3D ath10k_dbg_sta_read_tid_stats, .owner =3D THIS_MODULE, .llseek =3D default_llseek, }; =20 -static ssize_t ath10k_dbg_sta_dump_tx_stats(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath10k_dbg_sta_dump_tx_stats(struct kiocb *iocb, + struct iov_iter *to) { - struct ieee80211_sta *sta =3D file->private_data; + struct ieee80211_sta *sta =3D iocb->ki_filp->private_data; struct ath10k_sta *arsta =3D (struct ath10k_sta *)sta->drv_priv; struct ath10k *ar =3D arsta->arvif->ar; struct ath10k_htt_data_stats *stats; @@ -741,7 +732,7 @@ static ssize_t ath10k_dbg_sta_dump_tx_stats(struct file= *file, =20 if (len > size) len =3D size; - retval =3D simple_read_from_buffer(user_buf, count, ppos, buf, len); + retval =3D simple_copy_to_iter(buf, &iocb->ki_pos, len, to); kfree(buf); =20 mutex_unlock(&ar->conf_mutex); @@ -749,7 +740,7 @@ static ssize_t ath10k_dbg_sta_dump_tx_stats(struct file= *file, } =20 static const struct file_operations fops_tx_stats =3D { - .read =3D ath10k_dbg_sta_dump_tx_stats, + .read_iter =3D ath10k_dbg_sta_dump_tx_stats, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, diff --git a/drivers/net/wireless/ath/ath10k/spectral.c b/drivers/net/wirel= ess/ath/ath10k/spectral.c index 2240994390ed..b427749a3c63 100644 --- a/drivers/net/wireless/ath/ath10k/spectral.c +++ b/drivers/net/wireless/ath/ath10k/spectral.c @@ -270,10 +270,9 @@ static int ath10k_spectral_scan_config(struct ath10k *= ar, return 0; } =20 -static ssize_t read_file_spec_scan_ctl(struct file *file, char __user *use= r_buf, - size_t count, loff_t *ppos) +static ssize_t read_file_spec_scan_ctl(struct kiocb *iocb, struct iov_iter= *to) { - struct ath10k *ar =3D file->private_data; + struct ath10k *ar =3D iocb->ki_filp->private_data; char *mode =3D ""; size_t len; enum ath10k_spectral_mode spectral_mode; @@ -295,20 +294,20 @@ static ssize_t read_file_spec_scan_ctl(struct file *f= ile, char __user *user_buf, } =20 len =3D strlen(mode); - return simple_read_from_buffer(user_buf, count, ppos, mode, len); + return simple_copy_to_iter(mode, &iocb->ki_pos, len, to); } =20 -static ssize_t write_file_spec_scan_ctl(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t write_file_spec_scan_ctl(struct kiocb *iocb, + struct iov_iter *from) { - struct ath10k *ar =3D file->private_data; + struct ath10k *ar =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); char buf[32]; ssize_t len; int res; =20 len =3D min(count, sizeof(buf) - 1); - if (copy_from_user(buf, user_buf, len)) + if (!copy_from_iter_full(buf, len, from)) return -EFAULT; =20 buf[len] =3D '\0'; @@ -354,18 +353,16 @@ static ssize_t write_file_spec_scan_ctl(struct file *= file, } =20 static const struct file_operations fops_spec_scan_ctl =3D { - .read =3D read_file_spec_scan_ctl, - .write =3D write_file_spec_scan_ctl, + .read_iter =3D read_file_spec_scan_ctl, + .write_iter =3D write_file_spec_scan_ctl, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, }; =20 -static ssize_t read_file_spectral_count(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t read_file_spectral_count(struct kiocb *iocb, struct iov_ite= r *to) { - struct ath10k *ar =3D file->private_data; + struct ath10k *ar =3D iocb->ki_filp->private_data; char buf[32]; size_t len; u8 spectral_count; @@ -375,18 +372,18 @@ static ssize_t read_file_spectral_count(struct file *= file, mutex_unlock(&ar->conf_mutex); =20 len =3D sprintf(buf, "%d\n", spectral_count); - return simple_read_from_buffer(user_buf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 -static ssize_t write_file_spectral_count(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t write_file_spectral_count(struct kiocb *iocb, + struct iov_iter *from) { - struct ath10k *ar =3D file->private_data; + struct ath10k *ar =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); unsigned long val; ssize_t ret; =20 - ret =3D kstrtoul_from_user(user_buf, count, 0, &val); + ret =3D kstrtoul_from_iter(from, count, 0, &val); if (ret) return ret; =20 @@ -401,18 +398,16 @@ static ssize_t write_file_spectral_count(struct file = *file, } =20 static const struct file_operations fops_spectral_count =3D { - .read =3D read_file_spectral_count, - .write =3D write_file_spectral_count, + .read_iter =3D read_file_spectral_count, + .write_iter =3D write_file_spectral_count, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, }; =20 -static ssize_t read_file_spectral_bins(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t read_file_spectral_bins(struct kiocb *iocb, struct iov_iter= *to) { - struct ath10k *ar =3D file->private_data; + struct ath10k *ar =3D iocb->ki_filp->private_data; char buf[32]; unsigned int bins, fft_size, bin_scale; size_t len; @@ -426,18 +421,18 @@ static ssize_t read_file_spectral_bins(struct file *f= ile, mutex_unlock(&ar->conf_mutex); =20 len =3D sprintf(buf, "%d\n", bins); - return simple_read_from_buffer(user_buf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 -static ssize_t write_file_spectral_bins(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t write_file_spectral_bins(struct kiocb *iocb, + struct iov_iter *from) { - struct ath10k *ar =3D file->private_data; + struct ath10k *ar =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); unsigned long val; ssize_t ret; =20 - ret =3D kstrtoul_from_user(user_buf, count, 0, &val); + ret =3D kstrtoul_from_iter(from, count, 0, &val); if (ret) return ret; =20 @@ -456,8 +451,8 @@ static ssize_t write_file_spectral_bins(struct file *fi= le, } =20 static const struct file_operations fops_spectral_bins =3D { - .read =3D read_file_spectral_bins, - .write =3D write_file_spectral_bins, + .read_iter =3D read_file_spectral_bins, + .write_iter =3D write_file_spectral_bins, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f45.google.com (mail-io1-f45.google.com [209.85.166.45]) (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 4F02F1D7811 for ; Thu, 11 Apr 2024 15:40:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850014; cv=none; b=UYa1ifJ4UBbgJ7R/vDnykvNRQEJ+I7TV2cRyQQKeDTeltzwFfnMHCR1AbSnzYRmVT42K21VJe+QMBBL3suJhEtb0h9j5IDOQWI3xYpAWm+rtkTkppzH5uea2hSnUneiJgC1mZuxQw7cnVx83koQ32Hsls4weP48VK5VWr2MAA9o= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850014; c=relaxed/simple; bh=aMIu88ekLdpGefs281zUQd0O7lgEl6t9BsqODys3j3k=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=JwGdV2aH7zfAqNstolgu+uPhHd3Bmndr1VkmfiVHin/fKdV7B1HSQI4IV4bdOgTqzaBTLbu7ySzt85Asidg8qbHioFcEliKSoKIFLRsCMX7d8Ym4GecvKc3wUv2iEnD2xJDLgzv2hK53fbPbUs7pEDY0QJp6XWupBl+cF+0vWpM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=co53fNnp; arc=none smtp.client-ip=209.85.166.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="co53fNnp" Received: by mail-io1-f45.google.com with SMTP id ca18e2360f4ac-7cc0e831e11so170595839f.1 for ; Thu, 11 Apr 2024 08:40:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850009; x=1713454809; 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=sLS1F+lzQWz9fDSFE2ynAHTkTSFoTgkuE1xLnmiMzws=; b=co53fNnpTwJMZkstBb+zS/UrmI23l5v2cMLCqP+OX1tbsqw/6839OSaKc67m8FMdXA 0OEBEhsTaqro7Fn0X8HBi7b251vnDDX9+gm8Bw/nFQicBMDsfArbF9zHJ/94tOxf5nEw 8LYUS05UrwZ1mjhggsP7j7xK1Fd6hD5dTSeyCnYkWkVWGg5M9PF1gs3glAjPT8CPXHo3 dEciZbMJ46qc24j5NPLtaaikTlfjTW1XlPQjpZfML/1Sd6O5bTsmfCOw+JsC17ZBF2Jw 9vqiYW0Wp4wlYpVqtZlcf+HKao/nQCofxMOueiCtsAEdYZQxVrP6B8tCb/MgHNQtr42W 1hew== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850009; x=1713454809; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=sLS1F+lzQWz9fDSFE2ynAHTkTSFoTgkuE1xLnmiMzws=; b=vdGRVJ5x4x8cLMOyIFPHLTS4XY7ShDFxDvkYaNPKRbt6II03QNjxOg7i5CPGImwbtS Y42agVN3Fc7GQ2RbQrU+ybS9YPxyJZYOhR48gtzQmElheZkfz68mN9ZXQZ9sZIIEcuS/ xtkWhJ+mJLwtKO1CmEypBQt5qDzca7gAJlGcShBBCrBmPxj4njGmhmIM6uCZra6MTJ7h QHTNL8OlLVAH39kgOCXTGv5ibSzhO1vF9GNnNVFXLcSVveyzNB8+a5AgofwmaDFhhUou sYld/NrPiy7tiKbadAhhcekfxdkyRNV+2I85ZKUpsweIUx7xtvYh2z8IrhmrbRRuoajs S5aA== X-Gm-Message-State: AOJu0YzENEZdGzXKeW1qclqgSXqKvVpdDVE9j+7aGn8B7XncSt317Cez xbfmKdY14v1xT0ultHk11jw6Yw4S6/mM+NUbNsCuiXf380G1jlY5YG/V5V71xQ5WQbi3xwmSz/0 W X-Google-Smtp-Source: AGHT+IEVWVB1EmPB7xrC+dIzqJm9JI6bs969ROu6ucoqkEIDuxGRiyt2EC3UXHphBFsjEA7v/mfIGQ== X-Received: by 2002:a5e:9907:0:b0:7d6:751f:192 with SMTP id t7-20020a5e9907000000b007d6751f0192mr191323ioj.2.1712850007453; Thu, 11 Apr 2024 08:40:07 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.40.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:40:06 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 305/437] drivers/net/wireless/ath/ath11k: convert to read/write iterators Date: Thu, 11 Apr 2024 09:17:25 -0600 Message-ID: <20240411153126.16201-306-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/net/wireless/ath/ath11k/debugfs.c | 300 ++++++++---------- .../wireless/ath/ath11k/debugfs_htt_stats.c | 56 ++-- drivers/net/wireless/ath/ath11k/debugfs_sta.c | 163 +++++----- drivers/net/wireless/ath/ath11k/spectral.c | 69 ++-- 4 files changed, 274 insertions(+), 314 deletions(-) diff --git a/drivers/net/wireless/ath/ath11k/debugfs.c b/drivers/net/wirele= ss/ath/ath11k/debugfs.c index a48e737ef35d..f51afdf83a89 100644 --- a/drivers/net/wireless/ath/ath11k/debugfs.c +++ b/drivers/net/wireless/ath/ath11k/debugfs.c @@ -296,20 +296,18 @@ static int ath11k_release_pdev_stats(struct inode *in= ode, struct file *file) return 0; } =20 -static ssize_t ath11k_read_pdev_stats(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath11k_read_pdev_stats(struct kiocb *iocb, struct iov_iter = *to) { - const char *buf =3D file->private_data; + const char *buf =3D iocb->ki_filp->private_data; size_t len =3D strlen(buf); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 static const struct file_operations fops_pdev_stats =3D { .open =3D ath11k_open_pdev_stats, .release =3D ath11k_release_pdev_stats, - .read =3D ath11k_read_pdev_stats, + .read_iter =3D ath11k_read_pdev_stats, .owner =3D THIS_MODULE, .llseek =3D default_llseek, }; @@ -367,20 +365,18 @@ static int ath11k_release_vdev_stats(struct inode *in= ode, struct file *file) return 0; } =20 -static ssize_t ath11k_read_vdev_stats(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath11k_read_vdev_stats(struct kiocb *iocb, struct iov_iter = *to) { - const char *buf =3D file->private_data; + const char *buf =3D iocb->ki_filp->private_data; size_t len =3D strlen(buf); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 static const struct file_operations fops_vdev_stats =3D { .open =3D ath11k_open_vdev_stats, .release =3D ath11k_release_vdev_stats, - .read =3D ath11k_read_vdev_stats, + .read_iter =3D ath11k_read_vdev_stats, .owner =3D THIS_MODULE, .llseek =3D default_llseek, }; @@ -451,34 +447,31 @@ static int ath11k_release_bcn_stats(struct inode *ino= de, struct file *file) return 0; } =20 -static ssize_t ath11k_read_bcn_stats(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath11k_read_bcn_stats(struct kiocb *iocb, struct iov_iter *= to) { - const char *buf =3D file->private_data; + const char *buf =3D iocb->ki_filp->private_data; size_t len =3D strlen(buf); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 static const struct file_operations fops_bcn_stats =3D { .open =3D ath11k_open_bcn_stats, .release =3D ath11k_release_bcn_stats, - .read =3D ath11k_read_bcn_stats, + .read_iter =3D ath11k_read_bcn_stats, .owner =3D THIS_MODULE, .llseek =3D default_llseek, }; =20 -static ssize_t ath11k_read_simulate_fw_crash(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath11k_read_simulate_fw_crash(struct kiocb *iocb, + struct iov_iter *to) { const char buf[] =3D "To simulate firmware crash write one of the keywords to this file:\n" "`assert` - this will send WMI_FORCE_FW_HANG_CMDID to firmware to cause = assert.\n" "`hw-restart` - this will simply queue hw restart without fw/hw actually= crashing.\n"; =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, strlen(buf)); + return simple_copy_to_iter(buf, &iocb->ki_pos, strlen(buf), to); } =20 /* Simulate firmware crash: @@ -488,11 +481,11 @@ static ssize_t ath11k_read_simulate_fw_crash(struct f= ile *file, * vdev id. This is hard firmware crash because it is recoverable only by = cold * firmware reset. */ -static ssize_t ath11k_write_simulate_fw_crash(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath11k_write_simulate_fw_crash(struct kiocb *iocb, + struct iov_iter *from) { - struct ath11k_base *ab =3D file->private_data; + struct ath11k_base *ab =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); struct ath11k_pdev *pdev; struct ath11k *ar =3D ab->pdevs[0].ar; char buf[32] =3D {0}; @@ -508,16 +501,16 @@ static ssize_t ath11k_write_simulate_fw_crash(struct = file *file, } } /* filter partial writes and invalid commands */ - if (*ppos !=3D 0 || count >=3D sizeof(buf) || count =3D=3D 0) + if (iocb->ki_pos !=3D 0 || count >=3D sizeof(buf) || count =3D=3D 0) return -EINVAL; =20 - rc =3D simple_write_to_buffer(buf, sizeof(buf) - 1, ppos, user_buf, count= ); + rc =3D simple_copy_from_iter(buf, &iocb->ki_pos, sizeof(buf) - 1, from); if (rc < 0) return rc; =20 /* drop the possible '\n' from the end */ - if (buf[*ppos - 1] =3D=3D '\n') - buf[*ppos - 1] =3D '\0'; + if (buf[iocb->ki_pos - 1] =3D=3D '\n') + buf[iocb->ki_pos - 1] =3D '\0'; =20 if (radioup =3D=3D 0) { ret =3D -ENETDOWN; @@ -550,22 +543,22 @@ static ssize_t ath11k_write_simulate_fw_crash(struct = file *file, } =20 static const struct file_operations fops_simulate_fw_crash =3D { - .read =3D ath11k_read_simulate_fw_crash, - .write =3D ath11k_write_simulate_fw_crash, + .read_iter =3D ath11k_read_simulate_fw_crash, + .write_iter =3D ath11k_write_simulate_fw_crash, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, }; =20 -static ssize_t ath11k_write_enable_extd_tx_stats(struct file *file, - const char __user *ubuf, - size_t count, loff_t *ppos) +static ssize_t ath11k_write_enable_extd_tx_stats(struct kiocb *iocb, + struct iov_iter *from) { - struct ath11k *ar =3D file->private_data; + struct ath11k *ar =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); u32 filter; int ret; =20 - if (kstrtouint_from_user(ubuf, count, 0, &filter)) + if (kstrtouint_from_iter(from, count, 0, &filter)) return -EINVAL; =20 mutex_lock(&ar->conf_mutex); @@ -588,13 +581,11 @@ static ssize_t ath11k_write_enable_extd_tx_stats(stru= ct file *file, return ret; } =20 -static ssize_t ath11k_read_enable_extd_tx_stats(struct file *file, - char __user *ubuf, - size_t count, loff_t *ppos) - +static ssize_t ath11k_read_enable_extd_tx_stats(struct kiocb *iocb, + struct iov_iter *to) { char buf[32] =3D {0}; - struct ath11k *ar =3D file->private_data; + struct ath11k *ar =3D iocb->ki_filp->private_data; int len =3D 0; =20 mutex_lock(&ar->conf_mutex); @@ -602,27 +593,27 @@ static ssize_t ath11k_read_enable_extd_tx_stats(struc= t file *file, ar->debug.extd_tx_stats); mutex_unlock(&ar->conf_mutex); =20 - return simple_read_from_buffer(ubuf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 static const struct file_operations fops_extd_tx_stats =3D { - .read =3D ath11k_read_enable_extd_tx_stats, - .write =3D ath11k_write_enable_extd_tx_stats, + .read_iter =3D ath11k_read_enable_extd_tx_stats, + .write_iter =3D ath11k_write_enable_extd_tx_stats, .open =3D simple_open }; =20 -static ssize_t ath11k_write_extd_rx_stats(struct file *file, - const char __user *ubuf, - size_t count, loff_t *ppos) +static ssize_t ath11k_write_extd_rx_stats(struct kiocb *iocb, + struct iov_iter *from) { - struct ath11k *ar =3D file->private_data; + struct ath11k *ar =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); struct ath11k_base *ab =3D ar->ab; struct htt_rx_ring_tlv_filter tlv_filter =3D {0}; u32 enable, rx_filter =3D 0, ring_id; int i; int ret; =20 - if (kstrtouint_from_user(ubuf, count, 0, &enable)) + if (kstrtouint_from_iter(from, count, 0, &enable)) return -EINVAL; =20 mutex_lock(&ar->conf_mutex); @@ -687,11 +678,9 @@ static ssize_t ath11k_write_extd_rx_stats(struct file = *file, return ret; } =20 -static ssize_t ath11k_read_extd_rx_stats(struct file *file, - char __user *ubuf, - size_t count, loff_t *ppos) +static ssize_t ath11k_read_extd_rx_stats(struct kiocb *iocb, struct iov_it= er *to) { - struct ath11k *ar =3D file->private_data; + struct ath11k *ar =3D iocb->ki_filp->private_data; char buf[32]; int len =3D 0; =20 @@ -700,12 +689,12 @@ static ssize_t ath11k_read_extd_rx_stats(struct file = *file, ar->debug.extd_rx_stats); mutex_unlock(&ar->conf_mutex); =20 - return simple_read_from_buffer(ubuf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 static const struct file_operations fops_extd_rx_stats =3D { - .read =3D ath11k_read_extd_rx_stats, - .write =3D ath11k_write_extd_rx_stats, + .read_iter =3D ath11k_read_extd_rx_stats, + .write_iter =3D ath11k_write_extd_rx_stats, .open =3D simple_open, }; =20 @@ -775,11 +764,10 @@ static ssize_t ath11k_debugfs_dump_soc_ring_bp_stats(= struct ath11k_base *ab, return len; } =20 -static ssize_t ath11k_debugfs_dump_soc_dp_stats(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath11k_debugfs_dump_soc_dp_stats(struct kiocb *iocb, + struct iov_iter *to) { - struct ath11k_base *ab =3D file->private_data; + struct ath11k_base *ab =3D iocb->ki_filp->private_data; struct ath11k_soc_dp_stats *soc_stats =3D &ab->soc_stats; int len =3D 0, i, retval; const int size =3D 4096; @@ -839,32 +827,30 @@ static ssize_t ath11k_debugfs_dump_soc_dp_stats(struc= t file *file, =20 if (len > size) len =3D size; - retval =3D simple_read_from_buffer(user_buf, count, ppos, buf, len); + retval =3D simple_copy_to_iter(buf, &iocb->ki_pos, len, to); kfree(buf); =20 return retval; } =20 static const struct file_operations fops_soc_dp_stats =3D { - .read =3D ath11k_debugfs_dump_soc_dp_stats, + .read_iter =3D ath11k_debugfs_dump_soc_dp_stats, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, }; =20 -static ssize_t ath11k_write_fw_dbglog(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath11k_write_fw_dbglog(struct kiocb *iocb, struct iov_iter = *from) { - struct ath11k *ar =3D file->private_data; + struct ath11k *ar =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); char buf[128] =3D {0}; struct ath11k_fw_dbglog dbglog; unsigned int param, mod_id_index, is_end; u64 value; int ret, num; =20 - ret =3D simple_write_to_buffer(buf, sizeof(buf) - 1, ppos, - user_buf, count); + ret =3D simple_copy_from_iter(buf, &iocb->ki_pos, sizeof(buf) - 1, from); if (ret <=3D 0) return ret; =20 @@ -909,7 +895,7 @@ static ssize_t ath11k_write_fw_dbglog(struct file *file, } =20 static const struct file_operations fops_fw_dbglog =3D { - .write =3D ath11k_write_fw_dbglog, + .write_iter =3D ath11k_write_fw_dbglog, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, @@ -940,12 +926,10 @@ static int ath11k_open_sram_dump(struct inode *inode,= struct file *file) return 0; } =20 -static ssize_t ath11k_read_sram_dump(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath11k_read_sram_dump(struct kiocb *iocb, struct iov_iter *= to) { - struct ath11k_base *ab =3D file->f_inode->i_private; - const char *buf =3D file->private_data; + struct ath11k_base *ab =3D iocb->ki_filp->f_inode->i_private; + const char *buf =3D iocb->ki_filp->private_data; int len; u32 start, end; =20 @@ -953,7 +937,7 @@ static ssize_t ath11k_read_sram_dump(struct file *file, end =3D ab->hw_params.sram_dump.end; len =3D end - start + 1; =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 static int ath11k_release_sram_dump(struct inode *inode, struct file *file) @@ -966,7 +950,7 @@ static int ath11k_release_sram_dump(struct inode *inode= , struct file *file) =20 static const struct file_operations fops_sram_dump =3D { .open =3D ath11k_open_sram_dump, - .read =3D ath11k_read_sram_dump, + .read_iter =3D ath11k_read_sram_dump, .release =3D ath11k_release_sram_dump, .owner =3D THIS_MODULE, .llseek =3D default_llseek, @@ -1064,11 +1048,11 @@ void ath11k_debugfs_fw_stats_init(struct ath11k *ar) &fops_bcn_stats); } =20 -static ssize_t ath11k_write_pktlog_filter(struct file *file, - const char __user *ubuf, - size_t count, loff_t *ppos) +static ssize_t ath11k_write_pktlog_filter(struct kiocb *iocb, + struct iov_iter *from) { - struct ath11k *ar =3D file->private_data; + struct ath11k *ar =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); struct ath11k_base *ab =3D ar->ab; struct htt_rx_ring_tlv_filter tlv_filter =3D {0}; u32 rx_filter =3D 0, ring_id, filter, mode; @@ -1082,7 +1066,7 @@ static ssize_t ath11k_write_pktlog_filter(struct file= *file, goto out; } =20 - rc =3D simple_write_to_buffer(buf, sizeof(buf) - 1, ppos, ubuf, count); + rc =3D simple_copy_from_iter(buf, &iocb->ki_pos, sizeof(buf) - 1, from); if (rc < 0) { ret =3D rc; goto out; @@ -1196,13 +1180,12 @@ static ssize_t ath11k_write_pktlog_filter(struct fi= le *file, return ret; } =20 -static ssize_t ath11k_read_pktlog_filter(struct file *file, - char __user *ubuf, - size_t count, loff_t *ppos) +static ssize_t ath11k_read_pktlog_filter(struct kiocb *iocb, + struct iov_iter *to) =20 { char buf[32] =3D {0}; - struct ath11k *ar =3D file->private_data; + struct ath11k *ar =3D iocb->ki_filp->private_data; int len =3D 0; =20 mutex_lock(&ar->conf_mutex); @@ -1211,20 +1194,20 @@ static ssize_t ath11k_read_pktlog_filter(struct fil= e *file, ar->debug.pktlog_mode); mutex_unlock(&ar->conf_mutex); =20 - return simple_read_from_buffer(ubuf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 static const struct file_operations fops_pktlog_filter =3D { - .read =3D ath11k_read_pktlog_filter, - .write =3D ath11k_write_pktlog_filter, + .read_iter =3D ath11k_read_pktlog_filter, + .write_iter =3D ath11k_write_pktlog_filter, .open =3D simple_open }; =20 -static ssize_t ath11k_write_simulate_radar(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath11k_write_simulate_radar(struct kiocb *iocb, + struct iov_iter *from) { - struct ath11k *ar =3D file->private_data; + struct ath11k *ar =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); int ret; =20 ret =3D ath11k_wmi_simulate_radar(ar); @@ -1235,15 +1218,14 @@ static ssize_t ath11k_write_simulate_radar(struct f= ile *file, } =20 static const struct file_operations fops_simulate_radar =3D { - .write =3D ath11k_write_simulate_radar, + .write_iter =3D ath11k_write_simulate_radar, .open =3D simple_open }; =20 -static ssize_t ath11k_debug_dump_dbr_entries(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath11k_debug_dump_dbr_entries(struct kiocb *iocb, + struct iov_iter *to) { - struct ath11k_dbg_dbr_data *dbr_dbg_data =3D file->private_data; + struct ath11k_dbg_dbr_data *dbr_dbg_data =3D iocb->ki_filp->private_data; static const char * const event_id_to_string[] =3D {"empty", "Rx", "Reple= nish"}; int size =3D ATH11K_DEBUG_DBR_ENTRIES_MAX * 100; char *buf; @@ -1274,14 +1256,14 @@ static ssize_t ath11k_debug_dump_dbr_entries(struct= file *file, =20 spin_unlock_bh(&dbr_dbg_data->lock); =20 - ret =3D simple_read_from_buffer(user_buf, count, ppos, buf, len); + ret =3D simple_copy_to_iter(buf, &iocb->ki_pos, len, to); kfree(buf); =20 return ret; } =20 static const struct file_operations fops_debug_dump_dbr_entries =3D { - .read =3D ath11k_debug_dump_dbr_entries, + .read_iter =3D ath11k_debug_dump_dbr_entries, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, @@ -1350,11 +1332,11 @@ static int ath11k_debugfs_dbr_dbg_init(struct ath11= k *ar, int dbr_id) return 0; } =20 -static ssize_t ath11k_debugfs_write_enable_dbr_dbg(struct file *file, - const char __user *ubuf, - size_t count, loff_t *ppos) +static ssize_t ath11k_debugfs_write_enable_dbr_dbg(struct kiocb *iocb, + struct iov_iter *from) { - struct ath11k *ar =3D file->private_data; + struct ath11k *ar =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); char buf[32] =3D {0}; u32 dbr_id, enable; int ret; @@ -1366,7 +1348,7 @@ static ssize_t ath11k_debugfs_write_enable_dbr_dbg(st= ruct file *file, goto out; } =20 - ret =3D simple_write_to_buffer(buf, sizeof(buf) - 1, ppos, ubuf, count); + ret =3D simple_copy_from_iter(buf, &iocb->ki_pos, sizeof(buf) - 1, from); if (ret < 0) goto out; =20 @@ -1396,21 +1378,21 @@ static ssize_t ath11k_debugfs_write_enable_dbr_dbg(= struct file *file, } =20 static const struct file_operations fops_dbr_debug =3D { - .write =3D ath11k_debugfs_write_enable_dbr_dbg, + .write_iter =3D ath11k_debugfs_write_enable_dbr_dbg, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, }; =20 -static ssize_t ath11k_write_ps_timekeeper_enable(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath11k_write_ps_timekeeper_enable(struct kiocb *iocb, + struct iov_iter *from) { - struct ath11k *ar =3D file->private_data; + struct ath11k *ar =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); ssize_t ret; u8 ps_timekeeper_enable; =20 - if (kstrtou8_from_user(user_buf, count, 0, &ps_timekeeper_enable)) + if (kstrtou8_from_iter(from, count, 0, &ps_timekeeper_enable)) return -EINVAL; =20 mutex_lock(&ar->conf_mutex); @@ -1433,11 +1415,10 @@ static ssize_t ath11k_write_ps_timekeeper_enable(st= ruct file *file, return ret; } =20 -static ssize_t ath11k_read_ps_timekeeper_enable(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath11k_read_ps_timekeeper_enable(struct kiocb *iocb, + struct iov_iter *to) { - struct ath11k *ar =3D file->private_data; + struct ath11k *ar =3D iocb->ki_filp->private_data; char buf[32]; int len; =20 @@ -1445,12 +1426,12 @@ static ssize_t ath11k_read_ps_timekeeper_enable(str= uct file *file, len =3D scnprintf(buf, sizeof(buf), "%d\n", ar->ps_timekeeper_enable); mutex_unlock(&ar->conf_mutex); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 static const struct file_operations fops_ps_timekeeper_enable =3D { - .read =3D ath11k_read_ps_timekeeper_enable, - .write =3D ath11k_write_ps_timekeeper_enable, + .read_iter =3D ath11k_read_ps_timekeeper_enable, + .write_iter =3D ath11k_write_ps_timekeeper_enable, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, @@ -1467,15 +1448,15 @@ static void ath11k_reset_peer_ps_duration(void *dat= a, spin_unlock_bh(&ar->data_lock); } =20 -static ssize_t ath11k_write_reset_ps_duration(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath11k_write_reset_ps_duration(struct kiocb *iocb, + struct iov_iter *from) { - struct ath11k *ar =3D file->private_data; + struct ath11k *ar =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); int ret; u8 reset_ps_duration; =20 - if (kstrtou8_from_user(user_buf, count, 0, &reset_ps_duration)) + if (kstrtou8_from_iter(from, count, 0, &reset_ps_duration)) return -EINVAL; =20 mutex_lock(&ar->conf_mutex); @@ -1501,7 +1482,7 @@ static ssize_t ath11k_write_reset_ps_duration(struct = file *file, } =20 static const struct file_operations fops_reset_ps_duration =3D { - .write =3D ath11k_write_reset_ps_duration, + .write_iter =3D ath11k_write_reset_ps_duration, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, @@ -1520,17 +1501,17 @@ static void ath11k_peer_ps_state_disable(void *data, spin_unlock_bh(&ar->data_lock); } =20 -static ssize_t ath11k_write_ps_state_enable(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath11k_write_ps_state_enable(struct kiocb *iocb, + struct iov_iter *from) { - struct ath11k *ar =3D file->private_data; + struct ath11k *ar =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); struct ath11k_pdev *pdev =3D ar->pdev; int ret; u32 param; u8 ps_state_enable; =20 - if (kstrtou8_from_user(user_buf, count, 0, &ps_state_enable)) + if (kstrtou8_from_iter(from, count, 0, &ps_state_enable)) return -EINVAL; =20 mutex_lock(&ar->conf_mutex); @@ -1566,11 +1547,10 @@ static ssize_t ath11k_write_ps_state_enable(struct = file *file, return ret; } =20 -static ssize_t ath11k_read_ps_state_enable(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath11k_read_ps_state_enable(struct kiocb *iocb, + struct iov_iter *to) { - struct ath11k *ar =3D file->private_data; + struct ath11k *ar =3D iocb->ki_filp->private_data; char buf[32]; int len; =20 @@ -1578,12 +1558,12 @@ static ssize_t ath11k_read_ps_state_enable(struct f= ile *file, len =3D scnprintf(buf, sizeof(buf), "%d\n", ar->ps_state_enable); mutex_unlock(&ar->conf_mutex); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 static const struct file_operations fops_ps_state_enable =3D { - .read =3D ath11k_read_ps_state_enable, - .write =3D ath11k_write_ps_state_enable, + .read_iter =3D ath11k_read_ps_state_enable, + .write_iter =3D ath11k_write_ps_state_enable, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, @@ -1671,13 +1651,13 @@ void ath11k_debugfs_unregister(struct ath11k *ar) } } =20 -static ssize_t ath11k_write_twt_add_dialog(struct file *file, - const char __user *ubuf, - size_t count, loff_t *ppos) +static ssize_t ath11k_write_twt_add_dialog(struct kiocb *iocb, + struct iov_iter *from) { - struct ath11k_vif *arvif =3D file->private_data; + struct ath11k_vif *arvif =3D iocb->ki_filp->private_data; struct wmi_twt_add_dialog_params params =3D { 0 }; struct wmi_twt_enable_params twt_params =3D {0}; + size_t count =3D iov_iter_count(from); struct ath11k *ar =3D arvif->ar; u8 buf[128] =3D {0}; int ret; @@ -1687,7 +1667,7 @@ static ssize_t ath11k_write_twt_add_dialog(struct fil= e *file, return -EOPNOTSUPP; } =20 - ret =3D simple_write_to_buffer(buf, sizeof(buf) - 1, ppos, ubuf, count); + ret =3D simple_copy_from_iter(buf, &iocb->ki_pos, sizeof(buf) - 1, from); if (ret < 0) return ret; =20 @@ -1747,11 +1727,11 @@ static ssize_t ath11k_write_twt_add_dialog(struct f= ile *file, return ret; } =20 -static ssize_t ath11k_write_twt_del_dialog(struct file *file, - const char __user *ubuf, - size_t count, loff_t *ppos) +static ssize_t ath11k_write_twt_del_dialog(struct kiocb *iocb, + struct iov_iter *from) { - struct ath11k_vif *arvif =3D file->private_data; + struct ath11k_vif *arvif =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); struct wmi_twt_del_dialog_params params =3D { 0 }; struct wmi_twt_enable_params twt_params =3D {0}; struct ath11k *ar =3D arvif->ar; @@ -1763,7 +1743,7 @@ static ssize_t ath11k_write_twt_del_dialog(struct fil= e *file, return -EOPNOTSUPP; } =20 - ret =3D simple_write_to_buffer(buf, sizeof(buf) - 1, ppos, ubuf, count); + ret =3D simple_copy_from_iter(buf, &iocb->ki_pos, sizeof(buf) - 1, from); if (ret < 0) return ret; =20 @@ -1794,11 +1774,11 @@ static ssize_t ath11k_write_twt_del_dialog(struct f= ile *file, return count; } =20 -static ssize_t ath11k_write_twt_pause_dialog(struct file *file, - const char __user *ubuf, - size_t count, loff_t *ppos) +static ssize_t ath11k_write_twt_pause_dialog(struct kiocb *iocb, + struct iov_iter *from) { - struct ath11k_vif *arvif =3D file->private_data; + struct ath11k_vif *arvif =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); struct wmi_twt_pause_dialog_params params =3D { 0 }; u8 buf[64] =3D {0}; int ret; @@ -1808,7 +1788,7 @@ static ssize_t ath11k_write_twt_pause_dialog(struct f= ile *file, return -EOPNOTSUPP; } =20 - ret =3D simple_write_to_buffer(buf, sizeof(buf) - 1, ppos, ubuf, count); + ret =3D simple_copy_from_iter(buf, &iocb->ki_pos, sizeof(buf) - 1, from); if (ret < 0) return ret; =20 @@ -1833,11 +1813,11 @@ static ssize_t ath11k_write_twt_pause_dialog(struct= file *file, return count; } =20 -static ssize_t ath11k_write_twt_resume_dialog(struct file *file, - const char __user *ubuf, - size_t count, loff_t *ppos) +static ssize_t ath11k_write_twt_resume_dialog(struct kiocb *iocb, + struct iov_iter *from) { - struct ath11k_vif *arvif =3D file->private_data; + struct ath11k_vif *arvif =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); struct wmi_twt_resume_dialog_params params =3D { 0 }; u8 buf[64] =3D {0}; int ret; @@ -1847,7 +1827,7 @@ static ssize_t ath11k_write_twt_resume_dialog(struct = file *file, return -EOPNOTSUPP; } =20 - ret =3D simple_write_to_buffer(buf, sizeof(buf) - 1, ppos, ubuf, count); + ret =3D simple_copy_from_iter(buf, &iocb->ki_pos, sizeof(buf) - 1, from); if (ret < 0) return ret; =20 @@ -1875,22 +1855,22 @@ static ssize_t ath11k_write_twt_resume_dialog(struc= t file *file, } =20 static const struct file_operations ath11k_fops_twt_add_dialog =3D { - .write =3D ath11k_write_twt_add_dialog, + .write_iter =3D ath11k_write_twt_add_dialog, .open =3D simple_open }; =20 static const struct file_operations ath11k_fops_twt_del_dialog =3D { - .write =3D ath11k_write_twt_del_dialog, + .write_iter =3D ath11k_write_twt_del_dialog, .open =3D simple_open }; =20 static const struct file_operations ath11k_fops_twt_pause_dialog =3D { - .write =3D ath11k_write_twt_pause_dialog, + .write_iter =3D ath11k_write_twt_pause_dialog, .open =3D simple_open }; =20 static const struct file_operations ath11k_fops_twt_resume_dialog =3D { - .write =3D ath11k_write_twt_resume_dialog, + .write_iter =3D ath11k_write_twt_resume_dialog, .open =3D simple_open }; =20 diff --git a/drivers/net/wireless/ath/ath11k/debugfs_htt_stats.c b/drivers/= net/wireless/ath/ath11k/debugfs_htt_stats.c index 870e86a31bf8..d2b444ad7157 100644 --- a/drivers/net/wireless/ath/ath11k/debugfs_htt_stats.c +++ b/drivers/net/wireless/ath/ath11k/debugfs_htt_stats.c @@ -4601,28 +4601,27 @@ void ath11k_debugfs_htt_ext_stats_handler(struct at= h11k_base *ab, complete(&stats_req->cmpln); } =20 -static ssize_t ath11k_read_htt_stats_type(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath11k_read_htt_stats_type(struct kiocb *iocb, + struct iov_iter *to) { - struct ath11k *ar =3D file->private_data; + struct ath11k *ar =3D iocb->ki_filp->private_data; char buf[32]; size_t len; =20 len =3D scnprintf(buf, sizeof(buf), "%u\n", ar->debug.htt_stats.type); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 -static ssize_t ath11k_write_htt_stats_type(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath11k_write_htt_stats_type(struct kiocb *iocb, + struct iov_iter *from) { - struct ath11k *ar =3D file->private_data; + struct ath11k *ar =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); u8 type; int ret; =20 - ret =3D kstrtou8_from_user(user_buf, count, 0, &type); + ret =3D kstrtou8_from_iter(from, count, 0, &type); if (ret) return ret; =20 @@ -4640,8 +4639,8 @@ static ssize_t ath11k_write_htt_stats_type(struct fil= e *file, } =20 static const struct file_operations fops_htt_stats_type =3D { - .read =3D ath11k_read_htt_stats_type, - .write =3D ath11k_write_htt_stats_type, + .read_iter =3D ath11k_read_htt_stats_type, + .write_iter =3D ath11k_write_htt_stats_type, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, @@ -4812,50 +4811,47 @@ static int ath11k_release_htt_stats(struct inode *i= node, struct file *file) return 0; } =20 -static ssize_t ath11k_read_htt_stats(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath11k_read_htt_stats(struct kiocb *iocb, struct iov_iter *= to) { - struct debug_htt_stats_req *stats_req =3D file->private_data; + struct debug_htt_stats_req *stats_req =3D iocb->ki_filp->private_data; char *buf; u32 length =3D 0; =20 buf =3D stats_req->buf; length =3D min_t(u32, stats_req->buf_len, ATH11K_HTT_STATS_BUF_SIZE); - return simple_read_from_buffer(user_buf, count, ppos, buf, length); + return simple_copy_to_iter(buf, &iocb->ki_pos, length, to); } =20 static const struct file_operations fops_dump_htt_stats =3D { .open =3D ath11k_open_htt_stats, .release =3D ath11k_release_htt_stats, - .read =3D ath11k_read_htt_stats, + .read_iter =3D ath11k_read_htt_stats, .owner =3D THIS_MODULE, .llseek =3D default_llseek, }; =20 -static ssize_t ath11k_read_htt_stats_reset(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath11k_read_htt_stats_reset(struct kiocb *iocb, + struct iov_iter *to) { - struct ath11k *ar =3D file->private_data; + struct ath11k *ar =3D iocb->ki_filp->private_data; char buf[32]; size_t len; =20 len =3D scnprintf(buf, sizeof(buf), "%u\n", ar->debug.htt_stats.reset); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 -static ssize_t ath11k_write_htt_stats_reset(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath11k_write_htt_stats_reset(struct kiocb *iocb, + struct iov_iter *from) { - struct ath11k *ar =3D file->private_data; + struct ath11k *ar =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); u8 type; struct htt_ext_stats_cfg_params cfg_params =3D { 0 }; int ret; =20 - ret =3D kstrtou8_from_user(user_buf, count, 0, &type); + ret =3D kstrtou8_from_iter(from, count, 0, &type); if (ret) return ret; =20 @@ -4885,8 +4881,8 @@ static ssize_t ath11k_write_htt_stats_reset(struct fi= le *file, } =20 static const struct file_operations fops_htt_stats_reset =3D { - .read =3D ath11k_read_htt_stats_reset, - .write =3D ath11k_write_htt_stats_reset, + .read_iter =3D ath11k_read_htt_stats_reset, + .write_iter =3D ath11k_write_htt_stats_reset, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, diff --git a/drivers/net/wireless/ath/ath11k/debugfs_sta.c b/drivers/net/wi= reless/ath/ath11k/debugfs_sta.c index f56a24b6c8da..19b2e974b484 100644 --- a/drivers/net/wireless/ath/ath11k/debugfs_sta.c +++ b/drivers/net/wireless/ath/ath11k/debugfs_sta.c @@ -132,11 +132,10 @@ void ath11k_debugfs_sta_update_txcompl(struct ath11k = *ar, ath11k_dp_tx_update_txcompl(ar, ts); } =20 -static ssize_t ath11k_dbg_sta_dump_tx_stats(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath11k_dbg_sta_dump_tx_stats(struct kiocb *iocb, + struct iov_iter *to) { - struct ieee80211_sta *sta =3D file->private_data; + struct ieee80211_sta *sta =3D iocb->ki_filp->private_data; struct ath11k_sta *arsta =3D ath11k_sta_to_arsta(sta); struct ath11k *ar =3D arsta->arvif->ar; struct ath11k_htt_data_stats *stats; @@ -225,7 +224,7 @@ static ssize_t ath11k_dbg_sta_dump_tx_stats(struct file= *file, =20 if (len > size) len =3D size; - retval =3D simple_read_from_buffer(user_buf, count, ppos, buf, len); + retval =3D simple_copy_to_iter(buf, &iocb->ki_pos, len, to); kfree(buf); =20 mutex_unlock(&ar->conf_mutex); @@ -233,17 +232,16 @@ static ssize_t ath11k_dbg_sta_dump_tx_stats(struct fi= le *file, } =20 static const struct file_operations fops_tx_stats =3D { - .read =3D ath11k_dbg_sta_dump_tx_stats, + .read_iter =3D ath11k_dbg_sta_dump_tx_stats, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, }; =20 -static ssize_t ath11k_dbg_sta_dump_rx_stats(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath11k_dbg_sta_dump_rx_stats(struct kiocb *iocb, + struct iov_iter *to) { - struct ieee80211_sta *sta =3D file->private_data; + struct ieee80211_sta *sta =3D iocb->ki_filp->private_data; struct ath11k_sta *arsta =3D ath11k_sta_to_arsta(sta); struct ath11k *ar =3D arsta->arvif->ar; struct ath11k_rx_peer_stats *rx_stats =3D arsta->rx_stats; @@ -323,7 +321,7 @@ static ssize_t ath11k_dbg_sta_dump_rx_stats(struct file= *file, =20 if (len > size) len =3D size; - retval =3D simple_read_from_buffer(user_buf, count, ppos, buf, len); + retval =3D simple_copy_to_iter(buf, &iocb->ki_pos, len, to); kfree(buf); =20 mutex_unlock(&ar->conf_mutex); @@ -331,7 +329,7 @@ static ssize_t ath11k_dbg_sta_dump_rx_stats(struct file= *file, } =20 static const struct file_operations fops_rx_stats =3D { - .read =3D ath11k_dbg_sta_dump_rx_stats, + .read_iter =3D ath11k_dbg_sta_dump_rx_stats, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, @@ -388,32 +386,31 @@ ath11k_dbg_sta_release_htt_peer_stats(struct inode *i= node, struct file *file) return 0; } =20 -static ssize_t ath11k_dbg_sta_read_htt_peer_stats(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath11k_dbg_sta_read_htt_peer_stats(struct kiocb *iocb, + struct iov_iter *to) { - struct debug_htt_stats_req *stats_req =3D file->private_data; + struct debug_htt_stats_req *stats_req =3D iocb->ki_filp->private_data; char *buf; u32 length =3D 0; =20 buf =3D stats_req->buf; length =3D min_t(u32, stats_req->buf_len, ATH11K_HTT_STATS_BUF_SIZE); - return simple_read_from_buffer(user_buf, count, ppos, buf, length); + return simple_copy_to_iter(buf, &iocb->ki_pos, length, to); } =20 static const struct file_operations fops_htt_peer_stats =3D { .open =3D ath11k_dbg_sta_open_htt_peer_stats, .release =3D ath11k_dbg_sta_release_htt_peer_stats, - .read =3D ath11k_dbg_sta_read_htt_peer_stats, + .read_iter =3D ath11k_dbg_sta_read_htt_peer_stats, .owner =3D THIS_MODULE, .llseek =3D default_llseek, }; =20 -static ssize_t ath11k_dbg_sta_write_peer_pktlog(struct file *file, - const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t ath11k_dbg_sta_write_peer_pktlog(struct kiocb *iocb, + struct iov_iter *from) { - struct ieee80211_sta *sta =3D file->private_data; + struct ieee80211_sta *sta =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); struct ath11k_sta *arsta =3D ath11k_sta_to_arsta(sta); struct ath11k *ar =3D arsta->arvif->ar; int ret, enable; @@ -425,7 +422,7 @@ static ssize_t ath11k_dbg_sta_write_peer_pktlog(struct = file *file, goto out; } =20 - ret =3D kstrtoint_from_user(buf, count, 0, &enable); + ret =3D kstrtoint_from_iter(from, count, 0, &enable); if (ret) goto out; =20 @@ -449,11 +446,10 @@ static ssize_t ath11k_dbg_sta_write_peer_pktlog(struc= t file *file, return ret; } =20 -static ssize_t ath11k_dbg_sta_read_peer_pktlog(struct file *file, - char __user *ubuf, - size_t count, loff_t *ppos) +static ssize_t ath11k_dbg_sta_read_peer_pktlog(struct kiocb *iocb, + struct iov_iter *to) { - struct ieee80211_sta *sta =3D file->private_data; + struct ieee80211_sta *sta =3D iocb->ki_filp->private_data; struct ath11k_sta *arsta =3D ath11k_sta_to_arsta(sta); struct ath11k *ar =3D arsta->arvif->ar; char buf[32] =3D {0}; @@ -465,30 +461,29 @@ static ssize_t ath11k_dbg_sta_read_peer_pktlog(struct= file *file, ar->debug.pktlog_peer_addr); mutex_unlock(&ar->conf_mutex); =20 - return simple_read_from_buffer(ubuf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 static const struct file_operations fops_peer_pktlog =3D { - .write =3D ath11k_dbg_sta_write_peer_pktlog, - .read =3D ath11k_dbg_sta_read_peer_pktlog, + .write_iter =3D ath11k_dbg_sta_write_peer_pktlog, + .read_iter =3D ath11k_dbg_sta_read_peer_pktlog, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, }; =20 -static ssize_t ath11k_dbg_sta_write_delba(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath11k_dbg_sta_write_delba(struct kiocb *iocb, + struct iov_iter *from) { - struct ieee80211_sta *sta =3D file->private_data; + struct ieee80211_sta *sta =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); struct ath11k_sta *arsta =3D ath11k_sta_to_arsta(sta); struct ath11k *ar =3D arsta->arvif->ar; u32 tid, initiator, reason; int ret; char buf[64] =3D {0}; =20 - ret =3D simple_write_to_buffer(buf, sizeof(buf) - 1, ppos, - user_buf, count); + ret =3D simple_copy_from_iter(buf, &iocb->ki_pos, sizeof(buf) - 1, from); if (ret <=3D 0) return ret; =20 @@ -521,25 +516,24 @@ static ssize_t ath11k_dbg_sta_write_delba(struct file= *file, } =20 static const struct file_operations fops_delba =3D { - .write =3D ath11k_dbg_sta_write_delba, + .write_iter =3D ath11k_dbg_sta_write_delba, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, }; =20 -static ssize_t ath11k_dbg_sta_write_addba_resp(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath11k_dbg_sta_write_addba_resp(struct kiocb *iocb, + struct iov_iter *from) { - struct ieee80211_sta *sta =3D file->private_data; + struct ieee80211_sta *sta =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); struct ath11k_sta *arsta =3D ath11k_sta_to_arsta(sta); struct ath11k *ar =3D arsta->arvif->ar; u32 tid, status; int ret; char buf[64] =3D {0}; =20 - ret =3D simple_write_to_buffer(buf, sizeof(buf) - 1, ppos, - user_buf, count); + ret =3D simple_copy_from_iter(buf, &iocb->ki_pos, sizeof(buf) - 1, from); if (ret <=3D 0) return ret; =20 @@ -571,25 +565,24 @@ static ssize_t ath11k_dbg_sta_write_addba_resp(struct= file *file, } =20 static const struct file_operations fops_addba_resp =3D { - .write =3D ath11k_dbg_sta_write_addba_resp, + .write_iter =3D ath11k_dbg_sta_write_addba_resp, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, }; =20 -static ssize_t ath11k_dbg_sta_write_addba(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath11k_dbg_sta_write_addba(struct kiocb *iocb, + struct iov_iter *from) { - struct ieee80211_sta *sta =3D file->private_data; + struct ieee80211_sta *sta =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); struct ath11k_sta *arsta =3D ath11k_sta_to_arsta(sta); struct ath11k *ar =3D arsta->arvif->ar; u32 tid, buf_size; int ret; char buf[64] =3D {0}; =20 - ret =3D simple_write_to_buffer(buf, sizeof(buf) - 1, ppos, - user_buf, count); + ret =3D simple_copy_from_iter(buf, &iocb->ki_pos, sizeof(buf) - 1, from); if (ret <=3D 0) return ret; =20 @@ -622,17 +615,16 @@ static ssize_t ath11k_dbg_sta_write_addba(struct file= *file, } =20 static const struct file_operations fops_addba =3D { - .write =3D ath11k_dbg_sta_write_addba, + .write_iter =3D ath11k_dbg_sta_write_addba, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, }; =20 -static ssize_t ath11k_dbg_sta_read_aggr_mode(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath11k_dbg_sta_read_aggr_mode(struct kiocb *iocb, + struct iov_iter *to) { - struct ieee80211_sta *sta =3D file->private_data; + struct ieee80211_sta *sta =3D iocb->ki_filp->private_data; struct ath11k_sta *arsta =3D ath11k_sta_to_arsta(sta); struct ath11k *ar =3D arsta->arvif->ar; char buf[64]; @@ -645,20 +637,20 @@ static ssize_t ath11k_dbg_sta_read_aggr_mode(struct f= ile *file, "auto" : "manual", "auto =3D 0", "manual =3D 1"); mutex_unlock(&ar->conf_mutex); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 -static ssize_t ath11k_dbg_sta_write_aggr_mode(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath11k_dbg_sta_write_aggr_mode(struct kiocb *iocb, + struct iov_iter *from) { - struct ieee80211_sta *sta =3D file->private_data; + struct ieee80211_sta *sta =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); struct ath11k_sta *arsta =3D ath11k_sta_to_arsta(sta); struct ath11k *ar =3D arsta->arvif->ar; u32 aggr_mode; int ret; =20 - if (kstrtouint_from_user(user_buf, count, 0, &aggr_mode)) + if (kstrtouint_from_iter(from, count, 0, &aggr_mode)) return -EINVAL; =20 if (aggr_mode >=3D ATH11K_DBG_AGGR_MODE_MAX) @@ -685,26 +677,25 @@ static ssize_t ath11k_dbg_sta_write_aggr_mode(struct = file *file, } =20 static const struct file_operations fops_aggr_mode =3D { - .read =3D ath11k_dbg_sta_read_aggr_mode, - .write =3D ath11k_dbg_sta_write_aggr_mode, + .read_iter =3D ath11k_dbg_sta_read_aggr_mode, + .write_iter =3D ath11k_dbg_sta_write_aggr_mode, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, }; =20 static ssize_t -ath11k_write_htt_peer_stats_reset(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +ath11k_write_htt_peer_stats_reset(struct kiocb *iocb, struct iov_iter *fro= m) { - struct ieee80211_sta *sta =3D file->private_data; + struct ieee80211_sta *sta =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); struct ath11k_sta *arsta =3D ath11k_sta_to_arsta(sta); struct ath11k *ar =3D arsta->arvif->ar; struct htt_ext_stats_cfg_params cfg_params =3D { 0 }; int ret; u8 type; =20 - ret =3D kstrtou8_from_user(user_buf, count, 0, &type); + ret =3D kstrtou8_from_iter(from, count, 0, &type); if (ret) return ret; =20 @@ -746,17 +737,16 @@ ath11k_write_htt_peer_stats_reset(struct file *file, } =20 static const struct file_operations fops_htt_peer_stats_reset =3D { - .write =3D ath11k_write_htt_peer_stats_reset, + .write_iter =3D ath11k_write_htt_peer_stats_reset, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, }; =20 -static ssize_t ath11k_dbg_sta_read_peer_ps_state(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath11k_dbg_sta_read_peer_ps_state(struct kiocb *iocb, + struct iov_iter *to) { - struct ieee80211_sta *sta =3D file->private_data; + struct ieee80211_sta *sta =3D iocb->ki_filp->private_data; struct ath11k_sta *arsta =3D ath11k_sta_to_arsta(sta); struct ath11k *ar =3D arsta->arvif->ar; char buf[20]; @@ -768,22 +758,20 @@ static ssize_t ath11k_dbg_sta_read_peer_ps_state(stru= ct file *file, =20 spin_unlock_bh(&ar->data_lock); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 static const struct file_operations fops_peer_ps_state =3D { .open =3D simple_open, - .read =3D ath11k_dbg_sta_read_peer_ps_state, + .read_iter =3D ath11k_dbg_sta_read_peer_ps_state, .owner =3D THIS_MODULE, .llseek =3D default_llseek, }; =20 -static ssize_t ath11k_dbg_sta_read_current_ps_duration(struct file *file, - char __user *user_buf, - size_t count, - loff_t *ppos) +static ssize_t ath11k_dbg_sta_read_current_ps_duration(struct kiocb *iocb, + struct iov_iter *to) { - struct ieee80211_sta *sta =3D file->private_data; + struct ieee80211_sta *sta =3D iocb->ki_filp->private_data; struct ath11k_sta *arsta =3D ath11k_sta_to_arsta(sta); struct ath11k *ar =3D arsta->arvif->ar; u64 time_since_station_in_power_save; @@ -803,21 +791,20 @@ static ssize_t ath11k_dbg_sta_read_current_ps_duratio= n(struct file *file, time_since_station_in_power_save); spin_unlock_bh(&ar->data_lock); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 static const struct file_operations fops_current_ps_duration =3D { .open =3D simple_open, - .read =3D ath11k_dbg_sta_read_current_ps_duration, + .read_iter =3D ath11k_dbg_sta_read_current_ps_duration, .owner =3D THIS_MODULE, .llseek =3D default_llseek, }; =20 -static ssize_t ath11k_dbg_sta_read_total_ps_duration(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath11k_dbg_sta_read_total_ps_duration(struct kiocb *iocb, + struct iov_iter *to) { - struct ieee80211_sta *sta =3D file->private_data; + struct ieee80211_sta *sta =3D iocb->ki_filp->private_data; struct ath11k_sta *arsta =3D ath11k_sta_to_arsta(sta); struct ath11k *ar =3D arsta->arvif->ar; char buf[20]; @@ -838,12 +825,12 @@ static ssize_t ath11k_dbg_sta_read_total_ps_duration(= struct file *file, =20 spin_unlock_bh(&ar->data_lock); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 static const struct file_operations fops_total_ps_duration =3D { .open =3D simple_open, - .read =3D ath11k_dbg_sta_read_total_ps_duration, + .read_iter =3D ath11k_dbg_sta_read_total_ps_duration, .owner =3D THIS_MODULE, .llseek =3D default_llseek, }; diff --git a/drivers/net/wireless/ath/ath11k/spectral.c b/drivers/net/wirel= ess/ath/ath11k/spectral.c index 79e091134515..77f3830dbb3a 100644 --- a/drivers/net/wireless/ath/ath11k/spectral.c +++ b/drivers/net/wireless/ath/ath11k/spectral.c @@ -266,11 +266,10 @@ static int ath11k_spectral_scan_config(struct ath11k = *ar, return 0; } =20 -static ssize_t ath11k_read_file_spec_scan_ctl(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath11k_read_file_spec_scan_ctl(struct kiocb *iocb, + struct iov_iter *to) { - struct ath11k *ar =3D file->private_data; + struct ath11k *ar =3D iocb->ki_filp->private_data; char *mode =3D ""; size_t len; enum ath11k_spectral_mode spectral_mode; @@ -292,20 +291,20 @@ static ssize_t ath11k_read_file_spec_scan_ctl(struct = file *file, } =20 len =3D strlen(mode); - return simple_read_from_buffer(user_buf, count, ppos, mode, len); + return simple_copy_to_iter(mode, &iocb->ki_pos, len, to); } =20 -static ssize_t ath11k_write_file_spec_scan_ctl(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath11k_write_file_spec_scan_ctl(struct kiocb *iocb, + struct iov_iter *from) { - struct ath11k *ar =3D file->private_data; + struct ath11k *ar =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); char buf[32]; ssize_t len; int ret; =20 len =3D min(count, sizeof(buf) - 1); - if (copy_from_user(buf, user_buf, len)) + if (!copy_from_iter_full(buf, len, from)) return -EFAULT; =20 buf[len] =3D '\0'; @@ -353,18 +352,17 @@ static ssize_t ath11k_write_file_spec_scan_ctl(struct= file *file, } =20 static const struct file_operations fops_scan_ctl =3D { - .read =3D ath11k_read_file_spec_scan_ctl, - .write =3D ath11k_write_file_spec_scan_ctl, + .read_iter =3D ath11k_read_file_spec_scan_ctl, + .write_iter =3D ath11k_write_file_spec_scan_ctl, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, }; =20 -static ssize_t ath11k_read_file_spectral_count(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath11k_read_file_spectral_count(struct kiocb *iocb, + struct iov_iter *to) { - struct ath11k *ar =3D file->private_data; + struct ath11k *ar =3D iocb->ki_filp->private_data; char buf[32]; size_t len; u16 spectral_count; @@ -374,18 +372,18 @@ static ssize_t ath11k_read_file_spectral_count(struct= file *file, mutex_unlock(&ar->conf_mutex); =20 len =3D sprintf(buf, "%d\n", spectral_count); - return simple_read_from_buffer(user_buf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 -static ssize_t ath11k_write_file_spectral_count(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath11k_write_file_spectral_count(struct kiocb *iocb, + struct iov_iter *from) { - struct ath11k *ar =3D file->private_data; + struct ath11k *ar =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); unsigned long val; ssize_t ret; =20 - ret =3D kstrtoul_from_user(user_buf, count, 0, &val); + ret =3D kstrtoul_from_iter(from, count, 0, &val); if (ret) return ret; =20 @@ -400,18 +398,17 @@ static ssize_t ath11k_write_file_spectral_count(struc= t file *file, } =20 static const struct file_operations fops_scan_count =3D { - .read =3D ath11k_read_file_spectral_count, - .write =3D ath11k_write_file_spectral_count, + .read_iter =3D ath11k_read_file_spectral_count, + .write_iter =3D ath11k_write_file_spectral_count, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, }; =20 -static ssize_t ath11k_read_file_spectral_bins(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath11k_read_file_spectral_bins(struct kiocb *iocb, + struct iov_iter *to) { - struct ath11k *ar =3D file->private_data; + struct ath11k *ar =3D iocb->ki_filp->private_data; char buf[32]; unsigned int bins, fft_size; size_t len; @@ -424,18 +421,18 @@ static ssize_t ath11k_read_file_spectral_bins(struct = file *file, mutex_unlock(&ar->conf_mutex); =20 len =3D sprintf(buf, "%d\n", bins); - return simple_read_from_buffer(user_buf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 -static ssize_t ath11k_write_file_spectral_bins(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t ath11k_write_file_spectral_bins(struct kiocb *iocb, + struct iov_iter *from) { - struct ath11k *ar =3D file->private_data; + struct ath11k *ar =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); unsigned long val; ssize_t ret; =20 - ret =3D kstrtoul_from_user(user_buf, count, 0, &val); + ret =3D kstrtoul_from_iter(from, count, 0, &val); if (ret) return ret; =20 @@ -454,8 +451,8 @@ static ssize_t ath11k_write_file_spectral_bins(struct f= ile *file, } =20 static const struct file_operations fops_scan_bins =3D { - .read =3D ath11k_read_file_spectral_bins, - .write =3D ath11k_write_file_spectral_bins, + .read_iter =3D ath11k_read_file_spectral_bins, + .write_iter =3D ath11k_write_file_spectral_bins, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f46.google.com (mail-io1-f46.google.com [209.85.166.46]) (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 CE97B1D9FE9 for ; Thu, 11 Apr 2024 15:40:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850012; cv=none; b=s/PWN94aKPR0qmqR+P0xoRBvvp1U3OI05xN+LAvkRkFuJiym+0CapfdR8Lgi6WB0bwxz74AtSdndTPt4DfxfJnR4KxrM3SsWn+TaZ0liMUzrPNlHRYF2l3Waj3qPRatr0IPZI/3/iyujC+/eXbOM+gP1/v4WDPBk6tX64QSq0BI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850012; c=relaxed/simple; bh=81o1xwCWI7QUW1NUuq50pKwEnOx+bczsgQ9nD2Ts4AE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=tRkhmglFEfHKMW6LfriX6rkysJUVEsLZVPwJdby2aSWsVBDmR0cL2oZK8o0u5WK54KzB2QImvEZB8zbY7AjkoMGvirYjtngRoXnv5iLyLEIewWv4mYEc16GHAptEbwBIuWuE3auEJ+SSNc5J3iGAkwzCSMy2fIN4O2MCunVeoPs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=vWllT8Zg; arc=none smtp.client-ip=209.85.166.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="vWllT8Zg" Received: by mail-io1-f46.google.com with SMTP id ca18e2360f4ac-7d67d1073easo9873139f.0 for ; Thu, 11 Apr 2024 08:40:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850009; x=1713454809; 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=wuDxFagP4f8c7YjTC6jiq88QiKjLYnfBuV0irVWBJJc=; b=vWllT8ZgEssssroL1Bv/gqM0YyNkEO9kn/0LyQaBO9qUEtTXSdMcshdwltnjn6Bc+i dGllg9eoPauT92GhFoo79Vx1cVFt54ZPAONPi9Ki8BWjZy83sUW4Vf86M5YjmDc+D35v PWbAjHShnMEAxQ9ZH3Xq7oGX0Xq34mV3kSiSWVlSiZrDZJWya4mY3ZGm5xkqSVnjim86 swzmYFOwLXBGrr1on3crD0elkU/WOcAg7cM36fFHI1PSKJh/R74YGTKrLmIT1Nm2fMrG 83gyeW6nlHAKyfSWnk2NDcIzy1FpUzUyvl0RBegVtjQh205dDkVgzYigjw1BuI+W9dLz tSpg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850009; x=1713454809; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=wuDxFagP4f8c7YjTC6jiq88QiKjLYnfBuV0irVWBJJc=; b=O0rirjHO2gGmQj6vEiOh2S2/wyhudL+YtYS4mmb5YnMP9vcrgNKOuzHViYrpCYT7M2 6n9/kz2/6fkPoBWL73oDthWuLTJmTjcFJW6snXd9frbsVKLsxU+fi+dvIV2IO0i6oypV vzn5cWvZUVaX4eVVoASbGZ3RdhDg2WbvI8RCOUn7q483iZuv3RXH3NKIT21elrflPDbk FVbzgag2EWS6z1Rbz8cztR9yi3Vch2jnNc3fOWxUSWE6ziZxdb9IVT8vyZRmEz5gOfAf 2cZ6lQ519PemQzEgChjFtGSuiQyzylVw2HDqW8/7tHlkMoQkxwcH9xrDga6peJdmkKzT Ww0g== X-Gm-Message-State: AOJu0YzyWjMYos+//WERXM9OaSB/OD0tTmyLxA0bOJXZaA8dOqLa0KMi Lrocv7j6OLYBh65J6PrPXRQPq1HOaGejDzYCuGKgYkiLsg3hJIR/JjVdeXtf0tOu0lNJLXpUT3v y X-Google-Smtp-Source: AGHT+IFPNVfBXRzQzx98zmJ5Pt44LWa+UlZ3eOHDpmIIQmaoBxTcBLh0IHeBoHo9WoLUxUjsaExnIw== X-Received: by 2002:a6b:c34e:0:b0:7d6:7b7c:8257 with SMTP id t75-20020a6bc34e000000b007d67b7c8257mr229498iof.0.1712850008720; Thu, 11 Apr 2024 08:40:08 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.40.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:40:07 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 306/437] drivers/net/wireless/broadcom: convert to read/write iterators Date: Thu, 11 Apr 2024 09:17:26 -0600 Message-ID: <20240411153126.16201-307-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/net/wireless/broadcom/b43/debugfs.c | 30 +++++++++--------- .../net/wireless/broadcom/b43legacy/debugfs.c | 31 +++++++++---------- .../broadcom/brcm80211/brcmfmac/core.c | 10 +++--- .../broadcom/brcm80211/brcmsmac/debug.c | 2 +- 4 files changed, 35 insertions(+), 38 deletions(-) diff --git a/drivers/net/wireless/broadcom/b43/debugfs.c b/drivers/net/wire= less/broadcom/b43/debugfs.c index efa98444e3fb..bd82fc337500 100644 --- a/drivers/net/wireless/broadcom/b43/debugfs.c +++ b/drivers/net/wireless/broadcom/b43/debugfs.c @@ -487,8 +487,7 @@ static ssize_t loctls_read_file(struct b43_wldev *dev, =20 #undef fappend =20 -static ssize_t b43_debugfs_read(struct file *file, char __user *userbuf, - size_t count, loff_t *ppos) +static ssize_t b43_debugfs_read(struct kiocb *iocb, struct iov_iter *to) { struct b43_wldev *dev; struct b43_debugfs_fops *dfops; @@ -497,11 +496,12 @@ static ssize_t b43_debugfs_read(struct file *file, ch= ar __user *userbuf, char *buf; const size_t bufsize =3D 1024 * 16; /* 16 kiB buffer */ const size_t buforder =3D get_order(bufsize); + size_t count =3D iov_iter_count(to); int err =3D 0; =20 if (!count) return 0; - dev =3D file->private_data; + dev =3D iocb->ki_filp->private_data; if (!dev) return -ENODEV; =20 @@ -511,7 +511,7 @@ static ssize_t b43_debugfs_read(struct file *file, char= __user *userbuf, goto out_unlock; } =20 - dfops =3D container_of(debugfs_real_fops(file), + dfops =3D container_of(debugfs_real_fops(iocb->ki_filp), struct b43_debugfs_fops, fops); if (!dfops->read) { err =3D -ENOSYS; @@ -536,10 +536,9 @@ static ssize_t b43_debugfs_read(struct file *file, cha= r __user *userbuf, dfile->buffer =3D buf; } =20 - ret =3D simple_read_from_buffer(userbuf, count, ppos, - dfile->buffer, - dfile->data_len); - if (*ppos >=3D dfile->data_len) { + ret =3D simple_copy_to_iter(dfile->buffer, &iocb->ki_pos, dfile->data_len, + to); + if (iocb->ki_pos >=3D dfile->data_len) { free_pages((unsigned long)dfile->buffer, buforder); dfile->buffer =3D NULL; dfile->data_len =3D 0; @@ -550,12 +549,11 @@ static ssize_t b43_debugfs_read(struct file *file, ch= ar __user *userbuf, return err ? err : ret; } =20 -static ssize_t b43_debugfs_write(struct file *file, - const char __user *userbuf, - size_t count, loff_t *ppos) +static ssize_t b43_debugfs_write(struct kiocb *iocb, struct iov_iter *from) { struct b43_wldev *dev; struct b43_debugfs_fops *dfops; + size_t count =3D iov_iter_count(from); char *buf; int err =3D 0; =20 @@ -563,7 +561,7 @@ static ssize_t b43_debugfs_write(struct file *file, return 0; if (count > PAGE_SIZE) return -E2BIG; - dev =3D file->private_data; + dev =3D iocb->ki_filp->private_data; if (!dev) return -ENODEV; =20 @@ -573,7 +571,7 @@ static ssize_t b43_debugfs_write(struct file *file, goto out_unlock; } =20 - dfops =3D container_of(debugfs_real_fops(file), + dfops =3D container_of(debugfs_real_fops(iocb->ki_filp), struct b43_debugfs_fops, fops); if (!dfops->write) { err =3D -ENOSYS; @@ -585,7 +583,7 @@ static ssize_t b43_debugfs_write(struct file *file, err =3D -ENOMEM; goto out_unlock; } - if (copy_from_user(buf, userbuf, count)) { + if (!copy_from_iter_full(buf, count, from)) { err =3D -EFAULT; goto out_freepage; } @@ -608,8 +606,8 @@ static ssize_t b43_debugfs_write(struct file *file, .write =3D _write, \ .fops =3D { \ .open =3D simple_open, \ - .read =3D b43_debugfs_read, \ - .write =3D b43_debugfs_write, \ + .read_iter =3D b43_debugfs_read, \ + .write_iter =3D b43_debugfs_write, \ .llseek =3D generic_file_llseek, \ }, \ .file_struct_offset =3D offsetof(struct b43_dfsentry, \ diff --git a/drivers/net/wireless/broadcom/b43legacy/debugfs.c b/drivers/ne= t/wireless/broadcom/b43legacy/debugfs.c index 6b0e8d117061..3746e2fab874 100644 --- a/drivers/net/wireless/broadcom/b43legacy/debugfs.c +++ b/drivers/net/wireless/broadcom/b43legacy/debugfs.c @@ -184,8 +184,7 @@ static int restart_write_file(struct b43legacy_wldev *d= ev, const char *buf, size =20 #undef fappend =20 -static ssize_t b43legacy_debugfs_read(struct file *file, char __user *user= buf, - size_t count, loff_t *ppos) +static ssize_t b43legacy_debugfs_read(struct kiocb *iocb, struct iov_iter = *to) { struct b43legacy_wldev *dev; struct b43legacy_debugfs_fops *dfops; @@ -194,11 +193,12 @@ static ssize_t b43legacy_debugfs_read(struct file *fi= le, char __user *userbuf, char *buf; const size_t bufsize =3D 1024 * 16; /* 16 KiB buffer */ const size_t buforder =3D get_order(bufsize); + size_t count =3D iov_iter_count(to); int err =3D 0; =20 if (!count) return 0; - dev =3D file->private_data; + dev =3D iocb->ki_filp->private_data; if (!dev) return -ENODEV; =20 @@ -208,7 +208,7 @@ static ssize_t b43legacy_debugfs_read(struct file *file= , char __user *userbuf, goto out_unlock; } =20 - dfops =3D container_of(debugfs_real_fops(file), + dfops =3D container_of(debugfs_real_fops(iocb->ki_filp), struct b43legacy_debugfs_fops, fops); if (!dfops->read) { err =3D -ENOSYS; @@ -238,10 +238,9 @@ static ssize_t b43legacy_debugfs_read(struct file *fil= e, char __user *userbuf, dfile->buffer =3D buf; } =20 - ret =3D simple_read_from_buffer(userbuf, count, ppos, - dfile->buffer, - dfile->data_len); - if (*ppos >=3D dfile->data_len) { + ret =3D simple_copy_to_iter(dfile->buffer, &iocb->ki_pos, + dfile->data_len, to); + if (iocb->ki_pos >=3D dfile->data_len) { free_pages((unsigned long)dfile->buffer, buforder); dfile->buffer =3D NULL; dfile->data_len =3D 0; @@ -252,12 +251,12 @@ static ssize_t b43legacy_debugfs_read(struct file *fi= le, char __user *userbuf, return err ? err : ret; } =20 -static ssize_t b43legacy_debugfs_write(struct file *file, - const char __user *userbuf, - size_t count, loff_t *ppos) +static ssize_t b43legacy_debugfs_write(struct kiocb *iocb, + struct iov_iter *from) { struct b43legacy_wldev *dev; struct b43legacy_debugfs_fops *dfops; + size_t count =3D iov_iter_count(from); char *buf; int err =3D 0; =20 @@ -265,7 +264,7 @@ static ssize_t b43legacy_debugfs_write(struct file *fil= e, return 0; if (count > PAGE_SIZE) return -E2BIG; - dev =3D file->private_data; + dev =3D iocb->ki_filp->private_data; if (!dev) return -ENODEV; =20 @@ -275,7 +274,7 @@ static ssize_t b43legacy_debugfs_write(struct file *fil= e, goto out_unlock; } =20 - dfops =3D container_of(debugfs_real_fops(file), + dfops =3D container_of(debugfs_real_fops(iocb->ki_filp), struct b43legacy_debugfs_fops, fops); if (!dfops->write) { err =3D -ENOSYS; @@ -287,7 +286,7 @@ static ssize_t b43legacy_debugfs_write(struct file *fil= e, err =3D -ENOMEM; goto out_unlock; } - if (copy_from_user(buf, userbuf, count)) { + if (!copy_from_iter_full(buf, count, from)) { err =3D -EFAULT; goto out_freepage; } @@ -315,8 +314,8 @@ static ssize_t b43legacy_debugfs_write(struct file *fil= e, .write =3D _write, \ .fops =3D { \ .open =3D simple_open, \ - .read =3D b43legacy_debugfs_read, \ - .write =3D b43legacy_debugfs_write, \ + .read_iter =3D b43legacy_debugfs_read, \ + .write_iter =3D b43legacy_debugfs_write, \ .llseek =3D generic_file_llseek, \ }, \ .file_struct_offset =3D offsetof(struct b43legacy_dfsentry, \ diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c b/driv= ers/net/wireless/broadcom/brcm80211/brcmfmac/core.c index bf91b1e1368f..d02dd7944bad 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c @@ -1165,13 +1165,13 @@ static void brcmf_core_bus_reset(struct work_struct= *work) brcmf_bus_reset(drvr->bus_if); } =20 -static ssize_t bus_reset_write(struct file *file, const char __user *user_= buf, - size_t count, loff_t *ppos) +static ssize_t bus_reset_write(struct kiocb *iocb, struct iov_iter *from) { - struct brcmf_pub *drvr =3D file->private_data; + struct brcmf_pub *drvr =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); u8 value; =20 - if (kstrtou8_from_user(user_buf, count, 0, &value)) + if (kstrtou8_from_iter(from, count, 0, &value)) return -EINVAL; =20 if (value !=3D 1) @@ -1185,7 +1185,7 @@ static ssize_t bus_reset_write(struct file *file, con= st char __user *user_buf, static const struct file_operations bus_reset_fops =3D { .open =3D simple_open, .llseek =3D no_llseek, - .write =3D bus_reset_write, + .write_iter =3D bus_reset_write, }; =20 static int brcmf_bus_started(struct brcmf_pub *drvr, struct cfg80211_ops *= ops) diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmsmac/debug.c b/dri= vers/net/wireless/broadcom/brcm80211/brcmsmac/debug.c index 6d776ef6ff54..cfc7ff6d3503 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmsmac/debug.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmsmac/debug.c @@ -182,7 +182,7 @@ static const struct file_operations brcms_debugfs_def_o= ps =3D { .owner =3D THIS_MODULE, .open =3D brcms_debugfs_entry_open, .release =3D single_release, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek }; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f49.google.com (mail-io1-f49.google.com [209.85.166.49]) (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 5006E1D9FF0 for ; Thu, 11 Apr 2024 15:40:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850013; cv=none; b=uvHGf7qvPgBU22v2Ovlxrqcb+IG3dnd6V0cQ0KOD3vCyzqrcqs1do6jbRHJ+kfzC0Sq6AHEjjclaUS9mLKyYPF7uo+cEQpm9bM1A90NO0iTs17M/8Zhg5QLvZYv0Xt20NzxRBfOVbhN0HvgqAaLY50Any0joQkFlEBfxiaVD80k= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850013; c=relaxed/simple; bh=xaPo/E+IHrGYl158KTEbt+Rq4YIWcoKYrAt5fO6c1fM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=aE28s5swn/f1i5dIVvQ1XeDv/unqO9DwEox5NVDr6ztN5GAKyxP7QfWcq5+T28x3/6jZb6j3C9D62Lep3b25lGE7+f5E1/OBo4a2LOJCMP3xAIFnkYuWEJBjh8IHkjnduaVhjEsTvX2maFzhpYPxi1ozdSXi48iyI1kXWqaWA1Q= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=f2pQgJzL; arc=none smtp.client-ip=209.85.166.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="f2pQgJzL" Received: by mail-io1-f49.google.com with SMTP id ca18e2360f4ac-7d6112ba6baso58190039f.1 for ; Thu, 11 Apr 2024 08:40:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850009; x=1713454809; 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=c2bDHnSOqzvj8tuTT6HXHmHeyHcGyehDT+1ibrSmR/0=; b=f2pQgJzLB7Wgluzo8SGfOzzWm1ajfeorjVEAYqmjg+JYI59l260MweCEjV35y8WVV2 hUPMPXhg8k7/9L+iTgyoUzZZnRi2E6JQylZtNgAEdV42cv2ARkbIPu0VgTfKimmjfw4k jmnuQAsZWa5lVs+p+fEhK1J1Ou3jl9TsNCJ7o8HJ8ySeTY5l33pi21jkohUXpDVENDTX weNPkAzEHbTEcJ/BH2e62qKsCebpNB7UkuYMb6dCvhV0BjCs3OQwZ5j4tqSOgFNwNDEg o1wSaOeJXNwo3wG6BO6PcC4y35Cknt1sbLsENc96Yqp9DhXVM6vz0T4Vx7MaR3mcEFI2 0KIQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850009; x=1713454809; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=c2bDHnSOqzvj8tuTT6HXHmHeyHcGyehDT+1ibrSmR/0=; b=hdBB9rHOI2EfSE2msOeCdjd690Ly+BesE3zG1ZMHs4J3O7AIvADjQo1yjnAe1xRqJG pF10leYRzl99MoGz/lg/hP9n+stNfJzSlUZpZ8eM81da7fsrOVMWHRKA3FMjTGYBJs8a 9gRRVOOD3AKfOjRxyy2Bwa8QG34vHjZDW6O5wK4XNZrHIbYThcBD2FhVIW9GcSYc95Wk Exks7fH8ndt0B/uDVfJvgH2jrP6cz94tdfkBg7PKwIzYe3XEUQkqr02TzGth7Ou/Jsno zzAVxSTRCeXLKjzRGTnA+PLoG7DMT8Jn5UC1Ck9QXcyAjP/UHXHbCT/L9t0p/WGjKpBJ eoXg== X-Gm-Message-State: AOJu0Yzevv7gUPZR4l7bf9AJaSmPZzgjQP0y0g4wHd7FMUlH7QP1AVby d/oWPulPyJLVQQFQIeLXPzD+60aMTSzKuDrEhgeDEQgVJ+0vRResl24v0lU3wYE59JL748Xrdjv s X-Google-Smtp-Source: AGHT+IF5K/+DOq4hDjIJXrRGHOjlo6cqi5YkglAMElzRIjm+hByFQ7GLfwfllWTPuG4GBfjZiiUxhw== X-Received: by 2002:a6b:f312:0:b0:7d5:de23:13a9 with SMTP id m18-20020a6bf312000000b007d5de2313a9mr172179ioh.1.1712850009465; Thu, 11 Apr 2024 08:40:09 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.40.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:40:09 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 307/437] drivers/net/wireless/ralink: convert to read/write iterators Date: Thu, 11 Apr 2024 09:17:27 -0600 Message-ID: <20240411153126.16201-308-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- .../net/wireless/ralink/rt2x00/rt2x00debug.c | 122 ++++++++---------- 1 file changed, 55 insertions(+), 67 deletions(-) diff --git a/drivers/net/wireless/ralink/rt2x00/rt2x00debug.c b/drivers/net= /wireless/ralink/rt2x00/rt2x00debug.c index f2395309ec00..80f84dc700be 100644 --- a/drivers/net/wireless/ralink/rt2x00/rt2x00debug.c +++ b/drivers/net/wireless/ralink/rt2x00/rt2x00debug.c @@ -238,17 +238,16 @@ static int rt2x00debug_release_queue_dump(struct inod= e *inode, struct file *file return rt2x00debug_file_release(inode, file); } =20 -static ssize_t rt2x00debug_read_queue_dump(struct file *file, - char __user *buf, - size_t length, - loff_t *offset) +static ssize_t rt2x00debug_read_queue_dump(struct kiocb *iocb, + struct iov_iter *to) { - struct rt2x00debug_intf *intf =3D file->private_data; + struct rt2x00debug_intf *intf =3D iocb->ki_filp->private_data; + size_t length =3D iov_iter_count(to); struct sk_buff *skb; size_t status; int retval; =20 - if (file->f_flags & O_NONBLOCK) + if (iocb->ki_filp->f_flags & O_NONBLOCK) return -EAGAIN; =20 retval =3D @@ -259,12 +258,12 @@ static ssize_t rt2x00debug_read_queue_dump(struct fil= e *file, return retval; =20 status =3D min_t(size_t, skb->len, length); - if (copy_to_user(buf, skb->data, status)) { + if (!copy_to_iter_full(skb->data, status, to)) { status =3D -EFAULT; goto exit; } =20 - *offset +=3D status; + iocb->ki_pos +=3D status; =20 exit: kfree_skb(skb); @@ -287,27 +286,26 @@ static __poll_t rt2x00debug_poll_queue_dump(struct fi= le *file, =20 static const struct file_operations rt2x00debug_fop_queue_dump =3D { .owner =3D THIS_MODULE, - .read =3D rt2x00debug_read_queue_dump, + .read_iter =3D rt2x00debug_read_queue_dump, .poll =3D rt2x00debug_poll_queue_dump, .open =3D rt2x00debug_open_queue_dump, .release =3D rt2x00debug_release_queue_dump, .llseek =3D default_llseek, }; =20 -static ssize_t rt2x00debug_read_queue_stats(struct file *file, - char __user *buf, - size_t length, - loff_t *offset) +static ssize_t rt2x00debug_read_queue_stats(struct kiocb *iocb, + struct iov_iter *to) { - struct rt2x00debug_intf *intf =3D file->private_data; + struct rt2x00debug_intf *intf =3D iocb->ki_filp->private_data; struct data_queue *queue; unsigned long irqflags; unsigned int lines =3D 1 + intf->rt2x00dev->data_queues; + size_t length =3D iov_iter_count(to); size_t size; char *data; char *temp; =20 - if (*offset) + if (iocb->ki_pos) return 0; =20 data =3D kcalloc(lines, MAX_LINE_LENGTH, GFP_KERNEL); @@ -333,39 +331,38 @@ static ssize_t rt2x00debug_read_queue_stats(struct fi= le *file, size =3D strlen(data); size =3D min(size, length); =20 - if (copy_to_user(buf, data, size)) { + if (!copy_to_iter_full(data, size, to)) { kfree(data); return -EFAULT; } =20 kfree(data); =20 - *offset +=3D size; + iocb->ki_pos +=3D size; return size; } =20 static const struct file_operations rt2x00debug_fop_queue_stats =3D { .owner =3D THIS_MODULE, - .read =3D rt2x00debug_read_queue_stats, + .read_iter =3D rt2x00debug_read_queue_stats, .open =3D rt2x00debug_file_open, .release =3D rt2x00debug_file_release, .llseek =3D default_llseek, }; =20 #ifdef CONFIG_RT2X00_LIB_CRYPTO -static ssize_t rt2x00debug_read_crypto_stats(struct file *file, - char __user *buf, - size_t length, - loff_t *offset) +static ssize_t rt2x00debug_read_crypto_stats(struct kiocb *iocb, + struct iov_iter *to) { - struct rt2x00debug_intf *intf =3D file->private_data; + struct rt2x00debug_intf *intf =3D iocb->ki_filp->private_data; static const char * const name[] =3D { "WEP64", "WEP128", "TKIP", "AES" }; + size_t length =3D iov_iter_count(to); char *data; char *temp; size_t size; unsigned int i; =20 - if (*offset) + if (iocb->ki_pos) return 0; =20 data =3D kcalloc(1 + CIPHER_MAX, MAX_LINE_LENGTH, GFP_KERNEL); @@ -386,20 +383,20 @@ static ssize_t rt2x00debug_read_crypto_stats(struct f= ile *file, size =3D strlen(data); size =3D min(size, length); =20 - if (copy_to_user(buf, data, size)) { + if (!copy_to_iter_full(data, size, to)) { kfree(data); return -EFAULT; } =20 kfree(data); =20 - *offset +=3D size; + iocb->ki_pos +=3D size; return size; } =20 static const struct file_operations rt2x00debug_fop_crypto_stats =3D { .owner =3D THIS_MODULE, - .read =3D rt2x00debug_read_crypto_stats, + .read_iter =3D rt2x00debug_read_crypto_stats, .open =3D rt2x00debug_file_open, .release =3D rt2x00debug_file_release, .llseek =3D default_llseek, @@ -407,19 +404,17 @@ static const struct file_operations rt2x00debug_fop_c= rypto_stats =3D { #endif =20 #define RT2X00DEBUGFS_OPS_READ(__name, __format, __type) \ -static ssize_t rt2x00debug_read_##__name(struct file *file, \ - char __user *buf, \ - size_t length, \ - loff_t *offset) \ +static ssize_t rt2x00debug_read_##__name(struct kiocb *iocb, \ + struct iov_iter *to) \ { \ - struct rt2x00debug_intf *intf =3D file->private_data; \ + struct rt2x00debug_intf *intf =3D iocb->ki_filp->private_data; \ const struct rt2x00debug *debug =3D intf->debug; \ char line[16]; \ size_t size; \ unsigned int index =3D intf->offset_##__name; \ __type value; \ \ - if (*offset) \ + if (iocb->ki_pos) \ return 0; \ \ if (index >=3D debug->__name.word_count) \ @@ -435,23 +430,22 @@ static ssize_t rt2x00debug_read_##__name(struct file = *file, \ \ size =3D sprintf(line, __format, value); \ \ - return simple_read_from_buffer(buf, length, offset, line, size); \ + return simple_copy_to_iter(line, &iocb->ki_pos, size, to); \ } =20 #define RT2X00DEBUGFS_OPS_WRITE(__name, __type) \ -static ssize_t rt2x00debug_write_##__name(struct file *file, \ - const char __user *buf,\ - size_t length, \ - loff_t *offset) \ +static ssize_t rt2x00debug_write_##__name(struct kiocb *iocb, \ + struct iov_iter *from)\ { \ - struct rt2x00debug_intf *intf =3D file->private_data; \ + struct rt2x00debug_intf *intf =3D iocb->ki_filp->private_data; \ const struct rt2x00debug *debug =3D intf->debug; \ + size_t length =3D iov_iter_count(from); \ char line[17]; \ size_t size; \ unsigned int index =3D intf->offset_##__name; \ __type value; \ \ - if (*offset) \ + if (iocb->ki_pos) \ return 0; \ \ if (index >=3D debug->__name.word_count) \ @@ -460,7 +454,7 @@ static ssize_t rt2x00debug_write_##__name(struct file *= file, \ if (length > sizeof(line)) \ return -EINVAL; \ \ - if (copy_from_user(line, buf, length)) \ + if (!copy_from_iter_full(line, length, from)) \ return -EFAULT; \ line[16] =3D 0; \ \ @@ -475,7 +469,7 @@ static ssize_t rt2x00debug_write_##__name(struct file *= file, \ \ debug->__name.write(intf->rt2x00dev, index, value); \ \ - *offset +=3D size; \ + iocb->ki_pos +=3D size; \ return size; \ } =20 @@ -485,8 +479,8 @@ RT2X00DEBUGFS_OPS_WRITE(__name, __type); \ \ static const struct file_operations rt2x00debug_fop_##__name =3D {\ .owner =3D THIS_MODULE, \ - .read =3D rt2x00debug_read_##__name, \ - .write =3D rt2x00debug_write_##__name, \ + .read_iter =3D rt2x00debug_read_##__name, \ + .write_iter =3D rt2x00debug_write_##__name, \ .open =3D rt2x00debug_file_open, \ .release =3D rt2x00debug_file_release, \ .llseek =3D generic_file_llseek, \ @@ -498,62 +492,56 @@ RT2X00DEBUGFS_OPS(bbp, "0x%.2x\n", u8); RT2X00DEBUGFS_OPS(rf, "0x%.8x\n", u32); RT2X00DEBUGFS_OPS(rfcsr, "0x%.2x\n", u8); =20 -static ssize_t rt2x00debug_read_dev_flags(struct file *file, - char __user *buf, - size_t length, - loff_t *offset) +static ssize_t rt2x00debug_read_dev_flags(struct kiocb *iocb, + struct iov_iter *to) { - struct rt2x00debug_intf *intf =3D file->private_data; + struct rt2x00debug_intf *intf =3D iocb->ki_filp->private_data; char line[16]; size_t size; =20 - if (*offset) + if (iocb->ki_pos) return 0; =20 size =3D sprintf(line, "0x%.8x\n", (unsigned int)intf->rt2x00dev->flags); =20 - return simple_read_from_buffer(buf, length, offset, line, size); + return simple_copy_to_iter(line, &iocb->ki_pos, size, to); } =20 static const struct file_operations rt2x00debug_fop_dev_flags =3D { .owner =3D THIS_MODULE, - .read =3D rt2x00debug_read_dev_flags, + .read_iter =3D rt2x00debug_read_dev_flags, .open =3D rt2x00debug_file_open, .release =3D rt2x00debug_file_release, .llseek =3D default_llseek, }; =20 -static ssize_t rt2x00debug_read_cap_flags(struct file *file, - char __user *buf, - size_t length, - loff_t *offset) +static ssize_t rt2x00debug_read_cap_flags(struct kiocb *iocb, + struct iov_iter *to) { - struct rt2x00debug_intf *intf =3D file->private_data; + struct rt2x00debug_intf *intf =3D iocb->ki_filp->private_data; char line[16]; size_t size; =20 - if (*offset) + if (iocb->ki_pos) return 0; =20 size =3D sprintf(line, "0x%.8x\n", (unsigned int)intf->rt2x00dev->cap_fla= gs); =20 - return simple_read_from_buffer(buf, length, offset, line, size); + return simple_copy_to_iter(line, &iocb->ki_pos, size, to); } =20 static const struct file_operations rt2x00debug_fop_cap_flags =3D { .owner =3D THIS_MODULE, - .read =3D rt2x00debug_read_cap_flags, + .read_iter =3D rt2x00debug_read_cap_flags, .open =3D rt2x00debug_file_open, .release =3D rt2x00debug_file_release, .llseek =3D default_llseek, }; =20 -static ssize_t rt2x00debug_write_restart_hw(struct file *file, - const char __user *buf, - size_t length, - loff_t *offset) +static ssize_t rt2x00debug_write_restart_hw(struct kiocb *iocb, + struct iov_iter *from) { - struct rt2x00debug_intf *intf =3D file->private_data; + struct rt2x00debug_intf *intf =3D iocb->ki_filp->private_data; struct rt2x00_dev *rt2x00dev =3D intf->rt2x00dev; static unsigned long last_reset =3D INITIAL_JIFFIES; =20 @@ -566,12 +554,12 @@ static ssize_t rt2x00debug_write_restart_hw(struct fi= le *file, last_reset =3D jiffies; =20 ieee80211_restart_hw(rt2x00dev->hw); - return length; + return iov_iter_count(from); } =20 static const struct file_operations rt2x00debug_restart_hw =3D { .owner =3D THIS_MODULE, - .write =3D rt2x00debug_write_restart_hw, + .write_iter =3D rt2x00debug_write_restart_hw, .open =3D simple_open, .llseek =3D generic_file_llseek, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f50.google.com (mail-io1-f50.google.com [209.85.166.50]) (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 DFB881DA007 for ; Thu, 11 Apr 2024 15:40:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850014; cv=none; b=oYWPU11nbTQXXhcmahCKB4CQQoHNg+8w1QGaGzIs0VFiOjL9pwkZZCfnGp03f8Kqf06g1GGiMfTqmCjB2oBOarT2i5oQxi1sdhPmdq6mbptocwMewNjKHqjQnEiplAwTzSYxWBfgnTahYtsGq+TX1CMlExJu+fTsr3uKQHB9yKk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850014; c=relaxed/simple; bh=5zl6nzIuWlq9czwyq2zUon2yWwTfh7iogk+BETfNKxM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=SZHUKmz24ywNCalbAkBM75qbAeAvefD9N+fXJN9nZXEGub2c7cN6TTsabq68fE9Xc/5Q3jxdfGb8G/b/3oEfCsFzQnQgET6/AYQVw3GzNJ8iIe3/WgRRGocQQONd1tDZASwA+BlGi0Q4u3zQ0HuX6eGzCEqs0Up3WEsrqymD2V0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=FZDDejEF; arc=none smtp.client-ip=209.85.166.50 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="FZDDejEF" Received: by mail-io1-f50.google.com with SMTP id ca18e2360f4ac-7d6812b37a6so9040139f.0 for ; Thu, 11 Apr 2024 08:40:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850012; x=1713454812; 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=7OZXlSeWjVCMHOcX2v1VMNOJ8Dbm+E1WqqonRpcahtk=; b=FZDDejEF1MnSBOMreAdTuHKV5BG+iQoM4T0qDw2ZJfEJESAGzCh6tLcJGxeU1jIjnJ kl3pjUr5w6NuQtYWUx+DtBrTvrKDUV4nwHAclHefYtJ8/80d8pAqyjnICCGJU6Y/dXbF jS7j8DiH7rBUzH1s5rNQmNFBw4JfqhimtHFtmPizK+75XuAGlRl4VUIKRWEYwUP4hDcI DZrVo9scYK/HzWplZ3dRl0rVaHzWUuRiOyjC+C+7RtLvweLAvQd+hRIdHxUWb0mBoa0p uVf6ntQU/bZFtr4oucELWLWqnFwIi72y5LbPv8bvHsrprJVuA2bj2noLn/IMalzDZYJs ccUQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850012; x=1713454812; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=7OZXlSeWjVCMHOcX2v1VMNOJ8Dbm+E1WqqonRpcahtk=; b=fPjK6Gr+zUYqiqXgv4PIEd7+J/AyIrrg0p6ntipRTE3IY/QFYrcb8i11qpXQiEeK/6 XyHOuyJeIi+pfD3NwkynOPgn/amxZw/Nw+dItIj/XqJNXsf6VmJQorPTLU28YRs0DnLS C8nwKaIZrHAfcMLS1e/xxEQCJobxTAkftsVDRaknb654pkcf21uQ5Iqt9AB42KVnLRrN JoLeNQgfsdXZwrDvVd6Ze2uOdhstcDTJagMLr6gfqtXbgSUEABtTGC/QcQUmdL70xqp+ vHkloGp2UrW6jkHBS/UPXP90QxZBqPW+ZLISlGRpcQxb6O05QlV2XMo8WWG3QxnL0lAd D3/Q== X-Gm-Message-State: AOJu0YwoAYqwoZTLh92Je4q1nRCrFIhP8cKa94cdhtgrZXFmYhEYL0Ae FdKKjDEjuOFujxKuzXX4wA5wJ1PP/VzZkZgn/HP4bpToiU9at5Ax7X4As83MW11vUgX/SBkYYpS q X-Google-Smtp-Source: AGHT+IEPBDXCVtGYMG1NQiv7xDAkNPuyCjJ0NaFEu1RXHEZGAQvdvUH/7dKAXoSYOGEx6nMjBv2Xjg== X-Received: by 2002:a6b:5b10:0:b0:7d0:bd2b:43ba with SMTP id v16-20020a6b5b10000000b007d0bd2b43bamr232367ioh.0.1712850011846; Thu, 11 Apr 2024 08:40:11 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.40.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:40:09 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 308/437] wifi: rtlwifi: convert debugfs helpers to read/write iterators Date: Thu, 11 Apr 2024 09:17:28 -0600 Message-ID: <20240411153126.16201-309-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/net/wireless/realtek/rtlwifi/debug.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/net/wireless/realtek/rtlwifi/debug.c b/drivers/net/wir= eless/realtek/rtlwifi/debug.c index 9eb26dfe4ca9..11220484c4c6 100644 --- a/drivers/net/wireless/realtek/rtlwifi/debug.c +++ b/drivers/net/wireless/realtek/rtlwifi/debug.c @@ -66,7 +66,7 @@ static int dl_debug_open_common(struct inode *inode, stru= ct file *file) =20 static const struct file_operations file_ops_common =3D { .open =3D dl_debug_open_common, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D single_release, }; @@ -411,10 +411,11 @@ static ssize_t rtl_debugfs_common_write(struct file *= filp, =20 return debugfs_priv->cb_write(filp, buffer, count, loff); } +FOPS_WRITE_ITER_HELPER(rtl_debugfs_common_write); =20 static const struct file_operations file_ops_common_write =3D { .owner =3D THIS_MODULE, - .write =3D rtl_debugfs_common_write, + .write_iter =3D rtl_debugfs_common_write_iter, .open =3D simple_open, .release =3D rtl_debugfs_close, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f49.google.com (mail-io1-f49.google.com [209.85.166.49]) (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 A8EF147F6F for ; Thu, 11 Apr 2024 15:40:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850017; cv=none; b=s/1B9h/0PfTcDCJKeqcBSi3GE75I4KOGXmsF68nxHpAHja2RRALvQ5ihEqW8iNSlktoTTSOnWmhKzEL2EgsRsLU0hiZW5UolmGLa7UpH8v6su81pUpZLyeeuEEy6xTsBRqkHoeJF7Cz8540XaUxs97ryXjKlkM2Rq8tIdHC3cC0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850017; c=relaxed/simple; bh=ebydvELdjKLIZ1e4qhBZw6sHskTD7aEPmZkpHHq5Osk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=VS6hYIM3TODTjgczrA5GvDNXsaxK1Nfgp1us0YiqZmYMAR+tbPrG/kClVstp6Sb1iWz0bHZmICbrtJm4rc82KUxZEXZRIrEhAMzmoObGMJvt/NZy/JnayhH1h7iHxOWOxxUKork1kmLzaonnoJa6E64y5XPD03WIablzno8RyiU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=NkLXF3FM; arc=none smtp.client-ip=209.85.166.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="NkLXF3FM" Received: by mail-io1-f49.google.com with SMTP id ca18e2360f4ac-7d67d1073easo9875239f.0 for ; Thu, 11 Apr 2024 08:40:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850013; x=1713454813; 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=dhxnY18WOWtqTzCSkiBfYas/33+nq68jO/ej5bJH0BM=; b=NkLXF3FMDBAAR8XsQG+dFJa07Q2lI89IZ9sWKNJLxb0gaSPDgRCTijvnqdd9zZTJdV XCmxMte5QFJzDKllMJYBju6EHorvHip0QYrR4UdgRSjs0XsTCSutLsbHxQN0KDuV0oZ9 nQbPhsofQ386Pce7656Hhf4BUDUNcEMYEmFXYOTiqcUrcB9l+vQ9fv/UF3FSnQSHAjNS 0f6Z+rtGlJjars+KZjmYHRfvl1KinTAqd4TxfXCXHH7Zi4ds2u4kWdPAYf9u71SkZhSk Wkgu+514oer/B0EYDYcJ77+ITSKBPdmVU5X+koIVZeu+PHbqESMkzJCNkCKBUqiby3Bt lpGQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850013; x=1713454813; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=dhxnY18WOWtqTzCSkiBfYas/33+nq68jO/ej5bJH0BM=; b=drM3aky4awrWSIs/XBuSCqR5oyFx/j9yqATLH1cjoTEtKmpIs+MiFLLnlzFKlCOGyn nwX7MuyWEQ3ZFCbfYkcW6dDgBW+lG2dy2sQlwgVDyQBw6TBxuKCv2Czd7WEJrZDLeqfI tnGwVr22hPqQr8Ut5M6Q+E+kbOYkd3c2fcWZxhTGJs1Y46m7qDpDAXvpVLJDVipTOzAe lj638W2GGPhJT3/tNLfQO3BsiGOsDkxtdDXYO+i6ZFw7vfdkkcU+pRTsp2HlGs6mRuC5 vC7xi/KhslpZdTui4RVaefoZz1hAnGX1wW1jIEehZteBqmLSBcsYKBQmIiDJsiVUHX+q l9ng== X-Gm-Message-State: AOJu0YyVdTnmKf8WBDDq+8ug0DNg2GGcv2KwKVwfXGPnt1EZ+az6wc0v UX4iZFHWBoQPYL4bClDPfTZEtFZSWxIYF9wMeyeYKjE18db7ZvKr0jHuC4CytwfMiPYynthoZmJ g X-Google-Smtp-Source: AGHT+IFGIUvFRuadL7cG34B2/e83S1YwxJRTxtw4XhgFYGXw72KuOxKltka6sB4mLMZ515lrEOjDew== X-Received: by 2002:a05:6602:84:b0:7d6:9d75:6de2 with SMTP id h4-20020a056602008400b007d69d756de2mr51054iob.2.1712850013541; Thu, 11 Apr 2024 08:40:13 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.40.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:40:12 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 309/437] wifi: rtw88: convert debugfs helpers to read/write iterators Date: Thu, 11 Apr 2024 09:17:29 -0600 Message-ID: <20240411153126.16201-310-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/net/wireless/realtek/rtw88/debug.c | 163 ++++++++++----------- 1 file changed, 79 insertions(+), 84 deletions(-) diff --git a/drivers/net/wireless/realtek/rtw88/debug.c b/drivers/net/wirel= ess/realtek/rtw88/debug.c index 5b2036798159..2a44bbc06a02 100644 --- a/drivers/net/wireless/realtek/rtw88/debug.c +++ b/drivers/net/wireless/realtek/rtw88/debug.c @@ -19,8 +19,7 @@ struct rtw_debugfs_priv { struct rtw_dev *rtwdev; int (*cb_read)(struct seq_file *m, void *v); - ssize_t (*cb_write)(struct file *filp, const char __user *buffer, - size_t count, loff_t *loff); + ssize_t (*cb_write)(struct kiocb *, struct iov_iter *); union { u32 cb_data; u8 *buf; @@ -55,23 +54,21 @@ static int rtw_debugfs_single_show(struct seq_file *m, = void *v) return debugfs_priv->cb_read(m, v); } =20 -static ssize_t rtw_debugfs_common_write(struct file *filp, - const char __user *buffer, - size_t count, loff_t *loff) +static ssize_t rtw_debugfs_common_write(struct kiocb *iocb, + struct iov_iter *from) { - struct rtw_debugfs_priv *debugfs_priv =3D filp->private_data; + struct rtw_debugfs_priv *debugfs_priv =3D iocb->ki_filp->private_data; =20 - return debugfs_priv->cb_write(filp, buffer, count, loff); + return debugfs_priv->cb_write(iocb, from); } =20 -static ssize_t rtw_debugfs_single_write(struct file *filp, - const char __user *buffer, - size_t count, loff_t *loff) +static ssize_t rtw_debugfs_single_write(struct kiocb *iocb, + struct iov_iter *from) { - struct seq_file *seqpriv =3D (struct seq_file *)filp->private_data; + struct seq_file *seqpriv =3D iocb->ki_filp->private_data; struct rtw_debugfs_priv *debugfs_priv =3D seqpriv->private; =20 - return debugfs_priv->cb_write(filp, buffer, count, loff); + return debugfs_priv->cb_write(iocb, from); } =20 static int rtw_debugfs_single_open_rw(struct inode *inode, struct file *fi= lp) @@ -87,7 +84,7 @@ static int rtw_debugfs_close(struct inode *inode, struct = file *filp) static const struct file_operations file_ops_single_r =3D { .owner =3D THIS_MODULE, .open =3D rtw_debugfs_single_open_rw, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D single_release, }; @@ -96,14 +93,14 @@ static const struct file_operations file_ops_single_rw = =3D { .owner =3D THIS_MODULE, .open =3D rtw_debugfs_single_open_rw, .release =3D single_release, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, - .write =3D rtw_debugfs_single_write, + .write_iter =3D rtw_debugfs_single_write, }; =20 static const struct file_operations file_ops_common_write =3D { .owner =3D THIS_MODULE, - .write =3D rtw_debugfs_common_write, + .write_iter =3D rtw_debugfs_common_write, .open =3D simple_open, .release =3D rtw_debugfs_close, }; @@ -171,9 +168,9 @@ static int rtw_debugfs_get_fix_rate(struct seq_file *m,= void *v) } =20 static int rtw_debugfs_copy_from_user(char tmp[], int size, - const char __user *buffer, size_t count, - int num) + struct iov_iter *from, int num) { + size_t count =3D iov_iter_count(from); int tmp_len; =20 memset(tmp, 0, size); @@ -183,7 +180,7 @@ static int rtw_debugfs_copy_from_user(char tmp[], int s= ize, =20 tmp_len =3D (count > size - 1 ? size - 1 : count); =20 - if (copy_from_user(tmp, buffer, tmp_len)) + if (!copy_from_iter_full(tmp, tmp_len, from)) return -EFAULT; =20 tmp[tmp_len] =3D '\0'; @@ -191,19 +188,19 @@ static int rtw_debugfs_copy_from_user(char tmp[], int= size, return 0; } =20 -static ssize_t rtw_debugfs_set_read_reg(struct file *filp, - const char __user *buffer, - size_t count, loff_t *loff) +static ssize_t rtw_debugfs_set_read_reg(struct kiocb *iocb, + struct iov_iter *from) { - struct seq_file *seqpriv =3D (struct seq_file *)filp->private_data; + struct seq_file *seqpriv =3D iocb->ki_filp->private_data; struct rtw_debugfs_priv *debugfs_priv =3D seqpriv->private; struct rtw_dev *rtwdev =3D debugfs_priv->rtwdev; + size_t count =3D iov_iter_count(from); char tmp[32 + 1]; u32 addr, len; int num; int ret; =20 - ret =3D rtw_debugfs_copy_from_user(tmp, sizeof(tmp), buffer, count, 2); + ret =3D rtw_debugfs_copy_from_user(tmp, sizeof(tmp), from, 2); if (ret) return ret; =20 @@ -281,19 +278,19 @@ static int rtw_debugfs_get_rsvd_page(struct seq_file = *m, void *v) return 0; } =20 -static ssize_t rtw_debugfs_set_rsvd_page(struct file *filp, - const char __user *buffer, - size_t count, loff_t *loff) +static ssize_t rtw_debugfs_set_rsvd_page(struct kiocb *iocb, + struct iov_iter *from) { - struct seq_file *seqpriv =3D (struct seq_file *)filp->private_data; + struct seq_file *seqpriv =3D iocb->ki_filp->private_data; struct rtw_debugfs_priv *debugfs_priv =3D seqpriv->private; struct rtw_dev *rtwdev =3D debugfs_priv->rtwdev; + size_t count =3D iov_iter_count(from); char tmp[32 + 1]; u32 offset, page_num; int num; int ret; =20 - ret =3D rtw_debugfs_copy_from_user(tmp, sizeof(tmp), buffer, count, 2); + ret =3D rtw_debugfs_copy_from_user(tmp, sizeof(tmp), from, 2); if (ret) return ret; =20 @@ -310,16 +307,16 @@ static ssize_t rtw_debugfs_set_rsvd_page(struct file = *filp, return count; } =20 -static ssize_t rtw_debugfs_set_single_input(struct file *filp, - const char __user *buffer, - size_t count, loff_t *loff) +static ssize_t rtw_debugfs_set_single_input(struct kiocb *iocb, + struct iov_iter *from) { - struct seq_file *seqpriv =3D (struct seq_file *)filp->private_data; + struct seq_file *seqpriv =3D iocb->ki_filp->private_data; struct rtw_debugfs_priv *debugfs_priv =3D seqpriv->private; + size_t count =3D iov_iter_count(from); u32 input; int ret; =20 - ret =3D kstrtou32_from_user(buffer, count, 0, &input); + ret =3D kstrtou32_from_iter(from, count, 0, &input); if (ret) return ret; =20 @@ -328,18 +325,18 @@ static ssize_t rtw_debugfs_set_single_input(struct fi= le *filp, return count; } =20 -static ssize_t rtw_debugfs_set_write_reg(struct file *filp, - const char __user *buffer, - size_t count, loff_t *loff) +static ssize_t rtw_debugfs_set_write_reg(struct kiocb *iocb, + struct iov_iter *from) { - struct rtw_debugfs_priv *debugfs_priv =3D filp->private_data; + struct rtw_debugfs_priv *debugfs_priv =3D iocb->ki_filp->private_data; struct rtw_dev *rtwdev =3D debugfs_priv->rtwdev; + size_t count =3D iov_iter_count(from); char tmp[32 + 1]; u32 addr, val, len; int num; int ret; =20 - ret =3D rtw_debugfs_copy_from_user(tmp, sizeof(tmp), buffer, count, 3); + ret =3D rtw_debugfs_copy_from_user(tmp, sizeof(tmp), from, 3); if (ret) return ret; =20 @@ -374,18 +371,17 @@ static ssize_t rtw_debugfs_set_write_reg(struct file = *filp, return count; } =20 -static ssize_t rtw_debugfs_set_h2c(struct file *filp, - const char __user *buffer, - size_t count, loff_t *loff) +static ssize_t rtw_debugfs_set_h2c(struct kiocb *iocb, struct iov_iter *fr= om) { - struct rtw_debugfs_priv *debugfs_priv =3D filp->private_data; + struct rtw_debugfs_priv *debugfs_priv =3D iocb->ki_filp->private_data; struct rtw_dev *rtwdev =3D debugfs_priv->rtwdev; + size_t count =3D iov_iter_count(from); char tmp[32 + 1]; u8 param[8]; int num; int ret; =20 - ret =3D rtw_debugfs_copy_from_user(tmp, sizeof(tmp), buffer, count, 3); + ret =3D rtw_debugfs_copy_from_user(tmp, sizeof(tmp), from, 3); if (ret) return ret; =20 @@ -404,18 +400,18 @@ static ssize_t rtw_debugfs_set_h2c(struct file *filp, return count; } =20 -static ssize_t rtw_debugfs_set_rf_write(struct file *filp, - const char __user *buffer, - size_t count, loff_t *loff) +static ssize_t rtw_debugfs_set_rf_write(struct kiocb *iocb, + struct iov_iter *from) { - struct rtw_debugfs_priv *debugfs_priv =3D filp->private_data; + struct rtw_debugfs_priv *debugfs_priv =3D iocb->ki_filp->private_data; struct rtw_dev *rtwdev =3D debugfs_priv->rtwdev; + size_t count =3D iov_iter_count(from); char tmp[32 + 1]; u32 path, addr, mask, val; int num; int ret; =20 - ret =3D rtw_debugfs_copy_from_user(tmp, sizeof(tmp), buffer, count, 4); + ret =3D rtw_debugfs_copy_from_user(tmp, sizeof(tmp), from, 4); if (ret) return ret; =20 @@ -436,19 +432,18 @@ static ssize_t rtw_debugfs_set_rf_write(struct file *= filp, return count; } =20 -static ssize_t rtw_debugfs_set_rf_read(struct file *filp, - const char __user *buffer, - size_t count, loff_t *loff) +static ssize_t rtw_debugfs_set_rf_read(struct kiocb *iocb, struct iov_iter= *from) { - struct seq_file *seqpriv =3D (struct seq_file *)filp->private_data; + struct seq_file *seqpriv =3D iocb->ki_filp->private_data; struct rtw_debugfs_priv *debugfs_priv =3D seqpriv->private; struct rtw_dev *rtwdev =3D debugfs_priv->rtwdev; + size_t count =3D iov_iter_count(from); char tmp[32 + 1]; u32 path, addr, mask; int num; int ret; =20 - ret =3D rtw_debugfs_copy_from_user(tmp, sizeof(tmp), buffer, count, 3); + ret =3D rtw_debugfs_copy_from_user(tmp, sizeof(tmp), from, 3); if (ret) return ret; =20 @@ -466,18 +461,18 @@ static ssize_t rtw_debugfs_set_rf_read(struct file *f= ilp, return count; } =20 -static ssize_t rtw_debugfs_set_fix_rate(struct file *filp, - const char __user *buffer, - size_t count, loff_t *loff) +static ssize_t rtw_debugfs_set_fix_rate(struct kiocb *iocb, + struct iov_iter *from) { - struct seq_file *seqpriv =3D (struct seq_file *)filp->private_data; + struct seq_file *seqpriv =3D iocb->ki_filp->private_data; struct rtw_debugfs_priv *debugfs_priv =3D seqpriv->private; struct rtw_dev *rtwdev =3D debugfs_priv->rtwdev; struct rtw_dm_info *dm_info =3D &rtwdev->dm_info; + size_t count =3D iov_iter_count(from); u8 fix_rate; int ret; =20 - ret =3D kstrtou8_from_user(buffer, count, 0, &fix_rate); + ret =3D kstrtou8_from_iter(from, count, 0, &fix_rate); if (ret) return ret; =20 @@ -854,18 +849,18 @@ static int rtw_debugfs_get_coex_info(struct seq_file = *m, void *v) return 0; } =20 -static ssize_t rtw_debugfs_set_coex_enable(struct file *filp, - const char __user *buffer, - size_t count, loff_t *loff) +static ssize_t rtw_debugfs_set_coex_enable(struct kiocb *iocb, + struct iov_iter *from) { - struct seq_file *seqpriv =3D (struct seq_file *)filp->private_data; + struct seq_file *seqpriv =3D iocb->ki_filp->private_data; struct rtw_debugfs_priv *debugfs_priv =3D seqpriv->private; struct rtw_dev *rtwdev =3D debugfs_priv->rtwdev; struct rtw_coex *coex =3D &rtwdev->coex; + size_t count =3D iov_iter_count(from); bool enable; int ret; =20 - ret =3D kstrtobool_from_user(buffer, count, &enable); + ret =3D kstrtobool_from_iter(from, count, &enable); if (ret) return ret; =20 @@ -888,17 +883,17 @@ static int rtw_debugfs_get_coex_enable(struct seq_fil= e *m, void *v) return 0; } =20 -static ssize_t rtw_debugfs_set_edcca_enable(struct file *filp, - const char __user *buffer, - size_t count, loff_t *loff) +static ssize_t rtw_debugfs_set_edcca_enable(struct kiocb *iocb, + struct iov_iter *from) { - struct seq_file *seqpriv =3D (struct seq_file *)filp->private_data; + struct seq_file *seqpriv =3D iocb->ki_filp->private_data; struct rtw_debugfs_priv *debugfs_priv =3D seqpriv->private; struct rtw_dev *rtwdev =3D debugfs_priv->rtwdev; + size_t count =3D iov_iter_count(from); bool input; int err; =20 - err =3D kstrtobool_from_user(buffer, count, &input); + err =3D kstrtobool_from_iter(from, count, &input); if (err) return err; =20 @@ -920,17 +915,17 @@ static int rtw_debugfs_get_edcca_enable(struct seq_fi= le *m, void *v) return 0; } =20 -static ssize_t rtw_debugfs_set_fw_crash(struct file *filp, - const char __user *buffer, - size_t count, loff_t *loff) +static ssize_t rtw_debugfs_set_fw_crash(struct kiocb *iocb, + struct iov_iter *from) { - struct seq_file *seqpriv =3D (struct seq_file *)filp->private_data; + struct seq_file *seqpriv =3D iocb->ki_filp->private_data; struct rtw_debugfs_priv *debugfs_priv =3D seqpriv->private; struct rtw_dev *rtwdev =3D debugfs_priv->rtwdev; + size_t count =3D iov_iter_count(from); bool input; int ret; =20 - ret =3D kstrtobool_from_user(buffer, count, &input); + ret =3D kstrtobool_from_iter(from, count, &input); if (ret) return ret; =20 @@ -960,17 +955,17 @@ static int rtw_debugfs_get_fw_crash(struct seq_file *= m, void *v) return 0; } =20 -static ssize_t rtw_debugfs_set_force_lowest_basic_rate(struct file *filp, - const char __user *buffer, - size_t count, loff_t *loff) +static ssize_t rtw_debugfs_set_force_lowest_basic_rate(struct kiocb *iocb, + struct iov_iter *from) { - struct seq_file *seqpriv =3D (struct seq_file *)filp->private_data; + struct seq_file *seqpriv =3D iocb->ki_filp->private_data; struct rtw_debugfs_priv *debugfs_priv =3D seqpriv->private; struct rtw_dev *rtwdev =3D debugfs_priv->rtwdev; + size_t count =3D iov_iter_count(from); bool input; int err; =20 - err =3D kstrtobool_from_user(buffer, count, &input); + err =3D kstrtobool_from_iter(from, count, &input); if (err) return err; =20 @@ -993,18 +988,18 @@ static int rtw_debugfs_get_force_lowest_basic_rate(st= ruct seq_file *m, void *v) return 0; } =20 -static ssize_t rtw_debugfs_set_dm_cap(struct file *filp, - const char __user *buffer, - size_t count, loff_t *loff) +static ssize_t rtw_debugfs_set_dm_cap(struct kiocb *iocb, + struct iov_iter *from) { - struct seq_file *seqpriv =3D (struct seq_file *)filp->private_data; + struct seq_file *seqpriv =3D iocb->ki_filp->private_data; struct rtw_debugfs_priv *debugfs_priv =3D seqpriv->private; struct rtw_dev *rtwdev =3D debugfs_priv->rtwdev; struct rtw_dm_info *dm_info =3D &rtwdev->dm_info; + size_t count =3D iov_iter_count(from); int ret, bit; bool en; =20 - ret =3D kstrtoint_from_user(buffer, count, 10, &bit); + ret =3D kstrtoint_from_iter(from, count, 10, &bit); if (ret) return ret; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-il1-f174.google.com (mail-il1-f174.google.com [209.85.166.174]) (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 102711DB549 for ; Thu, 11 Apr 2024 15:40:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.174 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850019; cv=none; b=I4+DP4wTY+pbhTShGzFSxRtFzwgvx0CR/fz6HbqkXcK67mavS8TONyft6AElcBKJujTSZk1vrgs4sGO93rrkBZIOm5Rvnkk3B0uqBpkULmDu61fM8lrEEhSBEJ7jyLx6rlFXHwuKnDxYlR3c4cpR8pqQLDBFSIWdqbHzlzCgHgI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850019; c=relaxed/simple; bh=ydDFYHQCrE+yYOCUiSx91nxhcZq5kswBMtxKFXnBmug=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=fszsQxPAplybX3fLQm6zGiVaFLEwgcQ2UiROERecTq9ShMWRQpmW37COqFzOnovhSSWl9RPxrc1RASRtRFxVjEgPbtOQQvqVzIl9FqNq+B5hdi18+Octjxm63Fkcm9N7AazKaHKBrog11aV15UILurGrHa5ORkOqlkm12BkKvuI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=QQ1xOCAd; arc=none smtp.client-ip=209.85.166.174 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="QQ1xOCAd" Received: by mail-il1-f174.google.com with SMTP id e9e14a558f8ab-36a224d7414so191955ab.1 for ; Thu, 11 Apr 2024 08:40:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850015; x=1713454815; 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=7J4x+oZljRz6ipZRrygJdtdb+0cUV6nYtWbTKlirtqk=; b=QQ1xOCAdXJus+3F87Lyg6tr0KlErzgVc/4kzSM8vmzAP1pDmzEhpdj+/ahpWs+h7E/ z1P3xQUcp6IJOPO92BWH5P5m2yb2jiuUgpCrZYkkM1G6twMRY33Om0k6Qo3pWAeVpPH/ 52F+cAxqViLdHszuzL6eEOohaC7B7qnl+37osF1c3beluB8/aCqkGJqjWhrsKJ+Ng2Jc oos0o+MbrHAAHIk1ZXqpROBBr3t+ZDFJqZ0ZWFGSLgi+HS/WmiD+FiUezjij51VNl/Hp yRHqAwQdvGFePtSMpJ4hr621f5N9mb8nGNbI46cBzjMwVNvNGGiI6+jWqrZCCTlkQ38g IKmA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850015; x=1713454815; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=7J4x+oZljRz6ipZRrygJdtdb+0cUV6nYtWbTKlirtqk=; b=Ht0R/eGyKubluZ7lnbuuLbg/WGgy/szZ8Luqs25pzu/K11ZqBcZOOupl2DRGMrMD44 MlxTLcCmpkr/Js3tZ0dVPDQtr57Gph2jD58TUVPdzDgs7vr3sJcPQsDwjtLpRcl29VFK 3mfk8Gxmsw9uzLUtGKVHqZ6avHtTYCSpkt3Ig3jpj3Ii2yMzFNIvYqFdIKD8of3aqdRM 0wsP64TdfatJe5GuGIXj+Zwik5yBUzi9OC5gEwLEmX3iNcnP9S/oCJEFLCZQbTNyA4ca XFqtkNCE6HxBkfEIOKixaxCoY+QzF0kj8ZZtcaA2+IjXZ5DMkanFjDG9zz756aK6TH9h mYZg== X-Gm-Message-State: AOJu0Yx5tkdpncfksgxEdjdvnmWhAZazRtaqNfexG90KvGDcAGP2aXLQ dpSKsh6Y4NQOhSI6qRDrVqs9T3t5iv/Ht/tMKts0C/ebJMiUCvS8M7T64caJ0i9hn+BxC+R/jK8 V X-Google-Smtp-Source: AGHT+IHAHdvdgGNLsipQJG25g20Hquc4UX+rWy09TWebFgDGXLPlYP2ITL1Sx63XTpLPcISIEor7hg== X-Received: by 2002:a6b:4e14:0:b0:7d6:631d:7b0 with SMTP id c20-20020a6b4e14000000b007d6631d07b0mr198435iob.1.1712850015351; Thu, 11 Apr 2024 08:40:15 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.40.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:40:13 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 310/437] wifi: rtw89: convert debugfs helpers to read/write iterators Date: Thu, 11 Apr 2024 09:17:30 -0600 Message-ID: <20240411153126.16201-311-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/net/wireless/realtek/rtw89/debug.c | 155 ++++++++++----------- 1 file changed, 74 insertions(+), 81 deletions(-) diff --git a/drivers/net/wireless/realtek/rtw89/debug.c b/drivers/net/wirel= ess/realtek/rtw89/debug.c index affffc4092ba..20d8774f151a 100644 --- a/drivers/net/wireless/realtek/rtw89/debug.c +++ b/drivers/net/wireless/realtek/rtw89/debug.c @@ -24,8 +24,7 @@ MODULE_PARM_DESC(debug_mask, "Debugging mask"); struct rtw89_debugfs_priv { struct rtw89_dev *rtwdev; int (*cb_read)(struct seq_file *m, void *v); - ssize_t (*cb_write)(struct file *filp, const char __user *buffer, - size_t count, loff_t *loff); + ssize_t (*cb_write)(struct kiocb *, struct iov_iter *); union { u32 cb_data; struct { @@ -75,23 +74,21 @@ static int rtw89_debugfs_single_show(struct seq_file *m= , void *v) return debugfs_priv->cb_read(m, v); } =20 -static ssize_t rtw89_debugfs_single_write(struct file *filp, - const char __user *buffer, - size_t count, loff_t *loff) +static ssize_t rtw89_debugfs_single_write(struct kiocb *iocb, + struct iov_iter *from) { - struct rtw89_debugfs_priv *debugfs_priv =3D filp->private_data; + struct rtw89_debugfs_priv *debugfs_priv =3D iocb->ki_filp->private_data; =20 - return debugfs_priv->cb_write(filp, buffer, count, loff); + return debugfs_priv->cb_write(iocb, from); } =20 -static ssize_t rtw89_debugfs_seq_file_write(struct file *filp, - const char __user *buffer, - size_t count, loff_t *loff) +static ssize_t rtw89_debugfs_seq_file_write(struct kiocb *iocb, + struct iov_iter *from) { - struct seq_file *seqpriv =3D (struct seq_file *)filp->private_data; + struct seq_file *seqpriv =3D iocb->ki_filp->private_data; struct rtw89_debugfs_priv *debugfs_priv =3D seqpriv->private; =20 - return debugfs_priv->cb_write(filp, buffer, count, loff); + return debugfs_priv->cb_write(iocb, from); } =20 static int rtw89_debugfs_single_open(struct inode *inode, struct file *fil= p) @@ -107,7 +104,7 @@ static int rtw89_debugfs_close(struct inode *inode, str= uct file *filp) static const struct file_operations file_ops_single_r =3D { .owner =3D THIS_MODULE, .open =3D rtw89_debugfs_single_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D single_release, }; @@ -116,33 +113,32 @@ static const struct file_operations file_ops_common_r= w =3D { .owner =3D THIS_MODULE, .open =3D rtw89_debugfs_single_open, .release =3D single_release, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, - .write =3D rtw89_debugfs_seq_file_write, + .write_iter =3D rtw89_debugfs_seq_file_write, }; =20 static const struct file_operations file_ops_single_w =3D { .owner =3D THIS_MODULE, - .write =3D rtw89_debugfs_single_write, + .write_iter =3D rtw89_debugfs_single_write, .open =3D simple_open, .release =3D rtw89_debugfs_close, }; =20 static ssize_t -rtw89_debug_priv_read_reg_select(struct file *filp, - const char __user *user_buf, - size_t count, loff_t *loff) +rtw89_debug_priv_read_reg_select(struct kiocb *iocb, struct iov_iter *from) { - struct seq_file *m =3D (struct seq_file *)filp->private_data; + struct seq_file *m =3D iocb->ki_filp->private_data; struct rtw89_debugfs_priv *debugfs_priv =3D m->private; struct rtw89_dev *rtwdev =3D debugfs_priv->rtwdev; + size_t count =3D iov_iter_count(from); char buf[32]; size_t buf_size; u32 addr, len; int num; =20 buf_size =3D min(count, sizeof(buf) - 1); - if (copy_from_user(buf, user_buf, buf_size)) + if (!copy_from_iter_full(buf, buf_size, from)) return -EFAULT; =20 buf[buf_size] =3D '\0'; @@ -207,19 +203,19 @@ static int rtw89_debug_priv_read_reg_get(struct seq_f= ile *m, void *v) return 0; } =20 -static ssize_t rtw89_debug_priv_write_reg_set(struct file *filp, - const char __user *user_buf, - size_t count, loff_t *loff) +static ssize_t rtw89_debug_priv_write_reg_set(struct kiocb *iocb, + struct iov_iter *from) { - struct rtw89_debugfs_priv *debugfs_priv =3D filp->private_data; + struct rtw89_debugfs_priv *debugfs_priv =3D iocb->ki_filp->private_data; struct rtw89_dev *rtwdev =3D debugfs_priv->rtwdev; + size_t count =3D iov_iter_count(from); char buf[32]; size_t buf_size; u32 addr, val, len; int num; =20 buf_size =3D min(count, sizeof(buf) - 1); - if (copy_from_user(buf, user_buf, buf_size)) + if (!copy_from_iter_full(buf, buf_size, from)) return -EFAULT; =20 buf[buf_size] =3D '\0'; @@ -251,13 +247,12 @@ static ssize_t rtw89_debug_priv_write_reg_set(struct = file *filp, } =20 static ssize_t -rtw89_debug_priv_read_rf_select(struct file *filp, - const char __user *user_buf, - size_t count, loff_t *loff) +rtw89_debug_priv_read_rf_select(struct kiocb *iocb, struct iov_iter *from) { - struct seq_file *m =3D (struct seq_file *)filp->private_data; + struct seq_file *m =3D iocb->ki_filp->private_data; struct rtw89_debugfs_priv *debugfs_priv =3D m->private; struct rtw89_dev *rtwdev =3D debugfs_priv->rtwdev; + size_t count =3D iov_iter_count(from); char buf[32]; size_t buf_size; u32 addr, mask; @@ -265,7 +260,7 @@ rtw89_debug_priv_read_rf_select(struct file *filp, int num; =20 buf_size =3D min(count, sizeof(buf) - 1); - if (copy_from_user(buf, user_buf, buf_size)) + if (!copy_from_iter_full(buf, buf_size, from)) return -EFAULT; =20 buf[buf_size] =3D '\0'; @@ -306,12 +301,12 @@ static int rtw89_debug_priv_read_rf_get(struct seq_fi= le *m, void *v) return 0; } =20 -static ssize_t rtw89_debug_priv_write_rf_set(struct file *filp, - const char __user *user_buf, - size_t count, loff_t *loff) +static ssize_t rtw89_debug_priv_write_rf_set(struct kiocb *iocb, + struct iov_iter *from) { - struct rtw89_debugfs_priv *debugfs_priv =3D filp->private_data; + struct rtw89_debugfs_priv *debugfs_priv =3D iocb->ki_filp->private_data; struct rtw89_dev *rtwdev =3D debugfs_priv->rtwdev; + size_t count =3D iov_iter_count(from); char buf[32]; size_t buf_size; u32 addr, val, mask; @@ -319,7 +314,7 @@ static ssize_t rtw89_debug_priv_write_rf_set(struct fil= e *filp, int num; =20 buf_size =3D min(count, sizeof(buf) - 1); - if (copy_from_user(buf, user_buf, buf_size)) + if (!copy_from_iter_full(buf, buf_size, from)) return -EFAULT; =20 buf[buf_size] =3D '\0'; @@ -867,21 +862,20 @@ static int rtw89_debug_priv_txpwr_table_get(struct se= q_file *m, void *v) } =20 static ssize_t -rtw89_debug_priv_mac_reg_dump_select(struct file *filp, - const char __user *user_buf, - size_t count, loff_t *loff) +rtw89_debug_priv_mac_reg_dump_select(struct kiocb *iocb, struct iov_iter *= from) { - struct seq_file *m =3D (struct seq_file *)filp->private_data; + struct seq_file *m =3D iocb->ki_filp->private_data; struct rtw89_debugfs_priv *debugfs_priv =3D m->private; struct rtw89_dev *rtwdev =3D debugfs_priv->rtwdev; const struct rtw89_chip_info *chip =3D rtwdev->chip; + size_t count =3D iov_iter_count(from); char buf[32]; size_t buf_size; int sel; int ret; =20 buf_size =3D min(count, sizeof(buf) - 1); - if (copy_from_user(buf, user_buf, buf_size)) + if (!copy_from_iter_full(buf, buf_size, from)) return -EFAULT; =20 buf[buf_size] =3D '\0'; @@ -984,20 +978,19 @@ static int rtw89_debug_priv_mac_reg_dump_get(struct s= eq_file *m, void *v) } =20 static ssize_t -rtw89_debug_priv_mac_mem_dump_select(struct file *filp, - const char __user *user_buf, - size_t count, loff_t *loff) +rtw89_debug_priv_mac_mem_dump_select(struct kiocb *iocb, struct iov_iter *= from) { - struct seq_file *m =3D (struct seq_file *)filp->private_data; + struct seq_file *m =3D iocb->ki_filp->private_data; struct rtw89_debugfs_priv *debugfs_priv =3D m->private; struct rtw89_dev *rtwdev =3D debugfs_priv->rtwdev; + size_t count =3D iov_iter_count(from); char buf[32]; size_t buf_size; u32 sel, start_addr, len; int num; =20 buf_size =3D min(count, sizeof(buf) - 1); - if (copy_from_user(buf, user_buf, buf_size)) + if (!copy_from_iter_full(buf, buf_size, from)) return -EFAULT; =20 buf[buf_size] =3D '\0'; @@ -1094,13 +1087,13 @@ rtw89_debug_priv_mac_mem_dump_get(struct seq_file *= m, void *v) } =20 static ssize_t -rtw89_debug_priv_mac_dbg_port_dump_select(struct file *filp, - const char __user *user_buf, - size_t count, loff_t *loff) +rtw89_debug_priv_mac_dbg_port_dump_select(struct kiocb *iocb, + struct iov_iter *from) { - struct seq_file *m =3D (struct seq_file *)filp->private_data; + struct seq_file *m =3D iocb->ki_filp->private_data; struct rtw89_debugfs_priv *debugfs_priv =3D m->private; struct rtw89_dev *rtwdev =3D debugfs_priv->rtwdev; + size_t count =3D iov_iter_count(from); char buf[32]; size_t buf_size; int sel, set; @@ -1108,7 +1101,7 @@ rtw89_debug_priv_mac_dbg_port_dump_select(struct file= *filp, bool enable; =20 buf_size =3D min(count, sizeof(buf) - 1); - if (copy_from_user(buf, user_buf, buf_size)) + if (!copy_from_iter_full(buf, buf_size, from)) return -EFAULT; =20 buf[buf_size] =3D '\0'; @@ -3222,15 +3215,15 @@ rtw89_debug_priv_mac_dbg_port_dump_get(struct seq_f= ile *m, void *v) return 0; }; =20 -static u8 *rtw89_hex2bin_user(struct rtw89_dev *rtwdev, - const char __user *user_buf, size_t count) +static u8 *rtw89_hex2bin_user(struct rtw89_dev *rtwdev, struct iov_iter *f= rom) { + size_t count =3D iov_iter_count(from); char *buf; u8 *bin; int num; int err =3D 0; =20 - buf =3D memdup_user(user_buf, count); + buf =3D iterdup(from, count); if (IS_ERR(buf)) return buf; =20 @@ -3253,17 +3246,17 @@ static u8 *rtw89_hex2bin_user(struct rtw89_dev *rtw= dev, return err ? ERR_PTR(err) : bin; } =20 -static ssize_t rtw89_debug_priv_send_h2c_set(struct file *filp, - const char __user *user_buf, - size_t count, loff_t *loff) +static ssize_t rtw89_debug_priv_send_h2c_set(struct kiocb *iocb, + struct iov_iter *from) { - struct rtw89_debugfs_priv *debugfs_priv =3D filp->private_data; + struct rtw89_debugfs_priv *debugfs_priv =3D iocb->ki_filp->private_data; struct rtw89_dev *rtwdev =3D debugfs_priv->rtwdev; + size_t count =3D iov_iter_count(from); u8 *h2c; int ret; u16 h2c_len =3D count / 2; =20 - h2c =3D rtw89_hex2bin_user(rtwdev, user_buf, count); + h2c =3D rtw89_hex2bin_user(rtwdev, from); if (IS_ERR(h2c)) return -EFAULT; =20 @@ -3291,17 +3284,17 @@ rtw89_debug_priv_early_h2c_get(struct seq_file *m, = void *v) } =20 static ssize_t -rtw89_debug_priv_early_h2c_set(struct file *filp, const char __user *user_= buf, - size_t count, loff_t *loff) +rtw89_debug_priv_early_h2c_set(struct kiocb *iocb, struct iov_iter *from) { - struct seq_file *m =3D (struct seq_file *)filp->private_data; + struct seq_file *m =3D iocb->ki_filp->private_data; struct rtw89_debugfs_priv *debugfs_priv =3D m->private; struct rtw89_dev *rtwdev =3D debugfs_priv->rtwdev; + size_t count =3D iov_iter_count(from); struct rtw89_early_h2c *early_h2c; u8 *h2c; u16 h2c_len =3D count / 2; =20 - h2c =3D rtw89_hex2bin_user(rtwdev, user_buf, count); + h2c =3D rtw89_hex2bin_user(rtwdev, from); if (IS_ERR(h2c)) return -EFAULT; =20 @@ -3372,17 +3365,17 @@ enum rtw89_dbg_crash_simulation_type { }; =20 static ssize_t -rtw89_debug_priv_fw_crash_set(struct file *filp, const char __user *user_b= uf, - size_t count, loff_t *loff) +rtw89_debug_priv_fw_crash_set(struct kiocb *iocb, struct iov_iter *from) { - struct seq_file *m =3D (struct seq_file *)filp->private_data; + struct seq_file *m =3D iocb->ki_filp->private_data; struct rtw89_debugfs_priv *debugfs_priv =3D m->private; struct rtw89_dev *rtwdev =3D debugfs_priv->rtwdev; int (*sim)(struct rtw89_dev *rtwdev); + size_t count =3D iov_iter_count(from); u8 crash_type; int ret; =20 - ret =3D kstrtou8_from_user(user_buf, count, 0, &crash_type); + ret =3D kstrtou8_from_iter(from, count, 0, &crash_type); if (ret) return -EINVAL; =20 @@ -3420,17 +3413,17 @@ static int rtw89_debug_priv_btc_info_get(struct seq= _file *m, void *v) return 0; } =20 -static ssize_t rtw89_debug_priv_btc_manual_set(struct file *filp, - const char __user *user_buf, - size_t count, loff_t *loff) +static ssize_t rtw89_debug_priv_btc_manual_set(struct kiocb *iocb, + struct iov_iter *from) { - struct rtw89_debugfs_priv *debugfs_priv =3D filp->private_data; + struct rtw89_debugfs_priv *debugfs_priv =3D iocb->ki_filp->private_data; struct rtw89_dev *rtwdev =3D debugfs_priv->rtwdev; struct rtw89_btc *btc =3D &rtwdev->btc; const struct rtw89_btc_ver *ver =3D btc->ver; + size_t count =3D iov_iter_count(from); int ret; =20 - ret =3D kstrtobool_from_user(user_buf, count, &btc->manual_ctrl); + ret =3D kstrtobool_from_iter(from, count, &btc->manual_ctrl); if (ret) return ret; =20 @@ -3442,16 +3435,16 @@ static ssize_t rtw89_debug_priv_btc_manual_set(stru= ct file *filp, return count; } =20 -static ssize_t rtw89_debug_fw_log_manual_set(struct file *filp, - const char __user *user_buf, - size_t count, loff_t *loff) +static ssize_t rtw89_debug_fw_log_manual_set(struct kiocb *iocb, + struct iov_iter *from) { - struct rtw89_debugfs_priv *debugfs_priv =3D filp->private_data; + struct rtw89_debugfs_priv *debugfs_priv =3D iocb->ki_filp->private_data; struct rtw89_dev *rtwdev =3D debugfs_priv->rtwdev; struct rtw89_fw_log *log =3D &rtwdev->fw.log; + size_t count =3D iov_iter_count(from); bool fw_log_manual; =20 - if (kstrtobool_from_user(user_buf, count, &fw_log_manual)) + if (kstrtobool_from_iter(from, count, &fw_log_manual)) goto out; =20 mutex_lock(&rtwdev->mutex); @@ -3807,17 +3800,17 @@ rtw89_debug_priv_disable_dm_get(struct seq_file *m,= void *v) } =20 static ssize_t -rtw89_debug_priv_disable_dm_set(struct file *filp, const char __user *user= _buf, - size_t count, loff_t *loff) +rtw89_debug_priv_disable_dm_set(struct kiocb *iocb, struct iov_iter *from) { - struct seq_file *m =3D (struct seq_file *)filp->private_data; + struct seq_file *m =3D iocb->ki_filp->private_data; struct rtw89_debugfs_priv *debugfs_priv =3D m->private; struct rtw89_dev *rtwdev =3D debugfs_priv->rtwdev; struct rtw89_hal *hal =3D &rtwdev->hal; + size_t count =3D iov_iter_count(from); u32 conf; int ret; =20 - ret =3D kstrtou32_from_user(user_buf, count, 0, &conf); + ret =3D kstrtou32_from_iter(from, count, 0, &conf); if (ret) return -EINVAL; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-il1-f182.google.com (mail-il1-f182.google.com [209.85.166.182]) (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 6118C1DB555 for ; Thu, 11 Apr 2024 15:40:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.182 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850019; cv=none; b=d42fTcdbVCo9eTXUqkA3b7+0ni5PJIxnUzGLBXK2Y5WS8yIVNdfRFZp+oxxC8DY3eEr4Q8KURgG3UdyBWUWKSlQRBleafmQBdFcSwn0WioppTC1Fqe0WmVhYWW+DsqNPCXUWsm7nuQG2dkht6tdrAkERihnMifp+3e9X2Y5Zi+0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850019; c=relaxed/simple; bh=vXyC4AANKAr6PlBsv/DI+7LfBdf8UqFXFRsfcGceumo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ecWBJq0WErVN3bIf+ceh/8lQna9Odtxk1GNC/ReJeZP3q6N2mvUvKg44dMl9xUw/ls5KU4RBECskWSrbyrM1Y1iy2oi81xobCoDj/JiTXz569AGd0bm8zyDUZY5Sv/rrwOsZdfuozhZ7JXavQuZeOjZnlkLklH1diOt+V9zJtFQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=0kAX04MT; arc=none smtp.client-ip=209.85.166.182 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="0kAX04MT" Received: by mail-il1-f182.google.com with SMTP id e9e14a558f8ab-36a34b68277so117835ab.0 for ; Thu, 11 Apr 2024 08:40:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850016; x=1713454816; 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=rZR+y8WqPnE3aAKTVmYOX0W0a6fUUTCd7lWFhDGiZig=; b=0kAX04MTZ/+ob9qSdz0Gy6C7OiwOp3hG3EDa1Xs0JujzX7Gklpbc/4CFwIOsRp7gTa K4LmAa7MUAkHrMVXZNynqyslQqa8crcaHC7n4jzCB4TI2A0zwZhxBXD8S/chwi15YEnQ 6otfeUdUswe/NkhPYAlztFvwjgLG46PKHZk9gUS/QLdbFmXCYAMZJ+S4G1jrwLvv4cGN tdBzj+4wfUnMkoDHGhZLAdOQfjFRIPyP992YUIHdoQ/iZbLpFJomhNaaf2u7M7TW3VE/ SKsilNm8U7hs0ZbC/ycop43PXQETqgAL3Ho8HZvr4S51x5L9shS0jTNqW15AhOQ+Zm5l U6dw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850016; x=1713454816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=rZR+y8WqPnE3aAKTVmYOX0W0a6fUUTCd7lWFhDGiZig=; b=U08z4a/CVL1r5R4Vd5rQthhppbvf30YPRPx0DThhKC+OP80VAg95R6XfxZMNyQmr+0 RM+wKFtGKR7x8rkUFjBx6yUnOWp0fmAitYuU3co7iGSrUAenASJosrbXkajSh9ms4eaN o6lmEU53Q73uJvfbHkgk9AB+injoW+XNrggQli1xtTVaQqIVCMZO8iufhYAxRus3S+Cg xbdYaRVs51CTVz+HXMdG0FXfcFGK6RCZojQHO4PcsxlqjhEUV+HJMTkywKU/P128zbtC NQPt3KhW3zybWH/kwnuiWyTS9dC4Si9mzWPeYwgNiwkm2c1PPc13ilwYOEXw3L+diJ07 yt+Q== X-Gm-Message-State: AOJu0YyCjc/3nlVbDJsyQrPN8K8q+UhhhY/unDyhkdK3tebYqjXTO9aL i81eS39EPIcVH83g1bTd9ZsFF4GLy+780Ghk+uWR4fdxQyXw+KHjB368dtdNkhxxmknKolbqh8c v X-Google-Smtp-Source: AGHT+IFhGRBLjxgkcYVyOxDEMZLFhGzdqqzrpPiJxYI6eW6Zp7Uk+QDvoZOd9kbY/sIdH34K54K4QQ== X-Received: by 2002:a05:6602:4ed7:b0:7d5:ddc8:504d with SMTP id gk23-20020a0566024ed700b007d5ddc8504dmr197943iob.0.1712850016064; Thu, 11 Apr 2024 08:40:16 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.40.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:40:15 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 311/437] wifi: rsi: rsi_91x_debugfs: convert to read/write iterators Date: Thu, 11 Apr 2024 09:17:31 -0600 Message-ID: <20240411153126.16201-312-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/net/wireless/rsi/rsi_91x_debugfs.c | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/drivers/net/wireless/rsi/rsi_91x_debugfs.c b/drivers/net/wirel= ess/rsi/rsi_91x_debugfs.c index c528e6ca2c8d..4a8e71ff7ba6 100644 --- a/drivers/net/wireless/rsi/rsi_91x_debugfs.c +++ b/drivers/net/wireless/rsi/rsi_91x_debugfs.c @@ -222,25 +222,21 @@ static int rsi_debug_read(struct inode *inode, /** * rsi_debug_zone_write() - This function writes into hal queues as per us= er * requirement. - * @filp: Pointer to the file structure. - * @buff: Pointer to the character buffer. - * @len: Length of the data to be written into buffer. - * @data: Pointer to the data. + * @iocb: Metadata for IO. + * @from: iov_iter to copy data from. * * Return: len: Number of bytes read. */ -static ssize_t rsi_debug_zone_write(struct file *filp, - const char __user *buff, - size_t len, - loff_t *data) +static ssize_t rsi_debug_zone_write(struct kiocb *iocb, struct iov_iter *f= rom) { + size_t len =3D iov_iter_count(from); unsigned long dbg_zone; int ret; =20 if (!len) return 0; =20 - ret =3D kstrtoul_from_user(buff, len, 16, &dbg_zone); + ret =3D kstrtoul_from_iter(from, len, 16, &dbg_zone); =20 if (ret) return ret; @@ -252,16 +248,16 @@ static ssize_t rsi_debug_zone_write(struct file *filp, #define FOPS(fopen) { \ .owner =3D THIS_MODULE, \ .open =3D (fopen), \ - .read =3D seq_read, \ + .read_iter =3D seq_read_iter, \ .llseek =3D seq_lseek, \ } =20 #define FOPS_RW(fopen, fwrite) { \ .owner =3D THIS_MODULE, \ .open =3D (fopen), \ - .read =3D seq_read, \ + .read_iter =3D seq_read_iter, \ .llseek =3D seq_lseek, \ - .write =3D (fwrite), \ + .write_iter =3D (fwrite), \ } =20 static const struct rsi_dbg_files dev_debugfs_files[] =3D { --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f43.google.com (mail-io1-f43.google.com [209.85.166.43]) (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 24ED21DCA20 for ; Thu, 11 Apr 2024 15:40:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850020; cv=none; b=JRBF7O7dQM+9zYMLzEshJzg4zj5e3NemgfOztlCjpNtknpC5+t/NMUbPIST+egRDUsBxdsZsu1Dv5Ecp7DwRX5K3PSx3hcPMAVFb39nkwwm7Q53O5UT+t4sYA9ye8EqIMpCGx7+oXzua0ZU8qApBESXVhCqUm5YSIgUithlZRzg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850020; c=relaxed/simple; bh=js9GE4LMX9Z2We0bcU81rJzAr5QwVHpMDDZ2Y0rzVX4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=UVnasrETtRDLwVRtxRhZg6iZ+h2ArXxSNUXRIMQ9fBRcmg2avS48LygJVJEbxJMFFQAxq9N+fv05BqLWI//os2mecUxp3EpDtDsjA0lYSfvGUQnd9mG3GIK5383/oKN4UfWiOCGbvVOpZ+yk7FcjYCXSb1mF/iaNvBA0Q0vyqX8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=QA3OhOYz; arc=none smtp.client-ip=209.85.166.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="QA3OhOYz" Received: by mail-io1-f43.google.com with SMTP id ca18e2360f4ac-7cc0e831e11so170599239f.1 for ; Thu, 11 Apr 2024 08:40:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850018; x=1713454818; 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=A/QYmI5ugy0XGE/tgifhxkcM3dLUJZaiJX3VosdM4eY=; b=QA3OhOYzc9gWYWYf/WdOaUKkm8HYHw0yZ4JiFar2uSHG/nkIkMT7D9HU2BtXRmL4oL sZEhtHS5o6V/rD9gVYfupDV78KWX4zhBbRMBLGuR7vwtt3xJCOFJSk6M9ZWaDdVUfBsI v9ezZzohGCMVVhkeLDxtSfUDJgP22QwZs53q/09WXVMPiy3xurVn8XxN9zSQjecCI2Ax McWwkdU11C23CuEDayxrSO27wkWxQ6WxFjitVwzRPJ6vhzl/oN0w50cX+n6HfdN9C3gR 5kxkn9SzcNCEv8m9dsEx49evaqRlLSbbmwiH4mPG99smmXg51z+CmJunHqP7AAB55vPj CnGw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850018; x=1713454818; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=A/QYmI5ugy0XGE/tgifhxkcM3dLUJZaiJX3VosdM4eY=; b=a7nmYUgp6AWrTLS6WOdXj9xQNYp/OPeOdIujSei/9s1jPM76ioLRnqZmtYiRLck60F Hbstx/8D2zX2fXThXXCW6X1IPNzq6c+4MJfyBBiJk3yA0bRSYhYS+ph+PmG/sB8sqrGo li7woqr0EkO1RWlBJEX+U3MtyP1ZD54Sv/Daj2NUFYMGCO1FnTqfFp5SUCKA9zqhAz0D 73XS0p5gEyNj5YVcD6P7tw7dPMTj8l0uIIMivzkOpB6GJQCUepp1Q4dvdugpJ22g6bW2 HESBL1gUaC4wxoT2iSfhYCgC4j6mcRgZEUs8yc2yd/VB0eNLndyPOXv4zVQDNdL/lXMm Wyow== X-Gm-Message-State: AOJu0Yy63A0EcsNnLNSLtBw5WMNbq1EtIc/xlAxDUamRikBb15lJiyol 0jp76fa8nhDQk4VHQTXcOEEjhfH3P1h2SeruusPq4mxc3WgJz3/8qZ/hh47WHJylELmlJs4TzWV p X-Google-Smtp-Source: AGHT+IHlwhRWNDOoSAht86PQWeTOgXnXcNF3LMoHxueV6PMXS5IUh0mQ1ODNOW88upskCt2xPxc1BQ== X-Received: by 2002:a6b:5b10:0:b0:7d0:bd2b:43ba with SMTP id v16-20020a6b5b10000000b007d0bd2b43bamr232654ioh.0.1712850018012; Thu, 11 Apr 2024 08:40:18 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.40.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:40:16 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 312/437] drivers/net/wireless/silabs: convert to read/write iterators Date: Thu, 11 Apr 2024 09:17:32 -0600 Message-ID: <20240411153126.16201-313-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/net/wireless/silabs/wfx/debug.c | 34 ++++++++++++------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/drivers/net/wireless/silabs/wfx/debug.c b/drivers/net/wireless= /silabs/wfx/debug.c index e8265208f9a5..bd39be6a7f58 100644 --- a/drivers/net/wireless/silabs/wfx/debug.c +++ b/drivers/net/wireless/silabs/wfx/debug.c @@ -202,21 +202,21 @@ static int wfx_tx_power_loop_show(struct seq_file *se= q, void *v) } DEFINE_SHOW_ATTRIBUTE(wfx_tx_power_loop); =20 -static ssize_t wfx_send_pds_write(struct file *file, const char __user *us= er_buf, - size_t count, loff_t *ppos) +static ssize_t wfx_send_pds_write(struct kiocb *iocb, struct iov_iter *fro= m) { - struct wfx_dev *wdev =3D file->private_data; + struct wfx_dev *wdev =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); char *buf; int ret; =20 - if (*ppos !=3D 0) { + if (iocb->ki_pos !=3D 0) { dev_dbg(wdev->dev, "PDS data must be written in one transaction"); return -EBUSY; } - buf =3D memdup_user(user_buf, count); + buf =3D iterdup(from, count); if (IS_ERR(buf)) return PTR_ERR(buf); - *ppos =3D *ppos + count; + iocb->ki_pos +=3D count; ret =3D wfx_send_pds(wdev, buf, count); kfree(buf); if (ret < 0) @@ -226,7 +226,7 @@ static ssize_t wfx_send_pds_write(struct file *file, co= nst char __user *user_buf =20 static const struct file_operations wfx_send_pds_fops =3D { .open =3D simple_open, - .write =3D wfx_send_pds_write, + .write_iter =3D wfx_send_pds_write, }; =20 struct dbgfs_hif_msg { @@ -236,10 +236,10 @@ struct dbgfs_hif_msg { int ret; }; =20 -static ssize_t wfx_send_hif_msg_write(struct file *file, const char __user= *user_buf, - size_t count, loff_t *ppos) +static ssize_t wfx_send_hif_msg_write(struct kiocb *iocb, struct iov_iter = *from) { - struct dbgfs_hif_msg *context =3D file->private_data; + struct dbgfs_hif_msg *context =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); struct wfx_dev *wdev =3D context->wdev; struct wfx_hif_msg *request; =20 @@ -255,7 +255,7 @@ static ssize_t wfx_send_hif_msg_write(struct file *file= , const char __user *user * memory pattern may help user. */ memset(context->reply, 0xFF, sizeof(context->reply)); - request =3D memdup_user(user_buf, count); + request =3D iterdup(from, count); if (IS_ERR(request)) return PTR_ERR(request); if (le16_to_cpu(request->len) !=3D count) { @@ -269,10 +269,10 @@ static ssize_t wfx_send_hif_msg_write(struct file *fi= le, const char __user *user return count; } =20 -static ssize_t wfx_send_hif_msg_read(struct file *file, char __user *user_= buf, - size_t count, loff_t *ppos) +static ssize_t wfx_send_hif_msg_read(struct kiocb *iocb, struct iov_iter *= to) { - struct dbgfs_hif_msg *context =3D file->private_data; + struct dbgfs_hif_msg *context =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(to); int ret; =20 if (count > sizeof(context->reply)) @@ -283,7 +283,7 @@ static ssize_t wfx_send_hif_msg_read(struct file *file,= char __user *user_buf, if (context->ret < 0) return context->ret; /* Be careful, write() is waiting for a full message while read() only re= turns a payload */ - if (copy_to_user(user_buf, context->reply, count)) + if (!copy_to_iter_full(context->reply, count, to)) return -EFAULT; =20 return count; @@ -312,8 +312,8 @@ static int wfx_send_hif_msg_release(struct inode *inode= , struct file *file) static const struct file_operations wfx_send_hif_msg_fops =3D { .open =3D wfx_send_hif_msg_open, .release =3D wfx_send_hif_msg_release, - .write =3D wfx_send_hif_msg_write, - .read =3D wfx_send_hif_msg_read, + .write_iter =3D wfx_send_hif_msg_write, + .read_iter =3D wfx_send_hif_msg_read, }; =20 int wfx_debug_init(struct wfx_dev *wdev) --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-il1-f178.google.com (mail-il1-f178.google.com [209.85.166.178]) (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 0C73A1DDD0A for ; Thu, 11 Apr 2024 15:40:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.178 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850022; cv=none; b=e+oioAkUyneiuu31WhmU6SVaU9JlXLy9KYu1Z2z0ewbdwdbd365k4L0WwqRYxu7b+CUOfmR6yZFbMAjY3jdb3pNPvC3fhty8Pp5grf1h7zO+8QwKPjFGH6lEoXsy56Yv4K+WTCFsOJvo8UTQYdcP1WEmrlOHRl0HRuwkJOYsOX0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850022; c=relaxed/simple; bh=mnQjR+29ACbgwAY9h7aFa5xs7m/mD2V4HibbKVoxIyI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ntZEfteegP3oP4yR6xU3z34WDA/i6GPGKvcU/sLECZJ/kwsC+ntOuZpQx5qUQW0OG40xeBfkfFZu96D0ew2NkRsqOkAZHE/CP0zgNDQI/Dyn+7F1/CwHg6OvY0zUMv90APy1Qwb1DBC9meso48UU9uWM6PlXaO4hIwk769Jymyo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=PXWHTLRn; arc=none smtp.client-ip=209.85.166.178 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="PXWHTLRn" Received: by mail-il1-f178.google.com with SMTP id e9e14a558f8ab-36a34b68277so117985ab.0 for ; Thu, 11 Apr 2024 08:40:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850019; x=1713454819; 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=BF8EfNalKjE+Vd3fS/YbOv7IUIKv9MR0GBhWfWxE7cM=; b=PXWHTLRnv0AwoHj3QhIi2/mcxyY+pDQASi2/Eb5wZ9NIiHbW6BJmgVGE6YLjvo6cnc W4WwW8ov4x7IAEOdTsxLjuC+VXexghuBvHGHfGP+5eM1TTZZxgKJM6haKxaklD3ah82A A2mvScP7Ny5NIbY6Gq+E369LqXHkOP77u6EfJEufhuEve5oyHCimQ7c+z3f56Ush+iiZ m3woKM9wrUSYvvXNSij34U1iCsqXiOUTJlmCJwvFWl1vHpjSS+Gk2oQeKTijacqUT6YY QqDnSNbMWQ3TdwXjYU8BM3gXBfTrk4VEi+j57I8W1FvBObs+DDiHZntqbb0+y7XtbI46 hSzQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850019; x=1713454819; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=BF8EfNalKjE+Vd3fS/YbOv7IUIKv9MR0GBhWfWxE7cM=; b=B1DlwQLuRFkl6vdaC5r9Abj2iluOKXVXE79d92fmJO7HIvWNnZmibUyEkpmYMWFV8Z KYdER/WaBEQa9fU3oTt/SlLQo1oIs2HuBMtj4ptHNnVO/GuOmN7JxUwoI8mhDgEWthzu WQAtVffwYh/Qu1epDF/O2ri/yJh9Piz8EJt76MCYM+K1cWIo6s7A5HS6DDDYVpSWoIqY EobSPHApI5gCLM2RBhdMl8kjbZQRwOroZnow7Oj9XWp0lLpHQ9pJGtt+//Dm/OJqsvII 3v7O8gJZyKCIyZqXf6/h2iVljNyVZS4wn52c6tiz9ao+s63znawY7GuGXOC7VenCZyNg 2ivQ== X-Gm-Message-State: AOJu0Yy7xaZ6OOs8UdEPpu1xSGyK3FgmCnPvvRs3bjIsmkcge7pZIZPC JSVV+aN5NdF+U16F6IAX8NIC7yKB4osCijkQHRDV1v9Z2015IOz3pPvd7JstJs7XAhZJ0oTDSJx A X-Google-Smtp-Source: AGHT+IG+OcmEIUT79aDjGFU1tmEXf+pLUI9seL8wSRpbRGrjgeVFY64GwY+wzo91p9cEHv2meRvKKQ== X-Received: by 2002:a6b:4e14:0:b0:7d6:631d:7b0 with SMTP id c20-20020a6b4e14000000b007d6631d07b0mr198619iob.1.1712850019634; Thu, 11 Apr 2024 08:40:19 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.40.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:40:18 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 313/437] drivers/net/wireless/st: convert to read/write iterators Date: Thu, 11 Apr 2024 09:17:33 -0600 Message-ID: <20240411153126.16201-314-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/net/wireless/st/cw1200/debug.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/net/wireless/st/cw1200/debug.c b/drivers/net/wireless/= st/cw1200/debug.c index 8686929c70df..425fc06a9d38 100644 --- a/drivers/net/wireless/st/cw1200/debug.c +++ b/drivers/net/wireless/st/cw1200/debug.c @@ -332,15 +332,15 @@ static int cw1200_counters_show(struct seq_file *seq,= void *v) =20 DEFINE_SHOW_ATTRIBUTE(cw1200_counters); =20 -static ssize_t cw1200_wsm_dumps(struct file *file, - const char __user *user_buf, size_t count, loff_t *ppos) +static ssize_t cw1200_wsm_dumps(struct kiocb *iocb, struct iov_iter *from) { - struct cw1200_common *priv =3D file->private_data; + struct cw1200_common *priv =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); char buf[1]; =20 if (!count) return -EINVAL; - if (copy_from_user(buf, user_buf, 1)) + if (!copy_from_iter_full(buf, 1, from)) return -EFAULT; =20 if (buf[0] =3D=3D '1') @@ -353,7 +353,7 @@ static ssize_t cw1200_wsm_dumps(struct file *file, =20 static const struct file_operations fops_wsm_dumps =3D { .open =3D simple_open, - .write =3D cw1200_wsm_dumps, + .write_iter =3D cw1200_wsm_dumps, .llseek =3D default_llseek, }; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f54.google.com (mail-io1-f54.google.com [209.85.166.54]) (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 96EC21DDD1B for ; Thu, 11 Apr 2024 15:40:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850023; cv=none; b=nn3VA2fsDQ5BwgYkuq3prEdP4CS56vLP+ZSzFCOAFy0cUTuv+nA4vybWKwzWTVmNobDFzQYwXvm5fiCFa5R2Xtki6CRjR5ugftMBdXkRjDmbEcO/9DOykAjNzCQucBhz8Qj3fHQA4IV0HClNT/rii2W4KOmJSMqwxaqJWduEU0s= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850023; c=relaxed/simple; bh=Ts4z5nH+J3H3v3TlBYfnvZn++qcAj7pfsChb5zFTl2k=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=BYwrrcJI44IDMB5cscMmeIAAHkqcQX1FaC3q7uibW4eZtkaT3qMW/LLJSiJRzdN+MDpiXBEsQdx4eRz+o6yVo9M+ehZvnEX1bivaoc/Ty4UMcQ+hPJKYakDrwL19W9Ao4XMSa9YU6v3UE6y4bC3xF/wclWoXoKxVCxxF8z58Vg4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=HWbc4bOQ; arc=none smtp.client-ip=209.85.166.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="HWbc4bOQ" Received: by mail-io1-f54.google.com with SMTP id ca18e2360f4ac-7d67d1073easo9877439f.0 for ; Thu, 11 Apr 2024 08:40:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850020; x=1713454820; 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=SJc/6DfGX1FnUExrryNCJXFJYeZyZzWO7T2H6Bi+Lw4=; b=HWbc4bOQroVSbTXEjMaMrhnYq3C63M0FQ38Y3ZkHd1IaULsN8VEW63+ysSUWSbienp qgX3FDUt0mhRJ+mNioaZC0sKBFKAc9bnM/ZWbXEm/HVxE0gRNxna8mt3oNGF91HgFupH V+qpA63uGK3wBzAx+cjoJYer2oOtveg7bvqwoLPRSRjimmEg2Pw/GrYC+MZP8D8QbfBa m3NQPH/8IMjgGtykOTPlrO6mheIoHLyB7SjInAKfAwG48Yvpm0nRcXXFa+xCUoFS97yz a3JQTUcCBMMSkBwHXefpg39mUa/L4c+oz66iZM/4g2Fq5x3YLZpkArvSskpdRHzvk9Fp oQXw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850020; x=1713454820; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=SJc/6DfGX1FnUExrryNCJXFJYeZyZzWO7T2H6Bi+Lw4=; b=p9zppJyj7FFppMo9xpbAcKSb/HbixIoLC5uLo0jtMd4kDJHJGxvuyR8nuh8rGExT2l ke5DRpg4ZMRSPaIxCYb+fdV/jtk/ZhLmCdgzQAfz6C8nwLGRquuqQt8dWYZ1dwEcbvXn DaTXoI1r9Hw4b+lb/F5cZZID+rx0IMJeS/fFnRJJhtogLJSZo62mLBvDUtxSqEUK8rIs /QArqW0zxdPVQzXEo9rXkragbdiP09oe93jfcUgF11UbFfE4vdV6fIpHPeKg6N+yQL24 ASTzCeGXX72yuJTvEGpVgc5q8qXGu/K659InAiYESfEbq+vz9e72ra5Zidk/EBFSPdYh 7tOA== X-Gm-Message-State: AOJu0YyxNr6Yn2H1xQJ715aCUNz88b2iRTn83INlfq6pMWCYof30HLu6 GYJb7qWS4R/A8NTmKK1wPGNU8l5wCbKthrpOxiz+HqAf2+4WFIAJYyRcv+ty9AgJ615+1t/C19y s X-Google-Smtp-Source: AGHT+IHV/bde4YDfxqKdE7euAUS0YNoCb0yDygzZUdQOkCQlaAbeKHGABEdy5f50MiblGbcrD2Phow== X-Received: by 2002:a6b:7b05:0:b0:7d6:60dc:bc8e with SMTP id l5-20020a6b7b05000000b007d660dcbc8emr203893iop.1.1712850020323; Thu, 11 Apr 2024 08:40:20 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.40.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:40:19 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 314/437] drivers/net/ieee802154: convert to read/write iterators Date: Thu, 11 Apr 2024 09:17:34 -0600 Message-ID: <20240411153126.16201-315-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/net/ieee802154/ca8210.c | 29 ++++++++++++----------------- 1 file changed, 12 insertions(+), 17 deletions(-) diff --git a/drivers/net/ieee802154/ca8210.c b/drivers/net/ieee802154/ca821= 0.c index e685a7f946f0..af2bf8c24572 100644 --- a/drivers/net/ieee802154/ca8210.c +++ b/drivers/net/ieee802154/ca8210.c @@ -2443,14 +2443,12 @@ static int ca8210_test_check_upstream(u8 *buf, void= *device_ref) * Return: 0 or linux error code */ static ssize_t ca8210_test_int_user_write( - struct file *filp, - const char __user *in_buf, - size_t len, - loff_t *off -) + struct kiocb *iocb, + struct iov_iter *from) { int ret; - struct ca8210_priv *priv =3D filp->private_data; + struct ca8210_priv *priv =3D iocb->ki_filp->private_data; + size_t len =3D iov_iter_count(from); u8 command[CA8210_SPI_BUF_SIZE]; =20 memset(command, SPI_IDLE, 6); @@ -2463,7 +2461,7 @@ static ssize_t ca8210_test_int_user_write( return -EBADE; } =20 - ret =3D copy_from_user(command, in_buf, len); + ret =3D !copy_from_iter_full(command, len, from); if (ret) { dev_err( &priv->spi->dev, @@ -2518,18 +2516,15 @@ static ssize_t ca8210_test_int_user_write( * Return: number of bytes read */ static ssize_t ca8210_test_int_user_read( - struct file *filp, - char __user *buf, - size_t len, - loff_t *offp -) + struct kiocb *iocb, + struct iov_iter *to) { int i, cmdlen; - struct ca8210_priv *priv =3D filp->private_data; + struct ca8210_priv *priv =3D iocb->ki_filp->private_data; unsigned char *fifo_buffer; unsigned long bytes_not_copied; =20 - if (filp->f_flags & O_NONBLOCK) { + if (iocb->ki_filp->f_flags & O_NONBLOCK) { /* Non-blocking mode */ if (kfifo_is_empty(&priv->test.up_fifo)) return 0; @@ -2551,7 +2546,7 @@ static ssize_t ca8210_test_int_user_read( cmdlen =3D fifo_buffer[1]; bytes_not_copied =3D cmdlen + 2; =20 - bytes_not_copied =3D copy_to_user(buf, fifo_buffer, bytes_not_copied); + bytes_not_copied =3D !copy_to_iter_full(fifo_buffer, bytes_not_copied, to= ); if (bytes_not_copied > 0) { dev_err( &priv->spi->dev, @@ -2626,8 +2621,8 @@ static __poll_t ca8210_test_int_poll( } =20 static const struct file_operations test_int_fops =3D { - .read =3D ca8210_test_int_user_read, - .write =3D ca8210_test_int_user_write, + .read_iter =3D ca8210_test_int_user_read, + .write_iter =3D ca8210_test_int_user_write, .open =3D ca8210_test_int_open, .release =3D NULL, .unlocked_ioctl =3D ca8210_test_int_ioctl, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f44.google.com (mail-io1-f44.google.com [209.85.166.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 2AC611DED69 for ; Thu, 11 Apr 2024 15:40:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850025; cv=none; b=BhGFvRrFhh9kT2d/jHV6j68lpNBTOd30sBewRK7eai4UgI/WEJbpGmZ0Hh3z7/W7n5sCLHMJ6E4i6wAVkqQt8fqTaBCP0/co9aFb54xGdFjJEpVqEeZIOhIHAAFdNMmAU0gQm4l4syctqFF0ovU1TMn3RPWRCQ+CzQN1hQ87CzY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850025; c=relaxed/simple; bh=jfuPh7jOe1pir85UGVWuyH6noSfb2+TNninVoiZkPRE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=mNS7YxVLV0am+48l2VsJ3ch1nG+nkFWY+Jz9ms44Q4fj6BLvoOjEZ+o3MCUo5lspP3zx4L7A3mcmmhl31r89TKf9iGzrlFKuw58AdGRjE8fJP5MeVVTm1lEwEtsIh0ElofPiRewbuLTuAwqBkL4ZsZrV6/PjBV0y0TeilZi3HPY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=ko7xvst8; arc=none smtp.client-ip=209.85.166.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="ko7xvst8" Received: by mail-io1-f44.google.com with SMTP id ca18e2360f4ac-7d5ed700c2dso16230139f.0 for ; Thu, 11 Apr 2024 08:40:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850022; x=1713454822; 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=hSPz88yQfRnAL2hZ2Bi3ijQOs+uqL4F0A1jPmmi3GCw=; b=ko7xvst8mHuOxohNRkvbtGYMh7mQwU1ph7ZPqZS9nZ/XxxRiMgSU4Yx9FwdTh6yidJ lBfd+Fl0ffzRz89jZilmdpoi8wNQNlLvAhQCzegqPUMxbt2TKTfJlKveH9TdUtQ4sF2r NooZN9cizK4Zl2qK2PgE9vL5DoqYPx8Ym51C4WOcQssFxBiPReuef5d7tgNuhXEEHrwo GvApJ0rd6YowIo4h/tIAfxFKWtx9OLqXTD+o1wC4YxUjUsFkoweNE/3E10P/1U3aHilP yOGnzitMl1mPijoJ1cJtENaBATKOBjE779PIhEMQWtM5EBzY773Ny/2FdbFD2sFiHw7I RXXg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850022; x=1713454822; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=hSPz88yQfRnAL2hZ2Bi3ijQOs+uqL4F0A1jPmmi3GCw=; b=o9So+Jaq4uzBo1y1P1UmERax6dUPUKskmbnAQxTzwPXfH/z8Qzib1EDJuN5UxW0iDa rciCJC+bsDnK3q6KwpEYxaKlYZbey6z6se8ar+4nkcHxmcWBWJWbpTLyttN6fHibjbki fZT6/UTcpC4VBtJAOrTp0nMoWfjIFdAnNB/C1WNP68jGxN014tt9awCS3cy3hw099a4O 9TZI0DZPKzc92ehqotdasm49nC6yHwRVczsMUkQZsHngCpkVBO2nqzEMYt6GuXJI37XL eqIagnbqhRp8hNigJiSrDxypsQVj+YlVTcMEkeZpUfqfk8QNXZAfogeJbgGyVctem7fe jgrQ== X-Gm-Message-State: AOJu0Yzbn8ibXNgGtB+NSQ0WCylHNfkBmxL2IoCYUs33KlbkulXNafEs YBK4PjZY/eSBuF8UtA40r4H7Ok6zZE0WvGDWi40nBFPF5Zv52MTwf6Cy2Skz2M+PHRh1jBCBhuW E X-Google-Smtp-Source: AGHT+IHXD7LmtwxxXWUpu4JFC4KKXTBQrU6itFof8DoKFZ1wK4g0iK6JMZFgaI0y24cAmIjt4PwOiw== X-Received: by 2002:a6b:cd08:0:b0:7d5:fe3e:90ff with SMTP id d8-20020a6bcd08000000b007d5fe3e90ffmr210559iog.0.1712850021930; Thu, 11 Apr 2024 08:40:21 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.40.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:40:20 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 315/437] drivers/net/netdevsim: convert to read/write iterators Date: Thu, 11 Apr 2024 09:17:35 -0600 Message-ID: <20240411153126.16201-316-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/net/netdevsim/dev.c | 73 ++++++++++++++--------------- drivers/net/netdevsim/fib.c | 16 +++---- drivers/net/netdevsim/health.c | 12 ++--- drivers/net/netdevsim/hwstats.c | 13 +++-- drivers/net/netdevsim/ipsec.c | 10 ++-- drivers/net/netdevsim/psample.c | 12 ++--- drivers/net/netdevsim/udp_tunnels.c | 9 ++-- 7 files changed, 69 insertions(+), 76 deletions(-) diff --git a/drivers/net/netdevsim/dev.c b/drivers/net/netdevsim/dev.c index 92a7a36b93ac..41d49c53da39 100644 --- a/drivers/net/netdevsim/dev.c +++ b/drivers/net/netdevsim/dev.c @@ -93,11 +93,10 @@ nsim_dev_take_snapshot(struct devlink *devlink, return 0; } =20 -static ssize_t nsim_dev_take_snapshot_write(struct file *file, - const char __user *data, - size_t count, loff_t *ppos) +static ssize_t nsim_dev_take_snapshot_write(struct kiocb *iocb, + struct iov_iter *from) { - struct nsim_dev *nsim_dev =3D file->private_data; + struct nsim_dev *nsim_dev =3D iocb->ki_filp->private_data; struct devlink *devlink; u8 *dummy_data; int err; @@ -124,21 +123,20 @@ static ssize_t nsim_dev_take_snapshot_write(struct fi= le *file, return err; } =20 - return count; + return iov_iter_count(from); } =20 static const struct file_operations nsim_dev_take_snapshot_fops =3D { .open =3D simple_open, - .write =3D nsim_dev_take_snapshot_write, + .write_iter =3D nsim_dev_take_snapshot_write, .llseek =3D generic_file_llseek, .owner =3D THIS_MODULE, }; =20 -static ssize_t nsim_dev_trap_fa_cookie_read(struct file *file, - char __user *data, - size_t count, loff_t *ppos) +static ssize_t nsim_dev_trap_fa_cookie_read(struct kiocb *iocb, + struct iov_iter *to) { - struct nsim_dev *nsim_dev =3D file->private_data; + struct nsim_dev *nsim_dev =3D iocb->ki_filp->private_data; struct flow_action_cookie *fa_cookie; unsigned int buf_len; ssize_t ret; @@ -159,7 +157,7 @@ static ssize_t nsim_dev_trap_fa_cookie_read(struct file= *file, bin2hex(buf, fa_cookie->cookie, fa_cookie->cookie_len); spin_unlock(&nsim_dev->fa_cookie_lock); =20 - ret =3D simple_read_from_buffer(data, count, ppos, buf, buf_len); + ret =3D simple_copy_to_iter(buf, &iocb->ki_pos, buf_len, to); =20 kfree(buf); return ret; @@ -169,23 +167,23 @@ static ssize_t nsim_dev_trap_fa_cookie_read(struct fi= le *file, return ret; } =20 -static ssize_t nsim_dev_trap_fa_cookie_write(struct file *file, - const char __user *data, - size_t count, loff_t *ppos) +static ssize_t nsim_dev_trap_fa_cookie_write(struct kiocb *iocb, + struct iov_iter *from) { - struct nsim_dev *nsim_dev =3D file->private_data; + struct nsim_dev *nsim_dev =3D iocb->ki_filp->private_data; struct flow_action_cookie *fa_cookie; + size_t count =3D iov_iter_count(from); size_t cookie_len; ssize_t ret; char *buf; =20 - if (*ppos !=3D 0) + if (iocb->ki_pos !=3D 0) return -EINVAL; cookie_len =3D (count - 1) / 2; if ((count - 1) % 2) return -EINVAL; =20 - buf =3D memdup_user(data, count); + buf =3D iterdup(from, count); if (IS_ERR(buf)) return PTR_ERR(buf); =20 @@ -218,42 +216,42 @@ static ssize_t nsim_dev_trap_fa_cookie_write(struct f= ile *file, =20 static const struct file_operations nsim_dev_trap_fa_cookie_fops =3D { .open =3D simple_open, - .read =3D nsim_dev_trap_fa_cookie_read, - .write =3D nsim_dev_trap_fa_cookie_write, + .read_iter =3D nsim_dev_trap_fa_cookie_read, + .write_iter =3D nsim_dev_trap_fa_cookie_write, .llseek =3D generic_file_llseek, .owner =3D THIS_MODULE, }; =20 -static ssize_t nsim_bus_dev_max_vfs_read(struct file *file, char __user *d= ata, - size_t count, loff_t *ppos) +static ssize_t nsim_bus_dev_max_vfs_read(struct kiocb *iocb, + struct iov_iter *to) { - struct nsim_dev *nsim_dev =3D file->private_data; + struct nsim_dev *nsim_dev =3D iocb->ki_filp->private_data; char buf[11]; ssize_t len; =20 len =3D scnprintf(buf, sizeof(buf), "%u\n", READ_ONCE(nsim_dev->nsim_bus_dev->max_vfs)); =20 - return simple_read_from_buffer(data, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 -static ssize_t nsim_bus_dev_max_vfs_write(struct file *file, - const char __user *data, - size_t count, loff_t *ppos) +static ssize_t nsim_bus_dev_max_vfs_write(struct kiocb *iocb, + struct iov_iter *from) { struct nsim_vf_config *vfconfigs; + size_t count =3D iov_iter_count(from); struct nsim_dev *nsim_dev; char buf[10]; ssize_t ret; u32 val; =20 - if (*ppos !=3D 0) + if (iocb->ki_pos !=3D 0) return 0; =20 if (count >=3D sizeof(buf)) return -ENOSPC; =20 - ret =3D copy_from_user(buf, data, count); + ret =3D !copy_from_iter_full(buf, count, from); if (ret) return -EFAULT; buf[count] =3D '\0'; @@ -271,7 +269,7 @@ static ssize_t nsim_bus_dev_max_vfs_write(struct file *= file, if (!vfconfigs) return -ENOMEM; =20 - nsim_dev =3D file->private_data; + nsim_dev =3D iocb->ki_filp->private_data; devl_lock(priv_to_devlink(nsim_dev)); /* Reject if VFs are configured */ if (nsim_dev_get_vfs(nsim_dev)) { @@ -279,7 +277,7 @@ static ssize_t nsim_bus_dev_max_vfs_write(struct file *= file, } else { swap(nsim_dev->vfconfigs, vfconfigs); WRITE_ONCE(nsim_dev->nsim_bus_dev->max_vfs, val); - *ppos +=3D count; + iocb->ki_pos +=3D count; ret =3D count; } devl_unlock(priv_to_devlink(nsim_dev)); @@ -290,8 +288,8 @@ static ssize_t nsim_bus_dev_max_vfs_write(struct file *= file, =20 static const struct file_operations nsim_dev_max_vfs_fops =3D { .open =3D simple_open, - .read =3D nsim_bus_dev_max_vfs_read, - .write =3D nsim_bus_dev_max_vfs_write, + .read_iter =3D nsim_bus_dev_max_vfs_read, + .write_iter =3D nsim_bus_dev_max_vfs_write, .llseek =3D generic_file_llseek, .owner =3D THIS_MODULE, }; @@ -367,23 +365,22 @@ static void nsim_dev_debugfs_exit(struct nsim_dev *ns= im_dev) debugfs_remove_recursive(nsim_dev->ddir); } =20 -static ssize_t nsim_dev_rate_parent_read(struct file *file, - char __user *data, - size_t count, loff_t *ppos) +static ssize_t nsim_dev_rate_parent_read(struct kiocb *iocb, + struct iov_iter *to) { - char **name_ptr =3D file->private_data; + char **name_ptr =3D iocb->ki_filp->private_data; size_t len; =20 if (!*name_ptr) return 0; =20 len =3D strlen(*name_ptr); - return simple_read_from_buffer(data, count, ppos, *name_ptr, len); + return simple_copy_to_iter(*name_ptr, &iocb->ki_pos, len, to); } =20 static const struct file_operations nsim_dev_rate_parent_fops =3D { .open =3D simple_open, - .read =3D nsim_dev_rate_parent_read, + .read_iter =3D nsim_dev_rate_parent_read, .llseek =3D generic_file_llseek, .owner =3D THIS_MODULE, }; diff --git a/drivers/net/netdevsim/fib.c b/drivers/net/netdevsim/fib.c index a1f91ff8ec56..4ab1b7944f3e 100644 --- a/drivers/net/netdevsim/fib.c +++ b/drivers/net/netdevsim/fib.c @@ -1361,15 +1361,15 @@ static void nsim_nexthop_free(void *ptr, void *arg) nsim_nexthop_destroy(nexthop); } =20 -static ssize_t nsim_nexthop_bucket_activity_write(struct file *file, - const char __user *user_buf, - size_t size, loff_t *ppos) +static ssize_t nsim_nexthop_bucket_activity_write(struct kiocb *iocb, + struct iov_iter *from) { - struct nsim_fib_data *data =3D file->private_data; + struct nsim_fib_data *data =3D iocb->ki_filp->private_data; struct net *net =3D devlink_net(data->devlink); + size_t size =3D iov_iter_count(from); struct nsim_nexthop *nexthop; unsigned long *activity; - loff_t pos =3D *ppos; + loff_t pos =3D iocb->ki_pos; u16 bucket_index; char buf[128]; int err =3D 0; @@ -1379,7 +1379,7 @@ static ssize_t nsim_nexthop_bucket_activity_write(str= uct file *file, return -EINVAL; if (size > sizeof(buf)) return -EINVAL; - if (copy_from_user(buf, user_buf, size)) + if (!copy_from_iter_full(buf, size, from)) return -EFAULT; if (sscanf(buf, "%u %hu", &nhid, &bucket_index) !=3D 2) return -EINVAL; @@ -1407,13 +1407,13 @@ static ssize_t nsim_nexthop_bucket_activity_write(s= truct file *file, out: rtnl_unlock(); =20 - *ppos =3D size; + iocb->ki_pos =3D size; return err ?: size; } =20 static const struct file_operations nsim_nexthop_bucket_activity_fops =3D { .open =3D simple_open, - .write =3D nsim_nexthop_bucket_activity_write, + .write_iter =3D nsim_nexthop_bucket_activity_write, .llseek =3D no_llseek, .owner =3D THIS_MODULE, }; diff --git a/drivers/net/netdevsim/health.c b/drivers/net/netdevsim/health.c index 70e8bdf34be9..b1c23d23bee2 100644 --- a/drivers/net/netdevsim/health.c +++ b/drivers/net/netdevsim/health.c @@ -140,16 +140,16 @@ struct devlink_health_reporter_ops nsim_dev_dummy_rep= orter_ops =3D { .diagnose =3D nsim_dev_dummy_reporter_diagnose, }; =20 -static ssize_t nsim_dev_health_break_write(struct file *file, - const char __user *data, - size_t count, loff_t *ppos) +static ssize_t nsim_dev_health_break_write(struct kiocb *iocb, + struct iov_iter *from) { - struct nsim_dev_health *health =3D file->private_data; + struct nsim_dev_health *health =3D iocb->ki_filp->private_data; struct nsim_dev_dummy_reporter_ctx ctx; + size_t count =3D iov_iter_count(from); char *break_msg; int err; =20 - break_msg =3D memdup_user_nul(data, count); + break_msg =3D iterdup_nul(from, count); if (IS_ERR(break_msg)) return PTR_ERR(break_msg); =20 @@ -168,7 +168,7 @@ static ssize_t nsim_dev_health_break_write(struct file = *file, =20 static const struct file_operations nsim_dev_health_break_fops =3D { .open =3D simple_open, - .write =3D nsim_dev_health_break_write, + .write_iter =3D nsim_dev_health_break_write, .llseek =3D generic_file_llseek, .owner =3D THIS_MODULE, }; diff --git a/drivers/net/netdevsim/hwstats.c b/drivers/net/netdevsim/hwstat= s.c index 0e58aa7f0374..8e9b13c464a8 100644 --- a/drivers/net/netdevsim/hwstats.c +++ b/drivers/net/netdevsim/hwstats.c @@ -337,20 +337,19 @@ struct nsim_dev_hwstats_fops { }; =20 static ssize_t -nsim_dev_hwstats_do_write(struct file *file, - const char __user *data, - size_t count, loff_t *ppos) +nsim_dev_hwstats_do_write(struct kiocb *iocb, struct iov_iter *from) { - struct nsim_dev_hwstats *hwstats =3D file->private_data; + struct nsim_dev_hwstats *hwstats =3D iocb->ki_filp->private_data; struct nsim_dev_hwstats_fops *hwsfops; + size_t count =3D iov_iter_count(from); struct list_head *hwsdev_list; int ifindex; int err; =20 - hwsfops =3D container_of(debugfs_real_fops(file), + hwsfops =3D container_of(debugfs_real_fops(iocb->ki_filp), struct nsim_dev_hwstats_fops, fops); =20 - err =3D kstrtoint_from_user(data, count, 0, &ifindex); + err =3D kstrtoint_from_iter(from, count, 0, &ifindex); if (err) return err; =20 @@ -385,7 +384,7 @@ nsim_dev_hwstats_do_write(struct file *file, { \ .fops =3D { \ .open =3D simple_open, \ - .write =3D nsim_dev_hwstats_do_write, \ + .write_iter =3D nsim_dev_hwstats_do_write, \ .llseek =3D generic_file_llseek, \ .owner =3D THIS_MODULE, \ }, \ diff --git a/drivers/net/netdevsim/ipsec.c b/drivers/net/netdevsim/ipsec.c index f0d58092e7e9..16535c552d12 100644 --- a/drivers/net/netdevsim/ipsec.c +++ b/drivers/net/netdevsim/ipsec.c @@ -9,11 +9,9 @@ =20 #define NSIM_IPSEC_AUTH_BITS 128 =20 -static ssize_t nsim_dbg_netdev_ops_read(struct file *filp, - char __user *buffer, - size_t count, loff_t *ppos) +static ssize_t nsim_dbg_netdev_ops_read(struct kiocb *iocb, struct iov_ite= r *to) { - struct netdevsim *ns =3D filp->private_data; + struct netdevsim *ns =3D iocb->ki_filp->private_data; struct nsim_ipsec *ipsec =3D &ns->ipsec; size_t bufsize; char *buf, *p; @@ -53,7 +51,7 @@ static ssize_t nsim_dbg_netdev_ops_read(struct file *filp, sap->key[2], sap->key[3]); } =20 - len =3D simple_read_from_buffer(buffer, count, ppos, buf, p - buf); + len =3D simple_copy_to_iter(buf, &iocb->ki_pos, p - buf, to); =20 kfree(buf); return len; @@ -62,7 +60,7 @@ static ssize_t nsim_dbg_netdev_ops_read(struct file *filp, static const struct file_operations ipsec_dbg_fops =3D { .owner =3D THIS_MODULE, .open =3D simple_open, - .read =3D nsim_dbg_netdev_ops_read, + .read_iter =3D nsim_dbg_netdev_ops_read, }; =20 static int nsim_ipsec_find_empty_idx(struct nsim_ipsec *ipsec) diff --git a/drivers/net/netdevsim/psample.c b/drivers/net/netdevsim/psampl= e.c index f0c6477dd0ae..21353aea4f4a 100644 --- a/drivers/net/netdevsim/psample.c +++ b/drivers/net/netdevsim/psample.c @@ -168,15 +168,15 @@ static int nsim_dev_psample_disable(struct nsim_dev *= nsim_dev) return 0; } =20 -static ssize_t nsim_dev_psample_enable_write(struct file *file, - const char __user *data, - size_t count, loff_t *ppos) +static ssize_t nsim_dev_psample_enable_write(struct kiocb *iocb, + struct iov_iter *from) { - struct nsim_dev *nsim_dev =3D file->private_data; + struct nsim_dev *nsim_dev =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); bool enable; int err; =20 - err =3D kstrtobool_from_user(data, count, &enable); + err =3D kstrtobool_from_iter(from, count, &enable); if (err) return err; =20 @@ -190,7 +190,7 @@ static ssize_t nsim_dev_psample_enable_write(struct fil= e *file, =20 static const struct file_operations nsim_psample_enable_fops =3D { .open =3D simple_open, - .write =3D nsim_dev_psample_enable_write, + .write_iter =3D nsim_dev_psample_enable_write, .llseek =3D generic_file_llseek, .owner =3D THIS_MODULE, }; diff --git a/drivers/net/netdevsim/udp_tunnels.c b/drivers/net/netdevsim/ud= p_tunnels.c index 02dc3123eb6c..efbd5af4562c 100644 --- a/drivers/net/netdevsim/udp_tunnels.c +++ b/drivers/net/netdevsim/udp_tunnels.c @@ -106,10 +106,9 @@ static const struct udp_tunnel_nic_info nsim_udp_tunne= l_info =3D { }; =20 static ssize_t -nsim_udp_tunnels_info_reset_write(struct file *file, const char __user *da= ta, - size_t count, loff_t *ppos) +nsim_udp_tunnels_info_reset_write(struct kiocb *iocb, struct iov_iter *fro= m) { - struct net_device *dev =3D file->private_data; + struct net_device *dev =3D iocb->ki_filp->private_data; struct netdevsim *ns =3D netdev_priv(dev); =20 memset(ns->udp_ports.ports, 0, sizeof(ns->udp_ports.__ports)); @@ -117,12 +116,12 @@ nsim_udp_tunnels_info_reset_write(struct file *file, = const char __user *data, udp_tunnel_nic_reset_ntf(dev); rtnl_unlock(); =20 - return count; + return iov_iter_count(from); } =20 static const struct file_operations nsim_udp_tunnels_info_reset_fops =3D { .open =3D simple_open, - .write =3D nsim_udp_tunnels_info_reset_write, + .write_iter =3D nsim_udp_tunnels_info_reset_write, .llseek =3D generic_file_llseek, .owner =3D THIS_MODULE, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f44.google.com (mail-io1-f44.google.com [209.85.166.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 D6E3F1DDD0E for ; Thu, 11 Apr 2024 15:40:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850026; cv=none; b=JtL3L1seAhpFDkleBpxdPH9xS5caN8MQiTdk15i74iNOf4atu4E1dw4DMBEDVxfbeqH9KR/Yhu64vODPbt0sEWJ4NQRx+734AlSu+A0EYplg/zaJepCQ0LuwU8/2m/wXA90Prob8kccfNamGozl0AllW971zZi0juwMcu9vUhD8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850026; c=relaxed/simple; bh=EGw1BOxH+8TlI/yCEcnowLoOoHfmNMYRoPPVvCXzyHI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=RVitISpAdn9nYeaBJQp0Sks1TriEohuZA3j9o6OPmyVhOEmYxGOxRTSC1cWZXbdUZLWJVjg/GQXBrJtGPtdn3m5XWsU3pr2tRU7WmXrdLr3ctxnFy0jFXkMNsfhyY2VPq03t7rX+yKfhV09oUvLmQz/D5QoEsqAVsVnVLoTW274= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=qLXHoW8V; arc=none smtp.client-ip=209.85.166.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="qLXHoW8V" Received: by mail-io1-f44.google.com with SMTP id ca18e2360f4ac-7cc0e831e11so170601139f.1 for ; Thu, 11 Apr 2024 08:40:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850023; x=1713454823; 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=jGx3p0kGge9nZqXreOcFImKKXNlrYv9cmnn1pOkixJM=; b=qLXHoW8VZH+pfKFByX7PR1MrbiPf2sKF+t23J2VVnFkV6kROIfydfzhB0q287TsGgm tEwzpc4WC3Nf9q0XkA1kMmQvP5witML7b88kn25zw8qqlWhRzMmKEvVu4zvdz01qeHl2 ZaQ2GUyUrxIm32J7beADbBRy7AeSKhSFrZVTc9RlhMvc2cbKrDoey+2BVcNn13kMO6sA 2adpRxODl2NlgvPCMUj1oR6qDyQrUz2Ga0W2mxYaPsaNOlIzdMibsTATQmkge38LUK5A JQBA/4NVXth8DlZLQzwUFkzrBtL5DhhOfZ09EUR3mnrhD7cdY3WJTCzZzS0UJsgIVFbb FOdA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850023; x=1713454823; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=jGx3p0kGge9nZqXreOcFImKKXNlrYv9cmnn1pOkixJM=; b=vTd0D6baBrtq9n36dHgjRM2qyyZjWYNvNIu+nTySiyEAVfzBWGt427sUbb+NO8PviC QuHyCdAriYC3RKAf7Q5P22MMVY1t3bKXq2TcjYbRlQ8Msu/5BcC1aeV16ZuZDzzoBkGf 4ZAxZWEm2Y4gwKbb3zzpdqlzDPdDGtaWDSLUsXiJdumsl8UT5jn2zmngLrvR6HTHkEpp ybBdwVszoxp7Cr2vFovstHd9onIwPr6UmxPBl8ESpuW5aeQLb22Vwp2z1sadNk3U+uQn 3hmVv+VcXh2I8JzGlOQAnWxBRx0gyKlTtwWeKYZjL46t63JDCirfJRGGQkk5bxFoM6bd eWiA== X-Gm-Message-State: AOJu0YyQKvSrHkIW8QFP9NmiLp2GvTgc1YUhN2clUW+PLEmP3WFAQSfo 0wpbjFazdXRCAB5KWzOgj4WH0QHt1D9oet3ckVxDt1FN9mBIyiUISCFskGWn+9XkWaiDElTXd6F f X-Google-Smtp-Source: AGHT+IEetb38GIVyLPD6euQncp7vUUBBqjfIja9U1mCAcnSQeJzOy74Yp6RfnglHUUG2SfrZSZKhsg== X-Received: by 2002:a92:2912:0:b0:36a:f9aa:5757 with SMTP id l18-20020a922912000000b0036af9aa5757mr3593512ilg.2.1712850023666; Thu, 11 Apr 2024 08:40:23 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.40.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:40:22 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 316/437] drivers/net/ppp: convert to read/write iterators Date: Thu, 11 Apr 2024 09:17:36 -0600 Message-ID: <20240411153126.16201-317-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/net/ppp/ppp_generic.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/drivers/net/ppp/ppp_generic.c b/drivers/net/ppp/ppp_generic.c index fe380fe196e7..6601b6c3e2b2 100644 --- a/drivers/net/ppp/ppp_generic.c +++ b/drivers/net/ppp/ppp_generic.c @@ -492,11 +492,12 @@ static ssize_t ppp_read(struct file *file, char __use= r *buf, out: return ret; } +FOPS_READ_ITER_HELPER(ppp_read); =20 -static ssize_t ppp_write(struct file *file, const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t ppp_write(struct kiocb *iocb, struct iov_iter *from) { - struct ppp_file *pf =3D file->private_data; + struct ppp_file *pf =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); struct sk_buff *skb; ssize_t ret; =20 @@ -511,7 +512,7 @@ static ssize_t ppp_write(struct file *file, const char = __user *buf, goto out; skb_reserve(skb, pf->hdrlen); ret =3D -EFAULT; - if (copy_from_user(skb_put(skb, count), buf, count)) { + if (!copy_from_iter_full(skb_put(skb, count), count, from)) { kfree_skb(skb); goto out; } @@ -1092,8 +1093,8 @@ static int ppp_unattached_ioctl(struct net *net, stru= ct ppp_file *pf, =20 static const struct file_operations ppp_device_fops =3D { .owner =3D THIS_MODULE, - .read =3D ppp_read, - .write =3D ppp_write, + .read_iter =3D ppp_read_iter, + .write_iter =3D ppp_write, .poll =3D ppp_poll, .unlocked_ioctl =3D ppp_ioctl, #ifdef CONFIG_COMPAT --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f51.google.com (mail-io1-f51.google.com [209.85.166.51]) (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 A3DE41DFFB0 for ; Thu, 11 Apr 2024 15:40:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850028; cv=none; b=RnBExgMxVS4ry/ZjyYA0VSNeGGHn6AS/s3QwiqIElZg0P1x3fBYnDbNHcyiQB8kKkR/9iSQ8hQe5vqVuhWVwqNYemfo5l+RVB6tez0oopluEJHPGDQv0fXPa0rL0yPc1JpqdFkgKwqn/6l3LtaddWO2z+ZTLGqTb+qiShxt4DxU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850028; c=relaxed/simple; bh=oC6a0Gd10K11/+ufORoDT+9yN42tBtp9STpMEhhv5Is=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=stwdZidQka4+ezBsCIoKKIGnN+3E5zv+fvx6wpivlRdIU1QN6xVEy47KvVP/MoOpMj809YKCqZNGuKgJpwc9+nOrtUG/itL7oaRATI57j5BQF4b6COggcqcns2aEH5gxyTbzVJD7r6LakthEd7HgCz8WFRBXSkEyKmmtf2MwhM8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=SUh8+stY; arc=none smtp.client-ip=209.85.166.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="SUh8+stY" Received: by mail-io1-f51.google.com with SMTP id ca18e2360f4ac-7d6112ba6baso58195939f.1 for ; Thu, 11 Apr 2024 08:40:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850025; x=1713454825; 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=HI6DXs9QWs+QKUxT680gRKpCLBxQaneIFwEC/MVVBUY=; b=SUh8+stYs9I26GrykjsnoyddwfYk8cXGZvbiN6cjqHfaPIj2bU/WSDnzmpWjVNw2lm yKEG14oy+nG8G7uzpWv03bh6G3IIPdMcfssytEdx28IITmaCd7hZEIBr79OGLRZDPS3X 0JfC0FSxbtreA9JY961UsVVk6zL8Mpkptafm2U/j68d1wyZyI4Hs0WQI4Z1BZCvTfFEy 6mdyeRmE2UJ+MtHBtDKRnQzaJ1CxtL0RsWOCyQXsMa1BirQx8/rooQRbZMPbXRMMziDk SuM7dB6cBUUa19QRQszEm02QNqVogLOTNBEGK0Hm5r2KLSazA9U7H8tVTg/OCZf05rl/ T7Cg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850025; x=1713454825; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=HI6DXs9QWs+QKUxT680gRKpCLBxQaneIFwEC/MVVBUY=; b=SX+47ai5he7xY+PP8mMQoa5reJ6+IoBwwcZIBWMPw9B5r2UaSvErRDZWQxwCrLE2JC bxzm3ABd/QGnA7HPq8NfSM06ZzlPLBRBDVe1m/7MWf8+mHLKZ86L19hcTLBpmZLt8iXJ w5JeuYYJJBUS4cPGrMGsH3lZ46HyhZWHrJX+UGX/pNSwuMWdyEaBozjKHI1VnVdw1Nlj bhS4SIbnb8ZgDWYyFJ/3d6v1m0VOgNGd38bIzTc2YIL67dp7EDwMSrgaeoVzlfCvefMI B835bA5joatUGZus9+t0HqVf7zLsi0MMLZSJNaVlNtqF2ci5AFGJtaVkEHmHhGt9QWv/ BvtA== X-Gm-Message-State: AOJu0Yw8/cACEJr9gCVXoaXfwYLwQ1hZKZ8X3mJJD4eHhoB7x5G8TROP KdD4elwG9q5SfuziVzyXcfRwAuP0Kpmwe9pWDHp1xkMXfWsI5Z3LlCsJU3tI2diKrxDXcO/Vp9G O X-Google-Smtp-Source: AGHT+IH/14r27JPZAqqjnrVa5KnOGgW40oeIj0gDzwnFc/6nVFDqX15xZM/aAtU0KXnQkNI7dR2sfw== X-Received: by 2002:a05:6602:38d:b0:7d6:513b:254 with SMTP id f13-20020a056602038d00b007d6513b0254mr198488iov.2.1712850025382; Thu, 11 Apr 2024 08:40:25 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.40.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:40:23 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 317/437] drivers/net/wwan: convert to read/write iterators Date: Thu, 11 Apr 2024 09:17:37 -0600 Message-ID: <20240411153126.16201-318-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/net/wwan/iosm/iosm_ipc_trace.c | 21 ++++++------- drivers/net/wwan/wwan_core.c | 26 ++++++++-------- drivers/net/wwan/wwan_hwsim.c | 42 ++++++++++++-------------- 3 files changed, 42 insertions(+), 47 deletions(-) diff --git a/drivers/net/wwan/iosm/iosm_ipc_trace.c b/drivers/net/wwan/iosm= /iosm_ipc_trace.c index eeecfa3d10c5..8374bd4826bc 100644 --- a/drivers/net/wwan/iosm/iosm_ipc_trace.c +++ b/drivers/net/wwan/iosm/iosm_ipc_trace.c @@ -70,10 +70,9 @@ static struct rchan_callbacks relay_callbacks =3D { }; =20 /* Copy the trace control mode to user buffer */ -static ssize_t ipc_trace_ctrl_file_read(struct file *filp, char __user *bu= ffer, - size_t count, loff_t *ppos) +static ssize_t ipc_trace_ctrl_file_read(struct kiocb *iocb, struct iov_ite= r *to) { - struct iosm_trace *ipc_trace =3D filp->private_data; + struct iosm_trace *ipc_trace =3D iocb->ki_filp->private_data; char buf[16]; int len; =20 @@ -81,19 +80,19 @@ static ssize_t ipc_trace_ctrl_file_read(struct file *fi= lp, char __user *buffer, len =3D snprintf(buf, sizeof(buf), "%d\n", ipc_trace->mode); mutex_unlock(&ipc_trace->trc_mutex); =20 - return simple_read_from_buffer(buffer, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 /* Open and close the trace channel depending on user input */ -static ssize_t ipc_trace_ctrl_file_write(struct file *filp, - const char __user *buffer, - size_t count, loff_t *ppos) +static ssize_t ipc_trace_ctrl_file_write(struct kiocb *iocb, + struct iov_iter *from) { - struct iosm_trace *ipc_trace =3D filp->private_data; + struct iosm_trace *ipc_trace =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); unsigned long val; int ret; =20 - ret =3D kstrtoul_from_user(buffer, count, 10, &val); + ret =3D kstrtoul_from_iter(from, count, 10, &val); if (ret) return ret; =20 @@ -122,8 +121,8 @@ static ssize_t ipc_trace_ctrl_file_write(struct file *f= ilp, =20 static const struct file_operations ipc_trace_fops =3D { .open =3D simple_open, - .write =3D ipc_trace_ctrl_file_write, - .read =3D ipc_trace_ctrl_file_read, + .write_iter =3D ipc_trace_ctrl_file_write, + .read_iter =3D ipc_trace_ctrl_file_read, }; =20 /** diff --git a/drivers/net/wwan/wwan_core.c b/drivers/net/wwan/wwan_core.c index 17431f1b1a0c..1007d0255427 100644 --- a/drivers/net/wwan/wwan_core.c +++ b/drivers/net/wwan/wwan_core.c @@ -684,15 +684,15 @@ static int wwan_port_fops_release(struct inode *inode= , struct file *filp) return 0; } =20 -static ssize_t wwan_port_fops_read(struct file *filp, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t wwan_port_fops_read(struct kiocb *iocb, struct iov_iter *to) { - struct wwan_port *port =3D filp->private_data; + struct wwan_port *port =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(to); struct sk_buff *skb; size_t copied; int ret; =20 - ret =3D wwan_wait_rx(port, !!(filp->f_flags & O_NONBLOCK)); + ret =3D wwan_wait_rx(port, !!(iocb->ki_filp->f_flags & O_NONBLOCK)); if (ret) return ret; =20 @@ -701,7 +701,7 @@ static ssize_t wwan_port_fops_read(struct file *filp, c= har __user *buf, return -EIO; =20 copied =3D min_t(size_t, count, skb->len); - if (copy_to_user(buf, skb->data, copied)) { + if (!copy_to_iter_full(skb->data, copied, to)) { kfree_skb(skb); return -EFAULT; } @@ -716,15 +716,15 @@ static ssize_t wwan_port_fops_read(struct file *filp,= char __user *buf, return copied; } =20 -static ssize_t wwan_port_fops_write(struct file *filp, const char __user *= buf, - size_t count, loff_t *offp) +static ssize_t wwan_port_fops_write(struct kiocb *iocb, struct iov_iter *f= rom) { struct sk_buff *skb, *head =3D NULL, *tail =3D NULL; - struct wwan_port *port =3D filp->private_data; + struct wwan_port *port =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); size_t frag_len, remain =3D count; int ret; =20 - ret =3D wwan_wait_tx(port, !!(filp->f_flags & O_NONBLOCK)); + ret =3D wwan_wait_tx(port, !!(iocb->ki_filp->f_flags & O_NONBLOCK)); if (ret) return ret; =20 @@ -747,7 +747,7 @@ static ssize_t wwan_port_fops_write(struct file *filp, = const char __user *buf, tail =3D skb; } =20 - if (copy_from_user(skb_put(skb, frag_len), buf + count - remain, frag_le= n)) { + if (!copy_from_iter_full(skb_put(skb, frag_len), frag_len, from)) { ret =3D -EFAULT; goto freeskb; } @@ -759,7 +759,7 @@ static ssize_t wwan_port_fops_write(struct file *filp, = const char __user *buf, } } while (remain -=3D frag_len); =20 - ret =3D wwan_port_op_tx(port, head, !!(filp->f_flags & O_NONBLOCK)); + ret =3D wwan_port_op_tx(port, head, !!(iocb->ki_filp->f_flags & O_NONBLOC= K)); if (!ret) return count; =20 @@ -897,8 +897,8 @@ static const struct file_operations wwan_port_fops =3D { .owner =3D THIS_MODULE, .open =3D wwan_port_fops_open, .release =3D wwan_port_fops_release, - .read =3D wwan_port_fops_read, - .write =3D wwan_port_fops_write, + .read_iter =3D wwan_port_fops_read, + .write_iter =3D wwan_port_fops_write, .poll =3D wwan_port_fops_poll, .unlocked_ioctl =3D wwan_port_fops_ioctl, #ifdef CONFIG_COMPAT diff --git a/drivers/net/wwan/wwan_hwsim.c b/drivers/net/wwan/wwan_hwsim.c index b02befd1b6fb..7bf9a275b3c0 100644 --- a/drivers/net/wwan/wwan_hwsim.c +++ b/drivers/net/wwan/wwan_hwsim.c @@ -364,11 +364,10 @@ static void wwan_hwsim_dev_del_work(struct work_struc= t *work) wwan_hwsim_dev_del(dev); } =20 -static ssize_t wwan_hwsim_debugfs_portdestroy_write(struct file *file, - const char __user *usrbuf, - size_t count, loff_t *ppos) +static ssize_t wwan_hwsim_debugfs_portdestroy_write(struct kiocb *iocb, + struct iov_iter *from) { - struct wwan_hwsim_port *port =3D file->private_data; + struct wwan_hwsim_port *port =3D iocb->ki_filp->private_data; =20 /* We can not delete port here since it will cause a deadlock due to * waiting this callback to finish in the debugfs_remove() call. So, @@ -376,20 +375,19 @@ static ssize_t wwan_hwsim_debugfs_portdestroy_write(s= truct file *file, */ queue_work(wwan_wq, &port->del_work); =20 - return count; + return iov_iter_count(from); } =20 static const struct file_operations wwan_hwsim_debugfs_portdestroy_fops = =3D { - .write =3D wwan_hwsim_debugfs_portdestroy_write, + .write_iter =3D wwan_hwsim_debugfs_portdestroy_write, .open =3D simple_open, .llseek =3D noop_llseek, }; =20 -static ssize_t wwan_hwsim_debugfs_portcreate_write(struct file *file, - const char __user *usrbuf, - size_t count, loff_t *ppos) +static ssize_t wwan_hwsim_debugfs_portcreate_write(struct kiocb *iocb, + struct iov_iter *from) { - struct wwan_hwsim_dev *dev =3D file->private_data; + struct wwan_hwsim_dev *dev =3D iocb->ki_filp->private_data; struct wwan_hwsim_port *port; =20 port =3D wwan_hwsim_port_new(dev); @@ -400,20 +398,19 @@ static ssize_t wwan_hwsim_debugfs_portcreate_write(st= ruct file *file, list_add_tail(&port->list, &dev->ports); spin_unlock(&dev->ports_lock); =20 - return count; + return iov_iter_count(from); } =20 static const struct file_operations wwan_hwsim_debugfs_portcreate_fops =3D= { - .write =3D wwan_hwsim_debugfs_portcreate_write, + .write_iter =3D wwan_hwsim_debugfs_portcreate_write, .open =3D simple_open, .llseek =3D noop_llseek, }; =20 -static ssize_t wwan_hwsim_debugfs_devdestroy_write(struct file *file, - const char __user *usrbuf, - size_t count, loff_t *ppos) +static ssize_t wwan_hwsim_debugfs_devdestroy_write(struct kiocb *iocb, + struct iov_iter *from) { - struct wwan_hwsim_dev *dev =3D file->private_data; + struct wwan_hwsim_dev *dev =3D iocb->ki_filp->private_data; =20 /* We can not delete device here since it will cause a deadlock due to * waiting this callback to finish in the debugfs_remove() call. So, @@ -421,18 +418,17 @@ static ssize_t wwan_hwsim_debugfs_devdestroy_write(st= ruct file *file, */ queue_work(wwan_wq, &dev->del_work); =20 - return count; + return iov_iter_count(from); } =20 static const struct file_operations wwan_hwsim_debugfs_devdestroy_fops =3D= { - .write =3D wwan_hwsim_debugfs_devdestroy_write, + .write_iter =3D wwan_hwsim_debugfs_devdestroy_write, .open =3D simple_open, .llseek =3D noop_llseek, }; =20 -static ssize_t wwan_hwsim_debugfs_devcreate_write(struct file *file, - const char __user *usrbuf, - size_t count, loff_t *ppos) +static ssize_t wwan_hwsim_debugfs_devcreate_write(struct kiocb *iocb, + struct iov_iter *from) { struct wwan_hwsim_dev *dev; =20 @@ -444,11 +440,11 @@ static ssize_t wwan_hwsim_debugfs_devcreate_write(str= uct file *file, list_add_tail(&dev->list, &wwan_hwsim_devs); spin_unlock(&wwan_hwsim_devs_lock); =20 - return count; + return iov_iter_count(from); } =20 static const struct file_operations wwan_hwsim_debugfs_devcreate_fops =3D { - .write =3D wwan_hwsim_debugfs_devcreate_write, + .write_iter =3D wwan_hwsim_debugfs_devcreate_write, .open =3D simple_open, .llseek =3D noop_llseek, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f52.google.com (mail-io1-f52.google.com [209.85.166.52]) (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 E39EE50289 for ; Thu, 11 Apr 2024 15:40:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850029; cv=none; b=orEw0H5cD4+EChJxzH1sCE/ppwo5Cf+5eEt6Gnqnqz0TK4K4BM+8aupKUMji2+04Mjk6Iq64GqTadMY1st7AkRWiTflHJ3eRss7vv6BLH/L7/waBkfp21OV4B49dCPY6PDi+ihqaO8f3nQQeUPktQxkMelwurBOArFyqy7r/q+I= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850029; c=relaxed/simple; bh=6GJX4jKcYnrQLhec09SPyB6dU9bM6RG9CFsRPlVxKc0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=vBCU0Z0yAZRJnF6TwITN4zMW1y/lqx0gZ4his42JF0WWFLC+wZcZNRVkbQ9lSZUMdOPT8G1Ih+vKVHWn+GIjQPqa3s20yWk7985RV5UEBssyHk5wTC4hnvlpRP3X4Kb92NNc7GoBzQsWg8R6dfjWLq1RqeoS/NZKxtRDIQcQLv0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=kahhtQu0; arc=none smtp.client-ip=209.85.166.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="kahhtQu0" Received: by mail-io1-f52.google.com with SMTP id ca18e2360f4ac-7d67d1073easo9880339f.0 for ; Thu, 11 Apr 2024 08:40:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850027; x=1713454827; 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=2qQP9837GS2jmEGGqO0pdJTQlW11xMsPELKOTlY0Grs=; b=kahhtQu0vk2hqQl1ZnlvJfAfGjX4fu34W994pmHdOvOs34kQKFbZWXP5Tsm8GCOIxu 6ga4un5/04zi9XFdki0viFND+DFhYh3MZtNsnjngJUHUslaM8vkvxgaPcHkk1EBcH/Jw tXxET0mVvShiYOwfrQzyeilvQBOZkcwOq3XgE81hs8mRb//PFZnRmZzYi9GRihB3MsDC J6wr/BYiftYjbGOrgVsiyC3Jp+0soCmhU8xoaX0Y1QqCs+O11AX3qPVUfhz8ZRabla2v ORrO9037/JmzR0qjpNGl0M8LPObW0udndvc7ivJA9RKt5roTdbwxZNV9uRPmJz9XchEh 1saw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850027; x=1713454827; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=2qQP9837GS2jmEGGqO0pdJTQlW11xMsPELKOTlY0Grs=; b=mLgYEeuHPCuYTk4rEDCbbVbBDNHiY4GLrC4/PWm7QjuaKKDOphuzmKUqGl1Xmx6avl FEYFuBbvhtzhlXdcVjLbP3OlgISFD3EPmDoLmBEWn7YBUH2zBXsg4IZQdSeBsNkFLMa8 ud0/KxrsN+VJveWfCs9N4CJNFb4b+m0CgKQcj1iYr1PkbW5UtYdm4T64BJ2cWHslYwnR hXSdUSEaGN6HdorvPsUKLqIkLFFeUXrDEhSglZw9TDLIsSh0BgBiYGLcObbJuYnUo4kd k+qVXmX7ZLhj/5lx0UiqfXUYAhsNQBGvRkxWFNVmsULvM12hzt3xHyLFKKOPx8tIaZWc nO2g== X-Gm-Message-State: AOJu0Ywt8IvN/RePcz5NEoCyfZHK9KbUfobxv7gkCSHsc6pq3cMKTDgj w5IkIRtLfjjUwvmNFJPm55rnHP/MkEfju6+7Sm9bhrBlyhBYmROQcENQebJgIyOM4dfccvkYoOK 3 X-Google-Smtp-Source: AGHT+IE8Hy5vhJBE8OWwsWPTl/cqUj4Nxp6caI7Egwq5pEX341Jp99sT9Q3cTanIyPys45YXPjEjig== X-Received: by 2002:a6b:7b05:0:b0:7d6:60dc:bc8e with SMTP id l5-20020a6b7b05000000b007d660dcbc8emr204204iop.1.1712850026932; Thu, 11 Apr 2024 08:40:26 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.40.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:40:25 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 318/437] drivers/net/xen-netback: convert to read/write iterators Date: Thu, 11 Apr 2024 09:17:38 -0600 Message-ID: <20240411153126.16201-319-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/net/xen-netback/xenbus.c | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/drivers/net/xen-netback/xenbus.c b/drivers/net/xen-netback/xen= bus.c index a78a25b87240..5f2ef4d6bb17 100644 --- a/drivers/net/xen-netback/xenbus.c +++ b/drivers/net/xen-netback/xenbus.c @@ -102,26 +102,21 @@ static int xenvif_read_io_ring(struct seq_file *m, vo= id *v) #define XENVIF_KICK_STR "kick" #define BUFFER_SIZE 32 =20 -static ssize_t -xenvif_write_io_ring(struct file *filp, const char __user *buf, size_t cou= nt, - loff_t *ppos) +static ssize_t xenvif_write_io_ring(struct kiocb *iocb, struct iov_iter *f= rom) { struct xenvif_queue *queue =3D - ((struct seq_file *)filp->private_data)->private; + ((struct seq_file *)iocb->ki_filp->private_data)->private; + size_t count =3D iov_iter_count(from); int len; char write[BUFFER_SIZE]; =20 /* don't allow partial writes and check the length */ - if (*ppos !=3D 0) + if (iocb->ki_pos !=3D 0) return 0; if (count >=3D sizeof(write)) return -ENOSPC; =20 - len =3D simple_write_to_buffer(write, - sizeof(write) - 1, - ppos, - buf, - count); + len =3D simple_copy_from_iter(write, &iocb->ki_pos, sizeof(write) - 1, fr= om); if (len < 0) return len; =20 @@ -152,10 +147,10 @@ static int xenvif_io_ring_open(struct inode *inode, s= truct file *filp) static const struct file_operations xenvif_dbg_io_ring_ops_fops =3D { .owner =3D THIS_MODULE, .open =3D xenvif_io_ring_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D single_release, - .write =3D xenvif_write_io_ring, + .write_iter =3D xenvif_write_io_ring, }; =20 static int xenvif_ctrl_show(struct seq_file *m, void *v) --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-il1-f182.google.com (mail-il1-f182.google.com [209.85.166.182]) (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 B5C8C50280 for ; Thu, 11 Apr 2024 15:40:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.182 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850031; cv=none; b=UJUVmY2jqB3dZ+wr8E4flx4eqWzO8Net2Vl3XsdEJsf10bqnLyFFytOmjyzF52c5Ud2CU1Nrw8ERNQse3mJLJ7/Zsuop/zJqbGVe0TgbGpoDS2JQ1a2jnSXoHWevl3uaElLZv5AKJ4VN4QoafKN1pBdsH/t5TjLPkzCtdpbEKIU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850031; c=relaxed/simple; bh=ZSbWnKtEB3iUPA46pZTGEkLHYuEn8/MjHsxaJVHhMTk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=fLRjDHFTMrIbmslb0Tlcx3jAlULwnXgPZTJWyfMsxROlvwFSZOTRJsSY2GVxv+umrZoE9s6nCiT0Rig36ryc00lKJokbbCy9TzXHEtAiy1j1k4V/xd7VcukzQOP0MK0Q8GpK2I+rdfcE63Bmoa61b0zt5lelZkyWVDSfHtvfax4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=mUp+fQcG; arc=none smtp.client-ip=209.85.166.182 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="mUp+fQcG" Received: by mail-il1-f182.google.com with SMTP id e9e14a558f8ab-36a34b68277so118685ab.0 for ; Thu, 11 Apr 2024 08:40:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850028; x=1713454828; 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=PklJoG+dHcGyORAfKU6STIZs7i0r1PiGXnTWAdv9t5M=; b=mUp+fQcG53aUA87/jYVwxAyTacXv1kwjSgCpkqXVh6X9srRlriq5o8d+ns2J0tF/vR cXNMLWxsVyWJ+NDSC2gtYeGOh2F9xCRCY8bnPbjGrVcyzdE8AhHY2cY2weQlT5tToPeB vK+RwYZJ2Kk6K74qwqzG+9F2kEffUEVJMkzoDAWnxVTYjUROgkFgg/kp8xjxFWNdv7/x mhNMdiEXMmlNjK4KPrvVlnyqR4E2a13LJtceoD7ae/M5izP89HH+oNUNJ+iZ6bAvqx9P iY+AKhovN4u3uQFA3BsBgvEmELdvsMyN+iW6MCI23IzZU+cbQDBN92Iq+qGxxiGht5HU tAWw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850028; x=1713454828; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=PklJoG+dHcGyORAfKU6STIZs7i0r1PiGXnTWAdv9t5M=; b=cWSW5nGvp2VyuiQAZV9kXCBcSz5ab260rQDSahAYE8QScOQi+JDcIAilvxwDF8+d2D ZVkYDSPQ1EtrOfAVKp7YHfQoAM7eKmqjdNEmOUm9W4lA/Ms7LOZC65KTeynJ6UgWRvYD msTNu6+qTYqbWUMhkf831qQHVnIBRDzwu+mINfngNTvOLIH3Bs7rXjCSx5OH2fqS8VGv 6eqD9ptaB2yTLBuVfv0CFNk4TAoo2cj4Ic72iv5Fnf3GNkeSGvVEDv9qAfm+3giHsJfO rEKtq8voX7qZtQZ4xb31n290joyr99hGWiK/7krbSO3dfP3jITVV94EfhiRf7SL8Nzvc s6og== X-Gm-Message-State: AOJu0YzcDoUKbX2o1tr1d1EIbbvBb/Fz4xqyFEcvccuKmqBmyVouBftS Lh7dNKjre/UAA84RRmVMARPKzcDQI3XvKpNT51KpswbB5DdU7SemKqUrvZUVOiuZuhj+0phZuoP Z X-Google-Smtp-Source: AGHT+IFg8f83mqjYAntkAffdqJm5V5aD21G9tKORlExgHKQQsWaiEVMZfvDaYqC0V25bfmgBloxfjw== X-Received: by 2002:a05:6602:4ed7:b0:7d5:ddc8:504d with SMTP id gk23-20020a0566024ed700b007d5ddc8504dmr198422iob.0.1712850028670; Thu, 11 Apr 2024 08:40:28 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.40.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:40:27 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Bui Quang Minh , Jens Axboe Subject: [PATCH 319/437] drivers/net/ethernet/broadcom-bnxt: convert to read/write iterators Date: Thu, 11 Apr 2024 09:17:39 -0600 Message-ID: <20240411153126.16201-320-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" From: Bui Quang Minh Signed-off-by: Bui Quang Minh Signed-off-by: Jens Axboe --- drivers/net/ethernet/broadcom/bnxt/bnxt_debugfs.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_debugfs.c b/drivers/ne= t/ethernet/broadcom/bnxt/bnxt_debugfs.c index 156c2404854f..777f2e892869 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt_debugfs.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_debugfs.c @@ -17,15 +17,14 @@ =20 static struct dentry *bnxt_debug_mnt; =20 -static ssize_t debugfs_dim_read(struct file *filep, - char __user *buffer, - size_t count, loff_t *ppos) +static ssize_t debugfs_dim_read_iter(struct kiocb *iocb, struct iov_iter *= to) { - struct dim *dim =3D filep->private_data; + struct dim *dim =3D iocb->ki_filp->private_data; int len; char *buf; + size_t count =3D iov_iter_count(to); =20 - if (*ppos) + if (iocb->ki_pos) return 0; if (!dim) return -ENODEV; @@ -50,7 +49,7 @@ static ssize_t debugfs_dim_read(struct file *filep, kfree(buf); return -ENOSPC; } - len =3D simple_read_from_buffer(buffer, count, ppos, buf, strlen(buf)); + len =3D simple_copy_to_iter(buf, &iocb->ki_pos, strlen(buf), to); kfree(buf); return len; } @@ -58,7 +57,7 @@ static ssize_t debugfs_dim_read(struct file *filep, static const struct file_operations debugfs_dim_fops =3D { .owner =3D THIS_MODULE, .open =3D simple_open, - .read =3D debugfs_dim_read, + .read_iter =3D debugfs_dim_read_iter, }; =20 static void debugfs_dim_ring_init(struct dim *dim, int ring_idx, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f54.google.com (mail-io1-f54.google.com [209.85.166.54]) (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 A84451E2445 for ; Thu, 11 Apr 2024 15:40:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850033; cv=none; b=jU02NINGj1P/B3hTrW5SggbF5YFqQEn2nxJMwAdfQl6wbVXAB4RkeHB8O9QykhFaau9xMIJ1wuexh5q3hXX8IbrzgEX9ANkIBKva771BduXu/WR+dXeCHpO+0B2UJdEYSgJnVqxINXZEPTEUWc8zNCnE5M1T3291tV3htCJl3N0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850033; c=relaxed/simple; bh=DtbXY7Nbzt2l7tRam0s8F010xFLosfo6cG8JlTrgnPs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=rtSIhHz0nLxU6c40Vc3rnbkGwGCJ6EE0m0ip6KcSBhhJJkh/2qDLW+L7+xfCnGkB/6GnPd8Oczd9vwIvOFlpBr0nAtp+D1Pp6FcQe44XBHcjMJKCJeSMvFBcD7svk1yR22CWttB2Pr2u/3emnoPhbh9Rgfqf/MqotO11hvjHTEA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=Q8EE2IZ9; arc=none smtp.client-ip=209.85.166.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="Q8EE2IZ9" Received: by mail-io1-f54.google.com with SMTP id ca18e2360f4ac-7d5ed700c2dso16236139f.0 for ; Thu, 11 Apr 2024 08:40:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850030; x=1713454830; 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=WClei6ULlpsgOoTLr0NwCdIDuB43qLDVv4pP2GKw6E8=; b=Q8EE2IZ9znW3+iUdvywD4c/+J3ZeWNhJweXK/oGqadFEhrBHXyHfuj4T/u14Y738V5 a2/05VCzLv2J6zksZS5nf2BTUyN/k9WcTjRkxHVWMmiQfjOo8EsXl5uMRLt2dFWZcp6I yrgUm4GBk+6Nnw13XHY97iWKJ5ch+ThmZwaPxVcyRL56d6z8C/8aoXcxpcEOSqAnJvl5 9yY3acOHoz6ozHRLcIq378+vJ3SP0/RGMchGJfirJH9LgrPIyBdcNWAvr3ZCut6sR5Cm 1P4cTLTR4fH0ujEnjtBFASN8bSUdDyUcRTjO0Dxzag1yJNpjL0y5DBT9vbH76ibVM+WB 0Rog== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850030; x=1713454830; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=WClei6ULlpsgOoTLr0NwCdIDuB43qLDVv4pP2GKw6E8=; b=Xr7GyvrHeSBeQxZ4CfNj9+bGKlgSXpZs/LRZGHGfGa67k8ZAFUpXfwBgrvRTQbf7dE wkqNJGPByJRnzr5viy2jXlnnSHw8kmBytq/hQPy17dsiG4OUl0PLwSdUlrHAjQRzHgmt v3rlJ83QmAp8rqqTL2HD+xHkNOJTf/3VoNs7GMvAYPH2+IPPX89bWWUkREewTvVEIhYR RC45NWHsFKeBpW95/+XxweUX64KbqiGBMQtXgVfFtdrTULwyHTMEM9NJ64wZ6n0qDE0I JMSpMT0Hsi2+fSpteXws3s0THSeJ+MsvTF3HLopI8PkcK//Axwn2CBvyBLGPwTpLUrjB rBfA== X-Gm-Message-State: AOJu0Yzul1zyX8nTy7by/EGmrToWVr/Vx+TrBeXjrN3eBTHnymlrHCA4 HC7aSAfHllyLW4L7tKqlgXb0tuBnWi0YpwnzAGl1QrYYk3Kq3Cl5HsTAhJmA/Fz9vHwIRgbe+GF p X-Google-Smtp-Source: AGHT+IG0CzTwRrpHGEZ0NGQwIy0whTQ09dzWBKuH495u98ALOlpBtt2b9dTXcaLZJ3BARHA6qDTC7A== X-Received: by 2002:a6b:f312:0:b0:7d5:de23:13a9 with SMTP id m18-20020a6bf312000000b007d5de2313a9mr173239ioh.1.1712850030523; Thu, 11 Apr 2024 08:40:30 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.40.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:40:28 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Bui Quang Minh , Jens Axboe Subject: [PATCH 320/437] drivers/net/brocade-bnad: ensure the copied buf is NULL terminated Date: Thu, 11 Apr 2024 09:17:40 -0600 Message-ID: <20240411153126.16201-321-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" From: Bui Quang Minh Currently, we allocate a nbytes-sized kernel buffer and copy nbytes from userspace to that buffer. Later, we use scanf on this buffer but we don't ensure that the string is terminated inside the buffer, this can lead to OOB read when using scanf. Fix this issue by using memdup_user_nul instead of memdup_user. Fixes: 7afc5dbde091 ("bna: Add debugfs interface.") Signed-off-by: Bui Quang Minh Signed-off-by: Jens Axboe --- drivers/net/ethernet/brocade/bna/bnad_debugfs.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/brocade/bna/bnad_debugfs.c b/drivers/net/= ethernet/brocade/bna/bnad_debugfs.c index 7246e13dd559..97291bfbeea5 100644 --- a/drivers/net/ethernet/brocade/bna/bnad_debugfs.c +++ b/drivers/net/ethernet/brocade/bna/bnad_debugfs.c @@ -312,7 +312,7 @@ bnad_debugfs_write_regrd(struct file *file, const char = __user *buf, void *kern_buf; =20 /* Copy the user space buf */ - kern_buf =3D memdup_user(buf, nbytes); + kern_buf =3D memdup_user_nul(buf, nbytes); if (IS_ERR(kern_buf)) return PTR_ERR(kern_buf); =20 @@ -372,7 +372,7 @@ bnad_debugfs_write_regwr(struct file *file, const char = __user *buf, void *kern_buf; =20 /* Copy the user space buf */ - kern_buf =3D memdup_user(buf, nbytes); + kern_buf =3D memdup_user_nul(buf, nbytes); if (IS_ERR(kern_buf)) return PTR_ERR(kern_buf); =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-il1-f178.google.com (mail-il1-f178.google.com [209.85.166.178]) (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 490FF1E2469 for ; Thu, 11 Apr 2024 15:40:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.178 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850034; cv=none; b=RvvYSHCKyYeHuQuhT/CLWF9iN+7FtKmwPZZJYHuhzjzOvAFjt6F12SMol6qkKG34JQOL74TzSMnbTyX4YN1O1mUukJdc2nFbJ+VjsgH5aNeK9roTdUpeI0TdM15HBdbDenwI2Fm9zgUOLDIaAH5cDxxfb3IofYx+MEf/8r5usjA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850034; c=relaxed/simple; bh=I8dXB4IwiX0IwvNcDtJ4Kp6Q4HUSfbarUFatjYcceNI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=LCV4asYAtToncOb2y+m4zk2VP10fdcQ+KQAScCqV68pCsgU/pxO0+kC5ezlcMIdmJ9AkW7Rf5IwwoqlAW+p+/cMRAXUQSGQ7e9ao4TlHgG0HrW1G05VaEuhSLtfTta1VRbm+oRv7mbwds1tXQjewvdB+IiXLLrZoZOXRPzyHqcA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=MIpgOX+3; arc=none smtp.client-ip=209.85.166.178 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="MIpgOX+3" Received: by mail-il1-f178.google.com with SMTP id e9e14a558f8ab-36a34b68277so118835ab.0 for ; Thu, 11 Apr 2024 08:40:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850032; x=1713454832; 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=JNYlDh++hWQKeJgeJ1TbZWHR3S/TzYrOtOOXTxHryuI=; b=MIpgOX+3+tnRLptRgnPm4wwpKYhBBGEZQC0Fw7JTHSUsCyRmH2TOobGeXNz+q+pYPC XdL8eXgFT6eo28qL6M1rZ7jMuCcA4b6a0AIDWm2KB3dZktG0Shb80hke5E7jZWD6CYTa HgMz5BAHvas3tyfVJEPhXu0qvoW7Y4wsoTLTVhBBALfctCWIIDHEzUzZQCLv0OUrMB+X jyZkizS6K2qq3TMQswGzYBRTF6LHwcAAUXm80EQslf5bbkHUULKtNrSCh3SI3WkmB7Oq GhbPCX03tFasZja6t6qMVeF0Gb1zUFhjxPh9HSAthd5ZMujkokt70M3ft6sKQSiqNi00 Gq2A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850032; x=1713454832; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=JNYlDh++hWQKeJgeJ1TbZWHR3S/TzYrOtOOXTxHryuI=; b=f3YHEVy8qn5cLknShJk7ujszp5FZaj+KuEuBo6sfHMDfrRNJajzmRZDRLRwzk4EJ82 bnX3QiYoWnmJpzQ+s5f4A+6rB/cX4UYfp0ZNIPYFhwddzRBgKzD19pxZrJkOY8GROWdl OEb/Vc8xceduyfY+zIcdJUjXwzI+Xh3o/fFQGHDNp2OEZK+brE+jez6KlVRdT5Jj3shA BcnBv59KaIQd1CR7nb57sOwXoV+2PleKJr6UU04oEPnEhgbZQPZBy9Fo6RKOWxLTrSum Vw7y3MzsPzLfZm/hSGuPZh/U3lAZHK2GDRdx0OO3QD6/fHiGbdZXsj75cF/qnzRDcsPF J80A== X-Gm-Message-State: AOJu0YyFZOZuWg6rdR2/5NM/Au0ScbidRmd2oDj4bOZA4l9V6ZgpBorr KFlY/Cy5NrnDvuR/JMtO7A3FXVl6Ons/2d+z6N4q50ND2rjzrFNqiOR+M35MrUBWco7xcV6rSVS D X-Google-Smtp-Source: AGHT+IHUAKRjI2tZze6ZIASuYQzzXyv3oo0j6+1bpYH1XDW1sQnBFM7c9lZDEJ9xnbLbcWXOwkvqFA== X-Received: by 2002:a05:6602:4ed7:b0:7d5:ddc8:504d with SMTP id gk23-20020a0566024ed700b007d5ddc8504dmr198535iob.0.1712850032141; Thu, 11 Apr 2024 08:40:32 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.40.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:40:30 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Bui Quang Minh , Jens Axboe Subject: [PATCH 321/437] drivers/net/brocade-bnad: convert to read/write iterators Date: Thu, 11 Apr 2024 09:17:41 -0600 Message-ID: <20240411153126.16201-322-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" From: Bui Quang Minh Signed-off-by: Bui Quang Minh Signed-off-by: Jens Axboe --- .../net/ethernet/brocade/bna/bnad_debugfs.c | 47 +++++++++---------- 1 file changed, 23 insertions(+), 24 deletions(-) diff --git a/drivers/net/ethernet/brocade/bna/bnad_debugfs.c b/drivers/net/= ethernet/brocade/bna/bnad_debugfs.c index 97291bfbeea5..88451f739f1f 100644 --- a/drivers/net/ethernet/brocade/bna/bnad_debugfs.c +++ b/drivers/net/ethernet/brocade/bna/bnad_debugfs.c @@ -229,16 +229,15 @@ bnad_debugfs_lseek(struct file *file, loff_t offset, = int orig) } =20 static ssize_t -bnad_debugfs_read(struct file *file, char __user *buf, - size_t nbytes, loff_t *pos) +bnad_debugfs_read_iter(struct kiocb *iocb, struct iov_iter *to) { - struct bnad_debug_info *debug =3D file->private_data; + struct bnad_debug_info *debug =3D iocb->ki_filp->private_data; =20 if (!debug || !debug->debug_buffer) return 0; =20 - return simple_read_from_buffer(buf, nbytes, pos, - debug->debug_buffer, debug->buffer_len); + return simple_copy_to_iter(debug->debug_buffer, &iocb->ki_pos, + debug->buffer_len, to); } =20 #define BFA_REG_CT_ADDRSZ (0x40000) @@ -275,18 +274,18 @@ bna_reg_offset_check(struct bfa_ioc *ioc, u32 offset,= u32 len) } =20 static ssize_t -bnad_debugfs_read_regrd(struct file *file, char __user *buf, - size_t nbytes, loff_t *pos) +bnad_debugfs_read_regrd_iter(struct kiocb *iocb, struct iov_iter *to) { - struct bnad_debug_info *regrd_debug =3D file->private_data; + struct bnad_debug_info *regrd_debug =3D iocb->ki_filp->private_data; struct bnad *bnad =3D (struct bnad *)regrd_debug->i_private; ssize_t rc; + loff_t *pos =3D &iocb->ki_pos; + size_t nbytes =3D iov_iter_count(to); =20 if (!bnad->regdata) return 0; =20 - rc =3D simple_read_from_buffer(buf, nbytes, pos, - bnad->regdata, bnad->reglen); + rc =3D simple_copy_to_iter(bnad->regdata, pos, bnad->reglen, to); =20 if ((*pos + nbytes) >=3D bnad->reglen) { kfree(bnad->regdata); @@ -298,10 +297,9 @@ bnad_debugfs_read_regrd(struct file *file, char __user= *buf, } =20 static ssize_t -bnad_debugfs_write_regrd(struct file *file, const char __user *buf, - size_t nbytes, loff_t *ppos) +bnad_debugfs_write_regrd_iter(struct kiocb *iocb, struct iov_iter *from) { - struct bnad_debug_info *regrd_debug =3D file->private_data; + struct bnad_debug_info *regrd_debug =3D iocb->ki_filp->private_data; struct bnad *bnad =3D (struct bnad *)regrd_debug->i_private; struct bfa_ioc *ioc =3D &bnad->bna.ioceth.ioc; int rc, i; @@ -310,9 +308,10 @@ bnad_debugfs_write_regrd(struct file *file, const char= __user *buf, void __iomem *rb, *reg_addr; unsigned long flags; void *kern_buf; + size_t nbytes =3D iov_iter_count(from); =20 /* Copy the user space buf */ - kern_buf =3D memdup_user_nul(buf, nbytes); + kern_buf =3D iterdup_nul(from, nbytes); if (IS_ERR(kern_buf)) return PTR_ERR(kern_buf); =20 @@ -359,10 +358,9 @@ bnad_debugfs_write_regrd(struct file *file, const char= __user *buf, } =20 static ssize_t -bnad_debugfs_write_regwr(struct file *file, const char __user *buf, - size_t nbytes, loff_t *ppos) +bnad_debugfs_write_regwr_iter(struct kiocb *iocb, struct iov_iter *from) { - struct bnad_debug_info *debug =3D file->private_data; + struct bnad_debug_info *debug =3D iocb->ki_filp->private_data; struct bnad *bnad =3D (struct bnad *)debug->i_private; struct bfa_ioc *ioc =3D &bnad->bna.ioceth.ioc; int rc; @@ -370,9 +368,10 @@ bnad_debugfs_write_regwr(struct file *file, const char= __user *buf, void __iomem *reg_addr; unsigned long flags; void *kern_buf; + size_t nbytes =3D iov_iter_count(from); =20 /* Copy the user space buf */ - kern_buf =3D memdup_user_nul(buf, nbytes); + kern_buf =3D iterdup_nul(from, nbytes); if (IS_ERR(kern_buf)) return PTR_ERR(kern_buf); =20 @@ -434,7 +433,7 @@ static const struct file_operations bnad_debugfs_op_fwt= rc =3D { .owner =3D THIS_MODULE, .open =3D bnad_debugfs_open_fwtrc, .llseek =3D bnad_debugfs_lseek, - .read =3D bnad_debugfs_read, + .read_iter =3D bnad_debugfs_read_iter, .release =3D bnad_debugfs_buffer_release, }; =20 @@ -442,7 +441,7 @@ static const struct file_operations bnad_debugfs_op_fws= ave =3D { .owner =3D THIS_MODULE, .open =3D bnad_debugfs_open_fwsave, .llseek =3D bnad_debugfs_lseek, - .read =3D bnad_debugfs_read, + .read_iter =3D bnad_debugfs_read_iter, .release =3D bnad_debugfs_buffer_release, }; =20 @@ -450,8 +449,8 @@ static const struct file_operations bnad_debugfs_op_reg= rd =3D { .owner =3D THIS_MODULE, .open =3D bnad_debugfs_open_reg, .llseek =3D bnad_debugfs_lseek, - .read =3D bnad_debugfs_read_regrd, - .write =3D bnad_debugfs_write_regrd, + .read_iter =3D bnad_debugfs_read_regrd_iter, + .write_iter =3D bnad_debugfs_write_regrd_iter, .release =3D bnad_debugfs_release, }; =20 @@ -459,7 +458,7 @@ static const struct file_operations bnad_debugfs_op_reg= wr =3D { .owner =3D THIS_MODULE, .open =3D bnad_debugfs_open_reg, .llseek =3D bnad_debugfs_lseek, - .write =3D bnad_debugfs_write_regwr, + .write_iter =3D bnad_debugfs_write_regwr_iter, .release =3D bnad_debugfs_release, }; =20 @@ -467,7 +466,7 @@ static const struct file_operations bnad_debugfs_op_drv= info =3D { .owner =3D THIS_MODULE, .open =3D bnad_debugfs_open_drvinfo, .llseek =3D bnad_debugfs_lseek, - .read =3D bnad_debugfs_read, + .read_iter =3D bnad_debugfs_read_iter, .release =3D bnad_debugfs_buffer_release, }; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f43.google.com (mail-io1-f43.google.com [209.85.166.43]) (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 AFFD91E3123 for ; Thu, 11 Apr 2024 15:40:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850036; cv=none; b=FiKfooPevnI/Giag8cPd0gFInKqr65B7LlNl575pgTii6jSritpgLwXb0kSbWTLVFG0IqoBGYovyuqA7MPBt2auETxlTzn0obreLYLkeyh2A/4HK8RhiU91g9WA72Lin7v23gkR1fJX/wT4dgL4M5dRt3m1SBlnVucpynICa8zw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850036; c=relaxed/simple; bh=8bicZQbR5m2GnpNZQdJYfFi51HQMVdJ5DvIl9f4EbRw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=pyGt/xVJ6x+Eay06oJT7wq1vxhKhJbllbhi/GtdAWbEt56ZFzueWBuGX8gLsZUBPEt2Jmsho7Pl0df+Z95k1hwf47pYPbbSDVl001M1nZFVyXkW3BwGU6CIC1qlA+SlXR+aqMLG5rVhrcoeVItjqYNyvk6VLSgDPuHiTrnNDETM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=WsU+Nv+x; arc=none smtp.client-ip=209.85.166.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="WsU+Nv+x" Received: by mail-io1-f43.google.com with SMTP id ca18e2360f4ac-7d67d1073easo9883139f.0 for ; Thu, 11 Apr 2024 08:40:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850034; x=1713454834; 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=47AcYampKeXQ0+2Iq8emlTFqiO1ZspG1iXs14Hyverg=; b=WsU+Nv+xB0RwwQkccgsdjTbR/3n0bLFs3OOjl6wmQcRn8JfLTYBj948lchgYJ5BNyl li/vb0Yvtoz+5MEZXLChV8LnXQYhTP6bkQN2Yk+sQnW7v1zB4yPkiVN2wyGujdN+7Yc9 aLe/A3EpZVSvA1Lcn4xiz1ALVSL5uG0taplOFQhsDG/0q7MnO5av/gickLKtTO++ZGfc +BbbT9aqxR233k0Dq92/EZ8EAwMIa2IKHMTiudhrgbEBYb0IpYfHrLgnn66Au1CVC4IX vw+sIlS8QkFMipElqj4rpxp7/mMl3OO6lb/l2kDu8UmB2rFP4n7G5fUeHyHMNFQaQebZ c5bA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850034; x=1713454834; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=47AcYampKeXQ0+2Iq8emlTFqiO1ZspG1iXs14Hyverg=; b=iGO3xP/0sdogNcp1VhGI0l2RKZ33exKK9MXYTARc7sd8l4XeV0hadt3/FdALBA8ncE pnTVryUzxbHOKUoyjGeHglHNPeqkuJP6tRokul/cn2KhxsceI1xJf6rFa3YVoRaAOgsV s833PIjh0HVViyKkpI5aGOwZmsCvcobMvfMVS9KcTo/fz1VC3vxN7XJnqqjmnutrc1fY 41JI8I3rfK8rCqbqOV3EPbagrrt4ZJHKnDnMGya2MZfDq+wKD3vfCD76R2Te5J1NsjM5 65xWTvFrQApsxbXGZlb8aNMDXC6J6Zgo1QRAk4jiUhbjlzgMlRFZrWv1HJMTpoYfBmu6 IWrA== X-Gm-Message-State: AOJu0YysPKBDs7S6FWL1QP/Bk5R43xY15OtGzDw/Ax7jlj0jMg6athOy 0KpWFHzge2qoZi4SYV/GeZcNOLk0344kh1RX9h//eCnPpFRfLA5nf1JOZcoTFmsVU8RvHAOnWKg L X-Google-Smtp-Source: AGHT+IEYHWlHdDNYKroQIYZoLudkzfECjrR35E/0LXNLmSytlsU4GE7JwO9dJ3AeipllalACceRrUw== X-Received: by 2002:a6b:c34e:0:b0:7d6:7b7c:8257 with SMTP id t75-20020a6bc34e000000b007d67b7c8257mr230741iof.0.1712850033685; Thu, 11 Apr 2024 08:40:33 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.40.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:40:32 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Bui Quang Minh , Jens Axboe Subject: [PATCH 322/437] drivers/net/ethernet/intel-ice: ensure the copied buf is NULL terminated Date: Thu, 11 Apr 2024 09:17:42 -0600 Message-ID: <20240411153126.16201-323-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" From: Bui Quang Minh Currently, we allocate a count-sized kernel buffer and copy count bytes from userspace to that buffer. Later, we use sscanf on this buffer but we don't ensure that the string is terminated inside the buffer, this can lead to OOB read when using sscanf. Fix this issue by using memdup_user_nul instead of memdup_user. Fixes: 96a9a9341cda ("ice: configure FW logging") Fixes: 73671c3162c8 ("ice: enable FW logging") Signed-off-by: Bui Quang Minh Signed-off-by: Jens Axboe --- drivers/net/ethernet/intel/ice/ice_debugfs.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/net/ethernet/intel/ice/ice_debugfs.c b/drivers/net/eth= ernet/intel/ice/ice_debugfs.c index d252d98218d0..9fc0fd95a13d 100644 --- a/drivers/net/ethernet/intel/ice/ice_debugfs.c +++ b/drivers/net/ethernet/intel/ice/ice_debugfs.c @@ -171,7 +171,7 @@ ice_debugfs_module_write(struct file *filp, const char = __user *buf, if (*ppos !=3D 0 || count > 8) return -EINVAL; =20 - cmd_buf =3D memdup_user(buf, count); + cmd_buf =3D memdup_user_nul(buf, count); if (IS_ERR(cmd_buf)) return PTR_ERR(cmd_buf); =20 @@ -257,7 +257,7 @@ ice_debugfs_nr_messages_write(struct file *filp, const = char __user *buf, if (*ppos !=3D 0 || count > 4) return -EINVAL; =20 - cmd_buf =3D memdup_user(buf, count); + cmd_buf =3D memdup_user_nul(buf, count); if (IS_ERR(cmd_buf)) return PTR_ERR(cmd_buf); =20 @@ -332,7 +332,7 @@ ice_debugfs_enable_write(struct file *filp, const char = __user *buf, if (*ppos !=3D 0 || count > 2) return -EINVAL; =20 - cmd_buf =3D memdup_user(buf, count); + cmd_buf =3D memdup_user_nul(buf, count); if (IS_ERR(cmd_buf)) return PTR_ERR(cmd_buf); =20 @@ -428,7 +428,7 @@ ice_debugfs_log_size_write(struct file *filp, const cha= r __user *buf, if (*ppos !=3D 0 || count > 5) return -EINVAL; =20 - cmd_buf =3D memdup_user(buf, count); + cmd_buf =3D memdup_user_nul(buf, count); if (IS_ERR(cmd_buf)) return PTR_ERR(cmd_buf); =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f48.google.com (mail-io1-f48.google.com [209.85.166.48]) (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 85FBD4AEFD for ; Thu, 11 Apr 2024 15:40:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850039; cv=none; b=DeIX7g1UExy7AXhtxxVbCgEglvF4gd6W4LcOsIikiKdj1ZpYaMvNms0vjaKZw7pHVV7vuxgV8JubPLEgEYdL3+L6cg7tjKpWxOzHnQDEymuyyaPB+/XO8LAkzEdNdK5A3+dEof/5rVBJtvyyD/gldzZlOWPWousr6Tf/nwndFcE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850039; c=relaxed/simple; bh=405uQ2rR/lcTUIgbmVA0LVxEMeerWkCm2zv42gtUQg8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=b9kWXYxhqAIAo+XJXnx4pOQj9RGc03cEjBK9aLsppOk/0V2DgTHn1nBIqeCtClCG7PWwzEfcj0LS34M/V2MAEz9aAEJIUjM/ZI88ggBsIK+lAOjsRuli/tg3TWNMC8sFeePGLe5KY+4Mzo4AIwTodFYInCK1WUvlZ3w/XioXl4o= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=i943tt7p; arc=none smtp.client-ip=209.85.166.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="i943tt7p" Received: by mail-io1-f48.google.com with SMTP id ca18e2360f4ac-7d5ed700c2dso16237739f.0 for ; Thu, 11 Apr 2024 08:40:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850035; x=1713454835; 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=vdt71NQPxQDStZfuHnytDGqHTCr7sKvVymAo1oxe0Gk=; b=i943tt7pWTPp1Xce4VbsRblnykxVgAzOXHzDcXtk8iwbL5WzA+FIscq7DKWO21k8Au zNsUIs6ItTPON0Wnjw+CoGh/+CP2VbxTuMJr06x7xOtN33clCH2reeJhWWxrWix3cvWb lLvRLfzTObyFAZe2lizVUI2wh4HXEq40ECSi95/ihQSGf7+OujJxVzdIJeyIE7xnvm1D hpOZjS98HRVLUT1zSdaijw5gNfNHhmvFyMPLS8V7Xoux+P+ExYPGeg6O3iT4wDJGva/T S9+svDaSfrm8Y4e0j0irl6EABjjK9UpptODFIPEdaky7QPh5GeyJj9m1DoBGdSil9IBH 5oNg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850035; x=1713454835; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=vdt71NQPxQDStZfuHnytDGqHTCr7sKvVymAo1oxe0Gk=; b=hWK0qLnRYGDSDyyQ1bjmg8aLLK1TLvsWgAcZSD3Ve9Bh03Y7OaigkK9yA04Qtrlk9v 0EUlJEhxb9gz8EmG8OKStFr1AL1Y8CURm2vNgF4QZPqNpAtUhp+wi1E7IZyj7YpkL2E8 /dhjvb8auVePK2CRIVkqn0kdvVZqfWGXbA8jd0Wbhatpid2m+myG0BG/x4+BOUW9pqmX km79hJ3G7NUWpL8TNPlmbz9Qv8m+MlRd6d2OY/rUeKbtq1BL/usmCQlgj/s56mCZR4Ko dwWaE7u6RHGL4NbK6FLBcPxv82bwDuF1QPp0oR2OoWNssdZxsOBl6iYWLm4bmvmMHGXm 3rRQ== X-Gm-Message-State: AOJu0Yx3SDpJGyYFQUt6SSGQKA3VfnZh3DIb6e/kt8OfgGHUOXXFWoWy +/nOqHxOS8b8IumdggHfhl0Kok6FJ8+P53K/1h/JmmrHYCrcvBFuw8vXBvIKAuTcqJx8HgpyGXd e X-Google-Smtp-Source: AGHT+IEbbEbiJE1PBIxF91ZwwL8HArlbBVGZ1yPnPGl2C4SwGJEeJp4D+lFe8n+Rhh6MemxAGJ2gNg== X-Received: by 2002:a6b:f312:0:b0:7d5:de23:13a9 with SMTP id m18-20020a6bf312000000b007d5de2313a9mr173491ioh.1.1712850035415; Thu, 11 Apr 2024 08:40:35 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.40.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:40:34 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Bui Quang Minh , Jens Axboe Subject: [PATCH 323/437] drivers/net/ethernet/intel: convert to read/write iterators Date: Thu, 11 Apr 2024 09:17:43 -0600 Message-ID: <20240411153126.16201-324-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" From: Bui Quang Minh Signed-off-by: Bui Quang Minh Signed-off-by: Jens Axboe --- .../net/ethernet/intel/fm10k/fm10k_debugfs.c | 10 +- .../net/ethernet/intel/i40e/i40e_debugfs.c | 103 +++++----- drivers/net/ethernet/intel/ice/ice_debugfs.c | 181 ++++++++---------- .../net/ethernet/intel/ixgbe/ixgbe_debugfs.c | 99 ++++------ 4 files changed, 173 insertions(+), 220 deletions(-) diff --git a/drivers/net/ethernet/intel/fm10k/fm10k_debugfs.c b/drivers/net= /ethernet/intel/fm10k/fm10k_debugfs.c index 5c77054d67c6..7995883a2c27 100644 --- a/drivers/net/ethernet/intel/fm10k/fm10k_debugfs.c +++ b/drivers/net/ethernet/intel/fm10k/fm10k_debugfs.c @@ -132,11 +132,11 @@ static int fm10k_dbg_desc_open(struct inode *inode, s= truct file *filep) } =20 static const struct file_operations fm10k_dbg_desc_fops =3D { - .owner =3D THIS_MODULE, - .open =3D fm10k_dbg_desc_open, - .read =3D seq_read, - .llseek =3D seq_lseek, - .release =3D seq_release, + .owner =3D THIS_MODULE, + .open =3D fm10k_dbg_desc_open, + .read_iter =3D seq_read_iter, + .llseek =3D seq_lseek, + .release =3D seq_release, }; =20 /** diff --git a/drivers/net/ethernet/intel/i40e/i40e_debugfs.c b/drivers/net/e= thernet/intel/i40e/i40e_debugfs.c index f9ba45f596c9..0afab111d1d4 100644 --- a/drivers/net/ethernet/intel/i40e/i40e_debugfs.c +++ b/drivers/net/ethernet/intel/i40e/i40e_debugfs.c @@ -43,23 +43,22 @@ static struct i40e_vsi *i40e_dbg_find_vsi(struct i40e_p= f *pf, int seid) static char i40e_dbg_command_buf[256] =3D ""; =20 /** - * i40e_dbg_command_read - read for command datum - * @filp: the opened file - * @buffer: where to write the data for the user to read - * @count: the size of the user's buffer - * @ppos: file position offset + * i40e_dbg_command_read_iter - read for command datum + * @iocb: the kernel io callback (kiocb) struct + * @to: iovec iterator **/ -static ssize_t i40e_dbg_command_read(struct file *filp, char __user *buffe= r, - size_t count, loff_t *ppos) +static ssize_t i40e_dbg_command_read_iter(struct kiocb *iocb, + struct iov_iter *to) { - struct i40e_pf *pf =3D filp->private_data; - int bytes_not_copied; + struct i40e_pf *pf =3D iocb->ki_filp->private_data; int buf_size =3D 256; char *buf; int len; + size_t count =3D iov_iter_count(to); + bool ret; =20 /* don't allow partial reads */ - if (*ppos !=3D 0) + if (iocb->ki_pos !=3D 0) return 0; if (count < buf_size) return -ENOSPC; @@ -72,13 +71,13 @@ static ssize_t i40e_dbg_command_read(struct file *filp,= char __user *buffer, pf->vsi[pf->lan_vsi]->netdev->name, i40e_dbg_command_buf); =20 - bytes_not_copied =3D copy_to_user(buffer, buf, len); + ret =3D !copy_to_iter_full(buf, len, to); kfree(buf); =20 - if (bytes_not_copied) + if (ret) return -EFAULT; =20 - *ppos =3D len; + iocb->ki_pos =3D len; return len; } =20 @@ -742,34 +741,30 @@ static void i40e_dbg_dump_vf_all(struct i40e_pf *pf) } =20 /** - * i40e_dbg_command_write - write into command datum - * @filp: the opened file - * @buffer: where to find the user's data - * @count: the length of the user's data - * @ppos: file position offset + * i40e_dbg_command_write_iter - write into command datum + * @iocb: the kernel io callback (kiocb) struct + * @from: iovec iterator **/ -static ssize_t i40e_dbg_command_write(struct file *filp, - const char __user *buffer, - size_t count, loff_t *ppos) +static ssize_t i40e_dbg_command_write_iter(struct kiocb *iocb, + struct iov_iter *from) { - struct i40e_pf *pf =3D filp->private_data; + struct i40e_pf *pf =3D iocb->ki_filp->private_data; char *cmd_buf, *cmd_buf_tmp; - int bytes_not_copied; struct i40e_vsi *vsi; int vsi_seid; int veb_seid; int vf_id; int cnt; + size_t count =3D iov_iter_count(from); =20 /* don't allow partial writes */ - if (*ppos !=3D 0) + if (iocb->ki_pos !=3D 0) return 0; =20 cmd_buf =3D kzalloc(count + 1, GFP_KERNEL); if (!cmd_buf) return count; - bytes_not_copied =3D copy_from_user(cmd_buf, buffer, count); - if (bytes_not_copied) { + if (!copy_from_iter_full(cmd_buf, count, from)) { kfree(cmd_buf); return -EFAULT; } @@ -1617,8 +1612,8 @@ static ssize_t i40e_dbg_command_write(struct file *fi= lp, static const struct file_operations i40e_dbg_command_fops =3D { .owner =3D THIS_MODULE, .open =3D simple_open, - .read =3D i40e_dbg_command_read, - .write =3D i40e_dbg_command_write, + .read_iter =3D i40e_dbg_command_read_iter, + .write_iter =3D i40e_dbg_command_write_iter, }; =20 /************************************************************** @@ -1629,23 +1624,22 @@ static const struct file_operations i40e_dbg_comman= d_fops =3D { static char i40e_dbg_netdev_ops_buf[256] =3D ""; =20 /** - * i40e_dbg_netdev_ops_read - read for netdev_ops datum - * @filp: the opened file - * @buffer: where to write the data for the user to read - * @count: the size of the user's buffer - * @ppos: file position offset + * i40e_dbg_netdev_ops_read_iter - read for netdev_ops datum + * @iocb: the kernel io callback (kiocb) struct + * @to: iovec iterator **/ -static ssize_t i40e_dbg_netdev_ops_read(struct file *filp, char __user *bu= ffer, - size_t count, loff_t *ppos) +static ssize_t i40e_dbg_netdev_ops_read_iter(struct kiocb *iocb, + struct iov_iter *to) { - struct i40e_pf *pf =3D filp->private_data; - int bytes_not_copied; + struct i40e_pf *pf =3D iocb->ki_filp->private_data; int buf_size =3D 256; char *buf; int len; + bool ret; + size_t count =3D iov_iter_count(to); =20 /* don't allow partal reads */ - if (*ppos !=3D 0) + if (iocb->ki_pos !=3D 0) return 0; if (count < buf_size) return -ENOSPC; @@ -1658,44 +1652,39 @@ static ssize_t i40e_dbg_netdev_ops_read(struct file= *filp, char __user *buffer, pf->vsi[pf->lan_vsi]->netdev->name, i40e_dbg_netdev_ops_buf); =20 - bytes_not_copied =3D copy_to_user(buffer, buf, len); + ret =3D !copy_to_iter_full(buf, len, to); kfree(buf); =20 - if (bytes_not_copied) + if (ret) return -EFAULT; =20 - *ppos =3D len; + iocb->ki_pos =3D len; return len; } =20 /** - * i40e_dbg_netdev_ops_write - write into netdev_ops datum - * @filp: the opened file - * @buffer: where to find the user's data - * @count: the length of the user's data - * @ppos: file position offset + * i40e_dbg_netdev_ops_write_iter - write into netdev_ops datum + * @iocb: the kernel io callback (kiocb) struct + * @from: iovec iterator **/ -static ssize_t i40e_dbg_netdev_ops_write(struct file *filp, - const char __user *buffer, - size_t count, loff_t *ppos) +static ssize_t i40e_dbg_netdev_ops_write_iter(struct kiocb *iocb, + struct iov_iter *from) { - struct i40e_pf *pf =3D filp->private_data; - int bytes_not_copied; + struct i40e_pf *pf =3D iocb->ki_filp->private_data; struct i40e_vsi *vsi; char *buf_tmp; int vsi_seid; int i, cnt; + size_t count =3D iov_iter_count(from); =20 /* don't allow partial writes */ - if (*ppos !=3D 0) + if (iocb->ki_pos !=3D 0) return 0; if (count >=3D sizeof(i40e_dbg_netdev_ops_buf)) return -ENOSPC; =20 memset(i40e_dbg_netdev_ops_buf, 0, sizeof(i40e_dbg_netdev_ops_buf)); - bytes_not_copied =3D copy_from_user(i40e_dbg_netdev_ops_buf, - buffer, count); - if (bytes_not_copied) + if (!copy_from_iter_full(i40e_dbg_netdev_ops_buf, count, from)) return -EFAULT; i40e_dbg_netdev_ops_buf[count] =3D '\0'; =20 @@ -1784,8 +1773,8 @@ static ssize_t i40e_dbg_netdev_ops_write(struct file = *filp, static const struct file_operations i40e_dbg_netdev_ops_fops =3D { .owner =3D THIS_MODULE, .open =3D simple_open, - .read =3D i40e_dbg_netdev_ops_read, - .write =3D i40e_dbg_netdev_ops_write, + .read_iter =3D i40e_dbg_netdev_ops_read_iter, + .write_iter =3D i40e_dbg_netdev_ops_write_iter, }; =20 /** diff --git a/drivers/net/ethernet/intel/ice/ice_debugfs.c b/drivers/net/eth= ernet/intel/ice/ice_debugfs.c index 9fc0fd95a13d..6ec1e04972c9 100644 --- a/drivers/net/ethernet/intel/ice/ice_debugfs.c +++ b/drivers/net/ethernet/intel/ice/ice_debugfs.c @@ -151,27 +151,25 @@ static int ice_debugfs_module_open(struct inode *inod= e, struct file *filp) } =20 /** - * ice_debugfs_module_write - write into 'module' file - * @filp: the opened file - * @buf: where to find the user's data - * @count: the length of the user's data - * @ppos: file position offset + * ice_debugfs_module_write_iter - write into 'module' file + * @iocb: the kernel io callback (kiocb) struct + * @from: iovec iterator */ static ssize_t -ice_debugfs_module_write(struct file *filp, const char __user *buf, - size_t count, loff_t *ppos) +ice_debugfs_module_write_iter(struct kiocb *iocb, struct iov_iter *from) { - struct ice_pf *pf =3D file_inode(filp)->i_private; - struct dentry *dentry =3D file_dentry(filp); + struct ice_pf *pf =3D file_inode(iocb->ki_filp)->i_private; + struct dentry *dentry =3D file_dentry(iocb->ki_filp); struct device *dev =3D ice_pf_to_dev(pf); char user_val[16], *cmd_buf; int module, log_level, cnt; + size_t count =3D iov_iter_count(from); =20 /* don't allow partial writes or invalid input */ - if (*ppos !=3D 0 || count > 8) + if (iocb->ki_pos !=3D 0 || count > 8) return -EINVAL; =20 - cmd_buf =3D memdup_user_nul(buf, count); + cmd_buf =3D iterdup_nul(from, count); if (IS_ERR(cmd_buf)) return PTR_ERR(cmd_buf); =20 @@ -209,55 +207,50 @@ ice_debugfs_module_write(struct file *filp, const cha= r __user *buf, static const struct file_operations ice_debugfs_module_fops =3D { .owner =3D THIS_MODULE, .open =3D ice_debugfs_module_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .release =3D single_release, - .write =3D ice_debugfs_module_write, + .write_iter =3D ice_debugfs_module_write_iter, }; =20 /** - * ice_debugfs_nr_messages_read - read from 'nr_messages' file - * @filp: the opened file - * @buffer: where to write the data for the user to read - * @count: the size of the user's buffer - * @ppos: file position offset + * ice_debugfs_nr_messages_read_iter - read from 'nr_messages' file + * @iocb: the kernel io callback (kiocb) struct + * @to: iovec iterator */ -static ssize_t ice_debugfs_nr_messages_read(struct file *filp, - char __user *buffer, size_t count, - loff_t *ppos) +static ssize_t ice_debugfs_nr_messages_read_iter(struct kiocb *iocb, + struct iov_iter *to) { - struct ice_pf *pf =3D filp->private_data; + struct ice_pf *pf =3D iocb->ki_filp->private_data; struct ice_hw *hw =3D &pf->hw; char buff[32] =3D {}; =20 snprintf(buff, sizeof(buff), "%d\n", hw->fwlog_cfg.log_resolution); =20 - return simple_read_from_buffer(buffer, count, ppos, buff, strlen(buff)); + return simple_copy_to_iter(buff, &iocb->ki_pos, strlen(buff), to); } =20 /** - * ice_debugfs_nr_messages_write - write into 'nr_messages' file - * @filp: the opened file - * @buf: where to find the user's data - * @count: the length of the user's data - * @ppos: file position offset + * ice_debugfs_nr_messages_write_iter - write into 'nr_messages' file + * @iocb: the kernel io callback (kiocb) struct + * @from: iovec iterator */ static ssize_t -ice_debugfs_nr_messages_write(struct file *filp, const char __user *buf, - size_t count, loff_t *ppos) +ice_debugfs_nr_messages_write_iter(struct kiocb *iocb, struct iov_iter *fr= om) { - struct ice_pf *pf =3D filp->private_data; + struct ice_pf *pf =3D iocb->ki_filp->private_data; struct device *dev =3D ice_pf_to_dev(pf); struct ice_hw *hw =3D &pf->hw; char user_val[8], *cmd_buf; s16 nr_messages; ssize_t ret; + size_t count =3D iov_iter_count(from); =20 /* don't allow partial writes or invalid input */ - if (*ppos !=3D 0 || count > 4) + if (iocb->ki_pos !=3D 0 || count > 4) return -EINVAL; =20 - cmd_buf =3D memdup_user_nul(buf, count); + cmd_buf =3D iterdup_nul(from, count); if (IS_ERR(cmd_buf)) return PTR_ERR(cmd_buf); =20 @@ -285,22 +278,19 @@ ice_debugfs_nr_messages_write(struct file *filp, cons= t char __user *buf, static const struct file_operations ice_debugfs_nr_messages_fops =3D { .owner =3D THIS_MODULE, .open =3D simple_open, - .read =3D ice_debugfs_nr_messages_read, - .write =3D ice_debugfs_nr_messages_write, + .read_iter =3D ice_debugfs_nr_messages_read_iter, + .write_iter =3D ice_debugfs_nr_messages_write_iter, }; =20 /** - * ice_debugfs_enable_read - read from 'enable' file - * @filp: the opened file - * @buffer: where to write the data for the user to read - * @count: the size of the user's buffer - * @ppos: file position offset + * ice_debugfs_enable_read_iter - read from 'enable' file + * @iocb: the kernel io callback (kiocb) struct + * @to: iovec iterator */ -static ssize_t ice_debugfs_enable_read(struct file *filp, - char __user *buffer, size_t count, - loff_t *ppos) +static ssize_t ice_debugfs_enable_read_iter(struct kiocb *iocb, + struct iov_iter *to) { - struct ice_pf *pf =3D filp->private_data; + struct ice_pf *pf =3D iocb->ki_filp->private_data; struct ice_hw *hw =3D &pf->hw; char buff[32] =3D {}; =20 @@ -308,31 +298,29 @@ static ssize_t ice_debugfs_enable_read(struct file *f= ilp, (u16)(hw->fwlog_cfg.options & ICE_FWLOG_OPTION_IS_REGISTERED) >> 3); =20 - return simple_read_from_buffer(buffer, count, ppos, buff, strlen(buff)); + return simple_copy_to_iter(buff, &iocb->ki_pos, strlen(buff), to); } =20 /** - * ice_debugfs_enable_write - write into 'enable' file - * @filp: the opened file - * @buf: where to find the user's data - * @count: the length of the user's data - * @ppos: file position offset + * ice_debugfs_enable_write_iter - write into 'enable' file + * @iocb: the kernel io callback (kiocb) struct + * @from: iovec iterator */ static ssize_t -ice_debugfs_enable_write(struct file *filp, const char __user *buf, - size_t count, loff_t *ppos) +ice_debugfs_enable_write_iter(struct kiocb *iocb, struct iov_iter *from) { - struct ice_pf *pf =3D filp->private_data; + struct ice_pf *pf =3D iocb->ki_filp->private_data; struct ice_hw *hw =3D &pf->hw; char user_val[8], *cmd_buf; bool enable; ssize_t ret; + size_t count =3D iov_iter_count(from); =20 /* don't allow partial writes or invalid input */ - if (*ppos !=3D 0 || count > 2) + if (iocb->ki_pos !=3D 0 || count > 2) return -EINVAL; =20 - cmd_buf =3D memdup_user_nul(buf, count); + cmd_buf =3D iterdup_nul(from, count); if (IS_ERR(cmd_buf)) return PTR_ERR(cmd_buf); =20 @@ -380,22 +368,19 @@ ice_debugfs_enable_write(struct file *filp, const cha= r __user *buf, static const struct file_operations ice_debugfs_enable_fops =3D { .owner =3D THIS_MODULE, .open =3D simple_open, - .read =3D ice_debugfs_enable_read, - .write =3D ice_debugfs_enable_write, + .read_iter =3D ice_debugfs_enable_read_iter, + .write_iter =3D ice_debugfs_enable_write_iter, }; =20 /** - * ice_debugfs_log_size_read - read from 'log_size' file - * @filp: the opened file - * @buffer: where to write the data for the user to read - * @count: the size of the user's buffer - * @ppos: file position offset + * ice_debugfs_log_size_read_iter - read from 'log_size' file + * @iocb: the kernel io callback (kiocb) struct + * @to: iovec iterator */ -static ssize_t ice_debugfs_log_size_read(struct file *filp, - char __user *buffer, size_t count, - loff_t *ppos) +static ssize_t ice_debugfs_log_size_read_iter(struct kiocb *iocb, + struct iov_iter *to) { - struct ice_pf *pf =3D filp->private_data; + struct ice_pf *pf =3D iocb->ki_filp->private_data; struct ice_hw *hw =3D &pf->hw; char buff[32] =3D {}; int index; @@ -403,32 +388,30 @@ static ssize_t ice_debugfs_log_size_read(struct file = *filp, index =3D hw->fwlog_ring.index; snprintf(buff, sizeof(buff), "%s\n", ice_fwlog_log_size[index]); =20 - return simple_read_from_buffer(buffer, count, ppos, buff, strlen(buff)); + return simple_copy_to_iter(buff, &iocb->ki_pos, strlen(buff), to); } =20 /** - * ice_debugfs_log_size_write - write into 'log_size' file - * @filp: the opened file - * @buf: where to find the user's data - * @count: the length of the user's data - * @ppos: file position offset + * ice_debugfs_log_size_write_iter - write into 'log_size' file + * @iocb: the kernel io callback (kiocb) struct + * @from: iovec iterator */ static ssize_t -ice_debugfs_log_size_write(struct file *filp, const char __user *buf, - size_t count, loff_t *ppos) +ice_debugfs_log_size_write_iter(struct kiocb *iocb, struct iov_iter *from) { - struct ice_pf *pf =3D filp->private_data; + struct ice_pf *pf =3D iocb->ki_filp->private_data; struct device *dev =3D ice_pf_to_dev(pf); struct ice_hw *hw =3D &pf->hw; char user_val[8], *cmd_buf; ssize_t ret; int index; + size_t count =3D iov_iter_count(from); =20 /* don't allow partial writes or invalid input */ - if (*ppos !=3D 0 || count > 5) + if (iocb->ki_pos !=3D 0 || count > 5) return -EINVAL; =20 - cmd_buf =3D memdup_user_nul(buf, count); + cmd_buf =3D iterdup_nul(from, count); if (IS_ERR(cmd_buf)) return PTR_ERR(cmd_buf); =20 @@ -470,24 +453,23 @@ ice_debugfs_log_size_write(struct file *filp, const c= har __user *buf, static const struct file_operations ice_debugfs_log_size_fops =3D { .owner =3D THIS_MODULE, .open =3D simple_open, - .read =3D ice_debugfs_log_size_read, - .write =3D ice_debugfs_log_size_write, + .read_iter =3D ice_debugfs_log_size_read_iter, + .write_iter =3D ice_debugfs_log_size_write_iter, }; =20 /** - * ice_debugfs_data_read - read from 'data' file - * @filp: the opened file - * @buffer: where to write the data for the user to read - * @count: the size of the user's buffer - * @ppos: file position offset + * ice_debugfs_data_read_iter - read from 'data' file + * @iocb: the kernel io callback (kiocb) struct + * @to: iovec iterator */ -static ssize_t ice_debugfs_data_read(struct file *filp, char __user *buffe= r, - size_t count, loff_t *ppos) +static ssize_t ice_debugfs_data_read_iter(struct kiocb *iocb, + struct iov_iter *to) { - struct ice_pf *pf =3D filp->private_data; + struct ice_pf *pf =3D iocb->ki_filp->private_data; struct ice_hw *hw =3D &pf->hw; int data_copied =3D 0; bool done =3D false; + size_t count =3D iov_iter_count(to); =20 if (ice_fwlog_ring_empty(&hw->fwlog_ring)) return 0; @@ -503,7 +485,7 @@ static ssize_t ice_debugfs_data_read(struct file *filp,= char __user *buffer, continue; } =20 - if (copy_to_user(buffer, log->data, cur_buf_len)) { + if (!copy_to_iter_full(log->data, cur_buf_len, to)) { /* if there is an error then bail and return whatever * the driver has copied so far */ @@ -512,9 +494,8 @@ static ssize_t ice_debugfs_data_read(struct file *filp,= char __user *buffer, } =20 data_copied +=3D cur_buf_len; - buffer +=3D cur_buf_len; count -=3D cur_buf_len; - *ppos +=3D cur_buf_len; + iocb->ki_pos +=3D cur_buf_len; ice_fwlog_ring_increment(&hw->fwlog_ring.head, hw->fwlog_ring.size); } @@ -523,23 +504,21 @@ static ssize_t ice_debugfs_data_read(struct file *fil= p, char __user *buffer, } =20 /** - * ice_debugfs_data_write - write into 'data' file - * @filp: the opened file - * @buf: where to find the user's data - * @count: the length of the user's data - * @ppos: file position offset + * ice_debugfs_data_write_iter - write into 'data' file + * @iocb: the kernel io callback (kiocb) struct + * @from: iovec iterator */ static ssize_t -ice_debugfs_data_write(struct file *filp, const char __user *buf, size_t c= ount, - loff_t *ppos) +ice_debugfs_data_write_iter(struct kiocb *iocb, struct iov_iter *from) { - struct ice_pf *pf =3D filp->private_data; + struct ice_pf *pf =3D iocb->ki_filp->private_data; struct device *dev =3D ice_pf_to_dev(pf); struct ice_hw *hw =3D &pf->hw; ssize_t ret; + size_t count =3D iov_iter_count(from); =20 /* don't allow partial writes */ - if (*ppos !=3D 0) + if (iocb->ki_pos !=3D 0) return 0; =20 /* any value is allowed to clear the buffer so no need to even look at @@ -573,8 +552,8 @@ ice_debugfs_data_write(struct file *filp, const char __= user *buf, size_t count, static const struct file_operations ice_debugfs_data_fops =3D { .owner =3D THIS_MODULE, .open =3D simple_open, - .read =3D ice_debugfs_data_read, - .write =3D ice_debugfs_data_write, + .read_iter =3D ice_debugfs_data_read_iter, + .write_iter =3D ice_debugfs_data_write_iter, }; =20 /** diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_debugfs.c b/drivers/net= /ethernet/intel/ixgbe/ixgbe_debugfs.c index 5b1cf49df3d3..077dd26e7079 100644 --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_debugfs.c +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_debugfs.c @@ -10,16 +10,17 @@ static struct dentry *ixgbe_dbg_root; =20 static char ixgbe_dbg_reg_ops_buf[256] =3D ""; =20 -static ssize_t ixgbe_dbg_common_ops_read(struct file *filp, char __user *b= uffer, - size_t count, loff_t *ppos, +static ssize_t ixgbe_dbg_common_ops_read(struct kiocb *iocb, + struct iov_iter *to, char *dbg_buf) { - struct ixgbe_adapter *adapter =3D filp->private_data; + struct ixgbe_adapter *adapter =3D iocb->ki_filp->private_data; char *buf; int len; + size_t count =3D iov_iter_count(to); =20 /* don't allow partial reads */ - if (*ppos !=3D 0) + if (iocb->ki_pos !=3D 0) return 0; =20 buf =3D kasprintf(GFP_KERNEL, "%s: %s\n", @@ -32,51 +33,43 @@ static ssize_t ixgbe_dbg_common_ops_read(struct file *f= ilp, char __user *buffer, return -ENOSPC; } =20 - len =3D simple_read_from_buffer(buffer, count, ppos, buf, strlen(buf)); + len =3D simple_copy_to_iter(buf, &iocb->ki_pos, strlen(buf), to); =20 kfree(buf); return len; } =20 /** - * ixgbe_dbg_reg_ops_read - read for reg_ops datum - * @filp: the opened file - * @buffer: where to write the data for the user to read - * @count: the size of the user's buffer - * @ppos: file position offset + * ixgbe_dbg_reg_ops_read_iter - read for reg_ops datum + * @iocb: the kernel io callback (kiocb) struct + * @to: iovec iterator **/ -static ssize_t ixgbe_dbg_reg_ops_read(struct file *filp, char __user *buff= er, - size_t count, loff_t *ppos) +static ssize_t ixgbe_dbg_reg_ops_read_iter(struct kiocb *iocb, + struct iov_iter *to) { - return ixgbe_dbg_common_ops_read(filp, buffer, count, ppos, - ixgbe_dbg_reg_ops_buf); + return ixgbe_dbg_common_ops_read(iocb, to, ixgbe_dbg_reg_ops_buf); } =20 /** - * ixgbe_dbg_reg_ops_write - write into reg_ops datum - * @filp: the opened file - * @buffer: where to find the user's data - * @count: the length of the user's data - * @ppos: file position offset + * ixgbe_dbg_reg_ops_write_iter - write into reg_ops datum + * @iocb: the kernel io callback (kiocb) struct + * @from: iovec iterator **/ -static ssize_t ixgbe_dbg_reg_ops_write(struct file *filp, - const char __user *buffer, - size_t count, loff_t *ppos) +static ssize_t ixgbe_dbg_reg_ops_write_iter(struct kiocb *iocb, + struct iov_iter *from) { - struct ixgbe_adapter *adapter =3D filp->private_data; + struct ixgbe_adapter *adapter =3D iocb->ki_filp->private_data; int len; + size_t count =3D iov_iter_count(from); =20 /* don't allow partial writes */ - if (*ppos !=3D 0) + if (iocb->ki_pos !=3D 0) return 0; if (count >=3D sizeof(ixgbe_dbg_reg_ops_buf)) return -ENOSPC; =20 - len =3D simple_write_to_buffer(ixgbe_dbg_reg_ops_buf, - sizeof(ixgbe_dbg_reg_ops_buf)-1, - ppos, - buffer, - count); + len =3D simple_copy_from_iter(ixgbe_dbg_reg_ops_buf, &iocb->ki_pos, + sizeof(ixgbe_dbg_reg_ops_buf) - 1, from); if (len < 0) return len; =20 @@ -115,51 +108,43 @@ static ssize_t ixgbe_dbg_reg_ops_write(struct file *f= ilp, static const struct file_operations ixgbe_dbg_reg_ops_fops =3D { .owner =3D THIS_MODULE, .open =3D simple_open, - .read =3D ixgbe_dbg_reg_ops_read, - .write =3D ixgbe_dbg_reg_ops_write, + .read_iter =3D ixgbe_dbg_reg_ops_read_iter, + .write_iter =3D ixgbe_dbg_reg_ops_write_iter, }; =20 static char ixgbe_dbg_netdev_ops_buf[256] =3D ""; =20 /** - * ixgbe_dbg_netdev_ops_read - read for netdev_ops datum - * @filp: the opened file - * @buffer: where to write the data for the user to read - * @count: the size of the user's buffer - * @ppos: file position offset + * ixgbe_dbg_netdev_ops_read_iter - read for netdev_ops datum + * @iocb: the kernel io callback (kiocb) struct + * @to: iovec iterator **/ -static ssize_t ixgbe_dbg_netdev_ops_read(struct file *filp, char __user *b= uffer, - size_t count, loff_t *ppos) +static ssize_t ixgbe_dbg_netdev_ops_read_iter(struct kiocb *iocb, + struct iov_iter *to) { - return ixgbe_dbg_common_ops_read(filp, buffer, count, ppos, - ixgbe_dbg_netdev_ops_buf); + return ixgbe_dbg_common_ops_read(iocb, to, ixgbe_dbg_netdev_ops_buf); } =20 /** - * ixgbe_dbg_netdev_ops_write - write into netdev_ops datum - * @filp: the opened file - * @buffer: where to find the user's data - * @count: the length of the user's data - * @ppos: file position offset + * ixgbe_dbg_netdev_ops_write_iter - write into netdev_ops datum + * @iocb: the kernel io callback (kiocb) struct + * @from: iovec iterator **/ -static ssize_t ixgbe_dbg_netdev_ops_write(struct file *filp, - const char __user *buffer, - size_t count, loff_t *ppos) +static ssize_t ixgbe_dbg_netdev_ops_write_iter(struct kiocb *iocb, + struct iov_iter *from) { - struct ixgbe_adapter *adapter =3D filp->private_data; + struct ixgbe_adapter *adapter =3D iocb->ki_filp->private_data; int len; + size_t count =3D iov_iter_count(from); =20 /* don't allow partial writes */ - if (*ppos !=3D 0) + if (iocb->ki_pos !=3D 0) return 0; if (count >=3D sizeof(ixgbe_dbg_netdev_ops_buf)) return -ENOSPC; =20 - len =3D simple_write_to_buffer(ixgbe_dbg_netdev_ops_buf, - sizeof(ixgbe_dbg_netdev_ops_buf)-1, - ppos, - buffer, - count); + len =3D simple_copy_from_iter(ixgbe_dbg_netdev_ops_buf, &iocb->ki_pos, + sizeof(ixgbe_dbg_netdev_ops_buf) - 1, from); if (len < 0) return len; =20 @@ -181,8 +166,8 @@ static ssize_t ixgbe_dbg_netdev_ops_write(struct file *= filp, static const struct file_operations ixgbe_dbg_netdev_ops_fops =3D { .owner =3D THIS_MODULE, .open =3D simple_open, - .read =3D ixgbe_dbg_netdev_ops_read, - .write =3D ixgbe_dbg_netdev_ops_write, + .read_iter =3D ixgbe_dbg_netdev_ops_read_iter, + .write_iter =3D ixgbe_dbg_netdev_ops_write_iter, }; =20 /** --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-il1-f181.google.com (mail-il1-f181.google.com [209.85.166.181]) (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 91C6D4C601 for ; Thu, 11 Apr 2024 15:40:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.181 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850039; cv=none; b=VO8Mn6f36tyNYu4vTE03YuBHYolwlR0hEbpQlZ6dpjB+ihtM5hqyUCg+EjjGVM731nH2T7yxtd/FEhOtiBV4pGM15OfIPmOUMzuAFl+eJcQFYdEtOk3x41MYuROQKswfeV2nw2BTMbtUq82Q/yIIrqUMLM4bw/6Mu6xjv3Z8o/o= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850039; c=relaxed/simple; bh=I+sj5vVgdY0extT9pyDmhTNvVk/D351FuFUjnQiEyjw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=a28+Ev/xDGJQC40Ib7l7L9qyE/QllhR3LmIYob5J+C5sY0Kqsgi3Oz+UzGIY7mbVuG9qEO1llUtaJxYPfgdbaXOdd8bf5E2esFKywCsI69TVykN8DCYV1GKX/4cMh2fzq3TdWMJbZu3wSzZo/OfbTlPfnFLhtwU9qg/+dfPALRM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=b0/M1RmD; arc=none smtp.client-ip=209.85.166.181 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="b0/M1RmD" Received: by mail-il1-f181.google.com with SMTP id e9e14a558f8ab-36a34b68277so119095ab.0 for ; Thu, 11 Apr 2024 08:40:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850036; x=1713454836; 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=hrQjAUuOjy9NNVtrz6WAy9mNFgnOw/l75kQoVjJmnEk=; b=b0/M1RmDVB1xTpdIDgZMHXdFp4GrAUFC31I/e1P0eIbo0B9AXuOz+2ZTQRTX/6hQbr Q7zPNyfwjx6xjrQq1JvYzXgl5gHUjg+oWqTOwJhNVV4ZyQCH+Q27+PUsiQgRg+hHDEGO xmWE2kcacBH0m8/MsOj7HYpPUWgv0exFB1KJs8MzC0mn0IAFUMAVBL1RSi7szGmEe81x UXGvpOxbiu2GzeSpkArkjKKUD7KysRFQd9zFSbHpXhR9PEeNYb9ip1ByYL1rRooxdJw1 a0iACd/AUcNRP4YrD0lOz4PQqRFA0QVlXVMc6+qhhD+pDIInvTR1vhbVG/uS7HeCt/Lp wPDg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850036; x=1713454836; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=hrQjAUuOjy9NNVtrz6WAy9mNFgnOw/l75kQoVjJmnEk=; b=bWC2pRvqDmt3idgIwiFbd2Nj9hhYLXWM9tiolB3pJZ+DtkN7nb4DLSRea59hqGJBSu sssXrHBpiZkMphXymtOB3myiSDRTVRQLAvzl8KS18tCd5TnPuz+qtzUwpZGRjTzA9dtq tFZwDAzh9+cW2uySp1QxktWAAQRCX4qumudISeTiR2M7OHKBmt7EqmM0Ro0rh4/IT87s LFnivQ8pl1IdHTBO9nBtPp+ugxqkjqqn6KL/U8PgzetPL8PCor+UfGD5LdsuGYaXvC3Y NMutnjCHJZjNvcYf7Az6imX1av2M1SZoKMYFG9M0U46FSpvPxONuFp2OgEFlD+Xkxzbs ePKQ== X-Gm-Message-State: AOJu0YyGTI3KvRe6kkdzMxKImYqPCzuTL11nrx2azjyWc7sEx8AESPBA O5hbeI6MoORiwmDDiCsbV6P7FwL1W8TMgJe4cs3+W4f/+3ThcZDk2dc6yhS8li9sGJIbhpz/RQA R X-Google-Smtp-Source: AGHT+IEP/XZEUN6s+PTr/rM66dAw4hYPHq4Xrjqo0p0/0C74uUnda2VM7YZPLGg/iwpgA4FdHqavsA== X-Received: by 2002:a6b:4e14:0:b0:7d6:631d:7b0 with SMTP id c20-20020a6b4e14000000b007d6631d07b0mr199269iob.1.1712850036241; Thu, 11 Apr 2024 08:40:36 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.40.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:40:35 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Bui Quang Minh , Jens Axboe Subject: [PATCH 324/437] drivers/net/ethernet/chelsio: convert to read/write iterators Date: Thu, 11 Apr 2024 09:17:44 -0600 Message-ID: <20240411153126.16201-325-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" From: Bui Quang Minh Signed-off-by: Bui Quang Minh Signed-off-by: Jens Axboe --- .../ethernet/chelsio/cxgb4/cxgb4_debugfs.c | 321 +++++++++--------- drivers/net/ethernet/chelsio/cxgb4/l2t.c | 2 +- 2 files changed, 164 insertions(+), 159 deletions(-) diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_debugfs.c b/drivers/n= et/ethernet/chelsio/cxgb4/cxgb4_debugfs.c index 14e0d989c3ba..a3b94ceea07d 100644 --- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_debugfs.c +++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_debugfs.c @@ -227,11 +227,11 @@ static int cim_la_open(struct inode *inode, struct fi= le *file) } =20 static const struct file_operations cim_la_fops =3D { - .owner =3D THIS_MODULE, - .open =3D cim_la_open, - .read =3D seq_read, - .llseek =3D seq_lseek, - .release =3D seq_release_private + .owner =3D THIS_MODULE, + .open =3D cim_la_open, + .read_iter =3D seq_read_iter, + .llseek =3D seq_lseek, + .release =3D seq_release_private }; =20 static int cim_pif_la_show(struct seq_file *seq, void *v, int idx) @@ -270,11 +270,11 @@ static int cim_pif_la_open(struct inode *inode, struc= t file *file) } =20 static const struct file_operations cim_pif_la_fops =3D { - .owner =3D THIS_MODULE, - .open =3D cim_pif_la_open, - .read =3D seq_read, - .llseek =3D seq_lseek, - .release =3D seq_release_private + .owner =3D THIS_MODULE, + .open =3D cim_pif_la_open, + .read_iter =3D seq_read_iter, + .llseek =3D seq_lseek, + .release =3D seq_release_private }; =20 static int cim_ma_la_show(struct seq_file *seq, void *v, int idx) @@ -316,11 +316,11 @@ static int cim_ma_la_open(struct inode *inode, struct= file *file) } =20 static const struct file_operations cim_ma_la_fops =3D { - .owner =3D THIS_MODULE, - .open =3D cim_ma_la_open, - .read =3D seq_read, - .llseek =3D seq_lseek, - .release =3D seq_release_private + .owner =3D THIS_MODULE, + .open =3D cim_ma_la_open, + .read_iter =3D seq_read_iter, + .llseek =3D seq_lseek, + .release =3D seq_release_private }; =20 static int cim_qcfg_show(struct seq_file *seq, void *v) @@ -409,11 +409,11 @@ static int cim_ibq_open(struct inode *inode, struct f= ile *file) } =20 static const struct file_operations cim_ibq_fops =3D { - .owner =3D THIS_MODULE, - .open =3D cim_ibq_open, - .read =3D seq_read, - .llseek =3D seq_lseek, - .release =3D seq_release_private + .owner =3D THIS_MODULE, + .open =3D cim_ibq_open, + .read_iter =3D seq_read_iter, + .llseek =3D seq_lseek, + .release =3D seq_release_private }; =20 static int cim_obq_open(struct inode *inode, struct file *file) @@ -438,11 +438,11 @@ static int cim_obq_open(struct inode *inode, struct f= ile *file) } =20 static const struct file_operations cim_obq_fops =3D { - .owner =3D THIS_MODULE, - .open =3D cim_obq_open, - .read =3D seq_read, - .llseek =3D seq_lseek, - .release =3D seq_release_private + .owner =3D THIS_MODULE, + .open =3D cim_obq_open, + .read_iter =3D seq_read_iter, + .llseek =3D seq_lseek, + .release =3D seq_release_private }; =20 struct field_desc { @@ -660,16 +660,16 @@ static int tp_la_open(struct inode *inode, struct fil= e *file) return 0; } =20 -static ssize_t tp_la_write(struct file *file, const char __user *buf, - size_t count, loff_t *pos) +static ssize_t tp_la_write_iter(struct kiocb *iocb, struct iov_iter *from) { int err; char s[32]; unsigned long val; + size_t count =3D iov_iter_count(from); size_t size =3D min(sizeof(s) - 1, count); - struct adapter *adap =3D file_inode(file)->i_private; + struct adapter *adap =3D file_inode(iocb->ki_filp)->i_private; =20 - if (copy_from_user(s, buf, size)) + if (!copy_from_iter_full(s, size, from)) return -EFAULT; s[size] =3D '\0'; err =3D kstrtoul(s, 0, &val); @@ -684,12 +684,12 @@ static ssize_t tp_la_write(struct file *file, const c= har __user *buf, } =20 static const struct file_operations tp_la_fops =3D { - .owner =3D THIS_MODULE, - .open =3D tp_la_open, - .read =3D seq_read, - .llseek =3D seq_lseek, - .release =3D seq_release_private, - .write =3D tp_la_write + .owner =3D THIS_MODULE, + .open =3D tp_la_open, + .read_iter =3D seq_read_iter, + .llseek =3D seq_lseek, + .release =3D seq_release_private, + .write_iter =3D tp_la_write_iter }; =20 static int ulprx_la_show(struct seq_file *seq, void *v, int idx) @@ -720,11 +720,11 @@ static int ulprx_la_open(struct inode *inode, struct = file *file) } =20 static const struct file_operations ulprx_la_fops =3D { - .owner =3D THIS_MODULE, - .open =3D ulprx_la_open, - .read =3D seq_read, - .llseek =3D seq_lseek, - .release =3D seq_release_private + .owner =3D THIS_MODULE, + .open =3D ulprx_la_open, + .read_iter =3D seq_read_iter, + .llseek =3D seq_lseek, + .release =3D seq_release_private }; =20 /* Show the PM memory stats. These stats include: @@ -799,23 +799,22 @@ static int pm_stats_open(struct inode *inode, struct = file *file) return single_open(file, pm_stats_show, inode->i_private); } =20 -static ssize_t pm_stats_clear(struct file *file, const char __user *buf, - size_t count, loff_t *pos) +static ssize_t pm_stats_clear(struct kiocb *iocb, struct iov_iter *from) { - struct adapter *adap =3D file_inode(file)->i_private; + struct adapter *adap =3D file_inode(iocb->ki_filp)->i_private; =20 t4_write_reg(adap, PM_RX_STAT_CONFIG_A, 0); t4_write_reg(adap, PM_TX_STAT_CONFIG_A, 0); - return count; + return iov_iter_count(from); } =20 static const struct file_operations pm_stats_debugfs_fops =3D { - .owner =3D THIS_MODULE, - .open =3D pm_stats_open, - .read =3D seq_read, - .llseek =3D seq_lseek, - .release =3D single_release, - .write =3D pm_stats_clear + .owner =3D THIS_MODULE, + .open =3D pm_stats_open, + .read_iter =3D seq_read_iter, + .llseek =3D seq_lseek, + .release =3D single_release, + .write_iter =3D pm_stats_clear }; =20 static int tx_rate_show(struct seq_file *seq, void *v) @@ -1134,11 +1133,11 @@ static int devlog_open(struct inode *inode, struct = file *file) } =20 static const struct file_operations devlog_fops =3D { - .owner =3D THIS_MODULE, - .open =3D devlog_open, - .read =3D seq_read, - .llseek =3D seq_lseek, - .release =3D seq_release_private + .owner =3D THIS_MODULE, + .open =3D devlog_open, + .read_iter =3D seq_read_iter, + .llseek =3D seq_lseek, + .release =3D seq_release_private }; =20 /* Show Firmware Mailbox Command/Reply Log @@ -1232,11 +1231,11 @@ static int mboxlog_open(struct inode *inode, struct= file *file) } =20 static const struct file_operations mboxlog_fops =3D { - .owner =3D THIS_MODULE, - .open =3D mboxlog_open, - .read =3D seq_read, - .llseek =3D seq_lseek, - .release =3D seq_release, + .owner =3D THIS_MODULE, + .open =3D mboxlog_open, + .read_iter =3D seq_read_iter, + .llseek =3D seq_lseek, + .release =3D seq_release, }; =20 static int mbox_show(struct seq_file *seq, void *v) @@ -1275,8 +1274,7 @@ static int mbox_open(struct inode *inode, struct file= *file) return single_open(file, mbox_show, inode->i_private); } =20 -static ssize_t mbox_write(struct file *file, const char __user *buf, - size_t count, loff_t *pos) +static ssize_t mbox_write_iter(struct kiocb *iocb, struct iov_iter *from) { int i; char c =3D '\n', s[256]; @@ -1286,10 +1284,11 @@ static ssize_t mbox_write(struct file *file, const = char __user *buf, struct adapter *adap; void __iomem *addr; void __iomem *ctrl; + size_t count =3D iov_iter_count(from); =20 if (count > sizeof(s) - 1 || !count) return -EINVAL; - if (copy_from_user(s, buf, count)) + if (!copy_from_iter_full(s, count, from)) return -EFAULT; s[count] =3D '\0'; =20 @@ -1298,7 +1297,7 @@ static ssize_t mbox_write(struct file *file, const ch= ar __user *buf, &data[7], &c) < 8 || c !=3D '\n') return -EINVAL; =20 - ino =3D file_inode(file); + ino =3D file_inode(iocb->ki_filp); mbox =3D (uintptr_t)ino->i_private & 7; adap =3D ino->i_private - mbox; addr =3D adap->regs + PF_REG(mbox, CIM_PF_MAILBOX_DATA_A); @@ -1315,12 +1314,12 @@ static ssize_t mbox_write(struct file *file, const = char __user *buf, } =20 static const struct file_operations mbox_debugfs_fops =3D { - .owner =3D THIS_MODULE, - .open =3D mbox_open, - .read =3D seq_read, - .llseek =3D seq_lseek, - .release =3D single_release, - .write =3D mbox_write + .owner =3D THIS_MODULE, + .open =3D mbox_open, + .read_iter =3D seq_read_iter, + .llseek =3D seq_lseek, + .release =3D single_release, + .write_iter =3D mbox_write_iter }; =20 static int mps_trc_show(struct seq_file *seq, void *v) @@ -1408,8 +1407,7 @@ static unsigned int xdigit2int(unsigned char c) * must be anchored at 0. An omitted mask is taken as a mask of 1s, an om= itted * anchor is taken as 0. */ -static ssize_t mps_trc_write(struct file *file, const char __user *buf, - size_t count, loff_t *pos) +static ssize_t mps_trc_write_iter(struct kiocb *iocb, struct iov_iter *fro= m) { int i, enable, ret; u32 *data, *mask; @@ -1419,8 +1417,9 @@ static ssize_t mps_trc_write(struct file *file, const= char __user *buf, char *s, *p, *word, *end; struct adapter *adap; u32 j; + size_t count =3D iov_iter_count(from); =20 - ino =3D file_inode(file); + ino =3D file_inode(iocb->ki_filp); trcidx =3D (uintptr_t)ino->i_private & 3; adap =3D ino->i_private - trcidx; =20 @@ -1432,7 +1431,7 @@ static ssize_t mps_trc_write(struct file *file, const= char __user *buf, p =3D s =3D kzalloc(count + 1, GFP_USER); if (!s) return -ENOMEM; - if (copy_from_user(s, buf, count)) { + if (!copy_from_iter_full(s, count, from)) { count =3D -EFAULT; goto out; } @@ -1608,20 +1607,20 @@ inval: count =3D -EINVAL; } =20 static const struct file_operations mps_trc_debugfs_fops =3D { - .owner =3D THIS_MODULE, - .open =3D mps_trc_open, - .read =3D seq_read, - .llseek =3D seq_lseek, - .release =3D single_release, - .write =3D mps_trc_write + .owner =3D THIS_MODULE, + .open =3D mps_trc_open, + .read_iter =3D seq_read_iter, + .llseek =3D seq_lseek, + .release =3D single_release, + .write_iter =3D mps_trc_write_iter }; =20 -static ssize_t flash_read(struct file *file, char __user *buf, size_t coun= t, - loff_t *ppos) +static ssize_t flash_read_iter(struct kiocb *iocb, struct iov_iter *to) { - loff_t pos =3D *ppos; - loff_t avail =3D file_inode(file)->i_size; - struct adapter *adap =3D file->private_data; + loff_t pos =3D iocb->ki_pos; + loff_t avail =3D file_inode(iocb->ki_filp)->i_size; + struct adapter *adap =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(to); =20 if (pos < 0) return -EINVAL; @@ -1643,23 +1642,22 @@ static ssize_t flash_read(struct file *file, char _= _user *buf, size_t count, return ret; =20 len -=3D ofst; - if (copy_to_user(buf, data + ofst, len)) + if (!copy_to_iter_full(data + ofst, len, to)) return -EFAULT; =20 - buf +=3D len; pos +=3D len; count -=3D len; } - count =3D pos - *ppos; - *ppos =3D pos; + count =3D pos - iocb->ki_pos; + iocb->ki_pos =3D pos; return count; } =20 static const struct file_operations flash_debugfs_fops =3D { - .owner =3D THIS_MODULE, - .open =3D mem_open, - .read =3D flash_read, - .llseek =3D default_llseek, + .owner =3D THIS_MODULE, + .open =3D mem_open, + .read_iter =3D flash_read_iter, + .llseek =3D default_llseek, }; =20 static inline void tcamxy2valmask(u64 x, u64 y, u8 *addr, u64 *mask) @@ -1928,11 +1926,11 @@ static int mps_tcam_open(struct inode *inode, struc= t file *file) } =20 static const struct file_operations mps_tcam_debugfs_fops =3D { - .owner =3D THIS_MODULE, - .open =3D mps_tcam_open, - .read =3D seq_read, - .llseek =3D seq_lseek, - .release =3D seq_release, + .owner =3D THIS_MODULE, + .open =3D mps_tcam_open, + .read_iter =3D seq_read_iter, + .llseek =3D seq_lseek, + .release =3D seq_release, }; =20 /* Display various sensor information. @@ -2005,11 +2003,11 @@ static int rss_open(struct inode *inode, struct fil= e *file) } =20 static const struct file_operations rss_debugfs_fops =3D { - .owner =3D THIS_MODULE, - .open =3D rss_open, - .read =3D seq_read, - .llseek =3D seq_lseek, - .release =3D seq_release_private + .owner =3D THIS_MODULE, + .open =3D rss_open, + .read_iter =3D seq_read_iter, + .llseek =3D seq_lseek, + .release =3D seq_release_private }; =20 /* RSS Configuration. @@ -2194,17 +2192,17 @@ static int rss_key_open(struct inode *inode, struct= file *file) return single_open(file, rss_key_show, inode->i_private); } =20 -static ssize_t rss_key_write(struct file *file, const char __user *buf, - size_t count, loff_t *pos) +static ssize_t rss_key_write_iter(struct kiocb *iocb, struct iov_iter *fro= m) { int i, j; u32 key[10]; char s[100], *p; - struct adapter *adap =3D file_inode(file)->i_private; + struct adapter *adap =3D file_inode(iocb->ki_filp)->i_private; + size_t count =3D iov_iter_count(from); =20 if (count > sizeof(s) - 1) return -EINVAL; - if (copy_from_user(s, buf, count)) + if (!copy_from_iter_full(s, count, from)) return -EFAULT; for (i =3D count; i > 0 && isspace(s[i - 1]); i--) ; @@ -2224,12 +2222,12 @@ static ssize_t rss_key_write(struct file *file, con= st char __user *buf, } =20 static const struct file_operations rss_key_debugfs_fops =3D { - .owner =3D THIS_MODULE, - .open =3D rss_key_open, - .read =3D seq_read, - .llseek =3D seq_lseek, - .release =3D single_release, - .write =3D rss_key_write + .owner =3D THIS_MODULE, + .open =3D rss_key_open, + .read_iter =3D seq_read_iter, + .llseek =3D seq_lseek, + .release =3D single_release, + .write_iter =3D rss_key_write_iter }; =20 /* PF RSS Configuration. @@ -2308,11 +2306,11 @@ static int rss_pf_config_open(struct inode *inode, = struct file *file) } =20 static const struct file_operations rss_pf_config_debugfs_fops =3D { - .owner =3D THIS_MODULE, - .open =3D rss_pf_config_open, - .read =3D seq_read, - .llseek =3D seq_lseek, - .release =3D seq_release_private + .owner =3D THIS_MODULE, + .open =3D rss_pf_config_open, + .read_iter =3D seq_read_iter, + .llseek =3D seq_lseek, + .release =3D seq_release_private }; =20 /* VF RSS Configuration. @@ -2371,11 +2369,11 @@ static int rss_vf_config_open(struct inode *inode, = struct file *file) } =20 static const struct file_operations rss_vf_config_debugfs_fops =3D { - .owner =3D THIS_MODULE, - .open =3D rss_vf_config_open, - .read =3D seq_read, - .llseek =3D seq_lseek, - .release =3D seq_release_private + .owner =3D THIS_MODULE, + .open =3D rss_vf_config_open, + .read_iter =3D seq_read_iter, + .llseek =3D seq_lseek, + .release =3D seq_release_private }; =20 #ifdef CONFIG_CHELSIO_T4_DCB @@ -2559,11 +2557,11 @@ static int dcb_info_open(struct inode *inode, struc= t file *file) } =20 static const struct file_operations dcb_info_debugfs_fops =3D { - .owner =3D THIS_MODULE, - .open =3D dcb_info_open, - .read =3D seq_read, - .llseek =3D seq_lseek, - .release =3D seq_release, + .owner =3D THIS_MODULE, + .open =3D dcb_info_open, + .read_iter =3D seq_read_iter, + .llseek =3D seq_lseek, + .release =3D seq_release, }; #endif /* CONFIG_CHELSIO_T4_DCB */ =20 @@ -3243,11 +3241,11 @@ static int sge_qinfo_open(struct inode *inode, stru= ct file *file) } =20 static const struct file_operations sge_qinfo_debugfs_fops =3D { - .owner =3D THIS_MODULE, - .open =3D sge_qinfo_open, - .read =3D seq_read, - .llseek =3D seq_lseek, - .release =3D seq_release, + .owner =3D THIS_MODULE, + .open =3D sge_qinfo_open, + .read_iter =3D seq_read_iter, + .llseek =3D seq_lseek, + .release =3D seq_release, }; =20 int mem_open(struct inode *inode, struct file *file) @@ -3265,15 +3263,15 @@ int mem_open(struct inode *inode, struct file *file) return 0; } =20 -static ssize_t mem_read(struct file *file, char __user *buf, size_t count, - loff_t *ppos) +static ssize_t mem_read_iter(struct kiocb *iocb, struct iov_iter *to) { - loff_t pos =3D *ppos; - loff_t avail =3D file_inode(file)->i_size; - unsigned int mem =3D (uintptr_t)file->private_data & 0x7; - struct adapter *adap =3D file->private_data - mem; + loff_t pos =3D iocb->ki_pos; + loff_t avail =3D file_inode(iocb->ki_filp)->i_size; + unsigned int mem =3D (uintptr_t)iocb->ki_filp->private_data & 0x7; + struct adapter *adap =3D iocb->ki_filp->private_data - mem; __be32 *data; int ret; + size_t count =3D iov_iter_count(to); =20 if (pos < 0) return -EINVAL; @@ -3293,20 +3291,20 @@ static ssize_t mem_read(struct file *file, char __u= ser *buf, size_t count, kvfree(data); return ret; } - ret =3D copy_to_user(buf, data, count); + ret =3D !copy_to_iter_full(data, count, to); =20 kvfree(data); if (ret) return -EFAULT; =20 - *ppos =3D pos + count; + iocb->ki_pos =3D pos + count; return count; } static const struct file_operations mem_debugfs_fops =3D { - .owner =3D THIS_MODULE, - .open =3D simple_open, - .read =3D mem_read, - .llseek =3D default_llseek, + .owner =3D THIS_MODULE, + .open =3D simple_open, + .read_iter =3D mem_read_iter, + .llseek =3D default_llseek, }; =20 static int tid_info_show(struct seq_file *seq, void *v) @@ -3401,11 +3399,10 @@ static void add_debugfs_mem(struct adapter *adap, c= onst char *name, size_mb << 20); } =20 -static ssize_t blocked_fl_read(struct file *filp, char __user *ubuf, - size_t count, loff_t *ppos) +static ssize_t blocked_fl_read_iter(struct kiocb *iocb, struct iov_iter *t= o) { int len; - const struct adapter *adap =3D filp->private_data; + const struct adapter *adap =3D iocb->ki_filp->private_data; char *buf; ssize_t size =3D (adap->sge.egr_sz + 3) / 4 + adap->sge.egr_sz / 32 + 2; /* includes ,/\n/\0 */ @@ -3417,23 +3414,31 @@ static ssize_t blocked_fl_read(struct file *filp, c= har __user *ubuf, len =3D snprintf(buf, size - 1, "%*pb\n", adap->sge.egr_sz, adap->sge.blocked_fl); len +=3D sprintf(buf + len, "\n"); - size =3D simple_read_from_buffer(ubuf, count, ppos, buf, len); + size =3D simple_copy_to_iter(buf, &iocb->ki_pos, len, to); kfree(buf); return size; } =20 -static ssize_t blocked_fl_write(struct file *filp, const char __user *ubuf, - size_t count, loff_t *ppos) +static ssize_t blocked_fl_write_iter(struct kiocb *iocb, struct iov_iter *= from) { int err; unsigned long *t; - struct adapter *adap =3D filp->private_data; + struct adapter *adap =3D iocb->ki_filp->private_data; + void *kern_buf; + size_t count =3D iov_iter_count(from); =20 t =3D bitmap_zalloc(adap->sge.egr_sz, GFP_KERNEL); if (!t) return -ENOMEM; =20 - err =3D bitmap_parse_user(ubuf, count, t, adap->sge.egr_sz); + kern_buf =3D kzalloc(count + 1, GFP_KERNEL); + if (!kern_buf) + return -ENOMEM; + + if (!copy_from_iter_full(kern_buf, count, from)) + return -EFAULT; + + err =3D bitmap_parse(kern_buf, UINT_MAX, t, adap->sge.egr_sz); if (err) { bitmap_free(t); return err; @@ -3445,11 +3450,11 @@ static ssize_t blocked_fl_write(struct file *filp, = const char __user *ubuf, } =20 static const struct file_operations blocked_fl_fops =3D { - .owner =3D THIS_MODULE, - .open =3D simple_open, - .read =3D blocked_fl_read, - .write =3D blocked_fl_write, - .llseek =3D generic_file_llseek, + .owner =3D THIS_MODULE, + .open =3D simple_open, + .read_iter =3D blocked_fl_read_iter, + .write_iter =3D blocked_fl_write_iter, + .llseek =3D generic_file_llseek, }; =20 static void mem_region_show(struct seq_file *seq, const char *name, diff --git a/drivers/net/ethernet/chelsio/cxgb4/l2t.c b/drivers/net/etherne= t/chelsio/cxgb4/l2t.c index 1e5f5b1a22a6..c4564a14b6ee 100644 --- a/drivers/net/ethernet/chelsio/cxgb4/l2t.c +++ b/drivers/net/ethernet/chelsio/cxgb4/l2t.c @@ -756,7 +756,7 @@ static int l2t_seq_open(struct inode *inode, struct fil= e *file) const struct file_operations t4_l2t_fops =3D { .owner =3D THIS_MODULE, .open =3D l2t_seq_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D seq_release, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f42.google.com (mail-io1-f42.google.com [209.85.166.42]) (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 208224C629 for ; Thu, 11 Apr 2024 15:40:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850040; cv=none; b=XYPbFNEaQNPPEYm8Z/deX93L5AXsAze6WYTL9adwstZ632lFGsBj/ZCZtoIxQ80g+TDQGeCtQzx60AYyG//0jyuysjzJbTntxvjp1bXaMTGut5HSDyMeRcOdzfvfipMqt/hpqoUFqDPB1gZBWFc82q3Z5txEXNfVbh6E9ANHWBA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850040; c=relaxed/simple; bh=AwZXzKiJTYRdXaYdXL0N+5qs7IS58CqVmTMpxbbdZaw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Gk3uUQ9uC3Bkr51IjpAQzhPtKFyHzDZNcKSwkC67NTJGpozy5rft0KbcnCS4OfTg2UP0M5NrRrYjr979G4Qm5tO9rHw685YQXvTYfoOCq0358W/x/89CjppItYp3wGCRZBpOLdh4SUsuL8So1NHyHC9nf9SdvHNqVMCW6Op67LQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=mFnasMKk; arc=none smtp.client-ip=209.85.166.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="mFnasMKk" Received: by mail-io1-f42.google.com with SMTP id ca18e2360f4ac-7d6812b37a6so9054339f.0 for ; Thu, 11 Apr 2024 08:40:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850038; x=1713454838; 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=3b8H2/mDLiAhX37cZSYPDjNbHw29AJDHtMyBA0JRgZc=; b=mFnasMKky60oAJVkFsp87uOj+S336QaUrkbM9guUFFNxGRvLonPFZi0Y+0mxGfM1zr xZCtgBb3zEmQ9uyu3QeXOavy235KDAPsfZqwefo8Q2WzWH6M1SC7qe2WEZl9JBZuMh9W LPpHmB6++qtp+EHtqH+yi5pKhHDZu2BLqM2+kI+zzOXhuPSmF3wzso8QKpCAgBHvqVpU M/kvTw0iQokKhdKoEB1GdwgyfI6i51K+lSX+t48nbid7WHuKlXNXHRUxEIY3mK6PvYPC REdfSgucgDL+9UOA3wcuVmlxyL/WF11vb1zyD+jRx573+hZXvK2VOmVi33b/QfilXtYJ vjHw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850038; x=1713454838; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=3b8H2/mDLiAhX37cZSYPDjNbHw29AJDHtMyBA0JRgZc=; b=jfC48eA5vRKKy/IeE7DqC7hw4J07eBibhGNZfIpWU4a9Q0c8lSmSBjE218AAjlWAw0 zaurU/O9KRLN247YYghwHIuRWUcp1I/QymnhkoTB+3a3x+cbR3KmRidgC4ZCn0czxlpk l9YUG13fgRL9sxBF1rOlmH4bs/Cm/RBdaD0Ik3RKRwjbUhwhXM9uTsq6SzNeZV+BKjp3 IoItdlxSyAiY3rJ5MeWA/J9We2KT8FkppemgdvtNQ8h/yK+yfsw+uVoSfG0VblD64j/u MHYzsW5HmAGhY7jZiyj9kC/iDnEZFMPhI3skQx1PKs3tw2NwfKeIiqpKgxAjLWzzhghC x8rA== X-Gm-Message-State: AOJu0YxU1egjzY+YHkz5WvJT5XEhMuxLfGG+Rv7fDq1xBlN0xb+ON5Ls IBteRDOAy1kmgBpS9znG4d7Ji5blfbVgBKleKPrHq2nTbNdMEmrbXZH7XwPlhegdRuIOzdi6bC7 Z X-Google-Smtp-Source: AGHT+IGHs7bJvGdPqJOq2+aO4KrAh02ZIW+nmTYfdMU0CaErq8ymPLXcayxdXoWJ/ANllrLIUlMeNw== X-Received: by 2002:a5e:9907:0:b0:7d6:751f:192 with SMTP id t7-20020a5e9907000000b007d6751f0192mr192471ioj.2.1712850037856; Thu, 11 Apr 2024 08:40:37 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.40.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:40:36 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Bui Quang Minh , Jens Axboe Subject: [PATCH 325/437] drivers/net/ethernet/hisilicon: convert to read/write iterators Date: Thu, 11 Apr 2024 09:17:45 -0600 Message-ID: <20240411153126.16201-326-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" From: Bui Quang Minh Signed-off-by: Bui Quang Minh Signed-off-by: Jens Axboe --- .../net/ethernet/hisilicon/hns3/hns3_debugfs.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3_debugfs.c b/drivers/n= et/ethernet/hisilicon/hns3/hns3_debugfs.c index 807eb3bbb11c..0ea141e12655 100644 --- a/drivers/net/ethernet/hisilicon/hns3/hns3_debugfs.c +++ b/drivers/net/ethernet/hisilicon/hns3/hns3_debugfs.c @@ -1257,10 +1257,9 @@ static int hns3_dbg_read_cmd(struct hns3_dbg_data *d= bg_data, return ops->dbg_read_cmd(dbg_data->handle, cmd, buf, len); } =20 -static ssize_t hns3_dbg_read(struct file *filp, char __user *buffer, - size_t count, loff_t *ppos) +static ssize_t hns3_dbg_read_iter(struct kiocb *iocb, struct iov_iter *to) { - struct hns3_dbg_data *dbg_data =3D filp->private_data; + struct hns3_dbg_data *dbg_data =3D iocb->ki_filp->private_data; struct hnae3_handle *handle =3D dbg_data->handle; struct hns3_nic_priv *priv =3D handle->priv; ssize_t size =3D 0; @@ -1301,8 +1300,8 @@ static ssize_t hns3_dbg_read(struct file *filp, char = __user *buffer, goto out; } =20 - size =3D simple_read_from_buffer(buffer, count, ppos, read_buf, - strlen(read_buf)); + size =3D simple_copy_to_iter(read_buf, &iocb->ki_pos, strlen(read_buf), + to); if (size > 0) { mutex_unlock(&handle->dbgfs_lock); return size; @@ -1320,9 +1319,9 @@ static ssize_t hns3_dbg_read(struct file *filp, char = __user *buffer, } =20 static const struct file_operations hns3_dbg_fops =3D { - .owner =3D THIS_MODULE, - .open =3D simple_open, - .read =3D hns3_dbg_read, + .owner =3D THIS_MODULE, + .open =3D simple_open, + .read_iter =3D hns3_dbg_read_iter, }; =20 static int hns3_dbg_bd_file_init(struct hnae3_handle *handle, u32 cmd) --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f45.google.com (mail-io1-f45.google.com [209.85.166.45]) (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 A21C01635A3 for ; Thu, 11 Apr 2024 15:40:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850042; cv=none; b=p6y5DRFv1SvqyQwoTzix4ZDLItbRrIWtRw4BxELz4TGgF6jZXXYf7jCtLe8HXPmPBeu6MilYp7TOB5/84WbIGFPM8zkME1ja8sDHf/8Fdll+9taPJP82xXCTmzz+I1zJw7FfCZbvj1v1jPtT0rFZDsVyS5CRMUEgS0VckV9I/+Y= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850042; c=relaxed/simple; bh=b9KdXTwnY5Bsusp9rjF77HWJJfTKAnAjeMEMqaegr6c=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=GgC97Ana377es7cCjxK7nXuScnySXx2KXKS9qBlYbJJhbSNfqL77WuvVTomdVtU9p6Kt2eWIk8k5rULcHTqA6EN6+4zEMLcJTxXjCQlvBnivPOmY4mQLnr/CTjj8A2E46WQPdg1M+8dMOASob5sX+d2H7CbEtD6JWSkDo54WS7Y= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=dc0tANYm; arc=none smtp.client-ip=209.85.166.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="dc0tANYm" Received: by mail-io1-f45.google.com with SMTP id ca18e2360f4ac-7d6112ba6baso58213539f.1 for ; Thu, 11 Apr 2024 08:40:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850039; x=1713454839; 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=ZGX3+6wa3dg8+QZi5YqDIWtU6E+6HfJk9gO0yHUTJjQ=; b=dc0tANYmIi7LrCi5YIjeZOfzgkaCHdxPgniv04Za8+QtSXQVIo314WW49SbQe70WSY PHyb4JT3B/2An7D5tYFU1QhCop8p+qeYv3Jh/OaRCf9dC+7pfcsEUb6Jmw6uBtio8MzL NCRh9IXWxfdOcnF0NM7Z0n66P3LY3gyoOJu+ZsrMLaHnjsAdFc8qZ8bANmQjzqU/rqQf VfU4oJq225BD0SYd9qlHiXzV0HC97NXtR034M6U5Y5FkkvAHQQ3MfLTEyD2zfS/Z+Vjz FXtqNu7osXLCMJ8z2cCeezPCA9a6MCBQPWhFxWp1xxbr/crS0bms7OUnyLhw1o8AEgPM fC5w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850039; x=1713454839; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ZGX3+6wa3dg8+QZi5YqDIWtU6E+6HfJk9gO0yHUTJjQ=; b=JYarus6SviDBApe4rL6M96q43DMPmqUgLVQD2pnZ3utpcVWD7NRy8pfOUTe1aV2agU Sn6vT5da7EjoyoJ5H85Xq9bNMbrAT84B0qb5nnNbVv0z9YoVrKUX4omoDGKz9XJ6Fb4V IcacHIk9yYoAjvBHPFjxsUvEcsVUrnN6rbH6dmI7p3E/OrO/fUHn8sMlgJhCaWjjlNZA ldZBLx2GFri/uetBKZf6P0Jxq7GZ1CB7SYHRcNy5eStgIg8b3Liaub+5rhELIDyZ+cNv gy10IzHYx5lYnmrbi2ZJqHGEx+ijEsm+QIQFy3pvlPNnmHMklxiCdu/5/B/MSjlc33Wg ez5g== X-Gm-Message-State: AOJu0Yz0iOC9PCEyuGsxgFuJQnAg2lqyxKdV4S+14z9hr65bFUp+pwbo +niChGxquFWvbROH+M8dfSIr6kLetea6/CfdP1prl5YPWwgp/Ux3FglHsIqvgvPWJc62UAmCzzi M X-Google-Smtp-Source: AGHT+IGNosjGBRxDudoXwRrzcH4kviMCynwJykGr21aYXuwcaZp2AaNZQkyxlwU4zaXA9iftHQD6Lw== X-Received: by 2002:a6b:f312:0:b0:7d5:de23:13a9 with SMTP id m18-20020a6bf312000000b007d5de2313a9mr173723ioh.1.1712850039531; Thu, 11 Apr 2024 08:40:39 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.40.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:40:38 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Bui Quang Minh , Jens Axboe Subject: [PATCH 326/437] drivers/net/ethernet/huawei: convert to read/write iterators Date: Thu, 11 Apr 2024 09:17:46 -0600 Message-ID: <20240411153126.16201-327-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" From: Bui Quang Minh Signed-off-by: Bui Quang Minh Signed-off-by: Jens Axboe --- drivers/net/ethernet/huawei/hinic/hinic_debugfs.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/drivers/net/ethernet/huawei/hinic/hinic_debugfs.c b/drivers/ne= t/ethernet/huawei/hinic/hinic_debugfs.c index 061952c6c21a..411d005a4a95 100644 --- a/drivers/net/ethernet/huawei/hinic/hinic_debugfs.c +++ b/drivers/net/ethernet/huawei/hinic/hinic_debugfs.c @@ -133,8 +133,7 @@ static int hinic_dbg_get_func_table(struct hinic_dev *n= ic_dev, int idx) return ret; } =20 -static ssize_t hinic_dbg_cmd_read(struct file *filp, char __user *buffer, = size_t count, - loff_t *ppos) +static ssize_t hinic_dbg_cmd_read_iter(struct kiocb *iocb, struct iov_iter= *to) { struct hinic_debug_priv *dbg; char ret_buf[20]; @@ -142,7 +141,7 @@ static ssize_t hinic_dbg_cmd_read(struct file *filp, ch= ar __user *buffer, size_t u64 out; int ret; =20 - desc =3D filp->private_data; + desc =3D iocb->ki_filp->private_data; dbg =3D container_of(desc, struct hinic_debug_priv, field_id[*desc]); =20 switch (dbg->type) { @@ -166,13 +165,13 @@ static ssize_t hinic_dbg_cmd_read(struct file *filp, = char __user *buffer, size_t =20 ret =3D snprintf(ret_buf, sizeof(ret_buf), "0x%llx\n", out); =20 - return simple_read_from_buffer(buffer, count, ppos, ret_buf, ret); + return simple_copy_to_iter(ret_buf, &iocb->ki_pos, ret, to); } =20 static const struct file_operations hinic_dbg_cmd_fops =3D { - .owner =3D THIS_MODULE, - .open =3D simple_open, - .read =3D hinic_dbg_cmd_read, + .owner =3D THIS_MODULE, + .open =3D simple_open, + .read_iter =3D hinic_dbg_cmd_read_iter, }; =20 static int create_dbg_files(struct hinic_dev *dev, enum hinic_dbg_type typ= e, void *data, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f51.google.com (mail-io1-f51.google.com [209.85.166.51]) (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 AA8D01635DC for ; Thu, 11 Apr 2024 15:40:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850045; cv=none; b=FKQE0nYA16rxV3StPm1ahfN9di28MHIhuTvgSVMw42kdksq4YxO9aVmFzpP9No1baeZfEoztIx4UaKpGuCwUdhzNuAS0hOCnbYJP3AiolAWzWrht7fA7bOlhfkFFeCiB9mE11SqUGJnZAe+sB83pYvnuEOeUuTmOt0WxOlEeO50= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850045; c=relaxed/simple; bh=91NKOE/FG0mNc/o9nQIiAdq9F5aXD0RP2DDlAVXoJpE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ZnVBfbUxj2nc5iei6ZWv6nFsD+JIOreMGt6zqKsOJHgWI3Lu4tLNlB2e3bmj3nHFMSPdAOx89AYm47U3a9adyiLikvtm2MMZqXLHljx/n+i3TCH+9KSeyQk1dSo8RWpqs+g0ECUSFHyqUBpWqIAgZJdlo4t678udKEUO0P1HvzY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=Ju5lPKbz; arc=none smtp.client-ip=209.85.166.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="Ju5lPKbz" Received: by mail-io1-f51.google.com with SMTP id ca18e2360f4ac-7d67d1073easo9886639f.0 for ; Thu, 11 Apr 2024 08:40:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850042; x=1713454842; 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=kI1o+GEoiIwLuzXnZ4pCw0XdZU+TlzjuQbPrxSBEsbU=; b=Ju5lPKbzdlf4MBWrUoGoGXQRiSV6CHNr55CRT/8c924QxON4WgVT/9fTVof81NbXrW l3ZfrFttW9sAyX6+9MIeqZD7kO9Zak5F9XfWXqo9evpvv0FRNBMGnQBTbYERewXT17+1 XXiEaOsqYA0HwUTjpSd+GWoFt1h0Ov6aoywD7izdWmrJP3XMQMs1lAfoTKqp9RrYQtK5 JkLYtICCaHioMdj0lPsFR87XotbHy1Ha+HzxL0oJoTffiPMLQV9vtDSxwlDTTA+0DOPo anX4Z2Ft9rlq9nuaMfmwtHzddoGmSJKpfZT6BNCXX1P8zmnW+FIv0iCAWDdKhsLEmaRK NWvA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850042; x=1713454842; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=kI1o+GEoiIwLuzXnZ4pCw0XdZU+TlzjuQbPrxSBEsbU=; b=pb3C5+pyavmfPO7dzy9iTbOWrDQ7NXlFWY5KJDt4qW5wKDuSOkfRPD1zedLl3xzK/J 8Exu0yORhxFiSWNkbueDs8ve4idlw6E0NeVcTgmEMpUIuq+GUAx74twclUlrwhzoZtkA zqan4oJh+vTP+CmBUxtyhm8CAGgPllv0D/SGhfAiXhi19+abQrbg/60NhndxUIRYNkck IuSvxLM+Z/av1Zg+LeBO0yHLqyGAHdPz4TlcAFn3k9ml7kqeCwoyPvXZmIxed9ZM28D2 GpCA+w/OGiX8WvRnNaw5jtOOKyhznJkumKFbzIQlXHmU3zshFczEMK4cweQVO1UeSMGy qMTw== X-Gm-Message-State: AOJu0YwnWeoTYCZn4SiFMVY9CxkyIYZ5UrmC3xCnYauFW1UzL48ezpY4 zNgokRHnP/X0OCMmRXqEb3uyErI5O84BDGDgYuuG10rvaHTH8vV6k+owuF7F3nlNq3e4izEjfy2 C X-Google-Smtp-Source: AGHT+IFhOuyUh4ilF00/p4e9pCdo3iUdycznL/pMySiLEtFfzlbqjBZwbjCVlM15EwUgVMRChjzyJg== X-Received: by 2002:a6b:7b05:0:b0:7d6:60dc:bc8e with SMTP id l5-20020a6b7b05000000b007d660dcbc8emr204887iop.1.1712850042460; Thu, 11 Apr 2024 08:40:42 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.40.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:40:39 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Bui Quang Minh , Jens Axboe Subject: [PATCH 327/437] drivers/net/ethernet/amd-xgbe: convert to read/write iterators Date: Thu, 11 Apr 2024 09:17:47 -0600 Message-ID: <20240411153126.16201-328-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" From: Bui Quang Minh Signed-off-by: Bui Quang Minh [axboe: fix typo in xi2c_reg_value_read_iter] Signed-off-by: Jens Axboe --- drivers/net/ethernet/amd/xgbe/xgbe-debugfs.c | 233 +++++++++---------- 1 file changed, 112 insertions(+), 121 deletions(-) diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-debugfs.c b/drivers/net/eth= ernet/amd/xgbe/xgbe-debugfs.c index b0a6c96b6ef4..5dfd4fc8618e 100644 --- a/drivers/net/ethernet/amd/xgbe/xgbe-debugfs.c +++ b/drivers/net/ethernet/amd/xgbe/xgbe-debugfs.c @@ -121,36 +121,30 @@ #include "xgbe.h" #include "xgbe-common.h" =20 -static ssize_t xgbe_common_read(char __user *buffer, size_t count, - loff_t *ppos, unsigned int value) +static ssize_t xgbe_common_read_iter(struct iov_iter *to, loff_t *ppos, + unsigned int value) { - char *buf; - ssize_t len; + char buf[16]; + int len; + size_t count =3D iov_iter_count(to); =20 if (*ppos !=3D 0) return 0; =20 - buf =3D kasprintf(GFP_KERNEL, "0x%08x\n", value); - if (!buf) - return -ENOMEM; - - if (count < strlen(buf)) { - kfree(buf); + len =3D sprintf(buf, "0x%08x\n", value); + if (count < len) return -ENOSPC; - } - - len =3D simple_read_from_buffer(buffer, count, ppos, buf, strlen(buf)); - kfree(buf); =20 - return len; + return simple_copy_to_iter(buf, ppos, len, to); } =20 -static ssize_t xgbe_common_write(const char __user *buffer, size_t count, - loff_t *ppos, unsigned int *value) +static ssize_t xgbe_common_write_iter(struct iov_iter *from, loff_t *ppos, + unsigned int *value) { char workarea[32]; ssize_t len; int ret; + size_t count =3D iov_iter_count(from); =20 if (*ppos !=3D 0) return -EINVAL; @@ -158,8 +152,8 @@ static ssize_t xgbe_common_write(const char __user *buf= fer, size_t count, if (count >=3D sizeof(workarea)) return -ENOSPC; =20 - len =3D simple_write_to_buffer(workarea, sizeof(workarea) - 1, ppos, - buffer, count); + len =3D simple_copy_from_iter(workarea, ppos, sizeof(workarea) - 1, + from); if (len < 0) return len; =20 @@ -171,44 +165,43 @@ static ssize_t xgbe_common_write(const char __user *b= uffer, size_t count, return len; } =20 -static ssize_t xgmac_reg_addr_read(struct file *filp, char __user *buffer, - size_t count, loff_t *ppos) +static ssize_t xgmac_reg_addr_read_iter(struct kiocb *iocb, + struct iov_iter *to) { - struct xgbe_prv_data *pdata =3D filp->private_data; + struct xgbe_prv_data *pdata =3D iocb->ki_filp->private_data; =20 - return xgbe_common_read(buffer, count, ppos, pdata->debugfs_xgmac_reg); + return xgbe_common_read_iter(to, &iocb->ki_pos, + pdata->debugfs_xgmac_reg); } =20 -static ssize_t xgmac_reg_addr_write(struct file *filp, - const char __user *buffer, - size_t count, loff_t *ppos) +static ssize_t xgmac_reg_addr_write_iter(struct kiocb *iocb, + struct iov_iter *from) { - struct xgbe_prv_data *pdata =3D filp->private_data; + struct xgbe_prv_data *pdata =3D iocb->ki_filp->private_data; =20 - return xgbe_common_write(buffer, count, ppos, - &pdata->debugfs_xgmac_reg); + return xgbe_common_write_iter(from, &iocb->ki_pos, + &pdata->debugfs_xgmac_reg); } =20 -static ssize_t xgmac_reg_value_read(struct file *filp, char __user *buffer, - size_t count, loff_t *ppos) +static ssize_t xgmac_reg_value_read_iter(struct kiocb *iocb, + struct iov_iter *to) { - struct xgbe_prv_data *pdata =3D filp->private_data; + struct xgbe_prv_data *pdata =3D iocb->ki_filp->private_data; unsigned int value; =20 value =3D XGMAC_IOREAD(pdata, pdata->debugfs_xgmac_reg); =20 - return xgbe_common_read(buffer, count, ppos, value); + return xgbe_common_read_iter(to, &iocb->ki_pos, value); } =20 -static ssize_t xgmac_reg_value_write(struct file *filp, - const char __user *buffer, - size_t count, loff_t *ppos) +static ssize_t xgmac_reg_value_write_iter(struct kiocb *iocb, + struct iov_iter *from) { - struct xgbe_prv_data *pdata =3D filp->private_data; + struct xgbe_prv_data *pdata =3D iocb->ki_filp->private_data; unsigned int value; ssize_t len; =20 - len =3D xgbe_common_write(buffer, count, ppos, &value); + len =3D xgbe_common_write_iter(from, &iocb->ki_pos, &value); if (len < 0) return len; =20 @@ -220,72 +213,73 @@ static ssize_t xgmac_reg_value_write(struct file *fil= p, static const struct file_operations xgmac_reg_addr_fops =3D { .owner =3D THIS_MODULE, .open =3D simple_open, - .read =3D xgmac_reg_addr_read, - .write =3D xgmac_reg_addr_write, + .read_iter =3D xgmac_reg_addr_read_iter, + .write_iter =3D xgmac_reg_addr_write_iter, }; =20 static const struct file_operations xgmac_reg_value_fops =3D { .owner =3D THIS_MODULE, .open =3D simple_open, - .read =3D xgmac_reg_value_read, - .write =3D xgmac_reg_value_write, + .read_iter =3D xgmac_reg_value_read_iter, + .write_iter =3D xgmac_reg_value_write_iter, }; =20 -static ssize_t xpcs_mmd_read(struct file *filp, char __user *buffer, - size_t count, loff_t *ppos) +static ssize_t xpcs_mmd_read_iter(struct kiocb *iocb, + struct iov_iter *to) { - struct xgbe_prv_data *pdata =3D filp->private_data; + struct xgbe_prv_data *pdata =3D iocb->ki_filp->private_data; =20 - return xgbe_common_read(buffer, count, ppos, pdata->debugfs_xpcs_mmd); + return xgbe_common_read_iter(to, &iocb->ki_pos, + pdata->debugfs_xpcs_mmd); } =20 -static ssize_t xpcs_mmd_write(struct file *filp, const char __user *buffer, - size_t count, loff_t *ppos) +static ssize_t xpcs_mmd_write_iter(struct kiocb *iocb, + struct iov_iter *from) { - struct xgbe_prv_data *pdata =3D filp->private_data; + struct xgbe_prv_data *pdata =3D iocb->ki_filp->private_data; =20 - return xgbe_common_write(buffer, count, ppos, - &pdata->debugfs_xpcs_mmd); + return xgbe_common_write_iter(from, &iocb->ki_pos, + &pdata->debugfs_xpcs_mmd); } =20 -static ssize_t xpcs_reg_addr_read(struct file *filp, char __user *buffer, - size_t count, loff_t *ppos) +static ssize_t xpcs_reg_addr_read_iter(struct kiocb *iocb, + struct iov_iter *to) { - struct xgbe_prv_data *pdata =3D filp->private_data; + struct xgbe_prv_data *pdata =3D iocb->ki_filp->private_data; =20 - return xgbe_common_read(buffer, count, ppos, pdata->debugfs_xpcs_reg); + return xgbe_common_read_iter(to, &iocb->ki_pos, + pdata->debugfs_xpcs_reg); } =20 -static ssize_t xpcs_reg_addr_write(struct file *filp, const char __user *b= uffer, - size_t count, loff_t *ppos) +static ssize_t xpcs_reg_addr_write_iter(struct kiocb *iocb, + struct iov_iter *from) { - struct xgbe_prv_data *pdata =3D filp->private_data; + struct xgbe_prv_data *pdata =3D iocb->ki_filp->private_data; =20 - return xgbe_common_write(buffer, count, ppos, - &pdata->debugfs_xpcs_reg); + return xgbe_common_write_iter(from, &iocb->ki_pos, + &pdata->debugfs_xpcs_reg); } =20 -static ssize_t xpcs_reg_value_read(struct file *filp, char __user *buffer, - size_t count, loff_t *ppos) +static ssize_t xpcs_reg_value_read_iter(struct kiocb *iocb, + struct iov_iter *to) { - struct xgbe_prv_data *pdata =3D filp->private_data; + struct xgbe_prv_data *pdata =3D iocb->ki_filp->private_data; unsigned int value; =20 value =3D XMDIO_READ(pdata, pdata->debugfs_xpcs_mmd, pdata->debugfs_xpcs_reg); =20 - return xgbe_common_read(buffer, count, ppos, value); + return xgbe_common_read_iter(to, &iocb->ki_pos, value); } =20 -static ssize_t xpcs_reg_value_write(struct file *filp, - const char __user *buffer, - size_t count, loff_t *ppos) +static ssize_t xpcs_reg_value_write_iter(struct kiocb *iocb, + struct iov_iter *from) { - struct xgbe_prv_data *pdata =3D filp->private_data; + struct xgbe_prv_data *pdata =3D iocb->ki_filp->private_data; unsigned int value; ssize_t len; =20 - len =3D xgbe_common_write(buffer, count, ppos, &value); + len =3D xgbe_common_write_iter(from, &iocb->ki_pos, &value); if (len < 0) return len; =20 @@ -298,62 +292,61 @@ static ssize_t xpcs_reg_value_write(struct file *filp, static const struct file_operations xpcs_mmd_fops =3D { .owner =3D THIS_MODULE, .open =3D simple_open, - .read =3D xpcs_mmd_read, - .write =3D xpcs_mmd_write, + .read_iter =3D xpcs_mmd_read_iter, + .write_iter =3D xpcs_mmd_write_iter, }; =20 static const struct file_operations xpcs_reg_addr_fops =3D { .owner =3D THIS_MODULE, .open =3D simple_open, - .read =3D xpcs_reg_addr_read, - .write =3D xpcs_reg_addr_write, + .read_iter =3D xpcs_reg_addr_read_iter, + .write_iter =3D xpcs_reg_addr_write_iter, }; =20 static const struct file_operations xpcs_reg_value_fops =3D { .owner =3D THIS_MODULE, .open =3D simple_open, - .read =3D xpcs_reg_value_read, - .write =3D xpcs_reg_value_write, + .read_iter =3D xpcs_reg_value_read_iter, + .write_iter =3D xpcs_reg_value_write_iter, }; =20 -static ssize_t xprop_reg_addr_read(struct file *filp, char __user *buffer, - size_t count, loff_t *ppos) +static ssize_t xprop_reg_addr_read_iter(struct kiocb *iocb, + struct iov_iter *to) { - struct xgbe_prv_data *pdata =3D filp->private_data; + struct xgbe_prv_data *pdata =3D iocb->ki_filp->private_data; =20 - return xgbe_common_read(buffer, count, ppos, pdata->debugfs_xprop_reg); + return xgbe_common_read_iter(to, &iocb->ki_pos, + pdata->debugfs_xprop_reg); } =20 -static ssize_t xprop_reg_addr_write(struct file *filp, - const char __user *buffer, - size_t count, loff_t *ppos) +static ssize_t xprop_reg_addr_write_iter(struct kiocb *iocb, + struct iov_iter *from) { - struct xgbe_prv_data *pdata =3D filp->private_data; + struct xgbe_prv_data *pdata =3D iocb->ki_filp->private_data; =20 - return xgbe_common_write(buffer, count, ppos, - &pdata->debugfs_xprop_reg); + return xgbe_common_write_iter(from, &iocb->ki_pos, + &pdata->debugfs_xprop_reg); } =20 -static ssize_t xprop_reg_value_read(struct file *filp, char __user *buffer, - size_t count, loff_t *ppos) +static ssize_t xprop_reg_value_read_iter(struct kiocb *iocb, + struct iov_iter *to) { - struct xgbe_prv_data *pdata =3D filp->private_data; + struct xgbe_prv_data *pdata =3D iocb->ki_filp->private_data; unsigned int value; =20 value =3D XP_IOREAD(pdata, pdata->debugfs_xprop_reg); =20 - return xgbe_common_read(buffer, count, ppos, value); + return xgbe_common_read_iter(to, &iocb->ki_pos, value); } =20 -static ssize_t xprop_reg_value_write(struct file *filp, - const char __user *buffer, - size_t count, loff_t *ppos) +static ssize_t xprop_reg_value_write_iter(struct kiocb *iocb, + struct iov_iter *from) { - struct xgbe_prv_data *pdata =3D filp->private_data; + struct xgbe_prv_data *pdata =3D iocb->ki_filp->private_data; unsigned int value; ssize_t len; =20 - len =3D xgbe_common_write(buffer, count, ppos, &value); + len =3D xgbe_common_write_iter(from, &iocb->ki_pos, &value); if (len < 0) return len; =20 @@ -365,55 +358,53 @@ static ssize_t xprop_reg_value_write(struct file *fil= p, static const struct file_operations xprop_reg_addr_fops =3D { .owner =3D THIS_MODULE, .open =3D simple_open, - .read =3D xprop_reg_addr_read, - .write =3D xprop_reg_addr_write, + .read_iter =3D xprop_reg_addr_read_iter, + .write_iter =3D xprop_reg_addr_write_iter, }; =20 static const struct file_operations xprop_reg_value_fops =3D { .owner =3D THIS_MODULE, .open =3D simple_open, - .read =3D xprop_reg_value_read, - .write =3D xprop_reg_value_write, + .read_iter =3D xprop_reg_value_read_iter, + .write_iter =3D xprop_reg_value_write_iter, }; =20 -static ssize_t xi2c_reg_addr_read(struct file *filp, char __user *buffer, - size_t count, loff_t *ppos) +static ssize_t xi2c_reg_addr_read_iter(struct kiocb *iocb, struct iov_iter= *to) { - struct xgbe_prv_data *pdata =3D filp->private_data; + struct xgbe_prv_data *pdata =3D iocb->ki_filp->private_data; =20 - return xgbe_common_read(buffer, count, ppos, pdata->debugfs_xi2c_reg); + return xgbe_common_read_iter(to, &iocb->ki_pos, + pdata->debugfs_xi2c_reg); } =20 -static ssize_t xi2c_reg_addr_write(struct file *filp, - const char __user *buffer, - size_t count, loff_t *ppos) +static ssize_t xi2c_reg_addr_write_iter(struct kiocb *iocb, + struct iov_iter *from) { - struct xgbe_prv_data *pdata =3D filp->private_data; + struct xgbe_prv_data *pdata =3D iocb->ki_filp->private_data; =20 - return xgbe_common_write(buffer, count, ppos, - &pdata->debugfs_xi2c_reg); + return xgbe_common_write_iter(from, &iocb->ki_pos, + &pdata->debugfs_xi2c_reg); } =20 -static ssize_t xi2c_reg_value_read(struct file *filp, char __user *buffer, - size_t count, loff_t *ppos) +static ssize_t xi2c_reg_value_read_iter(struct kiocb *iocb, + struct iov_iter *to) { - struct xgbe_prv_data *pdata =3D filp->private_data; + struct xgbe_prv_data *pdata =3D iocb->ki_filp->private_data; unsigned int value; =20 value =3D XI2C_IOREAD(pdata, pdata->debugfs_xi2c_reg); =20 - return xgbe_common_read(buffer, count, ppos, value); + return xgbe_common_read_iter(to, &iocb->ki_pos, value); } =20 -static ssize_t xi2c_reg_value_write(struct file *filp, - const char __user *buffer, - size_t count, loff_t *ppos) +static ssize_t xi2c_reg_value_write_iter(struct kiocb *iocb, + struct iov_iter *from) { - struct xgbe_prv_data *pdata =3D filp->private_data; + struct xgbe_prv_data *pdata =3D iocb->ki_filp->private_data; unsigned int value; ssize_t len; =20 - len =3D xgbe_common_write(buffer, count, ppos, &value); + len =3D xgbe_common_write_iter(from, &iocb->ki_pos, &value); if (len < 0) return len; =20 @@ -425,15 +416,15 @@ static ssize_t xi2c_reg_value_write(struct file *filp, static const struct file_operations xi2c_reg_addr_fops =3D { .owner =3D THIS_MODULE, .open =3D simple_open, - .read =3D xi2c_reg_addr_read, - .write =3D xi2c_reg_addr_write, + .read_iter =3D xi2c_reg_addr_read_iter, + .write_iter =3D xi2c_reg_addr_write_iter, }; =20 static const struct file_operations xi2c_reg_value_fops =3D { .owner =3D THIS_MODULE, .open =3D simple_open, - .read =3D xi2c_reg_value_read, - .write =3D xi2c_reg_value_write, + .read_iter =3D xi2c_reg_value_read_iter, + .write_iter =3D xi2c_reg_value_write_iter, }; =20 void xgbe_debugfs_init(struct xgbe_prv_data *pdata) --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-il1-f176.google.com (mail-il1-f176.google.com [209.85.166.176]) (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 AEDAE1E4995 for ; Thu, 11 Apr 2024 15:40:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.176 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850047; cv=none; b=O/hLbJecwW18gOQU6Kr5VvzDWxCc1q/jhww+f/dcUDlQsqutlkEp0Z6L58a0tpl8ej8emYuVrwm7cPSNR0Ve0rQrtqTcCDSGhaFNsGfNQXIa1t/1L+UyvhDbdHB3BePXRV4ihwqPjYwTJ+qhwOCgMhNogU09ylD/lrU/A4TF2NI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850047; c=relaxed/simple; bh=ZQsCXQIo1u77C+Y636NSLzJQXLfnlx2gRIv95MTZKJk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=NYmuEoaF7QQQn+sHH/woP8/0+DyqI8rsNkE9mUbpjNetq2zyeQkW0YfjwRkuKGeCv9vF1xaxo5X1QGPFH8I9gcv3O92hTUe0tagydr5g92yT/17jlDxUus72hDySvvnZiAuYjCOYrCLXgLyAVL3+yUJXcE/MQRt87FlnwH8Hlz4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=WxQWaIEe; arc=none smtp.client-ip=209.85.166.176 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="WxQWaIEe" Received: by mail-il1-f176.google.com with SMTP id e9e14a558f8ab-36a224d7414so193605ab.1 for ; Thu, 11 Apr 2024 08:40:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850044; x=1713454844; 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=8E038ft6BAVgNypkOETbM+2jlodebro2Q9vT1YOFtic=; b=WxQWaIEeKw0hx7fiI3hz2pWQnSvAlT8QJ5Ifyl7iqqOqVEWkN8KCW0M2Bb2cpwD84B s7Z1vVFIlqU/JuAYT/1Xl0qUx9uju4sBGn23aaPZnYBmIx453C60l6k65K814BuUDNdo SKyawTwvCaa8WGnKUPsWarmsls4ew8erKtW+lOey9uXAfHmMUaa41W1is3nRBI+rrkRc QnztRQEgCYi6vRh57AzbvfXL+kP9GoXrnnELUiXXsR70pdpW2fATQPvX7c66WEOow+PS mnMEQv2IXGheWiDcATxF+GUwevmKd5TwNZhmez57dYEsRf+O4W8pRrrAE8eOBeAuJPV2 gV8g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850044; x=1713454844; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=8E038ft6BAVgNypkOETbM+2jlodebro2Q9vT1YOFtic=; b=qseU7gDMib7maKdWij4/7mzav6B3EUUU3m+IaWRKgFrNmVWtN9b/XuGLxAKWyY4Dfk FYcR8ZyaffRxoVWvHPZIf2rruRqeDKhoPqYwwzyhx4MrZ4VoF3mdCebSWdJZ1szNXxly dm2Brvbi2oJfb/4ac8ZUCpMl5syBbBXQBcqpLZ6rYMp4iftXNyjGm31M2sP5JwC1WncD Z9Stl0KaKbfKiRFrrspwSFmXDYwWIaSNglEf9VGz7a14ugBekBpdyRrSRsZUUhxPgW2X ox+zjtV23hIAG5ZVko4tfgKJIvD5pwfTZL/01BTOejp07H+0Gab7RIOlRPY6vMfn+qi2 ZqAg== X-Gm-Message-State: AOJu0YzJi6cKmO42d90X2QKTGt3XL5zUn2j6WTKCuivGyxrbdXD74RpM winyocQrcBed32meeKtf4SMHAq3BRo/ppFnLlBoZ6bSCDDLv8VWVdzAz6IeWDGaq7WvxFz0Wo/G U X-Google-Smtp-Source: AGHT+IFXwsra0bGxPW3Je+zPe/7OBMSYiRabPsITdpsQ5dFXUGXvJIR9StmjAnp0RH7JgZHHVsZqaw== X-Received: by 2002:a6b:6605:0:b0:7d4:1dae:da1a with SMTP id a5-20020a6b6605000000b007d41daeda1amr159843ioc.2.1712850044318; Thu, 11 Apr 2024 08:40:44 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.40.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:40:42 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Bui Quang Minh , Jens Axboe Subject: [PATCH 328/437] drivers/net/ethernet/marvell/octeontx2: convert to read/write iterators Date: Thu, 11 Apr 2024 09:17:48 -0600 Message-ID: <20240411153126.16201-329-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" From: Bui Quang Minh Signed-off-by: Bui Quang Minh Signed-off-by: Jens Axboe --- .../marvell/octeontx2/af/rvu_debugfs.c | 159 ++++++++---------- 1 file changed, 73 insertions(+), 86 deletions(-) diff --git a/drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c b/driv= ers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c index 2500f5ba4f5a..be3b071743f5 100644 --- a/drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c +++ b/drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c @@ -209,8 +209,8 @@ static int rvu_dbg_open_##name(struct inode *inode, str= uct file *file) \ static const struct file_operations rvu_dbg_##name##_fops =3D { \ .owner =3D THIS_MODULE, \ .open =3D rvu_dbg_open_##name, \ - .read =3D seq_read, \ - .write =3D rvu_dbg_##write_op, \ + .read_iter =3D seq_read_iter, \ + .write_iter =3D rvu_dbg_##write_op, \ .llseek =3D seq_lseek, \ .release =3D single_release, \ } @@ -219,8 +219,8 @@ static const struct file_operations rvu_dbg_##name##_fo= ps =3D { \ static const struct file_operations rvu_dbg_##name##_fops =3D { \ .owner =3D THIS_MODULE, \ .open =3D simple_open, \ - .read =3D rvu_dbg_##read_op, \ - .write =3D rvu_dbg_##write_op \ + .read_iter =3D rvu_dbg_##read_op, \ + .write_iter =3D rvu_dbg_##write_op \ } =20 static void print_nix_qsize(struct seq_file *filp, struct rvu_pfvf *pfvf); @@ -572,11 +572,10 @@ static void rvu_dbg_mcs_init(struct rvu *rvu) =20 #define LMT_MAPTBL_ENTRY_SIZE 16 /* Dump LMTST map table */ -static ssize_t rvu_dbg_lmtst_map_table_display(struct file *filp, - char __user *buffer, - size_t count, loff_t *ppos) +static ssize_t rvu_dbg_lmtst_map_table_display(struct kiocb *iocb, + struct iov_iter *to) { - struct rvu *rvu =3D filp->private_data; + struct rvu *rvu =3D iocb->ki_filp->private_data; u64 lmt_addr, val, tbl_base; int pf, vf, num_vfs, hw_vfs; void __iomem *lmt_map_base; @@ -585,9 +584,10 @@ static ssize_t rvu_dbg_lmtst_map_table_display(struct = file *filp, int index =3D 0; char *buf; int ret; + size_t count =3D iov_iter_count(to); =20 /* don't allow partial reads */ - if (*ppos !=3D 0) + if (iocb->ki_pos !=3D 0) return 0; =20 buf =3D kzalloc(buf_size, GFP_KERNEL); @@ -649,15 +649,15 @@ static ssize_t rvu_dbg_lmtst_map_table_display(struct= file *filp, off +=3D scnprintf(&buf[off], buf_size - 1 - off, "\n"); =20 ret =3D min(off, count); - if (copy_to_user(buffer, buf, ret)) - ret =3D -EFAULT; + if (!copy_to_iter_full(buf, ret, to)) + return -EFAULT; kfree(buf); =20 iounmap(lmt_map_base); if (ret < 0) return ret; =20 - *ppos =3D ret; + iocb->ki_pos =3D ret; return ret; } =20 @@ -731,22 +731,21 @@ static int get_max_column_width(struct rvu *rvu) } =20 /* Dumps current provisioning status of all RVU block LFs */ -static ssize_t rvu_dbg_rsrc_attach_status(struct file *filp, - char __user *buffer, - size_t count, loff_t *ppos) +static ssize_t rvu_dbg_rsrc_attach_status(struct kiocb *iocb, + struct iov_iter *to) { int index, off =3D 0, flag =3D 0, len =3D 0, i =3D 0; - struct rvu *rvu =3D filp->private_data; - int bytes_not_copied =3D 0; + struct rvu *rvu =3D iocb->ki_filp->private_data; struct rvu_block block; int pf, vf, pcifunc; int buf_size =3D 2048; int lf_str_size; char *lfs; char *buf; + bool ret; =20 /* don't allow partial reads */ - if (*ppos !=3D 0) + if (iocb->ki_pos !=3D 0) return 0; =20 buf =3D kzalloc(buf_size, GFP_KERNEL); @@ -771,12 +770,13 @@ static ssize_t rvu_dbg_rsrc_attach_status(struct file= *filp, } =20 off +=3D scnprintf(&buf[off], buf_size - 1 - off, "\n"); - bytes_not_copied =3D copy_to_user(buffer + (i * off), buf, off); - if (bytes_not_copied) + iov_iter_advance(to, i * off); + ret =3D !copy_to_iter_full(buf, off, to); + if (ret) goto out; =20 i++; - *ppos +=3D off; + iocb->ki_pos +=3D off; for (pf =3D 0; pf < rvu->hw->total_pfs; pf++) { for (vf =3D 0; vf <=3D rvu->hw->total_vfs; vf++) { off =3D 0; @@ -813,14 +813,13 @@ static ssize_t rvu_dbg_rsrc_attach_status(struct file= *filp, if (flag) { off +=3D scnprintf(&buf[off], buf_size - 1 - off, "\n"); - bytes_not_copied =3D copy_to_user(buffer + - (i * off), - buf, off); - if (bytes_not_copied) + iov_iter_advance(to, i * off); + ret =3D !copy_to_iter_full(buf, off, to); + if (ret) goto out; =20 i++; - *ppos +=3D off; + iocb->ki_pos +=3D off; } } } @@ -828,10 +827,10 @@ static ssize_t rvu_dbg_rsrc_attach_status(struct file= *filp, out: kfree(lfs); kfree(buf); - if (bytes_not_copied) + if (!ret) return -EFAULT; =20 - return *ppos; + return iocb->ki_pos; } =20 RVU_DEBUG_FOPS(rsrc_status, rsrc_attach_status, NULL); @@ -986,23 +985,26 @@ static int rvu_dbg_qsize_display(struct seq_file *fil= p, void *unsused, return 0; } =20 -static ssize_t rvu_dbg_qsize_write(struct file *filp, - const char __user *buffer, size_t count, - loff_t *ppos, int blktype) +static ssize_t rvu_dbg_qsize_write(struct kiocb *iocb, struct iov_iter *fr= om, + int blktype) { char *blk_string =3D (blktype =3D=3D BLKTYPE_NPA) ? "npa" : "nix"; - struct seq_file *seqfile =3D filp->private_data; + struct seq_file *seqfile =3D iocb->ki_filp->private_data; char *cmd_buf, *cmd_buf_tmp, *subtoken; struct rvu *rvu =3D seqfile->private; struct dentry *current_dir; int blkaddr; u16 pcifunc; int ret, lf; + size_t count =3D iov_iter_count(from); =20 - cmd_buf =3D memdup_user(buffer, count + 1); - if (IS_ERR(cmd_buf)) + cmd_buf =3D kmalloc(count + 1, GFP_KERNEL); + if (!cmd_buf) return -ENOMEM; =20 + if (!copy_from_iter_full(cmd_buf, count, from)) + return -EFAULT; + cmd_buf[count] =3D '\0'; =20 cmd_buf_tmp =3D strchr(cmd_buf, '\n'); @@ -1025,7 +1027,7 @@ static ssize_t rvu_dbg_qsize_write(struct file *filp, if (blktype =3D=3D BLKTYPE_NPA) { blkaddr =3D BLKADDR_NPA; } else { - current_dir =3D filp->f_path.dentry->d_parent; + current_dir =3D iocb->ki_filp->f_path.dentry->d_parent; blkaddr =3D (!strcmp(current_dir->d_name.name, "nix1") ? BLKADDR_NIX1 : BLKADDR_NIX0); } @@ -1044,12 +1046,10 @@ static ssize_t rvu_dbg_qsize_write(struct file *fil= p, return ret ? ret : count; } =20 -static ssize_t rvu_dbg_npa_qsize_write(struct file *filp, - const char __user *buffer, - size_t count, loff_t *ppos) +static ssize_t rvu_dbg_npa_qsize_write(struct kiocb *iocb, + struct iov_iter *from) { - return rvu_dbg_qsize_write(filp, buffer, count, ppos, - BLKTYPE_NPA); + return rvu_dbg_qsize_write(iocb, from, BLKTYPE_NPA); } =20 static int rvu_dbg_npa_qsize_display(struct seq_file *filp, void *unused) @@ -1292,16 +1292,14 @@ static int write_npa_ctx(struct rvu *rvu, bool all, } =20 static int parse_cmd_buffer_ctx(char *cmd_buf, size_t *count, - const char __user *buffer, int *npalf, + struct iov_iter *from, int *npalf, int *id, bool *all) { - int bytes_not_copied; char *cmd_buf_tmp; char *subtoken; int ret; =20 - bytes_not_copied =3D copy_from_user(cmd_buf, buffer, *count); - if (bytes_not_copied) + if (!copy_from_iter_full(cmd_buf, *count, from)) return -EFAULT; =20 cmd_buf[*count] =3D '\0'; @@ -1329,24 +1327,25 @@ static int parse_cmd_buffer_ctx(char *cmd_buf, size= _t *count, return ret; } =20 -static ssize_t rvu_dbg_npa_ctx_write(struct file *filp, - const char __user *buffer, - size_t count, loff_t *ppos, int ctype) +static ssize_t rvu_dbg_npa_ctx_write(struct kiocb *iocb, + struct iov_iter *from, + int ctype) { char *cmd_buf, *ctype_string =3D (ctype =3D=3D NPA_AQ_CTYPE_AURA) ? "aura" : "pool"; - struct seq_file *seqfp =3D filp->private_data; + struct seq_file *seqfp =3D iocb->ki_filp->private_data; struct rvu *rvu =3D seqfp->private; int npalf, id =3D 0, ret; bool all =3D false; + size_t count =3D iov_iter_count(from); =20 - if ((*ppos !=3D 0) || !count) + if (iocb->ki_pos !=3D 0 || !count) return -EINVAL; =20 cmd_buf =3D kzalloc(count + 1, GFP_KERNEL); if (!cmd_buf) return count; - ret =3D parse_cmd_buffer_ctx(cmd_buf, &count, buffer, + ret =3D parse_cmd_buffer_ctx(cmd_buf, &count, from, &npalf, &id, &all); if (ret < 0) { dev_info(rvu->dev, @@ -1361,12 +1360,10 @@ static ssize_t rvu_dbg_npa_ctx_write(struct file *f= ilp, return ret ? ret : count; } =20 -static ssize_t rvu_dbg_npa_aura_ctx_write(struct file *filp, - const char __user *buffer, - size_t count, loff_t *ppos) +static ssize_t rvu_dbg_npa_aura_ctx_write(struct kiocb *iocb, + struct iov_iter *from) { - return rvu_dbg_npa_ctx_write(filp, buffer, count, ppos, - NPA_AQ_CTYPE_AURA); + return rvu_dbg_npa_ctx_write(iocb, from, NPA_AQ_CTYPE_AURA); } =20 static int rvu_dbg_npa_aura_ctx_display(struct seq_file *filp, void *unuse= d) @@ -1376,12 +1373,10 @@ static int rvu_dbg_npa_aura_ctx_display(struct seq_= file *filp, void *unused) =20 RVU_DEBUG_SEQ_FOPS(npa_aura_ctx, npa_aura_ctx_display, npa_aura_ctx_write); =20 -static ssize_t rvu_dbg_npa_pool_ctx_write(struct file *filp, - const char __user *buffer, - size_t count, loff_t *ppos) +static ssize_t rvu_dbg_npa_pool_ctx_write(struct kiocb *iocb, + struct iov_iter *from) { - return rvu_dbg_npa_ctx_write(filp, buffer, count, ppos, - NPA_AQ_CTYPE_POOL); + return rvu_dbg_npa_ctx_write(iocb, from, NPA_AQ_CTYPE_POOL); } =20 static int rvu_dbg_npa_pool_ctx_display(struct seq_file *filp, void *unuse= d) @@ -2021,19 +2016,19 @@ static int write_nix_queue_ctx(struct rvu *rvu, boo= l all, int nixlf, return 0; } =20 -static ssize_t rvu_dbg_nix_queue_ctx_write(struct file *filp, - const char __user *buffer, - size_t count, loff_t *ppos, +static ssize_t rvu_dbg_nix_queue_ctx_write(struct kiocb *iocb, + struct iov_iter *from, int ctype) { - struct seq_file *m =3D filp->private_data; + struct seq_file *m =3D iocb->ki_filp->private_data; struct nix_hw *nix_hw =3D m->private; struct rvu *rvu =3D nix_hw->rvu; char *cmd_buf, *ctype_string; int nixlf, id =3D 0, ret; bool all =3D false; + size_t count =3D iov_iter_count(from); =20 - if ((*ppos !=3D 0) || !count) + if (iocb->ki_pos !=3D 0 || !count) return -EINVAL; =20 switch (ctype) { @@ -2055,7 +2050,7 @@ static ssize_t rvu_dbg_nix_queue_ctx_write(struct fil= e *filp, if (!cmd_buf) return count; =20 - ret =3D parse_cmd_buffer_ctx(cmd_buf, &count, buffer, + ret =3D parse_cmd_buffer_ctx(cmd_buf, &count, from, &nixlf, &id, &all); if (ret < 0) { dev_info(rvu->dev, @@ -2071,12 +2066,10 @@ static ssize_t rvu_dbg_nix_queue_ctx_write(struct f= ile *filp, return ret ? ret : count; } =20 -static ssize_t rvu_dbg_nix_sq_ctx_write(struct file *filp, - const char __user *buffer, - size_t count, loff_t *ppos) +static ssize_t rvu_dbg_nix_sq_ctx_write(struct kiocb *iocb, + struct iov_iter *from) { - return rvu_dbg_nix_queue_ctx_write(filp, buffer, count, ppos, - NIX_AQ_CTYPE_SQ); + return rvu_dbg_nix_queue_ctx_write(iocb, from, NIX_AQ_CTYPE_SQ); } =20 static int rvu_dbg_nix_sq_ctx_display(struct seq_file *filp, void *unused) @@ -2086,12 +2079,10 @@ static int rvu_dbg_nix_sq_ctx_display(struct seq_fi= le *filp, void *unused) =20 RVU_DEBUG_SEQ_FOPS(nix_sq_ctx, nix_sq_ctx_display, nix_sq_ctx_write); =20 -static ssize_t rvu_dbg_nix_rq_ctx_write(struct file *filp, - const char __user *buffer, - size_t count, loff_t *ppos) +static ssize_t rvu_dbg_nix_rq_ctx_write(struct kiocb *iocb, + struct iov_iter *from) { - return rvu_dbg_nix_queue_ctx_write(filp, buffer, count, ppos, - NIX_AQ_CTYPE_RQ); + return rvu_dbg_nix_queue_ctx_write(iocb, from, NIX_AQ_CTYPE_RQ); } =20 static int rvu_dbg_nix_rq_ctx_display(struct seq_file *filp, void *unused) @@ -2101,12 +2092,10 @@ static int rvu_dbg_nix_rq_ctx_display(struct seq_fi= le *filp, void *unused) =20 RVU_DEBUG_SEQ_FOPS(nix_rq_ctx, nix_rq_ctx_display, nix_rq_ctx_write); =20 -static ssize_t rvu_dbg_nix_cq_ctx_write(struct file *filp, - const char __user *buffer, - size_t count, loff_t *ppos) +static ssize_t rvu_dbg_nix_cq_ctx_write(struct kiocb *iocb, + struct iov_iter *from) { - return rvu_dbg_nix_queue_ctx_write(filp, buffer, count, ppos, - NIX_AQ_CTYPE_CQ); + return rvu_dbg_nix_queue_ctx_write(iocb, from, NIX_AQ_CTYPE_CQ); } =20 static int rvu_dbg_nix_cq_ctx_display(struct seq_file *filp, void *unused) @@ -2153,12 +2142,10 @@ static void print_nix_qsize(struct seq_file *filp, = struct rvu_pfvf *pfvf) "sq"); } =20 -static ssize_t rvu_dbg_nix_qsize_write(struct file *filp, - const char __user *buffer, - size_t count, loff_t *ppos) +static ssize_t rvu_dbg_nix_qsize_write(struct kiocb *iocb, + struct iov_iter *from) { - return rvu_dbg_qsize_write(filp, buffer, count, ppos, - BLKTYPE_NIX); + return rvu_dbg_qsize_write(iocb, from, BLKTYPE_NIX); } =20 static int rvu_dbg_nix_qsize_display(struct seq_file *filp, void *unused) --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f53.google.com (mail-io1-f53.google.com [209.85.166.53]) (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 6D0AE1E4988 for ; Thu, 11 Apr 2024 15:40:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850049; cv=none; b=a0wldWrTQpM5m1PGFz17w2OVIPIKpNxBJIMUY8Cm1t6RqhCcrT1SYWPz/dsdnQQ+hWPZOHBNafGY6onOSH1V4+9iVr48oonJOioQQKDktUHAIjyqYN8ck0y/p7Yb+VZEfa55nMbvOMjAd/FddQ7Tqvm+CO5YBdjGKHc8qRLO9RI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850049; c=relaxed/simple; bh=GH5C7Q8Nylvc+7im/FUXVIy9mBwai9l8JAoYCIyN0XA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=gsOtV6fn7Ehg4VwPZT+vBdcVK/e4w2/po0Kf9IU9q2/1G9+nDDdhu0fvZBo9VgKuUtFQrT9UGL8djL9B+Rf6QKQl4A7pMfrpJLb+PD3BQp+6K/Ni0GUWBu2d0HIPGVSmwWQ02m/Z8dbInA0+e/m9PHEtBOEc5MiBU7GsYe5RzUI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=sVgxSy4j; arc=none smtp.client-ip=209.85.166.53 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="sVgxSy4j" Received: by mail-io1-f53.google.com with SMTP id ca18e2360f4ac-7d5ed700c2dso16240439f.0 for ; Thu, 11 Apr 2024 08:40:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850046; x=1713454846; 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=hshnkl01c0BziUyf4evDZWs+mKErvhNG3KYBvzjNMIg=; b=sVgxSy4jXQBGyCEfBf2Z+MbMdzv+uvXbhoyRGsr1eT1fFzmQ0wD2J6z+zVF5IaD2y9 2R8L4cKMqk9soF9KqDecx31BvKwk3FYIBVMU3LgajXnYnNgRwaCEq2p5XZdSnxVoL1v3 utmXj6FBf1mqJouRmGcBLxvdY4qrJP1Ke0OCHrVHWXDvSCKNSSBk9KVFgl6pcFPC7eip YQr6HAV33KGva/jQX7IDs4EB83xTm/UJQqfWnwPYWKsO3T9PPQkvGywpO4HAXIHxJ6H3 U7WJDP348Plv8h0V3jqTtgIwisbQvDgFy0LWcYHOUhqvyTDNRMha0kiSobAD1jmwW5wP 2H3Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850046; x=1713454846; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=hshnkl01c0BziUyf4evDZWs+mKErvhNG3KYBvzjNMIg=; b=ezk09op34FJcsKOR3nrON8EE7tls0pS8SxQWN3StZokuKJxGlZpxsoJOZK+xLB03MP U++x+lNFUR5c/y956yZhM6tpT/MfSZ46E+fC3mMF9xvLesUd4byQdaEkcHNBRAVJ3zh0 XaJYzfJ/V21TffrJ2bggNdoadIAa96nroPQ4B9NIUAZH+dEzCWfsGftijYjgrGKcSEJt 1q71knW2nN6KBsMLapLrdK2k5QnOWZr2LVQV/W9eV1r1tkH4T5tVseKmrz493BsV/oAq w1ogDccquMYQL0JZkpBf3qx5JHJqaCsBCplFrzgQKCopTFpcImGqypjXfnlnt3JRwO0r k+NQ== X-Gm-Message-State: AOJu0YzggcLjCUssMH6oT3mL1/2QQKFOMCbOkxlOAOPpyA0Bz0EQM5FF 0GsmhRuMdeiSskvVrTwNTIfbbDWAbsd1mEVcsc7xsbvydvkpi4NHwm9QznuP0rpOKJbUO9Anh3T M X-Google-Smtp-Source: AGHT+IF6PZVmq5jfNH6WAhjxQKNF2FTgX8qJtJCrLbQjShiCOGn6Ps2HxJV7ammRghSjl0Z2e34k1w== X-Received: by 2002:a05:6602:38d:b0:7d6:513b:254 with SMTP id f13-20020a056602038d00b007d6513b0254mr199522iov.2.1712850046289; Thu, 11 Apr 2024 08:40:46 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.40.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:40:44 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Bui Quang Minh , Jens Axboe Subject: [PATCH 329/437] drivers/net/ethernet/mellanox/mlx5/core: convert to read/write iterators Date: Thu, 11 Apr 2024 09:17:49 -0600 Message-ID: <20240411153126.16201-330-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" From: Bui Quang Minh Signed-off-by: Bui Quang Minh Signed-off-by: Jens Axboe --- drivers/net/ethernet/mellanox/mlx5/core/cmd.c | 78 ++++++++++--------- .../net/ethernet/mellanox/mlx5/core/debugfs.c | 49 ++++++------ .../net/ethernet/mellanox/mlx5/core/lib/sd.c | 13 ++-- 3 files changed, 69 insertions(+), 71 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/cmd.c b/drivers/net/et= hernet/mellanox/mlx5/core/cmd.c index 4957412ff1f6..fecd1553fac5 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/cmd.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/cmd.c @@ -1246,13 +1246,13 @@ static int mlx5_cmd_invoke(struct mlx5_core_dev *de= v, struct mlx5_cmd_msg *in, return err ? : status; } =20 -static ssize_t dbg_write(struct file *filp, const char __user *buf, - size_t count, loff_t *pos) +static ssize_t dbg_write_iter(struct kiocb *iocb, struct iov_iter *from) { - struct mlx5_core_dev *dev =3D filp->private_data; + struct mlx5_core_dev *dev =3D iocb->ki_filp->private_data; struct mlx5_cmd_debug *dbg =3D &dev->cmd.dbg; char lbuf[3]; int err; + size_t count =3D iov_iter_count(from); =20 if (!dbg->in_msg || !dbg->out_msg) return -ENOMEM; @@ -1260,7 +1260,7 @@ static ssize_t dbg_write(struct file *filp, const cha= r __user *buf, if (count < sizeof(lbuf) - 1) return -EINVAL; =20 - if (copy_from_user(lbuf, buf, sizeof(lbuf) - 1)) + if (!copy_from_iter_full(lbuf, sizeof(lbuf) - 1, from)) return -EFAULT; =20 lbuf[sizeof(lbuf) - 1] =3D 0; @@ -1274,9 +1274,9 @@ static ssize_t dbg_write(struct file *filp, const cha= r __user *buf, } =20 static const struct file_operations fops =3D { - .owner =3D THIS_MODULE, - .open =3D simple_open, - .write =3D dbg_write, + .owner =3D THIS_MODULE, + .open =3D simple_open, + .write_iter =3D dbg_write_iter, }; =20 static int mlx5_copy_to_msg(struct mlx5_cmd_msg *to, void *from, int size, @@ -1435,54 +1435,56 @@ static void mlx5_free_cmd_msg(struct mlx5_core_dev = *dev, kfree(msg); } =20 -static ssize_t data_write(struct file *filp, const char __user *buf, - size_t count, loff_t *pos) +static ssize_t data_write_iter(struct kiocb *iocb, struct iov_iter *from) { - struct mlx5_core_dev *dev =3D filp->private_data; + struct mlx5_core_dev *dev =3D iocb->ki_filp->private_data; struct mlx5_cmd_debug *dbg =3D &dev->cmd.dbg; void *ptr; + size_t count =3D iov_iter_count(from); =20 - if (*pos !=3D 0) + if (iocb->ki_pos !=3D 0) return -EINVAL; =20 kfree(dbg->in_msg); dbg->in_msg =3D NULL; dbg->inlen =3D 0; - ptr =3D memdup_user(buf, count); - if (IS_ERR(ptr)) - return PTR_ERR(ptr); + ptr =3D kmalloc(count, GFP_KERNEL); + if (!ptr) + return -ENOMEM; + + if (!copy_from_iter_full(ptr, count, from)) + return -EFAULT; + dbg->in_msg =3D ptr; dbg->inlen =3D count; =20 - *pos =3D count; + iocb->ki_pos =3D count; =20 return count; } =20 -static ssize_t data_read(struct file *filp, char __user *buf, size_t count, - loff_t *pos) +static ssize_t data_read_iter(struct kiocb *iocb, struct iov_iter *to) { - struct mlx5_core_dev *dev =3D filp->private_data; + struct mlx5_core_dev *dev =3D iocb->ki_filp->private_data; struct mlx5_cmd_debug *dbg =3D &dev->cmd.dbg; =20 if (!dbg->out_msg) return -ENOMEM; =20 - return simple_read_from_buffer(buf, count, pos, dbg->out_msg, - dbg->outlen); + return simple_copy_to_iter(dbg->out_msg, &iocb->ki_pos, + dbg->outlen, to); } =20 static const struct file_operations dfops =3D { - .owner =3D THIS_MODULE, - .open =3D simple_open, - .write =3D data_write, - .read =3D data_read, + .owner =3D THIS_MODULE, + .open =3D simple_open, + .write_iter =3D data_write_iter, + .read_iter =3D data_read_iter, }; =20 -static ssize_t outlen_read(struct file *filp, char __user *buf, size_t cou= nt, - loff_t *pos) +static ssize_t outlen_read_iter(struct kiocb *iocb, struct iov_iter *to) { - struct mlx5_core_dev *dev =3D filp->private_data; + struct mlx5_core_dev *dev =3D iocb->ki_filp->private_data; struct mlx5_cmd_debug *dbg =3D &dev->cmd.dbg; char outlen[8]; int err; @@ -1491,27 +1493,27 @@ static ssize_t outlen_read(struct file *filp, char = __user *buf, size_t count, if (err < 0) return err; =20 - return simple_read_from_buffer(buf, count, pos, outlen, err); + return simple_copy_to_iter(outlen, &iocb->ki_pos, err, to); } =20 -static ssize_t outlen_write(struct file *filp, const char __user *buf, - size_t count, loff_t *pos) +static ssize_t outlen_write_iter(struct kiocb *iocb, struct iov_iter *from) { - struct mlx5_core_dev *dev =3D filp->private_data; + struct mlx5_core_dev *dev =3D iocb->ki_filp->private_data; struct mlx5_cmd_debug *dbg =3D &dev->cmd.dbg; char outlen_str[8] =3D {0}; int outlen; void *ptr; int err; + size_t count =3D iov_iter_count(from); =20 - if (*pos !=3D 0 || count > 6) + if (iocb->ki_pos !=3D 0 || count > 6) return -EINVAL; =20 kfree(dbg->out_msg); dbg->out_msg =3D NULL; dbg->outlen =3D 0; =20 - if (copy_from_user(outlen_str, buf, count)) + if (!copy_from_iter_full(outlen_str, count, from)) return -EFAULT; =20 err =3D sscanf(outlen_str, "%d", &outlen); @@ -1525,16 +1527,16 @@ static ssize_t outlen_write(struct file *filp, cons= t char __user *buf, dbg->out_msg =3D ptr; dbg->outlen =3D outlen; =20 - *pos =3D count; + iocb->ki_pos =3D count; =20 return count; } =20 static const struct file_operations olfops =3D { - .owner =3D THIS_MODULE, - .open =3D simple_open, - .write =3D outlen_write, - .read =3D outlen_read, + .owner =3D THIS_MODULE, + .open =3D simple_open, + .write_iter =3D outlen_write_iter, + .read_iter =3D outlen_read_iter, }; =20 static void set_wqname(struct mlx5_core_dev *dev) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/debugfs.c b/drivers/ne= t/ethernet/mellanox/mlx5/core/debugfs.c index 09652dc89115..090b5b5d0acd 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/debugfs.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/debugfs.c @@ -126,48 +126,46 @@ void mlx5_eq_debugfs_cleanup(struct mlx5_core_dev *de= v) debugfs_remove_recursive(dev->priv.dbg.eq_debugfs); } =20 -static ssize_t average_read(struct file *filp, char __user *buf, size_t co= unt, - loff_t *pos) +static ssize_t average_read_iter(struct kiocb *iocb, struct iov_iter *to) { struct mlx5_cmd_stats *stats; u64 field =3D 0; int ret; char tbuf[22]; =20 - stats =3D filp->private_data; + stats =3D iocb->ki_filp->private_data; spin_lock_irq(&stats->lock); if (stats->n) field =3D div64_u64(stats->sum, stats->n); spin_unlock_irq(&stats->lock); ret =3D snprintf(tbuf, sizeof(tbuf), "%llu\n", field); - return simple_read_from_buffer(buf, count, pos, tbuf, ret); + return simple_copy_to_iter(tbuf, &iocb->ki_pos, ret, to); } =20 -static ssize_t average_write(struct file *filp, const char __user *buf, - size_t count, loff_t *pos) +static ssize_t average_write_iter(struct kiocb *iocb, struct iov_iter *fro= m) { struct mlx5_cmd_stats *stats; + size_t count =3D iov_iter_count(from); =20 - stats =3D filp->private_data; + stats =3D iocb->ki_filp->private_data; spin_lock_irq(&stats->lock); stats->sum =3D 0; stats->n =3D 0; spin_unlock_irq(&stats->lock); =20 - *pos +=3D count; + iocb->ki_pos +=3D count; =20 return count; } =20 static const struct file_operations stats_fops =3D { - .owner =3D THIS_MODULE, - .open =3D simple_open, - .read =3D average_read, - .write =3D average_write, + .owner =3D THIS_MODULE, + .open =3D simple_open, + .read_iter =3D average_read_iter, + .write_iter =3D average_write_iter, }; =20 -static ssize_t slots_read(struct file *filp, char __user *buf, size_t coun= t, - loff_t *pos) +static ssize_t slots_read_iter(struct kiocb *iocb, struct iov_iter *to) { struct mlx5_cmd *cmd; char tbuf[6]; @@ -175,17 +173,17 @@ static ssize_t slots_read(struct file *filp, char __u= ser *buf, size_t count, int field; int ret; =20 - cmd =3D filp->private_data; + cmd =3D iocb->ki_filp->private_data; weight =3D bitmap_weight(&cmd->vars.bitmask, cmd->vars.max_reg_cmds); field =3D cmd->vars.max_reg_cmds - weight; ret =3D snprintf(tbuf, sizeof(tbuf), "%d\n", field); - return simple_read_from_buffer(buf, count, pos, tbuf, ret); + return simple_copy_to_iter(tbuf, &iocb->ki_pos, ret, to); } =20 static const struct file_operations slots_fops =3D { - .owner =3D THIS_MODULE, - .open =3D simple_open, - .read =3D slots_read, + .owner =3D THIS_MODULE, + .open =3D simple_open, + .read_iter =3D slots_read_iter, }; =20 static struct mlx5_cmd_stats * @@ -445,8 +443,7 @@ static u64 cq_read_field(struct mlx5_core_dev *dev, str= uct mlx5_core_cq *cq, return param; } =20 -static ssize_t dbg_read(struct file *filp, char __user *buf, size_t count, - loff_t *pos) +static ssize_t dbg_read_iter(struct kiocb *iocb, struct iov_iter *to) { struct mlx5_field_desc *desc; struct mlx5_rsc_debug *d; @@ -455,7 +452,7 @@ static ssize_t dbg_read(struct file *filp, char __user = *buf, size_t count, u64 field; int ret; =20 - desc =3D filp->private_data; + desc =3D iocb->ki_filp->private_data; d =3D (void *)(desc - desc->i) - sizeof(*d); switch (d->type) { case MLX5_DBG_RSC_QP: @@ -480,13 +477,13 @@ static ssize_t dbg_read(struct file *filp, char __use= r *buf, size_t count, else ret =3D snprintf(tbuf, sizeof(tbuf), "0x%llx\n", field); =20 - return simple_read_from_buffer(buf, count, pos, tbuf, ret); + return simple_copy_to_iter(tbuf, &iocb->ki_pos, ret, to); } =20 static const struct file_operations fops =3D { - .owner =3D THIS_MODULE, - .open =3D simple_open, - .read =3D dbg_read, + .owner =3D THIS_MODULE, + .open =3D simple_open, + .read_iter =3D dbg_read_iter, }; =20 static int add_res_tree(struct mlx5_core_dev *dev, enum dbg_rsc_type type, diff --git a/drivers/net/ethernet/mellanox/mlx5/core/lib/sd.c b/drivers/net= /ethernet/mellanox/mlx5/core/lib/sd.c index 5b28084e8a03..09429b069c20 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/lib/sd.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/lib/sd.c @@ -393,24 +393,23 @@ static void sd_print_group(struct mlx5_core_dev *prim= ary) MLX5_CAP_GEN(pos, vhca_id)); } =20 -static ssize_t dev_read(struct file *filp, char __user *buf, size_t count, - loff_t *pos) +static ssize_t dev_read_iter(struct kiocb *iocb, struct iov_iter *to) { struct mlx5_core_dev *dev; char tbuf[32]; int ret; =20 - dev =3D filp->private_data; + dev =3D iocb->ki_filp->private_data; ret =3D snprintf(tbuf, sizeof(tbuf), "%s vhca %#x\n", pci_name(dev->pdev), MLX5_CAP_GEN(dev, vhca_id)); =20 - return simple_read_from_buffer(buf, count, pos, tbuf, ret); + return simple_copy_to_iter(tbuf, &iocb->ki_pos, ret, to); } =20 static const struct file_operations dev_fops =3D { - .owner =3D THIS_MODULE, - .open =3D simple_open, - .read =3D dev_read, + .owner =3D THIS_MODULE, + .open =3D simple_open, + .read_iter =3D dev_read_iter, }; =20 int mlx5_sd_init(struct mlx5_core_dev *dev) --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f44.google.com (mail-io1-f44.google.com [209.85.166.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 8A2D11E49BF for ; Thu, 11 Apr 2024 15:40:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850051; cv=none; b=GUT2Ue8VnNtltUzth+xPGTf7klmxyEcl6djv6OukzUIeVsSMFzzHam+xOknShEgsMTNfzlRJC54r1sVVR4FnPG/Oj3tjfpNBeADraX7gR6P7h4sKSrmTYqgWOtcGmCMBoXCFXJu8PL1CibcO80rbPD5C0rrZBEYXXQCf8OPCCXU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850051; c=relaxed/simple; bh=529wjpas2p56dqMV8X7IZjIFCzhyxyeJhKZ2qwEF32k=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=udUL4zCTQ6795nUjVXWOGkdUlg2NYrArpa0KVYTAseTbjJyNjbW98w8+Rsl5U6caQeLZkYFW+Ue4j+EUO9l5End395wwa39O8YidNqDmRfy04yt5+1IZCdtr6pvzSoWaXPtbbCG36TUAyZbdvr6ak5ntOC3DiTtmIYdUGP0Bet0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=qTt4lA0I; arc=none smtp.client-ip=209.85.166.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="qTt4lA0I" Received: by mail-io1-f44.google.com with SMTP id ca18e2360f4ac-7d67d1073easo9893039f.0 for ; Thu, 11 Apr 2024 08:40:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850048; x=1713454848; 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=do2lRM3x5b0Zjz+Q9sYMbX0U+xC2iLU0SVhIay8/GyQ=; b=qTt4lA0IepQqcgRcyA9bZYMNxhXB3DuR/5/roTYdXimxMnbcgTVn+Rf/V9jhmehZhU syUjSSS0suXy+MzYFKSsxEOSxN9EpsUlrgucIwnrj3UbWaKIftV8ef9annOWJvHO57Uc dZGeTMp0svz6MkaefI1Uy1vArMVOapfhLxee5aqfO3wy8fuc72VBQxlWgW5bWoupP6k4 Jqfvf4N92S3ThWesRgcA2ueTz2XKePqXzRWIm8YW5WRa27v1DSeI8Tjk9PlZbYxj2F+k IanvjNhySEEWm1m8HvNi6lnB4L90//ncrlDxP4b9k5hUEdjO/j7pMKpoYDLVWaYVmI3T V+9A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850048; x=1713454848; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=do2lRM3x5b0Zjz+Q9sYMbX0U+xC2iLU0SVhIay8/GyQ=; b=LiUDvwWCNaYh+2mlBvau/AE7yyVfy/Br3ihfGPhQueRuJKu2VWBFz4H6tGhyt8/xHF lfma79qruSHhygl9CiVkk7CYcuNn9lL80y5ec9Wr1j43yAl2Rwjg07av25cw9jev1/e2 sQPFgYDzs+DEeKcwDQ0hhlzOvCFwcw8hwwYCOvJFQHyBrGCLcwM2KScVOf8jziRgd58q UMVMhuR2T3x89LhevyL42cBu0HFKEP000VZLBvMTSvhMIIa8z1kkxgZZYjY+yRQ+6+0+ 7igTl1qxt118okZoeFdbaFe8sifUKn1icK9z67+dKrdE6gxdPkRxwAqPPvauDQF6yJLK QbrQ== X-Gm-Message-State: AOJu0YxPri9HTZ/yk+k6ItDJ11hRrOhHA8NUV+nxhRfZUO8JKg/EACmP TKsS25o7c0FhFswFn92ipmyuRkodGCJzIeo5eIaZXdIBi76+vpP+z9AF57Bu9CgiBVGTLZ352/G 4 X-Google-Smtp-Source: AGHT+IHViGBn7BQW5cP/C+BwgAVKVoHB2/IN4dDpmMdg2/oVSn5s+TU71SOFfGsS52vRPtuZ3PJdkQ== X-Received: by 2002:a6b:7b05:0:b0:7d6:60dc:bc8e with SMTP id l5-20020a6b7b05000000b007d660dcbc8emr205119iop.1.1712850048093; Thu, 11 Apr 2024 08:40:48 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.40.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:40:46 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 330/437] x86/kernel: convert to read/write iterators Date: Thu, 11 Apr 2024 09:17:50 -0600 Message-ID: <20240411153126.16201-331-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- arch/x86/kernel/apm_32.c | 10 +++--- arch/x86/kernel/callthunks.c | 2 +- arch/x86/kernel/cpu/debugfs.c | 4 +-- arch/x86/kernel/cpu/mce/dev-mcelog.c | 38 +++++++++++------------ arch/x86/kernel/cpu/mce/inject.c | 27 +++++++--------- arch/x86/kernel/cpu/mce/severity.c | 11 +++---- arch/x86/kernel/cpu/resctrl/pseudo_lock.c | 18 +++++------ arch/x86/kernel/cpuid.c | 16 +++++----- arch/x86/kernel/kdebugfs.c | 14 ++++----- arch/x86/kernel/msr.c | 28 +++++++---------- arch/x86/kernel/tboot.c | 17 +++++----- 11 files changed, 86 insertions(+), 99 deletions(-) diff --git a/arch/x86/kernel/apm_32.c b/arch/x86/kernel/apm_32.c index b37ab1095707..bc4c8db6b52f 100644 --- a/arch/x86/kernel/apm_32.c +++ b/arch/x86/kernel/apm_32.c @@ -1431,13 +1431,14 @@ static int check_apm_user(struct apm_user *as, cons= t char *func) return 0; } =20 -static ssize_t do_read(struct file *fp, char __user *buf, size_t count, lo= ff_t *ppos) +static ssize_t do_read(struct kiocb *iocb, struct iov_iter *to) { + size_t count =3D iov_iter_count(to); struct apm_user *as; int i; apm_event_t event; =20 - as =3D fp->private_data; + as =3D iocb->ki_filp->private_data; if (check_apm_user(as, "read")) return -EIO; if ((int)count < sizeof(apm_event_t)) @@ -1448,7 +1449,7 @@ static ssize_t do_read(struct file *fp, char __user *= buf, size_t count, loff_t * i =3D count; while ((i >=3D sizeof(event)) && !queue_empty(as)) { event =3D get_queued_event(as); - if (copy_to_user(buf, &event, sizeof(event))) { + if (!copy_to_iter_full(&event, sizeof(event), to)) { if (i < count) break; return -EFAULT; @@ -1464,7 +1465,6 @@ static ssize_t do_read(struct file *fp, char __user *= buf, size_t count, loff_t * as->standbys_read++; break; } - buf +=3D sizeof(event); i -=3D sizeof(event); } if (i < count) @@ -1876,7 +1876,7 @@ __setup("apm=3D", apm_setup); =20 static const struct file_operations apm_bios_fops =3D { .owner =3D THIS_MODULE, - .read =3D do_read, + .read_iter =3D do_read, .poll =3D do_poll, .unlocked_ioctl =3D do_ioctl, .open =3D do_open, diff --git a/arch/x86/kernel/callthunks.c b/arch/x86/kernel/callthunks.c index e92ff0c11db8..bec11795ff8e 100644 --- a/arch/x86/kernel/callthunks.c +++ b/arch/x86/kernel/callthunks.c @@ -375,7 +375,7 @@ static int callthunks_debug_open(struct inode *inode, s= truct file *file) =20 static const struct file_operations dfs_ops =3D { .open =3D callthunks_debug_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D single_release, }; diff --git a/arch/x86/kernel/cpu/debugfs.c b/arch/x86/kernel/cpu/debugfs.c index 3baf3e435834..1f29b224c8c0 100644 --- a/arch/x86/kernel/cpu/debugfs.c +++ b/arch/x86/kernel/cpu/debugfs.c @@ -42,7 +42,7 @@ static int cpu_debug_open(struct inode *inode, struct fil= e *file) =20 static const struct file_operations dfs_cpu_ops =3D { .open =3D cpu_debug_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D single_release, }; @@ -76,7 +76,7 @@ static int dom_debug_open(struct inode *inode, struct fil= e *file) =20 static const struct file_operations dfs_dom_ops =3D { .open =3D dom_debug_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D single_release, }; diff --git a/arch/x86/kernel/cpu/mce/dev-mcelog.c b/arch/x86/kernel/cpu/mce= /dev-mcelog.c index a05ac0716ecf..1d5d1b26b85b 100644 --- a/arch/x86/kernel/cpu/mce/dev-mcelog.c +++ b/arch/x86/kernel/cpu/mce/dev-mcelog.c @@ -159,7 +159,7 @@ static int mce_chrdev_release(struct inode *inode, stru= ct file *file) static int mce_apei_read_done; =20 /* Collect MCE record of previous boot in persistent storage via APEI ERST= . */ -static int __mce_read_apei(char __user **ubuf, size_t usize) +static int __mce_read_apei(struct iov_iter *to, size_t usize) { int rc; u64 record_id; @@ -181,7 +181,7 @@ static int __mce_read_apei(char __user **ubuf, size_t u= size) return rc; } rc =3D -EFAULT; - if (copy_to_user(*ubuf, &m, sizeof(struct mce))) + if (!copy_to_iter_full(&m, sizeof(struct mce), to)) return rc; /* * In fact, we should have cleared the record after that has @@ -194,51 +194,49 @@ static int __mce_read_apei(char __user **ubuf, size_t= usize) mce_apei_read_done =3D 1; return rc; } - *ubuf +=3D sizeof(struct mce); =20 return 0; } =20 -static ssize_t mce_chrdev_read(struct file *filp, char __user *ubuf, - size_t usize, loff_t *off) +static ssize_t mce_chrdev_read(struct kiocb *iocb, struct iov_iter *to) { - char __user *buf =3D ubuf; + size_t copied, usize =3D iov_iter_count(to); unsigned next; int i, err; =20 mutex_lock(&mce_chrdev_read_mutex); =20 if (!mce_apei_read_done) { - err =3D __mce_read_apei(&buf, usize); - if (err || buf !=3D ubuf) + err =3D __mce_read_apei(to, usize); + if (err) goto out; } =20 /* Only supports full reads right now */ err =3D -EINVAL; - if (*off !=3D 0 || usize < mcelog->len * sizeof(struct mce)) + if (iocb->ki_pos !=3D 0 || usize < mcelog->len * sizeof(struct mce)) goto out; =20 next =3D mcelog->next; err =3D 0; + copied =3D 0; =20 for (i =3D 0; i < next; i++) { struct mce *m =3D &mcelog->entry[i]; =20 - err |=3D copy_to_user(buf, m, sizeof(*m)); - buf +=3D sizeof(*m); + if (copy_to_iter_full(m, sizeof(*m), to)) + copied +=3D sizeof(*m); + else + err =3D -EFAULT; } =20 memset(mcelog->entry, 0, next * sizeof(struct mce)); mcelog->next =3D 0; =20 - if (err) - err =3D -EFAULT; - out: mutex_unlock(&mce_chrdev_read_mutex); =20 - return err ? err : buf - ubuf; + return err ? err : copied; } =20 static __poll_t mce_chrdev_poll(struct file *file, poll_table *wait) @@ -290,9 +288,9 @@ void mce_unregister_injector_chain(struct notifier_bloc= k *nb) } EXPORT_SYMBOL_GPL(mce_unregister_injector_chain); =20 -static ssize_t mce_chrdev_write(struct file *filp, const char __user *ubuf, - size_t usize, loff_t *off) +static ssize_t mce_chrdev_write(struct kiocb *iocb, struct iov_iter *from) { + size_t usize =3D iov_iter_count(from); struct mce m; =20 if (!capable(CAP_SYS_ADMIN)) @@ -306,7 +304,7 @@ static ssize_t mce_chrdev_write(struct file *filp, cons= t char __user *ubuf, =20 if ((unsigned long)usize > sizeof(struct mce)) usize =3D sizeof(struct mce); - if (copy_from_user(&m, ubuf, usize)) + if (!copy_from_iter_full(&m, usize, from)) return -EFAULT; =20 if (m.extcpu >=3D num_possible_cpus() || !cpu_online(m.extcpu)) @@ -326,8 +324,8 @@ static ssize_t mce_chrdev_write(struct file *filp, cons= t char __user *ubuf, static const struct file_operations mce_chrdev_ops =3D { .open =3D mce_chrdev_open, .release =3D mce_chrdev_release, - .read =3D mce_chrdev_read, - .write =3D mce_chrdev_write, + .read_iter =3D mce_chrdev_read, + .write_iter =3D mce_chrdev_write, .poll =3D mce_chrdev_poll, .unlocked_ioctl =3D mce_chrdev_ioctl, .compat_ioctl =3D compat_ptr_ioctl, diff --git a/arch/x86/kernel/cpu/mce/inject.c b/arch/x86/kernel/cpu/mce/inj= ect.c index 94953d749475..5d545f331d0d 100644 --- a/arch/x86/kernel/cpu/mce/inject.c +++ b/arch/x86/kernel/cpu/mce/inject.c @@ -349,27 +349,26 @@ static int __set_inj(const char *buf) return -EINVAL; } =20 -static ssize_t flags_read(struct file *filp, char __user *ubuf, - size_t cnt, loff_t *ppos) +static ssize_t flags_read(struct kiocb *iocb, struct iov_iter *to) { char buf[MAX_FLAG_OPT_SIZE]; int n; =20 n =3D sprintf(buf, "%s\n", flags_options[inj_type]); =20 - return simple_read_from_buffer(ubuf, cnt, ppos, buf, n); + return simple_copy_to_iter(buf, &iocb->ki_pos, n, to); } =20 -static ssize_t flags_write(struct file *filp, const char __user *ubuf, - size_t cnt, loff_t *ppos) +static ssize_t flags_write(struct kiocb *iocb, struct iov_iter *from) { char buf[MAX_FLAG_OPT_SIZE], *__buf; + size_t cnt =3D iov_iter_count(from); int err; =20 if (!cnt || cnt > MAX_FLAG_OPT_SIZE) return -EINVAL; =20 - if (copy_from_user(&buf, ubuf, cnt)) + if (!copy_from_iter_full(&buf, cnt, from)) return -EFAULT; =20 buf[cnt - 1] =3D 0; @@ -383,14 +382,14 @@ static ssize_t flags_write(struct file *filp, const c= har __user *ubuf, return err; } =20 - *ppos +=3D cnt; + iocb->ki_pos +=3D cnt; =20 return cnt; } =20 static const struct file_operations flags_fops =3D { - .read =3D flags_read, - .write =3D flags_write, + .read_iter =3D flags_read, + .write_iter =3D flags_write, .llseek =3D generic_file_llseek, }; =20 @@ -679,16 +678,14 @@ static const char readme_msg[] =3D "ipid:\t IPID (AMD-specific)\n" "\n"; =20 -static ssize_t -inj_readme_read(struct file *filp, char __user *ubuf, - size_t cnt, loff_t *ppos) +static ssize_t inj_readme_read(struct kiocb *iocb, struct iov_iter *to) { - return simple_read_from_buffer(ubuf, cnt, ppos, - readme_msg, strlen(readme_msg)); + return simple_copy_to_iter(readme_msg, &iocb->ki_pos, + strlen(readme_msg), to); } =20 static const struct file_operations readme_fops =3D { - .read =3D inj_readme_read, + .read_iter =3D inj_readme_read, }; =20 static struct dfs_node { diff --git a/arch/x86/kernel/cpu/mce/severity.c b/arch/x86/kernel/cpu/mce/s= everity.c index c4477162c07d..eb648f415d55 100644 --- a/arch/x86/kernel/cpu/mce/severity.c +++ b/arch/x86/kernel/cpu/mce/severity.c @@ -447,21 +447,20 @@ static int severities_coverage_open(struct inode *ino= de, struct file *file) return seq_open(file, &severities_seq_ops); } =20 -static ssize_t severities_coverage_write(struct file *file, - const char __user *ubuf, - size_t count, loff_t *ppos) +static ssize_t severities_coverage_write(struct kiocb *iocb, + struct iov_iter *from) { int i; for (i =3D 0; i < ARRAY_SIZE(severities); i++) severities[i].covered =3D 0; - return count; + return iov_iter_count(from); } =20 static const struct file_operations severities_coverage_fops =3D { .open =3D severities_coverage_open, .release =3D seq_release, - .read =3D seq_read, - .write =3D severities_coverage_write, + .read_iter =3D seq_read_iter, + .write_iter =3D severities_coverage_write, .llseek =3D seq_lseek, }; =20 diff --git a/arch/x86/kernel/cpu/resctrl/pseudo_lock.c b/arch/x86/kernel/cp= u/resctrl/pseudo_lock.c index 884b88e25141..e10f1e9513ec 100644 --- a/arch/x86/kernel/cpu/resctrl/pseudo_lock.c +++ b/arch/x86/kernel/cpu/resctrl/pseudo_lock.c @@ -1244,18 +1244,18 @@ static int pseudo_lock_measure_cycles(struct rdtgro= up *rdtgrp, int sel) return ret; } =20 -static ssize_t pseudo_lock_measure_trigger(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t pseudo_lock_measure_trigger(struct kiocb *iocb, + struct iov_iter *from) { - struct rdtgroup *rdtgrp =3D file->private_data; + struct rdtgroup *rdtgrp =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); size_t buf_size; char buf[32]; int ret; int sel; =20 buf_size =3D min(count, (sizeof(buf) - 1)); - if (copy_from_user(buf, user_buf, buf_size)) + if (!copy_from_iter_full(buf, buf_size, from)) return -EFAULT; =20 buf[buf_size] =3D '\0'; @@ -1263,20 +1263,20 @@ static ssize_t pseudo_lock_measure_trigger(struct f= ile *file, if (ret =3D=3D 0) { if (sel !=3D 1 && sel !=3D 2 && sel !=3D 3) return -EINVAL; - ret =3D debugfs_file_get(file->f_path.dentry); + ret =3D debugfs_file_get(iocb->ki_filp->f_path.dentry); if (ret) return ret; ret =3D pseudo_lock_measure_cycles(rdtgrp, sel); if (ret =3D=3D 0) ret =3D count; - debugfs_file_put(file->f_path.dentry); + debugfs_file_put(iocb->ki_filp->f_path.dentry); } =20 return ret; } =20 static const struct file_operations pseudo_measure_fops =3D { - .write =3D pseudo_lock_measure_trigger, + .write_iter =3D pseudo_lock_measure_trigger, .open =3D simple_open, .llseek =3D default_llseek, }; @@ -1570,8 +1570,6 @@ static int pseudo_lock_dev_mmap(struct file *filp, st= ruct vm_area_struct *vma) static const struct file_operations pseudo_lock_dev_fops =3D { .owner =3D THIS_MODULE, .llseek =3D no_llseek, - .read =3D NULL, - .write =3D NULL, .open =3D pseudo_lock_dev_open, .release =3D pseudo_lock_dev_release, .mmap =3D pseudo_lock_dev_mmap, diff --git a/arch/x86/kernel/cpuid.c b/arch/x86/kernel/cpuid.c index dae436253de4..f33fc680cc7d 100644 --- a/arch/x86/kernel/cpuid.c +++ b/arch/x86/kernel/cpuid.c @@ -58,13 +58,12 @@ static void cpuid_smp_cpuid(void *cmd_block) complete(&cmd->done); } =20 -static ssize_t cpuid_read(struct file *file, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t cpuid_read(struct kiocb *iocb, struct iov_iter *to) { - char __user *tmp =3D buf; struct cpuid_regs_done cmd; - int cpu =3D iminor(file_inode(file)); - u64 pos =3D *ppos; + int cpu =3D iminor(file_inode(iocb->ki_filp)); + size_t count =3D iov_iter_count(to); + u64 pos =3D iocb->ki_pos; ssize_t bytes =3D 0; int err =3D 0; =20 @@ -84,13 +83,12 @@ static ssize_t cpuid_read(struct file *file, char __use= r *buf, if (err) break; wait_for_completion(&cmd.done); - if (copy_to_user(tmp, &cmd.regs, 16)) { + if (!copy_to_iter_full(&cmd.regs, 16, to)) { err =3D -EFAULT; break; } - tmp +=3D 16; bytes +=3D 16; - *ppos =3D ++pos; + iocb->ki_pos =3D ++pos; reinit_completion(&cmd.done); } =20 @@ -119,7 +117,7 @@ static int cpuid_open(struct inode *inode, struct file = *file) static const struct file_operations cpuid_fops =3D { .owner =3D THIS_MODULE, .llseek =3D no_seek_end_llseek, - .read =3D cpuid_read, + .read_iter =3D cpuid_read, .open =3D cpuid_open, }; =20 diff --git a/arch/x86/kernel/kdebugfs.c b/arch/x86/kernel/kdebugfs.c index e2e89bebcbc3..4b4db90ffab2 100644 --- a/arch/x86/kernel/kdebugfs.c +++ b/arch/x86/kernel/kdebugfs.c @@ -26,12 +26,12 @@ struct setup_data_node { u32 len; }; =20 -static ssize_t setup_data_read(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t setup_data_read(struct kiocb *iocb, struct iov_iter *to) { - struct setup_data_node *node =3D file->private_data; + struct setup_data_node *node =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(to); unsigned long remain; - loff_t pos =3D *ppos; + loff_t pos =3D iocb->ki_pos; void *p; u64 pa; =20 @@ -54,20 +54,20 @@ static ssize_t setup_data_read(struct file *file, char = __user *user_buf, if (!p) return -ENOMEM; =20 - remain =3D copy_to_user(user_buf, p, count); + remain =3D !copy_to_iter_full(p, count, to); =20 memunmap(p); =20 if (remain) return -EFAULT; =20 - *ppos =3D pos + count; + iocb->ki_pos =3D pos + count; =20 return count; } =20 static const struct file_operations fops_setup_data =3D { - .read =3D setup_data_read, + .read_iter =3D setup_data_read, .open =3D simple_open, .llseek =3D default_llseek, }; diff --git a/arch/x86/kernel/msr.c b/arch/x86/kernel/msr.c index e17c16c54a37..80cd3d83fb75 100644 --- a/arch/x86/kernel/msr.c +++ b/arch/x86/kernel/msr.c @@ -49,13 +49,12 @@ enum allow_write_msrs { =20 static enum allow_write_msrs allow_writes =3D MSR_WRITES_DEFAULT; =20 -static ssize_t msr_read(struct file *file, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t msr_read(struct kiocb *iocb, struct iov_iter *to) { - u32 __user *tmp =3D (u32 __user *) buf; u32 data[2]; - u32 reg =3D *ppos; - int cpu =3D iminor(file_inode(file)); + u32 reg =3D iocb->ki_pos; + int cpu =3D iminor(file_inode(iocb->ki_filp)); + size_t count =3D iov_iter_count(to); int err =3D 0; ssize_t bytes =3D 0; =20 @@ -66,11 +65,10 @@ static ssize_t msr_read(struct file *file, char __user = *buf, err =3D rdmsr_safe_on_cpu(cpu, reg, &data[0], &data[1]); if (err) break; - if (copy_to_user(tmp, &data, 8)) { + if (!copy_to_iter_full(&data, 8, to)) { err =3D -EFAULT; break; } - tmp +=3D 2; bytes +=3D 8; } =20 @@ -105,13 +103,12 @@ static int filter_write(u32 reg) return 0; } =20 -static ssize_t msr_write(struct file *file, const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t msr_write(struct kiocb *iocb, struct iov_iter *from) { - const u32 __user *tmp =3D (const u32 __user *)buf; + size_t count =3D iov_iter_count(from); u32 data[2]; - u32 reg =3D *ppos; - int cpu =3D iminor(file_inode(file)); + u32 reg =3D iocb->ki_pos; + int cpu =3D iminor(file_inode(iocb->ki_filp)); int err =3D 0; ssize_t bytes =3D 0; =20 @@ -127,7 +124,7 @@ static ssize_t msr_write(struct file *file, const char = __user *buf, return -EINVAL; /* Invalid chunk size */ =20 for (; count; count -=3D 8) { - if (copy_from_user(&data, tmp, 8)) { + if (!copy_from_iter_full(&data, 8, from)) { err =3D -EFAULT; break; } @@ -138,7 +135,6 @@ static ssize_t msr_write(struct file *file, const char = __user *buf, if (err) break; =20 - tmp +=3D 2; bytes +=3D 8; } =20 @@ -227,8 +223,8 @@ static int msr_open(struct inode *inode, struct file *f= ile) static const struct file_operations msr_fops =3D { .owner =3D THIS_MODULE, .llseek =3D no_seek_end_llseek, - .read =3D msr_read, - .write =3D msr_write, + .read_iter =3D msr_read, + .write_iter =3D msr_write, .open =3D msr_open, .unlocked_ioctl =3D msr_ioctl, .compat_ioctl =3D msr_ioctl, diff --git a/arch/x86/kernel/tboot.c b/arch/x86/kernel/tboot.c index 4c1bcb6053fc..59020897c7e6 100644 --- a/arch/x86/kernel/tboot.c +++ b/arch/x86/kernel/tboot.c @@ -356,8 +356,9 @@ static int tboot_dying_cpu(unsigned int cpu) =20 static uint8_t tboot_log_uuid[16] =3D TBOOT_LOG_UUID; =20 -static ssize_t tboot_log_read(struct file *file, char __user *user_buf, si= ze_t count, loff_t *ppos) +static ssize_t tboot_log_read(struct kiocb *iocb, struct iov_iter *to) { + size_t count =3D iov_iter_count(to); void __iomem *log_base; u8 log_uuid[16]; u32 max_size; @@ -373,13 +374,13 @@ static ssize_t tboot_log_read(struct file *file, char= __user *user_buf, size_t c goto err_iounmap; =20 max_size =3D readl(log_base + LOG_MAX_SIZE_OFF); - if (*ppos >=3D max_size) { + if (iocb->ki_pos >=3D max_size) { ret =3D 0; goto err_iounmap; } =20 - if (*ppos + count > max_size) - count =3D max_size - *ppos; + if (iocb->ki_pos + count > max_size) + count =3D max_size - iocb->ki_pos; =20 kbuf =3D kmalloc(count, GFP_KERNEL); if (!kbuf) { @@ -387,11 +388,11 @@ static ssize_t tboot_log_read(struct file *file, char= __user *user_buf, size_t c goto err_iounmap; } =20 - memcpy_fromio(kbuf, log_base + LOG_BUF_OFF + *ppos, count); - if (copy_to_user(user_buf, kbuf, count)) + memcpy_fromio(kbuf, log_base + LOG_BUF_OFF + iocb->ki_pos, count); + if (!copy_to_iter_full(kbuf, count, to)) goto err_kfree; =20 - *ppos +=3D count; + iocb->ki_pos +=3D count; =20 ret =3D count; =20 @@ -405,7 +406,7 @@ static ssize_t tboot_log_read(struct file *file, char _= _user *user_buf, size_t c } =20 static const struct file_operations tboot_log_fops =3D { - .read =3D tboot_log_read, + .read_iter =3D tboot_log_read, .llseek =3D default_llseek, }; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f42.google.com (mail-io1-f42.google.com [209.85.166.42]) (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 5F7ED1E5A69 for ; Thu, 11 Apr 2024 15:40:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850052; cv=none; b=nfcqdV1YWyzMvtb2BNHcG7LLjlPwW8YeWBgxqWhgzgiane7o36DuExLJEosADHqRcmdBe++uHK/1lfPDHWUa/P5cWSqheKn1lhLrd8oDWrG1fbaJVwRDugu6Z49ddzSGbWMSjxDTaG9qL9UflGatfV71N4/PlaX55MbBKsy4ge4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850052; c=relaxed/simple; bh=m2iqChL6HETmz/ZtiknVulQsjum0zCKG2dh134JjhGI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ji5p59RgZC+bBtGRrgfEnWT6G9T7x0pqqu26R6PVq6QiUY4VUxwiouUla0xMUZNQ4sDxmO4EyvuQxA2Ix8j0mB+5t9b3L+RnPKIobaOn9OMC5kpq4Jnt3K1KxW/noyXu1Fkt3Nmtj+frc5ybQm6Pc3dXuXN8nWym7vcSnPom8Wk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=OTXCoFgE; arc=none smtp.client-ip=209.85.166.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="OTXCoFgE" Received: by mail-io1-f42.google.com with SMTP id ca18e2360f4ac-7cc0e831e11so170614139f.1 for ; Thu, 11 Apr 2024 08:40:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850050; x=1713454850; 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=HdvTd/Z6iWJcYI3wdpCfxtLeNNXPNiT3U4B2ltOyVR8=; b=OTXCoFgEZt4tLkA1kAN3CgBJ7u1+L8kayPgWSVpBld457m3S7rgUZPaYGViVNoeFFa Gd21iHwVbRbp7wfQcWcznt2VLDHSHzm2SebcrEXNiSFVO3EFX6x+gDfXia1HmAOVLQSn Q2I5UjYGaP4LZ/vpNp3EIpFR9rTVBwlbjrUes70sF78a8D6NI8M1P9Htz5fm2ESOUClQ Ot7SX/sPHt/BubHJLCOKF24zqpfeZiF9iHP11VqPCfE3H2xUslDRFH/LrMfuwGj6zk+F /Jng5aHKQCDzxAXaytogPt2nxW96ApdexDCHpJ3+P+Zs5jMNA2HlKbLO2zDOLDzjYAAM fT5A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850050; x=1713454850; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=HdvTd/Z6iWJcYI3wdpCfxtLeNNXPNiT3U4B2ltOyVR8=; b=p1HTgU33qN9LC5O4ACV1Y1ezN2WPZebu//RJH6GklzLymmoHsTDYuHWHN+YiN18A/C XNqdgBA02qZPD89j22v/RSmhpMK7zBN56waP734DQz4wlRy+xwuJTFjSBdERGZ0Njt+P s3IOAaN9UzmQuajRBKgZz2JytHNgvW9ikdpcyLzFH6jotRug0l0szh3gAWv6F2690P7M ODNFH8tTxD+MUigllzqGNLuRIjMUxyEGhoCPOHhlcJ8hegVxuPSYlDKddSXYS46k2I1O lD1L1po5yloPSHzuiR4AFgXjtKzzNG8rwsemex6ONxFGEs3Zlfpjh02tQYYsA+gTA0yY FwLw== X-Gm-Message-State: AOJu0YzVHJNXxPoUKpO1lg8zJSynbSsKUmvlGpApqVNCPjfFl3mUmIZh cthjCnM9ZNkJgPkwJOC46GbmRZrLfNwEp55ttl8ilARGrKro8qane4KPzRO3ogWvZGM/w2bJbKm C X-Google-Smtp-Source: AGHT+IGz7J0shjkdOGLVLKWXVno+h7HpxzpClNN5Mu1JYtxbpeMIyKmerz0MmNbf4UJ4HNBpzFIC2w== X-Received: by 2002:a6b:5b10:0:b0:7d0:bd2b:43ba with SMTP id v16-20020a6b5b10000000b007d0bd2b43bamr234137ioh.0.1712850050225; Thu, 11 Apr 2024 08:40:50 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.40.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:40:48 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 331/437] x86/kvm: convert to read/write iterators Date: Thu, 11 Apr 2024 09:17:51 -0600 Message-ID: <20240411153126.16201-332-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- arch/x86/kvm/debugfs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/x86/kvm/debugfs.c b/arch/x86/kvm/debugfs.c index 999227fc7c66..552db0812b02 100644 --- a/arch/x86/kvm/debugfs.c +++ b/arch/x86/kvm/debugfs.c @@ -184,7 +184,7 @@ static int kvm_mmu_rmaps_stat_release(struct inode *ino= de, struct file *file) static const struct file_operations mmu_rmaps_stat_fops =3D { .owner =3D THIS_MODULE, .open =3D kvm_mmu_rmaps_stat_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D kvm_mmu_rmaps_stat_release, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f45.google.com (mail-io1-f45.google.com [209.85.166.45]) (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 1EDC81E5A86 for ; Thu, 11 Apr 2024 15:40:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850054; cv=none; b=Hvve/pYKAzvIRS3rTveV4xizyXgSfsu/pmEIhEinWft4AIUKwIljgFFWSfXD0zpBuG3+CyiaeP6lhBmmdwzqxcPATWtomWtQ6VyI0WADu+rph++jXdUB+6BJehQjEv0fru0OJ+C1TCJQ1YWZjtU6qX8fFScCM1aTyA0lcmhYq7U= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850054; c=relaxed/simple; bh=6y6PZ2q5JqnN3xLPEoJio6juGz7vkx5/cqsd8Nmd/Ms=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=BVw8pEW49r2Z/hTUe8Qulikf1drTrTrpVp6Lkpc86igrdNtbrw7LYxgOfFvuH5BcsoyWOOhOxcwVYRb8gT53YDlMnIk2hB5Oup5E8IFgKrc4tildUzud0acja4UtYyxFkDjuuo40gcvyjPEkB6pzPrNcRnpkOU+ifshwIY1NynM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=sRoG2GjS; arc=none smtp.client-ip=209.85.166.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="sRoG2GjS" Received: by mail-io1-f45.google.com with SMTP id ca18e2360f4ac-7cc0e831e11so170614939f.1 for ; Thu, 11 Apr 2024 08:40:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850052; x=1713454852; 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=LYo9II18kKi6UUjE56d5jU18dIdhCJ9lo6geMH0YCOc=; b=sRoG2GjSxowfQlBNkkDi1CdNbQLt+NjTOCvX4f/WlXYCuhN8Gl4ARccvt506FFet1a 33WTR1DZzGnmT1NoDgViMXbejBHpDaqsk/uoC259E/hy5laJkOrFvfOwuD/r2Vj66Wzt Ea5luWzDCp8qUlvdjMTomkNLziaG0Mz+te1IBmF51AjXOJ5JP82ZuDWkTeCez758cyxP C1FPGQJWTQdCswVZA+SUcy3Badn36rZzs3Z1RH52kPk3pmAAlfgqFGlhTMDXRfj7qOH3 0XuMHGlzo/Lwdqq/MCuf/6BJ3qSx7MLWfCoyx3Gfyclzckuyx+6Ba6qnR8Spw0tJ74e2 JZ9Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850052; x=1713454852; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=LYo9II18kKi6UUjE56d5jU18dIdhCJ9lo6geMH0YCOc=; b=C9nMRwXdymVxKWXy8KQ3tIybehex8Zr4Hf5b+5z9+VwzakgkNmbr20NsCfMpffM3Lp w7TcetroZ/XjpdIK+d/5NXGhEF4jwgQRmBRuvJ2eXwpNn72cPQq1kFV6qlPki0/Zm+L2 HdqSR6phxFrvsTx9dy1/7IoFq/PFqFaLgVhS3v/2aKqaIn4gxjRgxX1+uQ538eTpt+tX 5ZmsK61U1J2I26ly43t0zCbn/zzrMZosfDuGNbvjnHNWLmMr3pvFDrIPehKY30hfbGAT vjtBvPc3vFO/g2zfInNwgWHT5iNojqmc+6GUfHLcsohBbfi0g5cDGy9CgOaotMqUzZR/ p44A== X-Gm-Message-State: AOJu0Yx/mT36jUbIeKsT5SbilpJLLKLviGWfZoIRVZ0DUGKsSuqjNm+T GYypYOzKvfcka/zL9qNFLRoPum8OoXwwfeZVmtZlpKnXdB5NoopfG/hN4jdBKiO4j12YoUaNsbc V X-Google-Smtp-Source: AGHT+IGktqNyKJqZB81EY0XOQbyaQ3RLkdIS4bcGOS+OTPmX26qXWOMLtklIpwOe+vvS5ZTGupzGAQ== X-Received: by 2002:a5e:9907:0:b0:7d6:751f:192 with SMTP id t7-20020a5e9907000000b007d6751f0192mr193018ioj.2.1712850051871; Thu, 11 Apr 2024 08:40:51 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.40.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:40:50 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 332/437] x86/mm: convert to read/write iterators Date: Thu, 11 Apr 2024 09:17:52 -0600 Message-ID: <20240411153126.16201-333-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- arch/x86/mm/pat/memtype.c | 2 +- arch/x86/mm/pat/set_memory.c | 2 +- arch/x86/mm/pkeys.c | 15 +++++++-------- arch/x86/mm/tlb.c | 15 +++++++-------- 4 files changed, 16 insertions(+), 18 deletions(-) diff --git a/arch/x86/mm/pat/memtype.c b/arch/x86/mm/pat/memtype.c index 36b603d0cdde..46f1d1966f96 100644 --- a/arch/x86/mm/pat/memtype.c +++ b/arch/x86/mm/pat/memtype.c @@ -1194,7 +1194,7 @@ static int memtype_seq_open(struct inode *inode, stru= ct file *file) =20 static const struct file_operations memtype_fops =3D { .open =3D memtype_seq_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D seq_release, }; diff --git a/arch/x86/mm/pat/set_memory.c b/arch/x86/mm/pat/set_memory.c index 80c9037ffadf..ee1888fbd218 100644 --- a/arch/x86/mm/pat/set_memory.c +++ b/arch/x86/mm/pat/set_memory.c @@ -186,7 +186,7 @@ static int cpastats_open(struct inode *inode, struct fi= le *file) =20 static const struct file_operations cpastats_fops =3D { .open =3D cpastats_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D single_release, }; diff --git a/arch/x86/mm/pkeys.c b/arch/x86/mm/pkeys.c index 7418c367e328..7f084e4f6bd2 100644 --- a/arch/x86/mm/pkeys.c +++ b/arch/x86/mm/pkeys.c @@ -127,25 +127,24 @@ u32 init_pkru_value =3D PKRU_AD_MASK( 1) | PKRU_AD_MA= SK( 2) | PKRU_AD_MASK(13) | PKRU_AD_MASK(14) | PKRU_AD_MASK(15); =20 -static ssize_t init_pkru_read_file(struct file *file, char __user *user_bu= f, - size_t count, loff_t *ppos) +static ssize_t init_pkru_read_file(struct kiocb *iocb, struct iov_iter *to) { char buf[32]; unsigned int len; =20 len =3D sprintf(buf, "0x%x\n", init_pkru_value); - return simple_read_from_buffer(user_buf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 -static ssize_t init_pkru_write_file(struct file *file, - const char __user *user_buf, size_t count, loff_t *ppos) +static ssize_t init_pkru_write_file(struct kiocb *iocb, struct iov_iter *f= rom) { + size_t count =3D iov_iter_count(from); char buf[32]; ssize_t len; u32 new_init_pkru; =20 len =3D min(count, sizeof(buf) - 1); - if (copy_from_user(buf, user_buf, len)) + if (!copy_from_iter_full(buf, len, from)) return -EFAULT; =20 /* Make the buffer a valid string that we can not overrun */ @@ -166,8 +165,8 @@ static ssize_t init_pkru_write_file(struct file *file, } =20 static const struct file_operations fops_init_pkru =3D { - .read =3D init_pkru_read_file, - .write =3D init_pkru_write_file, + .read_iter =3D init_pkru_read_file, + .write_iter =3D init_pkru_write_file, .llseek =3D default_llseek, }; =20 diff --git a/arch/x86/mm/tlb.c b/arch/x86/mm/tlb.c index 44ac64f3a047..97edf3026036 100644 --- a/arch/x86/mm/tlb.c +++ b/arch/x86/mm/tlb.c @@ -1303,25 +1303,24 @@ bool nmi_uaccess_okay(void) return true; } =20 -static ssize_t tlbflush_read_file(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t tlbflush_read_file(struct kiocb *iocb, struct iov_iter *to) { char buf[32]; unsigned int len; =20 len =3D sprintf(buf, "%ld\n", tlb_single_page_flush_ceiling); - return simple_read_from_buffer(user_buf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 -static ssize_t tlbflush_write_file(struct file *file, - const char __user *user_buf, size_t count, loff_t *ppos) +static ssize_t tlbflush_write_file(struct kiocb *iocb, struct iov_iter *fr= om) { + size_t count =3D iov_iter_count(from); char buf[32]; ssize_t len; int ceiling; =20 len =3D min(count, sizeof(buf) - 1); - if (copy_from_user(buf, user_buf, len)) + if (!copy_from_iter_full(buf, len, from)) return -EFAULT; =20 buf[len] =3D '\0'; @@ -1336,8 +1335,8 @@ static ssize_t tlbflush_write_file(struct file *file, } =20 static const struct file_operations fops_tlbflush =3D { - .read =3D tlbflush_read_file, - .write =3D tlbflush_write_file, + .read_iter =3D tlbflush_read_file, + .write_iter =3D tlbflush_write_file, .llseek =3D default_llseek, }; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f41.google.com (mail-io1-f41.google.com [209.85.166.41]) (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 51574165FA6 for ; Thu, 11 Apr 2024 15:40:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850056; cv=none; b=sEpTBdNY1XbHvkhHkwhYW/Q7pxAS1mlBKIvnBZpJyW4mJNnJ0pVxTm3nMSnjA1Jpb14BLafiwBFT+RF/SyIc2O+Vx55zFBrou7AOvX8mFFWiMSsHzrYQFQ5k2GmCLjzHWxiKmzrwln6VT8QvwgvmOhAy1oK7AIgnl3CYAB4yDvY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850056; c=relaxed/simple; bh=xijPwjWmymtw1tBt+Sizqj7Uo+0bAjoiGy+bdtcRnB4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=TKEUz04Ch7dgOXE3NLK4lh1r3cIn+JBaQZyce7X2MBTDa9bjA7pRh7s/2JuOnx8QFkofPwtufeztSptHNZ0M2hR6nShMlr9OTh6xPeZtVMWDcoD7duRJhsqBSdpwaMnol8u/pZ8kBoAfAUgPylLa6Ds2iztAbK/gxxAzKTeCKuY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=EjqQspbx; arc=none smtp.client-ip=209.85.166.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="EjqQspbx" Received: by mail-io1-f41.google.com with SMTP id ca18e2360f4ac-7d6112ba6baso58218839f.1 for ; Thu, 11 Apr 2024 08:40:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850054; x=1713454854; 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=BTDbZ/sPhGUL0gp8p6TK4lEEPdBeX2CDKpqOn++pqBo=; b=EjqQspbxwS42ThAvrpXFJM0rsN2U+rj7A+ETa8dZuXWrEydFwK5fiEehTqDg2VQEF7 3OCKP03+RkeTfWAJWOO1qyLKKBVfk3IgpTbME+7gv1pa9/q/wDzzQxf1jTvF0JlNfmlN IfziCMtJTgaEYgxaDSTbQjwBzROgjjJco9vQRHe6TUbbABx+K25UKd+4mQxhKaZdXkgU Z21MIGcAL4SrNVdarC00XRagtwX/OY/u/ovWv+tWM5TkK4WUmCYziS10C2pOs5NEyceU usmtrwz+Ir3YErLykUQlHJj6uWpyB1mt4MODPjwqogAmTx2H/I0zMaTzFnn5Sur+gkAe q4Ag== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850054; x=1713454854; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=BTDbZ/sPhGUL0gp8p6TK4lEEPdBeX2CDKpqOn++pqBo=; b=vUC8+JFgeHSXSmp93szjSfLuCwtfSdTCl5nDpHcw/EeCwliaGM0uEwzS76TLHZBaex cbCAh9o9wseYN4PuJ4jhknQlnWv1kKomfqN9Uqg0Mg5aDmpqXTs0rbC7UWwlqoJaPQuK J9ML8nwJXhToI0pbOlPnHUyOj+cjhgwIynkUq0MZzf+W0Uc3G5IZGOcJBNEbmUlnaY14 2TnWADcK4l5AgBQLl9vIhFeq7/7g74cTBO0zZrw2bPc/NJey12YdSDo+PwsQTC6pUKaF R245/A47pho4ioC0dkTiTIaVIjpvFqDzHXauagkJz+98JAyK7qtw815dEXjriduOYR0i WCpQ== X-Gm-Message-State: AOJu0Yxz2+ufpsgsL3V8SN1fUzf13+0lsqFKYpwZJFbUIHT5q0Z88ZSz /vjCmWRUmagJBOGQXrGpjJ0jmTWMXAzMBA9nurOGMo1NLUdCF01AhqkX2qCu6ZsATu85t0l6zCi N X-Google-Smtp-Source: AGHT+IHx0vzBojxjEkNzN1xSh6k/Zd36JJgrX5mOouhwIzrW4FgX4xfMB94LJa3JXVYQRel78JooHg== X-Received: by 2002:a6b:cd08:0:b0:7d5:fe3e:90ff with SMTP id d8-20020a6bcd08000000b007d5fe3e90ffmr211331iog.0.1712850053760; Thu, 11 Apr 2024 08:40:53 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.40.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:40:52 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 333/437] arch/arm: convert to read/write iterators Date: Thu, 11 Apr 2024 09:17:53 -0600 Message-ID: <20240411153126.16201-334-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- arch/arm/common/bL_switcher_dummy_if.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/arch/arm/common/bL_switcher_dummy_if.c b/arch/arm/common/bL_sw= itcher_dummy_if.c index cabc0659b329..f9794c4a6a40 100644 --- a/arch/arm/common/bL_switcher_dummy_if.c +++ b/arch/arm/common/bL_switcher_dummy_if.c @@ -15,9 +15,9 @@ #include #include =20 -static ssize_t bL_switcher_write(struct file *file, const char __user *buf, - size_t len, loff_t *pos) +static ssize_t bL_switcher_write(struct kiocb *iocb, struct iov_iter *from) { + size_t len =3D iov_iter_count(from); unsigned char val[3]; unsigned int cpu, cluster; int ret; @@ -27,7 +27,7 @@ static ssize_t bL_switcher_write(struct file *file, const= char __user *buf, if (len < 3) return -EINVAL; =20 - if (copy_from_user(val, buf, 3)) + if (!copy_from_iter_full(val, 3, fro)) return -EFAULT; =20 /* format: , */ @@ -44,7 +44,7 @@ static ssize_t bL_switcher_write(struct file *file, const= char __user *buf, } =20 static const struct file_operations bL_switcher_fops =3D { - .write =3D bL_switcher_write, + .write_iter =3D bL_switcher_write, .owner =3D THIS_MODULE, }; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-il1-f178.google.com (mail-il1-f178.google.com [209.85.166.178]) (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 3FA27165FB7 for ; Thu, 11 Apr 2024 15:40:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.178 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850057; cv=none; b=cAycBxrCg62qtjjJWihzPcZSliFzHMkASSN+CFownz8yGaneoOB9p0VivgcgoQ/dXSxXq8+2zFMVxVdPESzpiT/jZHHu8Zxu5+SxsnilKw173sOkO6JUpEzT1uWdpF75vPxTULRIkDTfbghQpUDkBgjZ3ouwNSXnphJiduUKNSU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850057; c=relaxed/simple; bh=dSZBw99ta5Nr1a13mvK1ZGND4ae/gIyhUdEiU+c7xUo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=YyWPrnWRneFt51TrzIvn8q9M1yaPftCEbajQY3aexxmDNJ6P1exQRJIF7yKjKHhgSIEvsSYy2+jNUgKbx887c0CpSDxCPrPAERNKWshhxa5WaSBvusy8NH6t5XNe48oEWreyjXFeJPErJkYASKWfgEQLRR09zkGjf3Vi0RvKgQc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=adTeoNPW; arc=none smtp.client-ip=209.85.166.178 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="adTeoNPW" Received: by mail-il1-f178.google.com with SMTP id e9e14a558f8ab-36a224d7414so193975ab.1 for ; Thu, 11 Apr 2024 08:40:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850055; x=1713454855; 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=WG6Uk3x+Muh3L7mgjThqbpYc52vRkmDdJEdQ/c/cVsE=; b=adTeoNPWGEm/JTu9YTr5iF5OmOXep0P8UstvXGrVqPH4avK71RniLrV6Ns1Mkleolz Gy4N5Fw5fOzxE4inq9sM6zRRgGmQcfNDJzR2i5PXYMMOrUOWg9EPqPT0/OnIn7n8Ic8X x1w8tBz9RBf1TtPtg9jAMkNeSXNJFUcfpu94KcD+Ky2s/e9IvQEk6Sxxwy+XzrKL6HuS gO5Koh+Kbb3yt3F7SmKaDk2eXZkJUky0zrAL8y5cQxiJg1RS2Lav0vLIAuPv8Tb4hlfG tsIVuxu55SW94/yYOCmhhGPoF57d//cRuwG6/xyzXrA5+3e56a37W5lk2jlEEazk5qHg sPFQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850055; x=1713454855; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=WG6Uk3x+Muh3L7mgjThqbpYc52vRkmDdJEdQ/c/cVsE=; b=SROZiWD6hjPCLdYDbz0vzRKYjxl5kkNY6LqPkPxZbH+/Q7ny+8j4lFacvRVD8pC1gO Tju7NVnS2xn/0uAHGMLQSqvsvTBWivAzlZSyk5NLSTLHTGhRQC9OrlCaWOvBtw5lhQMd sfdeIfhnM9NTMI3L6Qas1b5Y9dXh62kcZOS6qNn+XKR//amlFz66m0fMtTp4f5xghAxM ORoTC0Yku0Eola4FpDGP0GVyL53J1Qxx2tLH56zVQ6GT/1GqmHprkrnVlJH5UUdvc37j lZ8Yrdeu8E00TjgEYpEQQOcgDDwcArj9W8YRq/RlSiJlHQR74qcAJeMWa5dkgdAfKClj dBIQ== X-Gm-Message-State: AOJu0YxI0wfDDDbA9GDKtuK/yE73TfbjfgeOVx4ZWGHEH18DYuCLl5kS 8cri9GIfEOVFtHcjm5f4/Qk19cgZI1bPfgmta++uymgAZjaeehtlswcQrIY+hRX/5S9XSlBTUzx t X-Google-Smtp-Source: AGHT+IFbBuAax4Ybs72CdsdcvVSbbKVaw4G9DFm2gFE3sWkb4Grv1+Jv+bQdiI/QNOMrCbns7miDEQ== X-Received: by 2002:a6b:4e14:0:b0:7d6:631d:7b0 with SMTP id c20-20020a6b4e14000000b007d6631d07b0mr200064iob.1.1712850054481; Thu, 11 Apr 2024 08:40:54 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.40.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:40:54 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 334/437] arch/mips: convert to read/write iterators Date: Thu, 11 Apr 2024 09:17:54 -0600 Message-ID: <20240411153126.16201-335-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- arch/mips/kernel/rtlx.c | 6 ++++-- arch/mips/kernel/vpe.c | 14 +++++++------- arch/mips/mm/sc-debugfs.c | 16 +++++++--------- 3 files changed, 18 insertions(+), 18 deletions(-) diff --git a/arch/mips/kernel/rtlx.c b/arch/mips/kernel/rtlx.c index 18c509c59f33..6e3bf6d4c64b 100644 --- a/arch/mips/kernel/rtlx.c +++ b/arch/mips/kernel/rtlx.c @@ -369,6 +369,7 @@ static ssize_t file_read(struct file *file, char __user= *buffer, size_t count, =20 return rtlx_read(minor, buffer, count); } +FOPS_READ_ITER_HELPER(file_read); =20 static ssize_t file_write(struct file *file, const char __user *buffer, size_t count, loff_t *ppos) @@ -390,13 +391,14 @@ static ssize_t file_write(struct file *file, const ch= ar __user *buffer, =20 return rtlx_write(minor, buffer, count); } +FOPS_WRITE_ITER_HELPER(file_write); =20 const struct file_operations rtlx_fops =3D { .owner =3D THIS_MODULE, .open =3D file_open, .release =3D file_release, - .write =3D file_write, - .read =3D file_read, + .write_iter =3D file_write_iter, + .read_iter =3D file_read_iter, .poll =3D file_poll, .llseek =3D noop_llseek, }; diff --git a/arch/mips/kernel/vpe.c b/arch/mips/kernel/vpe.c index 737d0d4fdcd3..55db91fba7b0 100644 --- a/arch/mips/kernel/vpe.c +++ b/arch/mips/kernel/vpe.c @@ -834,13 +834,13 @@ static int vpe_release(struct inode *inode, struct fi= le *filp) #endif } =20 -static ssize_t vpe_write(struct file *file, const char __user *buffer, - size_t count, loff_t *ppos) +static ssize_t vpe_write(struct kiocb *iocb, struct iov_iter *from) { + size_t count =3D iov_iter_count(from); size_t ret =3D count; struct vpe *v; =20 - if (iminor(file_inode(file)) !=3D VPE_MODULE_MINOR) + if (iminor(file_inode(iocb->ki_filp)) !=3D VPE_MODULE_MINOR) return -ENODEV; =20 v =3D get_vpe(aprp_cpu_index()); @@ -853,19 +853,19 @@ static ssize_t vpe_write(struct file *file, const cha= r __user *buffer, return -ENOMEM; } =20 - count -=3D copy_from_user(v->pbuffer + v->len, buffer, count); - if (!count) + ret !copy_from_iter_full(v->pbuffer + v->len, count, from); + if (!ret) return -EFAULT; =20 v->len +=3D count; - return ret; + return count; } =20 const struct file_operations vpe_fops =3D { .owner =3D THIS_MODULE, .open =3D vpe_open, .release =3D vpe_release, - .write =3D vpe_write, + .write_iter =3D vpe_write, .llseek =3D noop_llseek, }; =20 diff --git a/arch/mips/mm/sc-debugfs.c b/arch/mips/mm/sc-debugfs.c index 80ff3947157d..d85e8b95d9b5 100644 --- a/arch/mips/mm/sc-debugfs.c +++ b/arch/mips/mm/sc-debugfs.c @@ -10,8 +10,7 @@ #include #include =20 -static ssize_t sc_prefetch_read(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t sc_prefetch_read(struct kiocb *iocb, struct iov_iter *to) { bool enabled =3D bc_prefetch_is_enabled(); char buf[3]; @@ -20,17 +19,16 @@ static ssize_t sc_prefetch_read(struct file *file, char= __user *user_buf, buf[1] =3D '\n'; buf[2] =3D 0; =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, 2); + return simple_copy_to_iter(buf, &iocb->ki_pos, 2, to); } =20 -static ssize_t sc_prefetch_write(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t sc_prefetch_write(struct kiocb *iocb, struct iov_iter *from) { + size_t count =3D iov_iter_count(from); bool enabled; int err; =20 - err =3D kstrtobool_from_user(user_buf, count, &enabled); + err =3D kstrtobool_from_iter(from, count, &enabled); if (err) return err; =20 @@ -45,8 +43,8 @@ static ssize_t sc_prefetch_write(struct file *file, static const struct file_operations sc_prefetch_fops =3D { .open =3D simple_open, .llseek =3D default_llseek, - .read =3D sc_prefetch_read, - .write =3D sc_prefetch_write, + .read_iter =3D sc_prefetch_read, + .write_iter =3D sc_prefetch_write, }; =20 static int __init sc_debugfs_init(void) --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f44.google.com (mail-io1-f44.google.com [209.85.166.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 C1B25165FBF for ; Thu, 11 Apr 2024 15:40:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850058; cv=none; b=mw3fk3F1zpDfr2Csmt9iGPpPiA4PH8ZkNtwgndYpb0azYrE09ZCUCeivKsHH1EsY4uHpqVW7jRFTI/t4kjeOEwQczR73LPMRMBcp9XwSFmEhx1zlF0sfPC+v+86gZ0q8jnMvA1DcImEVyJiXl4mFlKLdteFtM/kCciXrCkZnKgw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850058; c=relaxed/simple; bh=SrqEVaNHctKyAKzq1JOVvBEfJELcEnEL7VEjyNkB6v4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=cqGr+5iT8SqtRb11U4LBdXYogxMgeOSKcQPY3yyULezFklF3UginT1+I6IY9Bz/xxaNQsPD3UDONVrVJTWbEo+y1nI7y93tWNzN/saC5JqQhW8YEPUuFLv79g3VGWBJZwsIsz0AMDuM3b5gxrpRy3r63ZjJwuI1ChdqCuXbUL9k= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=RbpCe+2K; arc=none smtp.client-ip=209.85.166.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="RbpCe+2K" Received: by mail-io1-f44.google.com with SMTP id ca18e2360f4ac-7d67d1073easo9896639f.0 for ; Thu, 11 Apr 2024 08:40:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850055; x=1713454855; 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=6RQXmYmV22R30FARm9BeOMN9CZR9Ay/0wkAfs/a4BtQ=; b=RbpCe+2KwmTayuISLOqjjYq7wfP68WsecLVGJcZHGHG3c52DLMNOktHIC5muegzCdq HyCxDt7VXEIYqruE4Fo5vKYBLShdQpbwYR3q+2WExM+qZZQw70hACFoXeziaDAKu/Arj EDlt4103onTc2W3y2xWKT0rD0f8bJ+7spwWBzs1vVXXjZqYI4IScyb/5/r576SJVS4J7 CgttN368aYBUyIatBUpN09fPY7vmW+ac71u99evXsMfeFABuZSlsWtog5v5PuDj290+p bZcpQxNJAw2kcF3o7vVzfElyV7s8erUmD9mZAs/Xx3WnvLeXI+w107zGxMcwpEnSRc4M zOzA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850055; x=1713454855; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=6RQXmYmV22R30FARm9BeOMN9CZR9Ay/0wkAfs/a4BtQ=; b=h66Fqz3RO3A2WUrya1g6DThLilnf/zxq7ZQibeIXKNUXIUEHZ9mfilamUONcWXWdgv yXZs6IthT6RxwaqrK6HtF9TORAKiA7o4HNdrk/f3M0gt6Y72PSbuoucdReBvozMu5fxD gjWyw5eM6uEgLTC2naaxpnGSfYNI4BYITr9tAVftLaDbzO+9LWB7aq5VjBJ77MKyRRcb v8AC9gmM//0Zh9ivhtbpHRClzWct3hvATzO5KJihJ5Q+1PFdKPCx8cCQXSYdWrZ4DC/J wLb08OEv+ykYMR5IWyscv9Q6BYe2LNUeRbhW8m0cVbppatcWxo4cpdbYyor8wQkx6e8W gsdg== X-Gm-Message-State: AOJu0Yx1NulN5wwiioz0kegFXzFOd1woDWnHONd/I8HFbW90co9BNM7o dnWrYRLf+dSieGcJsdpbuTrAslNlaZ1PDSFY5qH8ZkR+s2a/vdKuXPxIzKeCz5emq6CVXiVr2Gt Y X-Google-Smtp-Source: AGHT+IFgDgoSL+8Uyb7GE068C6hEcuCg2RSpwyvplgzi0ufjZ4zNBybC0lz+Hmaxot6tQGAzyGy9uQ== X-Received: by 2002:a6b:7b05:0:b0:7d6:60dc:bc8e with SMTP id l5-20020a6b7b05000000b007d660dcbc8emr205435iop.1.1712850055476; Thu, 11 Apr 2024 08:40:55 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.40.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:40:54 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 335/437] parisc: eisa_eeprom: convert to read/write iterators Date: Thu, 11 Apr 2024 09:17:55 -0600 Message-ID: <20240411153126.16201-336-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/parisc/eisa_eeprom.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/parisc/eisa_eeprom.c b/drivers/parisc/eisa_eeprom.c index 443b15422fc1..87066c0cfc1d 100644 --- a/drivers/parisc/eisa_eeprom.c +++ b/drivers/parisc/eisa_eeprom.c @@ -22,23 +22,23 @@ static loff_t eisa_eeprom_llseek(struct file *file, lof= f_t offset, int origin) return fixed_size_llseek(file, offset, origin, HPEE_MAX_LENGTH); } =20 -static ssize_t eisa_eeprom_read(struct file * file, - char __user *buf, size_t count, loff_t *ppos ) +static ssize_t eisa_eeprom_read(struct kiocb *iocb, struct iov_iter *to) { + size_t count =3D iov_iter_count(to); unsigned char *tmp; ssize_t ret; int i; =09 - if (*ppos < 0 || *ppos >=3D HPEE_MAX_LENGTH) + if (iocb->ki_pos < 0 || iocb->ki_pos >=3D HPEE_MAX_LENGTH) return 0; =09 - count =3D *ppos + count < HPEE_MAX_LENGTH ? count : HPEE_MAX_LENGTH - *pp= os; + count =3D iocb->ki_pos + count < HPEE_MAX_LENGTH ? count : HPEE_MAX_LENGT= H - iocb->ki_pos; tmp =3D kmalloc(count, GFP_KERNEL); if (tmp) { for (i =3D 0; i < count; i++) tmp[i] =3D readb(eisa_eeprom_addr+(*ppos)++); =20 - if (copy_to_user (buf, tmp, count)) + if (!copy_to_iter_full(tmp, count, to)) ret =3D -EFAULT; else ret =3D count; @@ -68,7 +68,7 @@ static int eisa_eeprom_release(struct inode *inode, struc= t file *file) static const struct file_operations eisa_eeprom_fops =3D { .owner =3D THIS_MODULE, .llseek =3D eisa_eeprom_llseek, - .read =3D eisa_eeprom_read, + .read_iter =3D eisa_eeprom_read, .open =3D eisa_eeprom_open, .release =3D eisa_eeprom_release, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f53.google.com (mail-io1-f53.google.com [209.85.166.53]) (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 82E214D9F6 for ; Thu, 11 Apr 2024 15:40:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850059; cv=none; b=X0RJcLf6S9yuS7M/YgKjK6qA7r/W5w1uLHUNgMziz5/nE00vmwIPg1e5DFJdIRIPsQoSwzFsARCXbTAqZJGYaBbVbr6hunX7KYVwxAALGnZVgkJyxTqRGZMmblofVGvlktqkzfYaod8t603hznJocL2o5ut1sXltKpR9zTIeiYA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850059; c=relaxed/simple; bh=NuywpkEJ5uhb61Za5WDF+0PlW+3AqHNQYk0iWLinWvU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=g5i6/cHW67Tk3sRjr58mSXvj9tT6QFSx1ILpvR+e0RVndH0nUkri5xGCjXz9eCUQTBRbBUUjvCIxc5LGfb9uWOdyJZ9Kc7vG7avy61bZ7BUmmIfpWf7vdbrCidqHdlhnHC0GlRVRlAHKnqpGf0TvX55vTw1JjtoUanm+B3qa5dk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=fwKAUDbO; arc=none smtp.client-ip=209.85.166.53 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="fwKAUDbO" Received: by mail-io1-f53.google.com with SMTP id ca18e2360f4ac-7c8e4c0412dso69662339f.1 for ; Thu, 11 Apr 2024 08:40:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850057; x=1713454857; 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=JIZgOldQW0QFPrl6wrSTTi1GrjsH4AXNzCd6PgRTJVI=; b=fwKAUDbOMmxuCVZsjswh8Ncd6uZYU9fX66Op1/Y7d35ehjibkPIBpmR3lJ5hBiEbiA CfmIarAB2rASLdiJGpMhnwFmHK6F6uLDec5a18UutQKw3809aEqMhpNPu5Z/FP5kLepc olQwLoPv3nWVRPzJSuKhTMj4KVT15WocnT3JWgpBc39d5Nq/2ognzYss5IcCkLNy+4sZ lMQAv+JX4twxF9D8LQIvdwt4PsOktTrV+ctjQuYehql1Hnj6ZAXTdBQvwSaW15V/m6wB NGrXs0Qj6mzECKAXtwYhIyGRoZhuCE1mf7SE50K+RUIlq32Ds3fGeR54RbZhMHCHTy3a kXKg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850057; x=1713454857; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=JIZgOldQW0QFPrl6wrSTTi1GrjsH4AXNzCd6PgRTJVI=; b=XXPqIoKeYMXH1aUc45GDciuACeEBYZn3nzCWEXnHGLnGjp4Fh09UwvJGGw+AFDJ+3s 3IzRAzM15soaz9wGy0rsFcXKq2iUlz75/hIekcS1Qgd3nNwzpgE3KHofmotmGMYtqzqs tyV0atMltn9SUSzSLxonlupJv0ZEKkd1G7o+ikyjOWHcTCN8kP1gCm148iZRuf3QWMiq gQeayfIeMsd6g6MDqSQO+t765iOtJR68GI0QkKYRbnJNtBAmylZC2cFFjUgdVdlc2qZk JpjuvWCQrg/AgnDvDafeid1QFgWNitBUj+OrdVVdIGvuZ5ptYELFU4Zx9l6hpIQDpD3e 1odw== X-Gm-Message-State: AOJu0YzNasp8MsgaBe3EQRinxiQWwCESEYLE1IUpvU7BcPMo7Onmx/Pm DcEx5swcNi0aA55lIJNhFD7w6LkSmaJIH35cBNB+u0vbiRDG3jC5ptE7P7p2BT2dL3tEUbWEj2t y X-Google-Smtp-Source: AGHT+IEhwzwKxQDtxPKhqB1oUHaRTC6e4LPrpANGHEfXe5AKtPUIHOQYcHW2x1KMq/UFyK6UoYzj4A== X-Received: by 2002:a6b:c34e:0:b0:7d6:7b7c:8257 with SMTP id t75-20020a6bc34e000000b007d67b7c8257mr231908iof.0.1712850057399; Thu, 11 Apr 2024 08:40:57 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.40.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:40:55 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 336/437] arch/parisc: convert to read/write iterators Date: Thu, 11 Apr 2024 09:17:56 -0600 Message-ID: <20240411153126.16201-337-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- arch/parisc/kernel/perf.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/arch/parisc/kernel/perf.c b/arch/parisc/kernel/perf.c index b0f0816879df..a564c56ebb6f 100644 --- a/arch/parisc/kernel/perf.c +++ b/arch/parisc/kernel/perf.c @@ -181,7 +181,7 @@ static const uint64_t *bitmask_array; /* array of bit= masks to use */ static int perf_config(uint32_t *image_ptr); static int perf_release(struct inode *inode, struct file *file); static int perf_open(struct inode *inode, struct file *file); -static ssize_t perf_read(struct file *file, char __user *buf, size_t cnt, = loff_t *ppos); +static ssize_t perf_read(struct kiocb *iocb, struct iov_iter *to); static ssize_t perf_write(struct file *file, const char __user *buf, size_t count, loff_t *ppos); static long perf_ioctl(struct file *file, unsigned int cmd, unsigned long = arg); @@ -273,7 +273,7 @@ static int perf_release(struct inode *inode, struct fil= e *file) /* * Read does nothing for this driver */ -static ssize_t perf_read(struct file *file, char __user *buf, size_t cnt, = loff_t *ppos) +static ssize_t perf_read(struct kiocb *iocb, struct iov_iter *to) { return 0; } @@ -285,9 +285,9 @@ static ssize_t perf_read(struct file *file, char __user= *buf, size_t cnt, loff_t * called on the processor that the download should happen * on. */ -static ssize_t perf_write(struct file *file, const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t perf_write(struct kiocb *iocb, struct iov_iter *from) { + size_t count =3D iov_iter_count(from); size_t image_size __maybe_unused; uint32_t image_type; uint32_t interface_type; @@ -306,7 +306,7 @@ static ssize_t perf_write(struct file *file, const char= __user *buf, if (count !=3D sizeof(uint32_t)) return -EIO; =20 - if (copy_from_user(&image_type, buf, sizeof(uint32_t))) + if (!copy_from_iter_full(&image_type, sizeof(uint32_t), from)) return -EFAULT; =20 /* Get the interface type and test type */ @@ -467,8 +467,8 @@ static long perf_ioctl(struct file *file, unsigned int = cmd, unsigned long arg) =20 static const struct file_operations perf_fops =3D { .llseek =3D no_llseek, - .read =3D perf_read, - .write =3D perf_write, + .read_iter =3D perf_read, + .write_iter =3D perf_write, .unlocked_ioctl =3D perf_ioctl, .compat_ioctl =3D perf_ioctl, .open =3D perf_open, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-il1-f181.google.com (mail-il1-f181.google.com [209.85.166.181]) (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 5F1FF1E7921 for ; Thu, 11 Apr 2024 15:41:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.181 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850062; cv=none; b=AqFb/KbRVMh0M3O0jlHIOdiBkYn2fWSeZ0FY2DddRGHMU73nPF696D/4hXRFPIncvtbc2fmkzzFrynqFjAeb3BMFbEapgLmIR7TPICZkJtnhshUjndWXlfCmj+3DguQWpC15hOMPiEW/4MycTnd5xNge4WjLDOLOis36mVxnFcI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850062; c=relaxed/simple; bh=jth+F4uG70vpe2kxvXga6lwNcJInrS0k3t+O9eF+9cA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Ds08Njj3vFM5TiBM0W89NXcW3NXUPN5Bgvf4uXYCUT95rH7Cm8cq3YHEajG7N2eik9gcbl/7tlgqOAQIc3a+c5sneraAp1lpzvb8dpfDCZLM6kjPPomYr8+GtXKMoRuz6Q44ZnOtY+201fB/4BJFSfz+rZLVgeU00DTircNIlzw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=FJFRpNC4; arc=none smtp.client-ip=209.85.166.181 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="FJFRpNC4" Received: by mail-il1-f181.google.com with SMTP id e9e14a558f8ab-36a224d7414so194055ab.1 for ; Thu, 11 Apr 2024 08:41:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850059; x=1713454859; 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=ZkBOZHCj0mE4s6Wdz7tnu5mnp36Z+tn/wx/FdDRdxgE=; b=FJFRpNC49EeXqMuP3b9SAnsRDHlkeeHIsIhi7Htq5UXTqD4Venf2vQ4uAASHXDBBVp khBOYbVrQVNLA8lH3nNTjU9EX0bdb9MUXdP6lv/goIRMfrWNDFxxsp9QJ7pKBLrl2eNH KspjXHsqYG9FiKg9qw/wN1lNTRsUtAOCLzYNEraTm0Bmow4br/OBkINbszBc4BZ1ShdA F93DXWt1juCwsHzq8UXgb2/1FzwQbQfIdwdsn0vUsk90dzhVNVEkQIt8jHWkjyigsGdp x8+xSI38c71NCs9U9I9GdCa3hJ58EwsKn6mirOKSrM9FEEh86A5DwcmFT1/+wVNfJXN9 5KBA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850059; x=1713454859; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ZkBOZHCj0mE4s6Wdz7tnu5mnp36Z+tn/wx/FdDRdxgE=; b=cn6w6q8gzKa6tZlXf1mxUVPUqzJHEPQ6mPLlrTYOGJ4yB3pN9cgOm9gDeUnXWi/WXs mpdLXfYFyFl+asDsKSkbVZ+DyGJt8kJHwIG6as3G7/GfmPQe6pjV0liSRPPgRxa219p4 T1PXE2iC3uxL/flD7xr9UOjc/UEZ1DZWO+t5riVJY6rXnW4e7bRyKe0898M2Dn33bRUt 8yVYzhDySgvUH9jwajzkf5RslZ5y4MPlNMiXN4v/Qmob335eIyHD0hytLZadBc4gtvl1 OzSz6eoUHnX8AQXjTqLMj0NmiHcvvNTBcICgoyCd0LvgSEydwg+wg5ulAh+QAVbWG45V PaMA== X-Gm-Message-State: AOJu0Yz2f8rmmHoonSaaXCKaR4DeVsQz6W22THc810qHjvLadlkKD3mX u6qZtC0XmLVCnpgJ4rvF23onWaxNWkdAAxie3yUxwhTXjwmL/1uEmwXOWX208q47GkcVMqPuGhj R X-Google-Smtp-Source: AGHT+IHANMRC/OqyyT5nzJmEm8dFpxo/Sq1GVyItdO/jf9Y+VJ4GQ3gs22GIiu0fBZr8bFokQxb6bg== X-Received: by 2002:a05:6602:4ed7:b0:7d5:ddc8:504d with SMTP id gk23-20020a0566024ed700b007d5ddc8504dmr199420iob.0.1712850059176; Thu, 11 Apr 2024 08:40:59 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.40.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:40:57 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 337/437] powerpc/kernel: convert to read/write iterators Date: Thu, 11 Apr 2024 09:17:57 -0600 Message-ID: <20240411153126.16201-338-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- arch/powerpc/kernel/eeh.c | 58 ++++++++++++++++----------------------- 1 file changed, 24 insertions(+), 34 deletions(-) diff --git a/arch/powerpc/kernel/eeh.c b/arch/powerpc/kernel/eeh.c index ab316e155ea9..35ea1c80e0de 100644 --- a/arch/powerpc/kernel/eeh.c +++ b/arch/powerpc/kernel/eeh.c @@ -1588,9 +1588,8 @@ static int proc_eeh_show(struct seq_file *m, void *v) #ifdef CONFIG_DEBUG_FS =20 =20 -static struct pci_dev *eeh_debug_lookup_pdev(struct file *filp, - const char __user *user_buf, - size_t count, loff_t *ppos) +static struct pci_dev *eeh_debug_lookup_pdev(struct kiocb *iocb, + struct iov_iter *from) { uint32_t domain, bus, dev, fn; struct pci_dev *pdev; @@ -1598,7 +1597,7 @@ static struct pci_dev *eeh_debug_lookup_pdev(struct f= ile *filp, int ret; =20 memset(buf, 0, sizeof(buf)); - ret =3D simple_write_to_buffer(buf, sizeof(buf)-1, ppos, user_buf, count); + ret =3D simple_copy_from_iter(buf, &iocb->ki_pos, sizeof(buf)-1, from); if (!ret) return ERR_PTR(-EFAULT); =20 @@ -1637,17 +1636,16 @@ static int eeh_enable_dbgfs_get(void *data, u64 *va= l) DEFINE_DEBUGFS_ATTRIBUTE(eeh_enable_dbgfs_ops, eeh_enable_dbgfs_get, eeh_enable_dbgfs_set, "0x%llx\n"); =20 -static ssize_t eeh_force_recover_write(struct file *filp, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t eeh_force_recover_write(struct kiocb *iocb, struct iov_iter= *from) { + size_t count =3D iov_iter_count(from); struct pci_controller *hose; uint32_t phbid, pe_no; struct eeh_pe *pe; char buf[20]; int ret; =20 - ret =3D simple_write_to_buffer(buf, sizeof(buf), ppos, user_buf, count); + ret =3D simple_copy_from_iter(buf, &iocb->ki_pos, sizeof(buf), from); if (!ret) return -EFAULT; =20 @@ -1690,28 +1688,23 @@ static ssize_t eeh_force_recover_write(struct file = *filp, static const struct file_operations eeh_force_recover_fops =3D { .open =3D simple_open, .llseek =3D no_llseek, - .write =3D eeh_force_recover_write, + .write_iter =3D eeh_force_recover_write, }; =20 -static ssize_t eeh_debugfs_dev_usage(struct file *filp, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t eeh_debugfs_dev_usage(struct kiocb *iocb, struct iov_iter *= to) { static const char usage[] =3D "input format: ::.\n"; =20 - return simple_read_from_buffer(user_buf, count, ppos, - usage, sizeof(usage) - 1); + return simple_copy_to_iter(usage, &iocb->ki_pos, sizeof(usage) - 1, to); } =20 -static ssize_t eeh_dev_check_write(struct file *filp, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t eeh_dev_check_write(struct kiocb *iocb, struct iov_iter *fr= om) { struct pci_dev *pdev; struct eeh_dev *edev; int ret; =20 - pdev =3D eeh_debug_lookup_pdev(filp, user_buf, count, ppos); + pdev =3D eeh_debug_lookup_pdev(iocb, from); if (IS_ERR(pdev)) return PTR_ERR(pdev); =20 @@ -1728,14 +1721,14 @@ static ssize_t eeh_dev_check_write(struct file *fil= p, =20 pci_dev_put(pdev); =20 - return count; + return iov_iter_count(from); } =20 static const struct file_operations eeh_dev_check_fops =3D { .open =3D simple_open, .llseek =3D no_llseek, - .write =3D eeh_dev_check_write, - .read =3D eeh_debugfs_dev_usage, + .write_iter =3D eeh_dev_check_write, + .read_iter =3D eeh_debugfs_dev_usage, }; =20 static int eeh_debugfs_break_device(struct pci_dev *pdev) @@ -1831,14 +1824,12 @@ static int eeh_debugfs_break_device(struct pci_dev = *pdev) return 0; } =20 -static ssize_t eeh_dev_break_write(struct file *filp, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t eeh_dev_break_write(struct kiocb *iocb, struct iov_iter *fr= om) { struct pci_dev *pdev; int ret; =20 - pdev =3D eeh_debug_lookup_pdev(filp, user_buf, count, ppos); + pdev =3D eeh_debug_lookup_pdev(iocb, from); if (IS_ERR(pdev)) return PTR_ERR(pdev); =20 @@ -1848,25 +1839,24 @@ static ssize_t eeh_dev_break_write(struct file *fil= p, if (ret < 0) return ret; =20 - return count; + return iov_iter_count(from); } =20 static const struct file_operations eeh_dev_break_fops =3D { .open =3D simple_open, .llseek =3D no_llseek, - .write =3D eeh_dev_break_write, - .read =3D eeh_debugfs_dev_usage, + .write_iter =3D eeh_dev_break_write, + .read_iter =3D eeh_debugfs_dev_usage, }; =20 -static ssize_t eeh_dev_can_recover(struct file *filp, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t eeh_dev_can_recover(struct kiocb *iocb, struct iov_iter *fr= om) { + size_t count =3D iov_iter_count(from); struct pci_driver *drv; struct pci_dev *pdev; size_t ret; =20 - pdev =3D eeh_debug_lookup_pdev(filp, user_buf, count, ppos); + pdev =3D eeh_debug_lookup_pdev(iocb, from); if (IS_ERR(pdev)) return PTR_ERR(pdev); =20 @@ -1901,8 +1891,8 @@ static ssize_t eeh_dev_can_recover(struct file *filp, static const struct file_operations eeh_dev_can_recover_fops =3D { .open =3D simple_open, .llseek =3D no_llseek, - .write =3D eeh_dev_can_recover, - .read =3D eeh_debugfs_dev_usage, + .write_iter =3D eeh_dev_can_recover, + .read_iter =3D eeh_debugfs_dev_usage, }; =20 #endif --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-il1-f179.google.com (mail-il1-f179.google.com [209.85.166.179]) (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 4EE4C1E7951 for ; Thu, 11 Apr 2024 15:41:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.179 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850064; cv=none; b=KLTQ2TB6LxvPbI2xvhXsfp6t8R1t9PGGrUWinkbMLTmDmtDrieHB9pHdkTwEL7EdoIOgeSAz5jyhEc/xBQ3ShRgrPgqEG0OWGijTzcOk5hUKPs8RMGHR/mNZrrRTTE9Q+iUtLUQf0GnuS0XzdiBdN/0bP0n433WszO5a4w9ajiw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850064; c=relaxed/simple; bh=9jW6lrprrj1HA+2f2gC3Sd1+mMD7DmMEMcCnFIEuglI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=KJtzr9Qm/bJgouV+v/YZf4XAL6gwPwzAQ9RYVZLjTc+3MPgf8NFONZT6wm1QMz08PnANeFpq6qjQm9C/JlHl4jOIfRRdJVj+J4UgXeIR6D66TP4hxheB7QxepOzldnkeGxoj9XTLEzOttEtD4TOyf/ps0yfMmdrO359gVMbML0Q= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=XBmfMfVM; arc=none smtp.client-ip=209.85.166.179 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="XBmfMfVM" Received: by mail-il1-f179.google.com with SMTP id e9e14a558f8ab-36a224d7414so194165ab.1 for ; Thu, 11 Apr 2024 08:41:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850062; x=1713454862; 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=4pKslmHBks9Vf7/ET2nkKT6N6HYCbV1INzf0XN948lw=; b=XBmfMfVM8s5WFz7Hb+6vwv2A319y+m6TjYixylruHP+yxL4bhWZFjougU5txFc+Z+8 4Wx6cv14j1zokL1gprbN/+GQNBU9+FRyDadC6xOMSwqCQ0HUNyzVCQYxxG3ERKjuqS1U jsxDM3DbClu5YCPzZhBEeqmFXu2z325+nnkcdmC18qbw8rylw3q5AAiG+bDLFunALDLK oRsu9eRBd3r3XWD4KMfOw0HanzBSV7SJDZj3VwQ4fvwzHYbDY6t4mnD8VRiWoi9+YwrJ CCmYtkIjdM1RxYWDJmsUYSwxEYhBl1kLrsJH68GjrV/Tq4WFZSusVkpgG51ter2HVM5Z 31sQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850062; x=1713454862; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=4pKslmHBks9Vf7/ET2nkKT6N6HYCbV1INzf0XN948lw=; b=GQF+29Y1uN7Hg+2Kt4TbH1DifRwMj76JZ2Bz6TrQaPIYeyyFindLZ0D9oBFkRyTxct yn1R+0GI0ILgP6DVvc1EiY0R0j/QwWnLtuhlG/L5QYRmyOsBrDbSlztiY2jZ6RyMvoQg J5IaiQgjFe5e+6yB96GksnDADJ1h2XI1IeehJyxP+h83nuahZx8DbdZB5V2JvNH/iH7q nL50HN6aTGWOyGXmNc8jaDb0k7Aa9kYDjgvFM365rulmfezSDhMW5uH5rW/cqvPCEchw tHORJzn07zNcmzeOHOONrcBcVAnJDLXdjbv7amTpnFONcTPxWUGDPulIXl/vPjzXyDGQ VNpw== X-Gm-Message-State: AOJu0Ywi1fmDKdrnShH8jfMJfxAuOrLpcwNBMy3fi3aI/t2KYZbZxhoM mgBGu7ibH3pJXrsGTRn6VsdiU8obg2bGHiNJt/nckArTY88OdEne91XISg9hUg+ZqOSplE3jqz2 t X-Google-Smtp-Source: AGHT+IF/XQZXykrePYOBwiuvLl7lFDDE2Q8xwGP44PSvcqreH8eH80rXHjcy817ze45s2ph83hkbug== X-Received: by 2002:a6b:6605:0:b0:7d4:1dae:da1a with SMTP id a5-20020a6b6605000000b007d41daeda1amr160541ioc.2.1712850061714; Thu, 11 Apr 2024 08:41:01 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.40.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:40:59 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 338/437] powerpc/kvm: convert to read/write iterators Date: Thu, 11 Apr 2024 09:17:58 -0600 Message-ID: <20240411153126.16201-339-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- arch/powerpc/kvm/book3s_64_mmu_hv.c | 25 ++++++++++++------------- arch/powerpc/kvm/book3s_64_mmu_radix.c | 19 ++++++++----------- arch/powerpc/kvm/book3s_hv.c | 26 +++++++++++--------------- arch/powerpc/kvm/timing.c | 14 +++++++------- 4 files changed, 38 insertions(+), 46 deletions(-) diff --git a/arch/powerpc/kvm/book3s_64_mmu_hv.c b/arch/powerpc/kvm/book3s_= 64_mmu_hv.c index 2b1f0cdd8c18..254a267cac6f 100644 --- a/arch/powerpc/kvm/book3s_64_mmu_hv.c +++ b/arch/powerpc/kvm/book3s_64_mmu_hv.c @@ -1820,6 +1820,7 @@ static ssize_t kvm_htab_read(struct file *file, char = __user *buf, =20 return nb; } +FOPS_READ_ITER_HELPER(kvm_htab_read); =20 static ssize_t kvm_htab_write(struct file *file, const char __user *buf, size_t count, loff_t *ppos) @@ -1943,6 +1944,7 @@ static ssize_t kvm_htab_write(struct file *file, cons= t char __user *buf, return err; return nb; } +FOPS_WRITE_ITER_HELPER(kvm_htab_write); =20 static int kvm_htab_release(struct inode *inode, struct file *filp) { @@ -1957,8 +1959,8 @@ static int kvm_htab_release(struct inode *inode, stru= ct file *filp) } =20 static const struct file_operations kvm_htab_fops =3D { - .read =3D kvm_htab_read, - .write =3D kvm_htab_write, + .read_iter =3D kvm_htab_read_iter, + .write_iter =3D kvm_htab_write_iter, .llseek =3D default_llseek, .release =3D kvm_htab_release, }; @@ -2035,10 +2037,10 @@ static int debugfs_htab_release(struct inode *inode= , struct file *file) return 0; } =20 -static ssize_t debugfs_htab_read(struct file *file, char __user *buf, - size_t len, loff_t *ppos) +static ssize_t debugfs_htab_read(struct kiocb *iocb, struct iov_iter *to) { - struct debugfs_htab_state *p =3D file->private_data; + struct debugfs_htab_state *p =3D iocb->ki_filp->private_data; + size_t len =3D iov_iter_count(to); ssize_t ret, r; unsigned long i, n; unsigned long v, hr, gr; @@ -2057,11 +2059,10 @@ static ssize_t debugfs_htab_read(struct file *file,= char __user *buf, n =3D p->chars_left; if (n > len) n =3D len; - r =3D copy_to_user(buf, p->buf + p->buf_index, n); + r =3D copy_to_iter(p->buf + p->buf_index, n, to); n -=3D r; p->chars_left -=3D n; p->buf_index +=3D n; - buf +=3D n; len -=3D n; ret =3D n; if (r) { @@ -2097,11 +2098,10 @@ static ssize_t debugfs_htab_read(struct file *file,= char __user *buf, p->chars_left =3D n; if (n > len) n =3D len; - r =3D copy_to_user(buf, p->buf, n); + r =3D copy_to_iter(p->buf, n, to); n -=3D r; p->chars_left -=3D n; p->buf_index =3D n; - buf +=3D n; len -=3D n; ret +=3D n; if (r) { @@ -2117,8 +2117,7 @@ static ssize_t debugfs_htab_read(struct file *file, c= har __user *buf, return ret; } =20 -static ssize_t debugfs_htab_write(struct file *file, const char __user *bu= f, - size_t len, loff_t *ppos) +static ssize_t debugfs_htab_write(struct kiocb *iocb, struct iov_iter *fro= m) { return -EACCES; } @@ -2127,8 +2126,8 @@ static const struct file_operations debugfs_htab_fops= =3D { .owner =3D THIS_MODULE, .open =3D debugfs_htab_open, .release =3D debugfs_htab_release, - .read =3D debugfs_htab_read, - .write =3D debugfs_htab_write, + .read_iter =3D debugfs_htab_read, + .write_iter =3D debugfs_htab_write, .llseek =3D generic_file_llseek, }; =20 diff --git a/arch/powerpc/kvm/book3s_64_mmu_radix.c b/arch/powerpc/kvm/book= 3s_64_mmu_radix.c index 408d98f8a514..d33c92bbe6f2 100644 --- a/arch/powerpc/kvm/book3s_64_mmu_radix.c +++ b/arch/powerpc/kvm/book3s_64_mmu_radix.c @@ -1298,10 +1298,10 @@ static int debugfs_radix_release(struct inode *inod= e, struct file *file) return 0; } =20 -static ssize_t debugfs_radix_read(struct file *file, char __user *buf, - size_t len, loff_t *ppos) +static ssize_t debugfs_radix_read(struct kiocb *iocb, struct iov_iter *to) { - struct debugfs_radix_state *p =3D file->private_data; + struct debugfs_radix_state *p =3D iocb->ki_filp->private_data; + size_t len =3D iov_iter_count(to); ssize_t ret, r; unsigned long n; struct kvm *kvm; @@ -1328,11 +1328,10 @@ static ssize_t debugfs_radix_read(struct file *file= , char __user *buf, n =3D p->chars_left; if (n > len) n =3D len; - r =3D copy_to_user(buf, p->buf + p->buf_index, n); + r =3D copy_to_iter(p->buf + p->buf_index, n, to); n -=3D r; p->chars_left -=3D n; p->buf_index +=3D n; - buf +=3D n; len -=3D n; ret =3D n; if (r) { @@ -1428,11 +1427,10 @@ static ssize_t debugfs_radix_read(struct file *file= , char __user *buf, p->chars_left =3D n; if (n > len) n =3D len; - r =3D copy_to_user(buf, p->buf, n); + r =3D copy_to_iter(p->buf, n, to); n -=3D r; p->chars_left -=3D n; p->buf_index =3D n; - buf +=3D n; len -=3D n; ret +=3D n; if (r) { @@ -1450,8 +1448,7 @@ static ssize_t debugfs_radix_read(struct file *file, = char __user *buf, return ret; } =20 -static ssize_t debugfs_radix_write(struct file *file, const char __user *b= uf, - size_t len, loff_t *ppos) +static ssize_t debugfs_radix_write(struct kiocb *iocb, struct iov_iter *fr= om) { return -EACCES; } @@ -1460,8 +1457,8 @@ static const struct file_operations debugfs_radix_fop= s =3D { .owner =3D THIS_MODULE, .open =3D debugfs_radix_open, .release =3D debugfs_radix_release, - .read =3D debugfs_radix_read, - .write =3D debugfs_radix_write, + .read_iter =3D debugfs_radix_read, + .write_iter =3D debugfs_radix_write, .llseek =3D generic_file_llseek, }; =20 diff --git a/arch/powerpc/kvm/book3s_hv.c b/arch/powerpc/kvm/book3s_hv.c index 8e86eb577eb8..33ccdf765395 100644 --- a/arch/powerpc/kvm/book3s_hv.c +++ b/arch/powerpc/kvm/book3s_hv.c @@ -2860,10 +2860,10 @@ static int debugfs_timings_release(struct inode *in= ode, struct file *file) return 0; } =20 -static ssize_t debugfs_timings_read(struct file *file, char __user *buf, - size_t len, loff_t *ppos) +static ssize_t debugfs_timings_read(struct kiocb *iocb, struct iov_iter *t= o) { - struct debugfs_timings_state *p =3D file->private_data; + struct debugfs_timings_state *p =3D iocb->ki_filp->private_data; + size_t len =3D iov_iter_count(to); struct kvm_vcpu *vcpu =3D p->vcpu; char *s, *buf_end; struct kvmhv_tb_accumulator tb; @@ -2910,23 +2910,19 @@ static ssize_t debugfs_timings_read(struct file *fi= le, char __user *buf, p->buflen =3D s - p->buf; } =20 - pos =3D *ppos; + pos =3D iocb->ki_pos; if (pos >=3D p->buflen) return 0; if (len > p->buflen - pos) len =3D p->buflen - pos; - n =3D copy_to_user(buf, p->buf + pos, len); - if (n) { - if (n =3D=3D len) - return -EFAULT; - len -=3D n; - } - *ppos =3D pos + len; + n =3D !copy_to_iter_full(p->buf + pos, len, to); + if (n) + return -EFAULT; + iocb->ki_pos =3D pos + len; return len; } =20 -static ssize_t debugfs_timings_write(struct file *file, const char __user = *buf, - size_t len, loff_t *ppos) +static ssize_t debugfs_timings_write(struct kiocb *iocb, struct iov_iter *= from) { return -EACCES; } @@ -2935,8 +2931,8 @@ static const struct file_operations debugfs_timings_o= ps =3D { .owner =3D THIS_MODULE, .open =3D debugfs_timings_open, .release =3D debugfs_timings_release, - .read =3D debugfs_timings_read, - .write =3D debugfs_timings_write, + .read_iter =3D debugfs_timings_read, + .write_iter =3D debugfs_timings_write, .llseek =3D generic_file_llseek, }; =20 diff --git a/arch/powerpc/kvm/timing.c b/arch/powerpc/kvm/timing.c index 25071331f8c1..1281aaef2b44 100644 --- a/arch/powerpc/kvm/timing.c +++ b/arch/powerpc/kvm/timing.c @@ -158,10 +158,10 @@ static int kvmppc_exit_timing_show(struct seq_file *m= , void *private) } =20 /* Write 'c' to clear the timing statistics. */ -static ssize_t kvmppc_exit_timing_write(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t kvmppc_exit_timing_write(struct kiocb *iocb, + struct iov_iter *from) { + size_t count =3D iov_iter_count(from); int err =3D -EINVAL; char c; =20 @@ -169,13 +169,13 @@ static ssize_t kvmppc_exit_timing_write(struct file *= file, goto done; } =20 - if (get_user(c, user_buf)) { + if (get_iter(&c, from)) { err =3D -EFAULT; goto done; } =20 if (c =3D=3D 'c') { - struct seq_file *seqf =3D file->private_data; + struct seq_file *seqf =3D iocb->ki_filp->private_data; struct kvm_vcpu *vcpu =3D seqf->private; /* Write does not affect our buffers previously generated with * show. seq_file is locked here to prevent races of init with @@ -198,8 +198,8 @@ static int kvmppc_exit_timing_open(struct inode *inode,= struct file *file) static const struct file_operations kvmppc_exit_timing_fops =3D { .owner =3D THIS_MODULE, .open =3D kvmppc_exit_timing_open, - .read =3D seq_read, - .write =3D kvmppc_exit_timing_write, + .read_iter =3D seq_read_iter, + .write_iter =3D kvmppc_exit_timing_write, .llseek =3D seq_lseek, .release =3D single_release, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f46.google.com (mail-io1-f46.google.com [209.85.166.46]) (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 B9A1A1E7955 for ; Thu, 11 Apr 2024 15:41:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850066; cv=none; b=RtB3T+UY0K4xiaF9fIyZcB1/kSjl345W/6DvmwbA7YSrsuXug1RILVNT9pIi60eGF4gcV5MlgoNIQcEH1vSaRg2rP93anntAeNvyW4yRnWDmvfSz2gJWkKU9L9h2+gzE++hynJjn3Vdy+fNq/MqQe1h6GEHMjSEpJhCu6I6yjkQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850066; c=relaxed/simple; bh=1U8ijbqUrqPaQOZ3jdBlGBUkZMII7qIbCc9eeO1/rYU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=RvKn2MxoDYgW9L24jpKPkVJBhUP6/6gTz6BnoCF0jfYfVdtpeDab6ihEnQHewA51osD/P4wd/rPEfZFdnC9u68c6jNf0++1dhMQW8gcYHznR4HhY59VZUxNKijRt76cOITHyA7TLPh8eQZQfIAOlI+0Ns0Ob0F+5CdpMTEUMwuo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=UJWx73Zv; arc=none smtp.client-ip=209.85.166.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="UJWx73Zv" Received: by mail-io1-f46.google.com with SMTP id ca18e2360f4ac-7d6812b37a6so9063639f.0 for ; Thu, 11 Apr 2024 08:41:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850062; x=1713454862; 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=+1VCjRWQQSxBJsxF7soIbkCnGMMt3DjZ26qqRbqQowo=; b=UJWx73Zv8BUmLaw+9501lxiKVKOPQat3U/4Oe69VgPQoSljyOGC9HLsbj1yqDE3wez DGsbfyzB2Rg4L/ffhCd2e4ImFDlwSLgOvqP0k+qaTmY1W04lmNVACkvu0e6gh6UalwR9 DsCOwBc2zO6tCQ7NkpVtPi5m413XJ3fMteqgPOZZyR5sNOzAggkyAXsEwVrkJoD6kftF dZRmr6YRy4TnBrIQ2NrQYGQXrpTf8/lEiZJXOlUxr2cgxqblUsmUbFQsvbXb5PhtM/J+ 3buqeMGOUsJZB4TdQrzQFwztZ+zIW8EwZviPBtT9DU9Si3q9fLHnSWG+vbEFVNdIHI4Y 0L0A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850062; x=1713454862; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=+1VCjRWQQSxBJsxF7soIbkCnGMMt3DjZ26qqRbqQowo=; b=YWzOITjf/KuuSNfmVLNjT3/6fQM9BDV1riPxl7pWxbIiXXFFN1hteDUvmgDFV341pJ gU4wHlSHNfhSI4VvJ1jx2dZBPSsEPqJpljDuk6BxOstHCBaILEoXKSAlleygrJR9+SeP 5G14Q/kjzFYbB+4m77a6UVJVZNKlumBPJEh4qKMJKhxlxJWzOkct7mVzfCWg+GUI8szr eUMntwckFKZXTXIQuvSCcN2fBz8+ptCBpfCkF+MpNYwmU9BlXdipztVEzORlzHbkSXyc kRKb8PUYX4ka76A4YB8MF0fJ88vw6m32Jhi4mUGcRPw7JH8pJzECivuKjvQGG+ZDsqPN L8ew== X-Gm-Message-State: AOJu0Yyiushu5hJsTm8CXETCi4Hiv6E8NZ6P7S9VJwtX3kGWkOuZK5pW DZlg4STZzHi8JwqJTBpbD5N5q1E1acLWwJi6iuJgt0jmvlhx+I4Is2m5SIQOjsQAXOnpo0Bti2w c X-Google-Smtp-Source: AGHT+IGiyusTiXUiExBB3VSTmCsP0Pvm/tqOFyIWVaLxqcGgEmxYCpl/xXkoDRXqU2ns342ZrKhkuQ== X-Received: by 2002:a6b:5b10:0:b0:7d0:bd2b:43ba with SMTP id v16-20020a6b5b10000000b007d0bd2b43bamr234734ioh.0.1712850062477; Thu, 11 Apr 2024 08:41:02 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.41.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:41:02 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 339/437] powerpc/spufs: convert to read/write iterators Date: Thu, 11 Apr 2024 09:17:59 -0600 Message-ID: <20240411153126.16201-340-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- arch/powerpc/platforms/cell/spufs/file.c | 312 +++++++++++------------ 1 file changed, 147 insertions(+), 165 deletions(-) diff --git a/arch/powerpc/platforms/cell/spufs/file.c b/arch/powerpc/platfo= rms/cell/spufs/file.c index 02a8158c469d..025c9b0a0470 100644 --- a/arch/powerpc/platforms/cell/spufs/file.c +++ b/arch/powerpc/platforms/cell/spufs/file.c @@ -67,14 +67,13 @@ static int spufs_attr_release(struct inode *inode, stru= ct file *file) return 0; } =20 -static ssize_t spufs_attr_read(struct file *file, char __user *buf, - size_t len, loff_t *ppos) +static ssize_t spufs_attr_read(struct kiocb *iocb, struct iov_iter *to) { struct spufs_attr *attr; size_t size; ssize_t ret; =20 - attr =3D file->private_data; + attr =3D iocb->ki_filp->private_data; if (!attr->get) return -EACCES; =20 @@ -82,7 +81,7 @@ static ssize_t spufs_attr_read(struct file *file, char __= user *buf, if (ret) return ret; =20 - if (*ppos) { /* continued read */ + if (iocb->ki_pos) { /* continued read */ size =3D strlen(attr->get_buf); } else { /* first read */ u64 val; @@ -94,21 +93,21 @@ static ssize_t spufs_attr_read(struct file *file, char = __user *buf, attr->fmt, (unsigned long long)val); } =20 - ret =3D simple_read_from_buffer(buf, len, ppos, attr->get_buf, size); + ret =3D simple_copy_to_iter(attr->get_buf, &iocb->ki_pos, size, to); out: mutex_unlock(&attr->mutex); return ret; } =20 -static ssize_t spufs_attr_write(struct file *file, const char __user *buf, - size_t len, loff_t *ppos) +static ssize_t spufs_attr_write(struct kiocb *iocb, struct iov_iter *from) { + size_t len =3D iov_iter_count(from); struct spufs_attr *attr; u64 val; size_t size; ssize_t ret; =20 - attr =3D file->private_data; + attr =3D iocb->ki_filp->private_data; if (!attr->set) return -EACCES; =20 @@ -118,7 +117,7 @@ static ssize_t spufs_attr_write(struct file *file, cons= t char __user *buf, =20 ret =3D -EFAULT; size =3D min(sizeof(attr->set_buf) - 1, len); - if (copy_from_user(attr->set_buf, buf, size)) + if (!copy_from_iter_full(attr->set_buf, size, from)) goto out; =20 ret =3D len; /* claim we got the whole input */ @@ -147,8 +146,8 @@ static int __fops ## _open(struct inode *inode, struct = file *file) \ static const struct file_operations __fops =3D { \ .open =3D __fops ## _open, \ .release =3D spufs_attr_release, \ - .read =3D spufs_attr_read, \ - .write =3D spufs_attr_write, \ + .read_iter =3D spufs_attr_read, \ + .write_iter =3D spufs_attr_write, \ .llseek =3D generic_file_llseek, \ }; =20 @@ -186,30 +185,27 @@ spufs_mem_dump(struct spu_context *ctx, struct coredu= mp_params *cprm) return spufs_dump_emit(cprm, ctx->ops->get_ls(ctx), LS_SIZE); } =20 -static ssize_t -spufs_mem_read(struct file *file, char __user *buffer, - size_t size, loff_t *pos) +static ssize_t spufs_mem_read(struct kiocb *iocb, struct iov_iter *to) { - struct spu_context *ctx =3D file->private_data; + struct spu_context *ctx =3D iocb->ki_filp->private_data; ssize_t ret; =20 ret =3D spu_acquire(ctx); if (ret) return ret; - ret =3D simple_read_from_buffer(buffer, size, pos, ctx->ops->get_ls(ctx), - LS_SIZE); + ret =3D simple_copy_to_iter(ctx->ops->get_ls(ctx), &iocb->ki_pos, LS_SIZE, + to); spu_release(ctx); =20 return ret; } =20 -static ssize_t -spufs_mem_write(struct file *file, const char __user *buffer, - size_t size, loff_t *ppos) +static ssize_t spufs_mem_write(struct kiocb *iocb, struct iov_iter *from) { - struct spu_context *ctx =3D file->private_data; + struct spu_context *ctx =3D iocb->ki_filp->private_data; char *local_store; - loff_t pos =3D *ppos; + loff_t pos =3D iocb->ki_pos; + ssize_t size; int ret; =20 if (pos > LS_SIZE) @@ -220,7 +216,7 @@ spufs_mem_write(struct file *file, const char __user *b= uffer, return ret; =20 local_store =3D ctx->ops->get_ls(ctx); - size =3D simple_write_to_buffer(local_store, LS_SIZE, ppos, buffer, size); + size =3D simple_copy_to_iter(local_store, &iocb->ki_pos, LS_SIZE, from); spu_release(ctx); =20 return size; @@ -301,8 +297,8 @@ static int spufs_mem_mmap(struct file *file, struct vm_= area_struct *vma) static const struct file_operations spufs_mem_fops =3D { .open =3D spufs_mem_open, .release =3D spufs_mem_release, - .read =3D spufs_mem_read, - .write =3D spufs_mem_write, + .read_iter =3D spufs_mem_read, + .write_iter =3D spufs_mem_write, .llseek =3D generic_file_llseek, .mmap =3D spufs_mem_mmap, }; @@ -451,8 +447,8 @@ spufs_cntl_release(struct inode *inode, struct file *fi= le) static const struct file_operations spufs_cntl_fops =3D { .open =3D spufs_cntl_open, .release =3D spufs_cntl_release, - .read =3D simple_attr_read, - .write =3D simple_attr_write, + .read_iter =3D simple_attr_read_iter, + .write_iter =3D simple_attr_write_iter, .llseek =3D no_llseek, .mmap =3D spufs_cntl_mmap, }; @@ -472,44 +468,41 @@ spufs_regs_dump(struct spu_context *ctx, struct cored= ump_params *cprm) sizeof(ctx->csa.lscsa->gprs)); } =20 -static ssize_t -spufs_regs_read(struct file *file, char __user *buffer, - size_t size, loff_t *pos) +static ssize_t spufs_regs_read(struct kiocb *iocb, struct iov_iter *to) { int ret; - struct spu_context *ctx =3D file->private_data; + struct spu_context *ctx =3D iocb->ki_filp->private_data; =20 /* pre-check for file position: if we'd return EOF, there's no point * causing a deschedule */ - if (*pos >=3D sizeof(ctx->csa.lscsa->gprs)) + if (iocb->ki_pos >=3D sizeof(ctx->csa.lscsa->gprs)) return 0; =20 ret =3D spu_acquire_saved(ctx); if (ret) return ret; - ret =3D simple_read_from_buffer(buffer, size, pos, ctx->csa.lscsa->gprs, - sizeof(ctx->csa.lscsa->gprs)); + ret =3D simple_copy_to_iter(ctx->csa.lscsa->gprs, &iocb->ki_pos, + sizeof(ctx->csa.lscsa->gprs), to); spu_release_saved(ctx); return ret; } =20 -static ssize_t -spufs_regs_write(struct file *file, const char __user *buffer, - size_t size, loff_t *pos) +static ssize_t spufs_regs_write(struct kiocb *iocb, struct iov_iter *from) { - struct spu_context *ctx =3D file->private_data; + struct spu_context *ctx =3D iocb->ki_filp->private_data; struct spu_lscsa *lscsa =3D ctx->csa.lscsa; + ssize_t size; int ret; =20 - if (*pos >=3D sizeof(lscsa->gprs)) + if (iocb->ki_pos >=3D sizeof(lscsa->gprs)) return -EFBIG; =20 ret =3D spu_acquire_saved(ctx); if (ret) return ret; =20 - size =3D simple_write_to_buffer(lscsa->gprs, sizeof(lscsa->gprs), pos, - buffer, size); + size =3D simple_copy_from_iter(lscsa->gprs, &iocb->ki_pos, + sizeof(lscsa->gprs), from); =20 spu_release_saved(ctx); return size; @@ -517,8 +510,8 @@ spufs_regs_write(struct file *file, const char __user *= buffer, =20 static const struct file_operations spufs_regs_fops =3D { .open =3D spufs_regs_open, - .read =3D spufs_regs_read, - .write =3D spufs_regs_write, + .read_iter =3D spufs_regs_read, + .write_iter =3D spufs_regs_write, .llseek =3D generic_file_llseek, }; =20 @@ -529,39 +522,36 @@ spufs_fpcr_dump(struct spu_context *ctx, struct cored= ump_params *cprm) sizeof(ctx->csa.lscsa->fpcr)); } =20 -static ssize_t -spufs_fpcr_read(struct file *file, char __user * buffer, - size_t size, loff_t * pos) +static ssize_t spufs_fpcr_read(struct kiocb *iocb, struct iov_iter *to) { int ret; - struct spu_context *ctx =3D file->private_data; + struct spu_context *ctx =3D iocb->ki_filp->private_data; =20 ret =3D spu_acquire_saved(ctx); if (ret) return ret; - ret =3D simple_read_from_buffer(buffer, size, pos, &ctx->csa.lscsa->fpcr, - sizeof(ctx->csa.lscsa->fpcr)); + ret =3D simple_copy_to_iter(&ctx->csa.lscsa->fpcr, &iocb->ki_pos, + sizeof(ctx->csa.lscsa->fpcr), to); spu_release_saved(ctx); return ret; } =20 -static ssize_t -spufs_fpcr_write(struct file *file, const char __user * buffer, - size_t size, loff_t * pos) +static ssize_t spufs_fpcr_write(struct kiocb *iocb, struct iov_iter *from) { - struct spu_context *ctx =3D file->private_data; + struct spu_context *ctx =3D iocb->ki_filp->private_data; struct spu_lscsa *lscsa =3D ctx->csa.lscsa; + ssize_t size; int ret; =20 - if (*pos >=3D sizeof(lscsa->fpcr)) + if (iocb->ki_pos >=3D sizeof(lscsa->fpcr)) return -EFBIG; =20 ret =3D spu_acquire_saved(ctx); if (ret) return ret; =20 - size =3D simple_write_to_buffer(&lscsa->fpcr, sizeof(lscsa->fpcr), pos, - buffer, size); + size =3D simple_copy_from_iter(&lscsa->fpcr, &iocb->ki_pos, + sizeof(lscsa->fpcr), from); =20 spu_release_saved(ctx); return size; @@ -569,8 +559,8 @@ spufs_fpcr_write(struct file *file, const char __user *= buffer, =20 static const struct file_operations spufs_fpcr_fops =3D { .open =3D spufs_regs_open, - .read =3D spufs_fpcr_read, - .write =3D spufs_fpcr_write, + .read_iter =3D spufs_fpcr_read, + .write_iter =3D spufs_fpcr_write, .llseek =3D generic_file_llseek, }; =20 @@ -591,11 +581,11 @@ static int spufs_pipe_open(struct inode *inode, struc= t file *file) * - end of the user provided buffer * - end of the mapped area */ -static ssize_t spufs_mbox_read(struct file *file, char __user *buf, - size_t len, loff_t *pos) +static ssize_t spufs_mbox_read(struct kiocb *iocb, struct iov_iter *to) { - struct spu_context *ctx =3D file->private_data; - u32 mbox_data, __user *udata =3D (void __user *)buf; + struct spu_context *ctx =3D iocb->ki_filp->private_data; + size_t len =3D iov_iter_count(to); + u32 mbox_data; ssize_t count; =20 if (len < 4) @@ -605,7 +595,7 @@ static ssize_t spufs_mbox_read(struct file *file, char = __user *buf, if (count) return count; =20 - for (count =3D 0; (count + 4) <=3D len; count +=3D 4, udata++) { + for (count =3D 0; (count + 4) <=3D len; count +=3D 4) { int ret; ret =3D ctx->ops->mbox_read(ctx, &mbox_data); if (ret =3D=3D 0) @@ -616,7 +606,7 @@ static ssize_t spufs_mbox_read(struct file *file, char = __user *buf, * but still need to return the data we have * read successfully so far. */ - ret =3D put_user(mbox_data, udata); + ret =3D put_iter(mbox_data, to); if (ret) { if (!count) count =3D -EFAULT; @@ -633,14 +623,14 @@ static ssize_t spufs_mbox_read(struct file *file, cha= r __user *buf, =20 static const struct file_operations spufs_mbox_fops =3D { .open =3D spufs_pipe_open, - .read =3D spufs_mbox_read, + .read_iter =3D spufs_mbox_read, .llseek =3D no_llseek, }; =20 -static ssize_t spufs_mbox_stat_read(struct file *file, char __user *buf, - size_t len, loff_t *pos) +static ssize_t spufs_mbox_stat_read(struct kiocb *iocb, struct iov_iter *t= o) { - struct spu_context *ctx =3D file->private_data; + struct spu_context *ctx =3D iocb->ki_filp->private_data; + size_t len =3D iov_iter_count(to); ssize_t ret; u32 mbox_stat; =20 @@ -655,7 +645,7 @@ static ssize_t spufs_mbox_stat_read(struct file *file, = char __user *buf, =20 spu_release(ctx); =20 - if (copy_to_user(buf, &mbox_stat, sizeof mbox_stat)) + if (!copy_to_iter_full(&mbox_stat, sizeof (mbox_stat), to)) return -EFAULT; =20 return 4; @@ -663,7 +653,7 @@ static ssize_t spufs_mbox_stat_read(struct file *file, = char __user *buf, =20 static const struct file_operations spufs_mbox_stat_fops =3D { .open =3D spufs_pipe_open, - .read =3D spufs_mbox_stat_read, + .read_iter =3D spufs_mbox_stat_read, .llseek =3D no_llseek, }; =20 @@ -694,11 +684,11 @@ void spufs_ibox_callback(struct spu *spu) * any data is available, but return when we have been able to * read something. */ -static ssize_t spufs_ibox_read(struct file *file, char __user *buf, - size_t len, loff_t *pos) +static ssize_t spufs_ibox_read(struct kiocb *iocb, struct iov_iter *to) { - struct spu_context *ctx =3D file->private_data; - u32 ibox_data, __user *udata =3D (void __user *)buf; + struct spu_context *ctx =3D iocb->ki_filp->private_data; + size_t len =3D iov_iter_count(to); + u32 ibox_data; ssize_t count; =20 if (len < 4) @@ -710,7 +700,7 @@ static ssize_t spufs_ibox_read(struct file *file, char = __user *buf, =20 /* wait only for the first element */ count =3D 0; - if (file->f_flags & O_NONBLOCK) { + if (iocb->ki_filp->f_flags & O_NONBLOCK) { if (!spu_ibox_read(ctx, &ibox_data)) { count =3D -EAGAIN; goto out_unlock; @@ -722,11 +712,11 @@ static ssize_t spufs_ibox_read(struct file *file, cha= r __user *buf, } =20 /* if we can't write at all, return -EFAULT */ - count =3D put_user(ibox_data, udata); + count =3D put_iter(ibox_data, to); if (count) goto out_unlock; =20 - for (count =3D 4, udata++; (count + 4) <=3D len; count +=3D 4, udata++) { + for (count =3D 4; (count + 4) <=3D len; count +=3D 4) { int ret; ret =3D ctx->ops->ibox_read(ctx, &ibox_data); if (ret =3D=3D 0) @@ -736,7 +726,7 @@ static ssize_t spufs_ibox_read(struct file *file, char = __user *buf, * but still need to return the data we have * read successfully so far. */ - ret =3D put_user(ibox_data, udata); + ret =3D put_iter(ibox_data, to); if (ret) break; } @@ -767,15 +757,15 @@ static __poll_t spufs_ibox_poll(struct file *file, po= ll_table *wait) =20 static const struct file_operations spufs_ibox_fops =3D { .open =3D spufs_pipe_open, - .read =3D spufs_ibox_read, + .read_iter =3D spufs_ibox_read, .poll =3D spufs_ibox_poll, .llseek =3D no_llseek, }; =20 -static ssize_t spufs_ibox_stat_read(struct file *file, char __user *buf, - size_t len, loff_t *pos) +static ssize_t spufs_ibox_stat_read(struct kiocb *iocb, struct iov_iter *t= o) { - struct spu_context *ctx =3D file->private_data; + struct spu_context *ctx =3D iocb->ki_filp->private_data; + size_t len =3D iov_iter_count(to); ssize_t ret; u32 ibox_stat; =20 @@ -788,7 +778,7 @@ static ssize_t spufs_ibox_stat_read(struct file *file, = char __user *buf, ibox_stat =3D (ctx->ops->mbox_stat_read(ctx) >> 16) & 0xff; spu_release(ctx); =20 - if (copy_to_user(buf, &ibox_stat, sizeof ibox_stat)) + if (!copy_to_iter_full(&ibox_stat, sizeof ibox_stat, to)) return -EFAULT; =20 return 4; @@ -796,7 +786,7 @@ static ssize_t spufs_ibox_stat_read(struct file *file, = char __user *buf, =20 static const struct file_operations spufs_ibox_stat_fops =3D { .open =3D spufs_pipe_open, - .read =3D spufs_ibox_stat_read, + .read_iter =3D spufs_ibox_stat_read, .llseek =3D no_llseek, }; =20 @@ -827,17 +817,17 @@ void spufs_wbox_callback(struct spu *spu) * space is available, but return when we have been able to * write something. */ -static ssize_t spufs_wbox_write(struct file *file, const char __user *buf, - size_t len, loff_t *pos) +static ssize_t spufs_wbox_write(struct kiocb *iocb, struct iov_iter *from) { - struct spu_context *ctx =3D file->private_data; - u32 wbox_data, __user *udata =3D (void __user *)buf; + struct spu_context *ctx =3D iocb->ki_filp->private_data; + size_t len =3D iov_iter_count(from); + u32 wbox_data; ssize_t count; =20 if (len < 4) return -EINVAL; =20 - if (get_user(wbox_data, udata)) + if (get_iter(wbox_data, from)) return -EFAULT; =20 count =3D spu_acquire(ctx); @@ -849,7 +839,7 @@ static ssize_t spufs_wbox_write(struct file *file, cons= t char __user *buf, * in case of !O_NONBLOCK */ count =3D 0; - if (file->f_flags & O_NONBLOCK) { + if (iocb->ki_filp->f_flags & O_NONBLOCK) { if (!spu_wbox_write(ctx, wbox_data)) { count =3D -EAGAIN; goto out_unlock; @@ -862,9 +852,9 @@ static ssize_t spufs_wbox_write(struct file *file, cons= t char __user *buf, =20 =20 /* write as much as possible */ - for (count =3D 4, udata++; (count + 4) <=3D len; count +=3D 4, udata++) { + for (count =3D 4; (count + 4) <=3D len; count +=3D 4) { int ret; - ret =3D get_user(wbox_data, udata); + ret =3D get_iter(wbox_data, from); if (ret) break; =20 @@ -899,15 +889,15 @@ static __poll_t spufs_wbox_poll(struct file *file, po= ll_table *wait) =20 static const struct file_operations spufs_wbox_fops =3D { .open =3D spufs_pipe_open, - .write =3D spufs_wbox_write, + .write_iter =3D spufs_wbox_write, .poll =3D spufs_wbox_poll, .llseek =3D no_llseek, }; =20 -static ssize_t spufs_wbox_stat_read(struct file *file, char __user *buf, - size_t len, loff_t *pos) +static ssize_t spufs_wbox_stat_read(struct kiocb *iocb, struct iov_iter *t= o) { - struct spu_context *ctx =3D file->private_data; + struct spu_context *ctx =3D iocb->ki_filp->private_data; + size_t len =3D iov_iter_count(to); ssize_t ret; u32 wbox_stat; =20 @@ -920,7 +910,7 @@ static ssize_t spufs_wbox_stat_read(struct file *file, = char __user *buf, wbox_stat =3D (ctx->ops->mbox_stat_read(ctx) >> 8) & 0xff; spu_release(ctx); =20 - if (copy_to_user(buf, &wbox_stat, sizeof wbox_stat)) + if (!copy_to_iter_full(&wbox_stat, sizeof wbox_stat, to)) return -EFAULT; =20 return 4; @@ -928,7 +918,7 @@ static ssize_t spufs_wbox_stat_read(struct file *file, = char __user *buf, =20 static const struct file_operations spufs_wbox_stat_fops =3D { .open =3D spufs_pipe_open, - .read =3D spufs_wbox_stat_read, + .read_iter =3D spufs_wbox_stat_read, .llseek =3D no_llseek, }; =20 @@ -994,6 +984,7 @@ static ssize_t spufs_signal1_read(struct file *file, ch= ar __user *buf, =20 return ret; } +FOPS_READ_ITER_HELPER(spufs_signal1_read); =20 static ssize_t spufs_signal1_write(struct file *file, const char __user *b= uf, size_t len, loff_t *pos) @@ -1018,6 +1009,7 @@ static ssize_t spufs_signal1_write(struct file *file,= const char __user *buf, =20 return 4; } +FOPS_WRITE_ITER_HELPER(spufs_signal1_write); =20 static vm_fault_t spufs_signal1_mmap_fault(struct vm_fault *vmf) @@ -1053,8 +1045,8 @@ static int spufs_signal1_mmap(struct file *file, stru= ct vm_area_struct *vma) static const struct file_operations spufs_signal1_fops =3D { .open =3D spufs_signal1_open, .release =3D spufs_signal1_release, - .read =3D spufs_signal1_read, - .write =3D spufs_signal1_write, + .read_iter =3D spufs_signal1_read_iter, + .write_iter =3D spufs_signal1_write_iter, .mmap =3D spufs_signal1_mmap, .llseek =3D no_llseek, }; @@ -1062,7 +1054,7 @@ static const struct file_operations spufs_signal1_fop= s =3D { static const struct file_operations spufs_signal1_nosched_fops =3D { .open =3D spufs_signal1_open, .release =3D spufs_signal1_release, - .write =3D spufs_signal1_write, + .write_iter =3D spufs_signal1_write_iter, .mmap =3D spufs_signal1_mmap, .llseek =3D no_llseek, }; @@ -1102,29 +1094,28 @@ static ssize_t spufs_signal2_dump(struct spu_contex= t *ctx, sizeof(ctx->csa.spu_chnldata_RW[4])); } =20 -static ssize_t __spufs_signal2_read(struct spu_context *ctx, char __user *= buf, - size_t len) +static ssize_t __spufs_signal2_read(struct spu_context *ctx, struct iov_it= er *to) { + size_t len =3D iov_iter_count(to); if (len < sizeof(ctx->csa.spu_chnldata_RW[4])) return -EINVAL; if (!ctx->csa.spu_chnlcnt_RW[4]) return 0; - if (copy_to_user(buf, &ctx->csa.spu_chnldata_RW[4], - sizeof(ctx->csa.spu_chnldata_RW[4]))) + if (!copy_to_iter_full(&ctx->csa.spu_chnldata_RW[4], + sizeof(ctx->csa.spu_chnldata_RW[4]), to)) return -EFAULT; return sizeof(ctx->csa.spu_chnldata_RW[4]); } =20 -static ssize_t spufs_signal2_read(struct file *file, char __user *buf, - size_t len, loff_t *pos) +static ssize_t spufs_signal2_read(struct kiocb *iocb, struct iov_iter *to) { - struct spu_context *ctx =3D file->private_data; + struct spu_context *ctx =3D iocb->ki_filp->private_data; int ret; =20 ret =3D spu_acquire_saved(ctx); if (ret) return ret; - ret =3D __spufs_signal2_read(ctx, buf, len); + ret =3D __spufs_signal2_read(ctx, to); spu_release_saved(ctx); =20 return ret; @@ -1153,6 +1144,7 @@ static ssize_t spufs_signal2_write(struct file *file,= const char __user *buf, =20 return 4; } +FOPS_WRITE_ITER_HELPER(spufs_signal2_write); =20 #if SPUFS_MMAP_4K static vm_fault_t @@ -1192,8 +1184,8 @@ static int spufs_signal2_mmap(struct file *file, stru= ct vm_area_struct *vma) static const struct file_operations spufs_signal2_fops =3D { .open =3D spufs_signal2_open, .release =3D spufs_signal2_release, - .read =3D spufs_signal2_read, - .write =3D spufs_signal2_write, + .read_iter =3D spufs_signal2_read, + .write_iter =3D spufs_signal2_write_iter, .mmap =3D spufs_signal2_mmap, .llseek =3D no_llseek, }; @@ -1201,7 +1193,7 @@ static const struct file_operations spufs_signal2_fop= s =3D { static const struct file_operations spufs_signal2_nosched_fops =3D { .open =3D spufs_signal2_open, .release =3D spufs_signal2_release, - .write =3D spufs_signal2_write, + .write_iter =3D spufs_signal2_write_iter, .mmap =3D spufs_signal2_mmap, .llseek =3D no_llseek, }; @@ -1491,10 +1483,10 @@ static int spufs_read_mfc_tagstatus(struct spu_cont= ext *ctx, u32 *status) return 0; } =20 -static ssize_t spufs_mfc_read(struct file *file, char __user *buffer, - size_t size, loff_t *pos) +static ssize_t spufs_mfc_read(struct kiocb *iocb, struct iov_iter *to) { - struct spu_context *ctx =3D file->private_data; + struct spu_context *ctx =3D iocb->ki_filp->private_data; + size_t size =3D iov_iter_count(to); int ret =3D -EINVAL; u32 status; =20 @@ -1506,7 +1498,7 @@ static ssize_t spufs_mfc_read(struct file *file, char= __user *buffer, return ret; =20 ret =3D -EINVAL; - if (file->f_flags & O_NONBLOCK) { + if (iocb->ki_filp->f_flags & O_NONBLOCK) { status =3D ctx->ops->read_mfc_tagstatus(ctx); if (!(status & ctx->tagwait)) ret =3D -EAGAIN; @@ -1522,7 +1514,7 @@ static ssize_t spufs_mfc_read(struct file *file, char= __user *buffer, spu_release(ctx); =20 ret =3D 4; - if (copy_to_user(buffer, &status, 4)) + if (!copy_to_iter_full(&status, 4, to)) ret =3D -EFAULT; =20 out: @@ -1617,10 +1609,10 @@ static int spu_send_mfc_command(struct spu_context = *ctx, return 1; } =20 -static ssize_t spufs_mfc_write(struct file *file, const char __user *buffe= r, - size_t size, loff_t *pos) +static ssize_t spufs_mfc_write(struct kiocb *iocb, struct iov_iter *from) { - struct spu_context *ctx =3D file->private_data; + struct spu_context *ctx =3D iocb->ki_filp->private_data; + size_t size =3D iov_iter_count(from); struct mfc_dma_command cmd; int ret =3D -EINVAL; =20 @@ -1628,7 +1620,7 @@ static ssize_t spufs_mfc_write(struct file *file, con= st char __user *buffer, goto out; =20 ret =3D -EFAULT; - if (copy_from_user(&cmd, buffer, sizeof cmd)) + if (!copy_from_iter_full(&cmd, sizeof cmd, from)) goto out; =20 ret =3D spufs_check_valid_dma(&cmd); @@ -1643,7 +1635,7 @@ static ssize_t spufs_mfc_write(struct file *file, con= st char __user *buffer, if (ret) goto out; =20 - if (file->f_flags & O_NONBLOCK) { + if (iocb->ki_filp->f_flags & O_NONBLOCK) { ret =3D ctx->ops->send_mfc_command(ctx, &cmd); } else { int status; @@ -1738,8 +1730,8 @@ static int spufs_mfc_fsync(struct file *file, loff_t = start, loff_t end, int data static const struct file_operations spufs_mfc_fops =3D { .open =3D spufs_mfc_open, .release =3D spufs_mfc_release, - .read =3D spufs_mfc_read, - .write =3D spufs_mfc_write, + .read_iter =3D spufs_mfc_read, + .write_iter =3D spufs_mfc_write, .poll =3D spufs_mfc_poll, .flush =3D spufs_mfc_flush, .fsync =3D spufs_mfc_fsync, @@ -1943,7 +1935,7 @@ static int spufs_caps_open(struct inode *inode, struc= t file *file) =20 static const struct file_operations spufs_caps_fops =3D { .open =3D spufs_caps_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D single_release, }; @@ -1957,10 +1949,9 @@ static ssize_t spufs_mbox_info_dump(struct spu_conte= xt *ctx, sizeof(ctx->csa.prob.pu_mb_R)); } =20 -static ssize_t spufs_mbox_info_read(struct file *file, char __user *buf, - size_t len, loff_t *pos) +static ssize_t spufs_mbox_info_read(struct kiocb *iocb, struct iov_iter *t= o) { - struct spu_context *ctx =3D file->private_data; + struct spu_context *ctx =3D iocb->ki_filp->private_data; u32 stat, data; int ret; =20 @@ -1977,12 +1968,12 @@ static ssize_t spufs_mbox_info_read(struct file *fi= le, char __user *buf, if (!(stat & 0x0000ff)) return 0; =20 - return simple_read_from_buffer(buf, len, pos, &data, sizeof(data)); + return simple_copy_to_iter(&data, &iocb->ki_pos, sizeof(data), to); } =20 static const struct file_operations spufs_mbox_info_fops =3D { .open =3D spufs_info_open, - .read =3D spufs_mbox_info_read, + .read_iter =3D spufs_mbox_info_read, .llseek =3D generic_file_llseek, }; =20 @@ -1995,10 +1986,9 @@ static ssize_t spufs_ibox_info_dump(struct spu_conte= xt *ctx, sizeof(ctx->csa.priv2.puint_mb_R)); } =20 -static ssize_t spufs_ibox_info_read(struct file *file, char __user *buf, - size_t len, loff_t *pos) +static ssize_t spufs_ibox_info_read(struct kiocb *iocb, struct iov_iter *t= o) { - struct spu_context *ctx =3D file->private_data; + struct spu_context *ctx =3D iocb->ki_filp->private_data; u32 stat, data; int ret; =20 @@ -2015,12 +2005,12 @@ static ssize_t spufs_ibox_info_read(struct file *fi= le, char __user *buf, if (!(stat & 0xff0000)) return 0; =20 - return simple_read_from_buffer(buf, len, pos, &data, sizeof(data)); + return simple_copy_to_iter(&data, &iocb->ki_pos, sizeof(data), to); } =20 static const struct file_operations spufs_ibox_info_fops =3D { .open =3D spufs_info_open, - .read =3D spufs_ibox_info_read, + .read_iter =3D spufs_ibox_info_read, .llseek =3D generic_file_llseek, }; =20 @@ -2036,10 +2026,9 @@ static ssize_t spufs_wbox_info_dump(struct spu_conte= xt *ctx, spufs_wbox_info_cnt(ctx)); } =20 -static ssize_t spufs_wbox_info_read(struct file *file, char __user *buf, - size_t len, loff_t *pos) +static ssize_t spufs_wbox_info_read(struct kiocb *iocb, struct iov_iter *t= o) { - struct spu_context *ctx =3D file->private_data; + struct spu_context *ctx =3D iocb->ki_filp->private_data; u32 data[ARRAY_SIZE(ctx->csa.spu_mailbox_data)]; int ret, count; =20 @@ -2052,13 +2041,12 @@ static ssize_t spufs_wbox_info_read(struct file *fi= le, char __user *buf, spin_unlock(&ctx->csa.register_lock); spu_release_saved(ctx); =20 - return simple_read_from_buffer(buf, len, pos, &data, - count * sizeof(u32)); + return simple_copy_to_iter(&data, &iocb->ki_pos, count * sizeof(u32), to); } =20 static const struct file_operations spufs_wbox_info_fops =3D { .open =3D spufs_info_open, - .read =3D spufs_wbox_info_read, + .read_iter =3D spufs_wbox_info_read, .llseek =3D generic_file_llseek, }; =20 @@ -2092,10 +2080,9 @@ static ssize_t spufs_dma_info_dump(struct spu_contex= t *ctx, return spufs_dump_emit(cprm, &info, sizeof(info)); } =20 -static ssize_t spufs_dma_info_read(struct file *file, char __user *buf, - size_t len, loff_t *pos) +static ssize_t spufs_dma_info_read(struct kiocb *iocb, struct iov_iter *to) { - struct spu_context *ctx =3D file->private_data; + struct spu_context *ctx =3D iocb->ki_filp->private_data; struct spu_dma_info info; int ret; =20 @@ -2107,13 +2094,12 @@ static ssize_t spufs_dma_info_read(struct file *fil= e, char __user *buf, spin_unlock(&ctx->csa.register_lock); spu_release_saved(ctx); =20 - return simple_read_from_buffer(buf, len, pos, &info, - sizeof(info)); + return simple_copy_to_iter(&info, &iocb->ki_pos, sizeof(info), to); } =20 static const struct file_operations spufs_dma_info_fops =3D { .open =3D spufs_info_open, - .read =3D spufs_dma_info_read, + .read_iter =3D spufs_dma_info_read, .llseek =3D no_llseek, }; =20 @@ -2146,10 +2132,10 @@ static ssize_t spufs_proxydma_info_dump(struct spu_= context *ctx, return spufs_dump_emit(cprm, &info, sizeof(info)); } =20 -static ssize_t spufs_proxydma_info_read(struct file *file, char __user *bu= f, - size_t len, loff_t *pos) +static ssize_t spufs_proxydma_info_read(struct kiocb *iocb, struct iov_ite= r *to) { - struct spu_context *ctx =3D file->private_data; + struct spu_context *ctx =3D iocb->ki_filp->private_data; + size_t len =3D iov_iter_count(to); struct spu_proxydma_info info; int ret; =20 @@ -2164,13 +2150,12 @@ static ssize_t spufs_proxydma_info_read(struct file= *file, char __user *buf, spin_unlock(&ctx->csa.register_lock); spu_release_saved(ctx); =20 - return simple_read_from_buffer(buf, len, pos, &info, - sizeof(info)); + return simple_copy_to_iter(&info, &iocb->ki_pos, sizeof(info), to); } =20 static const struct file_operations spufs_proxydma_info_fops =3D { .open =3D spufs_info_open, - .read =3D spufs_proxydma_info_read, + .read_iter =3D spufs_proxydma_info_read, .llseek =3D no_llseek, }; =20 @@ -2189,7 +2174,7 @@ static int spufs_tid_open(struct inode *inode, struct= file *file) =20 static const struct file_operations spufs_tid_fops =3D { .open =3D spufs_tid_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D single_release, }; @@ -2279,7 +2264,7 @@ static int spufs_stat_open(struct inode *inode, struc= t file *file) =20 static const struct file_operations spufs_stat_fops =3D { .open =3D spufs_stat_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D single_release, }; @@ -2357,16 +2342,13 @@ static int switch_log_sprint(struct spu_context *ct= x, char *tbuf, int n) (unsigned long long) p->timebase); } =20 -static ssize_t spufs_switch_log_read(struct file *file, char __user *buf, - size_t len, loff_t *ppos) +static ssize_t spufs_switch_log_read(struct kiocb *iocb, struct iov_iter *= to) { - struct inode *inode =3D file_inode(file); + struct inode *inode =3D file_inode(iocb->ki_filp); struct spu_context *ctx =3D SPUFS_I(inode)->i_ctx; + size_t len =3D iov_iter_count(to); int error =3D 0, cnt =3D 0; =20 - if (!buf) - return -EINVAL; - error =3D spu_acquire(ctx); if (error) return error; @@ -2381,7 +2363,7 @@ static ssize_t spufs_switch_log_read(struct file *fil= e, char __user *buf, * just return straight away */ break; =20 - } else if (file->f_flags & O_NONBLOCK) { + } else if (iocb->ki_filp->f_flags & O_NONBLOCK) { error =3D -EAGAIN; break; =20 @@ -2417,7 +2399,7 @@ static ssize_t spufs_switch_log_read(struct file *fil= e, char __user *buf, * partial buffer (so far) */ break; =20 - error =3D copy_to_user(buf + cnt, tbuf, width); + error =3D !copy_to_iter_full(tbuf, width, to); if (error) break; cnt +=3D width; @@ -2451,7 +2433,7 @@ static __poll_t spufs_switch_log_poll(struct file *fi= le, poll_table *wait) =20 static const struct file_operations spufs_switch_log_fops =3D { .open =3D spufs_switch_log_open, - .read =3D spufs_switch_log_read, + .read_iter =3D spufs_switch_log_read, .poll =3D spufs_switch_log_poll, .release =3D spufs_switch_log_release, .llseek =3D no_llseek, @@ -2532,7 +2514,7 @@ static int spufs_ctx_open(struct inode *inode, struct= file *file) =20 static const struct file_operations spufs_ctx_fops =3D { .open =3D spufs_ctx_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D single_release, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f54.google.com (mail-io1-f54.google.com [209.85.166.54]) (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 4D6A11E6F5F for ; Thu, 11 Apr 2024 15:41:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850067; cv=none; b=igBMCrWQDBclzes6WtYUDpq+JucGnyak+qHRi9efkDp2Piip1ll4rXNTtGxy5Exg16p87ie0MIvGy/RBwtl28Ph0hgoEkItvDetBFNAnwVA+37n3Vw8KH5IF+tsmi4vOIsqJLfJMeGFoecwYPe6C0GicwMwDYS4Wq9lQpgz5Ht0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850067; c=relaxed/simple; bh=NcCey28QxJieT+UjRuZ77X2FGjw1+do6lFFpsmJ0A9M=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=pI0aWzYCC51rJiwSD3Cyhomn49lz86c+Shl+qzGl/cC6fSFs1rU1267s7Ao/evlLKIbvUANlbjiFmAMHHjCr/2LJA1VHHWs30wBtHxCF3dWHuE1VEV7UiRn54zBr1vnDusRS1iDVLEMJVYcijtrHFOixy/UK6+2y85bnq91+5uE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=u/QTzRtU; arc=none smtp.client-ip=209.85.166.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="u/QTzRtU" Received: by mail-io1-f54.google.com with SMTP id ca18e2360f4ac-7cc0e831e11so170620539f.1 for ; Thu, 11 Apr 2024 08:41:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850064; x=1713454864; 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=+H2jBq3RtSTJ6hQiTl82f8Q+bNLXTmf8hg8XWogEvuU=; b=u/QTzRtUPqqBcNN0jzn3/j5lYTsPyXr3oezPXC8Dxyt+6SX3mK3C5NfCYBnNqNYZD0 ypinCKIvzQdX9hWZmXkcEJB0cg89D4TWdulJtuLlR6845KUVKKIeZgFi3aPuco3G+/fp yh4Vnn9Ehx0LGniyOkbkCnFlcWTN0D6GnvtqMMrvt18gvgemiNq+yE/9EotGoePaAfym glzQZtSvCNAbayz9YrLV/Fch0yeuSaYCivpLF6mK/h9AsgczN7bPlNEvP2J+eNZTr3/d 2tLRu+het22kXAeih0D+RK9jJ7KvTRuYRzTdrjV/bpfgJKw2krG9A76HSG9O2uKnqYM3 fjug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850064; x=1713454864; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=+H2jBq3RtSTJ6hQiTl82f8Q+bNLXTmf8hg8XWogEvuU=; b=cW6niOx9E3kK9Lh90VaWydD3EqqP04WI3z3IDG8if59FA3I42LV0oZRMhg0rZO6vrW zz8PLkknhYVYFAVeZxwXCg7UUD0WxzUtX2udL+SWoGAZPf9Q55GUasnHcdWXa5D3DykC S/ycPxiMKBV6+Ia+UEZlmlh7E2k5Bl6cLOY8K3bF+fCgeam95JxFf8FMx4xoXN3vsynG 7f4xPXaWZVu14E9Mb8SBHYNt7yY5qNW9aiYtzE9GTZgruJuzdEJ3EnfIO1MUD59+diSZ RlzhJGasmoU+lSy1WwrutgYvOH0P7YegHOQYl4Cl0yNUSEsndGRfOHmV1YYiHL9WXjC9 7i9A== X-Gm-Message-State: AOJu0YzLB8yyKG+gyAdClWLbbqz4Z0Y8HF6ldWvnjbO8wuYA2Tx1hx5l MDCvNyU7yX0sVXANxx8znMfJmlZayb9Hcxxa/XEkCLlbwLV9+3pQpYXPG0qc9lGOQEFDYZ6OGiz j X-Google-Smtp-Source: AGHT+IFElkIuhoDFYWg9yDYuBEX+eR1w5zIysNG+tkoHI4PQkkkvz5fZEdaKdO6cHBXmU/8jhTUTCQ== X-Received: by 2002:a5e:9907:0:b0:7d6:751f:192 with SMTP id t7-20020a5e9907000000b007d6751f0192mr193503ioj.2.1712850063990; Thu, 11 Apr 2024 08:41:03 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.41.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:41:02 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 340/437] powerpc/platforms: convert to read/write iterators Date: Thu, 11 Apr 2024 09:18:00 -0600 Message-ID: <20240411153126.16201-341-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- arch/powerpc/platforms/52xx/mpc52xx_gpt.c | 7 ++--- arch/powerpc/platforms/powernv/eeh-powernv.c | 11 ++++--- arch/powerpc/platforms/powernv/memtrace.c | 9 +++--- arch/powerpc/platforms/powernv/opal-lpc.c | 6 ++-- arch/powerpc/platforms/powernv/opal-prd.c | 22 +++++++------- arch/powerpc/platforms/powernv/opal-xscom.c | 30 +++++++++----------- arch/powerpc/platforms/pseries/dtl.c | 16 +++++------ arch/powerpc/platforms/pseries/lpar.c | 11 ++++--- arch/powerpc/platforms/pseries/papr-vpd.c | 8 +++--- 9 files changed, 57 insertions(+), 63 deletions(-) diff --git a/arch/powerpc/platforms/52xx/mpc52xx_gpt.c b/arch/powerpc/platf= orms/52xx/mpc52xx_gpt.c index 581059527c36..d166f153ad12 100644 --- a/arch/powerpc/platforms/52xx/mpc52xx_gpt.c +++ b/arch/powerpc/platforms/52xx/mpc52xx_gpt.c @@ -530,10 +530,9 @@ static inline void mpc52xx_gpt_wdt_ping(struct mpc52xx= _gpt_priv *gpt_wdt) } =20 /* wdt misc device api */ -static ssize_t mpc52xx_wdt_write(struct file *file, const char __user *dat= a, - size_t len, loff_t *ppos) +static ssize_t mpc52xx_wdt_write(struct kiocb *iocb, struct iov_iter *from) { - struct mpc52xx_gpt_priv *gpt_wdt =3D file->private_data; + struct mpc52xx_gpt_priv *gpt_wdt =3D iocb->ki_filp->private_data; mpc52xx_gpt_wdt_ping(gpt_wdt); return 0; } @@ -645,7 +644,7 @@ static int mpc52xx_wdt_release(struct inode *inode, str= uct file *file) static const struct file_operations mpc52xx_wdt_fops =3D { .owner =3D THIS_MODULE, .llseek =3D no_llseek, - .write =3D mpc52xx_wdt_write, + .write_iter =3D mpc52xx_wdt_write, .unlocked_ioctl =3D mpc52xx_wdt_ioctl, .compat_ioctl =3D compat_ptr_ioctl, .open =3D mpc52xx_wdt_open, diff --git a/arch/powerpc/platforms/powernv/eeh-powernv.c b/arch/powerpc/pl= atforms/powernv/eeh-powernv.c index af3a5d37a149..c2a6081fed1d 100644 --- a/arch/powerpc/platforms/powernv/eeh-powernv.c +++ b/arch/powerpc/platforms/powernv/eeh-powernv.c @@ -62,11 +62,10 @@ static irqreturn_t pnv_eeh_event(int irq, void *data) } =20 #ifdef CONFIG_DEBUG_FS -static ssize_t pnv_eeh_ei_write(struct file *filp, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t pnv_eeh_ei_write(struct kiocb *iocb, struct iov_iter *from) { - struct pci_controller *hose =3D filp->private_data; + struct pci_controller *hose =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); struct eeh_pe *pe; int pe_no, type, func; unsigned long addr, mask; @@ -77,7 +76,7 @@ static ssize_t pnv_eeh_ei_write(struct file *filp, return -ENXIO; =20 /* Copy over argument buffer */ - ret =3D simple_write_to_buffer(buf, sizeof(buf), ppos, user_buf, count); + ret =3D simple_copy_to_iter(buf, &iocb->ki_pos, sizeof(buf), from); if (!ret) return -EFAULT; =20 @@ -100,7 +99,7 @@ static ssize_t pnv_eeh_ei_write(struct file *filp, static const struct file_operations pnv_eeh_ei_fops =3D { .open =3D simple_open, .llseek =3D no_llseek, - .write =3D pnv_eeh_ei_write, + .write_iter =3D pnv_eeh_ei_write, }; =20 static int pnv_eeh_dbgfs_set(void *data, int offset, u64 val) diff --git a/arch/powerpc/platforms/powernv/memtrace.c b/arch/powerpc/platf= orms/powernv/memtrace.c index 877720c64515..366da300e605 100644 --- a/arch/powerpc/platforms/powernv/memtrace.c +++ b/arch/powerpc/platforms/powernv/memtrace.c @@ -37,12 +37,11 @@ static struct memtrace_entry *memtrace_array; static unsigned int memtrace_array_nr; =20 =20 -static ssize_t memtrace_read(struct file *filp, char __user *ubuf, - size_t count, loff_t *ppos) +static ssize_t memtrace_read(struct kiocb *iocb, struct iov_iter *to) { - struct memtrace_entry *ent =3D filp->private_data; + struct memtrace_entry *ent =3D iocb->ki_filp->private_data; =20 - return simple_read_from_buffer(ubuf, count, ppos, ent->mem, ent->size); + return simple_copy_to_iter(ent->mem, &iocb->ki_pos, ent->size, to); } =20 static int memtrace_mmap(struct file *filp, struct vm_area_struct *vma) @@ -62,7 +61,7 @@ static int memtrace_mmap(struct file *filp, struct vm_are= a_struct *vma) =20 static const struct file_operations memtrace_fops =3D { .llseek =3D default_llseek, - .read =3D memtrace_read, + .read_iter =3D memtrace_read, .open =3D simple_open, .mmap =3D memtrace_mmap, }; diff --git a/arch/powerpc/platforms/powernv/opal-lpc.c b/arch/powerpc/platf= orms/powernv/opal-lpc.c index a16f07cdab26..e2f18ed6af17 100644 --- a/arch/powerpc/platforms/powernv/opal-lpc.c +++ b/arch/powerpc/platforms/powernv/opal-lpc.c @@ -271,6 +271,7 @@ static ssize_t lpc_debug_read(struct file *filp, char _= _user *ubuf, =20 return count; } +FOPS_READ_ITER_HELPER(lpc_debug_read); =20 static ssize_t lpc_debug_write(struct file *filp, const char __user *ubuf, size_t count, loff_t *ppos) @@ -342,10 +343,11 @@ static ssize_t lpc_debug_write(struct file *filp, con= st char __user *ubuf, =20 return count; } +FOPS_WRITE_ITER_HELPER(lpc_debug_write); =20 static const struct file_operations lpc_fops =3D { - .read =3D lpc_debug_read, - .write =3D lpc_debug_write, + .read_iter =3D lpc_debug_read_iter, + .write_iter =3D lpc_debug_write_iter, .open =3D simple_open, .llseek =3D default_llseek, }; diff --git a/arch/powerpc/platforms/powernv/opal-prd.c b/arch/powerpc/platf= orms/powernv/opal-prd.c index 24f04f20d3e8..ac760ad1e46d 100644 --- a/arch/powerpc/platforms/powernv/opal-prd.c +++ b/arch/powerpc/platforms/powernv/opal-prd.c @@ -156,10 +156,10 @@ static __poll_t opal_prd_poll(struct file *file, return 0; } =20 -static ssize_t opal_prd_read(struct file *file, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t opal_prd_read(struct kiocb *iocb, struct iov_iter *to) { struct opal_prd_msg_queue_item *item; + size_t count =3D iov_iter_count(to); unsigned long flags; ssize_t size, err; int rc; @@ -168,7 +168,7 @@ static ssize_t opal_prd_read(struct file *file, char __= user *buf, if (count < sizeof(item->msg.header)) return -EINVAL; =20 - if (*ppos) + if (iocb->ki_pos) return -ESPIPE; =20 item =3D NULL; @@ -186,7 +186,7 @@ static ssize_t opal_prd_read(struct file *file, char __= user *buf, if (item) break; =20 - if (file->f_flags & O_NONBLOCK) + if (iocb->ki_filp->f_flags & O_NONBLOCK) return -EAGAIN; =20 rc =3D wait_event_interruptible(opal_prd_msg_wait, @@ -201,7 +201,7 @@ static ssize_t opal_prd_read(struct file *file, char __= user *buf, goto err_requeue; } =20 - rc =3D copy_to_user(buf, &item->msg, size); + rc =3D !copy_to_iter_full(&item->msg, size, to); if (rc) { err =3D -EFAULT; goto err_requeue; @@ -219,9 +219,9 @@ static ssize_t opal_prd_read(struct file *file, char __= user *buf, return err; } =20 -static ssize_t opal_prd_write(struct file *file, const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t opal_prd_write(struct kiocb *iocb, struct iov_iter *from) { + size_t count =3D iov_iter_count(from); struct opal_prd_msg_header hdr; struct opal_prd_msg *msg; ssize_t size; @@ -233,13 +233,13 @@ static ssize_t opal_prd_write(struct file *file, cons= t char __user *buf, return -EINVAL; =20 /* grab the header */ - rc =3D copy_from_user(&hdr, buf, sizeof(hdr)); + rc =3D !copy_from_iter_full(&hdr, sizeof(hdr), from); if (rc) return -EFAULT; =20 size =3D be16_to_cpu(hdr.size); =20 - msg =3D memdup_user(buf, size); + msg =3D iterdup(from, size); if (IS_ERR(msg)) return PTR_ERR(msg); =20 @@ -325,8 +325,8 @@ static const struct file_operations opal_prd_fops =3D { .open =3D opal_prd_open, .mmap =3D opal_prd_mmap, .poll =3D opal_prd_poll, - .read =3D opal_prd_read, - .write =3D opal_prd_write, + .read_iter =3D opal_prd_read, + .write_iter =3D opal_prd_write, .unlocked_ioctl =3D opal_prd_ioctl, .release =3D opal_prd_release, .owner =3D THIS_MODULE, diff --git a/arch/powerpc/platforms/powernv/opal-xscom.c b/arch/powerpc/pla= tforms/powernv/opal-xscom.c index 748c2b97fa53..344bc747f576 100644 --- a/arch/powerpc/platforms/powernv/opal-xscom.c +++ b/arch/powerpc/platforms/powernv/opal-xscom.c @@ -84,12 +84,11 @@ struct scom_debug_entry { char name[16]; }; =20 -static ssize_t scom_debug_read(struct file *filp, char __user *ubuf, - size_t count, loff_t *ppos) +static ssize_t scom_debug_read(struct kiocb *iocb, struct iov_iter *to) { - struct scom_debug_entry *ent =3D filp->private_data; - u64 __user *ubuf64 =3D (u64 __user *)ubuf; - loff_t off =3D *ppos; + struct scom_debug_entry *ent =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(to); + loff_t off =3D iocb->ki_pos; ssize_t done =3D 0; u64 reg, reg_base, reg_cnt, val; int rc; @@ -102,25 +101,23 @@ static ssize_t scom_debug_read(struct file *filp, cha= r __user *ubuf, for (reg =3D 0; reg < reg_cnt; reg++) { rc =3D opal_scom_read(ent->chip, reg_base, reg, &val); if (!rc) - rc =3D put_user(val, ubuf64); + rc =3D put_iter(val, to); if (rc) { if (!done) done =3D rc; break; } - ubuf64++; - *ppos +=3D 8; + iocb->ki_pos +=3D 8; done +=3D 8; } return done; } =20 -static ssize_t scom_debug_write(struct file *filp, const char __user *ubuf, - size_t count, loff_t *ppos) +static ssize_t scom_debug_write(struct kiocb *iocb, struct iov_iter *from) { - struct scom_debug_entry *ent =3D filp->private_data; - u64 __user *ubuf64 =3D (u64 __user *)ubuf; - loff_t off =3D *ppos; + struct scom_debug_entry *ent =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); + loff_t off =3D iocb->ki_pos; ssize_t done =3D 0; u64 reg, reg_base, reg_cnt, val; int rc; @@ -131,7 +128,7 @@ static ssize_t scom_debug_write(struct file *filp, cons= t char __user *ubuf, reg_cnt =3D count >> 3; =20 for (reg =3D 0; reg < reg_cnt; reg++) { - rc =3D get_user(val, ubuf64); + rc =3D get_iter(val, from); if (!rc) rc =3D opal_scom_write(ent->chip, reg_base, reg, val); if (rc) { @@ -139,15 +136,14 @@ static ssize_t scom_debug_write(struct file *filp, co= nst char __user *ubuf, done =3D rc; break; } - ubuf64++; done +=3D 8; } return done; } =20 static const struct file_operations scom_debug_fops =3D { - .read =3D scom_debug_read, - .write =3D scom_debug_write, + .read_iter =3D scom_debug_read, + .write_iter =3D scom_debug_write, .open =3D simple_open, .llseek =3D default_llseek, }; diff --git a/arch/powerpc/platforms/pseries/dtl.c b/arch/powerpc/platforms/= pseries/dtl.c index 3f1cdccebc9c..3efb00703b43 100644 --- a/arch/powerpc/platforms/pseries/dtl.c +++ b/arch/powerpc/platforms/pseries/dtl.c @@ -257,17 +257,17 @@ static int dtl_file_release(struct inode *inode, stru= ct file *filp) return 0; } =20 -static ssize_t dtl_file_read(struct file *filp, char __user *buf, size_t l= en, - loff_t *pos) +static ssize_t dtl_file_read(struct kiocb *iocb, struct iov_iter *to) { long int rc, n_read, n_req, read_size; + size_t len =3D iov_iter_count(to); struct dtl *dtl; u64 cur_idx, last_idx, i; =20 if ((len % sizeof(struct dtl_entry)) !=3D 0) return -EINVAL; =20 - dtl =3D filp->private_data; + dtl =3D iocb->ki_filp->private_data; =20 /* requested number of entries to read */ n_req =3D len / sizeof(struct dtl_entry); @@ -300,19 +300,19 @@ static ssize_t dtl_file_read(struct file *filp, char = __user *buf, size_t len, if (i + n_req > dtl->buf_entries) { read_size =3D dtl->buf_entries - i; =20 - rc =3D copy_to_user(buf, &dtl->buf[i], - read_size * sizeof(struct dtl_entry)); + rc =3D !copy_to_iter_full(&dtl->buf[i], + read_size * sizeof(struct dtl_entry), to); if (rc) return -EFAULT; =20 i =3D 0; n_req -=3D read_size; n_read +=3D read_size; - buf +=3D read_size * sizeof(struct dtl_entry); } =20 /* .. and now the head */ - rc =3D copy_to_user(buf, &dtl->buf[i], n_req * sizeof(struct dtl_entry)); + rc =3D !copy_to_iter_full(&dtl->buf[i], n_req * sizeof(struct dtl_entry), + to); if (rc) return -EFAULT; =20 @@ -324,7 +324,7 @@ static ssize_t dtl_file_read(struct file *filp, char __= user *buf, size_t len, static const struct file_operations dtl_fops =3D { .open =3D dtl_file_open, .release =3D dtl_file_release, - .read =3D dtl_file_read, + .read_iter =3D dtl_file_read, .llseek =3D no_llseek, }; =20 diff --git a/arch/powerpc/platforms/pseries/lpar.c b/arch/powerpc/platforms= /pseries/lpar.c index 4e9916bb03d7..2ccbcf9f295a 100644 --- a/arch/powerpc/platforms/pseries/lpar.c +++ b/arch/powerpc/platforms/pseries/lpar.c @@ -1991,19 +1991,18 @@ machine_device_initcall(pseries, reserve_vrma_conte= xt_id); =20 #ifdef CONFIG_DEBUG_FS /* debugfs file interface for vpa data */ -static ssize_t vpa_file_read(struct file *filp, char __user *buf, size_t l= en, - loff_t *pos) +static ssize_t vpa_file_read(struct kiocb *iocb, struct iov_iter *to) { - int cpu =3D (long)filp->private_data; + int cpu =3D (long)iocb->ki_filp->private_data; struct lppaca *lppaca =3D &lppaca_of(cpu); =20 - return simple_read_from_buffer(buf, len, pos, lppaca, - sizeof(struct lppaca)); + return simple_copy_to_iter(lppaca, &iocb->ki_pos, sizeof(struct lppaca), + to); } =20 static const struct file_operations vpa_fops =3D { .open =3D simple_open, - .read =3D vpa_file_read, + .read_iter =3D vpa_file_read, .llseek =3D default_llseek, }; =20 diff --git a/arch/powerpc/platforms/pseries/papr-vpd.c b/arch/powerpc/platf= orms/pseries/papr-vpd.c index c29e85db5f35..bab048029ed5 100644 --- a/arch/powerpc/platforms/pseries/papr-vpd.c +++ b/arch/powerpc/platforms/pseries/papr-vpd.c @@ -408,9 +408,9 @@ static const struct vpd_blob *papr_vpd_retrieve(const s= truct papr_location_code return blob; } =20 -static ssize_t papr_vpd_handle_read(struct file *file, char __user *buf, s= ize_t size, loff_t *off) +static ssize_t papr_vpd_handle_read(struct kiocb *iocb, struct iov_iter *t= o) { - const struct vpd_blob *blob =3D file->private_data; + const struct vpd_blob *blob =3D iocb->ki_filp->private_data; =20 /* bug: we should not instantiate a handle without any data attached. */ if (!vpd_blob_has_data(blob)) { @@ -418,7 +418,7 @@ static ssize_t papr_vpd_handle_read(struct file *file, = char __user *buf, size_t return -EIO; } =20 - return simple_read_from_buffer(buf, size, off, blob->data, blob->len); + return simple_copy_to_iter(blob->data, &iocb->ki_pos, blob->len, to); } =20 static int papr_vpd_handle_release(struct inode *inode, struct file *file) @@ -439,7 +439,7 @@ static loff_t papr_vpd_handle_seek(struct file *file, l= off_t off, int whence) =20 =20 static const struct file_operations papr_vpd_handle_ops =3D { - .read =3D papr_vpd_handle_read, + .read_iter =3D papr_vpd_handle_read, .llseek =3D papr_vpd_handle_seek, .release =3D papr_vpd_handle_release, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f45.google.com (mail-io1-f45.google.com [209.85.166.45]) (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 3620C1E82F9 for ; Thu, 11 Apr 2024 15:41:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850068; cv=none; b=b49TwGVuZQzIEo6G30dcZdZ5Sz+u9Rsk1q4jQloic9ZicTeUVNARl6vFkgsgHIy6jXpz/4b5FAcNFeaC9aAY2IORVBh/zw5aYhlZEbvG+P8OZ4sTs8Xggu/KSlhWr/NoYSwSoCl4uZbmlTsEfw9nLPa/keolu0bukUy2rpHElwc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850068; c=relaxed/simple; bh=5EjmrqHPTVb1tcQjhIbfw/W8hV02faCwyAgLm9OOUsU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=AHIZ3+II2ShcpLB1fxXw6lYpmmr6LcqHC+8k3zOXIW9IQHXI+E+e5mpWHGLxPBpRQZZ4nFWxwljIQTNOFGTfWybDa4TbrvEcgfwprKAN/ZNCbM1S+ddUrYfxkLIcuaECAbWrNclH+q+hN+7sK7hYInuFGcECwsqkpYlBir9UCk0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=hFODbEsk; arc=none smtp.client-ip=209.85.166.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="hFODbEsk" Received: by mail-io1-f45.google.com with SMTP id ca18e2360f4ac-7d6112ba6baso58225139f.1 for ; Thu, 11 Apr 2024 08:41:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850066; x=1713454866; 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=FIM4TH/UmAjjcuOb7+hL3DbRPexG4VlEyKPnN1TCQJg=; b=hFODbEskJMWMscS7HUIqruDunvpiRku88rO9K+eHSSyiZCKhcUlbup5lPLOhkxZjLi 9/4nqnTEeN3HgrKbi/2gJK97na8WHYamXj75+d8iYWbqxPLBz7GXYtv4d77iJnOPiIi3 0Nmz1tcZhBgSzAsY1tr/Ubk2ZbZyINgHHQHul1pJKJsz69HpKUpVe8kSSo8luruUMVhp QNAIvg0dkBQOS4VGUEjhVnuUBl6ixJrW5eBEMFWz7pPbeWtvOyU6e21/MJkq39AaIEGv iNKsru3nnNzFS6+etk7GY/ABBg83NbouzFMuftatY0QDx2xDbqgRPg5aosVyb5kE6oPC bQdQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850066; x=1713454866; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=FIM4TH/UmAjjcuOb7+hL3DbRPexG4VlEyKPnN1TCQJg=; b=tB1vHn5CwUpzd/YpqIpFUCPzPr30Jo9upxeD5Y83Y9TcGy0GqR0Zb+cax0RL417Bh9 2QRK7HE405Ux2ibS6mqbHpOxtjWndD5fcqu0cR2/1o5cAyVGMcI6tP0SMyxdNXBg0b0I dY5MndtLeeMuBzFFPnujGB6VIe481BATLBPWuNASOs3Yk9IoSZmzHUtB4yvppo/G/oev 78PJvC4XgIyq1M0GcsG+sxEWsjRCcyi8CU57qOxVoePUmN+KbKUtlMoHgjJ64f33ccQD 75BDU/pDq8bkLYJT2MSO3Yd8gqfpqTRproFjvhKbH+ISoZACiMa5PnWtRBVKUZVyAOCq WRBg== X-Gm-Message-State: AOJu0YySXQIp6P9W/Oql+vFUA+acRWyYiZSuP7tDecdvRGQ2P1qs3CGC Oz/65KoeIxVa4BeozVrJpoumZ55+ZY6j06pjiCVAL4hYt1sH0HCS1hAyaNi77Hoo4/XigATIc6L Z X-Google-Smtp-Source: AGHT+IH7T0/YfkpRuptrZ6wrzHT/ZTE7vx2w0+u/BGcOoZ/Ain79aEPzsWjE40iCTz5rOJMPV8OzWA== X-Received: by 2002:a05:6602:38d:b0:7d6:513b:254 with SMTP id f13-20020a056602038d00b007d6513b0254mr200387iov.2.1712850065956; Thu, 11 Apr 2024 08:41:05 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.41.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:41:04 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 341/437] s390: cio: convert to read/write iterators Date: Thu, 11 Apr 2024 09:18:01 -0600 Message-ID: <20240411153126.16201-342-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/s390/cio/cio_inject.c | 11 ++++++----- drivers/s390/cio/qdio_debug.c | 12 ++++++------ 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/drivers/s390/cio/cio_inject.c b/drivers/s390/cio/cio_inject.c index 8613fa937237..33ccd36098b3 100644 --- a/drivers/s390/cio/cio_inject.c +++ b/drivers/s390/cio/cio_inject.c @@ -123,15 +123,16 @@ static ssize_t crw_inject_write(struct file *file, co= nst char __user *buf, =20 return lbuf; } +FOPS_WRITE_ITER_HELPER(crw_inject_write); =20 /* Debugfs write handler for inject_enable node*/ -static ssize_t enable_inject_write(struct file *file, const char __user *b= uf, - size_t lbuf, loff_t *ppos) +static ssize_t enable_inject_write(struct kiocb *iocb, struct iov_iter *fr= om) { + size_t lbuf =3D iov_iter_count(from); unsigned long en =3D 0; int rc; =20 - rc =3D kstrtoul_from_user(buf, lbuf, 10, &en); + rc =3D kstrtoul_from_iter(from, lbuf, 10, &en); if (rc) return rc; =20 @@ -149,12 +150,12 @@ static ssize_t enable_inject_write(struct file *file,= const char __user *buf, =20 static const struct file_operations crw_fops =3D { .owner =3D THIS_MODULE, - .write =3D crw_inject_write, + .write_iter =3D crw_inject_write_iter, }; =20 static const struct file_operations cio_en_fops =3D { .owner =3D THIS_MODULE, - .write =3D enable_inject_write, + .write_iter =3D enable_inject_write, }; =20 static int __init cio_inject_init(void) diff --git a/drivers/s390/cio/qdio_debug.c b/drivers/s390/cio/qdio_debug.c index 1a9714af51e4..0c9f84c5197f 100644 --- a/drivers/s390/cio/qdio_debug.c +++ b/drivers/s390/cio/qdio_debug.c @@ -234,11 +234,11 @@ static int qperf_show(struct seq_file *m, void *v) return 0; } =20 -static ssize_t qperf_seq_write(struct file *file, const char __user *ubuf, - size_t count, loff_t *off) +static ssize_t qperf_seq_write(struct kiocb *iocb, struct iov_iter *from) { - struct seq_file *seq =3D file->private_data; + struct seq_file *seq =3D iocb->ki_filp->private_data; struct qdio_irq *irq_ptr =3D seq->private; + size_t count =3D iov_iter_count(from); struct qdio_q *q; unsigned long val; int ret, i; @@ -246,7 +246,7 @@ static ssize_t qperf_seq_write(struct file *file, const= char __user *ubuf, if (!irq_ptr) return 0; =20 - ret =3D kstrtoul_from_user(ubuf, count, 10, &val); + ret =3D kstrtoul_from_iter(from, count, 10, &val); if (ret) return ret; =20 @@ -275,8 +275,8 @@ static int qperf_seq_open(struct inode *inode, struct f= ile *filp) static const struct file_operations debugfs_perf_fops =3D { .owner =3D THIS_MODULE, .open =3D qperf_seq_open, - .read =3D seq_read, - .write =3D qperf_seq_write, + .read_iter =3D seq_read_iter, + .write_iter =3D qperf_seq_write, .llseek =3D seq_lseek, .release =3D single_release, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-il1-f179.google.com (mail-il1-f179.google.com [209.85.166.179]) (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 F30001E82F7 for ; Thu, 11 Apr 2024 15:41:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.179 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850070; cv=none; b=nZWdJXotFEiibyHbRhjADxx4ZUa24ouH4nF0WKQjgiJt5Z0oVE483TQMckkDdrxeSAWal4bsDnpjZSi7GyI/aAMdj4goC465kiHDoUdAN6+qG5kq/Rliant3nvUPWr3vpMfQwl6hJqOpFpD71mLHgjZ6P3TsDXQPWwrZxlFshGQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850070; c=relaxed/simple; bh=ITb8KOwmbUKgoOui9gC0IKYwtAIg0e4C0OHDvvGUThc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=mYUPhSJR4uJ4mbh3Ds0gspVOOxcUTdOmxvSCVCO6g5JEJ59kLPTfkSqWvdcPL/IVy1JsYDnKc/MbR+nTKiOXHU3cMmsWtLYmmNMwry+UtDcoV8zf6kvrRyV6OUY1cGqEPhblfkARGru2MH2uOLNHwQNDy65CQh8MQs4dT2OypEg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=mFUi5QJU; arc=none smtp.client-ip=209.85.166.179 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="mFUi5QJU" Received: by mail-il1-f179.google.com with SMTP id e9e14a558f8ab-36a224d7414so194345ab.1 for ; Thu, 11 Apr 2024 08:41:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850068; x=1713454868; 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=vv4bAOODXJgx8r16bKbR8tk4hrWGJK7Hg/pbVqwYvpY=; b=mFUi5QJUJWspUOnn//qM4WOq3HjXT7ZRENOf1qsGOCRA3/5ZORA6RiZkKdGhiDvT1G yfAb8c7ZZgltAMBX5aM7wmoUw7ifJLF5JfdbB4EezYPuSeN1ciZFfXVbfePJeLk50rhH vSLzyoZbSlTUl7BIhszuGJy05gDz4jEBKiTU+5uo/rfN08ITAUg9oR8MiZFQNBOcidmN AFZoHXNEo/b7gFj2QcNz0bvtQUY8xGOVqqRMg/wduym0ELVk6w/fVg1euNd6o/ZvQLkD 8y1Ozx7vHzci9TYAayLcu12nNentylONodL0M8ss4d7m6G7I+ayXUxGj6uOFUQU2F2A3 EYfw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850068; x=1713454868; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=vv4bAOODXJgx8r16bKbR8tk4hrWGJK7Hg/pbVqwYvpY=; b=u9Tn6pIiDUCLmxynvR+5AErLsmmTcUr8w/2eqtczJys2yR1U3nk2IM8HMg1rzYF6WZ oHR2MxUV4xoBn+jLqImoQBocjadkzMXFZhyP+VSkHByuqbSewt92hrSy19B1YHCKPyJh OE+BqgB9EsPKoVbHzt/YxIGQbUNFLdWQyHGfcmpb7aF01rjwnBf5i1ePbgx4wdkh/vYh 3arXMozksA/jX6zJoyBRlozigifFKLKknv1nZ9O86L9Ee9p13wZfDR57yi9Ls9PA+blY aHRQyTx+EzYtz5h2zBMcfbKKUEcoC/+oF2KLTEfhzs2vpgitpYkifiGaT1l1NrC6O2t1 79Dg== X-Gm-Message-State: AOJu0YzkgpcTxjyIWnvpjVU3Tr4SY1VMnYA1a3QcoKmvQFYF2ad6LE7m +JhGCIWzDgrQfZfkA+VsVYOet37FVfv5LvJGdO6O74xte9GjYAhNEDwDIJMxNmyrUn5aS/M/sPl 3 X-Google-Smtp-Source: AGHT+IFbPA6f7MWU6nmLo0b11jYuqQ/NhLduoV8qSDFr4iBixT7iQiJaR0PW0X7pj2vorR6Fg9q1WQ== X-Received: by 2002:a6b:6605:0:b0:7d4:1dae:da1a with SMTP id a5-20020a6b6605000000b007d41daeda1amr160805ioc.2.1712850067881; Thu, 11 Apr 2024 08:41:07 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.41.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:41:06 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 342/437] s390: fs3270: convert to read/write iterators Date: Thu, 11 Apr 2024 09:18:02 -0600 Message-ID: <20240411153126.16201-343-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/s390/char/fs3270.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/s390/char/fs3270.c b/drivers/s390/char/fs3270.c index 4d824f86bbbb..c8c767342167 100644 --- a/drivers/s390/char/fs3270.c +++ b/drivers/s390/char/fs3270.c @@ -276,6 +276,7 @@ static ssize_t fs3270_read(struct file *filp, char __us= er *data, idal_buffer_free(ib); return rc; } +FOPS_READ_ITER_HELPER(fs3270_read); =20 /* * Process writes to fullscreen 3270. @@ -316,6 +317,7 @@ static ssize_t fs3270_write(struct file *filp, const ch= ar __user *data, idal_buffer_free(ib); return rc; } +FOPS_WRITE_ITER_HELPER(fs3270_write); =20 /* * process ioctl commands for the tube driver @@ -509,8 +511,8 @@ static int fs3270_close(struct inode *inode, struct fil= e *filp) =20 static const struct file_operations fs3270_fops =3D { .owner =3D THIS_MODULE, /* owner */ - .read =3D fs3270_read, /* read */ - .write =3D fs3270_write, /* write */ + .read_iter =3D fs3270_read_iter, /* read */ + .write_iter =3D fs3270_write_iter, /* write */ .unlocked_ioctl =3D fs3270_ioctl, /* ioctl */ .compat_ioctl =3D fs3270_ioctl, /* ioctl */ .open =3D fs3270_open, /* open */ --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f46.google.com (mail-io1-f46.google.com [209.85.166.46]) (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 BD72F166C68 for ; Thu, 11 Apr 2024 15:41:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850072; cv=none; b=Wsvp5ZkaoIFM/P5Kwx/EyJaRgA/LzWFTXO+n+7dKTUDPEcfpPZOQHeRZclBZ2io/6abS6ypRZyngJm22jQTl605enkWKQccuWuaiDpNG+HlXN4ZEab1I+pHaAM+MWFK06u9rvnaPk9jVEIk85Y+jcQoesLpnffMA1aAS/2pDtwY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850072; c=relaxed/simple; bh=JHvAsWj1kuv+uwDxm01zwuKvRakyFwSuoZ8iTR25k1I=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=dNL9gTunSTWDHhlm++If8ec2qa4NPxC6z/7o89ouflH1YLs8pSbCLiuPT9I1PL4dwl23t51rf8YEMqP2JJkKZCvwQhg2fD7Fa5Rbn5qEOCIE3St0Nuxu06yrKV/7w9SdUfcEbiVbVB9hUg+aXK4lNdktjfXR01beQR5wanwPx88= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=uPY4Filq; arc=none smtp.client-ip=209.85.166.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="uPY4Filq" Received: by mail-io1-f46.google.com with SMTP id ca18e2360f4ac-7d0772bb5ffso180642739f.0 for ; Thu, 11 Apr 2024 08:41:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850069; x=1713454869; 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=E+LQ1n3KaSliKBjpt9vFI0T94kaPILgp3qXZvqc94zI=; b=uPY4Filq0vRRI+p/PnqXnksv0mw9b/bFHiARHsFJEDckJUnxb3IQlN24l+WblxmgJz Ps6cIZ8vYiijKVLFy/pEJFb0StGFltRDdirkQYFMFwKEJWt/Vwre0FuoS5YBgjT9U6hn qg6gRmmJOFdB+rqQzp/2hnZIthmn3zwPDxoJdrEn0zuOtkrQnMpJn+PML7GvQueXNfND 18neVlsaGer3FCRc0T3/+ji4P7+55dTD9Kmdntq4n98slEabadkfeE1v5f2bz2lAQp+W FcGCHfnN9raM34mPPxQAjdcPtKDqgjXdxNoNALD0eazKjZ39s923KkTVK8PcYc1mGv58 Z5CA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850069; x=1713454869; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=E+LQ1n3KaSliKBjpt9vFI0T94kaPILgp3qXZvqc94zI=; b=RshgqhdQEPGy9t+NU8iy0z98bq6glHEsjM1jLfBKQfltaQ9YVKMF7vizGgIAmZ97pw e3RxIsFdXZ7jIJW3T3dgf5gnkWmtfKay6o+mpx5JO4cuW5z6yDtWbhXh/VvhE3HoLJ85 79+Z1kX3SuV0jRECiOqU9pSl1XF6wjTEw+Fyaq1DAn1cr+rVMKw3L5GOmLW1KRz+M+88 hKBVEqtGvCY1glzG6eLMa2W9yJQWk7aLIKIYpCLEz2OTjwv5qfBm4PC0Z8jpzG7OguXD wkhPpB5mv2c1nyKQyRzn/J3L1di1mYOCw9jyuKtEt1NWFVzCGof6Mr/ge0ZDSFR7X2Dp sVaA== X-Gm-Message-State: AOJu0Ywrx2E/SsLSk6R6GZP2rock4zuEQ5hsytBJ8KoiCKIEmMADB4cD BhTW31LfFOukLPBDCXqp98xIueTIZh5X5UfMXTYa0YlFeA6jzT/r6Ti4O+lc02dhAe23sO+Fg8V K X-Google-Smtp-Source: AGHT+IH3DRY2sigutqUeYs33PL8SCtIyoiezy8C3BIkLkG3Tf0fKIpVQX3Wn8zIG36I/xOlhWt+9PA== X-Received: by 2002:a05:6602:4ed7:b0:7d5:ddc8:504d with SMTP id gk23-20020a0566024ed700b007d5ddc8504dmr199869iob.0.1712850069592; Thu, 11 Apr 2024 08:41:09 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.41.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:41:08 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 343/437] s390: hmcdrv: convert to read/write iterators Date: Thu, 11 Apr 2024 09:18:03 -0600 Message-ID: <20240411153126.16201-344-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/s390/char/hmcdrv_dev.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/s390/char/hmcdrv_dev.c b/drivers/s390/char/hmcdrv_dev.c index 8d50c894711f..df793008a390 100644 --- a/drivers/s390/char/hmcdrv_dev.c +++ b/drivers/s390/char/hmcdrv_dev.c @@ -56,10 +56,8 @@ struct hmcdrv_dev_node { static int hmcdrv_dev_open(struct inode *inode, struct file *fp); static int hmcdrv_dev_release(struct inode *inode, struct file *fp); static loff_t hmcdrv_dev_seek(struct file *fp, loff_t pos, int whence); -static ssize_t hmcdrv_dev_read(struct file *fp, char __user *ubuf, - size_t len, loff_t *pos); -static ssize_t hmcdrv_dev_write(struct file *fp, const char __user *ubuf, - size_t len, loff_t *pos); +static ssize_t hmcdrv_dev_read_iter(struct kiocb *iocb, struct iov_iter *t= o); +static ssize_t hmcdrv_dev_write_iter(struct kiocb *iocb, struct iov_iter *= from); static ssize_t hmcdrv_dev_transfer(char __kernel *cmd, loff_t offset, char __user *buf, size_t len); =20 @@ -70,8 +68,8 @@ static const struct file_operations hmcdrv_dev_fops =3D { .open =3D hmcdrv_dev_open, .llseek =3D hmcdrv_dev_seek, .release =3D hmcdrv_dev_release, - .read =3D hmcdrv_dev_read, - .write =3D hmcdrv_dev_write, + .read_iter =3D hmcdrv_dev_read_iter, + .write_iter =3D hmcdrv_dev_write_iter, }; =20 static struct hmcdrv_dev_node hmcdrv_dev; /* HMC device struct (static) */ @@ -239,6 +237,7 @@ static ssize_t hmcdrv_dev_read(struct file *fp, char __= user *ubuf, =20 return retlen; } +FOPS_READ_ITER_HELPER(hmcdrv_dev_read); =20 /* * write() @@ -276,6 +275,7 @@ static ssize_t hmcdrv_dev_write(struct file *fp, const = char __user *ubuf, =20 return retlen; } +FOPS_WRITE_ITER_HELPER(hmcdrv_dev_write); =20 /** * hmcdrv_dev_init() - creates a HMC drive CD/DVD device --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f52.google.com (mail-io1-f52.google.com [209.85.166.52]) (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 86646166C91 for ; Thu, 11 Apr 2024 15:41:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850073; cv=none; b=gQHz/P6jhqX7iaoEEWsr48R/Uz8X3tezRnAS9KstFSRy0QCo3HdEwt+rOzTmWLAUmENEF1gFmMu08KP4GvGVed+KKDK65A7h65RHoz0UUfSgBZPPCw3qMpAdCNeGctIjqJlQ/5zHBR8gAXiiuJBS0+jhemZzhXdFXUdDpy+8FPM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850073; c=relaxed/simple; bh=DYf2TY+17i5nX7wYtBIghalksv6GFdmvBRWzHUOLMPM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=a6x7ojKMEyoqKC6HMXYf5+G6e2NCgpqlPEU1/JoSnJTE9gO4i4eWgLkqG4hkaGH/WwXb/2UtINOR7+OARPgQVf8sAOs3onuioAS+xoHc1Owv9kTQjoBrk3/MuCnjFvqiEwHH/kVW4OFiwI/Hr2DdwuE+6qEZsIcvzpvmJdEWGyo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=EqE9uWFr; arc=none smtp.client-ip=209.85.166.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="EqE9uWFr" Received: by mail-io1-f52.google.com with SMTP id ca18e2360f4ac-7d6112ba6baso58227139f.1 for ; Thu, 11 Apr 2024 08:41:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850071; x=1713454871; 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=GDXwUBD2IGyodxzdSdK7jCrkZvD1GwYQ00rG9c8PhyM=; b=EqE9uWFrt41jY/3VasDX6uHnVlWLN8Mue7mHfJ2ssCYLnzKO2hqRN1SiodriDPQMV6 tN6FGSbxlUFHmmqdkdT2ZQf7nXUHVt7U+RW65o0t3lovTg0u4VwaAYoJ881RnPqKCsm2 GgJ9qn5+On6ajrHlaFduS9a7lZyrJ6Z0g7VYWLk9E0J7Ln1Xoovch+Ux1qFmb1EcJDl7 +3h2/8Erbq5GmNPI73ScQLomXt8n70z8oY/4bfodU3K9HMLABClnX7yV+bo3PWZpplaQ 36oD3wfZs7ODZ5k01mGWNFrn7vxwJ25zsiqNDXZMArEYaGo7qkq4zIXNzS9+sEJrbISG 7FNQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850071; x=1713454871; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=GDXwUBD2IGyodxzdSdK7jCrkZvD1GwYQ00rG9c8PhyM=; b=KXzQrCPua/BYnzqSThp6yd09Wf9JHxqgAnw9BHBDrZ+wMTv3pnmH76aOgu0khudGJN j/ZSrYOLFc2N1LKz2Vwd+eu785shHprZuKRPb4NGPAxqnKpSIF77X+kJkJf/IMHtTtoa uw8SkwODnEJy3+tqOqo3we096nfxfRfP6YpGBIUPoRF5zY7Adc/3pvTCV+ZNC0vigvLB tyfJQ+ZV08C8Re+MqsWilJG/S6axQ9hLp38WjDOUpNpFmawqFxL4bmUXGsih0FPDULOb Mn45JHmUOhODpVkE6ydyqPjizQMrrpbvlhdMRGfDzh8EBns5og4ivLssiYrR7ESFLEJv KcOw== X-Gm-Message-State: AOJu0Ywg8zMo1lmX1QAaiJPCnsPRqoXZrLaksyuEFNla3iCEoqaVSwna yVqv8yZCleTAPx6jBw5BkSkAumet98naWn0B/C/hTVI49CGIFf7dobMxPDZ1Zp+rzr/BEMh1NLO l X-Google-Smtp-Source: AGHT+IHiaVztBkemIV0vkEDxEwDiOCkEh16oixrFcwxqpVNF7TWoO09dzAiYDK368FW0By6yGXrF5Q== X-Received: by 2002:a05:6602:38d:b0:7d6:513b:254 with SMTP id f13-20020a056602038d00b007d6513b0254mr200669iov.2.1712850071299; Thu, 11 Apr 2024 08:41:11 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.41.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:41:09 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 344/437] s390: tape_char: convert to read/write iterators Date: Thu, 11 Apr 2024 09:18:04 -0600 Message-ID: <20240411153126.16201-345-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/s390/char/tape_char.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/drivers/s390/char/tape_char.c b/drivers/s390/char/tape_char.c index cc8237afeffa..b6a8e99f0d31 100644 --- a/drivers/s390/char/tape_char.c +++ b/drivers/s390/char/tape_char.c @@ -32,8 +32,8 @@ /* * file operation structure for tape character frontend */ -static ssize_t tapechar_read(struct file *, char __user *, size_t, loff_t = *); -static ssize_t tapechar_write(struct file *, const char __user *, size_t, = loff_t *); +static ssize_t tapechar_read_iter(struct kiocb *iocb, struct iov_iter *to); +static ssize_t tapechar_write_iter(struct kiocb *iocb, struct iov_iter *fr= om); static int tapechar_open(struct inode *,struct file *); static int tapechar_release(struct inode *,struct file *); static long tapechar_ioctl(struct file *, unsigned int, unsigned long); @@ -44,8 +44,8 @@ static long tapechar_compat_ioctl(struct file *, unsigned= int, unsigned long); static const struct file_operations tape_fops =3D { .owner =3D THIS_MODULE, - .read =3D tapechar_read, - .write =3D tapechar_write, + .read_iter =3D tapechar_read_iter, + .write_iter =3D tapechar_write_iter, .unlocked_ioctl =3D tapechar_ioctl, #ifdef CONFIG_COMPAT .compat_ioctl =3D tapechar_compat_ioctl, @@ -179,6 +179,7 @@ tapechar_read(struct file *filp, char __user *data, siz= e_t count, loff_t *ppos) tape_free_request(request); return rc; } +FOPS_READ_ITER_HELPER(tapechar_read); =20 /* * Tape device write function @@ -263,6 +264,7 @@ tapechar_write(struct file *filp, const char __user *da= ta, size_t count, loff_t =20 return rc ? rc : written; } +FOPS_WRITE_ITER_HELPER(tapechar_write); =20 /* * Character frontend tape device open function. --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f43.google.com (mail-io1-f43.google.com [209.85.166.43]) (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 0CFCA1E9C06 for ; Thu, 11 Apr 2024 15:41:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850075; cv=none; b=KmWR2oeVaw+AnSLUSyk3MH5xKr52lz0ICjLQgEzIifRBWy7Cq4hvrz+Tfbdkf5GtbGJcTVgfQ6ZJUhvR3M+nv1fsZ+5Zh/xksKa8dcfTglg/Whm1MAe/6JpChi0sh+JJp3CE9ckA02EsGNe1LLWN/3Kh5GZN2HInkLwiRo9nx3I= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850075; c=relaxed/simple; bh=1Xm1LvJZKXM9ByANh2Jrf1IcSwqEwwhCyyblOz47k50=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=WU+ouoJNPfWRbz2TmhyxS2naCvP7i/QfPjA3PuJko1GNxGOojm/gTtUFeJiWdmB1VguUN+Xu+IuABpFrgL60MqtkE3b986r6+J4I++h8OZvRb61inUHiAvlMLOm5uwU5BkM8pBewjAzzITppR1jPXJYN0SmGk7SWdsAXE8oBRwI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=GQtGMwFN; arc=none smtp.client-ip=209.85.166.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="GQtGMwFN" Received: by mail-io1-f43.google.com with SMTP id ca18e2360f4ac-7d67d1073easo9904139f.0 for ; Thu, 11 Apr 2024 08:41:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850073; x=1713454873; 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=qptWCWsiaBboNfaOYpRLtNVackXnhTKqn/zsehAZOC4=; b=GQtGMwFN8kg/e+b0h9vtoLMvnP+IzH6YHjbzPmEz5CcxmcIPtJtzL16rXlTaWvl+I+ toPyT1DxPqYNBD7nTnRlwvbZDRkdUBm0u43gpZtAfuiu8VXBFdq9vaRUkPuzPXiFZycm XRJhyegCjrvtFTQhMY5w99gNbwd4np/30I5m+j6G/MXu/UqNEBMdtrWqkBooGvCJhyuC uqBOXP95GtHr9eTp+/GCIP8fRIhbkXK1whHB3T8qPuOb3p6iO+fgauc7zBkf4R0mx+KQ 2y+TADNVImQoifsW6u8nbAH2zdspoy2YiJfBmolZcEW4j9LLGUJQcSGbwsr9Mh0bNA9e +0Cg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850073; x=1713454873; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=qptWCWsiaBboNfaOYpRLtNVackXnhTKqn/zsehAZOC4=; b=ki+ykPcikZue6mL2onVGbPAav4aGTw4/0pRkjzv7Dz0dXZfHYRzJ9INb38O7jueXXW YJa/rmSEJCcTejp3pSXSeZHQ3GlPNXly7a6/wAraz+f2u0A4fXVjrFSvyyoDw68L9Kvy a0dwMeKUHmEXSQFbMDM6qKjNLi2fA768QobKKMC8vcj8crN6o3+ATwtXZLk+d00dy8U0 LVYBlf44cgeg+BKA8e1ltOyBGqGyNXpFMO7T334taRgyMZOaxlw9W6I0gLNzgbNLDVsN IkdYGIoATeFIFHo0AzyONcbSXkuCQvU/N0fpJqYTsfNsmTLXuvHPc1iYg9xhwqx4pa2f OJ1g== X-Gm-Message-State: AOJu0YzU+lTNCW+KoRfNn5L0OrWPmhDaRzefAaO0+SEMAThDYUcQp+UR vuVjZxNmCNwgr14sCQrMDDW+rt7ioIJI4t73XWiQNZt23fTlOOJxAK4buZ1Ow1+NgukCKGFjfQ8 I X-Google-Smtp-Source: AGHT+IF0tA+SadCsHrXiOM8Cn9xB9/0/ei86nQiSMwGL22g0n4hUr2fR8PAPWnp8pyZqvUu/TxtkgA== X-Received: by 2002:a6b:7b05:0:b0:7d6:60dc:bc8e with SMTP id l5-20020a6b7b05000000b007d660dcbc8emr206160iop.1.1712850072879; Thu, 11 Apr 2024 08:41:12 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.41.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:41:11 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 345/437] s390: vmcp: convert to read/write iterators Date: Thu, 11 Apr 2024 09:18:05 -0600 Message-ID: <20240411153126.16201-346-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/s390/char/vmcp.c | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/drivers/s390/char/vmcp.c b/drivers/s390/char/vmcp.c index eb0520a9d4af..348e528a386d 100644 --- a/drivers/s390/char/vmcp.c +++ b/drivers/s390/char/vmcp.c @@ -128,14 +128,13 @@ static int vmcp_release(struct inode *inode, struct f= ile *file) return 0; } =20 -static ssize_t -vmcp_read(struct file *file, char __user *buff, size_t count, loff_t *ppos) +static ssize_t vmcp_read(struct kiocb *iocb, struct iov_iter *to) { ssize_t ret; size_t size; struct vmcp_session *session; =20 - session =3D file->private_data; + session =3D iocb->ki_filp->private_data; if (mutex_lock_interruptible(&session->mutex)) return -ERESTARTSYS; if (!session->response) { @@ -143,27 +142,25 @@ vmcp_read(struct file *file, char __user *buff, size_= t count, loff_t *ppos) return 0; } size =3D min_t(size_t, session->resp_size, session->bufsize); - ret =3D simple_read_from_buffer(buff, count, ppos, - session->response, size); + ret =3D simple_copy_to_iter(session->response, &iocb->ki_pos, size, to); =20 mutex_unlock(&session->mutex); =20 return ret; } =20 -static ssize_t -vmcp_write(struct file *file, const char __user *buff, size_t count, - loff_t *ppos) +static ssize_t vmcp_write(struct kiocb *iocb, struct iov_iter *from) { char *cmd; struct vmcp_session *session; + size_t count =3D iov_iter_count(from); =20 if (count > 240) return -EINVAL; - cmd =3D memdup_user_nul(buff, count); + cmd =3D iterdup_nul(from, count); if (IS_ERR(cmd)) return PTR_ERR(cmd); - session =3D file->private_data; + session =3D iocb->ki_filp->private_data; if (mutex_lock_interruptible(&session->mutex)) { kfree(cmd); return -ERESTARTSYS; @@ -180,7 +177,7 @@ vmcp_write(struct file *file, const char __user *buff, = size_t count, &session->resp_code); mutex_unlock(&session->mutex); kfree(cmd); - *ppos =3D 0; /* reset the file pointer after a command */ + iocb->ki_pos =3D 0; /* reset the file pointer after a command */ return count; } =20 @@ -238,8 +235,8 @@ static const struct file_operations vmcp_fops =3D { .owner =3D THIS_MODULE, .open =3D vmcp_open, .release =3D vmcp_release, - .read =3D vmcp_read, - .write =3D vmcp_write, + .read_iter =3D vmcp_read, + .write_iter =3D vmcp_write, .unlocked_ioctl =3D vmcp_ioctl, .compat_ioctl =3D vmcp_ioctl, .llseek =3D no_llseek, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f47.google.com (mail-io1-f47.google.com [209.85.166.47]) (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 CA7F41E9C2E for ; Thu, 11 Apr 2024 15:41:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850077; cv=none; b=GxzbziRgu/PnE49IHWwR9GbeEyYbqCslp/DWwXnITtwyF/8BYbUlTWCTZMhyHtQ+0yZa7b40GZ+4ceUhPsfmKn1+Xls1/GU5X8dXuaUc5+Pje8zTouyZ6LPz/ew/MucgcAA6fPCpyMbxZxT+ZqE7TqEmiFWW+jH7qc8+HqCMhXQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850077; c=relaxed/simple; bh=j4AyBh09Y/PFBXy7IvktHeljaYLAC36fLppXt93g+jo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=fwY+mmxKhPbT6KnUhwzoqEPcJLL15MATuf6axzUcpc9gcfAWexExrTldaGC17U77bcB9OrVigrk9EIdrwGh5KSMcQ3HC4XK06iohhAmX1MMWUXCs9ySJdAeBFBTZB0uUkBpAAEz+aVhhITQpD+M924uKZWYh9ZplqQ4IaMBDGBM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=kBCTdowk; arc=none smtp.client-ip=209.85.166.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="kBCTdowk" Received: by mail-io1-f47.google.com with SMTP id ca18e2360f4ac-7d67d1073easo9904739f.0 for ; Thu, 11 Apr 2024 08:41:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850074; x=1713454874; 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=k3uht9aBlkrsCLM3su+LGMAtykGs5fn7572ZGAj+gSg=; b=kBCTdowkXZz1HJwdTdj09FZV6eyPYxQlIYfgGCmeUv4dpEa8w9JE1ySq7h/nsWVlEa ShuS2Dob6SGZ15RF7mWbRAWIVeA9vsKiemPTe1q7zM2V1+U0kP8+vfkjHkjPglMvn634 tb3ET5/6QhdH5+rS3ngWcv8kFrfADdjK9c/7yzQnBEu5lFDUn76KE6O/Pddd4xV7AxLh 8wqiBHQ1JuK8h/1OmoYYPhYZMbEvZRYUpL5ZD6+uqPFGdRERPdClJpmzXJIHeCx51Qns 1+aKnB25+khQi6iIA/wji+Fs1qN+lit+bQwkCdXROan9juWb4M0tqTfK+h0ITqHCH9QW L0wg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850074; x=1713454874; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=k3uht9aBlkrsCLM3su+LGMAtykGs5fn7572ZGAj+gSg=; b=HR7n5bo1O+mv0izg4O3vqg6gssnFDkxCT3JnHk/6nbT/RYwSYncBdoP/FyFfX+mM0W wnYYhA3b09nPh0R65F4t9CQ+GUeDLZ8Gin+2TUEBq8yhAyypks9sImdmSBEVz/tkG9hm K1sXNMDeEfsFJghe1Rl8O7vtspBr/TfD4awpefcwIHP72gYeTyV0MsVv4sT44LYpwS1L bzvNf86ULwpvnA/H3WaHWT7sB3/gFC+AXksB7THR8UReKShcbHD8IUQ7mLchH4vATAuw yxARwapQegIxhjEZyQnhSXTuVhqwnVofAS65b2/iFb/ozbqWO6+1fkWisWc1nS0jrDGx CSfQ== X-Gm-Message-State: AOJu0YxnrjBn39jlQavhACkE/Y1USqImB5Iu7B60H723HWGtPqiwoBcZ mmOFDPOwfpCJuMMaDnRyXdioyVPvSfFETT9CiKSqWPDQQvZg7e0jogUNSQFaDZ7jOOoxxkKdSka 6 X-Google-Smtp-Source: AGHT+IEhaWt52FIfvtgDuAVnmA/KVBLwW8DJjigC9NxxyOrZXGXMHAeSIuBS0VrsEe2Zf1rNEzvk8Q== X-Received: by 2002:a6b:7b05:0:b0:7d6:60dc:bc8e with SMTP id l5-20020a6b7b05000000b007d660dcbc8emr206232iop.1.1712850074591; Thu, 11 Apr 2024 08:41:14 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.41.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:41:13 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 346/437] s390: vmur: convert to read/write iterators Date: Thu, 11 Apr 2024 09:18:06 -0600 Message-ID: <20240411153126.16201-347-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/s390/char/vmur.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/s390/char/vmur.c b/drivers/s390/char/vmur.c index fe94dec427b6..187b0dde22e1 100644 --- a/drivers/s390/char/vmur.c +++ b/drivers/s390/char/vmur.c @@ -461,6 +461,7 @@ static ssize_t ur_write(struct file *file, const char _= _user *udata, =20 return do_write(urf->urd, udata, count, urf->dev_reclen, ppos); } +FOPS_WRITE_ITER_HELPER(ur_write); =20 /* * diagnose code 0x14 subcode 0x0028 - position spool file to designated @@ -580,6 +581,7 @@ static ssize_t ur_read(struct file *file, char __user *= ubuf, size_t count, mutex_unlock(&urd->io_mutex); return rc; } +FOPS_READ_ITER_HELPER(ur_read); =20 /* * diagnose code 0x14 subcode 0x0fff - retrieve next file descriptor @@ -799,8 +801,8 @@ static const struct file_operations ur_fops =3D { .owner =3D THIS_MODULE, .open =3D ur_open, .release =3D ur_release, - .read =3D ur_read, - .write =3D ur_write, + .read_iter =3D ur_read_iter, + .write_iter =3D ur_write_iter, .llseek =3D ur_llseek, }; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f49.google.com (mail-io1-f49.google.com [209.85.166.49]) (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 DB31D1EA747 for ; Thu, 11 Apr 2024 15:41:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850079; cv=none; b=jIu/ifwByvSnt+yhWYIBj0bgSDF8Nj8/m+0bIFdhwF4nopJPFgvqBLx1p1DchWXDq2D2A8OvtskFwcegenG+76KiMBvR7r4tzXCI1F2NYHrP1MwK99ebOZVUYySTh+vjZ4Weqo3mN4BQPwibQtNNG4KnJVJy20bRs/Bm1OE12/g= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850079; c=relaxed/simple; bh=o7zN9CWFaMWMQlAVPtOY+p2cpzzDnYwHboQIustiNSI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=riHsZsy0E57o9H84zrWuoZTYBBhZ3IpCijUA4stl/gKAoG7Nes6PfvU2O6IYcnyDugNFDK8Lq/6vbnJweuoCoKuRWdXoNEPDMQo8AABWQTguBydOYykXwtDKHH3yEczgjLRm+05JM58TVJRTFn7/QYt/KfPL77lO+BQnaOA488M= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=tTqJViYF; arc=none smtp.client-ip=209.85.166.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="tTqJViYF" Received: by mail-io1-f49.google.com with SMTP id ca18e2360f4ac-7cc0e831e11so170625739f.1 for ; Thu, 11 Apr 2024 08:41:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850076; x=1713454876; 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=5zzwpIQ8h/8VlEWcjWWA8wkx+DumuLOQT0dvc2L6+ow=; b=tTqJViYFEB/F3ezqaWmWh2IfESDw4ef1/zjrwYBxRaJxpsA4qpT1lfgdrVZeCdrvl6 tMeIep2avpgp/o/atZkDGADAYdkZ3/8HCar1U9SddYbsK8KQKcOSWYgqEajg1b4Fzagi cyWqBYac4xXBI7h/u4PbOhw09SVTNGtfZExQ1//eiTjM4oXFPdJKAktPZs1ySDgUA8wQ vU0yQYJonE2vhLRSSwnRVOuYfU/m1ypN1zX18mgLRF6SAqKJPPbc7/na74LLoh/5sL7C m5smXPxTSfb9nCvh5zUM6P/pUMDfvrY8CHtFZ491oRELh4mdGulB40v4DXcnuaYiP3gc GfQw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850076; x=1713454876; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=5zzwpIQ8h/8VlEWcjWWA8wkx+DumuLOQT0dvc2L6+ow=; b=QSKi64XFHwsmJ43JRTtitGkX7KYd0370EwR8XYWuQq4bpCeEeXmZFRB0iha5W636VQ mklIEz9xPHSROvEz3ukfo9871BKFOHOYUzBOBOdzNO7SNEKCnyfPacyQEwoZzzOes1zs EsZQeVZ3YymRo74VgIDM7VghKC3akRHIU8in30eU0xPMSxI64EfPWtMVSlxcnc6TvjEm tPEHITWerHa7mLpjhA6JPlk9UC+54aCFyMDo00otcDxSv2XNW2oZfnimabDCGxBqyydA NYJF3xEpjrXsbrDbpNwWcbH4pzlrUVt/mKZPiWL0yDaIVcsn2O+MOJB7t7puhAgdznpJ zq7g== X-Gm-Message-State: AOJu0YzyJnhYm4iOiIDGu3E4HxPR83bAEu0Vach/cESOtvoviYjTWzWn z2y1KWl21G6t1B66bxMi4csgHxeHYg35KeUyl08jSSRGiZUOCuA6+xBYrUzWmtsHRrmDEOt/XVv s X-Google-Smtp-Source: AGHT+IFU7cNEFPVO4V7ID1ecKIF3NULRkox0Yj2iFL7Rf0euRKGm2msdi0LhlTd8SGQ77phM/i37fg== X-Received: by 2002:a6b:5b10:0:b0:7d0:bd2b:43ba with SMTP id v16-20020a6b5b10000000b007d0bd2b43bamr235468ioh.0.1712850076610; Thu, 11 Apr 2024 08:41:16 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.41.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:41:14 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 347/437] s390: zcore: convert to read/write iterators Date: Thu, 11 Apr 2024 09:18:07 -0600 Message-ID: <20240411153126.16201-348-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/s390/char/zcore.c | 25 +++++++++++-------------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/drivers/s390/char/zcore.c b/drivers/s390/char/zcore.c index 0969fa01df58..8f5c890605ce 100644 --- a/drivers/s390/char/zcore.c +++ b/drivers/s390/char/zcore.c @@ -134,8 +134,7 @@ static void release_hsa(void) hsa_available =3D 0; } =20 -static ssize_t zcore_reipl_write(struct file *filp, const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t zcore_reipl_write(struct kiocb *iocb, struct iov_iter *from) { if (zcore_ipl_block) { diag308(DIAG308_SET, zcore_ipl_block); @@ -147,7 +146,7 @@ static ssize_t zcore_reipl_write(struct file *filp, con= st char __user *buf, else diag308(DIAG308_LOAD_NORMAL, NULL); } - return count; + return iov_iter_count(from); } =20 static int zcore_reipl_open(struct inode *inode, struct file *filp) @@ -162,14 +161,13 @@ static int zcore_reipl_release(struct inode *inode, s= truct file *filp) =20 static const struct file_operations zcore_reipl_fops =3D { .owner =3D THIS_MODULE, - .write =3D zcore_reipl_write, + .write_iter =3D zcore_reipl_write, .open =3D zcore_reipl_open, .release =3D zcore_reipl_release, .llseek =3D no_llseek, }; =20 -static ssize_t zcore_hsa_read(struct file *filp, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t zcore_hsa_read(struct kiocb *iocb, struct iov_iter *to) { static char str[18]; =20 @@ -177,28 +175,27 @@ static ssize_t zcore_hsa_read(struct file *filp, char= __user *buf, snprintf(str, sizeof(str), "%lx\n", sclp.hsa_size); else snprintf(str, sizeof(str), "0\n"); - return simple_read_from_buffer(buf, count, ppos, str, strlen(str)); + return simple_copy_to_iter(str, &iocb->ki_pos, strlen(str), to); } =20 -static ssize_t zcore_hsa_write(struct file *filp, const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t zcore_hsa_write(struct kiocb *iocb, struct iov_iter *from) { char value; =20 - if (*ppos !=3D 0) + if (iocb->ki_pos !=3D 0) return -EPIPE; - if (copy_from_user(&value, buf, 1)) + if (!copy_from_iter_full(&value, 1, from)) return -EFAULT; if (value !=3D '0') return -EINVAL; release_hsa(); - return count; + return iov_iter_count(from); } =20 static const struct file_operations zcore_hsa_fops =3D { .owner =3D THIS_MODULE, - .write =3D zcore_hsa_write, - .read =3D zcore_hsa_read, + .write_iter =3D zcore_hsa_write, + .read_iter =3D zcore_hsa_read, .open =3D nonseekable_open, .llseek =3D no_llseek, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f44.google.com (mail-io1-f44.google.com [209.85.166.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 D06831EA766 for ; Thu, 11 Apr 2024 15:41:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850081; cv=none; b=AxLmizQwyoAaDF1/hFECwRp9SMr9AS0T+RD9eMd09VUiHbMil90bAXqsDGX2NZ2jJk69KpBLnAniNmQK9BPMZ0ejlF34UutSblu+E8p7l0cxDHcy5jRmEhm6AABoDnzbw7rQW51+tMMHbTl5ww3xvRsmBiHwxCtFhlsXtWLU/Ys= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850081; c=relaxed/simple; bh=BgZjQsQGTijQ+oISUnhnL7/zU5NbKY8xpCp3DvKPqPE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=OiAJ4C26rUyxye+dlveW9DWRq2VaOiIwQeL2U17kgAYIzrOItXa2E/a183uHFsME/RZzyESskad7JIoFb73nu93uY3LlYYForR3zI4YZ+2wpJla239vwv8bHnVHWjQGNcG2qes9Jf+eOFtkZk0AeF1Cmc18dTrv6U3uGIs0B8V4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=09GisqaT; arc=none smtp.client-ip=209.85.166.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="09GisqaT" Received: by mail-io1-f44.google.com with SMTP id ca18e2360f4ac-7d6112ba6baso58235739f.1 for ; Thu, 11 Apr 2024 08:41:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850078; x=1713454878; 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=U7BcAfTHJYzKApAcG52Bw9lqr+jvQ0JQ0YgQDrbMYsI=; b=09GisqaTDrkdCvp8qVwfPlh06G5U9BVl9HMXXbgsDZPCXW5QMuLTuTwNiyhxlApIPH eEnm3huaueCoG+zPQa9izdHCw6JaLtnEIdFuj82trr1qaUnuwl47uXMxU6Nqy3QyaP1G uooOxEtUMKK/us2V0WP9TNjVd3Wgs45bMZ8sakNP93IdgFrMjV8lYcQIYNG0BC5OTErG qfbSvIfnAd1rp1RFQHs8fHHG+WV7/W3CbVCjgDbklfiz1UG5uljfFx15xigF9Aqu+trR xOL93wnJzBcWT8iIo37p0eN6Y4XaLIG/dFlInvueuHjv/E/C1pbXdV3GX1kVTiIjsmZv JenA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850078; x=1713454878; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=U7BcAfTHJYzKApAcG52Bw9lqr+jvQ0JQ0YgQDrbMYsI=; b=T/lC7aKVk+uMcxLTUaQq/OsDEYs6AMhp07RmZfZosKD8B0revAJvUCNQKxaeQGr5Ea Fe4DHn2jMlsgIIl7UueP2sBNO6vjzbCCQje5O/iYlZCtXQebuEqZwiOneHD3sVcBO/Cp bXEpJUJZTnCN1T5kIOUZCMobYb1VYjP+edELbmVIQi+spCEoz1SnrSvfRaz5PdnsLMUc PiOUB2tIZ6QRpbSb3h3FvipeY4HeHNjAgm+ELQ7lD0DJMzNe5/3KJr1orNjFs4QHrKnu PN+81Fh6CqlHLdUFqM8doHZIfqwhSsTRxAKyhV+ByvJafoZap8p4RLs6h8cq/fkIQOg9 EWFQ== X-Gm-Message-State: AOJu0YxI6LBpcvs3bQWdSGfexO5v6xKqgKGfj6+4t5eTMyz0kbA3upCy pcIr+3sY/gYCEjqU0ajrwwdyRmOVBtC8qG5X/Kfx77TGphs/OJduaae5JweMJn4QsH1Qc2VNVhO k X-Google-Smtp-Source: AGHT+IFEkCMKLDghvelPXDbj9GsSJino+/gyhRPw6ovdrSkNbS785jVMSQ2vFR7/Jj7ndUwaA+fTnw== X-Received: by 2002:a6b:cd08:0:b0:7d5:fe3e:90ff with SMTP id d8-20020a6bcd08000000b007d5fe3e90ffmr211904iog.0.1712850078456; Thu, 11 Apr 2024 08:41:18 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.41.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:41:16 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 348/437] s390: crypto: convert to read/write iterators Date: Thu, 11 Apr 2024 09:18:08 -0600 Message-ID: <20240411153126.16201-349-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/s390/crypto/zcrypt_api.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/drivers/s390/crypto/zcrypt_api.c b/drivers/s390/crypto/zcrypt_= api.c index eba07f8ef308..bc2b385ea550 100644 --- a/drivers/s390/crypto/zcrypt_api.c +++ b/drivers/s390/crypto/zcrypt_api.c @@ -475,8 +475,7 @@ static void zcdn_destroy_all(void) * * This function is not supported beyond zcrypt 1.3.1. */ -static ssize_t zcrypt_read(struct file *filp, char __user *buf, - size_t count, loff_t *f_pos) +static ssize_t zcrypt_read(struct kiocb *iocb, struct iov_iter *to) { return -EPERM; } @@ -486,8 +485,7 @@ static ssize_t zcrypt_read(struct file *filp, char __us= er *buf, * * Write is not allowed */ -static ssize_t zcrypt_write(struct file *filp, const char __user *buf, - size_t count, loff_t *f_pos) +static ssize_t zcrypt_write(struct kiocb *iocb, struct iov_iter *from) { return -EPERM; } @@ -1905,8 +1903,8 @@ static long zcrypt_compat_ioctl(struct file *filp, un= signed int cmd, */ static const struct file_operations zcrypt_fops =3D { .owner =3D THIS_MODULE, - .read =3D zcrypt_read, - .write =3D zcrypt_write, + .read_iter =3D zcrypt_read, + .write_iter =3D zcrypt_write, .unlocked_ioctl =3D zcrypt_unlocked_ioctl, #ifdef CONFIG_COMPAT .compat_ioctl =3D zcrypt_compat_ioctl, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f48.google.com (mail-io1-f48.google.com [209.85.166.48]) (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 B3DA31EA769 for ; Thu, 11 Apr 2024 15:41:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850083; cv=none; b=k3dHvN0iCcDc/PcBiaUJZS64C+M7XgKmKSg53aCp/bXykf1e0IKzV7LN5SeZyjm4dWqq9V/UQDV6E/G1DiyhGeLvRqu9MWewCV/SuryuVsyNlRgLozzEKSfuOoobYumU1xuB/2l+/J0vYpw6BJx2T0mm5baRBqd0mFBmmpdycTU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850083; c=relaxed/simple; bh=6edJZ0jtd5omUayrt66jMF5vKFJjV3HWFHBjXCygvYM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ghMKy1xPWU4NiXhWx5e3DD5YWv2t7wRD2MK7X7ZUgrUA0y5M49YPOaaERq2eEbJEPpFiNFBRXBpj3W8Lsy7yqeAkTZV0nDcAugUGyjJ660oHsdhHVsG21qVoaLwAyMCRi8lDOTVVU04Wjn64q/nq2pKD5zZxr/+cdAxESPogiso= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=d8UQiDE1; arc=none smtp.client-ip=209.85.166.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="d8UQiDE1" Received: by mail-io1-f48.google.com with SMTP id ca18e2360f4ac-7d6112ba6baso58236239f.1 for ; Thu, 11 Apr 2024 08:41:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850080; x=1713454880; 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=7wO000BX4rIAv1096OGOZIi9DLZcNqie5/W5vT1nXmk=; b=d8UQiDE1dpu0xWx1Ihxiv3oz+VWBXj+aTPjSip19lihgHBmr+YkvXZy+ChZyblxGLB k3J0Y2uPmD9tutiYtj/x5gYdORoD/y0mwv/P8Mt3ueRcb6y4gdXGYCmD8wbk2ddx/rQ1 jgBNuYiZPbeR1Ui2lyRJUQXtHdgOLaA/NL0u46BRrihXCvibvv/s5UonGZFnXEu3ylJB fnXJSKt5A1+2NRyUbeHT8pVIUnAsBMamkR4UuGDvyfECaTlQ5YY4rON4fUIxfHTUYrhL eyzHCzxyT4k/ulg1soxZZ8oBDXJmlNJBWUvdaVGr4Un41h68jPiapONc/z989Vb9Ppwk xkZA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850080; x=1713454880; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=7wO000BX4rIAv1096OGOZIi9DLZcNqie5/W5vT1nXmk=; b=RU+aZP1gLCuTe1jTdtIjm6cr33zrwg9TJ5MWagwfJTPWadelQf49r9kObq1Ey+phGX uq388m66aC2CDV7IkkpPQ8coBQGDITP92RrbW0Kvqju3s81tTSJh6rWbxa3rfaHGZ6Mb Ug+OnbCg1Bf5j980yoxLgTMno9GJYNiC/S8P8tPoPPKefP5eNWZa6JVhOIRd1g4H0MMM p6NgLz/ptXOzu0VVKwIvZQa4nyZN0EaOI4afwXSY3JzDZO8W1jkPFqXmeQc/dRnLEeGo 6jAt9mi7sG5G94LaX3vutKCTr4PE+LfloAZCRcy8icN4nbOLZofXcBuegyyeM6ZnUlNw An5Q== X-Gm-Message-State: AOJu0YzNXlL0aNwZ+y9EvK4QAxt//qB+tb8Pk3GDZ/hDYMMiBowkAp2R UO5K/iL0oEO4fRwvcrEIlmOED7b8+CTIXBXBpe6hDpx3aCdH70RZviElpZl3Uln+xyQ/UL5znGO s X-Google-Smtp-Source: AGHT+IFp741XHWDD5Z5z0RkNFBzNAlDtdvkL5sFJeIwYGz5OkgL+03gAPuAi0OVVIr9FM0B49mP7zw== X-Received: by 2002:a6b:f312:0:b0:7d5:de23:13a9 with SMTP id m18-20020a6bf312000000b007d5de2313a9mr175641ioh.1.1712850080606; Thu, 11 Apr 2024 08:41:20 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.41.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:41:19 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 349/437] s390: monreader: convert to read/write iterators Date: Thu, 11 Apr 2024 09:18:09 -0600 Message-ID: <20240411153126.16201-350-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/s390/char/monreader.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/drivers/s390/char/monreader.c b/drivers/s390/char/monreader.c index 7207a7f5842a..151030779624 100644 --- a/drivers/s390/char/monreader.c +++ b/drivers/s390/char/monreader.c @@ -358,10 +358,10 @@ static int mon_close(struct inode *inode, struct file= *filp) return 0; } =20 -static ssize_t mon_read(struct file *filp, char __user *data, - size_t count, loff_t *ppos) +static ssize_t mon_read(struct kiocb *iocb, struct iov_iter *to) { - struct mon_private *monpriv =3D filp->private_data; + struct mon_private *monpriv =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(to); struct mon_msg *monmsg; int ret; u32 mce_start; @@ -371,7 +371,7 @@ static ssize_t mon_read(struct file *filp, char __user = *data, return PTR_ERR(monmsg); =20 if (!monmsg) { - if (filp->f_flags & O_NONBLOCK) + if (iocb->ki_filp->f_flags & O_NONBLOCK) return -EAGAIN; ret =3D wait_event_interruptible(mon_read_wait_queue, atomic_read(&monpriv->read_ready) || @@ -392,7 +392,7 @@ static ssize_t mon_read(struct file *filp, char __user = *data, mce_start =3D mon_mca_start(monmsg) + monmsg->mca_offset; if ((monmsg->pos >=3D mce_start) && (monmsg->pos < mce_start + 12)) { count =3D min(count, (size_t) mce_start + 12 - monmsg->pos); - ret =3D copy_to_user(data, __va(monmsg->pos), count); + ret =3D !copy_to_iter_full(__va(monmsg->pos), count, to); if (ret) return -EFAULT; monmsg->pos +=3D count; @@ -405,7 +405,7 @@ static ssize_t mon_read(struct file *filp, char __user = *data, if (monmsg->pos <=3D mon_rec_end(monmsg)) { count =3D min(count, (size_t) mon_rec_end(monmsg) - monmsg->pos + 1); - ret =3D copy_to_user(data, __va(monmsg->pos), count); + ret =3D !copy_to_iter_full(__va(monmsg->pos), count, to); if (ret) return -EFAULT; monmsg->pos +=3D count; @@ -418,7 +418,7 @@ static ssize_t mon_read(struct file *filp, char __user = *data, return ret; =20 out_copy: - *ppos +=3D count; + iocb->ki_pos +=3D count; return count; } =20 @@ -438,7 +438,7 @@ static const struct file_operations mon_fops =3D { .owner =3D THIS_MODULE, .open =3D &mon_open, .release =3D &mon_close, - .read =3D &mon_read, + .read_iter =3D &mon_read, .poll =3D &mon_poll, .llseek =3D noop_llseek, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f48.google.com (mail-io1-f48.google.com [209.85.166.48]) (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 9447D1EB1CB for ; Thu, 11 Apr 2024 15:41:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850084; cv=none; b=BDesfzz0ws+uIdCR8neTv2d2ob1PRhpiCVaNdFHp5FhBtCkcSTIKHhkTVjH1+LPIBnzjk3qvIl7GPDEPpnhNASEYdhv9TaTa9WCCemZ8d4nA0qupwmWwIf2dPyRQ5RSUwbuC0qQLAtyUNHuHsQSrgg8J3/BYFcMqbrioMVJ8BVE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850084; c=relaxed/simple; bh=gtTdUUKX8s+gnCGRRKXpvazcthFiIvChLczQBNvi4rE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=qbU1JLkD7yMbSDx2MLImysVk3dJx/1zcChXLvpv84gik7DOwYlelo8rMmw4Ew3XVFgKVixPp5aDw07NK8H0knbIXZYizndg8ijG/1gR/o/ZdQhvPP1HfMQs1nWnRCIga9bdk9GGBursHmjjD7ks9g14Y6MZIDASwXvPLsl+LR9g= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=jSVfZBZb; arc=none smtp.client-ip=209.85.166.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="jSVfZBZb" Received: by mail-io1-f48.google.com with SMTP id ca18e2360f4ac-7d6812b37a6so9074639f.0 for ; Thu, 11 Apr 2024 08:41:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850082; x=1713454882; 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=gw7uLrEpA+GZdNnB4LGe0bmKIXCgrlLuPWP4gZJs1jo=; b=jSVfZBZbC8IKZA2vbu3XdYY/WnozZfV8ntRlpP2GRW2yzaeUFYvXe30qRywDcoY9KH WzJ5qX2uPV/HW5Wyapgpyml77if+FGSqKSTSFLZoG3rDwsJXJJ9c+DOOd/MTY2XnO2ql qnkmRjvEe2Q4bPQuff+DS++QArKX7MLEXrNBWe6uh0xlpCHvfPvCSs1E/8I4p4uEEN97 /WF3r90VBfamWXEjkl59luAX4L0K1RPE7d5WxQHMunzBUwIx8xqzisrp9Fl580NazllQ XuhDQeFMNitCMc7h2JjINnYYkG4E8xWEHqp9AefSGbRRPGNRSP8f428QeveXxeVeFQSa nq/g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850082; x=1713454882; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=gw7uLrEpA+GZdNnB4LGe0bmKIXCgrlLuPWP4gZJs1jo=; b=XvhnTHQNL3XynITzcxkHJpe6Ht0T+lhFaZl6wi+INKgkDAqRlGlqqLOlAV6K4tmRkp cll5bCd9wvigLU7QYZVb9cv3v2MSLU6Y9ILj4JgfaWD817OxtTmRWeDGvUqcsrWmUbs+ fiJrWXW+SeEEXiRGc2zY7doG/DzURFYgIac0A5dqwPtBtMi8SSzxntUdPo/+tnjcLti5 FUW5W2X93QLP/4q/9DWAO5sqGBgZFsXGzXXoOZdX6+GOulOSHwF6LpUjgWNcJKMD0wZM Qzi71o5gUh4cWF5NncUuF4QvRH3GyTxunCTCluJUse3lLuklriA2tjKS81xZqX6Pwwjx aKvw== X-Gm-Message-State: AOJu0YzgUPJG/xRiYrxPY4PqhhBSvdxpjxTIcdzcGH4O6PAP1L4WLKDE TASdYIqvIytQNQjiGIqUt/QiklDJb1HNIr799pPjVsniScid+7DzmEm7DEtRaQF8+MOI/Rif6t5 W X-Google-Smtp-Source: AGHT+IGsT63S2O8pIAp7OsBEa/KpFFxn2ebWHIH03kSeOiM+90aCAK8C1k1iF76M6qY3XT1h4O7K5w== X-Received: by 2002:a05:6602:21d7:b0:7d6:9ddf:5095 with SMTP id c23-20020a05660221d700b007d69ddf5095mr30448ioc.1.1712850082507; Thu, 11 Apr 2024 08:41:22 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.41.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:41:20 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 350/437] s390: monwriter: convert to read/write iterators Date: Thu, 11 Apr 2024 09:18:10 -0600 Message-ID: <20240411153126.16201-351-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/s390/char/monwriter.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/s390/char/monwriter.c b/drivers/s390/char/monwriter.c index bc5193d81f9c..8baf04d05748 100644 --- a/drivers/s390/char/monwriter.c +++ b/drivers/s390/char/monwriter.c @@ -216,10 +216,10 @@ static int monwrite_close(struct inode *inode, struct= file *filp) return 0; } =20 -static ssize_t monwrite_write(struct file *filp, const char __user *data, - size_t count, loff_t *ppos) +static ssize_t monwrite_write(struct kiocb *iocb, struct iov_iter *from) { - struct mon_private *monpriv =3D filp->private_data; + struct mon_private *monpriv =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); size_t len, written; void *to; int rc; @@ -230,7 +230,7 @@ static ssize_t monwrite_write(struct file *filp, const = char __user *data, len =3D min(count - written, monpriv->hdr_to_read); to =3D (char *) &monpriv->hdr + sizeof(monpriv->hdr) - monpriv->hdr_to_read; - if (copy_from_user(to, data + written, len)) { + if (!copy_from_iter_full(to, len, from)) { rc =3D -EFAULT; goto out_error; } @@ -249,7 +249,7 @@ static ssize_t monwrite_write(struct file *filp, const = char __user *data, len =3D min(count - written, monpriv->data_to_read); to =3D monpriv->current_buf->data + monpriv->hdr.datalen - monpriv->data_to_read; - if (copy_from_user(to, data + written, len)) { + if (!copy_from_iter_full(to, len, from)) { rc =3D -EFAULT; goto out_error; } @@ -277,7 +277,7 @@ static const struct file_operations monwrite_fops =3D { .owner =3D THIS_MODULE, .open =3D &monwrite_open, .release =3D &monwrite_close, - .write =3D &monwrite_write, + .write_iter =3D &monwrite_write, .llseek =3D noop_llseek, }; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f46.google.com (mail-io1-f46.google.com [209.85.166.46]) (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 4CEEE1EB1E3 for ; Thu, 11 Apr 2024 15:41:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850086; cv=none; b=NUIlYi8ch3JHyTqmXUmUX4K90Wa7OzPaFT0C8rTSX/xXG7XUuhuFgbMm3OqESXUy+thW4m0wqbO/zAoRktbfMr6ZnEXFbP47MyJ33JaXlzPCvscErn0qzLIR3RZewrOjZ/TVv95aa4GnjXSo86zLTAk0wHjjXRb/APDzh5fh/R8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850086; c=relaxed/simple; bh=PqDeDgy/De6m/OJg3diSioxuusmcMjaYGApdUFOMph8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=VRZwyP2SFIpDjmp0/fkW91ceuYk/0PZdyldhsScbSnX6vmLR50jkujBjHgvgd6/HGtXD9i1PZPn2iDAWoWtHqwRsfVbq80TDnPxvw+dqq49aUpYKEFrsr6M31VuGZZpJUaRRaCcNEbTJN9w+OIm2ZFdV3uN3F+LZTXatj7DcG+k= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=jIBm2PjD; arc=none smtp.client-ip=209.85.166.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="jIBm2PjD" Received: by mail-io1-f46.google.com with SMTP id ca18e2360f4ac-7d6112ba6baso58237539f.1 for ; Thu, 11 Apr 2024 08:41:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850084; x=1713454884; 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=zDokQDLdu8ydMVRcbu4qpXm/coItPHPFNmmq2PVMFw4=; b=jIBm2PjDUATTUEtjFgj8AlSjxECdPbBdIs2KJbA73SWqMTnLPwXGQD3cTgeXYr5mJx JhDXfE8TOMnRaaR3gqqRUB8OrVrKtKLAlyx9uwbDgM3tgH2oLc8TJWxewPixgu5g4y7/ e1C9MlJXRzD2ZkaZv5GvKRhweCUrvubiaVdncOU0WcxvRHhdbL80tGBXFeZwMLhUaf9q aJQTMThQQFeogy8OJzpmW+fbi7uEK4U5f6kslddiKSYWuzSVV09cUeUMIs9jxeLq6ib6 YNqlXTX0TaHA7Fnc/en63Tm2J2dGfqHQPBmbDWsMKtBJmbJ6moN34j7ct6iDWnNinQDN SxqA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850084; x=1713454884; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=zDokQDLdu8ydMVRcbu4qpXm/coItPHPFNmmq2PVMFw4=; b=lj/r6xIwPKpvovaDidIqQpnnYt//rkwE+atCgBSM+TutnZvFpul8UMwilsvjX+5Z9j M0FFDfZquz4WD5dJr8kSb+gJfF1TU7ExRbVDaNrlnhvSU/mMiEpVUK2dHWY/xRe5QHA/ d/5LJgwtMgkh2Q15GyU9sFYBxx3CJW7Wyl0lKalsbO6GUT4sfRyhkpg3lSyv1sveXmCF 2DnQxxH/2YUwQ2eVb260QDHwzSgrK64RCe1SOc8t/+s3dHY7QVrvv8Zr4nThdzm4S3ZP KOsWXAlSeNAx9mFxj23mxSPNzMdqrKa1dPa2S81ELzUdzmUlCtS/39T7r4WShO4LaycS 77Jw== X-Gm-Message-State: AOJu0YzfZSw4O8KeCHUn/X+FHM8fiRBFH7bxZuVVESkoR9g5swdSoHLv Lvo7N2s8Na0vEHQfqpVlnQNfvo4rXc8bOKJY0YMTwMqB6ww2E+0rEGnNa+m1hKU3PUKjCFsNeUh 0 X-Google-Smtp-Source: AGHT+IHrdQLsuEY4VQZHVdXifHMIIeXlnJNBqvz3tXiLXGbi54U91Zg/enZBUzHchjraN2CrOSmm3g== X-Received: by 2002:a6b:f312:0:b0:7d5:de23:13a9 with SMTP id m18-20020a6bf312000000b007d5de2313a9mr175815ioh.1.1712850084221; Thu, 11 Apr 2024 08:41:24 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.41.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:41:22 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 351/437] s390: hw_random: convert to read/write iterators Date: Thu, 11 Apr 2024 09:18:11 -0600 Message-ID: <20240411153126.16201-352-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/char/hw_random/s390-trng.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/drivers/char/hw_random/s390-trng.c b/drivers/char/hw_random/s3= 90-trng.c index d27e32e9bfee..b1e1b896907c 100644 --- a/drivers/char/hw_random/s390-trng.c +++ b/drivers/char/hw_random/s390-trng.c @@ -53,9 +53,9 @@ static int trng_open(struct inode *inode, struct file *fi= le) return nonseekable_open(inode, file); } =20 -static ssize_t trng_read(struct file *file, char __user *ubuf, - size_t nbytes, loff_t *ppos) +static ssize_t trng_read(struct kiocb *iocb, struct iov_iter *to) { + size_t nbytes =3D iov_iter_count(to); u8 buf[32]; u8 *p =3D buf; unsigned int n; @@ -85,12 +85,11 @@ static ssize_t trng_read(struct file *file, char __user= *ubuf, n =3D nbytes > PAGE_SIZE ? PAGE_SIZE : nbytes; cpacf_trng(NULL, 0, p, n); atomic64_add(n, &trng_dev_counter); - if (copy_to_user(ubuf, p, n)) { + if (!copy_to_iter_full(p, n, to)) { ret =3D -EFAULT; break; } nbytes -=3D n; - ubuf +=3D n; ret +=3D n; } =20 @@ -139,7 +138,7 @@ static const struct file_operations trng_fops =3D { .owner =3D THIS_MODULE, .open =3D &trng_open, .release =3D NULL, - .read =3D &trng_read, + .read_iter =3D trng_read, .llseek =3D noop_llseek, }; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f45.google.com (mail-io1-f45.google.com [209.85.166.45]) (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 8DC3E1EBA90 for ; Thu, 11 Apr 2024 15:41:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850089; cv=none; b=lr4tUTbGBJwQ0evoP9TYjoBinsiig23ZqAuJU9XlP8hoT7V2S9kuTLbyreVQlDLABHc8lwSegzvGE18qMg0Ce5h2aeG0Nlp7+zQW4Z4iCc0u/SwC64n6ox17ZuvxgsM20u4NqhUbBC7/LvzI9wOzlP/RuyPd4DNp2fSpmVvSnUc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850089; c=relaxed/simple; bh=YVKLd2CSJYUG91vN9zuh7P0ySoI747xJBbFJ5aVmvbo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=hY+LZsG4Qdb2rTK+RW8mr7dQN8f0/L8Ou3/lhtzDYw+6hB2doQY2oBjGZPmY0JmjjwNMqCFxqQXUNnO3hzM5CUdLfjZmAhE+OoLeIBlwC8kRl3lSK2Wjfq8BFY8noGJvDzbpsLpEDcLEYW3rJkx8+LoOoYTdkgsdxLM5qOstjNs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=h5tvH4wC; arc=none smtp.client-ip=209.85.166.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="h5tvH4wC" Received: by mail-io1-f45.google.com with SMTP id ca18e2360f4ac-7d6812b37a6so9075939f.0 for ; Thu, 11 Apr 2024 08:41:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850087; x=1713454887; 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=9PQw3BxBhLy6E/TQJA9sZtmXmf+ppOrNefTSoVA4nOI=; b=h5tvH4wCnRanXNNmzmhx+z2NFohB+4dR00zUyE+XeMve8sIryMCO1q5E+Z5VLT+CfJ k0vCZWCrSAj0mJsfAiM292UWnQoUZQXgtNCJdbBqnRGAY66K8U360JU70/00AiBJEDrj fpO7ZpNCKEv+YzXlODY7wtJ8NHVrtK2V4CRkGLB2sT/xuNwaQXliHz1XeWN2fNPhtUhV UmOdaInyL3OQ8w/pga6Ph3B9HLQI7wyltXjC5fiO/fbDiK20cLp1OyFgbL26jbwgbOgM VBvoeD1XsgaKrp/dTssmlkDbjBLMN5gLVxW1vnEBIXDVE6nxnSqcZ1PQd5tQ22Z+6QY8 hhEA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850087; x=1713454887; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=9PQw3BxBhLy6E/TQJA9sZtmXmf+ppOrNefTSoVA4nOI=; b=xK2hbeMJUIEB659YcL0pr7YRJkBj9wPzMAV8QZkTtT7pdwXb7/LkHStMU2FUNEUK7w sYrBeJTwdfrqJ9SCOlK/p+880Ce9R1xMD6SXaoTkqIpcf9MENUWg09jceAdz7DWRv+WG jzlVaTv9eN9ag1t4TNOJDR4SOqoQSKzed2IgtWgg06JAIZjqFOXpsPIBzWLaZoRuU4OP bNxEwi03yoGyyLq28HLNF1a3gmznI+pAU/bvU+5pO+BK5H4nKbZNPES76sZGxYo/2QUJ +T17Y1F0YO6mmZWI9FAJBDSKhqp9lNaijKMo2Nw+QnRk9uX+JVsYxsT0wqQE+0aT/Q8A 3AkQ== X-Gm-Message-State: AOJu0Yy/bmPX1h7/c0AzLRx5V1BGsYP/DNcZHmZjnx9vuC55Zt5PndHW F7Qh4l+PpJ/daKAWiaAuD0CodadMLQNmlq8Oh9G2t/gRyBtLgyoXBylOa8WIyEOD0z/NnZJtphc 3 X-Google-Smtp-Source: AGHT+IEiu4W4t70Oi2eSoum4dMPVvtr1ey08bB/fKO5JxJHLLx25iBx6Bw9BKTK7fARIwuEWmxu5Jw== X-Received: by 2002:a5e:9907:0:b0:7d6:751f:192 with SMTP id t7-20020a5e9907000000b007d6751f0192mr194659ioj.2.1712850086003; Thu, 11 Apr 2024 08:41:26 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.41.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:41:24 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 352/437] s390: vmlogrdr: convert to read/write iterators Date: Thu, 11 Apr 2024 09:18:12 -0600 Message-ID: <20240411153126.16201-353-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/s390/char/vmlogrdr.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/drivers/s390/char/vmlogrdr.c b/drivers/s390/char/vmlogrdr.c index d7e408c8d0b8..52595690e43c 100644 --- a/drivers/s390/char/vmlogrdr.c +++ b/drivers/s390/char/vmlogrdr.c @@ -88,14 +88,13 @@ struct vmlogrdr_priv_t { */ static int vmlogrdr_open(struct inode *, struct file *); static int vmlogrdr_release(struct inode *, struct file *); -static ssize_t vmlogrdr_read (struct file *filp, char __user *data, - size_t count, loff_t * ppos); +static ssize_t vmlogrdr_read(struct kiocb *iocb, struct iov_iter *to); =20 static const struct file_operations vmlogrdr_fops =3D { .owner =3D THIS_MODULE, .open =3D vmlogrdr_open, .release =3D vmlogrdr_release, - .read =3D vmlogrdr_read, + .read_iter =3D vmlogrdr_read, .llseek =3D no_llseek, }; =20 @@ -473,11 +472,11 @@ static int vmlogrdr_receive_data(struct vmlogrdr_priv= _t *priv) } =20 =20 -static ssize_t vmlogrdr_read(struct file *filp, char __user *data, - size_t count, loff_t * ppos) +static ssize_t vmlogrdr_read(struct kiocb *iocb, struct iov_iter *to) { + size_t count =3D iov_iter_count(to); int rc; - struct vmlogrdr_priv_t * priv =3D filp->private_data; + struct vmlogrdr_priv_t * priv =3D iocb->ki_filp->private_data; =20 while (priv->buffer_free) { rc =3D vmlogrdr_receive_data(priv); @@ -492,10 +491,10 @@ static ssize_t vmlogrdr_read(struct file *filp, char = __user *data, if (count > priv->remaining) count =3D priv->remaining; =20 - if (copy_to_user(data, priv->current_position, count)) + if (!copy_to_iter_full(priv->current_position, count, to)) return -EFAULT; =20 - *ppos +=3D count; + iocb->ki_pos +=3D count; priv->current_position +=3D count; priv->remaining -=3D count; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f42.google.com (mail-io1-f42.google.com [209.85.166.42]) (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 317FF1EBA8A for ; Thu, 11 Apr 2024 15:41:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850089; cv=none; b=aT4qkkCCJuJllK1IsiogUpHqQ17ZXlQWpLQAiuqZReXMfrg1AklzrP7UMpJCU3CVWkNHHPi83G0rwiNd1wC4ZxovvzjV01tX1SuRkrGeuC0wVcaySfQ8Qc+MX8CCEFBSqM7bF2rvsVNFvebCVL61YM7cftSUW+55XBTFfRmXvwg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850089; c=relaxed/simple; bh=QJteW7i68cwnY3Y2bm+Ww6wE0YkpdTNZ3omi3GC4MsY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=gZC0wS2UZNi8xUXCKudIKHJkiIFbZnr7thYXliHXptxRglqSTKw1wcgire4gYoEypyU4SoWpA1K4nx3N6z8XYiFHce6nbvBdmWDFQ/6wTTqp0uCyn37ucOjAK36OoyZTGMqDFmnJnrW/MOgP4voM5fsugFgCqSwOa1HBlSuX1Oc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=CchsWpeA; arc=none smtp.client-ip=209.85.166.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="CchsWpeA" Received: by mail-io1-f42.google.com with SMTP id ca18e2360f4ac-7d6812b37a6so9075639f.0 for ; Thu, 11 Apr 2024 08:41:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850087; x=1713454887; 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=1kEvqhQ5LFfdp981O6GSEMdHofirq0cwf5eb9gFKuSk=; b=CchsWpeAYHy+y/f8Rf5+7XT9lPaN8JdfJmqDOV6Cjg8fmDP6UPMJ+FJ0hVJQf0Ici7 co67/Q5GHlFUUd0rtaIha4Tsn4GltpCPDME8lNw2TjL0XdKPi5UEeRWkY2imZbRn2zBF RrSO31jzROUD+dSJcIBVGzZO2CM2iI40YrAwUIIxKtInn/+Q+XhVQbuJYjbeBMbkApyz oggXhZlAZILKfJgo5ukdwKx/E90c+/HvYqGvI+sW3XmxB9r8MF3frt/EXGMPlKZhsk2a hZX/VH+ugAZ+quh2QSOpbEQT1CLTYIl2y4mqMyqbL9gYjesGR1ZKJYyFt0ESVkI/ZMJD YI3Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850087; x=1713454887; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=1kEvqhQ5LFfdp981O6GSEMdHofirq0cwf5eb9gFKuSk=; b=vKuCJz9NFZD59GudbL0YlHgePWSxHrUKUcP7J9xX9FCgHJ8S5rFTULrZGacp+J6+X3 E6TA6geIc3Tc8hAOteGC+uOIENk6kYpt0c+VVQXXuCIgNb36GqAjBV2BcljHRHd5TWKm ij4+eqi+8xPQdXAUDlBGDIUvJ31nqbRgVGIw9t8yVM9937wQtRRK230Qn4MjruCYS0lh 8ToSMROBpk8xLYiYh0uLi+XUrLAPCksWdvviivYqamDrGd37nSglDjDgR4GwyC3NYE2m FPelfLZfZ8vcM07KB3aj4OJhv0ldkx+jbs01HNS1uKgN49lV1v4k9VKAr6jeeep72ipY bj7g== X-Gm-Message-State: AOJu0YynXl4zuAeFAl2MablPffc0tMBsELjMXlEou0H1X5+nC5p1zxCU CgDFypu/gA+UuDu0q7SoAP7K1+poAeqiBJGwxGbd0LgwjL7pX3Rstc4tvkPqoIE9ZBTe8V+5V5u c X-Google-Smtp-Source: AGHT+IHEgLT0SJNBvnKplEIoBHnTZ1IMIm7R5VKqhvV7/ORgCuRvD0NHlsZ5jQ5Yw+S6fQ4PxM6IYA== X-Received: by 2002:a05:6602:21d7:b0:7d6:9ddf:5095 with SMTP id c23-20020a05660221d700b007d69ddf5095mr30632ioc.1.1712850086829; Thu, 11 Apr 2024 08:41:26 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.41.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:41:26 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 353/437] arch/s390: convert to read/write iterators Date: Thu, 11 Apr 2024 09:18:13 -0600 Message-ID: <20240411153126.16201-354-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- arch/s390/crypto/prng.c | 18 ++++++++---------- arch/s390/hypfs/hypfs_dbfs.c | 11 +++++------ arch/s390/kernel/debug.c | 29 +++++++++++++---------------- arch/s390/kernel/sysinfo.c | 6 +++--- arch/s390/pci/pci_debug.c | 12 ++++++------ 5 files changed, 35 insertions(+), 41 deletions(-) diff --git a/arch/s390/crypto/prng.c b/arch/s390/crypto/prng.c index a077087bc6cc..472ff3fe73a9 100644 --- a/arch/s390/crypto/prng.c +++ b/arch/s390/crypto/prng.c @@ -509,9 +509,9 @@ static int prng_open(struct inode *inode, struct file *= file) } =20 =20 -static ssize_t prng_tdes_read(struct file *file, char __user *ubuf, - size_t nbytes, loff_t *ppos) +static ssize_t prng_tdes_read(struct kiocb *iocb, struct iov_iter *to) { + size_t nbytes =3D iov_iter_count(to); int chunk, n, ret =3D 0; =20 /* lock prng_data struct */ @@ -570,14 +570,13 @@ static ssize_t prng_tdes_read(struct file *file, char= __user *ubuf, prng_data->prngws.byte_counter +=3D n; prng_data->prngws.reseed_counter +=3D n; =20 - if (copy_to_user(ubuf, prng_data->buf, chunk)) { + if (!copy_to_iter_full(prng_data->buf, chunk, to)) { ret =3D -EFAULT; break; } =20 nbytes -=3D chunk; ret +=3D chunk; - ubuf +=3D chunk; } =20 /* unlock prng_data struct */ @@ -587,9 +586,9 @@ static ssize_t prng_tdes_read(struct file *file, char _= _user *ubuf, } =20 =20 -static ssize_t prng_sha512_read(struct file *file, char __user *ubuf, - size_t nbytes, loff_t *ppos) +static ssize_t prng_sha512_read(struct kiocb *iocb, struct iov_iter *to) { + size_t nbytes =3D iov_iter_count(to); int n, ret =3D 0; u8 *p; =20 @@ -640,12 +639,11 @@ static ssize_t prng_sha512_read(struct file *file, ch= ar __user *ubuf, prng_data->rest =3D 0; } } - if (copy_to_user(ubuf, p, n)) { + if (!copy_to_iter_full(p, n, to)) { ret =3D -EFAULT; break; } memzero_explicit(p, n); - ubuf +=3D n; nbytes -=3D n; ret +=3D n; } @@ -663,14 +661,14 @@ static const struct file_operations prng_sha512_fops = =3D { .owner =3D THIS_MODULE, .open =3D &prng_open, .release =3D NULL, - .read =3D &prng_sha512_read, + .read_iter =3D &prng_sha512_read, .llseek =3D noop_llseek, }; static const struct file_operations prng_tdes_fops =3D { .owner =3D THIS_MODULE, .open =3D &prng_open, .release =3D NULL, - .read =3D &prng_tdes_read, + .read_iter =3D &prng_tdes_read, .llseek =3D noop_llseek, }; =20 diff --git a/arch/s390/hypfs/hypfs_dbfs.c b/arch/s390/hypfs/hypfs_dbfs.c index 4024599eb448..964247caf5fb 100644 --- a/arch/s390/hypfs/hypfs_dbfs.c +++ b/arch/s390/hypfs/hypfs_dbfs.c @@ -28,17 +28,16 @@ static void hypfs_dbfs_data_free(struct hypfs_dbfs_data= *data) kfree(data); } =20 -static ssize_t dbfs_read(struct file *file, char __user *buf, - size_t size, loff_t *ppos) +static ssize_t dbfs_read(struct kiocb *iocb, struct iov_iter *to) { struct hypfs_dbfs_data *data; struct hypfs_dbfs_file *df; ssize_t rc; =20 - if (*ppos !=3D 0) + if (iocb->ki_pos !=3D 0) return 0; =20 - df =3D file_inode(file)->i_private; + df =3D file_inode(iocb->ki_filp)->i_private; mutex_lock(&df->lock); data =3D hypfs_dbfs_data_alloc(df); if (!data) { @@ -53,7 +52,7 @@ static ssize_t dbfs_read(struct file *file, char __user *= buf, } mutex_unlock(&df->lock); =20 - rc =3D simple_read_from_buffer(buf, size, ppos, data->buf, data->size); + rc =3D simple_copy_to_iter(data->buf, &iocb->ki_pos, data->size, to); hypfs_dbfs_data_free(data); return rc; } @@ -73,7 +72,7 @@ static long dbfs_ioctl(struct file *file, unsigned int cm= d, unsigned long arg) } =20 static const struct file_operations dbfs_ops =3D { - .read =3D dbfs_read, + .read_iter =3D dbfs_read, .llseek =3D no_llseek, .unlocked_ioctl =3D dbfs_ioctl, }; diff --git a/arch/s390/kernel/debug.c b/arch/s390/kernel/debug.c index 85328a0ef3b6..2ba1ee0a0f1d 100644 --- a/arch/s390/kernel/debug.c +++ b/arch/s390/kernel/debug.c @@ -66,10 +66,8 @@ typedef struct { /* internal function prototyes */ =20 static int debug_init(void); -static ssize_t debug_output(struct file *file, char __user *user_buf, - size_t user_len, loff_t *offset); -static ssize_t debug_input(struct file *file, const char __user *user_buf, - size_t user_len, loff_t *offset); +static ssize_t debug_output(struct kiocb *iocb, struct iov_iter *to); +static ssize_t debug_input_iter(struct kiocb *iocb, struct iov_iter *from); static int debug_open(struct inode *inode, struct file *file); static int debug_close(struct inode *inode, struct file *file); static debug_info_t *debug_info_create(const char *name, int pages_per_are= a, @@ -159,8 +157,8 @@ static int debug_critical; =20 static const struct file_operations debug_file_ops =3D { .owner =3D THIS_MODULE, - .read =3D debug_output, - .write =3D debug_input, + .read_iter =3D debug_output, + .write_iter =3D debug_input_iter, .open =3D debug_open, .release =3D debug_close, .llseek =3D no_llseek, @@ -452,17 +450,15 @@ static inline int debug_next_entry(file_private_info_= t *p_info) * - called for user read() * - copies formated debug entries to the user buffer */ -static ssize_t debug_output(struct file *file, /* file descriptor */ - char __user *user_buf, /* user buffer */ - size_t len, /* length of buffer */ - loff_t *offset) /* offset in the file */ +static ssize_t debug_output(struct kiocb *iocb, struct iov_iter *to) { size_t count =3D 0; size_t entry_offset; file_private_info_t *p_info; + size_t len =3D iov_iter_count(to); =20 - p_info =3D (file_private_info_t *) file->private_data; - if (*offset !=3D p_info->offset) + p_info =3D (file_private_info_t *) iocb->ki_filp->private_data; + if (iocb->ki_pos !=3D p_info->offset) return -EPIPE; if (p_info->act_area >=3D p_info->debug_info_snap->nr_areas) return 0; @@ -478,8 +474,8 @@ static ssize_t debug_output(struct file *file, /* file= descriptor */ user_buf_residue =3D len-count; copy_size =3D min(user_buf_residue, formatted_line_residue); if (copy_size) { - if (copy_to_user(user_buf + count, p_info->temp_buf - + entry_offset, copy_size)) + if (!copy_to_iter_full(p_info->temp_buf + + entry_offset, copy_size, to)) return -EFAULT; count +=3D copy_size; entry_offset +=3D copy_size; @@ -491,9 +487,9 @@ static ssize_t debug_output(struct file *file, /* file= descriptor */ } } out: - p_info->offset =3D *offset + count; + p_info->offset =3D iocb->ki_pos + count; p_info->act_entry_offset =3D entry_offset; - *offset =3D p_info->offset; + iocb->ki_pos =3D p_info->offset; return count; } =20 @@ -520,6 +516,7 @@ static ssize_t debug_input(struct file *file, const cha= r __user *user_buf, mutex_unlock(&debug_mutex); return rc; /* number of input characters */ } +FOPS_WRITE_ITER_HELPER(debug_input); =20 /* * debug_open: diff --git a/arch/s390/kernel/sysinfo.c b/arch/s390/kernel/sysinfo.c index 2be30a96696a..84cca91e86ff 100644 --- a/arch/s390/kernel/sysinfo.c +++ b/arch/s390/kernel/sysinfo.c @@ -497,7 +497,7 @@ static int stsi_open_##fc##_##s1##_##s2(struct inode *i= node, struct file *file)\ static const struct file_operations stsi_##fc##_##s1##_##s2##_fs_ops =3D {= \ .open =3D stsi_open_##fc##_##s1##_##s2, \ .release =3D stsi_release, \ - .read =3D stsi_read, \ + .read_iter =3D stsi_read, \ .llseek =3D no_llseek, \ }; =20 @@ -507,9 +507,9 @@ static int stsi_release(struct inode *inode, struct fil= e *file) return 0; } =20 -static ssize_t stsi_read(struct file *file, char __user *buf, size_t size,= loff_t *ppos) +static ssize_t stsi_read(struct kiocb *iocb, struct iov_iter *to) { - return simple_read_from_buffer(buf, size, ppos, file->private_data, PAGE_= SIZE); + return simple_copy_to_iter(iocb->ki_filp->private_data, &iocb->ki_pos, PA= GE_SIZE, to); } =20 STSI_FILE( 1, 1, 1); diff --git a/arch/s390/pci/pci_debug.c b/arch/s390/pci/pci_debug.c index 2cb5043a997d..9c4b1eb26103 100644 --- a/arch/s390/pci/pci_debug.c +++ b/arch/s390/pci/pci_debug.c @@ -134,17 +134,17 @@ static int pci_perf_show(struct seq_file *m, void *v) return 0; } =20 -static ssize_t pci_perf_seq_write(struct file *file, const char __user *ub= uf, - size_t count, loff_t *off) +static ssize_t pci_perf_seq_write(struct kiocb *iocb, struct iov_iter *fro= m) { - struct zpci_dev *zdev =3D ((struct seq_file *) file->private_data)->priva= te; + struct zpci_dev *zdev =3D ((struct seq_file *) iocb->ki_filp->private_dat= a)->private; + size_t count =3D iov_iter_count(from); unsigned long val; int rc; =20 if (!zdev) return 0; =20 - rc =3D kstrtoul_from_user(ubuf, count, 10, &val); + rc =3D kstrtoul_from_iter(from, count, 10, &val); if (rc) return rc; =20 @@ -169,8 +169,8 @@ static int pci_perf_seq_open(struct inode *inode, struc= t file *filp) =20 static const struct file_operations debugfs_pci_perf_fops =3D { .open =3D pci_perf_seq_open, - .read =3D seq_read, - .write =3D pci_perf_seq_write, + .read_iter =3D seq_read_iter, + .write_iter =3D pci_perf_seq_write, .llseek =3D seq_lseek, .release =3D single_release, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-il1-f172.google.com (mail-il1-f172.google.com [209.85.166.172]) (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 DCF3B1EBA9C for ; Thu, 11 Apr 2024 15:41:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.172 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850091; cv=none; b=k09QiwAVSi7fC++jwFHRtfQuzp4/FFYkEgJFnL7O9Y0lN2VkbbfnsRAlprnkUKbgbnfE4h3rvxwQSvEeOy++yaaah4i5DFIAUEngsuiHHANEZlbClPFQ192MXSIvESgbnjTxIDYGSp9zfd4CgyDxtEd/7pl6Apq2sJj4VA0L5uk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850091; c=relaxed/simple; bh=SPTYduIfH9p1qgicSrY0/kgQ5zph5BcuFxjiCI5eHrA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=kyvFsM76WkudO/5ihOA3N0Wa1N9wwRq2YzO8vtEVdRLo3Wmqssf6IXcOkjx2vIpUFXptghgpBl82AgCfdsGFaoOJ2BLL6X3qSiQhlTm84w/UH72kmRGDLffmHcjT0t6fcynuDK4EPu+vwSK7o0w/VEXCtScn3gsGxs7uj/tX5HI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=uY5XPIkL; arc=none smtp.client-ip=209.85.166.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="uY5XPIkL" Received: by mail-il1-f172.google.com with SMTP id e9e14a558f8ab-36a224d7414so194975ab.1 for ; Thu, 11 Apr 2024 08:41:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850089; x=1713454889; 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=0opaX+8vRYcNzgWaP8rJvrsIYshzJ+i+ilu4pihK1VU=; b=uY5XPIkLo1ACgYXJ29Ia0TKq1jNe1MbQ/UcVsAO1UQDZrbkgTGbU8nDME42KGhUN3E ks9E0zhqk1JWaqgeHzS6yUv0a4olZ0R2MVyrW49r8QNPwV9ttoopYbciZXUpqCPbqIFR hVRHJuvpwZ/8OgdRai7Xb0mMBpqf8rbVZ276/QzfdNLxK0SDBsmeMEyzzc7n7WUvC6f4 LicNdcECucWENcQh+7KCYX8IuTsrqmcF2r1mEJNnP2gfPYR6+q6vJX84+ISpCJDbnafC m7LFNrIFm2bDhe2GOq2taNJEWzx8J7xcJ+N8PomiyMlQGCJoZB0y7PiQuSTOqCTSnYwq eegA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850089; x=1713454889; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=0opaX+8vRYcNzgWaP8rJvrsIYshzJ+i+ilu4pihK1VU=; b=RPygfJaQVdA748N+wLzsi4CpzXME5sb1CUvqbiKAvGdGzVEzt4Axq3Irh6B1ZXQCjf XvL/R1ZRl6dmwGF9yGKgaYPBbjwR1eZgaigpawvsn0/Cm4Ig01XZZOOBC8Cn+6bgjcCq SuxAj8xDXT0udmX5w8MKhp7AEuH0yAwAP1pe3EhWmpICeGT6fPD9Z9sRI5XS6N+/voUE 2RG9/Lkhmp5M1QnfVXuZhAWpfo1maL/s1VBo0cj5Cb7BxKdA/OHYcRBLx86CO5sXvK+E Zx05F1tM+97C491Ja6pcb8kZwq7uNduktIiwcEPomm23yrRbvx5aBuNzjOTcbBhU/Mt+ utag== X-Gm-Message-State: AOJu0YznkY/gSztnr3D8HVswrdCcAb7QnvytOd3kim4NBA/qNWk+aO5Q Ys2ep3ZCjCVAj25P5RmYKWJFZzAN6mcWvfLrENF5znNlALgaBpcD1VmYRYSUBFZtY2HTgro3rWV 0 X-Google-Smtp-Source: AGHT+IHAtDAxWuexCXOLLZYck5wWY4tysTa0I2u04M+TcmbYGQ9VRExVQYpJcraVe6qDU447kCLgtg== X-Received: by 2002:a92:d812:0:b0:369:bf80:e367 with SMTP id y18-20020a92d812000000b00369bf80e367mr6255000ilm.3.1712850088780; Thu, 11 Apr 2024 08:41:28 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.41.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:41:27 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 354/437] arch/sh: convert to read/write iterators Date: Thu, 11 Apr 2024 09:18:14 -0600 Message-ID: <20240411153126.16201-355-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- arch/sh/mm/tlb-debugfs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/sh/mm/tlb-debugfs.c b/arch/sh/mm/tlb-debugfs.c index 11c6148283f3..2ebb9db3ffa5 100644 --- a/arch/sh/mm/tlb-debugfs.c +++ b/arch/sh/mm/tlb-debugfs.c @@ -142,7 +142,7 @@ static int tlb_debugfs_open(struct inode *inode, struct= file *file) static const struct file_operations tlb_debugfs_fops =3D { .owner =3D THIS_MODULE, .open =3D tlb_debugfs_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D single_release, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f44.google.com (mail-io1-f44.google.com [209.85.166.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 D7259167A38 for ; Thu, 11 Apr 2024 15:41:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850095; cv=none; b=loCp3NEzw1ttdHaLlW+ABmRPT5Gf7m8eeAOCuTbI4yC7jUBy6bchL65v7b53rbsKwvhPi3BNJLhi3H55GppY0IxR91VXN261K1j4UrC3DmBgzsED/bdL4RfvlRPag4aalgrG9DE8gXN0wrD8afRY24K4CIU1O65B+66e6FKhEuc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850095; c=relaxed/simple; bh=7CPUkBrN8xjyPGLCUDnqIjQ3YwFz8Z3s2tGLPP4pTKY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Mc8uoZW9vUCjAlLwbmylMkr2A/IZpVLaHRt465wwHQxbeLiu53raQucNy4ogBJmFbJHonXFs2BXedDwJoE3wZ4k2O1iXBkZKIpcl4B/l9Yg8AAuWnqascOcRGYeN2bTVoQmdqCcVIuhzVItP1ngUsj+s7EGVEgGVxZJHFt6Czfo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=C1jtS6pn; arc=none smtp.client-ip=209.85.166.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="C1jtS6pn" Received: by mail-io1-f44.google.com with SMTP id ca18e2360f4ac-7d6812b37a6so9077639f.0 for ; Thu, 11 Apr 2024 08:41:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850092; x=1713454892; 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=3MgonaAJ8bM7EoRbBevWgKvLnyQoKhiQvxy8z1bY5wU=; b=C1jtS6pndry/6eGJXipxytsxCwBl+pR8qibzYiZuWw8KfBTOKqFuTeplap6lbZjgbA C1DBNViO5bL/teO81SgB/eSGFwclHT+oaArQsWrN9Yz3uHwGJi2XfmJELo1R+qWHJPY7 qKWJJVcaKYniAFgNk8C+bqLDyl5htUmaXsJc/ErS/Yx23RLTNOFih9kheb/eqN+nUnhG b+2rNDY8tKGlH5Wl3fnD1rpWFF9Y2wTEmSJ1+N6anw9nO2H9McLZY2J7Usu0YBizjnwu 9CTHPDeZfUr85M7Oxou/OUgn2WW025jkoOgyqGlvStoyCMPKFrauOHRUKR+5alWkRxIf cPTA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850092; x=1713454892; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=3MgonaAJ8bM7EoRbBevWgKvLnyQoKhiQvxy8z1bY5wU=; b=lRbGrMCQQyzgXaEoWZ96/PjiRzjy6OU2HMugCc7Awb4+pEjwSlBd0twDi3Lt/EsoOD 6ECrnV9d4T9ZDryKWcL2J9f+QIYvmevFoW4iQkbyEVMDv5sUQ73jP9BXNN2FQnA4nvsu ho29Od/axuapYbiv+W1CiSR8lntqBxBhKI08/ZgtkCKeRbOMTSZx9bQPbH8Gx3kTVKYX iN91RHPXARAlxIZYdkV/RNDLSuyn3cc8GvZW6Osgc++YzXGcm6CkPqUOAj6SQbaH0X2X 1GGYK4fwK32G7t6DivXxHlI+0OVS84hOUby/5MTnlXz5gHsPWYmXOzprZVC22h3GnfWw 5ELg== X-Gm-Message-State: AOJu0YwBnWoxT799vE1SxUDzQMH72zLZ7s37JduYOw3xD1+H1xIrWFjg h/tdUYNNDhlCsM75l2lFpIMKILHJ69gFJ4lXMx1i/biUJi9eACmE74+YpeRpsjfbZuaN5kUOa/E V X-Google-Smtp-Source: AGHT+IFmqXzmrJFX9P/Ko3ZWYXEzHYBSzbJq8rlX8IhegYTqL0auVi6gqDbef6sqQOHxwgU8/lPXlw== X-Received: by 2002:a6b:5b10:0:b0:7d0:bd2b:43ba with SMTP id v16-20020a6b5b10000000b007d0bd2b43bamr236277ioh.0.1712850092654; Thu, 11 Apr 2024 08:41:32 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.41.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:41:29 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 355/437] arch/um: convert to read/write iterators Date: Thu, 11 Apr 2024 09:18:15 -0600 Message-ID: <20240411153126.16201-356-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- arch/um/drivers/harddog_kern.c | 6 +++--- arch/um/drivers/hostaudio_kern.c | 22 +++++++++++----------- arch/um/drivers/mmapper_kern.c | 16 +++++++--------- 3 files changed, 21 insertions(+), 23 deletions(-) diff --git a/arch/um/drivers/harddog_kern.c b/arch/um/drivers/harddog_kern.c index 60d1c6cab8a9..77fa33f229f2 100644 --- a/arch/um/drivers/harddog_kern.c +++ b/arch/um/drivers/harddog_kern.c @@ -109,9 +109,9 @@ static int harddog_release(struct inode *inode, struct = file *file) return 0; } =20 -static ssize_t harddog_write(struct file *file, const char __user *data, s= ize_t len, - loff_t *ppos) +static ssize_t harddog_write(struct kiocb *iocb, struct iov_iter *from) { + size_t len =3D iov_iter_count(from); /* * Refresh the timer. */ @@ -158,7 +158,7 @@ static long harddog_ioctl(struct file *file, =20 static const struct file_operations harddog_fops =3D { .owner =3D THIS_MODULE, - .write =3D harddog_write, + .write_iter =3D harddog_write, .unlocked_ioctl =3D harddog_ioctl, .compat_ioctl =3D compat_ptr_ioctl, .open =3D harddog_open, diff --git a/arch/um/drivers/hostaudio_kern.c b/arch/um/drivers/hostaudio_k= ern.c index c42b793bce65..8ea3bb32867c 100644 --- a/arch/um/drivers/hostaudio_kern.c +++ b/arch/um/drivers/hostaudio_kern.c @@ -67,10 +67,10 @@ static DEFINE_MUTEX(hostaudio_mutex); =20 /* /dev/dsp file operations */ =20 -static ssize_t hostaudio_read(struct file *file, char __user *buffer, - size_t count, loff_t *ppos) +static ssize_t hostaudio_read(struct kiocb *iocb, struct iov_iter *to) { - struct hostaudio_state *state =3D file->private_data; + struct hostaudio_state *state =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(to); void *kbuf; int err; =20 @@ -86,7 +86,7 @@ static ssize_t hostaudio_read(struct file *file, char __u= ser *buffer, if (err < 0) goto out; =20 - if (copy_to_user(buffer, kbuf, err)) + if (!copy_to_iter_full(kbuf, err, to)) err =3D -EFAULT; =20 out: @@ -94,10 +94,10 @@ static ssize_t hostaudio_read(struct file *file, char _= _user *buffer, return err; } =20 -static ssize_t hostaudio_write(struct file *file, const char __user *buffe= r, - size_t count, loff_t *ppos) +static ssize_t hostaudio_write(struct kiocb *iocb, struct iov_iter *from) { - struct hostaudio_state *state =3D file->private_data; + struct hostaudio_state *state =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); void *kbuf; int err; =20 @@ -105,14 +105,14 @@ static ssize_t hostaudio_write(struct file *file, con= st char __user *buffer, printk(KERN_DEBUG "hostaudio: write called, count =3D %d\n", count); #endif =20 - kbuf =3D memdup_user(buffer, count); + kbuf =3D iterdup(from, count); if (IS_ERR(kbuf)) return PTR_ERR(kbuf); =20 err =3D os_write_file(state->fd, kbuf, count); if (err < 0) goto out; - *ppos +=3D err; + iocb->ki_pos +=3D err; =20 out: kfree(kbuf); @@ -292,8 +292,8 @@ static int hostmixer_release(struct inode *inode, struc= t file *file) static const struct file_operations hostaudio_fops =3D { .owner =3D THIS_MODULE, .llseek =3D no_llseek, - .read =3D hostaudio_read, - .write =3D hostaudio_write, + .read_iter =3D hostaudio_read, + .write_iter =3D hostaudio_write, .poll =3D hostaudio_poll, .unlocked_ioctl =3D hostaudio_ioctl, .compat_ioctl =3D compat_ptr_ioctl, diff --git a/arch/um/drivers/mmapper_kern.c b/arch/um/drivers/mmapper_kern.c index 807cd3358740..db66090177d4 100644 --- a/arch/um/drivers/mmapper_kern.c +++ b/arch/um/drivers/mmapper_kern.c @@ -26,19 +26,17 @@ static unsigned long mmapper_size; static unsigned long p_buf; static char *v_buf; =20 -static ssize_t mmapper_read(struct file *file, char __user *buf, size_t co= unt, - loff_t *ppos) +static ssize_t mmapper_read(struct kiocb *iocb, struct iov_iter *to) { - return simple_read_from_buffer(buf, count, ppos, v_buf, mmapper_size); + return simple_copy_to_iter(v_buf, &iocb->ki_pos, mmapper_size, to); } =20 -static ssize_t mmapper_write(struct file *file, const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t mmapper_write(struct kiocb *iocb, struct iov_iter *from) { - if (*ppos > mmapper_size) + if (iocb->ki_pos > mmapper_size) return -EINVAL; =20 - return simple_write_to_buffer(v_buf, mmapper_size, ppos, buf, count); + return simple_copy_from_iter(v_buf, &iocb->ki_pos, mmapper_size, from); } =20 static long mmapper_ioctl(struct file *file, unsigned int cmd, unsigned lo= ng arg) @@ -82,8 +80,8 @@ static int mmapper_release(struct inode *inode, struct fi= le *file) =20 static const struct file_operations mmapper_fops =3D { .owner =3D THIS_MODULE, - .read =3D mmapper_read, - .write =3D mmapper_write, + .read_iter =3D mmapper_read, + .write_iter =3D mmapper_write, .unlocked_ioctl =3D mmapper_ioctl, .mmap =3D mmapper_mmap, .open =3D mmapper_open, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f50.google.com (mail-io1-f50.google.com [209.85.166.50]) (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 64EB6167A55 for ; Thu, 11 Apr 2024 15:41:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850099; cv=none; b=Ho9S2FSr2Mr1Tz+KStc2Gl4GBQBkwjrzBkalLVTkLK/d2LChAT740A1MGHkWeYY75VXez7viyJrdgO+ElcHdvbVEr33LG4Upv6/MNNm12nh4fTyFovYgw/SXavmtt72zGz3CafBd9BFiYwWvDi5zF5AUfbvAQytW36U59Mveuy4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850099; c=relaxed/simple; bh=g+zwEFWI8VvsoSwOW1FTDAA15YfoeDjQvAm+jbBBB50=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=mhAJKaKhn94jMu3K78sh1jHOFfYGtsi93Y42bFFvGNhHhqU6mQYMUrGl3BSPiVOlRPLLYzNS9uVVYNEv4NXGLuXB2p8TYageSfu9tQg6w8HtdYMCtTrZp1tG5+axwqonJ1jwYvPZsLL8vH1q4MgOsPIcODp6YHJNMXtrZHAaBAA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=cCH3HmXs; arc=none smtp.client-ip=209.85.166.50 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="cCH3HmXs" Received: by mail-io1-f50.google.com with SMTP id ca18e2360f4ac-7d5ed700c2dso16252439f.0 for ; Thu, 11 Apr 2024 08:41:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850097; x=1713454897; 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=Llyi1IogZE1nUb7GHT6MuAncAwq5FXJrNFNMt9VY/9U=; b=cCH3HmXss12X+5z90iWJQZCqbQJIF0G8fiEML4+34ZgdXkT5eoUHMt8xr2CBleRWxz xvZm6qcP6CqChN1CiSEuPFLDEYKAet//jiyVJguCFtofdeWY81CRm3BZhMiHK5zDhvwo sVAWneC2sX5Tx4QFOKLTjR9MpDVaX6nAkXpx5bPzyCcC8AnBb12/Pc2oRkbUPRO3FKcI nNW0sWyUt06PMaLUXOvpSvgysrVwi1f/n9Ui8YtE7EqwKEIHOiPc20n4lRN7SPbDk5kL m2SUES841EDNk/0zPchlIkbaYqFGtgS9eCreKsDUpTb5BpPji7EkFvlDP/zfoIxaEC5T VdSQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850097; x=1713454897; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Llyi1IogZE1nUb7GHT6MuAncAwq5FXJrNFNMt9VY/9U=; b=m57farIKWul6cqQizEozG2W9WM03SLcyBYiB+AG1FcUOwCc1Bx+tqQNRFKn1u2AcWw zlkt9LDIK6TCj3YBtXE8pGxtQWgHWQGOL6b5G7JUoVNgisiE6YiIPiMX6ByJby1xrpPd 5FhfaXn4MqA6yI2E+CXZ8DIt9nQkCSZLYwPMvS7eKARhMMIFhwImezlXq4z9G5+ECSQW QrkFEIj9TbCkHI2ySWQTY/Qd+d3RktBIXuKo+Ra898nEMb1jK5yhtqiklhoJzh2J7GkK 1PFCa6d6KfxLHpyQxQ1IoiyP2iMDVkceE6+iwCV45j1CGU7a96zAm6MfT+fSyvM8fQUR elJA== X-Gm-Message-State: AOJu0YweB0FDv0Jhy0syQS+yy0ITMS6UocAtPO63SH2GVkFRBoYxH1U5 1usAcfwzmVxUQ1XnFr8KMvDV2wNyfsXkzi6m0ngfieDJ8yh6OjYcUMCatY5GQ8MsQ7IiL+LGpj6 4 X-Google-Smtp-Source: AGHT+IGsrgKlOcRW6JLDKSDUd7s4tPQ88iiCTlC9fABCJbV1e1lJBPo+GL//qM2yk9yOO95wNQQ5HA== X-Received: by 2002:a05:6602:38d:b0:7d6:513b:254 with SMTP id f13-20020a056602038d00b007d6513b0254mr201911iov.2.1712850097234; Thu, 11 Apr 2024 08:41:37 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.41.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:41:35 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 356/437] arch/sparc: convert to read/write iterators Date: Thu, 11 Apr 2024 09:18:16 -0600 Message-ID: <20240411153126.16201-357-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- arch/sparc/kernel/mdesc.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/arch/sparc/kernel/mdesc.c b/arch/sparc/kernel/mdesc.c index 30f171b7b00c..bcc3afbc8760 100644 --- a/arch/sparc/kernel/mdesc.c +++ b/arch/sparc/kernel/mdesc.c @@ -1261,24 +1261,24 @@ static int mdesc_open(struct inode *inode, struct f= ile *file) return 0; } =20 -static ssize_t mdesc_read(struct file *file, char __user *buf, - size_t len, loff_t *offp) +static ssize_t mdesc_read(struct kiocb *iocb, struct iov_iter *to) { - struct mdesc_handle *hp =3D file->private_data; + struct mdesc_handle *hp =3D iocb->ki_filp->private_data; + size_t len =3D iov_iter_count(to); unsigned char *mdesc; int bytes_left, count =3D len; =20 - if (*offp >=3D hp->handle_size) + if (iocb->ki_pos >=3D hp->handle_size) return 0; =20 - bytes_left =3D hp->handle_size - *offp; + bytes_left =3D hp->handle_size - iocb->ki_pos; if (count > bytes_left) count =3D bytes_left; =20 mdesc =3D (unsigned char *)&hp->mdesc; - mdesc +=3D *offp; - if (!copy_to_user(buf, mdesc, count)) { - *offp +=3D count; + mdesc +=3D iocb->ki_pos; + if (!copy_to_iter_full(mdesc, count, to)) { + iocb->ki_pos +=3D count; return count; } else { return -EFAULT; @@ -1303,7 +1303,7 @@ static int mdesc_close(struct inode *inode, struct fi= le *file) =20 static const struct file_operations mdesc_fops =3D { .open =3D mdesc_open, - .read =3D mdesc_read, + .read_iter =3D mdesc_read, .llseek =3D mdesc_llseek, .release =3D mdesc_close, .owner =3D THIS_MODULE, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f41.google.com (mail-io1-f41.google.com [209.85.166.41]) (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 E1569167A5E for ; Thu, 11 Apr 2024 15:41:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850103; cv=none; b=ob5k9r3AcPLhCz1Tt6QTF4lrk6ex+tp3Gr8tKACl8cff51/timrUXemGV+r97SNXoRcmZ5K0ucylq3ueDmM/gABIgEs2E5AJh9+sUaXPLw75W4hAzHFHZT1JszblL/ZsQJ/IFKrosGluClW3icYYp9ZcgEiX2xxnG2gDnDqOlck= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850103; c=relaxed/simple; bh=FkYWqTvM+2jSptowiPOt+barHIkCI9dC3b27o9bdQqE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=K9J0e9JpYIAG/2iG9MftDTz+5s7SzL7oPZ1FqOtA0vVv/kxSBUCSUQlNbk2mPGnFNEuPe57MqtNclRMFcyv0ReKmUXg7x2AyOv5CfYyrJ9xhtG0evQ4aUCjn6Vl3EUrwHKoif0V53QMW5bfPKq+gTvjx20UoUsiL7WCUxwETMlg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=1YGtsZTR; arc=none smtp.client-ip=209.85.166.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="1YGtsZTR" Received: by mail-io1-f41.google.com with SMTP id ca18e2360f4ac-7d5ed700c2dso16253139f.0 for ; Thu, 11 Apr 2024 08:41:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850099; x=1713454899; 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=tjm37oBDCr6T/2qjJEXIR+jYlGucpRAsXgmpYtn7BVc=; b=1YGtsZTR4IDAc1pljtlWcCxLQJ5XPo5F0KXFezIE1arDbtxn6/EmKyhJNomkpaE9gG dagPFE5A78+TzxX7xfkLznhG8D4HsfofvHJFFIF4sLWabEDa5v7OnDSiGQyye4pumNzu kgjC+/LY9QD34V87SQcII7tKH9CnwqNz6VRHoGYTK7Pl/qM5KzZ1Dbo9355H0PCrD18T Wb8efdUbyjYMYgU6rW6V9Nim3OQoOMAtabJvUwcgjMwj8dFTrODi2DD1qGI/gwB4giWg o/1gopv7VIwDktPszRGNOESphq/gw3y/j/pqNz4QiC3J3nzPcIov+sJJ98TBkPI7JbXE CsfA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850099; x=1713454899; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=tjm37oBDCr6T/2qjJEXIR+jYlGucpRAsXgmpYtn7BVc=; b=Lq/clTKdV4Ue8xvQgjOXHNRWYxK/tSgNXwSUYvrj8g36lBkK05WrdrVaPYLRK1lPyW r5uQBqh3kgmJ0IhyGX620qu7OTBGK/c7pLtJmP4HS9lga0pcR6eGPYKJs/6awp2fluGw lboCJW+9q3k6uqnGTl0pQe427+32lWs4WBajn1oLYRBDdQ5WsISluGjBaof0IzwbEitD ZL2XOb05fLibIcHIUNBVtSt+C1EqaCpoDcFsx/nOyhVLQaVZkigvNCOjs449AffVy4Ye 9gVIFOvxGMx4MJZIjLyBmzI2oBKBbEfCUOtQ9rRu+47uuLviFI4MX69fBi4xRlTHFUQK 9JQw== X-Gm-Message-State: AOJu0YwSGCxbansDS+5HCtQ5D8kPzKiiZ3nAYwBz/8ga494S3pMWpEyV +VnqYQ0R4RsK/KWNfvvtv+Hlo0VagNZrs+7xLvfGDe15HW5UBv52gnp5Slbzr/t2E8H8BDrKAmh P X-Google-Smtp-Source: AGHT+IEhHZinlhSLuM6YKkPR3YHa9s8EMI9PdzE7fWRTEwfoQStXLGimgMsv/BHWlyxYHGZuJGIm5w== X-Received: by 2002:a6b:f312:0:b0:7d5:de23:13a9 with SMTP id m18-20020a6bf312000000b007d5de2313a9mr176510ioh.1.1712850099437; Thu, 11 Apr 2024 08:41:39 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.41.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:41:37 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 357/437] samples/vfio-mdev: convert to read/write iterators Date: Thu, 11 Apr 2024 09:18:17 -0600 Message-ID: <20240411153126.16201-358-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- samples/vfio-mdev/mtty.c | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/samples/vfio-mdev/mtty.c b/samples/vfio-mdev/mtty.c index 2284b3751240..b7b9c39a0497 100644 --- a/samples/vfio-mdev/mtty.c +++ b/samples/vfio-mdev/mtty.c @@ -881,16 +881,17 @@ static long mtty_precopy_ioctl(struct file *filp, uns= igned int cmd, return ret; } =20 -static ssize_t mtty_save_read(struct file *filp, char __user *buf, - size_t len, loff_t *pos) +static ssize_t mtty_save_read(struct kiocb *iocb, struct iov_iter *to) { - struct mtty_migration_file *migf =3D filp->private_data; + struct mtty_migration_file *migf =3D iocb->ki_filp->private_data; + size_t len =3D iov_iter_count(to); ssize_t ret =3D 0; + loff_t *pos; =20 - if (pos) + if (iocb->ki_pos) return -ESPIPE; =20 - pos =3D &filp->f_pos; + pos =3D &iocb->ki_filp->f_pos; =20 mutex_lock(&migf->lock); =20 @@ -908,7 +909,7 @@ static ssize_t mtty_save_read(struct file *filp, char _= _user *buf, =20 len =3D min_t(size_t, migf->filled_size - *pos, len); if (len) { - if (copy_to_user(buf, (void *)&migf->data + *pos, len)) { + if (!copy_to_iter_full((void *)&migf->data + *pos, len, to)) { ret =3D -EFAULT; goto out_unlock; } @@ -923,7 +924,7 @@ static ssize_t mtty_save_read(struct file *filp, char _= _user *buf, =20 static const struct file_operations mtty_save_fops =3D { .owner =3D THIS_MODULE, - .read =3D mtty_save_read, + .read_iter =3D mtty_save_read, .unlocked_ioctl =3D mtty_precopy_ioctl, .compat_ioctl =3D compat_ptr_ioctl, .release =3D mtty_release_migf, @@ -1018,18 +1019,19 @@ mtty_save_device_data(struct mdev_state *mdev_state, return ret; } =20 -static ssize_t mtty_resume_write(struct file *filp, const char __user *buf, - size_t len, loff_t *pos) +static ssize_t mtty_resume_write(struct kiocb *iocb, struct iov_iter *from) { - struct mtty_migration_file *migf =3D filp->private_data; + struct mtty_migration_file *migf =3D iocb->ki_filp->private_data; struct mdev_state *mdev_state =3D migf->mdev_state; + size_t len =3D iov_iter_count(from); loff_t requested_length; ssize_t ret =3D 0; + loff_t *pos; =20 - if (pos) + if (iocb->ki_pos) return -ESPIPE; =20 - pos =3D &filp->f_pos; + pos =3D &iocb->ki_filp->f_pos; =20 if (*pos < 0 || check_add_overflow((loff_t)len, *pos, &requested_length)) @@ -1045,7 +1047,7 @@ static ssize_t mtty_resume_write(struct file *filp, c= onst char __user *buf, goto out_unlock; } =20 - if (copy_from_user((void *)&migf->data + *pos, buf, len)) { + if (!copy_from_iter_full((void *)&migf->data + *pos, len, from)) { ret =3D -EFAULT; goto out_unlock; } @@ -1080,7 +1082,7 @@ static ssize_t mtty_resume_write(struct file *filp, c= onst char __user *buf, =20 static const struct file_operations mtty_resume_fops =3D { .owner =3D THIS_MODULE, - .write =3D mtty_resume_write, + .write_iter =3D mtty_resume_write, .release =3D mtty_release_migf, .llseek =3D no_llseek, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f50.google.com (mail-io1-f50.google.com [209.85.166.50]) (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 7616F51C21 for ; Thu, 11 Apr 2024 15:41:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850103; cv=none; b=cpBZxtCYgMKp/cLkH1dNO4z0dIGMPqFBhxkMeNPuUE9/btE3GZYt6EBAqVYRRWrz8CIxCPollM79kGH8KvXy/g8Sv9N3TznNAkTS682i8hQYyo8VIZYF6j8UZj2P4R4e4Q4lkJyiPFWRQupPnU87tM5v+HeiYydCrMs8cEjNOek= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850103; c=relaxed/simple; bh=ojbnloJYVO4ehK8CMeeqy7PmCoHDvIpXm4TvHz9u5Ks=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=byjO/j/UcPnNktdMxMVa1tFanEpAYaY0emy94hXmscILfTs5r8DHxrFCCTidsShQzd68csPDiadpo4XJPTurITAWv6BtDe9avwvLOoYyVOrRHbomg7yFkk/6+MKR08DNa0mrTgel7IiewI7N+mRyAsleBLduv7QwAE0MvV/36x0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=owFm2kNH; arc=none smtp.client-ip=209.85.166.50 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="owFm2kNH" Received: by mail-io1-f50.google.com with SMTP id ca18e2360f4ac-7d67d1073easo9917739f.0 for ; Thu, 11 Apr 2024 08:41:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850100; x=1713454900; 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=tHg/3S6NbCQ02OFZAWNiLhmvhUCnFDNl1Jg+mlY3jqs=; b=owFm2kNHo2C3gw5H5LbunGtn21+FJrkEJpyadxXq56ElQuqe/gRGKZpr7UAdToHkl/ oXLOB4XQGMqr5VUa5Go6PkKkmHIDrLErK+FOuTwnwND2R34+BrhW15PlvwR25fhaAtEi NxdrC0j91Qu4FjhKMk98+M1/F3IRZfX4tRxfBQADiDJVq7aQ/4xHII2P7skm0W/jNBtZ ZuOpkzZ5LdjnucYetUy55/7I0VZHR6SpkLuEgm+Up4KHlyp0Q2k9ViVohWMIz2ksYlvZ SjMU7JiFwgFwvBxeiMWBPaZDNlEOPgq6D8jCyLUeJs92SDXpDs5XA2daV2Fy1t+52d6i 4u1A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850100; x=1713454900; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=tHg/3S6NbCQ02OFZAWNiLhmvhUCnFDNl1Jg+mlY3jqs=; b=VDAu1Tsuj+CJl5ssXQgyCPvUnuwkCigVhTYgMacIyVvf911wqax467x9/pA6dPR3FK 4cTCUzC/JTvnT/V4TKDgxthgjyrgl/27poaihwbMPhwSwYrQGStOef+F5UYlzVUxC6qc TPa27DF3A2AeUrr8QtXV9+38syLzuGC6HkwtfU2mbrAhI/sXP9GkSFWJuT2Hd5i4CVGo HEik6jon0IWykzjCP3FdN9WZWfS3dC0+fF9vC+/1vSTjwH+BAvDHBylIYkXayAcFPmnR EZ/Wokne+dzOitD/OIZ/1FOzpwxhdd3p6NfYJMfGlCizECzld+dDjCKtoTyWmRYT9m57 878Q== X-Gm-Message-State: AOJu0YzEtj5b0PAdSVrQwP+e5164zlT1kb8emLFz1QMWxCR+a3yDUH2C ws0hWor4At+YdL6EAsXQHvQWP/Vms5FGyIgAaO9/UY0nieDjhR1+GaxDGH55AgwjnnjykdVoswc G X-Google-Smtp-Source: AGHT+IFwlc0vOCM4GsRHaMFAKyi8dXWNVHNwCiYPdcjLedTXng5GM8K4pCdDLbZ72NKEtXeZ5VqSaw== X-Received: by 2002:a6b:c34e:0:b0:7d6:7b7c:8257 with SMTP id t75-20020a6bc34e000000b007d67b7c8257mr234266iof.0.1712850100112; Thu, 11 Apr 2024 08:41:40 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.41.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:41:39 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 358/437] hwmon: fschmd: convert to read/write iterators Date: Thu, 11 Apr 2024 09:18:18 -0600 Message-ID: <20240411153126.16201-359-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/hwmon/fschmd.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/hwmon/fschmd.c b/drivers/hwmon/fschmd.c index b30512a705a7..896a073811a0 100644 --- a/drivers/hwmon/fschmd.c +++ b/drivers/hwmon/fschmd.c @@ -848,11 +848,11 @@ static int watchdog_release(struct inode *inode, stru= ct file *filp) return 0; } =20 -static ssize_t watchdog_write(struct file *filp, const char __user *buf, - size_t count, loff_t *offset) +static ssize_t watchdog_write(struct kiocb *iocb, struct iov_iter *from) { int ret; - struct fschmd_data *data =3D filp->private_data; + struct fschmd_data *data =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); =20 if (count) { if (!nowayout) { @@ -863,7 +863,7 @@ static ssize_t watchdog_write(struct file *filp, const = char __user *buf, =20 for (i =3D 0; i !=3D count; i++) { char c; - if (get_user(c, buf + i)) + if (get_iter(c, from)) return -EFAULT; if (c =3D=3D 'V') data->watchdog_expect_close =3D 1; @@ -951,7 +951,7 @@ static const struct file_operations watchdog_fops =3D { .llseek =3D no_llseek, .open =3D watchdog_open, .release =3D watchdog_release, - .write =3D watchdog_write, + .write_iter =3D watchdog_write, .unlocked_ioctl =3D watchdog_ioctl, .compat_ioctl =3D compat_ptr_ioctl, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f42.google.com (mail-io1-f42.google.com [209.85.166.42]) (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 06755167A55 for ; Thu, 11 Apr 2024 15:41:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850104; cv=none; b=bniRaiE55w47ulP/XZBfYvWCushB7odzvmfcccsSWEZMWuG3txT5h4dhHO6YQMZrDqOTQuud7XVcbShhLz1w0uTj8i4XLqSdzY8M/Blz2ZS/6h3MNqHKcHQ3gSJ+TOR1op7VsJ6ylzR13OsiR5QeTvjVCta+42p6QcX8OqrpNHY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850104; c=relaxed/simple; bh=EU0m+GYx750B5TEfB114nPOm0jKAAEysLyRXLk1OWKE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=AHuB87BfW8GpjgbBg4d6gfA79HeF7rN0W9T0oEYmz/7aJmg/h7aj+h+ETDDuts5CPt3DoCDsRjvaBk2uGqTOwv4YP2EyNN8G4cVPH6z92nGEW2zt/P8gPkpYDT0+4ZjouJSCkyxXnD+RM0ni1c6nYy/8KTGYq1tQQfP2MK5DhoY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=xh+7a57D; arc=none smtp.client-ip=209.85.166.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="xh+7a57D" Received: by mail-io1-f42.google.com with SMTP id ca18e2360f4ac-7cc0e831e11so170635639f.1 for ; Thu, 11 Apr 2024 08:41:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850102; x=1713454902; 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=QUwnBOIHWTDqxRA7ju6azON0mNBRNg9CJwY1xMY9Hh4=; b=xh+7a57DDm7wRyS95LT3a+SC1utocvGcUn8/pnGzm3QSosmq47L5g/Oi6/ULmh2SzB b9vTyeDOUOxHIDF6VW3CtnVg2BCkHbBDrK7VnTiUU6FB5YZrplf+V/8EbAukolr2/BI+ f5B2OT9yoyRCfoZem9gKWBjvbPvUmq4i6TJLPxn8W3H20sMcrC1YHdgnYJpQLcqJDjk8 ffBBVEcIjzTfg4KvID00cukRjt/ABrpZ2+2AHjR40+CWDOUb6670iIfQ5otWFb4frqMb 0Id+lizfpZsJVFwVTzqpDHZVM8rczgnc4LwC5AVsQ2h/WLuT+o580kx7OdpP4fKKqfqn IOLA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850102; x=1713454902; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=QUwnBOIHWTDqxRA7ju6azON0mNBRNg9CJwY1xMY9Hh4=; b=d2CYnB9A53M8p1OatWmJo1AkUMRncuAGctt8kMV4xYXAGwGQ685bxKnO5GOL2Ug6NW Xm1MSPsQ1Xm1BRuaPPT7XIT31IgNtICFzXuCWzGcfJeTNsrJ67epaXum5zFbQQvzQt/Y 5SqKfs5pDAV0SS9Ef1sUFpGf9X0kJ8W7K2tHA9AiG1DOQ5VCQbdJKXW9uBpMtK9+2qvU DN0Wx945KWTW/NYD0dReuiRdvT7klL32Z3NWG5Z2Nf4AqWZS0epT4S+2HZ0eLAXdtLBz F5wzW9tbd8aDAyTLjcdzBM5eV5/oILmaGjzcvfxjqn5KP3BZrz5ATtHGh+0Z4LLp5LxN Xe9g== X-Gm-Message-State: AOJu0Ywtk/J2x8OPuRYw+4+iD9NIiCiBm4kZzUjIKs9WoU26xNamO1YP +wJv9vK9/XhrE+R9KQVkC6MTOi7y2roNh9y8xUjjwzdCsCwq9a9rhI3tpBxpUW2hiNr+eJZ0tF5 c X-Google-Smtp-Source: AGHT+IFQ/wL3w9aBvPhHTTMmWkVdXQDaNzeLPv/PfBVzZdwDvWnXNYO5iWTDkp3BQDF1237TfAqJVw== X-Received: by 2002:a6b:5b10:0:b0:7d0:bd2b:43ba with SMTP id v16-20020a6b5b10000000b007d0bd2b43bamr236714ioh.0.1712850102076; Thu, 11 Apr 2024 08:41:42 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.41.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:41:40 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 359/437] hwmon: w83793: convert to read/write iterators Date: Thu, 11 Apr 2024 09:18:19 -0600 Message-ID: <20240411153126.16201-360-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/hwmon/w83793.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/hwmon/w83793.c b/drivers/hwmon/w83793.c index 96bab94ba899..7594fc588112 100644 --- a/drivers/hwmon/w83793.c +++ b/drivers/hwmon/w83793.c @@ -1352,11 +1352,11 @@ static int watchdog_close(struct inode *inode, stru= ct file *filp) return 0; } =20 -static ssize_t watchdog_write(struct file *filp, const char __user *buf, - size_t count, loff_t *offset) +static ssize_t watchdog_write(struct kiocb *iocb, struct iov_iter *from) { ssize_t ret; - struct w83793_data *data =3D filp->private_data; + struct w83793_data *data =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); =20 if (count) { if (!nowayout) { @@ -1367,7 +1367,7 @@ static ssize_t watchdog_write(struct file *filp, cons= t char __user *buf, =20 for (i =3D 0; i !=3D count; i++) { char c; - if (get_user(c, buf + i)) + if (get_iter(c, from)) return -EFAULT; if (c =3D=3D 'V') data->watchdog_expect_close =3D 1; @@ -1454,7 +1454,7 @@ static const struct file_operations watchdog_fops =3D= { .llseek =3D no_llseek, .open =3D watchdog_open, .release =3D watchdog_close, - .write =3D watchdog_write, + .write_iter =3D watchdog_write, .unlocked_ioctl =3D watchdog_ioctl, .compat_ioctl =3D compat_ptr_ioctl, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f45.google.com (mail-io1-f45.google.com [209.85.166.45]) (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 C0D5E1ECE78 for ; Thu, 11 Apr 2024 15:41:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850106; cv=none; b=m1ejMpE4Dj5cGPTDkptipSnFdRqV4ol5Zbew/PfYS+GOzCQj3KK3o3aPVgU2z8A0/UCS8ILyMsvsWDS6qttWEJE8k1lbDNtVxYfK1Iu6SUQN/eOLdNZ/NJ1O6j5bkSmbvMUzezuf1bIC402YOzlhDxVPh1k7lJ6aGyksB+1S14w= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850106; c=relaxed/simple; bh=XA0kueIZ+W/r6Gy+vaE76A3EVkTNnTgOhktlTU+d77I=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=EeSWS3opBQPqEOUUqlDFn3eeuTzzL/qXgSnonSOeVScN0zft/2ysHg8HDGTJLve+T389kBY33SR/D08bEhLTKtKNuaiPWaee8zK3gkATYejjk5ShP5VdDKrupl2Vt81EeufuJCNa1v4HNmq/5T92ZO8i3oqBR2VpiNKE2NOXBwQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=JJDKSvoA; arc=none smtp.client-ip=209.85.166.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="JJDKSvoA" Received: by mail-io1-f45.google.com with SMTP id ca18e2360f4ac-7cc0e831e11so170636139f.1 for ; Thu, 11 Apr 2024 08:41:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850103; x=1713454903; 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=pGAzEWsufQPncGSyPx2VXfJ5oENgvtMIK0zKLOzyooE=; b=JJDKSvoA7CH+MMG06F2nv95XF3XBshB2fj8fCUHKyt8x9fN2eKQLnN7y6M+O5j4+zt CKcX/h5FGiOxBb2AM+vjyiyWA81cc1Pp1CgVgxtUk1Qm8bU+i2xOiwSeY7m+8RkOjIjq 4If6DvaeKD8BJYY5h3nZ+1XNFVAnCipjd8aCMwooKGlKjPZws1vzhu2ID4NiRwl/Zv54 0nukpL6WaBF93WJbfEqYLpv0IpxbDJng5cKdATAEVXRgfnJCUas4GKsoi0Vvigphok4W 8DAmloYKBWIr3POfd0SFBq1W02mqSgZBjzl1TEKmyiQ9CYFjnK0bgsooE1ObSxhQRlvI Xvgw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850103; x=1713454903; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=pGAzEWsufQPncGSyPx2VXfJ5oENgvtMIK0zKLOzyooE=; b=U6ecPL6K5WcpAUTnGbUCIs8D94okX4uFLTgRLmaPRbJTiECgatdXGIu1vsvZSRVvCJ YfJ/DFgbglG6R8ETt+Ogs+iBlp7vdBtbN0OUEL8wmKEcmbW8FkMcHMdsT3Es9HEj6n6t V2XbcwlN7SP3bosQHwh8Le5OlZW2ouyJS8WdYOk4vpELmRLe1rH9mNdB0ZG57lBlCEwP QxPXk3mFJCC/5SrG4vibtm5rrUYjl68puWLoCR330dwMuDPmZ6P5U59zAWxySaC1ItDX D1yU3Rx/MkUZuw83MYq7MCxRy5IhHO1SLEAIUk3sg2U1FwHRzJMK/jP89bVGcE6QeroT vEIw== X-Gm-Message-State: AOJu0YxgM4B4MYtjq1EWxEKttPesnh/j9QOiQcAKy2VCIMNVAAoJfcfJ +SeISC8fk8my1V9heys6/eGBeQgCYD6LbR4Opq7eJTK9HWbRrTlAYCuFL2LdxgT08TgmHUPCVvJ 6 X-Google-Smtp-Source: AGHT+IGZPLLOOf2rrYNSpL0qYe5NzOl7Q3VTQwFsLu7Qy8lAgKwjgMDaH68L+rYozvhcXePEW7Q7EQ== X-Received: by 2002:a05:6602:21d7:b0:7d6:9ddf:5095 with SMTP id c23-20020a05660221d700b007d69ddf5095mr31252ioc.1.1712850103578; Thu, 11 Apr 2024 08:41:43 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.41.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:41:42 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 360/437] hwmon: asus_atk0110: convert to read/write iterators Date: Thu, 11 Apr 2024 09:18:20 -0600 Message-ID: <20240411153126.16201-361-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/hwmon/asus_atk0110.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/drivers/hwmon/asus_atk0110.c b/drivers/hwmon/asus_atk0110.c index d778a2aaefec..bd6eabfd7d73 100644 --- a/drivers/hwmon/asus_atk0110.c +++ b/drivers/hwmon/asus_atk0110.c @@ -764,13 +764,12 @@ static int atk_debugfs_ggrp_open(struct inode *inode,= struct file *file) return nonseekable_open(inode, file); } =20 -static ssize_t atk_debugfs_ggrp_read(struct file *file, char __user *buf, - size_t count, loff_t *pos) +static ssize_t atk_debugfs_ggrp_read(struct kiocb *iocb, struct iov_iter *= to) { - char *str =3D file->private_data; + char *str =3D iocb->ki_filp->private_data; size_t len =3D strlen(str); =20 - return simple_read_from_buffer(buf, count, pos, str, len); + return simple_copy_to_iter(str, &iocb->ki_pos, len, to); } =20 static int atk_debugfs_ggrp_release(struct inode *inode, struct file *file) @@ -780,7 +779,7 @@ static int atk_debugfs_ggrp_release(struct inode *inode= , struct file *file) } =20 static const struct file_operations atk_debugfs_ggrp_fops =3D { - .read =3D atk_debugfs_ggrp_read, + .read_iter =3D atk_debugfs_ggrp_read, .open =3D atk_debugfs_ggrp_open, .release =3D atk_debugfs_ggrp_release, .llseek =3D no_llseek, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-il1-f178.google.com (mail-il1-f178.google.com [209.85.166.178]) (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 411DC1ECE9B for ; Thu, 11 Apr 2024 15:41:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.178 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850107; cv=none; b=Rr+17pu8z1WGK77CylzRplODR6yTNQGY3Wd238sSArx26j+Xvge7HesaEPz9DffTf2u1NzExHHUalZsY5KpsN3ervKq1GjEYirQTdWZ7VSf3vpfdUmYQlE6qXXpd8oQnYOhVvGFP9SkZiQuzkIykIzXZ14wQOm6Bfv7ZYuC9tSg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850107; c=relaxed/simple; bh=erK2BM1EXWu8fh0GVCQPxgDC/O8W8kwBJDQytB0f6WQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=MILNC2XDD2tkFSQHnoi+qHPg2M0Vc4HzTAvUhw5oogQX5Ir1EwQxRmFxfc3zv6yDwz8c8W9SEYirr29n5GZ4e0qvSrZKU6O2oN6fM7gUJsExmcf50ED0y+W13nVMntcfaSVW/REgBQvNLr/G9K0j1AGEAE4+0bfZ9HPZZokIt9M= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=E3oiHP3S; arc=none smtp.client-ip=209.85.166.178 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="E3oiHP3S" Received: by mail-il1-f178.google.com with SMTP id e9e14a558f8ab-36a34b68277so121235ab.0 for ; Thu, 11 Apr 2024 08:41:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850105; x=1713454905; 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=a0/MNPvZYsE3TLDRaRWepSsrve407yXns6KhuDOnqm0=; b=E3oiHP3SfYDhASgJe+z2ltV5Bn0CqkqpJXgY5e0jsG+jFUMD9mpPG18MrAOkVu7DRT mxIm9Wn3OokYnYH1atGY8iEGnyRyevmn4CVSwT0gfsnth6P/mqv/HyIrq6lY6ILXQpUL hY6JGupCj8F7iTtfDH84Yyo6O9h/nlG/gC/M6HUHcc+aQDBZdHqqiYMsjzIZYT4L7b/Z k5tfuxFgxv1GbcukIL8MC0a3dsp0CNUaDe1ALF1r64JMXR6jLo0KS4hulxT2P8kz9StQ vFgXRqsD/ePW0LJ6UXa0Ngk4nlxUVvS9ZgpdznJ6XT2/lKiAvm5SO0mRTX0KwjvYc2Jw MKrA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850105; x=1713454905; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=a0/MNPvZYsE3TLDRaRWepSsrve407yXns6KhuDOnqm0=; b=LeUxXtzeDZ96ypNXT4mpzjl/N0ZhKjhJsFiUk6NAMT8LuewV1G6gagbVmMQa31hpzA jjLoPX9c5I8YriPKrN3WN1NKMsy7+4rwOUcjqF8Bs67oxa9XniZx1nj1t+/iAH9Sb4Yk DrL0++ra0Ic3hD6D7jXOmm0uJ0bZj5IsnLfMM/nXKg2VVlMXDamJMNW2WN2UF1qlVtJJ NJnz8vJcXPvWvK3qSG643IDDc6ae99vZiR3hSzGFlx0YCNXPyf5nidc5n4nYcH500it2 wlIi1vLlIj0yOmdUUIjzqB5xYNdyb8zpWBQjwwYtMHtxjnRtdBaGFBdmEJ/K10wyBI0H rMMw== X-Gm-Message-State: AOJu0YwwfhebJQtkRWrg1qw/SXRls28BrTZf7mBYbjjl+RF1hor73JlG Swthh0IphcXBc7AG5KistnFpngZrCvKCe2cb1h71KqZxmk9e2tCJVZK/6Bp9FisNbhztandD+Qf c X-Google-Smtp-Source: AGHT+IFaBsxCYQV/5GJPT46EUxKlAoKzT1TtuvBEx8YvJmGvLl1AkbHtdrf2m12HHK0iX10cDYZJ2w== X-Received: by 2002:a05:6602:4ed7:b0:7d5:ddc8:504d with SMTP id gk23-20020a0566024ed700b007d5ddc8504dmr201259iob.0.1712850105192; Thu, 11 Apr 2024 08:41:45 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.41.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:41:43 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 361/437] hwmon: mr75203: convert to read/write iterators Date: Thu, 11 Apr 2024 09:18:21 -0600 Message-ID: <20240411153126.16201-362-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/hwmon/mr75203.c | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/drivers/hwmon/mr75203.c b/drivers/hwmon/mr75203.c index 50a8b9c3f94d..a2de0954b4e6 100644 --- a/drivers/hwmon/mr75203.c +++ b/drivers/hwmon/mr75203.c @@ -182,26 +182,24 @@ struct pvt_device { u32 ip_freq; }; =20 -static ssize_t pvt_ts_coeff_j_read(struct file *file, char __user *user_bu= f, - size_t count, loff_t *ppos) +static ssize_t pvt_ts_coeff_j_read(struct kiocb *iocb, struct iov_iter *to) { - struct pvt_device *pvt =3D file->private_data; + struct pvt_device *pvt =3D iocb->ki_filp->private_data; unsigned int len; char buf[13]; =20 len =3D scnprintf(buf, sizeof(buf), "%d\n", pvt->ts_coeff.j); =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 -static ssize_t pvt_ts_coeff_j_write(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t pvt_ts_coeff_j_write(struct kiocb *iocb, struct iov_iter *f= rom) { - struct pvt_device *pvt =3D file->private_data; + struct pvt_device *pvt =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); int ret; =20 - ret =3D kstrtos32_from_user(user_buf, count, 0, &pvt->ts_coeff.j); + ret =3D kstrtos32_from_iter(from, count, 0, &pvt->ts_coeff.j); if (ret) return ret; =20 @@ -209,8 +207,8 @@ static ssize_t pvt_ts_coeff_j_write(struct file *file, } =20 static const struct file_operations pvt_ts_coeff_j_fops =3D { - .read =3D pvt_ts_coeff_j_read, - .write =3D pvt_ts_coeff_j_write, + .read_iter =3D pvt_ts_coeff_j_read, + .write_iter =3D pvt_ts_coeff_j_write, .open =3D simple_open, .owner =3D THIS_MODULE, .llseek =3D default_llseek, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f52.google.com (mail-io1-f52.google.com [209.85.166.52]) (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 228AE1ED743 for ; Thu, 11 Apr 2024 15:41:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850109; cv=none; b=D0Hic0ZDUAWdlFSzo6fc7g8i1a7qC5MT1OSH739EovnH/7mCvV3tEQR3C3O3zdPn7YAE6aH6uHhFLZ54BgypBktFuJ+/wMCtucVQ8aufKZnVap1QFOGt3KFzNi9Lk+Qdi8j05HJeSdFLmtwejKsjMsXApbdVgmVeWf7GWl1Wtpk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850109; c=relaxed/simple; bh=F3ghVNHYkYDwqG/ic0r458tZE0jAzsc5iHJB06NOZ8U=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=EOfO/3pfp+japTmuOr4FIsYwl9EpxC+ikw6aqik6LE3QMvIaxy3qZpka7DW8VHEFqFccsENfZTbHnbdopi5gqjUugaeg5nV00H6tYvhd70SP7CdcAe98BDg/a2dSogXKr7kN17cgy2vxosxtiQ7AxuCo0+4dM9NevNMwut0P3hI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=gbfW83uV; arc=none smtp.client-ip=209.85.166.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="gbfW83uV" Received: by mail-io1-f52.google.com with SMTP id ca18e2360f4ac-7d6112ba6baso58244539f.1 for ; Thu, 11 Apr 2024 08:41:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850107; x=1713454907; 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=uA8b89WlMoOLmxCUVeReNqk0nF3IewFPUR21ZUsnOJU=; b=gbfW83uVOSKAL5Gbv0Ske443ZkAfIoKGM4POwnqgL6gaWkM5tsj+ocrX9ko9nTF3mT OX5cPJdcToBRPApBPJDCZfaTHmpjrg6xmZPFmdD/qImhgLTDLBsbbP2+xqSvpT4TOH2T VIapH3lMOR3a9Pa4dZUWa1fY/rtm9WL/rfp2mIorD1YjzJF8LolzOdsoXs+VNrIxy2ZU g/w3tJocJRi5qWnLE5t1DI2OEcr4w5CHgqwBhW1nU/FbF+uayy9lIlZVbQMxeGCw9V05 Q3A/joKAeuU7TzZwuGPpsL87EM1t4I0O4Qr6Vm55Ib+3cPS98g5F88/dd8C+KhOm4izR YvFw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850107; x=1713454907; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=uA8b89WlMoOLmxCUVeReNqk0nF3IewFPUR21ZUsnOJU=; b=wW7sWwEDpjc5cGvPJGXut83Dba/MfMBqkYCsrgl+a5co0ibzOT4Y+G/36T1BcPR0dr dDVXhkpxHd+QovLTWgBVcTNtGUWaIxGllFosaYGYTDlz/phnXKAPzN0geaFwbKidIsGx FkqyIATNggV4wMnNTger4+pvh3Rru3eF5MvznTRgRh85uIjhep+pZlMn+gR9aI3R2hl8 9WA8fyNeBvNwZRXPnWpzIOwSyiuPr2tpKponk7xD010b3utG4PUrmhGSOO2BLSS88A87 rf4QE3wy0nSfUvPzu4CBZ+FqtbWjUXAQgD2Rf2Xlc91wZIYD0P+Khse0qBCak8LCCLwE ETZw== X-Gm-Message-State: AOJu0YwmxEe3eT191+WTxdYFrn9ZHvJfs9K2a4mOb+Q6lZwvSaCVjcqC /dQ+rmXO6aZ0WAEul/NSVFwZJrAQKaW30bMl2nJJ0J2UQUrSqPCWz6QnjCni92r41LoHrV86gMs B X-Google-Smtp-Source: AGHT+IHPvt/AYoYLfkqFDedbhmcM+3L30/G0CY83mVPWCLvHbZ5xJpXfzUP81JxaGmI/tyevhmKYIw== X-Received: by 2002:a6b:cd08:0:b0:7d5:fe3e:90ff with SMTP id d8-20020a6bcd08000000b007d5fe3e90ffmr212554iog.0.1712850106945; Thu, 11 Apr 2024 08:41:46 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.41.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:41:45 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 362/437] hwmon: acbel-fsg032: convert to read/write iterators Date: Thu, 11 Apr 2024 09:18:22 -0600 Message-ID: <20240411153126.16201-363-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/hwmon/pmbus/acbel-fsg032.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/drivers/hwmon/pmbus/acbel-fsg032.c b/drivers/hwmon/pmbus/acbel= -fsg032.c index e0c55fd8f3a6..cc8fec9d1ea1 100644 --- a/drivers/hwmon/pmbus/acbel-fsg032.c +++ b/drivers/hwmon/pmbus/acbel-fsg032.c @@ -15,10 +15,9 @@ =20 #define ACBEL_MFR_FW_REVISION 0xd9 =20 -static ssize_t acbel_fsg032_debugfs_read(struct file *file, char __user *b= uf, size_t count, - loff_t *ppos) +static ssize_t acbel_fsg032_debugfs_read(struct kiocb *iocb, struct iov_it= er *to) { - struct i2c_client *client =3D file->private_data; + struct i2c_client *client =3D iocb->ki_filp->private_data; u8 data[I2C_SMBUS_BLOCK_MAX + 2] =3D { 0 }; char out[8]; int rc; @@ -28,13 +27,12 @@ static ssize_t acbel_fsg032_debugfs_read(struct file *f= ile, char __user *buf, si return rc; =20 rc =3D snprintf(out, sizeof(out), "%*phN\n", min(rc, 3), data); - return simple_read_from_buffer(buf, count, ppos, out, rc); + return simple_copy_to_iter(out, &iocb->ki_pos, rc, to); } =20 static const struct file_operations acbel_debugfs_ops =3D { .llseek =3D noop_llseek, - .read =3D acbel_fsg032_debugfs_read, - .write =3D NULL, + .read_iter =3D acbel_fsg032_debugfs_read, .open =3D simple_open, }; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f54.google.com (mail-io1-f54.google.com [209.85.166.54]) (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 25B3C51C21 for ; Thu, 11 Apr 2024 15:41:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850111; cv=none; b=BLBiRi/G8ZF15VcW24wQnglLXPedSiAH29rni/xb//Z0EPsq7XnyICqLr96h5iSB5IYxqypnTa8Dz5uMs+0TRMuKQYq9SQHoYuX2jQunoE+FUzBW4+SrESGHTOnWKsnknSelJeNIiCdxOm4CYLBuX0NhwPbrkJho8iVmppGTd3M= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850111; c=relaxed/simple; bh=oXjTkKPohk0vS18x42aZEyvDlY206tp/5qdzhsnIPWw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=PjLYoWNX/ReaN7FtsFbUmYMFfkG0NJwFiWtLiBmpEzOk5EXKSyK+mpnyHYJbhHCCRywGfdMKzUtAKW4J49rp68p4SuHsicuhh2W5gqdAGiEtrJAI30k1L2R8JR3DYGT2SvRNqjHVVe1pxAod/zzbuSbTq35HMmfXWLmK3mfCOo0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=AkShu8nu; arc=none smtp.client-ip=209.85.166.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="AkShu8nu" Received: by mail-io1-f54.google.com with SMTP id ca18e2360f4ac-7d5ed700c2dso16254239f.0 for ; Thu, 11 Apr 2024 08:41:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850109; x=1713454909; 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=e84TktZWqz2ftcqRtZv7G98v4ugNTmR72ukEIS+kVtQ=; b=AkShu8nuTGEglEUWQkGtSQ0GOEIdbmIivQ7HagR2aK5PVQ+RfMdK4bxNUtIzmlqTkr TnQyfybyczmWQTevM37pda9enwAZuLOZdbWB2rfg5sa0b9/oU9uian0wIaDNOv5EmK4y y2h9pfyp5fGvzSqUI5ypVhQX76vp3AQHPTsIyGMfBx4PDcojASSjVFDF1bCRhuGSaFRm LqfBH+SvEL4ve1K3aUns/znMZ3lnZREjewpOkKgwmL69usVrUHX+QjMKc0DplRrMWYkc /7Tgmz3nnv4RsDZwyh5kryxGQOqPe95XZxYuqpnF3hHdD1HWS7bzdDO+plefK2ij47Zp 988Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850109; x=1713454909; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=e84TktZWqz2ftcqRtZv7G98v4ugNTmR72ukEIS+kVtQ=; b=UT8R6rAfRPYjxPIqXjqUle7RNonq1Xcg+fQNnumphu2oQf95bLT/IPZxipeRJuU3KD neVWJpRKoRs5eK+ojjjnEAWsBvWHtdKmY3/XtNG5ROgjI33ZEGb+iydzPlETJ77uiN75 +Qk63zkUsMk+5rPvE9X9QDjiNeos7bq+HO5SeEG5NJ8YreUDnqqzAQNNhDJkVrgdDVwT ZXEGu5ugWR6VXakg4sl+lVSPZXLQfSbmtoJ2R5yOD9eA2YSoGDhpnLVxkeE7NOSnecKM ad2B9raf7MoG/4gk5k2Di65cbwSb0lxltBTO9fAdYOrzNEFKqqHgufVXy4VWlhyTju86 ++Bg== X-Gm-Message-State: AOJu0YxDisVhFKlLSMeCcg5mWts/Lowb3legmvio7G0xkf+mHH8CVt6F XQIudLVPu/z6OPzIC+GkjUt2HoIIhZ+ByjT5F+hYBJsm6anEOr1G5COCt9ny/vHBcTCBSBopsBF l X-Google-Smtp-Source: AGHT+IHB9iuF7+KDqIGOnDGQPqM7FMnuCddIUPQwZzYNs2JMLlsJOK6Z1STkZJeu768r6s4E3ZTvVA== X-Received: by 2002:a6b:f312:0:b0:7d5:de23:13a9 with SMTP id m18-20020a6bf312000000b007d5de2313a9mr176905ioh.1.1712850108766; Thu, 11 Apr 2024 08:41:48 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.41.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:41:47 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 363/437] hwmon: ibm-cffps: convert to read/write iterators Date: Thu, 11 Apr 2024 09:18:23 -0600 Message-ID: <20240411153126.16201-364-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/hwmon/pmbus/ibm-cffps.c | 35 +++++++++++++++------------------ 1 file changed, 16 insertions(+), 19 deletions(-) diff --git a/drivers/hwmon/pmbus/ibm-cffps.c b/drivers/hwmon/pmbus/ibm-cffp= s.c index 1ba4c5e95820..b64875cf6d60 100644 --- a/drivers/hwmon/pmbus/ibm-cffps.c +++ b/drivers/hwmon/pmbus/ibm-cffps.c @@ -75,12 +75,12 @@ struct ibm_cffps { =20 #define to_psu(x, y) container_of((x), struct ibm_cffps, debugfs_entries[(= y)]) =20 -static ssize_t ibm_cffps_debugfs_read_input_history(struct file *file, cha= r __user *buf, - size_t count, loff_t *ppos) +static ssize_t ibm_cffps_debugfs_read_input_history(struct kiocb *iocb, + struct iov_iter *to) { int rc; u8 cmd =3D CFFPS_INPUT_HISTORY_CMD; - struct ibm_cffps *psu =3D file->private_data; + struct ibm_cffps *psu =3D iocb->ki_filp->private_data; struct i2c_msg msg[2] =3D { { .addr =3D psu->client->addr, @@ -95,7 +95,7 @@ static ssize_t ibm_cffps_debugfs_read_input_history(struc= t file *file, char __us }, }; =20 - if (!*ppos) { + if (!iocb->ki_pos) { rc =3D pmbus_lock_interruptible(psu->client); if (rc) return rc; @@ -116,22 +116,20 @@ static ssize_t ibm_cffps_debugfs_read_input_history(s= truct file *file, char __us return rc; } =20 - return simple_read_from_buffer(buf, count, ppos, - psu->input_history + 1, - psu->input_history[0]); + return simple_copy_to_iter(psu->input_history + 1, &iocb->ki_pos, + psu->input_history[0], to); } =20 static const struct file_operations ibm_cffps_input_history_fops =3D { .llseek =3D noop_llseek, - .read =3D ibm_cffps_debugfs_read_input_history, + .read_iter =3D ibm_cffps_debugfs_read_input_history, .open =3D simple_open, }; =20 -static ssize_t ibm_cffps_debugfs_read(struct file *file, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t ibm_cffps_debugfs_read(struct kiocb *iocb, struct iov_iter = *to) { int i, rc; - int *idxp =3D file->private_data; + int *idxp =3D iocb->ki_filp->private_data; int idx =3D *idxp; struct ibm_cffps *psu =3D to_psu(idxp, idx); char data[I2C_SMBUS_BLOCK_MAX + 2] =3D { 0 }; @@ -205,22 +203,21 @@ static ssize_t ibm_cffps_debugfs_read(struct file *fi= le, char __user *buf, data[rc] =3D '\n'; rc +=3D 2; =20 - return simple_read_from_buffer(buf, count, ppos, data, rc); + return simple_copy_to_iter(data, &iocb->ki_pos, rc, to); } =20 -static ssize_t ibm_cffps_debugfs_write(struct file *file, - const char __user *buf, size_t count, - loff_t *ppos) +static ssize_t ibm_cffps_debugfs_write(struct kiocb *iocb, + struct iov_iter *from) { u8 data; ssize_t rc; - int *idxp =3D file->private_data; + int *idxp =3D iocb->ki_filp->private_data; int idx =3D *idxp; struct ibm_cffps *psu =3D to_psu(idxp, idx); =20 switch (idx) { case CFFPS_DEBUGFS_ON_OFF_CONFIG: - rc =3D simple_write_to_buffer(&data, 1, ppos, buf, count); + rc =3D simple_copy_from_iter(&data, &iocb->ki_pos, 1, from); if (rc <=3D 0) return rc; =20 @@ -250,8 +247,8 @@ static ssize_t ibm_cffps_debugfs_write(struct file *fil= e, =20 static const struct file_operations ibm_cffps_fops =3D { .llseek =3D noop_llseek, - .read =3D ibm_cffps_debugfs_read, - .write =3D ibm_cffps_debugfs_write, + .read_iter =3D ibm_cffps_debugfs_read, + .write_iter =3D ibm_cffps_debugfs_write, .open =3D simple_open, }; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f47.google.com (mail-io1-f47.google.com [209.85.166.47]) (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 B82561EE28D for ; Thu, 11 Apr 2024 15:41:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850113; cv=none; b=DUWD8xGf0eSjTUTqIhpm4wTGnw9i2k2fv6bVq79ZPoMn0/cecfLrAGCdHEaJnAJGgx/BhL5114d8kJAXSZNL0x1Aam9XBDuRD7e4+wnbbrbdhvVcKyYrS36Z7a/9BJ5WI3lY1XzP+QoP7W0ucrbHnsMIYX3OVvp+v6y53sHCA8E= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850113; c=relaxed/simple; bh=/IeMnqoAFIfNDzyMJoINUVbc0BpFENvhPn2hRx58JlQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=G176TRFkxwGzy/EILD28XOJJ6yg2zUIgKMREYR+SJ0Isu3HxLUrbB3jm1C/5WcFf6T9aFYhmAqC84vPEOQBwjGsEELgstN712hvCuv/LpTW97leNvHxzHGASJ3IfGZR1byFUlv0uZOoxU5kMfbeHAYNaGa0xPyDGhh3m13Way4I= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=1W7wHpFP; arc=none smtp.client-ip=209.85.166.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="1W7wHpFP" Received: by mail-io1-f47.google.com with SMTP id ca18e2360f4ac-7cc0e831e11so170638739f.1 for ; Thu, 11 Apr 2024 08:41:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850110; x=1713454910; 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=W+B46NL6slQO6G9eUPd+J4fVyZNcCFKn3DmWcSn06so=; b=1W7wHpFPPSTPrfViPVVBQKCy4X2LTtPsQwBup6ZCTXaPKbeQzlkYQtn5pqOGS1TAIx Ylh3JZ5vTJLQ1UyuSrpuhQ/MMEe0wtpSGVIHUBDgdAD48JtQMLq/+bcRTKdpxIKSVx2+ DhVWQvxsXoWVCeBs2NwcvaFnfy+2zsWpnFz455ht2MQC9ScnEdH/58Ebv//NVzj+0lcO sQnmCqOMBpQn76Q4W/zK8CfMBmbhWQsjaUDVsdErebt6sPJprKdJ/qLY7FlUC+GleSSl dOBqPrpl7NIPlKZzj7nuHShQrOidT0BssHeE7jvOHCv+6DSNb44BPbiXGZ913jw+8b1x tqtQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850110; x=1713454910; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=W+B46NL6slQO6G9eUPd+J4fVyZNcCFKn3DmWcSn06so=; b=bESF9wrXWZl8bvTZTJW0gw08ZuH34OyTFNl6oVBsVAu9wvxaqiAQdsJ2PqpG4sRGV7 2BOhM0vDEre3VYtyxBiGi6tRXp18wRv46FE3xHleA2DdKoobhy2VPYx6EpBr0NGciKHA ikhFSgLw5LlFWzUW/osjpnYGXAjAwJoENdMOmAd8Qu0fCReCtyW4s6KZVARg6TVcjLgF mgm06hDCZSNLyav0GOk00O8Dt+ugb9v0cyZ1jrf9bcDAkC9zkahNlyMkVmcER++TlYDX D42MrefTL1T/jdsouQm3TcVGfQOoQDBWkyCox+tVt3VMf4f9q4tLWPhJtB1vLlP8HPdn VFhQ== X-Gm-Message-State: AOJu0YwzqxcLCS+EraETDRky1HL/7+jsFgKMKHSLbAkUAdYUl1BhP0QP rbLHxx3580gH7sm26deQl9NLBG5nEc/NnyPCPVCb9o/LCf4VZRiqM/HGskCLUOx42KFiHatM3v1 P X-Google-Smtp-Source: AGHT+IElzNKvtjTscFFzikASYFa9gNQ4da0wwnnrv18prBDPykfkz6ro7LCyNcqXhqtvk5Zii0J/QA== X-Received: by 2002:a05:6602:21d7:b0:7d6:9ddf:5095 with SMTP id c23-20020a05660221d700b007d69ddf5095mr31549ioc.1.1712850110604; Thu, 11 Apr 2024 08:41:50 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.41.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:41:49 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 364/437] hwmon: max20730: convert to read/write iterators Date: Thu, 11 Apr 2024 09:18:24 -0600 Message-ID: <20240411153126.16201-365-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/hwmon/pmbus/max20730.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/drivers/hwmon/pmbus/max20730.c b/drivers/hwmon/pmbus/max20730.c index d56ec24764fd..9b0c6084cf12 100644 --- a/drivers/hwmon/pmbus/max20730.c +++ b/drivers/hwmon/pmbus/max20730.c @@ -104,11 +104,10 @@ struct max20730_debugfs_data { struct max20730_debugfs_data, debugfs_entries[(y)]) =20 #ifdef CONFIG_DEBUG_FS -static ssize_t max20730_debugfs_read(struct file *file, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t max20730_debugfs_read(struct kiocb *iocb, struct iov_iter *= to) { int ret, len; - int *idxp =3D file->private_data; + int *idxp =3D iocb->ki_filp->private_data; int idx =3D *idxp; struct max20730_debugfs_data *psu =3D to_psu(idxp, idx); const struct pmbus_driver_info *info; @@ -292,13 +291,12 @@ static ssize_t max20730_debugfs_read(struct file *fil= e, char __user *buf, } =20 len =3D strlen(result); - return simple_read_from_buffer(buf, count, ppos, result, len); + return simple_copy_to_iter(result, &iocb->ki_pos, len, to); } =20 static const struct file_operations max20730_fops =3D { .llseek =3D noop_llseek, - .read =3D max20730_debugfs_read, - .write =3D NULL, + .read_iter =3D max20730_debugfs_read, .open =3D simple_open, }; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-il1-f176.google.com (mail-il1-f176.google.com [209.85.166.176]) (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 96B731EE2AB for ; Thu, 11 Apr 2024 15:41:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.176 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850114; cv=none; b=oHPSOus/ZVNT1+11lGeMJNJNm5z+t6wH/Ziv2lxWF78NlEGRPDXwKsBlm0zJT0qHiz1lehIBUhCHKL4P4vJJvB5Mon/Bg7BZyDinn0hWhNIQ/LpjUQX+cIfKxkLj1TjF5AAG4tfpaRKVMIK6oADv406Ftkh6b0SigqkdbNtRB3A= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850114; c=relaxed/simple; bh=Y/iSvpIjGlIRFVx4u2nZZL2wUzPPNJ4zB+MKklb6/ek=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=u+EqMFyWBcUHFcrl3Uw646PL57YqEZYO/69QOwZF6O4s7xTnTgy+8lW0s1MK7qU63uc6AQxVDvNPQbOY/ftsbUK5Zn9WCwxYJ1X2YaNCSODT2jfJImGkUnBHRtdZIb9TVMP7oxuUpqz2mMQU2vuVADDXEJn2EE0o2t76a/elYZA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=R4yRdgqR; arc=none smtp.client-ip=209.85.166.176 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="R4yRdgqR" Received: by mail-il1-f176.google.com with SMTP id e9e14a558f8ab-36a34b68277so121415ab.0 for ; Thu, 11 Apr 2024 08:41:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850112; x=1713454912; 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=Bg2rFEF/+oIdUQ14ghwtCcWSCSUbBNSWYK4tXZxz9dU=; b=R4yRdgqROj2OP2ypNihEScjRcJq0VupodHLKEJvZ0Pt2p0Nad5NLVV1BpPZBH04RkE m/hhmIL5j1r+Q9x/hu2V291JJ3FWS99GyjbBWt9GV6AisOJShjU02H993G/CaOsFVgNs fm6pex0AzFr/jPyDGEMYtQN6COTuo6/xW+nuzmIwGxr9W2v0tZauxKtNrdp9CD4BVJO+ FMjLmyFj3pDfGsGX0uB9BplGN32ZeetpVcXRJS+9kb+6UuPIV4PZP0OaLtY7kXQm3M+j 6bbaPjmOqIt0eOig9pU+jmPiocoqvBB5VQ/0HEVFZw7pQYMNzKI2k7uo/S4rgiUDCgJI I/QQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850112; x=1713454912; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Bg2rFEF/+oIdUQ14ghwtCcWSCSUbBNSWYK4tXZxz9dU=; b=VR2HpvI4S0s/olMvK3qOiV05NFkc1Av8CpY1Nm1F1igiC1NfzxOv1mVWxuj8BVQQuK T1WH/6QQGzABioFf+TAqB+FRnIxnZyzC4qdfDWJKc1ix76KcstKxRzOYaSnzpHcYke9z YO+M/oUxpGefp3VIIDyDaXhNssQo/2qn+59A+Hw1qCbGYnCDaPDk8ePw4NU5vTJUacRD zRbL2W0yViZgD1WWP051Up8xVKzOzGBO3D95L5cQVHiVS9WK43wg5FG621S3qIN0GvQk E9ifXXAR4w2S4eCU9lFPL7zMRjvyKfzNLKShoaPT72KORXyaWYAbYJWKa1AjlvDM/0b2 EXeQ== X-Gm-Message-State: AOJu0YyJONA7KpP57L79BAJMLzWqdfulmi84nM4trYe+LuAtSWGz0VRm baj47uGPoEk2ymqdVbdtMDwzNA46F6kGVXM7Q71VeePew+cSz7Mu72bsZjdOOeLS67OyKep7d9V Z X-Google-Smtp-Source: AGHT+IEHU4dZHhwHkQD4H7YG9tJchvLQ2aCeiuD3KjckGsACToq/lu35Ca+PKnLM4MMA3SXcdVIkUw== X-Received: by 2002:a6b:4e14:0:b0:7d6:631d:7b0 with SMTP id c20-20020a6b4e14000000b007d6631d07b0mr202685iob.1.1712850112472; Thu, 11 Apr 2024 08:41:52 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.41.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:41:50 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 365/437] hwmon: pmbus: core: convert to read/write iterators Date: Thu, 11 Apr 2024 09:18:25 -0600 Message-ID: <20240411153126.16201-366-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/hwmon/pmbus/pmbus_core.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/drivers/hwmon/pmbus/pmbus_core.c b/drivers/hwmon/pmbus/pmbus_c= ore.c index cb4c65a7f288..39b340024c28 100644 --- a/drivers/hwmon/pmbus/pmbus_core.c +++ b/drivers/hwmon/pmbus/pmbus_core.c @@ -3303,11 +3303,10 @@ static int pmbus_debugfs_get_status(void *data, u64= *val) DEFINE_DEBUGFS_ATTRIBUTE(pmbus_debugfs_ops_status, pmbus_debugfs_get_statu= s, NULL, "0x%04llx\n"); =20 -static ssize_t pmbus_debugfs_mfr_read(struct file *file, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t pmbus_debugfs_mfr_read(struct kiocb *iocb, struct iov_iter = *to) { int rc; - struct pmbus_debugfs_entry *entry =3D file->private_data; + struct pmbus_debugfs_entry *entry =3D iocb->ki_filp->private_data; struct pmbus_data *pdata =3D i2c_get_clientdata(entry->client); char data[I2C_SMBUS_BLOCK_MAX + 2] =3D { 0 }; =20 @@ -3326,13 +3325,12 @@ static ssize_t pmbus_debugfs_mfr_read(struct file *= file, char __user *buf, /* Include newline into the length */ rc +=3D 1; =20 - return simple_read_from_buffer(buf, count, ppos, data, rc); + return simple_copy_to_iter(data, &iocb->ki_pos, rc, to); } =20 static const struct file_operations pmbus_debugfs_ops_mfr =3D { .llseek =3D noop_llseek, - .read =3D pmbus_debugfs_mfr_read, - .write =3D NULL, + .read_iter =3D pmbus_debugfs_mfr_read, .open =3D simple_open, }; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f43.google.com (mail-io1-f43.google.com [209.85.166.43]) (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 21BF31EECAB for ; Thu, 11 Apr 2024 15:41:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850117; cv=none; b=ViqbNK97ZkNSaVfJHU5RNNBg34pu3VIvUmJU0ZqscICb3pjHwvYbuPS3TsDvgJn5C3EjFs+mPqKvjm8BvyBijB+CaCT6FNZJziNRnFTR2ptOgU3AG0fkHzUoKC3nx9/tZNKY7xQmnOp5WcK8Lb47EPhIYhpcnJrbnHkPlf8E1yk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850117; c=relaxed/simple; bh=y59MzRpX118ustdZIEz22Rwf88iXR2a6PZXY50jryVY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=qs/8/PQldc9L7AhuzRkdIIFHARUfC+wv1/dkmbqi0X+x79SxWvmFFALIBHrCzTuEo5tDaa5lbHbOl9lsya5Tx28unTNLBzRxyoYRPEU0RLKSSmUSDrYvTUw3iq+KGJ1a6f38OCwKYS3GG/sh/q8tI6YS8qnp1u5sUcH8m8AK2B0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=2HZvsMGk; arc=none smtp.client-ip=209.85.166.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="2HZvsMGk" Received: by mail-io1-f43.google.com with SMTP id ca18e2360f4ac-7c8e4c0412dso69680239f.1 for ; Thu, 11 Apr 2024 08:41:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850115; x=1713454915; 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=oA14u6pH0QLWbvdHYR0iPO+22zrCROZFLdY7s2QKWXU=; b=2HZvsMGk4KJyXcRBAEYk/wL8nkRZDDW+bRCWl2ADqG4p634f7bJmumn/6lh7iGbpjT OzA50X4CnqBXLbPILKhcIHK/aOVLIYunXXgm2qccsOMVA6mUTvLwwY13GGHQ5JXQXiZd qiYNLYGCqOct/lhxNYQsL6EUq/fWlBNCo5WCSdo56Tqd8ImDtR2eigKpscPaPefFBzIi LfmNMmr4Lwbe5uvbxy9lhezXPk3K70XzdWu3pk+QPa+GRBjnzLiGSjGShCyd2fiiwXgw 8Odmkf8ouwsN32H1lkgPFCxbnUS1TedkdRDHl+YU2iucKAPTyC/JXyU7bTIyz36RZEqr F3xg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850115; x=1713454915; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=oA14u6pH0QLWbvdHYR0iPO+22zrCROZFLdY7s2QKWXU=; b=WJlagOGRWJ+4vuCudN/xKkFYFxJOF8wWammG2qb5yJPzX63x+7ZDYaEywEs7DerLAJ S8x7PkVt5NE3b20+m6TOjV5HfqjXmaAw1478Wl791MQaL5XBc8l7TBQ0Cm/62YvKI3k5 vx2jZpIHEd/VwHCs+8c8kMZRGCLLYGHFVY6QqqKh/nIYoN+leto5fyn1JLqZCQ2/dAer s7gABzlxqf2lHNpjjoGXXRksWIkBmD49c4zYEZdPSsBGzXAV/Ke6ReLFrchWdp4Lbc8o Mk3DxWNuro+WOapvQeMNT9w48cvwnezuQQXN2xmhFIYMQDvILzj2L349m92D5D3aal0/ 4QGA== X-Gm-Message-State: AOJu0Yzdp0CpxwQw/peSEJg2t6ThVoMz0chm/rCyX10SsuX92x7zf1U+ tdj2DkoX6a9SUbYmrFLmbGAjuKh+Kf43dWobvCy8NweChqYxxWwbdE/suO4Z2pycJLRCGyoOjH2 4 X-Google-Smtp-Source: AGHT+IFwSfB0/78vsfTpCy/J098dnlsSEN1qTqWzABRe70udhwPXHqvMHltr0pyB4IJoQUf3sy+oLA== X-Received: by 2002:a6b:7b05:0:b0:7d6:60dc:bc8e with SMTP id l5-20020a6b7b05000000b007d660dcbc8emr207975iop.1.1712850114864; Thu, 11 Apr 2024 08:41:54 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.41.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:41:52 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 366/437] hwmon: q54sj108a2: convert to read/write iterators Date: Thu, 11 Apr 2024 09:18:26 -0600 Message-ID: <20240411153126.16201-367-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/hwmon/pmbus/q54sj108a2.c | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/drivers/hwmon/pmbus/q54sj108a2.c b/drivers/hwmon/pmbus/q54sj10= 8a2.c index a235c1cdf4fe..12634ede2c50 100644 --- a/drivers/hwmon/pmbus/q54sj108a2.c +++ b/drivers/hwmon/pmbus/q54sj108a2.c @@ -70,11 +70,10 @@ static struct pmbus_driver_info q54sj108a2_info[] =3D { }, }; =20 -static ssize_t q54sj108a2_debugfs_read(struct file *file, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t q54sj108a2_debugfs_read(struct kiocb *iocb, struct iov_iter= *to) { int rc; - int *idxp =3D file->private_data; + int *idxp =3D iocb->ki_filp->private_data; int idx =3D *idxp; struct q54sj108a2_data *psu =3D to_psu(idxp, idx); char data[I2C_SMBUS_BLOCK_MAX + 2] =3D { 0 }; @@ -169,18 +168,18 @@ static ssize_t q54sj108a2_debugfs_read(struct file *f= ile, char __user *buf, data[rc] =3D '\n'; rc +=3D 2; =20 - return simple_read_from_buffer(buf, count, ppos, data, rc); + return simple_copy_to_iter(data, &iocb->ki_pos, rc, to); } =20 -static ssize_t q54sj108a2_debugfs_write(struct file *file, const char __us= er *buf, - size_t count, loff_t *ppos) +static ssize_t q54sj108a2_debugfs_write(struct kiocb *iocb, struct iov_ite= r *from) { u8 flash_key[4]; u8 dst_data; ssize_t rc; - int *idxp =3D file->private_data; + int *idxp =3D iocb->ki_filp->private_data; int idx =3D *idxp; struct q54sj108a2_data *psu =3D to_psu(idxp, idx); + size_t count =3D iov_iter_count(from); =20 rc =3D i2c_smbus_write_byte_data(psu->client, PMBUS_WRITE_PROTECT, 0); if (rc) @@ -188,7 +187,7 @@ static ssize_t q54sj108a2_debugfs_write(struct file *fi= le, const char __user *bu =20 switch (idx) { case Q54SJ108A2_DEBUGFS_OPERATION: - rc =3D kstrtou8_from_user(buf, count, 0, &dst_data); + rc =3D kstrtou8_from_iter(from, count, 0, &dst_data); if (rc < 0) return rc; =20 @@ -218,7 +217,7 @@ static ssize_t q54sj108a2_debugfs_write(struct file *fi= le, const char __user *bu =20 break; case Q54SJ108A2_DEBUGFS_VOOV_RESPONSE: - rc =3D kstrtou8_from_user(buf, count, 0, &dst_data); + rc =3D kstrtou8_from_iter(from, count, 0, &dst_data); if (rc < 0) return rc; =20 @@ -228,7 +227,7 @@ static ssize_t q54sj108a2_debugfs_write(struct file *fi= le, const char __user *bu =20 break; case Q54SJ108A2_DEBUGFS_IOOC_RESPONSE: - rc =3D kstrtou8_from_user(buf, count, 0, &dst_data); + rc =3D kstrtou8_from_iter(from, count, 0, &dst_data); if (rc < 0) return rc; =20 @@ -244,7 +243,7 @@ static ssize_t q54sj108a2_debugfs_write(struct file *fi= le, const char __user *bu =20 break; case Q54SJ108A2_DEBUGFS_BLACKBOX_SET_OFFSET: - rc =3D kstrtou8_from_user(buf, count, 0, &dst_data); + rc =3D kstrtou8_from_iter(from, count, 0, &dst_data); if (rc < 0) return rc; =20 @@ -262,8 +261,8 @@ static ssize_t q54sj108a2_debugfs_write(struct file *fi= le, const char __user *bu =20 static const struct file_operations q54sj108a2_fops =3D { .llseek =3D noop_llseek, - .read =3D q54sj108a2_debugfs_read, - .write =3D q54sj108a2_debugfs_write, + .read_iter =3D q54sj108a2_debugfs_read, + .write_iter =3D q54sj108a2_debugfs_write, .open =3D simple_open, }; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f45.google.com (mail-io1-f45.google.com [209.85.166.45]) (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 723341EF521 for ; Thu, 11 Apr 2024 15:41:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850120; cv=none; b=SfxtP065McQqrDHg+JlyciMPHJqwovhO1TMRwh+2ojIAurGKOLqRVJ/MQVpFdRpNXUUv8mOq8kJvuRdHNL9sxInQ9K7eXFLII9rfYVXqMEnSRmJC7XGtgScWVb6d6q7jTC5/fSGw5hi0v9fnq9lMHMdk0rO/mvtgqk2Gv7Ql9LY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850120; c=relaxed/simple; bh=fsSAZ/j6rz8b6lfbCgyEDkxERPYjjlGbcs+nSAGXcw8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=BdFNPYnZNFTvZFtB5uXhngGjpA0PgdGiQvDme/4wR2LS0NvTyNhuV/Ukx80snPEasAhUoAivaVzAPP84Jw07YFUeCMeKeXTIoGZkdnp3p+svhkptLmXje/KFMsHOyzk5vp0pHrjcD0EfvIyyAxcUC8UOhDsdWMnPbP65C8wqv+g= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=MamlB5PS; arc=none smtp.client-ip=209.85.166.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="MamlB5PS" Received: by mail-io1-f45.google.com with SMTP id ca18e2360f4ac-7d6112ba6baso58247939f.1 for ; Thu, 11 Apr 2024 08:41:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850118; x=1713454918; 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=cqR/7bLNPLxZni1GbBnllMUkQPN87O6jSpBweZ9+NFo=; b=MamlB5PSzbiM7rftx380vHU3akA39bx047b5gmi/rGubYMNLMy87WmQ9c4+BCjteO2 HHpefZ9tC9Ume7tWR5TPMYxHUixxJHJxO5MSbcDr+Vx8cXhioKpLrq6vVXWfMjIbiTNf nvN0d0gjRY1emauZ9F+DHamiGPXOjroOXz/nspYYmtOPCKSO6u4a2fMtqN/TjGTJIaEr jYWTxngFLfYt7YZ2hYGJnxCo1vpdKmPyxcuY/iVD9IeZiAoC3v0rjPU5U5tvoJks5QVT cBZISBNSAuVy9BTkjnoNQE2mot4exnQxhtUoz9zG853hqNgZFEQN5t9igCLZBcntBfta MZQw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850118; x=1713454918; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=cqR/7bLNPLxZni1GbBnllMUkQPN87O6jSpBweZ9+NFo=; b=nkE0hxgmyFDNemLZttBMgE9VmdV4LF+3imru8ttAP2ueJz+oMpGR9DB2GGkxw8nVoy itIB5Uh+mWFzMhky4dmSF03Y73RSARB64nZB3zEcss6D7qW5wjYDHeQf6ZUiti7jj28s Kyi+u4pdQCHMN5d5rrPlWkcMI4+OiN/ZE+Jf0vyJWU5Z8ncEQh/pwl5H65lnMhI3Xvcu PS0l2DPMNG6Xl2KRZF0+RgH8cOfN0o2yVYRK80a/rSiWTZC/poF7K5IusmlKHO8gApbq Li3615e+lXz4uUUf5qn7G9UZ1s6pZ2n6t5P+7jl04sxSz81RajaFADfhMhP11B4jAu6H +/5Q== X-Gm-Message-State: AOJu0Yx5QJW1wVGqR/lbpL7nL5lLCuyW/VqEQW/+Ez+zkjpJzn1YE5M1 fcOw66h7Agz5zA1x3Jnx8g64wNiFvL2qA9IPq4J1oCPozauBS3CGLMooN9oX1qR7aQhHyU0i+4A e X-Google-Smtp-Source: AGHT+IGoLN+We/KSbYbic5qzT2J+MOQpxgT5CAWPHDxmTuyIn+E6lWZBnvy88sADP9HDsrotrgZaDw== X-Received: by 2002:a6b:f312:0:b0:7d5:de23:13a9 with SMTP id m18-20020a6bf312000000b007d5de2313a9mr177309ioh.1.1712850118405; Thu, 11 Apr 2024 08:41:58 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.41.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:41:55 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 367/437] hwmon: ucd9000: convert to read/write iterators Date: Thu, 11 Apr 2024 09:18:27 -0600 Message-ID: <20240411153126.16201-368-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/hwmon/pmbus/ucd9000.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/drivers/hwmon/pmbus/ucd9000.c b/drivers/hwmon/pmbus/ucd9000.c index 8d9d422450e5..204c836fa322 100644 --- a/drivers/hwmon/pmbus/ucd9000.c +++ b/drivers/hwmon/pmbus/ucd9000.c @@ -471,11 +471,10 @@ static int ucd9000_debugfs_show_mfr_status_bit(void *= data, u64 *val) DEFINE_DEBUGFS_ATTRIBUTE(ucd9000_debugfs_mfr_status_bit, ucd9000_debugfs_show_mfr_status_bit, NULL, "%1lld\n"); =20 -static ssize_t ucd9000_debugfs_read_mfr_status(struct file *file, - char __user *buf, size_t count, - loff_t *ppos) +static ssize_t ucd9000_debugfs_read_mfr_status(struct kiocb *iocb, + struct iov_iter *to) { - struct i2c_client *client =3D file->private_data; + struct i2c_client *client =3D iocb->ki_filp->private_data; u8 buffer[I2C_SMBUS_BLOCK_MAX]; char str[(I2C_SMBUS_BLOCK_MAX * 2) + 2]; char *res; @@ -489,12 +488,12 @@ static ssize_t ucd9000_debugfs_read_mfr_status(struct= file *file, *res++ =3D '\n'; *res =3D 0; =20 - return simple_read_from_buffer(buf, count, ppos, str, res - str); + return simple_copy_to_iter(str, &iocb->ki_pos, res - str, to); } =20 static const struct file_operations ucd9000_debugfs_show_mfr_status_fops = =3D { .llseek =3D noop_llseek, - .read =3D ucd9000_debugfs_read_mfr_status, + .read_iter =3D ucd9000_debugfs_read_mfr_status, .open =3D simple_open, }; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f51.google.com (mail-io1-f51.google.com [209.85.166.51]) (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 AC0EF1EF53C for ; Thu, 11 Apr 2024 15:42:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850123; cv=none; b=fQDTjOi4qQTbNAHD3to+vaDzLzqz04+dAZlALfZpE+zA56BmaX1sm+pX57KiO6Q6WE9lUs0cRSBAtosjInIhakTSddwgOL3mxS17s+h8hcOn12Et4d8Kq6F/FEHhl8rVHC4BV/K0r7yLj+vtRpqBYaEX1gM0Be1vU3aVIf/FWHo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850123; c=relaxed/simple; bh=iRh49+5OkxCbqpZ3XI8G42DxgL1Hmu+w12M8sdxKXlk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ODnZpD1oFbs7QZa7v5bcc5heWY1TSk5kISCRCdfFwdEbpLcsXZXbnLBdTqShRSQUgVJrgjYysMcdWYCPPIdLG81Y5HWPGR/4fwwDY2EYS+5veJyvPrLiHswBvl2Nqy55LchIGoyAR3rm5/u8nKk+JjFcYma6ctZzKUfVesW/7I0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=1VdAh08G; arc=none smtp.client-ip=209.85.166.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="1VdAh08G" Received: by mail-io1-f51.google.com with SMTP id ca18e2360f4ac-7d6812b37a6so9086639f.0 for ; Thu, 11 Apr 2024 08:42:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850120; x=1713454920; 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=DFfR7rnk37eY+kj40RhuQFhYiRlfBiirVwlFZTavQ+w=; b=1VdAh08Gn5IoeaFgRBpBaHGinv6l0YgH7oSquQr5YE/3Gl7XKtCqkV/sv+qgO6ENM1 MyKLS4rx8kU3Kt3kSrND5sIT6T2UKx+kvC5Cs1B4tyiALF3jxUsgnXfVXwO3781z8OeW r3kUplr92pGXcyWGA4RUowqtD4Z6EgcTaevdwNFQ9RajCqck8727SYElasZetCDrgakl uGRUWqTfm/xpCLYqbVy0jmyUsULohizcmdIPD4V1cFcL8gUhtnGASNF8nE1iZRR0nR7k zB7Y05/4LRLIg0mmEJvykecooVjJ0ljDfkx1Lvu/28APcZ19Q5BtnYC8nm5P24FoVdde IzmA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850120; x=1713454920; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=DFfR7rnk37eY+kj40RhuQFhYiRlfBiirVwlFZTavQ+w=; b=pqFTrCWenEzlE0YnLLFsLlBNAkCMC03CSdL6bHsm+NywHObqbauTfcHdYWjEs8Vip4 yofkGhbcjw/XJEaSEPqO5hQRPGXetonbQ/wKBkkkuGpLIcFqVMIZ+w56Z414BhA3Kddj nGcDC0LiBUNnIZNREBack5Kss6uY0yFK+REauLUYa5BoOxQ7WWTTWE8cw+3uxiPeJ4Jm S9vhOBR53zBAwGOCLE6RKxWniBhq80UL13QMNln3j0SsdbvxW5HH90RHkXMMqANG4Yvf 0Yu1PsvSr6M2fA1o9rt5xO1npmnH4nkDS4jgn+HtYkRbGDvEb32MKPdKFF2Cvnsemp9/ nlUQ== X-Gm-Message-State: AOJu0YweMB3wAFrfMU6oYFCvj7SMzUaeYCL03k059nO7hkhe+JDOddF/ Q9Q1dYqUbIfQeAulbqB16OXC6sDE4UJHk36QKPkxCGRCI/4uMkvz6DMiVnfiZmKAHxYAc++bN33 6 X-Google-Smtp-Source: AGHT+IEKusgxFsZviB42sX7w8qMc/9bpnqRiAigAZhLfBu54VqsupGZGe7VZFd8i52j6/721s9KOsg== X-Received: by 2002:a5e:9907:0:b0:7d6:751f:192 with SMTP id t7-20020a5e9907000000b007d6751f0192mr196484ioj.2.1712850119657; Thu, 11 Apr 2024 08:41:59 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.41.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:41:58 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 368/437] hwmon: pt5161l: convert to read/write iterators Date: Thu, 11 Apr 2024 09:18:28 -0600 Message-ID: <20240411153126.16201-369-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/hwmon/pt5161l.c | 31 +++++++++++++++---------------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/drivers/hwmon/pt5161l.c b/drivers/hwmon/pt5161l.c index 60361e39c474..90cb27822ac0 100644 --- a/drivers/hwmon/pt5161l.c +++ b/drivers/hwmon/pt5161l.c @@ -493,10 +493,10 @@ static const struct hwmon_chip_info pt5161l_chip_info= =3D { .info =3D pt5161l_info, }; =20 -static ssize_t pt5161l_debugfs_read_fw_ver(struct file *file, char __user = *buf, - size_t count, loff_t *ppos) +static ssize_t pt5161l_debugfs_read_fw_ver(struct kiocb *iocb, + struct iov_iter *to) { - struct pt5161l_data *data =3D file->private_data; + struct pt5161l_data *data =3D iocb->ki_filp->private_data; int ret; char ver[32]; =20 @@ -509,19 +509,18 @@ static ssize_t pt5161l_debugfs_read_fw_ver(struct fil= e *file, char __user *buf, ret =3D snprintf(ver, sizeof(ver), "%u.%u.%u\n", data->fw_ver.major, data->fw_ver.minor, data->fw_ver.build); =20 - return simple_read_from_buffer(buf, count, ppos, ver, ret); + return simple_copy_to_iter(ver, &iocb->ki_pos, ret, to); } =20 static const struct file_operations pt5161l_debugfs_ops_fw_ver =3D { - .read =3D pt5161l_debugfs_read_fw_ver, + .read_iter =3D pt5161l_debugfs_read_fw_ver, .open =3D simple_open, }; =20 -static ssize_t pt5161l_debugfs_read_fw_load_sts(struct file *file, - char __user *buf, size_t count, - loff_t *ppos) +static ssize_t pt5161l_debugfs_read_fw_load_sts(struct kiocb *iocb, + struct iov_iter *to) { - struct pt5161l_data *data =3D file->private_data; + struct pt5161l_data *data =3D iocb->ki_filp->private_data; int ret; bool status =3D false; char health[16]; @@ -535,18 +534,18 @@ static ssize_t pt5161l_debugfs_read_fw_load_sts(struc= t file *file, ret =3D snprintf(health, sizeof(health), "%s\n", status ? "normal" : "abnormal"); =20 - return simple_read_from_buffer(buf, count, ppos, health, ret); + return simple_copy_to_iter(health, &iocb->ki_pos, ret, to); } =20 static const struct file_operations pt5161l_debugfs_ops_fw_load_sts =3D { - .read =3D pt5161l_debugfs_read_fw_load_sts, + .read_iter =3D pt5161l_debugfs_read_fw_load_sts, .open =3D simple_open, }; =20 -static ssize_t pt5161l_debugfs_read_hb_sts(struct file *file, char __user = *buf, - size_t count, loff_t *ppos) +static ssize_t pt5161l_debugfs_read_hb_sts(struct kiocb *iocb, + struct iov_iter *to) { - struct pt5161l_data *data =3D file->private_data; + struct pt5161l_data *data =3D iocb->ki_filp->private_data; int ret; bool status =3D false; char health[16]; @@ -560,11 +559,11 @@ static ssize_t pt5161l_debugfs_read_hb_sts(struct fil= e *file, char __user *buf, ret =3D snprintf(health, sizeof(health), "%s\n", status ? "normal" : "abnormal"); =20 - return simple_read_from_buffer(buf, count, ppos, health, ret); + return simple_copy_to_iter(health, &iocb->ki_pos, ret, to); } =20 static const struct file_operations pt5161l_debugfs_ops_hb_sts =3D { - .read =3D pt5161l_debugfs_read_hb_sts, + .read_iter =3D pt5161l_debugfs_read_hb_sts, .open =3D simple_open, }; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f41.google.com (mail-io1-f41.google.com [209.85.166.41]) (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 25A881EECAB for ; Thu, 11 Apr 2024 15:42:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850123; cv=none; b=SuWRZBZJXQkgKIwE88w8iAIylurhPnuKp7rpXr619hPGZOi7KVCwhH0pTCsGPFPKJWD/SCRvetEHtw5dL5NCCavtzNtV5OEzzOQZ99pjHJexY6mBzkQVa8GldwAUdjBLEj8dMPzssBYUgXKJIEMkdgZuKFfagQEgStTImbZ3b7s= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850123; c=relaxed/simple; bh=gRj3REPoA5J9HsD4yzFt3MvjoJNkfnc4hJl5gPoxlr4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=gpLrtpMeIgP8vbiJbdmw4LFvf96aJzR0mz9oGHaRbD3D5+nSxceJUy/4mvd20gP8EbWJMcoP8suimbmOXM3yIjSTVhq6Fg/YeXB3gCOHeEIQfan52qSF+o+51BNobkx5QOs4OapC8kvlcBPhTCFfzAb9uzWIvA9yH/gZGnenNMo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=jeW7ahlJ; arc=none smtp.client-ip=209.85.166.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="jeW7ahlJ" Received: by mail-io1-f41.google.com with SMTP id ca18e2360f4ac-7d67d1073easo9924539f.0 for ; Thu, 11 Apr 2024 08:42:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850121; x=1713454921; 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=GPnDG3DXkPCynbQxIlcUx2qxDqxsFsce5uHZ8HouiIU=; b=jeW7ahlJtIq0AlBG1m1btscws5vyvf1pNQdaRh2TYEfVw6o3AyXjAHmM4gbi5RLoZa /c6ai3yzq3XdIqd8VlvmSFH81lFIH1Cl6Hz63gxcAxBZpSqbNp77u/GBtIT9eKhxrnH6 bYdde0KUZVClZZtXQf2NqJcelCS4dTM9Gpd1fL1bX/p8NtAd4xv1NnLLBQTY9LN8G73U jjYzSxmtMjplcdoHx9LREpt+U5yaq7elzHXRJTCuQLJswJUfgrdOUdJ9nC4xkJcMmY8c BrRBajxwC3fCTbUh3KbaN9beLcvWmfzbR7sguSP1QPgBhTYVcEi4RuYticlCP60a5p/6 OfWg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850121; x=1713454921; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=GPnDG3DXkPCynbQxIlcUx2qxDqxsFsce5uHZ8HouiIU=; b=mkIlAk5WJhdAnnQFXB7falSFndqM0VrWM+4CJqqxqJhH8BYSTI86C7P8keT7womKlZ FnVhv/tG0TEZl2R3utzaRW9MWlO3fxlj5Z/R6XVHcicvohrdqStxq2sHPFSB4OFdEvza IYxRDZVW6NhqlZb/kry6OHmfZBRExSH0oIQ+wCs0QaxyKVlouwDsHvOjAoB+gQ18xIN8 R031+6HS4bV+lB4a/2bKhgAryIk7mthz/YXaEHlQdkXXEwKgCnSAzafR5RXGtS5KpzOK 4IRwXVRqkZoJ343moSciBI8CdQFFA5FFVMxME7NVMZ+IhjQTYvHWNde4nwRGajl5MAN9 OW9A== X-Gm-Message-State: AOJu0YxKqzNRivmAaznl0gzN/G2Opk9QXgJf5c+ZbhcsAMMBDietm0D4 79mc31eWYDPC8/p3iNaKKVMo4rBgACAqjFYqUFfDLYvmvFTeUzFrO5Ep/atLNcAsL/UF0cV5aHf z X-Google-Smtp-Source: AGHT+IGJqD7wNAL8W0OIYu6VilN4aUmcCBVyd2ztnCHrOMzZ+if+qEPAJg2NfVfdZWu5ENOBxjolww== X-Received: by 2002:a6b:7b05:0:b0:7d6:60dc:bc8e with SMTP id l5-20020a6b7b05000000b007d660dcbc8emr208200iop.1.1712850120802; Thu, 11 Apr 2024 08:42:00 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.41.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:42:00 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 369/437] drivers/mmc: convert to read/write iterators Date: Thu, 11 Apr 2024 09:18:29 -0600 Message-ID: <20240411153126.16201-370-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/mmc/core/block.c | 10 ++++------ drivers/mmc/core/debugfs.c | 11 +++++------ drivers/mmc/core/mmc_test.c | 12 ++++++------ 3 files changed, 15 insertions(+), 18 deletions(-) diff --git a/drivers/mmc/core/block.c b/drivers/mmc/core/block.c index 90c51b12148e..490cf789de72 100644 --- a/drivers/mmc/core/block.c +++ b/drivers/mmc/core/block.c @@ -2933,13 +2933,11 @@ static int mmc_ext_csd_open(struct inode *inode, st= ruct file *filp) return err; } =20 -static ssize_t mmc_ext_csd_read(struct file *filp, char __user *ubuf, - size_t cnt, loff_t *ppos) +static ssize_t mmc_ext_csd_read(struct kiocb *iocb, struct iov_iter *to) { - char *buf =3D filp->private_data; + char *buf =3D iocb->ki_filp->private_data; =20 - return simple_read_from_buffer(ubuf, cnt, ppos, - buf, EXT_CSD_STR_LEN); + return simple_copy_to_iter(buf, &iocb->ki_pos, EXT_CSD_STR_LEN, to); } =20 static int mmc_ext_csd_release(struct inode *inode, struct file *file) @@ -2950,7 +2948,7 @@ static int mmc_ext_csd_release(struct inode *inode, s= truct file *file) =20 static const struct file_operations mmc_dbg_ext_csd_fops =3D { .open =3D mmc_ext_csd_open, - .read =3D mmc_ext_csd_read, + .read_iter =3D mmc_ext_csd_read, .release =3D mmc_ext_csd_release, .llseek =3D default_llseek, }; diff --git a/drivers/mmc/core/debugfs.c b/drivers/mmc/core/debugfs.c index 1642ea72d22c..37aa1529f4f8 100644 --- a/drivers/mmc/core/debugfs.c +++ b/drivers/mmc/core/debugfs.c @@ -283,21 +283,20 @@ static int mmc_err_stats_open(struct inode *inode, st= ruct file *file) return single_open(file, mmc_err_stats_show, inode->i_private); } =20 -static ssize_t mmc_err_stats_write(struct file *filp, const char __user *u= buf, - size_t cnt, loff_t *ppos) +static ssize_t mmc_err_stats_write(struct kiocb *iocb, struct iov_iter *fr= om) { - struct mmc_host *host =3D filp->f_mapping->host->i_private; + struct mmc_host *host =3D iocb->ki_filp->f_mapping->host->i_private; =20 pr_debug("%s: Resetting MMC error statistics\n", __func__); memset(host->err_stats, 0, sizeof(host->err_stats)); =20 - return cnt; + return iov_iter_count(from); } =20 static const struct file_operations mmc_err_stats_fops =3D { .open =3D mmc_err_stats_open, - .read =3D seq_read, - .write =3D mmc_err_stats_write, + .read_iter =3D seq_read_iter, + .write_iter =3D mmc_err_stats_write, .release =3D single_release, }; =20 diff --git a/drivers/mmc/core/mmc_test.c b/drivers/mmc/core/mmc_test.c index 8f7f587a0025..6bbec9154f8a 100644 --- a/drivers/mmc/core/mmc_test.c +++ b/drivers/mmc/core/mmc_test.c @@ -3097,16 +3097,16 @@ static int mtf_test_open(struct inode *inode, struc= t file *file) return single_open(file, mtf_test_show, inode->i_private); } =20 -static ssize_t mtf_test_write(struct file *file, const char __user *buf, - size_t count, loff_t *pos) +static ssize_t mtf_test_write(struct kiocb *iocb, struct iov_iter *from) { - struct seq_file *sf =3D file->private_data; + struct seq_file *sf =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); struct mmc_card *card =3D sf->private; struct mmc_test_card *test; long testcase; int ret; =20 - ret =3D kstrtol_from_user(buf, count, 10, &testcase); + ret =3D kstrtol_from_iter(from, count, 10, &testcase); if (ret) return ret; =20 @@ -3148,8 +3148,8 @@ static ssize_t mtf_test_write(struct file *file, cons= t char __user *buf, =20 static const struct file_operations mmc_test_fops_test =3D { .open =3D mtf_test_open, - .read =3D seq_read, - .write =3D mtf_test_write, + .read_iter =3D seq_read_iter, + .write_iter =3D mtf_test_write, .llseek =3D seq_lseek, .release =3D single_release, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f42.google.com (mail-io1-f42.google.com [209.85.166.42]) (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 C22AD1F01B9 for ; Thu, 11 Apr 2024 15:42:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850125; cv=none; b=fRVK4/xA9DicgcfKwUlAFECCIriHkEKDfyjgTyJQOYBsIi0RgyspLxcuB4dVfYO2JxSYv4zXQqSSQss7Y5dUj+AxtEsJZHWxy6EiVEDLY6Or/KGuZbUUDDPeRJKI9hu1sPywU6gBx11OzkinYiUxjd5+Nn19YXT8BBzfcHQFTwY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850125; c=relaxed/simple; bh=FvfGt/AfAAAx07nwNd35WmUIXyZbd7ojNXTrJbHH3kg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=i7HO9ZSlOUjWFWEtefUL8RfVtHbojn2NmH3pBB9ZBMZ1gSjvobLX6dXQORHaF96anF+A5nG/KEXl07i8AdExKiU7RXSb+CpdmnHfQscaClFlaUcJsFBFR3XBBk5iaa/Snu0yJv5io3fH+jIGDDZhCXAZpzfkz94LRwhxPlhlR0Q= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=hp9gZBun; arc=none smtp.client-ip=209.85.166.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="hp9gZBun" Received: by mail-io1-f42.google.com with SMTP id ca18e2360f4ac-7cc0e831e11so170642639f.1 for ; Thu, 11 Apr 2024 08:42:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850122; x=1713454922; 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=aMF5/18oGlE92Rx2YgiTSTe37PbVaqd1Nc1FV3ePit0=; b=hp9gZBundcHs5LcImi5KtcSac4IO90N6JNiINPZFjzijzjSrA/4GIG469zZVdH6IB4 35FoTwyPQeFPafskTb7a7GyHln0kfh8ZjMgWmkdW+AjUCUlIM2Yb018gkZfLSQhUiVE4 WGrxTuzK+ONzH4fGfFiJzWP/up2bkIJCrHs96FbB8qrqQJ5t7ZTwPkwvk/fKASyOBR2o rmfa91RY+i6+7MKaeldXby3IqZA2el3iauriGe3brxF/SEckeEv7t2HjsgqXZFkMeZBX 9cPE5ez7ly6YLliLzxH+dVNyvQdhIrubixa5qimJE5VSa4vP9CAC4eSGFb4cQGPnzN+M hT0g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850122; x=1713454922; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=aMF5/18oGlE92Rx2YgiTSTe37PbVaqd1Nc1FV3ePit0=; b=t7JvKPOeqcPzA1wOvncLfLJ+G+91jtKZcyLncy0eGDLezHYW5LVelPQIJ8Xe6HzgAT siNVMnxP8HvMNZFV3RcEd/SDINgc/31fmMGe//Iz72VEN8+/GyZDztyRk5pyMwer5Zzg PH6FFLY9SbCZtAmfjWvj2i2oXDp0SlzVDa7oWsi1ertcAJlU6gngWCh18MYZjEtFwH3c duVDBF1ehAavYJdsb1ANiR06y2tKUh3ScETOhc+piRNKxs40zb9seYCRnYJJJM2oS/+b ZzMT8ZwjxIXhsuinsBz1bx1bdPMv0tmL94EvvgKKYWKqhyC9cY5gHPnY9i+ize1Dthpz fPCg== X-Gm-Message-State: AOJu0Yz714r9Lqn5K1Ev5b1RyJcGkOJPJ4Z6ZrKDrIUhskf1IXS8y4xw Sx/uLXX9RKuqOFUgR/CrzMI8Ef1ZDkm8wyQ0oErE2j8SbO9VbpSdS6rUNVdBQrpXf5LIbjT2nbG R X-Google-Smtp-Source: AGHT+IFq5UrdmyfFy9AaanRvpt8wH6yK7CTzw0o7buhNS2z1DjVy2eHaTI3cavNTQgT9JSteQUxzxw== X-Received: by 2002:a5e:9907:0:b0:7d6:751f:192 with SMTP id t7-20020a5e9907000000b007d6751f0192mr196616ioj.2.1712850122665; Thu, 11 Apr 2024 08:42:02 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.42.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:42:01 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 370/437] drivers/most: convert to read/write iterators Date: Thu, 11 Apr 2024 09:18:30 -0600 Message-ID: <20240411153126.16201-371-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/most/most_cdev.c | 50 ++++++++++++++++------------------------ 1 file changed, 20 insertions(+), 30 deletions(-) diff --git a/drivers/most/most_cdev.c b/drivers/most/most_cdev.c index 3ed8f461e01e..1653f23caef4 100644 --- a/drivers/most/most_cdev.c +++ b/drivers/most/most_cdev.c @@ -174,24 +174,22 @@ static int comp_close(struct inode *inode, struct fil= e *filp) =20 /** * comp_write - implements the syscall to write to the device - * @filp: file pointer - * @buf: pointer to user buffer - * @count: number of bytes to write - * @offset: offset from where to start writing + * @iocb: metadata for IO + * @from: pointer to user buffer */ -static ssize_t comp_write(struct file *filp, const char __user *buf, - size_t count, loff_t *offset) +static ssize_t comp_write(struct kiocb *iocb, struct iov_iter *from) { int ret; - size_t to_copy, left; + size_t to_copy; struct mbo *mbo =3D NULL; - struct comp_channel *c =3D filp->private_data; + struct comp_channel *c =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); =20 mutex_lock(&c->io_mutex); while (c->dev && !ch_get_mbo(c, &mbo)) { mutex_unlock(&c->io_mutex); =20 - if ((filp->f_flags & O_NONBLOCK)) + if (iocb->ki_filp->f_flags & O_NONBLOCK) return -EAGAIN; if (wait_event_interruptible(c->wq, ch_has_mbo(c) || !c->dev)) return -ERESTARTSYS; @@ -204,13 +202,13 @@ static ssize_t comp_write(struct file *filp, const ch= ar __user *buf, } =20 to_copy =3D min(count, c->cfg->buffer_size - c->mbo_offs); - left =3D copy_from_user(mbo->virt_address + c->mbo_offs, buf, to_copy); - if (left =3D=3D to_copy) { + ret =3D copy_from_iter(mbo->virt_address + c->mbo_offs, to_copy, from); + if (ret !=3D to_copy) { ret =3D -EFAULT; goto unlock; } =20 - c->mbo_offs +=3D to_copy - left; + c->mbo_offs +=3D ret; if (c->mbo_offs >=3D c->cfg->buffer_size || c->cfg->data_type =3D=3D MOST_CH_CONTROL || c->cfg->data_type =3D=3D MOST_CH_ASYNC) { @@ -219,8 +217,6 @@ static ssize_t comp_write(struct file *filp, const char= __user *buf, c->mbo_offs =3D 0; most_submit_mbo(mbo); } - - ret =3D to_copy - left; unlock: mutex_unlock(&c->io_mutex); return ret; @@ -228,22 +224,20 @@ static ssize_t comp_write(struct file *filp, const ch= ar __user *buf, =20 /** * comp_read - implements the syscall to read from the device - * @filp: file pointer - * @buf: pointer to user buffer - * @count: number of bytes to read - * @offset: offset from where to start reading + * @iocb: metadata for IO + * @to: pointer to user buffer */ -static ssize_t -comp_read(struct file *filp, char __user *buf, size_t count, loff_t *offse= t) +static ssize_t comp_read(struct kiocb *iocb, struct iov_iter *to) { - size_t to_copy, not_copied, copied; + size_t to_copy, copied; struct mbo *mbo =3D NULL; - struct comp_channel *c =3D filp->private_data; + struct comp_channel *c =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(to); =20 mutex_lock(&c->io_mutex); while (c->dev && !kfifo_peek(&c->fifo, &mbo)) { mutex_unlock(&c->io_mutex); - if (filp->f_flags & O_NONBLOCK) + if (iocb->ki_filp->f_flags & O_NONBLOCK) return -EAGAIN; if (wait_event_interruptible(c->wq, (!kfifo_is_empty(&c->fifo) || @@ -262,11 +256,7 @@ comp_read(struct file *filp, char __user *buf, size_t = count, loff_t *offset) count, mbo->processed_length - c->mbo_offs); =20 - not_copied =3D copy_to_user(buf, - mbo->virt_address + c->mbo_offs, - to_copy); - - copied =3D to_copy - not_copied; + copied =3D copy_to_iter(mbo->virt_address + c->mbo_offs, to_copy, to); =20 c->mbo_offs +=3D copied; if (c->mbo_offs >=3D mbo->processed_length) { @@ -302,8 +292,8 @@ static __poll_t comp_poll(struct file *filp, poll_table= *wait) */ static const struct file_operations channel_fops =3D { .owner =3D THIS_MODULE, - .read =3D comp_read, - .write =3D comp_write, + .read_iter =3D comp_read, + .write_iter =3D comp_write, .open =3D comp_open, .release =3D comp_close, .poll =3D comp_poll, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f44.google.com (mail-io1-f44.google.com [209.85.166.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 1C7C51F0B62 for ; Thu, 11 Apr 2024 15:42:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850128; cv=none; b=uyLYwj88YmH+HAgqb9/Ni/Fom8V0dwnA3yP0iPODH/k1+BmEmCiGGA87hn7RBkn/bg3e6shABIQOnkiDNY0h4fDOZ7Mn5ORPP3cBkZmiGu7jWYZwEuEnhbdtYbeBEF9STQ3SqG2SwqP72nhiy4epVLPrZU6uPDoe1S0SLtnxA7c= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850128; c=relaxed/simple; bh=r5I+KcW4rIUOXT7uusimjWJMmlJP6KP/Btr5A/eddew=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=slHinFh/SiIihMB1NOrbL3JzvaGjrBeaYwbyQrATm7oNR1BUw7qgI3l9ksnBPt7pHopMI8yyGfh28Sz9nAZV7Vg0Y4zx23Ax47MKKZM8+VUhIK1B1CyspyvRuvB5vQQlJ4NwmbUPMnNmKAzvXx5OZm3ussnfKgWJld/dW8S7lWk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=VrUvMuk8; arc=none smtp.client-ip=209.85.166.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="VrUvMuk8" Received: by mail-io1-f44.google.com with SMTP id ca18e2360f4ac-7d6812b37a6so9087739f.0 for ; Thu, 11 Apr 2024 08:42:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850125; x=1713454925; 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=ZtwbGIz62vYoQMgQ2vNIWBrEq82N7EGI553VAohcxzk=; b=VrUvMuk8mMwmqGVXXWR4mlkkfYCZvbo1of/z7W/AZC0IPc0UGmhw+KXTrI7yH3YjPD 8hKnefHEjZa5pKWfjkuevmtvdxGvTNJFuuL60NKDLLUcxZNyXfnnJbB8pvWQnmDItL3D ua2Ff0fKrQhcFb+WcoQ7eaSAAlLpCRAkEYlenuXj+8YFLNut+eIuF+uElnixuD92N8ei klWDLgR8plXvm4rEZMMkYAlR5wAd0WFX9sSh98m6lPy6vkJVfXZKtdiO0vWrT3gUlq8j ik9uz6Ccg20cx5oR85ckbkvlqCxHF7F+HyMVcZh5BIJtV9WbFFE1Ux0zvApVRuYjPKYu fgng== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850125; x=1713454925; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ZtwbGIz62vYoQMgQ2vNIWBrEq82N7EGI553VAohcxzk=; b=RoLV61j+Kx6Dry48bYrt/o6E4oEdPLARXnFNKU41ceQOqVJ3gDII9DdKI8KWsiCU1P k1TrmPj863s4Nin+FYnjQpqhO/vu6el0v0BlgQiR6X/3m4NC/M4G7kyNTkl6ls3KGMj/ Li419sYqJAXG2EM61cg7bUM0Z7JQ7u6jdUYi8xHy361DRTYi2m6CMgYGrwHWhMrInVuf oMBuIJex1k8UYj4Kz6FhnaZTQLkewxNzX87Tgn8iLxcBLAtBcX7vmkEMA9kTNS/AVuQR oEx1FEDABO/r5wzay/4/mLhx27X3gLSbwXYchSgDVZGeoxWZ/WYuh2O8lkDKgY2Z3VVv ridA== X-Gm-Message-State: AOJu0YwefBcayjXnOAFl8yj70rfoGamSEA4BxVdwtHL+fS6qWrGIcNHO 0kzjr3W253NnG8ky97u7XRxMN8VdE5YvPJfOhgoMqiZFfexsWheYpOuCCu6rIsdHmDNcxkNPN0Y c X-Google-Smtp-Source: AGHT+IH21WlCt+lC+Q0u8Cl/w7Zwp9YtLpEEWSKuQj0LlI713RZH1hYqq57cXqF1dftw4qkj+7vesg== X-Received: by 2002:a05:6602:21d7:b0:7d6:9ddf:5095 with SMTP id c23-20020a05660221d700b007d69ddf5095mr32087ioc.1.1712850124501; Thu, 11 Apr 2024 08:42:04 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.42.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:42:03 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 371/437] drivers/ntb: convert to read/write iterators Date: Thu, 11 Apr 2024 09:18:31 -0600 Message-ID: <20240411153126.16201-372-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/ntb/hw/amd/ntb_hw_amd.c | 10 +- drivers/ntb/hw/idt/ntb_hw_idt.c | 29 ++- drivers/ntb/hw/intel/ntb_hw_gen1.c | 21 +- drivers/ntb/hw/intel/ntb_hw_gen3.c | 8 +- drivers/ntb/hw/intel/ntb_hw_gen3.h | 3 +- drivers/ntb/hw/intel/ntb_hw_gen4.c | 8 +- drivers/ntb/hw/intel/ntb_hw_gen4.h | 5 +- drivers/ntb/ntb_transport.c | 9 +- drivers/ntb/test/ntb_perf.c | 49 +++-- drivers/ntb/test/ntb_tool.c | 307 +++++++++++++---------------- 10 files changed, 203 insertions(+), 246 deletions(-) diff --git a/drivers/ntb/hw/amd/ntb_hw_amd.c b/drivers/ntb/hw/amd/ntb_hw_am= d.c index d687e8c2cc78..027bcfb2bb11 100644 --- a/drivers/ntb/hw/amd/ntb_hw_amd.c +++ b/drivers/ntb/hw/amd/ntb_hw_amd.c @@ -835,8 +835,7 @@ static void ndev_deinit_isr(struct amd_ntb_dev *ndev) } } =20 -static ssize_t ndev_debugfs_read(struct file *filp, char __user *ubuf, - size_t count, loff_t *offp) +static ssize_t ndev_debugfs_read(struct kiocb *iocb, struct iov_iter *to) { struct amd_ntb_dev *ndev; void __iomem *mmio; @@ -844,8 +843,9 @@ static ssize_t ndev_debugfs_read(struct file *filp, cha= r __user *ubuf, size_t buf_size; ssize_t ret, off; union { u64 v64; u32 v32; u16 v16; } u; + size_t count =3D iov_iter_count(to); =20 - ndev =3D filp->private_data; + ndev =3D iocb->ki_filp->private_data; mmio =3D ndev->self_mmio; =20 buf_size =3D min(count, 0x800ul); @@ -927,7 +927,7 @@ static ssize_t ndev_debugfs_read(struct file *filp, cha= r __user *ubuf, off +=3D scnprintf(buf + off, buf_size - off, "LMT45 -\t\t\t%#018llx\n", u.v64); =20 - ret =3D simple_read_from_buffer(ubuf, count, offp, buf, off); + ret =3D simple_copy_to_iter(buf, &iocb->ki_pos, off, to); kfree(buf); return ret; } @@ -1299,7 +1299,7 @@ static void amd_ntb_pci_shutdown(struct pci_dev *pdev) static const struct file_operations amd_ntb_debugfs_info =3D { .owner =3D THIS_MODULE, .open =3D simple_open, - .read =3D ndev_debugfs_read, + .read_iter =3D ndev_debugfs_read, }; =20 static const struct ntb_dev_data dev_data[] =3D { diff --git a/drivers/ntb/hw/idt/ntb_hw_idt.c b/drivers/ntb/hw/idt/ntb_hw_id= t.c index 48823b53ede3..9213ba1eb36f 100644 --- a/drivers/ntb/hw/idt/ntb_hw_idt.c +++ b/drivers/ntb/hw/idt/ntb_hw_idt.c @@ -2312,18 +2312,6 @@ static void idt_unregister_device(struct idt_ntb_dev= *ndev) *=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D */ =20 -static ssize_t idt_dbgfs_info_read(struct file *filp, char __user *ubuf, - size_t count, loff_t *offp); - -/* - * Driver DebugFS info file operations - */ -static const struct file_operations idt_dbgfs_info_ops =3D { - .owner =3D THIS_MODULE, - .open =3D simple_open, - .read =3D idt_dbgfs_info_read -}; - /* * idt_dbgfs_info_read() - DebugFS read info node callback * @file: File node descriptor. @@ -2331,10 +2319,10 @@ static const struct file_operations idt_dbgfs_info_= ops =3D { * @count: Size of the buffer * @offp: Offset within the buffer */ -static ssize_t idt_dbgfs_info_read(struct file *filp, char __user *ubuf, - size_t count, loff_t *offp) +static ssize_t idt_dbgfs_info_read(struct kiocb *iocb, struct iov_iter *to) { - struct idt_ntb_dev *ndev =3D filp->private_data; + struct idt_ntb_dev *ndev =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(to); unsigned char idx, pidx, cnt; unsigned long irqflags, mdeg; ssize_t ret =3D 0, off =3D 0; @@ -2492,12 +2480,21 @@ static ssize_t idt_dbgfs_info_read(struct file *fil= p, char __user *ubuf, idt_get_deg(mdeg), idt_get_deg_frac(mdeg)); =20 /* Copy the buffer to the User Space */ - ret =3D simple_read_from_buffer(ubuf, count, offp, strbuf, off); + ret =3D simple_copy_to_iter(strbuf, &iocb->ki_pos, off, to); kfree(strbuf); =20 return ret; } =20 +/* + * Driver DebugFS info file operations + */ +static const struct file_operations idt_dbgfs_info_ops =3D { + .owner =3D THIS_MODULE, + .open =3D simple_open, + .read_iter =3D idt_dbgfs_info_read +}; + /* * idt_init_dbgfs() - initialize DebugFS node * @ndev: IDT NTB hardware driver descriptor diff --git a/drivers/ntb/hw/intel/ntb_hw_gen1.c b/drivers/ntb/hw/intel/ntb_= hw_gen1.c index 9ab836d0d4f1..de31b75f3d20 100644 --- a/drivers/ntb/hw/intel/ntb_hw_gen1.c +++ b/drivers/ntb/hw/intel/ntb_hw_gen1.c @@ -488,8 +488,7 @@ static void ndev_deinit_isr(struct intel_ntb_dev *ndev) } } =20 -static ssize_t ndev_ntb_debugfs_read(struct file *filp, char __user *ubuf, - size_t count, loff_t *offp) +static ssize_t ndev_ntb_debugfs_read(struct kiocb *iocb, struct iov_iter *= to) { struct intel_ntb_dev *ndev; struct pci_dev *pdev; @@ -498,8 +497,9 @@ static ssize_t ndev_ntb_debugfs_read(struct file *filp,= char __user *ubuf, size_t buf_size; ssize_t ret, off; union { u64 v64; u32 v32; u16 v16; u8 v8; } u; + size_t count =3D iov_iter_count(to); =20 - ndev =3D filp->private_data; + ndev =3D iocb->ki_filp->private_data; pdev =3D ndev->ntb.pdev; mmio =3D ndev->self_mmio; =20 @@ -749,22 +749,21 @@ static ssize_t ndev_ntb_debugfs_read(struct file *fil= p, char __user *ubuf, "CORERRSTS -\t\t%#06x\n", u.v32); } =20 - ret =3D simple_read_from_buffer(ubuf, count, offp, buf, off); + ret =3D simple_copy_to_iter(buf, &iocb->ki_pos, off, to); kfree(buf); return ret; } =20 -static ssize_t ndev_debugfs_read(struct file *filp, char __user *ubuf, - size_t count, loff_t *offp) +static ssize_t ndev_debugfs_read(struct kiocb *iocb, struct iov_iter *to) { - struct intel_ntb_dev *ndev =3D filp->private_data; + struct intel_ntb_dev *ndev =3D iocb->ki_filp->private_data; =20 if (pdev_is_gen1(ndev->ntb.pdev)) - return ndev_ntb_debugfs_read(filp, ubuf, count, offp); + return ndev_ntb_debugfs_read(iocb, to); else if (pdev_is_gen3(ndev->ntb.pdev)) - return ndev_ntb3_debugfs_read(filp, ubuf, count, offp); + return ndev_ntb3_debugfs_read(iocb, to); else if (pdev_is_gen4(ndev->ntb.pdev) || pdev_is_gen5(ndev->ntb.pdev)) - return ndev_ntb4_debugfs_read(filp, ubuf, count, offp); + return ndev_ntb4_debugfs_read(iocb, to); =20 return -ENXIO; } @@ -2021,7 +2020,7 @@ static const struct ntb_dev_ops intel_ntb_ops =3D { static const struct file_operations intel_ntb_debugfs_info =3D { .owner =3D THIS_MODULE, .open =3D simple_open, - .read =3D ndev_debugfs_read, + .read_iter =3D ndev_debugfs_read, }; =20 static const struct pci_device_id intel_ntb_pci_tbl[] =3D { diff --git a/drivers/ntb/hw/intel/ntb_hw_gen3.c b/drivers/ntb/hw/intel/ntb_= hw_gen3.c index ffcfc3e02c35..56caeb639016 100644 --- a/drivers/ntb/hw/intel/ntb_hw_gen3.c +++ b/drivers/ntb/hw/intel/ntb_hw_gen3.c @@ -252,8 +252,7 @@ int gen3_init_dev(struct intel_ntb_dev *ndev) return gen3_init_isr(ndev); } =20 -ssize_t ndev_ntb3_debugfs_read(struct file *filp, char __user *ubuf, - size_t count, loff_t *offp) +ssize_t ndev_ntb3_debugfs_read(struct kiocb *iocb, struct iov_iter *to) { struct intel_ntb_dev *ndev; void __iomem *mmio; @@ -261,8 +260,9 @@ ssize_t ndev_ntb3_debugfs_read(struct file *filp, char = __user *ubuf, size_t buf_size; ssize_t ret, off; union { u64 v64; u32 v32; u16 v16; } u; + size_t count =3D iov_iter_count(to); =20 - ndev =3D filp->private_data; + ndev =3D iocb->ki_filp->private_data; mmio =3D ndev->self_mmio; =20 buf_size =3D min(count, 0x800ul); @@ -410,7 +410,7 @@ ssize_t ndev_ntb3_debugfs_read(struct file *filp, char = __user *ubuf, off +=3D scnprintf(buf + off, buf_size - off, "CORERRSTS -\t\t%#06x\n", u.v32); =20 - ret =3D simple_read_from_buffer(ubuf, count, offp, buf, off); + ret =3D simple_copy_to_iter(buf, &iocb->ki_pos, off, to); kfree(buf); return ret; } diff --git a/drivers/ntb/hw/intel/ntb_hw_gen3.h b/drivers/ntb/hw/intel/ntb_= hw_gen3.h index dea93989942d..0eddbee39972 100644 --- a/drivers/ntb/hw/intel/ntb_hw_gen3.h +++ b/drivers/ntb/hw/intel/ntb_hw_gen3.h @@ -101,8 +101,7 @@ static inline void gen3_db_iowrite(u64 bits, void __iom= em *mmio) iowrite64(bits, mmio); } =20 -ssize_t ndev_ntb3_debugfs_read(struct file *filp, char __user *ubuf, - size_t count, loff_t *offp); +ssize_t ndev_ntb3_debugfs_read(struct kiocb *iocb, struct iov_iter *to); int gen3_init_dev(struct intel_ntb_dev *ndev); int intel_ntb3_link_enable(struct ntb_dev *ntb, enum ntb_speed max_speed, enum ntb_width max_width); diff --git a/drivers/ntb/hw/intel/ntb_hw_gen4.c b/drivers/ntb/hw/intel/ntb_= hw_gen4.c index 22cac7975b3c..7fb3d963abec 100644 --- a/drivers/ntb/hw/intel/ntb_hw_gen4.c +++ b/drivers/ntb/hw/intel/ntb_hw_gen4.c @@ -216,8 +216,7 @@ int gen4_init_dev(struct intel_ntb_dev *ndev) return gen4_init_isr(ndev); } =20 -ssize_t ndev_ntb4_debugfs_read(struct file *filp, char __user *ubuf, - size_t count, loff_t *offp) +ssize_t ndev_ntb4_debugfs_read(struct kiocb *iocb, struct iov_iter *to) { struct intel_ntb_dev *ndev; void __iomem *mmio; @@ -225,8 +224,9 @@ ssize_t ndev_ntb4_debugfs_read(struct file *filp, char = __user *ubuf, size_t buf_size; ssize_t ret, off; union { u64 v64; u32 v32; u16 v16; } u; + size_t count =3D iov_iter_count(to); =20 - ndev =3D filp->private_data; + ndev =3D iocb->ki_filp->private_data; mmio =3D ndev->self_mmio; =20 buf_size =3D min(count, 0x800ul); @@ -329,7 +329,7 @@ ssize_t ndev_ntb4_debugfs_read(struct file *filp, char = __user *ubuf, off +=3D scnprintf(buf + off, buf_size - off, "CORERRSTS -\t\t%#06x\n", u.v32); =20 - ret =3D simple_read_from_buffer(ubuf, count, offp, buf, off); + ret =3D simple_copy_to_iter(buf, &iocb->ki_pos, off, to); kfree(buf); return ret; } diff --git a/drivers/ntb/hw/intel/ntb_hw_gen4.h b/drivers/ntb/hw/intel/ntb_= hw_gen4.h index f91323eaf5ce..6c0fa8c99715 100644 --- a/drivers/ntb/hw/intel/ntb_hw_gen4.h +++ b/drivers/ntb/hw/intel/ntb_hw_gen4.h @@ -103,11 +103,8 @@ #define NTB_LTR_IDLE_LATSCALE 0x0800 /* 1us scale */ #define NTB_LTR_IDLE_REQMNT 0x8000 /* snoop req enable */ =20 -ssize_t ndev_ntb4_debugfs_read(struct file *filp, char __user *ubuf, - size_t count, loff_t *offp); +ssize_t ndev_ntb4_debugfs_read(struct kiocb *iocb, struct iov_iter *to); int gen4_init_dev(struct intel_ntb_dev *ndev); -ssize_t ndev_ntb4_debugfs_read(struct file *filp, char __user *ubuf, - size_t count, loff_t *offp); =20 extern const struct ntb_dev_ops intel_ntb4_ops; =20 diff --git a/drivers/ntb/ntb_transport.c b/drivers/ntb/ntb_transport.c index f9e7847a378e..bc69e3d81350 100644 --- a/drivers/ntb/ntb_transport.c +++ b/drivers/ntb/ntb_transport.c @@ -460,14 +460,13 @@ void ntb_transport_unregister_client(struct ntb_trans= port_client *drv) } EXPORT_SYMBOL_GPL(ntb_transport_unregister_client); =20 -static ssize_t debugfs_read(struct file *filp, char __user *ubuf, size_t c= ount, - loff_t *offp) +static ssize_t debugfs_read(struct kiocb *iocb, struct iov_iter *to) { struct ntb_transport_qp *qp; char *buf; ssize_t ret, out_offset, out_count; =20 - qp =3D filp->private_data; + qp =3D iocb->ki_filp->private_data; =20 if (!qp || !qp->link_is_up) return 0; @@ -548,7 +547,7 @@ static ssize_t debugfs_read(struct file *filp, char __u= ser *ubuf, size_t count, if (out_offset > out_count) out_offset =3D out_count; =20 - ret =3D simple_read_from_buffer(ubuf, count, offp, buf, out_offset); + ret =3D simple_copy_to_iter(buf, &iocb->ki_pos, out_offset, to); kfree(buf); return ret; } @@ -556,7 +555,7 @@ static ssize_t debugfs_read(struct file *filp, char __u= ser *ubuf, size_t count, static const struct file_operations ntb_qp_debugfs_stats =3D { .owner =3D THIS_MODULE, .open =3D simple_open, - .read =3D debugfs_read, + .read_iter =3D debugfs_read, }; =20 static void ntb_list_add(spinlock_t *lock, struct list_head *entry, diff --git a/drivers/ntb/test/ntb_perf.c b/drivers/ntb/test/ntb_perf.c index 553f1f46bc66..d3f9d2f5015d 100644 --- a/drivers/ntb/test/ntb_perf.c +++ b/drivers/ntb/test/ntb_perf.c @@ -1179,10 +1179,10 @@ static void perf_clear_threads(struct perf_ctx *per= f) *=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D */ =20 -static ssize_t perf_dbgfs_read_info(struct file *filep, char __user *ubuf, - size_t size, loff_t *offp) +static ssize_t perf_dbgfs_read_info(struct kiocb *iocb, struct iov_iter *t= o) { - struct perf_ctx *perf =3D filep->private_data; + struct perf_ctx *perf =3D iocb->ki_filp->private_data; + size_t size =3D iov_iter_count(to); struct perf_peer *peer; size_t buf_size; ssize_t pos =3D 0; @@ -1251,7 +1251,7 @@ static ssize_t perf_dbgfs_read_info(struct file *file= p, char __user *ubuf, "\tIn buffer xlat %pad[p]\n", &peer->inbuf_xlat); } =20 - ret =3D simple_read_from_buffer(ubuf, size, offp, buf, pos); + ret =3D simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); kfree(buf); =20 return ret; @@ -1259,13 +1259,12 @@ static ssize_t perf_dbgfs_read_info(struct file *fi= lep, char __user *ubuf, =20 static const struct file_operations perf_dbgfs_info =3D { .open =3D simple_open, - .read =3D perf_dbgfs_read_info + .read_iter =3D perf_dbgfs_read_info }; =20 -static ssize_t perf_dbgfs_read_run(struct file *filep, char __user *ubuf, - size_t size, loff_t *offp) +static ssize_t perf_dbgfs_read_run(struct kiocb *iocb, struct iov_iter *to) { - struct perf_ctx *perf =3D filep->private_data; + struct perf_ctx *perf =3D iocb->ki_filp->private_data; ssize_t ret, pos =3D 0; char *buf; =20 @@ -1277,21 +1276,21 @@ static ssize_t perf_dbgfs_read_run(struct file *fil= ep, char __user *ubuf, if (ret) goto err_free; =20 - ret =3D simple_read_from_buffer(ubuf, size, offp, buf, pos); + ret =3D simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); err_free: kfree(buf); =20 return ret; } =20 -static ssize_t perf_dbgfs_write_run(struct file *filep, const char __user = *ubuf, - size_t size, loff_t *offp) +static ssize_t perf_dbgfs_write_run(struct kiocb *iocb, struct iov_iter *f= rom) { - struct perf_ctx *perf =3D filep->private_data; + struct perf_ctx *perf =3D iocb->ki_filp->private_data; + size_t size =3D iov_iter_count(from); struct perf_peer *peer; int pidx, ret; =20 - ret =3D kstrtoint_from_user(ubuf, size, 0, &pidx); + ret =3D kstrtoint_from_iter(from, size, 0, &pidx); if (ret) return ret; =20 @@ -1309,31 +1308,29 @@ static ssize_t perf_dbgfs_write_run(struct file *fi= lep, const char __user *ubuf, =20 static const struct file_operations perf_dbgfs_run =3D { .open =3D simple_open, - .read =3D perf_dbgfs_read_run, - .write =3D perf_dbgfs_write_run + .read_iter =3D perf_dbgfs_read_run, + .write_iter =3D perf_dbgfs_write_run, }; =20 -static ssize_t perf_dbgfs_read_tcnt(struct file *filep, char __user *ubuf, - size_t size, loff_t *offp) +static ssize_t perf_dbgfs_read_tcnt(struct kiocb *iocb, struct iov_iter *t= o) { - struct perf_ctx *perf =3D filep->private_data; + struct perf_ctx *perf =3D iocb->ki_filp->private_data; char buf[8]; ssize_t pos; =20 pos =3D scnprintf(buf, sizeof(buf), "%hhu\n", perf->tcnt); =20 - return simple_read_from_buffer(ubuf, size, offp, buf, pos); + return simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); } =20 -static ssize_t perf_dbgfs_write_tcnt(struct file *filep, - const char __user *ubuf, - size_t size, loff_t *offp) +static ssize_t perf_dbgfs_write_tcnt(struct kiocb *iocb, struct iov_iter *= from) { - struct perf_ctx *perf =3D filep->private_data; + struct perf_ctx *perf =3D iocb->ki_filp->private_data; + size_t size =3D iov_iter_count(from); int ret; u8 val; =20 - ret =3D kstrtou8_from_user(ubuf, size, 0, &val); + ret =3D kstrtou8_from_iter(from, size, 0, &val); if (ret) return ret; =20 @@ -1346,8 +1343,8 @@ static ssize_t perf_dbgfs_write_tcnt(struct file *fil= ep, =20 static const struct file_operations perf_dbgfs_tcnt =3D { .open =3D simple_open, - .read =3D perf_dbgfs_read_tcnt, - .write =3D perf_dbgfs_write_tcnt + .read_iter =3D perf_dbgfs_read_tcnt, + .write_iter =3D perf_dbgfs_write_tcnt, }; =20 static void perf_setup_dbgfs(struct perf_ctx *perf) diff --git a/drivers/ntb/test/ntb_tool.c b/drivers/ntb/test/ntb_tool.c index 641cb7e05a47..e3988468c92f 100644 --- a/drivers/ntb/test/ntb_tool.c +++ b/drivers/ntb/test/ntb_tool.c @@ -273,8 +273,8 @@ struct tool_ctx { const struct file_operations __name =3D { \ .owner =3D THIS_MODULE, \ .open =3D simple_open, \ - .read =3D __read, \ - .write =3D __write, \ + .read_iter =3D __read, \ + .write_iter =3D __write, \ } =20 #define TOOL_BUF_LEN 32 @@ -338,8 +338,8 @@ static const struct ntb_ctx_ops tool_ops =3D { *=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D */ =20 -static ssize_t tool_fn_read(struct tool_ctx *tc, char __user *ubuf, - size_t size, loff_t *offp, +static ssize_t tool_fn_read(struct tool_ctx *tc, struct kiocb *iocb, + struct iov_iter *to, u64 (*fn_read)(struct ntb_dev *)) { size_t buf_size; @@ -349,28 +349,28 @@ static ssize_t tool_fn_read(struct tool_ctx *tc, char= __user *ubuf, if (!fn_read) return -EINVAL; =20 - buf_size =3D min(size, sizeof(buf)); + buf_size =3D min(iov_iter_count(to), sizeof(buf)); =20 pos =3D scnprintf(buf, buf_size, "%#llx\n", fn_read(tc->ntb)); =20 - return simple_read_from_buffer(ubuf, size, offp, buf, pos); + return simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); } =20 -static ssize_t tool_fn_write(struct tool_ctx *tc, - const char __user *ubuf, - size_t size, loff_t *offp, +static ssize_t tool_fn_write(struct tool_ctx *tc, struct kiocb *iocb, + struct iov_iter *from, int (*fn_set)(struct ntb_dev *, u64), int (*fn_clear)(struct ntb_dev *, u64)) { + size_t size =3D iov_iter_count(from); char *buf, cmd; ssize_t ret; u64 bits; int n; =20 - if (*offp) + if (iocb->ki_pos) return 0; =20 - buf =3D memdup_user_nul(ubuf, size); + buf =3D iterdup_nul(from, size); if (IS_ERR(buf)) return PTR_ERR(buf); =20 @@ -402,26 +402,24 @@ static ssize_t tool_fn_write(struct tool_ctx *tc, *=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D */ =20 -static ssize_t tool_port_read(struct file *filep, char __user *ubuf, - size_t size, loff_t *offp) +static ssize_t tool_port_read(struct kiocb *iocb, struct iov_iter *to) { - struct tool_ctx *tc =3D filep->private_data; + struct tool_ctx *tc =3D iocb->ki_filp->private_data; char buf[TOOL_BUF_LEN]; int pos; =20 pos =3D scnprintf(buf, sizeof(buf), "%d\n", ntb_port_number(tc->ntb)); =20 - return simple_read_from_buffer(ubuf, size, offp, buf, pos); + return simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); } =20 static TOOL_FOPS_RDWR(tool_port_fops, tool_port_read, NULL); =20 -static ssize_t tool_peer_port_read(struct file *filep, char __user *ubuf, - size_t size, loff_t *offp) +static ssize_t tool_peer_port_read(struct kiocb *iocb, struct iov_iter *to) { - struct tool_peer *peer =3D filep->private_data; + struct tool_peer *peer =3D iocb->ki_filp->private_data; struct tool_ctx *tc =3D peer->tc; char buf[TOOL_BUF_LEN]; int pos; @@ -429,7 +427,7 @@ static ssize_t tool_peer_port_read(struct file *filep, = char __user *ubuf, pos =3D scnprintf(buf, sizeof(buf), "%d\n", ntb_peer_port_number(tc->ntb, peer->pidx)); =20 - return simple_read_from_buffer(ubuf, size, offp, buf, pos); + return simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); } =20 static TOOL_FOPS_RDWR(tool_peer_port_fops, @@ -459,14 +457,14 @@ static int tool_init_peers(struct tool_ctx *tc) *=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D */ =20 -static ssize_t tool_link_write(struct file *filep, const char __user *ubuf, - size_t size, loff_t *offp) +static ssize_t tool_link_write(struct kiocb *iocb, struct iov_iter *from) { - struct tool_ctx *tc =3D filep->private_data; + struct tool_ctx *tc =3D iocb->ki_filp->private_data; + size_t size =3D iov_iter_count(from); bool val; int ret; =20 - ret =3D kstrtobool_from_user(ubuf, size, &val); + ret =3D kstrtobool_from_iter(from, size, &val); if (ret) return ret; =20 @@ -485,10 +483,9 @@ static TOOL_FOPS_RDWR(tool_link_fops, NULL, tool_link_write); =20 -static ssize_t tool_peer_link_read(struct file *filep, char __user *ubuf, - size_t size, loff_t *offp) +static ssize_t tool_peer_link_read(struct kiocb *iocb, struct iov_iter *to) { - struct tool_peer *peer =3D filep->private_data; + struct tool_peer *peer =3D iocb->ki_filp->private_data; struct tool_ctx *tc =3D peer->tc; char buf[3]; =20 @@ -499,24 +496,24 @@ static ssize_t tool_peer_link_read(struct file *filep= , char __user *ubuf, buf[1] =3D '\n'; buf[2] =3D '\0'; =20 - return simple_read_from_buffer(ubuf, size, offp, buf, 2); + return simple_copy_to_iter(buf, &iocb->ki_pos, 2, to); } =20 static TOOL_FOPS_RDWR(tool_peer_link_fops, tool_peer_link_read, NULL); =20 -static ssize_t tool_peer_link_event_write(struct file *filep, - const char __user *ubuf, - size_t size, loff_t *offp) +static ssize_t tool_peer_link_event_write(struct kiocb *iocb, + struct iov_iter *from) { - struct tool_peer *peer =3D filep->private_data; + struct tool_peer *peer =3D iocb->ki_filp->private_data; + size_t size =3D iov_iter_count(from); struct tool_ctx *tc =3D peer->tc; u64 link_msk; bool val; int ret; =20 - ret =3D kstrtobool_from_user(ubuf, size, &val); + ret =3D kstrtobool_from_iter(from, size, &val); if (ret) return ret; =20 @@ -538,28 +535,25 @@ static TOOL_FOPS_RDWR(tool_peer_link_event_fops, *=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D */ =20 -static ssize_t tool_mw_read(struct file *filep, char __user *ubuf, - size_t size, loff_t *offp) +static ssize_t tool_mw_read(struct kiocb *iocb, struct iov_iter *to) { - struct tool_mw *inmw =3D filep->private_data; + struct tool_mw *inmw =3D iocb->ki_filp->private_data; =20 if (inmw->mm_base =3D=3D NULL) return -ENXIO; =20 - return simple_read_from_buffer(ubuf, size, offp, - inmw->mm_base, inmw->size); + return simple_copy_to_iter(inmw->mm_base, &iocb->ki_pos, inmw->size, to); } =20 -static ssize_t tool_mw_write(struct file *filep, const char __user *ubuf, - size_t size, loff_t *offp) +static ssize_t tool_mw_write(struct kiocb *iocb, struct iov_iter *from) { - struct tool_mw *inmw =3D filep->private_data; + struct tool_mw *inmw =3D iocb->ki_filp->private_data; =20 if (inmw->mm_base =3D=3D NULL) return -ENXIO; =20 - return simple_write_to_buffer(inmw->mm_base, inmw->size, offp, - ubuf, size); + return simple_copy_from_iter(inmw->mm_base, &iocb->ki_pos, inmw->size, + from); } =20 static TOOL_FOPS_RDWR(tool_mw_fops, @@ -634,10 +628,10 @@ static void tool_free_mw(struct tool_ctx *tc, int pid= x, int widx) inmw->dbgfs_file =3D NULL; } =20 -static ssize_t tool_mw_trans_read(struct file *filep, char __user *ubuf, - size_t size, loff_t *offp) +static ssize_t tool_mw_trans_read(struct kiocb *iocb, struct iov_iter *to) { - struct tool_mw *inmw =3D filep->private_data; + struct tool_mw *inmw =3D iocb->ki_filp->private_data; + size_t size =3D iov_iter_count(to); resource_size_t addr_align; resource_size_t size_align; resource_size_t size_max; @@ -688,7 +682,7 @@ static ssize_t tool_mw_trans_read(struct file *filep, c= har __user *ubuf, "Size Max \t%pap\n", &size_max); =20 - ret =3D simple_read_from_buffer(ubuf, size, offp, buf, off); + ret =3D simple_copy_to_iter(buf, &iocb->ki_pos, off, to); =20 err: kfree(buf); @@ -696,14 +690,14 @@ static ssize_t tool_mw_trans_read(struct file *filep,= char __user *ubuf, return ret; } =20 -static ssize_t tool_mw_trans_write(struct file *filep, const char __user *= ubuf, - size_t size, loff_t *offp) +static ssize_t tool_mw_trans_write(struct kiocb *iocb, struct iov_iter *fr= om) { - struct tool_mw *inmw =3D filep->private_data; + struct tool_mw *inmw =3D iocb->ki_filp->private_data; + size_t size =3D iov_iter_count(from); unsigned int val; int ret; =20 - ret =3D kstrtouint_from_user(ubuf, size, 0, &val); + ret =3D kstrtouint_from_iter(from, size, 0, &val); if (ret) return ret; =20 @@ -721,11 +715,11 @@ static TOOL_FOPS_RDWR(tool_mw_trans_fops, tool_mw_trans_read, tool_mw_trans_write); =20 -static ssize_t tool_peer_mw_read(struct file *filep, char __user *ubuf, - size_t size, loff_t *offp) +static ssize_t tool_peer_mw_read(struct kiocb *iocb, struct iov_iter *to) { - struct tool_mw *outmw =3D filep->private_data; - loff_t pos =3D *offp; + struct tool_mw *outmw =3D iocb->ki_filp->private_data; + size_t size =3D iov_iter_count(to); + loff_t pos =3D iocb->ki_pos; ssize_t ret; void *buf; =20 @@ -743,14 +737,14 @@ static ssize_t tool_peer_mw_read(struct file *filep, = char __user *ubuf, return -ENOMEM; =20 memcpy_fromio(buf, outmw->io_base + pos, size); - ret =3D copy_to_user(ubuf, buf, size); - if (ret =3D=3D size) { + ret =3D copy_to_iter(buf, size, to); + if (!ret) { ret =3D -EFAULT; goto err_free; } =20 size -=3D ret; - *offp =3D pos + size; + iocb->ki_pos =3D pos + size; ret =3D size; =20 err_free: @@ -759,12 +753,12 @@ static ssize_t tool_peer_mw_read(struct file *filep, = char __user *ubuf, return ret; } =20 -static ssize_t tool_peer_mw_write(struct file *filep, const char __user *u= buf, - size_t size, loff_t *offp) +static ssize_t tool_peer_mw_write(struct kiocb *iocb, struct iov_iter *fro= m) { - struct tool_mw *outmw =3D filep->private_data; + struct tool_mw *outmw =3D iocb->ki_filp->private_data; + size_t size =3D iov_iter_count(from); ssize_t ret; - loff_t pos =3D *offp; + loff_t pos =3D iocb->ki_pos; void *buf; =20 if (outmw->io_base =3D=3D NULL) @@ -779,14 +773,14 @@ static ssize_t tool_peer_mw_write(struct file *filep,= const char __user *ubuf, if (!buf) return -ENOMEM; =20 - ret =3D copy_from_user(buf, ubuf, size); - if (ret =3D=3D size) { + ret =3D copy_from_iter(buf, size, from); + if (!ret) { ret =3D -EFAULT; goto err_free; } =20 size -=3D ret; - *offp =3D pos + size; + iocb->ki_pos =3D pos + size; ret =3D size; =20 memcpy_toio(outmw->io_base + pos, buf, size); @@ -862,11 +856,11 @@ static void tool_free_peer_mw(struct tool_ctx *tc, in= t widx) outmw->dbgfs_file =3D NULL; } =20 -static ssize_t tool_peer_mw_trans_read(struct file *filep, char __user *ub= uf, - size_t size, loff_t *offp) +static ssize_t tool_peer_mw_trans_read(struct kiocb *iocb, struct iov_iter= *to) { - struct tool_mw_wrap *outmw_wrap =3D filep->private_data; + struct tool_mw_wrap *outmw_wrap =3D iocb->ki_filp->private_data; struct tool_mw *outmw =3D outmw_wrap->mw; + size_t size =3D iov_iter_count(to); resource_size_t map_size; phys_addr_t map_base; ssize_t off =3D 0; @@ -913,25 +907,25 @@ static ssize_t tool_peer_mw_trans_read(struct file *f= ilep, char __user *ubuf, off +=3D scnprintf(buf + off, buf_size - off, "Window Size \t%pap\n", &outmw->size); =20 - ret =3D simple_read_from_buffer(ubuf, size, offp, buf, off); + ret =3D simple_copy_to_iter(buf, &iocb->ki_pos, off, to); kfree(buf); =20 return ret; } =20 -static ssize_t tool_peer_mw_trans_write(struct file *filep, - const char __user *ubuf, - size_t size, loff_t *offp) +static ssize_t tool_peer_mw_trans_write(struct kiocb *iocb, + struct iov_iter *from) { - struct tool_mw_wrap *outmw_wrap =3D filep->private_data; + struct tool_mw_wrap *outmw_wrap =3D iocb->ki_filp->private_data; struct tool_mw *outmw =3D outmw_wrap->mw; + size_t size =3D iov_iter_count(from); size_t buf_size, wsize; char buf[TOOL_BUF_LEN]; int ret, n; u64 addr; =20 buf_size =3D min(size, (sizeof(buf) - 1)); - if (copy_from_user(buf, ubuf, buf_size)) + if (!copy_from_iter_full(buf, buf_size, from)) return -EFAULT; =20 buf[buf_size] =3D '\0'; @@ -1022,20 +1016,18 @@ static void tool_clear_mws(struct tool_ctx *tc) *=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D */ =20 -static ssize_t tool_db_read(struct file *filep, char __user *ubuf, - size_t size, loff_t *offp) +static ssize_t tool_db_read(struct kiocb *iocb, struct iov_iter *to) { - struct tool_ctx *tc =3D filep->private_data; + struct tool_ctx *tc =3D iocb->ki_filp->private_data; =20 - return tool_fn_read(tc, ubuf, size, offp, tc->ntb->ops->db_read); + return tool_fn_read(tc, iocb, to, tc->ntb->ops->db_read); } =20 -static ssize_t tool_db_write(struct file *filep, const char __user *ubuf, - size_t size, loff_t *offp) +static ssize_t tool_db_write(struct kiocb *iocb, struct iov_iter *from) { - struct tool_ctx *tc =3D filep->private_data; + struct tool_ctx *tc =3D iocb->ki_filp->private_data; =20 - return tool_fn_write(tc, ubuf, size, offp, tc->ntb->ops->db_set, + return tool_fn_write(tc, iocb, from, tc->ntb->ops->db_set, tc->ntb->ops->db_clear); } =20 @@ -1043,32 +1035,29 @@ static TOOL_FOPS_RDWR(tool_db_fops, tool_db_read, tool_db_write); =20 -static ssize_t tool_db_valid_mask_read(struct file *filep, char __user *ub= uf, - size_t size, loff_t *offp) +static ssize_t tool_db_valid_mask_read(struct kiocb *iocb, struct iov_iter= *to) { - struct tool_ctx *tc =3D filep->private_data; + struct tool_ctx *tc =3D iocb->ki_filp->private_data; =20 - return tool_fn_read(tc, ubuf, size, offp, tc->ntb->ops->db_valid_mask); + return tool_fn_read(tc, iocb, to, tc->ntb->ops->db_valid_mask); } =20 static TOOL_FOPS_RDWR(tool_db_valid_mask_fops, tool_db_valid_mask_read, NULL); =20 -static ssize_t tool_db_mask_read(struct file *filep, char __user *ubuf, - size_t size, loff_t *offp) +static ssize_t tool_db_mask_read(struct kiocb *iocb, struct iov_iter *to) { - struct tool_ctx *tc =3D filep->private_data; + struct tool_ctx *tc =3D iocb->ki_filp->private_data; =20 - return tool_fn_read(tc, ubuf, size, offp, tc->ntb->ops->db_read_mask); + return tool_fn_read(tc, iocb, to, tc->ntb->ops->db_read_mask); } =20 -static ssize_t tool_db_mask_write(struct file *filep, const char __user *u= buf, - size_t size, loff_t *offp) +static ssize_t tool_db_mask_write(struct kiocb *iocb, struct iov_iter *fro= m) { - struct tool_ctx *tc =3D filep->private_data; + struct tool_ctx *tc =3D iocb->ki_filp->private_data; =20 - return tool_fn_write(tc, ubuf, size, offp, tc->ntb->ops->db_set_mask, + return tool_fn_write(tc, iocb, from, tc->ntb->ops->db_set_mask, tc->ntb->ops->db_clear_mask); } =20 @@ -1076,20 +1065,18 @@ static TOOL_FOPS_RDWR(tool_db_mask_fops, tool_db_mask_read, tool_db_mask_write); =20 -static ssize_t tool_peer_db_read(struct file *filep, char __user *ubuf, - size_t size, loff_t *offp) +static ssize_t tool_peer_db_read(struct kiocb *iocb, struct iov_iter *to) { - struct tool_ctx *tc =3D filep->private_data; + struct tool_ctx *tc =3D iocb->ki_filp->private_data; =20 - return tool_fn_read(tc, ubuf, size, offp, tc->ntb->ops->peer_db_read); + return tool_fn_read(tc, iocb, to, tc->ntb->ops->peer_db_read); } =20 -static ssize_t tool_peer_db_write(struct file *filep, const char __user *u= buf, - size_t size, loff_t *offp) +static ssize_t tool_peer_db_write(struct kiocb *iocb, struct iov_iter *fro= m) { - struct tool_ctx *tc =3D filep->private_data; + struct tool_ctx *tc =3D iocb->ki_filp->private_data; =20 - return tool_fn_write(tc, ubuf, size, offp, tc->ntb->ops->peer_db_set, + return tool_fn_write(tc, iocb, from, tc->ntb->ops->peer_db_set, tc->ntb->ops->peer_db_clear); } =20 @@ -1097,23 +1084,18 @@ static TOOL_FOPS_RDWR(tool_peer_db_fops, tool_peer_db_read, tool_peer_db_write); =20 -static ssize_t tool_peer_db_mask_read(struct file *filep, char __user *ubu= f, - size_t size, loff_t *offp) +static ssize_t tool_peer_db_mask_read(struct kiocb *iocb, struct iov_iter = *to) { - struct tool_ctx *tc =3D filep->private_data; + struct tool_ctx *tc =3D iocb->ki_filp->private_data; =20 - return tool_fn_read(tc, ubuf, size, offp, - tc->ntb->ops->peer_db_read_mask); + return tool_fn_read(tc, iocb, to, tc->ntb->ops->peer_db_read_mask); } =20 -static ssize_t tool_peer_db_mask_write(struct file *filep, - const char __user *ubuf, - size_t size, loff_t *offp) +static ssize_t tool_peer_db_mask_write(struct kiocb *iocb, struct iov_iter= *from) { - struct tool_ctx *tc =3D filep->private_data; + struct tool_ctx *tc =3D iocb->ki_filp->private_data; =20 - return tool_fn_write(tc, ubuf, size, offp, - tc->ntb->ops->peer_db_set_mask, + return tool_fn_write(tc, iocb, from, tc->ntb->ops->peer_db_set_mask, tc->ntb->ops->peer_db_clear_mask); } =20 @@ -1121,15 +1103,14 @@ static TOOL_FOPS_RDWR(tool_peer_db_mask_fops, tool_peer_db_mask_read, tool_peer_db_mask_write); =20 -static ssize_t tool_db_event_write(struct file *filep, - const char __user *ubuf, - size_t size, loff_t *offp) +static ssize_t tool_db_event_write(struct kiocb *iocb, struct iov_iter *fr= om) { - struct tool_ctx *tc =3D filep->private_data; + struct tool_ctx *tc =3D iocb->ki_filp->private_data; + size_t size =3D iov_iter_count(from); u64 val; int ret; =20 - ret =3D kstrtou64_from_user(ubuf, size, 0, &val); + ret =3D kstrtou64_from_iter(from, size, 0, &val); if (ret) return ret; =20 @@ -1148,10 +1129,9 @@ static TOOL_FOPS_RDWR(tool_db_event_fops, *=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D */ =20 -static ssize_t tool_spad_read(struct file *filep, char __user *ubuf, - size_t size, loff_t *offp) +static ssize_t tool_spad_read(struct kiocb *iocb, struct iov_iter *to) { - struct tool_spad *spad =3D filep->private_data; + struct tool_spad *spad =3D iocb->ki_filp->private_data; char buf[TOOL_BUF_LEN]; ssize_t pos; =20 @@ -1161,13 +1141,13 @@ static ssize_t tool_spad_read(struct file *filep, c= har __user *ubuf, pos =3D scnprintf(buf, sizeof(buf), "%#x\n", ntb_spad_read(spad->tc->ntb, spad->sidx)); =20 - return simple_read_from_buffer(ubuf, size, offp, buf, pos); + return simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); } =20 -static ssize_t tool_spad_write(struct file *filep, const char __user *ubuf, - size_t size, loff_t *offp) +static ssize_t tool_spad_write(struct kiocb *iocb, struct iov_iter *from) { - struct tool_spad *spad =3D filep->private_data; + struct tool_spad *spad =3D iocb->ki_filp->private_data; + size_t size =3D iov_iter_count(from); u32 val; int ret; =20 @@ -1176,7 +1156,7 @@ static ssize_t tool_spad_write(struct file *filep, co= nst char __user *ubuf, return -EINVAL; } =20 - ret =3D kstrtou32_from_user(ubuf, size, 0, &val); + ret =3D kstrtou32_from_iter(from, size, 0, &val); if (ret) return ret; =20 @@ -1189,10 +1169,9 @@ static TOOL_FOPS_RDWR(tool_spad_fops, tool_spad_read, tool_spad_write); =20 -static ssize_t tool_peer_spad_read(struct file *filep, char __user *ubuf, - size_t size, loff_t *offp) +static ssize_t tool_peer_spad_read(struct kiocb *iocb, struct iov_iter *to) { - struct tool_spad *spad =3D filep->private_data; + struct tool_spad *spad =3D iocb->ki_filp->private_data; char buf[TOOL_BUF_LEN]; ssize_t pos; =20 @@ -1202,13 +1181,13 @@ static ssize_t tool_peer_spad_read(struct file *fil= ep, char __user *ubuf, pos =3D scnprintf(buf, sizeof(buf), "%#x\n", ntb_peer_spad_read(spad->tc->ntb, spad->pidx, spad->sidx)); =20 - return simple_read_from_buffer(ubuf, size, offp, buf, pos); + return simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); } =20 -static ssize_t tool_peer_spad_write(struct file *filep, const char __user = *ubuf, - size_t size, loff_t *offp) +static ssize_t tool_peer_spad_write(struct kiocb *iocb, struct iov_iter *f= rom) { - struct tool_spad *spad =3D filep->private_data; + struct tool_spad *spad =3D iocb->ki_filp->private_data; + size_t size =3D iov_iter_count(from); u32 val; int ret; =20 @@ -1217,7 +1196,7 @@ static ssize_t tool_peer_spad_write(struct file *file= p, const char __user *ubuf, return -EINVAL; } =20 - ret =3D kstrtou32_from_user(ubuf, size, 0, &val); + ret =3D kstrtou32_from_iter(from, size, 0, &val); if (ret) return ret; =20 @@ -1271,10 +1250,9 @@ static int tool_init_spads(struct tool_ctx *tc) *=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D */ =20 -static ssize_t tool_inmsg_read(struct file *filep, char __user *ubuf, - size_t size, loff_t *offp) +static ssize_t tool_inmsg_read(struct kiocb *iocb, struct iov_iter *to) { - struct tool_msg *msg =3D filep->private_data; + struct tool_msg *msg =3D iocb->ki_filp->private_data; char buf[TOOL_BUF_LEN]; ssize_t pos; u32 data; @@ -1284,22 +1262,21 @@ static ssize_t tool_inmsg_read(struct file *filep, = char __user *ubuf, =20 pos =3D scnprintf(buf, sizeof(buf), "0x%08x<-%d\n", data, pidx); =20 - return simple_read_from_buffer(ubuf, size, offp, buf, pos); + return simple_copy_to_iter(buf, &iocb->ki_pos, pos, to); } =20 static TOOL_FOPS_RDWR(tool_inmsg_fops, tool_inmsg_read, NULL); =20 -static ssize_t tool_outmsg_write(struct file *filep, - const char __user *ubuf, - size_t size, loff_t *offp) +static ssize_t tool_outmsg_write(struct kiocb *iocb, struct iov_iter *from) { - struct tool_msg *msg =3D filep->private_data; + struct tool_msg *msg =3D iocb->ki_filp->private_data; + size_t size =3D iov_iter_count(from); u32 val; int ret; =20 - ret =3D kstrtou32_from_user(ubuf, size, 0, &val); + ret =3D kstrtou32_from_iter(from, size, 0, &val); if (ret) return ret; =20 @@ -1312,58 +1289,51 @@ static TOOL_FOPS_RDWR(tool_outmsg_fops, NULL, tool_outmsg_write); =20 -static ssize_t tool_msg_sts_read(struct file *filep, char __user *ubuf, - size_t size, loff_t *offp) +static ssize_t tool_msg_sts_read(struct kiocb *iocb, struct iov_iter *to) { - struct tool_ctx *tc =3D filep->private_data; + struct tool_ctx *tc =3D iocb->ki_filp->private_data; =20 - return tool_fn_read(tc, ubuf, size, offp, tc->ntb->ops->msg_read_sts); + return tool_fn_read(tc, iocb, to, tc->ntb->ops->msg_read_sts); } =20 -static ssize_t tool_msg_sts_write(struct file *filep, const char __user *u= buf, - size_t size, loff_t *offp) +static ssize_t tool_msg_sts_write(struct kiocb *iocb, struct iov_iter *fro= m) { - struct tool_ctx *tc =3D filep->private_data; + struct tool_ctx *tc =3D iocb->ki_filp->private_data; =20 - return tool_fn_write(tc, ubuf, size, offp, NULL, - tc->ntb->ops->msg_clear_sts); + return tool_fn_write(tc, iocb, from, NULL, tc->ntb->ops->msg_clear_sts); } =20 static TOOL_FOPS_RDWR(tool_msg_sts_fops, tool_msg_sts_read, tool_msg_sts_write); =20 -static ssize_t tool_msg_inbits_read(struct file *filep, char __user *ubuf, - size_t size, loff_t *offp) +static ssize_t tool_msg_inbits_read(struct kiocb *iocb, struct iov_iter *t= o) { - struct tool_ctx *tc =3D filep->private_data; + struct tool_ctx *tc =3D iocb->ki_filp->private_data; =20 - return tool_fn_read(tc, ubuf, size, offp, tc->ntb->ops->msg_inbits); + return tool_fn_read(tc, iocb, to, tc->ntb->ops->msg_inbits); } =20 static TOOL_FOPS_RDWR(tool_msg_inbits_fops, tool_msg_inbits_read, NULL); =20 -static ssize_t tool_msg_outbits_read(struct file *filep, char __user *ubuf, - size_t size, loff_t *offp) +static ssize_t tool_msg_outbits_read(struct kiocb *iocb, struct iov_iter *= to) { - struct tool_ctx *tc =3D filep->private_data; + struct tool_ctx *tc =3D iocb->ki_filp->private_data; =20 - return tool_fn_read(tc, ubuf, size, offp, tc->ntb->ops->msg_outbits); + return tool_fn_read(tc, iocb, to, tc->ntb->ops->msg_outbits); } =20 static TOOL_FOPS_RDWR(tool_msg_outbits_fops, tool_msg_outbits_read, NULL); =20 -static ssize_t tool_msg_mask_write(struct file *filep, const char __user *= ubuf, - size_t size, loff_t *offp) +static ssize_t tool_msg_mask_write(struct kiocb *iocb, struct iov_iter *fr= om) { - struct tool_ctx *tc =3D filep->private_data; + struct tool_ctx *tc =3D iocb->ki_filp->private_data; =20 - return tool_fn_write(tc, ubuf, size, offp, - tc->ntb->ops->msg_set_mask, + return tool_fn_write(tc, iocb, from, tc->ntb->ops->msg_set_mask, tc->ntb->ops->msg_clear_mask); } =20 @@ -1371,15 +1341,14 @@ static TOOL_FOPS_RDWR(tool_msg_mask_fops, NULL, tool_msg_mask_write); =20 -static ssize_t tool_msg_event_write(struct file *filep, - const char __user *ubuf, - size_t size, loff_t *offp) +static ssize_t tool_msg_event_write(struct kiocb *iocb, struct iov_iter *f= rom) { - struct tool_ctx *tc =3D filep->private_data; + struct tool_ctx *tc =3D iocb->ki_filp->private_data; + size_t size =3D iov_iter_count(from); u64 val; int ret; =20 - ret =3D kstrtou64_from_user(ubuf, size, 0, &val); + ret =3D kstrtou64_from_iter(from, size, 0, &val); if (ret) return ret; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f49.google.com (mail-io1-f49.google.com [209.85.166.49]) (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 9DEC11F0B6C for ; Thu, 11 Apr 2024 15:42:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850127; cv=none; b=cxIdKoqZd1D3uAyGKG9sKjx0O027Bz5DLo3CQH720mxcojesM7sbJr3Qr6USjuNBLJDze4iLHHvwtAWHgqxwHABBQx3I/jOif5hJn9ucAEpxbhSb4PyYwd27TCWhG3N3HjugvqHoZLO0Gns3O5yVl55dGtPmKS5T8IhZdD71aBE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850127; c=relaxed/simple; bh=HWpRYWyoaUZ2U4fzX8sK97MS4hPQMcyB68wdiAXWcd0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=OBkHQV3N7WVHmv7K6PQkgPDcFFH7unWXfm5WdlhoaHdVacgPzLRktO0ifvCE/FOMtDi3vsHwMnYMxWpZS4m7kqajXREnJPCZ4Ss4rggbnZp8RV6AFUue56rTS90sNZWjDNLK579tR67F4djw5SQMe7L3Jr4ZiNV0szz2JxzhPbs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=CY3gMhv9; arc=none smtp.client-ip=209.85.166.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="CY3gMhv9" Received: by mail-io1-f49.google.com with SMTP id ca18e2360f4ac-7cc0e831e11so170643339f.1 for ; Thu, 11 Apr 2024 08:42:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850125; x=1713454925; 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=yJxPi8WmLQix200ePCP+T6VK310QZd3pEm6EroESoUU=; b=CY3gMhv9n4LVzVRrzRmw0HV2+MMsr8d/PdH1or0tTt45eabRc+QTxDqjjiHm505rpo qPQqrPhdMW3mcgyouWBBi/KL9DLkzrICL2ZWIzAdgSEDx6t8WLlUIgByA1ezVayABElh rLVU+U4anI8NKh3JBnAHoV6J7w/4BSB+qUmijoShvZAhy9D85sFvMTX2sSo1ZQl542RX 9200N1VCfAxEADPRgITn/cShU2zJ2LkaFR5kLIhR4V//RhBhx+QGbVzuD/gdwqSGHjDl yLML5RzyejzdI4fPDzIs5gWRDBSuQGmZlMPLe52xInDyavUzSZkOTItZIQkih29ztD+p E7/g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850125; x=1713454925; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=yJxPi8WmLQix200ePCP+T6VK310QZd3pEm6EroESoUU=; b=JAyZ3X7zJy8TQABywGUsH7+rQ4vNR9tOIxt9IhJXObI6nxKPkQOPfnK5pKgdjLSkQa kbG8TdW7CZUsxElpe1m1ax9HTGiCyrd5NQSUMjrVsFiFezusWicllmwLcKOw1YSoOYE5 NUvKOkn5v8QDiGp1Z136B+uiDsGuRGlB2kHQzvWYmEZKgdbS/RFBZun9rqMmuC9hHOPS 1eZ1KXwO+dPfT8G8pbU3aAe+nhcidfoeLy7QOFLVQi7HdAS3VUCM690uckrBdLcO/+tG PI+n1CjMzNsj1xMSQF1DEa60FR/WKm1o6lXFBtt6z1Aab8rm5BfeXak6i5D0RIASfIVv NB7w== X-Gm-Message-State: AOJu0Yw0Ph+rgQBcAHOLWaGmI/34ZZUdFIg6SCTu0V/4DbkGZFYz89w6 x9S9QRFzBQbRR/DoA1ZwjP4Xus3krnF+OzWvjdsxlEP9KgdVQOo8cAIGuQ/Mtm9KTns25CaaTiR q X-Google-Smtp-Source: AGHT+IEW5qBY02Bryo2UNQ9fsWBGf1zoZLY2mkVh37eOaDpBhLgcDCe0JLvLYagskD6FbSa/Q9IIwQ== X-Received: by 2002:a5e:9907:0:b0:7d6:751f:192 with SMTP id t7-20020a5e9907000000b007d6751f0192mr196739ioj.2.1712850125304; Thu, 11 Apr 2024 08:42:05 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.42.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:42:04 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 372/437] drivers/md: convert bcache to read/write iterators Date: Thu, 11 Apr 2024 09:18:32 -0600 Message-ID: <20240411153126.16201-373-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/md/bcache/debug.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/drivers/md/bcache/debug.c b/drivers/md/bcache/debug.c index 7510d1c983a5..6c28c8ca5629 100644 --- a/drivers/md/bcache/debug.c +++ b/drivers/md/bcache/debug.c @@ -169,10 +169,10 @@ static bool dump_pred(struct keybuf *buf, struct bkey= *k) return true; } =20 -static ssize_t bch_dump_read(struct file *file, char __user *buf, - size_t size, loff_t *ppos) +static ssize_t bch_dump_read(struct kiocb *iocb, struct iov_iter *to) { - struct dump_iterator *i =3D file->private_data; + struct dump_iterator *i =3D iocb->ki_filp->private_data; + size_t size =3D iov_iter_count(to); ssize_t ret =3D 0; char kbuf[80]; =20 @@ -180,11 +180,10 @@ static ssize_t bch_dump_read(struct file *file, char = __user *buf, struct keybuf_key *w; unsigned int bytes =3D min(i->bytes, size); =20 - if (copy_to_user(buf, i->buf, bytes)) + if (!copy_to_iter_full(i->buf, bytes, to)) return -EFAULT; =20 ret +=3D bytes; - buf +=3D bytes; size -=3D bytes; i->bytes -=3D bytes; memmove(i->buf, i->buf + bytes, i->bytes); @@ -230,7 +229,7 @@ static int bch_dump_release(struct inode *inode, struct= file *file) static const struct file_operations cache_set_debug_ops =3D { .owner =3D THIS_MODULE, .open =3D bch_dump_open, - .read =3D bch_dump_read, + .read_iter =3D bch_dump_read, .release =3D bch_dump_release }; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f54.google.com (mail-io1-f54.google.com [209.85.166.54]) (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 E573D1F1401 for ; Thu, 11 Apr 2024 15:42:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850130; cv=none; b=Vf3Q9lQAj+mgkNSVm/0gmg4KnQkNWqaRsTvHpMfl/9kPHa41DvnfXUt/MZFXL9bidiYi3qHqX8bEi0LrtXSV08I7ViWoG7KE7MzVP7N97e/UqAOTb15squ8AVPgrjs9onlzu1xxwGx07EPReacolxmLdRsWMRXtMRUovsx07YDs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850130; c=relaxed/simple; bh=RwBcVN+jLnnMiQ0jfv/xxaYBhfaMYpfLQ1DcZtpGx/M=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=mAi4khDCCDJKAPxZAaxDVW8XlY5KBtoLBwlc0tSxEeG7Dbqfbpp48K+jYnLRJXBL4ZiHiQAvxYeBJY2+IR1EmD4CJCExXaRvZhE/Jlg/uiyKTWT5ftiLBYIx3VAmQkNqqaqIEboINv1DAjEPAtW8rKNwbbyUIntKXEYySnYZPF4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=eR+UPjrn; arc=none smtp.client-ip=209.85.166.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="eR+UPjrn" Received: by mail-io1-f54.google.com with SMTP id ca18e2360f4ac-7d6112ba6baso58252439f.1 for ; Thu, 11 Apr 2024 08:42:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850128; x=1713454928; 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=XJ5Xr4lI2duetN729tRqNo0//AAlpg+2cueAQi+m1X4=; b=eR+UPjrnxvxY2FPu/j7tYGMLXx7H7lBAnIAw738PrwDm3ZIKX7GDP7XUEhvDmsDtwv Y912JhUjWN92lBJRVPA8nlM/7K1oGwWasAbT3CQ3BwByE41X4k6xEHcCvQk5MrmJsEVM MBAPJLnSVA4n3GGRaeF4H+MvFwV17jVDKZp3y3aNDIU3zpo69xJclZ/TFq/4kVps3lWK YwpPGoJ5KigVOw8FCiZvuE1QanMvTEY+Bm4i+EUZJInfEjEagTRofOxouzPZLd4EB/0U TvshxXNk9jNKdRUEkYW8vYuoNtRat9+YjURPEv6bLTfcqtvOw6ikTO6rsLwi8wzJ3SFh d05w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850128; x=1713454928; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=XJ5Xr4lI2duetN729tRqNo0//AAlpg+2cueAQi+m1X4=; b=XRHsxKKuTiPujf9baFFH1K5kyOb9cOaQIAzMa9BysebT70QOD/PTM9oCcaYXVHB8dl Q7s06PBa9ZsERDarlWPf18WXwSpmoN7/rvoY2uEeGx5JSGtLHvUUAaU/bNXy+qccklwJ fQea3FRJIb2Ts7wSN547Mz0mqbzd0PfFhkSdv/zfhPI7BhuC1HH/eNYqX/lV7H1fnDNu WSRMQEW0qLfq1U1M5f26e+m9MSIWOpJ1dWlDI6V0KtLKrXIhXgseDOiFhXI1qHoAk8Dl DBEq8zbXzm9Zl9EUvw75gerKB9wuRGyOJuOK8bapLTOZWZIR9WrPodXj8tjDPPaa8vH/ CoIw== X-Gm-Message-State: AOJu0YzSgehQO9ZQFBSM4wxgtjw1sQzxleeekPs1PGiifIPNj5VOgAWi ypYTBpn/fsbjiKqA196HdLCLxXI6eBAU0AKlkLnXPUFbmfjhrc4/U9DdiVPd5Tre9FvunhEq5Ve L X-Google-Smtp-Source: AGHT+IE0mhrZ+63rxn3HEqhWZLKYrB5Z8OIvbWyufqtZkUKVdnpV+6MHV9/MRsSCHjB4lWbhbZRIlg== X-Received: by 2002:a05:6602:38d:b0:7d6:513b:254 with SMTP id f13-20020a056602038d00b007d6513b0254mr203359iov.2.1712850127823; Thu, 11 Apr 2024 08:42:07 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.42.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:42:05 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 373/437] drivers/remoteproc: convert to read/write iterators Date: Thu, 11 Apr 2024 09:18:33 -0600 Message-ID: <20240411153126.16201-374-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/remoteproc/remoteproc_cdev.c | 9 ++-- drivers/remoteproc/remoteproc_debugfs.c | 68 +++++++++++-------------- 2 files changed, 36 insertions(+), 41 deletions(-) diff --git a/drivers/remoteproc/remoteproc_cdev.c b/drivers/remoteproc/remo= teproc_cdev.c index 687f205fd70a..c36a0fa6c991 100644 --- a/drivers/remoteproc/remoteproc_cdev.c +++ b/drivers/remoteproc/remoteproc_cdev.c @@ -18,16 +18,17 @@ #define NUM_RPROC_DEVICES 64 static dev_t rproc_major; =20 -static ssize_t rproc_cdev_write(struct file *filp, const char __user *buf,= size_t len, loff_t *pos) +static ssize_t rproc_cdev_write(struct kiocb *iocb, struct iov_iter *from) { - struct rproc *rproc =3D container_of(filp->f_inode->i_cdev, struct rproc,= cdev); + struct rproc *rproc =3D container_of(iocb->ki_filp->f_inode->i_cdev, stru= ct rproc, cdev); + size_t len =3D iov_iter_count(from); int ret =3D 0; char cmd[10]; =20 if (!len || len > sizeof(cmd)) return -EINVAL; =20 - ret =3D copy_from_user(cmd, buf, len); + ret =3D !copy_from_iter_full(cmd, len, from); if (ret) return -EFAULT; =20 @@ -89,7 +90,7 @@ static int rproc_cdev_release(struct inode *inode, struct= file *filp) } =20 static const struct file_operations rproc_fops =3D { - .write =3D rproc_cdev_write, + .write_iter =3D rproc_cdev_write, .unlocked_ioctl =3D rproc_device_ioctl, .compat_ioctl =3D compat_ptr_ioctl, .release =3D rproc_cdev_release, diff --git a/drivers/remoteproc/remoteproc_debugfs.c b/drivers/remoteproc/r= emoteproc_debugfs.c index b86c1d09c70c..dd5900143475 100644 --- a/drivers/remoteproc/remoteproc_debugfs.c +++ b/drivers/remoteproc/remoteproc_debugfs.c @@ -39,17 +39,16 @@ static const char * const rproc_coredump_str[] =3D { }; =20 /* Expose the current coredump configuration via debugfs */ -static ssize_t rproc_coredump_read(struct file *filp, char __user *userbuf, - size_t count, loff_t *ppos) +static ssize_t rproc_coredump_read(struct kiocb *iocb, struct iov_iter *to) { - struct rproc *rproc =3D filp->private_data; + struct rproc *rproc =3D iocb->ki_filp->private_data; char buf[20]; int len; =20 len =3D scnprintf(buf, sizeof(buf), "%s\n", rproc_coredump_str[rproc->dump_conf]); =20 - return simple_read_from_buffer(userbuf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 /* @@ -68,18 +67,17 @@ static ssize_t rproc_coredump_read(struct file *filp, c= har __user *userbuf, * recovery process will have to wait until data is read by * userspace. But this avoid usage of extra memory. */ -static ssize_t rproc_coredump_write(struct file *filp, - const char __user *user_buf, size_t count, - loff_t *ppos) +static ssize_t rproc_coredump_write(struct kiocb *iocb, struct iov_iter *f= rom) { - struct rproc *rproc =3D filp->private_data; + struct rproc *rproc =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); int ret, err =3D 0; char buf[20]; =20 if (count < 1 || count > sizeof(buf)) return -EINVAL; =20 - ret =3D copy_from_user(buf, user_buf, count); + ret =3D !copy_from_iter_full(buf, count, from); if (ret) return -EFAULT; =20 @@ -108,8 +106,8 @@ static ssize_t rproc_coredump_write(struct file *filp, } =20 static const struct file_operations rproc_coredump_fops =3D { - .read =3D rproc_coredump_read, - .write =3D rproc_coredump_write, + .read_iter =3D rproc_coredump_read, + .write_iter =3D rproc_coredump_write, .open =3D simple_open, .llseek =3D generic_file_llseek, }; @@ -123,10 +121,9 @@ static const struct file_operations rproc_coredump_fop= s =3D { * but this kind of lightweight and simple mechanism is always good to hav= e, * as it provides very early tracing with little to no dependencies at all. */ -static ssize_t rproc_trace_read(struct file *filp, char __user *userbuf, - size_t count, loff_t *ppos) +static ssize_t rproc_trace_read(struct kiocb *iocb, struct iov_iter *to) { - struct rproc_debug_trace *data =3D filp->private_data; + struct rproc_debug_trace *data =3D iocb->ki_filp->private_data; struct rproc_mem_entry *trace =3D &data->trace_mem; void *va; char buf[100]; @@ -142,43 +139,41 @@ static ssize_t rproc_trace_read(struct file *filp, ch= ar __user *userbuf, len =3D strnlen(va, trace->len); } =20 - return simple_read_from_buffer(userbuf, count, ppos, va, len); + return simple_copy_to_iter(va, &iocb->ki_pos, len, to); } =20 static const struct file_operations trace_rproc_ops =3D { - .read =3D rproc_trace_read, + .read_iter =3D rproc_trace_read, .open =3D simple_open, .llseek =3D generic_file_llseek, }; =20 /* expose the name of the remote processor via debugfs */ -static ssize_t rproc_name_read(struct file *filp, char __user *userbuf, - size_t count, loff_t *ppos) +static ssize_t rproc_name_read(struct kiocb *iocb, struct iov_iter *to) { - struct rproc *rproc =3D filp->private_data; + struct rproc *rproc =3D iocb->ki_filp->private_data; /* need room for the name, a newline and a terminating null */ char buf[100]; int i; =20 i =3D scnprintf(buf, sizeof(buf), "%.98s\n", rproc->name); =20 - return simple_read_from_buffer(userbuf, count, ppos, buf, i); + return simple_copy_to_iter(buf, &iocb->ki_pos, i, to); } =20 static const struct file_operations rproc_name_ops =3D { - .read =3D rproc_name_read, + .read_iter =3D rproc_name_read, .open =3D simple_open, .llseek =3D generic_file_llseek, }; =20 /* expose recovery flag via debugfs */ -static ssize_t rproc_recovery_read(struct file *filp, char __user *userbuf, - size_t count, loff_t *ppos) +static ssize_t rproc_recovery_read(struct kiocb *iocb, struct iov_iter *to) { - struct rproc *rproc =3D filp->private_data; + struct rproc *rproc =3D iocb->ki_filp->private_data; char *buf =3D rproc->recovery_disabled ? "disabled\n" : "enabled\n"; =20 - return simple_read_from_buffer(userbuf, count, ppos, buf, strlen(buf)); + return simple_copy_to_iter(buf, &iocb->ki_pos, strlen(buf), to); } =20 /* @@ -206,17 +201,17 @@ static ssize_t rproc_recovery_read(struct file *filp,= char __user *userbuf, * instead use the "recover" command as needed. */ static ssize_t -rproc_recovery_write(struct file *filp, const char __user *user_buf, - size_t count, loff_t *ppos) +rproc_recovery_write(struct kiocb *iocb, struct iov_iter *from) { - struct rproc *rproc =3D filp->private_data; + struct rproc *rproc =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); char buf[10]; int ret; =20 if (count < 1 || count > sizeof(buf)) return -EINVAL; =20 - ret =3D copy_from_user(buf, user_buf, count); + ret =3D !copy_from_iter_full(buf, count, from); if (ret) return -EFAULT; =20 @@ -241,22 +236,21 @@ rproc_recovery_write(struct file *filp, const char __= user *user_buf, } =20 static const struct file_operations rproc_recovery_ops =3D { - .read =3D rproc_recovery_read, - .write =3D rproc_recovery_write, + .read_iter =3D rproc_recovery_read, + .write_iter =3D rproc_recovery_write, .open =3D simple_open, .llseek =3D generic_file_llseek, }; =20 /* expose the crash trigger via debugfs */ -static ssize_t -rproc_crash_write(struct file *filp, const char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t rproc_crash_write(struct kiocb *iocb, struct iov_iter *from) { - struct rproc *rproc =3D filp->private_data; + struct rproc *rproc =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); unsigned int type; int ret; =20 - ret =3D kstrtouint_from_user(user_buf, count, 0, &type); + ret =3D kstrtouint_from_iter(from, count, 0, &type); if (ret < 0) return ret; =20 @@ -266,7 +260,7 @@ rproc_crash_write(struct file *filp, const char __user = *user_buf, } =20 static const struct file_operations rproc_crash_ops =3D { - .write =3D rproc_crash_write, + .write_iter =3D rproc_crash_write, .open =3D simple_open, .llseek =3D generic_file_llseek, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f44.google.com (mail-io1-f44.google.com [209.85.166.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 8DECA1F1421 for ; Thu, 11 Apr 2024 15:42:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850131; cv=none; b=fs1Fx8Iw4wu2YD6kyw5bNs6E7iZ7XOsTnIlNwJZ17Dqo2hUdHsL/rcBIeWYDo4SroJ8SWvX7r8nzo13oBsoFTGAmVTWNiQHBnwIzW5w7tRIH4uTFZpyJqDKVK/HjTD/nlk+EIueIaz6n+WyeaKYbI+1eXrpGJy19SeSr8Km9d3o= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850131; c=relaxed/simple; bh=dqtVeTYhQASUycisSYaIVNPleS7no3IpNbn4fVSlEjQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=q/8+vzk5XleWjfwWRyiB0J+eGOGkvX5v7EWgs73ZZssKHPStjNR/btN5hVIX1G4gG/7hZnI2jULPNs61FIG5YFheBivgubPnLA8mpzN8aX8z8WKYZm7QR2pFV0PQ8MzrNjIQzmw4vxwGzNFqZKX8RWeRVCy5xmDom72al4cXKp8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=FD372j4a; arc=none smtp.client-ip=209.85.166.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="FD372j4a" Received: by mail-io1-f44.google.com with SMTP id ca18e2360f4ac-7cc0e831e11so170644539f.1 for ; Thu, 11 Apr 2024 08:42:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850129; x=1713454929; 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=66zc67EVQwWAQaHwvyKajfsawNvErn36IZcn2AYQxyY=; b=FD372j4a/D542tYoo308ccLBovQLLvrHEW/MDn7bsf0JA2hgaPmadVYUvsJOv7l+wi 4kDO1xef+Amwb2fAjrpH6eTXp8/bcfGdMriYCmMMZEN6lNNIs67X9XPoh8uakf7ica66 nYQ/BG8Gw4Nr4d80m2+KEXjxlbMBM+O11TwME+3W5PSjUAn6W1MQ2F16L5Y9Y3FFdFrJ 3S1iL6kMZQ4EhidFxEAqMmRpd7gU0vWmMPjBHhMV2D4FqB/bJz1/vFj6uSTKJwIiJaYy gsOTK8pyhUV2e6UTpX6ogvVaVPQiFvOYzb3oMtI3SDJSmvUk5gKlivFvj8WdeJoOm/iX 5kZA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850129; x=1713454929; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=66zc67EVQwWAQaHwvyKajfsawNvErn36IZcn2AYQxyY=; b=Epjin/+eC9ktYek5UNBlbnkDoFANu7SYhivgr8BkJLgzAVRTBIJvqg/RyN/218DkcV NrC91sBrvyUV29DRUu5uJRlwycdxK3zQkdR7d1Sqgy10m0KrHzCQ3EL4Mv2Zv05pHTuv vZOIL0EZytCkmUNMvxtrbQazYINWx8QIPtW502ZqG6mtwSdBLHkqtc2lryWVvDG137ke eMpOmbuVUOmL4whm5BlSWxX9oSbgJjQtxg0HW+BQPm7n2B27LdMrq7tFcN4TAgeBr3IU HFI9OsHHl+x/LyKqW863WATbco9/0/wLcfBy2YQPW+knC7/R1/JtcwpTdvS0yj8TSXPU PNBw== X-Gm-Message-State: AOJu0YyDhQ3xJLqorcqafytqBoM1rrUEK8SI9IZashAgO8oa5v/fm+j8 6rcvClKSZF8SKxrknMbMK+nO/3Nl9FfxSo29T8zuuTHIFrU3SDmK3nyszgpsNdfpau0TUpla1IL 3 X-Google-Smtp-Source: AGHT+IH2i4vXowqMEG0sx9QT+6Eq9OAmgIa8HPhB2UPs5XXT5XXxKW1aUORA95bc3+Mn+4Wv7/9mkg== X-Received: by 2002:a6b:5b10:0:b0:7d0:bd2b:43ba with SMTP id v16-20020a6b5b10000000b007d0bd2b43bamr237857ioh.0.1712850129602; Thu, 11 Apr 2024 08:42:09 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.42.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:42:08 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 374/437] drivers/thunderbolt: convert to read/write iterators Date: Thu, 11 Apr 2024 09:18:34 -0600 Message-ID: <20240411153126.16201-375-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/thunderbolt/debugfs.c | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/drivers/thunderbolt/debugfs.c b/drivers/thunderbolt/debugfs.c index e324cd899719..fbe0fb7d40a6 100644 --- a/drivers/thunderbolt/debugfs.c +++ b/drivers/thunderbolt/debugfs.c @@ -43,8 +43,8 @@ static const struct file_operations __space ## _fops =3D = { \ .owner =3D THIS_MODULE, \ .open =3D __space ## _open, \ .release =3D single_release, \ - .read =3D seq_read, \ - .write =3D __write, \ + .read_iter =3D seq_read_iter, \ + .write_iter =3D __write, \ .llseek =3D seq_lseek, \ } =20 @@ -52,7 +52,7 @@ static const struct file_operations __space ## _fops =3D = { \ DEBUGFS_ATTR(__space, NULL) =20 #define DEBUGFS_ATTR_RW(__space) \ - DEBUGFS_ATTR(__space, __space ## _write) + DEBUGFS_ATTR(__space, __space ## _write ## _iter) =20 static struct dentry *tb_debugfs_root; =20 @@ -175,6 +175,7 @@ static ssize_t port_regs_write(struct file *file, const= char __user *user_buf, =20 return regs_write(port->sw, port, user_buf, count, ppos); } +FOPS_WRITE_ITER_HELPER(port_regs_write); =20 static ssize_t switch_regs_write(struct file *file, const char __user *use= r_buf, size_t count, loff_t *ppos) @@ -184,10 +185,11 @@ static ssize_t switch_regs_write(struct file *file, c= onst char __user *user_buf, =20 return regs_write(sw, NULL, user_buf, count, ppos); } +FOPS_WRITE_ITER_HELPER(switch_regs_write); #define DEBUGFS_MODE 0600 #else -#define port_regs_write NULL -#define switch_regs_write NULL +#define port_regs_write_iter NULL +#define switch_regs_write_iter NULL #define DEBUGFS_MODE 0400 #endif =20 @@ -305,6 +307,7 @@ margining_ber_level_write(struct file *file, const char= __user *user_buf, =20 return ret < 0 ? ret : count; } +FOPS_WRITE_ITER_HELPER(margining_ber_level_write); =20 static void ber_level_show(struct seq_file *s, unsigned int val) { @@ -445,6 +448,7 @@ margining_lanes_write(struct file *file, const char __u= ser *user_buf, free_page((unsigned long)buf); return ret < 0 ? ret : count; } +FOPS_WRITE_ITER_HELPER(margining_lanes_write); =20 static int margining_lanes_show(struct seq_file *s, void *not_used) { @@ -518,6 +522,7 @@ static ssize_t margining_mode_write(struct file *file, free_page((unsigned long)buf); return ret ? ret : count; } +FOPS_WRITE_ITER_HELPER(margining_mode_write); =20 static int margining_mode_show(struct seq_file *s, void *not_used) { @@ -646,6 +651,7 @@ static ssize_t margining_results_write(struct file *fil= e, mutex_unlock(&tb->lock); return count; } +FOPS_WRITE_ITER_HELPER(margining_results_write); =20 static void voltage_margin_show(struct seq_file *s, const struct tb_margining *margining, u8 val) @@ -775,6 +781,7 @@ static ssize_t margining_test_write(struct file *file, free_page((unsigned long)buf); return ret ? ret : count; } +FOPS_WRITE_ITER_HELPER(margining_test_write); =20 static int margining_test_show(struct seq_file *s, void *not_used) { @@ -843,6 +850,7 @@ static ssize_t margining_margin_write(struct file *file, free_page((unsigned long)buf); return ret ? ret : count; } +FOPS_WRITE_ITER_HELPER(margining_margin_write); =20 static int margining_margin_show(struct seq_file *s, void *not_used) { @@ -1089,6 +1097,7 @@ static ssize_t counters_write(struct file *file, cons= t char __user *user_buf, =20 return ret < 0 ? ret : count; } +FOPS_WRITE_ITER_HELPER(counters_write); =20 static void cap_show_by_dw(struct seq_file *s, struct tb_switch *sw, struct tb_port *port, unsigned int cap, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f43.google.com (mail-io1-f43.google.com [209.85.166.43]) (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 DA3EC1ECE9D for ; Thu, 11 Apr 2024 15:42:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850134; cv=none; b=OA3LJODWpWzanJ4S/BWRpnlu6axEcE1UHyMzm6JWb9lCCuMJzuc5NbOMxMjjy8qOllpEbKMyVIZEdbwk5V3bfpEMg3WxqNo5D49/8IXb5i48cVumhSGYtk/fdlUdeLGgIDadqXkqAjRkaeJkbuDxV8HKNF+Afa55RCQ9IrEA8h0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850134; c=relaxed/simple; bh=rgpIRHhn5bda62Hdb4aCHFo5qia/GDBxZWB0weRgOWo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=rJ5eWY9AAuHf7XP2m/oS5cSzwOivr07iCsAWQ1qhfXlGNDe7cPoHJrhQW3jRHOP2cG87Ld7GGjOqRGan9DM9H6MHuz8hRnfR8Fj5TJ0O3kgFXJbEhNuPpPmz9xHX+i4CjkjP0Th5JzjYwpyJ/UVf0n7SZVSf4PCwsyoyn2/b8u8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=OunmfneD; arc=none smtp.client-ip=209.85.166.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="OunmfneD" Received: by mail-io1-f43.google.com with SMTP id ca18e2360f4ac-7d6112ba6baso58254739f.1 for ; Thu, 11 Apr 2024 08:42:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850132; x=1713454932; 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=gP+1rs2Jbz9YPxFttSpfFlNdjf4iFYzHn3TtRb4Tbdo=; b=OunmfneDsbdUI1zyYi3IqqxGHdWQtNUy1Mit2uMffBGRhTYvKDTDukLNMIXQ4u/6l7 U1CzwdbXQwxA7/aZ3lrABJPeCeK+ZHm0dE8dLLJC6ebbAAkykecTssc6zF4rYpLyNe+0 9e1bNnKmi5xTh0XwtfQcPv9plw5IGSW/yEiiV7rfRJqZ75Rmc5WN06gL43fHq0FACw3Y 2NMUbnFKzT+/A2JBaRU4OiQQuyzgaBK3UiKgqUgz4Iq69hAExzySAkCFIfuNFueAnK2E mGTNGnMvG1xb00UUg/B9PVn/xvAhV+qG36pKsPtfMLWwowBnJKmiXFUunpo0pmFmskv5 TF/A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850132; x=1713454932; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=gP+1rs2Jbz9YPxFttSpfFlNdjf4iFYzHn3TtRb4Tbdo=; b=fgTtlgK7Ck2Y/vkrzbvjeqNIDSslwn0cg9p9PWU1bviDzTHRamja0CseL7fZRpuyH8 KfrXzyQxmWoWVj1DJVje4DHLiXHev7sh7Sq5Sgi47JBK4Bhh7xQmvolHMTfadYe1efh2 b4trEYOKVQ+BSMnOSBHvsbExAxRfqRyMgn1xBjTjOPJQ1aauRI7nkGli285NlyVKq+F/ c8+Aik9Jq8bWQbFo8+hsjcsW3dVu92+MJjUL1mgrn/EH9JTXJs/BLyWh2dly8FJTdj2x ORUJl8UK8RIM+o7kCNMiyDs4mkqGP95utGULbz+2LbJ86xb+j5HJe4H9H5e0L9Vvy8uh 1NqQ== X-Gm-Message-State: AOJu0Yx22T+beT+lQdIoCbxg/5L7oHS1SOV6/POpvrhu0f0RXH/1P4dm cw4r/v4ECD9ktBHDH2jA2pnMWAepHUAAh4JHTXJxE6sx01DBsmPLZ1OqIVaX+9JQnNunX5e1iRk i X-Google-Smtp-Source: AGHT+IG84cSQxtESTY27M58hxDu6/QA1FtdQ+SUGa2mFdMWfhHzuVB+SSpui4E1IXWquMx+130hC0w== X-Received: by 2002:a6b:f312:0:b0:7d5:de23:13a9 with SMTP id m18-20020a6bf312000000b007d5de2313a9mr177887ioh.1.1712850131205; Thu, 11 Apr 2024 08:42:11 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.42.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:42:09 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 375/437] drivers/vfio: convert to read/write iterators Date: Thu, 11 Apr 2024 09:18:35 -0600 Message-ID: <20240411153126.16201-376-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- .../vfio/pci/hisilicon/hisi_acc_vfio_pci.c | 31 ++++++++++-------- drivers/vfio/pci/mlx5/main.c | 6 ++-- drivers/vfio/pci/pds/lm.c | 32 +++++++++---------- drivers/vfio/vfio_main.c | 6 ++-- 4 files changed, 41 insertions(+), 34 deletions(-) diff --git a/drivers/vfio/pci/hisilicon/hisi_acc_vfio_pci.c b/drivers/vfio/= pci/hisilicon/hisi_acc_vfio_pci.c index 9a3e97108ace..8ea4c46a3334 100644 --- a/drivers/vfio/pci/hisilicon/hisi_acc_vfio_pci.c +++ b/drivers/vfio/pci/hisilicon/hisi_acc_vfio_pci.c @@ -676,18 +676,20 @@ static int hisi_acc_vf_release_file(struct inode *ino= de, struct file *filp) return 0; } =20 -static ssize_t hisi_acc_vf_resume_write(struct file *filp, const char __us= er *buf, - size_t len, loff_t *pos) +static ssize_t hisi_acc_vf_resume_write(struct kiocb *iocb, + struct iov_iter *from) { - struct hisi_acc_vf_migration_file *migf =3D filp->private_data; + struct hisi_acc_vf_migration_file *migf =3D iocb->ki_filp->private_data; u8 *vf_data =3D (u8 *)&migf->vf_data; + size_t len =3D iov_iter_count(from); loff_t requested_length; ssize_t done =3D 0; + loff_t *pos; int ret; =20 - if (pos) + if (iocb->ki_pos) return -ESPIPE; - pos =3D &filp->f_pos; + pos =3D &iocb->ki_filp->f_pos; =20 if (*pos < 0 || check_add_overflow((loff_t)len, *pos, &requested_length)) @@ -702,7 +704,7 @@ static ssize_t hisi_acc_vf_resume_write(struct file *fi= lp, const char __user *bu goto out_unlock; } =20 - ret =3D copy_from_user(vf_data + *pos, buf, len); + ret =3D !copy_from_iter_full(vf_data + *pos, len, from); if (ret) { done =3D -EFAULT; goto out_unlock; @@ -721,7 +723,7 @@ static ssize_t hisi_acc_vf_resume_write(struct file *fi= lp, const char __user *bu =20 static const struct file_operations hisi_acc_vf_resume_fops =3D { .owner =3D THIS_MODULE, - .write =3D hisi_acc_vf_resume_write, + .write_iter =3D hisi_acc_vf_resume_write, .release =3D hisi_acc_vf_release_file, .llseek =3D no_llseek, }; @@ -800,16 +802,17 @@ static long hisi_acc_vf_precopy_ioctl(struct file *fi= lp, return ret; } =20 -static ssize_t hisi_acc_vf_save_read(struct file *filp, char __user *buf, = size_t len, - loff_t *pos) +static ssize_t hisi_acc_vf_save_read(struct kiocb *iocb, struct iov_iter *= to) { - struct hisi_acc_vf_migration_file *migf =3D filp->private_data; + struct hisi_acc_vf_migration_file *migf =3D iocb->ki_filp->private_data; + size_t len =3D iov_iter_count(to); ssize_t done =3D 0; + loff_t *pos; int ret; =20 - if (pos) + if (iocb->ki_pos) return -ESPIPE; - pos =3D &filp->f_pos; + pos =3D &iocb->ki_filp->f_pos; =20 mutex_lock(&migf->lock); if (*pos > migf->total_length) { @@ -826,7 +829,7 @@ static ssize_t hisi_acc_vf_save_read(struct file *filp,= char __user *buf, size_t if (len) { u8 *vf_data =3D (u8 *)&migf->vf_data; =20 - ret =3D copy_to_user(buf, vf_data + *pos, len); + ret =3D !copy_to_iter_full(vf_data + *pos, len, to); if (ret) { done =3D -EFAULT; goto out_unlock; @@ -841,7 +844,7 @@ static ssize_t hisi_acc_vf_save_read(struct file *filp,= char __user *buf, size_t =20 static const struct file_operations hisi_acc_vf_save_fops =3D { .owner =3D THIS_MODULE, - .read =3D hisi_acc_vf_save_read, + .read_iter =3D hisi_acc_vf_save_read, .unlocked_ioctl =3D hisi_acc_vf_precopy_ioctl, .compat_ioctl =3D compat_ptr_ioctl, .release =3D hisi_acc_vf_release_file, diff --git a/drivers/vfio/pci/mlx5/main.c b/drivers/vfio/pci/mlx5/main.c index 61d9b0f9146d..05552bcb7a31 100644 --- a/drivers/vfio/pci/mlx5/main.c +++ b/drivers/vfio/pci/mlx5/main.c @@ -263,6 +263,7 @@ static ssize_t mlx5vf_save_read(struct file *filp, char= __user *buf, size_t len, mutex_unlock(&migf->lock); return done; } +FOPS_READ_ITER_HELPER(mlx5vf_save_read); =20 static __poll_t mlx5vf_save_poll(struct file *filp, struct poll_table_struct *wait) @@ -582,7 +583,7 @@ static long mlx5vf_precopy_ioctl(struct file *filp, uns= igned int cmd, =20 static const struct file_operations mlx5vf_save_fops =3D { .owner =3D THIS_MODULE, - .read =3D mlx5vf_save_read, + .read_iter =3D mlx5vf_save_read_iter, .poll =3D mlx5vf_save_poll, .unlocked_ioctl =3D mlx5vf_precopy_ioctl, .compat_ioctl =3D compat_ptr_ioctl, @@ -995,10 +996,11 @@ static ssize_t mlx5vf_resume_write(struct file *filp,= const char __user *buf, mlx5vf_state_mutex_unlock(migf->mvdev); return ret ? ret : done; } +FOPS_WRITE_ITER_HELPER(mlx5vf_resume_write); =20 static const struct file_operations mlx5vf_resume_fops =3D { .owner =3D THIS_MODULE, - .write =3D mlx5vf_resume_write, + .write_iter =3D mlx5vf_resume_write_iter, .release =3D mlx5vf_release_file, .llseek =3D no_llseek, }; diff --git a/drivers/vfio/pci/pds/lm.c b/drivers/vfio/pci/pds/lm.c index 6b94cc0bf45b..8e86b3c39a28 100644 --- a/drivers/vfio/pci/pds/lm.c +++ b/drivers/vfio/pci/pds/lm.c @@ -174,15 +174,16 @@ static int pds_vfio_release_file(struct inode *inode,= struct file *filp) return 0; } =20 -static ssize_t pds_vfio_save_read(struct file *filp, char __user *buf, - size_t len, loff_t *pos) +static ssize_t pds_vfio_save_read(struct kiocb *iocb, struct iov_iter *to) { - struct pds_vfio_lm_file *lm_file =3D filp->private_data; + struct pds_vfio_lm_file *lm_file =3D iocb->ki_filp->private_data; + size_t len =3D iov_iter_count(to); ssize_t done =3D 0; + loff_t *pos; =20 - if (pos) + if (iocb->ki_pos) return -ESPIPE; - pos =3D &filp->f_pos; + pos =3D &iocb->ki_filp->f_pos; =20 mutex_lock(&lm_file->lock); =20 @@ -214,7 +215,7 @@ static ssize_t pds_vfio_save_read(struct file *filp, ch= ar __user *buf, =20 page_len =3D min_t(size_t, len, PAGE_SIZE - page_offset); from_buff =3D kmap_local_page(page); - err =3D copy_to_user(buf, from_buff + page_offset, page_len); + err =3D !copy_to_iter_full(from_buff + page_offset, page_len, to); kunmap_local(from_buff); if (err) { done =3D -EFAULT; @@ -223,7 +224,6 @@ static ssize_t pds_vfio_save_read(struct file *filp, ch= ar __user *buf, *pos +=3D page_len; len -=3D page_len; done +=3D page_len; - buf +=3D page_len; } =20 out_unlock: @@ -233,7 +233,7 @@ static ssize_t pds_vfio_save_read(struct file *filp, ch= ar __user *buf, =20 static const struct file_operations pds_vfio_save_fops =3D { .owner =3D THIS_MODULE, - .read =3D pds_vfio_save_read, + .read_iter =3D pds_vfio_save_read, .release =3D pds_vfio_release_file, .llseek =3D no_llseek, }; @@ -273,17 +273,18 @@ static int pds_vfio_get_save_file(struct pds_vfio_pci= _device *pds_vfio) return 0; } =20 -static ssize_t pds_vfio_restore_write(struct file *filp, const char __user= *buf, - size_t len, loff_t *pos) +static ssize_t pds_vfio_restore_write(struct kiocb *iocb, struct iov_iter = *from) { - struct pds_vfio_lm_file *lm_file =3D filp->private_data; + struct pds_vfio_lm_file *lm_file =3D iocb->ki_filp->private_data; + size_t len =3D iov_iter_count(from); loff_t requested_length; ssize_t done =3D 0; + loff_t *pos; =20 - if (pos) + if (iocb->ki_pos) return -ESPIPE; =20 - pos =3D &filp->f_pos; + pos =3D &iocb->ki_filp->f_pos; =20 if (*pos < 0 || check_add_overflow((loff_t)len, *pos, &requested_length)) @@ -313,7 +314,7 @@ static ssize_t pds_vfio_restore_write(struct file *filp= , const char __user *buf, =20 page_len =3D min_t(size_t, len, PAGE_SIZE - page_offset); to_buff =3D kmap_local_page(page); - err =3D copy_from_user(to_buff + page_offset, buf, page_len); + err =3D !copy_from_iter_full(to_buff + page_offset, page_len, from); kunmap_local(to_buff); if (err) { done =3D -EFAULT; @@ -322,7 +323,6 @@ static ssize_t pds_vfio_restore_write(struct file *filp= , const char __user *buf, *pos +=3D page_len; len -=3D page_len; done +=3D page_len; - buf +=3D page_len; lm_file->size +=3D page_len; } out_unlock: @@ -332,7 +332,7 @@ static ssize_t pds_vfio_restore_write(struct file *filp= , const char __user *buf, =20 static const struct file_operations pds_vfio_restore_fops =3D { .owner =3D THIS_MODULE, - .write =3D pds_vfio_restore_write, + .write_iter =3D pds_vfio_restore_write, .release =3D pds_vfio_release_file, .llseek =3D no_llseek, }; diff --git a/drivers/vfio/vfio_main.c b/drivers/vfio/vfio_main.c index e97d796a54fb..dd96d1756110 100644 --- a/drivers/vfio/vfio_main.c +++ b/drivers/vfio/vfio_main.c @@ -1277,6 +1277,7 @@ static ssize_t vfio_device_fops_read(struct file *fil= ep, char __user *buf, =20 return device->ops->read(device, buf, count, ppos); } +FOPS_READ_ITER_HELPER(vfio_device_fops_read); =20 static ssize_t vfio_device_fops_write(struct file *filep, const char __user *buf, @@ -1294,6 +1295,7 @@ static ssize_t vfio_device_fops_write(struct file *fi= lep, =20 return device->ops->write(device, buf, count, ppos); } +FOPS_WRITE_ITER_HELPER(vfio_device_fops_write); =20 static int vfio_device_fops_mmap(struct file *filep, struct vm_area_struct= *vma) { @@ -1314,8 +1316,8 @@ const struct file_operations vfio_device_fops =3D { .owner =3D THIS_MODULE, .open =3D vfio_device_fops_cdev_open, .release =3D vfio_device_fops_release, - .read =3D vfio_device_fops_read, - .write =3D vfio_device_fops_write, + .read_iter =3D vfio_device_fops_read_iter, + .write_iter =3D vfio_device_fops_write_iter, .unlocked_ioctl =3D vfio_device_fops_unl_ioctl, .compat_ioctl =3D compat_ptr_ioctl, .mmap =3D vfio_device_fops_mmap, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f46.google.com (mail-io1-f46.google.com [209.85.166.46]) (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 5EF751F20C5 for ; Thu, 11 Apr 2024 15:42:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850135; cv=none; b=pdcS5snznZjI1iHp82i6Z05U21eX1rvRe01LxmYc8ZP9UbVmXgo0ELpInrhoUo5PsbFWN3T6YRZGwnI3wINOpEWfRv25AMBi5KUHrfZHo5Ni4Ioj4znWzGLhQDyEecACjedXGTRUf9go1wLqnskfpTv8Gyzk+kLf+KmwuC/agWk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850135; c=relaxed/simple; bh=nQ7inigwCM9TZ1BOLv7VZuWOnWx94/e1sqHLK9wqdpE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=mdS13/aP2IuhRNVR5I1RkJzPSasorb7k0sl5BC8sgUw846Xo+B2UuzQYivB46M4N1VRHyAwuy6c9RNrjhWgYGsl9SOd5hTdCaxV0mCC7b+Vt805/NlytmOP6k89vYOuLjKDXlpeKgz+twjUglOTzcKxKB8aME6w2N/XUZiTRkxQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=N7N1ZU+u; arc=none smtp.client-ip=209.85.166.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="N7N1ZU+u" Received: by mail-io1-f46.google.com with SMTP id ca18e2360f4ac-7d6112ba6baso58255039f.1 for ; Thu, 11 Apr 2024 08:42:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850132; x=1713454932; 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=PwtpRuvpd0enzm9gHDySDTRg9gYqaPKn4brSPhQiTgI=; b=N7N1ZU+uibrP3oDC/Vvp3xcyHh94iGPHP2GvhNpN7KMtWNfWmTwTw0KUo43RaLw+I0 9CrAPQu7H0yVkjpgGNqwJbZjLlioblNzTcqvfCOy0yC0kOcLP/rih79Jcfon/7/hp83q eeyEHVhKdSPr7qAuzjxHqe16/GsdCo/hA2UJtwBr3+ScCSeGpvu2tS+j3jqfogvLbwOQ c0wYuPmxz6ooGu+cQc4V/NApdjPhnIfBdIyzRUFTG9DxSl23N1yAKarOQEYIoy425nY0 4wZne75MO5F4kZOzG8A93tP24jy0U5qHHCoP6QQNSXLY57mlcjn8TuXPn60hGUA0WVDK yNUg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850132; x=1713454932; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=PwtpRuvpd0enzm9gHDySDTRg9gYqaPKn4brSPhQiTgI=; b=ETSP1SV3QwQdaOdOx86DDNEW3Pl6oPKSWAcmJwtlTnFiyYWg/jhCDcTzZdSaMCrFHb MkX1mHWCrvO98cNAft1baRRd5XEN5VkHtHcWKuGA0ax7XnwMOhWVoE1gNmUZHB1jmhzI +tozDx1V1nrHVZfSFAtvGeuSf9ZivZW0ug8zhArhWzYqwOdLj7LqjlnltOkv/GbnpQVl oKP9pnd1SXO14SzINSGHubn0oW/Kmw9/fmL0L5efMuYQdRzb6SE1zbIDll35w1G1k1fA lOcWB7DpZTZdkyYZEgGov82mHCTDLMjv2vju6C/gYH+UawRAMaXRmR1pkL7zxImKJRau ZJ+w== X-Gm-Message-State: AOJu0YwdI9uGsqN9Vc2zxD9JH7bhpsPr9hdTsLjMVliHdJuld7L6J2HJ kDRiCrnNen6jjJPF7GFRqtFjliyo29XUh21ECXGtdLjE4iflDdtBEBJi93tKdnEmq9/u/A8msek + X-Google-Smtp-Source: AGHT+IFTSOW/N+rzPD6opOm9bo8lu3i0TGoy8muj9Nl2w/4PU6p+8wqLnlnMp1J9/OCtj4nQly+Q3Q== X-Received: by 2002:a6b:f312:0:b0:7d5:de23:13a9 with SMTP id m18-20020a6bf312000000b007d5de2313a9mr177917ioh.1.1712850131930; Thu, 11 Apr 2024 08:42:11 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.42.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:42:11 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 376/437] drivers/fsi: convert to read/write iterators Date: Thu, 11 Apr 2024 09:18:36 -0600 Message-ID: <20240411153126.16201-377-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/fsi/fsi-core.c | 28 ++++++++++++++-------------- drivers/fsi/fsi-occ.c | 20 ++++++++++---------- drivers/fsi/fsi-sbefifo.c | 6 ++++-- drivers/fsi/fsi-scom.c | 24 ++++++++++++------------ drivers/fsi/i2cr-scom.c | 23 ++++++++++++----------- 5 files changed, 52 insertions(+), 49 deletions(-) diff --git a/drivers/fsi/fsi-core.c b/drivers/fsi/fsi-core.c index 097d5a780264..ce68c470d30e 100644 --- a/drivers/fsi/fsi-core.c +++ b/drivers/fsi/fsi-core.c @@ -657,12 +657,12 @@ static struct device_node *fsi_slave_find_of_node(str= uct fsi_master *master, return NULL; } =20 -static ssize_t cfam_read(struct file *filep, char __user *buf, size_t coun= t, - loff_t *offset) +static ssize_t cfam_read(struct kiocb *iocb, struct iov_iter *to) { - struct fsi_slave *slave =3D filep->private_data; + struct fsi_slave *slave =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(to); size_t total_len, read_len; - loff_t off =3D *offset; + loff_t off =3D iocb->ki_pos; ssize_t rc; =20 if (off < 0) @@ -680,7 +680,7 @@ static ssize_t cfam_read(struct file *filep, char __use= r *buf, size_t count, rc =3D fsi_slave_read(slave, off, &data, read_len); if (rc) goto fail; - rc =3D copy_to_user(buf + total_len, &data, read_len); + rc =3D !copy_to_iter_full(&data, read_len, to); if (rc) { rc =3D -EFAULT; goto fail; @@ -689,16 +689,16 @@ static ssize_t cfam_read(struct file *filep, char __u= ser *buf, size_t count, } rc =3D count; fail: - *offset =3D off; + iocb->ki_pos =3D off; return rc; } =20 -static ssize_t cfam_write(struct file *filep, const char __user *buf, - size_t count, loff_t *offset) +static ssize_t cfam_write(struct kiocb *iocb, struct iov_iter *from) { - struct fsi_slave *slave =3D filep->private_data; + struct fsi_slave *slave =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); size_t total_len, write_len; - loff_t off =3D *offset; + loff_t off =3D iocb->ki_pos; ssize_t rc; =20 =20 @@ -714,7 +714,7 @@ static ssize_t cfam_write(struct file *filep, const cha= r __user *buf, write_len =3D min_t(size_t, count, 4); write_len -=3D off & 0x3; =20 - rc =3D copy_from_user(&data, buf + total_len, write_len); + rc =3D !copy_from_iter_full(&data, write_len, from); if (rc) { rc =3D -EFAULT; goto fail; @@ -726,7 +726,7 @@ static ssize_t cfam_write(struct file *filep, const cha= r __user *buf, } rc =3D count; fail: - *offset =3D off; + iocb->ki_pos =3D off; return rc; } =20 @@ -758,8 +758,8 @@ static const struct file_operations cfam_fops =3D { .owner =3D THIS_MODULE, .open =3D cfam_open, .llseek =3D cfam_llseek, - .read =3D cfam_read, - .write =3D cfam_write, + .read_iter =3D cfam_read, + .write_iter =3D cfam_write, }; =20 static ssize_t send_term_store(struct device *dev, diff --git a/drivers/fsi/fsi-occ.c b/drivers/fsi/fsi-occ.c index da35ca9e84a6..1145df7dbec8 100644 --- a/drivers/fsi/fsi-occ.c +++ b/drivers/fsi/fsi-occ.c @@ -104,10 +104,10 @@ static int occ_open(struct inode *inode, struct file = *file) return 0; } =20 -static ssize_t occ_read(struct file *file, char __user *buf, size_t len, - loff_t *offset) +static ssize_t occ_read(struct kiocb *iocb, struct iov_iter *to) { - struct occ_client *client =3D file->private_data; + struct occ_client *client =3D iocb->ki_filp->private_data; + size_t len =3D iov_iter_count(to); ssize_t rc =3D 0; =20 if (!client) @@ -126,7 +126,7 @@ static ssize_t occ_read(struct file *file, char __user = *buf, size_t len, =20 /* Grab how much data we have to read */ rc =3D min(len, client->data_size - client->read_offset); - if (copy_to_user(buf, client->buffer + client->read_offset, rc)) + if (!copy_to_iter_full(client->buffer + client->read_offset, rc, to)) rc =3D -EFAULT; else client->read_offset +=3D rc; @@ -137,10 +137,10 @@ static ssize_t occ_read(struct file *file, char __use= r *buf, size_t len, return rc; } =20 -static ssize_t occ_write(struct file *file, const char __user *buf, - size_t len, loff_t *offset) +static ssize_t occ_write(struct kiocb *iocb, struct iov_iter *from) { - struct occ_client *client =3D file->private_data; + struct occ_client *client =3D iocb->ki_filp->private_data; + size_t len =3D iov_iter_count(from); size_t rlen, data_length; ssize_t rc; u8 *cmd; @@ -163,7 +163,7 @@ static ssize_t occ_write(struct file *file, const char = __user *buf, * bytes 1-2: data length (msb first) * bytes 3-n: data */ - if (copy_from_user(&cmd[1], buf, len)) { + if (!copy_from_iter_full(&cmd[1], len, from)) { rc =3D -EFAULT; goto done; } @@ -209,8 +209,8 @@ static int occ_release(struct inode *inode, struct file= *file) static const struct file_operations occ_fops =3D { .owner =3D THIS_MODULE, .open =3D occ_open, - .read =3D occ_read, - .write =3D occ_write, + .read_iter =3D occ_read, + .write_iter =3D occ_write, .release =3D occ_release, }; =20 diff --git a/drivers/fsi/fsi-sbefifo.c b/drivers/fsi/fsi-sbefifo.c index 0a98517f3959..0fe2e4730b4b 100644 --- a/drivers/fsi/fsi-sbefifo.c +++ b/drivers/fsi/fsi-sbefifo.c @@ -864,6 +864,7 @@ static ssize_t sbefifo_user_read(struct file *file, cha= r __user *buf, mutex_unlock(&user->file_lock); return rc; } +FOPS_READ_ITER_HELPER(sbefifo_user_read); =20 static ssize_t sbefifo_user_write(struct file *file, const char __user *bu= f, size_t len, loff_t *offset) @@ -927,6 +928,7 @@ static ssize_t sbefifo_user_write(struct file *file, co= nst char __user *buf, /* And that's it, we'll issue the command on a read */ return rc; } +FOPS_WRITE_ITER_HELPER(sbefifo_user_write); =20 static int sbefifo_user_release(struct inode *inode, struct file *file) { @@ -1004,8 +1006,8 @@ static long sbefifo_user_ioctl(struct file *file, uns= igned int cmd, unsigned lon static const struct file_operations sbefifo_fops =3D { .owner =3D THIS_MODULE, .open =3D sbefifo_user_open, - .read =3D sbefifo_user_read, - .write =3D sbefifo_user_write, + .read_iter =3D sbefifo_user_read_iter, + .write_iter =3D sbefifo_user_write_iter, .release =3D sbefifo_user_release, .unlocked_ioctl =3D sbefifo_user_ioctl, }; diff --git a/drivers/fsi/fsi-scom.c b/drivers/fsi/fsi-scom.c index 61dbda9dbe2b..1e8e5dcdfb39 100644 --- a/drivers/fsi/fsi-scom.c +++ b/drivers/fsi/fsi-scom.c @@ -310,11 +310,11 @@ static int get_scom(struct scom_device *scom, uint64_= t *value, >> SCOM_STATUS_PIB_RESP_SHIFT); } =20 -static ssize_t scom_read(struct file *filep, char __user *buf, size_t len, - loff_t *offset) +static ssize_t scom_read(struct kiocb *iocb, struct iov_iter *to) { - struct scom_device *scom =3D filep->private_data; + struct scom_device *scom =3D iocb->ki_filp->private_data; struct device *dev =3D &scom->fsi_dev->dev; + size_t len =3D iov_iter_count(to); uint64_t val; int rc; =20 @@ -325,32 +325,32 @@ static ssize_t scom_read(struct file *filep, char __u= ser *buf, size_t len, if (scom->dead) rc =3D -ENODEV; else - rc =3D get_scom(scom, &val, *offset); + rc =3D get_scom(scom, &val, iocb->ki_pos); mutex_unlock(&scom->lock); if (rc) { dev_dbg(dev, "get_scom fail:%d\n", rc); return rc; } =20 - rc =3D copy_to_user(buf, &val, len); + rc =3D !copy_to_iter_full(&val, len, to); if (rc) dev_dbg(dev, "copy to user failed:%d\n", rc); =20 return rc ? rc : len; } =20 -static ssize_t scom_write(struct file *filep, const char __user *buf, - size_t len, loff_t *offset) +static ssize_t scom_write(struct kiocb *iocb, struct iov_iter *from) { int rc; - struct scom_device *scom =3D filep->private_data; + struct scom_device *scom =3D iocb->ki_filp->private_data; struct device *dev =3D &scom->fsi_dev->dev; + size_t len =3D iov_iter_count(from); uint64_t val; =20 if (len !=3D sizeof(uint64_t)) return -EINVAL; =20 - rc =3D copy_from_user(&val, buf, len); + rc =3D !copy_from_iter_full(&val, len, from); if (rc) { dev_dbg(dev, "copy from user failed:%d\n", rc); return -EINVAL; @@ -360,7 +360,7 @@ static ssize_t scom_write(struct file *filep, const cha= r __user *buf, if (scom->dead) rc =3D -ENODEV; else - rc =3D put_scom(scom, val, *offset); + rc =3D put_scom(scom, val, iocb->ki_pos); mutex_unlock(&scom->lock); if (rc) { dev_dbg(dev, "put_scom failed with:%d\n", rc); @@ -514,8 +514,8 @@ static const struct file_operations scom_fops =3D { .owner =3D THIS_MODULE, .open =3D scom_open, .llseek =3D scom_llseek, - .read =3D scom_read, - .write =3D scom_write, + .read_iter =3D scom_read, + .write_iter =3D scom_write, .unlocked_ioctl =3D scom_ioctl, }; =20 diff --git a/drivers/fsi/i2cr-scom.c b/drivers/fsi/i2cr-scom.c index cb7e02213032..e4b3a8310775 100644 --- a/drivers/fsi/i2cr-scom.c +++ b/drivers/fsi/i2cr-scom.c @@ -32,41 +32,42 @@ static loff_t i2cr_scom_llseek(struct file *file, loff_= t offset, int whence) return offset; } =20 -static ssize_t i2cr_scom_read(struct file *filep, char __user *buf, size_t= len, loff_t *offset) +static ssize_t i2cr_scom_read(struct kiocb *iocb, struct iov_iter *to) { - struct i2cr_scom *scom =3D filep->private_data; + struct i2cr_scom *scom =3D iocb->ki_filp->private_data; + size_t len =3D iov_iter_count(to); u64 data; int ret; =20 if (len !=3D sizeof(data)) return -EINVAL; =20 - ret =3D fsi_master_i2cr_read(scom->i2cr, (u32)*offset, &data); + ret =3D fsi_master_i2cr_read(scom->i2cr, (u32)iocb->ki_pos, &data); if (ret) return ret; =20 - ret =3D copy_to_user(buf, &data, len); + ret =3D !copy_to_iter_full(&data, len, to); if (ret) return ret; =20 return len; } =20 -static ssize_t i2cr_scom_write(struct file *filep, const char __user *buf,= size_t len, - loff_t *offset) +static ssize_t i2cr_scom_write(struct kiocb *iocb, struct iov_iter *from) { - struct i2cr_scom *scom =3D filep->private_data; + struct i2cr_scom *scom =3D iocb->ki_filp->private_data; + size_t len =3D iov_iter_count(from); u64 data; int ret; =20 if (len !=3D sizeof(data)) return -EINVAL; =20 - ret =3D copy_from_user(&data, buf, len); + ret =3D !copy_from_iter(&data, len, from); if (ret) return ret; =20 - ret =3D fsi_master_i2cr_write(scom->i2cr, (u32)*offset, data); + ret =3D fsi_master_i2cr_write(scom->i2cr, (u32)iocb->ki_pos, data); if (ret) return ret; =20 @@ -77,8 +78,8 @@ static const struct file_operations i2cr_scom_fops =3D { .owner =3D THIS_MODULE, .open =3D simple_open, .llseek =3D i2cr_scom_llseek, - .read =3D i2cr_scom_read, - .write =3D i2cr_scom_write, + .read_iter =3D i2cr_scom_read, + .write_iter =3D i2cr_scom_write, }; =20 static int i2cr_scom_probe(struct device *dev) --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-il1-f171.google.com (mail-il1-f171.google.com [209.85.166.171]) (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 F3E241F20DF for ; Thu, 11 Apr 2024 15:42:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.171 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850136; cv=none; b=DiComsMskmssATXj0O63eIvBKAu2BlqY/AcBdHJwCHzpO5NUcdwY5aGx/z/k9SnTI4xgAxxY59IFlYOKtUzKipcscZH7bzDWdWqmM87sRl5tylgQsbRQY4lIGzCEdU9evlOxvpkxpVGm9UZBKmTir1W8xFWviYCKCwhAFwM/vk8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850136; c=relaxed/simple; bh=Ar6UwW1sI0JVpIKkyb5NfOQbdZzkZA80a7y195tD744=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=TYBX2f3WWRG4V2YxTSwjQs1AAONg76J5CLsOzhdPJME56YJjGsoPH86sv6HOq+5O6vkNf1gmDPMIEPH2rCj7mGmKTGkGmDXXUYshU1Juh0cmea8BbFIf5f0yCo2Iwc6bR1T95Ft1ubcUicDaWkZ6w1JkLvttv35R0YDY4uzMIOg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=bcdqrn73; arc=none smtp.client-ip=209.85.166.171 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="bcdqrn73" Received: by mail-il1-f171.google.com with SMTP id e9e14a558f8ab-36a34b68277so122645ab.0 for ; Thu, 11 Apr 2024 08:42:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850134; x=1713454934; 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=mtW1TbguQ4BBpoGOxUyCCgtBSDCXuHADUDUR5tb5p4Q=; b=bcdqrn73xzDXFG072tfPGI6NDoUCmpFP4eMGvzMZpJhu7OoySOuu6/1x50gOXp0cdC 8nFkcQRRMdjMybvA6PeU5LNI5IqdF4LTEzoAm+RxEp3wbw2dgEaJme/FZjM959rU5NwQ f+PgNvcjuHEbN+FPzd7vQbAr/L/S+bJy71TUdCBKLUnolPisbVxfT4W14aZYzJS+HQci NWd/Yf332gbsbl1SC/Tf0fYMteyTW7KdqPHLe4vOYk51lVMDhF3N0UOZtOND6AV+ZH8R s3NgbRNYB29gIdmIBLdWbQ6n3yEkxBYjt+Ykrlg6hpoFYSkaxZBbYLENrB+6BNuH+2Xz uBrA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850134; x=1713454934; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=mtW1TbguQ4BBpoGOxUyCCgtBSDCXuHADUDUR5tb5p4Q=; b=wZMA2MKu7foCRfqoLCXpbjRixjJ58eE5R98KHQMcUj6MoLiuBTBmOLffYCKQZicIQO 7KA6EsdNsG4OOijtvRfQbfwQuUvfu+tKO0h79nKBaVQA1E/gXCnTPJw+2bVXGjcAakj2 iZaw6W69Duyi0CSGuUwXtrTZzr3ovbEXbkfBNCO3bt+EhPmTApCipAplJC+ae+thn7QP tChB3GzYqsiHjOIQ1U5EPmHTvtOFH4aXVF/7szy+0UPhDmZFSxdVNUb5898eH609mDL+ Fjw0jCiwN3ev12/GPZPqKPDhjbM9lUMLlbFbciCH7RlS8YB7ZARXlKM0RIkfUqScfjDu 1EJQ== X-Gm-Message-State: AOJu0YzB1yjHgwEmnlxJiTpOWgfjDOHgwHdRXjjcGVJjE9Fz0VbnUpHZ X9TGQgBMydFfswoQzU9Mb3JzksLcNvFbnvndr5eBxG7ETZr91WVq24sOP6EGqRIAFam0Rg+oQAV r X-Google-Smtp-Source: AGHT+IHDJUru5g6Yz5MjJ5gVEFZU+4ZCtQCsR7AQka0AOa2Eyg+c6hayQT2/qcoivgz2t+QKIVIJPg== X-Received: by 2002:a05:6602:4ed7:b0:7d5:ddc8:504d with SMTP id gk23-20020a0566024ed700b007d5ddc8504dmr202532iob.0.1712850133867; Thu, 11 Apr 2024 08:42:13 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.42.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:42:12 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 377/437] iio: convert to read/write iterators Date: Thu, 11 Apr 2024 09:18:37 -0600 Message-ID: <20240411153126.16201-378-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/iio/iio_core.h | 7 +++---- drivers/iio/industrialio-buffer.c | 20 +++++++++--------- drivers/iio/industrialio-core.c | 34 +++++++++++++++---------------- drivers/iio/industrialio-event.c | 3 ++- 4 files changed, 31 insertions(+), 33 deletions(-) diff --git a/drivers/iio/iio_core.h b/drivers/iio/iio_core.h index 1a38b1915e7a..8aac545ec4d0 100644 --- a/drivers/iio/iio_core.h +++ b/drivers/iio/iio_core.h @@ -11,6 +11,7 @@ #define _IIO_CORE_H_ #include #include +#include =20 struct iio_buffer; struct iio_chan_spec; @@ -63,10 +64,8 @@ struct poll_table_struct; =20 __poll_t iio_buffer_poll_wrapper(struct file *filp, struct poll_table_struct *wait); -ssize_t iio_buffer_read_wrapper(struct file *filp, char __user *buf, - size_t n, loff_t *f_ps); -ssize_t iio_buffer_write_wrapper(struct file *filp, const char __user *buf, - size_t n, loff_t *f_ps); +ssize_t iio_buffer_read_wrapper( struct kiocb *iocb, struct iov_iter *to); +ssize_t iio_buffer_write_wrapper( struct kiocb *iocb, struct iov_iter *fro= m); =20 int iio_buffers_alloc_sysfs_and_mask(struct iio_dev *indio_dev); void iio_buffers_free_sysfs_and_mask(struct iio_dev *indio_dev); diff --git a/drivers/iio/industrialio-buffer.c b/drivers/iio/industrialio-b= uffer.c index b581a7e80566..38a75f88adf6 100644 --- a/drivers/iio/industrialio-buffer.c +++ b/drivers/iio/industrialio-buffer.c @@ -163,6 +163,7 @@ static ssize_t iio_buffer_read(struct file *filp, char = __user *buf, =20 return ret; } +FOPS_READ_ITER_HELPER(iio_buffer_read); =20 static size_t iio_buffer_space_available(struct iio_buffer *buf) { @@ -225,6 +226,7 @@ static ssize_t iio_buffer_write(struct file *filp, cons= t char __user *buf, =20 return ret < 0 ? ret : written; } +FOPS_WRITE_ITER_HELPER(iio_buffer_write); =20 /** * iio_buffer_poll() - poll the buffer to find out if it has data @@ -261,30 +263,28 @@ static __poll_t iio_buffer_poll(struct file *filp, return 0; } =20 -ssize_t iio_buffer_read_wrapper(struct file *filp, char __user *buf, - size_t n, loff_t *f_ps) +ssize_t iio_buffer_read_wrapper(struct kiocb *iocb, struct iov_iter *to) { - struct iio_dev_buffer_pair *ib =3D filp->private_data; + struct iio_dev_buffer_pair *ib =3D iocb->ki_filp->private_data; struct iio_buffer *rb =3D ib->buffer; =20 /* check if buffer was opened through new API */ if (test_bit(IIO_BUSY_BIT_POS, &rb->flags)) return -EBUSY; =20 - return iio_buffer_read(filp, buf, n, f_ps); + return vfs_read_iter(iocb, to, iio_buffer_read); } =20 -ssize_t iio_buffer_write_wrapper(struct file *filp, const char __user *buf, - size_t n, loff_t *f_ps) +ssize_t iio_buffer_write_wrapper(struct kiocb *iocb, struct iov_iter *from) { - struct iio_dev_buffer_pair *ib =3D filp->private_data; + struct iio_dev_buffer_pair *ib =3D iocb->ki_filp->private_data; struct iio_buffer *rb =3D ib->buffer; =20 /* check if buffer was opened through new API */ if (test_bit(IIO_BUSY_BIT_POS, &rb->flags)) return -EBUSY; =20 - return iio_buffer_write(filp, buf, n, f_ps); + return vfs_write_iter(iocb, from, iio_buffer_write); } =20 __poll_t iio_buffer_poll_wrapper(struct file *filp, @@ -1537,8 +1537,8 @@ static int iio_buffer_chrdev_release(struct inode *in= ode, struct file *filep) static const struct file_operations iio_buffer_chrdev_fileops =3D { .owner =3D THIS_MODULE, .llseek =3D noop_llseek, - .read =3D iio_buffer_read, - .write =3D iio_buffer_write, + .read_iter =3D iio_buffer_read_iter, + .write_iter =3D iio_buffer_write_iter, .poll =3D iio_buffer_poll, .release =3D iio_buffer_chrdev_release, }; diff --git a/drivers/iio/industrialio-core.c b/drivers/iio/industrialio-cor= e.c index 4302093b92c7..6bf6818e505c 100644 --- a/drivers/iio/industrialio-core.c +++ b/drivers/iio/industrialio-core.c @@ -369,18 +369,17 @@ static void __exit iio_exit(void) } =20 #if defined(CONFIG_DEBUG_FS) -static ssize_t iio_debugfs_read_reg(struct file *file, char __user *userbu= f, - size_t count, loff_t *ppos) +static ssize_t iio_debugfs_read_reg(struct kiocb *iocb, struct iov_iter *t= o) { - struct iio_dev *indio_dev =3D file->private_data; + struct iio_dev *indio_dev =3D iocb->ki_filp->private_data; struct iio_dev_opaque *iio_dev_opaque =3D to_iio_dev_opaque(indio_dev); unsigned int val =3D 0; int ret; =20 - if (*ppos > 0) - return simple_read_from_buffer(userbuf, count, ppos, - iio_dev_opaque->read_buf, - iio_dev_opaque->read_buf_len); + if (iocb->ki_pos > 0) + return simple_copy_to_iter(iio_dev_opaque->read_buf, + &iocb->ki_pos, + iio_dev_opaque->read_buf_len, to); =20 ret =3D indio_dev->info->debugfs_reg_access(indio_dev, iio_dev_opaque->cached_reg_addr, @@ -394,22 +393,21 @@ static ssize_t iio_debugfs_read_reg(struct file *file= , char __user *userbuf, sizeof(iio_dev_opaque->read_buf), "0x%X\n", val); =20 - return simple_read_from_buffer(userbuf, count, ppos, - iio_dev_opaque->read_buf, - iio_dev_opaque->read_buf_len); + return simple_copy_to_iter(iio_dev_opaque->read_buf, &iocb->ki_pos, + iio_dev_opaque->read_buf_len, to); } =20 -static ssize_t iio_debugfs_write_reg(struct file *file, - const char __user *userbuf, size_t count, loff_t *ppos) +static ssize_t iio_debugfs_write_reg(struct kiocb *iocb, struct iov_iter *= from) { - struct iio_dev *indio_dev =3D file->private_data; + struct iio_dev *indio_dev =3D iocb->ki_filp->private_data; struct iio_dev_opaque *iio_dev_opaque =3D to_iio_dev_opaque(indio_dev); + size_t count =3D iov_iter_count(from); unsigned int reg, val; char buf[80]; int ret; =20 count =3D min(count, sizeof(buf) - 1); - if (copy_from_user(buf, userbuf, count)) + if (!copy_from_iter_full(buf, count, from)) return -EFAULT; =20 buf[count] =3D 0; @@ -439,8 +437,8 @@ static ssize_t iio_debugfs_write_reg(struct file *file, =20 static const struct file_operations iio_debugfs_reg_fops =3D { .open =3D simple_open, - .read =3D iio_debugfs_read_reg, - .write =3D iio_debugfs_write_reg, + .read_iter =3D iio_debugfs_read_reg, + .write_iter =3D iio_debugfs_write_reg, }; =20 static void iio_device_unregister_debugfs(struct iio_dev *indio_dev) @@ -1839,8 +1837,8 @@ static long iio_ioctl(struct file *filp, unsigned int= cmd, unsigned long arg) static const struct file_operations iio_buffer_fileops =3D { .owner =3D THIS_MODULE, .llseek =3D noop_llseek, - .read =3D iio_buffer_read_outer_addr, - .write =3D iio_buffer_write_outer_addr, + .read_iter =3D iio_buffer_read_outer_addr, + .write_iter =3D iio_buffer_write_outer_addr, .poll =3D iio_buffer_poll_addr, .unlocked_ioctl =3D iio_ioctl, .compat_ioctl =3D compat_ptr_ioctl, diff --git a/drivers/iio/industrialio-event.c b/drivers/iio/industrialio-ev= ent.c index 910c1f14abd5..b6ce1ac1d1ca 100644 --- a/drivers/iio/industrialio-event.c +++ b/drivers/iio/industrialio-event.c @@ -167,6 +167,7 @@ static ssize_t iio_event_chrdev_read(struct file *filep, =20 return copied; } +FOPS_READ_ITER_HELPER(iio_event_chrdev_read); =20 static int iio_event_chrdev_release(struct inode *inode, struct file *file= p) { @@ -182,7 +183,7 @@ static int iio_event_chrdev_release(struct inode *inode= , struct file *filep) } =20 static const struct file_operations iio_event_chrdev_fileops =3D { - .read =3D iio_event_chrdev_read, + .read_iter =3D iio_event_chrdev_read_iter, .poll =3D iio_event_poll, .release =3D iio_event_chrdev_release, .owner =3D THIS_MODULE, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f42.google.com (mail-io1-f42.google.com [209.85.166.42]) (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 DCC741F2DE0 for ; Thu, 11 Apr 2024 15:42:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850138; cv=none; b=r3pU1uNqEK5gDplLnEO3/f5PJoCjq8lwOzuuDl8kuTJgfHNswpJgOWHAboghNILnwyW56BHYCjkLTShQtihyJCBZbtfoqlDODUlc/5ihVY6sUbIE7AroGvDEXLGjD4EISdpBEPLI3U/lIZAHaBbPRDj56fy4OMpdGrayiH4wuRQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850138; c=relaxed/simple; bh=SbAU/FwVbtOHDDcY5lL7CWcvQ3CkPESZCrnOaalHhak=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=aQ2dcEy9TlrW7JlhYUzcgHA7JzGAvW9AzlVTuh/rd10396jVHkLGk5f/2SsWRk/kurU7hUCPga/d/05NN8je6SP+fyb+Hdgad0lHc5oI8wPW4A9ZbWH645UVBTwQEx/oQAvcrW7cT9rzAKk1J10AirYLnyETnu5PQtJ/tSK2HoA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=sELHvVYi; arc=none smtp.client-ip=209.85.166.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="sELHvVYi" Received: by mail-io1-f42.google.com with SMTP id ca18e2360f4ac-7d6112ba6baso58256439f.1 for ; Thu, 11 Apr 2024 08:42:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850136; x=1713454936; 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=rCxICJZlmBvpED/2sMV/O0eu+9mJQyptygEH/vLZNS8=; b=sELHvVYi64OjU/nNiNiwzvfOWY8fufsWzgTpi5K0xeMBPshspQqMlg90L99uYLdhgo 9C2BhBOaP+TxeWPvInS/Ok+63UU8JUe/z8+Dxcfn0SKzbwenlWOsNSDiyDDHLzPa5ClH wQjBHMmSuDko018TPgyEUzsO3OqJ1tBZ70kMPwJGxH2ON991dwzKMB0buRSpsuaE230a sfi8CXLsoANzLXSTR8LmM8fZ0J8KguR5iBIW9q3VOFRljKHNjXdRJWAyqs29+XwCMU7i btSVdh2LH4To+55keKo16v7dYNuDbsYXf5gLE/3IgWnKv4x3XmOLNJL2uEOoHoDBojfv ZZMw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850136; x=1713454936; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=rCxICJZlmBvpED/2sMV/O0eu+9mJQyptygEH/vLZNS8=; b=RwItd7LLSCkY2WPB71eWM4UO3oCIrYZUInODHHOh14c8gPKK+h73475TV7EhQU0tuv +p/iOlhkxRrg9HfVTA16T4fCFGX4EFDWsl7SF6ErqWYAlxLmS2IEJ6KMpeRKE+1Bnh3A iI2BlV9358E16kiABy0LSW/LTfF9G1Ho1dvUnZBZm0sXd+pfu9bY+KpUKsP+DlmZNS9Q qOdoyWM4aLLpu/2798c3JLPwPwgwgD6c5pmSFLODILsBPcK4cBRV1rr1PDrnoHMsW+2h KGvXb2ZPjcGhuSy0XAUEmYdY4COgGdmSSDjW5IfSndVqaJyPlgIovsYHMg9H8exA9BCV YTPQ== X-Gm-Message-State: AOJu0YyMFh2/6FZuM/IAV9EF+AN8Nlu/tNgFOR+0J1MkbJE2nT9TKbQ4 es2N38mgFkdTNuzRbultmQzx6MoF3YAd/hK2HSmg7uDzFTsFrUWEzdDdXhy0RkfMqscIr0D+tWi P X-Google-Smtp-Source: AGHT+IG5VLDXR1UqBBBi/B+QI7Jj6SgvSLtOtaeaYAXyF2ao8+nobH4KuSYSJbmSRyKO1fwXk6YRPg== X-Received: by 2002:a05:6602:38d:b0:7d6:513b:254 with SMTP id f13-20020a056602038d00b007d6513b0254mr203728iov.2.1712850135768; Thu, 11 Apr 2024 08:42:15 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.42.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:42:14 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 378/437] iio: adis16400: convert to read/write iterators Date: Thu, 11 Apr 2024 09:18:38 -0600 Message-ID: <20240411153126.16201-379-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/iio/imu/adis16400.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/iio/imu/adis16400.c b/drivers/iio/imu/adis16400.c index 3eda32e12a53..78182bc33bac 100644 --- a/drivers/iio/imu/adis16400.c +++ b/drivers/iio/imu/adis16400.c @@ -204,10 +204,10 @@ enum { =20 #ifdef CONFIG_DEBUG_FS =20 -static ssize_t adis16400_show_serial_number(struct file *file, - char __user *userbuf, size_t count, loff_t *ppos) +static ssize_t adis16400_show_serial_number(struct kiocb *iocb, + struct iov_iter *to) { - struct adis16400_state *st =3D file->private_data; + struct adis16400_state *st =3D iocb->ki_filp->private_data; u16 lot1, lot2, serial_number; char buf[16]; size_t len; @@ -229,12 +229,12 @@ static ssize_t adis16400_show_serial_number(struct fi= le *file, len =3D snprintf(buf, sizeof(buf), "%.4x-%.4x-%.4x\n", lot1, lot2, serial_number); =20 - return simple_read_from_buffer(userbuf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 static const struct file_operations adis16400_serial_number_fops =3D { .open =3D simple_open, - .read =3D adis16400_show_serial_number, + .read_iter =3D adis16400_show_serial_number, .llseek =3D default_llseek, .owner =3D THIS_MODULE, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f44.google.com (mail-io1-f44.google.com [209.85.166.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 ED2B01F2E0B for ; Thu, 11 Apr 2024 15:42:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850140; cv=none; b=eehAMxBf9TP4jjDsHCMWeFF9ErH1gVrFr7/nD4qxmR7O4tQ0zhYQvlfpM4GbVS7iTBKpeTVcgq9lLBWPY3wAnKfaHD7x8gstzT/CMj0CiOIKfCNY6xT+KgKecielbjE08Ww1WbWIdcAM7PiQdoNPueLqe7qZ/xRuNLHGdjrg/6g= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850140; c=relaxed/simple; bh=VAZcZZkqXcPqNUdJnrc1dlWwxxtcIQqMO3emXrr71EY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=acS60gANPn3gNcmEwuLe4bsQfrnueAK8myvt5nTpY9lPCS4LXyMZZ5SdBK9k5D0ZY7R3lMnB0grKXztgpMJwRpi0y2V2O2k6LB4nUJsmjqlFPFd3vzByFSQC6f9m4BcU/yQ9zlmNOfyqLqk7g66OCOtqASc6ItD1HteakYb93uc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=wQ3sLEZY; arc=none smtp.client-ip=209.85.166.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="wQ3sLEZY" Received: by mail-io1-f44.google.com with SMTP id ca18e2360f4ac-7d6112ba6baso58258339f.1 for ; Thu, 11 Apr 2024 08:42:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850138; x=1713454938; 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=VyIc0suwaFMIabZjrKP7+0E0ode+kl0xVnkWWjt4uyc=; b=wQ3sLEZYnURsRgKzhLSfND/qlKYA1C6OKS3fDp8f1n+hNOP4Fd8ZmNmyAqAMngSZlt j1waNSO8FuO5n7rfaInAw7LLMulX/BJBWQYPNa1htejQ1KoNdWqvr6nmTobGL7X3q6vk eOFolyS6skztyeCZqSq7EkGewg62lrY+HAlv3n74LdqkGa8aCwHEhRDUI+MjN9gCjGe9 DoTdhxXklgGZFPNWOEismGTApBcrqw3mXXyBFsK7bwqpFEYu7Q+jyYu3alT/hsw11bfV e8lFQVoXwrlNbvU7x9l+vtXLNbExhnc+ru4JwJCvdizob0DfXEIsaETyKy0JuZtT/oJN XkpA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850138; x=1713454938; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=VyIc0suwaFMIabZjrKP7+0E0ode+kl0xVnkWWjt4uyc=; b=EbzAoaO+6K03PnfTxnf3aQxC1UEWlqEaD0UXhgFmZ+f5CI3WBkACAhhDCbR0pJMv7f eT+18TugEJ0BD/M1J7m/foyUi0g7JUHxDOTYECyAgR391Se/EYCntA1v4Xirv3hW8NuH vPVv71qsWzRc4jhN02bpClnHrNEHCTFfsi1/8Ur20fI47mkxhzCb7+v1RHYlM6ZQ8Bm4 kTK9ge1157KUluuT+2/KsIFKIBmk/AgHmYCsyo4AvY5/JgtcICVs3TFB8B8ljTKuqKLg oAZ+yxtgD6ppWE38OYLw4rIROnOLXtdCF8cPhV8kAubMA3u8CfCJzfeZHOPB+5OQ5b4C AtuQ== X-Gm-Message-State: AOJu0YynUwYo0ZI05Q5msp5rA3d54WZa6Ui2fAHHKHvUaThWM3uWNKf0 fBY29TdJgoFoV11slxvxU70KcLrlrpIiljKqDL48eQo61aQ0GiNpgDrU7shKHmgXAvNoMziX2tw 3 X-Google-Smtp-Source: AGHT+IFe8TUS+zD1mhhbXbRnwz3uhtMtSpFvvT7d/8+OmsHy9Xq9e4fYGHW0a8pdK0g1HJBzoX1uzA== X-Received: by 2002:a05:6602:38d:b0:7d6:513b:254 with SMTP id f13-20020a056602038d00b007d6513b0254mr203816iov.2.1712850137837; Thu, 11 Apr 2024 08:42:17 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.42.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:42:16 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 379/437] iio: adis16475: convert to read/write iterators Date: Thu, 11 Apr 2024 09:18:39 -0600 Message-ID: <20240411153126.16201-380-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/iio/imu/adis16475.c | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/drivers/iio/imu/adis16475.c b/drivers/iio/imu/adis16475.c index 01f55cc902fa..6772ca783e9d 100644 --- a/drivers/iio/imu/adis16475.c +++ b/drivers/iio/imu/adis16475.c @@ -142,11 +142,10 @@ MODULE_PARM_DESC(low_rate_allow, "Allow IMU rates below the minimum advisable when external clk is used = in SCALED mode (default: N)"); =20 #ifdef CONFIG_DEBUG_FS -static ssize_t adis16475_show_firmware_revision(struct file *file, - char __user *userbuf, - size_t count, loff_t *ppos) +static ssize_t adis16475_show_firmware_revision(struct kiocb *iocb, + struct iov_iter *to) { - struct adis16475 *st =3D file->private_data; + struct adis16475 *st =3D iocb->ki_filp->private_data; char buf[7]; size_t len; u16 rev; @@ -158,21 +157,20 @@ static ssize_t adis16475_show_firmware_revision(struc= t file *file, =20 len =3D scnprintf(buf, sizeof(buf), "%x.%x\n", rev >> 8, rev & 0xff); =20 - return simple_read_from_buffer(userbuf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 static const struct file_operations adis16475_firmware_revision_fops =3D { .open =3D simple_open, - .read =3D adis16475_show_firmware_revision, + .read_iter =3D adis16475_show_firmware_revision, .llseek =3D default_llseek, .owner =3D THIS_MODULE, }; =20 -static ssize_t adis16475_show_firmware_date(struct file *file, - char __user *userbuf, - size_t count, loff_t *ppos) +static ssize_t adis16475_show_firmware_date(struct kiocb *iocb, + struct iov_iter *to) { - struct adis16475 *st =3D file->private_data; + struct adis16475 *st =3D iocb->ki_filp->private_data; u16 md, year; char buf[12]; size_t len; @@ -189,12 +187,12 @@ static ssize_t adis16475_show_firmware_date(struct fi= le *file, len =3D snprintf(buf, sizeof(buf), "%.2x-%.2x-%.4x\n", md >> 8, md & 0xff, year); =20 - return simple_read_from_buffer(userbuf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 static const struct file_operations adis16475_firmware_date_fops =3D { .open =3D simple_open, - .read =3D adis16475_show_firmware_date, + .read_iter =3D adis16475_show_firmware_date, .llseek =3D default_llseek, .owner =3D THIS_MODULE, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f44.google.com (mail-io1-f44.google.com [209.85.166.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 A4FA41F39F4 for ; Thu, 11 Apr 2024 15:42:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850142; cv=none; b=R0YNtWZmLEr+83VRAUmBIlVWe2KkNLHhf/JcjRRoIcJ4CavWvJXoZn9Dr5quRuq921h4u2hkSrkOVIvhZwlY3ScJirg/FZjTmkVjpFDhN/CCwUIdfifqdnLKHKq5gRcezcI/pLqtmT73hixQyNU61kviFiOIgaLzOcRQ+97sWVY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850142; c=relaxed/simple; bh=PufdMhA0v/c5yadV0ywGKInA5O7Icay3BUWBf9vkM4o=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=l9yE0kEPW9/w2R/WfazfL+5ahtUVfGUFYCgp/wBE24HZiueYhEsPePop6e1rjG95QBWI+7lQSUrqlmen4M2DT/RS0ejW9fT1PVKbgiHOU/dyG153wby5VYxeAhHUUc1nNyqvHsOGKkhlEDr9RJikeyzQlZ06kj0SihbWn6fTiFo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=Xu+xAy7b; arc=none smtp.client-ip=209.85.166.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="Xu+xAy7b" Received: by mail-io1-f44.google.com with SMTP id ca18e2360f4ac-7cc0e831e11so170646339f.1 for ; Thu, 11 Apr 2024 08:42:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850139; x=1713454939; 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=6Y+/EjmopQWRiX2vp/UgsPsoCUKkjRpEhi1WN9QSBwI=; b=Xu+xAy7bcWWQLbe5aQ0Ug3bBwA8ZHniwlNS6VE34xesV1qHt8Xl/jAQyrUXhzBHJsU N/Q3NPO4O+sMYX9huoedW7e9baGUSE+hLWz9/aeprlq5SzPJ0opsAcHGfi7ZmkQjhckE 4c+t2WadX6HqbuvmNvV+6SOLIWbJtNw7j0WSc+eDuFlKs0NHWcAI6RlVkSSpue2Xzo5t 6RDwLAgnmI5NuDP8ZQdYe2ZacQYBO+PpzmLjCRz6NQpmF5JuDmIDeEvCa8m4W+syiuT3 DLZ6IIj5WHtI8AQNLgVdBENIH8sGgHikd9M0Xa0LEbtV5A/balQjz6Vvp2AyWkMB8OA1 d9yA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850139; x=1713454939; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=6Y+/EjmopQWRiX2vp/UgsPsoCUKkjRpEhi1WN9QSBwI=; b=JhPT6YMtUJdsgyf7dW9WfpQfQX+ag5MCVioXNCxiwP3Vy+kp2+jcsqrJ5dv/dHUFcf Kgu59PjzhgFQjqIY5o+0YgMsyPRqCoVdQMRHgqpSaKutyqTvzRNw7niizsbSZJrNopLU Ls8I/JJeVKTRtHT0DoUpYNZKTsE66f61mQEEppEypslQS6aigVR27W5Uvm3u9mGoHBBx f51JGq7FmKhoKW8mlTlfxgRjSVN2jR1qKSaAyQJVHySeImuKmMYC6oVgQTShP9kTiHHh 6/rUuuWa4uQvfxFEieui/QlpIKo815wqyRTFGDQb9ejFE+aNGmcgQ2vOLBUayqlEvE6l P0Dw== X-Gm-Message-State: AOJu0YxcIFJpXpt/57tUfP7pvPIpzC7NVxgyZTMcWKytaIgBspY2A5xQ IvfD6zq03qBvr4OHM7JyhcWoFcWgjVaYJ6bs/W8LiZwKps7/mF/EWKfI3aghw3FDn26odPjNeI1 D X-Google-Smtp-Source: AGHT+IHHlG/ZIop658cPJj++SLhCzguoTo5TOF5edsCc4qffVoDNnH+31CWOP31vCQT11E9H97MTyQ== X-Received: by 2002:a92:2912:0:b0:36a:f9aa:5757 with SMTP id l18-20020a922912000000b0036af9aa5757mr3599016ilg.2.1712850139449; Thu, 11 Apr 2024 08:42:19 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.42.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:42:18 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 380/437] iio: adis16480: convert to read/write iterators Date: Thu, 11 Apr 2024 09:18:40 -0600 Message-ID: <20240411153126.16201-381-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/iio/imu/adis16480.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/drivers/iio/imu/adis16480.c b/drivers/iio/imu/adis16480.c index b40a55bba30c..2664a187872f 100644 --- a/drivers/iio/imu/adis16480.c +++ b/drivers/iio/imu/adis16480.c @@ -188,10 +188,10 @@ MODULE_PARM_DESC(low_rate_allow, =20 #ifdef CONFIG_DEBUG_FS =20 -static ssize_t adis16480_show_firmware_revision(struct file *file, - char __user *userbuf, size_t count, loff_t *ppos) +static ssize_t adis16480_show_firmware_revision(struct kiocb *iocb, + struct iov_iter *to) { - struct adis16480 *adis16480 =3D file->private_data; + struct adis16480 *adis16480 =3D iocb->ki_filp->private_data; char buf[7]; size_t len; u16 rev; @@ -203,20 +203,20 @@ static ssize_t adis16480_show_firmware_revision(struc= t file *file, =20 len =3D scnprintf(buf, sizeof(buf), "%x.%x\n", rev >> 8, rev & 0xff); =20 - return simple_read_from_buffer(userbuf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 static const struct file_operations adis16480_firmware_revision_fops =3D { .open =3D simple_open, - .read =3D adis16480_show_firmware_revision, + .read_iter =3D adis16480_show_firmware_revision, .llseek =3D default_llseek, .owner =3D THIS_MODULE, }; =20 -static ssize_t adis16480_show_firmware_date(struct file *file, - char __user *userbuf, size_t count, loff_t *ppos) +static ssize_t adis16480_show_firmware_date(struct kiocb *iocb, + struct iov_iter *to) { - struct adis16480 *adis16480 =3D file->private_data; + struct adis16480 *adis16480 =3D iocb->ki_filp->private_data; u16 md, year; char buf[12]; size_t len; @@ -233,12 +233,12 @@ static ssize_t adis16480_show_firmware_date(struct fi= le *file, len =3D snprintf(buf, sizeof(buf), "%.2x-%.2x-%.4x\n", md >> 8, md & 0xff, year); =20 - return simple_read_from_buffer(userbuf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 static const struct file_operations adis16480_firmware_date_fops =3D { .open =3D simple_open, - .read =3D adis16480_show_firmware_date, + .read_iter =3D adis16480_show_firmware_date, .llseek =3D default_llseek, .owner =3D THIS_MODULE, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f43.google.com (mail-io1-f43.google.com [209.85.166.43]) (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 A0D471F39FD for ; Thu, 11 Apr 2024 15:42:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850143; cv=none; b=n9FpiaTOmcEzm5qNIhWLSCUMktJ4KwUD6SF9xy6WhQX8hJadc68LXTNJ+aOCSjmBYonX1DV3fII5JoikgS2rVjVHCOb9vwmPbik0oXbA7DoavkdFKRhqLr+ds1pAbTGPTUEls3Up1TpAUjBXWhZq9qIL/o4IpsltZTNYRDouqPY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850143; c=relaxed/simple; bh=tOLEJwfYjMVxWPttHQjsL6LYe2K9decIhtxo/E4b3BE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=XrnRdb4R1l4mFso5qTpmJLMPIJvvtmzcnANGrVovnpZUKA9sWb46b0f/8Z8F+pcPyCxpOrCgmKo4oVc7e6AhiN68zM594mfEUXQ3RnI0bYsH8i5aDVUItCkeBfw7Lc65Gh8Grf3BGn/67ot+7j7ziMAL6lUi9ZkwNpdO3m5Jx30= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=wQnfcVh4; arc=none smtp.client-ip=209.85.166.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="wQnfcVh4" Received: by mail-io1-f43.google.com with SMTP id ca18e2360f4ac-7c8e4c0412dso69686339f.1 for ; Thu, 11 Apr 2024 08:42:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850141; x=1713454941; 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=ye7/s/l6VBfzrFt6AIC3/rqdymJPLbIjlPiBSwPUgUY=; b=wQnfcVh4xOUMjgVAky0Y6mk8lte7GCfkYg+drSzdY/aVtmFp5iB/7ogbKiPBlS23jK uvXvEz3MIgJRBwEJCGXslpWg1mVudAS9V0QdIUhIrq343jGxNtNSThllbVatoLeoTLmB R/WnCd9Rt8v27Ui7HnwPhSd236j/yweTzr5erv8A0g7Fpdp4oVm0K/qwoYIb3a4i/Ekm RUKmUFJmNdGFHgtFP7B71lUjVpCUjV2qWI02dREsPoqNWhIXqZNlf11eFllwLLch5Xme C0iXTs+l6SHJnOiRLOYiaGcqL5613+Lqsr6LL9QAb+1P/6sI22MhJELVisoialmYgxu4 sBFg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850141; x=1713454941; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ye7/s/l6VBfzrFt6AIC3/rqdymJPLbIjlPiBSwPUgUY=; b=uYtMsCPA1yu+Fp9jp2FKHtWF2l4yMTjQYhH3KP29uAc/LsfiCRHQLXNcCwFjyxo0WZ LwWoueoda5bpa/lQi2c7temJavGGsntV5u+9MXYMPiauhYBX/Yp5vaGwJyuIZqYTIsVY Ik5+wDGzgig3pAQ4zNBVBFWzJ7h2Hvx/WmDbeNfNNNkVWvYkmJUXh3KzFLMv9F3e0I1A NHvq6YE/+PWrehYhQVNrtti8zr3t2kfKpFdr1nYK6XDAfosLPlCfNXjjV5jzCNwXwgEX amtkCkM53H/oVC/H0T7jwRtJIVQFc/e5g5ENx3grLHi151dnTN62N3OfkCjTmnb9pl6I gjvg== X-Gm-Message-State: AOJu0YywkZIRU0TngSsjIl553/tQM/iRp7I0T3Y3+s2doNVOhm1fxGZ6 4c0k6CEl7wq+OhZB7zGTVHmcEwq1JUp+6zBc7IAzjnwuSrYPzYqL1a5slSBsgYdRam+Bi1MTWmz / X-Google-Smtp-Source: AGHT+IFZqQTuYWD0PdITOocs3S7DfocugPp5pCjRxNwk+DSkypfWXLha5cEuHrhLV8tvhZIFRakP/Q== X-Received: by 2002:a6b:7b05:0:b0:7d6:60dc:bc8e with SMTP id l5-20020a6b7b05000000b007d660dcbc8emr209004iop.1.1712850141562; Thu, 11 Apr 2024 08:42:21 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.42.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:42:19 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 381/437] iio: bno055: convert to read/write iterators Date: Thu, 11 Apr 2024 09:18:41 -0600 Message-ID: <20240411153126.16201-382-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/iio/imu/bno055/bno055.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/drivers/iio/imu/bno055/bno055.c b/drivers/iio/imu/bno055/bno05= 5.c index 52744dd98e65..729b42e31757 100644 --- a/drivers/iio/imu/bno055/bno055.c +++ b/drivers/iio/imu/bno055/bno055.c @@ -1269,10 +1269,9 @@ static int bno055_debugfs_reg_access(struct iio_dev = *iio_dev, unsigned int reg, return regmap_write(priv->regmap, reg, writeval); } =20 -static ssize_t bno055_show_fw_version(struct file *file, char __user *user= buf, - size_t count, loff_t *ppos) +static ssize_t bno055_show_fw_version( struct kiocb *iocb, struct iov_iter= *to) { - struct bno055_priv *priv =3D file->private_data; + struct bno055_priv *priv =3D iocb->ki_filp->private_data; int rev, ver; char *buf; int ret; @@ -1289,7 +1288,7 @@ static ssize_t bno055_show_fw_version(struct file *fi= le, char __user *userbuf, if (!buf) return -ENOMEM; =20 - ret =3D simple_read_from_buffer(userbuf, count, ppos, buf, strlen(buf)); + ret =3D simple_copy_to_iter(buf, &iocb->ki_pos, strlen(buf), to); kfree(buf); =20 return ret; @@ -1297,7 +1296,7 @@ static ssize_t bno055_show_fw_version(struct file *fi= le, char __user *userbuf, =20 static const struct file_operations bno055_fw_version_ops =3D { .open =3D simple_open, - .read =3D bno055_show_fw_version, + .read_iter =3D bno055_show_fw_version, .llseek =3D default_llseek, .owner =3D THIS_MODULE, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f51.google.com (mail-io1-f51.google.com [209.85.166.51]) (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 702C91F4663 for ; Thu, 11 Apr 2024 15:42:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850146; cv=none; b=QXD6dAjtRUqQkUkT30tPhoIl0sby+ZRO2LvJU6Yxr9lHr75dZjoVfhD3wSRwxnfhrtfojhnFrGynjyiJPLQCK51HhFrjHtjWxLH7apvsImAf9vMCbn7UChshkF3nwPUTp2Xype1EFM2Mno0d6tFxJTQjTjLlUuDFtHUrRz8o0yM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850146; c=relaxed/simple; bh=IDGb24kMGja+j+TYx75TYQo8/QmrAkf6f7BvaTCpkJc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=RuAXgXleJ81wExqROXJJy/rGXJlr6sHsAf+iFxBuzH3AaVtH7m5EV1+MOrQ8OpWAxMfebfKhWkrmaKOWYKy+uDD3QDQ2R4heQ8pERZy45v6wZ5jP1EuEM4IcjUAUpnjXTH4gkh7D8GDvfVC82IF9bzvb5B9bp63SyYtQ225/0ao= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=ctVuKTKt; arc=none smtp.client-ip=209.85.166.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="ctVuKTKt" Received: by mail-io1-f51.google.com with SMTP id ca18e2360f4ac-7d5ed700c2dso16257439f.0 for ; Thu, 11 Apr 2024 08:42:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850143; x=1713454943; 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=JbYgBuBD3bA17O2i940OxA+oPiB7duhWuBNJGzGmG5Q=; b=ctVuKTKtUZOzIYmwVFjCD9qQssb4/A/S1ij1IPisj0Z0N6t3STGssCuU8RCwSjl/3N ryu75sgbH2FNJenuJBgy67mAdj1KR5+Swp915Y/3Ob2TIjU2opnxnorj/YQ1ZPrFbZo4 Xv5DNDiSTSCFEqixO7IYYJ99ja+8FwdDy1+d4P3sqBEY3LOparCnK/FHCd699J5D7yEW +pfFFhB1zDzuyEMqBpTq2NsoPSYcjq6mvGyrbEs5GB0YhHEMLRnsoEkeGJNzpVyyqfKJ DTKE1vOM8vnEbkhcCEu9NFfqNgC+lMQmQJVKJSuNLVEqiO/zDtgSb52SPa4A5mQib/Td vXZA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850143; x=1713454943; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=JbYgBuBD3bA17O2i940OxA+oPiB7duhWuBNJGzGmG5Q=; b=U2pdQo16+ltnuirp3FGmEfXHobAfGyEGFDp3tFZW4+we207PVZzBN9AdCgdoPpqo1l x2IfNjWfRnMdVBECnvIzhdHos9nJdo7zIctyDX8ySymybBtDo2PAMdO/lRYg8JrbvPth gS7BwTgO27i8n5m+eaWYEDJke6uIL0kVt8mzJ7dnnox1uAeucsnFMRRUG1aiDL+Wj+wm Mnf9WIyQa7ida7ivq3iJrBI5BWJwCbU+qCJ8q1Je0xA6pPfuVI+KozROxwAmB9bcUelA mVag0YmzBo0zaAjxQQLUX9hA/JYkg/js+LdMtDgForZ/EUZbh2Ds/Xy3JfuAXYmw8qFp rkxw== X-Gm-Message-State: AOJu0Ywd+6YTtJQQAW5KPGl8lenax1bIVH9+HEpOX5qi+rM6yUhAS9+R pgNMpnrzFipj2PbLqJEFaQ2VMqkND0nzn11QWa1sLYjkAzIjDha8BBCUDJ6+OIGwKGEyadYdjjD g X-Google-Smtp-Source: AGHT+IEPG2nviL1dv0eaGbUj+JW4+fUGlyVL2WLWEq+0KCLVnZ+UNRqojL1BCJKTKmrAeLP+mGxaVQ== X-Received: by 2002:a05:6602:38d:b0:7d6:513b:254 with SMTP id f13-20020a056602038d00b007d6513b0254mr204082iov.2.1712850143311; Thu, 11 Apr 2024 08:42:23 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.42.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:42:21 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 382/437] iio: gyro/adis16136: convert to read/write iterators Date: Thu, 11 Apr 2024 09:18:42 -0600 Message-ID: <20240411153126.16201-383-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/iio/gyro/adis16136.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/drivers/iio/gyro/adis16136.c b/drivers/iio/gyro/adis16136.c index c95cf41be34b..3fa17f582444 100644 --- a/drivers/iio/gyro/adis16136.c +++ b/drivers/iio/gyro/adis16136.c @@ -65,10 +65,9 @@ struct adis16136 { =20 #ifdef CONFIG_DEBUG_FS =20 -static ssize_t adis16136_show_serial(struct file *file, - char __user *userbuf, size_t count, loff_t *ppos) +static ssize_t adis16136_show_serial(struct kiocb *iocb, struct iov_iter *= to) { - struct adis16136 *adis16136 =3D file->private_data; + struct adis16136 *adis16136 =3D iocb->ki_filp->private_data; uint16_t lot1, lot2, lot3, serial; char buf[20]; size_t len; @@ -94,12 +93,12 @@ static ssize_t adis16136_show_serial(struct file *file, len =3D snprintf(buf, sizeof(buf), "%.4x%.4x%.4x-%.4x\n", lot1, lot2, lot3, serial); =20 - return simple_read_from_buffer(userbuf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 static const struct file_operations adis16136_serial_fops =3D { .open =3D simple_open, - .read =3D adis16136_show_serial, + .read_iter =3D adis16136_show_serial, .llseek =3D default_llseek, .owner =3D THIS_MODULE, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f44.google.com (mail-io1-f44.google.com [209.85.166.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 2BB2B1F466F for ; Thu, 11 Apr 2024 15:42:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850147; cv=none; b=krJGxTEwkweLjgOo7DWDHJMS4vzQ6NFLvEbttSn3skXkUYIiHOI/lKN09nuGOSZzSSAdJdatqdyHtkGf5dwt7Hiw2yzVZqXzzbzERbWtQSUB9upK9kOH9QdUVBAu+3HP2RDTzSyEaAdIMdSUhB3K7wo3O6ae3junbmSXtl4LEYs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850147; c=relaxed/simple; bh=aNu+jLadLlEy6P+YIRlQiFPKaB7BJx77FMD90tmAsuk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Kgbpz8BJtqvLSveDhn2jwCIYmT6XOW+0TesyhGsUUPTouTJfdobkCx7NQfuuaISumn1dPGQOfr5iQMDa7om+vDysxn/YAbSI0EjbTrZ4IXj98zBhFkJZU6315ROswezLfrvgLPILBP3asvoBKYLdIoTY5zTiOShZSrHfqLMJ2OM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=mzFPBlmW; arc=none smtp.client-ip=209.85.166.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="mzFPBlmW" Received: by mail-io1-f44.google.com with SMTP id ca18e2360f4ac-7d6112ba6baso58262739f.1 for ; Thu, 11 Apr 2024 08:42:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850145; x=1713454945; 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=/tEFH/u9+JWlfvIX+gNTm10LEYRS9fx7XAyz358goT0=; b=mzFPBlmW/ZZ6FsctVFza6qF3bISM8X3p7CKymVP1xISZMOwyYpvC2/vL2ABkCwPr0t TPh8USKZ4gmmMlmSUMVDu/3bYh93mpedI97gQjAsze10ueic+9A5FjfONkbpT5rVDrDP sNzNf0kmth9wsfB8Zwnr2C6nkLs/5YmzoLDdUheUJe8603nL5/KTeMV5dUhyDnzX0tpy B0GQOaQSs5fDp2vYIni9GwnPpj+duxYHNiq32bCE8d0IYHkQ1IqDNRMrpRFDTuBTRYpt Irs4dWzNibFzDZr1kOxuOqniXh065/I11El5PkKzreOpq4WMyRNlOqIkNoyQuyn9kpdt cd2w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850145; x=1713454945; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=/tEFH/u9+JWlfvIX+gNTm10LEYRS9fx7XAyz358goT0=; b=HtKI+6A1vKfC+0HqxQHRD5lwqRKE8A2fA9dxfVCmLvNhDUv8V+fTk98g58qPrzU1C3 AkgiyH+T/jKQgEmgU7xzUSKZdytbWOlh+Xr8pAp5dsJaVZeXSCJS54ljPxGpncCFjvdM tH3SekuyKAnTjpVMvVidX+NQrezds6MT9im9x25ox9ElzGw+uuPEJrlpKJtOcxnYthAC mlvZbuPLcQ4dswrjQuTbmSfawjD4ikzKxnJOMN41LnM4gWqANjeeKxmTHAEeF4jr25Qx jb0Zx2KKHNqfQlnOIgmgNBFrfzLmWrsneQw1VYYLCIw5x9QPxhjBOXHDkImVPgKmIgDY unMw== X-Gm-Message-State: AOJu0Yxyha0kfoNWazUOkJTyO0eJT9alBsEMneOGLEjKNY7RMyDruVYS gsYQ++UJ8T1XZvepQXrbNKx7FJFtMJGku4lx67rFBeCWv6Fqm3EOmq32r2YL62+zFi5PyIIiGmg Q X-Google-Smtp-Source: AGHT+IHjjhsuNDYBWtKXp//xtql/aLPERftB3oNwLJpf9sH7Tz9p8jnEM9k3J+XYBkxwqSt0TEy/4Q== X-Received: by 2002:a05:6602:38d:b0:7d6:513b:254 with SMTP id f13-20020a056602038d00b007d6513b0254mr204162iov.2.1712850145067; Thu, 11 Apr 2024 08:42:25 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.42.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:42:23 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 383/437] intel_th: convert to read/write iterators Date: Thu, 11 Apr 2024 09:18:43 -0600 Message-ID: <20240411153126.16201-384-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/hwtracing/intel_th/msu.c | 46 +++++++++++++++----------------- 1 file changed, 22 insertions(+), 24 deletions(-) diff --git a/drivers/hwtracing/intel_th/msu.c b/drivers/hwtracing/intel_th/= msu.c index 9621efe0e95c..a48d7ca8209a 100644 --- a/drivers/hwtracing/intel_th/msu.c +++ b/drivers/hwtracing/intel_th/msu.c @@ -1429,8 +1429,8 @@ static struct page *msc_buffer_get_page(struct msc *m= sc, unsigned long pgoff) * @offset: running offset */ struct msc_win_to_user_struct { - char __user *buf; - unsigned long offset; + struct iov_iter *to; + struct kiocb *iocb; }; =20 /** @@ -1442,11 +1442,11 @@ struct msc_win_to_user_struct { static unsigned long msc_win_to_user(void *data, void *src, size_t len) { struct msc_win_to_user_struct *u =3D data; - unsigned long ret; - - ret =3D copy_to_user(u->buf + u->offset, src, len); - u->offset +=3D len - ret; + size_t ret; =20 + ret =3D copy_to_iter(src, len, u->to); + if (ret > 0) + u->iocb->ki_pos +=3D ret; return ret; } =20 @@ -1483,20 +1483,20 @@ static int intel_th_msc_release(struct inode *inode= , struct file *file) return 0; } =20 -static ssize_t -msc_single_to_user(struct msc *msc, char __user *buf, loff_t off, size_t l= en) +static ssize_t msc_single_to_user(struct msc *msc, struct kiocb *iocb, + struct iov_iter *to) { + size_t len =3D iov_iter_count(to); unsigned long size =3D msc->nr_pages << PAGE_SHIFT, rem =3D len; - unsigned long start =3D off, tocopy =3D 0; + unsigned long start =3D iocb->ki_pos, tocopy =3D 0; =20 if (msc->single_wrap) { start +=3D msc->single_sz; if (start < size) { tocopy =3D min(rem, size - start); - if (copy_to_user(buf, msc->base + start, tocopy)) + if (!copy_to_iter_full(msc->base + start, tocopy, to)) return -EFAULT; =20 - buf +=3D tocopy; rem -=3D tocopy; start +=3D tocopy; } @@ -1504,7 +1504,7 @@ msc_single_to_user(struct msc *msc, char __user *buf,= loff_t off, size_t len) start &=3D size - 1; if (rem) { tocopy =3D min(rem, msc->single_sz - start); - if (copy_to_user(buf, msc->base + start, tocopy)) + if (!copy_to_iter_full(msc->base + start, tocopy, to)) return -EFAULT; =20 rem -=3D tocopy; @@ -1513,19 +1513,19 @@ msc_single_to_user(struct msc *msc, char __user *bu= f, loff_t off, size_t len) return len - rem; } =20 - if (copy_to_user(buf, msc->base + start, rem)) + if (!copy_to_iter_full(msc->base + start, rem, to)) return -EFAULT; =20 return len; } =20 -static ssize_t intel_th_msc_read(struct file *file, char __user *buf, - size_t len, loff_t *ppos) +static ssize_t intel_th_msc_read(struct kiocb *iocb, struct iov_iter *to) { - struct msc_iter *iter =3D file->private_data; + struct msc_iter *iter =3D iocb->ki_filp->private_data; struct msc *msc =3D iter->msc; + size_t len =3D iov_iter_count(to); size_t size; - loff_t off =3D *ppos; + loff_t off =3D iocb->ki_pos; ssize_t ret =3D 0; =20 if (!atomic_inc_unless_negative(&msc->user_count)) @@ -1546,18 +1546,16 @@ static ssize_t intel_th_msc_read(struct file *file,= char __user *buf, len =3D size - off; =20 if (msc->mode =3D=3D MSC_MODE_SINGLE) { - ret =3D msc_single_to_user(msc, buf, off, len); + ret =3D msc_single_to_user(msc, iocb, to); if (ret >=3D 0) - *ppos +=3D ret; + iocb->ki_pos +=3D ret; } else if (msc->mode =3D=3D MSC_MODE_MULTI) { struct msc_win_to_user_struct u =3D { - .buf =3D buf, - .offset =3D 0, + .to =3D to, + .iocb =3D iocb, }; =20 ret =3D msc_buffer_iterate(iter, len, &u, msc_win_to_user); - if (ret >=3D 0) - *ppos =3D iter->offset; } else { ret =3D -EINVAL; } @@ -1667,7 +1665,7 @@ static int intel_th_msc_mmap(struct file *file, struc= t vm_area_struct *vma) static const struct file_operations intel_th_msc_fops =3D { .open =3D intel_th_msc_open, .release =3D intel_th_msc_release, - .read =3D intel_th_msc_read, + .read_iter =3D intel_th_msc_read, .mmap =3D intel_th_msc_mmap, .llseek =3D no_llseek, .owner =3D THIS_MODULE, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f42.google.com (mail-io1-f42.google.com [209.85.166.42]) (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 BF7991F4FB9 for ; Thu, 11 Apr 2024 15:42:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850151; cv=none; b=WLNvnl5w49MOjtHMNe+ztji01VtPSRK4o/baHB/ns1fji3JOEpSbdYEsT8A24Z17UNhzRnIeMWc4LAyBxoYMSouIl3cKCq15mMaRCEzDfHB6YvEsyYr38O15mPkZv3XhWkv+gGv/pp7ulyoCKOdL24scgR7hm7U18zp+Lg9LBYk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850151; c=relaxed/simple; bh=yHI+BWKfxlzjtD09azAbAJ+Mhk3rpeNr2iRrEofPK/A=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=CPOd+cIMNddsofo1aDl2nM8OLDnsbjlxx+0go/2WI9MS0SC41Vf0DsWRkd0R6OMhnLItkiQfPwwqLqn7+yVydrnj/VN/xYvRcs+f4kpMgDT54EkZrwNGbkwRVnB3JT/lfaa3uoXuUYBcPnBIV1PZ9NHMr2lco4oLbitWShvdREY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=zR8cbVEC; arc=none smtp.client-ip=209.85.166.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="zR8cbVEC" Received: by mail-io1-f42.google.com with SMTP id ca18e2360f4ac-7c8e4c0412dso69688039f.1 for ; Thu, 11 Apr 2024 08:42:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850148; x=1713454948; 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=WprLLrhZ1kxKSEWAUekqBTwheyCz8FjrA6ZS3/IHQR0=; b=zR8cbVECcphIdh4xro/V8NDOPfcC9dHMBy9AwSKccVpyBswl4E2a6tA80QZWeXG/9S cs++PebO4bJ849sFOKrFTOYWNbdQ1354IGc40UQ5I0fqd1dzhWZ1LkwJOH/sQIatsn/L VXlRlNKDKYvEmxLiqqa493A+1NFV9hyevIhwHllEr2W0eI5khJSJJKqMQwV6q9AKasfC wJhB0wIdGA0YjPJcbqAfoQo6ulGljluafVxM3jHgX8n8VusnCfrMZTMEjujXVlGFTakM Z2ubj1z1HRkphfiEhV/G6OPkfoYQeuDEip5lJMu09Q+f4/xZYKxhEC19imM+m9slrGrx UDgw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850148; x=1713454948; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=WprLLrhZ1kxKSEWAUekqBTwheyCz8FjrA6ZS3/IHQR0=; b=O410ZfzRrx5H2jMjYnFVonqxmmBMYe6GvGdTzLJzySuIl193ej2Zh2Ru3oWFV7bIsZ L0OBnkMJYxKVqfZ22LYOJIVtg1a4hJNo1u6K2jSn2rOdBr5z7Zz8ruSwdVGc6kb9zE2O uZsz+4AJoWRkviuqb6308UhF467nQ+oL34aCnSE0O70aAOADrY6mUwxvwco/Ll+f3GRs pHB9A7KgwJIc3rFcq3r6+eM6+hvmyMwPz0DJMLkgZ4WfgJhzdK8Ju5TB5L1cSamlvXuT gRpyVQwQa+32IyAKXH7WmIp2MAtzH9yOtakPlDDc10Q6ZVDRPjPQ1bmY5lLZDb+yl3vU PJGw== X-Gm-Message-State: AOJu0YwXelYfZ8yufLXjtlq5nH+dbjWHaQWhqy/iHf0ifptROvK1Yfw2 oUSWsN96bM0BtcPa8JVOiQ3fMasYVJXEnbWvIHdhZ+GThXUeDMxfJJGqOXZyP9aKWVa0rgpQzMX E X-Google-Smtp-Source: AGHT+IFueRfS9bGXz/c5C96P9J6ykQa1ovLOhtEUXogObPI/65tXV/zTNeHvMFSz/IW7zUbUSHBc4A== X-Received: by 2002:a05:6602:84:b0:7d6:9d75:6de2 with SMTP id h4-20020a056602008400b007d69d756de2mr55388iob.2.1712850146799; Thu, 11 Apr 2024 08:42:26 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.42.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:42:25 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 384/437] stm class: convert to read/write iterators Date: Thu, 11 Apr 2024 09:18:44 -0600 Message-ID: <20240411153126.16201-385-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/hwtracing/stm/core.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/hwtracing/stm/core.c b/drivers/hwtracing/stm/core.c index 534fbefc7f6a..c66f1864adcd 100644 --- a/drivers/hwtracing/stm/core.c +++ b/drivers/hwtracing/stm/core.c @@ -615,11 +615,11 @@ stm_write(struct stm_device *stm, struct stm_output *= output, return err; } =20 -static ssize_t stm_char_write(struct file *file, const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t stm_char_write(struct kiocb *iocb, struct iov_iter *from) { - struct stm_file *stmf =3D file->private_data; + struct stm_file *stmf =3D iocb->ki_filp->private_data; struct stm_device *stm =3D stmf->stm; + size_t count =3D iov_iter_count(from); char *kbuf; int err; =20 @@ -649,7 +649,7 @@ static ssize_t stm_char_write(struct file *file, const = char __user *buf, if (!kbuf) return -ENOMEM; =20 - err =3D copy_from_user(kbuf, buf, count); + err =3D !copy_from_iter_full(kbuf, count, from); if (err) { kfree(kbuf); return -EFAULT; @@ -835,7 +835,7 @@ stm_char_ioctl(struct file *file, unsigned int cmd, uns= igned long arg) static const struct file_operations stm_fops =3D { .open =3D stm_char_open, .release =3D stm_char_release, - .write =3D stm_char_write, + .write_iter =3D stm_char_write, .mmap =3D stm_char_mmap, .unlocked_ioctl =3D stm_char_ioctl, .compat_ioctl =3D compat_ptr_ioctl, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-il1-f180.google.com (mail-il1-f180.google.com [209.85.166.180]) (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 313001F4FAF for ; Thu, 11 Apr 2024 15:42:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.180 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850150; cv=none; b=CaXBDmjFhUzasP5715rOvslYhHYhc8Eyh6pTU4M7c0h/GdRjVANelu+JQWDq0qNXjDVoq4X48c4tLjDqLKZHuS85z1VOuFmZ9R/ZXvc1k30b6kHHPqWyjRs3vgpVfCuqKcAu2n2h++uublOv7tQgjP/vjWH3JThOVujhsOTDrYE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850150; c=relaxed/simple; bh=mJAw9t0NrgR3ha0gcKYHqXmy3EWAXDE7YP/6L6BdfCs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Tm+hruw1uJHMQ8A2mCO0FbFEXvuLEWPoC6wkRqW0/hGP2jY4s9eohveGJz8f8kNozhx/T2tbMxPd6juQFdE2PqOnbRI2kPbXlgNYkBokwcBuQt1ZVMgvCFvflVGwapBc5AadR+MbPRcrrnRc28v3Va4DTV0wGaBE2d40vBgNQHE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=zPHKt0pg; arc=none smtp.client-ip=209.85.166.180 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="zPHKt0pg" Received: by mail-il1-f180.google.com with SMTP id e9e14a558f8ab-36a224d7414so196955ab.1 for ; Thu, 11 Apr 2024 08:42:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850147; x=1713454947; 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=VsB8zH87dmI7er9oXHLg2/9heWL8uz59DS+bw6PT870=; b=zPHKt0pgfkSfg57x9JRNav5d+DwIenMCuihuuedYYQ7bRmrJjP5qALFQm8NOIoavPd 9ig9ixkm4odt1DSaVvC7hiBgmzj1ZHJ+LhHWjf6a5p4HGN8FYp7+aWL8bs2vm83l4LXp 44ibQRjbz1q7wpXAUXGH06XxqABHzKFenpyp6Upj76PEKdDTp5BJDtY3HoUVDKELy0zo BkeFUBKy4q+s6ZZYJIvHbvPSyd/QJaAwEIQZs0f8inxMoF6TTwbyGEVklHTkf4o2NzTB T8c6lqYNjsLUYne5s8yicQL1uu0E3Nhb6gzCIXnIdg95S8aNhbEMp8MJFGjFbeRySEH3 AEnQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850147; x=1713454947; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=VsB8zH87dmI7er9oXHLg2/9heWL8uz59DS+bw6PT870=; b=pXM9jszBauAUC6et52As68Xol6W8Kx2O/aQlNhLEdcc5CX/La9ub5FrrlBjjl09RMI tYYdYP2Ia3ZptCkTuYYg63JGpbg2BDU6ht2t2gyXSmcvvCSaPAcaAK5gvdWNks0dTff3 tSGee9vZbC4zhakrgNSo95GWwkUJvVS7C2XfD55VkrGdGJ0Qsds0Mhss8FtgbHgL7aVv xfRScaE+Qet31T/f86eeJIRHUUinWldhGBXDhU8ydKj7Dp4XvC+71Iw34cGxT4WkyW6B ZyCd++XnpFuWTO6SRO8G3d1PJO37foohkGdPXD3K0QJ4Phv+YBZ9VUx/RI9Oh0T8oUHk CgaA== X-Gm-Message-State: AOJu0Yw1ytQ93YWGkZh3aBv93w/VrN/58GBVQ83LO2YQzxZAJwNDlBwh Esh9UyJMLhDjxe9xt+0r+D+jGjhx8cvIS0rhaFGf86EmQi96mH63A3bLKXAb475HWF90J4+82Qn O X-Google-Smtp-Source: AGHT+IFZ3PMZ517pG9kXwDFMQxA4gKUOWYSRQC23SdQZrsX8jZJMPWx7toeljT1gIoz6ReuJbQyRCA== X-Received: by 2002:a6b:6605:0:b0:7d4:1dae:da1a with SMTP id a5-20020a6b6605000000b007d41daeda1amr163740ioc.2.1712850147609; Thu, 11 Apr 2024 08:42:27 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.42.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:42:27 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 385/437] speakup: convert to read/write iterators Date: Thu, 11 Apr 2024 09:18:45 -0600 Message-ID: <20240411153126.16201-386-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/accessibility/speakup/devsynth.c | 27 +++++------- drivers/accessibility/speakup/speakup_soft.c | 46 +++++++++----------- 2 files changed, 31 insertions(+), 42 deletions(-) diff --git a/drivers/accessibility/speakup/devsynth.c b/drivers/accessibili= ty/speakup/devsynth.c index cb7e1114e8eb..dd65b3882344 100644 --- a/drivers/accessibility/speakup/devsynth.c +++ b/drivers/accessibility/speakup/devsynth.c @@ -11,11 +11,10 @@ static int synth_registered, synthu_registered; static int dev_opened; =20 /* Latin1 version */ -static ssize_t speakup_file_write(struct file *fp, const char __user *buff= er, - size_t nbytes, loff_t *ppos) +static ssize_t speakup_file_write(struct kiocb *iocb, struct iov_iter *fro= m) { + size_t nbytes =3D iov_iter_count(from); size_t count =3D nbytes; - const char __user *ptr =3D buffer; size_t bytes; unsigned long flags; u_char buf[256]; @@ -24,10 +23,9 @@ static ssize_t speakup_file_write(struct file *fp, const= char __user *buffer, return -ENODEV; while (count > 0) { bytes =3D min(count, sizeof(buf)); - if (copy_from_user(buf, ptr, bytes)) + if (!copy_from_iter_full(buf, bytes, from)) return -EFAULT; count -=3D bytes; - ptr +=3D bytes; spin_lock_irqsave(&speakup_info.spinlock, flags); synth_write(buf, bytes); spin_unlock_irqrestore(&speakup_info.spinlock, flags); @@ -36,11 +34,10 @@ static ssize_t speakup_file_write(struct file *fp, cons= t char __user *buffer, } =20 /* UTF-8 version */ -static ssize_t speakup_file_writeu(struct file *fp, const char __user *buf= fer, - size_t nbytes, loff_t *ppos) +static ssize_t speakup_file_writeu(struct kiocb *iocb, struct iov_iter *fr= om) { + size_t nbytes =3D iov_iter_count(from); size_t count =3D nbytes, want; - const char __user *ptr =3D buffer; size_t bytes; unsigned long flags; unsigned char buf[256]; @@ -54,7 +51,7 @@ static ssize_t speakup_file_writeu(struct file *fp, const= char __user *buffer, while (count >=3D want) { /* Copy some UTF-8 piece from userland */ bytes =3D min(count, sizeof(buf)); - if (copy_from_user(buf, ptr, bytes)) + if (!copy_from_iter_full(buf, bytes, from)) return -EFAULT; =20 /* Convert to u16 */ @@ -112,7 +109,6 @@ static ssize_t speakup_file_writeu(struct file *fp, con= st char __user *buffer, } =20 count -=3D bytes; - ptr +=3D bytes; =20 /* And speak this up */ if (out) { @@ -127,8 +123,7 @@ static ssize_t speakup_file_writeu(struct file *fp, con= st char __user *buffer, return (ssize_t)(nbytes - count); } =20 -static ssize_t speakup_file_read(struct file *fp, char __user *buf, - size_t nbytes, loff_t *ppos) +static ssize_t speakup_file_read(struct kiocb *iocb, struct iov_iter *to) { return 0; } @@ -149,15 +144,15 @@ static int speakup_file_release(struct inode *ip, str= uct file *fp) } =20 static const struct file_operations synth_fops =3D { - .read =3D speakup_file_read, - .write =3D speakup_file_write, + .read_iter =3D speakup_file_read, + .write_iter =3D speakup_file_write, .open =3D speakup_file_open, .release =3D speakup_file_release, }; =20 static const struct file_operations synthu_fops =3D { - .read =3D speakup_file_read, - .write =3D speakup_file_writeu, + .read_iter =3D speakup_file_read, + .write_iter =3D speakup_file_writeu, .open =3D speakup_file_open, .release =3D speakup_file_release, }; diff --git a/drivers/accessibility/speakup/speakup_soft.c b/drivers/accessi= bility/speakup/speakup_soft.c index 6d446824677b..bc88e7e25910 100644 --- a/drivers/accessibility/speakup/speakup_soft.c +++ b/drivers/accessibility/speakup/speakup_soft.c @@ -215,17 +215,17 @@ static int softsynth_close(struct inode *inode, struc= t file *fp) return 0; } =20 -static ssize_t softsynthx_read(struct file *fp, char __user *buf, size_t c= ount, - loff_t *pos, int unicode) +static ssize_t softsynthx_read(struct kiocb *iocb, struct iov_iter *to, + int unicode) { int chars_sent =3D 0; - char __user *cp; char *init; size_t bytes_per_ch =3D unicode ? 3 : 1; u16 ch; int empty; unsigned long flags; DEFINE_WAIT(wait); + size_t count =3D iov_iter_count(to); =20 if (count < bytes_per_ch) return -EINVAL; @@ -241,7 +241,7 @@ static ssize_t softsynthx_read(struct file *fp, char __= user *buf, size_t count, break; } spin_unlock_irqrestore(&speakup_info.spinlock, flags); - if (fp->f_flags & O_NONBLOCK) { + if (iocb->ki_filp->f_flags & O_NONBLOCK) { finish_wait(&speakup_event, &wait); return -EAGAIN; } @@ -254,7 +254,6 @@ static ssize_t softsynthx_read(struct file *fp, char __= user *buf, size_t count, } finish_wait(&speakup_event, &wait); =20 - cp =3D buf; init =3D get_initstring(); =20 /* Keep 3 bytes available for a 16bit UTF-8-encoded character */ @@ -278,22 +277,20 @@ static ssize_t softsynthx_read(struct file *fp, char = __user *buf, size_t count, if ((!unicode && ch < 0x100) || (unicode && ch < 0x80)) { u_char c =3D ch; =20 - if (copy_to_user(cp, &c, 1)) + if (!copy_to_iter_full(&c, 1, to)) return -EFAULT; =20 chars_sent++; - cp++; } else if (unicode && ch < 0x800) { u_char s[2] =3D { 0xc0 | (ch >> 6), 0x80 | (ch & 0x3f) }; =20 - if (copy_to_user(cp, s, sizeof(s))) + if (!copy_to_iter_full(s, sizeof(s), to)) return -EFAULT; =20 chars_sent +=3D sizeof(s); - cp +=3D sizeof(s); } else if (unicode) { u_char s[3] =3D { 0xe0 | (ch >> 12), @@ -301,46 +298,43 @@ static ssize_t softsynthx_read(struct file *fp, char = __user *buf, size_t count, 0x80 | (ch & 0x3f) }; =20 - if (copy_to_user(cp, s, sizeof(s))) + if (!copy_to_iter_full(s, sizeof(s), to)) return -EFAULT; =20 chars_sent +=3D sizeof(s); - cp +=3D sizeof(s); } =20 spin_lock_irqsave(&speakup_info.spinlock, flags); } - *pos +=3D chars_sent; + iocb->ki_pos +=3D chars_sent; empty =3D synth_buffer_empty(); spin_unlock_irqrestore(&speakup_info.spinlock, flags); if (empty) { speakup_start_ttys(); - *pos =3D 0; + iocb->ki_pos =3D 0; } return chars_sent; } =20 -static ssize_t softsynth_read(struct file *fp, char __user *buf, size_t co= unt, - loff_t *pos) +static ssize_t softsynth_read(struct kiocb *iocb, struct iov_iter *to) { - return softsynthx_read(fp, buf, count, pos, 0); + return softsynthx_read(iocb, to, 0); } =20 -static ssize_t softsynthu_read(struct file *fp, char __user *buf, size_t c= ount, - loff_t *pos) +static ssize_t softsynthu_read(struct kiocb *iocb, struct iov_iter *to) { - return softsynthx_read(fp, buf, count, pos, 1); + return softsynthx_read(iocb, to, 1); } =20 static int last_index; =20 -static ssize_t softsynth_write(struct file *fp, const char __user *buf, - size_t count, loff_t *pos) +static ssize_t softsynth_write(struct kiocb *iocb, struct iov_iter *from) { unsigned long supplied_index =3D 0; + size_t count =3D iov_iter_count(from); int converted; =20 - converted =3D kstrtoul_from_user(buf, count, 0, &supplied_index); + converted =3D kstrtoul_from_iter(from, count, 0, &supplied_index); =20 if (converted < 0) return converted; @@ -376,8 +370,8 @@ static unsigned char get_index(struct spk_synth *synth) static const struct file_operations softsynth_fops =3D { .owner =3D THIS_MODULE, .poll =3D softsynth_poll, - .read =3D softsynth_read, - .write =3D softsynth_write, + .read_iter =3D softsynth_read, + .write_iter =3D softsynth_write, .open =3D softsynth_open, .release =3D softsynth_close, }; @@ -385,8 +379,8 @@ static const struct file_operations softsynth_fops =3D { static const struct file_operations softsynthu_fops =3D { .owner =3D THIS_MODULE, .poll =3D softsynth_poll, - .read =3D softsynthu_read, - .write =3D softsynth_write, + .read_iter =3D softsynthu_read, + .write_iter =3D softsynth_write, .open =3D softsynth_open, .release =3D softsynth_close, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f49.google.com (mail-io1-f49.google.com [209.85.166.49]) (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 106191F4FBC for ; Thu, 11 Apr 2024 15:42:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850151; cv=none; b=lwzquC5WgpXtAVq8IW3Ti07pNaUb/WW3k6yM/Jb0Ed6DNGjK2jibBJtpuJnCoQ7vkl6p5PJlWEx68pzKgNJL6fmoICkKkRVocibSe3+or2GVcQfiYi4p8pNM63gYLdvZEU2iX1JyiY0KMJDzsHmwU33ufmq4gPEqdNUgfAQhM7s= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850151; c=relaxed/simple; bh=p7WctMMlRWAdNTE5fVv6wre2OmE47Vk1NhNg4CBgEmg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=klofzsIXSY0SfljlKy7fCFKHNVQPSUcQhFo9BmT05d6bz/zh8BM0EEGeiS0152fj+X0gWom5VbA2Romkkm5Wg0rO3y80TZwzZImQ78KiFnCwN4kr67a8sIkigZ3y18QkhryQB8Gr2McrmbAjOO5VmvQJtq2NrgPcus4LUvwWTTs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=kbmlCuHw; arc=none smtp.client-ip=209.85.166.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="kbmlCuHw" Received: by mail-io1-f49.google.com with SMTP id ca18e2360f4ac-7d67d1073easo9933039f.0 for ; Thu, 11 Apr 2024 08:42:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850148; x=1713454948; 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=gE2I3/W/bjcYxnc4E8ZkJcIASksO6YWQlrWRDVCmGeU=; b=kbmlCuHwaadVLTlGki8nRKiSq/LUS17l1Ri9aUtCzupcczQS25mL4yUyT9MSQpGR6C Z5bPgaVoQoI2iYpV+Q/m4CvntLUJ4P/UEVmJ+q7xtNmYr+EEvvJktkxnOL6Sb+CBN8Ry 30VlDkkQBQ2rQWNEvwtNqctcxwXskeu3bShu3T4gfw38eDkOXDeIlSUaEwKi3Aw4FVpZ j6CXyRWR/Yyp0F0lefNYR9mYyajLaTpsyzFlX1oLO6yk3lY472VD/etNGXEv9fs142bn QGxtY2sAYRPg9eYAts+VHq0fRs7eSksY8l2kNKa3/ZQN2GYDb03AgfUvQaojrQ38ZkEP owaA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850148; x=1713454948; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=gE2I3/W/bjcYxnc4E8ZkJcIASksO6YWQlrWRDVCmGeU=; b=JQPBfeesmdB/F42ONn3J4AviQB+6lBzyI7NVhmHQseoiqzNqBqLIDreWlKf/CEKLGF oTJMBAtgtbCPc0BLFm8y1P5n9sqoC8/SAoH29q9Bja7DQsJPiHc/kCiMA5kvGt4f6z1+ c9ZyAfPzrKDlckGNdZIEKjrazIBpsBiPShQRS4MovYRe9hXfNX+DjagKe79likru9fsu RgoaE7/wPCbrsBYKrBdHeWFxZDfWMc5oaGITQEwu4hnmxjrk1NdzweRlHv8t2a4H2005 CAlQgCwzjQPytOd8J6IXhVZxtfx/dexY4XXLxWG2LcygzCCDpqoGwMZkOwxHuFwGF3l2 eA0w== X-Gm-Message-State: AOJu0YypKRbiK1wF/4wKyNieJmaSvneD3EOpI+fWhmzh28DE9k1Emf16 PFE4SW2sdkcqMcCkN5aWKTxlBNOpoW8avlS+7OS/tGWPEaJI+uePsAqtTcTSeWUVVL5cy93+BwL 6 X-Google-Smtp-Source: AGHT+IHAJsov8U6CuMQNiOy2a4pMXy8XEU9tTAyFifxKw0xmawEYZk7u7YMT5fEeNl3bREyVG6redw== X-Received: by 2002:a6b:7b05:0:b0:7d6:60dc:bc8e with SMTP id l5-20020a6b7b05000000b007d660dcbc8emr209308iop.1.1712850148360; Thu, 11 Apr 2024 08:42:28 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.42.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:42:27 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 386/437] EDAC/versal: convert to read/write iterators Date: Thu, 11 Apr 2024 09:18:46 -0600 Message-ID: <20240411153126.16201-387-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/edac/versal_edac.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/drivers/edac/versal_edac.c b/drivers/edac/versal_edac.c index 1688a5050f63..bd3abd3598ba 100644 --- a/drivers/edac/versal_edac.c +++ b/drivers/edac/versal_edac.c @@ -781,16 +781,16 @@ static void xddr_inject_data_ce_store(struct mem_ctl_= info *mci, u8 ce_bitpos) * * Upon doing a read to the address the errors are injected. */ -static ssize_t inject_data_ce_store(struct file *file, const char __user *= data, - size_t count, loff_t *ppos) +static ssize_t inject_data_ce_store(struct kiocb *iocb, struct iov_iter *f= rom) { - struct device *dev =3D file->private_data; + struct device *dev =3D iocb->ki_filp->private_data; struct mem_ctl_info *mci =3D to_mci(dev); struct edac_priv *priv =3D mci->pvt_info; + size_t count =3D iov_iter_count(from); u8 ce_bitpos; int ret; =20 - ret =3D kstrtou8_from_user(data, count, 0, &ce_bitpos); + ret =3D kstrtou8_from_iter(from, count, 0, &ce_bitpos); if (ret) return ret; =20 @@ -812,7 +812,7 @@ static ssize_t inject_data_ce_store(struct file *file, = const char __user *data, =20 static const struct file_operations xddr_inject_ce_fops =3D { .open =3D simple_open, - .write =3D inject_data_ce_store, + .write_iter =3D inject_data_ce_store, .llseek =3D generic_file_llseek, }; =20 @@ -845,19 +845,19 @@ static void xddr_inject_data_ue_store(struct mem_ctl_= info *mci, u32 val0, u32 va * * Upon doing a read to the address the errors are injected. */ -static ssize_t inject_data_ue_store(struct file *file, const char __user *= data, - size_t count, loff_t *ppos) +static ssize_t inject_data_ue_store(struct kiocb *iocb, struct iov_iter *f= rom) { - struct device *dev =3D file->private_data; + struct device *dev =3D iocb->ki_filp->private_data; struct mem_ctl_info *mci =3D to_mci(dev); struct edac_priv *priv =3D mci->pvt_info; + size_t count =3D iov_iter_count(from); char buf[6], *pbuf, *token[2]; u32 val0 =3D 0, val1 =3D 0; u8 len, ue0, ue1; int i, ret; =20 len =3D min_t(size_t, count, sizeof(buf)); - if (copy_from_user(buf, data, len)) + if (!copy_from_iter_full(from, len, from)) return -EFAULT; =20 buf[len] =3D '\0'; @@ -903,7 +903,7 @@ static ssize_t inject_data_ue_store(struct file *file, = const char __user *data, =20 static const struct file_operations xddr_inject_ue_fops =3D { .open =3D simple_open, - .write =3D inject_data_ue_store, + .write_iter =3D inject_data_ue_store, .llseek =3D generic_file_llseek, }; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f47.google.com (mail-io1-f47.google.com [209.85.166.47]) (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 DD0681F4FDB for ; Thu, 11 Apr 2024 15:42:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850153; cv=none; b=HJt094A6fcTcVHKWzJminVDTth2sv5eMueIE9UAbU3ySjgEdDgCpJtHfH7NuBxZm65mas16F0o4IFgP3njjMrQNRcllDsK5ZNc9p8cl3REgCd2QHEcG8/qdPOAQesGe/Bz7R7voL/PKMViUqb+dlapcm6cxOTVzcmRnXs4iHSrU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850153; c=relaxed/simple; bh=/TmKVj6QrFz5D6lqwelXnvkAyOg4q25RyrSZJGRCLVI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=FC9dLWH1W56HIl/vLRC6+sdh3i3KDhrycX8q/9J5RL0fLIIjrCnjJoAmalBTn9CL2iLPNT0gms20Y4SJsjjDuytw5Fbl2D+W6Mn0Rmzkf3XY91K8KMOejCqXLmcQPKXlFR3dS8JIeoLZTEi1tu2ji0kRAQxR96e9KT+VUF7tRgE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=HHSgxvfl; arc=none smtp.client-ip=209.85.166.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="HHSgxvfl" Received: by mail-io1-f47.google.com with SMTP id ca18e2360f4ac-7cc0e831e11so170648739f.1 for ; Thu, 11 Apr 2024 08:42:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850151; x=1713454951; 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=ZBZc5uxf3CGdYoNH6FdAMCMGz4jF4JP+JkOREkCFKTQ=; b=HHSgxvflUUbm1HYXtnqsanQ9r2zkGsxD1CdElIQf4YWGUSla9WePyK/17JlAp2jBUU fI6VRSzD/GwVfG4PFNPsXvbIj1hd0L3fPGeKU12f6kaTdQ1QGwBN2ue0mFOPpZ9KOjTs nFE/14zlyH5kS9NEfcXyIv+o2myFyh0cazjWI/ckUw1sALkkbqtf3uyoAV/2hrzlVd/N 7L7md/n1I9Y29EfZfzeKhVKm2KfRoquiROzEz0tZRGiC4rEd6jbrz6HadTOemkOMqomi XbKZRDZoV0M9zwf8b39P+bpWLAVJM5QzywSdKk24ls+nQn8dlzL6OM+qc7IGlfnGfIr6 Qfkw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850151; x=1713454951; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ZBZc5uxf3CGdYoNH6FdAMCMGz4jF4JP+JkOREkCFKTQ=; b=NZJ71vUbY/o0XYfkIL8GrhtmuT15gfY8RIlXcrh9gMqWScQrpl6nkRAZR0BCefRJUG upzLV30fwcncvQqGXhsdN6TMk4ZwVoBJdgzZBjv23tON4VMdcd7Qn1B9wIDihmt7kkOS /iTCZ0rwaWYVuPSUvWIRjLDtFJFAjLxBIZCiS5XMBfZKO5Ri5W29Jb87rxwihVBgafWh ZqiiCChARvrm2nSzm+Y9BEM+sBcS+tnDndyzQlXRLcIYIw75O/3MYH1+T0XtsRcJte+I KGwEFAOE29zKnd3Fl0OMxyJRLXbjnuuigKGlLMmfGra6EVP+Bj56ZrqVwfz23pVwyOAC PVow== X-Gm-Message-State: AOJu0Yww+Gkr3ABO6TwE2jFk1Fh5tSRKv8/Aamqpz9pqfzXrjA4slvAc YiRAtqo5GYDLBHHIafEjlQ8lZV5vP6mgADUIAy7kFLPksJyJcXkx1x87l85fCZRZTIM2JJsNkNK H X-Google-Smtp-Source: AGHT+IFD/76P5Aiy4i/eM7EiFFZZOKJHZtnaN20NiQPGPSKnDKg1/Jb+aYrVZY/2TRnZ4D2xSnxfJw== X-Received: by 2002:a5e:9907:0:b0:7d6:751f:192 with SMTP id t7-20020a5e9907000000b007d6751f0192mr198122ioj.2.1712850150717; Thu, 11 Apr 2024 08:42:30 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.42.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:42:28 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 387/437] EDAC/xgene: convert to read/write iterators Date: Thu, 11 Apr 2024 09:18:47 -0600 Message-ID: <20240411153126.16201-388-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/edac/xgene_edac.c | 43 ++++++++++++++++++--------------------- 1 file changed, 20 insertions(+), 23 deletions(-) diff --git a/drivers/edac/xgene_edac.c b/drivers/edac/xgene_edac.c index 1b50f8160013..deabb9743f9e 100644 --- a/drivers/edac/xgene_edac.c +++ b/drivers/edac/xgene_edac.c @@ -137,11 +137,10 @@ struct xgene_edac_mc_ctx { u32 mcu_id; }; =20 -static ssize_t xgene_edac_mc_err_inject_write(struct file *file, - const char __user *data, - size_t count, loff_t *ppos) +static ssize_t xgene_edac_mc_err_inject_write(struct kiocb *iocb, + struct iov_iter *from) { - struct mem_ctl_info *mci =3D file->private_data; + struct mem_ctl_info *mci =3D iocb->ki_filp->private_data; struct xgene_edac_mc_ctx *ctx =3D mci->pvt_info; int i; =20 @@ -150,12 +149,12 @@ static ssize_t xgene_edac_mc_err_inject_write(struct = file *file, MCU_ESRR_DEMANDUCERR_MASK | MCU_ESRR_CERR_MASK, ctx->mcu_csr + MCUESRRA0 + i * MCU_RANK_STRIDE); } - return count; + return iov_iter_count(from); } =20 static const struct file_operations xgene_edac_mc_debug_inject_fops =3D { .open =3D simple_open, - .write =3D xgene_edac_mc_err_inject_write, + .write_iter =3D xgene_edac_mc_err_inject_write, .llseek =3D generic_file_llseek, }; =20 @@ -803,11 +802,10 @@ static void xgene_edac_pmd_hw_ctl(struct edac_device_= ctl_info *edac_dev, } } =20 -static ssize_t xgene_edac_pmd_l1_inject_ctrl_write(struct file *file, - const char __user *data, - size_t count, loff_t *ppos) +static ssize_t xgene_edac_pmd_l1_inject_ctrl_write(struct kiocb *iocb, + struct iov_iter *from) { - struct edac_device_ctl_info *edac_dev =3D file->private_data; + struct edac_device_ctl_info *edac_dev =3D iocb->ki_filp->private_data; struct xgene_edac_pmd_ctx *ctx =3D edac_dev->pvt_info; void __iomem *cpux_pg_f; int i; @@ -826,16 +824,16 @@ static ssize_t xgene_edac_pmd_l1_inject_ctrl_write(st= ruct file *file, MEMERR_CPU_MMUESR_CERR_MASK, cpux_pg_f + MEMERR_CPU_MMUESRA_PAGE_OFFSET); } - return count; + return iov_iter_count(from); } =20 -static ssize_t xgene_edac_pmd_l2_inject_ctrl_write(struct file *file, - const char __user *data, - size_t count, loff_t *ppos) +static ssize_t xgene_edac_pmd_l2_inject_ctrl_write(struct kiocb *iocb, + struct iov_iter *from) { - struct edac_device_ctl_info *edac_dev =3D file->private_data; + struct edac_device_ctl_info *edac_dev =3D iocb->ki_filp->private_data; struct xgene_edac_pmd_ctx *ctx =3D edac_dev->pvt_info; void __iomem *pg_e =3D ctx->pmd_csr + CPU_MEMERR_L2C_PAGE; + size_t count =3D iov_iter_count(from); =20 writel(MEMERR_L2C_L2ESR_MULTUCERR_MASK | MEMERR_L2C_L2ESR_MULTICERR_MASK | @@ -848,11 +846,11 @@ static ssize_t xgene_edac_pmd_l2_inject_ctrl_write(st= ruct file *file, static const struct file_operations xgene_edac_pmd_debug_inject_fops[] =3D= { { .open =3D simple_open, - .write =3D xgene_edac_pmd_l1_inject_ctrl_write, + .write_iter =3D xgene_edac_pmd_l1_inject_ctrl_write, .llseek =3D generic_file_llseek, }, { .open =3D simple_open, - .write =3D xgene_edac_pmd_l2_inject_ctrl_write, + .write_iter =3D xgene_edac_pmd_l2_inject_ctrl_write, .llseek =3D generic_file_llseek, }, { } }; @@ -1143,21 +1141,20 @@ static void xgene_edac_l3_hw_init(struct edac_devic= e_ctl_info *edac_dev, } } =20 -static ssize_t xgene_edac_l3_inject_ctrl_write(struct file *file, - const char __user *data, - size_t count, loff_t *ppos) +static ssize_t xgene_edac_l3_inject_ctrl_write(struct kiocb *iocb, + struct iov_iter *from) { - struct edac_device_ctl_info *edac_dev =3D file->private_data; + struct edac_device_ctl_info *edac_dev =3D iocb->ki_filp->private_data; struct xgene_edac_dev_ctx *ctx =3D edac_dev->pvt_info; =20 /* Generate all errors */ writel(0xFFFFFFFF, ctx->dev_csr + L3C_ESR); - return count; + return iov_iter_count(from); } =20 static const struct file_operations xgene_edac_l3_debug_inject_fops =3D { .open =3D simple_open, - .write =3D xgene_edac_l3_inject_ctrl_write, + .write_iter =3D xgene_edac_l3_inject_ctrl_write, .llseek =3D generic_file_llseek }; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f46.google.com (mail-io1-f46.google.com [209.85.166.46]) (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 6AA911F63A1 for ; Thu, 11 Apr 2024 15:42:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850155; cv=none; b=kZ1gZdBr3RIuu++DG7G2HWMHzT1TDldNkpznEPeSL9SSFQ4JQV1oikWZKIaHXj77tJmR1TI0bkY71iXxBzRrRt8QRKNqyYhRCsnPK3GxPOQ20FxRsleNAui/hhIfqxnpYblF6rEVCmMb3Ah5hsZFr2DM+exZjcCCNQV+ccEbenY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850155; c=relaxed/simple; bh=gA8rFMhsudIRasINC+2az15qgXyL/gqKmnjo/t8ieBo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=gvSMykpOFdvkFY069v2eRXIvFGgAQ5aGJaxAfsFlV9OTE7CgMSJf90c5ov69P7YIScQw7Jf7KBiuwtioOyDPb7yPSGo0scl7B2QONjDR4B9Hoq8ApyKm+WKkE0F+UJomqyi7IeGglxoO2vVKcqYIdGbGJUFaUpSJ/7wwrBkeyBY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=YMNtAlYt; arc=none smtp.client-ip=209.85.166.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="YMNtAlYt" Received: by mail-io1-f46.google.com with SMTP id ca18e2360f4ac-7d6812b37a6so9094539f.0 for ; Thu, 11 Apr 2024 08:42:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850152; x=1713454952; 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=+gLv0Ik+40YEsN6bRxyBw09qExxmyScg525+OgMqQYQ=; b=YMNtAlYteGbFkZ75oHST8JuY+sV+YP9mFsEJJG92G52PdLisdAWA4zbeGDKnwc5MNP hqJkGPvFHT2WmkKX3sv5MQsPON10fVJp0cxsZOIj/ANZyIYGz5b7QcD1hCczl1ez2IWM yGOepXi85oBU4dkpW7TYIBa5KTGMKAkWrpUCtCX3icv3B0uveyqFDiybMVQOW4x/Uy5H 4tZfgWUPKexYOAcLaGVaaRFScKC/3yPa2IywAIk7n3PxfUiTjfkW08O+ZrgG0PcvEV3D qpro882/pCHqdFNXb+wZwYJzT3sNZ64R/WgijMdB4zkrTefBFgSqz9ZE2XfsdAiCMPRC O7Ew== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850152; x=1713454952; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=+gLv0Ik+40YEsN6bRxyBw09qExxmyScg525+OgMqQYQ=; b=e+SPzokCY04afqhoQ4KWjFXnq6yP3Jm1nZwH5/g8PpKfN8RWfA8wg8EbJwZNuKGGLJ 6CPbxMBhL0JDvt6xrsomqcZtKaXOXWGGKqwcOU+uixnBpxtvDm0wSN54CwD/+Nvtp105 6W8Xj3fSQI4j0AOi4U+9/6HTtKGDwheNZf5DBU1shzWUiw6o8LlrW63/mToFJ3jLSsOj fHIAbOvLStKCIEsnjdrRRcKXdxUuCJk7imemKSIEyG9sIvRj9QrV8Lc4IRZ3ZlhmZrSx wM9Z0msBy4Arlir5k0HcON8P0jLObHpVLC6AuBmswJ3KkiFzGrehaa7tSMT0UhlHiNWb qRlQ== X-Gm-Message-State: AOJu0YxUIO7muLZ3Dm6LFIqFHwXUtggVIVI33FSd9IprDjRg1MmvIK+n yOEMVudP8NCO9uTPojvH3XrgiWQVhopKL16Hgz5x2NvxBfwnhNE4yT1v56CAUUjlUtM3UrDl865 V X-Google-Smtp-Source: AGHT+IFl1U7Gq7SRFJqISZ2qZ9AaZnNqVRV/Z2Gc6jkS8X0UtLV/9CSxw5RRR9mCr/twh144gM9VTg== X-Received: by 2002:a5e:9907:0:b0:7d6:751f:192 with SMTP id t7-20020a5e9907000000b007d6751f0192mr198224ioj.2.1712850152720; Thu, 11 Apr 2024 08:42:32 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.42.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:42:31 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 388/437] EDAC/zynqmp: convert to read/write iterators Date: Thu, 11 Apr 2024 09:18:48 -0600 Message-ID: <20240411153126.16201-389-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/edac/zynqmp_edac.c | 26 ++++++++++---------------- 1 file changed, 10 insertions(+), 16 deletions(-) diff --git a/drivers/edac/zynqmp_edac.c b/drivers/edac/zynqmp_edac.c index 2d9a5cfd8931..53d697b4137a 100644 --- a/drivers/edac/zynqmp_edac.c +++ b/drivers/edac/zynqmp_edac.c @@ -247,17 +247,14 @@ static void write_fault_count(struct edac_priv *priv) * - Write the Correctable Error bit position value: * echo > /sys/kernel/debug/edac/ocm/inject_ce_bitpos */ -static ssize_t inject_ce_write(struct file *file, const char __user *data, - size_t count, loff_t *ppos) +static ssize_t inject_ce_write(struct kiocb *iocb, struct iov_iter *from) { - struct edac_device_ctl_info *edac_dev =3D file->private_data; + struct edac_device_ctl_info *edac_dev =3D iocb->ki_filp->private_data; struct edac_priv *priv =3D edac_dev->pvt_info; + size_t count =3D iov_iter_count(from); int ret; =20 - if (!data) - return -EFAULT; - - ret =3D kstrtou8_from_user(data, count, 0, &priv->ce_bitpos); + ret =3D kstrtou8_from_iter(from, count, 0, &priv->ce_bitpos); if (ret) return ret; =20 @@ -280,7 +277,7 @@ static ssize_t inject_ce_write(struct file *file, const= char __user *data, =20 static const struct file_operations inject_ce_fops =3D { .open =3D simple_open, - .write =3D inject_ce_write, + .write_iter =3D inject_ce_write, .llseek =3D generic_file_llseek, }; =20 @@ -291,21 +288,18 @@ static const struct file_operations inject_ce_fops = =3D { * - Write the Uncorrectable Error bit position values: * echo , > /sys/kernel/debug/edac/ocm/in= ject_ue_bitpos */ -static ssize_t inject_ue_write(struct file *file, const char __user *data, - size_t count, loff_t *ppos) +static ssize_t inject_ue_write(struct kiocb *iocb, struct iov_iter *from) { - struct edac_device_ctl_info *edac_dev =3D file->private_data; + struct edac_device_ctl_info *edac_dev =3D iocb->ki_filp->private_data; struct edac_priv *priv =3D edac_dev->pvt_info; char buf[6], *pbuf, *token[2]; + size_t count =3D iov_iter_count(from); u64 ue_bitpos; int i, ret; u8 len; =20 - if (!data) - return -EFAULT; - len =3D min_t(size_t, count, sizeof(buf)); - if (copy_from_user(buf, data, len)) + if (!copy_from_iter_full(from, len, from)) return -EFAULT; =20 buf[len] =3D '\0'; @@ -342,7 +336,7 @@ static ssize_t inject_ue_write(struct file *file, const= char __user *data, =20 static const struct file_operations inject_ue_fops =3D { .open =3D simple_open, - .write =3D inject_ue_write, + .write_iter =3D inject_ue_write, .llseek =3D generic_file_llseek, }; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f47.google.com (mail-io1-f47.google.com [209.85.166.47]) (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 E72241F63B0 for ; Thu, 11 Apr 2024 15:42:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850156; cv=none; b=ugKmk7Xam4xeoc0uDqByY1WE1awIiLmvQhxATNNEBVYGssPYC2FaVaihLij4sfbi2CQ0PSoplbLRBfr+3+35Qw1ALgTr9PWy3HAiERTBAAGkaBcepnHW1H3zgC0uOf8KQ2wYOMWVzcpLEzkoJGLoVasNTHZHcl9NsmnlP2Zr3lM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850156; c=relaxed/simple; bh=QzT97jcs7LvwDa9GfHQyS6Z4ENz0HdIaPZHjnl1Ltk8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=g0MOVtNxtduQEoy66K5uWltXht3TP/IJamihC7vi7gBvmfA4V1H5CavR4kIwDlNmdKgfvz7OtR+45eIAIGL92zVYDydWpENb7bVIHochDLNNCakezoPs1DDCTgqKnwtMapCMXFPCKqOcUsfGVOmFbhbqDxP1XJFEjouir3qPWXU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=tLbzhEqR; arc=none smtp.client-ip=209.85.166.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="tLbzhEqR" Received: by mail-io1-f47.google.com with SMTP id ca18e2360f4ac-7d6812b37a6so9094839f.0 for ; Thu, 11 Apr 2024 08:42:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850153; x=1713454953; 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=p+Xvz/UDRr7/EpD2nY4uoaZN8CL3TczLBOcQ0vJ5qaA=; b=tLbzhEqRDgQc01IAvzlwlUlaK0cIouF59Cq+ZDddIh7nwNWRHQ8y3CZt0uDNFhy3zI bPS2+F3f0C4jCrlIBlOtUKyuuXMoP4NsRmosV1EZI3XJKi4zAOOmIgLqNxFUdPtJhlB+ oFv+mFIBm4sJ3pqfvBeXgNTMFsKSeyP/UikBuwq4OsrttAKObm0rF0KDJnCxI/ts0+BX gSot5Qfxo03R/XvjR4i411qNCYh/9ppUgi2nUK6TG3EloT8EGAyC9PEkgeoxywj6WrPG xlo3CvBU4K2VkSsFsRgB84ybERhR4v1GgEpgS/YRZofK6lx0K//EYqaANCh6rG9g/wwf pNdw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850153; x=1713454953; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=p+Xvz/UDRr7/EpD2nY4uoaZN8CL3TczLBOcQ0vJ5qaA=; b=sRWkZZWvKumHdwBewO7YH6lidip+VnAyiJtP+BKud1EqPqd3/Ko6KXdNXnP3BqdKzU hGZigUoGjGJy7+3p+HzVx1gnYQ6Bf/jYlEXQ3j3gYkZQ032zWMzrBi2yb5/KNMZg+EO8 WkDFwIdsFIWXDGIm1JQPBqH/a9ePjA4VY/rwP3PNb/vSgjFBETV/vwZeR7g2k6JC9V12 j1UA6bpAOGV3xkN5lR+qW9mBjafm2YYe1U+SwKbzmh6dCh/I2+SMj/6soUXbqlXLIhWA adHUMNp3XJf08Pal/rxYvH/VsWa6zLHw3+owBYD+SLezPk3/symtxutjBpzsCA0x46+a L63g== X-Gm-Message-State: AOJu0YzqpAPXWSeMi7EdaaBkhgneSPch/ocaXLpWlrA0E/FtPP71fiZN iYLugfGgKY9bYfKEf2UtmdRY5aMtsf19zWEPCZRYv6hld0jojqvp12OBiY/elaBBccDGPpniTEO f X-Google-Smtp-Source: AGHT+IHl0bur4OnSw6GCYS5F/K0c+WHDD2fn3Dclmfj165S2QjKbNs5JwA3cpFtCRAvgMKGIyC3VBQ== X-Received: by 2002:a6b:5b10:0:b0:7d0:bd2b:43ba with SMTP id v16-20020a6b5b10000000b007d0bd2b43bamr238970ioh.0.1712850153486; Thu, 11 Apr 2024 08:42:33 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.42.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:42:33 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 389/437] EDAC/thunderx: convert to read/write iterators Date: Thu, 11 Apr 2024 09:18:49 -0600 Message-ID: <20240411153126.16201-390-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/edac/thunderx_edac.c | 71 +++++++++++++++++------------------- 1 file changed, 33 insertions(+), 38 deletions(-) diff --git a/drivers/edac/thunderx_edac.c b/drivers/edac/thunderx_edac.c index 90d46e5c4ff0..54edd310c6f0 100644 --- a/drivers/edac/thunderx_edac.c +++ b/drivers/edac/thunderx_edac.c @@ -219,33 +219,32 @@ static struct debugfs_entry debugfs_##_name =3D { = \ .mode =3D VERIFY_OCTAL_PERMISSIONS(_mode), \ .fops =3D { \ .open =3D simple_open, \ - .write =3D _write, \ - .read =3D _read, \ + .write_iter =3D _write, \ + .read_iter =3D _read, \ .llseek =3D generic_file_llseek, \ }, \ } =20 #define DEBUGFS_FIELD_ATTR(_type, _field) \ -static ssize_t thunderx_##_type##_##_field##_read(struct file *file, \ - char __user *data, \ - size_t count, loff_t *ppos) \ +static ssize_t thunderx_##_type##_##_field##_read(struct kiocb *iocb, \ + struct iov_iter *to) \ { \ - struct thunderx_##_type *pdata =3D file->private_data; \ + struct thunderx_##_type *pdata =3D iocb->ki_filp->private_data; \ + size_t count =3D iov_iter_count(to); \ char buf[20]; \ \ snprintf(buf, count, "0x%016llx", pdata->_field); \ - return simple_read_from_buffer(data, count, ppos, \ - buf, sizeof(buf)); \ + return simple_copy_to_iter(buf, &iocb->ki_pos, sizeof(buf), to); \ } \ \ -static ssize_t thunderx_##_type##_##_field##_write(struct file *file, \ - const char __user *data, \ - size_t count, loff_t *ppos) \ +static ssize_t thunderx_##_type##_##_field##_write(struct kiocb *iocb, = \ + struct iov_iter *from) \ { \ - struct thunderx_##_type *pdata =3D file->private_data; \ + struct thunderx_##_type *pdata =3D iocb->ki_filp->private_data; \ + size_t count =3D iov_iter_count(from); \ int res; \ \ - res =3D kstrtoull_from_user(data, count, 0, &pdata->_field); \ + res =3D kstrtoull_from_iter(from, count, 0, &pdata->_field); \ \ return res ? res : count; \ } \ @@ -255,27 +254,25 @@ DEBUGFS_STRUCT(_field, 0600, \ thunderx_##_type##_##_field##_read) \ =20 #define DEBUGFS_REG_ATTR(_type, _name, _reg) \ -static ssize_t thunderx_##_type##_##_name##_read(struct file *file, \ - char __user *data, \ - size_t count, loff_t *ppos) \ +static ssize_t thunderx_##_type##_##_name##_read(struct kiocb *iocb, \ + struct iov_iter *to) \ { \ - struct thunderx_##_type *pdata =3D file->private_data; \ + struct thunderx_##_type *pdata =3D iocb->ki_filp->private_data; \ char buf[20]; \ \ sprintf(buf, "0x%016llx", readq(pdata->regs + _reg)); \ - return simple_read_from_buffer(data, count, ppos, \ - buf, sizeof(buf)); \ + return simple_copy_from_iter(buf, &iocb->ki_pos, sizeof(buf), to); \ } \ \ -static ssize_t thunderx_##_type##_##_name##_write(struct file *file, \ - const char __user *data, \ - size_t count, loff_t *ppos) \ +static ssize_t thunderx_##_type##_##_name##_write(struct kiocb *iocb, \ + struct iov_iter *from) \ { \ - struct thunderx_##_type *pdata =3D file->private_data; \ + struct thunderx_##_type *pdata =3D iocb->ki_filp->private_data; \ + size_t count =3D iov_iter_count(from); \ u64 val; \ int res; \ \ - res =3D kstrtoull_from_user(data, count, 0, &val); \ + res =3D kstrtoull_from_iter(from, count, 0, &val); \ \ if (!res) { \ writeq(val, pdata->regs + _reg); \ @@ -300,15 +297,15 @@ DEBUGFS_STRUCT(_name, 0600, \ * - Do the actual injection: * echo 1 > /sys/kernel/debug//inject_ecc */ -static ssize_t thunderx_lmc_inject_int_write(struct file *file, - const char __user *data, - size_t count, loff_t *ppos) +static ssize_t thunderx_lmc_inject_int_write(struct kiocb *iocb, + struct iov_iter *from) { - struct thunderx_lmc *lmc =3D file->private_data; + struct thunderx_lmc *lmc =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); u64 val; int res; =20 - res =3D kstrtoull_from_user(data, count, 0, &val); + res =3D kstrtoull_from_iter(from, count, 0, &val); =20 if (!res) { /* Trigger the interrupt */ @@ -319,16 +316,14 @@ static ssize_t thunderx_lmc_inject_int_write(struct f= ile *file, return res; } =20 -static ssize_t thunderx_lmc_int_read(struct file *file, - char __user *data, - size_t count, loff_t *ppos) +static ssize_t thunderx_lmc_int_read(struct kiocb *iocb, struct iov_iter *= to) { - struct thunderx_lmc *lmc =3D file->private_data; + struct thunderx_lmc *lmc =3D iocb->ki_filp->private_data; char buf[20]; u64 lmc_int =3D readq(lmc->regs + LMC_INT); =20 snprintf(buf, sizeof(buf), "0x%016llx", lmc_int); - return simple_read_from_buffer(data, count, ppos, buf, sizeof(buf)); + return simple_copy_to_iter(buf, &iocb->ki_pos, sizeof(buf), to); } =20 #define TEST_PATTERN 0xa5 @@ -403,12 +398,12 @@ static int inject_ecc_fn(void *arg) return 0; } =20 -static ssize_t thunderx_lmc_inject_ecc_write(struct file *file, - const char __user *data, - size_t count, loff_t *ppos) +static ssize_t thunderx_lmc_inject_ecc_write(struct kiocb *iocb, + struct iov_iter *from) { - struct thunderx_lmc *lmc =3D file->private_data; + struct thunderx_lmc *lmc =3D iocb->ki_filp->private_data; unsigned int cline_size =3D cache_line_size(); + size_t count =3D iov_iter_count(from); u8 *tmp; void __iomem *addr; unsigned int offs, timeout =3D 100000; --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f43.google.com (mail-io1-f43.google.com [209.85.166.43]) (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 03B7C1F63DB for ; Thu, 11 Apr 2024 15:42:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850158; cv=none; b=aFQQqTvhOJzA4xCGpyg7s8llpTJVKHunb1kBRCockMsNmpz87A6vqoxse8aeALWw+TeLX6rYMqUzq/U8+SpnHZ8BoCvoEPnudsTk8Lvg7C5WiLq4XIx1Fp7dJfWTZQzXl8S+KQ2jCYNgAUkqTRJlN3x5pjMghPuPd5VSqmH/Sc4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850158; c=relaxed/simple; bh=Krw1Ns7wi8zJor2Df5ARSAp4IQYoYJJxomXQfbnDxyM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=MfHwBknn8nkyZuMfLJJnA9A8dj5x/hpIz+6OXcbtqL/qwiHqHmptnJwfZQG1NHhKgRnhVCXqYuREHeiJg+fwCUCW6ZdcLg3hlvSf7o6crYayz5U+m2DQJzsDR7yWHk1kmQT++fwEXEIL9WeuOsDnELPlDQs6Tb57+t8nHBRaNkI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=fKF5wFrG; arc=none smtp.client-ip=209.85.166.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="fKF5wFrG" Received: by mail-io1-f43.google.com with SMTP id ca18e2360f4ac-7d5ed700c2dso16258139f.0 for ; Thu, 11 Apr 2024 08:42:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850155; x=1713454955; 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=JmPFlEE8wKBJ/+R6tyQqzbhRstdo6mylHM1eVnipaiY=; b=fKF5wFrGBioUVbgrc6hHEkM4MZjGdX76vgaRKbcRDOtABEE9dzmaQF270fb1an7/1d pcCdvjk3HL/De5xubKNUVfADfS5k7tJhUf41j9qO4nndmJr/TpP1N8uYZqsETdCC/5Oc mblP/48pGIJKCY/3cVCcG0MGoGi14Ac9sWC25eti77hjJ2WKSeaWj0tmEXNjp5XUt7k7 3X9DiI9XMMFQNAu67TA7VUHVxBR0RLAXV5TgNUEftVIq5eNCQky3PLuio8lobxijtzDe KozOGOHYECVRq4GvG/C2/+/NT2sdFdvcYdAIp1S6pf+Afo65v+qNr96wtC1r2bX/hCtr 8vHw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850155; x=1713454955; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=JmPFlEE8wKBJ/+R6tyQqzbhRstdo6mylHM1eVnipaiY=; b=O7LVCUY6NHrntInu3h/0/d1AfIdzxfyAqmoKN8raV2zUYojSQtgnm3FpVXXa/RoODx WTHC2DNl1KU3mMqRFUNJUiR36ER2QUUKe3Ry7QTFNxJoyBhXlWapjOsaG6E4yF+JHqCm kTgfaSYqXbqkIqBuSOWJ15zpSBO5K+hiRspt7pUxtVmKeIPX8enydRIcuKzAj7MEpTYz mAcEOS9h3OLrlyx+IqEj6aSvy3MjnTgFP7hXiorg4+If5wf2OHghQiPmH2CQW/DgDI5V 5j6TdrzNOWIbNHuFP0x1eInvT0ViWlH9pt1N/+4k5yklezi9QizAy1n6x95cX0cRmiL1 d8OQ== X-Gm-Message-State: AOJu0YyWpTNE0kbXYez1YMY3quxHEco9wj32n1BdGk8i0xU8Xg5uCNvM D6nKz0tQzky3cVi4rOG93xQk9ZvwFOT1+bgKbJ08URSE6OldTKlkE/evt/pI06sWGbP9jGdP+cg 3 X-Google-Smtp-Source: AGHT+IGJilTeYdSv9yr1oLT8yaMZGUBZMSBDkCbo6RGHNuk8vGtfNkJYB/pd40mYdTHr60X72muV3Q== X-Received: by 2002:a6b:f312:0:b0:7d5:de23:13a9 with SMTP id m18-20020a6bf312000000b007d5de2313a9mr179128ioh.1.1712850155457; Thu, 11 Apr 2024 08:42:35 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.42.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:42:33 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 390/437] EDAC/npcm: convert to read/write iterators Date: Thu, 11 Apr 2024 09:18:50 -0600 Message-ID: <20240411153126.16201-391-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/edac/npcm_edac.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/edac/npcm_edac.c b/drivers/edac/npcm_edac.c index 2e2133b784e9..54a756db7d67 100644 --- a/drivers/edac/npcm_edac.c +++ b/drivers/edac/npcm_edac.c @@ -195,13 +195,13 @@ static irqreturn_t edac_ecc_isr(int irq, void *dev_id) return IRQ_NONE; } =20 -static ssize_t force_ecc_error(struct file *file, const char __user *data, - size_t count, loff_t *ppos) +static ssize_t force_ecc_error(struct kiocb *iocb, struct iov_iter *from) { - struct device *dev =3D file->private_data; + struct device *dev =3D iocb->ki_filp->private_data; struct mem_ctl_info *mci =3D to_mci(dev); struct priv_data *priv =3D mci->pvt_info; const struct npcm_platform_data *pdata; + size_t count =3D iov_iter_count(from); u32 val, syndrome; int ret; =20 @@ -261,7 +261,7 @@ static ssize_t force_ecc_error(struct file *file, const= char __user *data, =20 static const struct file_operations force_ecc_error_fops =3D { .open =3D simple_open, - .write =3D force_ecc_error, + .write_iter =3D force_ecc_error, .llseek =3D generic_file_llseek, }; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f52.google.com (mail-io1-f52.google.com [209.85.166.52]) (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 849811F6F02 for ; Thu, 11 Apr 2024 15:42:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850158; cv=none; b=FjZxu896rhvnfS7Al7+52f1oh+vwRYSOiPD6+4A9fddj7C3uE2dXnxJjIQcEGmzTOm4mB3SFeCXhiOyVQ6EMDXN1O4GAXewmuNBhfpoEnGK6F5kgNbBbkHVd1dSMH+eijgjhkPeBg+G8vBfZ5sR0MtHroscmW7K3OHlGY1rNTxQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850158; c=relaxed/simple; bh=Ns+bBSHgrTXmj1SSwEbwfZzxFWa9rERHnmbAfYSKc7M=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Z34RhabtvnK1fOBc4LCXYNu31lsLVmQ+KdhrL//hZMRg7SfvmbK/2WBca0ttcyVMxDpHwfeBaoBEerxQNxoNeJA78tgcfdVSxJkoCfr/iKWoClGPUpcmbCsZlziMDDJt/Fa4JUKcYQgyqvAd86Zjs/wGniib6i/7dBtHWPLLm9Y= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=KFUqv9od; arc=none smtp.client-ip=209.85.166.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="KFUqv9od" Received: by mail-io1-f52.google.com with SMTP id ca18e2360f4ac-7d67d1073easo9935139f.0 for ; Thu, 11 Apr 2024 08:42:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850156; x=1713454956; 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=20vecyLBIH0cjHhN+kgNwf6a7WaRA+wJVBbxynnYORc=; b=KFUqv9odqmjNWBjmmYk2vdsFmAPk4EyQBUPhw3dJt4VO93ja1r8y93ZLdLU5Xn1QHB fC98A2vJN8wqIZGhCkjEMPRGJK6n4jAnLTzPIdYEV4fbMPV76iwJL6xyt3zNvAVp/yI6 yDc+RPh3PBjqOQdlcp2WGkv6eS+NQWfTv64szX8iZwp55ZGvcd1e497/klSN5OijUWQQ 0xUR5u2de7kau6k7el4O75GwOn98o1t3ydRG8BPtnw3rZCilGNu/Bzqy7E2eQLtTuYSE FS2DmSvEt/WzoFS5BeFtjVfa6WHHMdSCtL3JIccOFWKbUbombP4XAWVH4hrw1Ys7CQ3r mRqA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850156; x=1713454956; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=20vecyLBIH0cjHhN+kgNwf6a7WaRA+wJVBbxynnYORc=; b=sYn70/r2JGao7JK7uuUeAXmBdT62bpWBR2ILY2lh6AUl9ZDEWVi+O1pV/gTudbd7ff Ojkj6x/k10Hcv0vAVO3gYocygVp2tya4pSbLM6iOyylZG/4BMUMj0PFusxInkosMFYUp 6QZJzybqKB7Ce5SOexHVu63zQeqSDZM22J56TgoJ0JJ8XWqQdSVK/x7yS2Ltd2dXjPkO +jKNDZ6RPNDap9cMtpVXhH8owrLhdHmqsZml2bkKsS+H1mAqx1pzYsxBn5Owqepx91o0 aYDheSYD2cbu0JHAbp/0MAQOuSVA1FpL1izMh5bgjk0eFMfQNhgzHiDMj8H9CBNK4BoW skCw== X-Gm-Message-State: AOJu0YzGXuVvFzwidHPEpKxzOqtgCOLF/EchqFpA48AtIcMhcGZIx1AX oyfx2zGzKZwwttddkmpek8pLehCTHWEY72BOOKvvjfijZ+/UGhov5Ku5BQtcxXwTNvvfN2biTAG C X-Google-Smtp-Source: AGHT+IFSnwMc7q4qiOpR4cgfomgh26CNXyK66p/ZcKo/AkIznzFMaESLCWdPKNByF9cTgMz7i4Q2iQ== X-Received: by 2002:a05:6602:84:b0:7d6:9d75:6de2 with SMTP id h4-20020a056602008400b007d69d756de2mr55672iob.2.1712850156355; Thu, 11 Apr 2024 08:42:36 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.42.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:42:35 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 391/437] EDAC/i5100: convert to read/write iterators Date: Thu, 11 Apr 2024 09:18:51 -0600 Message-ID: <20240411153126.16201-392-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/edac/i5100_edac.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/drivers/edac/i5100_edac.c b/drivers/edac/i5100_edac.c index d470afe65001..d35064a74fe2 100644 --- a/drivers/edac/i5100_edac.c +++ b/drivers/edac/i5100_edac.c @@ -924,20 +924,19 @@ static void i5100_do_inject(struct mem_ctl_info *mci) } =20 #define to_mci(k) container_of(k, struct mem_ctl_info, dev) -static ssize_t inject_enable_write(struct file *file, const char __user *d= ata, - size_t count, loff_t *ppos) +static ssize_t inject_enable_write(struct kiocb *iocb, struct iov_iter *fr= om) { - struct device *dev =3D file->private_data; + struct device *dev =3D iocb->ki_filp->private_data; struct mem_ctl_info *mci =3D to_mci(dev); =20 i5100_do_inject(mci); =20 - return count; + return iov_iter_count(from); } =20 static const struct file_operations i5100_inject_enable_fops =3D { .open =3D simple_open, - .write =3D inject_enable_write, + .write_iter =3D inject_enable_write, .llseek =3D generic_file_llseek, }; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f46.google.com (mail-io1-f46.google.com [209.85.166.46]) (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 24A8C1F6F26 for ; Thu, 11 Apr 2024 15:42:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850160; cv=none; b=KsOa5LzUEWlAhy1H/zUKr+vThmx2C1KKuVeyJ+VhLdoQ1ikPUxUMnvZFoC4peBpDOs2CMcfMdeOFqVHRJjmnNAZ33zXSUzJPfyUf6IKEf2VN6tK4Wd3B9+Yu+GL8m87SB2C43GxtYNzfyK5lcGQDnxKdsMV/j7C3XZU50pfk/64= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850160; c=relaxed/simple; bh=Vrqcyec6hF25kX7zHSZZ5y7GOl5rDk+A82uY/0vxUJc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=o8NJ1Aqu5aA4otE9+ZI83YIO/QagPEbU6mqMWDiYqh9WOhxdhQ4L/2nMEONoyrV3zxbrLJ+te3YlI8OEKF56fY3/ZjC5wha1i4pmbVc+GNeVInkkzTRbp78+CdLWbLDISnpa4RThx/sbMRF5Hg828wBjcvHe01fKW/bJFpQcHmg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=mVLEirOo; arc=none smtp.client-ip=209.85.166.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="mVLEirOo" Received: by mail-io1-f46.google.com with SMTP id ca18e2360f4ac-7cc0e831e11so170650939f.1 for ; Thu, 11 Apr 2024 08:42:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850158; x=1713454958; 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=6AsYF62zoKQ6xHxSJoAgeCHEcijXHfRzPoZD4kOFFmI=; b=mVLEirOoDlqmgO0w9H9gxlbALLdQuScCVDy369vgTrwcVwommeYw4UpGUklzHaj4UV B9ENJ9mw4iyeOCtLUoR/gT4eEH4AuEhxlndBJJiuDubSfqqTyHV89Knb3Rr+j2jaah8M +WIg/mEN++3kixCU+USjgIb7L6Xche8WMsCksvSI3+cry4DyBbeHbgiR5Bi4jkmSa6Mc /ITmb+xm+aKaOTfHC2zqrSSjsFCE8AuKeImTf985CswPeqsXxW//HeTFr5nCygkumgu5 iKXikpqlpn31/1V4ZeRSJXCqCxYAGPrsCbsYuzfJKhdfZp9Av0LjPrmjrpqvDFLFh1KE yJfQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850158; x=1713454958; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=6AsYF62zoKQ6xHxSJoAgeCHEcijXHfRzPoZD4kOFFmI=; b=LTVW71BBPp3Qh/PsAf5RNlP26RNQJWuOgtgYRExByYz31WoeWFkBIVmCOJOduzNRN6 2GoqP7f4l8MTv6kS2eoNktlvfzv0Fn57dDoYRiSSlX/cnjkjd/aXd9g64kaibYBwasDU WbNqrY/WK1QpSBMhwAyUUATkamWJDMLzE/3X8jU0pVqEs5olb9ecDCEk/d0WE5nhA0VG YybzzpwuJNQUztSJK9jBSpaAKwzaeVTnYHAOoMDcDdyN0ktOG0io03M4WzMp1OriuelJ hA9mJeTFw3sEwX0ogzIBeJ7AfcPd+BG6CP+vzqwxWxNPxXMCNO/NbWOSj8RXfXUbGTW+ 5h2A== X-Gm-Message-State: AOJu0YwgRn3OiQVt7WlgHlZa0PX5EIoCtkVf46HaesQdI1pSyuwUhrPR 1PBci/s/C9zQIlpfwli29XyX4uhUaaqdKVFsvY6l7IVKb8dtvfkX2WEfXcUHqIYgxWDRbLk+xNb / X-Google-Smtp-Source: AGHT+IGmDy3Lrp9Xa7qppe8MiNfgohckfX1lXC3Zl14juX584SBJh8/sedFE7cxdJNPyukdee14BJA== X-Received: by 2002:a5e:9907:0:b0:7d6:751f:192 with SMTP id t7-20020a5e9907000000b007d6751f0192mr198506ioj.2.1712850158005; Thu, 11 Apr 2024 08:42:38 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.42.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:42:36 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 392/437] EDAC/altera: convert to read/write iterators Date: Thu, 11 Apr 2024 09:18:52 -0600 Message-ID: <20240411153126.16201-393-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/edac/altera_edac.c | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/drivers/edac/altera_edac.c b/drivers/edac/altera_edac.c index ae17ce4d9722..889722751163 100644 --- a/drivers/edac/altera_edac.c +++ b/drivers/edac/altera_edac.c @@ -115,13 +115,13 @@ static irqreturn_t altr_sdram_mc_err_handler(int irq,= void *dev_id) return IRQ_NONE; } =20 -static ssize_t altr_sdr_mc_err_inject_write(struct file *file, - const char __user *data, - size_t count, loff_t *ppos) +static ssize_t altr_sdr_mc_err_inject_write(struct kiocb *iocb, + struct iov_iter *from) { - struct mem_ctl_info *mci =3D file->private_data; + struct mem_ctl_info *mci =3D iocb->ki_filp->private_data; struct altr_sdram_mc_data *drvdata =3D mci->pvt_info; const struct altr_sdram_prv_data *priv =3D drvdata->data; + size_t count =3D iov_iter_count(from); u32 *ptemp; dma_addr_t dma_handle; u32 reg, read_reg; @@ -187,7 +187,7 @@ static ssize_t altr_sdr_mc_err_inject_write(struct file= *file, =20 static const struct file_operations altr_sdr_mc_debug_inject_fops =3D { .open =3D simple_open, - .write =3D altr_sdr_mc_err_inject_write, + .write_iter =3D altr_sdr_mc_err_inject_write, .llseek =3D generic_file_llseek, }; =20 @@ -640,30 +640,29 @@ altr_edac_device_trig(struct file *file, const char _= _user *user_buf, =20 return count; } +FOPS_WRITE_ITER_HELPER(altr_edac_device_trig); =20 static const struct file_operations altr_edac_device_inject_fops __maybe_u= nused =3D { .open =3D simple_open, - .write =3D altr_edac_device_trig, + .write_iter =3D altr_edac_device_trig_iter, .llseek =3D generic_file_llseek, }; =20 static ssize_t __maybe_unused -altr_edac_a10_device_trig(struct file *file, const char __user *user_buf, - size_t count, loff_t *ppos); +altr_edac_a10_device_trig_iter(struct kiocb *iocb, struct iov_iter *from); =20 static const struct file_operations altr_edac_a10_device_inject_fops __may= be_unused =3D { .open =3D simple_open, - .write =3D altr_edac_a10_device_trig, + .write_iter =3D altr_edac_a10_device_trig_iter, .llseek =3D generic_file_llseek, }; =20 static ssize_t __maybe_unused -altr_edac_a10_device_trig2(struct file *file, const char __user *user_buf, - size_t count, loff_t *ppos); +altr_edac_a10_device_trig2_iter(struct kiocb *iocb, struct iov_iter *from); =20 static const struct file_operations altr_edac_a10_device_inject2_fops __ma= ybe_unused =3D { .open =3D simple_open, - .write =3D altr_edac_a10_device_trig2, + .write_iter =3D altr_edac_a10_device_trig2_iter, .llseek =3D generic_file_llseek, }; =20 @@ -1760,6 +1759,7 @@ altr_edac_a10_device_trig(struct file *file, const ch= ar __user *user_buf, =20 return count; } +FOPS_WRITE_ITER_HELPER(altr_edac_a10_device_trig); =20 /* * The Stratix10 EDAC Error Injection Functions differ from Arria10 @@ -1823,6 +1823,7 @@ altr_edac_a10_device_trig2(struct file *file, const c= har __user *user_buf, =20 return count; } +FOPS_WRITE_ITER_HELPER(altr_edac_a10_device_trig2); =20 static void altr_edac_a10_irq_handler(struct irq_desc *desc) { --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f46.google.com (mail-io1-f46.google.com [209.85.166.46]) (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 7330A1F785E for ; Thu, 11 Apr 2024 15:42:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850162; cv=none; b=g4AUWLHLJLL+k8/OpADgXDUGSne+eYKvaTR71+uTptCl9yY6ye2lq2yV3nPZVVtUdM04zXwej/8bVgpNgDVeeHqopiQVar2zyZT7+o+NbY7d1VgYVMwDRYmIzYtvJhgRCQGqL5yoBFY2iBL3HtKmWpo0FhL4x3dRH6oPvti+gG8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850162; c=relaxed/simple; bh=jvpsN8KlOXxN4/oiUFPe6KRKbMwKQxQcdzBPB1oeLEM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=UM543Qsv+wC56pD6vMnf8+f0++uumAnMmeQNtACDkRkWpRTLUbqyB5MafiCw4nhT3fFqnz2dkUypieWedxGCPYRra5ikWXa5m6qyYHwXvI2D6PLF5w/eDiObqIbtfLKRhJKYgm8MksCENNhP8rm979x7lpNMnkts8WbHqCJfAYU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=I9EE63Hd; arc=none smtp.client-ip=209.85.166.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="I9EE63Hd" Received: by mail-io1-f46.google.com with SMTP id ca18e2360f4ac-7d6812b37a6so9096339f.0 for ; Thu, 11 Apr 2024 08:42:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850160; x=1713454960; 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=CA4TCE+h/Fv0oSXozg/ZSJqLNUD+oRGPkgpVB6waRDI=; b=I9EE63HdH8btZLLm7yTg/LxWfCqw7ytOAvTr5jfHOp+LjAdoXsSgRnZOkAWkvAdH/X cjVpNMw5F0zE5tZ5eRkZ+w/g71MsH2DkmQtlnzIn4DP+wwoKGPfv8XON3c9k6od7TCiK 7JczSUnlhY5DgPLKqOvHsOeu9ksb+PhbR20vxn2S4wqyuvyrNozer/BUKpxErAEfb6td LypKeKWdp2EBPah9493IffJRnZjx5A8vLM8hWZk7UYNCtPsKoT1nLfBrExXZZ37XsF9B 2mgTXQVSHUwZ75TNAy6kxo3dJgiyprsooDtNaA62WcWwismgCPYyy8c2zffFJNohb94F 9E2A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850160; x=1713454960; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=CA4TCE+h/Fv0oSXozg/ZSJqLNUD+oRGPkgpVB6waRDI=; b=K5Bxi8XX7hePWTqG66i5NC6HhvUH9jpPeP6RlgCJT40S4BiV/t8AT6Bu6zk3hiRFbz 0yMD8czi18em4szzgL6qCQ4UeRVzNW7SHYx/MP2Lv5hr/76G48HgBqooWkOlnnSJbvCc /Kek6yJiVxVGWONNO0L8ge0TVf67gtfwZ/bgLGl5+jWU9ghyMP50VBjTpv05vWzCp0yi zYbKTX7FKiVB/04J2nPhryq779GFXqHOf1TfMcR8H49agtZIG08IHhPv/itciz1FstU6 DcHfu6g1gzV4urQbIEtypTmL0gAdtnMMNwqB5rx3IliPqABU5k7QRTsLHeRVPNVB6VFJ PRbA== X-Gm-Message-State: AOJu0YzmjPMDlPdgyqL2CGzqnPmkny06qFnE2HdqGOVZwWA9jfeitSGI HFBAivmbii1g0zhLYU20E50rG1/TdDNj+NxX2Cs+u/OWhE/1N5GhJb4kjqmwdpaD7gIAyKmCX5P z X-Google-Smtp-Source: AGHT+IFaE6d5/Wbov/yQXes3u6eSwUkrIIkhTeWtyiBPrcyL/ydwRB6qUhiCROlX4r+k/j3gwc6s4w== X-Received: by 2002:a6b:5b10:0:b0:7d0:bd2b:43ba with SMTP id v16-20020a6b5b10000000b007d0bd2b43bamr239249ioh.0.1712850160160; Thu, 11 Apr 2024 08:42:40 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.42.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:42:38 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 393/437] EDAC/debugfs: convert to read/write iterators Date: Thu, 11 Apr 2024 09:18:53 -0600 Message-ID: <20240411153126.16201-394-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/edac/altera_edac.c | 37 +++++++++++++++++-------------------- drivers/edac/debugfs.c | 9 ++++----- 2 files changed, 21 insertions(+), 25 deletions(-) diff --git a/drivers/edac/altera_edac.c b/drivers/edac/altera_edac.c index 889722751163..45536199e9b0 100644 --- a/drivers/edac/altera_edac.c +++ b/drivers/edac/altera_edac.c @@ -571,20 +571,20 @@ static irqreturn_t altr_edac_device_handler(int irq, = void *dev_id) } =20 static ssize_t __maybe_unused -altr_edac_device_trig(struct file *file, const char __user *user_buf, - size_t count, loff_t *ppos) +altr_edac_device_trig(struct kiocb *iocb, struct iov_iter *from) =20 { u32 *ptemp, i, error_mask; int result =3D 0; u8 trig_type; unsigned long flags; - struct edac_device_ctl_info *edac_dci =3D file->private_data; + struct edac_device_ctl_info *edac_dci =3D iocb->ki_filp->private_data; struct altr_edac_device_dev *drvdata =3D edac_dci->pvt_info; const struct edac_device_prv_data *priv =3D drvdata->data; + size_t count =3D iov_iter_count(from); void *generic_ptr =3D edac_dci->dev; =20 - if (!user_buf || get_user(trig_type, user_buf)) + if (get_iter(trig_type, from)) return -EFAULT; =20 if (!priv->alloc_mem) @@ -640,29 +640,28 @@ altr_edac_device_trig(struct file *file, const char _= _user *user_buf, =20 return count; } -FOPS_WRITE_ITER_HELPER(altr_edac_device_trig); =20 static const struct file_operations altr_edac_device_inject_fops __maybe_u= nused =3D { .open =3D simple_open, - .write_iter =3D altr_edac_device_trig_iter, + .write_iter =3D altr_edac_device_trig, .llseek =3D generic_file_llseek, }; =20 static ssize_t __maybe_unused -altr_edac_a10_device_trig_iter(struct kiocb *iocb, struct iov_iter *from); +altr_edac_a10_device_trig(struct kiocb *iocb, struct iov_iter *from); =20 static const struct file_operations altr_edac_a10_device_inject_fops __may= be_unused =3D { .open =3D simple_open, - .write_iter =3D altr_edac_a10_device_trig_iter, + .write_iter =3D altr_edac_a10_device_trig, .llseek =3D generic_file_llseek, }; =20 static ssize_t __maybe_unused -altr_edac_a10_device_trig2_iter(struct kiocb *iocb, struct iov_iter *from); +altr_edac_a10_device_trig2(struct kiocb *iocb, struct iov_iter *from); =20 static const struct file_operations altr_edac_a10_device_inject2_fops __ma= ybe_unused =3D { .open =3D simple_open, - .write_iter =3D altr_edac_a10_device_trig2_iter, + .write_iter =3D altr_edac_a10_device_trig2, .llseek =3D generic_file_llseek, }; =20 @@ -1734,17 +1733,17 @@ MODULE_DEVICE_TABLE(of, altr_edac_a10_device_of_mat= ch); */ =20 static ssize_t __maybe_unused -altr_edac_a10_device_trig(struct file *file, const char __user *user_buf, - size_t count, loff_t *ppos) +altr_edac_a10_device_trig(struct kiocb *iocb, struct iov_iter *from) { - struct edac_device_ctl_info *edac_dci =3D file->private_data; + struct edac_device_ctl_info *edac_dci =3D iocb->ki_filp->private_data; struct altr_edac_device_dev *drvdata =3D edac_dci->pvt_info; const struct edac_device_prv_data *priv =3D drvdata->data; void __iomem *set_addr =3D (drvdata->base + priv->set_err_ofst); + size_t count =3D iov_iter_count(from); unsigned long flags; u8 trig_type; =20 - if (!user_buf || get_user(trig_type, user_buf)) + if (get_iter(trig_type, from)) return -EFAULT; =20 local_irq_save(flags); @@ -1759,7 +1758,6 @@ altr_edac_a10_device_trig(struct file *file, const ch= ar __user *user_buf, =20 return count; } -FOPS_WRITE_ITER_HELPER(altr_edac_a10_device_trig); =20 /* * The Stratix10 EDAC Error Injection Functions differ from Arria10 @@ -1767,17 +1765,17 @@ FOPS_WRITE_ITER_HELPER(altr_edac_a10_device_trig); * Inject the error into the memory and then readback to trigger the IRQ. */ static ssize_t __maybe_unused -altr_edac_a10_device_trig2(struct file *file, const char __user *user_buf, - size_t count, loff_t *ppos) +altr_edac_a10_device_trig2(struct kiocb *iocb, struct iov_iter *from) { - struct edac_device_ctl_info *edac_dci =3D file->private_data; + struct edac_device_ctl_info *edac_dci =3D iocb->ki_filp->private_data; struct altr_edac_device_dev *drvdata =3D edac_dci->pvt_info; const struct edac_device_prv_data *priv =3D drvdata->data; void __iomem *set_addr =3D (drvdata->base + priv->set_err_ofst); + size_t count =3D iov_iter_count(from); unsigned long flags; u8 trig_type; =20 - if (!user_buf || get_user(trig_type, user_buf)) + if (get_iter(trig_type, from)) return -EFAULT; =20 local_irq_save(flags); @@ -1823,7 +1821,6 @@ altr_edac_a10_device_trig2(struct file *file, const c= har __user *user_buf, =20 return count; } -FOPS_WRITE_ITER_HELPER(altr_edac_a10_device_trig2); =20 static void altr_edac_a10_irq_handler(struct irq_desc *desc) { diff --git a/drivers/edac/debugfs.c b/drivers/edac/debugfs.c index 4804332d9946..a2b8458a4c1a 100644 --- a/drivers/edac/debugfs.c +++ b/drivers/edac/debugfs.c @@ -3,14 +3,13 @@ =20 static struct dentry *edac_debugfs; =20 -static ssize_t edac_fake_inject_write(struct file *file, - const char __user *data, - size_t count, loff_t *ppos) +static ssize_t edac_fake_inject_write(struct kiocb *iocb, struct iov_iter = *from) { - struct device *dev =3D file->private_data; + struct device *dev =3D iocb->ki_filp->private_data; struct mem_ctl_info *mci =3D to_mci(dev); static enum hw_event_mc_err_type type; u16 errcount =3D mci->fake_inject_count; + size_t count =3D iov_iter_count(from); =20 if (!errcount) errcount =3D 1; @@ -38,7 +37,7 @@ static ssize_t edac_fake_inject_write(struct file *file, =20 static const struct file_operations debug_fake_inject_fops =3D { .open =3D simple_open, - .write =3D edac_fake_inject_write, + .write_iter =3D edac_fake_inject_write, .llseek =3D generic_file_llseek, }; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f46.google.com (mail-io1-f46.google.com [209.85.166.46]) (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 201AC1F7874 for ; Thu, 11 Apr 2024 15:42:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850164; cv=none; b=cuM+jPC6p2NCoIsEPgbRjFSNjm74tgXg7lGHAdBFPIpcH01vAW2oiPqk9g4/kT3aK9YIL22S4zf/YznDJNy48go3+zZIYs7l6UergEqKthc2rHP4Rxk09Ed7NDdg7FD/pkGeMKzprafhY3j92n3+SrHZ1KRG58jcttfifoV0++M= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850164; c=relaxed/simple; bh=gAk05EH19UAZRUTc19SOoBN9Gb3h0YStlhtozE7ap2c=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=MitAcivNkbQj5wjKbxqY0FQ6OjAzhMUWUV9wL611SsrgBH7FL8n9ZiGmZkJp/GAEyWV41Ssep8lAXGqTfcPkYnJqDAjbS7Yvg+OqUnNvMOMDHqmEnBFmsaVk82e8ey0mkM418uAmWW24V8BapCycYx1UekaGcNHDzxWe1A2LQBA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=R6F/EN5N; arc=none smtp.client-ip=209.85.166.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="R6F/EN5N" Received: by mail-io1-f46.google.com with SMTP id ca18e2360f4ac-7d6112ba6baso58270239f.1 for ; Thu, 11 Apr 2024 08:42:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850162; x=1713454962; 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=mWOu08smcrzd/mJ5G2zeBk679SixjLGMg/kkuPWqYhs=; b=R6F/EN5NLYc32NCpc2LcKUik/mFIo0OVlSeX5BbgA8JhZ8QIyNmddXvPXTJrhBDdDe lzpcvzU9Jz+zwB6wILKqp24DTBKIm8D3dVDwhz49qJ1bFhcIk8B788xwP5XCVQCmEG3s tfa7TJ7oQoNmmJzTe20iKDWyJ3su+f7hp9N8hA2ABkOvKUZ6nV4jKBnRKACZzmwWgawW 6TQWWJae8HfxOCIt7LbTbhQJiA28SFsNZnTF3CDaGCZbN6DDF/58G3i2/QavOqulg2co MFUHqONl7lOTkRrqmUrdH07JO9/siSPJqBjgXuoC5S1P0Xizy2HqW97Ykvz+xUSJ/FLk kKxA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850162; x=1713454962; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=mWOu08smcrzd/mJ5G2zeBk679SixjLGMg/kkuPWqYhs=; b=eq59p39IIEqIBVFc5W6CfbH3sNpjvk3px4/nLrPEFrc/kuYXD471z5GJMrXlkTi/iD 0Vnq/pf/PH6KbTLO38o+jUfdKrxkC0sbIr1KLzEHNIOmmXvek2s+7y1nwcp+ACY9/hvb +q5L7OobAG6BuBLrlqtk7y/p0wnYVhBXxp/0wSYh3Rj4kaj2/Isra4e7pOjWAq4JFup2 ddBLTxytGxOa0wEwiGifNOo5/bwj+IiQ2jz/8ORNmSXdSmI/nV3IfaigUhn9myfksiaM QZt1W7vIgeEEXDMh2DwDWLZ6/sfKQXrtxHQQwasQ9j7SOuqyT6aQ5isfmeRbY5BqCkWk 6LCw== X-Gm-Message-State: AOJu0YxP5Llz0jGR4mKC9mD/J1cNUr3JhS+hn8EAdZ95rz38K6wYiFrk liDeV+nRIQ3/0zTmCQ+eO8OcHMjXlnR5NDLni3Lm3BM3R4oldv9rW1KwIRhBYX7S/8658rRLQ2O g X-Google-Smtp-Source: AGHT+IHTRSKtHBfiZphx13tJYfdKn73f270WntxG5CMhhspJu3UQV8YH+ezCv0l3lVnbmDlt3WU4dA== X-Received: by 2002:a6b:f312:0:b0:7d5:de23:13a9 with SMTP id m18-20020a6bf312000000b007d5de2313a9mr179491ioh.1.1712850162060; Thu, 11 Apr 2024 08:42:42 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.42.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:42:40 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 394/437] drivers/hsi: convert to read/write iterators Date: Thu, 11 Apr 2024 09:18:54 -0600 Message-ID: <20240411153126.16201-395-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/hsi/clients/hsi_char.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/drivers/hsi/clients/hsi_char.c b/drivers/hsi/clients/hsi_char.c index 71ce7dbfe31d..47ddfe14459b 100644 --- a/drivers/hsi/clients/hsi_char.c +++ b/drivers/hsi/clients/hsi_char.c @@ -409,10 +409,10 @@ static inline void hsc_tx_get(struct hsi_client *cl, = struct hsc_tx_config *txc) txc->arb_mode =3D cl->tx_cfg.arb_mode; } =20 -static ssize_t hsc_read(struct file *file, char __user *buf, size_t len, - loff_t *ppos __maybe_unused) +static ssize_t hsc_read(struct kiocb *iocb, struct iov_iter *to) { - struct hsc_channel *channel =3D file->private_data; + struct hsc_channel *channel =3D iocb->ki_filp->private_data; + size_t len =3D iov_iter_count(to); struct hsi_msg *msg; ssize_t ret; =20 @@ -451,8 +451,8 @@ static ssize_t hsc_read(struct file *file, char __user = *buf, size_t len, msg =3D hsc_get_first_msg(channel, &channel->rx_msgs_queue); if (msg) { if (msg->status !=3D HSI_STATUS_ERROR) { - ret =3D copy_to_user((void __user *)buf, - sg_virt(msg->sgt.sgl), hsc_msg_len_get(msg)); + ret =3D !copy_to_iter_full(sg_virt(msg->sgt.sgl), + hsc_msg_len_get(msg), to); if (ret) ret =3D -EFAULT; else @@ -468,10 +468,10 @@ static ssize_t hsc_read(struct file *file, char __use= r *buf, size_t len, return ret; } =20 -static ssize_t hsc_write(struct file *file, const char __user *buf, size_t= len, - loff_t *ppos __maybe_unused) +static ssize_t hsc_write(struct kiocb *iocb, struct iov_iter *from) { - struct hsc_channel *channel =3D file->private_data; + struct hsc_channel *channel =3D iocb->ki_filp->private_data; + size_t len =3D iov_iter_count(from); struct hsi_msg *msg; ssize_t ret; =20 @@ -488,7 +488,7 @@ static ssize_t hsc_write(struct file *file, const char = __user *buf, size_t len, clear_bit(HSC_CH_WRITE, &channel->flags); return -ENOSPC; } - if (copy_from_user(sg_virt(msg->sgt.sgl), (void __user *)buf, len)) { + if (!copy_from_iter_full(sg_virt(msg->sgt.sgl), len, from)) { ret =3D -EFAULT; goto out; } @@ -655,8 +655,8 @@ static int hsc_release(struct inode *inode __maybe_unus= ed, struct file *file) =20 static const struct file_operations hsc_fops =3D { .owner =3D THIS_MODULE, - .read =3D hsc_read, - .write =3D hsc_write, + .read_iter =3D hsc_read, + .write_iter =3D hsc_write, .unlocked_ioctl =3D hsc_ioctl, .open =3D hsc_open, .release =3D hsc_release, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-il1-f173.google.com (mail-il1-f173.google.com [209.85.166.173]) (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 C54521F82C6 for ; Thu, 11 Apr 2024 15:42:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.173 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850166; cv=none; b=EY9zdETSSRFnFOWN6tC/ESDwQL4EtNbYF3bNfcUbpUZsLZqk8n+tT0BVHDU1n84QGUzli75tf0FivF/4Wv0GRVO4U84t83cTRaiQqlrH3YrtVVH+0gNG2isAVFaNzPggpxOScDyrl1Q0WK22Ay6Vk1Wp0jw0n7Bj6dwGS5JhJrI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850166; c=relaxed/simple; bh=yy/6GmbRnjGCw0g0ryIHbYYSRWyWwmvA16ZADkWlDLE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=OPKkKQkj//P0awQ94+hSvcHWKXm23Kvmp12hPLKa80pQAV8D1Cx26rh0jajFII1pDiYlPjLpaZvN90exdeeTalj7X57WdBbpEWkKb+xrRm/KbwV7gtUZ8kgOM3swWmGJfcU+Ubq6w9w+ENIc9Z9hyoJuKIGOfalsFczqi+G9zTw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=oLAwG6yk; arc=none smtp.client-ip=209.85.166.173 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="oLAwG6yk" Received: by mail-il1-f173.google.com with SMTP id e9e14a558f8ab-36a34b68277so123945ab.0 for ; Thu, 11 Apr 2024 08:42:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850163; x=1713454963; 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=fj6UziE2dihlMcRRDHp7rGOT3rMAa8UR8NL//b4tju8=; b=oLAwG6ykxpffoAZzBMut/ohchbjEPCP6qPUmqs0jhQhXB8P+28kgfuMgMYP20P/S1n 4AO/HDKIBs8TOh2BOm2dILvP7y+KSaWsuMNVGgEd22MdXg2O9CLj3Kem4RX2BR6j3iWP olq5jgnSiQxTcmM5BDyQU1r+HjsFvwd1YhcSmN9ILzLup55/ZD42JYf5Ur8cHJT5l047 nUiocqGDpkWWy2ffp5DR2Crt3OfiscVOX4PoGXpz3x2tZEJD51stbCbjDO/LvjlrzNlQ /bHGVS+8tg3IyXRwha1rQ2zHBKU3FIrEIz6wgJimVory10yDc1OLh+iK5QUOM3olpGc2 UCzw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850163; x=1713454963; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=fj6UziE2dihlMcRRDHp7rGOT3rMAa8UR8NL//b4tju8=; b=WdgfYKSUl58gIsC7uXUzu+cHVWESe4OMOOyi+K2WQE/geN8Z4Iz3rwH9XNnag4nem1 t93gHGRgd8QO8p0KhRyLLNiG+qXxC4eH3gsXvRp+fH8XqUaHqrNWBYqsQqGc5qFDqXMs GNrZHg8p3rtwmkh3wOZgCz6X65jvXT5iHax4/KHhaT6WGkd44MCtg7EJzXQBi18wHQas o1LB3nryaDZYwQZEGm16b/eubvrH39eJxP9ARGDU3Eb0/YzXJjxPfvblCB6dMoSxBBrx apOXUcUzhcbMCm40gC4+4XGxgBkDWQQM9B5B5KdAWDzNmYBL+Rlv1EV7WCdcON7wiOMD /9vQ== X-Gm-Message-State: AOJu0YxLKcPxxhtCnU9G8LBCOxu/yO83lwMrH3SVB8RfBKFLRSP0WzGG bLr5Vdxe2MeVxE9wM0FKV75+WwZJVLPpXq2ojTf+uNA9JAjnFiBJeRQwlh8SD4GZRa8DLl9Ujq2 5 X-Google-Smtp-Source: AGHT+IF9XT5rUmB9QDMVaBtp9Y4fdHKeii3oUC+8dPlDAWql5xz9CIt+pA9tC8yHgAtq6LSpYXenRA== X-Received: by 2002:a05:6602:4ed7:b0:7d5:ddc8:504d with SMTP id gk23-20020a0566024ed700b007d5ddc8504dmr203729iob.0.1712850163701; Thu, 11 Apr 2024 08:42:43 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.42.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:42:42 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 395/437] hsi: clients: cmt_speech: convert to read/write iterators Date: Thu, 11 Apr 2024 09:18:55 -0600 Message-ID: <20240411153126.16201-396-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/hsi/clients/cmt_speech.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/drivers/hsi/clients/cmt_speech.c b/drivers/hsi/clients/cmt_spe= ech.c index daa8e1bff5d9..8de1beb45119 100644 --- a/drivers/hsi/clients/cmt_speech.c +++ b/drivers/hsi/clients/cmt_speech.c @@ -1126,10 +1126,10 @@ static __poll_t cs_char_poll(struct file *file, pol= l_table *wait) return ret; } =20 -static ssize_t cs_char_read(struct file *file, char __user *buf, size_t co= unt, - loff_t *unused) +static ssize_t cs_char_read(struct kiocb *iocb, struct iov_iter *to) { - struct cs_char *csdata =3D file->private_data; + struct cs_char *csdata =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(to); u32 data; ssize_t retval; =20 @@ -1152,7 +1152,7 @@ static ssize_t cs_char_read(struct file *file, char _= _user *buf, size_t count, =20 if (data) break; - if (file->f_flags & O_NONBLOCK) { + if (iocb->ki_filp->f_flags & O_NONBLOCK) { retval =3D -EAGAIN; goto out; } else if (signal_pending(current)) { @@ -1165,7 +1165,7 @@ static ssize_t cs_char_read(struct file *file, char _= _user *buf, size_t count, finish_wait(&csdata->wait, &wait); } =20 - retval =3D put_user(data, (u32 __user *)buf); + retval =3D put_iter(data, to); if (!retval) retval =3D sizeof(data); =20 @@ -1173,10 +1173,10 @@ static ssize_t cs_char_read(struct file *file, char= __user *buf, size_t count, return retval; } =20 -static ssize_t cs_char_write(struct file *file, const char __user *buf, - size_t count, loff_t *unused) +static ssize_t cs_char_write(struct kiocb *iocb, struct iov_iter *from) { - struct cs_char *csdata =3D file->private_data; + struct cs_char *csdata =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); u32 data; int err; ssize_t retval; @@ -1184,7 +1184,7 @@ static ssize_t cs_char_write(struct file *file, const= char __user *buf, if (count < sizeof(data)) return -EINVAL; =20 - if (get_user(data, (u32 __user *)buf)) + if (get_iter(data, from)) retval =3D -EFAULT; else retval =3D count; @@ -1349,8 +1349,8 @@ static int cs_char_release(struct inode *unused, stru= ct file *file) =20 static const struct file_operations cs_char_fops =3D { .owner =3D THIS_MODULE, - .read =3D cs_char_read, - .write =3D cs_char_write, + .read_iter =3D cs_char_read, + .write_iter =3D cs_char_write, .poll =3D cs_char_poll, .unlocked_ioctl =3D cs_char_ioctl, .mmap =3D cs_char_mmap, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f52.google.com (mail-io1-f52.google.com [209.85.166.52]) (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 D041B1F82FB for ; Thu, 11 Apr 2024 15:42:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850168; cv=none; b=SMD3DjFfxfzumU40OWhwP7JT0z6jZt2SL2d6jONsTD7R8EAdwNZTHMfjy6iESk+Bb4mzaT2AwjWvXcYma7ag/Fbf0oS4OMkLdiD77CviZHui++HEaXpHBZJ5kdAHK/ok6ctRkAkeUaLr53ntUA9X1HjIvEb+2Lfywo+X8lC+l1E= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850168; c=relaxed/simple; bh=VPNd7BEodQPboB1rp43ShwVSi7YJUv8EW2Nk6q7xmw0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=VGrVtQNEb2C2rU5iN535tte1B52y6P+TCKHST3KKTwzuXE/VHeUiGUWqOGNV2WOlthR70rtZZIA2T7l9CBN25NMktsvL//cNa7Yy0daRKpwJx07lssMJgbtpBtSWwJtUi0GhxdP7SG6vmkQusam/NodFdf+75xWLTX2UM7x8hss= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=SAC0jewo; arc=none smtp.client-ip=209.85.166.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="SAC0jewo" Received: by mail-io1-f52.google.com with SMTP id ca18e2360f4ac-7c8e4c0412dso69691639f.1 for ; Thu, 11 Apr 2024 08:42:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850165; x=1713454965; 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=Td0z5rsJzO3TviM45pZjL/WQ8TqnLCOHJ/AeSZk7a3Q=; b=SAC0jewoNkjf0y2E9l7CD9wTE8+spTew3rviO9amQlZ2jrMRyoJ6yCqKf5LMARhHLt f/qJA6cKQ92Tt2FPmUJ9KWimQ3YA/gCpnVtgMU1uPWan0cIY+77OJkA5VaCZjD2+UAKj nDlaGP4XJ97j54oMXTS2XYEqMD0smXB/IVUDWZyXXWiNXBE2IePTsP3S9xot1C4iFAyW 5pFInDT/TaX9Wr5zmxvy3Fdwj73dFfm70Wn8ad2dMYrTqeNkRwFtCbu/+jwPadsvEBGO +32yvsblcelga6aH7esnE+yFLa6Ylq3Pebkd5kIM3b/GYDpMGkknp5VcZiKi+iCiOmv2 HzxA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850165; x=1713454965; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Td0z5rsJzO3TviM45pZjL/WQ8TqnLCOHJ/AeSZk7a3Q=; b=Eo6Vj2ea8Ibw32KAkp6BPyBM1zVelkUWcKWfbXf+gK8WEqcvc4EC7lJqC9FypNdo9g o4AnAUZ1k3sr48U9wx54IsXACnIrqkqmJwYcndQ2NQDyzw5IIiYF9NV5XOfQwcIu3Dce UxH89jlLKs/T0E3GSpyDZ5gu0NBfnprqE3hEIIL8afyV0wOo1yeYO+xYdsHJKikm7xzJ 3cGV6O9vdXYERpK7ShJ0B0C2QiilgAHeTEWK94dF2be7GtJor+5Y1DBPEZPLqNo+Wjk6 4miK3vOGHtN+hmmnTlhD3NMtMhFPEMycqrUFRx3K89HOQ3yEDvBK2TK95iRKhbhSXdTc YCOQ== X-Gm-Message-State: AOJu0YzGSfwAOxS7YospyDGmnCRENa1Kg/RAcDMay5Qx7shDsEBqA5gE 6onghTtRXUYRJtrhd56PYOZQhn2Ue2b3hUzCEYciFzemKGj0SCvaOI5Wq0GU1gcTGWuiFTXlgW9 R X-Google-Smtp-Source: AGHT+IGfHVNdqgq4P4rPw4FAyb703V2ov+ZaMHAlH0V9lNDXbBLe09yQtYTCvA6KFYRAdWwtBq03Yw== X-Received: by 2002:a6b:c34e:0:b0:7d6:7b7c:8257 with SMTP id t75-20020a6bc34e000000b007d67b7c8257mr237636iof.0.1712850165511; Thu, 11 Apr 2024 08:42:45 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.42.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:42:43 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 396/437] macintosh: adb: convert to read/write iterators Date: Thu, 11 Apr 2024 09:18:56 -0600 Message-ID: <20240411153126.16201-397-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/macintosh/adb.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/drivers/macintosh/adb.c b/drivers/macintosh/adb.c index b0407c5fadb2..1b95911ded5d 100644 --- a/drivers/macintosh/adb.c +++ b/drivers/macintosh/adb.c @@ -713,11 +713,11 @@ static int adb_release(struct inode *inode, struct fi= le *file) return 0; } =20 -static ssize_t adb_read(struct file *file, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t adb_read(struct kiocb *iocb, struct iov_iter *to) { int ret =3D 0; - struct adbdev_state *state =3D file->private_data; + struct adbdev_state *state =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(to); struct adb_request *req; DECLARE_WAITQUEUE(wait, current); unsigned long flags; @@ -741,7 +741,7 @@ static ssize_t adb_read(struct file *file, char __user = *buf, if (req !=3D NULL || ret !=3D 0) break; =09 - if (file->f_flags & O_NONBLOCK) { + if (iocb->ki_filp->f_flags & O_NONBLOCK) { ret =3D -EAGAIN; break; } @@ -764,18 +764,18 @@ static ssize_t adb_read(struct file *file, char __use= r *buf, ret =3D req->reply_len; if (ret > count) ret =3D count; - if (ret > 0 && copy_to_user(buf, req->reply, ret)) + if (ret > 0 && !copy_to_iter_full(req->reply, ret, to)) ret =3D -EFAULT; =20 kfree(req); return ret; } =20 -static ssize_t adb_write(struct file *file, const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t adb_write(struct kiocb *iocb, struct iov_iter *from) { int ret/*, i*/; - struct adbdev_state *state =3D file->private_data; + struct adbdev_state *state =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); struct adb_request *req; =20 if (count < 2 || count > sizeof(req->data)) @@ -794,7 +794,7 @@ static ssize_t adb_write(struct file *file, const char = __user *buf, req->complete =3D 0; =09 ret =3D -EFAULT; - if (copy_from_user(req->data, buf, count)) + if (!copy_from_iter_full(req->data, count, from)) goto out; =20 atomic_inc(&state->n_pending); @@ -843,8 +843,8 @@ static ssize_t adb_write(struct file *file, const char = __user *buf, static const struct file_operations adb_fops =3D { .owner =3D THIS_MODULE, .llseek =3D no_llseek, - .read =3D adb_read, - .write =3D adb_write, + .read_iter =3D adb_read, + .write_iter =3D adb_write, .open =3D adb_open, .release =3D adb_release, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f54.google.com (mail-io1-f54.google.com [209.85.166.54]) (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 0D7911F8C90 for ; Thu, 11 Apr 2024 15:42:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850171; cv=none; b=HFugO1+a3BzOWzY/MW7oGTvDQE0AdkT9H7L3OQv8BauY8hRT69h6FTztdI7bKfgkAxCDxQlwwQO8po0FUzz4/x0TaRjhZfPrIw3UeagShggS+NnXtPQ3R/ziJYySOpuD4/gHGRF5PMhbv52ZjXvm4F6MBX/p5VhtXH8v0UaX4W4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850171; c=relaxed/simple; bh=STDVFpAkyKttnqWQSdobRcxuZdcuEEvFlaLOrWnl7+U=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=im+PkrcB5uZG1xEr7A3Y2Vp5gSysn+ZhxVDCLTWEmbU+cJi5+cqcp0aLor+9M6EQMZzt3u+/rg8kvlHHKhU1ZNAOJS91dzjlX06rVYANbq4avkbZ5XB7Sfm1627QCaygWCFvUv0U7+d41XaUxBC9z+3bcioKPsCv+jbe2bB6af8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=dRt0qSd/; arc=none smtp.client-ip=209.85.166.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="dRt0qSd/" Received: by mail-io1-f54.google.com with SMTP id ca18e2360f4ac-7d67d1073easo9938639f.0 for ; Thu, 11 Apr 2024 08:42:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850169; x=1713454969; 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=LPBWypckBhBGW4D+1tLL366jc5FZH7e47fvl0X8R8zs=; b=dRt0qSd/enVQN3bjuhmWVlxxH1ltzRKNDBUvz1gPjfGSwv5md2WB0LDmaWdK6NqBuI /1WjQ+BCgUKd3C/a+sMeX/eTq38XmMgcPi+YO37QuFoG9wyYsxrtoq/q4yHYetyPozJH soU2nkpY/N7To7ctXTC+tqwI/Mqx2L4Q6Eo/jyeJeVA7ZTA1XaR330aR5pSBkEyrSvGY 91Zps9ZV5FDfn0SGH6Q41I25yDScAfy+zkHIT1efVMKPMgaaEF5C7eLBW7xLyfgfIr1C Kz46shwxwy7J5REur5tL54SEergWyf9RS/4VyaRsSwIB6sKOugqebbB7VjU3VBvRrqT7 oBkg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850169; x=1713454969; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=LPBWypckBhBGW4D+1tLL366jc5FZH7e47fvl0X8R8zs=; b=hIEEb1p5N+oqnlg+jm+miYZGWZTXQ3fkmuYT82jVkFJH7ro2Oj7yoaLDQ4H7U+nxtE H3lOVdYWsuz35sNqDHBL8NgGRkLbMFo/Z1XrMy1k3H+XlmmRhyw0nK6pfwoZVNyVeK7f uW3HM4ML3A70W4trpTsGQsGPR79ekeTadL4Y7OPvj6tXGm/BGQ8oWoesQ/PineJrl1dT LhJh7EVnrCX75p6wNSSEGKa87YMDxR22vh2syapolB/RBD4o6qhnk6kwzROp7umYJyEv 1S1jfElpzQrNToSYraI/rHMSNEXASkguLB08X12AVOFnimgsWDor2rJkesMJHW8MdIxd 6/kw== X-Gm-Message-State: AOJu0Ywk4CKwQL1DKybjbQX4EbCEgHgVowS9uFqlMgCruNynF3rBUg9S GNpBB56uKDhsuW8iso3sgSOGT1kfGAhgsvLVkF+ST4Bx1xtS82Yo38Fu1hTDnWJ5Cz5JmINz2v4 D X-Google-Smtp-Source: AGHT+IGfAHYUte8ZypZKI81inTUiQtnGngskwX6/QEi+9orH8zKr3JmizLT+Yd0hNfE7w6rsw/KEOw== X-Received: by 2002:a6b:c34e:0:b0:7d6:7b7c:8257 with SMTP id t75-20020a6bc34e000000b007d67b7c8257mr237726iof.0.1712850167267; Thu, 11 Apr 2024 08:42:47 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.42.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:42:45 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 397/437] macintosh: ans-lcd: convert to read/write iterators Date: Thu, 11 Apr 2024 09:18:57 -0600 Message-ID: <20240411153126.16201-398-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/macintosh/ans-lcd.c | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/drivers/macintosh/ans-lcd.c b/drivers/macintosh/ans-lcd.c index fa904b24a600..cfc0a95f0b8b 100644 --- a/drivers/macintosh/ans-lcd.c +++ b/drivers/macintosh/ans-lcd.c @@ -53,30 +53,31 @@ anslcd_write_byte_data ( unsigned char c ) udelay(anslcd_short_delay); } =20 -static ssize_t -anslcd_write( struct file * file, const char __user * buf,=20 - size_t count, loff_t *ppos ) +static ssize_t anslcd_write(struct kiocb *iocb, struct iov_iter *from) { - const char __user *p =3D buf; - int i; + size_t count =3D iov_iter_count(from); + int i, err =3D 0; =20 #ifdef DEBUG printk(KERN_DEBUG "LCD: write\n"); #endif =20 - if (!access_ok(buf, count)) - return -EFAULT; - mutex_lock(&anslcd_mutex); - for ( i =3D *ppos; count > 0; ++i, ++p, --count )=20 + for ( i =3D iocb->ki_pos; count > 0; ++i, --count )=20 { char c; - __get_user(c, p); - anslcd_write_byte_data( c ); + if (get_iter(c, from)) { + err =3D -EFAULT; + break; + } + anslcd_write_byte_data(c); } mutex_unlock(&anslcd_mutex); - *ppos =3D i; - return p - buf; + if (i - iocb->ki_pos) { + err =3D i - iocb->ki_pos; + iocb->ki_pos =3D i; + } + return err; } =20 static long @@ -135,7 +136,7 @@ anslcd_open( struct inode * inode, struct file * file ) } =20 const struct file_operations anslcd_fops =3D { - .write =3D anslcd_write, + .write_iter =3D anslcd_write, .unlocked_ioctl =3D anslcd_ioctl, .open =3D anslcd_open, .llseek =3D default_llseek, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f49.google.com (mail-io1-f49.google.com [209.85.166.49]) (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 95AE21F8C8B for ; Thu, 11 Apr 2024 15:42:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850170; cv=none; b=Aw4iCk4DXRbFWJHJ5qTpOpH/UIwpFQOuqHVok0W4Hdhtig8Fj3tt3UIrU6vu1ThCJhQ887B60A2ce3p6LdKaCKJ/B5ZhFBlIHwMEinpIgT043kBQLtJGjqFgGrpSF7qbhcaoDD2m9RI2btnIvtYPSZluyesnvY4kI98mli9SUco= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850170; c=relaxed/simple; bh=J3HK+5lJfSKCKc0lDEk1efpE8AfVOn7JExlKKuiGZL8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=LKXpuJonW9XhQ3O7lD0tvosSPaxavt/6MAkfA9RL/FMg/hjcVxsEqFwny2tg/BfUYNJlDdDxerm6uI1r8AlZhkXeIHa3a5iefNagzpV1Zta5+CHtpcJZayx7d7CpEpmKJqnHs+tDPhiM02NAHOn2dECGPSihsAUnR//nji/e+1Y= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=lb+Gc39g; arc=none smtp.client-ip=209.85.166.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="lb+Gc39g" Received: by mail-io1-f49.google.com with SMTP id ca18e2360f4ac-7c8e4c0412dso69692739f.1 for ; Thu, 11 Apr 2024 08:42:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850168; x=1713454968; 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=P0pjSwlST/pb+6otTxlVrZ7C6+JrJhQPui1daNpu1XY=; b=lb+Gc39g0c2ecrwWzgO1jnidWSa7gIJH49NXDbcK9W2UbnWr/z9ubOCyWOEjCPeWCW 7WWaoLkg4LT5SCP5sv5Fe2W2NhfBVv7RRYamcDWP7k2Rs2CAqNziEYdrYdT+Oy8KjUYa +HMTcIdq57bDrqlg88k8un+GGY53XgWnmQCz1xNWdU/MNoBCHEIZK4CUAY3h3jQbGFrC hfOjZmfNAKcW4MLCbNua3zTS2PnULMJUWO2k7tXdBZBlMx44GOtaohldwL0ei/A5owkZ J9y/TgIXxe8wNd2MJYpH/LaGybhh2uQicU4GLVUbEPSTlGSNjdEH0ug8qT3dUs97GqXT FWBA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850168; x=1713454968; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=P0pjSwlST/pb+6otTxlVrZ7C6+JrJhQPui1daNpu1XY=; b=PoIQNuDdjoXx+wrsuIXIioafnD3LtLEe3ELY96T1pPx2ZHhixS12ZDPD6HF4B0zeUi +TXRJcnC/dvih66cBluKeZ8ZJd9t5EbSEiliQYAg+RNmYoGNA7Ch3z++dsr/tG6pdCK5 cFOzoCbaQ/z2CsXIcZ8+QQaazge8dXdh0S0ewI6jQPtA8RPNSsz5vKA6UOKmeGuCYD3E MOHD77a8c/SMlX8Ymy1UI6Jbg4+wW8NmkraPgWVPS3Kvrre8B6CpeFIJhM5/UUkMy3HM 9509D3PANi3mCQNfxq9ot6RLELvRyMS7TbxscEAuMXJYheHOCsAY2MLgrcoEgbdbnYll m7JQ== X-Gm-Message-State: AOJu0YzVBuBSoCKhbc9pX2ctv44f5jfwteXXdidf2jPzoiCp/CMHTUwt a777b9JLDBFITS5GHFcbNhgXBVUKf/SKDJBs4ZJKoc28cHElosyJV9nbIcF3/thpSYfUy02iJWN e X-Google-Smtp-Source: AGHT+IEiUhZCeulYQWpPxHfOxMDjPka8vG0Xbe/n90W2JKD1IeNZ88ljkzpqJKHivDBhNLzEdtnigw== X-Received: by 2002:a6b:c34e:0:b0:7d6:7b7c:8257 with SMTP id t75-20020a6bc34e000000b007d67b7c8257mr237775iof.0.1712850168043; Thu, 11 Apr 2024 08:42:48 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.42.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:42:47 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 398/437] macintosh: smu: convert to read/write iterators Date: Thu, 11 Apr 2024 09:18:58 -0600 Message-ID: <20240411153126.16201-399-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/macintosh/smu.c | 40 ++++++++++++++++++---------------------- 1 file changed, 18 insertions(+), 22 deletions(-) diff --git a/drivers/macintosh/smu.c b/drivers/macintosh/smu.c index b2b78a53e532..c66fcb746123 100644 --- a/drivers/macintosh/smu.c +++ b/drivers/macintosh/smu.c @@ -1111,17 +1111,17 @@ static void smu_user_cmd_done(struct smu_cmd *cmd, = void *misc) } =20 =20 -static ssize_t smu_write(struct file *file, const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t smu_write(struct kiocb *iocb, struct iov_iter *from) { - struct smu_private *pp =3D file->private_data; + struct smu_private *pp =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); unsigned long flags; struct smu_user_cmd_hdr hdr; int rc =3D 0; =20 if (pp->busy) return -EBUSY; - else if (copy_from_user(&hdr, buf, sizeof(hdr))) + else if (!copy_from_iter_full(&hdr, sizeof(hdr), from)) return -EFAULT; else if (hdr.cmdtype =3D=3D SMU_CMDTYPE_WANTS_EVENTS) { pp->mode =3D smu_file_events; @@ -1150,7 +1150,7 @@ static ssize_t smu_write(struct file *file, const cha= r __user *buf, pp->cmd.status =3D 1; spin_unlock_irqrestore(&pp->lock, flags); =20 - if (copy_from_user(pp->buffer, buf + sizeof(hdr), hdr.data_len)) { + if (!copy_from_iter_full(pp->buffer, hdr.data_len, from)) { pp->busy =3D 0; return -EFAULT; } @@ -1168,10 +1168,10 @@ static ssize_t smu_write(struct file *file, const c= har __user *buf, return count; } =20 - -static ssize_t smu_read_command(struct file *file, struct smu_private *pp, - char __user *buf, size_t count) +static ssize_t smu_read_command(struct smu_private *pp, struct kiocb *iocb, + struct iov_iter *to) { + size_t count =3D iov_iter_count(to); DECLARE_WAITQUEUE(wait, current); struct smu_user_reply_hdr hdr; unsigned long flags; @@ -1183,7 +1183,7 @@ static ssize_t smu_read_command(struct file *file, st= ruct smu_private *pp, return -EOVERFLOW; spin_lock_irqsave(&pp->lock, flags); if (pp->cmd.status =3D=3D 1) { - if (file->f_flags & O_NONBLOCK) { + if (iocb->ki_filp->f_flags & O_NONBLOCK) { spin_unlock_irqrestore(&pp->lock, flags); return -EAGAIN; } @@ -1214,35 +1214,31 @@ static ssize_t smu_read_command(struct file *file, = struct smu_private *pp, rc =3D size; hdr.status =3D pp->cmd.status; hdr.reply_len =3D pp->cmd.reply_len; - if (copy_to_user(buf, &hdr, sizeof(hdr))) + if (!copy_to_iter_full(&hdr, sizeof(hdr), to)) return -EFAULT; size -=3D sizeof(hdr); - if (size && copy_to_user(buf + sizeof(hdr), pp->buffer, size)) + if (size && !copy_to_iter_full(pp->buffer, size, to)) return -EFAULT; pp->busy =3D 0; =20 return rc; } =20 - -static ssize_t smu_read_events(struct file *file, struct smu_private *pp, - char __user *buf, size_t count) +static ssize_t smu_read_events(void) { /* Not implemented */ msleep_interruptible(1000); return 0; } =20 - -static ssize_t smu_read(struct file *file, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t smu_read(struct kiocb *iocb, struct iov_iter *to) { - struct smu_private *pp =3D file->private_data; + struct smu_private *pp =3D iocb->ki_filp->private_data; =20 if (pp->mode =3D=3D smu_file_commands) - return smu_read_command(file, pp, buf, count); + return smu_read_command(pp, iocb, to); if (pp->mode =3D=3D smu_file_events) - return smu_read_events(file, pp, buf, count); + return smu_read_events(); =20 return -EBADFD; } @@ -1315,8 +1311,8 @@ static int smu_release(struct inode *inode, struct fi= le *file) =20 static const struct file_operations smu_device_fops =3D { .llseek =3D no_llseek, - .read =3D smu_read, - .write =3D smu_write, + .read_iter =3D smu_read, + .write_iter =3D smu_write, .poll =3D smu_fpoll, .open =3D smu_open, .release =3D smu_release, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f52.google.com (mail-io1-f52.google.com [209.85.166.52]) (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 3AB1B1F8C9E for ; Thu, 11 Apr 2024 15:42:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850172; cv=none; b=VPvt8U3fRdV/hYk1aglBDXaDjNvc4iP2jUxbSy3FUDXLx3Pd2DXM3dhXn2f1gskua2Tpxn7pYgZG465KXXqY5yNZFEnKCobfxTaYbXQJPByDCvh7L7pwI0++k2lLPZNA3TxXaIW6wYyh1moZoJVDPnQ09nVn1Y0ZBjG+iptgY6M= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850172; c=relaxed/simple; bh=wvh7X9jHm1YYdCIGtPI1CoM0XslLw1AfgfG4j1VVmwY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Cv0EHLIA+/q3EUKg+g7R2/6CtziQitNl1trn1HGZxxIT7n2xg76ON6Jy30Ap/iaUB6SlzdXHqMBbV/xL1MtaWHemkSS72yG+//X5mEsw9w89Al9QhaH/RwdfFc899wQATrAa4wWUkvRleazWgjUUMrgkjjtoPKFHAv+yeTMb0Nk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=JLqHJbcH; arc=none smtp.client-ip=209.85.166.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="JLqHJbcH" Received: by mail-io1-f52.google.com with SMTP id ca18e2360f4ac-7d6112ba6baso58274339f.1 for ; Thu, 11 Apr 2024 08:42:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850170; x=1713454970; 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=tES09aov9No9aquMq3lbtzo4K5QO+yzBuCHKjFykbiw=; b=JLqHJbcHkYvl+kxe5NnAPlP3+BVQ8GXC3nY/H265DXas2Otk3mTTFsnQ2PpcKKQM1j +MLenftJgpZGc2geu7hvaUQUUNZjGbH9/WqyO+sgNivTO/YP6l1qIFWDqoNavwol2lK7 YCcuQWifH325K5dVikUMul96Su1pM/3XBbIpACAcGwfUfGTg7ta19grGBBrs12YGBjYu wVvFOXYZmC0DUd4RT+kFb3GgQLoChHkWnSAayYGytKjfOyuE2/WmDqtYdbnR2zRJvsUT BHlpL9U1MAHyHjQLwKa6/de3EqloHJQMqX/mWoDkad/S9TfTYi319EH/hoYpXSOzAsMy Rptw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850170; x=1713454970; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=tES09aov9No9aquMq3lbtzo4K5QO+yzBuCHKjFykbiw=; b=lqXTPSX9rqVSf5cK0zzQGeWxgaEcfl/aE43YxHRQ9+AwdDIZxsJKM2vZsXEP39HaVA S7oIOoCzHJgz2OD82r8d7p9ItV72yuS3lfCEIDGoyAc8nC3EHhNZANzE/GUP2KF33sde RZjvQ80PN2LEpuAa6SE2f64bKxVLDOSQrL1TshRfndZ6SeDjUlGm9Uk2+u6vUbx6b2sA 0irKr8omYFO+7i3ZdyaZcHvD+VMiXs82MwiVE5HLWqqZGcHkmTdmRIx1IErBkHUma22C I+Bn880VIlJrfgIHOtqAlMFr+Ld9sXgkQcGS1oB82U7+APnAyLZ1IOPtIa3ufTNhEuj9 sthQ== X-Gm-Message-State: AOJu0Yxs9YX3Kx5RaqyebuJXejRoYCKxcmGBqpjnqdXsBCN6zzIBZmCU le9u2byVm1Ni7DM2yFFJVHvmQTFAFn89uedhBtthBR7GShD6Chc9oDffVenjw0mxcHpivDPm/9x i X-Google-Smtp-Source: AGHT+IHcYUQKgET7EBGT7n52uGjdKPE2kkzxWohOYkw8smpMgkGegAsVmLiR6TNOR/SFmuJv5Bh16Q== X-Received: by 2002:a05:6602:38d:b0:7d6:513b:254 with SMTP id f13-20020a056602038d00b007d6513b0254mr205336iov.2.1712850170106; Thu, 11 Apr 2024 08:42:50 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.42.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:42:48 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 399/437] macintosh: via-pmu: convert to read/write iterators Date: Thu, 11 Apr 2024 09:18:59 -0600 Message-ID: <20240411153126.16201-400-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/macintosh/via-pmu.c | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/drivers/macintosh/via-pmu.c b/drivers/macintosh/via-pmu.c index 9d5703b60937..b7f11200949d 100644 --- a/drivers/macintosh/via-pmu.c +++ b/drivers/macintosh/via-pmu.c @@ -2165,12 +2165,11 @@ pmu_open(struct inode *inode, struct file *file) return 0; } =20 -static ssize_t=20 -pmu_read(struct file *file, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t pmu_read(struct kiocb *iocb, struct iov_iter *to) { - struct pmu_private *pp =3D file->private_data; + struct pmu_private *pp =3D iocb->ki_filp->private_data; DECLARE_WAITQUEUE(wait, current); + size_t count =3D iov_iter_count(to); unsigned long flags; int ret =3D 0; =20 @@ -2190,7 +2189,7 @@ pmu_read(struct file *file, char __user *buf, spin_unlock_irqrestore(&pp->lock, flags); if (ret > count) ret =3D count; - if (ret > 0 && copy_to_user(buf, rp->data, ret)) + if (ret > 0 && !copy_to_iter_full(rp->data, ret, to)) ret =3D -EFAULT; if (++i >=3D RB_SIZE) i =3D 0; @@ -2199,7 +2198,7 @@ pmu_read(struct file *file, char __user *buf, } if (ret >=3D 0) break; - if (file->f_flags & O_NONBLOCK) + if (iocb->ki_filp->f_flags & O_NONBLOCK) break; ret =3D -ERESTARTSYS; if (signal_pending(current)) @@ -2215,9 +2214,7 @@ pmu_read(struct file *file, char __user *buf, return ret; } =20 -static ssize_t -pmu_write(struct file *file, const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t pmu_write(struct kiocb *iocb, struct iov_iter *from) { return 0; } @@ -2464,8 +2461,8 @@ static long compat_pmu_ioctl (struct file *filp, u_in= t cmd, u_long arg) #endif =20 static const struct file_operations pmu_device_fops =3D { - .read =3D pmu_read, - .write =3D pmu_write, + .read_iter =3D pmu_read, + .write_iter =3D pmu_write, .poll =3D pmu_fpoll, .unlocked_ioctl =3D pmu_unlocked_ioctl, #ifdef CONFIG_COMPAT --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-il1-f173.google.com (mail-il1-f173.google.com [209.85.166.173]) (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 4F6F31F963C for ; Thu, 11 Apr 2024 15:42:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.173 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850175; cv=none; b=RJhCA+RMDTrH3m4KMmeyKlyj+RMLVhG9HZLIwzBchvyh6Vr5D5zQDzhjNcfx7hrA/Wu2ed09zalG2C03kUKS9hVX80FO8iLyeAqLazgC5hDQICsDz2cN5G3muadPXW4TL/an/zqPHn2nxktiouSjII9quKd9VPICEIedwQDfP6k= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850175; c=relaxed/simple; bh=pfD6fHF7FVHjS1MHW/1VI7SrO+gJwSfuNWDc9ChRNlg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=HRqv40rretjniUs612Jx+Oyzk4J2Mc67kzEwCH1+P4qVLOfIqoO1emE4LCSA2DlS58BSUQOcic/HI5RqcfT+G9l4lsXX0kpl9UMNrT7J4hL3R6i6Y4kK9oawCMXra5WKrDdUd8tB9jrP0wNBND8y0BWNfMu3Okp4/+wz5jc5x8c= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=QOYryXPn; arc=none smtp.client-ip=209.85.166.173 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="QOYryXPn" Received: by mail-il1-f173.google.com with SMTP id e9e14a558f8ab-36a224d7414so198035ab.1 for ; Thu, 11 Apr 2024 08:42:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850173; x=1713454973; 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=W4f7bTOPbltzgB55dfgHaCSueh8d6mX2RrlOjiz80WA=; b=QOYryXPn83njHXwd1CYRLnvM7f59i+WtZZk1L58uBZO3EqiZFukJ5dwQkWpMPp1wVs ugj1rbwD6PtwyqvIcMUG5UizdDlLlPW0EO1EXEbIFveMkpkR+TDsnhwtw4GCdCxEicH4 W/ziDFhJzNPuMXXzubFBNvfAhl26c8J268iVWq+8gMBT5Hf221TJ+NhDPgNd0LrDvHDn v7kiUt0MYNEWyKQM3OhbD4ACb4+f05gej4dGw4HCaPi6xW+nMgIzWG0Y/NsnN2/dbx/i MUrYblWIBrHJypoxWJsLXcGrqQXUJuIAiL+PYn+FTYHz2JTymc+N7kaKUd5nyx4/uyJY iN5Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850173; x=1713454973; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=W4f7bTOPbltzgB55dfgHaCSueh8d6mX2RrlOjiz80WA=; b=JZUIPOom6aEGm/S+UJ+G5UKGT+9ZLtsCZTrymplzOqcxxQ+y64yucadRzMrzDFbdGb pR6T9hz+fbfpnQ+AERCpf6s4mG856ul3g2/4mwoVFwq8v06CB5dzxwM/TZez1P2c65W4 K32FZYKkVYfMA02EWzZBWkp68gEk2nJt23ppfOOisLdMKjMKKbvYDDYbCy9dkOzG9+nN qd/9lN+6TKw6fwr82HpYGPerLeN6q9lHc/Uk94xPB8XHHzw3WxHMXeoJ/pkh6QcLQ5gP lXCCJ+hZ1n7DtBI9Dte/c87XO9044XGZqMWoBtWNMbZmpZE02CQz4iJ6mOTVI7k7DKa7 fqsw== X-Gm-Message-State: AOJu0Yz+ZGBKDAQ1rX+SJ7DFJU0XZ1L63EfQcONNzrlH4YNNFhFkH8wt UKlqDU4MERHmcbOcu7LN5TLJvKnQjAb65oyKR1Y/F36RSzqRD5ZNlHSRKJqj+5Ut2R0jqwkN9WT A X-Google-Smtp-Source: AGHT+IFIrd9kFpu2g/k86D/zaKEIPA+uzT9HxvIh3MaA34ahizcFHWu2+ghbSRunZCbXv3OAtTwyGg== X-Received: by 2002:a6b:6605:0:b0:7d4:1dae:da1a with SMTP id a5-20020a6b6605000000b007d41daeda1amr164676ioc.2.1712850171747; Thu, 11 Apr 2024 08:42:51 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.42.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:42:50 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 400/437] drivers/extcon: convert to read/write iterators Date: Thu, 11 Apr 2024 09:19:00 -0600 Message-ID: <20240411153126.16201-401-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/extcon/extcon-rtk-type-c.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/extcon/extcon-rtk-type-c.c b/drivers/extcon/extcon-rtk= -type-c.c index a592bab77538..70a83ce3318e 100644 --- a/drivers/extcon/extcon-rtk-type-c.c +++ b/drivers/extcon/extcon-rtk-type-c.c @@ -796,7 +796,7 @@ static int type_c_parameter_open(struct inode *inode, s= truct file *file) =20 static const struct file_operations type_c_parameter_fops =3D { .open =3D type_c_parameter_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D single_release, }; @@ -838,7 +838,7 @@ static int type_c_status_open(struct inode *inode, stru= ct file *file) =20 static const struct file_operations type_c_status_fops =3D { .open =3D type_c_status_open, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D single_release, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-il1-f171.google.com (mail-il1-f171.google.com [209.85.166.171]) (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 A91441F962C for ; Thu, 11 Apr 2024 15:42:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.171 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850174; cv=none; b=baifW7NYGbofyEP03aawFZSpEwmK+bM7OZ4H5aYtp3D1mcuEuP7iBXrI56oSGQd0eOS4b1N5IG9Tafj9VzlTSns/vMpFmud3KENxtonzSlwJVJ5RicXEO/Cr9Co//afKzLauPgAetX7O3+qbGAnTetIf9mwBQWM5lyw7/bx4mwY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850174; c=relaxed/simple; bh=PNTIyww3Yjh9XMFowg/nTgO62vsnmR2F+vKnrOQQ+E8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=MctdgcAZuxFoHrNLQrXeChkSTyMhl1GGUlR4Z13D8uy0/HOXpO87d1kFBQ4r83e66vtZkd52CzLLK6z0LattB7SRQo5ogvqvMbNleV0SL/ZpmFqw9rCYNmDnm/3G9vLtSWy2G+V3kUu934axgPUbkOSsqZQHTIruXZUx9sEXQ08= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=uSWUGr1w; arc=none smtp.client-ip=209.85.166.171 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="uSWUGr1w" Received: by mail-il1-f171.google.com with SMTP id e9e14a558f8ab-36a224d7414so198005ab.1 for ; Thu, 11 Apr 2024 08:42:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850172; x=1713454972; 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=Z7WWPETmJQxbWvG9OQdVyXT26hRdCxaZ5v08Hz5199Q=; b=uSWUGr1wisrlkS/k93m0w7X4mtI6DJzTTpfoJq+E6XD25Di7LpkPm7TUEAiTAXlC6B RTk+ksGVgT+wweG6vIf/UxBaEUK41nrG8zfFZzb/ROOZpuvstJibDBn9I1BG7qURZY1f e3yohUBleXTlVC7eZpV+k7wjZLLFelQBXtyxsyC/8MYvtR3zv8gt0ZgYbOAssWVeww0N YH6GBBlHX8arSlI1SzXHqYNfR2pqplmCOATu2FHTmk2A88GvTu6HEtXtSm552uOq9yJD lmJ+umNJcXmYQqOS277Kzq1ebys09fN7Y+XVJ5UodeHD9xtzRw7wVbOBOfF4KeedzOTW rUYA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850172; x=1713454972; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Z7WWPETmJQxbWvG9OQdVyXT26hRdCxaZ5v08Hz5199Q=; b=tCgfbgnfTlqHI0Uvi2REUFuD0Ecnv6LfqBjriTDlh1mkiwh4m7N8kr6DkS31xtqN0h eZpOh5vi7FiBk5s+o5Dr1vXVQ96czYjpvtjIOz/KKbZ8QGvoCzErh3Ozx9UCLYkWr3Ly WPSqEaLVDKgZUR/vkOrjIKP1aOAY7E0SIMtVAHfpW8mQrFn74vNWPH/DxB6wEe0ii7bS SGkDouU4F8qapMp0zqT6CpTVSlFBL5iKao3im8lMKIBzWYXUePlGQIihimVkbQEPb2Su 5Pdw07B8WUp0Lr8VqeYVNVna17fzbgMMVrH9SLCFocNLjKdcp5Cz8fwYb59piUnwDqU0 Q1Tw== X-Gm-Message-State: AOJu0YyoMldwO18nSCLQJIeh4/IbwYAoBjFI05py7+6KktYPiK/Sx/WD 3iUDOm8VPrK7FIh5Ysc8+Lny3n38Kj0YACVeOXFeJefLuJopnJdM2O0HpQR7KjLD67IFElzOm8R h X-Google-Smtp-Source: AGHT+IEX6Gj42GPcolYgmBDZ6+t385rqIeaLejv0ALvsAvYKKW+9At9TcE6Gc/6Vs0vd9dr+2bnpRA== X-Received: by 2002:a6b:6605:0:b0:7d4:1dae:da1a with SMTP id a5-20020a6b6605000000b007d41daeda1amr164701ioc.2.1712850172497; Thu, 11 Apr 2024 08:42:52 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.42.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:42:52 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 401/437] drivers/gnss: convert to read/write iterators Date: Thu, 11 Apr 2024 09:19:01 -0600 Message-ID: <20240411153126.16201-402-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/gnss/core.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/gnss/core.c b/drivers/gnss/core.c index 48f2ee0f78c4..ce66ffb85832 100644 --- a/drivers/gnss/core.c +++ b/drivers/gnss/core.c @@ -119,11 +119,12 @@ static ssize_t gnss_read(struct file *file, char __us= er *buf, =20 return ret; } +FOPS_READ_ITER_HELPER(gnss_read); =20 -static ssize_t gnss_write(struct file *file, const char __user *buf, - size_t count, loff_t *pos) +static ssize_t gnss_write(struct kiocb *iocb, struct iov_iter *from) { - struct gnss_device *gdev =3D file->private_data; + struct gnss_device *gdev =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); size_t written =3D 0; int ret; =20 @@ -148,7 +149,7 @@ static ssize_t gnss_write(struct file *file, const char= __user *buf, if (n > GNSS_WRITE_BUF_SIZE) n =3D GNSS_WRITE_BUF_SIZE; =20 - if (copy_from_user(gdev->write_buf, buf, n)) { + if (!copy_from_iter_full(gdev->write_buf, n, from)) { ret =3D -EFAULT; goto out_unlock; } @@ -170,7 +171,6 @@ static ssize_t gnss_write(struct file *file, const char= __user *buf, break; =20 written +=3D ret; - buf +=3D ret; =20 if (written =3D=3D count) break; @@ -203,8 +203,8 @@ static const struct file_operations gnss_fops =3D { .owner =3D THIS_MODULE, .open =3D gnss_open, .release =3D gnss_release, - .read =3D gnss_read, - .write =3D gnss_write, + .read_iter =3D gnss_read_iter, + .write_iter =3D gnss_write, .poll =3D gnss_poll, .llseek =3D no_llseek, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-il1-f175.google.com (mail-il1-f175.google.com [209.85.166.175]) (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 C07C5168AF3 for ; Thu, 11 Apr 2024 15:42:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.175 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850177; cv=none; b=cZQlR+xHR2DNKG+XRTeXpklC58qJcH9N3Wzq4MP0dZ+TEq+ufvyvwipwx34rO5pj6ACAq4RWZEk0MwX+EdF/otg+ng/RC+PDmp8rmdBLX0YaQ2A8LaJhoB9I39gE905GrISWjCLJ42Y4ps7pNn7Urvy0F94huvRgcBmaqnTj6Wk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850177; c=relaxed/simple; bh=hW01X43oNwgMsTKPgpDnqooa0SYsAFOu48H3ZhApNNM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=MvbbYU1au4sBrsZDeoZt06MPkW8rtyltfF4EWfORTuo0GqQ6z0YkLR5EyeMx7EhKqt1i4rLg3fvtEePW46G+Dse2IiaNc/7cU2lpv093PaP6ze4lSLzgLMr01hZrGET3J/PjpZH3OFu3lLkaOpz+LzapqjKPtT7NjBiu7mC/e1w= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=s/g6HPcF; arc=none smtp.client-ip=209.85.166.175 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="s/g6HPcF" Received: by mail-il1-f175.google.com with SMTP id e9e14a558f8ab-36a34b68277so124225ab.0 for ; Thu, 11 Apr 2024 08:42:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850174; x=1713454974; 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=kWT52uGMOx2ZIQ3eejFL0pgQV5B61W7lUo9GEaXb1Vk=; b=s/g6HPcFiwwdRI3Xg1VF7WW5OJViBPY/oVEzCD5GuUF/H2b50ZteDxD0yEvQntrbvx V7UiFd/XG+WdIXed1NaCWJkleVsgBLPdJJjHORIcyVW+XeoVV5ZVJQy7Vaj+gMQp3xUN PjenmUexjFA8mVEhQM1eZhgTNMl2sJ6I3GLdqWn31aNg7Kk0gjxO2yzYksC1Ttu5FuU3 K6J6l00cjaWwhwusyLsrtkiErF9SGfzFyE6H2cLu+Xup+0BNMNK15ujDmdax4pT6xtbk dPw1OP6kWImWa4vmmvI0EfZMw9FlsB6V++NRtZGJRRXf3W9GpqZUDbZubGQ+XhX0PdJP GHBw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850174; x=1713454974; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=kWT52uGMOx2ZIQ3eejFL0pgQV5B61W7lUo9GEaXb1Vk=; b=VOMfks2vZDpYW2sujjnzVQJ1lg7Z+jrS9ERQifg7+iePo/XAA5nW4sRjsvBO8WBZhS Uv0p3UO4/cC4BTeWyYMugiSOQ/WKNQpBVUziQ2s5eRhQu48fyCB40Y0pXZB/PaKX6R5Q /zqEM4d5OjfKADQvmDKH16z5oNpRy5/zbMcADkNeHIDNGUNmbjuwT7ZGV3hD7MTL2/NA ty3MacU8ZlaTG907hMAzy9dwjN3TgXUxoxUhqLT8o3/CIkL+flCRfJGbFqNP66C8vVtq CZPzOhjl1wYK9+8D6mX91nQwXST3YpJbJaIAceGXu66bnXgtYxyc5NcOQlkRTvOTnNNT J3Ug== X-Gm-Message-State: AOJu0YzpEcTCsTEUcxwKQCsn7oTsGo24aZ1tL4Pjc5EisesNdwONRQmK ybw841HraLTO1doCNFf/56/htEW8zxO9hQpnHR8+JkIVU1eG8N3kpLslc4sU2zaf+BDM0we/Ao3 b X-Google-Smtp-Source: AGHT+IG04kwgA+pXN5ythRhLTT/CUNaeJ0WkplFoB5ePPcdPOKNTmwiGNUHFqdgZ7/i89leQSOOnyA== X-Received: by 2002:a6b:6605:0:b0:7d4:1dae:da1a with SMTP id a5-20020a6b6605000000b007d41daeda1amr164786ioc.2.1712850174581; Thu, 11 Apr 2024 08:42:54 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.42.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:42:52 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 402/437] drivers/rapidio: convert to read/write iterators Date: Thu, 11 Apr 2024 09:19:02 -0600 Message-ID: <20240411153126.16201-403-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/rapidio/devices/rio_mport_cdev.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/rapidio/devices/rio_mport_cdev.c b/drivers/rapidio/dev= ices/rio_mport_cdev.c index 27afbb9d544b..de1628737808 100644 --- a/drivers/rapidio/devices/rio_mport_cdev.c +++ b/drivers/rapidio/devices/rio_mport_cdev.c @@ -2297,12 +2297,13 @@ static ssize_t mport_read(struct file *filp, char _= _user *buf, size_t count, =20 return ret; } +FOPS_READ_ITER_HELPER(mport_read); =20 -static ssize_t mport_write(struct file *filp, const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t mport_write(struct kiocb *iocb, struct iov_iter *from) { - struct mport_cdev_priv *priv =3D filp->private_data; + struct mport_cdev_priv *priv =3D iocb->ki_filp->private_data; struct rio_mport *mport =3D priv->md->mport; + size_t count =3D iov_iter_count(from); struct rio_event event; int len, ret; =20 @@ -2314,7 +2315,7 @@ static ssize_t mport_write(struct file *filp, const c= har __user *buf, =20 len =3D 0; while ((count - len) >=3D (int)sizeof(event)) { - if (copy_from_user(&event, buf, sizeof(event))) + if (!copy_from_iter_full(&event,sizeof(event), from)) return -EFAULT; =20 if (event.header !=3D RIO_DOORBELL) @@ -2327,7 +2328,6 @@ static ssize_t mport_write(struct file *filp, const c= har __user *buf, return ret; =20 len +=3D sizeof(event); - buf +=3D sizeof(event); } =20 return len; @@ -2338,8 +2338,8 @@ static const struct file_operations mport_fops =3D { .open =3D mport_cdev_open, .release =3D mport_cdev_release, .poll =3D mport_cdev_poll, - .read =3D mport_read, - .write =3D mport_write, + .read_iter =3D mport_read_iter, + .write_iter =3D mport_write, .mmap =3D mport_cdev_mmap, .fasync =3D mport_cdev_fasync, .unlocked_ioctl =3D mport_cdev_ioctl --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f49.google.com (mail-io1-f49.google.com [209.85.166.49]) (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 8E758168B02 for ; Thu, 11 Apr 2024 15:42:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850178; cv=none; b=P/URWuQ8rEKALL1Jv9CYKobST/ehS5dkpjFL8QxTopLoxyEmphXJHq2W83fkbpla18IdsalQ9rnb/E+CSx6DGbr55AtrdGtf3j56sOpX8Hc3nrnQpyL9ibEeRDeWk5VwkyZ9ZRNUI2VIYuMS8uhqddEDPU4ud5NU7KB2ZyVxLqY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850178; c=relaxed/simple; bh=dI/wSY85VOc4me9+Ccypl4dEBuPpvV3IXn6oIlQPdpg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=UbSu3O0jYuSDypTsGtGqxbdpsOwoeO4onMFOMRH9GyCh40gOnwJsVOm4/h9KUFAy28DaFo09262uV6YoF+d9UaUpnA1lWECbyoIfy0w/CgFrV6tVL6gerbL7TeUMyrzU7YmZP1wpkKBhW4q9gR/TmAC/lnkel0bRLjtLRPWusyA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=d3EtQh/F; arc=none smtp.client-ip=209.85.166.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="d3EtQh/F" Received: by mail-io1-f49.google.com with SMTP id ca18e2360f4ac-7d6812b37a6so9106439f.0 for ; Thu, 11 Apr 2024 08:42:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850176; x=1713454976; 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=OFHFSRHo+xB67r6Y72+flGGp03xzG9AA0yCqxsVjNFc=; b=d3EtQh/F+P+CxGgps1EjzduIlD+dew0mutY2/3f7TBSqhsAyntMO3Amnti37R/saUB wQ1ciBzSxL8SYeooT9JunXNWYXF6IYEYYcZqNUA74UKpxAycaflsFXmI8yeASU0ohGPe 7nI5mhNLaoV/G8rtpysUM6PJI0+T2FozVQBpot0fejl1xahCimKLK2CjqC6ZAIjaP15K 2+QAZwhAeF5M4tqiihv6ILyHyjVJrV8yUsLaqH/2OHLUXlLLroA/bDmg2YLMEoKZVeMc TK2EgLiSvLr/R2GneBNNR6FHBtL4CW0eJOUh/p6LKTTmXbyFG+i6sIKW5E57+Og83sV9 /bMQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850176; x=1713454976; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=OFHFSRHo+xB67r6Y72+flGGp03xzG9AA0yCqxsVjNFc=; b=s3mbfsNb2ucN4hBITAel0iwgijrkarUZ/KqX1nKIVC1N3/WfNoeh5Kg2BhKinBBttt UMVU8erj72LYFSPz/Oa/lXCOGNCZGK0o1vTS5OkrlQTMugxDbauq9F/8w6wXaekXbPTr f75OsJyBkytu2N8wZQPlWYNyoDij/IcMTTwIsw2PmnZ7XYjbemITyAKcvAMyB71YIE2i d3++lGv84ZWl424T+6VuULlduoa+3mOy5RQpv9kyo1On+H8bDD9mNC2PBsmZF5P2r9vo otg67fKY3Dj+xVJZJl/VSvbOjF6l7ifERITxnzwf4uE/0ThelmkGVLKXx3ksza/Md14D L8xg== X-Gm-Message-State: AOJu0Yzt+qgh79ojJg05CCYpZAKvo8BXR2EyAX285ufDOUsoVMmFucY/ FdjILzJPC2STB59B/LvOQnJs7xK5MuEgWhhERfyUHlILXchVfBfnTr5y3WYJPL1f1NjYhpReUbk N X-Google-Smtp-Source: AGHT+IEO3L9m/P0KWpeCWqzbWaDxeb5zpCEeiiGLOqLAIgSqxKNbgnmzCdlHOS47BZ5vrIgjWf1H8w== X-Received: by 2002:a6b:5b10:0:b0:7d0:bd2b:43ba with SMTP id v16-20020a6b5b10000000b007d0bd2b43bamr239836ioh.0.1712850176421; Thu, 11 Apr 2024 08:42:56 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.42.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:42:55 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Krzysztof Kanas , Jens Axboe Subject: [PATCH 403/437] drivers/media/platform/mediatek/vcodec: convert to read/write iterators Date: Thu, 11 Apr 2024 09:19:03 -0600 Message-ID: <20240411153126.16201-404-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" From: Krzysztof Kanas Signed-off-by: Krzysztof Kanas [axboe: fold in patch for killing FOPS helpers] Signed-off-by: Jens Axboe --- .../mediatek/vcodec/common/mtk_vcodec_dbgfs.c | 21 +++++++++---------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_dbgfs= .c b/drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_dbgfs.c index 5ad3797836db..b8e4779b32d2 100644 --- a/drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_dbgfs.c +++ b/drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_dbgfs.c @@ -70,15 +70,15 @@ static void mtk_vdec_dbgfs_get_help(char *buf, int *use= d, int total) *used +=3D curr_len; } =20 -static ssize_t mtk_vdec_dbgfs_write(struct file *filp, const char __user *= ubuf, - size_t count, loff_t *ppos) +static ssize_t mtk_vdec_dbgfs_write(struct kiocb *iocb, struct iov_iter *f= rom) { - struct mtk_vcodec_dec_dev *vcodec_dev =3D filp->private_data; + struct mtk_vcodec_dec_dev *vcodec_dev =3D iocb->ki_filp->private_data; struct mtk_vcodec_dbgfs *dbgfs =3D &vcodec_dev->dbgfs; + size_t count =3D iov_iter_count(from); =20 mutex_lock(&dbgfs->dbgfs_lock); - dbgfs->buf_size =3D simple_write_to_buffer(dbgfs->dbgfs_buf, sizeof(dbgfs= ->dbgfs_buf), - ppos, ubuf, count); + dbgfs->buf_size =3D simple_copy_to_iter(dbgfs->dbgfs_buf, &iocb->ki_pos, + sizeof(dbgfs->dbgfs_buf), from); mutex_unlock(&dbgfs->dbgfs_lock); if (dbgfs->buf_size > 0) return count; @@ -86,10 +86,9 @@ static ssize_t mtk_vdec_dbgfs_write(struct file *filp, c= onst char __user *ubuf, return dbgfs->buf_size; } =20 -static ssize_t mtk_vdec_dbgfs_read(struct file *filp, char __user *ubuf, - size_t count, loff_t *ppos) +static ssize_t mtk_vdec_dbgfs_read(struct kiocb *iocb, struct iov_iter *to) { - struct mtk_vcodec_dec_dev *vcodec_dev =3D filp->private_data; + struct mtk_vcodec_dec_dev *vcodec_dev =3D iocb->ki_filp->private_data; struct mtk_vcodec_dbgfs *dbgfs =3D &vcodec_dev->dbgfs; struct mtk_vcodec_dbgfs_inst *dbgfs_inst; struct mtk_vcodec_dec_ctx *ctx; @@ -133,15 +132,15 @@ static ssize_t mtk_vdec_dbgfs_read(struct file *filp,= char __user *ubuf, } mutex_unlock(&dbgfs->dbgfs_lock); read_buffer: - ret =3D simple_read_from_buffer(ubuf, count, ppos, buf, used_len); + ret =3D simple_copy_to_iter(buf, &iocb->ki_pos, used_len, to); kfree(buf); return ret; } =20 static const struct file_operations vdec_fops =3D { .open =3D simple_open, - .write =3D mtk_vdec_dbgfs_write, - .read =3D mtk_vdec_dbgfs_read, + .write_iter =3D mtk_vdec_dbgfs_write, + .read_iter =3D mtk_vdec_dbgfs_read, }; =20 void mtk_vcodec_dbgfs_create(struct mtk_vcodec_dec_ctx *ctx) --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-il1-f174.google.com (mail-il1-f174.google.com [209.85.166.174]) (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 57F0F1FA5B3 for ; Thu, 11 Apr 2024 15:42:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.174 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850180; cv=none; b=D0rUdLFP5Zg3NOaIwvAgO9Y4Y6kyIwSR4mNTs5c2xJwdzOF6eeWVwb0u55V2055jNaTk1o3OIFXbltAqaTTzcG+CKJwNdN9wHi5SGp4WVFX1rsGEvJRPHMtRVsYsl0xogHezzOfiJuLbI1mFwCNJitbKKXhB8KcrpofV5dwS68Y= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850180; c=relaxed/simple; bh=Qo9D79pVOxnWtoVCGAcLVjarFHT/n9wZxBlsvf66ulU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=a9kO5z2JbKpcbKU9cuVQjirkwHOZOxq9Xpu3UsDvOa/jLP8y15MsVd2TcbKhYm7g7FLKKu7PKstkGxUCMQU5AlUClh41z7OzoodfSvQm9lvpkZ/CwmadIvvrDO3fGUm3F5+eILeoAqLK1wUjkNrtO4OZgOTQoJ/K25kFwsYdEBY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=nwXfIA7l; arc=none smtp.client-ip=209.85.166.174 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="nwXfIA7l" Received: by mail-il1-f174.google.com with SMTP id e9e14a558f8ab-36a224d7414so198205ab.1 for ; Thu, 11 Apr 2024 08:42:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850178; x=1713454978; 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=Mls7kBOPQasKlPimrxCMGwZCcxtxZrVxfx4W6x5deIs=; b=nwXfIA7ljEJliS7XkUuhIl3vBzbpQvqhFVpCIe3cyticTLBOKNh2TdJPaaRTAKZHLM C3y4PQxe0eEv/vanotjePJTJmmvuJeh7n1rrlUKXfjBUAAyjfqU/yM070qKSoD4yvo7C kg4qUHnR8pYLFzcmqaiQZqUK9gR4pv0wFP03uQotKa8JujHZtuWpiluorWGzWKg+C/ZN FiCM1l8KJMXYAbW7yiAeDAXaHK/42PVxTl9AlAxUmsa8UbncP5bvq04ZmJPtAsl2IEjz XaLUZ7n8A8zudR5TfzZEKF/CTiyp7R7MBaYr7GNOzqjWBeBDeg1gulGOsP1EbGrGlsuI Lv+A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850178; x=1713454978; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Mls7kBOPQasKlPimrxCMGwZCcxtxZrVxfx4W6x5deIs=; b=hw+O6NSs010QtqcL26cXpTmIBO4G/J/+AkSHVwgwIEl3cSgxzx+D4IWZJ4PQT53nCp 2O6vRHF1pcJynr50sFsSE3kLmyd/D4pG0PDVsrOjzceZsiI/9TDLAnmjqBqegCFcoy28 8x8xImr4pv1X3XgEFWlg/lJwcEFCaOqMDvzZxhmiADDS/fgoCOHERhntjxVrOoL3w+vU 8Bx2/AXK0spasOeHfSo4RbheHss3L2ODIihRItAvCdu4VnC/Mz/SJNnWOpz7UBUP5RKp MAbT41Ur9Zz0zvust77EvDi9225eM6i9lVT3OQvTA7umjSZHc/ya6qhm0nPJE+2vYAyA jO7g== X-Gm-Message-State: AOJu0YxAe54rydYmGOpv0fHGw8SOK1w+WBUiSpaN4uXgamPe2lwTK06U F2nPUlcAkJl1w3dFK8CB2iafjh7pTsmjk2gS+83Ex2Nxv3MvmfCQ6o4D2if8sABe0D8KTxIHpZD 0 X-Google-Smtp-Source: AGHT+IFiQJTauONSy9Zzwzlpjnhlh95u/B+ywkgk6RgXKiohX70z10ONBYAUgiUupAQiN5xeM6OGzw== X-Received: by 2002:a6b:6605:0:b0:7d4:1dae:da1a with SMTP id a5-20020a6b6605000000b007d41daeda1amr164932ioc.2.1712850178193; Thu, 11 Apr 2024 08:42:58 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.42.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:42:56 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 404/437] infiniband/core: convert to read/write iterators Date: Thu, 11 Apr 2024 09:19:04 -0600 Message-ID: <20240411153126.16201-405-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/infiniband/core/ucma.c | 3 ++- drivers/infiniband/core/user_mad.c | 6 ++++-- drivers/infiniband/core/uverbs_main.c | 11 +++++++---- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/drivers/infiniband/core/ucma.c b/drivers/infiniband/core/ucma.c index 5f5ad8faf86e..b9aa99083dd9 100644 --- a/drivers/infiniband/core/ucma.c +++ b/drivers/infiniband/core/ucma.c @@ -1746,6 +1746,7 @@ static ssize_t ucma_write(struct file *filp, const ch= ar __user *buf, =20 return ret; } +FOPS_WRITE_ITER_HELPER(ucma_write); =20 static __poll_t ucma_poll(struct file *filp, struct poll_table_struct *wai= t) { @@ -1815,7 +1816,7 @@ static const struct file_operations ucma_fops =3D { .owner =3D THIS_MODULE, .open =3D ucma_open, .release =3D ucma_close, - .write =3D ucma_write, + .write_iter =3D ucma_write_iter, .poll =3D ucma_poll, .llseek =3D no_llseek, }; diff --git a/drivers/infiniband/core/user_mad.c b/drivers/infiniband/core/u= ser_mad.c index f5feca7fa9b9..dcb065c3d8c5 100644 --- a/drivers/infiniband/core/user_mad.c +++ b/drivers/infiniband/core/user_mad.c @@ -429,6 +429,7 @@ static ssize_t ib_umad_read(struct file *filp, char __u= ser *buf, } return ret; } +FOPS_READ_ITER_HELPER(ib_umad_read); =20 static int copy_rmpp_mad(struct ib_mad_send_buf *msg, const char __user *b= uf) { @@ -660,6 +661,7 @@ static ssize_t ib_umad_write(struct file *filp, const c= har __user *buf, kfree(packet); return ret; } +FOPS_WRITE_ITER_HELPER(ib_umad_write); =20 static __poll_t ib_umad_poll(struct file *filp, struct poll_table_struct *= wait) { @@ -1064,8 +1066,8 @@ static int ib_umad_close(struct inode *inode, struct = file *filp) =20 static const struct file_operations umad_fops =3D { .owner =3D THIS_MODULE, - .read =3D ib_umad_read, - .write =3D ib_umad_write, + .read_iter =3D ib_umad_read_iter, + .write_iter =3D ib_umad_write_iter, .poll =3D ib_umad_poll, .unlocked_ioctl =3D ib_umad_ioctl, #ifdef CONFIG_COMPAT diff --git a/drivers/infiniband/core/uverbs_main.c b/drivers/infiniband/cor= e/uverbs_main.c index 495d5a5d0373..7834a30e182b 100644 --- a/drivers/infiniband/core/uverbs_main.c +++ b/drivers/infiniband/core/uverbs_main.c @@ -285,6 +285,7 @@ static ssize_t ib_uverbs_async_event_read(struct file *= filp, char __user *buf, return ib_uverbs_event_read(&file->ev_queue, filp, buf, count, pos, sizeof(struct ib_uverbs_async_event_desc)); } +FOPS_READ_ITER_HELPER(ib_uverbs_async_event_read); =20 static ssize_t ib_uverbs_comp_event_read(struct file *filp, char __user *b= uf, size_t count, loff_t *pos) @@ -296,6 +297,7 @@ static ssize_t ib_uverbs_comp_event_read(struct file *f= ilp, char __user *buf, pos, sizeof(struct ib_uverbs_comp_event_desc)); } +FOPS_READ_ITER_HELPER(ib_uverbs_comp_event_read); =20 static __poll_t ib_uverbs_event_poll(struct ib_uverbs_event_queue *ev_queu= e, struct file *filp, @@ -349,7 +351,7 @@ static int ib_uverbs_comp_event_fasync(int fd, struct f= ile *filp, int on) =20 const struct file_operations uverbs_event_fops =3D { .owner =3D THIS_MODULE, - .read =3D ib_uverbs_comp_event_read, + .read_iter =3D ib_uverbs_comp_event_read_iter, .poll =3D ib_uverbs_comp_event_poll, .release =3D uverbs_uobject_fd_release, .fasync =3D ib_uverbs_comp_event_fasync, @@ -358,7 +360,7 @@ const struct file_operations uverbs_event_fops =3D { =20 const struct file_operations uverbs_async_event_fops =3D { .owner =3D THIS_MODULE, - .read =3D ib_uverbs_async_event_read, + .read_iter =3D ib_uverbs_async_event_read_iter, .poll =3D ib_uverbs_async_event_poll, .release =3D uverbs_async_event_release, .fasync =3D ib_uverbs_async_event_fasync, @@ -684,6 +686,7 @@ static ssize_t ib_uverbs_write(struct file *filp, const= char __user *buf, srcu_read_unlock(&file->device->disassociate_srcu, srcu_key); return (ret) ? : count; } +FOPS_WRITE_ITER_HELPER(ib_uverbs_write); =20 static const struct vm_operations_struct rdma_umap_ops; =20 @@ -988,7 +991,7 @@ static int ib_uverbs_close(struct inode *inode, struct = file *filp) =20 static const struct file_operations uverbs_fops =3D { .owner =3D THIS_MODULE, - .write =3D ib_uverbs_write, + .write_iter =3D ib_uverbs_write_iter, .open =3D ib_uverbs_open, .release =3D ib_uverbs_close, .llseek =3D no_llseek, @@ -998,7 +1001,7 @@ static const struct file_operations uverbs_fops =3D { =20 static const struct file_operations uverbs_mmap_fops =3D { .owner =3D THIS_MODULE, - .write =3D ib_uverbs_write, + .write_iter =3D ib_uverbs_write_iter, .mmap =3D ib_uverbs_mmap, .open =3D ib_uverbs_open, .release =3D ib_uverbs_close, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f46.google.com (mail-io1-f46.google.com [209.85.166.46]) (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 40EA31FA5D1 for ; Thu, 11 Apr 2024 15:43:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850182; cv=none; b=Cx3tm/5B+5J2HCT1QfUGFsrpRJk9D5KxP60vUUk9kBZzBI4JUL5s55hXBU4Zy1SE6+7d3/Vau4SSoMOB+5qul3p5t6tvWqgfa8xDocvHSJDicEJHXZbSWUmi4dkX1Ha+xKaSc68u18FU9r4g1JFvaiBsr+UMQJ6wTmG/U4uAIeU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850182; c=relaxed/simple; bh=/PHVbYRe7ULJUe0a7DqCc3HFS1XHgYfx9hgpPJNT4s4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=An6C8++x7QQVmtpNDTgBDwsMA21YCjm5avAdSA2r9IxMvzq1CgKPyGNimGsDS8NOHDyX/E4a8y6IhHjnVSmAPUCCqtjy5bvOro99c1HU4/rGhiT0ZFumcJciNVHPQB2UaG//eGtVJMhKn/T/v6V7MY/AVbDFbDya3RIwMKJeq4E= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=2iBwLfWR; arc=none smtp.client-ip=209.85.166.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="2iBwLfWR" Received: by mail-io1-f46.google.com with SMTP id ca18e2360f4ac-7d6112ba6baso58276939f.1 for ; Thu, 11 Apr 2024 08:43:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850180; x=1713454980; 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=MxnU8WvBkTK5Q8G8trncRTnTHAOpohq3pTRi4Clg2tg=; b=2iBwLfWRh+gPEZutGlF8tZ2hxlzzPwMcEXaSYi9k6RMNwym5BMfDJGSTSUjGQSEkP7 aZafIGKOxs/KLlHopXIOdLxuuhDG2GOnLLavML5fF1j2IcE2ZTox4demMNurvzsodzC7 uWq8UUnmaqHzxRFiLj4sxCNjp0ELMO/bqoLwGlNpZHOZt8c1gHrlxFqm2fAdocwp3o+Y aLpKZn7EMEgAGu03tNocXhhtUNYpsPdLozcmBh8s9GxMm68KLpHDr3M2meClfV/BZiB5 P4nd9uWqhh1QR53P8t6Ovx1GS4ssJa556jG9y8RH9tBokRb3eCYcxkevyaBOKo9W1oqR /ymA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850180; x=1713454980; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=MxnU8WvBkTK5Q8G8trncRTnTHAOpohq3pTRi4Clg2tg=; b=C90mK7D/QlMMy44Ctkz+Txu5JzgMTmPolJmRtH2pCU/kLLawXgJxnHpzeS5gy44njW n1Qqv5gZqUm6hhy2JbLbYzLxdrIt3BDn1cNlCoZ2HUXmrjwxDR2cr5qi2DpnYDFfn0bv hrm5A0kmB8jmsIKUsrMyBpenc/PQped3cbwCFzF6GaZgAEcRbPrYg/TtDJqWWQJYMh7w i1G65ClM4xL1hjCX6ov6EdMwYa1jp9E+HQtUOvc7gEgdatBfQ8a5yPVZs5kpg2IZoCMR cJCuHnB2qY0iRNzow/Tx5Pnw/BJDMXdFuEGRkXB4fdYW7jnp9hDHnpH5ngk7ddsC0C14 5h1Q== X-Gm-Message-State: AOJu0YzIIVqEZlYS9uY5lMI91I1J9IDBHKWI0siVoFqU4aINsGFynWbb VkOJo2JcbLsZU1Z1Amqp9ZkJejQxH5dslp/Qm9N66avjWlwu+R+UAD2hHaO1SAj4XIoJereEApJ 3 X-Google-Smtp-Source: AGHT+IH4y+66PGwYj2jvwy/olMzPZqI+GVYDVLWkmihu+/8UmpEjE2l6PymSN0+AWkVK9BIOUtnIsA== X-Received: by 2002:a05:6602:38d:b0:7d6:513b:254 with SMTP id f13-20020a056602038d00b007d6513b0254mr205785iov.2.1712850179986; Thu, 11 Apr 2024 08:42:59 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.42.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:42:58 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 405/437] infiniband/cxgb4: convert to read/write iterators Date: Thu, 11 Apr 2024 09:19:05 -0600 Message-ID: <20240411153126.16201-406-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/infiniband/hw/cxgb4/device.c | 35 +++++++++++++--------------- 1 file changed, 16 insertions(+), 19 deletions(-) diff --git a/drivers/infiniband/hw/cxgb4/device.c b/drivers/infiniband/hw/c= xgb4/device.c index 80970a1738f8..7067ecc4f9e6 100644 --- a/drivers/infiniband/hw/cxgb4/device.c +++ b/drivers/infiniband/hw/cxgb4/device.c @@ -81,12 +81,11 @@ struct c4iw_debugfs_data { int pos; }; =20 -static ssize_t debugfs_read(struct file *file, char __user *buf, size_t co= unt, - loff_t *ppos) +static ssize_t debugfs_read(struct kiocb *iocb, struct iov_iter *to) { - struct c4iw_debugfs_data *d =3D file->private_data; + struct c4iw_debugfs_data *d =3D iocb->ki_filp->private_data; =20 - return simple_read_from_buffer(buf, count, ppos, d->buf, d->pos); + return simple_copy_to_iter(d->buf, &iocb->ki_pos, d->pos, to); } =20 void c4iw_log_wr_stats(struct t4_wq *wq, struct t4_cqe *cqe) @@ -175,25 +174,24 @@ static int wr_log_open(struct inode *inode, struct fi= le *file) return single_open(file, wr_log_show, inode->i_private); } =20 -static ssize_t wr_log_clear(struct file *file, const char __user *buf, - size_t count, loff_t *pos) +static ssize_t wr_log_clear(struct kiocb *iocb, struct iov_iter *from) { - struct c4iw_dev *dev =3D ((struct seq_file *)file->private_data)->private; + struct c4iw_dev *dev =3D ((struct seq_file *)iocb->ki_filp->private_data)= ->private; int i; =20 if (dev->rdev.wr_log) for (i =3D 0; i < dev->rdev.wr_log_size; i++) dev->rdev.wr_log[i].valid =3D 0; - return count; + return iov_iter_count(from); } =20 static const struct file_operations wr_log_debugfs_fops =3D { .owner =3D THIS_MODULE, .open =3D wr_log_open, .release =3D single_release, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, - .write =3D wr_log_clear, + .write_iter =3D wr_log_clear, }; =20 static struct sockaddr_in zero_sin =3D { @@ -365,7 +363,7 @@ static const struct file_operations qp_debugfs_fops =3D= { .owner =3D THIS_MODULE, .open =3D qp_open, .release =3D qp_release, - .read =3D debugfs_read, + .read_iter =3D debugfs_read, .llseek =3D default_llseek, }; =20 @@ -460,7 +458,7 @@ static const struct file_operations stag_debugfs_fops = =3D { .owner =3D THIS_MODULE, .open =3D stag_open, .release =3D stag_release, - .read =3D debugfs_read, + .read_iter =3D debugfs_read, .llseek =3D default_llseek, }; =20 @@ -515,10 +513,9 @@ static int stats_open(struct inode *inode, struct file= *file) return single_open(file, stats_show, inode->i_private); } =20 -static ssize_t stats_clear(struct file *file, const char __user *buf, - size_t count, loff_t *pos) +static ssize_t stats_clear(struct kiocb *iocb, struct iov_iter *from) { - struct c4iw_dev *dev =3D ((struct seq_file *)file->private_data)->private; + struct c4iw_dev *dev =3D ((struct seq_file *)iocb->ki_filp->private_data)= ->private; =20 mutex_lock(&dev->rdev.stats.lock); dev->rdev.stats.pd.max =3D 0; @@ -543,16 +540,16 @@ static ssize_t stats_clear(struct file *file, const c= har __user *buf, dev->rdev.stats.act_ofld_conn_fails =3D 0; dev->rdev.stats.pas_ofld_conn_fails =3D 0; mutex_unlock(&dev->rdev.stats.lock); - return count; + return iov_iter_count(from); } =20 static const struct file_operations stats_debugfs_fops =3D { .owner =3D THIS_MODULE, .open =3D stats_open, .release =3D single_release, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, - .write =3D stats_clear, + .write_iter =3D stats_clear, }; =20 static int dump_ep(struct c4iw_ep *ep, struct c4iw_debugfs_data *epd) @@ -722,7 +719,7 @@ static const struct file_operations ep_debugfs_fops =3D= { .owner =3D THIS_MODULE, .open =3D ep_open, .release =3D ep_release, - .read =3D debugfs_read, + .read_iter =3D debugfs_read, }; =20 static void setup_debugfs(struct c4iw_dev *devp) --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f41.google.com (mail-io1-f41.google.com [209.85.166.41]) (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 3E63C1FB062 for ; Thu, 11 Apr 2024 15:43:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850185; cv=none; b=EyXXmJMHo8UKibcwB+vcC5JUeM/csennW6bTqKDE3dETpWsM2b7eGC+GkrYRU1/rlKO270hyKpqZBTbSuXG+0X61Y1VDy5MYFY6HLt53N6n0EWp2yV6qMoqDOX+xXuNk5y6urtKAFJyoo1TNX1iWWpUph+l7lx2z6LI+xCZnZ7Y= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850185; c=relaxed/simple; bh=1DciV3y8UGrC/lVqzO1pHnNbzoVj/m2ff/R35slerew=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=cMC2sKErCs7EBI3PXlit+Xz9waCS4ktU7YtTOQabEK6c9JW+0wIQWHqXkzk3UqlrBJFBKyxAQ0IEp3+1OVOScodK04ka2cvcyPVPl0L5E61su4H5/dq2ykw8d7gCpDz+MvFtQ86xpXnGEvpBMmPKxT+BobWO582pH2/ykdKMP4g= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=MgRY62So; arc=none smtp.client-ip=209.85.166.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="MgRY62So" Received: by mail-io1-f41.google.com with SMTP id ca18e2360f4ac-7d6112ba6baso58278339f.1 for ; Thu, 11 Apr 2024 08:43:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850181; x=1713454981; 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=YrTxzfM+6WU2DAQS8Yib8wiNqJhwbvOzxcj5vKuDbIY=; b=MgRY62SoaEENZOCvYURqW8Hh0HfJmNSIBodhZLFNkgBBd1HL/3sWBvHYRcnU+XP/P4 PpuYdo2Lig+6pKs7VyU04dPFqF9hJVJ9zGEpYXC+lrCeTnFn1dGeDqNakMsNuLeOnwzz EUgtRxlXTzMe3e0QWFUt9qKcrIxwKQn849f0GMMzLOXV6QX13cU9YP70skt6NOiA5B+o Rw60FPpkNUMzl5XyZjzqKsvN0eYIZEldv+d8GGCgWgwLlEljm0WYa/SGdjrNBZHkWLjU Cx8zRstocUpyKLqD5Oxujv3gG7uqJCi/jyefUVt09CEyBoM/5vQf6Vr6zaISCUgaoMuy UlnA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850182; x=1713454982; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=YrTxzfM+6WU2DAQS8Yib8wiNqJhwbvOzxcj5vKuDbIY=; b=Quf6SkXtJxFnHgn4tZ0nXkpny3zlzf45CYLzMh8Agdregnue7dUy3wxQbJIT3DX6Bp i0QxCRnYAA9mUxvNk0ujcJ6GczGUoelWK2CL4471TZhidqj6MQZNfUKqLDaHnt3zy4e9 n0b1ZRt3a7WGb9oSAlWXJ1DohvPVH+0LaL87slgLsuGZ8QFSp9gInGfAJhep0LB+FBX4 YQ0NPjEd4z7wEH0RN/J8SUiB99MzsLfQlG6xSLVkoLmJE7lKO5P1C1wpdrVcyz6j85xa ENnujI4lW+Hh+ODk4Y+uQK9SWy0mF+wOXhzE09+dKxt5MW69KK2POZ+y7iryjh7sVV/P /gkQ== X-Gm-Message-State: AOJu0Ywz6pmYRRX02sVlY0mP0aaTaH4AAh7NoYrkgLo22s3bLx9bxhm7 3OEhtTMIl5VQzaLpHyRkiLyisTp4lzbjOdBkndxTTigDlfNbHYPKMUXm9HAVtYrGUlPYX3MEJHk K X-Google-Smtp-Source: AGHT+IFocqbYhIMD5u6YKi83vIJBHBB03R6VEKuMuInFe3w9BcMj9k8y8hKgk0wluXb8oorDvN0rQg== X-Received: by 2002:a6b:cd08:0:b0:7d5:fe3e:90ff with SMTP id d8-20020a6bcd08000000b007d5fe3e90ffmr214322iog.0.1712850181564; Thu, 11 Apr 2024 08:43:01 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.43.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:43:00 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 406/437] infiniband/hfi1: convert to read/write iterators Date: Thu, 11 Apr 2024 09:19:06 -0600 Message-ID: <20240411153126.16201-407-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/infiniband/hw/hfi1/debugfs.c | 162 +++++++++++++-------------- drivers/infiniband/hw/hfi1/debugfs.h | 6 +- drivers/infiniband/hw/hfi1/fault.c | 27 +++-- 3 files changed, 91 insertions(+), 104 deletions(-) diff --git a/drivers/infiniband/hw/hfi1/debugfs.c b/drivers/infiniband/hw/h= fi1/debugfs.c index a1e01b447265..9b6c9d726c11 100644 --- a/drivers/infiniband/hw/hfi1/debugfs.c +++ b/drivers/infiniband/hw/hfi1/debugfs.c @@ -23,16 +23,15 @@ static struct dentry *hfi1_dbg_root; =20 /* wrappers to enforce srcu in seq file */ -ssize_t hfi1_seq_read(struct file *file, char __user *buf, size_t size, - loff_t *ppos) +ssize_t hfi1_seq_read(struct kiocb *iocb, struct iov_iter *to) { - struct dentry *d =3D file->f_path.dentry; + struct dentry *d =3D iocb->ki_filp->f_path.dentry; ssize_t r; =20 r =3D debugfs_file_get(d); if (unlikely(r)) return r; - r =3D seq_read(file, buf, size, ppos); + r =3D seq_read_iter(iocb, to); debugfs_file_put(d); return r; } @@ -414,33 +413,27 @@ DEBUGFS_SEQ_FILE_OPEN(pios) DEBUGFS_FILE_OPS(pios); =20 /* read the per-device counters */ -static ssize_t dev_counters_read(struct file *file, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t dev_counters_read(struct kiocb *iocb, struct iov_iter *to) { u64 *counters; size_t avail; struct hfi1_devdata *dd; - ssize_t rval; =20 - dd =3D private2dd(file); + dd =3D private2dd(iocb->ki_filp); avail =3D hfi1_read_cntrs(dd, NULL, &counters); - rval =3D simple_read_from_buffer(buf, count, ppos, counters, avail); - return rval; + return simple_copy_to_iter(counters, &iocb->ki_pos, avail, to); } =20 /* read the per-device counters */ -static ssize_t dev_names_read(struct file *file, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t dev_names_read(struct kiocb *iocb, struct iov_iter *to) { char *names; size_t avail; struct hfi1_devdata *dd; - ssize_t rval; =20 - dd =3D private2dd(file); + dd =3D private2dd(iocb->ki_filp); avail =3D hfi1_read_cntrs(dd, &names, NULL); - rval =3D simple_read_from_buffer(buf, count, ppos, names, avail); - return rval; + return simple_copy_to_iter(names, &iocb->ki_pos, avail, to); } =20 struct counter_info { @@ -454,33 +447,27 @@ struct counter_info { */ =20 /* read the per-port names (same for each port) */ -static ssize_t portnames_read(struct file *file, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t portnames_read(struct kiocb *iocb, struct iov_iter *to) { char *names; size_t avail; struct hfi1_devdata *dd; - ssize_t rval; =20 - dd =3D private2dd(file); + dd =3D private2dd(iocb->ki_filp); avail =3D hfi1_read_portcntrs(dd->pport, &names, NULL); - rval =3D simple_read_from_buffer(buf, count, ppos, names, avail); - return rval; + return simple_copy_to_iter(names, &iocb->ki_pos, avail, to); } =20 /* read the per-port counters */ -static ssize_t portcntrs_debugfs_read(struct file *file, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t portcntrs_debugfs_read(struct kiocb *iocb, struct iov_iter = *to) { u64 *counters; size_t avail; struct hfi1_pportdata *ppd; - ssize_t rval; =20 - ppd =3D private2ppd(file); + ppd =3D private2ppd(iocb->ki_filp); avail =3D hfi1_read_portcntrs(ppd, NULL, &counters); - rval =3D simple_read_from_buffer(buf, count, ppos, counters, avail); - return rval; + return simple_copy_to_iter(counters, &iocb->ki_pos, avail, to); } =20 static void check_dyn_flag(u64 scratch0, char *p, int size, int *used, @@ -497,8 +484,7 @@ static void check_dyn_flag(u64 scratch0, char *p, int s= ize, int *used, } } =20 -static ssize_t asic_flags_read(struct file *file, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t asic_flags_read(struct kiocb *iocb, struct iov_iter *to) { struct hfi1_pportdata *ppd; struct hfi1_devdata *dd; @@ -509,7 +495,7 @@ static ssize_t asic_flags_read(struct file *file, char = __user *buf, int used; int i; =20 - ppd =3D private2ppd(file); + ppd =3D private2ppd(iocb->ki_filp); dd =3D ppd->dd; size =3D PAGE_SIZE; used =3D 0; @@ -541,14 +527,14 @@ static ssize_t asic_flags_read(struct file *file, cha= r __user *buf, } used +=3D scnprintf(tmp + used, size - used, "Write bits to clear\n"); =20 - ret =3D simple_read_from_buffer(buf, count, ppos, tmp, used); + ret =3D simple_copy_to_iter(tmp, &iocb->ki_pos, used, to); kfree(tmp); return ret; } =20 -static ssize_t asic_flags_write(struct file *file, const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t asic_flags_write(struct kiocb *iocb, struct iov_iter *from) { + size_t count =3D iov_iter_count(from); struct hfi1_pportdata *ppd; struct hfi1_devdata *dd; char *buff; @@ -557,11 +543,11 @@ static ssize_t asic_flags_write(struct file *file, co= nst char __user *buf, u64 scratch0; u64 clear; =20 - ppd =3D private2ppd(file); + ppd =3D private2ppd(iocb->ki_filp); dd =3D ppd->dd; =20 /* zero terminate and read the expected integer */ - buff =3D memdup_user_nul(buf, count); + buff =3D iterdup_nul(from, count); if (IS_ERR(buff)) return PTR_ERR(buff); =20 @@ -592,16 +578,16 @@ static ssize_t asic_flags_write(struct file *file, co= nst char __user *buf, } =20 /* read the dc8051 memory */ -static ssize_t dc8051_memory_read(struct file *file, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t dc8051_memory_read(struct kiocb *iocb, struct iov_iter *to) { - struct hfi1_pportdata *ppd =3D private2ppd(file); + struct hfi1_pportdata *ppd =3D private2ppd(iocb->ki_filp); + size_t count =3D iov_iter_count(to); ssize_t rval; void *tmp; loff_t start, end; =20 /* the checks below expect the position to be positive */ - if (*ppos < 0) + if (iocb->ki_pos < 0) return -EINVAL; =20 tmp =3D kzalloc(DC8051_DATA_MEM_SIZE, GFP_KERNEL); @@ -614,9 +600,9 @@ static ssize_t dc8051_memory_read(struct file *file, ch= ar __user *buf, * Adjust start and end to fit. Skip reading anything if out of * range. */ - start =3D *ppos & ~0x7; /* round down */ + start =3D iocb->ki_pos & ~0x7; /* round down */ if (start < DC8051_DATA_MEM_SIZE) { - end =3D (*ppos + count + 7) & ~0x7; /* round up */ + end =3D (iocb->ki_pos + count + 7) & ~0x7; /* round up */ if (end > DC8051_DATA_MEM_SIZE) end =3D DC8051_DATA_MEM_SIZE; rval =3D read_8051_data(ppd->dd, start, end - start, @@ -625,98 +611,96 @@ static ssize_t dc8051_memory_read(struct file *file, = char __user *buf, goto done; } =20 - rval =3D simple_read_from_buffer(buf, count, ppos, tmp, - DC8051_DATA_MEM_SIZE); + rval =3D simple_copy_to_iter(tmp, &iocb->ki_pos, DC8051_DATA_MEM_SIZE, to= ); done: kfree(tmp); return rval; } =20 -static ssize_t debugfs_lcb_read(struct file *file, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t debugfs_lcb_read(struct kiocb *iocb, struct iov_iter *to) { - struct hfi1_pportdata *ppd =3D private2ppd(file); + struct hfi1_pportdata *ppd =3D private2ppd(iocb->ki_filp); + size_t count =3D iov_iter_count(to); struct hfi1_devdata *dd =3D ppd->dd; unsigned long total, csr_off; u64 data; =20 - if (*ppos < 0) + if (iocb->ki_pos < 0) return -EINVAL; /* only read 8 byte quantities */ if ((count % 8) !=3D 0) return -EINVAL; /* offset must be 8-byte aligned */ - if ((*ppos % 8) !=3D 0) + if ((iocb->ki_pos % 8) !=3D 0) return -EINVAL; /* do nothing if out of range or zero count */ - if (*ppos >=3D (LCB_END - LCB_START) || !count) + if (iocb->ki_pos >=3D (LCB_END - LCB_START) || !count) return 0; /* reduce count if needed */ - if (*ppos + count > LCB_END - LCB_START) - count =3D (LCB_END - LCB_START) - *ppos; + if (iocb->ki_pos + count > LCB_END - LCB_START) + count =3D (LCB_END - LCB_START) - iocb->ki_pos; =20 - csr_off =3D LCB_START + *ppos; + csr_off =3D LCB_START + iocb->ki_pos; for (total =3D 0; total < count; total +=3D 8, csr_off +=3D 8) { if (read_lcb_csr(dd, csr_off, (u64 *)&data)) break; /* failed */ - if (put_user(data, (unsigned long __user *)(buf + total))) + if (!copy_to_iter_full(&data, sizeof(data), to)) break; } - *ppos +=3D total; + iocb->ki_pos +=3D total; return total; } =20 -static ssize_t debugfs_lcb_write(struct file *file, const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t debugfs_lcb_write(struct kiocb *iocb, struct iov_iter *from) { - struct hfi1_pportdata *ppd =3D private2ppd(file); + struct hfi1_pportdata *ppd =3D private2ppd(iocb->ki_filp); + size_t count =3D iov_iter_count(from); struct hfi1_devdata *dd =3D ppd->dd; unsigned long total, csr_off, data; =20 - if (*ppos < 0) + if (iocb->ki_pos < 0) return -EINVAL; /* only write 8 byte quantities */ if ((count % 8) !=3D 0) return -EINVAL; /* offset must be 8-byte aligned */ - if ((*ppos % 8) !=3D 0) + if ((iocb->ki_pos % 8) !=3D 0) return -EINVAL; /* do nothing if out of range or zero count */ - if (*ppos >=3D (LCB_END - LCB_START) || !count) + if (iocb->ki_pos >=3D (LCB_END - LCB_START) || !count) return 0; /* reduce count if needed */ - if (*ppos + count > LCB_END - LCB_START) - count =3D (LCB_END - LCB_START) - *ppos; + if (iocb->ki_pos + count > LCB_END - LCB_START) + count =3D (LCB_END - LCB_START) - iocb->ki_pos; =20 - csr_off =3D LCB_START + *ppos; + csr_off =3D LCB_START + iocb->ki_pos; for (total =3D 0; total < count; total +=3D 8, csr_off +=3D 8) { - if (get_user(data, (unsigned long __user *)(buf + total))) + if (!copy_from_iter_full(&data, sizeof(data), from)) break; if (write_lcb_csr(dd, csr_off, data)) break; /* failed */ } - *ppos +=3D total; + iocb->ki_pos +=3D total; return total; } =20 /* * read the per-port QSFP data for ppd */ -static ssize_t qsfp_debugfs_dump(struct file *file, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t qsfp_debugfs_dump(struct kiocb *iocb, struct iov_iter *to) { struct hfi1_pportdata *ppd; char *tmp; int ret; =20 - ppd =3D private2ppd(file); + ppd =3D private2ppd(iocb->ki_filp); tmp =3D kmalloc(PAGE_SIZE, GFP_KERNEL); if (!tmp) return -ENOMEM; =20 ret =3D qsfp_dump(ppd, tmp, PAGE_SIZE); if (ret > 0) - ret =3D simple_read_from_buffer(buf, count, ppos, tmp, ret); + ret =3D simple_copy_to_iter(tmp, &iocb->ki_pos, ret, to); kfree(tmp); return ret; } @@ -767,6 +751,7 @@ static ssize_t i2c1_debugfs_write(struct file *file, co= nst char __user *buf, { return __i2c_debugfs_write(file, buf, count, ppos, 0); } +FOPS_WRITE_ITER_HELPER(i2c1_debugfs_write); =20 /* Do an i2c write operation on chain for HFI 1. */ static ssize_t i2c2_debugfs_write(struct file *file, const char __user *bu= f, @@ -774,6 +759,7 @@ static ssize_t i2c2_debugfs_write(struct file *file, co= nst char __user *buf, { return __i2c_debugfs_write(file, buf, count, ppos, 1); } +FOPS_WRITE_ITER_HELPER(i2c2_debugfs_write); =20 /* Do an i2c read operation on the chain for the given HFI. */ static ssize_t __i2c_debugfs_read(struct file *file, char __user *buf, @@ -827,6 +813,7 @@ static ssize_t i2c1_debugfs_read(struct file *file, cha= r __user *buf, { return __i2c_debugfs_read(file, buf, count, ppos, 0); } +FOPS_READ_ITER_HELPER(i2c1_debugfs_read); =20 /* Do an i2c read operation on chain for HFI 1. */ static ssize_t i2c2_debugfs_read(struct file *file, char __user *buf, @@ -834,6 +821,7 @@ static ssize_t i2c2_debugfs_read(struct file *file, cha= r __user *buf, { return __i2c_debugfs_read(file, buf, count, ppos, 1); } +FOPS_READ_ITER_HELPER(i2c2_debugfs_read); =20 /* Do a QSFP write operation on the i2c chain for the given HFI. */ static ssize_t __qsfp_debugfs_write(struct file *file, const char __user *= buf, @@ -874,6 +862,7 @@ static ssize_t qsfp1_debugfs_write(struct file *file, c= onst char __user *buf, { return __qsfp_debugfs_write(file, buf, count, ppos, 0); } +FOPS_WRITE_ITER_HELPER(qsfp1_debugfs_write); =20 /* Do a QSFP write operation on i2c chain for HFI 1. */ static ssize_t qsfp2_debugfs_write(struct file *file, const char __user *b= uf, @@ -881,6 +870,7 @@ static ssize_t qsfp2_debugfs_write(struct file *file, c= onst char __user *buf, { return __qsfp_debugfs_write(file, buf, count, ppos, 1); } +FOPS_WRITE_ITER_HELPER(qsfp2_debugfs_write); =20 /* Do a QSFP read operation on the i2c chain for the given HFI. */ static ssize_t __qsfp_debugfs_read(struct file *file, char __user *buf, @@ -932,6 +922,7 @@ static ssize_t qsfp1_debugfs_read(struct file *file, ch= ar __user *buf, { return __qsfp_debugfs_read(file, buf, count, ppos, 0); } +FOPS_READ_ITER_HELPER(qsfp1_debugfs_read); =20 /* Do a QSFP read operation on i2c chain for HFI 1. */ static ssize_t qsfp2_debugfs_read(struct file *file, char __user *buf, @@ -939,6 +930,7 @@ static ssize_t qsfp2_debugfs_read(struct file *file, ch= ar __user *buf, { return __qsfp_debugfs_read(file, buf, count, ppos, 1); } +FOPS_READ_ITER_HELPER(qsfp2_debugfs_read); =20 static int __i2c_debugfs_open(struct inode *in, struct file *fp, u32 targe= t) { @@ -1043,22 +1035,20 @@ static int exprom_wp_set(struct hfi1_devdata *dd, b= ool disable) return 0; } =20 -static ssize_t exprom_wp_debugfs_read(struct file *file, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t exprom_wp_debugfs_read(struct kiocb *iocb, struct iov_iter = *to) { return 0; } =20 -static ssize_t exprom_wp_debugfs_write(struct file *file, - const char __user *buf, size_t count, - loff_t *ppos) +static ssize_t exprom_wp_debugfs_write(struct kiocb *iocb, struct iov_iter= *from) { - struct hfi1_pportdata *ppd =3D private2ppd(file); + struct hfi1_pportdata *ppd =3D private2ppd(iocb->ki_filp); + size_t count =3D iov_iter_count(from); char cdata; =20 if (count !=3D 1) return -EINVAL; - if (get_user(cdata, buf)) + if (get_iter(cdata, from)) return -EFAULT; if (cdata =3D=3D '0') exprom_wp_set(ppd->dd, false); @@ -1096,8 +1086,8 @@ static int exprom_wp_debugfs_release(struct inode *in= , struct file *fp) .name =3D nm, \ .ops =3D { \ .owner =3D THIS_MODULE, \ - .read =3D readroutine, \ - .write =3D writeroutine, \ + .read_iter =3D readroutine, \ + .write_iter =3D writeroutine, \ .llseek =3D generic_file_llseek, \ }, \ } @@ -1107,8 +1097,8 @@ static int exprom_wp_debugfs_release(struct inode *in= , struct file *fp) .name =3D nm, \ .ops =3D { \ .owner =3D THIS_MODULE, \ - .read =3D readf, \ - .write =3D writef, \ + .read_iter =3D readf, \ + .write_iter =3D writef, \ .llseek =3D generic_file_llseek, \ .open =3D openf, \ .release =3D releasef \ @@ -1123,14 +1113,14 @@ static const struct counter_info cntr_ops[] =3D { =20 static const struct counter_info port_cntr_ops[] =3D { DEBUGFS_OPS("port%dcounters", portcntrs_debugfs_read, NULL), - DEBUGFS_XOPS("i2c1", i2c1_debugfs_read, i2c1_debugfs_write, + DEBUGFS_XOPS("i2c1", i2c1_debugfs_read_iter, i2c1_debugfs_write_iter, i2c1_debugfs_open, i2c1_debugfs_release), - DEBUGFS_XOPS("i2c2", i2c2_debugfs_read, i2c2_debugfs_write, + DEBUGFS_XOPS("i2c2", i2c2_debugfs_read_iter, i2c2_debugfs_write_iter, i2c2_debugfs_open, i2c2_debugfs_release), DEBUGFS_OPS("qsfp_dump%d", qsfp_debugfs_dump, NULL), - DEBUGFS_XOPS("qsfp1", qsfp1_debugfs_read, qsfp1_debugfs_write, + DEBUGFS_XOPS("qsfp1", qsfp1_debugfs_read_iter, qsfp1_debugfs_write_iter, qsfp1_debugfs_open, qsfp1_debugfs_release), - DEBUGFS_XOPS("qsfp2", qsfp2_debugfs_read, qsfp2_debugfs_write, + DEBUGFS_XOPS("qsfp2", qsfp2_debugfs_read_iter, qsfp2_debugfs_write_iter, qsfp2_debugfs_open, qsfp2_debugfs_release), DEBUGFS_XOPS("exprom_wp", exprom_wp_debugfs_read, exprom_wp_debugfs_write, exprom_wp_debugfs_open, @@ -1222,7 +1212,7 @@ void hfi1_dbg_ibdev_init(struct hfi1_ibdev *ibd) port_cntr_ops[i].name, j + 1); debugfs_create_file(name, - !port_cntr_ops[i].ops.write ? + !port_cntr_ops[i].ops.write_iter ? S_IRUGO : S_IRUGO | S_IWUSR, root, ppd, &port_cntr_ops[i].ops); diff --git a/drivers/infiniband/hw/hfi1/debugfs.h b/drivers/infiniband/hw/h= fi1/debugfs.h index 54d952a4016c..62f549a1adb4 100644 --- a/drivers/infiniband/hw/hfi1/debugfs.h +++ b/drivers/infiniband/hw/hfi1/debugfs.h @@ -33,14 +33,12 @@ static int _##name##_open(struct inode *inode, struct f= ile *s) \ static const struct file_operations _##name##_file_ops =3D { \ .owner =3D THIS_MODULE, \ .open =3D _##name##_open, \ - .read =3D hfi1_seq_read, \ + .read_iter =3D hfi1_seq_read, \ .llseek =3D hfi1_seq_lseek, \ .release =3D seq_release \ } =20 - -ssize_t hfi1_seq_read(struct file *file, char __user *buf, size_t size, - loff_t *ppos); +ssize_t hfi1_seq_read(struct kiocb *iocb, struct iov_iter *to); loff_t hfi1_seq_lseek(struct file *file, loff_t offset, int whence); =20 #ifdef CONFIG_DEBUG_FS diff --git a/drivers/infiniband/hw/hfi1/fault.c b/drivers/infiniband/hw/hfi= 1/fault.c index 35d2382ee618..0fe332245501 100644 --- a/drivers/infiniband/hw/hfi1/fault.c +++ b/drivers/infiniband/hw/hfi1/fault.c @@ -86,25 +86,25 @@ static int fault_opcodes_open(struct inode *inode, stru= ct file *file) return nonseekable_open(inode, file); } =20 -static ssize_t fault_opcodes_write(struct file *file, const char __user *b= uf, - size_t len, loff_t *pos) +static ssize_t fault_opcodes_write(struct kiocb *iocb, struct iov_iter *fr= om) { ssize_t ret =3D 0; /* 1280 =3D 256 opcodes * 4 chars/opcode + 255 commas + NULL */ size_t copy, datalen =3D 1280; char *data, *token, *ptr, *end; - struct fault *fault =3D file->private_data; + struct fault *fault =3D iocb->ki_filp->private_data; + size_t len =3D iov_iter_count(from); =20 data =3D kcalloc(datalen, sizeof(*data), GFP_KERNEL); if (!data) return -ENOMEM; copy =3D min(len, datalen - 1); - if (copy_from_user(data, buf, copy)) { + if (!copy_from_iter_full(data, copy, from)) { ret =3D -EFAULT; goto free_data; } =20 - ret =3D debugfs_file_get(file->f_path.dentry); + ret =3D debugfs_file_get(iocb->ki_filp->f_path.dentry); if (unlikely(ret)) goto free_data; ptr =3D data; @@ -154,26 +154,25 @@ static ssize_t fault_opcodes_write(struct file *file,= const char __user *buf, } ret =3D len; =20 - debugfs_file_put(file->f_path.dentry); + debugfs_file_put(iocb->ki_filp->f_path.dentry); free_data: kfree(data); return ret; } =20 -static ssize_t fault_opcodes_read(struct file *file, char __user *buf, - size_t len, loff_t *pos) +static ssize_t fault_opcodes_read(struct kiocb *iocb, struct iov_iter *to) { ssize_t ret =3D 0; char *data; size_t datalen =3D 1280, size =3D 0; /* see fault_opcodes_write() */ unsigned long bit =3D 0, zero =3D 0; - struct fault *fault =3D file->private_data; + struct fault *fault =3D iocb->ki_filp->private_data; size_t bitsize =3D sizeof(fault->opcodes) * BITS_PER_BYTE; =20 data =3D kcalloc(datalen, sizeof(*data), GFP_KERNEL); if (!data) return -ENOMEM; - ret =3D debugfs_file_get(file->f_path.dentry); + ret =3D debugfs_file_get(iocb->ki_filp->f_path.dentry); if (unlikely(ret)) goto free_data; bit =3D find_first_bit(fault->opcodes, bitsize); @@ -189,10 +188,10 @@ static ssize_t fault_opcodes_read(struct file *file, = char __user *buf, bit); bit =3D find_next_bit(fault->opcodes, bitsize, zero); } - debugfs_file_put(file->f_path.dentry); + debugfs_file_put(iocb->ki_filp->f_path.dentry); data[size - 1] =3D '\n'; data[size] =3D '\0'; - ret =3D simple_read_from_buffer(buf, len, pos, data, size); + ret =3D simple_copy_to_iter(data, &iocb->ki_pos, size, to); free_data: kfree(data); return ret; @@ -201,8 +200,8 @@ static ssize_t fault_opcodes_read(struct file *file, ch= ar __user *buf, static const struct file_operations __fault_opcodes_fops =3D { .owner =3D THIS_MODULE, .open =3D fault_opcodes_open, - .read =3D fault_opcodes_read, - .write =3D fault_opcodes_write, + .read_iter =3D fault_opcodes_read, + .write_iter =3D fault_opcodes_write, .llseek =3D no_llseek }; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f48.google.com (mail-io1-f48.google.com [209.85.166.48]) (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 83F321FB076 for ; Thu, 11 Apr 2024 15:43:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850186; cv=none; b=BVIfxxoaDKlEA5lvCrn4z9KE1YFBuAuryz2GXw5z3XHZ+KvoFh37WYNWoqPxo1RF5K0D+xDNeCQQRUUzLPD+UcHIZCRbwHzifyacMNZdQzzqPvhYnAokjRteNv7gfBC6Lo1kwxbRjYVmUxqI/M6lAtsLI9cuPFF0zSvIWFGgrwU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850186; c=relaxed/simple; bh=tzqgYXHzifgFmNnKob1SoOuBoJxCVRmCZTCP63ibsvs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=AQrgZvBlvb38kBX9afhsgH8Q13Ruj9BPQ2iZBKK5rrXOWti9zvzRc6wsyV2HYZ3AqhWqurUzOGEUEn1IFCyHyv71TbHf2AHsiHZkcUWGuyRicwR0W0On3H80XQOIcz9gtd4HDysFZOZT8hsUMHVLK0VgisgSgoqULQVGK0FugOE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=TKq4BZlw; arc=none smtp.client-ip=209.85.166.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="TKq4BZlw" Received: by mail-io1-f48.google.com with SMTP id ca18e2360f4ac-7d6812b37a6so9108439f.0 for ; Thu, 11 Apr 2024 08:43:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850183; x=1713454983; 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=/bbkgh6wS8rrxa/aA5ey6xEyhGsyTyT+2gX7v9UKwI0=; b=TKq4BZlwz6JbpPI1XZvdynz/9Wi1Js65ryfBFaqpB0JaHfXc3N1kB3WN8xPs5pgIY6 1PNT2xmhNIvaSyeRSjp6LxkN27HsmN6NFX5GsO8sEr0jdfxQBsD0SGrfLJY2EOdNhFNe JH1KZ3EG1B4ugr+jOhXt+BjA+fIw3PJgMD/AQPEuGQ7ULDKPmpi2cr72ehCq2GqFJt1p Yc5uR0zOIJGl8VDLs9HIGXoh1YgybxND9AHDEJ5lE2gwlOwJjJUKy8+aM7nndfD9/lMG DqLyZXofMOjHgTb19Jq08g2XQc0Iv++csIZ7DJM/beiD1f3ZDRva6mm1OHVgvcnKgMal eUtg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850183; x=1713454983; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=/bbkgh6wS8rrxa/aA5ey6xEyhGsyTyT+2gX7v9UKwI0=; b=sfh8NLYEAWRzncqk1XEeyeTJW4b/Gaug7mg7eC2Z5WwpqsNi7y7wsmR8Dv3LRGlqL5 zQg8RSiZLKdlRr4WfZIftZQyp6HjLtGEq759qRLCOA+YK6tCe3YDGK7deqQg9Gzwiszd hGQIgiIuHuKyJF6F+XsytEo34HewtFukxSuT+uB4pCWwg1L787/KUZw2TZm8UatWPZDi GKBgt5rl4L/stHNhYxKVINEpbOhlMH2FwhXQHM3t23ieLsR9JPYt5gy2mlyR9l979QXi /m8kBQNLmTFa2BsLuMasS6RGe0Jr1DVTPszDeCyAHZu+JybqgwdRPCHEveVSXgeBdtcI BQQA== X-Gm-Message-State: AOJu0YwxTvY3zMDFSiY31JHrVWKsyqYlwnm96t8hpL+j70IzqlCPw4LY l+MW366NUgCYe4dPMWdPAIrNIfr3qYY46LDR/uxwJtGJH96kzhIu4r04hgl1XK5OY/RrwELt/Yk Y X-Google-Smtp-Source: AGHT+IFNS2ho9/DrVY3U4ajiFCP4C3UwWJDDLZf9vXn0GqoDYpz/E9QhMoSgWimR9OR17r25y7DSnA== X-Received: by 2002:a05:6602:21d7:b0:7d6:9ddf:5095 with SMTP id c23-20020a05660221d700b007d69ddf5095mr34699ioc.1.1712850182327; Thu, 11 Apr 2024 08:43:02 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.43.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:43:01 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 407/437] infiniband/mlx5: convert to read/write iterators Date: Thu, 11 Apr 2024 09:19:07 -0600 Message-ID: <20240411153126.16201-408-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/infiniband/hw/mlx5/cong.c | 19 ++++++++-------- drivers/infiniband/hw/mlx5/devx.c | 24 +++++++++---------- drivers/infiniband/hw/mlx5/main.c | 20 ++++++++-------- drivers/infiniband/hw/mlx5/mr.c | 38 +++++++++++++++---------------- 4 files changed, 49 insertions(+), 52 deletions(-) diff --git a/drivers/infiniband/hw/mlx5/cong.c b/drivers/infiniband/hw/mlx5= /cong.c index a78a067e3ce7..b7ca85f516fc 100644 --- a/drivers/infiniband/hw/mlx5/cong.c +++ b/drivers/infiniband/hw/mlx5/cong.c @@ -368,10 +368,10 @@ static int mlx5_ib_set_cc_params(struct mlx5_ib_dev *= dev, u32 port_num, return err; } =20 -static ssize_t set_param(struct file *filp, const char __user *buf, - size_t count, loff_t *pos) +static ssize_t set_param(struct kiocb *iocb, struct iov_iter *from) { - struct mlx5_ib_dbg_param *param =3D filp->private_data; + struct mlx5_ib_dbg_param *param =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); int offset =3D param->offset; char lbuf[11] =3D { }; u32 var; @@ -380,7 +380,7 @@ static ssize_t set_param(struct file *filp, const char = __user *buf, if (count > sizeof(lbuf)) return -EINVAL; =20 - if (copy_from_user(lbuf, buf, count)) + if (!copy_from_iter_full(lbuf, count, from)) return -EFAULT; =20 lbuf[sizeof(lbuf) - 1] =3D '\0'; @@ -392,10 +392,9 @@ static ssize_t set_param(struct file *filp, const char= __user *buf, return ret ? ret : count; } =20 -static ssize_t get_param(struct file *filp, char __user *buf, size_t count, - loff_t *pos) +static ssize_t get_param(struct kiocb *iocb, struct iov_iter *to) { - struct mlx5_ib_dbg_param *param =3D filp->private_data; + struct mlx5_ib_dbg_param *param =3D iocb->ki_filp->private_data; int offset =3D param->offset; u32 var =3D 0; int ret; @@ -409,14 +408,14 @@ static ssize_t get_param(struct file *filp, char __us= er *buf, size_t count, if (ret < 0) return ret; =20 - return simple_read_from_buffer(buf, count, pos, lbuf, ret); + return simple_copy_to_iter(lbuf, &iocb->ki_pos, ret, to); } =20 static const struct file_operations dbg_cc_fops =3D { .owner =3D THIS_MODULE, .open =3D simple_open, - .write =3D set_param, - .read =3D get_param, + .write_iter =3D set_param, + .read_iter =3D get_param, }; =20 void mlx5_ib_cleanup_cong_debugfs(struct mlx5_ib_dev *dev, u32 port_num) diff --git a/drivers/infiniband/hw/mlx5/devx.c b/drivers/infiniband/hw/mlx5= /devx.c index 253fea374a72..a73c9ba11912 100644 --- a/drivers/infiniband/hw/mlx5/devx.c +++ b/drivers/infiniband/hw/mlx5/devx.c @@ -2595,11 +2595,11 @@ void mlx5_ib_devx_cleanup(struct mlx5_ib_dev *dev) } } =20 -static ssize_t devx_async_cmd_event_read(struct file *filp, char __user *b= uf, - size_t count, loff_t *pos) +static ssize_t devx_async_cmd_event_read(struct kiocb *iocb, struct iov_it= er *to) { - struct devx_async_cmd_event_file *comp_ev_file =3D filp->private_data; + struct devx_async_cmd_event_file *comp_ev_file =3D iocb->ki_filp->private= _data; struct devx_async_event_queue *ev_queue =3D &comp_ev_file->ev_queue; + size_t count =3D iov_iter_count(to); struct devx_async_data *event; int ret =3D 0; size_t eventsz; @@ -2609,7 +2609,7 @@ static ssize_t devx_async_cmd_event_read(struct file = *filp, char __user *buf, while (list_empty(&ev_queue->event_list)) { spin_unlock_irq(&ev_queue->lock); =20 - if (filp->f_flags & O_NONBLOCK) + if (iocb->ki_filp->f_flags & O_NONBLOCK) return -EAGAIN; =20 if (wait_event_interruptible( @@ -2639,7 +2639,7 @@ static ssize_t devx_async_cmd_event_read(struct file = *filp, char __user *buf, list_del(ev_queue->event_list.next); spin_unlock_irq(&ev_queue->lock); =20 - if (copy_to_user(buf, &event->hdr, eventsz)) + if (!copy_to_iter_full(&event->hdr, eventsz, to)) ret =3D -EFAULT; else ret =3D eventsz; @@ -2670,18 +2670,18 @@ static __poll_t devx_async_cmd_event_poll(struct fi= le *filp, =20 static const struct file_operations devx_async_cmd_event_fops =3D { .owner =3D THIS_MODULE, - .read =3D devx_async_cmd_event_read, + .read_iter =3D devx_async_cmd_event_read, .poll =3D devx_async_cmd_event_poll, .release =3D uverbs_uobject_fd_release, .llseek =3D no_llseek, }; =20 -static ssize_t devx_async_event_read(struct file *filp, char __user *buf, - size_t count, loff_t *pos) +static ssize_t devx_async_event_read(struct kiocb *iocb, struct iov_iter *= to) { - struct devx_async_event_file *ev_file =3D filp->private_data; + struct devx_async_event_file *ev_file =3D iocb->ki_filp->private_data; struct devx_event_subscription *event_sub; struct devx_async_event_data *event; + size_t count =3D iov_iter_count(to); int ret =3D 0; size_t eventsz; bool omit_data; @@ -2701,7 +2701,7 @@ static ssize_t devx_async_event_read(struct file *fil= p, char __user *buf, while (list_empty(&ev_file->event_list)) { spin_unlock_irq(&ev_file->lock); =20 - if (filp->f_flags & O_NONBLOCK) + if (iocb->ki_filp->f_flags & O_NONBLOCK) return -EAGAIN; =20 if (wait_event_interruptible(ev_file->poll_wait, @@ -2743,7 +2743,7 @@ static ssize_t devx_async_event_read(struct file *fil= p, char __user *buf, =20 spin_unlock_irq(&ev_file->lock); =20 - if (copy_to_user(buf, event_data, eventsz)) + if (!copy_to_iter_full(event_data, eventsz, to)) /* This points to an application issue, not a kernel concern */ ret =3D -EFAULT; else @@ -2785,7 +2785,7 @@ static void devx_free_subscription(struct rcu_head *r= cu) =20 static const struct file_operations devx_async_event_fops =3D { .owner =3D THIS_MODULE, - .read =3D devx_async_event_read, + .read_iter =3D devx_async_event_read, .poll =3D devx_async_event_poll, .release =3D uverbs_uobject_fd_release, .llseek =3D no_llseek, diff --git a/drivers/infiniband/hw/mlx5/main.c b/drivers/infiniband/hw/mlx5= /main.c index c2b557e64290..f531568cfead 100644 --- a/drivers/infiniband/hw/mlx5/main.c +++ b/drivers/infiniband/hw/mlx5/main.c @@ -3154,25 +3154,25 @@ static int mlx5_ib_rn_get_params(struct ib_device *= device, u32 port_num, return mlx5_rdma_rn_get_params(to_mdev(device)->mdev, device, params); } =20 -static ssize_t delay_drop_timeout_read(struct file *filp, char __user *buf, - size_t count, loff_t *pos) +static ssize_t delay_drop_timeout_read(struct kiocb *iocb, struct iov_iter= *to) { - struct mlx5_ib_delay_drop *delay_drop =3D filp->private_data; + struct mlx5_ib_delay_drop *delay_drop =3D iocb->ki_filp->private_data; char lbuf[20]; int len; =20 len =3D snprintf(lbuf, sizeof(lbuf), "%u\n", delay_drop->timeout); - return simple_read_from_buffer(buf, count, pos, lbuf, len); + return simple_copy_to_iter(lbuf, &iocb->ki_pos, len, to); } =20 -static ssize_t delay_drop_timeout_write(struct file *filp, const char __us= er *buf, - size_t count, loff_t *pos) +static ssize_t delay_drop_timeout_write(struct kiocb *iocb, + struct iov_iter *from) { - struct mlx5_ib_delay_drop *delay_drop =3D filp->private_data; + struct mlx5_ib_delay_drop *delay_drop =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); u32 timeout; u32 var; =20 - if (kstrtouint_from_user(buf, count, 0, &var)) + if (kstrtouint_from_iter(from, count, 0, &var)) return -EFAULT; =20 timeout =3D min_t(u32, roundup(var, 100), MLX5_MAX_DELAY_DROP_TIMEOUT_MS * @@ -3189,8 +3189,8 @@ static ssize_t delay_drop_timeout_write(struct file *= filp, const char __user *bu static const struct file_operations fops_delay_drop_timeout =3D { .owner =3D THIS_MODULE, .open =3D simple_open, - .write =3D delay_drop_timeout_write, - .read =3D delay_drop_timeout_read, + .write_iter =3D delay_drop_timeout_write, + .read_iter =3D delay_drop_timeout_read, }; =20 static void mlx5_ib_unbind_slave_port(struct mlx5_ib_dev *ibdev, diff --git a/drivers/infiniband/hw/mlx5/mr.c b/drivers/infiniband/hw/mlx5/m= r.c index a8ee2ca1f4a1..779da5c2f911 100644 --- a/drivers/infiniband/hw/mlx5/mr.c +++ b/drivers/infiniband/hw/mlx5/mr.c @@ -366,14 +366,14 @@ static int resize_available_mrs(struct mlx5_cache_ent= *ent, unsigned int target, } } =20 -static ssize_t size_write(struct file *filp, const char __user *buf, - size_t count, loff_t *pos) +static ssize_t size_write(struct kiocb *iocb, struct iov_iter *from) { - struct mlx5_cache_ent *ent =3D filp->private_data; + struct mlx5_cache_ent *ent =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); u32 target; int err; =20 - err =3D kstrtou32_from_user(buf, count, 0, &target); + err =3D kstrtou32_from_iter(from, count, 0, &target); if (err) return err; =20 @@ -404,10 +404,9 @@ static ssize_t size_write(struct file *filp, const cha= r __user *buf, return err; } =20 -static ssize_t size_read(struct file *filp, char __user *buf, size_t count, - loff_t *pos) +static ssize_t size_read(struct kiocb *iocb, struct iov_iter *to) { - struct mlx5_cache_ent *ent =3D filp->private_data; + struct mlx5_cache_ent *ent =3D iocb->ki_filp->private_data; char lbuf[20]; int err; =20 @@ -416,24 +415,24 @@ static ssize_t size_read(struct file *filp, char __us= er *buf, size_t count, if (err < 0) return err; =20 - return simple_read_from_buffer(buf, count, pos, lbuf, err); + return simple_copy_to_iter(lbuf, &iocb->ki_pos, err, to); } =20 static const struct file_operations size_fops =3D { .owner =3D THIS_MODULE, .open =3D simple_open, - .write =3D size_write, - .read =3D size_read, + .write_iter =3D size_write, + .read_iter =3D size_read, }; =20 -static ssize_t limit_write(struct file *filp, const char __user *buf, - size_t count, loff_t *pos) +static ssize_t limit_write(struct kiocb *iocb, struct iov_iter *from) { - struct mlx5_cache_ent *ent =3D filp->private_data; + struct mlx5_cache_ent *ent =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); u32 var; int err; =20 - err =3D kstrtou32_from_user(buf, count, 0, &var); + err =3D kstrtou32_from_iter(from, count, 0, &var); if (err) return err; =20 @@ -450,10 +449,9 @@ static ssize_t limit_write(struct file *filp, const ch= ar __user *buf, return count; } =20 -static ssize_t limit_read(struct file *filp, char __user *buf, size_t coun= t, - loff_t *pos) +static ssize_t limit_read(struct kiocb *iocb, struct iov_iter *to) { - struct mlx5_cache_ent *ent =3D filp->private_data; + struct mlx5_cache_ent *ent =3D iocb->ki_filp->private_data; char lbuf[20]; int err; =20 @@ -461,14 +459,14 @@ static ssize_t limit_read(struct file *filp, char __u= ser *buf, size_t count, if (err < 0) return err; =20 - return simple_read_from_buffer(buf, count, pos, lbuf, err); + return simple_copy_to_iter(lbuf, &iocb->ki_pos, err, to); } =20 static const struct file_operations limit_fops =3D { .owner =3D THIS_MODULE, .open =3D simple_open, - .write =3D limit_write, - .read =3D limit_read, + .write_iter =3D limit_write, + .read_iter =3D limit_read, }; =20 static bool someone_adding(struct mlx5_mkey_cache *cache) --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f43.google.com (mail-io1-f43.google.com [209.85.166.43]) (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 ED5441FB07A for ; Thu, 11 Apr 2024 15:43:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850186; cv=none; b=oYccL5mTRsF8E5wMTeF4tWpjN9peaZxYbA0D/C69ivp7Cv1k/Gij6Dy1dA+gIf2zpljbRQGSanU0scwpIco0sve/79wtPqxu/ho/HONT2aitA9Soez70wh3UXeGG6Ho+11ERt2eroA9kAGlEMeDRudwg90oZbi3DDiROgqthppA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850186; c=relaxed/simple; bh=rgdku1fyEUHuP9463v9X5w2ujARSYJXqOJoAkoBa+GY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=rcq3VTnjGXCtQSvTpnyrjB9Be8I6IySqxZTXdOeYVA8sGy34TVOY5zk1hSPiPLC99I756EoFRmZmJMiK5Al9lzrDNYCxRVI3aiv56B+n5DRb2L0iBmGczRfNnZ4O3E3BCsDS20NT2GxL+qNs6ZF4CitYDRGL3/69jRFaUPCONQk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=iv406Xxm; arc=none smtp.client-ip=209.85.166.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="iv406Xxm" Received: by mail-io1-f43.google.com with SMTP id ca18e2360f4ac-7c8e4c0412dso69696139f.1 for ; Thu, 11 Apr 2024 08:43:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850183; x=1713454983; 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=cXEPzStCGxOtFI+Px06wFKYHmvuScnXZMMcQHWtcEOs=; b=iv406XxmJ4BTrJPH0f0IfUq2EZk6fZeIdPUxLgW1XUkOefQMQnW5I0Ymup+2KOUEue u+ht4p7VuPWojS8Wcz7TOH783Jb62FrBZKcwApzJ3VnzrcGGyA3OXTXngBx+Ma68MdYE TfywrPTiWcwJpzc8xVE43QYB1ZsWVxKHM60xXbuYihKzwrObOUu7yO+udgokUGfG3Ui/ ogLccs0qrklPdJPAQHRGOblAFLiJhaY+CUALpywxSr9TWWWypBjdMbkCOzJcRiHVvzRm Xql1NhgT2sFw+JPKy5aj9+B/Ve1sc8+YA3E82h6TJp77vkorPt+yNgP54lstoLG+X43R nyqw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850183; x=1713454983; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=cXEPzStCGxOtFI+Px06wFKYHmvuScnXZMMcQHWtcEOs=; b=kXM8DXH7xt7mh+rTFpJUFAOTbkHSzMX3LednZdychBLHAkeAzU4sK0+HOB/rtpd3lW rku630NKws8BhW3XlI9LaYYDDY1YmIorTp8xlkUU8zsY89lPks07EjlkjKuTyGmfHuUo mBnU88DSm8d1Oy6XcYpJZwWzB8I1o2Nnaj+QnD2ONr2BEFqCUQG1QrqHh0AWar6zpYwn GuTnHEFmJn1yWhAw54XYdkskt14cmN4oXABy/PvZClBC1rSzsWaNtprfrlWfI5JcbfnN yz9ott98yWaocPEkBIEnfvVyrg0u2eiZ2xxR88O3r9IdgTuso1uu2WXQEYmyrEQZHk5l yqvg== X-Gm-Message-State: AOJu0Yzr15O2i+XamPJzLUtQ71lmtPfYOq6AV8HqnAlvI76vgIVyUOZ+ qfHAFpwWv6RvAw+OXH6zyWTcjDI55+yDyW43/DAg1i5DaBymkwv5ZNoXcI1jfIUj76rZlQd1cex o X-Google-Smtp-Source: AGHT+IEhAJ5vvcu4YDJwnQUeJDnUqe6a47wrGzyb/beVPjMFJFn01V9r9EJAle0ZjfTeVYTo5o2+ow== X-Received: by 2002:a6b:7b05:0:b0:7d6:60dc:bc8e with SMTP id l5-20020a6b7b05000000b007d660dcbc8emr210850iop.1.1712850183587; Thu, 11 Apr 2024 08:43:03 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.43.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:43:02 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 408/437] infiniband/ocrdma: convert to read/write iterators Date: Thu, 11 Apr 2024 09:19:08 -0600 Message-ID: <20240411153126.16201-409-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/infiniband/hw/ocrdma/ocrdma_stats.c | 26 ++++++++++----------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/drivers/infiniband/hw/ocrdma/ocrdma_stats.c b/drivers/infiniba= nd/hw/ocrdma/ocrdma_stats.c index 5f831e3bdbad..687174d32365 100644 --- a/drivers/infiniband/hw/ocrdma/ocrdma_stats.c +++ b/drivers/infiniband/hw/ocrdma/ocrdma_stats.c @@ -631,20 +631,19 @@ static void ocrdma_update_stats(struct ocrdma_dev *de= v) } } =20 -static ssize_t ocrdma_dbgfs_ops_write(struct file *filp, - const char __user *buffer, - size_t count, loff_t *ppos) +static ssize_t ocrdma_dbgfs_ops_write(struct kiocb *iocb, struct iov_iter = *from) { char tmp_str[32]; long reset; int status; - struct ocrdma_stats *pstats =3D filp->private_data; + struct ocrdma_stats *pstats =3D iocb->ki_filp->private_data; struct ocrdma_dev *dev =3D pstats->dev; + size_t count =3D iov_iter_count(from); =20 - if (*ppos !=3D 0 || count =3D=3D 0 || count > sizeof(tmp_str)) + if (iocb->ki_pos !=3D 0 || count =3D=3D 0 || count > sizeof(tmp_str)) goto err; =20 - if (copy_from_user(tmp_str, buffer, count)) + if (!copy_from_iter_full(tmp_str, count, from)) goto err; =20 tmp_str[count-1] =3D '\0'; @@ -683,16 +682,16 @@ void ocrdma_pma_counters(struct ocrdma_dev *dev, stru= ct ib_mad *out_mad) pma_cnt->port_rcv_packets =3D cpu_to_be32(ocrdma_sysfs_rcv_pkts(dev)); } =20 -static ssize_t ocrdma_dbgfs_ops_read(struct file *filp, char __user *buffe= r, - size_t usr_buf_len, loff_t *ppos) +static ssize_t ocrdma_dbgfs_ops_read(struct kiocb *iocb, struct iov_iter *= to) { - struct ocrdma_stats *pstats =3D filp->private_data; + struct ocrdma_stats *pstats =3D iocb->ki_filp->private_data; + size_t usr_buf_len =3D iov_iter_count(to); struct ocrdma_dev *dev =3D pstats->dev; ssize_t status =3D 0; char *data =3D NULL; =20 /* No partial reads */ - if (*ppos !=3D 0) + if (iocb->ki_pos !=3D 0) return 0; =20 mutex_lock(&dev->stats_lock); @@ -741,8 +740,7 @@ static ssize_t ocrdma_dbgfs_ops_read(struct file *filp,= char __user *buffer, goto exit; } =20 - status =3D simple_read_from_buffer(buffer, usr_buf_len, ppos, data, - strlen(data)); + status =3D simple_copy_to_iter(data, &iocb->ki_pos, strlen(data), to); exit: mutex_unlock(&dev->stats_lock); return status; @@ -751,8 +749,8 @@ static ssize_t ocrdma_dbgfs_ops_read(struct file *filp,= char __user *buffer, static const struct file_operations ocrdma_dbg_ops =3D { .owner =3D THIS_MODULE, .open =3D simple_open, - .read =3D ocrdma_dbgfs_ops_read, - .write =3D ocrdma_dbgfs_ops_write, + .read_iter =3D ocrdma_dbgfs_ops_read, + .write_iter =3D ocrdma_dbgfs_ops_write, }; =20 void ocrdma_add_port_stats(struct ocrdma_dev *dev) --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-il1-f179.google.com (mail-il1-f179.google.com [209.85.166.179]) (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 BF1611FB093 for ; Thu, 11 Apr 2024 15:43:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.179 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850188; cv=none; b=rsfEYjDU4SFlgm+53/G7NHywABHRBlo+3YSMo7F1HPrRB7Pl7LLsjZQLsDxDCNOXisRyHTgsQJ+FADWgy7xVA6uivVgd6xErmXi/pVZQRsByTkSdWOK+RdkpIsadtf9CIfMIN/9lN7E0NVA6ZAQkUBQZoWfihRcE/dTr9fX9qVE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850188; c=relaxed/simple; bh=g0lIWH0N0zdx5AppWG/FVVxGNCs+tG8DW3d+QUlwwXE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=pNKpYVxWJQWlW7y1qYh1KD1FhLfJgpAN7x+bySC6DM+5becUGiJU2dqJBlLOpR/vtOzBE9/QA3kIZpyBAgzuLWOf8Tot9nHr98+Rjo+2adrRE10gSyaHw2DbGK+s2DRWYIElmmPDu8hvXrg+J9k4IDnWJhl8ouQpOB1hLAekr18= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=q+3EEobh; arc=none smtp.client-ip=209.85.166.179 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="q+3EEobh" Received: by mail-il1-f179.google.com with SMTP id e9e14a558f8ab-36a224d7414so198395ab.1 for ; Thu, 11 Apr 2024 08:43:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850185; x=1713454985; 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=JcvNWcBSMDpqB+NAzuJWy4wSGo64RVW1rGmLFHq551o=; b=q+3EEobhOBuqn7UTJD6Iwt8D1+tDWInM+SqJFRbU7mcstYtiW0o3XYCGqTK/WgYvJY 2OikCrNOZm9+9/o6c5MHsTnYmHArjNnrJvwTxqIxVduKDD6HPrBjGQVeOlupydrtcvPS awk/YDSqfIM9PGe4tsTbkvzm0V1Ah1QvPaMHQ/ll4Bptv8WkJ94Vshc7Xa9QKCBKpTRa rdprqyclBLIR7sApORBqlqZgRef7R7/r4PIcdsM97xSx0p+xgS128p9v7tL/Z7HSVJ/b tbt+n0ZzoSaSTCcujq9PIi1WoHe2v22xFGtxN8gqi+iQqeZ2TBZJN2Sk/cCzgqzYGDMt 9h/w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850185; x=1713454985; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=JcvNWcBSMDpqB+NAzuJWy4wSGo64RVW1rGmLFHq551o=; b=URJJ/KYGtKMtFcQQ765qPOEG/tMP0ByU/T1MgCZFziAUGKyoP+tkmaya+l0l2M2QKk ZRm6RvBO6DwPBN1WonFYjUDzACT0Bx3AG45V5qqsPX/nGfSTYSRmJpaO/zSt651eEcaq zkiL+vuqX27Nv3tUkM4/ROBTWblDuwipcnll5/03+DUeG+8obuMQkfom9Au0AXYIfCfX AthxG7QRNyAUbcLrFMkZA3pSTuv/3OveuN5CN+udKppPUAZCuLEHuUviQ5NHctfsBvEC j0XxpNbo+SJmbqlYzIidnl7ZsuLBSqIaXeJ07xXj8+hJBl+JggfjnRfDIiwv+1cFu6Rh lS/A== X-Gm-Message-State: AOJu0Yxz8jsofUOS98qWrS1QCRo90zoVjywfKJtBZt6yzqi8Am/VqSRr EmQsNAngk4mluFwmZzTSmikvCFJVXfOuxI+A/UMhBKLpLTFS5gFA+yKanTxRn4UZhpcyE1wXJPJ P X-Google-Smtp-Source: AGHT+IFWNIO7UlbbiUAx9Xa4HIiNl0qm3zIeEh/ZwKlE2pEhIwI05i5HbXGSokUcHVdEob7/i08jjQ== X-Received: by 2002:a6b:4e14:0:b0:7d6:631d:7b0 with SMTP id c20-20020a6b4e14000000b007d6631d07b0mr205841iob.1.1712850185583; Thu, 11 Apr 2024 08:43:05 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.43.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:43:03 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 409/437] infiniband/qib: convert to read/write iterators Date: Thu, 11 Apr 2024 09:19:09 -0600 Message-ID: <20240411153126.16201-410-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/infiniband/hw/qib/qib_debugfs.c | 2 +- drivers/infiniband/hw/qib/qib_diag.c | 18 ++-- drivers/infiniband/hw/qib/qib_file_ops.c | 4 +- drivers/infiniband/hw/qib/qib_fs.c | 119 +++++++++++------------ 4 files changed, 68 insertions(+), 75 deletions(-) diff --git a/drivers/infiniband/hw/qib/qib_debugfs.c b/drivers/infiniband/h= w/qib/qib_debugfs.c index caeb77d07a58..79144e7b42bd 100644 --- a/drivers/infiniband/hw/qib/qib_debugfs.c +++ b/drivers/infiniband/hw/qib/qib_debugfs.c @@ -61,7 +61,7 @@ static int _##name##_open(struct inode *inode, struct fil= e *s) \ static const struct file_operations _##name##_file_ops =3D { \ .owner =3D THIS_MODULE, \ .open =3D _##name##_open, \ - .read =3D seq_read, \ + .read_iter =3D seq_read_iter, \ .llseek =3D seq_lseek, \ .release =3D seq_release \ }; diff --git a/drivers/infiniband/hw/qib/qib_diag.c b/drivers/infiniband/hw/q= ib/qib_diag.c index 11da796dd1b7..898937c2aead 100644 --- a/drivers/infiniband/hw/qib/qib_diag.c +++ b/drivers/infiniband/hw/qib/qib_diag.c @@ -130,15 +130,13 @@ static void return_client(struct qib_diag_client *dc) =20 static int qib_diag_open(struct inode *in, struct file *fp); static int qib_diag_release(struct inode *in, struct file *fp); -static ssize_t qib_diag_read(struct file *fp, char __user *data, - size_t count, loff_t *off); -static ssize_t qib_diag_write(struct file *fp, const char __user *data, - size_t count, loff_t *off); +static ssize_t qib_diag_read_iter(struct kiocb *iocb, struct iov_iter *to); +static ssize_t qib_diag_write_iter(struct kiocb *iocb, struct iov_iter *fr= om); =20 static const struct file_operations diag_file_ops =3D { .owner =3D THIS_MODULE, - .write =3D qib_diag_write, - .read =3D qib_diag_read, + .write_iter =3D qib_diag_write_iter, + .read_iter =3D qib_diag_read_iter, .open =3D qib_diag_open, .release =3D qib_diag_release, .llseek =3D default_llseek, @@ -148,12 +146,11 @@ static atomic_t diagpkt_count =3D ATOMIC_INIT(0); static struct cdev *diagpkt_cdev; static struct device *diagpkt_device; =20 -static ssize_t qib_diagpkt_write(struct file *fp, const char __user *data, - size_t count, loff_t *off); +static ssize_t qib_diagpkt_write_iter(struct kiocb *iocb, struct iov_iter = *from); =20 static const struct file_operations diagpkt_file_ops =3D { .owner =3D THIS_MODULE, - .write =3D qib_diagpkt_write, + .write_iter =3D qib_diagpkt_write_iter, .llseek =3D noop_llseek, }; =20 @@ -672,6 +669,7 @@ static ssize_t qib_diagpkt_write(struct file *fp, vfree(tmpbuf); return ret; } +FOPS_WRITE_ITER_HELPER(qib_diagpkt_write); =20 static int qib_diag_release(struct inode *in, struct file *fp) { @@ -829,6 +827,7 @@ static ssize_t qib_diag_read(struct file *fp, char __us= er *data, bail: return ret; } +FOPS_READ_ITER_HELPER(qib_diag_read); =20 static ssize_t qib_diag_write(struct file *fp, const char __user *data, size_t count, loff_t *off) @@ -904,3 +903,4 @@ static ssize_t qib_diag_write(struct file *fp, const ch= ar __user *data, bail: return ret; } +FOPS_WRITE_ITER_HELPER(qib_diag_write); diff --git a/drivers/infiniband/hw/qib/qib_file_ops.c b/drivers/infiniband/= hw/qib/qib_file_ops.c index 29e4c59aa23b..5bfecbbe2173 100644 --- a/drivers/infiniband/hw/qib/qib_file_ops.c +++ b/drivers/infiniband/hw/qib/qib_file_ops.c @@ -68,7 +68,6 @@ static int qib_mmapf(struct file *, struct vm_area_struct= *); */ static const struct file_operations qib_file_ops =3D { .owner =3D THIS_MODULE, - .write =3D qib_write, .write_iter =3D qib_write_iter, .open =3D qib_open, .release =3D qib_close, @@ -2244,6 +2243,9 @@ static ssize_t qib_write_iter(struct kiocb *iocb, str= uct iov_iter *from) struct qib_ctxtdata *rcd =3D ctxt_fp(iocb->ki_filp); struct qib_user_sdma_queue *pq =3D fp->pq; =20 + if (!(iocb->ki_flags & IOCB_VECTORED)) + vfs_write_iter(iocb, from, qib_write); + if (!user_backed_iter(from) || !from->nr_segs || !pq) return -EINVAL; =20 diff --git a/drivers/infiniband/hw/qib/qib_fs.c b/drivers/infiniband/hw/qib= /qib_fs.c index 455e966eeff3..87817e706e05 100644 --- a/drivers/infiniband/hw/qib/qib_fs.c +++ b/drivers/infiniband/hw/qib/qib_fs.c @@ -100,12 +100,11 @@ static int create_file(const char *name, umode_t mode, return error; } =20 -static ssize_t driver_stats_read(struct file *file, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t driver_stats_read(struct kiocb *iocb, struct iov_iter *to) { qib_stats.sps_ints =3D qib_sps_ints(); - return simple_read_from_buffer(buf, count, ppos, &qib_stats, - sizeof(qib_stats)); + return simple_copy_to_iter(&qib_stats, &iocb->ki_pos, sizeof(qib_stats), + to); } =20 /* @@ -128,45 +127,42 @@ static const char qib_statnames[] =3D "EgrHdrFull\n" ; =20 -static ssize_t driver_names_read(struct file *file, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t driver_names_read(struct kiocb *iocb, struct iov_iter *to) { - return simple_read_from_buffer(buf, count, ppos, qib_statnames, - sizeof(qib_statnames) - 1); /* no null */ + return simple_copy_to_iter(qib_statnames, &iocb->ki_pos, + sizeof(qib_statnames) - 1, to); /* no null */ } =20 static const struct file_operations driver_ops[] =3D { - { .read =3D driver_stats_read, .llseek =3D generic_file_llseek, }, - { .read =3D driver_names_read, .llseek =3D generic_file_llseek, }, + { .read_iter =3D driver_stats_read, .llseek =3D generic_file_llseek, }, + { .read_iter =3D driver_names_read, .llseek =3D generic_file_llseek, }, }; =20 /* read the per-device counters */ -static ssize_t dev_counters_read(struct file *file, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t dev_counters_read(struct kiocb *iocb, struct iov_iter *to) { u64 *counters; size_t avail; - struct qib_devdata *dd =3D private2dd(file); + struct qib_devdata *dd =3D private2dd(iocb->ki_filp); =20 - avail =3D dd->f_read_cntrs(dd, *ppos, NULL, &counters); - return simple_read_from_buffer(buf, count, ppos, counters, avail); + avail =3D dd->f_read_cntrs(dd, iocb->ki_pos, NULL, &counters); + return simple_copy_to_iter(counters, &iocb->ki_pos, avail, to); } =20 /* read the per-device counters */ -static ssize_t dev_names_read(struct file *file, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t dev_names_read(struct kiocb *iocb, struct iov_iter *to) { char *names; size_t avail; - struct qib_devdata *dd =3D private2dd(file); + struct qib_devdata *dd =3D private2dd(iocb->ki_filp); =20 - avail =3D dd->f_read_cntrs(dd, *ppos, &names, NULL); - return simple_read_from_buffer(buf, count, ppos, names, avail); + avail =3D dd->f_read_cntrs(dd, iocb->ki_pos, &names, NULL); + return simple_copy_to_iter(names, &iocb->ki_pos, avail, to); } =20 static const struct file_operations cntr_ops[] =3D { - { .read =3D dev_counters_read, .llseek =3D generic_file_llseek, }, - { .read =3D dev_names_read, .llseek =3D generic_file_llseek, }, + { .read_iter =3D dev_counters_read, .llseek =3D generic_file_llseek, }, + { .read_iter =3D dev_names_read, .llseek =3D generic_file_llseek, }, }; =20 /* @@ -175,54 +171,50 @@ static const struct file_operations cntr_ops[] =3D { */ =20 /* read the per-port names (same for each port) */ -static ssize_t portnames_read(struct file *file, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t portnames_read(struct kiocb *iocb, struct iov_iter *to) { char *names; size_t avail; - struct qib_devdata *dd =3D private2dd(file); + struct qib_devdata *dd =3D private2dd(iocb->ki_filp); =20 - avail =3D dd->f_read_portcntrs(dd, *ppos, 0, &names, NULL); - return simple_read_from_buffer(buf, count, ppos, names, avail); + avail =3D dd->f_read_portcntrs(dd, iocb->ki_pos, 0, &names, NULL); + return simple_copy_to_iter(names, &iocb->ki_pos, avail, to); } =20 /* read the per-port counters for port 1 (pidx 0) */ -static ssize_t portcntrs_1_read(struct file *file, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t portcntrs_1_read(struct kiocb *iocb, struct iov_iter *to) { u64 *counters; size_t avail; - struct qib_devdata *dd =3D private2dd(file); + struct qib_devdata *dd =3D private2dd(iocb->ki_filp); =20 - avail =3D dd->f_read_portcntrs(dd, *ppos, 0, NULL, &counters); - return simple_read_from_buffer(buf, count, ppos, counters, avail); + avail =3D dd->f_read_portcntrs(dd, iocb->ki_pos, 0, NULL, &counters); + return simple_copy_to_iter(counters, &iocb->ki_pos, avail, to); } =20 /* read the per-port counters for port 2 (pidx 1) */ -static ssize_t portcntrs_2_read(struct file *file, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t portcntrs_2_read(struct kiocb *iocb, struct iov_iter *to) { u64 *counters; size_t avail; - struct qib_devdata *dd =3D private2dd(file); + struct qib_devdata *dd =3D private2dd(iocb->ki_filp); =20 - avail =3D dd->f_read_portcntrs(dd, *ppos, 1, NULL, &counters); - return simple_read_from_buffer(buf, count, ppos, counters, avail); + avail =3D dd->f_read_portcntrs(dd, iocb->ki_pos, 1, NULL, &counters); + return simple_copy_to_iter(counters, &iocb->ki_pos, avail, to); } =20 static const struct file_operations portcntr_ops[] =3D { - { .read =3D portnames_read, .llseek =3D generic_file_llseek, }, - { .read =3D portcntrs_1_read, .llseek =3D generic_file_llseek, }, - { .read =3D portcntrs_2_read, .llseek =3D generic_file_llseek, }, + { .read_iter =3D portnames_read, .llseek =3D generic_file_llseek, }, + { .read_iter =3D portcntrs_1_read, .llseek =3D generic_file_llseek, }, + { .read_iter =3D portcntrs_2_read, .llseek =3D generic_file_llseek, }, }; =20 /* * read the per-port QSFP data for port 1 (pidx 0) */ -static ssize_t qsfp_1_read(struct file *file, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t qsfp_1_read(struct kiocb *iocb, struct iov_iter *to) { - struct qib_devdata *dd =3D private2dd(file); + struct qib_devdata *dd =3D private2dd(iocb->ki_filp); char *tmp; int ret; =20 @@ -232,7 +224,7 @@ static ssize_t qsfp_1_read(struct file *file, char __us= er *buf, =20 ret =3D qib_qsfp_dump(dd->pport, tmp, PAGE_SIZE); if (ret > 0) - ret =3D simple_read_from_buffer(buf, count, ppos, tmp, ret); + ret =3D simple_copy_to_iter(tmp, &iocb->ki_pos, ret, to); kfree(tmp); return ret; } @@ -240,10 +232,9 @@ static ssize_t qsfp_1_read(struct file *file, char __u= ser *buf, /* * read the per-port QSFP data for port 2 (pidx 1) */ -static ssize_t qsfp_2_read(struct file *file, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t qsfp_2_read(struct kiocb *iocb, struct iov_iter *to) { - struct qib_devdata *dd =3D private2dd(file); + struct qib_devdata *dd =3D private2dd(iocb->ki_filp); char *tmp; int ret; =20 @@ -256,25 +247,25 @@ static ssize_t qsfp_2_read(struct file *file, char __= user *buf, =20 ret =3D qib_qsfp_dump(dd->pport + 1, tmp, PAGE_SIZE); if (ret > 0) - ret =3D simple_read_from_buffer(buf, count, ppos, tmp, ret); + ret =3D simple_copy_to_iter(tmp, &iocb->ki_pos, ret, to); kfree(tmp); return ret; } =20 static const struct file_operations qsfp_ops[] =3D { - { .read =3D qsfp_1_read, .llseek =3D generic_file_llseek, }, - { .read =3D qsfp_2_read, .llseek =3D generic_file_llseek, }, + { .read_iter =3D qsfp_1_read, .llseek =3D generic_file_llseek, }, + { .read_iter =3D qsfp_2_read, .llseek =3D generic_file_llseek, }, }; =20 -static ssize_t flash_read(struct file *file, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t flash_read(struct kiocb *iocb, struct iov_iter *to) { + size_t count =3D iov_iter_count(to); struct qib_devdata *dd; ssize_t ret; loff_t pos; char *tmp; =20 - pos =3D *ppos; + pos =3D iocb->ki_pos; =20 if (pos < 0) { ret =3D -EINVAL; @@ -295,19 +286,19 @@ static ssize_t flash_read(struct file *file, char __u= ser *buf, goto bail; } =20 - dd =3D private2dd(file); + dd =3D private2dd(iocb->ki_filp); if (qib_eeprom_read(dd, pos, tmp, count)) { qib_dev_err(dd, "failed to read from flash\n"); ret =3D -ENXIO; goto bail_tmp; } =20 - if (copy_to_user(buf, tmp, count)) { + if (!copy_to_iter_full(tmp, count, to)) { ret =3D -EFAULT; goto bail_tmp; } =20 - *ppos =3D pos + count; + iocb->ki_pos =3D pos + count; ret =3D count; =20 bail_tmp: @@ -317,31 +308,31 @@ static ssize_t flash_read(struct file *file, char __u= ser *buf, return ret; } =20 -static ssize_t flash_write(struct file *file, const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t flash_write(struct kiocb *iocb, struct iov_iter *from) { + size_t count =3D iov_iter_count(from); struct qib_devdata *dd; ssize_t ret; loff_t pos; char *tmp; =20 - pos =3D *ppos; + pos =3D iocb->ki_pos; =20 if (pos !=3D 0 || count !=3D sizeof(struct qib_flash)) return -EINVAL; =20 - tmp =3D memdup_user(buf, count); + tmp =3D iterdup(from, count); if (IS_ERR(tmp)) return PTR_ERR(tmp); =20 - dd =3D private2dd(file); + dd =3D private2dd(iocb->ki_filp); if (qib_eeprom_write(dd, pos, tmp, count)) { ret =3D -ENXIO; qib_dev_err(dd, "failed to write to flash\n"); goto bail_tmp; } =20 - *ppos =3D pos + count; + iocb->ki_pos =3D pos + count; ret =3D count; =20 bail_tmp: @@ -350,8 +341,8 @@ static ssize_t flash_write(struct file *file, const cha= r __user *buf, } =20 static const struct file_operations flash_ops =3D { - .read =3D flash_read, - .write =3D flash_write, + .read_iter =3D flash_read, + .write_iter =3D flash_write, .llseek =3D default_llseek, }; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f52.google.com (mail-io1-f52.google.com [209.85.166.52]) (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 173C91FBC03 for ; Thu, 11 Apr 2024 15:43:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850189; cv=none; b=jrQHsq/Ji+U5IDw6RBJEzZk3R7ky3iR1vpMT/T/Jioi3+eNXim3xYBprCWGlod8wCW8EcJ2yh4UU97goVwRrWYskg3AEOQNGuPRLc4wiYwnut3w3Ure39JmmTvU1u5UxgY0YbMWl/0Zb5ErsJOl7k/5sU2mPGlSrosvD0cokc8c= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850189; c=relaxed/simple; bh=z5t/sLd8xrIg10379kdNTqq7jWFFn1DIMJwJEDt70nc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=lSCPMqyc8McpY40wfRCjC/xSuHNXGPt+fzjP8wcmcg+mCT1htjuPb2VfliYs7IsRdTSFYnSy0FyUQh8o8Nz0YRwYEa/y6uedte8P7zecKWFOojxuUXOJ3HeQ62tksYQn59J1Gyc7BgesCJIX/0dSEs9W7q72bXTMlB+qWnZ7ABo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=Z+aYVMjN; arc=none smtp.client-ip=209.85.166.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="Z+aYVMjN" Received: by mail-io1-f52.google.com with SMTP id ca18e2360f4ac-7d6812b37a6so9109039f.0 for ; Thu, 11 Apr 2024 08:43:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850187; x=1713454987; 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=kNXi0uR6GYfH8PKwi/oyy/OsiBdF2NS80OSMklOKL+A=; b=Z+aYVMjNg6a1BrCTCWwydCDi9NvX/0/nnrahPw8hp973J+5wtqblG1bmu+76zRAS9n 5+ljS0rM2MooFiE0gwEwGqpsas8YHsnxE8Nkw+gSEFP+TkuJ1yX7Fkj2SoAP43TX91FE KGjIzpo2KEdZvNnbw8EY6ZwmDerBIMZKQwvUCXJtFNzusLnNGJP0O3SCS4T/qJQ0V86z pA8czwTUk5IYiK1psUGbWnEAy16CI2qabqnIyU6JiHDTeC3zQOB69zwdWptpE4W1FEyb N4P4V2DTOa2c3g0O42pf5kVvt4b+lxp5exeF3SaaXFYENyILV6QJAluKA62kU/AO7dBR 8aRQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850187; x=1713454987; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=kNXi0uR6GYfH8PKwi/oyy/OsiBdF2NS80OSMklOKL+A=; b=SqQ4S9oV0D4A24ah6ZK4HJHuuQ8jdmEgmBNIlq7sjGcFzV8c5dr0g4Bll08rV5C8ZK rvr7ptRO7OW6Rppmq/+POJsH5Mvc1i88vzdqe4fXvIoZB4S9waD0kyz9+O7YAe+veJe4 ah9QSoJSUanvMJwwlTzQca5X3DNmpKIZmRysj6cXxGoXqzk4SkRPE5JzUSnmIKSUwN8h qmxpgJKMmUkQbmCv06an4uboBXd+l44pI3bR+Kwu0tpRr2Gjc8+N1WMxcD48h6zeTq79 hzCZXf8iT0IJL2lONGdgMxJLBdcjF5y8jJm9QjiGajyk84TP2l4AsSRmgvT1mCtPCU95 2FUw== X-Gm-Message-State: AOJu0YyFfnjctp1R+LQT1rthkEm6r6hVJCTS0wYv2KwyQGEP5CKwkmio mLN9aJM/h0BlE0r8O5KRlkWbd0wxL6V7/YDycJc7RA5Z43gyqxuLObltbUbW0yJQdV5CtgtpGUH p X-Google-Smtp-Source: AGHT+IExKGcurTPI2O9n9CQgf+MOCyTSgJT617P2Olnfit/5/vZPvxZOhpTYy/l/IRUpyNjfySKH2g== X-Received: by 2002:a05:6602:21d7:b0:7d6:9ddf:5095 with SMTP id c23-20020a05660221d700b007d69ddf5095mr34914ioc.1.1712850186989; Thu, 11 Apr 2024 08:43:06 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.43.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:43:06 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 410/437] infiniband/hns: convert to read/write iterators Date: Thu, 11 Apr 2024 09:19:10 -0600 Message-ID: <20240411153126.16201-411-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/infiniband/hw/hns/hns_roce_debugfs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/infiniband/hw/hns/hns_roce_debugfs.c b/drivers/infinib= and/hw/hns/hns_roce_debugfs.c index e8febb40f645..102ccddf598a 100644 --- a/drivers/infiniband/hw/hns/hns_roce_debugfs.c +++ b/drivers/infiniband/hw/hns/hns_roce_debugfs.c @@ -21,7 +21,7 @@ static const struct file_operations hns_debugfs_seqfile_f= ops =3D { .owner =3D THIS_MODULE, .open =3D hns_debugfs_seqfile_open, .release =3D single_release, - .read =3D seq_read, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek }; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f54.google.com (mail-io1-f54.google.com [209.85.166.54]) (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 A47621FBC27 for ; Thu, 11 Apr 2024 15:43:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850191; cv=none; b=RUcL8mLHd+6rPlq/VgOMLSHjlPATHiRlsli6ndo78JaXZoZjv6DRGd1Vlj5n0x/UJzSq9+bRlp/JQ0vPDWehtwBF1IhtwNUH5UE08QmE5+IzwuvBIz74wp+gk/03riZ24BlPknan8F45sJKcdVnbPFQydKGBQlr/u1lqGEpUpQM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850191; c=relaxed/simple; bh=O5/25u3M0hLBhAldisL5jWU5tFnGtfchd3XWmQPUvDk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=j6FZLh3o6o0k2vIcQi4BcnMYFOCaulaNcBOqp5az2m6vYYqy2BxtHwlcz+Hr3JbCgvws9lUfuEKytMVmwUc1elXoZtCt7U1tW2zaKhYnYaGzgGX0OaZRXeK1OvJcYv7Qd3qW4a0ibe7m3DbWOfGv3vBn/CoYG523uMRo0rv4W/I= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=D+N3v4dY; arc=none smtp.client-ip=209.85.166.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="D+N3v4dY" Received: by mail-io1-f54.google.com with SMTP id ca18e2360f4ac-7d6112ba6baso58280239f.1 for ; Thu, 11 Apr 2024 08:43:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850188; x=1713454988; 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=z5S1f4gpbGHboTPY4NXCFhAAb64BXO4SSHJif6cAnVA=; b=D+N3v4dYBmvJPZoARvS8jNo7Zsyii+vwd7qYEKscHInAlXBeW62vee2Gh2Sz1S2eSx Vb24EpGjtKiMpwbyh211P/4cs1NnAyjOalqJSj0n+vJVu0WlUfn+XJYxCHZ95NYCJ9ZJ W50y3s0CMYgiBanhcFDTy3NWHFLSbMPl97azcyg0jxXuINLizKSxAEsK/9zN4N4XtG/4 iWo4bXT6I76iPRUqnIMlEvZAS1zImB0hOuS1bqGzRhcm4przeoS5JyvOPnaaF44bzDo2 f7kMlUHKQTzPlKUhUcYpJMCCnFcA7zHyZTmgJ+meodBMuHk73j2+rvnmjnWWMUFCcagh tyZQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850188; x=1713454988; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=z5S1f4gpbGHboTPY4NXCFhAAb64BXO4SSHJif6cAnVA=; b=ia0HUkTRL6Tag1SP4MJlpocj9ndNgCL7jHcxd1Ic/zlCAn8hDCyOSvtho47ykvZBV6 atGld1i6EzV7hFEOi1urE8WpmRkxD3OL0i7zp8QKhnFlxXNCFUXqPGEjnALmymxO6pve AyeqseM+m8ujkuP0je4R7jvt5FKyfaoONPXnUlRdSNQlFZJTgFilIZrxeGRr03GGebag eb4VuPZsk3DeTWBjAO/th23JReJlmfvCnqv8OGqUZ/n/I+9E9LxmArL5dqGNlQ928K5N mOqp/nipGnItoFVQrppZLpl/sTOZVztMtUJ3ypSLgcGufwZFN9R+9EFkG5D9HkZNWDkg 2JjA== X-Gm-Message-State: AOJu0Yx+s7kkg75UboLWlxNwcopbk7ovxQ4wF0uqbZUsgKCA2jt7N6zz otjNV8LFXuJeh5rt0+D34FgSViS1KFh6ucDVblj0HN9TLV24kZrDYrCKX0GETA3MkwVmnKwcsxe 0 X-Google-Smtp-Source: AGHT+IGDiK6C2xJCTBS1vaje9Id5fA3wSFd69wzCpq5hbnU4HfuAuUUnPVyAmZkAizzn6nUanuegJQ== X-Received: by 2002:a6b:f312:0:b0:7d5:de23:13a9 with SMTP id m18-20020a6bf312000000b007d5de2313a9mr180873ioh.1.1712850188629; Thu, 11 Apr 2024 08:43:08 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.43.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:43:07 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 411/437] infiniband/usnic: convert to read/write iterators Date: Thu, 11 Apr 2024 09:19:11 -0600 Message-ID: <20240411153126.16201-412-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/infiniband/hw/usnic/usnic_debugfs.c | 22 ++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/drivers/infiniband/hw/usnic/usnic_debugfs.c b/drivers/infiniba= nd/hw/usnic/usnic_debugfs.c index 10a8cd5ba076..7383b0131cd4 100644 --- a/drivers/infiniband/hw/usnic/usnic_debugfs.c +++ b/drivers/infiniband/hw/usnic/usnic_debugfs.c @@ -42,13 +42,13 @@ static struct dentry *debugfs_root; static struct dentry *flows_dentry; =20 -static ssize_t usnic_debugfs_buildinfo_read(struct file *f, char __user *d= ata, - size_t count, loff_t *ppos) +static ssize_t usnic_debugfs_buildinfo_read(struct kiocb *iocb, + struct iov_iter *to) { char buf[500]; int res; =20 - if (*ppos > 0) + if (iocb->ki_pos > 0) return 0; =20 res =3D scnprintf(buf, sizeof(buf), @@ -56,29 +56,29 @@ static ssize_t usnic_debugfs_buildinfo_read(struct file= *f, char __user *data, "build date: %s\n", DRV_VERSION, DRV_RELDATE); =20 - return simple_read_from_buffer(data, count, ppos, buf, res); + return simple_copy_to_iter(buf, &iocb->ki_pos, res, to); } =20 static const struct file_operations usnic_debugfs_buildinfo_ops =3D { .owner =3D THIS_MODULE, .open =3D simple_open, - .read =3D usnic_debugfs_buildinfo_read + .read_iter =3D usnic_debugfs_buildinfo_read }; =20 -static ssize_t flowinfo_read(struct file *f, char __user *data, - size_t count, loff_t *ppos) +static ssize_t flowinfo_read(struct kiocb *iocb, struct iov_iter *to) { struct usnic_ib_qp_grp_flow *qp_flow; + size_t count =3D iov_iter_count(to); int n; int left; char *ptr; char buf[512]; =20 - qp_flow =3D f->private_data; + qp_flow =3D iocb->ki_filp->private_data; ptr =3D buf; left =3D count; =20 - if (*ppos > 0) + if (iocb->ki_pos > 0) return 0; =20 spin_lock(&qp_flow->qp_grp->lock); @@ -100,13 +100,13 @@ static ssize_t flowinfo_read(struct file *f, char __u= ser *data, } spin_unlock(&qp_flow->qp_grp->lock); =20 - return simple_read_from_buffer(data, count, ppos, buf, ptr - buf); + return simple_copy_to_iter(buf, &iocb->ki_pos, ptr - buf, to); } =20 static const struct file_operations flowinfo_ops =3D { .owner =3D THIS_MODULE, .open =3D simple_open, - .read =3D flowinfo_read, + .read_iter =3D flowinfo_read, }; =20 void usnic_debugfs_init(void) --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f43.google.com (mail-io1-f43.google.com [209.85.166.43]) (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 847CD1FC9F1 for ; Thu, 11 Apr 2024 15:43:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850192; cv=none; b=Ze5UnRNa6+Fqw5Uu2SnFz82naPG5dGOovDQi0m3Z5QPA/3bNQGBdciFGHVkYNYP45HV5ITU9yQNL5vNTgerGZ8wyLy0ueq02twiNaQqg9FhfgmSwBry6bn1A+nFKNKYdZs9d1QDRQfSkIpimO1bXtXTals6l6F69nVCUDcfosLQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850192; c=relaxed/simple; bh=6c0bsQdUKNELtBoJ1n4BCYauIzEH/WGV3FjGySdOV98=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=nRQjv6A9pCXsY0OnJzD7iL6eaXuP9j6Y89ygLZ8fHHjr7e+Ax7zgpDFU0G3ATio/jcbxoS/VpaONLuwU7Pnjhoyi9qxrLlVl+s1FWNPWj87dWdqX5VG0l4xM6hQBU8PElaz3adYbbfDLGmuWLusp//LzUQk85WH0vz5u6hvyG4M= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=qU79kmWG; arc=none smtp.client-ip=209.85.166.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="qU79kmWG" Received: by mail-io1-f43.google.com with SMTP id ca18e2360f4ac-7d6112ba6baso58281039f.1 for ; Thu, 11 Apr 2024 08:43:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850190; x=1713454990; 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=pxtsbSAsWFvgfi8sLtUfkAejAklUWuKKJB2Jeed05Ok=; b=qU79kmWGOe/S6kfsTPOHgQ+hkVTgaw5qLlG9oUxjRL1twzAvaJcuK5tHoh9/1k+vhu S0YBtMFy8uDc5+/mq6qhx9XNajRsNW4VbED9OCPU5KXx9mMmxnvOsXeFWRIeoWlhxesV wwf44XnkYwObkMCy0BDfbPqjjvYnN9xhDiWFbIF2gXUUo9husfzavyXKDVpAx9ChqbXl aSGyQ10ZHpU+W0AOw8oPaUxCO51VT1OSjEA8wjvjr0blZnEIagu4eq7PF4lcS2S5ib1L Xf1pN/DbrJ6gt6olf6c271rYQxZM8IPeGgZQKOwATXGNs+GNJDCht/vKrmYVNsNAQI8X myZA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850190; x=1713454990; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=pxtsbSAsWFvgfi8sLtUfkAejAklUWuKKJB2Jeed05Ok=; b=FPQDgvNLJm6axvmrzzZJjjGgW164B5YYacTiAZ5kttQz1z+uMUhJKszdRAVkFP5ndr K2RE5T/1E3qF+ShEPHigf4GiFD2uPx9G9Nd5pYhCMRRAvS7zZFsrI604dkSxgwc1EFBf KTW5YfkdJILuKC4Gq/THXVYtxR8q2OyiAbcJAxeqr61+oEs7EJ4sYaLZ3fttX9aR7QUZ TX1O9iOcvHndnEyfXghqg+OQY5P94AbX3YcoZ8OvqB1x/CoRP3zerJZz/OBG3My9a30z sP1Bqh71KtlWCXXxRcDcAct+3sJxy0whEJJ/Dkids5iQMaNT1S+WY5Kd18Eh4piSoXgE Pv+w== X-Gm-Message-State: AOJu0YwfPQ3cdefvQwUkuyaR7lBu0wD5HbV6o15PrLvhUmHeMc1eua6z maJ0WdCSZbicrRV1NDrKRVsd0z6qzH2CyU+I5m6/FTOvdClVm6G2jMtgfWuP68Np//8De8KOZcd 1 X-Google-Smtp-Source: AGHT+IGjHQnR0aw++p5MgoK5qszV7RixhwzJpphgI2d6YIh6DwLIJjgRDcT+WSdN0xNOZ4kQlM9cMQ== X-Received: by 2002:a6b:f312:0:b0:7d5:de23:13a9 with SMTP id m18-20020a6bf312000000b007d5de2313a9mr180967ioh.1.1712850190360; Thu, 11 Apr 2024 08:43:10 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.43.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:43:08 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 412/437] hv: convert to read/write iterators Date: Thu, 11 Apr 2024 09:19:12 -0600 Message-ID: <20240411153126.16201-413-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/hv/hv_utils_transport.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/drivers/hv/hv_utils_transport.c b/drivers/hv/hv_utils_transpor= t.c index 832885198643..fa93ac3800ae 100644 --- a/drivers/hv/hv_utils_transport.c +++ b/drivers/hv/hv_utils_transport.c @@ -24,13 +24,13 @@ static void hvt_reset(struct hvutil_transport *hvt) hvt->on_reset(); } =20 -static ssize_t hvt_op_read(struct file *file, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t hvt_op_read(struct kiocb *iocb, struct iov_iter *to) { + size_t count =3D iov_iter_count(to); struct hvutil_transport *hvt; int ret; =20 - hvt =3D container_of(file->f_op, struct hvutil_transport, fops); + hvt =3D container_of(iocb->ki_filp->f_op, struct hvutil_transport, fops); =20 if (wait_event_interruptible(hvt->outmsg_q, hvt->outmsg_len > 0 || hvt->mode !=3D HVUTIL_TRANSPORT_CHARDEV)) @@ -53,7 +53,7 @@ static ssize_t hvt_op_read(struct file *file, char __user= *buf, goto out_unlock; } =20 - if (!copy_to_user(buf, hvt->outmsg, hvt->outmsg_len)) + if (copy_to_iter_full(hvt->outmsg, hvt->outmsg_len, to)) ret =3D hvt->outmsg_len; else ret =3D -EFAULT; @@ -71,16 +71,16 @@ static ssize_t hvt_op_read(struct file *file, char __us= er *buf, return ret; } =20 -static ssize_t hvt_op_write(struct file *file, const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t hvt_op_write(struct kiocb *iocb, struct iov_iter *from) { + size_t count =3D iov_iter_count(from); struct hvutil_transport *hvt; u8 *inmsg; int ret; =20 - hvt =3D container_of(file->f_op, struct hvutil_transport, fops); + hvt =3D container_of(iocb->ki_filp->f_op, struct hvutil_transport, fops); =20 - inmsg =3D memdup_user(buf, count); + inmsg =3D iterdup(from, count); if (IS_ERR(inmsg)) return PTR_ERR(inmsg); =20 @@ -285,8 +285,8 @@ struct hvutil_transport *hvutil_transport_init(const ch= ar *name, hvt->mdev.name =3D name; =20 hvt->fops.owner =3D THIS_MODULE; - hvt->fops.read =3D hvt_op_read; - hvt->fops.write =3D hvt_op_write; + hvt->fops.read_iter =3D hvt_op_read; + hvt->fops.write_iter =3D hvt_op_write; hvt->fops.poll =3D hvt_op_poll; hvt->fops.open =3D hvt_op_open; hvt->fops.release =3D hvt_op_release; --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f42.google.com (mail-io1-f42.google.com [209.85.166.42]) (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 7926A1FCA1D for ; Thu, 11 Apr 2024 15:43:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850194; cv=none; b=Rxw2EQlwgCwua2PYd+LsGPXAS81lXFBJWyCjujj1fwj8i5bknViMTxEJPNW4zvHQyOhFQp1s4cUadyGI578mU75R0gq7NBmKaWFSNQTP3elcuBV0v8DSoNIZpkqr6jpli6quzg4vwU0fAOVpeSFHzuOfI0rid1W43hhsxR8Iyi8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850194; c=relaxed/simple; bh=OqeRYAGBYnww6bnv0uYDdepyddZOIaBxQ+BPwM3ZmN4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=G221zA0YaYRTH+I7Ej+s0jU80RW+B3LUbKnDdewD3lAPh9OfzMB3jEdRuFYxw/26SQ1dPv9bKaGzqTqDD6UmdBZnIip5hFVpVLbV2pDS4pySG/pAhMNLbeqmMPAI/qmWVcm1ZAD9QWcjg3BuLo89oXzyCf2t3KFFWw3NE4596sQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=2LGusfou; arc=none smtp.client-ip=209.85.166.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="2LGusfou" Received: by mail-io1-f42.google.com with SMTP id ca18e2360f4ac-7c8e4c0412dso69698039f.1 for ; Thu, 11 Apr 2024 08:43:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850192; x=1713454992; 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=4PmE6cYLOEpbXxSqhgYXqA34/7Mp6dcqScCNpKzg50k=; b=2LGusfoul9IPelnBvAjNLNlISAzib5IaT7iLOQERwsJKdbqnNnji43x5PQpzgBnBwe QZ3Xh9XnVoIjhr2lq7kslktwXgIRJiUj9V4d2WMosTxQ5AKIloIMaX9Si03BPF9Jf5L9 A+Blv59MTb64/b3uRPdsWuD0DQF+nokYf9ymmVZ1O2lbnwk9UEzW6ImLHKU72aRFGHeh NBd2dzZO5dKFfHpo0uKDkglSOMdnzjyZqnPcCCRoQ9SCQDqjtEP0q8WhT2Xs5irg37wu 1Xwnz9p7+ZDaIvdNqom7vjnIpZncxL8rP4lQGLiPHJglvl5okEvo8UOGDltQJ+ETgdQL +tDQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850192; x=1713454992; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=4PmE6cYLOEpbXxSqhgYXqA34/7Mp6dcqScCNpKzg50k=; b=vSVVKcOU1TyIvKyZiHcBpVCPoyhh2Iu31Ye/PYKQWlsiuKVXThO4UH6YMVzY/MfmtU t1232Fgl8pHommPDj1VFmeQ7S9QlQ0fqAYi69ewTX+nNCSfZva3kYHD9nvdVL/ccWER3 FukC2VZOgnSEORZ5pWGy8RKkZH9szzGuiLEOkiDQZ0FwZRLNYP3NxMi6PSY1hv++YbFO /Y7FLNmQzxJM7ech8nShKZzbywqEvM3M8JG3ihUM5g0/w0h4Cx4HGIFz4wUWJGhDHhC0 l3k1Z2e2BdX0pO/X/CIb0DJzsc40d6nJfridlIKVFaboYiazl7NV/Hxi8jRDz3lG10si hKMA== X-Gm-Message-State: AOJu0YwFTOGAqUxrlV+8vl+8yIjZ4+UwbX3uqmoX63N4NKq0iQzd9693 NiwxWW+hY1vnKrxIsSdOYiamUfV9n9unLa+IFwtwl1UdIQcrphtTzX9ZIQxLmsl1UOFDjXCNztU 6 X-Google-Smtp-Source: AGHT+IG/eBRicBnxPB94XCARfuaVE4IYhKGZ2yyy4inqQx23fqzMYNzE4QHmVF9tHMlbzK7xkElsOA== X-Received: by 2002:a05:6602:84:b0:7d6:9d75:6de2 with SMTP id h4-20020a056602008400b007d69d756de2mr56943iob.2.1712850191909; Thu, 11 Apr 2024 08:43:11 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.43.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:43:10 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 413/437] media/rc: convert to read/write iterators Date: Thu, 11 Apr 2024 09:19:13 -0600 Message-ID: <20240411153126.16201-414-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/media/rc/imon.c | 26 ++++++++++++-------------- drivers/media/rc/lirc_dev.c | 15 ++++++++------- 2 files changed, 20 insertions(+), 21 deletions(-) diff --git a/drivers/media/rc/imon.c b/drivers/media/rc/imon.c index 5719dda6e0f0..cfcf8101164a 100644 --- a/drivers/media/rc/imon.c +++ b/drivers/media/rc/imon.c @@ -65,12 +65,10 @@ static int display_open(struct inode *inode, struct fil= e *file); static int display_close(struct inode *inode, struct file *file); =20 /* VFD write operation */ -static ssize_t vfd_write(struct file *file, const char __user *buf, - size_t n_bytes, loff_t *pos); +static ssize_t vfd_write(struct kiocb *iocb, struct iov_iter *from); =20 /* LCD file_operations override function prototypes */ -static ssize_t lcd_write(struct file *file, const char __user *buf, - size_t n_bytes, loff_t *pos); +static ssize_t lcd_write(struct kiocb *iocb, struct iov_iter *from); =20 /*** G L O B A L S ***/ =20 @@ -179,7 +177,7 @@ struct imon_context { static const struct file_operations vfd_fops =3D { .owner =3D THIS_MODULE, .open =3D display_open, - .write =3D vfd_write, + .write_iter =3D vfd_write, .release =3D display_close, .llseek =3D noop_llseek, }; @@ -188,7 +186,7 @@ static const struct file_operations vfd_fops =3D { static const struct file_operations lcd_fops =3D { .owner =3D THIS_MODULE, .open =3D display_open, - .write =3D lcd_write, + .write_iter =3D lcd_write, .release =3D display_close, .llseek =3D noop_llseek, }; @@ -938,16 +936,16 @@ static const struct attribute_group imon_rf_attr_grou= p =3D { * than 32 bytes are provided spaces will be appended to * generate a full screen. */ -static ssize_t vfd_write(struct file *file, const char __user *buf, - size_t n_bytes, loff_t *pos) +static ssize_t vfd_write(struct kiocb *iocb, struct iov_iter *from) { int i; int offset; int seq; int retval =3D 0; - struct imon_context *ictx =3D file->private_data; + struct imon_context *ictx =3D iocb->ki_filp->private_data; static const unsigned char vfd_packet6[] =3D { 0x01, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF }; + size_t n_bytes =3D iov_iter_count(from); =20 if (ictx->disconnected) return -ENODEV; @@ -967,7 +965,7 @@ static ssize_t vfd_write(struct file *file, const char = __user *buf, goto exit; } =20 - if (copy_from_user(ictx->tx.data_buf, buf, n_bytes)) { + if (!copy_from_iter_full(ictx->tx.data_buf, n_bytes, from)) { retval =3D -EFAULT; goto exit; } @@ -1023,11 +1021,11 @@ static ssize_t vfd_write(struct file *file, const c= har __user *buf, * display whatever diacritics you need, and so on), but it's also * a lot more complicated than most LCDs... */ -static ssize_t lcd_write(struct file *file, const char __user *buf, - size_t n_bytes, loff_t *pos) +static ssize_t lcd_write(struct kiocb *iocb, struct iov_iter *from) { int retval =3D 0; - struct imon_context *ictx =3D file->private_data; + struct imon_context *ictx =3D iocb->ki_filp->private_data; + size_t n_bytes =3D iov_iter_count(from); =20 if (ictx->disconnected) return -ENODEV; @@ -1047,7 +1045,7 @@ static ssize_t lcd_write(struct file *file, const cha= r __user *buf, goto exit; } =20 - if (copy_from_user(ictx->usb_tx_buf, buf, 8)) { + if (!copy_from_iter_full(ictx->usb_tx_buf, 8, from)) { retval =3D -EFAULT; goto exit; } diff --git a/drivers/media/rc/lirc_dev.c b/drivers/media/rc/lirc_dev.c index caad59f76793..e88ba11192ea 100644 --- a/drivers/media/rc/lirc_dev.c +++ b/drivers/media/rc/lirc_dev.c @@ -211,10 +211,10 @@ static int lirc_close(struct inode *inode, struct fil= e *file) return 0; } =20 -static ssize_t lirc_transmit(struct file *file, const char __user *buf, - size_t n, loff_t *ppos) +static ssize_t lirc_transmit(struct kiocb *iocb, struct iov_iter *from) { - struct lirc_fh *fh =3D file->private_data; + struct lirc_fh *fh =3D iocb->ki_filp->private_data; + size_t n =3D iov_iter_count(from); struct rc_dev *dev =3D fh->rc; unsigned int *txbuf; struct ir_raw_event *raw =3D NULL; @@ -247,7 +247,7 @@ static ssize_t lirc_transmit(struct file *file, const c= har __user *buf, goto out_unlock; } =20 - if (copy_from_user(&scan, buf, sizeof(scan))) { + if (!copy_from_iter_full(&scan, sizeof(scan), from)) { ret =3D -EFAULT; goto out_unlock; } @@ -309,7 +309,7 @@ static ssize_t lirc_transmit(struct file *file, const c= har __user *buf, goto out_unlock; } =20 - txbuf =3D memdup_user(buf, n); + txbuf =3D iterdup(from, n); if (IS_ERR(txbuf)) { ret =3D PTR_ERR(txbuf); goto out_unlock; @@ -694,13 +694,14 @@ static ssize_t lirc_read(struct file *file, char __us= er *buffer, size_t length, else /* LIRC_MODE_SCANCODE */ return lirc_read_scancode(file, buffer, length); } +FOPS_READ_ITER_HELPER(lirc_read); =20 static const struct file_operations lirc_fops =3D { .owner =3D THIS_MODULE, - .write =3D lirc_transmit, + .write_iter =3D lirc_transmit, .unlocked_ioctl =3D lirc_ioctl, .compat_ioctl =3D compat_ptr_ioctl, - .read =3D lirc_read, + .read_iter =3D lirc_read_iter, .poll =3D lirc_poll, .open =3D lirc_open, .release =3D lirc_close, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f47.google.com (mail-io1-f47.google.com [209.85.166.47]) (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 EA7511FD5A2 for ; Thu, 11 Apr 2024 15:43:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850195; cv=none; b=U1cuGzuN0cCNoNnEndpEocwDUueMa/xEnsF6UL/bRG/V6CemKXGIjqoYi96hWZN+kq+xUMTmLSkELF1wbQYKuXERNMwFpNx0R7vSb2KBsiCuKzLTaZZMCMQno0C1q89aBvtdcjkPIlKIQjmri1c8kkPmg5+4YJTBmagsmKHRVz0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850195; c=relaxed/simple; bh=vKJWpzeH4oHTjqOkSHsQbE0uP4ioH/fg+FPYMY26y2A=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=eN+d92R/O0XvayuIarr1TYlpjU7VYXVuTkgewWeS3V/ooruU+ACUdxsdmRn4AmkUDYBwkqTb20ncFkG0wToD2YnZ2FiGspRR6y4qCSsicbJRRgNrS2Pceu0jFVP44/Zru4SpN19uyGFqzQ1RCUHmBgKmErciE1dPzQP5k3YYIl0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=G4mjsFhn; arc=none smtp.client-ip=209.85.166.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="G4mjsFhn" Received: by mail-io1-f47.google.com with SMTP id ca18e2360f4ac-7d6112ba6baso58281639f.1 for ; Thu, 11 Apr 2024 08:43:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850192; x=1713454992; 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=Td/9MPXR0dX8im25L1H7fGnS4aswbcWZTrLZ/haMmCQ=; b=G4mjsFhnVcixhAhyNVk9jzdKE6E5Sq5PDZTcGH7OJM+HAqfRKrM2NmhYo0k92RNBky eegwBxQHUs+1jmXKPzOWRkKQ0G8NRgfJqOeaCktJyZG7xyNJmQb2uNaVh8qo9fxu9Cyx 1/+qNKzzPahl8OT5RQSffCfO44Jm55/5WCPJOy8BmMvYuFiDMFIeGBM+nNGPKTs3e2Q7 GZnKaS78jSF/m8xJZae4gheGQDbFtnY9iZ1Zd+RjwyfhPmMO+ccskMUcOw5+Sps8/cSn R1KwDiuvZ9360GkXNushCPDhbBkur1rAiF6SA5JEy2u/ELD6+akQ6kTpK9X3k+SUcaSh tzvQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850192; x=1713454992; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Td/9MPXR0dX8im25L1H7fGnS4aswbcWZTrLZ/haMmCQ=; b=GR8XOlXzX5rUBvWropYdVmXltMZZAVunE67N2f2kV988WtEpmQZK/Hcof7++6YMUiQ nZ1L5d6x0v34n63I1b7JIbfxQaKqstlTsozHWG0yKR+cmtknb2lKKbaoM5SjYh3PvnIF Om0dhtsQrd+7FU+mfJHBYvEIAQYuKfIEgABWYiOb0mKix0VAMwVuH/U99LvllDLNdOwN /eBPbTx05QVwu2KYimfHrxMEFl2480xdwJhWrnhX9QdkDl3aDPuWC9EZF2UUnFkLxZcU 7D/deuAu1qMMu8PoILXoFDOsqJUT0UVk9Nch7m7t95bs+yoKFt0d5KFg9Szmu0WtKj+4 GP6g== X-Gm-Message-State: AOJu0YzeP61KR/Y4I/q033dTUcWIvHj3ooB0eur78Pm2AJyZjNc4MgCN fEad44zLg7OueRI6h9vhoAQX+16GwO+R0Jb52QhBUCTeXghX6uW31pxyEekZzY0l9WHzVyG2sgh W X-Google-Smtp-Source: AGHT+IEQ1ocl4byBnLDsf35rzgThUQT6bc3znhQ/kgs5swMGc+d0bh3nDIPpPqq7j/eJe0dkaG4Yzg== X-Received: by 2002:a05:6602:38d:b0:7d6:513b:254 with SMTP id f13-20020a056602038d00b007d6513b0254mr206403iov.2.1712850192654; Thu, 11 Apr 2024 08:43:12 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.43.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:43:12 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 414/437] media/dvb-core: convert to read/write iterators Date: Thu, 11 Apr 2024 09:19:14 -0600 Message-ID: <20240411153126.16201-415-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/media/dvb-core/dmxdev.c | 9 ++++++--- drivers/media/dvb-core/dvb_ca_en50221.c | 25 +++++++++++-------------- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/drivers/media/dvb-core/dmxdev.c b/drivers/media/dvb-core/dmxde= v.c index 9ce5f010de3f..f30ec9c3cade 100644 --- a/drivers/media/dvb-core/dmxdev.c +++ b/drivers/media/dvb-core/dmxdev.c @@ -261,6 +261,7 @@ static ssize_t dvb_dvr_write(struct file *file, const c= har __user *buf, mutex_unlock(&dmxdev->mutex); return ret; } +FOPS_WRITE_ITER_HELPER(dvb_dvr_write); =20 static ssize_t dvb_dvr_read(struct file *file, char __user *buf, size_t co= unt, loff_t *ppos) @@ -275,6 +276,7 @@ static ssize_t dvb_dvr_read(struct file *file, char __u= ser *buf, size_t count, file->f_flags & O_NONBLOCK, buf, count, ppos); } +FOPS_READ_ITER_HELPER(dvb_dvr_read); =20 static int dvb_dvr_set_buffer_size(struct dmxdev *dmxdev, unsigned long size) @@ -1025,6 +1027,7 @@ dvb_demux_read(struct file *file, char __user *buf, s= ize_t count, mutex_unlock(&dmxdevfilter->mutex); return ret; } +FOPS_READ_ITER_HELPER(dvb_demux_read); =20 static int dvb_demux_do_ioctl(struct file *file, unsigned int cmd, void *parg) @@ -1258,7 +1261,7 @@ static int dvb_demux_release(struct inode *inode, str= uct file *file) =20 static const struct file_operations dvb_demux_fops =3D { .owner =3D THIS_MODULE, - .read =3D dvb_demux_read, + .read_iter =3D dvb_demux_read_iter, .unlocked_ioctl =3D dvb_demux_ioctl, .compat_ioctl =3D dvb_demux_ioctl, .open =3D dvb_demux_open, @@ -1385,8 +1388,8 @@ static int dvb_dvr_mmap(struct file *file, struct vm_= area_struct *vma) =20 static const struct file_operations dvb_dvr_fops =3D { .owner =3D THIS_MODULE, - .read =3D dvb_dvr_read, - .write =3D dvb_dvr_write, + .read_iter =3D dvb_dvr_read_iter, + .write_iter =3D dvb_dvr_write_iter, .unlocked_ioctl =3D dvb_dvr_ioctl, .open =3D dvb_dvr_open, .release =3D dvb_dvr_release, diff --git a/drivers/media/dvb-core/dvb_ca_en50221.c b/drivers/media/dvb-co= re/dvb_ca_en50221.c index baf64540dc00..ccb9bff21304 100644 --- a/drivers/media/dvb-core/dvb_ca_en50221.c +++ b/drivers/media/dvb-core/dvb_ca_en50221.c @@ -1436,19 +1436,16 @@ static long dvb_ca_en50221_io_ioctl(struct file *fi= le, /** * dvb_ca_en50221_io_write - Implementation of write() syscall. * - * @file: File structure. - * @buf: Source buffer. - * @count: Size of source buffer. - * @ppos: Position in file (ignored). + * @iocb: metadata for IO + * @from: buffer to read from * * return: Number of bytes read, or <0 on error. */ -static ssize_t dvb_ca_en50221_io_write(struct file *file, - const char __user *buf, size_t count, - loff_t *ppos) +static ssize_t dvb_ca_en50221_io_write(struct kiocb *iocb, struct iov_iter= *from) { - struct dvb_device *dvbdev =3D file->private_data; + struct dvb_device *dvbdev =3D iocb->ki_filp->private_data; struct dvb_ca_private *ca =3D dvbdev->priv; + size_t count =3D iov_iter_count(from); struct dvb_ca_slot *sl; u8 slot, connection_id; int status; @@ -1468,11 +1465,10 @@ static ssize_t dvb_ca_en50221_io_write(struct file = *file, return -EINVAL; =20 /* extract slot & connection id */ - if (copy_from_user(&slot, buf, 1)) + if (!copy_from_iter_full(&slot, 1, from)) return -EFAULT; - if (copy_from_user(&connection_id, buf + 1, 1)) + if (!copy_from_iter_full(&connection_id, 1, from)) return -EFAULT; - buf +=3D 2; count -=3D 2; =20 if (slot >=3D ca->slot_count) @@ -1496,7 +1492,7 @@ static ssize_t dvb_ca_en50221_io_write(struct file *f= ile, =20 fragbuf[0] =3D connection_id; fragbuf[1] =3D ((fragpos + fraglen) < count) ? 0x80 : 0x00; - status =3D copy_from_user(fragbuf + 2, buf + fragpos, fraglen); + status =3D !copy_from_iter_full(fragbuf + 2, fraglen, from); if (status) { status =3D -EFAULT; goto exit; @@ -1699,6 +1695,7 @@ static ssize_t dvb_ca_en50221_io_read(struct file *fi= le, char __user *buf, exit: return status; } +FOPS_READ_ITER_HELPER(dvb_ca_en50221_io_read); =20 /** * dvb_ca_en50221_io_open - Implementation of file open syscall. @@ -1834,8 +1831,8 @@ static __poll_t dvb_ca_en50221_io_poll(struct file *f= ile, poll_table *wait) =20 static const struct file_operations dvb_ca_fops =3D { .owner =3D THIS_MODULE, - .read =3D dvb_ca_en50221_io_read, - .write =3D dvb_ca_en50221_io_write, + .read_iter =3D dvb_ca_en50221_io_read_iter, + .write_iter =3D dvb_ca_en50221_io_write, .unlocked_ioctl =3D dvb_ca_en50221_io_ioctl, .open =3D dvb_ca_en50221_io_open, .release =3D dvb_ca_en50221_io_release, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f41.google.com (mail-io1-f41.google.com [209.85.166.41]) (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 71D891FD5D0 for ; Thu, 11 Apr 2024 15:43:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850197; cv=none; b=RHd5kKv26RO5SynAnapddbQwGtd2W9JB++Lsy2yX5xn7x6pBNeC5VIDoQ1Gef8oGxKtuZpEOueSTeKlPp+kMJjXAdFuK8oazKLxi9wBSX08JY+gHZjeoga2PKhobvIrThvcNtzcNyw6eqJ7gOVB3hnuWYWs9WP6O/CA17ASd/0w= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850197; c=relaxed/simple; bh=Phd2Hxdlp1RIcZGVooWufe0DG1joD78U/Ivu9KJOrSk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=n5RpSvcXJ9VEd7vTR183Wi+/hyBbFy7wu22EQrZ/6iqNG4ac6p8enUR8flGraPqj0wEzKDR+EpKApQOjUMembavWZXuErBAXDFYgzFefmkGoQ8LGf8HOm72vbZ+/HE2ZdAwNmi6GQb2G3La5UokKS/r0URfqQ+LM0VJc0mqPs28= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=KmB0IYW4; arc=none smtp.client-ip=209.85.166.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="KmB0IYW4" Received: by mail-io1-f41.google.com with SMTP id ca18e2360f4ac-7cc0e831e11so170662239f.1 for ; Thu, 11 Apr 2024 08:43:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850195; x=1713454995; 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=AdrLRF7qah3kBrQNcINDfDbpBp50A8eMde+QLgtlIh0=; b=KmB0IYW4O4e58dxIRBFfnmx26EVnOZj8eq4V1EeqY8+uQCJJSTfBG0KsKSCo0P7iaT Ke+FkeG/7nvkHLZv0BAZ1cfvMAJwJ1pa1Pcp/hPQtIvaECbz5uMWfimWuR6sZ6I6ok9f bsV/SUSKBDcB1o+V1SlzhH6HdX9/eSeYrE2BI/cGGBB5M/uSsWqMAK7qSAElaR8vo/b4 6HY0fWZQcT7lhluD+BXEJXXcbWc4HcCjR/3k47S13yT/YIp76bb58pq58TXP0m1tqYJn zJ7EQRmAjuCJehFWdGPMs/SUgvfpHxQZD9T+cU/QTdKwu2ZoBSxjRVW+z0kMLq0M3z8J xbPw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850195; x=1713454995; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=AdrLRF7qah3kBrQNcINDfDbpBp50A8eMde+QLgtlIh0=; b=vDrTL1xgVQXNPdm4IF7wHVvv1L1VjXPv9tIb7VF1Zl6LRGBTWFLFaacqZdp2yBtWFT 0T5nYIxSHpSJ6zV700MOkwKPxHVgjMAHJHl0MdZcZBEUTMP1nUbHc/Euu9ZDj66zw4xA ats9IY5HiIXawHswbX3VcvdRE/pQDGSvPu54VLktxzxY1uTRLlaeIApI8BBFir+48+tW Hn0qcVR84FRoFFOQg23xx+Yood1MRm6sglrkjGMKeyLIWY7gCyP6LcFizhiw8blBF5Vy WmxTWkRrsjOwY2OD56H6I+aYfZEaEdR+cy6r4XnvDQUd/8X3UMXtWfAnusMdjOwj4qA+ p8Sw== X-Gm-Message-State: AOJu0YzOWZYMbZhWcgk0oeEXSq6fXi/yRR4MjgiNcRAaOpvcADPzkRfi 5gYQtImPY1bcAEQtk/N/1YJtxITU+YMpm0vyCHH4np1kk0JBB72bkGEzRqkGIwEWCOYMmqWpi9h z X-Google-Smtp-Source: AGHT+IE/iKXnDTRwSmXXe4ceUXecG00+7PGdZtdQ2G6r4eDUzPKQ2OwbGTg6eY48Balru3MFrWqSHA== X-Received: by 2002:a05:6602:21d7:b0:7d6:9ddf:5095 with SMTP id c23-20020a05660221d700b007d69ddf5095mr35306ioc.1.1712850195301; Thu, 11 Apr 2024 08:43:15 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.43.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:43:12 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 415/437] media/common: convert to read/write iterators Date: Thu, 11 Apr 2024 09:19:15 -0600 Message-ID: <20240411153126.16201-416-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/media/common/siano/smsdvb-debugfs.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/drivers/media/common/siano/smsdvb-debugfs.c b/drivers/media/co= mmon/siano/smsdvb-debugfs.c index 73990e469df9..e81b17b599ec 100644 --- a/drivers/media/common/siano/smsdvb-debugfs.c +++ b/drivers/media/common/siano/smsdvb-debugfs.c @@ -280,15 +280,14 @@ static __poll_t smsdvb_stats_poll(struct file *file, = poll_table *wait) return rc > 0 ? EPOLLIN | EPOLLRDNORM : 0; } =20 -static ssize_t smsdvb_stats_read(struct file *file, char __user *user_buf, - size_t nbytes, loff_t *ppos) +static ssize_t smsdvb_stats_read(struct kiocb *iocb, struct iov_iter *to) { int rc =3D 0, len; - struct smsdvb_debugfs *debug_data =3D file->private_data; + struct smsdvb_debugfs *debug_data =3D iocb->ki_filp->private_data; =20 kref_get(&debug_data->refcount); =20 - if (file->f_flags & O_NONBLOCK) { + if (iocb->ki_filp->f_flags & O_NONBLOCK) { rc =3D smsdvb_stats_wait_read(debug_data); if (!rc) { rc =3D -EWOULDBLOCK; @@ -306,14 +305,14 @@ static ssize_t smsdvb_stats_read(struct file *file, c= har __user *user_buf, goto ret; } =20 - len =3D debug_data->stats_count - *ppos; + len =3D debug_data->stats_count - iocb->ki_pos; if (len >=3D 0) - rc =3D simple_read_from_buffer(user_buf, nbytes, ppos, - debug_data->stats_data, len); + rc =3D simple_copy_to_iter(debug_data->stats_data, &iocb->ki_pos, + len, to); else rc =3D 0; =20 - if (*ppos >=3D debug_data->stats_count) { + if (iocb->ki_pos >=3D debug_data->stats_count) { spin_lock(&debug_data->lock); debug_data->stats_was_read =3D true; spin_unlock(&debug_data->lock); @@ -341,7 +340,7 @@ static int smsdvb_stats_release(struct inode *inode, st= ruct file *file) static const struct file_operations debugfs_stats_ops =3D { .open =3D smsdvb_stats_open, .poll =3D smsdvb_stats_poll, - .read =3D smsdvb_stats_read, + .read_iter =3D smsdvb_stats_read, .release =3D smsdvb_stats_release, .llseek =3D generic_file_llseek, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-il1-f177.google.com (mail-il1-f177.google.com [209.85.166.177]) (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 3D9D71FE06E for ; Thu, 11 Apr 2024 15:43:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.177 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850199; cv=none; b=Szja1lTTzzM0foPo2DQ58Zb5MaE4/K+Ip45rBtrAV7p3n6osGNquEEsem6MRdGc0eMglJsCtdJFwY6Y9W8a6bp9gPMd8h9RS3hBoKCavD2siFHtKEO5Mb11UbF9Fef/KBzMwtLcPdmh/6mzQ3sOkIrxgJAwycys+eQIW+j3iU6U= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850199; c=relaxed/simple; bh=NHBw/9/ROJ6V5PiUZXpvKYZp1j6w+cgCgjaOlmrOcDU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=nAtYhms2p9IZoAOe//s8Xb5+S4MiqDhk4+UxYrEjI2QiXeRffT5cpv8s4v2TAy416xUeVbkloTZnEOj89GsrKFMdFZZ7Z/I+e6aRV1BZ87dfSlMO29775WLhyI12lua1eCTdL2uWgkNCGeutGrd4+k29Q/PrMKyftHyeO2D07DI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=RNj+MACZ; arc=none smtp.client-ip=209.85.166.177 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="RNj+MACZ" Received: by mail-il1-f177.google.com with SMTP id e9e14a558f8ab-36a34b68277so124885ab.0 for ; Thu, 11 Apr 2024 08:43:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850197; x=1713454997; 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=hmx6EoPvOpnZ1mWnkOtiZZUNK9XDRnpmps8Fo4ojJlQ=; b=RNj+MACZi2aKO9V5mMnaHD2hi3dVEPOxnNY72MSs8UyY4R3KUjySD7uVOQhmhAXke8 eCliAmcPE3UaiVnMOwPRbcYRY4ni5xAs/U96phsjZldBEW/jHG2OZSjskcvvhQ+R4+v+ 71PXLTzlR+8qjhaLJSmKmrXmZENVt+hixRJGWQ1rXAlkqMEPvmkDEtSefreBjF4OrcVS BS+8K+4F6r7GOn3k2wkVCoqf9fnly8ac6zvXALlNukHi4LWTMENjgX1PpPMDo7XwXulJ jmgtIpJ+Wxcv113H531pmMSv0zH5SQI6JYRHPG9+FP5VQzr/2CuG/iywW/MnyRbR1YV1 XKdw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850197; x=1713454997; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=hmx6EoPvOpnZ1mWnkOtiZZUNK9XDRnpmps8Fo4ojJlQ=; b=aAA8/OSLHPEH6j1wgXO01C8LGhPpBNUVZ0phIcCbYOjUCRDEcbLOkn8CFDaz2tXe7R 7vEeE/XKLrJEP/MGJK3To4i72dgg27RhHqcMLt/vNP4TculuCqO8PwBd3ufGrIMCgF0j FPb2y7bmjSAXRx+CePlec0NNND4teW2AN1JPaUVZ8NVw0Hhf/w7fpuoTQJsFmZTZwnB0 SEIG884VyNi/RWPjiZV4XeltqQbY12d8S1zV0gRRZT4X0ib1x9QChN87VbF0xhO+IwkN urWc0zFKVsZH9Z5wtOdwIkSIeMO/HvgcWQF0NB4zXforRoy0a4oZ2y2BFFZoB1uvTbpW m/EQ== X-Gm-Message-State: AOJu0Yx7+5k1oaK1MtUJ5lTEitGyasnJvK5pEMFzPOvtFJzPlIIrEKWZ F2ko12wl8W3E+gO7THa2tqSaBRbOAgBOMpeHPjHJnkInbd4Htz/r72jDF7cx2apzVTzWMNwztjd N X-Google-Smtp-Source: AGHT+IE+UrvE7Zc/7CplAR6O5IJckWlMxTDspzBoq8kviwQyDMeJdPaKmtSIFMpzvN0FSb5rEIPMoA== X-Received: by 2002:a05:6602:4ed7:b0:7d5:ddc8:504d with SMTP id gk23-20020a0566024ed700b007d5ddc8504dmr204979iob.0.1712850197000; Thu, 11 Apr 2024 08:43:17 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.43.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:43:15 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 416/437] media/platform: amphion: convert to read/write iterators Date: Thu, 11 Apr 2024 09:19:16 -0600 Message-ID: <20240411153126.16201-417-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/media/platform/amphion/vpu_dbg.c | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/drivers/media/platform/amphion/vpu_dbg.c b/drivers/media/platf= orm/amphion/vpu_dbg.c index 940e5bda5fa3..71c752081ab3 100644 --- a/drivers/media/platform/amphion/vpu_dbg.c +++ b/drivers/media/platform/amphion/vpu_dbg.c @@ -353,21 +353,19 @@ static int vpu_dbg_inst_open(struct inode *inode, str= uct file *filp) return single_open(filp, vpu_dbg_instance, inode->i_private); } =20 -static ssize_t vpu_dbg_inst_write(struct file *file, - const char __user *user_buf, size_t size, loff_t *ppos) +static ssize_t vpu_dbg_inst_write(struct kiocb *iocb, struct iov_iter *fro= m) { - struct seq_file *s =3D file->private_data; + struct seq_file *s =3D iocb->ki_filp->private_data; struct vpu_inst *inst =3D s->private; =20 vpu_session_debug(inst); =20 - return size; + return iov_iter_count(from); } =20 -static ssize_t vpu_dbg_core_write(struct file *file, - const char __user *user_buf, size_t size, loff_t *ppos) +static ssize_t vpu_dbg_core_write(struct kiocb *iocb, struct iov_iter *fro= m) { - struct seq_file *s =3D file->private_data; + struct seq_file *s =3D iocb->ki_filp->private_data; struct vpu_core *core =3D s->private; =20 pm_runtime_resume_and_get(core->dev); @@ -382,7 +380,7 @@ static ssize_t vpu_dbg_core_write(struct file *file, mutex_unlock(&core->lock); pm_runtime_put_sync(core->dev); =20 - return size; + return iov_iter_count(from); } =20 static int vpu_dbg_core_open(struct inode *inode, struct file *filp) @@ -399,23 +397,23 @@ static const struct file_operations vpu_dbg_inst_fops= =3D { .owner =3D THIS_MODULE, .open =3D vpu_dbg_inst_open, .release =3D single_release, - .read =3D seq_read, - .write =3D vpu_dbg_inst_write, + .read_iter =3D seq_read_iter, + .write_iter =3D vpu_dbg_inst_write, }; =20 static const struct file_operations vpu_dbg_core_fops =3D { .owner =3D THIS_MODULE, .open =3D vpu_dbg_core_open, .release =3D single_release, - .read =3D seq_read, - .write =3D vpu_dbg_core_write, + .read_iter =3D seq_read_iter, + .write_iter =3D vpu_dbg_core_write, }; =20 static const struct file_operations vpu_dbg_fwlog_fops =3D { .owner =3D THIS_MODULE, .open =3D vpu_dbg_fwlog_open, .release =3D single_release, - .read =3D seq_read, + .read_iter =3D seq_read_iter, }; =20 int vpu_inst_create_dbgfs_file(struct vpu_inst *inst) --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-il1-f179.google.com (mail-il1-f179.google.com [209.85.166.179]) (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 EB53B1FE089 for ; Thu, 11 Apr 2024 15:43:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.179 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850201; cv=none; b=H5xVNMZXDpYeyPAuXGdoDwS310//Dlqo5AANn9SA9jKm62QKWEiJrg/BGLnGDAbfVnRhbvbhHRHNI/itD8TMCzy8zpYQbtll4+ERf9PH3OjppXpoP0fLx0kC9G6F4w6NdseTkAd6C3sf18OUn+C/OYxsYAuDFQ3dXZm7h5hrols= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850201; c=relaxed/simple; bh=pFz0z3RTvzcYWyJJDDd7qXVfAelAzL6d+fj9NFAZSWM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=fHYPv5yEB7mJWEtc4IifULO+uozIIIQAuCIaRyM1e4ZHwokE1w0cjOQ0+d2DBsccnmngESt6Xet+y1ZW0KTVD2CSLiu8zYDPE5YHBG20fRbfGNH+RLGgfFqL5/fZZ/4nk8jVzhqgxLhAJ9H43SI8eECSPo+EFvOqNgLc2Dlhisc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=YfIXjguY; arc=none smtp.client-ip=209.85.166.179 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="YfIXjguY" Received: by mail-il1-f179.google.com with SMTP id e9e14a558f8ab-36a224d7414so198705ab.1 for ; Thu, 11 Apr 2024 08:43:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850199; x=1713454999; 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=27Y0LjgrOEk2pZUqQVf1nxtJXMKcYQaQhsDOa8CbZNw=; b=YfIXjguY77DjsT2ic3AV0/vidgn1f1SzdX3ihh03Y/y35E0aq8/v2DB+PxdAe46ftm F02dvaE0poyTEOCn7+1HGuJCVk2jaGZVmUHr2bT65hAQkhHRVM32TnHmSzdppahk+ulf y3ujQMHzJnlv2FBXlKzCVOSXWgDoO3WoX2fC9u+xw7U/MISbVTn4faywGup7EP8HLfhY eiyywyT6YmxbIlsIo4/HJW3ik2I7qL8hxVUyHeMRTDjAC1qGIoe9nCvkY8e6enuYv6/6 sDrMgNiNgZnmJWvo91eInq3UwxLQWm6SltaM5Mvw4616zkxSe4CfSWklJIluMaWK/olp Dw7g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850199; x=1713454999; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=27Y0LjgrOEk2pZUqQVf1nxtJXMKcYQaQhsDOa8CbZNw=; b=tEQWAoqOmwPUj95jkPQYkpPVorb7URMxIwFS485ORlpPBCRAwS0KfDH7qXYLFKiAKA SABNiSfdJ4YOXtBHGAj8SAls/ic6hZyKbPMJ+FeT0/lL1xE0wvaNjxVy/Ua2IxINVf5M UgFO/A+Wr6uOfToKGaMPV7+2KoPE4o2WDMNu78GQWw6BrUKpSljRavwHUxYZhN39aB3U UFtCwAbbfEBDdpwnyodPYs2bted1PdkZdQxI3+0ievdlvShnJHlWLRtEdekmn7mC8qci e3THGx13wo7zTqc4hscZMIPeyJrClYquVmhBJq30TaZNikRSXnXH47oyILeAoiI/fo15 cd1w== X-Gm-Message-State: AOJu0YzQQh6BhZ3Vs/CtGpxHZAb6MQMSxQg9He3J/CrZXX561eNsbUy7 4Lfn1QhPZjjPQIAOM05nrEjthyMINSh/Yq9Sfs4gpwhJsuA/J9dBvwRmTb1edca920XMqrDor2I q X-Google-Smtp-Source: AGHT+IHT6neKqFhoRM/P2xZloPUTwGOYL6ROaS6svhjsV5YmpIy9T0peuakr+42w4os4JcPNTS2iSw== X-Received: by 2002:a6b:4e14:0:b0:7d6:631d:7b0 with SMTP id c20-20020a6b4e14000000b007d6631d07b0mr206446iob.1.1712850198743; Thu, 11 Apr 2024 08:43:18 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.43.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:43:17 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 417/437] media/platform: mediatek: convert to read/write iterators Date: Thu, 11 Apr 2024 09:19:17 -0600 Message-ID: <20240411153126.16201-418-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/media/platform/mediatek/vpu/mtk_vpu.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/drivers/media/platform/mediatek/vpu/mtk_vpu.c b/drivers/media/= platform/mediatek/vpu/mtk_vpu.c index 724ae7c2ab3b..ab285cf4bfef 100644 --- a/drivers/media/platform/mediatek/vpu/mtk_vpu.c +++ b/drivers/media/platform/mediatek/vpu/mtk_vpu.c @@ -648,14 +648,13 @@ static void vpu_init_ipi_handler(void *data, unsigned= int len, void *priv) } =20 #ifdef CONFIG_DEBUG_FS -static ssize_t vpu_debug_read(struct file *file, char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t vpu_debug_read(struct kiocb *iocb, struct iov_iter *to) { char buf[256]; unsigned int len; unsigned int running, pc, vpu_to_host, host_to_vpu, wdt, idle, ra, sp; int ret; - struct device *dev =3D file->private_data; + struct device *dev =3D iocb->ki_filp->private_data; struct mtk_vpu *vpu =3D dev_get_drvdata(dev); =20 ret =3D vpu_clock_enable(vpu); @@ -692,12 +691,12 @@ static ssize_t vpu_debug_read(struct file *file, char= __user *user_buf, len =3D snprintf(buf, sizeof(buf), "VPU not running\n"); } =20 - return simple_read_from_buffer(user_buf, count, ppos, buf, len); + return simple_copy_to_iter(buf, &iocb->ki_pos, len, to); } =20 static const struct file_operations vpu_debug_fops =3D { .open =3D simple_open, - .read =3D vpu_debug_read, + .read_iter =3D vpu_debug_read, }; #endif /* CONFIG_DEBUG_FS */ =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-il1-f169.google.com (mail-il1-f169.google.com [209.85.166.169]) (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 3CAD61FEA8B for ; Thu, 11 Apr 2024 15:43:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.169 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850203; cv=none; b=czuIrBCHv4Ubnd4S3dXjN9b1pV/0URdAER/YbIGyEZdZo9fcVVZrQvcYkTEq2F1IDw/VCVVREDdu89GN6icjEG9C/K1JzQDkBGVL8tYnoS3cV8YcDtSb7gVPktWTGFeDRNTfsiyroo0XJYxvMyAzNLUqzAxECniJXzg9eO5tYFo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850203; c=relaxed/simple; bh=LLe2owETTjHLB6zFEn8zDNlAMKFC3Lr1NdWG9VKpl/w=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=YnKjCKeGTxngD5DtZSQh2Ak/EBEdQbuXE29CBrDCjHfYGBXdlszMp0sOoMcR1PxgT9XvdNdc3Ss8ALX1ICvUevuSjVGvFYCNSmxNJeEswqj9xrk7g6lQidWC2BQ6oyBAgRYBTsAer6pZGcZSzViltsv8Kwh9r9hAgg0/nJpvinA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=mJ5GRuPk; arc=none smtp.client-ip=209.85.166.169 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="mJ5GRuPk" Received: by mail-il1-f169.google.com with SMTP id e9e14a558f8ab-36a224d7414so198775ab.1 for ; Thu, 11 Apr 2024 08:43:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850201; x=1713455001; 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=Mll/uFEwjEuuliItVoF3OWwVds2lzB8vki7Rbk8j+i8=; b=mJ5GRuPkumMsRvLrXGy3ahu08zR8odrxZSVu3GLFR6Yo9m7Qx7WDIA6GpV8UpeZx8H 8rjIun6Wx0HfSNhW/UXTiZRDRL2G95Gvh9JJkTdtWTlkVUfIg1GbwG/NWhgbTVLYCXf+ 3FAHq7Pwbb6vpbWGJPhrc2JPD/AgR6XDuU8+3GQfUF+9t9OomZPq/W69UcsOGMq1ZYtJ 5m0okoWYl7WrzRP8ExPhScX8+Mc2CX9MFxiw/gw5xv6kAUkHXPFHf9JXtpqcHjUBSy8x fxkmS/KkY8zl/gJSSGgSZ4Ps3PatT+Rtzcf+TtmjnuB89FXaudP940rkzGX+wFqwE/Ya AbHw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850201; x=1713455001; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Mll/uFEwjEuuliItVoF3OWwVds2lzB8vki7Rbk8j+i8=; b=qEDhItkglrFpCvhBqC80KlhuoVRsubutPc0ANQet3lO3RPlJ/WN2kt+UNAW+yjptGU gdNFFTIBhsaYBBA6hB4JqU61vfmTRsJyrZhUGKD6qHa3KsP7WQY8JbI3HZm2rcWV4TnO +0Qu5H+tLABUPVjKnO2Az//ldRia/Ij/GP2eBF7GAdBUSHeMyNpyl7gkfcpn5Pd58n7N dOutnProQCXStMPSVXT5n0ejtn7fOOwuR6bVILB1BHXVigz4+oKNt2phsRfYWieo2prH yQt8i84qxVGOo40AN0FwrkToKk7WrTNR++kEHPUExw/LvB/xXM+/2lfHKKGIjD+FVBuF qN4A== X-Gm-Message-State: AOJu0YztRbaE3XFTffSWA+6h/1tLoyXlTDBZ23HrvLmM6NpwNxl3mj8W J2eX/WnHy3JQxqmQHDmBx9SYcQE+vCdJOUN+3AjFhpwiqDsvNf6zxdPaEzmQz8Fw4u3leABB8A/ y X-Google-Smtp-Source: AGHT+IFrlNlH9N1gPnXi2g0rqEYCtgxC3JKm2eUEl9BxS78eS8fsaW462f0zzD9bQjESptwnUIf6nA== X-Received: by 2002:a6b:4e14:0:b0:7d6:631d:7b0 with SMTP id c20-20020a6b4e14000000b007d6631d07b0mr206532iob.1.1712850200430; Thu, 11 Apr 2024 08:43:20 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.43.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:43:19 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 418/437] media: cec: convert to read/write iterators Date: Thu, 11 Apr 2024 09:19:18 -0600 Message-ID: <20240411153126.16201-419-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/media/cec/core/cec-core.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/media/cec/core/cec-core.c b/drivers/media/cec/core/cec= -core.c index 5a54db839e5d..307763fa251d 100644 --- a/drivers/media/cec/core/cec-core.c +++ b/drivers/media/cec/core/cec-core.c @@ -200,16 +200,16 @@ static void cec_devnode_unregister(struct cec_adapter= *adap) } =20 #ifdef CONFIG_DEBUG_FS -static ssize_t cec_error_inj_write(struct file *file, - const char __user *ubuf, size_t count, loff_t *ppos) +static ssize_t cec_error_inj_write(struct kiocb *iocb, struct iov_iter *fr= om) { - struct seq_file *sf =3D file->private_data; + struct seq_file *sf =3D iocb->ki_filp->private_data; struct cec_adapter *adap =3D sf->private; + size_t count =3D iov_iter_count(from); char *buf; char *line; char *p; =20 - buf =3D memdup_user_nul(ubuf, min_t(size_t, PAGE_SIZE, count)); + buf =3D iterdup_nul(from, min_t(size_t, PAGE_SIZE, count)); if (IS_ERR(buf)) return PTR_ERR(buf); p =3D buf; @@ -241,8 +241,8 @@ static int cec_error_inj_open(struct inode *inode, stru= ct file *file) =20 static const struct file_operations cec_error_inj_fops =3D { .open =3D cec_error_inj_open, - .write =3D cec_error_inj_write, - .read =3D seq_read, + .write_iter =3D cec_error_inj_write, + .read_iter =3D seq_read_iter, .llseek =3D seq_lseek, .release =3D single_release, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f53.google.com (mail-io1-f53.google.com [209.85.166.53]) (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 9029C1FEA92 for ; Thu, 11 Apr 2024 15:43:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850203; cv=none; b=uCg2MuLk6HpAKrWeh2eukoX19HC64j3lnw9xqsPgv9E/w5XuWnY3wtf5rJUFdOd8KRCQ8CW6lOcIzI+0yFaOoR2TmanVWj1bQ7HzJsRhKXopzxRAkEwr7naXNLvvb9qdQVeQRavRP2It9dR+h+HagU+O1pixDHNfC1mHZuLrMRg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850203; c=relaxed/simple; bh=Sp9xNQ3fe3ZWUi69TjJ8pFL9SfWpSiMbarIdUkHWX+U=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=belXj1isA4Olwm0moAxeVOm6oSV573scbS3CypM/QZFgs7Nq/pvoHIDE9WGLAOyJlPi4aqtR0U1ojYbaDsv/09RtEsjjt7PQ6e1ED881mYz+vkr5zrk6bbWbH5MCK1jZb4rLZ/u+BPQ7hQ7EROIqnV5/0TVyqeK/b1kl8JuT1tA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=dT4+QThC; arc=none smtp.client-ip=209.85.166.53 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="dT4+QThC" Received: by mail-io1-f53.google.com with SMTP id ca18e2360f4ac-7d6112ba6baso58286039f.1 for ; Thu, 11 Apr 2024 08:43:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850201; x=1713455001; 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=Jtvf2UC0ZL3xZ8ATaOiZ9KZ4PUsCCITMpZgcBxBakU4=; b=dT4+QThCYaArdhfdrj3zY7XURTbF6epQ72FaXyc8Wn9GOJPDH9owtqCMNfkpYnNAD1 RvnAWcxIoyHdwRcX/ea/k4YZ7ul7j9CAWMc7z79Vv40kZkqe+q/i/EryvO8bNWiRn8Ak Z45fmkRyc2uEFTJPoz7TmZuczgBkdHURIZehRVJAXzXDNSTCGrtLFfpOkw2p+qwHeWwA Bz3JwIfgaZ0KVxn5PDZDZAI6SImtzqWJ2vEvpzTcoW5u6yQovx9M5ixpJwd9LO58XbLR BnOIXUuZXvRVg+ZRCv0oTRhkFp07DABRo0O7iN2esUQIctmkrhvZ06GXXhZ6Ze9TBvw/ +yyA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850201; x=1713455001; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Jtvf2UC0ZL3xZ8ATaOiZ9KZ4PUsCCITMpZgcBxBakU4=; b=VuqY2x5FSJsdYaIM0Nz86WJeYE/lGS9jJhAKs+CfYV67LeAhSgJede230ascz8nA2J KswF3RcKPSlQtgAXtr0cO5IOrOW7p9uE9SDf4mbLdJE4kO7aXn3VCXhH1yqHxxL1u0rU +0aYRVq/aZ7HLXzmwBY0gbyipdUamhcCa2guh1qngfwsWNmetKHbUBqSqZ7GDbUHzRYQ XQka9hYSU7i/7RwCgjeq51MSA/KQp6Wp1KA8GboKd4S4S1nqpPoRxmM14WtNOuw7zZKm h8xPuwyxJhEbtm6gkGzypgFmUaTAmnZs9hNklbpatr4dAiojzOxLb6vvAXEUZESMqgT0 mP9w== X-Gm-Message-State: AOJu0Yw9eHMDe3g0PQQIoCHnU8+t4gCzyUf4kxpnFxruZUr8UDAi1myk g1ugrdW1/61LKOKWgvSJTqWZldB3IlzWuAWZWgesk4OEPxPN8RRxofEe2dYxQbzFV/twxYjJvcC X X-Google-Smtp-Source: AGHT+IGEVH5FPlz0gAUfBHKrDKE454im5PrtAeH+OBM85IIbR/DjHwR7y5rUIEaL/ur4jty95M1L9Q== X-Received: by 2002:a6b:f312:0:b0:7d5:de23:13a9 with SMTP id m18-20020a6bf312000000b007d5de2313a9mr181501ioh.1.1712850201223; Thu, 11 Apr 2024 08:43:21 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.43.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:43:20 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 419/437] media: media-devnode: convert to read/write iterators Date: Thu, 11 Apr 2024 09:19:19 -0600 Message-ID: <20240411153126.16201-420-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/media/mc/mc-devnode.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/media/mc/mc-devnode.c b/drivers/media/mc/mc-devnode.c index 7f67825c8757..43e3297e0447 100644 --- a/drivers/media/mc/mc-devnode.c +++ b/drivers/media/mc/mc-devnode.c @@ -78,6 +78,7 @@ static ssize_t media_read(struct file *filp, char __user = *buf, return -EIO; return devnode->fops->read(filp, buf, sz, off); } +FOPS_READ_ITER_HELPER(media_read); =20 static ssize_t media_write(struct file *filp, const char __user *buf, size_t sz, loff_t *off) @@ -90,6 +91,7 @@ static ssize_t media_write(struct file *filp, const char = __user *buf, return -EIO; return devnode->fops->write(filp, buf, sz, off); } +FOPS_WRITE_ITER_HELPER(media_write); =20 static __poll_t media_poll(struct file *filp, struct poll_table_struct *poll) @@ -195,8 +197,8 @@ static int media_release(struct inode *inode, struct fi= le *filp) =20 static const struct file_operations media_devnode_fops =3D { .owner =3D THIS_MODULE, - .read =3D media_read, - .write =3D media_write, + .read_iter =3D media_read_iter, + .write_iter =3D media_write_iter, .open =3D media_open, .unlocked_ioctl =3D media_ioctl, #ifdef CONFIG_COMPAT --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f50.google.com (mail-io1-f50.google.com [209.85.166.50]) (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 150461FEAA9 for ; Thu, 11 Apr 2024 15:43:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850205; cv=none; b=E20oQ5Si3KBVfnUvo7WLolNW6z/EmR2AcO46HxxZ7OXERB9Y3OOBwbi/H6HPS58QeCed7UE9HprWmgGzzcSx782GA35cRfVkwIaEZ2rfR7HoRG2hEIZMKIXOd+AdFgY5Oc28z8B7nQE8EpT7x4r7Uqi41W4ke6sICBSpNuCA4vA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850205; c=relaxed/simple; bh=6PyeHO716hueoVFuzJY+iI0R2MEZaUTNJe1YRiCxNsw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=K5etyFyzIW7nXxBW4ko86irAk34n6NEy/pZucQ2d1PXcxdjbnj8wPdF5wcSjCG1gCfbynixoI6McOPfHXbAdraO1buXABkqf2CME2tkp4rRLRMlbHfgYwVdMfwLgF+Jh0t/S6PQFSXMA/FQrIEqt0mBnTJJMfIoABgbDPg9oxa0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=TyeXDBpv; arc=none smtp.client-ip=209.85.166.50 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="TyeXDBpv" Received: by mail-io1-f50.google.com with SMTP id ca18e2360f4ac-7c8e4c0412dso69701139f.1 for ; Thu, 11 Apr 2024 08:43:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850203; x=1713455003; 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=Og13f4CdpNy3Hyhdd6hAlI8AZ3h44M1OT6Qc6k2flXU=; b=TyeXDBpvg++5kbrj1M4YGu/AkJgjqvTlwsoTpbSjO2FrXbUKkvlTj5H8EJPizZCY4y +7kZ0J91Z3xC620v+JXTCQcTyeQzf1TF6ft5Wo6tQlq6w/zb+xq3uuw7MgHzGE3/rWhy QsCPoAezvFnMFXmYyYQnF6OyD0WwmBuK4XbKpFHEhUuNVnNEYhPIOp1fKo8YCo95aOYY yA6NaawTFsjZFP/OteICLg3wtDh4/z8G+OVLbBUTCbV/4ElyFawGuK4UpsJ8pmuNA6n9 9TtwtGJBGSxwzpGLkt5bVRyC/pUU+rZRpKAGSs3rUi4QmeteGnyOUbzZ3Tmx6O9MJgSB gHiQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850203; x=1713455003; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Og13f4CdpNy3Hyhdd6hAlI8AZ3h44M1OT6Qc6k2flXU=; b=kp7qFsSRgqAbDPRPTeCP2q2HcRL2/fEj/okN88h/zxX9pskRKabbLmjW1XoxkehXhL CS3fbZNk/kpNFFqvZPxbbLxaz999UMyWEvLQZT7qGibwEFoJcAqp2kk2S5GAGKJxBZTA I1EaZmGRYW4yvt1JEqkZp1D5amSkKoQTft8BwrDmPftNg3cq+GVzvXIX9aRGi3yZCArF tt0kbALbDLaCy1hJf/Yk2Ah37xMArFlC/CiSVQboPHuEsnXrLPVp7SJUsxN02x7bCGvW 1P9aPmMogKVJnR902OJPoDKOHlUP7ZnpCLVm6MlW27Uu0w7hTOpx0dykxIqcLEeWa5EJ 2D+A== X-Gm-Message-State: AOJu0YxSHbUCQg4MQfnLxNHT8sGjP9bn/YciGePySxNktba5GPXzF2Qk w18Tpx0wipUgx3QY5v6T7LiMG6HRSIctDanUTGtiFAWyexAIP3/yuyyHNKbEcMP4ipAk5+9FwK/ 5 X-Google-Smtp-Source: AGHT+IErTa3ZqJYUSxlSx4PPEoMH+aN6soqSEt+zSTTQ4B+tU0TT6nrlsX+BfeP5YpK1OM7C5SKzsA== X-Received: by 2002:a05:6602:84:b0:7d6:9d75:6de2 with SMTP id h4-20020a056602008400b007d69d756de2mr57390iob.2.1712850202997; Thu, 11 Apr 2024 08:43:22 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.43.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:43:21 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 420/437] media: bt8xx: convert to read/write iterators Date: Thu, 11 Apr 2024 09:19:20 -0600 Message-ID: <20240411153126.16201-421-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/media/pci/bt8xx/dst_ca.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/media/pci/bt8xx/dst_ca.c b/drivers/media/pci/bt8xx/dst= _ca.c index a9cc6e7a57f9..3e0cbd71cd0f 100644 --- a/drivers/media/pci/bt8xx/dst_ca.c +++ b/drivers/media/pci/bt8xx/dst_ca.c @@ -622,14 +622,14 @@ static int dst_ca_release(struct inode *inode, struct= file *file) return 0; } =20 -static ssize_t dst_ca_read(struct file *file, char __user *buffer, size_t = length, loff_t *offset) +static ssize_t dst_ca_read(struct kiocb *iocb, struct iov_iter *to) { dprintk(verbose, DST_CA_DEBUG, 1, " Device read."); =20 return 0; } =20 -static ssize_t dst_ca_write(struct file *file, const char __user *buffer, = size_t length, loff_t *offset) +static ssize_t dst_ca_write(struct kiocb *iocb, struct iov_iter *from) { dprintk(verbose, DST_CA_DEBUG, 1, " Device write."); =20 @@ -641,8 +641,8 @@ static const struct file_operations dst_ca_fops =3D { .unlocked_ioctl =3D dst_ca_ioctl, .open =3D dst_ca_open, .release =3D dst_ca_release, - .read =3D dst_ca_read, - .write =3D dst_ca_write, + .read_iter =3D dst_ca_read, + .write_iter =3D dst_ca_write, .llseek =3D noop_llseek, }; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f47.google.com (mail-io1-f47.google.com [209.85.166.47]) (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 922EE1FF2E6 for ; Thu, 11 Apr 2024 15:43:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850206; cv=none; b=fZDfVq60pMe11rnjxwAm4p6IjoafgF7fnO60sxuLIwHs3FVCLYS+1Fk9pqg91SkCPLSO1ZDJ5A27exEj1TOn029QxtH8kLDqXwiVmGQuI7T/tdL98xlLMUcXK1ysuot7/er0jCindfyQ66aij7twy8z0IKtUpOqahmDkORxt8ZA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850206; c=relaxed/simple; bh=5zCVpjBaXjGTBgAZevMeHanoZk239/v7twU706cYvMM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=pvJqDC84N54VLWA9pRVQBv9tSwR41z7Bn+M2OyZcrQfT1GJPAq52WWD9IRjz08GhQ11Fdkhxpd5AivmMzhVF+lxrbsIKw/FoU7McDr0m49NzxJRTKyt/jI6dNAj9MZP6VLA9Uobx8SwVYZRE85RpLq7s62XQcIbioUFMwg6Ed5k= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=TxDhkuVf; arc=none smtp.client-ip=209.85.166.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="TxDhkuVf" Received: by mail-io1-f47.google.com with SMTP id ca18e2360f4ac-7d67d1073easo9949339f.0 for ; Thu, 11 Apr 2024 08:43:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850204; x=1713455004; 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=N8z5ztjJ4THmHYJLDuFMMRyFgaox4sISmYp0cYX/YIc=; b=TxDhkuVf6Id8wkto00mQeEJytycH2Tphm3eZumbee//xc8quR2dJEtSvhrYQUdrOLF diiGnTFUDG2Cpx7x5pxoyu5G5XDwUR/GGa2HYyPUlbc8y0MXZt2p2Ge4M6Oi3K1U2Uaq s+3rdBrTRxVqCt7zjovH6Zms8J8iYPCHbc+FS4C0gBKPeGWQceJusGsS3h0bXUbasg4m ELWbnvaofFBDkwWu+nPdde0iIzwMmduVQKgtLw+WUMO5j/H7Dlog6GharIhlSEScbw5F CM8bZz+3vpPHT2B6z3Yx6XAxlgYhyW2yqLyu7eIt6BJ2q4Jb807o7YNQoXfxofZtfQ0D VNGw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850204; x=1713455004; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=N8z5ztjJ4THmHYJLDuFMMRyFgaox4sISmYp0cYX/YIc=; b=U7X6pOXc3xo+uA0mi/T9v7CUa4ik5LWPqMm0laQy6I2bNEvXXCiofcLYRjyR6JKmfD 7GuysDfHtpSNa/eA4etQXggwEvaUnTSJUxUOuZXOAx0pdZI9YSCU/a49yYbjEPaULhN6 ZaqnOaqqBeHjZWm22Quzerunm1YIeqBA0Alld4fqDsqIs78vdKvSRs7zQpH9ykR70viX V6k9GuLYXYbotB8YljE9i4cSgGVkogzmvcHWH6LItC5bYZnT8HVlMbXBR49xXoK5pRxY +qVLCmGuhphPnxAeOY0Mq8BSoVgWMLMaWv2Ak103445xADieW0HHJrm6oPje4oZTns1H 5apA== X-Gm-Message-State: AOJu0Yxfkw5Xvr6CXtRZaggO7iJKJqZD1uPGipGw61YVGOeg9c7lEk8v w9Dgp9eqoQ0kMgCB74qQg4GyWYl3hdG+xosFBF4JA7fslTP3qyKMchfZm7uKcct0CxQj47EiWcH R X-Google-Smtp-Source: AGHT+IEWdNO2E0vN8wpSlbCQZKIj519Eoauzh+iCC7WqoOdKe9Rq/OLI/k+LlRG/pVjByO21d+EmQg== X-Received: by 2002:a05:6e02:1d87:b0:36a:fba4:ec45 with SMTP id h7-20020a056e021d8700b0036afba4ec45mr3455471ila.3.1712850204478; Thu, 11 Apr 2024 08:43:24 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.43.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:43:23 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 421/437] media: dbbridge: convert to read/write iterators Date: Thu, 11 Apr 2024 09:19:21 -0600 Message-ID: <20240411153126.16201-422-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/media/pci/ddbridge/ddbridge-core.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/media/pci/ddbridge/ddbridge-core.c b/drivers/media/pci= /ddbridge/ddbridge-core.c index 40e6c873c36d..118f22cced88 100644 --- a/drivers/media/pci/ddbridge/ddbridge-core.c +++ b/drivers/media/pci/ddbridge/ddbridge-core.c @@ -731,6 +731,7 @@ static ssize_t ts_write(struct file *file, const __user= char *buf, } return (left =3D=3D count) ? -EAGAIN : (count - left); } +FOPS_WRITE_ITER_HELPER(ts_write); =20 static ssize_t ts_read(struct file *file, __user char *buf, size_t count, loff_t *ppos) @@ -761,6 +762,7 @@ static ssize_t ts_read(struct file *file, __user char *= buf, } return (count && (left =3D=3D count)) ? -EAGAIN : (count - left); } +FOPS_READ_ITER_HELPER(ts_read); =20 static __poll_t ts_poll(struct file *file, poll_table *wait) { @@ -838,8 +840,8 @@ static int ts_open(struct inode *inode, struct file *fi= le) =20 static const struct file_operations ci_fops =3D { .owner =3D THIS_MODULE, - .read =3D ts_read, - .write =3D ts_write, + .read_iter =3D ts_read_iter, + .write_iter =3D ts_write_iter, .open =3D ts_open, .release =3D ts_release, .poll =3D ts_poll, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f42.google.com (mail-io1-f42.google.com [209.85.166.42]) (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 AC2DA1FF314 for ; Thu, 11 Apr 2024 15:43:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850208; cv=none; b=SB/YjsOZOkfN73bbvYduqsY34SthyVry3cdBPzllq0htfuJpDSATnE8tASnkNkBrnmYd9V96DM3z+Yg5pxELhZ+cCNd7XA62qARykdnEmHxhSgZw5OEEiNDQYrhAft6QMTEI09kGU/dEralN9UQWfp+FvcrwexzIQPm1W1kxrqs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850208; c=relaxed/simple; bh=nS1jNvrbvWmPX9lvzlRyLIelGLdpT151XRYuNi2ZuVw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=u2NDIP6UgpbVP4ZY1L4TgONJPODQ8Rk6xu/MFBkzlq40Hx/+FHKQhVclLZsS6+F7Rl9b8SA3fXqfJxtitFI3ixuTBoFos2ksH9ZxiHMAEa7MffIuocVhK+C+o1PcB4Q8wl8EbD7iWbriLeiMVW29WYDvgKJTU1GYiZWeKuJZ6Z8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=jy+ynLmO; arc=none smtp.client-ip=209.85.166.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="jy+ynLmO" Received: by mail-io1-f42.google.com with SMTP id ca18e2360f4ac-7d6112ba6baso58288239f.1 for ; Thu, 11 Apr 2024 08:43:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850206; x=1713455006; 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=3w8Na6yblbY9jsnh6xPO9UBR9OoU7LpVwy2yOHFsEc4=; b=jy+ynLmOytiRWBR5QqzRVE7Ie2iU8Y86beOVy5Vk5qOU1mj2lZPJHS+ZvTjJFlyl0d zxqlXuz2F6Z7bOjaEdjsGKfolV0NDR7S8n+DtNpEF4WoJXdOMISTjooDiQKR3VRGWmWt WmVe1d6db1raK8a3H3DtJ2YUycjcw1zJPAeFtSagm6zvt53VFmsnhq9V2zDVRwot8ZlU pwlHGQlvlk/djg2daM3wRdj6Bn1UP+rcxAF710E1PlZlfzK7osrw4Cri7X0Tn6czA1M1 ysGvgJQvVRHFrW2azWHGjs3K1aba8zxuweDpjFSYY9pt9AVBw2oMt6pNl+j1m/2JEHT0 A5Fw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850206; x=1713455006; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=3w8Na6yblbY9jsnh6xPO9UBR9OoU7LpVwy2yOHFsEc4=; b=hiTIm0yIL77aRyiLpz+P+hPt4/ZLKAbAj+bezOysKTh4NsIy7EdnMEclsc91QgP8XG zghmVcPUuLoH9pK0GDOSlLQwprd4Rj6Gcb0O6TmJTL+0ro6aALe0Wrxl9dEkiSkzhdgc GaSPaN+rWAfHYRfWlwIARlbilLbpVtYadBgO1UsDvVE045xVaehroNmnjyY/Ltqm6JVM NgLAUBgRUb+t3ZMLHGXmv/wqQACTOIQ+lafkElLc7jZpyjNdqyBydFMQLuOM/TS/MWuy BfvcbCF0kmS9aCekRv43YoPJUfX22ZCicJ3a4OFMgU9oQbWIGbqjchc92C4yEdiVM32k f0cg== X-Gm-Message-State: AOJu0Yyn8U5mENIfeUDwZIERtoo7oTWJOHm5GfNFiIXxbtuS7N4ug0dP g7ereUvdonUiXVYU59xLvOtGamIoDISlxMzalZwq+09e9cU1Wawqm1CeKj8fyR1xB14Ou26dsMM K X-Google-Smtp-Source: AGHT+IHePdnffe9chztRpY+mUIlpEimhrHFfZI/WTIh0AynaXxFvLLYfa4EH4Bek4LuDHzvf2Ln7Ug== X-Received: by 2002:a6b:f312:0:b0:7d5:de23:13a9 with SMTP id m18-20020a6bf312000000b007d5de2313a9mr181788ioh.1.1712850206650; Thu, 11 Apr 2024 08:43:26 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.43.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:43:24 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 422/437] media: ngene: convert to read/write iterators Date: Thu, 11 Apr 2024 09:19:22 -0600 Message-ID: <20240411153126.16201-423-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/media/pci/ngene/ngene-dvb.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/media/pci/ngene/ngene-dvb.c b/drivers/media/pci/ngene/= ngene-dvb.c index fda24ba3dc3c..dacf56140347 100644 --- a/drivers/media/pci/ngene/ngene-dvb.c +++ b/drivers/media/pci/ngene/ngene-dvb.c @@ -49,6 +49,7 @@ static ssize_t ts_write(struct file *file, const char __u= ser *buf, =20 return count; } +FOPS_WRITE_ITER_HELPER(ts_write); =20 static ssize_t ts_read(struct file *file, char __user *buf, size_t count, loff_t *ppos) @@ -73,6 +74,7 @@ static ssize_t ts_read(struct file *file, char __user *bu= f, } return count; } +FOPS_READ_ITER_HELPER(ts_read); =20 static __poll_t ts_poll(struct file *file, poll_table *wait) { @@ -96,8 +98,8 @@ static __poll_t ts_poll(struct file *file, poll_table *wa= it) =20 static const struct file_operations ci_fops =3D { .owner =3D THIS_MODULE, - .read =3D ts_read, - .write =3D ts_write, + .read_iter =3D ts_read_iter, + .write_iter =3D ts_write_iter, .open =3D dvb_generic_open, .release =3D dvb_generic_release, .poll =3D ts_poll, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f45.google.com (mail-io1-f45.google.com [209.85.166.45]) (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 8B6E21FFC2F for ; Thu, 11 Apr 2024 15:43:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850210; cv=none; b=Nc9rLYD80ZStz9zHRTXLt5b7rMncM89E8D8uboEdM4RP+0xb7W9pl2WcRfGGALilhCMxKq+/Sy2f99SLEPJ8+/512te9kLvvvRyRIqr3dAIPKlcJmsivxeE1hrhvfmEbaUwlvLNcRbLmqqDXg/BpAEShKTScD7nz63RL60a6vKA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850210; c=relaxed/simple; bh=HFTmnKylzPQwNXAAPpfS4aP5WV7Bkkzueob2mHtK75o=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ATlok7o/ijEySn5HbrDSALEMuALtisD0kNvKYDjykeS2f9RI8k90fNTX2SG8sYJ8vXzKlU7QZIybC3ooENbrB5Jh+l/5w+a/DUYnWkGnLgAPk0iMaX3icz+ROOks1OTOfqzoSYXz4kIbWgesgpSGKL2N+L63BjGvU3ke2e+D+0w= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=TT+WWE69; arc=none smtp.client-ip=209.85.166.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="TT+WWE69" Received: by mail-io1-f45.google.com with SMTP id ca18e2360f4ac-7d6812b37a6so9116439f.0 for ; Thu, 11 Apr 2024 08:43:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850208; x=1713455008; 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=HxRhhQb6flOdBY7pA0oqcPyu7EgP/zuEEveEvFRgBG8=; b=TT+WWE69e2CUz/TXX5yz10VMnImfWdJBBKNkmU2nDCLk6VRXitHo+hzCTbtzWrN77D NMFkkqN7K5T7hRottWEeFjw3SVvePaB8AHv4tGls5syukUpCO19VN2NrJPPZUAZy5oKA jucTc6Ofg2gs80WXCMT4AwVABJuW1e8pSOxa8x2zl6S10ewSYbfP8Ck1TnJu/Cf9Aucr xPEP9mZHP9JrtBlIC7WKC+vtJjbsJDR/+yoXZIBOSPr1gxEyYX5Aw85YUDthM6c6fdqv Bt0cG+VbAdqcdmwPsmGnB7VZAqo2qfdr14figsIGKIeGDCsyA7FhmzjKh9A7TWqgg03r RDQw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850208; x=1713455008; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=HxRhhQb6flOdBY7pA0oqcPyu7EgP/zuEEveEvFRgBG8=; b=XsfQL2O3YXCRQySyPfL4z6/XRRdsxGKGOCT9SpKFsOkf6bikfDuVFaHvN4F1IbZJud B+zn2BNPS56u7WXeSomXyYeIH+C5uGt9//jrfAZiC/gtktfJynKlpc3jRJH5PlMcsWeM b6yhApdpC8UmdHguBxpScDSaV0goqZ9OjK5znX9rq5koqTTpI1UUXcnf90xMen/plPm7 1PbVyItaFzS6IgcOzwAxlYOdnvu1n0TirRIXitXs/mgbhQehOuq2UyNLBGP6cECzH9nD AQZeJIyCCnGGIg7/Y+TpbNQ42z93LAchWkc5xo5FlNqKSIb3kdcM6XL9KYSUqAp9bWE7 ShmA== X-Gm-Message-State: AOJu0Yz9jCb1FQGIgt4VSytZH9vp5p7EXGSSczGos1DP+kVYniF1PwdM ZB6FUV/huSIwuZ3Umqyq8KYvLpQzYVvpPLyAi298WLZBs1DBkAk1+5KB6RHDFCOGkw1iREsfXCj m X-Google-Smtp-Source: AGHT+IGiU6sMCdlNcu6qZwESg3GfbZJcWuLFytN8FT65wr/8E83rkepbFfxBHTtZy1jrH8apzogCDA== X-Received: by 2002:a6b:5b10:0:b0:7d0:bd2b:43ba with SMTP id v16-20020a6b5b10000000b007d0bd2b43bamr241178ioh.0.1712850208384; Thu, 11 Apr 2024 08:43:28 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.43.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:43:26 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 423/437] media: radio-si476x: convert to read/write iterators Date: Thu, 11 Apr 2024 09:19:23 -0600 Message-ID: <20240411153126.16201-424-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/media/radio/radio-si476x.c | 60 +++++++++++++----------------- 1 file changed, 25 insertions(+), 35 deletions(-) diff --git a/drivers/media/radio/radio-si476x.c b/drivers/media/radio/radio= -si476x.c index b2c5809a8bc7..fcc330d6dc75 100644 --- a/drivers/media/radio/radio-si476x.c +++ b/drivers/media/radio/radio-si476x.c @@ -1178,12 +1178,11 @@ static const struct video_device si476x_viddev_temp= late =3D { =20 =20 =20 -static ssize_t si476x_radio_read_acf_blob(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t si476x_radio_read_acf_blob(struct kiocb *iocb, + struct iov_iter *to) { int err; - struct si476x_radio *radio =3D file->private_data; + struct si476x_radio *radio =3D iocb->ki_filp->private_data; struct si476x_acf_status_report report; =20 si476x_core_lock(radio->core); @@ -1196,22 +1195,20 @@ static ssize_t si476x_radio_read_acf_blob(struct fi= le *file, if (err < 0) return err; =20 - return simple_read_from_buffer(user_buf, count, ppos, &report, - sizeof(report)); + return simple_copy_to_iter(&report, &iocb->ki_pos, sizeof(report), to); } =20 static const struct file_operations radio_acf_fops =3D { .open =3D simple_open, .llseek =3D default_llseek, - .read =3D si476x_radio_read_acf_blob, + .read_iter =3D si476x_radio_read_acf_blob, }; =20 -static ssize_t si476x_radio_read_rds_blckcnt_blob(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t si476x_radio_read_rds_blckcnt_blob(struct kiocb *iocb, + struct iov_iter *to) { int err; - struct si476x_radio *radio =3D file->private_data; + struct si476x_radio *radio =3D iocb->ki_filp->private_data; struct si476x_rds_blockcount_report report; =20 si476x_core_lock(radio->core); @@ -1225,22 +1222,20 @@ static ssize_t si476x_radio_read_rds_blckcnt_blob(s= truct file *file, if (err < 0) return err; =20 - return simple_read_from_buffer(user_buf, count, ppos, &report, - sizeof(report)); + return simple_copy_to_iter(&report, &iocb->ki_pos, sizeof(report), to); } =20 static const struct file_operations radio_rds_blckcnt_fops =3D { .open =3D simple_open, .llseek =3D default_llseek, - .read =3D si476x_radio_read_rds_blckcnt_blob, + .read_iter =3D si476x_radio_read_rds_blckcnt_blob, }; =20 -static ssize_t si476x_radio_read_agc_blob(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t si476x_radio_read_agc_blob(struct kiocb *iocb, + struct iov_iter *to) { int err; - struct si476x_radio *radio =3D file->private_data; + struct si476x_radio *radio =3D iocb->ki_filp->private_data; struct si476x_agc_status_report report; =20 si476x_core_lock(radio->core); @@ -1253,22 +1248,20 @@ static ssize_t si476x_radio_read_agc_blob(struct fi= le *file, if (err < 0) return err; =20 - return simple_read_from_buffer(user_buf, count, ppos, &report, - sizeof(report)); + return simple_copy_to_iter(&report, &iocb->ki_pos, sizeof(report), to); } =20 static const struct file_operations radio_agc_fops =3D { .open =3D simple_open, .llseek =3D default_llseek, - .read =3D si476x_radio_read_agc_blob, + .read_iter =3D si476x_radio_read_agc_blob, }; =20 -static ssize_t si476x_radio_read_rsq_blob(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t si476x_radio_read_rsq_blob(struct kiocb *iocb, + struct iov_iter *to) { int err; - struct si476x_radio *radio =3D file->private_data; + struct si476x_radio *radio =3D iocb->ki_filp->private_data; struct si476x_rsq_status_report report; struct si476x_rsq_status_args args =3D { .primary =3D false, @@ -1288,22 +1281,20 @@ static ssize_t si476x_radio_read_rsq_blob(struct fi= le *file, if (err < 0) return err; =20 - return simple_read_from_buffer(user_buf, count, ppos, &report, - sizeof(report)); + return simple_copy_to_iter(&report, &iocb->ki_pos, sizeof(report), to); } =20 static const struct file_operations radio_rsq_fops =3D { .open =3D simple_open, .llseek =3D default_llseek, - .read =3D si476x_radio_read_rsq_blob, + .read_iter =3D si476x_radio_read_rsq_blob, }; =20 -static ssize_t si476x_radio_read_rsq_primary_blob(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) +static ssize_t si476x_radio_read_rsq_primary_blob(struct kiocb *iocb, + struct iov_iter *to) { int err; - struct si476x_radio *radio =3D file->private_data; + struct si476x_radio *radio =3D iocb->ki_filp->private_data; struct si476x_rsq_status_report report; struct si476x_rsq_status_args args =3D { .primary =3D true, @@ -1323,14 +1314,13 @@ static ssize_t si476x_radio_read_rsq_primary_blob(s= truct file *file, if (err < 0) return err; =20 - return simple_read_from_buffer(user_buf, count, ppos, &report, - sizeof(report)); + return simple_copy_to_iter(&report, &iocb->ki_pos, sizeof(report), to); } =20 static const struct file_operations radio_rsq_primary_fops =3D { .open =3D simple_open, .llseek =3D default_llseek, - .read =3D si476x_radio_read_rsq_primary_blob, + .read_iter =3D si476x_radio_read_rsq_primary_blob, }; =20 =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-il1-f176.google.com (mail-il1-f176.google.com [209.85.166.176]) (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 466DC1FFC59 for ; Thu, 11 Apr 2024 15:43:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.176 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850213; cv=none; b=AEnowk7uleTdhEy8u4Iu4+/dGWWpBDxW02aa4PoKG/I1yczN2S8eQaIu0vFyAp+i4CVw3ZQkFXgjX/Ir9rUPGUtThSshmv2S+YEMjaPpsxoE3Y+Ld4uj14bVYV8l9tQp4A+GAkBkOM5ivhhIurX9CgpkTII4H6oT9p/Nfd69WRg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850213; c=relaxed/simple; bh=+r+U7yOE2//Dm1l89AQ/p8TdVgErUnJeolAc2VuDal0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=MME6w5/lnilLykrOPYyeJ1XIDjphyNIVKP+XVjefbRi5hbx4me5/rkwFy7XdUulymECE3ZNam3XrCKCGR9+3yI80K75ygt+bB3jv+9JQQk0AOyW7sBq0+O6SYsSV7J5irX1UljzPhLnwJERM7GpCSc5svL5+qWMd04m5EfXTpos= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=ir7F30PZ; arc=none smtp.client-ip=209.85.166.176 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="ir7F30PZ" Received: by mail-il1-f176.google.com with SMTP id e9e14a558f8ab-36a34b68277so125125ab.0 for ; Thu, 11 Apr 2024 08:43:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850210; x=1713455010; 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=HHTPq1Y3fOvLbs3hQO1iRO6uGsna0yiG5KXgQ6la0bw=; b=ir7F30PZJYfKhZJb0A3R0g1gvJcH1GgREnnU+6ft2DcyRlN4KDP47LC2ybuDrmpChv I3O9/0/26S3+LflPyeG2UsJaVud5vjlynW7t4EVYqpnBBYSGFLwdDVtCn+6ma3k8FAsR YVJqhwAb5TkEqnoyNRrydJ6oqHf7S7mWNECGLUDDqIzhK8i7Bb0Eq/A+Wn0q0JWpnUxG AG4DtZPycC7XBhBAaDN1HtRy72CsuiFFTupnOb5bev1lu5hlVdYcEpoubVCNY8XqCvrH NDO+1RZhg7IL8MwsXQC6pTeZMbpw3ew5okke+h7Ff0Y1GBlVSyzgJ+9/SeL0roiIs9Q/ QEOw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850210; x=1713455010; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=HHTPq1Y3fOvLbs3hQO1iRO6uGsna0yiG5KXgQ6la0bw=; b=LqMiv99la3YvG8Rc1dxcN/k0LFNxtan/GotjqgA8ll613yfvr99ND3eIWMoaoDnwVM QkT8nZRZD3hhN/8M1psvN0SZnlzIyoNlBMKx24u38hNJIewJNybubSSkStzJVG33gVHz WC4ssAtg+zoZH7c9iVgCPBAFtoaVtvR905ihRjm4U40I9veMqzW+vK24bzqUm0585Itt b5t20l4HsBNZadAzMAd/6Z2ZGVbtvf9h8Y4aBdi0/gvEibyN89XEvNXgjaN39KQ9nHxJ hOJV1mKltiFB56wsxPLLC8hl9eWU0FRbqbsiRiPEIIOnsnDZYLBWn13+QJw5AdktS2mL 7ycg== X-Gm-Message-State: AOJu0Yxsk2IwxSb+jlq+HW3i8/55nidLj808b7C+j8noz+eqvn0bCqNc NP74Wp6vpEyI5319ftiEwX7Qd31aooDzXclvP3hBboKyUXbPjfEokiXkA9ZZIy1t3v0fNpr1AF7 T X-Google-Smtp-Source: AGHT+IEsqESPkatlu+L2CquxS+m1WPOIPK0uUL6JHwp39Y3zglmUOSn8CBHF0+cYCvHFjVs09Imzug== X-Received: by 2002:a6b:4e14:0:b0:7d6:631d:7b0 with SMTP id c20-20020a6b4e14000000b007d6631d07b0mr207016iob.1.1712850210125; Thu, 11 Apr 2024 08:43:30 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.43.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:43:28 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 424/437] media: usb: uvc: convert to read/write iterators Date: Thu, 11 Apr 2024 09:19:24 -0600 Message-ID: <20240411153126.16201-425-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/media/usb/uvc/uvc_debugfs.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/drivers/media/usb/uvc/uvc_debugfs.c b/drivers/media/usb/uvc/uv= c_debugfs.c index 1a1258d4ffca..2c4935a0257e 100644 --- a/drivers/media/usb/uvc/uvc_debugfs.c +++ b/drivers/media/usb/uvc/uvc_debugfs.c @@ -39,13 +39,11 @@ static int uvc_debugfs_stats_open(struct inode *inode, = struct file *file) return 0; } =20 -static ssize_t uvc_debugfs_stats_read(struct file *file, char __user *user= _buf, - size_t nbytes, loff_t *ppos) +static ssize_t uvc_debugfs_stats_read(struct kiocb *iocb, struct iov_iter = *to) { - struct uvc_debugfs_buffer *buf =3D file->private_data; + struct uvc_debugfs_buffer *buf =3D iocb->ki_filp->private_data; =20 - return simple_read_from_buffer(user_buf, nbytes, ppos, buf->data, - buf->count); + return simple_copy_to_iter(buf->data, &iocb->ki_pos, buf->count, to); } =20 static int uvc_debugfs_stats_release(struct inode *inode, struct file *fil= e) @@ -60,7 +58,7 @@ static const struct file_operations uvc_debugfs_stats_fop= s =3D { .owner =3D THIS_MODULE, .open =3D uvc_debugfs_stats_open, .llseek =3D no_llseek, - .read =3D uvc_debugfs_stats_read, + .read_iter =3D uvc_debugfs_stats_read, .release =3D uvc_debugfs_stats_release, }; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f51.google.com (mail-io1-f51.google.com [209.85.166.51]) (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 D93441FF314 for ; Thu, 11 Apr 2024 15:43:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850214; cv=none; b=AY9VP8GoY8crvRqeN2Z+tWqYlapqc1huWDfjHI9guZbhMGuFHcuZEz+4bb1wSoYRgGbtRFDaMjidIx1MLQIF5CilEWVu5wLcT2bOEAHScRc4VTYV6FTK1in4BXkItU+0jvn4jDdWCCNmERdZuDnflHMz+YT0qAPD9lmSUv5tWHw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850214; c=relaxed/simple; bh=P44fp7vc0gaZmTJDo8vBE7V6YpVr5Grh+PeAKrzTHE0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=TgXc8l4p7acZqaK14DOQEk9zdITIsW+oct5H/QXcHWDnzYnW7m1bZM1VpQZ8bMZoLwtQf8DDUdg3cBNT/D8oU8BW2+IQ1/TgY6z2Gos4+Le/tXq0qJ4jTv3pywmWkDz5kXLUjZ8QU6D7hzNVNEV8+R7IlG5Hk8tMKd3yWsFIFrk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=JFUSXYks; arc=none smtp.client-ip=209.85.166.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="JFUSXYks" Received: by mail-io1-f51.google.com with SMTP id ca18e2360f4ac-7d6812b37a6so9117539f.0 for ; Thu, 11 Apr 2024 08:43:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850211; x=1713455011; 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=x0d4z0rG2TbmIYkwYbQvTZP3vRG6ldHYDLWi2vHqW7g=; b=JFUSXYks8KqAKF4G1cXe6kOZntZ/xBs0/yuN/RRUPhRkDFHWTzhGMMnOOxXsRmKFRv AjZvyiEKF4VPbH/ZFOr0IO+/pRG5tQwS+qL/9oCjxFEf0D8FgNVDrRC6UXJZEotr+Fdj 4r7yBh6R832/0PSRuhriVEjU3EKZ+zIWaAOZqCbYrMsY7HZdSmfmbwxi/Hy2D0bCCwGa 05WagL8uMTD8wnbEvTWBwj7gQGm8dR9ZaKaytXeuBravVVQLlL9zQsoQznOSirZ5uA1l WwHpEzzZo/ImoCSvZW7jtfmULDX8lFyYrSWaBsgRPd7vxq8qZuSEGSCeIArBoXbneLKb GMew== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850211; x=1713455011; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=x0d4z0rG2TbmIYkwYbQvTZP3vRG6ldHYDLWi2vHqW7g=; b=ISsnm84rKVbiDq543hU1tWD3Jd+yUvtH0NXwHkelhnT3dDn8hQdCUT4mS9UPI4VC5k nslePJnVFtdQxHxbJ056lO5QrGICWa/A1+TCy6nNwtDc2Q3jObis1e0xj+CfNQmJG5PW sMgnchS9CXkZ0vv5Uxsx2SvkZC/99U3Q9IHLkFChHje/sNiL12ffcOSINDPuROgKHFBO Adi53KRys463vDuWgMf+VBc4zNaWGjtOA+RM9lCC+snt/me7u6C6tUrKhPyLYFAYqgSa CfvV13c01m7stSoUSxEUyU2z+e0gcK++TByLxyf00UcAHlK0mG2x0fndlEj5T1zlk1Ms GlyA== X-Gm-Message-State: AOJu0YweT7bAWA9GZp8XC2GXklB+AIwzDHD9pDR0gXBx0PyHaAOUB7fY sEKX5Hh0NaM9/OuccoNdciWVRVGZf+O6NhKqRK2ENTY63PXZKuewIJRzLbttWdIkh4W0M/Obz1S W X-Google-Smtp-Source: AGHT+IGjq3rE+zn5l/ki3tM82dsmkAKJ4A5T/+zNhWElI6AC54XCy50wGg1hdzk1G49r6aKURX7Nkw== X-Received: by 2002:a5e:9907:0:b0:7d6:751f:192 with SMTP id t7-20020a5e9907000000b007d6751f0192mr201129ioj.2.1712850211694; Thu, 11 Apr 2024 08:43:31 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.43.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:43:30 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 425/437] media: v4l2-dev: convert to read/write iterators Date: Thu, 11 Apr 2024 09:19:25 -0600 Message-ID: <20240411153126.16201-426-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/media/v4l2-core/v4l2-dev.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/media/v4l2-core/v4l2-dev.c b/drivers/media/v4l2-core/v= 4l2-dev.c index d13954bd31fd..0ebc049fe333 100644 --- a/drivers/media/v4l2-core/v4l2-dev.c +++ b/drivers/media/v4l2-core/v4l2-dev.c @@ -318,6 +318,7 @@ static ssize_t v4l2_read(struct file *filp, char __user= *buf, video_device_node_name(vdev), sz, ret); return ret; } +FOPS_READ_ITER_HELPER(v4l2_read); =20 static ssize_t v4l2_write(struct file *filp, const char __user *buf, size_t sz, loff_t *off) @@ -335,6 +336,7 @@ static ssize_t v4l2_write(struct file *filp, const char= __user *buf, video_device_node_name(vdev), sz, ret); return ret; } +FOPS_WRITE_ITER_HELPER(v4l2_write); =20 static __poll_t v4l2_poll(struct file *filp, struct poll_table_struct *pol= l) { @@ -472,8 +474,8 @@ static int v4l2_release(struct inode *inode, struct fil= e *filp) =20 static const struct file_operations v4l2_fops =3D { .owner =3D THIS_MODULE, - .read =3D v4l2_read, - .write =3D v4l2_write, + .read_iter =3D v4l2_read_iter, + .write_iter =3D v4l2_write_iter, .open =3D v4l2_open, .get_unmapped_area =3D v4l2_get_unmapped_area, .mmap =3D v4l2_mmap, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f42.google.com (mail-io1-f42.google.com [209.85.166.42]) (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 7AC8F2019A9 for ; Thu, 11 Apr 2024 15:43:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850215; cv=none; b=TN3u0CMcy36+jCX3Uk21NmCFkcO/sADkkIIkfzzd172IEXwJrMwVbrwMBZ69cnM9aGtwZyn8VzofLlMMvfpMw1D5+J+DhgMXs5T6c8iNzK0nlf4C6sgQjwhzOfhqMDcXC3JreQ/goxNDBmYOQ/6LBoyO1eIxFPPacVYnEb6RQ6g= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850215; c=relaxed/simple; bh=+6tNeSPg3Y15gIAEvwu8sSoeBUZil0as6nCBC30vAPQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=r+Jg2B+nxHV4yq85OGCz7QM0iwkgVmsHVybmzENaU6fksAXJOB+KQUGyDyaGQbpA7I4EIaAljDMia27oYjjI3thhkxDhDfEmykRf1e941rmN/169Nlq9G0Wlos7X5h2HATWWU83W6kp2dRoPgaR6GTq/PlpOd1pZ5nuxfM+GAMA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=oh/kgCfV; arc=none smtp.client-ip=209.85.166.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="oh/kgCfV" Received: by mail-io1-f42.google.com with SMTP id ca18e2360f4ac-7d6112ba6baso58291939f.1 for ; Thu, 11 Apr 2024 08:43:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850213; x=1713455013; 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=pWpKjosyo1TmsrpvFjZE6WmxsY3pkaGviBwPxsRKgBk=; b=oh/kgCfVvNpWm/giQqL0H7Iz7/J137QyNuHe1BMEZWU+cSxweurTuiBuS5xtu3bQ5b PdavSIZuLSfjqjzYglVICYzrRRPFaN0mgDlyZrr4ILbQX4JPGBt9h1DiSVDjBPgIPk3D +UOckoQ2ojvzTRKpDsHLWP4Ym2aZHjfB0oiAaUN/Jtr455SKeCm2WycCkqCdMxYPn3tM sDlU6ad3oxdow+w9+Jn2+BgXlpTnEFoDEfV9hb3PitnqSmK50OVsX/FHbjodZ5VwQ2h5 qK3iy6ohQBRnFEiLKTOR4/66Ekew3gOqNbJJwrUSLY8QpfWmLCFJp4CCgOfBfddM4+GX yI6w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850213; x=1713455013; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=pWpKjosyo1TmsrpvFjZE6WmxsY3pkaGviBwPxsRKgBk=; b=vVDpDyHg7VenCQwpr0Cm942qf1XXXQo+enSUE1Fkyt6870SAnvuEU/2CNwXfjpwEDR W3cSMaiF/8ZnA/YVa9X60qTTa6gW19n15uq4/2ilokcRS0UlUhA4lr0wiDRR3VIOQlqW kdt8S6mU2KCm2mFiFk27qpAGF30r99FXaterO7NFT+04SKYoTOxGOZIQfuErZn3KCeOC U/We3RNvN7a8kC6LYfDXgq61eY05lWGvYbpPEJuwIG5taezsDbpythinR90qwc7pkSe0 17FpedZAUda/oq8cq3ngrwxnXxRDdzKFzf8WVmMWSnkDfhgi42CqiM1M+bPETJiMaOD/ zlMA== X-Gm-Message-State: AOJu0YyflIoYwSOjHd0T9RFaX/WMWQErQ5HP2gbCCMDAtxiz3aUMhCRl z3/YWE+hyuuB/tz8NkaKmh3eE576o4ooI8hOyvYqC6F1+I8x/ROlEqrn3dzIuiLckvtxOLhcHcM 2 X-Google-Smtp-Source: AGHT+IEGKLNJ1dO6qNxwEC+7lDLZqiDjdFDdGDsfsHCG5vPWdyVrLLt1tEXx1q021tnftfJ+0tegdQ== X-Received: by 2002:a05:6602:38d:b0:7d6:513b:254 with SMTP id f13-20020a056602038d00b007d6513b0254mr207456iov.2.1712850213403; Thu, 11 Apr 2024 08:43:33 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.43.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:43:31 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 426/437] firmware: xilinx: convert to read/write iterators Date: Thu, 11 Apr 2024 09:19:26 -0600 Message-ID: <20240411153126.16201-427-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/firmware/xilinx/zynqmp-debug.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/drivers/firmware/xilinx/zynqmp-debug.c b/drivers/firmware/xili= nx/zynqmp-debug.c index 8528850af889..8d64bffd1890 100644 --- a/drivers/firmware/xilinx/zynqmp-debug.c +++ b/drivers/firmware/xilinx/zynqmp-debug.c @@ -143,9 +143,8 @@ static int process_api_request(u32 pm_id, u64 *pm_api_a= rg, u32 *pm_api_ret) * Return: Number of bytes copied if PM-API request succeeds, * the corresponding error code otherwise */ -static ssize_t zynqmp_pm_debugfs_api_write(struct file *file, - const char __user *ptr, size_t len, - loff_t *off) +static ssize_t zynqmp_pm_debugfs_api_write(struct kiocb *iocb, + struct iov_iter *from) { char *kern_buff, *tmp_buff; char *pm_api_req; @@ -153,16 +152,17 @@ static ssize_t zynqmp_pm_debugfs_api_write(struct fil= e *file, u64 pm_api_arg[4] =3D {0, 0, 0, 0}; /* Return values from PM APIs calls */ u32 pm_api_ret[4] =3D {0, 0, 0, 0}; + size_t len =3D iov_iter_count(from); =20 int ret; int i =3D 0; =20 strcpy(debugfs_buf, ""); =20 - if (*off !=3D 0 || len <=3D 1 || len > PAGE_SIZE - 1) + if (iocb->ki_pos !=3D 0 || len <=3D 1 || len > PAGE_SIZE - 1) return -EINVAL; =20 - kern_buff =3D memdup_user_nul(ptr, len); + kern_buff =3D iterdup_user(from, len); if (IS_ERR(kern_buff)) return PTR_ERR(kern_buff); tmp_buff =3D kern_buff; @@ -201,18 +201,18 @@ static ssize_t zynqmp_pm_debugfs_api_write(struct fil= e *file, * Return: Length of the version string on success * else error code */ -static ssize_t zynqmp_pm_debugfs_api_read(struct file *file, char __user *= ptr, - size_t len, loff_t *off) +static ssize_t zynqmp_pm_debugfs_api_read(struct kiocb *iocb, + struct iov_iter *to) { - return simple_read_from_buffer(ptr, len, off, debugfs_buf, - strlen(debugfs_buf)); + return simple_copy_to_iter(debugfs_buf, &iocb->ki_pos, + strlen(debugfs_buf), to); } =20 /* Setup debugfs fops */ static const struct file_operations fops_zynqmp_pm_dbgfs =3D { .owner =3D THIS_MODULE, - .write =3D zynqmp_pm_debugfs_api_write, - .read =3D zynqmp_pm_debugfs_api_read, + .write_iter =3D zynqmp_pm_debugfs_api_write, + .read_iter =3D zynqmp_pm_debugfs_api_read, }; =20 /** --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f52.google.com (mail-io1-f52.google.com [209.85.166.52]) (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 5544C202206 for ; Thu, 11 Apr 2024 15:43:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850217; cv=none; b=gE3VIR1scRaE2WEY91CAySUxbefltG9pZm8MT4zzG2NoYb9yzPaBcD/XbJxZTG39dAYHfPuC6UYJ9WeVIQo0dZzM8q45OFeiHmvzo9oJymTQa1yhx6dcP932NyFRzEkmsALSPuAoyDu41eiqEXZGfvECqMUVs1j7pwvoiRcSVpk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850217; c=relaxed/simple; bh=FWSFCkY8Lf1/0GBdZlqopQYrUyh891nmBgOIC5aP+dc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=X8Cc/PNWIAJ6qOGIIW61g2oOZzdWDYVhDsm1RqWQ05rQCrtKazZPaRKGIIrV67UOk2+pYmZ8vjd6fUDfq8vQSE2JtzVDlr3iE7+4wN8MH7PU5u1YN5iSCs/TeCdQSSJXrtBNz6fhC8rEh+X3JmLdQChxw2W0hX1bUIGIgsx8QsM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=eTY+R95V; arc=none smtp.client-ip=209.85.166.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="eTY+R95V" Received: by mail-io1-f52.google.com with SMTP id ca18e2360f4ac-7d6112ba6baso58292939f.1 for ; Thu, 11 Apr 2024 08:43:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850215; x=1713455015; 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=MLwLL88UefWixTIzrVWZHbHXvoOS4UC6DoIfisUbT74=; b=eTY+R95VgUI9hluxhFnuL+Ape4SLiUbpdDv64Blrre5TCc9xmrN2gmzuygrqpOf+FD GbHbwRBBLvoLIlDts/V0obP6ondUR4eyW0zZuJT2flcq++QILPUIZfCdscComDE+qdeB 8ee8FZpidA0gqAEEtKvZJnEDgEVM4iPXvGRJitjiDDFX4V40xBvRrab4cxjzCYOgsTzN suuIwMLsKtdlsa5oLhNDhf4nG3xH+tqjK4daNg7w7kRYmIKJjj+m7as9+xJCSvWllYEv WzkeVgD86ym6x8C2W/sV128m8kQigz5BDWtOwdsV9dNpd6QEU2pGZ+GE+A0oiFRgNt6/ lhXQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850215; x=1713455015; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=MLwLL88UefWixTIzrVWZHbHXvoOS4UC6DoIfisUbT74=; b=eMct2nXZFPd6OxY+JLM5GssxQEopY2vR1DTYceEoQo+KUfTYkKDd/dz/LE6ql4bIHc husF18ikCYIK19X+6P4hGeD2zj+RRa2mMeZhJKosYXgASqhqOD5jEFxDVwI6FWtLE9Eg vVIc2ralDR9y6DBkllzaVq47XZncMiSq1czYF9g4HO3bg7P2HG5ZrL8BFTSYGekGzo2o 0r0ht757jA7mm6579vREz6pkXArt9NgPUZ1RLHMTIGaFlALEb9Zuug/hyiB2ouOH17x2 FHDKwKudJxsC3bQ7LUmhPNUImS7uEPB4heB6nJiIrhorN4bzKceh8raRVpNVFoKAgESu ZWgg== X-Gm-Message-State: AOJu0Yy5sZuLCDwzrqJdR22vw+4Y8Hu07rI8sfW3oIPdkkg9dYZN8DpT qp0E65ev6uznIhN33RBkC7kI+jqI+7iFSbdpsqX4m8tUJzCz/hOKaqmCsLBcGLsL1eS5Ppuh7gR Z X-Google-Smtp-Source: AGHT+IGAmBwhKjUn674xvySCfPS+s1FqB4el+9hJ7aOclyXvDi56BJ5HXEl35V+akvOD0aAsHxUXvg== X-Received: by 2002:a6b:cd08:0:b0:7d5:fe3e:90ff with SMTP id d8-20020a6bcd08000000b007d5fe3e90ffmr215184iog.0.1712850215073; Thu, 11 Apr 2024 08:43:35 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.43.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:43:33 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 427/437] hwtracing: coresight: convert to read/write iterators Date: Thu, 11 Apr 2024 09:19:27 -0600 Message-ID: <20240411153126.16201-428-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- .../hwtracing/coresight/coresight-cpu-debug.c | 15 +++++++-------- drivers/hwtracing/coresight/coresight-etb10.c | 18 +++++++++--------- .../hwtracing/coresight/coresight-tmc-core.c | 14 +++++++------- drivers/hwtracing/coresight/ultrasoc-smb.c | 12 ++++++------ 4 files changed, 29 insertions(+), 30 deletions(-) diff --git a/drivers/hwtracing/coresight/coresight-cpu-debug.c b/drivers/hw= tracing/coresight/coresight-cpu-debug.c index 1874df7c6a73..5ee3dc600066 100644 --- a/drivers/hwtracing/coresight/coresight-cpu-debug.c +++ b/drivers/hwtracing/coresight/coresight-cpu-debug.c @@ -471,13 +471,13 @@ static int debug_disable_func(void) return err; } =20 -static ssize_t debug_func_knob_write(struct file *f, - const char __user *buf, size_t count, loff_t *ppos) +static ssize_t debug_func_knob_write(struct kiocb *iocb, struct iov_iter *= from) { + size_t count =3D iov_iter_count(from); u8 val; int ret; =20 - ret =3D kstrtou8_from_user(buf, count, 2, &val); + ret =3D kstrtou8_from_iter(from, count, 2, &val); if (ret) return ret; =20 @@ -505,8 +505,7 @@ static ssize_t debug_func_knob_write(struct file *f, return ret; } =20 -static ssize_t debug_func_knob_read(struct file *f, - char __user *ubuf, size_t count, loff_t *ppos) +static ssize_t debug_func_knob_read(struct kiocb *iocb, struct iov_iter *t= o) { ssize_t ret; char buf[3]; @@ -515,14 +514,14 @@ static ssize_t debug_func_knob_read(struct file *f, snprintf(buf, sizeof(buf), "%d\n", debug_enable); mutex_unlock(&debug_lock); =20 - ret =3D simple_read_from_buffer(ubuf, count, ppos, buf, sizeof(buf)); + ret =3D simple_copy_to_iter(buf, &iocb->ki_pos, sizeof(buf), to); return ret; } =20 static const struct file_operations debug_func_knob_fops =3D { .open =3D simple_open, - .read =3D debug_func_knob_read, - .write =3D debug_func_knob_write, + .read_iter =3D debug_func_knob_read, + .write_iter =3D debug_func_knob_write, }; =20 static int debug_func_init(void) diff --git a/drivers/hwtracing/coresight/coresight-etb10.c b/drivers/hwtrac= ing/coresight/coresight-etb10.c index 3aab182b562f..14735de16316 100644 --- a/drivers/hwtracing/coresight/coresight-etb10.c +++ b/drivers/hwtracing/coresight/coresight-etb10.c @@ -610,30 +610,30 @@ static int etb_open(struct inode *inode, struct file = *file) return 0; } =20 -static ssize_t etb_read(struct file *file, char __user *data, - size_t len, loff_t *ppos) +static ssize_t etb_read(struct kiocb *iocb, struct iov_iter *to) { + size_t len =3D iov_iter_count(to); u32 depth; - struct etb_drvdata *drvdata =3D container_of(file->private_data, + struct etb_drvdata *drvdata =3D container_of(iocb->ki_filp->private_data, struct etb_drvdata, miscdev); struct device *dev =3D &drvdata->csdev->dev; =20 etb_dump(drvdata); =20 depth =3D drvdata->buffer_depth; - if (*ppos + len > depth * 4) - len =3D depth * 4 - *ppos; + if (iocb->ki_pos + len > depth * 4) + len =3D depth * 4 - iocb->ki_pos; =20 - if (copy_to_user(data, drvdata->buf + *ppos, len)) { + if (!copy_to_iter_full(drvdata->buf + iocb->ki_pos, len, to)) { dev_dbg(dev, "%s: copy_to_user failed\n", __func__); return -EFAULT; } =20 - *ppos +=3D len; + iocb->ki_pos +=3D len; =20 dev_dbg(dev, "%s: %zu bytes copied, %d bytes left\n", - __func__, len, (int)(depth * 4 - *ppos)); + __func__, len, (int)(depth * 4 - iocb->ki_pos)); return len; } =20 @@ -650,7 +650,7 @@ static int etb_release(struct inode *inode, struct file= *file) static const struct file_operations etb_fops =3D { .owner =3D THIS_MODULE, .open =3D etb_open, - .read =3D etb_read, + .read_iter =3D etb_read, .release =3D etb_release, .llseek =3D no_llseek, }; diff --git a/drivers/hwtracing/coresight/coresight-tmc-core.c b/drivers/hwt= racing/coresight/coresight-tmc-core.c index 72005b0c633e..337599655242 100644 --- a/drivers/hwtracing/coresight/coresight-tmc-core.c +++ b/drivers/hwtracing/coresight/coresight-tmc-core.c @@ -176,24 +176,24 @@ static inline ssize_t tmc_get_sysfs_trace(struct tmc_= drvdata *drvdata, return -EINVAL; } =20 -static ssize_t tmc_read(struct file *file, char __user *data, size_t len, - loff_t *ppos) +static ssize_t tmc_read(struct kiocb *iocb, struct iov_iter *to) { + size_t len =3D iov_iter_count(to); char *bufp; ssize_t actual; - struct tmc_drvdata *drvdata =3D container_of(file->private_data, + struct tmc_drvdata *drvdata =3D container_of(iocb->ki_filp->private_data, struct tmc_drvdata, miscdev); - actual =3D tmc_get_sysfs_trace(drvdata, *ppos, len, &bufp); + actual =3D tmc_get_sysfs_trace(drvdata, iocb->ki_pos, len, &bufp); if (actual <=3D 0) return 0; =20 - if (copy_to_user(data, bufp, actual)) { + if (!copy_to_iter_full(bufp, actual, to)) { dev_dbg(&drvdata->csdev->dev, "%s: copy_to_user failed\n", __func__); return -EFAULT; } =20 - *ppos +=3D actual; + iocb->ki_pos +=3D actual; dev_dbg(&drvdata->csdev->dev, "%zu bytes copied\n", actual); =20 return actual; @@ -216,7 +216,7 @@ static int tmc_release(struct inode *inode, struct file= *file) static const struct file_operations tmc_fops =3D { .owner =3D THIS_MODULE, .open =3D tmc_open, - .read =3D tmc_read, + .read_iter =3D tmc_read, .release =3D tmc_release, .llseek =3D no_llseek, }; diff --git a/drivers/hwtracing/coresight/ultrasoc-smb.c b/drivers/hwtracing= /coresight/ultrasoc-smb.c index f9ebf20c91e6..27e883e69ce6 100644 --- a/drivers/hwtracing/coresight/ultrasoc-smb.c +++ b/drivers/hwtracing/coresight/ultrasoc-smb.c @@ -112,13 +112,13 @@ static int smb_open(struct inode *inode, struct file = *file) return 0; } =20 -static ssize_t smb_read(struct file *file, char __user *data, size_t len, - loff_t *ppos) +static ssize_t smb_read(struct kiocb *iocb, struct iov_iter *to) { - struct smb_drv_data *drvdata =3D container_of(file->private_data, + struct smb_drv_data *drvdata =3D container_of(iocb->ki_filp->private_data, struct smb_drv_data, miscdev); struct smb_data_buffer *sdb =3D &drvdata->sdb; struct device *dev =3D &drvdata->csdev->dev; + size_t len =3D iov_iter_count(to); ssize_t to_copy =3D 0; =20 if (!len) @@ -133,12 +133,12 @@ static ssize_t smb_read(struct file *file, char __use= r *data, size_t len, if (sdb->buf_rdptr + to_copy > sdb->buf_size) to_copy =3D sdb->buf_size - sdb->buf_rdptr; =20 - if (copy_to_user(data, sdb->buf_base + sdb->buf_rdptr, to_copy)) { + if (!copy_to_iter_full(sdb->buf_base + sdb->buf_rdptr, to_copy, to)) { dev_dbg(dev, "Failed to copy data to user\n"); return -EFAULT; } =20 - *ppos +=3D to_copy; + iocb->ki_pos +=3D to_copy; smb_update_read_ptr(drvdata, to_copy); if (!sdb->data_size) smb_reset_buffer(drvdata); @@ -161,7 +161,7 @@ static int smb_release(struct inode *inode, struct file= *file) static const struct file_operations smb_fops =3D { .owner =3D THIS_MODULE, .open =3D smb_open, - .read =3D smb_read, + .read_iter =3D smb_read, .release =3D smb_release, .llseek =3D no_llseek, }; --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-il1-f174.google.com (mail-il1-f174.google.com [209.85.166.174]) (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 DAD40202A4A for ; Thu, 11 Apr 2024 15:43:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.174 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850220; cv=none; b=mfW+AuICGi9iUJCHT1CzyQQdWICy0O56RJloT09qq2zqmpX1wtm7aY3q85OMrPigEt6oXfju0BWIBiF5NXYd+iR6yZcXy4wR2R4jpNUeAw9qh7rkPOR2g9p8OvbYiJyN4PAGBvBvQWUlwdEdwQZheuuLtoXmRkBCUdohFCcKxqM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850220; c=relaxed/simple; bh=MPi21D3v7l1uMh2oBQjBBGPb6q6SBmZSpJISeTLNUGo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=MYpashNBhthh4+uB5A4wwUQqVOeopHYDo1Gcn7JQ82afgdvO2INq7PO8aRI4yLgiyS9fLKiY9pyI+Hbf0I/WSiHk4F8f0VYgY9CuvCRK0ddZNl1t0M9yHC0XWl0c0r9J1orEmpTDy65ldnZ5TOAFBsyxa3wQZmEFc/0DS9vIfmo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=y2yOq3TC; arc=none smtp.client-ip=209.85.166.174 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="y2yOq3TC" Received: by mail-il1-f174.google.com with SMTP id e9e14a558f8ab-36a34b68277so125265ab.0 for ; Thu, 11 Apr 2024 08:43:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850217; x=1713455017; 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=DJUrvBrg1uBEhpi3T9qcRw20xiWZs8OJrCgKCAskMk0=; b=y2yOq3TCsW29oKemslwHMIUtga9to9FFjJlcKkTsPOO43QVKyrKT55cS/RDqBWkkz9 epEsoUyJawoIBOWDdabnkar1ffTkeiLulMD+FjOQSEhiy4/+uzpMNMSq21aqkhvwl2qN VskVAItGGPGj1/e15ORLrfcYSox8joouJciXH2GQa9dFZQHh9iA981BIaSWwJmxEEDJo fLfCNr45L8v/38GiPDBxGO9s3GGGRE9lwGFuADp5GXHcsYtpQX/A3ktVObPgMDyDc91X EMV1V5S5X9amrWgnqVH4v1IBDs92I49nYVBpcsIgqMlXYZ8ZbbPigPRJKk00QxG3fNR8 9yBw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850217; x=1713455017; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=DJUrvBrg1uBEhpi3T9qcRw20xiWZs8OJrCgKCAskMk0=; b=ZohXnXQk+fYTSa/m9S29RuB8b2a0Mdjc3jmOI8wVwfAXyKmkeOd79oq81V8+s1XXlO V9BAz2zetjAyROvYvfhvyffkXUBnBmdujaqaY3TefYKBD425SD9nQWd9w+XSb4wWdJut GxFBNl5DZyUUNnol40fq1CucAeMKluPP6hSnUx3SbS8ssAO8GT1AjgbKHR8lqI6M6GPz 311+YWCoCsr7wNlEVqj3hBvIfeTNj8tjzxo8uBCKNlmQAdhHgM0ra6V/61XsiGqQui1x CS4Jx5RqIkhT8rh64DUuZ4CANvLvbvQNHHIbbrcG1kQ4C6vhqi8588jVgbSpbDodpCiC yxPQ== X-Gm-Message-State: AOJu0Yx8kDzXoZnYZVa9bUHkiIERzGa5XXJ+dKIncHZsbiq3lFsHFYzi HLzj9smicJGTJvxmoxIKBqXkrZZercVSRRuUifCZFNdoDaI1w4CWOxFuIYHAcq4352pLpDj5T8m X X-Google-Smtp-Source: AGHT+IEWtLzIbB5s+X5ORDtbVgk3C9Qkf46xI+U1Dp+Az/FGndwmkq2RiCFUvuVfLl+kJjscG4P+XQ== X-Received: by 2002:a05:6602:4ed7:b0:7d5:ddc8:504d with SMTP id gk23-20020a0566024ed700b007d5ddc8504dmr205864iob.0.1712850216723; Thu, 11 Apr 2024 08:43:36 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.43.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:43:35 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 428/437] sbus: oradax: convert to read/write iterators Date: Thu, 11 Apr 2024 09:19:28 -0600 Message-ID: <20240411153126.16201-429-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/sbus/char/oradax.c | 37 +++++++++++++++++-------------------- 1 file changed, 17 insertions(+), 20 deletions(-) diff --git a/drivers/sbus/char/oradax.c b/drivers/sbus/char/oradax.c index a536dd6f4f7c..2e99e25b4b50 100644 --- a/drivers/sbus/char/oradax.c +++ b/drivers/sbus/char/oradax.c @@ -204,24 +204,21 @@ struct dax_ctx { =20 /* driver public entry points */ static int dax_open(struct inode *inode, struct file *file); -static ssize_t dax_read(struct file *filp, char __user *buf, - size_t count, loff_t *ppos); -static ssize_t dax_write(struct file *filp, const char __user *buf, - size_t count, loff_t *ppos); +static ssize_t dax_read(struct kiocb *iocb, struct iov_iter *to); +static ssize_t dax_write(struct kiocb *iocb, struct iov_iter *from); static int dax_devmap(struct file *f, struct vm_area_struct *vma); static int dax_close(struct inode *i, struct file *f); =20 static const struct file_operations dax_fops =3D { .owner =3D THIS_MODULE, .open =3D dax_open, - .read =3D dax_read, - .write =3D dax_write, + .read_iter =3D dax_read, + .write_iter =3D dax_write, .mmap =3D dax_devmap, .release =3D dax_close, }; =20 -static int dax_ccb_exec(struct dax_ctx *ctx, const char __user *buf, - size_t count, loff_t *ppos); +static int dax_ccb_exec(struct dax_ctx *ctx, loff_t *ppos, struct iov_iter= *from); static int dax_ccb_info(u64 ca, struct ccb_info_result *info); static int dax_ccb_kill(u64 ca, u16 *kill_res); =20 @@ -541,10 +538,10 @@ static int dax_close(struct inode *ino, struct file *= f) return 0; } =20 -static ssize_t dax_read(struct file *f, char __user *buf, - size_t count, loff_t *ppos) +static ssize_t dax_read(struct kiocb *iocb, struct iov_iter *to) { - struct dax_ctx *ctx =3D f->private_data; + struct dax_ctx *ctx =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(to); =20 if (ctx->client !=3D current) return -EUSERS; @@ -553,15 +550,15 @@ static ssize_t dax_read(struct file *f, char __user *= buf, =20 if (count !=3D sizeof(union ccb_result)) return -EINVAL; - if (copy_to_user(buf, &ctx->result, sizeof(union ccb_result))) + if (!copy_to_iter_full(&ctx->result, sizeof(union ccb_result), to)) return -EFAULT; return count; } =20 -static ssize_t dax_write(struct file *f, const char __user *buf, - size_t count, loff_t *ppos) +static ssize_t dax_write(struct kiocb *iocb, struct iov_iter *from) { - struct dax_ctx *ctx =3D f->private_data; + struct dax_ctx *ctx =3D iocb->ki_filp->private_data; + size_t count =3D iov_iter_count(from); struct dax_command hdr; unsigned long ca; int i, idx, ret; @@ -573,7 +570,7 @@ static ssize_t dax_write(struct file *f, const char __u= ser *buf, return -EINVAL; =20 if (count % sizeof(struct dax_ccb) =3D=3D 0) - return dax_ccb_exec(ctx, buf, count, ppos); /* CCB EXEC */ + return dax_ccb_exec(ctx, &iocb->ki_pos, from); /* CCB EXEC */ =20 if (count !=3D sizeof(struct dax_command)) return -EINVAL; @@ -582,7 +579,7 @@ static ssize_t dax_write(struct file *f, const char __u= ser *buf, if (ctx->owner !=3D current) return -EUSERS; =20 - if (copy_from_user(&hdr, buf, sizeof(hdr))) + if (!copy_from_iter_full(&hdr, sizeof(hdr), from)) return -EFAULT; =20 ca =3D ctx->ca_buf_ra + hdr.ca_offset; @@ -846,9 +843,9 @@ static int dax_preprocess_usr_ccbs(struct dax_ctx *ctx,= int idx, int nelem) return DAX_SUBMIT_OK; } =20 -static int dax_ccb_exec(struct dax_ctx *ctx, const char __user *buf, - size_t count, loff_t *ppos) +static int dax_ccb_exec(struct dax_ctx *ctx, loff_t *ppos, struct iov_iter= *from) { + size_t count =3D iov_iter_count(from); unsigned long accepted_len, hv_rv; int i, idx, nccbs, naccepted; =20 @@ -873,7 +870,7 @@ static int dax_ccb_exec(struct dax_ctx *ctx, const char= __user *buf, * Copy CCBs into kernel buffer to prevent modification by the * user in between validation and submission. */ - if (copy_from_user(ctx->ccb_buf, buf, count)) { + if (!copy_from_iter_full(ctx->ccb_buf, count, from)) { dax_dbg("copyin of user CCB buffer failed"); ctx->result.exec.status =3D DAX_SUBMIT_ERR_CCB_ARR_MMU_MISS; return 0; --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f49.google.com (mail-io1-f49.google.com [209.85.166.49]) (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 D5AD4202A6D for ; Thu, 11 Apr 2024 15:43:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850221; cv=none; b=EQgJRAtDJkycSRSl2ZdNFsDUr5MEJHskusmHdlr0HAWIaD+RpY4grqIwx/ndzBFbXgQCOdXIUZqk8x0rZtOoJrlHu40BZjXzuujtGCjOFoAnvLwfBEYJxIyE3ae7PHqI6TZ7DcSLF/CYj6qY/AvXMNqBc0Ht4CNXSHdjTSbI29g= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850221; c=relaxed/simple; bh=GJK7XXFh5gnnKJH43kYoV0NfBP/fp6A1qBURcN2Yy4g=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=qEbuQrUwpzBkb3Gy1VpJZBOVQ3R1QGjFLhDaBBE1G5ZJqyK7UhRnfnLzf/eV0fMitQJT/jpsKDQV5zi1of6iJPaVOq0O6RNo1dgiVWCJMrGRrDDScfVTVVnyQSJlqX7xVfE7ZP9w42me0D0gH8NBqRHtXagGDoxHM3erx+OGWlU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=U4YU+PZp; arc=none smtp.client-ip=209.85.166.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="U4YU+PZp" Received: by mail-io1-f49.google.com with SMTP id ca18e2360f4ac-7c8e4c0412dso69704939f.1 for ; Thu, 11 Apr 2024 08:43:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850218; x=1713455018; 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=qRxGlN/pwy9RyKX4DwH5rXOxL/UwdSpMUyhLjmgkt+c=; b=U4YU+PZpydsQGtCu1qbFC215lUrhCEFaSxfuclTY1GAFjPkA7D/w606hjmoJ3L9xtm nPGhgNori3v/X1suQHmGUlblSOxDAKXJ+Vl+01B4UCuWdgih2XKaPqIKYyd9vHOJSh+f VU8N6gdIlave1gIJspwe7sSGXFbOCduzLkoueNslRG58N1QhP4VVNk7/rsFLnKbzFXMe WSptJUBvdVZFJ//Vu8x/q7duQ6bq4xPqSs4OLHdeys03f3ZQQ3hWkNWukajOGeJGuxkY QTYHP1n3K6ejh5ngjB5dnxmZQkKAp0uLHUOFzyZl5cqAh5iGKYTZKSHtz+XTNZWyzLkK kg4A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850218; x=1713455018; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=qRxGlN/pwy9RyKX4DwH5rXOxL/UwdSpMUyhLjmgkt+c=; b=D7dVsCudYvjGjHk1eMX7sSGodqNnvv7EuVibpIIJNZXVARtzfo/EyTvNfhQ5vEAXex ByCsFCMz7EaDdX1YHuTu1ptsb60AZcajO62jHIYZcuUIi1vOz3sEBDFRUiU8phRtUBY7 Ey6A9G12cDp8Jz1lmYw6iaXLE0bjwX3aO8YsUbzR9/5qds7lEm54nMJzARN3AYx7j2BJ 8LOWDgMRNJQO/j74RP2+8ovb6MwuZGxLe8tJ75jYPSDG4G64s3Dt8G84JFVnsW36HI1s MhQ6qxgs5+3HjkdN+SXD+A4KAfuw8or7zsqCeRHINQWnJoGbXbneaeydAPvieckrL+8E XxeA== X-Gm-Message-State: AOJu0Yzag4MC4D9fSdWxG31NuBjp2VDpcI8sM7HaC7PfRuWjnY6gx/v9 qeSeekW+cT7CJtN4NdU3BJEwwRvMV7u0D3p0s46jNSJ1Y8Lu2/eKMquZOY/9qKWRsJOoSowFFfJ x X-Google-Smtp-Source: AGHT+IHL5GoHW7sKYQvvRcB8RVKCpTARffC0A2lfDao3ExJIurqZOydR/ogbF1QCaoJxZBOZg7PAPQ== X-Received: by 2002:a6b:7b05:0:b0:7d6:60dc:bc8e with SMTP id l5-20020a6b7b05000000b007d660dcbc8emr212536iop.1.1712850218624; Thu, 11 Apr 2024 08:43:38 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.43.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:43:37 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 429/437] sbus: envctrl: convert to read/write iterators Date: Thu, 11 Apr 2024 09:19:29 -0600 Message-ID: <20240411153126.16201-430-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/sbus/char/envctrl.c | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/drivers/sbus/char/envctrl.c b/drivers/sbus/char/envctrl.c index 491cc6c0b3f9..ceebe708647d 100644 --- a/drivers/sbus/char/envctrl.c +++ b/drivers/sbus/char/envctrl.c @@ -533,8 +533,7 @@ static unsigned char envctrl_i2c_voltage_status(struct = i2c_child_t *pchild, /* Function Description: Read a byte from /dev/envctrl. Mapped to user rea= d(). * Return: Number of read bytes. 0 for error. */ -static ssize_t -envctrl_read(struct file *file, char __user *buf, size_t count, loff_t *pp= os) +static ssize_t envctrl_read(struct kiocb *iocb, struct iov_iter *to) { struct i2c_child_t *pchild; unsigned char data[10]; @@ -545,14 +544,14 @@ envctrl_read(struct file *file, char __user *buf, siz= e_t count, loff_t *ppos) * Get the data and put back to the user buffer. */ =20 - switch ((int)(long)file->private_data) { + switch ((int)(long)iocb->ki_filp->private_data) { case ENVCTRL_RD_WARNING_TEMPERATURE: if (warning_temperature =3D=3D 0) return 0; =20 data[0] =3D (unsigned char)(warning_temperature); ret =3D 1; - if (copy_to_user(buf, data, ret)) + if (!copy_to_iter_full(data, ret, to)) ret =3D -EFAULT; break; =20 @@ -562,7 +561,7 @@ envctrl_read(struct file *file, char __user *buf, size_= t count, loff_t *ppos) =20 data[0] =3D (unsigned char)(shutdown_temperature); ret =3D 1; - if (copy_to_user(buf, data, ret)) + if (!copy_to_iter_full(data, ret, to)) ret =3D -EFAULT; break; =20 @@ -570,7 +569,7 @@ envctrl_read(struct file *file, char __user *buf, size_= t count, loff_t *ppos) if (!(pchild =3D envctrl_get_i2c_child(ENVCTRL_MTHRBDTEMP_MON))) return 0; ret =3D envctrl_read_noncpu_info(pchild, ENVCTRL_MTHRBDTEMP_MON, data); - if (copy_to_user(buf, data, ret)) + if (!copy_to_iter_full(data, ret, to)) ret =3D -EFAULT; break; =20 @@ -580,7 +579,7 @@ envctrl_read(struct file *file, char __user *buf, size_= t count, loff_t *ppos) ret =3D envctrl_read_cpu_info(read_cpu, pchild, ENVCTRL_CPUTEMP_MON, dat= a); =20 /* Reset cpu to the default cpu0. */ - if (copy_to_user(buf, data, ret)) + if (!copy_to_iter_full(data, ret, to)) ret =3D -EFAULT; break; =20 @@ -590,7 +589,7 @@ envctrl_read(struct file *file, char __user *buf, size_= t count, loff_t *ppos) ret =3D envctrl_read_cpu_info(read_cpu, pchild, ENVCTRL_CPUVOLTAGE_MON, = data); =20 /* Reset cpu to the default cpu0. */ - if (copy_to_user(buf, data, ret)) + if (!copy_to_iter_full(data, ret, to)) ret =3D -EFAULT; break; =20 @@ -598,7 +597,7 @@ envctrl_read(struct file *file, char __user *buf, size_= t count, loff_t *ppos) if (!(pchild =3D envctrl_get_i2c_child(ENVCTRL_SCSITEMP_MON))) return 0; ret =3D envctrl_read_noncpu_info(pchild, ENVCTRL_SCSITEMP_MON, data); - if (copy_to_user(buf, data, ret)) + if (!copy_to_iter_full(data, ret, to)) ret =3D -EFAULT; break; =20 @@ -606,7 +605,7 @@ envctrl_read(struct file *file, char __user *buf, size_= t count, loff_t *ppos) if (!(pchild =3D envctrl_get_i2c_child(ENVCTRL_ETHERTEMP_MON))) return 0; ret =3D envctrl_read_noncpu_info(pchild, ENVCTRL_ETHERTEMP_MON, data); - if (copy_to_user(buf, data, ret)) + if (!copy_to_iter_full(data, ret, to)) ret =3D -EFAULT; break; =20 @@ -615,7 +614,7 @@ envctrl_read(struct file *file, char __user *buf, size_= t count, loff_t *ppos) return 0; data[0] =3D envctrl_i2c_read_8574(pchild->addr); ret =3D envctrl_i2c_fan_status(pchild,data[0], data); - if (copy_to_user(buf, data, ret)) + if (!copy_to_iter_full(data, ret, to)) ret =3D -EFAULT; break; =09 @@ -624,7 +623,7 @@ envctrl_read(struct file *file, char __user *buf, size_= t count, loff_t *ppos) return 0; data[0] =3D envctrl_i2c_read_8574(pchild->addr); ret =3D envctrl_i2c_globaladdr(pchild, data[0], data); - if (copy_to_user(buf, data, ret)) + if (!copy_to_iter_full(data, ret, to)) ret =3D -EFAULT; break; =20 @@ -635,7 +634,7 @@ envctrl_read(struct file *file, char __user *buf, size_= t count, loff_t *ppos) return 0; data[0] =3D envctrl_i2c_read_8574(pchild->addr); ret =3D envctrl_i2c_voltage_status(pchild, data[0], data); - if (copy_to_user(buf, data, ret)) + if (!copy_to_iter_full(data, ret, to)) ret =3D -EFAULT; break; =20 @@ -711,7 +710,7 @@ envctrl_release(struct inode *inode, struct file *file) =20 static const struct file_operations envctrl_fops =3D { .owner =3D THIS_MODULE, - .read =3D envctrl_read, + .read_iter =3D envctrl_read, .unlocked_ioctl =3D envctrl_ioctl, .compat_ioctl =3D compat_ptr_ioctl, .open =3D envctrl_open, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f51.google.com (mail-io1-f51.google.com [209.85.166.51]) (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 8B740203580 for ; Thu, 11 Apr 2024 15:43:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850222; cv=none; b=FDkDAGgJfE4EENsM2+hJJm9RwZw7N/KeX3G/iIkpc6UH7z2oa7ES79+XUxEzqVxsagkgyJIUN1Y6NEf6y17ELUe3/uh/5P4f4zHsL6f6TWcETsKXRFAFWJJk3sE8NXTezy8ywFi9N6v0XZ38vS/7xbcIQllSoJnUJlxw4J8HfQ4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850222; c=relaxed/simple; bh=i81SoTpfZoCttmw03BT4HXoOjPTFbjdS87pTUWjCFL4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=J1wtI9WeiO4dqR16MRz0E6l2KZVajE+M9xMBu+PcFOZVAm4EvSfzjEmnMMU9cnnmCc3CjgtJAsz32FzEMrHCeA7UIWjRQbuGWInyDdk/JhtZxzSYKc7VIioctmuA70fsIzapWuDa6YxeCLFVBKaSu7iwA7HEbTg5x/K4qLDP7Mg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=MThp6PIw; arc=none smtp.client-ip=209.85.166.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="MThp6PIw" Received: by mail-io1-f51.google.com with SMTP id ca18e2360f4ac-7d67d1073easo9953439f.0 for ; Thu, 11 Apr 2024 08:43:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850220; x=1713455020; 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=Y693zVyKx5Xj5+ZmbaRfysNOquN2tS7NYbAkTC+dKIw=; b=MThp6PIwqqd1AKVdrh3Sl4r/w2jk35nlbunr0LQ2WpRg+zab4mTkybCeamSJDEKUHm oKgBNsbs2klJP97RwCPqsx4rRIHfuUVtMut2XWDU/elA2OcY8nh+QrBsbJ+4ceFRXNbA Ip3qDCY+tkY29z6A+q1hp72coRRmrzwjU5wQn0r/l+gHbpp2Fgu/WTRzxTlapvGTtQqm M6aT4ItrTPZ3UnkDl9Pe4tNfACfLXcOWg7M4k+YeP1eOYdaUGcVNlPirBRXJ61HarRVv A0WU7x6MQaanOBanXEbmcyF0ZmG25bX0ytnrn8la8xBbQF5RkZYFUWkvhN8QrIajBXnz 5W6A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850220; x=1713455020; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Y693zVyKx5Xj5+ZmbaRfysNOquN2tS7NYbAkTC+dKIw=; b=HqRpP4fuZNiTOficH1YAXqCc11PEXm0X8kIGK4njUWlrspW3S1zzqwdAINSmHCvXGm yMooHN3pcRJEJ2YLSKYK4EZrCK3Z3E1fqdu8+EiE6RKTQIIo5EJ1xCRc2ps5DxLNsT1Z 4SEtKkLEvcKywYuaBCJ3lDsZP/nyHYsBiBHYIcjknVmbDCBV2wdJdiWYuBMoBEVVRRj6 HHJe9jNCNl1jXiugfcHoHQ0vC9En62T8S5UI1uhNTbHk+YCMD+MSAYJ/HmlRTLbdRrte jvTX2bDaYsy0aaxUt71s7FB94icKsGQlWnwft0lTLqYo0HMWLkBO7nmoRku8Xk6nx1cD esVg== X-Gm-Message-State: AOJu0YzHNW/90rFz67wSwlDgLDPXAZ9SSPkTcARbggiJrcuui2HyOd87 ij0NvlOLrqxc/S+H8+e+RNXAl73onkI4QDgTPLbXjVThmSqoaM0krQPcyIF0Y45hS9XZZFzboa4 2 X-Google-Smtp-Source: AGHT+IEWrfbd88bnUiW00XiRmvhgc0AOpozz4nHHdElKVS126DsFNkT+7m7nooW2oaaqlTHqgd2YMg== X-Received: by 2002:a05:6602:84:b0:7d6:9d75:6de2 with SMTP id h4-20020a056602008400b007d69d756de2mr58046iob.2.1712850220403; Thu, 11 Apr 2024 08:43:40 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.43.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:43:38 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 430/437] sbus: flash: convert to read/write iterators Date: Thu, 11 Apr 2024 09:19:30 -0600 Message-ID: <20240411153126.16201-431-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/sbus/char/flash.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/drivers/sbus/char/flash.c b/drivers/sbus/char/flash.c index 05d37d31c3b8..4b21dc0cb3c4 100644 --- a/drivers/sbus/char/flash.c +++ b/drivers/sbus/char/flash.c @@ -98,11 +98,10 @@ flash_llseek(struct file *file, long long offset, int o= rigin) return file->f_pos; } =20 -static ssize_t -flash_read(struct file * file, char __user * buf, - size_t count, loff_t *ppos) +static ssize_t flash_read(struct kiocb *iocb, struct iov_iter *to) { - loff_t p =3D *ppos; + size_t count =3D iov_iter_count(to); + loff_t p =3D iocb->ki_pos; int i; =20 if (count > flash.read_size - p) @@ -110,12 +109,11 @@ flash_read(struct file * file, char __user * buf, =20 for (i =3D 0; i < count; i++) { u8 data =3D upa_readb(flash.read_base + p + i); - if (put_user(data, buf)) + if (put_iter(data, to)) return -EFAULT; - buf++; } =20 - *ppos +=3D count; + iocb->ki_pos +=3D count; return count; } =20 @@ -148,7 +146,7 @@ static const struct file_operations flash_fops =3D { */ .owner =3D THIS_MODULE, .llseek =3D flash_llseek, - .read =3D flash_read, + .read_iter =3D flash_read, .mmap =3D flash_mmap, .open =3D flash_open, .release =3D flash_release, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-il1-f178.google.com (mail-il1-f178.google.com [209.85.166.178]) (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 74A832035AF for ; Thu, 11 Apr 2024 15:43:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.178 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850224; cv=none; b=uMG8/p7Lo/mZpVmIMEtx2suYlcoqKHbDi9jJVjp2KUZoD46HypSel5qbNllDTxkQ2dft2q0bEiz3FT4/p5VqbuuFKmhujpFcg0UUDE2pnNKM8X6PIuxqCcYaa7u6YrChaN9Vwj61CPuekWFQtb0ZPF8gea9lvWUX09aQbW65pck= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850224; c=relaxed/simple; bh=IMBKNykXgoR5Z68gbJPYMGQFh6CxDlMrK1BgOu93NB0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=E2/LT5UUx/m1ntWKLp1c2XfuZGZrHqgABA65z+pu5axQXpHg5ZcU8jHpqOm+1g5eAbRxya7pLCsreOg+v+fiuvBhyTmGE3AMAO7GawkMbJ0o0/ORyt66aK0fDRVHf9ObdP/EKnUpp8tkBjgu+RynZtzw2p5QXWkEG+4/1fSZ2Rs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=Vwu/SXdE; arc=none smtp.client-ip=209.85.166.178 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="Vwu/SXdE" Received: by mail-il1-f178.google.com with SMTP id e9e14a558f8ab-36a34b68277so125435ab.0 for ; Thu, 11 Apr 2024 08:43:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850222; x=1713455022; 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=LJ+X3I425i0EDOsy4DD7c66IPiuYwpNwo+cA0gVDxrE=; b=Vwu/SXdEw08H4BAxcffa/OLLweuX/x98P3EMr/iPNgchrle9kQzwXNowxWhkk/MPkj bB+ALAcNyfbAlnUFjyRsaXIiM0WWZjyQ6iuc8CAmiGg1gb7mjAWnNovwI0/0uSQi12kI 4IOaOM/U6RfCXkxqp1ZNuIyHvMnbNWgTufDhgm9ZbqvrWp3rHp17auNynLqkjJiWX5si GctKqStnzOFd2UBPAPjdg3qMkt7bdZIweyxDuVi/VVGZ3E+/kRYKTTYNk/IhJU0OoVmx //9ndE4TYNm1JbFqwcdAdAlj5Q8AeA7GUtHg3eVVSztH6VHL2qGrw8yAGgpm+Ft1UHYO YORg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850222; x=1713455022; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=LJ+X3I425i0EDOsy4DD7c66IPiuYwpNwo+cA0gVDxrE=; b=OcCdWzUWMRqh8m3CBvYSby57MSOE4fe0TrRmllHdkOe5j/AOmoCPD6AEht7w34Pg0l 0zk1Ge6KG2cVtfU2RvPxm8jBKChCG9BQHIaL9zdYRDwSxHqmT08280XXcwL8FXPPHJ/c l6xTNpv6RIQKDE4zUq+6wI+hNWelVPrxPm9HL9VXIUGLCbhBCQaaYI2gqjz7zgwvo4Vj amxheLFcnwPOPs+7wQDOYCQIYoX3IZ79aW56jsxMmef7kd6ilBzlOI522eslwWHgJE08 WDtNajM5BKiVCjwruLCoTAtuSj3tR4Oq3maXvBzB84yxSB0IQzQ9qAdzOer4AwNl4wuL E2pQ== X-Gm-Message-State: AOJu0YxLVMqm+lB8v5NUctfUZk4rDVdktD8fw8AeANrCgKuVCt7Qw1Fe lhjV+SRk/qTWtUGbzoBoKMc78dOXFM7eKPD47tZODYbGNwoSbG0c15U84KRxbM5FEyqMvuK37BB 2 X-Google-Smtp-Source: AGHT+IE4QLorZ4CWvw/y1YDoU9HySlxvZA3auJxAwqwUnp9j4MyJHNIdj3d9CtdDKXdFabgW97yWXA== X-Received: by 2002:a05:6602:4ed7:b0:7d5:ddc8:504d with SMTP id gk23-20020a0566024ed700b007d5ddc8504dmr206117iob.0.1712850222230; Thu, 11 Apr 2024 08:43:42 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.43.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:43:40 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 431/437] pci: hotplug: cpqphp: convert to read/write iterators Date: Thu, 11 Apr 2024 09:19:31 -0600 Message-ID: <20240411153126.16201-432-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- drivers/pci/hotplug/cpqphp_sysfs.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/drivers/pci/hotplug/cpqphp_sysfs.c b/drivers/pci/hotplug/cpqph= p_sysfs.c index fed1360ee9b1..234e7ab66660 100644 --- a/drivers/pci/hotplug/cpqphp_sysfs.c +++ b/drivers/pci/hotplug/cpqphp_sysfs.c @@ -157,11 +157,10 @@ static loff_t lseek(struct file *file, loff_t off, in= t whence) return fixed_size_llseek(file, off, whence, dbg->size); } =20 -static ssize_t read(struct file *file, char __user *buf, - size_t nbytes, loff_t *ppos) +static ssize_t read(struct kiocb *iocb, struct iov_iter *to) { - struct ctrl_dbg *dbg =3D file->private_data; - return simple_read_from_buffer(buf, nbytes, ppos, dbg->data, dbg->size); + struct ctrl_dbg *dbg =3D iocb->ki_filp->private_data; + return simple_copy_from_iter(dbg->data, &iocb->ki_pos, dbg->size, to); } =20 static int release(struct inode *inode, struct file *file) @@ -177,7 +176,7 @@ static const struct file_operations debug_ops =3D { .owner =3D THIS_MODULE, .open =3D open, .llseek =3D lseek, - .read =3D read, + .read_iter =3D read, .release =3D release, }; =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f45.google.com (mail-io1-f45.google.com [209.85.166.45]) (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 C2EEE20404B for ; Thu, 11 Apr 2024 15:43:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850226; cv=none; b=TLUDopP2X4VYBLKD1eI8XBgWVoxtzzopBwaM0rlyT6OsV8Z5Jgbx3b/4Aqr7TzV4Y4Lzm656c6ieaD3WKTKlFw+Dwm5BtjyxcC831h09cVKlkUlVejlZjdNsK8SYRa2WDs8Ck3YireJDE3Tt6GUn2KkNNTn8Sx0jMQaDcUIerEI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850226; c=relaxed/simple; bh=zWATLctHVPydKOBIwB+abK4Uy0TcMGukpkxMWhEsUPo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=l8D4WvdFqCfIL4P4TN0G2faoj0ArjXMlFQi+pD4FB1tD1+RIkZkHIT0RPCYgAIGXe+aRey100IufIifHOnPX9wIbjQGbydr+ATRXhL+2LgrXosIjre3HGAT0jglgOQbB3tZ8RO09VNnn6HG0orj64Ci11bAv3BKJGRZRz+wgqn4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=f9RBlfCr; arc=none smtp.client-ip=209.85.166.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="f9RBlfCr" Received: by mail-io1-f45.google.com with SMTP id ca18e2360f4ac-7c8e4c0412dso69705839f.1 for ; Thu, 11 Apr 2024 08:43:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850224; x=1713455024; 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=bOfssJivSCemVVoipy+tqLOOQD7sJiCVPG0eYTdUsjU=; b=f9RBlfCrF3zTIpiiPMx/ylo8hyiIAd1sGs90HQlHKiebaeKEJY93VFn8Bk25BSDNPG A8sdI2ORSM8L3akNm18a635e7srzN0gjYYewy0D1xkbhDniZEKabjh8q52KlD0b9+Jww 4vn5IaUNdnPl9+/ydlx9MOhUr3hhacETkj2T26HV/g7c77KdDPw5XoPmDJSZA9EdWLoP HZZWBxBZ1Jis/Tq4SU1yDwF6nXzppJzZvrIIfSDcdUfSmq10hfKWq3YJyrm5H/hKTzJb 9WaLLr1+N/ofZUnZFra/zq14YgudAiVIH4DmsdZnj7zVve5A3hVV9uBpbUmNQaWRB40H Jfkg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850224; x=1713455024; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=bOfssJivSCemVVoipy+tqLOOQD7sJiCVPG0eYTdUsjU=; b=xSQq7SxdlxQCaWf6XdbmQPfWyLns4qFgrvyaUJuB7xYtzdqrL1tVuhbI/qo89dZHrX DnTi06XGkIgTyyrBOirK9cqPfnFlG3h+MwixdXehN6PrLqMlMJ7tBevNWnY43iHg0NUr q7RvShgWAQVfcxb/lI5nnUBhbjGgX1YqKkz7Ld2madvCiOhOPtKdhSOtRYVpWJqxKjml glP1Ly6GbGzf6g48rGI4V3cCXbh42md3hQacOaJva5Ed5EnwZNInhLvj306SfVXPMR0j Ht4v+oZh9lGJXemM7O7aX+Ob6haSRkkLX6QEnS0mgTbxRkgmCW3iWJZGUzBRZZ58XRYF 3m4A== X-Gm-Message-State: AOJu0YwDsHft8hs5aMUaGx18fWPTfl7Xj7Zjt7xu44IuKsTu5ETFgQ/3 8kd+lT4jdJ/wdvhMPmmv8oJlJHbHHIW8oh4IYEnYPTvJPJWvhfJYj7WUiK/qhJbtoaITumIS7rb x X-Google-Smtp-Source: AGHT+IESkNgW2eDtwJG+ysNi4hYeWDKwyR7PqQSYicYpYHLZZAKp1MwCCU1/gAPAs/z7ZMnBdnOxQQ== X-Received: by 2002:a6b:7b05:0:b0:7d6:60dc:bc8e with SMTP id l5-20020a6b7b05000000b007d660dcbc8emr212738iop.1.1712850223745; Thu, 11 Apr 2024 08:43:43 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.43.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:43:42 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 432/437] seq_file: switch to using ->read_iter() Date: Thu, 11 Apr 2024 09:19:32 -0600 Message-ID: <20240411153126.16201-433-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" There's a seq_read_iter() helper already, use it. Signed-off-by: Jens Axboe --- include/linux/seq_file.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/include/linux/seq_file.h b/include/linux/seq_file.h index 234bcdb1fba4..a562c611ed3d 100644 --- a/include/linux/seq_file.h +++ b/include/linux/seq_file.h @@ -188,7 +188,7 @@ static int __name ## _open(struct inode *inode, struct = file *file) \ static const struct file_operations __name ## _fops =3D { \ .owner =3D THIS_MODULE, \ .open =3D __name ## _open, \ - .read =3D seq_read, \ + .read_iter =3D seq_read_iter, \ .llseek =3D seq_lseek, \ .release =3D seq_release, \ } @@ -202,7 +202,7 @@ static int __name ## _open(struct inode *inode, struct = file *file) \ static const struct file_operations __name ## _fops =3D { \ .owner =3D THIS_MODULE, \ .open =3D __name ## _open, \ - .read =3D seq_read, \ + .read_iter =3D seq_read_iter, \ .llseek =3D seq_lseek, \ .release =3D single_release, \ } @@ -216,8 +216,8 @@ static int __name ## _open(struct inode *inode, struct = file *file) \ static const struct file_operations __name ## _fops =3D { \ .owner =3D THIS_MODULE, \ .open =3D __name ## _open, \ - .read =3D seq_read, \ - .write =3D __name ## _write, \ + .read_iter =3D seq_read_iter, \ + .write_iter =3D __name ## _write_iter, \ .llseek =3D seq_lseek, \ .release =3D single_release, \ } --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f41.google.com (mail-io1-f41.google.com [209.85.166.41]) (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 983D8203580 for ; Thu, 11 Apr 2024 15:43:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850228; cv=none; b=VsZC4VpqHWiEHCXsPhgVtdvARUj0zSWPBqSKnZJV1OROXOUBFWVV5AqwuuU4BiQ8CjM4WjLMbv0GP1sPmwvv308ff7jf59fbXXHX61Q5cBj/9GKYGgdphc9KSHH2oDhYn5g0zQjbC4Ri3+3DyywY57PX7tXq8HeXU1NUKyV9/WI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850228; c=relaxed/simple; bh=KhJyfYd8Vj9NqkmdKLW2WvZin9Gnn6ZH8dQq+N3KPTQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=BHzzKZn5l+tfHBkwpd49bkDrQgHdm0E2ETG7CmEDJ3D3izZa0/G45/h5tNpMSDOnZT3VajmomMAAO7jZyxAqaJrUP6K1NCh+OUWJZoFfCkomo8agCAycf8SdILI5uxC/3vLqR3fU3wCmNnZ+NtfQebD1JkC0/baqIP/EUeGJo9I= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=Ib+G5sCN; arc=none smtp.client-ip=209.85.166.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="Ib+G5sCN" Received: by mail-io1-f41.google.com with SMTP id ca18e2360f4ac-7d6812b37a6so9123239f.0 for ; Thu, 11 Apr 2024 08:43:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850225; x=1713455025; 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=wtyNxOMSSlFtTrfa71viN3TkdB2q/uxCCkQxbxCUUkc=; b=Ib+G5sCNeauuc0XTOK09N59+SCaXmaNcjXwTstazfoAti/rNjD36B5+icMjKpgtXoj e/xlN5AWYeK/iFoQqFkdWWb368lREtgaRAUKMIp/aSGuzLJdKLlZ6dIgF3+iWO7Z8Qsv fnP5BeiVnGLDcWWH/ChqaEZGOKC1gjQqCVLYCY36hhDYZLDO1SGOFv3Yy1OpdRw+G6px 3JR88TbjksKaDGCSrc27F2NzOIMhTfbN/g6KMDRNx4AE3nQf/jOxJ7+RHjzxBueFoRfz eNjFFnTr4PGHxpwD4zc5D0hB4BOH2bGwFPsr9vmTCeUcTbFOdfIvqnXH4Ikct4WGCrGG 7gWg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850225; x=1713455025; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=wtyNxOMSSlFtTrfa71viN3TkdB2q/uxCCkQxbxCUUkc=; b=Scg/deR0wNEJrIEXOtJCT/cFPpGxCKRKHOcz2aYUuRaMtPf6Mu5zBT616aFJqH1t2h L9uSoZ0jVrjtjOPXUAQeLvPaI5Ehc5PqLmCaZ9ItiToeDtwefatADu8KWPedKktnLI1L YNFsnLlJqbqKEzXgTvoSY295V4eyXypMAjU1BV7bcwEN1NOBhed79FlHlS4J6qDkOZ2Z RhY7//KTN7wSkhfUXBwfAn6lmcsyNi/VwPoDzY9JVQ33OWFbtUbXop0jx+fBBMkTglrj QSkxCqs26rz6UfF2puXKUlYSPeBj2/k8CybeHrgESLoNSeYFbIvUjK22auu9mKzUdQJp Ex6w== X-Gm-Message-State: AOJu0YyLW+fwy8/dmXm+5ZDlAX1zLssIxf1tWHfsUWzwYcCrdDVZGRSy s6/wNiMn+wWeY2KTcTFDy4fjs9J1o5H7N9XZCF7nSvG8qJl8lGNnietr9NOGEUUAcJsok5fxicE D X-Google-Smtp-Source: AGHT+IFqn5NePFYJdmb+LJ19j/v+WQ57/B1QlJWEIT+unE0XLACesxHPJ1AizA6tpmbwvrpuk5LiDA== X-Received: by 2002:a5e:9907:0:b0:7d6:751f:192 with SMTP id t7-20020a5e9907000000b007d6751f0192mr201491ioj.2.1712850225419; Thu, 11 Apr 2024 08:43:45 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.43.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:43:44 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 433/437] fs/debugfs: remove (now) dead non-iterator debugfs_attr functions Date: Thu, 11 Apr 2024 09:19:33 -0600 Message-ID: <20240411153126.16201-434-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Signed-off-by: Jens Axboe --- fs/debugfs/file.c | 46 ----------------------------------------- include/linux/debugfs.h | 6 ------ 2 files changed, 52 deletions(-) diff --git a/fs/debugfs/file.c b/fs/debugfs/file.c index 6463b4a274d4..9c8fe0834b2b 100644 --- a/fs/debugfs/file.c +++ b/fs/debugfs/file.c @@ -451,21 +451,6 @@ const struct file_operations debugfs_full_proxy_file_o= perations =3D { .open =3D full_proxy_open, }; =20 -ssize_t debugfs_attr_read(struct file *file, char __user *buf, - size_t len, loff_t *ppos) -{ - struct dentry *dentry =3D F_DENTRY(file); - ssize_t ret; - - ret =3D debugfs_file_get(dentry); - if (unlikely(ret)) - return ret; - ret =3D simple_attr_read(file, buf, len, ppos); - debugfs_file_put(dentry); - return ret; -} -EXPORT_SYMBOL_GPL(debugfs_attr_read); - ssize_t debugfs_attr_read_iter(struct kiocb *iocb, struct iov_iter *to) { struct dentry *dentry =3D F_DENTRY(iocb->ki_filp); @@ -480,37 +465,6 @@ ssize_t debugfs_attr_read_iter(struct kiocb *iocb, str= uct iov_iter *to) } EXPORT_SYMBOL_GPL(debugfs_attr_read_iter); =20 -static ssize_t debugfs_attr_write_xsigned(struct file *file, const char __= user *buf, - size_t len, loff_t *ppos, bool is_signed) -{ - struct dentry *dentry =3D F_DENTRY(file); - ssize_t ret; - - ret =3D debugfs_file_get(dentry); - if (unlikely(ret)) - return ret; - if (is_signed) - ret =3D simple_attr_write_signed(file, buf, len, ppos); - else - ret =3D simple_attr_write(file, buf, len, ppos); - debugfs_file_put(dentry); - return ret; -} - -ssize_t debugfs_attr_write(struct file *file, const char __user *buf, - size_t len, loff_t *ppos) -{ - return debugfs_attr_write_xsigned(file, buf, len, ppos, false); -} -EXPORT_SYMBOL_GPL(debugfs_attr_write); - -ssize_t debugfs_attr_write_signed(struct file *file, const char __user *bu= f, - size_t len, loff_t *ppos) -{ - return debugfs_attr_write_xsigned(file, buf, len, ppos, true); -} -EXPORT_SYMBOL_GPL(debugfs_attr_write_signed); - static ssize_t debugfs_attr_write_iter_xsigned(struct kiocb *iocb, struct iov_iter *from, bool is_signed) diff --git a/include/linux/debugfs.h b/include/linux/debugfs.h index c6d189059d3d..7d08c0900b4c 100644 --- a/include/linux/debugfs.h +++ b/include/linux/debugfs.h @@ -104,14 +104,8 @@ const struct file_operations *debugfs_real_fops(const = struct file *filp); int debugfs_file_get(struct dentry *dentry); void debugfs_file_put(struct dentry *dentry); =20 -ssize_t debugfs_attr_read(struct file *file, char __user *buf, - size_t len, loff_t *ppos); ssize_t debugfs_attr_read_iter(struct kiocb *iocb, struct iov_iter *to); -ssize_t debugfs_attr_write(struct file *file, const char __user *buf, - size_t len, loff_t *ppos); ssize_t debugfs_attr_write_iter(struct kiocb *iocb, struct iov_iter *from); -ssize_t debugfs_attr_write_signed(struct file *file, const char __user *bu= f, - size_t len, loff_t *ppos); ssize_t debugfs_attr_write_iter_signed(struct kiocb *iocb, struct iov_iter= *from); =20 struct dentry *debugfs_rename(struct dentry *old_dir, struct dentry *old_d= entry, --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f43.google.com (mail-io1-f43.google.com [209.85.166.43]) (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 3042B2049E6 for ; Thu, 11 Apr 2024 15:43:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850229; cv=none; b=WSEf6LSBu8rvlICZXtrBUWE6lwfAu2T+H/nxXlI8Gnhxvg7KoFVnA8oWeJONYXpkZGhprkiCjJyldChubT8zUA/wSrTmwevYTXgdd3Wzm6gEiGkM/7DULiFYtSM17xrSSDTIdCyESfVPNjqlO4Ut87L7YB29Uw8O583Xm2Afz9U= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850229; c=relaxed/simple; bh=sv+Gy7cP78hJU/E9MRKEv2Jk7PK6pCxYpgtnsPuhQ9I=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=LqMAiqB/QR/2mNPwBaVvVYlhMBFCKEOsqcODPzePzdkIHGEJF3QoUJNCOp2XeZAdCZzovNjIdleYokczhqiY5vV+NvuoSXFakQwdKn52NZJC8ESaasQBVQG8qK6WW32p/NOMvJy1HlPRYbr9N6hfVaZgTCmpSA+lKTwZ6KyrsMc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=MIzfvxo+; arc=none smtp.client-ip=209.85.166.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="MIzfvxo+" Received: by mail-io1-f43.google.com with SMTP id ca18e2360f4ac-7d6112ba6baso58297839f.1 for ; Thu, 11 Apr 2024 08:43:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850227; x=1713455027; 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=824kdpvNQEIg3JNyqLD6HhMGF1p3p7yQd55ATdhdNV4=; b=MIzfvxo+y6fUVIbKE7P0VtLAg5TOqui2CVzW6n9d1UAJ4p4tm5Jjuo8cbSwYEgenhk AjFvHJ7oEMXzLAGGdnysMyUfqGW12wWdUmTvc4+bXWe/X4O98JZu5fNncCaEXkY3Yk8q 2l/wYYwI49aC38kRUcEXt8tQBxgrnGkTZ9SBdXqq5Hqh2r6u+CR8nV7PZ+PJuCin3ciJ 2L6HHPfY0exDGMC/poQzws4PhJ4rj094oMZwdMatzKoOQSNivgSsakRRb6Ejv2+2tM3h /0IGGVHxSQI0sDGD15gyzW6vV91ycZHhhFcvnuNNZzgQlPSSteI680NxJes00wikgsVY EFog== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850227; x=1713455027; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=824kdpvNQEIg3JNyqLD6HhMGF1p3p7yQd55ATdhdNV4=; b=q6NqIjOO5mHHnC2/DhjJI7JXum7m4LC/DOPAD8Oat1cR/BkW+mmtyO5U2uMJZ10n8S vpVrNLOFxH942oh2wulb4f9sK32xlZ0PGbtnNZO5pnruCbldEm/7olrr3W7+Sqr1EGiv ItAZKbpDV1dAG1Mr3Lo3viWY4vfd+u1k6DFYDwff58NmZKsQNj3CeV91peK9UZkg724K tlwcl6Ds5K5BX6r/rIWQQ7NTs5ojczzt8JnRWtJOyvqTH1v0cQn2acULShO6npocR1zm SpBWOasiaBILsNIfX48F3DZ9le+r6OYGqlxAwA2dC/a5GCmsuXA3Nflrb3ueO5M2OebG gmtw== X-Gm-Message-State: AOJu0Yw5QTU8579wbHpBiZ+T0bVycYYchzyNEULt+Uwn6eBFJiVKpQd6 7bxvecdpFp5XNnA1ctFALIKqvCLXNV7gdRUK4ihJPeQjtYK97IU+R5ihUTuatDuuR7djjCGVqpR x X-Google-Smtp-Source: AGHT+IHqzU7puz4UtLND2YpZCz3Xtb1Qczy4JVmbVtWC3C7R8Kk6z1Gvy7cc2GXD6NSAbTLiGAwKfA== X-Received: by 2002:a92:60b:0:b0:369:f53b:6c2 with SMTP id x11-20020a92060b000000b00369f53b06c2mr5354910ilg.1.1712850227027; Thu, 11 Apr 2024 08:43:47 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.43.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:43:45 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 434/437] lib/string_helpers: kill parse_int_array_user() Date: Thu, 11 Apr 2024 09:19:34 -0600 Message-ID: <20240411153126.16201-435-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" It's no longer used, get rid of it. Signed-off-by: Jens Axboe --- include/linux/string_helpers.h | 1 - lib/string_helpers.c | 61 ++++++++++------------------------ 2 files changed, 18 insertions(+), 44 deletions(-) diff --git a/include/linux/string_helpers.h b/include/linux/string_helpers.h index f38157114fc0..5e913f1fad60 100644 --- a/include/linux/string_helpers.h +++ b/include/linux/string_helpers.h @@ -32,7 +32,6 @@ enum string_size_units { int string_get_size(u64 size, u64 blk_size, const enum string_size_units u= nits, char *buf, int len); =20 -int parse_int_array_user(const char __user *from, size_t count, int **arra= y); int parse_int_array_iter(struct iov_iter *from, int **array); =20 #define UNESCAPE_SPACE BIT(0) diff --git a/lib/string_helpers.c b/lib/string_helpers.c index ced4f77dc5e8..8582f9adfa76 100644 --- a/lib/string_helpers.c +++ b/lib/string_helpers.c @@ -138,10 +138,27 @@ int string_get_size(u64 size, u64 blk_size, const enu= m string_size_units units, } EXPORT_SYMBOL(string_get_size); =20 -static int __parse_int_array(char *buf, int **array) +/** + * parse_int_array_iter - Split string into a sequence of integers + * @from: The iov_iter buffer to read from + * @array: Returned pointer to sequence of integers + * + * On success @array is allocated and initialized with a sequence of + * integers extracted from the @from plus an additional element that + * begins the sequence and specifies the integers count. + * + * Caller takes responsibility for freeing @array when it is no longer + * needed. + */ +int parse_int_array_iter(struct iov_iter *from, int **array) { int *ints, nints; int ret =3D 0; + char *buf; + + buf =3D iterdup_nul(from, iov_iter_count(from)); + if (IS_ERR(buf)) + return PTR_ERR(buf); =20 get_options(buf, 0, &nints); if (!nints) { @@ -161,49 +178,7 @@ static int __parse_int_array(char *buf, int **array) free_buf: kfree(buf); return ret; -} - -/** - * parse_int_array_user - Split string into a sequence of integers - * @from: The user space buffer to read from - * @count: The maximum number of bytes to read - * @array: Returned pointer to sequence of integers - * - * On success @array is allocated and initialized with a sequence of - * integers extracted from the @from plus an additional element that - * begins the sequence and specifies the integers count. - * - * Caller takes responsibility for freeing @array when it is no longer - * needed. - */ -int parse_int_array_user(const char __user *from, size_t count, int **arra= y) -{ - char *buf; - - buf =3D memdup_user_nul(from, count); - if (IS_ERR(buf)) - return PTR_ERR(buf); - - return __parse_int_array(buf, array); -} -EXPORT_SYMBOL(parse_int_array_user); - -/** - * parse_int_array_iter - Split string into a sequence of integers - * @from: The iov_iter buffer to read from - * @array: Returned pointer to sequence of integers - * - * See @parse_int_array_user, this is just the iov_iter variant. - */ -int parse_int_array_iter(struct iov_iter *from, int **array) -{ - char *buf; - - buf =3D iterdup_nul(from, iov_iter_count(from)); - if (IS_ERR(buf)) - return PTR_ERR(buf); =20 - return __parse_int_array(buf, array); } EXPORT_SYMBOL(parse_int_array_iter); =20 --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-il1-f180.google.com (mail-il1-f180.google.com [209.85.166.180]) (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 EFFDB2049F8 for ; Thu, 11 Apr 2024 15:43:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.180 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850231; cv=none; b=SLEBHY5Ycpu0p2Fy6G5mbNR21VYN0kWXwvOoR3aIxyn/tiAbylwCFgXb+79Mw+GqWAgCwu0hyzYZ/KDFtW7Y+cDxEvikWVlVXjL0lAp4EpmN24kTZi3uE552hPSSMstfxHRq+hq9ofQuv0d+hl0g9wqiiZULGJ4mw4AMolWh+9o= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850231; c=relaxed/simple; bh=javgIbxkE1+7A6rhREq95g8HCMcpsCkLIkqCYQtKuUs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=tP4gOAI9Geupn26mWPq72/2VtdCYln56cZYgYgyoJCZ8c/QJbWCTY8f6lHbAeATTnNu8hCBp4jqXGAG4G06dMNeiGrQOUNDwB3HLz3mm7o0aSdckZ0+7wcBTTm0J3PWaywyW+MMKeKq6yw5233n/vnmUnoXEoOE88GD4c4mM2UA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=jlUaS+ys; arc=none smtp.client-ip=209.85.166.180 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="jlUaS+ys" Received: by mail-il1-f180.google.com with SMTP id e9e14a558f8ab-36a34b68277so125625ab.0 for ; Thu, 11 Apr 2024 08:43:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850229; x=1713455029; 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=o0Ldb0OWw+BFeSwp6J+TFEGOy1nUuoCa5jXwSLo8ftE=; b=jlUaS+ysKpGyGbjPnX1KzAVsrQoq7ruz0hsgvJu6eSgczJRg3kwhDTIpOQAmjz/4uV Q9beO9h3Y9n5apuWyGxBi/+XTjG4viX2KnrkmjHUFpMRzoAgDgK7Q64dE/jf4knvV2oi lA8dXwcX/78D1sV3skIrZgC1E5U13lDQmx/OKZMO/fO2YcmHgrBQGDaiyOiVUWoH3sK9 AuXW7aokg8l0h+c2lWSAnoDmZ2IyxAejzGp8qvTkIKMVJN8k7xXcyFip73dLRGxkjtru R7IFfgLa6Ce0c1SM1A22PnCdQRp8sV0sWPnrJXpds8u2BfqqvOVPMf3xfkiKsdq8NSKF peHw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850229; x=1713455029; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=o0Ldb0OWw+BFeSwp6J+TFEGOy1nUuoCa5jXwSLo8ftE=; b=f/ioS8ZHU+YVCiTbvopJYfI4il/fqagyZLYrr1zJtubNoyBHELuWgzyzKENVKtT1ub +P+LeweQew3YnI7X+7bd8n2WEu7TPER139bgH4ddQnaNsDlTnDrITTK0M52qVNCNX/uT q8q/2p/qlTa/JUVRx1kvoZaufsaL7/UgklovULUS4EMW2AokPgviLZ/Yq5+LOIMYQWRd ofwKiwH6LkVB7C5jD5Jp4wGcbIlLnxOfCRp8xqNBFLCbWuy0O0WfB399sLyAJg4z+qa7 TLJZM7Y1+/wJ5YIxas1zRAWoPmx/U9stl1CBDiqJhnND4GaG2VJwl5UkOQ8vyXdKme5s jOVQ== X-Gm-Message-State: AOJu0YxwXIklL/GkCZp68r9tTNjtAzSa/fQPClvZWhRRfpT7we18W4+a N424XpWuICEVabhoaYDbyATkMi9B6aqLm4+WlKkejUoXM9Buy9tzCNtxHeXyLYxLvfDSGYBt6xn c X-Google-Smtp-Source: AGHT+IFpFHSz7Hea4rg3qKqsQ1AOKmrfuLzFkj77vfljNyXFRiMumTJa70jT/Ytbn9tM/hLjQxdNqA== X-Received: by 2002:a6b:6605:0:b0:7d4:1dae:da1a with SMTP id a5-20020a6b6605000000b007d41daeda1amr166987ioc.2.1712850228798; Thu, 11 Apr 2024 08:43:48 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.43.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:43:47 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 435/437] fs: kill off non-iter variants of simple_attr_{read,write}* Date: Thu, 11 Apr 2024 09:19:35 -0600 Message-ID: <20240411153126.16201-436-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" They are no longer used, kill them with fire. Signed-off-by: Jens Axboe --- fs/libfs.c | 89 ---------------------------------------------- include/linux/fs.h | 6 ---- 2 files changed, 95 deletions(-) diff --git a/fs/libfs.c b/fs/libfs.c index 56b404ad4cfb..74159f63334e 100644 --- a/fs/libfs.c +++ b/fs/libfs.c @@ -1337,44 +1337,6 @@ int simple_attr_release(struct inode *inode, struct = file *file) } EXPORT_SYMBOL_GPL(simple_attr_release); /* GPL-only? This? Really? */ =20 -/* read from the buffer that is filled with the get function */ -ssize_t simple_attr_read(struct file *file, char __user *buf, - size_t len, loff_t *ppos) -{ - struct simple_attr *attr; - size_t size; - ssize_t ret; - - attr =3D file->private_data; - - if (!attr->get) - return -EACCES; - - ret =3D mutex_lock_interruptible(&attr->mutex); - if (ret) - return ret; - - if (*ppos && attr->get_buf[0]) { - /* continued read */ - size =3D strlen(attr->get_buf); - } else { - /* first read */ - u64 val; - ret =3D attr->get(attr->data, &val); - if (ret) - goto out; - - size =3D scnprintf(attr->get_buf, sizeof(attr->get_buf), - attr->fmt, (unsigned long long)val); - } - - ret =3D simple_read_from_buffer(buf, len, ppos, attr->get_buf, size); -out: - mutex_unlock(&attr->mutex); - return ret; -} -EXPORT_SYMBOL_GPL(simple_attr_read); - /* read from the buffer that is filled with the get function */ ssize_t simple_attr_read_iter(struct kiocb *iocb, struct iov_iter *to) { @@ -1462,57 +1424,6 @@ ssize_t simple_attr_write_iter_signed(struct kiocb *= iocb, struct iov_iter *from) } EXPORT_SYMBOL_GPL(simple_attr_write_iter_signed); =20 -/* interpret the buffer as a number to call the set function with */ -static ssize_t simple_attr_write_xsigned(struct file *file, const char __u= ser *buf, - size_t len, loff_t *ppos, bool is_signed) -{ - struct simple_attr *attr; - unsigned long long val; - size_t size; - ssize_t ret; - - attr =3D file->private_data; - if (!attr->set) - return -EACCES; - - ret =3D mutex_lock_interruptible(&attr->mutex); - if (ret) - return ret; - - ret =3D -EFAULT; - size =3D min(sizeof(attr->set_buf) - 1, len); - if (copy_from_user(attr->set_buf, buf, size)) - goto out; - - attr->set_buf[size] =3D '\0'; - if (is_signed) - ret =3D kstrtoll(attr->set_buf, 0, &val); - else - ret =3D kstrtoull(attr->set_buf, 0, &val); - if (ret) - goto out; - ret =3D attr->set(attr->data, val); - if (ret =3D=3D 0) - ret =3D len; /* on success, claim we got the whole input */ -out: - mutex_unlock(&attr->mutex); - return ret; -} - -ssize_t simple_attr_write(struct file *file, const char __user *buf, - size_t len, loff_t *ppos) -{ - return simple_attr_write_xsigned(file, buf, len, ppos, false); -} -EXPORT_SYMBOL_GPL(simple_attr_write); - -ssize_t simple_attr_write_signed(struct file *file, const char __user *buf, - size_t len, loff_t *ppos) -{ - return simple_attr_write_xsigned(file, buf, len, ppos, true); -} -EXPORT_SYMBOL_GPL(simple_attr_write_signed); - /** * generic_encode_ino32_fh - generic export_operations->encode_fh function * @inode: the object to encode diff --git a/include/linux/fs.h b/include/linux/fs.h index 85db7dde4778..55fc02b99cf6 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -3552,12 +3552,6 @@ int simple_attr_open(struct inode *inode, struct fil= e *file, int (*get)(void *, u64 *), int (*set)(void *, u64), const char *fmt); int simple_attr_release(struct inode *inode, struct file *file); -ssize_t simple_attr_read(struct file *file, char __user *buf, - size_t len, loff_t *ppos); -ssize_t simple_attr_write(struct file *file, const char __user *buf, - size_t len, loff_t *ppos); -ssize_t simple_attr_write_signed(struct file *file, const char __user *buf, - size_t len, loff_t *ppos); ssize_t simple_attr_read_iter(struct kiocb *iocb, struct iov_iter *to); ssize_t simple_attr_write_iter(struct kiocb *iocb, struct iov_iter *from); ssize_t simple_attr_write_iter_signed(struct kiocb *iocb, struct iov_iter = *from); --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f45.google.com (mail-io1-f45.google.com [209.85.166.45]) (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 5712C204A10 for ; Thu, 11 Apr 2024 15:43:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850232; cv=none; b=pZQq7F2bCATcGzOqGZkW4NCrA74UMpWwIMhRmJMLXJGD3RHYq7B+NWcXMyYV0wy2YzMfqTcN/fh3apirbVkuK1kbC3vzXdP0R6DBf2ROR9Mc/OWj/MPt5cA6fdHbb4qlMxbH21ioRP7qAflPbw+YMJ2m7HCkfoprakJTtIwiaAg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850232; c=relaxed/simple; bh=UMggqosULg5752cqa95i9iJARi5Q6wzh/nFYd55Lugg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=gXgdizVSEprlRmVOej7ZDz84XJnVgRwcwqmpBmvMrKuPSt7gQ2NSYCMGsqqZWY2X5TA4JhjbWiUyOiWQ6qoHsLhW0J3SWQzRK+gsD8fN3ZlwoKo1uHduKOUJl1nwAduEdEclfglPt2nsXp+x81LTZFgPrnXKKpdZIIkAiphU5sE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=eC1tdv7U; arc=none smtp.client-ip=209.85.166.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="eC1tdv7U" Received: by mail-io1-f45.google.com with SMTP id ca18e2360f4ac-7c8e4c0412dso69708039f.1 for ; Thu, 11 Apr 2024 08:43:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850230; x=1713455030; 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=y+zMONw+XuavXi4H+iqiLRXmWKO3JrdzsvcOsYY+R2U=; b=eC1tdv7UkL5/5SVazBe5jYQD2kRMzwVhKYunXeWVWHgQZSRteUxug4q2tS0ggkhEbH k9BiSX53FUE7J28+5So9NfY9gVVxrZAySruiI6cVL5YVMwoS7kKXBj/3SiYm0Ryg5ylp ZOwDRcDOvgv5XXGgrxwlXnfz/xZcP5MOLO2DRgswmG+SF/RK0ifcUWju3adhMEusW14Q 8vR5nr/BcOLLmCk7vp1LuRRXYpb2zBh7BpR+071LxcoU801FsSR3tDsTGT+nOou6DlFE BfeFp9CmitwB3d+MTl8zcBXu2vlRGwcKMIhKPQjk5a9Uf1q+nsw/feVtMEejwyih7mGz /JDA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850230; x=1713455030; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=y+zMONw+XuavXi4H+iqiLRXmWKO3JrdzsvcOsYY+R2U=; b=QuPXcKLjAWXIFsK3x8GC8MSlidL1JEYoZyy3/q7z5A3hJhkq7b2t1K321ciZ4AY2ud 9YXcnnEyC22LQIb22YKg9XbyNTAuk1ZAGvLXU6hI5b/V1td+Ms+V6a5Pic8SxrSeggwr wLXK1+bhMIDaqwW3g1bxqYsHHjUtVRbKRo3ytVVxmRv+V49gXh3ZURNSz3/QiWDZl5cT i7OMd67mdcOKM1yCHMRUm+R7CjkESM7nqJU0dyGhInqwSkYNdWYQckZBnLdxXJSrmF6j Svtv8//a4fiH7pIeXl2BLK2ksj2OH2xP1iTx1xGuGgAApxxuC1TUkthXFHXWbQl8TpcM lYsA== X-Gm-Message-State: AOJu0YyvKdmV9RlvMJY83CNvdp9uVE4DvZLnghydZ66bm6RnNIAjotH1 pqZlUfSChVfPMRoJbXRrwyPG1nlXAsV7rSi2wofZnxXRjqdRCUMqXG3k7qYH6HqlllgcuXH37ax N X-Google-Smtp-Source: AGHT+IFX/j1GBEWVL2id0KYwira3udzeGr7D/E9GmGrm8vmPN9R5UdjIjkOlECFdtNJ2YoIDMDqY0g== X-Received: by 2002:a6b:7b05:0:b0:7d6:60dc:bc8e with SMTP id l5-20020a6b7b05000000b007d660dcbc8emr212988iop.1.1712850229998; Thu, 11 Apr 2024 08:43:49 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.43.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:43:49 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 436/437] kstrtox: remove (now) dead helpers Date: Thu, 11 Apr 2024 09:19:36 -0600 Message-ID: <20240411153126.16201-437-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" This drops: kstrtoll_from_user() kstrtol_from_user() kstrtouint_from_user() kstrtou16_from_user() kstrtos16_from_user() kstrtos8_from_user() kstrtou64_from_user() kstrtos64_from_user() kstrtou32_from_user() kstrtos32_from_user() as they are no longer used in the code base. Signed-off-by: Jens Axboe --- include/linux/kstrtox.h | 26 -------------------------- lib/kstrtox.c | 6 ------ 2 files changed, 32 deletions(-) diff --git a/include/linux/kstrtox.h b/include/linux/kstrtox.h index 229e0162849a..2fa469860c42 100644 --- a/include/linux/kstrtox.h +++ b/include/linux/kstrtox.h @@ -98,15 +98,9 @@ int __must_check kstrtos8(const char *s, unsigned int ba= se, s8 *res); int __must_check kstrtobool(const char *s, bool *res); =20 int __must_check kstrtoull_from_user(const char __user *s, size_t count, u= nsigned int base, unsigned long long *res); -int __must_check kstrtoll_from_user(const char __user *s, size_t count, un= signed int base, long long *res); int __must_check kstrtoul_from_user(const char __user *s, size_t count, un= signed int base, unsigned long *res); -int __must_check kstrtol_from_user(const char __user *s, size_t count, uns= igned int base, long *res); -int __must_check kstrtouint_from_user(const char __user *s, size_t count, = unsigned int base, unsigned int *res); int __must_check kstrtoint_from_user(const char __user *s, size_t count, u= nsigned int base, int *res); -int __must_check kstrtou16_from_user(const char __user *s, size_t count, u= nsigned int base, u16 *res); -int __must_check kstrtos16_from_user(const char __user *s, size_t count, u= nsigned int base, s16 *res); int __must_check kstrtou8_from_user(const char __user *s, size_t count, un= signed int base, u8 *res); -int __must_check kstrtos8_from_user(const char __user *s, size_t count, un= signed int base, s8 *res); int __must_check kstrtobool_from_user(const char __user *s, size_t count, = bool *res); =20 struct iov_iter; @@ -119,36 +113,16 @@ int __must_check kstrtou16_from_iter(struct iov_iter = *s, size_t count, unsigned int __must_check kstrtou8_from_iter(struct iov_iter *s, size_t count, unsi= gned int base, u8 *res); int __must_check kstrtobool_from_iter(struct iov_iter *src, size_t count, = bool *res); =20 -static inline int __must_check kstrtou64_from_user(const char __user *s, s= ize_t count, unsigned int base, u64 *res) -{ - return kstrtoull_from_user(s, count, base, res); -} - static inline int __must_check kstrtou64_from_iter(struct iov_iter *src, s= ize_t count, unsigned int base, u64 *res) { return kstrtoull_from_iter(src, count, base, res); } =20 -static inline int __must_check kstrtos64_from_user(const char __user *s, s= ize_t count, unsigned int base, s64 *res) -{ - return kstrtoll_from_user(s, count, base, res); -} - -static inline int __must_check kstrtou32_from_user(const char __user *s, s= ize_t count, unsigned int base, u32 *res) -{ - return kstrtouint_from_user(s, count, base, res); -} - static inline int __must_check kstrtou32_from_iter(struct iov_iter *src, s= ize_t count, unsigned int base, u32 *res) { return kstrtouint_from_iter(src, count, base, res); } =20 -static inline int __must_check kstrtos32_from_user(const char __user *s, s= ize_t count, unsigned int base, s32 *res) -{ - return kstrtoint_from_user(s, count, base, res); -} - static inline int __must_check kstrtos32_from_iter(struct iov_iter *src, s= ize_t count, unsigned int base, s32 *res) { return kstrtoint_from_iter(src, count, base, res); diff --git a/lib/kstrtox.c b/lib/kstrtox.c index 111231cb4148..e8a603954396 100644 --- a/lib/kstrtox.c +++ b/lib/kstrtox.c @@ -438,15 +438,9 @@ int f(const char __user *s, size_t count, unsigned int= base, type *res) \ EXPORT_SYMBOL(f) =20 kstrto_from_user(kstrtoull_from_user, kstrtoull, unsigned long long); -kstrto_from_user(kstrtoll_from_user, kstrtoll, long long); kstrto_from_user(kstrtoul_from_user, kstrtoul, unsigned long); -kstrto_from_user(kstrtol_from_user, kstrtol, long); -kstrto_from_user(kstrtouint_from_user, kstrtouint, unsigned int); kstrto_from_user(kstrtoint_from_user, kstrtoint, int); -kstrto_from_user(kstrtou16_from_user, kstrtou16, u16); -kstrto_from_user(kstrtos16_from_user, kstrtos16, s16); kstrto_from_user(kstrtou8_from_user, kstrtou8, u8); -kstrto_from_user(kstrtos8_from_user, kstrtos8, s8); =20 #define kstrto_from_iter(f, g, type) \ int f(struct iov_iter *s, size_t count, unsigned int base, type *res) \ --=20 2.43.0 From nobody Sat Feb 7 07:48:38 2026 Received: from mail-io1-f41.google.com (mail-io1-f41.google.com [209.85.166.41]) (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 E91E6205371 for ; Thu, 11 Apr 2024 15:43:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850234; cv=none; b=TMnpzhODnLVtV1t5Sxl38WCYQ2a8J7RtN6GnRhaWY2W/8gY3piWMdMjDnYBrfC2NNoSF4SaskbIsTJsGerhm4nGuv6rWCp6T8629ezoe2HorOx4oamrapMA2uKbQOPXmpgiw5TQREX6Gt/YSmXK1ed47+w7dvo93nDLssPdK0Cs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712850234; c=relaxed/simple; bh=rHXTRstvyXvEinfQqa+odOLroN/rU5lJPdVIxyZIyKs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ZosiWhPCIOqI9G/JQ8MiF0zmLLR2VQWZqYA40i788SOMjvuwcQ0MrcNIcNru79bljr+7GRspM25HOBv+KG/c6uQORHdyMVGFbMpu88vBcWGWJ5Ew/VJOKRYLtXvZmdvzKxbGu/qvyoYN0pXW8XAzWq0t4AmFRUsVz89gYTSU7VQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk; spf=pass smtp.mailfrom=kernel.dk; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b=yQvxLmy1; arc=none smtp.client-ip=209.85.166.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.dk Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kernel.dk Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel-dk.20230601.gappssmtp.com header.i=@kernel-dk.20230601.gappssmtp.com header.b="yQvxLmy1" Received: by mail-io1-f41.google.com with SMTP id ca18e2360f4ac-7d6112ba6baso58299439f.1 for ; Thu, 11 Apr 2024 08:43:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1712850232; x=1713455032; 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=tbAtfgGgTyyTwkWcoE+4CccCugNods6xg7l8RNoygg4=; b=yQvxLmy1ErGfacFHBCW9Lauf5JyPQcLVVPhTSSxKqSbv3+ID3sKrG8PJ4Rdke3Tjpz P76WV1De9xQwuSyHOFA7S6aSQfuyWKkBmLMch3zzQe/KXf98IjinSde5eHZjWTHvgI9E o9LpgOjEtV4DjnjtUOarWB4yVsKj3kK0NFw2WQN+1HjHB6+1fF0oJ3QjeTYbKui0+R2j 07N6VjHH7N1aZu9nlaJIRo6JvH2dhhudxdA9H3XvjK2ZHeyaMriYQpH79uG6qSQDhUQ2 ma9QfWuJfNdpMl2NqkTeTKDa15ax0d3GrhDk7a0AjKrxvrB2FWasmE81ncuyZC6sGEcU PUhA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712850232; x=1713455032; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=tbAtfgGgTyyTwkWcoE+4CccCugNods6xg7l8RNoygg4=; b=nKOCt+woni+9aOzB75vRMnGaQxOZ2zjVLdQLI0Op78alrXIT58FLafkSmhs5An9iOu 8XnBNtsVm6FU3leuvG8a+BBCB5oxhzqZB/YQpkX0ehsBnjWyz8G3GoIDJaoADWjzhQ7l ch5KyH87Ud57QYawuJapIJkbhRxNEN+NHRMUz4BYbb3DsjiNx/8Ji1uUcXRyNDDqB9z4 PRp3HWFKvWFHUXUfKJ3j9YRWwCzy5QqQdEwKPyltnm1dClAnfTY5Yqo1ZxbnbLmVsAHv AZm+4e5gMvtKbUF9Agvpymj9N+P37M8rXnK2hSla9Xxbt8xgR67Tw4ztuuL1mZnL4TxJ vjIw== X-Gm-Message-State: AOJu0YxOj+KvLDe0mePmTbHvTFn1UlodiQ7VTfgGwAiP0U4LeL1eOE5+ E+zZgGMiJIqmtvR69Z8rCitl5ZL4w9ia8N2Lwb+h6kFAZjMqIfX7H2H4zNBX9/hix7mQcdR531b 5 X-Google-Smtp-Source: AGHT+IE0aGaJWy/7ZBF3nfd+nSqjwxdw1Z/v0YruBvVEJItBCkKs5fN5rzDLIXWQ8naoeKXod1tEzw== X-Received: by 2002:a6b:f312:0:b0:7d5:de23:13a9 with SMTP id m18-20020a6bf312000000b007d5de2313a9mr183198ioh.1.1712850231824; Thu, 11 Apr 2024 08:43:51 -0700 (PDT) Received: from localhost.localdomain ([96.43.243.2]) by smtp.gmail.com with ESMTPSA id jc25-20020a056638891900b0047f14b7f6c0sm457056jab.5.2024.04.11.08.43.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:43:50 -0700 (PDT) From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: Jens Axboe Subject: [PATCH 437/437] REMOVE ->read() and ->write() Date: Thu, 11 Apr 2024 09:19:37 -0600 Message-ID: <20240411153126.16201-438-axboe@kernel.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240411153126.16201-1-axboe@kernel.dk> References: <20240411153126.16201-1-axboe@kernel.dk> 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" Test patch just to check coverage. Signed-off-by: Jens Axboe --- fs/file_table.c | 4 +-- fs/open.c | 4 +-- fs/read_write.c | 16 +++-------- include/linux/fs.h | 2 -- io_uring/rw.c | 70 ---------------------------------------------- 5 files changed, 8 insertions(+), 88 deletions(-) diff --git a/fs/file_table.c b/fs/file_table.c index 4f03beed4737..54cf21766633 100644 --- a/fs/file_table.c +++ b/fs/file_table.c @@ -292,10 +292,10 @@ static void file_init_path(struct file *file, const s= truct path *path, if (fop->llseek) file->f_mode |=3D FMODE_LSEEK; if ((file->f_mode & FMODE_READ) && - likely(fop->read || fop->read_iter)) + likely(fop->read_iter)) file->f_mode |=3D FMODE_CAN_READ; if ((file->f_mode & FMODE_WRITE) && - likely(fop->write || fop->write_iter)) + likely(fop->write_iter)) file->f_mode |=3D FMODE_CAN_WRITE; file->f_iocb_flags =3D iocb_flags(file); file->f_mode |=3D FMODE_OPENED; diff --git a/fs/open.c b/fs/open.c index ee8460c83c77..63caada91fc5 100644 --- a/fs/open.c +++ b/fs/open.c @@ -958,10 +958,10 @@ static int do_dentry_open(struct file *f, } f->f_mode |=3D FMODE_OPENED; if ((f->f_mode & FMODE_READ) && - likely(f->f_op->read || f->f_op->read_iter)) + likely(f->f_op->read_iter)) f->f_mode |=3D FMODE_CAN_READ; if ((f->f_mode & FMODE_WRITE) && - likely(f->f_op->write || f->f_op->write_iter)) + likely(f->f_op->write_iter)) f->f_mode |=3D FMODE_CAN_WRITE; if ((f->f_mode & FMODE_LSEEK) && !f->f_op->llseek) f->f_mode &=3D ~FMODE_LSEEK; diff --git a/fs/read_write.c b/fs/read_write.c index efddd395d436..caec0998f28a 100644 --- a/fs/read_write.c +++ b/fs/read_write.c @@ -425,7 +425,7 @@ ssize_t __kernel_read(struct file *file, void *buf, siz= e_t count, loff_t *pos) * Also fail if ->read_iter and ->read are both wired up as that * implies very convoluted semantics. */ - if (unlikely(!file->f_op->read_iter || file->f_op->read)) + if (unlikely(!file->f_op->read_iter)) return warn_unsupported(file, "read"); =20 init_sync_kiocb(&kiocb, file); @@ -470,9 +470,7 @@ ssize_t vfs_read(struct file *file, char __user *buf, s= ize_t count, loff_t *pos) if (count > MAX_RW_COUNT) count =3D MAX_RW_COUNT; =20 - if (file->f_op->read) - ret =3D file->f_op->read(file, buf, count, pos); - else if (file->f_op->read_iter) + if (file->f_op->read_iter) ret =3D new_sync_read(file, buf, count, pos); else ret =3D -EINVAL; @@ -515,7 +513,7 @@ ssize_t __kernel_write_iter(struct file *file, struct i= ov_iter *from, loff_t *po * Also fail if ->write_iter and ->write are both wired up as that * implies very convoluted semantics. */ - if (unlikely(!file->f_op->write_iter || file->f_op->write)) + if (unlikely(!file->f_op->write_iter)) return warn_unsupported(file, "write"); =20 init_sync_kiocb(&kiocb, file); @@ -584,9 +582,7 @@ ssize_t vfs_write(struct file *file, const char __user = *buf, size_t count, loff_ if (count > MAX_RW_COUNT) count =3D MAX_RW_COUNT; file_start_write(file); - if (file->f_op->write) - ret =3D file->f_op->write(file, buf, count, pos); - else if (file->f_op->write_iter) + if (file->f_op->write_iter) ret =3D new_sync_write(file, buf, count, pos); else ret =3D -EINVAL; @@ -972,8 +968,6 @@ static ssize_t vfs_readv(struct file *file, const struc= t iovec __user *vec, =20 if (file->f_op->read_iter) ret =3D do_iter_readv_writev(file, &iter, pos, READ, flags); - else - ret =3D do_loop_readv(file, &iter, pos, flags, file->f_op->read); out: if (ret >=3D 0) fsnotify_access(file); @@ -1011,8 +1005,6 @@ static ssize_t vfs_writev(struct file *file, const st= ruct iovec __user *vec, file_start_write(file); if (file->f_op->write_iter) ret =3D do_iter_readv_writev(file, &iter, pos, WRITE, flags); - else - ret =3D do_loop_writev(file, &iter, pos, flags, file->f_op->write); if (ret > 0) fsnotify_modify(file); file_end_write(file); diff --git a/include/linux/fs.h b/include/linux/fs.h index 55fc02b99cf6..7606ed6b9dbc 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -2009,8 +2009,6 @@ struct offset_ctx; struct file_operations { struct module *owner; loff_t (*llseek) (struct file *, loff_t, int); - ssize_t (*read) (struct file *, char __user *, size_t, loff_t *); - ssize_t (*write) (struct file *, const char __user *, size_t, loff_t *); ssize_t (*read_iter) (struct kiocb *, struct iov_iter *); ssize_t (*write_iter) (struct kiocb *, struct iov_iter *); int (*iopoll)(struct kiocb *kiocb, struct io_comp_batch *, diff --git a/io_uring/rw.c b/io_uring/rw.c index c8d48287439e..9178b1bccb8b 100644 --- a/io_uring/rw.c +++ b/io_uring/rw.c @@ -474,72 +474,6 @@ static inline loff_t *io_kiocb_ppos(struct kiocb *kioc= b) return (kiocb->ki_filp->f_mode & FMODE_STREAM) ? NULL : &kiocb->ki_pos; } =20 -/* - * For files that don't have ->read_iter() and ->write_iter(), handle them - * by looping over ->read() or ->write() manually. - */ -static ssize_t loop_rw_iter(int ddir, struct io_rw *rw, struct iov_iter *i= ter) -{ - struct kiocb *kiocb =3D &rw->kiocb; - struct file *file =3D kiocb->ki_filp; - ssize_t ret =3D 0; - loff_t *ppos; - - /* - * Don't support polled IO through this interface, and we can't - * support non-blocking either. For the latter, this just causes - * the kiocb to be handled from an async context. - */ - if (kiocb->ki_flags & IOCB_HIPRI) - return -EOPNOTSUPP; - if ((kiocb->ki_flags & IOCB_NOWAIT) && - !(kiocb->ki_filp->f_flags & O_NONBLOCK)) - return -EAGAIN; - - ppos =3D io_kiocb_ppos(kiocb); - - while (iov_iter_count(iter)) { - void __user *addr; - size_t len; - ssize_t nr; - - if (iter_is_ubuf(iter)) { - addr =3D iter->ubuf + iter->iov_offset; - len =3D iov_iter_count(iter); - } else if (!iov_iter_is_bvec(iter)) { - addr =3D iter_iov_addr(iter); - len =3D iter_iov_len(iter); - } else { - addr =3D u64_to_user_ptr(rw->addr); - len =3D rw->len; - } - - if (ddir =3D=3D READ) - nr =3D file->f_op->read(file, addr, len, ppos); - else - nr =3D file->f_op->write(file, addr, len, ppos); - - if (nr < 0) { - if (!ret) - ret =3D nr; - break; - } - ret +=3D nr; - if (!iov_iter_is_bvec(iter)) { - iov_iter_advance(iter, nr); - } else { - rw->addr +=3D nr; - rw->len -=3D nr; - if (!rw->len) - break; - } - if (nr !=3D len) - break; - } - - return ret; -} - static void io_req_map_rw(struct io_kiocb *req, const struct iovec *iovec, const struct iovec *fast_iov, struct iov_iter *iter) { @@ -702,8 +636,6 @@ static inline int io_iter_do_read(struct io_rw *rw, str= uct iov_iter *iter) =20 if (likely(file->f_op->read_iter)) return call_read_iter(file, &rw->kiocb, iter); - else if (file->f_op->read) - return loop_rw_iter(READ, rw, iter); else return -EINVAL; } @@ -1055,8 +987,6 @@ int io_write(struct io_kiocb *req, unsigned int issue_= flags) =20 if (likely(req->file->f_op->write_iter)) ret2 =3D call_write_iter(req->file, kiocb, &s->iter); - else if (req->file->f_op->write) - ret2 =3D loop_rw_iter(WRITE, rw, &s->iter); else ret2 =3D -EINVAL; =20 --=20 2.43.0