* [mips-sjhill:mips-for-linux-next 58/62] arch/mips/kernel/uprobes.c:304:15: error: variable or field 'kstart' declared void
@ 2016-09-23 18:06 kbuild test robot
2016-09-26 10:24 ` Ralf Baechle
0 siblings, 1 reply; 4+ messages in thread
From: kbuild test robot @ 2016-09-23 18:06 UTC (permalink / raw)
To: James Hogan; +Cc: kbuild-all, linux-mips, Ralf Baechle
[-- Attachment #1: Type: text/plain, Size: 2945 bytes --]
tree: git://git.linux-mips.org/pub/scm/sjhill/linux-sjhill.git mips-for-linux-next
head: 3cd97a2d95ac84bf17d4d538960d3e17585a791c
commit: a0b7ccb92e7b57f3c4cf5bf8a875fe7ecf00fe2c [58/62] MIPS: uprobes: Flush icache via kernel address
config: mips-allmodconfig (attached as .config)
compiler: mips-linux-gnu-gcc (Debian 6.1.1-9) 6.1.1 20160705
reproduce:
wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
git checkout a0b7ccb92e7b57f3c4cf5bf8a875fe7ecf00fe2c
# save the attached .config to linux build tree
make.cross ARCH=mips
All error/warnings (new ones prefixed by >>):
arch/mips/kernel/uprobes.c: In function 'arch_uprobe_copy_ixol':
>> arch/mips/kernel/uprobes.c:304:15: error: variable or field 'kstart' declared void
void *kaddr, kstart;
^~~~~~
>> arch/mips/kernel/uprobes.c:308:9: warning: assignment makes integer from pointer without a cast [-Wint-conversion]
kstart = kaddr + (vaddr & ~PAGE_MASK);
^
>> arch/mips/kernel/uprobes.c:309:9: warning: passing argument 1 of 'memcpy' makes pointer from integer without a cast [-Wint-conversion]
memcpy(kstart, src, len);
^~~~~~
In file included from include/linux/string.h:18:0,
from include/linux/bitmap.h:8,
from include/linux/cpumask.h:11,
from arch/mips/include/asm/processor.h:15,
from arch/mips/include/asm/thread_info.h:15,
from include/linux/thread_info.h:54,
from include/asm-generic/preempt.h:4,
from ./arch/mips/include/generated/asm/preempt.h:1,
from include/linux/preempt.h:59,
from include/linux/spinlock.h:50,
from include/linux/wait.h:8,
from include/linux/fs.h:5,
from include/linux/highmem.h:4,
from arch/mips/kernel/uprobes.c:1:
arch/mips/include/asm/string.h:138:14: note: expected 'void *' but argument is of type 'int'
extern void *memcpy(void *__to, __const__ void *__from, size_t __n);
^~~~~~
vim +/kstart +304 arch/mips/kernel/uprobes.c
298 *(uprobe_opcode_t *)&auprobe->orig_inst[0].word);
299 }
300
301 void __weak arch_uprobe_copy_ixol(struct page *page, unsigned long vaddr,
302 void *src, unsigned long len)
303 {
> 304 void *kaddr, kstart;
305
306 /* Initialize the slot */
307 kaddr = kmap_atomic(page);
> 308 kstart = kaddr + (vaddr & ~PAGE_MASK);
> 309 memcpy(kstart, src, len);
310 flush_icache_range(kstart, kstart + len);
311 kunmap_atomic(kaddr);
312 }
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 42981 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [mips-sjhill:mips-for-linux-next 58/62] arch/mips/kernel/uprobes.c:304:15: error: variable or field 'kstart' declared void
2016-09-23 18:06 [mips-sjhill:mips-for-linux-next 58/62] arch/mips/kernel/uprobes.c:304:15: error: variable or field 'kstart' declared void kbuild test robot
@ 2016-09-26 10:24 ` Ralf Baechle
2016-09-26 13:07 ` James Hogan
0 siblings, 1 reply; 4+ messages in thread
From: Ralf Baechle @ 2016-09-26 10:24 UTC (permalink / raw)
To: kbuild test robot; +Cc: James Hogan, kbuild-all, linux-mips
On Sat, Sep 24, 2016 at 02:06:11AM +0800, kbuild test robot wrote:
> From: kbuild test robot <fengguang.wu@intel.com>
> To: James Hogan <james.hogan@imgtec.com>
> Cc: kbuild-all@01.org, linux-mips@linux-mips.org, Ralf Baechle
> <ralf@linux-mips.org>
> Subject: [mips-sjhill:mips-for-linux-next 58/62]
> arch/mips/kernel/uprobes.c:304:15: error: variable or field 'kstart'
> declared void
> Content-Type: multipart/mixed; boundary="5mCyUwZo2JvN/JJP"
>
> tree: git://git.linux-mips.org/pub/scm/sjhill/linux-sjhill.git mips-for-linux-next
> head: 3cd97a2d95ac84bf17d4d538960d3e17585a791c
> commit: a0b7ccb92e7b57f3c4cf5bf8a875fe7ecf00fe2c [58/62] MIPS: uprobes: Flush icache via kernel address
> config: mips-allmodconfig (attached as .config)
> compiler: mips-linux-gnu-gcc (Debian 6.1.1-9) 6.1.1 20160705
> reproduce:
> wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
> chmod +x ~/bin/make.cross
> git checkout a0b7ccb92e7b57f3c4cf5bf8a875fe7ecf00fe2c
> # save the attached .config to linux build tree
> make.cross ARCH=mips
>
> All error/warnings (new ones prefixed by >>):
>
> arch/mips/kernel/uprobes.c: In function 'arch_uprobe_copy_ixol':
> >> arch/mips/kernel/uprobes.c:304:15: error: variable or field 'kstart' declared void
> void *kaddr, kstart;
> ^~~~~~
> >> arch/mips/kernel/uprobes.c:308:9: warning: assignment makes integer from pointer without a cast [-Wint-conversion]
> kstart = kaddr + (vaddr & ~PAGE_MASK);
> ^
> >> arch/mips/kernel/uprobes.c:309:9: warning: passing argument 1 of 'memcpy' makes pointer from integer without a cast [-Wint-conversion]
> memcpy(kstart, src, len);
> ^~~~~~
> In file included from include/linux/string.h:18:0,
> from include/linux/bitmap.h:8,
> from include/linux/cpumask.h:11,
> from arch/mips/include/asm/processor.h:15,
> from arch/mips/include/asm/thread_info.h:15,
> from include/linux/thread_info.h:54,
> from include/asm-generic/preempt.h:4,
> from ./arch/mips/include/generated/asm/preempt.h:1,
> from include/linux/preempt.h:59,
> from include/linux/spinlock.h:50,
> from include/linux/wait.h:8,
> from include/linux/fs.h:5,
> from include/linux/highmem.h:4,
> from arch/mips/kernel/uprobes.c:1:
> arch/mips/include/asm/string.h:138:14: note: expected 'void *' but argument is of type 'int'
> extern void *memcpy(void *__to, __const__ void *__from, size_t __n);
> ^~~~~~
>
> vim +/kstart +304 arch/mips/kernel/uprobes.c
>
> 298 *(uprobe_opcode_t *)&auprobe->orig_inst[0].word);
> 299 }
> 300
> 301 void __weak arch_uprobe_copy_ixol(struct page *page, unsigned long vaddr,
> 302 void *src, unsigned long len)
> 303 {
> > 304 void *kaddr, kstart;
> 305
> 306 /* Initialize the slot */
> 307 kaddr = kmap_atomic(page);
> > 308 kstart = kaddr + (vaddr & ~PAGE_MASK);
> > 309 memcpy(kstart, src, len);
> 310 flush_icache_range(kstart, kstart + len);
> 311 kunmap_atomic(kaddr);
> 312 }
Something like below patch should do the trick. James?
Ralf
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
arch/mips/kernel/uprobes.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/arch/mips/kernel/uprobes.c b/arch/mips/kernel/uprobes.c
index 9a507ab..a896417 100644
--- a/arch/mips/kernel/uprobes.c
+++ b/arch/mips/kernel/uprobes.c
@@ -301,14 +301,14 @@ int set_orig_insn(struct arch_uprobe *auprobe, struct mm_struct *mm,
void __weak arch_uprobe_copy_ixol(struct page *page, unsigned long vaddr,
void *src, unsigned long len)
{
- void *kaddr, kstart;
+ unsigned long kaddr, kstart;
/* Initialize the slot */
- kaddr = kmap_atomic(page);
+ kaddr = (unsigned long)kmap_atomic(page);
kstart = kaddr + (vaddr & ~PAGE_MASK);
- memcpy(kstart, src, len);
+ memcpy((void *)kstart, src, len);
flush_icache_range(kstart, kstart + len);
- kunmap_atomic(kaddr);
+ kunmap_atomic((void *)kaddr);
}
/**
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [mips-sjhill:mips-for-linux-next 58/62] arch/mips/kernel/uprobes.c:304:15: error: variable or field 'kstart' declared void
2016-09-26 10:24 ` Ralf Baechle
@ 2016-09-26 13:07 ` James Hogan
2016-09-26 15:29 ` Ralf Baechle
0 siblings, 1 reply; 4+ messages in thread
From: James Hogan @ 2016-09-26 13:07 UTC (permalink / raw)
To: Ralf Baechle, kbuild test robot; +Cc: kbuild-all, linux-mips
On 26 September 2016 11:24:38 BST, Ralf Baechle <ralf@linux-mips.org> wrote:
>On Sat, Sep 24, 2016 at 02:06:11AM +0800, kbuild test robot wrote:
>
>> From: kbuild test robot <fengguang.wu@intel.com>
>> To: James Hogan <james.hogan@imgtec.com>
>> Cc: kbuild-all@01.org, linux-mips@linux-mips.org, Ralf Baechle
>> <ralf@linux-mips.org>
>> Subject: [mips-sjhill:mips-for-linux-next 58/62]
>> arch/mips/kernel/uprobes.c:304:15: error: variable or field 'kstart'
>> declared void
>> Content-Type: multipart/mixed; boundary="5mCyUwZo2JvN/JJP"
>>
>> tree: git://git.linux-mips.org/pub/scm/sjhill/linux-sjhill.git
>mips-for-linux-next
>> head: 3cd97a2d95ac84bf17d4d538960d3e17585a791c
>> commit: a0b7ccb92e7b57f3c4cf5bf8a875fe7ecf00fe2c [58/62] MIPS:
>uprobes: Flush icache via kernel address
>> config: mips-allmodconfig (attached as .config)
>> compiler: mips-linux-gnu-gcc (Debian 6.1.1-9) 6.1.1 20160705
>> reproduce:
>> wget
>https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross
>-O ~/bin/make.cross
>> chmod +x ~/bin/make.cross
>> git checkout a0b7ccb92e7b57f3c4cf5bf8a875fe7ecf00fe2c
>> # save the attached .config to linux build tree
>> make.cross ARCH=mips
>>
>> All error/warnings (new ones prefixed by >>):
>>
>> arch/mips/kernel/uprobes.c: In function 'arch_uprobe_copy_ixol':
>> >> arch/mips/kernel/uprobes.c:304:15: error: variable or field
>'kstart' declared void
>> void *kaddr, kstart;
>> ^~~~~~
>> >> arch/mips/kernel/uprobes.c:308:9: warning: assignment makes
>integer from pointer without a cast [-Wint-conversion]
>> kstart = kaddr + (vaddr & ~PAGE_MASK);
>> ^
>> >> arch/mips/kernel/uprobes.c:309:9: warning: passing argument 1 of
>'memcpy' makes pointer from integer without a cast [-Wint-conversion]
>> memcpy(kstart, src, len);
>> ^~~~~~
>> In file included from include/linux/string.h:18:0,
>> from include/linux/bitmap.h:8,
>> from include/linux/cpumask.h:11,
>> from arch/mips/include/asm/processor.h:15,
>> from arch/mips/include/asm/thread_info.h:15,
>> from include/linux/thread_info.h:54,
>> from include/asm-generic/preempt.h:4,
>> from
>./arch/mips/include/generated/asm/preempt.h:1,
>> from include/linux/preempt.h:59,
>> from include/linux/spinlock.h:50,
>> from include/linux/wait.h:8,
>> from include/linux/fs.h:5,
>> from include/linux/highmem.h:4,
>> from arch/mips/kernel/uprobes.c:1:
>> arch/mips/include/asm/string.h:138:14: note: expected 'void *' but
>argument is of type 'int'
>> extern void *memcpy(void *__to, __const__ void *__from, size_t
>__n);
>> ^~~~~~
>>
>> vim +/kstart +304 arch/mips/kernel/uprobes.c
>>
>> 298 *(uprobe_opcode_t *)&auprobe->orig_inst[0].word);
>> 299 }
>> 300
>> 301 void __weak arch_uprobe_copy_ixol(struct page *page, unsigned
>long vaddr,
>> 302 void *src, unsigned long len)
>> 303 {
>> > 304 void *kaddr, kstart;
>> 305
>> 306 /* Initialize the slot */
>> 307 kaddr = kmap_atomic(page);
>> > 308 kstart = kaddr + (vaddr & ~PAGE_MASK);
>> > 309 memcpy(kstart, src, len);
>> 310 flush_icache_range(kstart, kstart + len);
>> 311 kunmap_atomic(kaddr);
>> 312 }
>
>Something like below patch should do the trick. James?
My intention was I think for kstart to be void * (and to use void * arithmetic), but i'm indifferent if you prefer unsigned long for that. Apparently my build coverage was lacking for this patch, sorry about that!
Thanks
James
>
> Ralf
>
>Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
>
> arch/mips/kernel/uprobes.c | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
>diff --git a/arch/mips/kernel/uprobes.c b/arch/mips/kernel/uprobes.c
>index 9a507ab..a896417 100644
>--- a/arch/mips/kernel/uprobes.c
>+++ b/arch/mips/kernel/uprobes.c
>@@ -301,14 +301,14 @@ int set_orig_insn(struc arch_uprobe *auprobe,
>struct mm_struct *mm,
>void __weak arch_uprobe_copy_ixol(struct page *page, unsigned long
>vaddr,
> void *src, unsigned long len)
> {
>- void *kaddr, kstart;
>+ unsigned long kaddr, kstart;
>
> /* Initialize the slot */
>- kaddr = kmap_atomic(page);
>+ kaddr = (unsigned long)kmap_atomic(page);
> kstart = kaddr + (vaddr & ~PAGE_MASK);
>- memcpy(kstart, src, len);
>+ memcpy((void *)kstart, src, len);
> flush_icache_range(kstart, kstart + len);
>- kunmap_atomic(kaddr);
>+ kunmap_atomic((void *)kaddr);
> }
>
> /**
--
James Hogan
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [mips-sjhill:mips-for-linux-next 58/62] arch/mips/kernel/uprobes.c:304:15: error: variable or field 'kstart' declared void
2016-09-26 13:07 ` James Hogan
@ 2016-09-26 15:29 ` Ralf Baechle
0 siblings, 0 replies; 4+ messages in thread
From: Ralf Baechle @ 2016-09-26 15:29 UTC (permalink / raw)
To: James Hogan; +Cc: linux-mips
On Mon, Sep 26, 2016 at 02:07:03PM +0100, James Hogan wrote:
> My intention was I think for kstart to be void * (and to use void * arithmetic), but i'm indifferent if you prefer unsigned long for that. Apparently my build coverage was lacking for this patch, sorry about that!
Standard C doesn't allow arithmetic on void pointers; GCC does so as
an extension over standard C - and I tend to avoid such extensions, if
possible. I also tend to prefer unsigned long at a low level for things
such as cache flush operations - but more importantly I try to keep the
number of casts down.
Ralf
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2016-09-26 15:29 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-09-23 18:06 [mips-sjhill:mips-for-linux-next 58/62] arch/mips/kernel/uprobes.c:304:15: error: variable or field 'kstart' declared void kbuild test robot
2016-09-26 10:24 ` Ralf Baechle
2016-09-26 13:07 ` James Hogan
2016-09-26 15:29 ` Ralf Baechle
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.