From: Philippe Gerum <rpm@xenomai.org>
To: Jan Kiszka <jan.kiszka@siemens.com>
Cc: xenomai@xenomai.org
Subject: Re: [PATCH v2 3/7] cobalt/kernel: convert to proc_ops
Date: Wed, 07 Apr 2021 12:17:29 +0200 [thread overview]
Message-ID: <87a6qapfeu.fsf@xenomai.org> (raw)
In-Reply-To: <60c2189c-b442-a5c8-d7b7-95804882ef07@siemens.com>
Jan Kiszka <jan.kiszka@siemens.com> writes:
> On 27.03.21 11:19, Philippe Gerum wrote:
>> From: Philippe Gerum <rpm@xenomai.org>
>>
>> Signed-off-by: Philippe Gerum <rpm@xenomai.org>
>> ---
>> .../include/asm-generic/xenomai/wrappers.h | 20 ++++++
>> kernel/cobalt/vfile.c | 26 ++++----
>> kernel/drivers/analogy/device.c | 12 ++--
>> kernel/drivers/can/mscan/rtcan_mscan_proc.c | 12 ++--
>> kernel/drivers/can/rtcan_module.c | 66 +++++++++----------
>> .../drivers/can/sja1000/rtcan_sja1000_proc.c | 12 ++--
>> 6 files changed, 80 insertions(+), 68 deletions(-)
>>
>> diff --git a/kernel/cobalt/include/asm-generic/xenomai/wrappers.h b/kernel/cobalt/include/asm-generic/xenomai/wrappers.h
>> index cd22a8db5..cc0cb0896 100644
>> --- a/kernel/cobalt/include/asm-generic/xenomai/wrappers.h
>> +++ b/kernel/cobalt/include/asm-generic/xenomai/wrappers.h
>> @@ -170,6 +170,26 @@ devm_hwmon_device_register_with_groups(struct device *dev, const char *name,
>> #define __kernel_old_timeval timeval
>> #endif
>>
>> +#if LINUX_VERSION_CODE < KERNEL_VERSION(5,6,0)
>> +#define DEFINE_PROC_OPS(__name, __open, __release, __read, __write) \
>> + struct file_operations __name = { \
>> + .open = (__open), \
>> + .release = (__release), \
>> + .read = (__read), \
>> + .write = (__write), \
>> + .llseek = seq_lseek, \
>> +}
>> +#else
>> +#define DEFINE_PROC_OPS(__name, __open, __release, __read, __write) \
>> + struct proc_ops __name = { \
>> + .proc_open = (__open), \
>> + .proc_release = (__release), \
>> + .proc_read = (__read), \
>> + .proc_write = (__write), \
>> + .proc_lseek = seq_lseek, \
>> +}
>> +#endif
>> +
>> #if LINUX_VERSION_CODE < KERNEL_VERSION(5,8,0)
>> #define old_timespec32 compat_timespec
>> #define old_itimerspec32 compat_itimerspec
>> diff --git a/kernel/cobalt/vfile.c b/kernel/cobalt/vfile.c
>> index f65d46ddf..e9e10ce8d 100644
>> --- a/kernel/cobalt/vfile.c
>> +++ b/kernel/cobalt/vfile.c
>> @@ -340,13 +340,12 @@ ssize_t vfile_snapshot_write(struct file *file, const char __user *buf,
>> return ret;
>> }
>>
>> -static struct file_operations vfile_snapshot_fops = {
>> - .open = vfile_snapshot_open,
>> - .read = seq_read,
>> - .write = vfile_snapshot_write,
>> - .llseek = seq_lseek,
>> - .release = vfile_snapshot_release,
>> -};
>> +static const DEFINE_PROC_OPS(vfile_snapshot_fops,
>> + vfile_snapshot_open,
>> + vfile_snapshot_release,
>> + seq_read,
>> + vfile_snapshot_write
>> +);
>>
>> /**
>> * @fn int xnvfile_init_snapshot(const char *name, struct xnvfile_snapshot *vfile, struct xnvfile_directory *parent)
>> @@ -592,13 +591,12 @@ ssize_t vfile_regular_write(struct file *file, const char __user *buf,
>> return ret;
>> }
>>
>> -static struct file_operations vfile_regular_fops = {
>> - .open = vfile_regular_open,
>> - .read = seq_read,
>> - .write = vfile_regular_write,
>> - .llseek = seq_lseek,
>> - .release = vfile_regular_release,
>> -};
>> +static const DEFINE_PROC_OPS(vfile_regular_fops,
>> + vfile_regular_open,
>> + vfile_regular_release,
>> + seq_read,
>> + vfile_regular_write
>> +);
>>
>> /**
>> * @fn int xnvfile_init_regular(const char *name, struct xnvfile_regular *vfile, struct xnvfile_directory *parent)
>> diff --git a/kernel/drivers/analogy/device.c b/kernel/drivers/analogy/device.c
>> index 160dcf547..6ed588708 100644
>> --- a/kernel/drivers/analogy/device.c
>> +++ b/kernel/drivers/analogy/device.c
>> @@ -95,12 +95,12 @@ static int a4l_proc_transfer_open(struct inode *inode, struct file *file)
>> return single_open(file, a4l_rdproc_transfer, PDE_DATA(inode));
>> }
>>
>> -static const struct file_operations a4l_proc_transfer_ops = {
>> - .open = a4l_proc_transfer_open,
>> - .read = seq_read,
>> - .llseek = seq_lseek,
>> - .release = single_release,
>> -};
>> +static const DEFINE_PROC_OPS(a4l_proc_transfer_ops,
>> + a4l_proc_transfer_open,
>> + single_release,
>> + seq_read,
>> + NULL
>> +);
>>
>> int a4l_proc_attach(struct a4l_device_context * cxt)
>> {
>> diff --git a/kernel/drivers/can/mscan/rtcan_mscan_proc.c b/kernel/drivers/can/mscan/rtcan_mscan_proc.c
>> index 6b54ad4c7..732a02765 100644
>> --- a/kernel/drivers/can/mscan/rtcan_mscan_proc.c
>> +++ b/kernel/drivers/can/mscan/rtcan_mscan_proc.c
>> @@ -114,12 +114,12 @@ static int rtcan_mscan_proc_regs_open(struct inode *inode, struct file *file)
>> return single_open(file, rtcan_mscan_proc_regs, PDE_DATA(inode));
>> }
>>
>> -static const struct file_operations rtcan_mscan_proc_regs_ops = {
>> - .open = rtcan_mscan_proc_regs_open,
>> - .read = seq_read,
>> - .llseek = seq_lseek,
>> - .release = single_release,
>> -};
>> +static const DEFINE_PROC_OPS(rtcan_mscan_proc_regs_ops,
>> + rtcan_mscan_proc_regs_open,
>> + single_elease,
>> + seq_read,
>> + NULL
>> +);
>>
>> int rtcan_mscan_create_proc(struct rtcan_device* dev)
>> {
>> diff --git a/kernel/drivers/can/rtcan_module.c b/kernel/drivers/can/rtcan_module.c
>> index fbc5c35e4..7f3d4c395 100644
>> --- a/kernel/drivers/can/rtcan_module.c
>> +++ b/kernel/drivers/can/rtcan_module.c
>> @@ -157,12 +157,12 @@ static int rtcan_proc_devices_open(struct inode *inode, struct file *file)
>> return single_open(file, rtcan_read_proc_devices, NULL);
>> }
>>
>> -static const struct file_operations rtcan_proc_devices_ops = {
>> - .open = rtcan_proc_devices_open,
>> - .read = seq_read,
>> - .llseek = seq_lseek,
>> - .release = single_release,
>> -};
>> +static const DEFINE_PROC_OPS(rtcan_proc_devices_ops,
>> + rtcan_proc_devices_open,
>> + single_release,
>> + seq_read,
>> + NULL
>> +);
>>
>> static int rtcan_read_proc_sockets(struct seq_file *p, void *data)
>> {
>> @@ -220,13 +220,12 @@ static int rtcan_proc_sockets_open(struct inode *inode, struct file *file)
>> return single_open(file, rtcan_read_proc_sockets, NULL);
>> }
>>
>> -static const struct file_operations rtcan_proc_sockets_ops = {
>> - .open = rtcan_proc_sockets_open,
>> - .read = seq_read,
>> - .llseek = seq_lseek,
>> - .release = single_release,
>> -};
>> -
>> +static const DEFINE_PROC_OPS(rtcan_proc_sockets_ops,
>> + rtcan_proc_sockets_open,
>> + single_release,
>> + seq_read,
>> + NULL
>> +);
>>
>> static int rtcan_read_proc_info(struct seq_file *p, void *data)
>> {
>> @@ -271,14 +270,12 @@ static int rtcan_proc_info_open(struct inode *inode, struct file *file)
>> return single_open(file, rtcan_read_proc_info, PDE_DATA(inode));
>> }
>>
>> -static const struct file_operations rtcan_proc_info_ops = {
>> - .open = rtcan_proc_info_open,
>> - .read = seq_read,
>> - .llseek = seq_lseek,
>> - .release = single_release,
>> -};
>> -
>> -
>> +static const DEFINE_PROC_OPS(rtcan_proc_info_ops,
>> + rtcan_proc_info_open,
>> + single_release,
>> + seq_read,
>> + NULL
>> +);
>>
>> static int rtcan_read_proc_filter(struct seq_file *p, void *data)
>> {
>> @@ -319,14 +316,12 @@ static int rtcan_proc_filter_open(struct inode *inode, struct file *file)
>> return single_open(file, rtcan_read_proc_filter, PDE_DATA(inode));
>> }
>>
>> -static const struct file_operations rtcan_proc_filter_ops = {
>> - .open = rtcan_proc_filter_open,
>> - .read = seq_read,
>> - .llseek = seq_lseek,
>> - .release = single_release,
>> -};
>> -
>> -
>> +static const DEFINE_PROC_OPS(rtcan_proc_filter_ops,
>> + rtcan_proc_filter_open,
>> + single_release,
>> + seq_read,
>> + NULL
>> +);
>>
>> static int rtcan_read_proc_version(struct seq_file *p, void *data)
>> {
>> @@ -341,13 +336,12 @@ static int rtcan_proc_version_open(struct inode *inode, struct file *file)
>> return single_open(file, rtcan_read_proc_version, NULL);
>> }
>>
>> -static const struct file_operations rtcan_proc_version_ops = {
>> - .open = rtcan_proc_version_open,
>> - .read = seq_read,
>> - .llseek = seq_lseek,
>> - .release = single_release,
>> -};
>> -
>> +static const DEFINE_PROC_OPS(rtcan_proc_version_ops,
>> + rtcan_proc_version_open,
>> + single_release,
>> + seq_read,
>> + NULL
>> +);
>>
>> void rtcan_dev_remove_proc(struct rtcan_device* dev)
>> {
>> diff --git a/kernel/drivers/can/sja1000/rtcan_sja1000_proc.c b/kernel/drivers/can/sja1000/rtcan_sja1000_proc.c
>> index b4af8ab2e..0fdee8c37 100644
>> --- a/kernel/drivers/can/sja1000/rtcan_sja1000_proc.c
>> +++ b/kernel/drivers/can/sja1000/rtcan_sja1000_proc.c
>> @@ -50,12 +50,12 @@ static int rtcan_sja_proc_regs_open(struct inode *inode, struct file *file)
>> return single_open(file, rtcan_sja_proc_regs, PDE_DATA(inode));
>> }
>>
>> -static const struct file_operations rtcan_sja_proc_regs_ops = {
>> - .open = rtcan_sja_proc_regs_open,
>> - .read = seq_read,
>> - .llseek = seq_lseek,
>> - .release = single_release,
>> -};
>> +static const DEFINE_PROC_OPS(rtcan_sja_proc_regs_ops,
>> + rtcan_sja_proc_regs_open,
>> + single_release,
>> + seq_read,
>> + NULL
>> +);
>>
>> int rtcan_sja_create_proc(struct rtcan_device* dev)
>> {
>>
>
> This leaves out a4l_proc_devs_ops and a4l_proc_drvs_ops, while
> converting a4l_proc_transfer_ops. By accident? In any case, I've added
> those two cases to the patch.
>
Not by accident, Analogy is off the map as far as I'm concerned. I would
simply disable it from the CI stuff, until a patch dropping it entirely
is pushed upstream.
--
Philippe.
next prev parent reply other threads:[~2021-04-07 10:17 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-03-27 10:19 [PATCH v2 0/7] assorted v5.x related fixups Philippe Gerum
2021-03-27 10:19 ` [PATCH v2 1/7] cobalt/memory: fix __vmalloc() calls Philippe Gerum
2021-03-27 10:19 ` [PATCH v2 2/7] cobalt/debug: switch to mmap_lock interface Philippe Gerum
2021-03-27 10:19 ` [PATCH v2 3/7] cobalt/kernel: convert to proc_ops Philippe Gerum
2021-04-07 9:52 ` Jan Kiszka
2021-04-07 10:17 ` Philippe Gerum [this message]
2021-04-07 10:37 ` Jan Kiszka
2021-04-07 11:03 ` Philippe Gerum
2021-03-27 10:19 ` [PATCH v2 4/7] cobalt/debug: prefer dump_stack() to show_stack() Philippe Gerum
2021-03-27 10:19 ` [PATCH v2 5/7] drivers/net: wrap csum_partial_copy_nocheck() Philippe Gerum
2021-04-07 10:06 ` Jan Kiszka
2021-04-15 7:21 ` Philippe Gerum
2021-04-15 7:35 ` Jan Kiszka
2021-04-15 7:54 ` Philippe Gerum
2021-04-15 8:10 ` Jan Kiszka
2021-04-16 16:48 ` Philippe Gerum
2021-04-16 17:12 ` Jan Kiszka
2021-04-18 9:18 ` Philippe Gerum
2021-04-18 15:50 ` Philippe Gerum
2021-05-04 14:48 ` Philippe Gerum
2021-05-05 5:43 ` Jan Kiszka
2021-03-27 10:19 ` [PATCH v2 6/7] drivers/net: icmp: remove variable-length array Philippe Gerum
2021-04-07 10:24 ` Jan Kiszka
2021-03-27 10:19 ` [PATCH v2 7/7] drivers/net: cfg: fix config file load up Philippe Gerum
2021-04-07 10:35 ` Jan Kiszka
2021-05-04 17:18 ` Philippe Gerum
2021-04-07 10:39 ` [PATCH v2 0/7] assorted v5.x related fixups Jan Kiszka
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=87a6qapfeu.fsf@xenomai.org \
--to=rpm@xenomai.org \
--cc=jan.kiszka@siemens.com \
--cc=xenomai@xenomai.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.