Currently the _dm RX handler detects breaks but does not pass any
characters to uart_handle_sysrq_char().
The _dm optimizations combined with the port's spin lock make if
difficult to pass all characters to the sysrq logic because we cannot
safely call uart_handle_sysrq_char() when the lock is held without
deadlock (the console handler also takes the lock).
Rather than passing all characters via uart_handle_sysrq_char() this patch
only passes the last few characters in the FIFO. This should include all
characters typed as a slow (human) rate. This makes the problem much
simpler and allows us to move the handling of these characters outside
of the port lock. This makes magic SysRq work if there is a human at
the keyboard (or a short delay in a script).
Signed-off-by: Daniel Thompson <daniel.thompson(a)linaro.org>
---
drivers/tty/serial/msm_serial.c | 26 +++++++++++++++++++++++---
1 file changed, 23 insertions(+), 3 deletions(-)
diff --git a/drivers/tty/serial/msm_serial.c b/drivers/tty/serial/msm_serial.c
index 4b6c783..24c4fd1 100644
--- a/drivers/tty/serial/msm_serial.c
+++ b/drivers/tty/serial/msm_serial.c
@@ -104,6 +104,7 @@ static void handle_rx_dm(struct uart_port *port, unsigned int misr)
unsigned int sr;
int count = 0;
struct msm_port *msm_port = UART_TO_MSM(port);
+ unsigned char buf[4];
if ((msm_read(port, UART_SR) & UART_SR_OVERRUN)) {
port->icount.overrun++;
@@ -125,11 +126,10 @@ static void handle_rx_dm(struct uart_port *port, unsigned int misr)
port->icount.rx += count;
while (count > 0) {
- unsigned char buf[4];
-
sr = msm_read(port, UART_SR);
if ((sr & UART_SR_RX_READY) == 0) {
msm_port->old_snap_state -= count;
+ count = 0;
break;
}
ioread32_rep(port->membase + UARTDM_RF, buf, 1);
@@ -140,13 +140,33 @@ static void handle_rx_dm(struct uart_port *port, unsigned int misr)
} else if (sr & UART_SR_PAR_FRAME_ERR)
port->icount.frame++;
- /* TODO: handle sysrq */
+ /* The last few characters receive special processing below. */
+ if (count <= 2)
+ break;
+
tty_insert_flip_string(tport, buf, min(count, 4));
count -= 4;
}
spin_unlock(&port->lock);
+
+ /*
+ * We have deferred the last few characters to be processed
+ * with the port unlocked. This allows all characters received at
+ * "human speed" to be passed through the magic SysRq handling.
+ * The hardware sends us two characters after a break (the second
+ * of which is \0) so we are forced to process up to two final
+ * characters rather than just one.
+ */
+ if (count > 0) {
+ if (!uart_handle_sysrq_char(port, buf[0]))
+ tty_insert_flip_string(tport, buf, count);
+ else if (count > 1 && !uart_handle_sysrq_char(port, buf[1]))
+ tty_insert_flip_char(tport, buf[1], 0);
+ }
+
tty_flip_buffer_push(tport);
+
spin_lock(&port->lock);
if (misr & (UART_IMR_RXSTALE))
--
1.9.3
Tree/Branch: next-20141030
Git describe: next-20141030
Commit: 5ddf011494 Add linux-next specific files for 20141030
Build Time: 24 min 28 sec
Passed: 7 / 8 ( 87.50 %)
Failed: 1 / 8 ( 12.50 %)
Errors: 3
Warnings: 33
Section Mismatches: 0
Failed defconfigs:
arm-allmodconfig
Errors:
arm-allmodconfig
/tmp/cccgTMuJ.s:366: Error: selected processor does not support ARM mode `isb'
/tmp/cccgTMuJ.s:369: Error: selected processor does not support ARM mode `isb'
/tmp/cccgTMuJ.s:371: Error: selected processor does not support ARM mode `isb'
-------------------------------------------------------------------------------
defconfigs with issues (other than build errors):
13 warnings 0 mismatches : arm64-allmodconfig
3 warnings 0 mismatches : arm-multi_v7_defconfig
2 warnings 0 mismatches : x86_64-defconfig
27 warnings 0 mismatches : arm-allmodconfig
2 warnings 0 mismatches : arm-allnoconfig
1 warnings 0 mismatches : x86_64-allnoconfig
2 warnings 0 mismatches : arm64-defconfig
-------------------------------------------------------------------------------
Errors summary: 3
1 /tmp/cccgTMuJ.s:371: Error: selected processor does not support ARM mode `isb'
1 /tmp/cccgTMuJ.s:369: Error: selected processor does not support ARM mode `isb'
1 /tmp/cccgTMuJ.s:366: Error: selected processor does not support ARM mode `isb'
Warnings Summary: 33
4 <stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp]
3 ../scripts/kconfig/menu.c:590:18: warning: 'jump' may be used uninitialized in this function [-Wmaybe-uninitialized]
3 ../mm/memcontrol.c:1643:13: warning: 'test_mem_cgroup_node_reclaimable' defined but not used [-Wunused-function]
3 ../fs/isofs/inode.c:269:1: warning: 'isofs_dentry_cmp' defined but not used [-Wunused-function]
3 ../fs/isofs/inode.c:257:1: warning: 'isofs_hash' defined but not used [-Wunused-function]
3 ../arch/arm/include/asm/pgtable.h:184:0: warning: "pgd_huge" redefined
2 ../include/linux/dynamic_debug.h:78:3: warning: unsupported argument to '__builtin_return_address'
2 ../fs/ocfs2/namei.c:2767:9: warning: suggest parentheses around operand of '!' or change '&' to '&&' or '!' to '~' [-Wparentheses]
2 ../drivers/scsi/ips.c:210:2: warning: #warning "This driver has only been tested on the x86/ia64/x86_64 platforms" [-Wcpp]
2 ../drivers/net/ethernet/dec/tulip/winbond-840.c:910:2: warning: #warning Processor architecture undefined [-Wcpp]
1 ../net/rds/iw_rdma.c:200:1: warning: the frame size of 1056 bytes is larger than 1024 bytes [-Wframe-larger-than=]
1 ../lib/lz4/lz4hc_compress.c:514:1: warning: the frame size of 1480 bytes is larger than 1024 bytes [-Wframe-larger-than=]
1 ../include/uapi/linux/swab.h:13:15: warning: integer overflow in expression [-Woverflow]
1 ../include/linux/kernel.h:712:17: warning: comparison of distinct pointer types lacks a cast
1 ../fs/btrfs/extent_io.c:2166:13: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../drivers/usb/renesas_usbhs/common.c:469:25: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
1 ../drivers/usb/gadget/udc/udc-xilinx.c:2136:34: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
1 ../drivers/staging/vt6655/device_main.c:2973:1: warning: the frame size of 1304 bytes is larger than 1024 bytes [-Wframe-larger-than=]
1 ../drivers/net/wireless/ath/wil6210/fw_inc.c:447:4: warning: format '%ld' expects argument of type 'long int', but argument 3 has type 'int' [-Wformat=]
1 ../drivers/net/ethernet/mellanox/mlx5/core/debugfs.c:467:46: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../drivers/net/ethernet/mellanox/mlx5/core/debugfs.c:307:11: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
1 ../drivers/net/ethernet/mellanox/mlx5/core/debugfs.c:303:11: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
1 ../drivers/net/ethernet/dec/tulip/tulip_core.c:101:2: warning: #warning Processor architecture undefined! [-Wcpp]
1 ../drivers/mtd/chips/cfi_cmdset_0020.c:651:1: warning: the frame size of 1208 bytes is larger than 1024 bytes [-Wframe-larger-than=]
1 ../drivers/infiniband/ulp/iser/iser_verbs.c:1203:14: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../drivers/infiniband/ulp/iser/iser_verbs.c:1198:14: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../drivers/infiniband/ulp/iser/iser_verbs.c:1172:31: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../drivers/infiniband/ulp/iser/iser_verbs.c:1171:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../drivers/infiniband/hw/qib/qib_qp.c:44:0: warning: "BITS_PER_PAGE" redefined
1 ../drivers/gpio/gpio-74xx-mmio.c:132:16: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
1 ../drivers/block/drbd/drbd_bitmap.c:483:0: warning: "BITS_PER_PAGE_MASK" redefined
1 ../drivers/block/drbd/drbd_bitmap.c:482:0: warning: "BITS_PER_PAGE" redefined
1 ../arch/arm/mach-cns3xxx/pcie.c:313:1: warning: the frame size of 1080 bytes is larger than 1024 bytes [-Wframe-larger-than=]
===============================================================================
Detailed per-defconfig build reports below:
-------------------------------------------------------------------------------
arm64-allmodconfig : PASS, 0 errors, 13 warnings, 0 section mismatches
Warnings:
../mm/memcontrol.c:1643:13: warning: 'test_mem_cgroup_node_reclaimable' defined but not used [-Wunused-function]
../drivers/block/drbd/drbd_bitmap.c:482:0: warning: "BITS_PER_PAGE" redefined
../drivers/block/drbd/drbd_bitmap.c:483:0: warning: "BITS_PER_PAGE_MASK" redefined
../drivers/gpio/gpio-74xx-mmio.c:132:16: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
../fs/isofs/inode.c:257:1: warning: 'isofs_hash' defined but not used [-Wunused-function]
../fs/isofs/inode.c:269:1: warning: 'isofs_dentry_cmp' defined but not used [-Wunused-function]
../fs/ocfs2/namei.c:2767:9: warning: suggest parentheses around operand of '!' or change '&' to '&&' or '!' to '~' [-Wparentheses]
../drivers/infiniband/hw/qib/qib_qp.c:44:0: warning: "BITS_PER_PAGE" redefined
../drivers/net/ethernet/dec/tulip/winbond-840.c:910:2: warning: #warning Processor architecture undefined [-Wcpp]
../drivers/net/ethernet/dec/tulip/tulip_core.c:101:2: warning: #warning Processor architecture undefined! [-Wcpp]
../drivers/usb/gadget/udc/udc-xilinx.c:2136:34: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
../drivers/usb/renesas_usbhs/common.c:469:25: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
../drivers/scsi/ips.c:210:2: warning: #warning "This driver has only been tested on the x86/ia64/x86_64 platforms" [-Wcpp]
-------------------------------------------------------------------------------
arm-multi_v7_defconfig : PASS, 0 errors, 3 warnings, 0 section mismatches
Warnings:
<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp]
../arch/arm/include/asm/pgtable.h:184:0: warning: "pgd_huge" redefined
<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp]
-------------------------------------------------------------------------------
x86_64-defconfig : PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
../fs/isofs/inode.c:257:1: warning: 'isofs_hash' defined but not used [-Wunused-function]
../fs/isofs/inode.c:269:1: warning: 'isofs_dentry_cmp' defined but not used [-Wunused-function]
-------------------------------------------------------------------------------
arm-allmodconfig : FAIL, 3 errors, 27 warnings, 0 section mismatches
Errors:
/tmp/cccgTMuJ.s:366: Error: selected processor does not support ARM mode `isb'
/tmp/cccgTMuJ.s:369: Error: selected processor does not support ARM mode `isb'
/tmp/cccgTMuJ.s:371: Error: selected processor does not support ARM mode `isb'
Warnings:
<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp]
../arch/arm/mach-cns3xxx/pcie.c:313:1: warning: the frame size of 1080 bytes is larger than 1024 bytes [-Wframe-larger-than=]
../arch/arm/include/asm/pgtable.h:184:0: warning: "pgd_huge" redefined
../arch/arm/include/asm/pgtable.h:184:0: warning: "pgd_huge" redefined
../mm/memcontrol.c:1643:13: warning: 'test_mem_cgroup_node_reclaimable' defined but not used [-Wunused-function]
../lib/lz4/lz4hc_compress.c:514:1: warning: the frame size of 1480 bytes is larger than 1024 bytes [-Wframe-larger-than=]
../fs/btrfs/extent_io.c:2166:13: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
../fs/isofs/inode.c:257:1: warning: 'isofs_hash' defined but not used [-Wunused-function]
../fs/isofs/inode.c:269:1: warning: 'isofs_dentry_cmp' defined but not used [-Wunused-function]
../fs/ocfs2/namei.c:2767:9: warning: suggest parentheses around operand of '!' or change '&' to '&&' or '!' to '~' [-Wparentheses]
../net/rds/iw_rdma.c:200:1: warning: the frame size of 1056 bytes is larger than 1024 bytes [-Wframe-larger-than=]
../include/linux/kernel.h:712:17: warning: comparison of distinct pointer types lacks a cast
../drivers/infiniband/ulp/iser/iser_verbs.c:1171:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
../drivers/infiniband/ulp/iser/iser_verbs.c:1172:31: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
../drivers/infiniband/ulp/iser/iser_verbs.c:1198:14: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
../drivers/infiniband/ulp/iser/iser_verbs.c:1203:14: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
../include/linux/dynamic_debug.h:78:3: warning: unsupported argument to '__builtin_return_address'
../include/linux/dynamic_debug.h:78:3: warning: unsupported argument to '__builtin_return_address'
../drivers/mtd/chips/cfi_cmdset_0020.c:651:1: warning: the frame size of 1208 bytes is larger than 1024 bytes [-Wframe-larger-than=]
../drivers/net/ethernet/dec/tulip/winbond-840.c:910:2: warning: #warning Processor architecture undefined [-Wcpp]
../drivers/net/ethernet/mellanox/mlx5/core/debugfs.c:303:11: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
../drivers/net/ethernet/mellanox/mlx5/core/debugfs.c:307:11: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
../drivers/net/ethernet/mellanox/mlx5/core/debugfs.c:467:46: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
../include/uapi/linux/swab.h:13:15: warning: integer overflow in expression [-Woverflow]
../drivers/net/wireless/ath/wil6210/fw_inc.c:447:4: warning: format '%ld' expects argument of type 'long int', but argument 3 has type 'int' [-Wformat=]
../drivers/scsi/ips.c:210:2: warning: #warning "This driver has only been tested on the x86/ia64/x86_64 platforms" [-Wcpp]
../drivers/staging/vt6655/device_main.c:2973:1: warning: the frame size of 1304 bytes is larger than 1024 bytes [-Wframe-larger-than=]
-------------------------------------------------------------------------------
arm-allnoconfig : PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
../scripts/kconfig/menu.c:590:18: warning: 'jump' may be used uninitialized in this function [-Wmaybe-uninitialized]
<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp]
-------------------------------------------------------------------------------
x86_64-allnoconfig : PASS, 0 errors, 1 warnings, 0 section mismatches
Warnings:
../scripts/kconfig/menu.c:590:18: warning: 'jump' may be used uninitialized in this function [-Wmaybe-uninitialized]
-------------------------------------------------------------------------------
arm64-defconfig : PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
../scripts/kconfig/menu.c:590:18: warning: 'jump' may be used uninitialized in this function [-Wmaybe-uninitialized]
../mm/memcontrol.c:1643:13: warning: 'test_mem_cgroup_node_reclaimable' defined but not used [-Wunused-function]
-------------------------------------------------------------------------------
Passed with no errors, warnings or mismatches:
arm64-allnoconfig
Tree/Branch: master
Git describe: v3.18-rc2-106-ga7ca10f263d7
Commit: a7ca10f263 Merge branch 'akpm' (incoming from Andrew Morton)
Build Time: 23 min 28 sec
Passed: 8 / 8 (100.00 %)
Failed: 0 / 8 ( 0.00 %)
Errors: 0
Warnings: 30
Section Mismatches: 0
-------------------------------------------------------------------------------
defconfigs with issues (other than build errors):
11 warnings 0 mismatches : arm64-allmodconfig
2 warnings 0 mismatches : arm-multi_v7_defconfig
21 warnings 0 mismatches : arm-allmodconfig
2 warnings 0 mismatches : arm-allnoconfig
2 warnings 0 mismatches : x86_64-allnoconfig
1 warnings 0 mismatches : arm64-defconfig
-------------------------------------------------------------------------------
Warnings Summary: 30
5 <stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp]
3 ../scripts/kconfig/menu.c:590:18: warning: 'jump' may be used uninitialized in this function [-Wmaybe-uninitialized]
2 ../include/linux/dynamic_debug.h:78:3: warning: unsupported argument to '__builtin_return_address'
2 ../drivers/scsi/ips.c:210:2: warning: #warning "This driver has only been tested on the x86/ia64/x86_64 platforms" [-Wcpp]
2 ../drivers/net/ethernet/dec/tulip/winbond-840.c:910:2: warning: #warning Processor architecture undefined [-Wcpp]
1 ../net/rds/iw_rdma.c:200:1: warning: the frame size of 1056 bytes is larger than 1024 bytes [-Wframe-larger-than=]
1 ../lib/lz4/lz4hc_compress.c:514:1: warning: the frame size of 1480 bytes is larger than 1024 bytes [-Wframe-larger-than=]
1 ../include/uapi/linux/swab.h:13:15: warning: integer overflow in expression [-Woverflow]
1 ../include/linux/kernel.h:707:17: warning: comparison of distinct pointer types lacks a cast
1 ../fs/btrfs/extent_io.c:2166:13: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../drivers/usb/renesas_usbhs/common.c:469:25: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
1 ../drivers/usb/gadget/udc/udc-xilinx.c:2136:34: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
1 ../drivers/staging/vt6655/device_main.c:2993:1: warning: the frame size of 1304 bytes is larger than 1024 bytes [-Wframe-larger-than=]
1 ../drivers/staging/bcm/CmHost.c:1564:3: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../drivers/staging/bcm/CmHost.c:1546:3: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../drivers/staging/bcm/CmHost.c:1503:3: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../drivers/net/ethernet/mellanox/mlx5/core/debugfs.c:467:46: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../drivers/net/ethernet/mellanox/mlx5/core/debugfs.c:307:11: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
1 ../drivers/net/ethernet/mellanox/mlx5/core/debugfs.c:303:11: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
1 ../drivers/net/ethernet/dec/tulip/tulip_core.c:101:2: warning: #warning Processor architecture undefined! [-Wcpp]
1 ../drivers/mtd/chips/cfi_cmdset_0020.c:651:1: warning: the frame size of 1208 bytes is larger than 1024 bytes [-Wframe-larger-than=]
1 ../drivers/infiniband/ulp/iser/iser_verbs.c:1203:14: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../drivers/infiniband/ulp/iser/iser_verbs.c:1198:14: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../drivers/infiniband/ulp/iser/iser_verbs.c:1172:31: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../drivers/infiniband/ulp/iser/iser_verbs.c:1171:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../drivers/infiniband/hw/qib/qib_qp.c:44:0: warning: "BITS_PER_PAGE" redefined
1 ../drivers/block/drbd/drbd_bitmap.c:483:0: warning: "BITS_PER_PAGE_MASK" redefined
1 ../drivers/block/drbd/drbd_bitmap.c:482:0: warning: "BITS_PER_PAGE" redefined
1 ../arch/x86/kernel/cpu/perf_event_intel_uncore_snb.c:193:7: warning: 'pci_dword' is used uninitialized in this function [-Wuninitialized]
1 ../arch/arm/mach-cns3xxx/pcie.c:313:1: warning: the frame size of 1080 bytes is larger than 1024 bytes [-Wframe-larger-than=]
===============================================================================
Detailed per-defconfig build reports below:
-------------------------------------------------------------------------------
arm64-allmodconfig : PASS, 0 errors, 11 warnings, 0 section mismatches
Warnings:
../drivers/block/drbd/drbd_bitmap.c:482:0: warning: "BITS_PER_PAGE" redefined
../drivers/block/drbd/drbd_bitmap.c:483:0: warning: "BITS_PER_PAGE_MASK" redefined
../drivers/infiniband/hw/qib/qib_qp.c:44:0: warning: "BITS_PER_PAGE" redefined
../drivers/staging/bcm/CmHost.c:1503:3: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
../drivers/staging/bcm/CmHost.c:1546:3: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
../drivers/staging/bcm/CmHost.c:1564:3: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
../drivers/net/ethernet/dec/tulip/winbond-840.c:910:2: warning: #warning Processor architecture undefined [-Wcpp]
../drivers/net/ethernet/dec/tulip/tulip_core.c:101:2: warning: #warning Processor architecture undefined! [-Wcpp]
../drivers/usb/gadget/udc/udc-xilinx.c:2136:34: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
../drivers/usb/renesas_usbhs/common.c:469:25: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
../drivers/scsi/ips.c:210:2: warning: #warning "This driver has only been tested on the x86/ia64/x86_64 platforms" [-Wcpp]
-------------------------------------------------------------------------------
arm-multi_v7_defconfig : PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp]
<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp]
-------------------------------------------------------------------------------
arm-allmodconfig : PASS, 0 errors, 21 warnings, 0 section mismatches
Warnings:
<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp]
../arch/arm/mach-cns3xxx/pcie.c:313:1: warning: the frame size of 1080 bytes is larger than 1024 bytes [-Wframe-larger-than=]
../lib/lz4/lz4hc_compress.c:514:1: warning: the frame size of 1480 bytes is larger than 1024 bytes [-Wframe-larger-than=]
../fs/btrfs/extent_io.c:2166:13: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
../include/linux/kernel.h:707:17: warning: comparison of distinct pointer types lacks a cast
../drivers/infiniband/ulp/iser/iser_verbs.c:1171:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
../drivers/infiniband/ulp/iser/iser_verbs.c:1172:31: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
../drivers/infiniband/ulp/iser/iser_verbs.c:1198:14: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
../drivers/infiniband/ulp/iser/iser_verbs.c:1203:14: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
../include/linux/dynamic_debug.h:78:3: warning: unsupported argument to '__builtin_return_address'
../include/linux/dynamic_debug.h:78:3: warning: unsupported argument to '__builtin_return_address'
../net/rds/iw_rdma.c:200:1: warning: the frame size of 1056 bytes is larger than 1024 bytes [-Wframe-larger-than=]
../drivers/mtd/chips/cfi_cmdset_0020.c:651:1: warning: the frame size of 1208 bytes is larger than 1024 bytes [-Wframe-larger-than=]
../drivers/net/ethernet/dec/tulip/winbond-840.c:910:2: warning: #warning Processor architecture undefined [-Wcpp]
../drivers/net/ethernet/mellanox/mlx5/core/debugfs.c:303:11: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
../drivers/net/ethernet/mellanox/mlx5/core/debugfs.c:307:11: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
../drivers/net/ethernet/mellanox/mlx5/core/debugfs.c:467:46: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
../include/uapi/linux/swab.h:13:15: warning: integer overflow in expression [-Woverflow]
../drivers/scsi/ips.c:210:2: warning: #warning "This driver has only been tested on the x86/ia64/x86_64 platforms" [-Wcpp]
../drivers/staging/vt6655/device_main.c:2993:1: warning: the frame size of 1304 bytes is larger than 1024 bytes [-Wframe-larger-than=]
<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp]
-------------------------------------------------------------------------------
arm-allnoconfig : PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
../scripts/kconfig/menu.c:590:18: warning: 'jump' may be used uninitialized in this function [-Wmaybe-uninitialized]
<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp]
-------------------------------------------------------------------------------
x86_64-allnoconfig : PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
../scripts/kconfig/menu.c:590:18: warning: 'jump' may be used uninitialized in this function [-Wmaybe-uninitialized]
../arch/x86/kernel/cpu/perf_event_intel_uncore_snb.c:193:7: warning: 'pci_dword' is used uninitialized in this function [-Wuninitialized]
-------------------------------------------------------------------------------
arm64-defconfig : PASS, 0 errors, 1 warnings, 0 section mismatches
Warnings:
../scripts/kconfig/menu.c:590:18: warning: 'jump' may be used uninitialized in this function [-Wmaybe-uninitialized]
-------------------------------------------------------------------------------
Passed with no errors, warnings or mismatches:
arm64-allnoconfig
x86_64-defconfig
close failed in file object destructor:
sys.excepthook is missing
lost sys.stderr
Tree/Branch: master
Git describe: v3.18-rc2-84-gd506aa68c23d
Commit: d506aa68c2 Merge branch 'for-linus' of git://git.kernel.dk/linux-block
Build Time: 20 min 19 sec
Passed: 8 / 8 (100.00 %)
Failed: 0 / 8 ( 0.00 %)
Errors: 0
Warnings: 32
Section Mismatches: 0
-------------------------------------------------------------------------------
defconfigs with issues (other than build errors):
2 warnings 0 mismatches : arm64-allnoconfig
13 warnings 0 mismatches : arm64-allmodconfig
4 warnings 0 mismatches : arm-multi_v7_defconfig
23 warnings 0 mismatches : arm-allmodconfig
4 warnings 0 mismatches : arm-allnoconfig
2 warnings 0 mismatches : x86_64-allnoconfig
3 warnings 0 mismatches : arm64-defconfig
-------------------------------------------------------------------------------
Warnings Summary: 32
6 ../drivers/base/dma-coherent.c:303:2: warning: initialization from incompatible pointer type
6 ../drivers/base/dma-coherent.c:303:2: warning: (near initialization for 'rmem_dma_ops.device_init')
5 <stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp]
3 ../scripts/kconfig/menu.c:590:18: warning: 'jump' may be used uninitialized in this function [-Wmaybe-uninitialized]
2 ../include/linux/dynamic_debug.h:78:3: warning: unsupported argument to '__builtin_return_address'
2 ../drivers/scsi/ips.c:210:2: warning: #warning "This driver has only been tested on the x86/ia64/x86_64 platforms" [-Wcpp]
2 ../drivers/net/ethernet/dec/tulip/winbond-840.c:910:2: warning: #warning Processor architecture undefined [-Wcpp]
1 ../net/rds/iw_rdma.c:200:1: warning: the frame size of 1056 bytes is larger than 1024 bytes [-Wframe-larger-than=]
1 ../lib/lz4/lz4hc_compress.c:514:1: warning: the frame size of 1480 bytes is larger than 1024 bytes [-Wframe-larger-than=]
1 ../include/uapi/linux/swab.h:13:15: warning: integer overflow in expression [-Woverflow]
1 ../include/linux/kernel.h:707:17: warning: comparison of distinct pointer types lacks a cast
1 ../fs/btrfs/extent_io.c:2166:13: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../drivers/usb/renesas_usbhs/common.c:469:25: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
1 ../drivers/usb/gadget/udc/udc-xilinx.c:2135:191: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
1 ../drivers/staging/vt6655/device_main.c:2993:1: warning: the frame size of 1304 bytes is larger than 1024 bytes [-Wframe-larger-than=]
1 ../drivers/staging/bcm/CmHost.c:1564:3: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../drivers/staging/bcm/CmHost.c:1546:3: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../drivers/staging/bcm/CmHost.c:1503:3: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../drivers/net/ethernet/mellanox/mlx5/core/debugfs.c:467:46: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../drivers/net/ethernet/mellanox/mlx5/core/debugfs.c:307:11: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
1 ../drivers/net/ethernet/mellanox/mlx5/core/debugfs.c:303:11: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
1 ../drivers/net/ethernet/dec/tulip/tulip_core.c:101:2: warning: #warning Processor architecture undefined! [-Wcpp]
1 ../drivers/mtd/chips/cfi_cmdset_0020.c:651:1: warning: the frame size of 1208 bytes is larger than 1024 bytes [-Wframe-larger-than=]
1 ../drivers/infiniband/ulp/iser/iser_verbs.c:1203:14: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../drivers/infiniband/ulp/iser/iser_verbs.c:1198:14: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../drivers/infiniband/ulp/iser/iser_verbs.c:1172:31: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../drivers/infiniband/ulp/iser/iser_verbs.c:1171:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../drivers/infiniband/hw/qib/qib_qp.c:44:0: warning: "BITS_PER_PAGE" redefined
1 ../drivers/block/drbd/drbd_bitmap.c:483:0: warning: "BITS_PER_PAGE_MASK" redefined
1 ../drivers/block/drbd/drbd_bitmap.c:482:0: warning: "BITS_PER_PAGE" redefined
1 ../arch/x86/kernel/cpu/perf_event_intel_uncore_snb.c:193:7: warning: 'pci_dword' is used uninitialized in this function [-Wuninitialized]
1 ../arch/arm/mach-cns3xxx/pcie.c:313:1: warning: the frame size of 1080 bytes is larger than 1024 bytes [-Wframe-larger-than=]
===============================================================================
Detailed per-defconfig build reports below:
-------------------------------------------------------------------------------
arm64-allnoconfig : PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
../drivers/base/dma-coherent.c:303:2: warning: initialization from incompatible pointer type
../drivers/base/dma-coherent.c:303:2: warning: (near initialization for 'rmem_dma_ops.device_init')
-------------------------------------------------------------------------------
arm64-allmodconfig : PASS, 0 errors, 13 warnings, 0 section mismatches
Warnings:
../drivers/base/dma-coherent.c:303:2: warning: initialization from incompatible pointer type
../drivers/base/dma-coherent.c:303:2: warning: (near initialization for 'rmem_dma_ops.device_init')
../drivers/block/drbd/drbd_bitmap.c:482:0: warning: "BITS_PER_PAGE" redefined
../drivers/block/drbd/drbd_bitmap.c:483:0: warning: "BITS_PER_PAGE_MASK" redefined
../drivers/infiniband/hw/qib/qib_qp.c:44:0: warning: "BITS_PER_PAGE" redefined
../drivers/staging/bcm/CmHost.c:1503:3: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
../drivers/staging/bcm/CmHost.c:1546:3: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
../drivers/staging/bcm/CmHost.c:1564:3: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
../drivers/net/ethernet/dec/tulip/winbond-840.c:910:2: warning: #warning Processor architecture undefined [-Wcpp]
../drivers/net/ethernet/dec/tulip/tulip_core.c:101:2: warning: #warning Processor architecture undefined! [-Wcpp]
../drivers/scsi/ips.c:210:2: warning: #warning "This driver has only been tested on the x86/ia64/x86_64 platforms" [-Wcpp]
../drivers/usb/gadget/udc/udc-xilinx.c:2135:191: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
../drivers/usb/renesas_usbhs/common.c:469:25: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
-------------------------------------------------------------------------------
arm-multi_v7_defconfig : PASS, 0 errors, 4 warnings, 0 section mismatches
Warnings:
<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp]
../drivers/base/dma-coherent.c:303:2: warning: initialization from incompatible pointer type
../drivers/base/dma-coherent.c:303:2: warning: (near initialization for 'rmem_dma_ops.device_init')
<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp]
-------------------------------------------------------------------------------
arm-allmodconfig : PASS, 0 errors, 23 warnings, 0 section mismatches
Warnings:
<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp]
../arch/arm/mach-cns3xxx/pcie.c:313:1: warning: the frame size of 1080 bytes is larger than 1024 bytes [-Wframe-larger-than=]
../drivers/base/dma-coherent.c:303:2: warning: initialization from incompatible pointer type
../drivers/base/dma-coherent.c:303:2: warning: (near initialization for 'rmem_dma_ops.device_init')
../fs/btrfs/extent_io.c:2166:13: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
../lib/lz4/lz4hc_compress.c:514:1: warning: the frame size of 1480 bytes is larger than 1024 bytes [-Wframe-larger-than=]
../include/linux/kernel.h:707:17: warning: comparison of distinct pointer types lacks a cast
../net/rds/iw_rdma.c:200:1: warning: the frame size of 1056 bytes is larger than 1024 bytes [-Wframe-larger-than=]
../drivers/infiniband/ulp/iser/iser_verbs.c:1171:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
../drivers/infiniband/ulp/iser/iser_verbs.c:1172:31: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
../drivers/infiniband/ulp/iser/iser_verbs.c:1198:14: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
../drivers/infiniband/ulp/iser/iser_verbs.c:1203:14: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
../include/linux/dynamic_debug.h:78:3: warning: unsupported argument to '__builtin_return_address'
../include/linux/dynamic_debug.h:78:3: warning: unsupported argument to '__builtin_return_address'
../drivers/mtd/chips/cfi_cmdset_0020.c:651:1: warning: the frame size of 1208 bytes is larger than 1024 bytes [-Wframe-larger-than=]
../drivers/net/ethernet/dec/tulip/winbond-840.c:910:2: warning: #warning Processor architecture undefined [-Wcpp]
../drivers/net/ethernet/mellanox/mlx5/core/debugfs.c:303:11: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
../drivers/net/ethernet/mellanox/mlx5/core/debugfs.c:307:11: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
../drivers/net/ethernet/mellanox/mlx5/core/debugfs.c:467:46: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
../include/uapi/linux/swab.h:13:15: warning: integer overflow in expression [-Woverflow]
../drivers/scsi/ips.c:210:2: warning: #warning "This driver has only been tested on the x86/ia64/x86_64 platforms" [-Wcpp]
../drivers/staging/vt6655/device_main.c:2993:1: warning: the frame size of 1304 bytes is larger than 1024 bytes [-Wframe-larger-than=]
<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp]
-------------------------------------------------------------------------------
arm-allnoconfig : PASS, 0 errors, 4 warnings, 0 section mismatches
Warnings:
../scripts/kconfig/menu.c:590:18: warning: 'jump' may be used uninitialized in this function [-Wmaybe-uninitialized]
<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp]
../drivers/base/dma-coherent.c:303:2: warning: initialization from incompatible pointer type
../drivers/base/dma-coherent.c:303:2: warning: (near initialization for 'rmem_dma_ops.device_init')
-------------------------------------------------------------------------------
x86_64-allnoconfig : PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
../scripts/kconfig/menu.c:590:18: warning: 'jump' may be used uninitialized in this function [-Wmaybe-uninitialized]
../arch/x86/kernel/cpu/perf_event_intel_uncore_snb.c:193:7: warning: 'pci_dword' is used uninitialized in this function [-Wuninitialized]
-------------------------------------------------------------------------------
arm64-defconfig : PASS, 0 errors, 3 warnings, 0 section mismatches
Warnings:
../scripts/kconfig/menu.c:590:18: warning: 'jump' may be used uninitialized in this function [-Wmaybe-uninitialized]
../drivers/base/dma-coherent.c:303:2: warning: initialization from incompatible pointer type
../drivers/base/dma-coherent.c:303:2: warning: (near initialization for 'rmem_dma_ops.device_init')
-------------------------------------------------------------------------------
Passed with no errors, warnings or mismatches:
x86_64-defconfig
Tree/Branch: next-20141029
Git describe: next-20141029
Commit: d5ca5767d7 Add linux-next specific files for 20141029
Build Time: 23 min 57 sec
Passed: 7 / 8 ( 87.50 %)
Failed: 1 / 8 ( 12.50 %)
Errors: 3
Warnings: 29
Section Mismatches: 0
Failed defconfigs:
arm-allmodconfig
Errors:
arm-allmodconfig
/tmp/cchfw4D6.s:366: Error: selected processor does not support ARM mode `isb'
/tmp/cchfw4D6.s:369: Error: selected processor does not support ARM mode `isb'
/tmp/cchfw4D6.s:371: Error: selected processor does not support ARM mode `isb'
-------------------------------------------------------------------------------
defconfigs with issues (other than build errors):
1 warnings 0 mismatches : arm64-allnoconfig
10 warnings 0 mismatches : arm64-allmodconfig
3 warnings 0 mismatches : arm-multi_v7_defconfig
22 warnings 0 mismatches : arm-allmodconfig
3 warnings 0 mismatches : arm-allnoconfig
1 warnings 0 mismatches : x86_64-allnoconfig
2 warnings 0 mismatches : arm64-defconfig
-------------------------------------------------------------------------------
Errors summary: 3
1 /tmp/cchfw4D6.s:371: Error: selected processor does not support ARM mode `isb'
1 /tmp/cchfw4D6.s:369: Error: selected processor does not support ARM mode `isb'
1 /tmp/cchfw4D6.s:366: Error: selected processor does not support ARM mode `isb'
Warnings Summary: 29
6 ../drivers/of/base.c:1472:1: warning: control reaches end of non-void function [-Wreturn-type]
4 <stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp]
3 ../scripts/kconfig/menu.c:590:18: warning: 'jump' may be used uninitialized in this function [-Wmaybe-uninitialized]
2 ../include/linux/dynamic_debug.h:78:3: warning: unsupported argument to '__builtin_return_address'
2 ../drivers/scsi/ips.c:210:2: warning: #warning "This driver has only been tested on the x86/ia64/x86_64 platforms" [-Wcpp]
2 ../drivers/net/ethernet/dec/tulip/winbond-840.c:910:2: warning: #warning Processor architecture undefined [-Wcpp]
1 ../net/rds/iw_rdma.c:200:1: warning: the frame size of 1056 bytes is larger than 1024 bytes [-Wframe-larger-than=]
1 ../lib/lz4/lz4hc_compress.c:514:1: warning: the frame size of 1480 bytes is larger than 1024 bytes [-Wframe-larger-than=]
1 ../include/uapi/linux/swab.h:13:15: warning: integer overflow in expression [-Woverflow]
1 ../include/linux/kernel.h:712:17: warning: comparison of distinct pointer types lacks a cast
1 ../fs/btrfs/extent_io.c:2166:13: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../drivers/usb/renesas_usbhs/common.c:469:25: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
1 ../drivers/usb/gadget/udc/udc-xilinx.c:2136:34: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
1 ../drivers/staging/vt6655/device_main.c:2973:1: warning: the frame size of 1304 bytes is larger than 1024 bytes [-Wframe-larger-than=]
1 ../drivers/net/wireless/ath/wil6210/fw_inc.c:447:4: warning: format '%ld' expects argument of type 'long int', but argument 3 has type 'int' [-Wformat=]
1 ../drivers/net/ethernet/mellanox/mlx5/core/debugfs.c:467:46: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../drivers/net/ethernet/mellanox/mlx5/core/debugfs.c:307:11: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
1 ../drivers/net/ethernet/mellanox/mlx5/core/debugfs.c:303:11: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
1 ../drivers/net/ethernet/dec/tulip/tulip_core.c:101:2: warning: #warning Processor architecture undefined! [-Wcpp]
1 ../drivers/mtd/chips/cfi_cmdset_0020.c:651:1: warning: the frame size of 1208 bytes is larger than 1024 bytes [-Wframe-larger-than=]
1 ../drivers/infiniband/ulp/iser/iser_verbs.c:1203:14: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../drivers/infiniband/ulp/iser/iser_verbs.c:1198:14: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../drivers/infiniband/ulp/iser/iser_verbs.c:1172:31: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../drivers/infiniband/ulp/iser/iser_verbs.c:1171:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../drivers/infiniband/hw/qib/qib_qp.c:44:0: warning: "BITS_PER_PAGE" redefined
1 ../drivers/gpio/gpio-74xx-mmio.c:132:16: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
1 ../drivers/block/drbd/drbd_bitmap.c:483:0: warning: "BITS_PER_PAGE_MASK" redefined
1 ../drivers/block/drbd/drbd_bitmap.c:482:0: warning: "BITS_PER_PAGE" redefined
1 ../arch/arm/mach-cns3xxx/pcie.c:313:1: warning: the frame size of 1080 bytes is larger than 1024 bytes [-Wframe-larger-than=]
===============================================================================
Detailed per-defconfig build reports below:
-------------------------------------------------------------------------------
arm64-allnoconfig : PASS, 0 errors, 1 warnings, 0 section mismatches
Warnings:
../drivers/of/base.c:1472:1: warning: control reaches end of non-void function [-Wreturn-type]
-------------------------------------------------------------------------------
arm64-allmodconfig : PASS, 0 errors, 10 warnings, 0 section mismatches
Warnings:
../drivers/block/drbd/drbd_bitmap.c:482:0: warning: "BITS_PER_PAGE" redefined
../drivers/block/drbd/drbd_bitmap.c:483:0: warning: "BITS_PER_PAGE_MASK" redefined
../drivers/gpio/gpio-74xx-mmio.c:132:16: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
../drivers/infiniband/hw/qib/qib_qp.c:44:0: warning: "BITS_PER_PAGE" redefined
../drivers/of/base.c:1472:1: warning: control reaches end of non-void function [-Wreturn-type]
../drivers/net/ethernet/dec/tulip/winbond-840.c:910:2: warning: #warning Processor architecture undefined [-Wcpp]
../drivers/net/ethernet/dec/tulip/tulip_core.c:101:2: warning: #warning Processor architecture undefined! [-Wcpp]
../drivers/usb/gadget/udc/udc-xilinx.c:2136:34: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
../drivers/usb/renesas_usbhs/common.c:469:25: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
../drivers/scsi/ips.c:210:2: warning: #warning "This driver has only been tested on the x86/ia64/x86_64 platforms" [-Wcpp]
-------------------------------------------------------------------------------
arm-multi_v7_defconfig : PASS, 0 errors, 3 warnings, 0 section mismatches
Warnings:
<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp]
../drivers/of/base.c:1472:1: warning: control reaches end of non-void function [-Wreturn-type]
<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp]
-------------------------------------------------------------------------------
arm-allmodconfig : FAIL, 3 errors, 22 warnings, 0 section mismatches
Errors:
/tmp/cchfw4D6.s:366: Error: selected processor does not support ARM mode `isb'
/tmp/cchfw4D6.s:369: Error: selected processor does not support ARM mode `isb'
/tmp/cchfw4D6.s:371: Error: selected processor does not support ARM mode `isb'
Warnings:
<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp]
../arch/arm/mach-cns3xxx/pcie.c:313:1: warning: the frame size of 1080 bytes is larger than 1024 bytes [-Wframe-larger-than=]
../lib/lz4/lz4hc_compress.c:514:1: warning: the frame size of 1480 bytes is larger than 1024 bytes [-Wframe-larger-than=]
../fs/btrfs/extent_io.c:2166:13: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
../include/linux/kernel.h:712:17: warning: comparison of distinct pointer types lacks a cast
../include/linux/dynamic_debug.h:78:3: warning: unsupported argument to '__builtin_return_address'
../include/linux/dynamic_debug.h:78:3: warning: unsupported argument to '__builtin_return_address'
../drivers/infiniband/ulp/iser/iser_verbs.c:1171:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
../drivers/infiniband/ulp/iser/iser_verbs.c:1172:31: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
../drivers/infiniband/ulp/iser/iser_verbs.c:1198:14: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
../drivers/infiniband/ulp/iser/iser_verbs.c:1203:14: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
../drivers/mtd/chips/cfi_cmdset_0020.c:651:1: warning: the frame size of 1208 bytes is larger than 1024 bytes [-Wframe-larger-than=]
../drivers/of/base.c:1472:1: warning: control reaches end of non-void function [-Wreturn-type]
../drivers/net/ethernet/dec/tulip/winbond-840.c:910:2: warning: #warning Processor architecture undefined [-Wcpp]
../drivers/net/ethernet/mellanox/mlx5/core/debugfs.c:303:11: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
../drivers/net/ethernet/mellanox/mlx5/core/debugfs.c:307:11: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
../drivers/net/ethernet/mellanox/mlx5/core/debugfs.c:467:46: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
../net/rds/iw_rdma.c:200:1: warning: the frame size of 1056 bytes is larger than 1024 bytes [-Wframe-larger-than=]
../include/uapi/linux/swab.h:13:15: warning: integer overflow in expression [-Woverflow]
../drivers/net/wireless/ath/wil6210/fw_inc.c:447:4: warning: format '%ld' expects argument of type 'long int', but argument 3 has type 'int' [-Wformat=]
../drivers/staging/vt6655/device_main.c:2973:1: warning: the frame size of 1304 bytes is larger than 1024 bytes [-Wframe-larger-than=]
../drivers/scsi/ips.c:210:2: warning: #warning "This driver has only been tested on the x86/ia64/x86_64 platforms" [-Wcpp]
-------------------------------------------------------------------------------
arm-allnoconfig : PASS, 0 errors, 3 warnings, 0 section mismatches
Warnings:
../scripts/kconfig/menu.c:590:18: warning: 'jump' may be used uninitialized in this function [-Wmaybe-uninitialized]
<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp]
../drivers/of/base.c:1472:1: warning: control reaches end of non-void function [-Wreturn-type]
-------------------------------------------------------------------------------
x86_64-allnoconfig : PASS, 0 errors, 1 warnings, 0 section mismatches
Warnings:
../scripts/kconfig/menu.c:590:18: warning: 'jump' may be used uninitialized in this function [-Wmaybe-uninitialized]
-------------------------------------------------------------------------------
arm64-defconfig : PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
../scripts/kconfig/menu.c:590:18: warning: 'jump' may be used uninitialized in this function [-Wmaybe-uninitialized]
../drivers/of/base.c:1472:1: warning: control reaches end of non-void function [-Wreturn-type]
-------------------------------------------------------------------------------
Passed with no errors, warnings or mismatches:
x86_64-defconfig
Tree/Branch: master
Git describe: v3.18-rc2-53-g9f76628da20f
Commit: 9f76628da2 Merge branch 'for-3.18' of git://linux-nfs.org/~bfields/linux
Build Time: 22 min 29 sec
Passed: 8 / 8 (100.00 %)
Failed: 0 / 8 ( 0.00 %)
Errors: 0
Warnings: 32
Section Mismatches: 0
-------------------------------------------------------------------------------
defconfigs with issues (other than build errors):
2 warnings 0 mismatches : arm64-allnoconfig
13 warnings 0 mismatches : arm64-allmodconfig
4 warnings 0 mismatches : arm-multi_v7_defconfig
23 warnings 0 mismatches : arm-allmodconfig
4 warnings 0 mismatches : arm-allnoconfig
2 warnings 0 mismatches : x86_64-allnoconfig
3 warnings 0 mismatches : arm64-defconfig
-------------------------------------------------------------------------------
Warnings Summary: 32
6 ../drivers/base/dma-coherent.c:303:2: warning: initialization from incompatible pointer type
6 ../drivers/base/dma-coherent.c:303:2: warning: (near initialization for 'rmem_dma_ops.device_init')
5 <stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp]
3 ../scripts/kconfig/menu.c:590:18: warning: 'jump' may be used uninitialized in this function [-Wmaybe-uninitialized]
2 ../include/linux/dynamic_debug.h:78:3: warning: unsupported argument to '__builtin_return_address'
2 ../drivers/scsi/ips.c:210:2: warning: #warning "This driver has only been tested on the x86/ia64/x86_64 platforms" [-Wcpp]
2 ../drivers/net/ethernet/dec/tulip/winbond-840.c:910:2: warning: #warning Processor architecture undefined [-Wcpp]
1 ../net/rds/iw_rdma.c:200:1: warning: the frame size of 1056 bytes is larger than 1024 bytes [-Wframe-larger-than=]
1 ../lib/lz4/lz4hc_compress.c:514:1: warning: the frame size of 1480 bytes is larger than 1024 bytes [-Wframe-larger-than=]
1 ../include/uapi/linux/swab.h:13:15: warning: integer overflow in expression [-Woverflow]
1 ../include/linux/kernel.h:707:17: warning: comparison of distinct pointer types lacks a cast
1 ../fs/btrfs/extent_io.c:2166:13: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../drivers/usb/renesas_usbhs/common.c:469:25: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
1 ../drivers/usb/gadget/udc/udc-xilinx.c:2135:191: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
1 ../drivers/staging/vt6655/device_main.c:2993:1: warning: the frame size of 1304 bytes is larger than 1024 bytes [-Wframe-larger-than=]
1 ../drivers/staging/bcm/CmHost.c:1564:3: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../drivers/staging/bcm/CmHost.c:1546:3: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../drivers/staging/bcm/CmHost.c:1503:3: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../drivers/net/ethernet/mellanox/mlx5/core/debugfs.c:467:46: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../drivers/net/ethernet/mellanox/mlx5/core/debugfs.c:307:11: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
1 ../drivers/net/ethernet/mellanox/mlx5/core/debugfs.c:303:11: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
1 ../drivers/net/ethernet/dec/tulip/tulip_core.c:101:2: warning: #warning Processor architecture undefined! [-Wcpp]
1 ../drivers/mtd/chips/cfi_cmdset_0020.c:651:1: warning: the frame size of 1208 bytes is larger than 1024 bytes [-Wframe-larger-than=]
1 ../drivers/infiniband/ulp/iser/iser_verbs.c:1203:14: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../drivers/infiniband/ulp/iser/iser_verbs.c:1198:14: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../drivers/infiniband/ulp/iser/iser_verbs.c:1172:31: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../drivers/infiniband/ulp/iser/iser_verbs.c:1171:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../drivers/infiniband/hw/qib/qib_qp.c:44:0: warning: "BITS_PER_PAGE" redefined
1 ../drivers/block/drbd/drbd_bitmap.c:483:0: warning: "BITS_PER_PAGE_MASK" redefined
1 ../drivers/block/drbd/drbd_bitmap.c:482:0: warning: "BITS_PER_PAGE" redefined
1 ../arch/x86/kernel/cpu/perf_event_intel_uncore_snb.c:193:7: warning: 'pci_dword' is used uninitialized in this function [-Wuninitialized]
1 ../arch/arm/mach-cns3xxx/pcie.c:313:1: warning: the frame size of 1080 bytes is larger than 1024 bytes [-Wframe-larger-than=]
===============================================================================
Detailed per-defconfig build reports below:
-------------------------------------------------------------------------------
arm64-allnoconfig : PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
../drivers/base/dma-coherent.c:303:2: warning: initialization from incompatible pointer type
../drivers/base/dma-coherent.c:303:2: warning: (near initialization for 'rmem_dma_ops.device_init')
-------------------------------------------------------------------------------
arm64-allmodconfig : PASS, 0 errors, 13 warnings, 0 section mismatches
Warnings:
../drivers/base/dma-coherent.c:303:2: warning: initialization from incompatible pointer type
../drivers/base/dma-coherent.c:303:2: warning: (near initialization for 'rmem_dma_ops.device_init')
../drivers/block/drbd/drbd_bitmap.c:482:0: warning: "BITS_PER_PAGE" redefined
../drivers/block/drbd/drbd_bitmap.c:483:0: warning: "BITS_PER_PAGE_MASK" redefined
../drivers/infiniband/hw/qib/qib_qp.c:44:0: warning: "BITS_PER_PAGE" redefined
../drivers/net/ethernet/dec/tulip/winbond-840.c:910:2: warning: #warning Processor architecture undefined [-Wcpp]
../drivers/net/ethernet/dec/tulip/tulip_core.c:101:2: warning: #warning Processor architecture undefined! [-Wcpp]
../drivers/staging/bcm/CmHost.c:1503:3: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
../drivers/staging/bcm/CmHost.c:1546:3: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
../drivers/staging/bcm/CmHost.c:1564:3: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
../drivers/scsi/ips.c:210:2: warning: #warning "This driver has only been tested on the x86/ia64/x86_64 platforms" [-Wcpp]
../drivers/usb/gadget/udc/udc-xilinx.c:2135:191: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
../drivers/usb/renesas_usbhs/common.c:469:25: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
-------------------------------------------------------------------------------
arm-multi_v7_defconfig : PASS, 0 errors, 4 warnings, 0 section mismatches
Warnings:
<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp]
../drivers/base/dma-coherent.c:303:2: warning: initialization from incompatible pointer type
../drivers/base/dma-coherent.c:303:2: warning: (near initialization for 'rmem_dma_ops.device_init')
<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp]
-------------------------------------------------------------------------------
arm-allmodconfig : PASS, 0 errors, 23 warnings, 0 section mismatches
Warnings:
<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp]
../arch/arm/mach-cns3xxx/pcie.c:313:1: warning: the frame size of 1080 bytes is larger than 1024 bytes [-Wframe-larger-than=]
../lib/lz4/lz4hc_compress.c:514:1: warning: the frame size of 1480 bytes is larger than 1024 bytes [-Wframe-larger-than=]
../fs/btrfs/extent_io.c:2166:13: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
../drivers/base/dma-coherent.c:303:2: warning: initialization from incompatible pointer type
../drivers/base/dma-coherent.c:303:2: warning: (near initialization for 'rmem_dma_ops.device_init')
../net/rds/iw_rdma.c:200:1: warning: the frame size of 1056 bytes is larger than 1024 bytes [-Wframe-larger-than=]
../drivers/infiniband/ulp/iser/iser_verbs.c:1171:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
../drivers/infiniband/ulp/iser/iser_verbs.c:1172:31: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
../drivers/infiniband/ulp/iser/iser_verbs.c:1198:14: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
../drivers/infiniband/ulp/iser/iser_verbs.c:1203:14: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
../include/linux/kernel.h:707:17: warning: comparison of distinct pointer types lacks a cast
../include/linux/dynamic_debug.h:78:3: warning: unsupported argument to '__builtin_return_address'
../include/linux/dynamic_debug.h:78:3: warning: unsupported argument to '__builtin_return_address'
../drivers/mtd/chips/cfi_cmdset_0020.c:651:1: warning: the frame size of 1208 bytes is larger than 1024 bytes [-Wframe-larger-than=]
../drivers/net/ethernet/dec/tulip/winbond-840.c:910:2: warning: #warning Processor architecture undefined [-Wcpp]
../include/uapi/linux/swab.h:13:15: warning: integer overflow in expression [-Woverflow]
../drivers/net/ethernet/mellanox/mlx5/core/debugfs.c:303:11: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
../drivers/net/ethernet/mellanox/mlx5/core/debugfs.c:307:11: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
../drivers/net/ethernet/mellanox/mlx5/core/debugfs.c:467:46: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
../drivers/scsi/ips.c:210:2: warning: #warning "This driver has only been tested on the x86/ia64/x86_64 platforms" [-Wcpp]
../drivers/staging/vt6655/device_main.c:2993:1: warning: the frame size of 1304 bytes is larger than 1024 bytes [-Wframe-larger-than=]
<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp]
-------------------------------------------------------------------------------
arm-allnoconfig : PASS, 0 errors, 4 warnings, 0 section mismatches
Warnings:
../scripts/kconfig/menu.c:590:18: warning: 'jump' may be used uninitialized in this function [-Wmaybe-uninitialized]
<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp]
../drivers/base/dma-coherent.c:303:2: warning: initialization from incompatible pointer type
../drivers/base/dma-coherent.c:303:2: warning: (near initialization for 'rmem_dma_ops.device_init')
-------------------------------------------------------------------------------
x86_64-allnoconfig : PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
../scripts/kconfig/menu.c:590:18: warning: 'jump' may be used uninitialized in this function [-Wmaybe-uninitialized]
../arch/x86/kernel/cpu/perf_event_intel_uncore_snb.c:193:7: warning: 'pci_dword' is used uninitialized in this function [-Wuninitialized]
-------------------------------------------------------------------------------
arm64-defconfig : PASS, 0 errors, 3 warnings, 0 section mismatches
Warnings:
../scripts/kconfig/menu.c:590:18: warning: 'jump' may be used uninitialized in this function [-Wmaybe-uninitialized]
../drivers/base/dma-coherent.c:303:2: warning: initialization from incompatible pointer type
../drivers/base/dma-coherent.c:303:2: warning: (near initialization for 'rmem_dma_ops.device_init')
-------------------------------------------------------------------------------
Passed with no errors, warnings or mismatches:
x86_64-defconfig
When the pmqos latency requirement is set to zero that means "poll in all the
cases".
That is correctly implemented on x86 but not on the other archs.
As how is written the code, if the latency request is zero, the governor will
return zero, so corresponding, for x86, to the poll function, but for the
others arch the default idle function. For example, on ARM this is wait-for-
interrupt with a latency of '1', so violating the constraint.
In order to fix that, do the latency requirement check *before* calling the
cpuidle framework in order to jump to the poll function without entering
cpuidle. That has several benefits:
1. It clarifies and unifies the code
2. It fixes x86 vs other archs behavior
3. Factors out the call to the same function
4. Prevent to enter the cpuidle framework with its expensive cost in
calculation
As the latency_req is needed in all the cases, change the select API to take
the latency_req as parameter in case it is not equal to zero.
As a positive side effect, it introduces the latency constraint specified
externally, so one more step to the cpuidle/scheduler integration.
Signed-off-by: Daniel Lezcano <daniel.lezcano(a)linaro.org>
---
drivers/cpuidle/cpuidle.c | 5 +++--
drivers/cpuidle/governors/ladder.c | 9 +--------
drivers/cpuidle/governors/menu.c | 8 ++------
include/linux/cpuidle.h | 7 ++++---
kernel/sched/idle.c | 18 ++++++++++++++----
5 files changed, 24 insertions(+), 23 deletions(-)
diff --git a/drivers/cpuidle/cpuidle.c b/drivers/cpuidle/cpuidle.c
index ee9df5e..372c36f 100644
--- a/drivers/cpuidle/cpuidle.c
+++ b/drivers/cpuidle/cpuidle.c
@@ -158,7 +158,8 @@ int cpuidle_enter_state(struct cpuidle_device *dev, struct cpuidle_driver *drv,
*
* Returns the index of the idle state.
*/
-int cpuidle_select(struct cpuidle_driver *drv, struct cpuidle_device *dev)
+int cpuidle_select(struct cpuidle_driver *drv, struct cpuidle_device *dev,
+ int latency_req)
{
if (off || !initialized)
return -ENODEV;
@@ -169,7 +170,7 @@ int cpuidle_select(struct cpuidle_driver *drv, struct cpuidle_device *dev)
if (unlikely(use_deepest_state))
return cpuidle_find_deepest_state(drv, dev);
- return cpuidle_curr_governor->select(drv, dev);
+ return cpuidle_curr_governor->select(drv, dev, latency_req);
}
/**
diff --git a/drivers/cpuidle/governors/ladder.c b/drivers/cpuidle/governors/ladder.c
index 044ee0d..18f0da9 100644
--- a/drivers/cpuidle/governors/ladder.c
+++ b/drivers/cpuidle/governors/ladder.c
@@ -64,18 +64,11 @@ static inline void ladder_do_selection(struct ladder_device *ldev,
* @dev: the CPU
*/
static int ladder_select_state(struct cpuidle_driver *drv,
- struct cpuidle_device *dev)
+ struct cpuidle_device *dev, int latency_req)
{
struct ladder_device *ldev = &__get_cpu_var(ladder_devices);
struct ladder_device_state *last_state;
int last_residency, last_idx = ldev->last_state_idx;
- int latency_req = pm_qos_request(PM_QOS_CPU_DMA_LATENCY);
-
- /* Special case when user has set very strict latency requirement */
- if (unlikely(latency_req == 0)) {
- ladder_do_selection(ldev, last_idx, 0);
- return 0;
- }
last_state = &ldev->states[last_idx];
diff --git a/drivers/cpuidle/governors/menu.c b/drivers/cpuidle/governors/menu.c
index 34db2fb..96f8fb0 100644
--- a/drivers/cpuidle/governors/menu.c
+++ b/drivers/cpuidle/governors/menu.c
@@ -287,10 +287,10 @@ again:
* @drv: cpuidle driver containing state data
* @dev: the CPU
*/
-static int menu_select(struct cpuidle_driver *drv, struct cpuidle_device *dev)
+static int menu_select(struct cpuidle_driver *drv, struct cpuidle_device *dev,
+ int latency_req)
{
struct menu_device *data = &__get_cpu_var(menu_devices);
- int latency_req = pm_qos_request(PM_QOS_CPU_DMA_LATENCY);
int i;
unsigned int interactivity_req;
unsigned long nr_iowaiters, cpu_load;
@@ -302,10 +302,6 @@ static int menu_select(struct cpuidle_driver *drv, struct cpuidle_device *dev)
data->last_state_idx = CPUIDLE_DRIVER_STATE_START - 1;
- /* Special case when user has set very strict latency requirement */
- if (unlikely(latency_req == 0))
- return 0;
-
/* determine the expected residency time, round up */
data->next_timer_us = ktime_to_us(tick_nohz_get_sleep_length());
diff --git a/include/linux/cpuidle.h b/include/linux/cpuidle.h
index 25e0df6..fb465c1 100644
--- a/include/linux/cpuidle.h
+++ b/include/linux/cpuidle.h
@@ -122,7 +122,7 @@ struct cpuidle_driver {
extern void disable_cpuidle(void);
extern int cpuidle_select(struct cpuidle_driver *drv,
- struct cpuidle_device *dev);
+ struct cpuidle_device *dev, int latency_req);
extern int cpuidle_enter(struct cpuidle_driver *drv,
struct cpuidle_device *dev, int index);
extern void cpuidle_reflect(struct cpuidle_device *dev, int index);
@@ -150,7 +150,7 @@ extern struct cpuidle_driver *cpuidle_get_cpu_driver(struct cpuidle_device *dev)
#else
static inline void disable_cpuidle(void) { }
static inline int cpuidle_select(struct cpuidle_driver *drv,
- struct cpuidle_device *dev)
+ struct cpuidle_device *dev, int latency_req)
{return -ENODEV; }
static inline int cpuidle_enter(struct cpuidle_driver *drv,
struct cpuidle_device *dev, int index)
@@ -205,7 +205,8 @@ struct cpuidle_governor {
struct cpuidle_device *dev);
int (*select) (struct cpuidle_driver *drv,
- struct cpuidle_device *dev);
+ struct cpuidle_device *dev,
+ int latency_req);
void (*reflect) (struct cpuidle_device *dev, int index);
struct module *owner;
diff --git a/kernel/sched/idle.c b/kernel/sched/idle.c
index 11e7bc4..25ba94d 100644
--- a/kernel/sched/idle.c
+++ b/kernel/sched/idle.c
@@ -5,6 +5,7 @@
#include <linux/cpu.h>
#include <linux/cpuidle.h>
#include <linux/tick.h>
+#include <linux/pm_qos.h>
#include <linux/mm.h>
#include <linux/stackprotector.h>
@@ -74,7 +75,7 @@ void __weak arch_cpu_idle(void)
* set, and it returns with polling set. If it ever stops polling, it
* must clear the polling bit.
*/
-static void cpuidle_idle_call(void)
+static void cpuidle_idle_call(unsigned int latency_req)
{
struct cpuidle_device *dev = __this_cpu_read(cpuidle_devices);
struct cpuidle_driver *drv = cpuidle_get_cpu_driver(dev);
@@ -107,7 +108,7 @@ static void cpuidle_idle_call(void)
* Ask the cpuidle framework to choose a convenient idle state.
* Fall back to the default arch idle method on errors.
*/
- next_state = cpuidle_select(drv, dev);
+ next_state = cpuidle_select(drv, dev, latency_req);
if (next_state < 0) {
use_default:
/*
@@ -182,6 +183,8 @@ exit_idle:
*/
static void cpu_idle_loop(void)
{
+ unsigned int latency_req;
+
while (1) {
/*
* If the arch has a polling bit, we maintain an invariant:
@@ -205,19 +208,26 @@ static void cpu_idle_loop(void)
local_irq_disable();
arch_cpu_idle_enter();
+ latency_req = pm_qos_request(PM_QOS_CPU_DMA_LATENCY);
+
/*
* In poll mode we reenable interrupts and spin.
*
+ * If the latency req is zero, we don't want to
+ * enter any idle state and we jump to the poll
+ * function directly
+ *
* Also if we detected in the wakeup from idle
* path that the tick broadcast device expired
* for us, we don't want to go deep idle as we
* know that the IPI is going to arrive right
* away
*/
- if (cpu_idle_force_poll || tick_check_broadcast_expired())
+ if (!latency_req || cpu_idle_force_poll ||
+ tick_check_broadcast_expired())
cpu_idle_poll();
else
- cpuidle_idle_call();
+ cpuidle_idle_call(latency_req);
arch_cpu_idle_exit();
}
--
1.9.1
Tree/Branch: next-20141028
Git describe: next-20141028
Commit: f63438dd84 Add linux-next specific files for 20141028
Build Time: 23 min 55 sec
Passed: 7 / 8 ( 87.50 %)
Failed: 1 / 8 ( 12.50 %)
Errors: 3
Warnings: 30
Section Mismatches: 0
Failed defconfigs:
arm-allmodconfig
Errors:
arm-allmodconfig
/tmp/cckem5CE.s:366: Error: selected processor does not support ARM mode `isb'
/tmp/cckem5CE.s:369: Error: selected processor does not support ARM mode `isb'
/tmp/cckem5CE.s:371: Error: selected processor does not support ARM mode `isb'
-------------------------------------------------------------------------------
defconfigs with issues (other than build errors):
1 warnings 0 mismatches : arm64-allnoconfig
10 warnings 0 mismatches : arm64-allmodconfig
3 warnings 0 mismatches : arm-multi_v7_defconfig
22 warnings 0 mismatches : arm-allmodconfig
3 warnings 0 mismatches : arm-allnoconfig
2 warnings 0 mismatches : x86_64-allnoconfig
2 warnings 0 mismatches : arm64-defconfig
-------------------------------------------------------------------------------
Errors summary: 3
1 /tmp/cckem5CE.s:371: Error: selected processor does not support ARM mode `isb'
1 /tmp/cckem5CE.s:369: Error: selected processor does not support ARM mode `isb'
1 /tmp/cckem5CE.s:366: Error: selected processor does not support ARM mode `isb'
Warnings Summary: 30
6 ../drivers/of/base.c:1472:1: warning: control reaches end of non-void function [-Wreturn-type]
4 <stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp]
3 ../scripts/kconfig/menu.c:590:18: warning: 'jump' may be used uninitialized in this function [-Wmaybe-uninitialized]
2 ../include/linux/dynamic_debug.h:78:3: warning: unsupported argument to '__builtin_return_address'
2 ../drivers/scsi/ips.c:210:2: warning: #warning "This driver has only been tested on the x86/ia64/x86_64 platforms" [-Wcpp]
2 ../drivers/net/ethernet/dec/tulip/winbond-840.c:910:2: warning: #warning Processor architecture undefined [-Wcpp]
1 ../net/rds/iw_rdma.c:200:1: warning: the frame size of 1056 bytes is larger than 1024 bytes [-Wframe-larger-than=]
1 ../lib/lz4/lz4hc_compress.c:514:1: warning: the frame size of 1480 bytes is larger than 1024 bytes [-Wframe-larger-than=]
1 ../include/uapi/linux/swab.h:13:15: warning: integer overflow in expression [-Woverflow]
1 ../include/linux/kernel.h:707:17: warning: comparison of distinct pointer types lacks a cast
1 ../fs/btrfs/extent_io.c:2166:13: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../drivers/usb/renesas_usbhs/common.c:469:25: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
1 ../drivers/usb/gadget/udc/udc-xilinx.c:2136:34: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
1 ../drivers/staging/vt6655/device_main.c:2973:1: warning: the frame size of 1304 bytes is larger than 1024 bytes [-Wframe-larger-than=]
1 ../drivers/net/wireless/ath/wil6210/fw_inc.c:447:4: warning: format '%ld' expects argument of type 'long int', but argument 3 has type 'int' [-Wformat=]
1 ../drivers/net/ethernet/mellanox/mlx5/core/debugfs.c:467:46: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../drivers/net/ethernet/mellanox/mlx5/core/debugfs.c:307:11: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
1 ../drivers/net/ethernet/mellanox/mlx5/core/debugfs.c:303:11: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
1 ../drivers/net/ethernet/dec/tulip/tulip_core.c:101:2: warning: #warning Processor architecture undefined! [-Wcpp]
1 ../drivers/mtd/chips/cfi_cmdset_0020.c:651:1: warning: the frame size of 1208 bytes is larger than 1024 bytes [-Wframe-larger-than=]
1 ../drivers/infiniband/ulp/iser/iser_verbs.c:1203:14: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../drivers/infiniband/ulp/iser/iser_verbs.c:1198:14: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../drivers/infiniband/ulp/iser/iser_verbs.c:1172:31: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../drivers/infiniband/ulp/iser/iser_verbs.c:1171:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../drivers/infiniband/hw/qib/qib_qp.c:44:0: warning: "BITS_PER_PAGE" redefined
1 ../drivers/gpio/gpio-74xx-mmio.c:132:16: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
1 ../drivers/block/drbd/drbd_bitmap.c:483:0: warning: "BITS_PER_PAGE_MASK" redefined
1 ../drivers/block/drbd/drbd_bitmap.c:482:0: warning: "BITS_PER_PAGE" redefined
1 ../arch/x86/kernel/cpu/perf_event_intel_uncore_snb.c:193:7: warning: 'pci_dword' is used uninitialized in this function [-Wuninitialized]
1 ../arch/arm/mach-cns3xxx/pcie.c:313:1: warning: the frame size of 1080 bytes is larger than 1024 bytes [-Wframe-larger-than=]
===============================================================================
Detailed per-defconfig build reports below:
-------------------------------------------------------------------------------
arm64-allnoconfig : PASS, 0 errors, 1 warnings, 0 section mismatches
Warnings:
../drivers/of/base.c:1472:1: warning: control reaches end of non-void function [-Wreturn-type]
-------------------------------------------------------------------------------
arm64-allmodconfig : PASS, 0 errors, 10 warnings, 0 section mismatches
Warnings:
../drivers/block/drbd/drbd_bitmap.c:482:0: warning: "BITS_PER_PAGE" redefined
../drivers/block/drbd/drbd_bitmap.c:483:0: warning: "BITS_PER_PAGE_MASK" redefined
../drivers/gpio/gpio-74xx-mmio.c:132:16: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
../drivers/infiniband/hw/qib/qib_qp.c:44:0: warning: "BITS_PER_PAGE" redefined
../drivers/of/base.c:1472:1: warning: control reaches end of non-void function [-Wreturn-type]
../drivers/net/ethernet/dec/tulip/winbond-840.c:910:2: warning: #warning Processor architecture undefined [-Wcpp]
../drivers/net/ethernet/dec/tulip/tulip_core.c:101:2: warning: #warning Processor architecture undefined! [-Wcpp]
../drivers/scsi/ips.c:210:2: warning: #warning "This driver has only been tested on the x86/ia64/x86_64 platforms" [-Wcpp]
../drivers/usb/gadget/udc/udc-xilinx.c:2136:34: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
../drivers/usb/renesas_usbhs/common.c:469:25: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
-------------------------------------------------------------------------------
arm-multi_v7_defconfig : PASS, 0 errors, 3 warnings, 0 section mismatches
Warnings:
<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp]
../drivers/of/base.c:1472:1: warning: control reaches end of non-void function [-Wreturn-type]
<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp]
-------------------------------------------------------------------------------
arm-allmodconfig : FAIL, 3 errors, 22 warnings, 0 section mismatches
Errors:
/tmp/cckem5CE.s:366: Error: selected processor does not support ARM mode `isb'
/tmp/cckem5CE.s:369: Error: selected processor does not support ARM mode `isb'
/tmp/cckem5CE.s:371: Error: selected processor does not support ARM mode `isb'
Warnings:
<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp]
../arch/arm/mach-cns3xxx/pcie.c:313:1: warning: the frame size of 1080 bytes is larger than 1024 bytes [-Wframe-larger-than=]
../fs/btrfs/extent_io.c:2166:13: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
../lib/lz4/lz4hc_compress.c:514:1: warning: the frame size of 1480 bytes is larger than 1024 bytes [-Wframe-larger-than=]
../include/linux/kernel.h:707:17: warning: comparison of distinct pointer types lacks a cast
../drivers/infiniband/ulp/iser/iser_verbs.c:1171:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
../drivers/infiniband/ulp/iser/iser_verbs.c:1172:31: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
../drivers/infiniband/ulp/iser/iser_verbs.c:1198:14: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
../drivers/infiniband/ulp/iser/iser_verbs.c:1203:14: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
../include/linux/dynamic_debug.h:78:3: warning: unsupported argument to '__builtin_return_address'
../include/linux/dynamic_debug.h:78:3: warning: unsupported argument to '__builtin_return_address'
../net/rds/iw_rdma.c:200:1: warning: the frame size of 1056 bytes is larger than 1024 bytes [-Wframe-larger-than=]
../drivers/mtd/chips/cfi_cmdset_0020.c:651:1: warning: the frame size of 1208 bytes is larger than 1024 bytes [-Wframe-larger-than=]
../drivers/of/base.c:1472:1: warning: control reaches end of non-void function [-Wreturn-type]
../drivers/net/ethernet/dec/tulip/winbond-840.c:910:2: warning: #warning Processor architecture undefined [-Wcpp]
../drivers/net/ethernet/mellanox/mlx5/core/debugfs.c:303:11: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
../drivers/net/ethernet/mellanox/mlx5/core/debugfs.c:307:11: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
../drivers/net/ethernet/mellanox/mlx5/core/debugfs.c:467:46: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
../include/uapi/linux/swab.h:13:15: warning: integer overflow in expression [-Woverflow]
../drivers/scsi/ips.c:210:2: warning: #warning "This driver has only been tested on the x86/ia64/x86_64 platforms" [-Wcpp]
../drivers/staging/vt6655/device_main.c:2973:1: warning: the frame size of 1304 bytes is larger than 1024 bytes [-Wframe-larger-than=]
../drivers/net/wireless/ath/wil6210/fw_inc.c:447:4: warning: format '%ld' expects argument of type 'long int', but argument 3 has type 'int' [-Wformat=]
-------------------------------------------------------------------------------
arm-allnoconfig : PASS, 0 errors, 3 warnings, 0 section mismatches
Warnings:
../scripts/kconfig/menu.c:590:18: warning: 'jump' may be used uninitialized in this function [-Wmaybe-uninitialized]
<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp]
../drivers/of/base.c:1472:1: warning: control reaches end of non-void function [-Wreturn-type]
-------------------------------------------------------------------------------
x86_64-allnoconfig : PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
../scripts/kconfig/menu.c:590:18: warning: 'jump' may be used uninitialized in this function [-Wmaybe-uninitialized]
../arch/x86/kernel/cpu/perf_event_intel_uncore_snb.c:193:7: warning: 'pci_dword' is used uninitialized in this function [-Wuninitialized]
-------------------------------------------------------------------------------
arm64-defconfig : PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
../scripts/kconfig/menu.c:590:18: warning: 'jump' may be used uninitialized in this function [-Wmaybe-uninitialized]
../drivers/of/base.c:1472:1: warning: control reaches end of non-void function [-Wreturn-type]
-------------------------------------------------------------------------------
Passed with no errors, warnings or mismatches:
x86_64-defconfig
Tree/Branch: master
Git describe: v3.18-rc2-43-gf7e87a44ef60
Commit: f7e87a44ef Merge tag 'media/v3.18-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media
Build Time: 20 min 25 sec
Passed: 8 / 8 (100.00 %)
Failed: 0 / 8 ( 0.00 %)
Errors: 0
Warnings: 32
Section Mismatches: 0
-------------------------------------------------------------------------------
defconfigs with issues (other than build errors):
2 warnings 0 mismatches : arm64-allnoconfig
13 warnings 0 mismatches : arm64-allmodconfig
4 warnings 0 mismatches : arm-multi_v7_defconfig
23 warnings 0 mismatches : arm-allmodconfig
4 warnings 0 mismatches : arm-allnoconfig
2 warnings 0 mismatches : x86_64-allnoconfig
3 warnings 0 mismatches : arm64-defconfig
-------------------------------------------------------------------------------
Warnings Summary: 32
6 ../drivers/base/dma-coherent.c:303:2: warning: initialization from incompatible pointer type
6 ../drivers/base/dma-coherent.c:303:2: warning: (near initialization for 'rmem_dma_ops.device_init')
5 <stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp]
3 ../scripts/kconfig/menu.c:590:18: warning: 'jump' may be used uninitialized in this function [-Wmaybe-uninitialized]
2 ../include/linux/dynamic_debug.h:78:3: warning: unsupported argument to '__builtin_return_address'
2 ../drivers/scsi/ips.c:210:2: warning: #warning "This driver has only been tested on the x86/ia64/x86_64 platforms" [-Wcpp]
2 ../drivers/net/ethernet/dec/tulip/winbond-840.c:910:2: warning: #warning Processor architecture undefined [-Wcpp]
1 ../net/rds/iw_rdma.c:200:1: warning: the frame size of 1056 bytes is larger than 1024 bytes [-Wframe-larger-than=]
1 ../lib/lz4/lz4hc_compress.c:514:1: warning: the frame size of 1480 bytes is larger than 1024 bytes [-Wframe-larger-than=]
1 ../include/uapi/linux/swab.h:13:15: warning: integer overflow in expression [-Woverflow]
1 ../include/linux/kernel.h:707:17: warning: comparison of distinct pointer types lacks a cast
1 ../fs/btrfs/extent_io.c:2166:13: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../drivers/usb/renesas_usbhs/common.c:469:25: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
1 ../drivers/usb/gadget/udc/udc-xilinx.c:2135:191: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
1 ../drivers/staging/vt6655/device_main.c:2993:1: warning: the frame size of 1304 bytes is larger than 1024 bytes [-Wframe-larger-than=]
1 ../drivers/staging/bcm/CmHost.c:1564:3: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../drivers/staging/bcm/CmHost.c:1546:3: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../drivers/staging/bcm/CmHost.c:1503:3: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../drivers/net/ethernet/mellanox/mlx5/core/debugfs.c:467:46: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../drivers/net/ethernet/mellanox/mlx5/core/debugfs.c:307:11: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
1 ../drivers/net/ethernet/mellanox/mlx5/core/debugfs.c:303:11: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
1 ../drivers/net/ethernet/dec/tulip/tulip_core.c:101:2: warning: #warning Processor architecture undefined! [-Wcpp]
1 ../drivers/mtd/chips/cfi_cmdset_0020.c:651:1: warning: the frame size of 1208 bytes is larger than 1024 bytes [-Wframe-larger-than=]
1 ../drivers/infiniband/ulp/iser/iser_verbs.c:1203:14: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../drivers/infiniband/ulp/iser/iser_verbs.c:1198:14: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../drivers/infiniband/ulp/iser/iser_verbs.c:1172:31: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../drivers/infiniband/ulp/iser/iser_verbs.c:1171:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../drivers/infiniband/hw/qib/qib_qp.c:44:0: warning: "BITS_PER_PAGE" redefined
1 ../drivers/block/drbd/drbd_bitmap.c:483:0: warning: "BITS_PER_PAGE_MASK" redefined
1 ../drivers/block/drbd/drbd_bitmap.c:482:0: warning: "BITS_PER_PAGE" redefined
1 ../arch/x86/kernel/cpu/perf_event_intel_uncore_snb.c:193:7: warning: 'pci_dword' is used uninitialized in this function [-Wuninitialized]
1 ../arch/arm/mach-cns3xxx/pcie.c:313:1: warning: the frame size of 1080 bytes is larger than 1024 bytes [-Wframe-larger-than=]
===============================================================================
Detailed per-defconfig build reports below:
-------------------------------------------------------------------------------
arm64-allnoconfig : PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
../drivers/base/dma-coherent.c:303:2: warning: initialization from incompatible pointer type
../drivers/base/dma-coherent.c:303:2: warning: (near initialization for 'rmem_dma_ops.device_init')
-------------------------------------------------------------------------------
arm64-allmodconfig : PASS, 0 errors, 13 warnings, 0 section mismatches
Warnings:
../drivers/base/dma-coherent.c:303:2: warning: initialization from incompatible pointer type
../drivers/base/dma-coherent.c:303:2: warning: (near initialization for 'rmem_dma_ops.device_init')
../drivers/block/drbd/drbd_bitmap.c:482:0: warning: "BITS_PER_PAGE" redefined
../drivers/block/drbd/drbd_bitmap.c:483:0: warning: "BITS_PER_PAGE_MASK" redefined
../drivers/infiniband/hw/qib/qib_qp.c:44:0: warning: "BITS_PER_PAGE" redefined
../drivers/net/ethernet/dec/tulip/winbond-840.c:910:2: warning: #warning Processor architecture undefined [-Wcpp]
../drivers/net/ethernet/dec/tulip/tulip_core.c:101:2: warning: #warning Processor architecture undefined! [-Wcpp]
../drivers/staging/bcm/CmHost.c:1503:3: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
../drivers/staging/bcm/CmHost.c:1546:3: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
../drivers/staging/bcm/CmHost.c:1564:3: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
../drivers/scsi/ips.c:210:2: warning: #warning "This driver has only been tested on the x86/ia64/x86_64 platforms" [-Wcpp]
../drivers/usb/gadget/udc/udc-xilinx.c:2135:191: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
../drivers/usb/renesas_usbhs/common.c:469:25: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
-------------------------------------------------------------------------------
arm-multi_v7_defconfig : PASS, 0 errors, 4 warnings, 0 section mismatches
Warnings:
<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp]
../drivers/base/dma-coherent.c:303:2: warning: initialization from incompatible pointer type
../drivers/base/dma-coherent.c:303:2: warning: (near initialization for 'rmem_dma_ops.device_init')
<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp]
-------------------------------------------------------------------------------
arm-allmodconfig : PASS, 0 errors, 23 warnings, 0 section mismatches
Warnings:
<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp]
../arch/arm/mach-cns3xxx/pcie.c:313:1: warning: the frame size of 1080 bytes is larger than 1024 bytes [-Wframe-larger-than=]
../lib/lz4/lz4hc_compress.c:514:1: warning: the frame size of 1480 bytes is larger than 1024 bytes [-Wframe-larger-than=]
../fs/btrfs/extent_io.c:2166:13: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
../drivers/base/dma-coherent.c:303:2: warning: initialization from incompatible pointer type
../drivers/base/dma-coherent.c:303:2: warning: (near initialization for 'rmem_dma_ops.device_init')
../net/rds/iw_rdma.c:200:1: warning: the frame size of 1056 bytes is larger than 1024 bytes [-Wframe-larger-than=]
../include/linux/kernel.h:707:17: warning: comparison of distinct pointer types lacks a cast
../drivers/infiniband/ulp/iser/iser_verbs.c:1171:33: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
../drivers/infiniband/ulp/iser/iser_verbs.c:1172:31: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
../drivers/infiniband/ulp/iser/iser_verbs.c:1198:14: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
../drivers/infiniband/ulp/iser/iser_verbs.c:1203:14: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
../include/linux/dynamic_debug.h:78:3: warning: unsupported argument to '__builtin_return_address'
../include/linux/dynamic_debug.h:78:3: warning: unsupported argument to '__builtin_return_address'
../drivers/mtd/chips/cfi_cmdset_0020.c:651:1: warning: the frame size of 1208 bytes is larger than 1024 bytes [-Wframe-larger-than=]
../include/uapi/linux/swab.h:13:15: warning: integer overflow in expression [-Woverflow]
../drivers/net/ethernet/dec/tulip/winbond-840.c:910:2: warning: #warning Processor architecture undefined [-Wcpp]
../drivers/net/ethernet/mellanox/mlx5/core/debugfs.c:303:11: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
../drivers/net/ethernet/mellanox/mlx5/core/debugfs.c:307:11: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
../drivers/net/ethernet/mellanox/mlx5/core/debugfs.c:467:46: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
../drivers/scsi/ips.c:210:2: warning: #warning "This driver has only been tested on the x86/ia64/x86_64 platforms" [-Wcpp]
../drivers/staging/vt6655/device_main.c:2993:1: warning: the frame size of 1304 bytes is larger than 1024 bytes [-Wframe-larger-than=]
<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp]
-------------------------------------------------------------------------------
arm-allnoconfig : PASS, 0 errors, 4 warnings, 0 section mismatches
Warnings:
../scripts/kconfig/menu.c:590:18: warning: 'jump' may be used uninitialized in this function [-Wmaybe-uninitialized]
<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp]
../drivers/base/dma-coherent.c:303:2: warning: initialization from incompatible pointer type
../drivers/base/dma-coherent.c:303:2: warning: (near initialization for 'rmem_dma_ops.device_init')
-------------------------------------------------------------------------------
x86_64-allnoconfig : PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
../scripts/kconfig/menu.c:590:18: warning: 'jump' may be used uninitialized in this function [-Wmaybe-uninitialized]
../arch/x86/kernel/cpu/perf_event_intel_uncore_snb.c:193:7: warning: 'pci_dword' is used uninitialized in this function [-Wuninitialized]
-------------------------------------------------------------------------------
arm64-defconfig : PASS, 0 errors, 3 warnings, 0 section mismatches
Warnings:
../scripts/kconfig/menu.c:590:18: warning: 'jump' may be used uninitialized in this function [-Wmaybe-uninitialized]
../drivers/base/dma-coherent.c:303:2: warning: initialization from incompatible pointer type
../drivers/base/dma-coherent.c:303:2: warning: (near initialization for 'rmem_dma_ops.device_init')
-------------------------------------------------------------------------------
Passed with no errors, warnings or mismatches:
x86_64-defconfig
Since commit cd678fce4280 ("switch logger to ->write_iter()"), any
attempt to write to the log results in the log data being written over
its own metadata, thus rendering the log unreadable.
The problem was first detected when I ran an Android userspace on the
v3.18-rc1 kernel. However the issue can also be observed with a
non-Android userspace by using echo/cat to write to/from /dev/log_main .
This patch resolves the problem by using a temporary to track the status
of not-yet-committed writes to the log buffer.
Signed-off-by: Daniel Thompson <daniel.thompson(a)linaro.org>
Cc: Al Viro <viro(a)zeniv.linux.org.uk>
---
drivers/staging/android/logger.c | 13 ++++++++-----
1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/drivers/staging/android/logger.c b/drivers/staging/android/logger.c
index 28b93d3..a673ffa 100644
--- a/drivers/staging/android/logger.c
+++ b/drivers/staging/android/logger.c
@@ -420,7 +420,7 @@ static ssize_t logger_write_iter(struct kiocb *iocb, struct iov_iter *from)
struct logger_log *log = file_get_log(iocb->ki_filp);
struct logger_entry header;
struct timespec now;
- size_t len, count;
+ size_t len, count, w_off;
count = min_t(size_t, iocb->ki_nbytes, LOGGER_ENTRY_MAX_PAYLOAD);
@@ -452,11 +452,14 @@ static ssize_t logger_write_iter(struct kiocb *iocb, struct iov_iter *from)
memcpy(log->buffer + log->w_off, &header, len);
memcpy(log->buffer, (char *)&header + len, sizeof(header) - len);
- len = min(count, log->size - log->w_off);
+ /* Work with a copy until we are ready to commit the whole entry */
+ w_off = logger_offset(log, log->w_off + sizeof(struct logger_entry));
- if (copy_from_iter(log->buffer + log->w_off, len, from) != len) {
+ len = min(count, log->size - w_off);
+
+ if (copy_from_iter(log->buffer + w_off, len, from) != len) {
/*
- * Note that by not updating w_off, this abandons the
+ * Note that by not updating log->w_off, this abandons the
* portion of the new entry that *was* successfully
* copied, just above. This is intentional to avoid
* message corruption from missing fragments.
@@ -470,7 +473,7 @@ static ssize_t logger_write_iter(struct kiocb *iocb, struct iov_iter *from)
return -EFAULT;
}
- log->w_off = logger_offset(log, log->w_off + count);
+ log->w_off = logger_offset(log, w_off + count);
mutex_unlock(&log->mutex);
/* wake up any blocked readers */
--
1.9.3