linux-fbdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
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 --]

  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).