# 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/bfin-uclinux/bin/bfin-uclinux-gcc --version # < git log --format=%s --max-count=1 a22c4d7e34402ccdf3414f64c50365436eba7b93 # < make -j 240 ARCH=blackfin O=/home/kisskb/slave/build/linus_TCM-BF518_defconfig_bfin CROSS_COMPILE=/opt/cross/gcc-4.6.3-nolibc/bfin-uclinux/bin/bfin-uclinux- TCM-BF518_defconfig # make -j 240 ARCH=blackfin O=/home/kisskb/slave/build/linus_TCM-BF518_defconfig_bfin CROSS_COMPILE=/opt/cross/gcc-4.6.3-nolibc/bfin-uclinux/bin/bfin-uclinux- make[1]: Entering directory `/home/kisskb/slave/build/linus_TCM-BF518_defconfig_bfin' GEN ./Makefile scripts/kconfig/conf --silentoldconfig Kconfig make[1]: Leaving directory `/home/kisskb/slave/build/linus_TCM-BF518_defconfig_bfin' make[1]: Entering directory `/home/kisskb/slave/build/linus_TCM-BF518_defconfig_bfin' CHK include/config/kernel.release GEN ./Makefile WRAP arch/blackfin/include/generated/asm/auxvec.h WRAP arch/blackfin/include/generated/asm/bitsperlong.h WRAP arch/blackfin/include/generated/asm/bugs.h WRAP arch/blackfin/include/generated/asm/cputime.h WRAP arch/blackfin/include/generated/asm/current.h WRAP arch/blackfin/include/generated/asm/device.h WRAP arch/blackfin/include/generated/asm/div64.h WRAP arch/blackfin/include/generated/asm/emergency-restart.h WRAP arch/blackfin/include/generated/asm/errno.h WRAP arch/blackfin/include/generated/asm/fb.h WRAP arch/blackfin/include/generated/asm/futex.h CHK include/generated/uapi/linux/version.h WRAP arch/blackfin/include/generated/asm/hw_irq.h WRAP arch/blackfin/include/generated/asm/ioctl.h WRAP arch/blackfin/include/generated/asm/ipcbuf.h WRAP arch/blackfin/include/generated/asm/irq_regs.h WRAP arch/blackfin/include/generated/asm/irq_work.h WRAP arch/blackfin/include/generated/asm/kdebug.h WRAP arch/blackfin/include/generated/asm/kvm_para.h WRAP arch/blackfin/include/generated/asm/kmap_types.h WRAP arch/blackfin/include/generated/asm/local.h WRAP arch/blackfin/include/generated/asm/local64.h UPD include/generated/uapi/linux/version.h WRAP arch/blackfin/include/generated/asm/mcs_spinlock.h WRAP arch/blackfin/include/generated/asm/mm-arch-hooks.h WRAP arch/blackfin/include/generated/asm/mman.h WRAP arch/blackfin/include/generated/asm/msgbuf.h WRAP arch/blackfin/include/generated/asm/mutex.h WRAP arch/blackfin/include/generated/asm/param.h WRAP arch/blackfin/include/generated/asm/percpu.h WRAP arch/blackfin/include/generated/asm/pgalloc.h WRAP arch/blackfin/include/generated/asm/preempt.h WRAP arch/blackfin/include/generated/asm/resource.h WRAP arch/blackfin/include/generated/asm/sembuf.h WRAP arch/blackfin/include/generated/asm/serial.h WRAP arch/blackfin/include/generated/asm/unaligned.h WRAP arch/blackfin/include/generated/asm/xor.h WRAP arch/blackfin/include/generated/asm/termios.h WRAP arch/blackfin/include/generated/asm/word-at-a-time.h WRAP arch/blackfin/include/generated/asm/ucontext.h WRAP arch/blackfin/include/generated/asm/shmparam.h WRAP arch/blackfin/include/generated/asm/setup.h WRAP arch/blackfin/include/generated/asm/topology.h WRAP arch/blackfin/include/generated/asm/trace_clock.h WRAP arch/blackfin/include/generated/asm/sockios.h WRAP arch/blackfin/include/generated/asm/user.h WRAP arch/blackfin/include/generated/asm/termbits.h WRAP arch/blackfin/include/generated/asm/types.h WRAP arch/blackfin/include/generated/asm/socket.h WRAP arch/blackfin/include/generated/asm/statfs.h WRAP arch/blackfin/include/generated/asm/shmbuf.h HOSTCC scripts/basic/bin2c HOSTCC scripts/kallsyms HOSTCC scripts/conmakehash CC scripts/mod/empty.o HOSTCC scripts/mod/mk_elfconfig cc1: error: -mcpu=bf518-0.1 has invalid silicon revision cc1: error: unrecognized command line option '-mcpu=bf518-0.1' CC scripts/mod/devicetable-offsets.s make[3]: *** [scripts/mod/empty.o] Error 1 make[3]: *** Waiting for unfinished jobs.... cc1: error: -mcpu=bf518-0.1 has invalid silicon revision cc1: error: unrecognized command line option '-mcpu=bf518-0.1' make[3]: *** [scripts/mod/devicetable-offsets.s] Error 1 make[2]: *** [scripts/mod] Error 2 make[2]: *** Waiting for unfinished jobs.... make[1]: *** [scripts] Error 2 make[1]: *** Waiting for unfinished jobs.... UPD include/config/kernel.release make[1]: Leaving directory `/home/kisskb/slave/build/linus_TCM-BF518_defconfig_bfin' make: *** [sub-make] Error 2 Command 'make -j 240 ARCH=blackfin O=/home/kisskb/slave/build/linus_TCM-BF518_defconfig_bfin CROSS_COMPILE=/opt/cross/gcc-4.6.3-nolibc/bfin-uclinux/bin/bfin-uclinux- ' returned non-zero exit status 2 # rm -rf /home/kisskb/slave/build/linus_TCM-BF518_defconfig_bfin # Build took: 0:00:08.387738