Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Kernel 3.8.4 (/linux-rpi-3.8.y-temp) Compile issues ( No Cross compile ) - void violations , byte order #267

Closed
hvenzke opened this issue Apr 10, 2013 · 7 comments

Comments

@hvenzke
Copy link

hvenzke commented Apr 10, 2013

arch/arm/kernel/return_address.c:62:2: warning: #warning "TODO: return_address should use unwind tables" [- Wcpp]
arch/arm/kernel/return_address.c:62:2: warning: #warning "TODO: return_address should use unwind tables" [- Wcpp]


arch/arm/mach-bcm2708/bcm2708.c: In function 'bcm2708_restart':
arch/arm/mach-bcm2708/bcm2708.c:671:2: warning: passing argument 1 of '__raw_readl' makes pointer from inte ger without a cast [enabled by default]
In file included from include/linux/scatterlist.h:10:0,
from include/linux/dma-mapping.h:9,
from arch/arm/mach-bcm2708/bcm2708.c:23:
/usr/src/linux-rpi-3.8.y-temp/arch/arm/include/asm/io.h:104:19: note: expected 'const volatile void *' but argument is of type 'unsigned int'
arch/arm/mach-bcm2708/bcm2708.c:676:2: warning: passing argument 2 of '__raw_writel' makes pointer from int eger without a cast [enabled by default]
In file included from include/linux/scatterlist.h:10:0,
from include/linux/dma-mapping.h:9,
from arch/arm/mach-bcm2708/bcm2708.c:23:
/usr/src/linux-rpi-3.8.y-temp/arch/arm/include/asm/io.h:88:20: note: expected 'volatile void *' but argumen t is of type 'unsigned int'
arch/arm/mach-bcm2708/bcm2708.c:677:2: warning: passing argument 2 of '__raw_writel' makes pointer from int eger without a cast [enabled by default]
In file included from include/linux/scatterlist.h:10:0,
from include/linux/dma-mapping.h:9,
from arch/arm/mach-bcm2708/bcm2708.c:23:
/usr/src/linux-rpi-3.8.y-temp/arch/arm/include/asm/io.h:88:20: note: expected 'volatile void *' but argumen t is of type 'unsigned int'
arch/arm/mach-bcm2708/bcm2708.c: In function 'bcm2708_power_off':
arch/arm/mach-bcm2708/bcm2708.c:684:2: warning: passing argument 1 of '__raw_readl' makes pointer from inte ger without a cast [enabled by default]
In file included from include/linux/scatterlist.h:10:0,
from include/linux/dma-mapping.h:9,
from arch/arm/mach-bcm2708/bcm2708.c:23:
/usr/src/linux-rpi-3.8.y-temp/arch/arm/include/asm/io.h:104:19: note: expected 'const volatile void *' but argument is of type 'unsigned int'
arch/arm/mach-bcm2708/bcm2708.c:686:2: warning: passing argument 2 of '__raw_writel' makes pointer from int eger without a cast [enabled by default]
In file included from include/linux/scatterlist.h:10:0,
from include/linux/dma-mapping.h:9,
from arch/arm/mach-bcm2708/bcm2708.c:23:

/usr/src/linux-rpi-3.8.y-temp/arch/arm/include/asm/io.h:88:20: note: expected 'volatile void *' but argumen t is of type 'unsigned int'

In file included from include/linux/byteorder/little_endian.h:6:0,
from /usr/src/linux-rpi-3.8.y-temp/arch/arm/include/uapi/asm/byteorder.h:21,
from include/asm-generic/bitops/le.h:5,
from /usr/src/linux-rpi-3.8.y-temp/arch/arm/include/asm/bitops.h:308,
from include/linux/bitops.h:22,
from include/linux/kernel.h:10,
from include/asm-generic/bug.h:13,
from /usr/src/linux-rpi-3.8.y-temp/arch/arm/include/asm/bug.h:59,
from include/linux/bug.h:4,
from include/linux/thread_info.h:11,
from include/linux/preempt.h:9,
from include/linux/spinlock.h:50,
from include/linux/wait.h:7,
from include/linux/fs.h:6,
from fs/cifs/cifssmb.c:30:
fs/cifs/cifssmb.c: In function 'CIFSSMBGetCIFSACL':
include/linux/byteorder/generic.h:165:7: warning: 'pSMB' may be used uninitialized in this function [-Wmaybe-uninitialized]

fs/cifs/cifssmb.c:3673:22: note: 'pSMB' was declared here

drivers/cpufreq/bcm2835-cpufreq.c: In function 'bcm2835_cpufreq_driver_target':
drivers/cpufreq/bcm2835-cpufreq.c:180:15: warning: unused variable 'cur' [-Wunused-variable]


CC drivers/mmc/host/sdhci-bcm2708.o
drivers/mmc/host/sdhci-bcm2708.c: In function 'sdhci_bcm2708_platdma_reset':
drivers/mmc/host/sdhci-bcm2708.c:650:16: warning: unused variable 'flags' [-Wunused-variable]
drivers/mmc/host/sdhci-bcm2708.c: In function 'sdhci_bcm2708_dma_complete_irq':
drivers/mmc/host/sdhci-bcm2708.c:747:16: warning: unused variable 'flags' [-Wunused-variable]


CC [M] drivers/usb/host/dwc_otg/dwc_otg_pcd_intr.o
drivers/usb/host/dwc_otg/dwc_otg_pcd_intr.c: In function 'dwc_otg_pcd_handle_out_ep_intr':

drivers/usb/host/dwc_otg/dwc_otg_pcd_intr.c:4279:21: warning: operation on 'status.d32' may be undefined [-Wsequence-point]

AS arch/arm/boot/compressed/head.o
arch/arm/boot/compressed/head.S: Assembler messages:
arch/arm/boot/compressed/head.S:565: Warning: (null)
arch/arm/boot/compressed/head.S:676: Warning: (null)
arch/arm/boot/compressed/head.S:698: Warning: (null)
arch/arm/boot/compressed/head.S:722: Warning: (null)
arch/arm/boot/compressed/head.S:726: Warning: (null)
arch/arm/boot/compressed/head.S:735: Warning: (null)
arch/arm/boot/compressed/head.S:978: Warning: (null)
arch/arm/boot/compressed/head.S:1017: Warning: (null)
arch/arm/boot/compressed/head.S:1018: Warning: (null)
arch/arm/boot/compressed/head.S:1048: Warning: (null)
arch/arm/boot/compressed/head.S:1055: Warning: (null)
arch/arm/boot/compressed/head.S:1063: Warning: (null)
arch/arm/boot/compressed/head.S:1074: Warning: (null)
arch/arm/boot/compressed/head.S:1088: Warning: (null)
arch/arm/boot/compressed/head.S:1120: Warning: (null)
arch/arm/boot/compressed/head.S:1122: Warning: (null)
arch/arm/boot/compressed/head.S:1123: Warning: (null)
arch/arm/boot/compressed/head.S:1130: Warning: (null)
arch/arm/boot/compressed/head.S:1162: Warning: (null)
XZKERN arch/arm/boot/compressed/piggy.xzkern
AS arch/arm/boot/compressed/piggy.xzkern.o
CC arch/arm/boot/compressed/misc.o
In file included from arch/arm/boot/compressed/misc.c:33:0:
arch/arm/mach-bcm2708/include/mach/uncompress.h: In function 'putc':
arch/arm/mach-bcm2708/include/mach/uncompress.h:40:2: warning: passing argument 1 of '__raw_readl' makes pointer from integer without a cast [enabled by default]
In file included from include/linux/io.h:22:0,
from arch/arm/mach-bcm2708/include/mach/uncompress.h:22,
from arch/arm/boot/compressed/misc.c:33:
/usr/src/linux-rpi-3.8.y-temp/arch/arm/include/asm/io.h:104:19: note: expected 'const volatile void *' but argument is of type 'int'
In file included from arch/arm/boot/compressed/misc.c:33:0:
arch/arm/mach-bcm2708/include/mach/uncompress.h:43:2: warning: passing argument 2 of '__raw_writel' makes pointer from integer without a cast [enabled by default]
In file included from include/linux/io.h:22:0,
from arch/arm/mach-bcm2708/include/mach/uncompress.h:22,
from arch/arm/boot/compressed/misc.c:33:
/usr/src/linux-rpi-3.8.y-temp/arch/arm/include/asm/io.h:88:20: note: expected 'volatile void *' but argument is of type 'int'
In file included from arch/arm/boot/compressed/misc.c:33:0:
arch/arm/mach-bcm2708/include/mach/uncompress.h: In function 'flush':
arch/arm/mach-bcm2708/include/mach/uncompress.h:51:3: warning: passing argument 1 of '__raw_readl' makes pointer from integer without a cast [enabled by default]
In file included from include/linux/io.h:22:0,
from arch/arm/mach-bcm2708/include/mach/uncompress.h:22,
from arch/arm/boot/compressed/misc.c:33:
/usr/src/linux-rpi-3.8.y-temp/arch/arm/include/asm/io.h:104:19: note: expected 'const volatile void *' but argument is of type 'int'
In file included from arch/arm/boot/compressed/misc.c:33:0:
arch/arm/mach-bcm2708/include/mach/uncompress.h: In function 'arch_decomp_setup':
arch/arm/mach-bcm2708/include/mach/uncompress.h:67:2: warning: passing argument 2 of '__raw_writel' makes pointer from integer without a cast [enabled by default]
In file included from include/linux/io.h:22:0,
from arch/arm/mach-bcm2708/include/mach/uncompress.h:22,
from arch/arm/boot/compressed/misc.c:33:
/usr/src/linux-rpi-3.8.y-temp/arch/arm/include/asm/io.h:88:20: note: expected 'volatile void *' but argument is of type 'int'
In file included from arch/arm/boot/compressed/misc.c:33:0:
arch/arm/mach-bcm2708/include/mach/uncompress.h:70:2: warning: passing argument 2 of '__raw_writel' makes pointer from integer without a cast [enabled by default]
In file included from include/linux/io.h:22:0,
from arch/arm/mach-bcm2708/include/mach/uncompress.h:22,
from arch/arm/boot/compressed/misc.c:33:
/usr/src/linux-rpi-3.8.y-temp/arch/arm/include/asm/io.h:88:20: note: expected 'volatile void *' but argument is of type 'int'
In file included from arch/arm/boot/compressed/misc.c:33:0:
arch/arm/mach-bcm2708/include/mach/uncompress.h:71:2: warning: passing argument 2 of '__raw_writel' makes pointer from integer without a cast [enabled by default]
In file included from include/linux/io.h:22:0,
from arch/arm/mach-bcm2708/include/mach/uncompress.h:22,
from arch/arm/boot/compressed/misc.c:33:
/usr/src/linux-rpi-3.8.y-temp/arch/arm/include/asm/io.h:88:20: note: expected 'volatile void *' but argument is of type 'int'
In file included from arch/arm/boot/compressed/misc.c:33:0:
arch/arm/mach-bcm2708/include/mach/uncompress.h:74:2: warning: passing argument 2 of '__raw_writel' makes pointer from integer without a cast [enabled by default]
In file included from include/linux/io.h:22:0,
from arch/arm/mach-bcm2708/include/mach/uncompress.h:22,
from arch/arm/boot/compressed/misc.c:33:
/usr/src/linux-rpi-3.8.y-temp/arch/arm/include/asm/io.h:88:20: note: expected 'volatile void *' but argument is of type 'int'
In file included from arch/arm/boot/compressed/misc.c:33:0:
arch/arm/mach-bcm2708/include/mach/uncompress.h:78:4: warning: passing argument 2 of '__raw_writel' makes pointer from integer without a cast [enabled by default]
In file included from include/linux/io.h:22:0,
from arch/arm/mach-bcm2708/include/mach/uncompress.h:22,
from arch/arm/boot/compressed/misc.c:33:
/usr/src/linux-rpi-3.8.y-temp/arch/arm/include/asm/io.h:88:20: note: expected 'volatile void *' but argument is of type 'int'
CC arch/arm/boot/compressed/decompress.o

@popcornmix
Copy link
Collaborator

Is this causing a failure to build, or just warnings?
This is purely an experimental tree, so making it compile without warnings isn't the highest priority.

@N8Fear
Copy link

N8Fear commented Apr 10, 2013

They are just warnings, iirc - it's an relatively easy fix, though.Check the uncompress.h from my repo: https://github.com/N8Fear/rpi-sources/blob/e03d635a10600a2e08876234b6e9940e1e548fe2/arch/arm/mach-bcm2708/include/mach/uncompress.h

It's just adding some explicit casts.

@popcornmix
Copy link
Collaborator

@N8Fear
I'm pretty sure the casts aren't the best solution. There's probably a kernel macro which will do what we want.
I believe "volatile" is virtually banned when upstreaming kernel code (https://www.kernel.org/doc/Documentation/volatile-considered-harmful.txt)

@hvenzke
Copy link
Author

hvenzke commented Apr 10, 2013

Thats warnings at current compile the 3.8.4 in my PI Bseries ( 512M ram )

Full compile take ~30h. No CrossCompiling.!!

I just do "nohup make ; make zImage ; make modules ; &" .

Let me call an tester of your Code :-) .

Kernel Compile Violations - that I was tranied 20j ago starting with 0.4.2 series , shuold be reported.
So i did...

regards

@N8Fear
Copy link

N8Fear commented Apr 10, 2013

@popcornmix
I'm quite confident that it either doesn't matter (the underlying code makes extensive use of volatile even without the casting) or is even the right thing to do (as the code in question is implementing a barrier and therefore a construct that should ensure mutual exclusion. Because of that the use of volatile make sense to me as it ensures that the resulting binary uses the contents of the memory and not some cached values (to make sure that the value of the barrier is actually correct). There are cases in which the use of volatile simply is a necessity...

@hvenzke
Copy link
Author

hvenzke commented Apr 10, 2013

reopen #112 at kernel 3.8.4

no warning and/or msg when CONFIG_USB_DWCOTG=m that this been not possible.

popcornmix pushed a commit that referenced this issue May 1, 2013
The stripe hash table is large, starting with allocation order 4 and can go as
high as order 7 in case lock debugging is turned on and structure padding
happens.

Observed mount failure:

mount: page allocation failure: order:7, mode:0x200050
Pid: 8234, comm: mount Tainted: G        W    3.8.0-default+ #267
Call Trace:
 [<ffffffff81114353>] warn_alloc_failed+0xf3/0x140
 [<ffffffff811171d2>] ? __alloc_pages_direct_compact+0x92/0x250
 [<ffffffff81117ac3>] __alloc_pages_nodemask+0x733/0x9d0
 [<ffffffff81152878>] ? cache_alloc_refill+0x3f8/0x840
 [<ffffffff811528bc>] cache_alloc_refill+0x43c/0x840
 [<ffffffff811302eb>] ? is_kernel_percpu_address+0x4b/0x90
 [<ffffffffa00a00ac>] ? btrfs_alloc_stripe_hash_table+0x5c/0x130 [btrfs]
 [<ffffffff811531d7>] kmem_cache_alloc_trace+0x247/0x270
 [<ffffffffa00a00ac>] btrfs_alloc_stripe_hash_table+0x5c/0x130 [btrfs]
 [<ffffffffa003133f>] open_ctree+0xb2f/0x1f90 [btrfs]
 [<ffffffff81397289>] ? string+0x49/0xe0
 [<ffffffff813987b3>] ? vsnprintf+0x443/0x5d0
 [<ffffffffa0007cb6>] btrfs_mount+0x526/0x600 [btrfs]
 [<ffffffff8115127c>] ? cache_alloc_debugcheck_after+0x4c/0x200
 [<ffffffff81162b90>] mount_fs+0x20/0xe0
 [<ffffffff8117db26>] vfs_kern_mount+0x76/0x120
 [<ffffffff811801b6>] do_mount+0x386/0x980
 [<ffffffff8112a5cb>] ? strndup_user+0x5b/0x80
 [<ffffffff81180840>] sys_mount+0x90/0xe0
 [<ffffffff81962e99>] system_call_fastpath+0x16/0x1b

Signed-off-by: David Sterba <dsterba@suse.cz>
Signed-off-by: Josef Bacik <jbacik@fusionio.com>
@hvenzke
Copy link
Author

hvenzke commented Dec 22, 2013

close , im using 3.11.6 now

@hvenzke hvenzke closed this as completed Dec 22, 2013
popcornmix pushed a commit that referenced this issue Oct 9, 2023
Add various tests to check maximum number of supported programs
being attached:

  # ./vmtest.sh -- ./test_progs -t tc_opts
  [...]
  ./test_progs -t tc_opts
  [    1.185325] bpf_testmod: loading out-of-tree module taints kernel.
  [    1.186826] bpf_testmod: module verification failed: signature and/or required key missing - tainting kernel
  [    1.270123] tsc: Refined TSC clocksource calibration: 3407.988 MHz
  [    1.272428] clocksource: tsc: mask: 0xffffffffffffffff max_cycles: 0x311fc932722, max_idle_ns: 440795381586 ns
  [    1.276408] clocksource: Switched to clocksource tsc
  #252     tc_opts_after:OK
  #253     tc_opts_append:OK
  #254     tc_opts_basic:OK
  #255     tc_opts_before:OK
  #256     tc_opts_chain_classic:OK
  #257     tc_opts_chain_mixed:OK
  #258     tc_opts_delete_empty:OK
  #259     tc_opts_demixed:OK
  #260     tc_opts_detach:OK
  #261     tc_opts_detach_after:OK
  #262     tc_opts_detach_before:OK
  #263     tc_opts_dev_cleanup:OK
  #264     tc_opts_invalid:OK
  #265     tc_opts_max:OK              <--- (new test)
  #266     tc_opts_mixed:OK
  #267     tc_opts_prepend:OK
  #268     tc_opts_replace:OK
  #269     tc_opts_revision:OK
  Summary: 18/0 PASSED, 0 SKIPPED, 0 FAILED

Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/bpf/20230929204121.20305-2-daniel@iogearbox.net
popcornmix pushed a commit that referenced this issue Oct 16, 2023
Add a new test case which performs double query of the bpf_mprog through
libbpf API, but also via raw bpf(2) syscall. This is testing to gather
first the count and then in a subsequent probe the full information with
the program array without clearing passed structs in between.

  # ./vmtest.sh -- ./test_progs -t tc_opts
  [...]
  ./test_progs -t tc_opts
  [    1.398818] tsc: Refined TSC clocksource calibration: 3407.999 MHz
  [    1.400263] clocksource: tsc: mask: 0xffffffffffffffff max_cycles: 0x311fd336761, max_idle_ns: 440795243819 ns
  [    1.402734] clocksource: Switched to clocksource tsc
  [    1.426639] bpf_testmod: loading out-of-tree module taints kernel.
  [    1.428112] bpf_testmod: module verification failed: signature and/or required key missing - tainting kernel
  #252     tc_opts_after:OK
  #253     tc_opts_append:OK
  #254     tc_opts_basic:OK
  #255     tc_opts_before:OK
  #256     tc_opts_chain_classic:OK
  #257     tc_opts_chain_mixed:OK
  #258     tc_opts_delete_empty:OK
  #259     tc_opts_demixed:OK
  #260     tc_opts_detach:OK
  #261     tc_opts_detach_after:OK
  #262     tc_opts_detach_before:OK
  #263     tc_opts_dev_cleanup:OK
  #264     tc_opts_invalid:OK
  #265     tc_opts_max:OK
  #266     tc_opts_mixed:OK
  #267     tc_opts_prepend:OK
  #268     tc_opts_query:OK            <--- (new test)
  #269     tc_opts_replace:OK
  #270     tc_opts_revision:OK
  Summary: 19/0 PASSED, 0 SKIPPED, 0 FAILED

Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Link: https://lore.kernel.org/r/20231006220655.1653-4-daniel@iogearbox.net
Signed-off-by: Martin KaFai Lau <martin.lau@kernel.org>
popcornmix pushed a commit that referenced this issue Oct 16, 2023
Add a new test case to query on an empty bpf_mprog and pass the revision
directly into expected_revision for attachment to assert that this does
succeed.

  ./test_progs -t tc_opts
  [    1.406778] tsc: Refined TSC clocksource calibration: 3407.990 MHz
  [    1.408863] clocksource: tsc: mask: 0xffffffffffffffff max_cycles: 0x311fcaf6eb0, max_idle_ns: 440795321766 ns
  [    1.412419] clocksource: Switched to clocksource tsc
  [    1.428671] bpf_testmod: loading out-of-tree module taints kernel.
  [    1.430260] bpf_testmod: module verification failed: signature and/or required key missing - tainting kernel
  #252     tc_opts_after:OK
  #253     tc_opts_append:OK
  #254     tc_opts_basic:OK
  #255     tc_opts_before:OK
  #256     tc_opts_chain_classic:OK
  #257     tc_opts_chain_mixed:OK
  #258     tc_opts_delete_empty:OK
  #259     tc_opts_demixed:OK
  #260     tc_opts_detach:OK
  #261     tc_opts_detach_after:OK
  #262     tc_opts_detach_before:OK
  #263     tc_opts_dev_cleanup:OK
  #264     tc_opts_invalid:OK
  #265     tc_opts_max:OK
  #266     tc_opts_mixed:OK
  #267     tc_opts_prepend:OK
  #268     tc_opts_query:OK
  #269     tc_opts_query_attach:OK     <--- (new test)
  #270     tc_opts_replace:OK
  #271     tc_opts_revision:OK
  Summary: 20/0 PASSED, 0 SKIPPED, 0 FAILED

Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Link: https://lore.kernel.org/r/20231006220655.1653-6-daniel@iogearbox.net
Signed-off-by: Martin KaFai Lau <martin.lau@kernel.org>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants