# git rev-parse -q --verify a22c4d7e34402ccdf3414f64c50365436eba7b93^{commit} a22c4d7e34402ccdf3414f64c50365436eba7b93 already have revision, skipping fetch # git checkout -q -f -B kisskb a22c4d7e34402ccdf3414f64c50365436eba7b93 # git clean -qxdf # git log -1 commit a22c4d7e34402ccdf3414f64c50365436eba7b93 Author: Ming Lin Date: Thu Oct 22 09:59:42 2015 -0700 block: re-add discard_granularity and alignment checks In commit b49a087("block: remove split code in blkdev_issue_{discard,write_same}"), discard_granularity and alignment checks were removed. Ideally, with bio late splitting, the upper layers shouldn't need to depend on device's limits. Christoph reported a discard regression on the HGST Ultrastar SN100 NVMe device when mkfs.xfs. We have not found the root cause yet. This patch re-adds discard_granularity and alignment checks by reverting the related changes in commit b49a087. The good thing is now we can remove the 2G discard size cap and just use UINT_MAX to avoid bi_size overflow. Reviewed-by: Christoph Hellwig Tested-by: Christoph Hellwig Signed-off-by: Ming Lin Reviewed-by: Mike Snitzer Signed-off-by: Jens Axboe # < /opt/cross/gcc-4.6.3-nolibc/arm-unknown-linux-gnueabi/bin/arm-unknown-linux-gnueabi-gcc --version # < git log --format=%s --max-count=1 a22c4d7e34402ccdf3414f64c50365436eba7b93 # < make -j 48 ARCH=arm O=/home/kisskb/slave/build/linus_arm-randconfig_arm CROSS_COMPILE=/opt/cross/gcc-4.6.3-nolibc/arm-unknown-linux-gnueabi/bin/arm-unknown-linux-gnueabi- randconfig KCONFIG_SEED=0x65DF9070 # make -j 48 ARCH=arm O=/home/kisskb/slave/build/linus_arm-randconfig_arm CROSS_COMPILE=/opt/cross/gcc-4.6.3-nolibc/arm-unknown-linux-gnueabi/bin/arm-unknown-linux-gnueabi- make[1]: Entering directory '/home/kisskb/slave/build/linus_arm-randconfig_arm' GEN ./Makefile scripts/kconfig/conf --silentoldconfig Kconfig # # configuration written to .config # /home/kisskb/slave/src/Makefile:659: Cannot use CONFIG_CC_STACKPROTECTOR_STRONG: -fstack-protector-strong not supported by compiler CHK include/config/kernel.release GEN ./Makefile WRAP arch/arm/include/generated/asm/bitsperlong.h WRAP arch/arm/include/generated/asm/cputime.h WRAP arch/arm/include/generated/asm/current.h WRAP arch/arm/include/generated/asm/emergency-restart.h WRAP arch/arm/include/generated/asm/errno.h WRAP arch/arm/include/generated/asm/exec.h WRAP arch/arm/include/generated/asm/ioctl.h WRAP arch/arm/include/generated/asm/ipcbuf.h WRAP arch/arm/include/generated/asm/irq_regs.h WRAP arch/arm/include/generated/asm/kdebug.h WRAP arch/arm/include/generated/asm/local.h WRAP arch/arm/include/generated/asm/local64.h WRAP arch/arm/include/generated/asm/mm-arch-hooks.h WRAP arch/arm/include/generated/asm/msgbuf.h WRAP arch/arm/include/generated/asm/param.h CHK include/generated/uapi/linux/version.h WRAP arch/arm/include/generated/asm/parport.h WRAP arch/arm/include/generated/asm/poll.h WRAP arch/arm/include/generated/asm/preempt.h WRAP arch/arm/include/generated/asm/resource.h WRAP arch/arm/include/generated/asm/rwsem.h WRAP arch/arm/include/generated/asm/seccomp.h UPD include/generated/uapi/linux/version.h WRAP arch/arm/include/generated/asm/sections.h WRAP arch/arm/include/generated/asm/segment.h WRAP arch/arm/include/generated/asm/sembuf.h WRAP arch/arm/include/generated/asm/serial.h WRAP arch/arm/include/generated/asm/shmbuf.h WRAP arch/arm/include/generated/asm/simd.h WRAP arch/arm/include/generated/asm/trace_clock.h WRAP arch/arm/include/generated/asm/siginfo.h WRAP arch/arm/include/generated/asm/unaligned.h WRAP arch/arm/include/generated/asm/sizes.h WRAP arch/arm/include/generated/asm/socket.h WRAP arch/arm/include/generated/asm/sockios.h WRAP arch/arm/include/generated/asm/termios.h WRAP arch/arm/include/generated/asm/termbits.h WRAP arch/arm/include/generated/asm/timex.h UPD include/config/kernel.release Using /home/kisskb/slave/src as source for kernel CHK include/generated/utsrelease.h UPD include/generated/utsrelease.h HOSTCC scripts/kallsyms HOSTCC scripts/sortextable HOSTCC scripts/asn1_compiler HOSTCC scripts/genksyms/genksyms.o HOSTCC scripts/dtc/dtc.o SHIPPED scripts/genksyms/parse.tab.c SHIPPED scripts/genksyms/lex.lex.c HOSTCC scripts/dtc/flattree.o SHIPPED scripts/genksyms/keywords.hash.c SHIPPED scripts/genksyms/parse.tab.h CC scripts/mod/empty.o HOSTCC scripts/dtc/fstree.o HOSTCC scripts/dtc/data.o HOSTCC scripts/mod/mk_elfconfig HOSTCC scripts/genksyms/parse.tab.o HOSTCC scripts/dtc/livetree.o HOSTCC scripts/genksyms/lex.lex.o HOSTCC scripts/dtc/treesource.o CC scripts/mod/devicetable-offsets.s HOSTCC scripts/dtc/srcpos.o HOSTCC scripts/dtc/util.o cc1: error: unrecognized command line option '-fstack-protector-strong' SHIPPED scripts/dtc/dtc-lexer.lex.c /home/kisskb/slave/src/scripts/Makefile.build:258: recipe for target 'scripts/mod/empty.o' failed make[3]: *** [scripts/mod/empty.o] Error 1 SHIPPED scripts/dtc/dtc-parser.tab.h make[3]: *** Waiting for unfinished jobs.... HOSTCC scripts/dtc/checks.o SHIPPED scripts/dtc/dtc-parser.tab.c cc1: error: unrecognized command line option '-fstack-protector-strong' HOSTCC scripts/dtc/dtc-parser.tab.o /home/kisskb/slave/src/scripts/Makefile.build:153: recipe for target 'scripts/mod/devicetable-offsets.s' failed make[3]: *** [scripts/mod/devicetable-offsets.s] Error 1 HOSTCC scripts/dtc/dtc-lexer.lex.o Generating include/generated/mach-types.h CHK include/generated/timeconst.h CC kernel/bounds.s UPD include/generated/timeconst.h cc1: error: unrecognized command line option '-fstack-protector-strong' /home/kisskb/slave/src/./Kbuild:44: recipe for target 'kernel/bounds.s' failed make[2]: *** [kernel/bounds.s] Error 1 make[2]: *** Waiting for unfinished jobs.... /home/kisskb/slave/src/Makefile:984: recipe for target 'prepare0' failed make[1]: *** [prepare0] Error 2 make[1]: *** Waiting for unfinished jobs.... /home/kisskb/slave/src/scripts/Makefile.build:403: recipe for target 'scripts/mod' failed make[2]: *** [scripts/mod] Error 2 make[2]: *** Waiting for unfinished jobs.... HOSTLD scripts/dtc/dtc HOSTLD scripts/genksyms/genksyms /home/kisskb/slave/src/Makefile:545: recipe for target 'scripts' failed make[1]: *** [scripts] Error 2 make[1]: Leaving directory '/home/kisskb/slave/build/linus_arm-randconfig_arm' Makefile:146: recipe for target 'sub-make' failed make: *** [sub-make] Error 2 Command 'make -j 48 ARCH=arm O=/home/kisskb/slave/build/linus_arm-randconfig_arm CROSS_COMPILE=/opt/cross/gcc-4.6.3-nolibc/arm-unknown-linux-gnueabi/bin/arm-unknown-linux-gnueabi- ' returned non-zero exit status 2 # rm -rf /home/kisskb/slave/build/linus_arm-randconfig_arm # Build took: 0:00:04.262342