relay: cleanup and const callbacks, take 2
Subsystems (8)
cover relay: cleanup and const callbacks, take 2
This is v2 of [1], with a number of cleanups added first based on Christoph's feedback, making the actual constness patch much smaller and cleaner.
I don't know who actually maintains relay, it's not in MAINTAINERS - Cc'd Andrew just in case.
I'd think it would be simplest to queue patches 5-9 via whichever tree the relay patches get merged. They're all one-liners so neglible conflict potential.
BR,
Jani.
[1] http://lore.kernel.org/r/[email protected]
Jani Nikula (9):
relay: remove unused buf_mapped and buf_unmapped callbacks
relay: require non-NULL callbacks in relay_open()
relay: make create_buf_file and remove_buf_file callbacks mandatory
relay: allow the use of const callback structs
drm/i915: make relay callbacks const
ath10k: make relay callbacks const
ath11k: make relay callbacks const
ath9k: make relay callbacks const
blktrace: make relay callbacks const
drivers/gpu/drm/i915/gt/uc/intel_guc_log.c | 2 +- drivers/net/wireless/ath/ath10k/spectral.c | 2 +- drivers/net/wireless/ath/ath11k/spectral.c | 2 +- .../net/wireless/ath/ath9k/common-spectral.c | 2 +- include/linux/relay.h | 29 ++--- kernel/relay.c | 107 +++--------------- kernel/trace/blktrace.c | 2 +- 7 files changed, 26 insertions(+), 120 deletions(-)
Signature · 7 lines
2.20.1 _______________________________________________ ath10k mailing list [email protected] http://lists.infradead.org/mailman/listinfo/ath10k
PATCH 1/9 relay: remove unused buf_mapped and buf_unmapped callbacks
No relay client uses the buf_mapped or buf_unmapped callbacks. Remove them. This makes relay's vm_operations_struct close callback a dummy, remove it as well.
--- include/linux/relay.h | 19 ------------------- kernel/relay.c | 34 ---------------------------------- 2 files changed, 53 deletions(-)
include/linux/relay.h +0 -19
@@ -101,25 +101,6 @@ struct rchan_callbacksvoid *prev_subbuf, size_t prev_padding); -/* -* buf_mapped - relay buffer mmap notification -* @buf: the channel buffer -* @filp: relay file pointer -* -* Called when a relay file is successfully mmapped -*/ -void (*buf_mapped)(struct rchan_buf *buf, -struct file *filp); - -/* -* buf_unmapped - relay buffer unmap notification -* @buf: the channel buffer -* @filp: relay file pointer -* -* Called when a relay file is successfully unmapped -*/ -void (*buf_unmapped)(struct rchan_buf *buf, -struct file *filp);/* * create_buf_file - create file to represent a relay channel buffer * @filename: the name of the file to create
kernel/relay.c +0 -34
@@ -27,15 +27,6 @@static DEFINE_MUTEX (relay_channels_mutex);static LIST_HEAD (relay_channels); -/* -* close() vm_op implementation for relay file mapping. -*/ -static void relay_file_mmap_close (struct vm_area_struct *vma) -{ -struct rchan_buf *buf = vma->vm_private_data; - buf->chan->cb->buf_unmapped (buf, vma->vm_file); -} -/* * fault() vm_op implementation for relay file mapping. */
@@ -62,7 +53,6 @@ static vm_fault_t relay_buf_fault(struct vm_fault *vmf)*/ static const struct vm_operations_struct relay_file_mmap_ops = { .fault = relay_buf_fault, - .close = relay_file_mmap_close, };/*
@@ -96,7 +86,6 @@ static void relay_free_page_array(struct page **array)static int relay_mmap_buf (struct rchan_buf *buf,struct vm_area_struct *vma) {unsigned long length = vma->vm_end - vma->vm_start; -struct file *filp = vma->vm_file;if (!buf)return -EBADF ;
@@ -107,7 +96,6 @@ static int relay_mmap_buf(struct rchan_buf *buf, struct vm_area_struct *vma) vma->vm_ops = &relay_file_mmap_ops; vma->vm_flags |=VM_DONTEXPAND ; vma->vm_private_data = buf; - buf->chan->cb->buf_mapped (buf, filp);return 0 ; }
@@ -283,22 +271,6 @@ static int subbuf_start_default_callback (struct rchan_buf *buf,return 1 ; } -/* -* buf_mapped() default callback. Does nothing. -*/ -static void buf_mapped_default_callback (struct rchan_buf *buf, -struct file *filp) -{ -} - -/* -* buf_unmapped() default callback. Does nothing. -*/ -static void buf_unmapped_default_callback (struct rchan_buf *buf, -struct file *filp) -{ -} -/* * create_buf_file_create() default callback. Does nothing. */
@@ -322,8 +294,6 @@ static int remove_buf_file_default_callback(struct dentry *dentry)/* relay channel default callbacks */ static struct rchan_callbacks default_channel_callbacks = { .subbuf_start = subbuf_start_default_callback, - .buf_mapped = buf_mapped_default_callback, - .buf_unmapped = buf_unmapped_default_callback, .create_buf_file = create_buf_file_default_callback, .remove_buf_file = remove_buf_file_default_callback, };
@@ -509,10 +479,6 @@ static void setup_callbacks(struct rchan *chan,if (!cb->subbuf_start) cb->subbuf_start = subbuf_start_default_callback; -if (!cb->buf_mapped) - cb->buf_mapped = buf_mapped_default_callback; -if (!cb->buf_unmapped) - cb->buf_unmapped = buf_unmapped_default_callback;if (!cb->create_buf_file) cb->create_buf_file = create_buf_file_default_callback;if (!cb->remove_buf_file)
Signature · 6 lines
2.20.1 _______________________________________________ Intel-gfx mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [PATCH 1/9] relay: remove unused buf_mapped and buf_unmapped callbacks
Looks good,
PATCH 2/9 relay: require non-NULL callbacks in relay_open()
In reply to Jani NikulaThere are no clients passing NULL callbacks, which makes sense as it wouldn't even create a file. Require non-NULL callbacks, and throw away the handling for NULL callbacks.
--- kernel/relay.c | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-)
kernel/relay.c +2 -12
@@ -291,13 +291,6 @@ static int remove_buf_file_default_callback(struct dentry *dentry)return -EINVAL ; } -/* relay channel default callbacks */ -static struct rchan_callbacks default_channel_callbacks = { - .subbuf_start = subbuf_start_default_callback, - .create_buf_file = create_buf_file_default_callback, - .remove_buf_file = remove_buf_file_default_callback, -}; -/** * wakeup_readers - wake up readers waiting on a channel * @work: contains the channel buffer
@@ -472,11 +465,6 @@ static void relay_close_buf(struct rchan_buf *buf)static void setup_callbacks (struct rchan *chan,struct rchan_callbacks *cb) { -if (!cb) { - chan->cb = &default_channel_callbacks; -return ; - } -if (!cb->subbuf_start) cb->subbuf_start = subbuf_start_default_callback;if (!cb->create_buf_file)
@@ -542,6 +530,8 @@ struct rchan *relay_open(const char *base_filename,return NULL ;if (subbuf_size >UINT_MAX / n_subbufs)return NULL ; +if (!cb) +return NULL ; chan =kzalloc (sizeof (struct rchan ),GFP_KERNEL );if (!chan)
Signature · 6 lines
2.20.1 _______________________________________________ Intel-gfx mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [PATCH 2/9] relay: require non-NULL callbacks in relay_open()
Quoted 3 lines · Jani Nikula
There are no clients passing NULL callbacks, which makes sense as it wouldn't even create a file. Require non-NULL callbacks, and throw away the handling for NULL callbacks.
Looks good,
PATCH 3/9 relay: make create_buf_file and remove_buf_file callbacks mandatory
In reply to Jani NikulaAll clients provide create_buf_file and remove_buf_file callbacks, and they're required for relay to make sense. There is no point in them being optional.
Also document whether each callback is mandatory/optional.
--- include/linux/relay.h | 6 ++++++ kernel/relay.c | 26 +------------------------- 2 files changed, 7 insertions(+), 25 deletions(-)
include/linux/relay.h +6 -0
@@ -89,6 +89,8 @@ struct rchan_callbacks* The client should return 1 to continue logging, 0 to stop * logging. * +* This callback is optional. +* * NOTE: subbuf_start will also be invoked when the buffer is * created, so that the first sub-buffer can be initialized * if necessary. In this case, prev_subbuf will be NULL.
@@ -122,6 +124,8 @@ struct rchan_callbacks* cause relay_open() to create a single global buffer rather * than the default set of per-cpu buffers. * +* This callback is mandatory. +* * See Documentation/filesystems/relay.rst for more info. */ struct dentry *(*create_buf_file)(const char *filename,
@@ -139,6 +143,8 @@ struct rchan_callbacks* channel buffer. * * The callback should return 0 if successful, negative if not. +* +* This callback is mandatory. */ int (*remove_buf_file)(struct dentry *dentry); };
kernel/relay.c +1 -25
@@ -271,26 +271,6 @@ static int subbuf_start_default_callback (struct rchan_buf *buf,return 1 ; } -/* -* create_buf_file_create() default callback. Does nothing. -*/ -static struct dentry *create_buf_file_default_callback (const char *filename, -struct dentry *parent, -umode_t mode, -struct rchan_buf *buf, -int *is_global) -{ -return NULL ; -} - -/* -* remove_buf_file() default callback. Does nothing. -*/ -static int remove_buf_file_default_callback (struct dentry *dentry) -{ -return -EINVAL ; -} -/** * wakeup_readers - wake up readers waiting on a channel * @work: contains the channel buffer
@@ -467,10 +447,6 @@ static void setup_callbacks(struct rchan *chan, {if (!cb->subbuf_start) cb->subbuf_start = subbuf_start_default_callback; -if (!cb->create_buf_file) - cb->create_buf_file = create_buf_file_default_callback; -if (!cb->remove_buf_file) - cb->remove_buf_file = remove_buf_file_default_callback; chan->cb = cb; }
@@ -530,7 +506,7 @@ struct rchan *relay_open(const char *base_filename,return NULL ;if (subbuf_size >UINT_MAX / n_subbufs)return NULL ; -if (!cb) +if (!cb || !cb->create_buf_file || !cb->remove_buf_file)return NULL ; chan =kzalloc (sizeof (struct rchan ),GFP_KERNEL );
Signature · 6 lines
2.20.1 _______________________________________________ Intel-gfx mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [PATCH 3/9] relay: make create_buf_file and remove_buf_file callbacks mandatory
Quoted 5 lines · Jani Nikula
All clients provide
create_buf_fileandremove_buf_filecallbacks, and they're required for relay to make sense. There is no point in them being optional.Also document whether each callback is mandatory/optional.
Looks good,
PATCH 4/9 relay: allow the use of const callback structs
In reply to Jani NikulaNone of the relay users require the use of mutable structs for callbacks, however the relay code does. Instead of assigning the default callback for subbuf_start, add a wrapper to conditionally call the client callback if available, and fall back to default behaviour otherwise.
This lets all relay users make their struct rchan_callbacks const data.
---
v2: Simplify after nuking some callbacks and making some others mandatory in previous patches, as per Christoph's review comments.
I thought about adding wrappers for the now-mandatory create_buf_file and remove_buf_file as well, for consistency, but ended up leaving them out.
--- include/linux/relay.h | 4 ++-- kernel/relay.c | 35 +++++++++++------------------------ 2 files changed, 13 insertions(+), 26 deletions(-)
include/linux/relay.h +2 -2
@@ -62,7 +62,7 @@ struct rchansize_t subbuf_size;/* sub-buffer size */ size_t n_subbufs;/* number of sub-buffers per buffer */ size_t alloc_size;/* total buffer size allocated */ -struct rchan_callbacks *cb;/* client callbacks */ +const struct rchan_callbacks *cb;/* client callbacks */ struct kref kref;/* channel refcount */ void *private_data;/* for user-defined data */ size_t last_toobig;/* tried to log event > subbuf size */
@@ -157,7 +157,7 @@ struct rchan *relay_open(const char *base_filename,struct dentry *parent, size_t subbuf_size, size_t n_subbufs, - struct rchan_callbacks *cb, + const struct rchan_callbacks *cb, void *private_data); extern int relay_late_setup_files(struct rchan *chan, const char *base_filename,
kernel/relay.c +11 -24
@@ -252,19 +252,14 @@ EXPORT_SYMBOL_GPL(relay_buf_full);* High-level relay kernel API and associated functions. */ -/* -* rchan_callback implementations defining default channel behavior. Used -* in place of corresponding NULL values in client callback struct. -*/ - -/* -* subbuf_start() default callback. Does nothing. -*/ -static int subbuf_start_default_callback (struct rchan_buf *buf, -void *subbuf, -void *prev_subbuf, -size_t prev_padding) +/* subbuf_start callback wrapper */ +static int cb_subbuf_start (struct rchan_buf *buf,void *subbuf, +void *prev_subbuf,size_t prev_padding) { +if (buf->chan->cb->subbuf_start) +return buf->chan->cb->subbuf_start (buf, subbuf, + prev_subbuf, prev_padding); +if (relay_buf_full (buf))return 0 ;
@@ -314,7 +309,7 @@ static void __relay_reset(struct rchan_buf *buf, unsigned int init)for (i =0 ; i < buf->chan->n_subbufs; i++) buf->padding[i] =0 ; - buf->chan->cb->subbuf_start (buf, buf->data,NULL ,0 ); +cb_subbuf_start (buf, buf->data,NULL ,0 ); }/**
@@ -442,14 +437,6 @@ static void relay_close_buf(struct rchan_buf *buf)kref_put (&buf->kref, relay_remove_buf); } -static void setup_callbacks (struct rchan *chan, -struct rchan_callbacks *cb) -{ -if (!cb->subbuf_start) - cb->subbuf_start = subbuf_start_default_callback; - chan->cb = cb; -} -int relay_prepare_cpu (unsigned int cpu) {struct rchan *chan;
@@ -495,7 +482,7 @@ struct rchan *relay_open(const char *base_filename,struct dentry *parent, size_t subbuf_size, size_t n_subbufs, - struct rchan_callbacks *cb, + const struct rchan_callbacks *cb, void *private_data) { unsigned int i;
@@ -529,7 +516,7 @@ struct rchan *relay_open(const char *base_filename, chan->has_base_filename =1 ;strlcpy (chan->base_filename, base_filename,NAME_MAX ); } -setup_callbacks (chan, cb); + chan->cb = cb;kref_init (&chan->kref);mutex_lock (&relay_channels_mutex);
@@ -712,7 +699,7 @@ size_t relay_switch_subbuf(struct rchan_buf *buf, size_t length) new_subbuf = buf->subbufs_produced % buf->chan->n_subbufs; new = buf->start + new_subbuf * buf->chan->subbuf_size; buf->offset =0 ; -if (!buf->chan->cb->subbuf_start (buf, new, old, buf->prev_padding)) { +if (!cb_subbuf_start (buf, new, old, buf->prev_padding)) { buf->offset = buf->chan->subbuf_size +1 ;return 0 ; }
Signature · 7 lines
2.20.1 _______________________________________________ ath10k mailing list [email protected] http://lists.infradead.org/mailman/listinfo/ath10k
Re: [PATCH 4/9] relay: allow the use of const callback structs
kernel/relay.c EXPORT_SYMBOL_GPL(relay_buf_full); · line 257
Quoted 3 lines
kernel/relay.c +3
-0+/* subbuf_start callback wrapper */ +static int cb_subbuf_start (struct rchan_buf *buf,void *subbuf, +void *prev_subbuf,size_t prev_padding)
I don't think the comment adds any information over just looking at the function and the two callers. I'd also name it relay_subbuf_start instead of the cb_ prefix not used anywhere else in the file.
kernel/relay.c EXPORT_SYMBOL_GPL(relay_buf_full); · line 264
Quoted 7 lines
{
kernel/relay.c +4
-0+if (buf->chan->cb->subbuf_start) +return buf->chan->cb->subbuf_start (buf, subbuf, + prev_subbuf, prev_padding); +if (relay_buf_full (buf))return 0 ;
This could also be simplified a bit more to:
if (!buf->chan->cb->subbuf_start) return !relay_buf_full(buf); return buf->chan->cb->subbuf_start(buf, subbuf, prev_subbuf, prev_padding);
Otherwise this looks good to me:
_______________________________________________
ath10k mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/ath10k
PATCH v3 1/1 relay: allow the use of const callback structs
None of the relay users require the use of mutable structs for callbacks, however the relay code does. Instead of assigning the default callback for subbuf_start, add a wrapper to conditionally call the client callback if available, and fall back to default behaviour otherwise.
This lets all relay users make their struct rchan_callbacks const data.
---
v2: Simplify after nuking some callbacks and making some others mandatory in previous patches, as per Christoph's review comments.
I thought about adding wrappers for the now-mandatory create_buf_file and remove_buf_file as well, for consistency, but ended up leaving them out.
v3: Rename cb_subbuf_start to relay_subbuf_start, minor finishing touches
--- include/linux/relay.h | 4 ++-- kernel/relay.c | 37 ++++++++++--------------------------- 2 files changed, 12 insertions(+), 29 deletions(-)
include/linux/relay.h +2 -2
@@ -62,7 +62,7 @@ struct rchansize_t subbuf_size;/* sub-buffer size */ size_t n_subbufs;/* number of sub-buffers per buffer */ size_t alloc_size;/* total buffer size allocated */ -struct rchan_callbacks *cb;/* client callbacks */ +const struct rchan_callbacks *cb;/* client callbacks */ struct kref kref;/* channel refcount */ void *private_data;/* for user-defined data */ size_t last_toobig;/* tried to log event > subbuf size */
@@ -157,7 +157,7 @@ struct rchan *relay_open(const char *base_filename,struct dentry *parent, size_t subbuf_size, size_t n_subbufs, - struct rchan_callbacks *cb, + const struct rchan_callbacks *cb, void *private_data); extern int relay_late_setup_files(struct rchan *chan, const char *base_filename,
kernel/relay.c +10 -27
@@ -252,23 +252,14 @@ EXPORT_SYMBOL_GPL(relay_buf_full);* High-level relay kernel API and associated functions. */ -/* -* rchan_callback implementations defining default channel behavior. Used -* in place of corresponding NULL values in client callback struct. -*/ - -/* -* subbuf_start() default callback. Does nothing. -*/ -static int subbuf_start_default_callback (struct rchan_buf *buf, -void *subbuf, -void *prev_subbuf, -size_t prev_padding) +static int relay_subbuf_start (struct rchan_buf *buf,void *subbuf, +void *prev_subbuf,size_t prev_padding) { -if (relay_buf_full (buf)) -return 0 ; +if (!buf->chan->cb->subbuf_start) +return !relay_buf_full (buf); -return 1 ; +return buf->chan->cb->subbuf_start (buf, subbuf, + prev_subbuf, prev_padding); }/**
@@ -314,7 +305,7 @@ static void __relay_reset(struct rchan_buf *buf, unsigned int init)for (i =0 ; i < buf->chan->n_subbufs; i++) buf->padding[i] =0 ; - buf->chan->cb->subbuf_start (buf, buf->data,NULL ,0 ); +relay_subbuf_start (buf, buf->data,NULL ,0 ); }/**
@@ -442,14 +433,6 @@ static void relay_close_buf(struct rchan_buf *buf)kref_put (&buf->kref, relay_remove_buf); } -static void setup_callbacks (struct rchan *chan, -struct rchan_callbacks *cb) -{ -if (!cb->subbuf_start) - cb->subbuf_start = subbuf_start_default_callback; - chan->cb = cb; -} -int relay_prepare_cpu (unsigned int cpu) {struct rchan *chan;
@@ -495,7 +478,7 @@ struct rchan *relay_open(const char *base_filename,struct dentry *parent, size_t subbuf_size, size_t n_subbufs, - struct rchan_callbacks *cb, + const struct rchan_callbacks *cb, void *private_data) { unsigned int i;
@@ -529,7 +512,7 @@ struct rchan *relay_open(const char *base_filename, chan->has_base_filename =1 ;strlcpy (chan->base_filename, base_filename,NAME_MAX ); } -setup_callbacks (chan, cb); + chan->cb = cb;kref_init (&chan->kref);mutex_lock (&relay_channels_mutex);
@@ -712,7 +695,7 @@ size_t relay_switch_subbuf(struct rchan_buf *buf, size_t length) new_subbuf = buf->subbufs_produced % buf->chan->n_subbufs; new = buf->start + new_subbuf * buf->chan->subbuf_size; buf->offset =0 ; -if (!buf->chan->cb->subbuf_start (buf, new, old, buf->prev_padding)) { +if (!relay_subbuf_start (buf, new, old, buf->prev_padding)) { buf->offset = buf->chan->subbuf_size +1 ;return 0 ; }
Signature · 7 lines
2.20.1 _______________________________________________ ath10k mailing list [email protected] http://lists.infradead.org/mailman/listinfo/ath10k
Re: [PATCH 4/9] relay: allow the use of const callback structs
In reply to Christoph HellwigQuoted 1 line · Christoph Hellwig
Otherwise this looks good to me:
v3 sent.
Quoted 1 line
Reviewed-by Christoph Hellwig <[email protected]>
Thanks for the reviews, appreciated.
BR,
Jani.
Signature · 6 lines
Jani Nikula, Intel Open Source Graphics Center _______________________________________________ ath10k mailing list [email protected] http://lists.infradead.org/mailman/listinfo/ath10k
Patchwork
CI[Intel-gfx] ✗ Fi.CI.BUILD: failure for relay: allow the use of const callback structs
In reply to Christoph Hellwig== Series Details ==
== Series Details ==
Series: relay: allow the use of const callback structs
URL : https://patchwork.freedesktop.org/series/84209/
State : failure
== Summary ==
Applying: relay: allow the use of const callback structs Using index info to reconstruct a base tree...
M include/linux/relay.h
M kernel/relay.c
Falling back to patching base and 3-way merge... Auto-merging kernel/relay.c
CONFLICT (content): Merge conflict in kernel/relay.c Auto-merging include/linux/relay.h
error: Failed to merge in the changes.
hint: Use 'git am --show-current-patch=diff' to see the failed patch Patch failed at 0001 relay: allow the use of const callback structs When you have resolved this problem, run "git am --continue". If you prefer to skip this patch, run "git am --skip" instead. To restore the original branch and stop patching, run "git am --abort".
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
PATCH 5/9 drm/i915: make relay callbacks const
In reply to Jani NikulaNow that relay_open() accepts const callbacks, make relay callbacks const.
--- drivers/gpu/drm/i915/gt/uc/intel_guc_log.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/gpu/drm/i915/gt/uc/intel_guc_log.c +1 -1
@@ -134,7 +134,7 @@ static int remove_buf_file_callback(struct dentry *dentry) }/* relay channel callbacks */ -static struct rchan_callbacks relay_callbacks = { +static const struct rchan_callbacks relay_callbacks = { .subbuf_start = subbuf_start_callback, .create_buf_file = create_buf_file_callback, .remove_buf_file = remove_buf_file_callback,
Signature · 6 lines
2.20.1 _______________________________________________ Intel-gfx mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [PATCH 5/9] drm/i915: make relay callbacks const
Quoted 5 lines · Jani Nikula
Now that
relay_open()accepts const callbacks, make relay callbacks const.Signed-off-by Jani Nikula <[email protected]>
Looks good,
PATCH 6/9 ath10k: make relay callbacks const
In reply to Jani NikulaNow that relay_open() accepts const callbacks, make relay callbacks const.
--- drivers/net/wireless/ath/ath10k/spectral.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/net/wireless/ath/ath10k/spectral.c +1 -1
@@ -497,7 +497,7 @@ static int remove_buf_file_handler(struct dentry *dentry)return 0 ; } -static struct rchan_callbacks rfs_spec_scan_cb = { +static const struct rchan_callbacks rfs_spec_scan_cb = { .create_buf_file = create_buf_file_handler, .remove_buf_file = remove_buf_file_handler, };
Signature · 7 lines
2.20.1 _______________________________________________ ath10k mailing list [email protected] http://lists.infradead.org/mailman/listinfo/ath10k
Re: [PATCH 6/9] ath10k: make relay callbacks const
Quoted 2 lines · Jani Nikula
Now that
relay_open()accepts const callbacks, make relay callbacks const.
Looks good,
_______________________________________________
ath10k mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/ath10k
PATCH 7/9 ath11k: make relay callbacks const
In reply to Jani NikulaNow that relay_open() accepts const callbacks, make relay callbacks const.
--- drivers/net/wireless/ath/ath11k/spectral.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/net/wireless/ath/ath11k/spectral.c +1 -1
@@ -148,7 +148,7 @@ static int remove_buf_file_handler(struct dentry *dentry)return 0 ; } -static struct rchan_callbacks rfs_scan_cb = { +static const struct rchan_callbacks rfs_scan_cb = { .create_buf_file = create_buf_file_handler, .remove_buf_file = remove_buf_file_handler, };
Signature · 6 lines
2.20.1 _______________________________________________ Intel-gfx mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [PATCH 7/9] ath11k: make relay callbacks const
Quoted 2 lines · Jani Nikula
Now that
relay_open()accepts const callbacks, make relay callbacks const.
Looks good,
Signature · 3 lines
ath11k mailing list [email protected] http://lists.infradead.org/mailman/listinfo/ath11k
PATCH 8/9 ath9k: make relay callbacks const
In reply to Jani NikulaNow that relay_open() accepts const callbacks, make relay callbacks const.
--- drivers/net/wireless/ath/ath9k/common-spectral.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/net/wireless/ath/ath9k/common-spectral.c +1 -1
@@ -1053,7 +1053,7 @@ static int remove_buf_file_handler(struct dentry *dentry)return 0 ; } -static struct rchan_callbacks rfs_spec_scan_cb = { +static const struct rchan_callbacks rfs_spec_scan_cb = { .create_buf_file = create_buf_file_handler, .remove_buf_file = remove_buf_file_handler, };
Signature · 6 lines
2.20.1 _______________________________________________ Intel-gfx mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [PATCH 8/9] ath9k: make relay callbacks const
Quoted 2 lines · Jani Nikula
Now that
relay_open()accepts const callbacks, make relay callbacks const.
Looks good,
PATCH 9/9 blktrace: make relay callbacks const
In reply to Jani NikulaNow that relay_open() accepts const callbacks, make relay callbacks const.
--- kernel/trace/blktrace.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
kernel/trace/blktrace.c +1 -1
@@ -449,7 +449,7 @@ static struct dentry *blk_create_buf_file_callback(const char *filename, &relay_file_operations); } -static struct rchan_callbacks blk_relay_callbacks = { +static const struct rchan_callbacks blk_relay_callbacks = { .subbuf_start = blk_subbuf_start_callback, .create_buf_file = blk_create_buf_file_callback, .remove_buf_file = blk_remove_buf_file_callback,
Signature · 6 lines
2.20.1 _______________________________________________ Intel-gfx mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [PATCH 9/9] blktrace: make relay callbacks const
Quoted 2 lines · Jani Nikula
Now that
relay_open()accepts const callbacks, make relay callbacks const.
Looks good,
Quoted 30 lines · Jani Nikula
This is v2 of [1], with a number of cleanups added first based on Christoph's feedback, making the actual constness patch much smaller and cleaner.
I don't know who actually maintains relay, it's not in
MAINTAINERS- Cc'd Andrew just in case.I'd think it would be simplest to queue patches 5-9 via whichever tree the relay patches get merged. They're all one-liners so neglible conflict potential.
BR,
Jani.[1] http://lore.kernel.org/r/[email protected]
Cc Jens Axboe <[email protected]>Cc Kalle Valo <[email protected]>Cc QCA ath9k Development <[email protected]>Cc Christoph Hellwig <[email protected]>Cc Andrew Morton <[email protected]>
Quoted 10 lines
Jani Nikula (9):
relay: remove unusedbuf_mappedandbuf_unmappedcallbacks
relay: require non-NULL callbacks inrelay_open()
relay: makecreate_buf_fileandremove_buf_filecallbacks mandatory
relay: allow the use of const callback structs
drm/i915: make relay callbacks const
ath10k: make relay callbacks const
ath11k: make relay callbacks const
ath9k: make relay callbacks const
blktrace: make relay callbacks const
For ath9k, ath10k & ath11k:
Signature · 3 lines
https://patchwork.kernel.org/project/linux-wireless/list/ https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches
Patchwork
CI[Intel-gfx] ✗ Fi.CI.SPARSE: warning for relay: cleanup and const callbacks, take 2
In reply to Jani Nikula== Series Details ==
== Series Details ==
Series: relay: cleanup and const callbacks, take 2
URL : https://patchwork.freedesktop.org/series/84182/
State : warning
== Summary ==
$ dim sparse --fast origin/drm-tip Sparse version: v0.6.2 Fast mode used, each commit won't be checked separately. - +drivers/gpu/drm/i915/gt/intel_reset.c:1312:5: warning: context imbalance in 'intel_gt_reset_trylock' - different lock contexts for basic block +drivers/gpu/drm/i915/gt/selftest_reset.c:100:20: expected void *in +drivers/gpu/drm/i915/gt/selftest_reset.c:100:20: got void [noderef] __iomem *[assigned] s +drivers/gpu/drm/i915/gt/selftest_reset.c:100:20: warning: incorrect type in assignment (different address spaces) +drivers/gpu/drm/i915/gt/selftest_reset.c:101:46: expected void const *src +drivers/gpu/drm/i915/gt/selftest_reset.c:101:46: got void [noderef] __iomem *[assigned] s +drivers/gpu/drm/i915/gt/selftest_reset.c:101:46: warning: incorrect type in argument 2 (different address spaces) +drivers/gpu/drm/i915/gt/selftest_reset.c:136:20: expected void *in +drivers/gpu/drm/i915/gt/selftest_reset.c:136:20: got void [noderef] __iomem *[assigned] s +drivers/gpu/drm/i915/gt/selftest_reset.c:136:20: warning: incorrect type in assignment (different address spaces) +drivers/gpu/drm/i915/gt/selftest_reset.c:137:46: expected void const *src +drivers/gpu/drm/i915/gt/selftest_reset.c:137:46: got void [noderef] __iomem *[assigned] s +drivers/gpu/drm/i915/gt/selftest_reset.c:137:46: warning: incorrect type in argument 2 (different address spaces) +drivers/gpu/drm/i915/gt/selftest_reset.c:98:34: expected unsigned int [usertype] *s +drivers/gpu/drm/i915/gt/selftest_reset.c:98:34: got void [noderef] __iomem *[assigned] s +drivers/gpu/drm/i915/gt/selftest_reset.c:98:34: warning: incorrect type in argument 1 (different address spaces) +drivers/gpu/drm/i915/gvt/mmio.c:290:23: warning: memcpy with byte count of 279040 +drivers/gpu/drm/i915/i915_perf.c:1447:15: warning: memset with byte count of 16777216 +drivers/gpu/drm/i915/i915_perf.c:1501:15: warning: memset with byte count of 16777216 +./include/linux/seqlock.h:838:24: warning: trying to copy expression type 31 +./include/linux/seqlock.h:838:24: warning: trying to copy expression type 31 +./include/linux/seqlock.h:864:16: warning: trying to copy expression type 31 +./include/linux/spinlock.h:409:9: warning: context imbalance in 'fwtable_read16' - different lock contexts for basic block +./include/linux/spinlock.h:409:9: warning: context imbalance in 'fwtable_read32' - different lock contexts for basic block +./include/linux/spinlock.h:409:9: warning: context imbalance in 'fwtable_read64' - different lock contexts for basic block +./include/linux/spinlock.h:409:9: warning: context imbalance in 'fwtable_read8' - different lock contexts for basic block +./include/linux/spinlock.h:409:9: warning: context imbalance in 'fwtable_write16' - different lock contexts for basic block +./include/linux/spinlock.h:409:9: warning: context imbalance in 'fwtable_write32' - different lock contexts for basic block +./include/linux/spinlock.h:409:9: warning: context imbalance in 'fwtable_write8' - different lock contexts for basic block +./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen11_fwtable_read16' - different lock contexts for basic block +./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen11_fwtable_read32' - different lock contexts for basic block +./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen11_fwtable_read64' - different lock contexts for basic block +./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen11_fwtable_read8' - different lock contexts for basic block +./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen11_fwtable_write16' - different lock contexts for basic block +./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen11_fwtable_write32' - different lock contexts for basic block +./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen11_fwtable_write8' - different lock contexts for basic block +./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen12_fwtable_read16' - different lock contexts for basic block +./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen12_fwtable_read32' - different lock contexts for basic block +./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen12_fwtable_read64' - different lock contexts for basic block +./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen12_fwtable_read8' - different lock contexts for basic block +./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen12_fwtable_write16' - different lock contexts for basic block +./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen12_fwtable_write32' - different lock contexts for basic block +./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen12_fwtable_write8' - different lock contexts for basic block +./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen6_read16' - different lock contexts for basic block +./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen6_read32' - different lock contexts for basic block +./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen6_read64' - different lock contexts for basic block +./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen6_read8' - different lock contexts for basic block +./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen6_write16' - different lock contexts for basic block +./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen6_write32' - different lock contexts for basic block +./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen6_write8' - different lock contexts for basic block +./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen8_write16' - different lock contexts for basic block +./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen8_write32' - different lock contexts for basic block +./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen8_write8' - different lock contexts for basic block
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Patchwork
CI[Intel-gfx] ✗ Fi.CI.BAT: failure for relay: cleanup and const callbacks, take 2
In reply to Jani Nikula== Series Details ==
== Series Details ==
Series: relay: cleanup and const callbacks, take 2
URL : https://patchwork.freedesktop.org/series/84182/
State : failure
== Summary ==
CI Bug Log - changes from CI_DRM_9378 -> Patchwork_18960
====================================================
Summary
-------
**FAILURE**
Serious unknown changes coming with Patchwork_18960 absolutely need to be verified manually.
If you think the reported changes have nothing to do with the changes introduced in Patchwork_18960, please notify your bug team to allow them to document this new failure mode, which will reduce false positives in CI.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18960/index.html
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in Patchwork_18960:
### IGT changes ###
#### Possible regressions ####
* igt@gem_close_race@basic-threads:
- fi-skl-lmem: [PASS][1] -> [INCOMPLETE][2]
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9378/fi-skl-lmem/igt@[email protected]
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18960/fi-skl-lmem/igt@[email protected]
New tests
---------
New tests have been introduced between CI_DRM_9378 and Patchwork_18960:
### New CI tests (1) ###
* boot:
- Statuses : 40 pass(s)
- Exec time: [0.0] s
Known issues
------------
Here are the changes found in Patchwork_18960 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@i915_module_load@reload:
- fi-bxt-dsi: [PASS][3] -> [DMESG-WARN][4] ([i915#1635] / [i915#1982])
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9378/fi-bxt-dsi/igt@[email protected]
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18960/fi-bxt-dsi/igt@[email protected]
* igt@i915_selftest@live@execlists:
- fi-cml-u2: [PASS][5] -> [INCOMPLETE][6] ([i915#1037])
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9378/fi-cml-u2/igt@i915_selftest@[email protected]
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18960/fi-cml-u2/igt@i915_selftest@[email protected]
* igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic:
- fi-bsw-kefka: [PASS][7] -> [DMESG-WARN][8] ([i915#1982])
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9378/fi-bsw-kefka/igt@[email protected]
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18960/fi-bsw-kefka/igt@[email protected]
* igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy:
- fi-icl-u2: [PASS][9] -> [DMESG-WARN][10] ([i915#1982]) +1 similar issue
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9378/fi-icl-u2/igt@[email protected]
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18960/fi-icl-u2/igt@[email protected]
* igt@kms_psr@primary_page_flip:
- fi-tgl-y: [PASS][11] -> [DMESG-WARN][12] ([i915#1982]) +1 similar issue
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9378/fi-tgl-y/igt@kms_psr@primary_page_flip.html
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18960/fi-tgl-y/igt@kms_psr@primary_page_flip.html
* igt@prime_self_import@basic-with_one_bo:
- fi-tgl-y: [PASS][13] -> [DMESG-WARN][14] ([i915#402])
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9378/fi-tgl-y/igt@prime_self_import@basic-with_one_bo.html
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18960/fi-tgl-y/igt@prime_self_import@basic-with_one_bo.html
#### Possible fixes ####
* igt@i915_pm_rpm@basic-pci-d3-state:
- fi-bsw-kefka: [DMESG-WARN][15] ([i915#1982]) -> [PASS][16]
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9378/fi-bsw-kefka/igt@[email protected]
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18960/fi-bsw-kefka/igt@[email protected]
* igt@kms_busy@basic@modeset:
- fi-tgl-y: [DMESG-WARN][17] ([i915#1982]) -> [PASS][18] +1 similar issue
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9378/fi-tgl-y/igt@kms_busy@[email protected]
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18960/fi-tgl-y/igt@kms_busy@[email protected]
* igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic:
- fi-byt-j1900: [DMESG-WARN][19] ([i915#1982]) -> [PASS][20] +1 similar issue
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9378/fi-byt-j1900/igt@[email protected]
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18960/fi-byt-j1900/igt@[email protected]
* igt@prime_vgem@basic-write:
- fi-tgl-y: [DMESG-WARN][21] ([i915#402]) -> [PASS][22]
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9378/fi-tgl-y/igt@[email protected]
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18960/fi-tgl-y/igt@[email protected]
#### Warnings ####
* igt@i915_pm_rpm@basic-pci-d3-state:
- fi-tgl-y: [DMESG-WARN][23] ([i915#2411]) -> [DMESG-WARN][24] ([i915#1982] / [i915#2411])
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9378/fi-tgl-y/igt@[email protected]
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18960/fi-tgl-y/igt@[email protected]
[i915#1037]: https://gitlab.freedesktop.org/drm/intel/issues/1037
[i915#1635]: https://gitlab.freedesktop.org/drm/intel/issues/1635
[i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982
[i915#2411]: https://gitlab.freedesktop.org/drm/intel/issues/2411
[i915#402]: https://gitlab.freedesktop.org/drm/intel/issues/402
Participating hosts (44 -> 40)
------------------------------
Missing (4): fi-ilk-m540 fi-bsw-cyan fi-bdw-samus fi-hsw-4200u
Build changes
-------------
* Linux: CI_DRM_9378 -> Patchwork_18960
CI-20190529: 20190529
CI_DRM_9378: efc7f880143d6fe75922ad393045665c8ea60f57 @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_5868: 36b5fc05c30dbfd9242069fd6e51ebb419b386bc @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
Patchwork_18960: 7465b10d64b663f9871d5784c1827c49d5b43d8c @ git://anongit.freedesktop.org/gfx-ci/linux
== Linux commits ==
7465b10d64b6 blktrace: make relay callbacks const3c06adc8fcec ath9k: make relay callbacks const8d05f3328a3a ath11k: make relay callbacks consted32c4cf2519 ath10k: make relay callbacks constb36d2277bad7 drm/i915: make relay callbacks constdb8175f1b8a8 relay: allow the use of const callback structs 6da179258186 relay: make create_buf_file and remove_buf_file callbacks mandatory a7e1e2dd3c95 relay: require non-NULL callbacks in relay_open() e79c35f5d602 relay: remove unused buf_mapped and buf_unmapped callbacks
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18960/index.html
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx