From: Thomas Zimmermann <tzimmermann@suse.de>
To: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: maarten.lankhorst@linux.intel.com, mripard@kernel.org,
airlied@gmail.com, daniel@ffwll.ch, javierm@redhat.com,
deller@gmx.de, sudipm.mukherjee@gmail.com,
teddy.wang@siliconmotion.com, dri-devel@lists.freedesktop.org,
linux-fbdev@vger.kernel.org
Subject: Re: [PATCH 5/6] fbdev: Move CFB read and write code into helper functions
Date: Wed, 26 Apr 2023 17:06:27 +0200 [thread overview]
Message-ID: <1d81e4cc-5079-12a7-4cf5-c31879396e56@suse.de> (raw)
In-Reply-To: <CAMuHMdU-_w9yQHYhOCD3cz4CEY6ag-dTXjuHSLnzty0hAMBbXw@mail.gmail.com>
[-- Attachment #1.1: Type: text/plain, Size: 3351 bytes --]
Hi
Am 26.04.23 um 17:01 schrieb Geert Uytterhoeven:
> Hi Thomas,
>
> On Tue, Apr 25, 2023 at 4:28 PM Thomas Zimmermann <tzimmermann@suse.de> wrote:
>> Move the existing CFB read and write code for I/O memory into
>> the new helpers fb_cfb_read() and fb_cfb_write(). Make them the
>> default fp_ops. No functional changes.
>>
>> Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
>> ---
>> drivers/video/fbdev/core/Makefile | 2 +-
>> drivers/video/fbdev/core/fb_cfb_fops.c | 126 +++++++++++++++++++++++++
>> drivers/video/fbdev/core/fbmem.c | 113 +---------------------
>> include/linux/fb.h | 10 ++
>> 4 files changed, 139 insertions(+), 112 deletions(-)
>> create mode 100644 drivers/video/fbdev/core/fb_cfb_fops.c
>
> While the general idea is fine, please do not call any of this "cfb",
> as it is not related to chunky color frame buffer formats.
> All of these operate on the raw frame buffer contents.
Shall I call it fb_raw_() or fb_io_()?
CFB is used by the drawing helpers, which are usually used together with
this code. Hence the current naming.
Best regards
Thomas
>
>> --- /dev/null
>> +++ b/drivers/video/fbdev/core/fb_cfb_fops.c
>> @@ -0,0 +1,126 @@
>> +// SPDX-License-Identifier: GPL-2.0
>> +
>> +#include <linux/fb.h>
>> +#include <linux/module.h>
>> +#include <linux/uaccess.h>
>> +
>> +ssize_t fb_cfb_read(struct fb_info *info, char __user *buf, size_t count, loff_t *ppos)
>> +{
>
> [...]
>
>> + while (count) {
>> + c = (count > PAGE_SIZE) ? PAGE_SIZE : count;
>> + dst = buffer;
>> + fb_memcpy_fromfb(dst, src, c);
>> + dst += c;
>> + src += c;
>> +
>> + if (copy_to_user(buf, buffer, c)) {
>
> So here's still the buggy copy_to_user() handling, copied from fb_read().
>
>> + err = -EFAULT;
>> + break;
>> + }
>> + *ppos += c;
>> + buf += c;
>> + cnt += c;
>> + count -= c;
>> + }
>> +
>> + kfree(buffer);
>> +
>> + return cnt ? cnt : err;
>> +}
>> +EXPORT_SYMBOL(fb_cfb_read);
>> +
>> +ssize_t fb_cfb_write(struct fb_info *info, const char __user *buf, size_t count, loff_t *ppos)
>> +{
>
> [...]
>
>> + while (count) {
>> + c = (count > PAGE_SIZE) ? PAGE_SIZE : count;
>> + src = buffer;
>> +
>> + if (copy_from_user(src, buf, c)) {
>
> And copy_from_user(), too...
>
>> + err = -EFAULT;
>> + break;
>> + }
>> +
>> + fb_memcpy_tofb(dst, src, c);
>> + dst += c;
>> + src += c;
>> + *ppos += c;
>> + buf += c;
>> + cnt += c;
>> + count -= c;
>> + }
>> +
>> + kfree(buffer);
>> +
>> + return (cnt) ? cnt : err;
>> +}
>
> Gr{oetje,eeting}s,
>
> Geert
>
--
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Frankenstrasse 146, 90461 Nuernberg, Germany
GF: Ivo Totev, Andrew Myers, Andrew McDonald, Boudien Moerman
HRB 36809 (AG Nuernberg)
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 840 bytes --]
next prev parent reply other threads:[~2023-04-26 15:07 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-04-25 14:28 [PATCH 0/6] drm,fbdev: Use fbdev's I/O helpers Thomas Zimmermann
2023-04-25 14:28 ` [PATCH 1/6] fbdev: Return number of bytes read or written Thomas Zimmermann
2023-04-25 16:15 ` Javier Martinez Canillas
2023-04-26 9:43 ` [1/6] " Sui Jingfeng
2023-04-26 14:41 ` [PATCH 1/6] " Geert Uytterhoeven
2023-04-26 15:01 ` Thomas Zimmermann
2023-04-25 14:28 ` [PATCH 2/6] fbdev: Use screen_buffer in fb_sys_{read,write}() Thomas Zimmermann
2023-04-25 16:35 ` Javier Martinez Canillas
2023-04-26 14:14 ` Thomas Zimmermann
2023-04-26 14:43 ` Geert Uytterhoeven
2023-04-26 9:47 ` [2/6] " Sui Jingfeng
2023-04-25 14:28 ` [PATCH 3/6] fbdev: Don't re-validate info->state in fb_ops implementations Thomas Zimmermann
2023-04-25 16:38 ` Javier Martinez Canillas
2023-04-26 9:49 ` [3/6] " Sui Jingfeng
2023-04-26 14:49 ` [PATCH 3/6] " Geert Uytterhoeven
2023-04-26 15:07 ` Thomas Zimmermann
2023-04-25 14:28 ` [PATCH 4/6] fbdev: Validate info->screen_{base,buffer} " Thomas Zimmermann
2023-04-25 16:39 ` Javier Martinez Canillas
2023-04-26 10:24 ` [4/6] fbdev: Validate info->screen_{base, buffer} " Sui Jingfeng
2023-04-26 14:56 ` [PATCH 4/6] fbdev: Validate info->screen_{base,buffer} " Geert Uytterhoeven
2023-04-27 13:54 ` Thomas Zimmermann
2023-04-25 14:28 ` [PATCH 5/6] fbdev: Move CFB read and write code into helper functions Thomas Zimmermann
2023-04-25 16:47 ` Javier Martinez Canillas
2023-04-26 5:16 ` kernel test robot
2023-04-26 14:24 ` Thomas Zimmermann
2023-04-26 6:07 ` kernel test robot
2023-04-26 6:47 ` kernel test robot
2023-04-26 10:25 ` [5/6] " Sui Jingfeng
2023-04-26 15:01 ` [PATCH 5/6] " Geert Uytterhoeven
2023-04-26 15:06 ` Thomas Zimmermann [this message]
2023-04-26 15:21 ` Geert Uytterhoeven
2023-04-28 11:20 ` Thomas Zimmermann
2023-04-28 12:20 ` Geert Uytterhoeven
2023-04-25 14:28 ` [PATCH 6/6] drm/fb-helper: Use fb_{cfb,sys}_{read, write}() Thomas Zimmermann
2023-04-25 16:50 ` Javier Martinez Canillas
2023-04-26 10:26 ` [6/6] " Sui Jingfeng
2023-04-26 15:15 ` [PATCH 6/6] " Geert Uytterhoeven
2023-04-28 11:25 ` Thomas Zimmermann
2023-04-25 19:17 ` [PATCH 0/6] drm,fbdev: Use fbdev's I/O helpers Helge Deller
2023-04-26 10:33 ` Sui Jingfeng
2023-04-26 11:22 ` Thomas Zimmermann
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1d81e4cc-5079-12a7-4cf5-c31879396e56@suse.de \
--to=tzimmermann@suse.de \
--cc=airlied@gmail.com \
--cc=daniel@ffwll.ch \
--cc=deller@gmx.de \
--cc=dri-devel@lists.freedesktop.org \
--cc=geert@linux-m68k.org \
--cc=javierm@redhat.com \
--cc=linux-fbdev@vger.kernel.org \
--cc=maarten.lankhorst@linux.intel.com \
--cc=mripard@kernel.org \
--cc=sudipm.mukherjee@gmail.com \
--cc=teddy.wang@siliconmotion.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).