# git rev-parse -q --verify b1dba2473114588be3df916bf629a61bdcc83737^{commit} b1dba2473114588be3df916bf629a61bdcc83737 already have revision, skipping fetch # git checkout -q -f -B kisskb b1dba2473114588be3df916bf629a61bdcc83737 # git clean -qxdf # < git log -1 # commit b1dba2473114588be3df916bf629a61bdcc83737 # Merge: 07e309a972ca 98aa00345de5 # Author: Linus Torvalds # Date: Mon Jan 27 15:38:15 2020 -0800 # # Merge tag 'selinux-pr-20200127' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/selinux # # Pull SELinux update from Paul Moore: # "This is one of the bigger SELinux pull requests in recent years with # 28 patches. Everything is passing our test suite and the highlights # are below: # # - Mark CONFIG_SECURITY_SELINUX_DISABLE as deprecated. We're some time # away from actually attempting to remove this in the kernel, but the # only distro we know that still uses it (Fedora) is working on # moving away from this so we want to at least let people know we are # planning to remove it. # # - Reorder the SELinux hooks to help prevent bad things when SELinux # is disabled at runtime. The proper fix is to remove the # CONFIG_SECURITY_SELINUX_DISABLE functionality (see above) and just # take care of it at boot time (e.g. "selinux=0"). # # - Add SELinux controls for the kernel lockdown functionality, # introducing a new SELinux class/permissions: "lockdown { integrity # confidentiality }". # # - Add a SELinux control for move_mount(2) that reuses the "file { # mounton }" permission. # # - Improvements to the SELinux security label data store lookup # functions to speed up translations between our internal label # representations and the visible string labels (both directions). # # - Revisit a previous fix related to SELinux inode auditing and # permission caching and do it correctly this time. # # - Fix the SELinux access decision cache to cleanup properly on error. # In some extreme cases this could limit the cache size and result in # a decrease in performance. # # - Enable SELinux per-file labeling for binderfs. # # - The SELinux initialized and disabled flags were wrapped with # accessors to ensure they are accessed correctly. # # - Mark several key SELinux structures with __randomize_layout. # # - Changes to the LSM build configuration to only build # security/lsm_audit.c when needed. # # - Changes to the SELinux build configuration to only build the IB # object cache when CONFIG_SECURITY_INFINIBAND is enabled. # # - Move a number of single-caller functions into their callers. # # - Documentation fixes (/selinux -> /sys/fs/selinux). # # - A handful of cleanup patches that aren't worth mentioning on their # own, the individual descriptions have plenty of detail" # # * tag 'selinux-pr-20200127' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/selinux: (28 commits) # selinux: fix regression introduced by move_mount(2) syscall # selinux: do not allocate ancillary buffer on first load # selinux: remove redundant allocation and helper functions # selinux: remove redundant selinux_nlmsg_perm # selinux: fix wrong buffer types in policydb.c # selinux: reorder hooks to make runtime disable less broken # selinux: treat atomic flags more carefully # selinux: make default_noexec read-only after init # selinux: move ibpkeys code under CONFIG_SECURITY_INFINIBAND. # selinux: remove redundant msg_msg_alloc_security # Documentation,selinux: fix references to old selinuxfs mount point # selinux: deprecate disabling SELinux and runtime # selinux: allow per-file labelling for binderfs # selinuxfs: use scnprintf to get real length for inode # selinux: remove set but not used variable 'sidtab' # selinux: ensure the policy has been loaded before reading the sidtab stats # selinux: ensure we cleanup the internal AVC counters on error in avc_update() # selinux: randomize layout of key structures # selinux: clean up selinux_enabled/disabled/enforcing_boot # selinux: remove unnecessary selinux cred request # ... # < /opt/cross/kisskb/br-sparc64-full-2016.08-613-ge98b4dd/bin/sparc64-linux-gcc --version # < /opt/cross/kisskb/br-sparc64-full-2016.08-613-ge98b4dd/bin/sparc64-linux-ld --version # < git log --format=%s --max-count=1 b1dba2473114588be3df916bf629a61bdcc83737 # < make -s -j 32 ARCH=sparc O=/kisskb/build/linus_sparc-allmodconfig_sparc64 CROSS_COMPILE=/opt/cross/kisskb/br-sparc64-full-2016.08-613-ge98b4dd/bin/sparc64-linux- allmodconfig # Added to kconfig CONFIG_64BIT=n # Added to kconfig CONFIG_BUILD_DOCSRC=n # Added to kconfig CONFIG_HAVE_FTRACE_MCOUNT_RECORD=n # Added to kconfig CONFIG_SAMPLES=n # Added to kconfig CONFIG_MODULE_SIG=n # yes \n | make -s -j 32 ARCH=sparc O=/kisskb/build/linus_sparc-allmodconfig_sparc64 CROSS_COMPILE=/opt/cross/kisskb/br-sparc64-full-2016.08-613-ge98b4dd/bin/sparc64-linux- oldconfig yes: standard output: Broken pipe # make -s -j 32 ARCH=sparc O=/kisskb/build/linus_sparc-allmodconfig_sparc64 CROSS_COMPILE=/opt/cross/kisskb/br-sparc64-full-2016.08-613-ge98b4dd/bin/sparc64-linux- :1511:2: warning: #warning syscall clone3 not implemented [-Wcpp] /kisskb/src/fs/cifs/smb2pdu.c: In function 'SMB2_ioctl_init': /kisskb/src/fs/cifs/smb2pdu.c:2811:19: warning: 'in_data_buf' may be used uninitialized in this function [-Wmaybe-uninitialized] iov[1].iov_base = in_data_buf; ^ /kisskb/src/drivers/i2c/busses/i2c-sh_mobile.c: In function 'sh_mobile_i2c_isr': /kisskb/src/drivers/i2c/busses/i2c-sh_mobile.c:399:26: warning: 'data' may be used uninitialized in this function [-Wmaybe-uninitialized] pd->msg->buf[real_pos] = data; ^ /kisskb/src/drivers/i2c/busses/i2c-sh_mobile.c:372:16: note: 'data' was declared here unsigned char data; ^ /kisskb/src/drivers/input/joystick/analog.c:160:2: warning: #warning Precise timer not defined for this architecture. [-Wcpp] #warning Precise timer not defined for this architecture. ^ In file included from /kisskb/src/arch/sparc/include/asm/cmpxchg.h:7:0, from /kisskb/src/arch/sparc/include/asm/atomic_32.h:17, from /kisskb/src/arch/sparc/include/asm/atomic.h:7, from /kisskb/src/include/linux/atomic.h:7, from /kisskb/src/include/asm-generic/bitops/lock.h:5, from /kisskb/src/arch/sparc/include/asm/bitops_32.h:102, from /kisskb/src/arch/sparc/include/asm/bitops.h:7, from /kisskb/src/include/linux/bitops.h:26, from /kisskb/src/include/linux/kernel.h:12, from /kisskb/src/include/linux/list.h:9, from /kisskb/src/include/linux/wait.h:7, from /kisskb/src/include/linux/wait_bit.h:8, from /kisskb/src/include/linux/fs.h:6, from /kisskb/src/fs/ocfs2/file.c:13: /kisskb/src/fs/ocfs2/file.c: In function 'ocfs2_file_write_iter': /kisskb/src/arch/sparc/include/asm/cmpxchg_32.h:28:22: warning: value computed is not used [-Wunused-value] #define xchg(ptr,x) ((__typeof__(*(ptr)))__xchg((unsigned long)(x),(ptr),sizeof(*(ptr)))) ^ /kisskb/src/fs/ocfs2/file.c:2421:3: note: in expansion of macro 'xchg' xchg(&iocb->ki_complete, saved_ki_complete); ^ In file included from /kisskb/src/include/linux/wait.h:9:0, from /kisskb/src/include/linux/net.h:19, from /kisskb/src/drivers/infiniband/sw/siw/siw_qp_rx.c:8: /kisskb/src/drivers/infiniband/sw/siw/siw_qp_rx.c: In function 'siw_proc_send': /kisskb/src/include/linux/spinlock.h:288:3: warning: 'flags' may be used uninitialized in this function [-Wmaybe-uninitialized] _raw_spin_unlock_irqrestore(lock, flags); \ ^ /kisskb/src/drivers/infiniband/sw/siw/siw_qp_rx.c:335:16: note: 'flags' was declared here unsigned long flags; ^ In file included from /kisskb/src/drivers/net/phy/mdio-cavium.c:11:0: /kisskb/src/drivers/net/phy/mdio-cavium.c: In function 'cavium_mdiobus_set_mode': /kisskb/src/drivers/net/phy/mdio-cavium.h:114:37: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define oct_mdio_readq(addr) readq((void *)addr) ^ /kisskb/src/drivers/net/phy/mdio-cavium.c:21:16: note: in expansion of macro 'oct_mdio_readq' smi_clk.u64 = oct_mdio_readq(p->register_base + SMI_CLK); ^ /kisskb/src/drivers/net/phy/mdio-cavium.h:113:48: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define oct_mdio_writeq(val, addr) writeq(val, (void *)addr) ^ /kisskb/src/drivers/net/phy/mdio-cavium.c:24:2: note: in expansion of macro 'oct_mdio_writeq' oct_mdio_writeq(smi_clk.u64, p->register_base + SMI_CLK); ^ /kisskb/src/drivers/net/phy/mdio-cavium.c: In function 'cavium_mdiobus_c45_addr': /kisskb/src/drivers/net/phy/mdio-cavium.h:113:48: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define oct_mdio_writeq(val, addr) writeq(val, (void *)addr) ^ /kisskb/src/drivers/net/phy/mdio-cavium.c:39:2: note: in expansion of macro 'oct_mdio_writeq' oct_mdio_writeq(smi_wr.u64, p->register_base + SMI_WR_DAT); ^ /kisskb/src/drivers/net/phy/mdio-cavium.h:113:48: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define oct_mdio_writeq(val, addr) writeq(val, (void *)addr) ^ /kisskb/src/drivers/net/phy/mdio-cavium.c:47:2: note: in expansion of macro 'oct_mdio_writeq' oct_mdio_writeq(smi_cmd.u64, p->register_base + SMI_CMD); ^ /kisskb/src/drivers/net/phy/mdio-cavium.h:114:37: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define oct_mdio_readq(addr) readq((void *)addr) ^ /kisskb/src/drivers/net/phy/mdio-cavium.c:54:16: note: in expansion of macro 'oct_mdio_readq' smi_wr.u64 = oct_mdio_readq(p->register_base + SMI_WR_DAT); ^ /kisskb/src/drivers/net/phy/mdio-cavium.c: In function 'cavium_mdiobus_read': /kisskb/src/drivers/net/phy/mdio-cavium.h:113:48: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define oct_mdio_writeq(val, addr) writeq(val, (void *)addr) ^ /kisskb/src/drivers/net/phy/mdio-cavium.c:86:2: note: in expansion of macro 'oct_mdio_writeq' oct_mdio_writeq(smi_cmd.u64, p->register_base + SMI_CMD); ^ /kisskb/src/drivers/net/phy/mdio-cavium.h:114:37: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define oct_mdio_readq(addr) readq((void *)addr) ^ /kisskb/src/drivers/net/phy/mdio-cavium.c:93:16: note: in expansion of macro 'oct_mdio_readq' smi_rd.u64 = oct_mdio_readq(p->register_base + SMI_RD_DAT); ^ /kisskb/src/drivers/net/phy/mdio-cavium.c: In function 'cavium_mdiobus_write': /kisskb/src/drivers/net/phy/mdio-cavium.h:113:48: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define oct_mdio_writeq(val, addr) writeq(val, (void *)addr) ^ /kisskb/src/drivers/net/phy/mdio-cavium.c:125:2: note: in expansion of macro 'oct_mdio_writeq' oct_mdio_writeq(smi_wr.u64, p->register_base + SMI_WR_DAT); ^ /kisskb/src/drivers/net/phy/mdio-cavium.h:113:48: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define oct_mdio_writeq(val, addr) writeq(val, (void *)addr) ^ /kisskb/src/drivers/net/phy/mdio-cavium.c:131:2: note: in expansion of macro 'oct_mdio_writeq' oct_mdio_writeq(smi_cmd.u64, p->register_base + SMI_CMD); ^ /kisskb/src/drivers/net/phy/mdio-cavium.h:114:37: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define oct_mdio_readq(addr) readq((void *)addr) ^ /kisskb/src/drivers/net/phy/mdio-cavium.c:138:16: note: in expansion of macro 'oct_mdio_readq' smi_wr.u64 = oct_mdio_readq(p->register_base + SMI_WR_DAT); ^ /kisskb/src/drivers/net/phy/mdio-octeon.c: In function 'octeon_mdiobus_probe': /kisskb/src/drivers/net/phy/mdio-octeon.c:48:3: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] (u64)devm_ioremap(&pdev->dev, mdio_phys, regsize); ^ In file included from /kisskb/src/drivers/net/phy/mdio-octeon.c:14:0: /kisskb/src/drivers/net/phy/mdio-cavium.h:113:48: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define oct_mdio_writeq(val, addr) writeq(val, (void *)addr) ^ /kisskb/src/drivers/net/phy/mdio-octeon.c:56:2: note: in expansion of macro 'oct_mdio_writeq' oct_mdio_writeq(smi_en.u64, bus->register_base + SMI_EN); ^ /kisskb/src/drivers/net/phy/mdio-cavium.h:113:48: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define oct_mdio_writeq(val, addr) writeq(val, (void *)addr) ^ /kisskb/src/drivers/net/phy/mdio-octeon.c:77:2: note: in expansion of macro 'oct_mdio_writeq' oct_mdio_writeq(smi_en.u64, bus->register_base + SMI_EN); ^ /kisskb/src/drivers/net/phy/mdio-octeon.c: In function 'octeon_mdiobus_remove': /kisskb/src/drivers/net/phy/mdio-cavium.h:113:48: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define oct_mdio_writeq(val, addr) writeq(val, (void *)addr) ^ /kisskb/src/drivers/net/phy/mdio-octeon.c:91:2: note: in expansion of macro 'oct_mdio_writeq' oct_mdio_writeq(smi_en.u64, bus->register_base + SMI_EN); ^ In file included from /kisskb/src/include/linux/printk.h:7:0, from /kisskb/src/include/linux/kernel.h:15, from /kisskb/src/include/linux/list.h:9, from /kisskb/src/include/linux/rculist.h:10, from /kisskb/src/include/linux/sched/signal.h:5, from /kisskb/src/drivers/net/usb/hso.c:41: /kisskb/src/drivers/net/usb/hso.c: In function 'hso_serial_set_termios': /kisskb/src/include/linux/kern_levels.h:5:18: warning: format '%d' expects argument of type 'int', but argument 4 has type 'tcflag_t {aka long unsigned int}' [-Wformat=] #define KERN_SOH "\001" /* ASCII Start Of Header */ ^ /kisskb/src/include/linux/kern_levels.h:14:19: note: in expansion of macro 'KERN_SOH' #define KERN_INFO KERN_SOH "6" /* informational */ ^ /kisskb/src/include/linux/printk.h:310:9: note: in expansion of macro 'KERN_INFO' printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__) ^ /kisskb/src/drivers/net/usb/hso.c:101:3: note: in expansion of macro 'pr_info' pr_info("[%d:%s] " fmt, \ ^ /kisskb/src/drivers/net/usb/hso.c:1393:3: note: in expansion of macro 'hso_dbg' hso_dbg(0x16, "Termios called with: cflags new[%d] - old[%d]\n", ^ /kisskb/src/include/linux/kern_levels.h:5:18: warning: format '%d' expects argument of type 'int', but argument 5 has type 'tcflag_t {aka long unsigned int}' [-Wformat=] #define KERN_SOH "\001" /* ASCII Start Of Header */ ^ /kisskb/src/include/linux/kern_levels.h:14:19: note: in expansion of macro 'KERN_SOH' #define KERN_INFO KERN_SOH "6" /* informational */ ^ /kisskb/src/include/linux/printk.h:310:9: note: in expansion of macro 'KERN_INFO' printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__) ^ /kisskb/src/drivers/net/usb/hso.c:101:3: note: in expansion of macro 'pr_info' pr_info("[%d:%s] " fmt, \ ^ /kisskb/src/drivers/net/usb/hso.c:1393:3: note: in expansion of macro 'hso_dbg' hso_dbg(0x16, "Termios called with: cflags new[%d] - old[%d]\n", ^ /kisskb/src/drivers/tty/serial/sunzilog.c:1132:13: warning: 'sunzilog_putchar' defined but not used [-Wunused-function] static void sunzilog_putchar(struct uart_port *port, int ch) ^ In file included from /kisskb/src/include/linux/rwsem.h:16:0, from /kisskb/src/include/linux/notifier.h:15, from /kisskb/src/include/linux/clk.h:14, from /kisskb/src/drivers/tty/serial/sh-sci.c:24: /kisskb/src/drivers/tty/serial/sh-sci.c: In function 'sci_dma_rx_submit': /kisskb/src/include/linux/spinlock.h:288:3: warning: 'flags' may be used uninitialized in this function [-Wmaybe-uninitialized] _raw_spin_unlock_irqrestore(lock, flags); \ ^ /kisskb/src/drivers/tty/serial/sh-sci.c:1352:16: note: 'flags' was declared here unsigned long flags; ^ In file included from /kisskb/src/include/linux/printk.h:7:0, from /kisskb/src/include/linux/kernel.h:15, from /kisskb/src/include/linux/mlx5/driver.h:36, from /kisskb/src/drivers/net/ethernet/mellanox/mlx5/core/wq.c:33: /kisskb/src/drivers/net/ethernet/mellanox/mlx5/core/wq.c: In function 'mlx5_wq_cyc_wqe_dump': /kisskb/src/include/linux/kern_levels.h:5:18: warning: format '%ld' expects argument of type 'long int', but argument 5 has type 'size_t {aka unsigned int}' [-Wformat=] #define KERN_SOH "\001" /* ASCII Start Of Header */ ^ /kisskb/src/include/linux/kern_levels.h:14:19: note: in expansion of macro 'KERN_SOH' #define KERN_INFO KERN_SOH "6" /* informational */ ^ /kisskb/src/include/linux/printk.h:310:9: note: in expansion of macro 'KERN_INFO' printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__) ^ /kisskb/src/drivers/net/ethernet/mellanox/mlx5/core/wq.c:92:2: note: in expansion of macro 'pr_info' pr_info("WQE DUMP: WQ size %d WQ cur size %d, WQE index 0x%x, len: %ld\n", ^ In file included from /kisskb/src/arch/sparc/include/asm/cmpxchg.h:7:0, from /kisskb/src/arch/sparc/include/asm/atomic_32.h:17, from /kisskb/src/arch/sparc/include/asm/atomic.h:7, from /kisskb/src/include/linux/atomic.h:7, from /kisskb/src/include/asm-generic/bitops/lock.h:5, from /kisskb/src/arch/sparc/include/asm/bitops_32.h:102, from /kisskb/src/arch/sparc/include/asm/bitops.h:7, from /kisskb/src/include/linux/bitops.h:26, from /kisskb/src/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c:11: /kisskb/src/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c: In function 'ixgbevf_xdp_setup': /kisskb/src/arch/sparc/include/asm/cmpxchg_32.h:28:22: warning: value computed is not used [-Wunused-value] #define xchg(ptr,x) ((__typeof__(*(ptr)))__xchg((unsigned long)(x),(ptr),sizeof(*(ptr)))) ^ /kisskb/src/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c:4477:4: note: in expansion of macro 'xchg' xchg(&adapter->rx_ring[i]->xdp_prog, adapter->xdp_prog); ^ WARNING: EXPORT symbol "bzero_1page" [vmlinux] version generation failed, symbol will not be versioned. WARNING: EXPORT symbol "___rw_read_exit" [vmlinux] version generation failed, symbol will not be versioned. WARNING: EXPORT symbol "___rw_read_try" [vmlinux] version generation failed, symbol will not be versioned. WARNING: EXPORT symbol "__ndelay" [vmlinux] version generation failed, symbol will not be versioned. WARNING: EXPORT symbol "__ashrdi3" [vmlinux] version generation failed, symbol will not be versioned. WARNING: EXPORT symbol "empty_zero_page" [vmlinux] version generation failed, symbol will not be versioned. WARNING: EXPORT symbol "__udelay" [vmlinux] version generation failed, symbol will not be versioned. WARNING: EXPORT symbol "__lshrdi3" [vmlinux] version generation failed, symbol will not be versioned. WARNING: EXPORT symbol "___rw_write_enter" [vmlinux] version generation failed, symbol will not be versioned. WARNING: EXPORT symbol "__ashldi3" [vmlinux] version generation failed, symbol will not be versioned. WARNING: EXPORT symbol "__copy_1page" [vmlinux] version generation failed, symbol will not be versioned. WARNING: EXPORT symbol "__muldi3" [vmlinux] version generation failed, symbol will not be versioned. WARNING: EXPORT symbol "__divdi3" [vmlinux] version generation failed, symbol will not be versioned. WARNING: EXPORT symbol "___rw_read_enter" [vmlinux] version generation failed, symbol will not be versioned. arch/sparc/kernel/head_32.o: In function `current_pc': arch/sparc/kernel/head_32.o:(.head.text+0x5040): relocation truncated to fit: R_SPARC_WDISP22 against `.init.text' arch/sparc/kernel/head_32.o: In function `halt_notsup': arch/sparc/kernel/head_32.o:(.head.text+0x5100): relocation truncated to fit: R_SPARC_WDISP22 against `.init.text' arch/sparc/kernel/head_32.o: In function `leon_init': arch/sparc/kernel/head_32.o:(.init.text+0xa4): relocation truncated to fit: R_SPARC_WDISP22 against symbol `leon_smp_cpu_startup' defined in .text section in arch/sparc/kernel/trampoline_32.o arch/sparc/kernel/process_32.o:(.fixup+0x4): relocation truncated to fit: R_SPARC_WDISP22 against `.text' arch/sparc/kernel/process_32.o:(.fixup+0xc): relocation truncated to fit: R_SPARC_WDISP22 against `.text' arch/sparc/kernel/signal_32.o:(.fixup+0x4): relocation truncated to fit: R_SPARC_WDISP22 against `.text' arch/sparc/kernel/signal_32.o:(.fixup+0x10): relocation truncated to fit: R_SPARC_WDISP22 against `.text' arch/sparc/kernel/signal_32.o:(.fixup+0x1c): relocation truncated to fit: R_SPARC_WDISP22 against `.text' arch/sparc/kernel/signal_32.o:(.fixup+0x28): relocation truncated to fit: R_SPARC_WDISP22 against `.text' arch/sparc/kernel/signal_32.o:(.fixup+0x34): relocation truncated to fit: R_SPARC_WDISP22 against `.text' arch/sparc/kernel/signal_32.o:(.fixup+0x40): additional relocation overflows omitted from the output make[1]: *** [/kisskb/src/Makefile:1078: vmlinux] Error 1 make: *** [Makefile:179: sub-make] Error 2 Command 'make -s -j 32 ARCH=sparc O=/kisskb/build/linus_sparc-allmodconfig_sparc64 CROSS_COMPILE=/opt/cross/kisskb/br-sparc64-full-2016.08-613-ge98b4dd/bin/sparc64-linux- ' returned non-zero exit status 2 # rm -rf /kisskb/build/linus_sparc-allmodconfig_sparc64 # Build took: 0:11:31.783185