Re: [PATCH] x86/tsc: use real seqcount_latch in cyc2ns_read_begin()

From: kbuild test robot
Date: Thu Oct 11 2018 - 19:26:53 EST

Hi Eric,

I love your patch! Perhaps something to improve:

[auto build test WARNING on tip/x86/core]
[also build test WARNING on v4.19-rc7 next-20181011]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

config: x86_64-randconfig-x000-201840 (attached as .config)
compiler: gcc-7 (Debian 7.3.0-1) 7.3.0
# save the attached .config to linux build tree
make ARCH=x86_64

All warnings (new ones prefixed by >>):

arch/x86/kernel/tsc.c: In function 'cyc2ns_read_begin':
>> arch/x86/kernel/tsc.c:69:33: warning: passing argument 1 of 'raw_read_seqcount_latch' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
seq = raw_read_seqcount_latch(&c2n->seq);
In file included from include/linux/time.h:6:0,
from include/linux/ktime.h:24,
from include/linux/timer.h:6,
from include/linux/workqueue.h:9,
from include/linux/rhashtable-types.h:15,
from include/linux/ipc.h:7,
from include/uapi/linux/sem.h:5,
from include/linux/sem.h:5,
from include/linux/sched.h:15,
from arch/x86/kernel/tsc.c:4:
include/linux/seqlock.h:279:19: note: expected 'seqcount_t * {aka struct seqcount *}' but argument is of type 'const seqcount_t * {aka const struct seqcount *}'
static inline int raw_read_seqcount_latch(seqcount_t *s)

vim +69 arch/x86/kernel/tsc.c

60 void cyc2ns_read_begin(struct cyc2ns_data *data)
61 {
62 const struct cyc2ns *c2n;
63 int seq;
65 preempt_disable_notrace();
67 c2n = this_cpu_ptr(&cyc2ns);
68 do {
> 69 seq = raw_read_seqcount_latch(&c2n->seq);
70 *data = c2n->data[seq & 1];
71 } while (read_seqcount_retry(&c2n->seq, seq));
72 }

0-DAY kernel test infrastructure Open Source Technology Center Intel Corporation

Attachment: .config.gz
Description: application/gzip