From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 54768C77B75 for ; Fri, 12 May 2023 04:50:56 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 8F9A56B0071; Fri, 12 May 2023 00:50:55 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 8AA0F6B0074; Fri, 12 May 2023 00:50:55 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 771AA6B0075; Fri, 12 May 2023 00:50:55 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 677C26B0071 for ; Fri, 12 May 2023 00:50:55 -0400 (EDT) Received: from smtpin25.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 2508440EC3 for ; Fri, 12 May 2023 04:50:55 +0000 (UTC) X-FDA: 80780378070.25.47E1D26 Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by imf14.hostedemail.com (Postfix) with ESMTP id 58F70100005 for ; Fri, 12 May 2023 04:50:52 +0000 (UTC) Authentication-Results: imf14.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=B5BAtNG1; spf=pass (imf14.hostedemail.com: domain of lkp@intel.com designates 192.55.52.136 as permitted sender) smtp.mailfrom=lkp@intel.com; dmarc=pass (policy=none) header.from=intel.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1683867053; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=DUZ0k5MuqBDVV/kuwIxW9NBKkk+3MuAqYOZiBPO7xds=; b=AbmvO9X9FGHoQVVjbEsXMDM6z0mSLeh98P0VnsrdVEwXD7u4/KrVvTpAjGX/3ymLVCx9zh T60YtaCjy17mNyw/O7sWQO3Uzr4eIsDIAZK9ZO7j0lDBvoCUoY1lojeVcOpXfD6XV8Drox bgRHNb4qHJkg8kVRz72O1l8U+NlinYc= ARC-Authentication-Results: i=1; imf14.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=B5BAtNG1; spf=pass (imf14.hostedemail.com: domain of lkp@intel.com designates 192.55.52.136 as permitted sender) smtp.mailfrom=lkp@intel.com; dmarc=pass (policy=none) header.from=intel.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1683867053; a=rsa-sha256; cv=none; b=dOT2EisEDbXF8IC+A3CY6IdAlrplpVRxd83reatZr+7bpNEG7lso4Ppg2+pSf5EBboKXO7 /k8k5CZm2Fm8Z2/V9PxCZWMZg6qvy1pFyseUI6PN0KMiJWqZ+q+CxZxFguowNY/BkvhW1A zJnMTpwIEy1ggeZ/JjR4DZG1JB9EwtI= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1683867052; x=1715403052; h=date:from:to:cc:subject:message-id:references: mime-version:in-reply-to; bh=iC5D+xXe0zxzN4xqOa5SMpSOusDzpmsICbpoP7xO44Q=; b=B5BAtNG1lBg+77s+vGOLtPsJSr14tV8bFeWqRg65YlZVGjLBdOkhZ0b9 doyiiA7yQy6cmUBzidFxYjat5w04dUdssP1A3wM3gRZEf7uStyAOgPGpO 9Pmg/T7bCYvQL8lvHzyUrI+kih5QcQ2ufaTRQQJZBOnRzdOPZSSsaoQ4o LmSITmYQUI679jHMxiSrEoJTL+MLUhssNqNX/2YRPjT4yQyP7lPFkNQoi eFZE8XImwsoBjCjn19NhxyGsg+mNjiuxujc1izU8HpDPevElclf1V+FIK VLrAGnv0ViuZtMa1t/LyavOZOYKfhpyLca2tONN/mzJUeKxstDsDQRSeZ Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10707"; a="330320709" X-IronPort-AV: E=Sophos;i="5.99,269,1677571200"; d="scan'208";a="330320709" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 May 2023 21:50:41 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10707"; a="732883561" X-IronPort-AV: E=Sophos;i="5.99,269,1677571200"; d="scan'208";a="732883561" Received: from lkp-server01.sh.intel.com (HELO dea6d5a4f140) ([10.239.97.150]) by orsmga001.jf.intel.com with ESMTP; 11 May 2023 21:50:37 -0700 Received: from kbuild by dea6d5a4f140 with local (Exim 4.96) (envelope-from ) id 1pxKjk-0004XE-1a; Fri, 12 May 2023 04:50:36 +0000 Date: Fri, 12 May 2023 12:49:59 +0800 From: kernel test robot To: Peter Xu , Linus Torvalds Cc: llvm@lists.linux.dev, oe-kbuild-all@lists.linux.dev, LKML , Andrew Lutomirski , Johannes Weiner , "Matthew Wilcox (Oracle)" , Josef Bacik , Andrew Morton , Linux Memory Management List , linux-fsdevel@vger.kernel.org, Dan Carpenter , syzbot+48011b86c8ea329af1b9@syzkaller.appspotmail.com, Christoph Hellwig Subject: Re: [PATCH 1/3] mm: handle_mm_fault_one() Message-ID: <202305121214.bxn0gOdr-lkp@intel.com> References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Rspam-User: X-Rspamd-Server: rspam01 X-Rspamd-Queue-Id: 58F70100005 X-Stat-Signature: 89zmzmjghb91iguquuw16ucncrzx6dk7 X-HE-Tag: 1683867052-119619 X-HE-Meta: U2FsdGVkX19NEJ+QY04xhQ3G9skyQ8QhC/AubTTVZIpAOaVkE+9uNMgdStAcRF+3TvE/qTw3bUsCT0S5AqLBzv1chZ7qShGKkfZq2pLLfN5wQLOYlx6Qs+H2qrWa27ZWmvqhCziwJFVRdzzjErsIow/6zick8CHg00lZvfCzRD9X05YTGGRE1Qhemga02aXhLaTJN7q4vg2qXHGQsoMvuX0BARWNP353KvkiJcL2XKNPyC+unCnbATwMqp32xgAiMGjD9J2vSFBlluvGLaKwhai8itW9Pt/vrfDpHsgJ9MlV5bRWafuSd5gmXd4RgGyVcT5rX1RYV3B1mtyzHgLlUIF17t7Q8NVRuqn4Rz+Su1hP4NJL+fb1jKydVWPX8nIco1nV4WKbDuCc4lIK28VN9cgZZZ9UIelhiNv+OFMvk1MDwAMHbWouuFffB1Y/W6R6Eu/eUpK4TBdyzeF27zmf7JdL7kepcQfRl7VhnPbU13c00Gdk7wv4DhBJTTv2bs9STaB3iku/Y5GDYUxUTR6ymoeRoPABoPjd41pqAwdfruyutcv2hw4vIvAe/mf5K115WWLASipHUpN0s6VescnRiaLYDXj070JHHcAjR56n8FMGSBU1VDWIhgRb564FfNmlSV0dNpR4oI572+YPHtcgJqTSvJojYB4HxxM87NziaF5bvbkgf2yHx4dkQJPMW6F6VZdv1EA7r3sYDLptL9RD3Lf/HAA2szKj5i72WKJF0VYR3KK6X4V4IIfhweM/bGBeFs6rV0Pw3LA/V2z/Ki5wlSfPx94IyD+ZaSBwAZ0xabFtCq5/txfU316Vbrho6EWBA1yK+0eRhN+UGWLFokGGJPgheHdEJ7zH4n5nZHtb0YM9ANXLTSkzbKOUrotK1s0rBhJ8QCV4AZ8N29Af1NSuO0FiQdDG5ihkXFdgKlQVZxHBXdecy4rrqNqtQ4QapmeaJ3icoCL6H+eyjBtjO9r 0ZZ8pL+h g9+nTn5EwJ51ZKR2qaldCPsQbE8kXt+B6/DzPRlcrjc8kgWmRcXekraT1b7Eu+0WF5e0CWC4v5PdUQqKqCqqXKvUnl4GTD8LFBgM9FEqoAoOBJ5dh9q0GRSzT5bgszHn3bLLugR9AmjfFGVk0VDroABlZ8pX7KYb+/l36AJSYBkkuVfnzTHI0ip9t5qoj7eBn+tl2gLzSQS9sbYnxtQ5Hty2dCtf46RE+HDzAeuqv/bz4hJqlJDIOT8o+PTCt3+8LqfphV+eCu12VzK5oAYFLWn3pQqOZMM5bypmJGP5CsHlrWQo1EGgG7Q9Prv48AciupCar2IknwSmuY3uopXo8XHgtiOfXwzlriPT2kQz/gEWJrJA8xwPdCDrqrFQb8J//S8Y2q3QRQI1HK+KiTtnYHGleT5lvB9be2/Pn1rKZBILuBcT8/CzTU9Kv7CQIPBrzYZ8JuyptMklOHbVyZoIiJFDAeTSmfBn1KdMCr8xelCHbo7r4Ar0MqQwMmQ9AfXyRRxjP6jPqLAAJLA0= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: Hi Peter, kernel test robot noticed the following build warnings: [auto build test WARNING on akpm-mm/mm-everything] url: https://github.com/intel-lab-lkp/linux/commits/Peter-Xu/mm-handle_mm_fault_one/20230512-081554 base: https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-everything patch link: https://lore.kernel.org/r/ZF2E6i4pqJr7m436%40x1n patch subject: [PATCH 1/3] mm: handle_mm_fault_one() config: hexagon-randconfig-r045-20230511 (https://download.01.org/0day-ci/archive/20230512/202305121214.bxn0gOdr-lkp@intel.com/config) compiler: clang version 17.0.0 (https://github.com/llvm/llvm-project b0fb98227c90adf2536c9ad644a74d5e92961111) reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # https://github.com/intel-lab-lkp/linux/commit/0a03a4870c8a62e3ba52a0f9b50b307f509acb2b git remote add linux-review https://github.com/intel-lab-lkp/linux git fetch --no-tags linux-review Peter-Xu/mm-handle_mm_fault_one/20230512-081554 git checkout 0a03a4870c8a62e3ba52a0f9b50b307f509acb2b # save the config file mkdir build_dir && cp config build_dir/.config COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=hexagon olddefconfig COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=hexagon SHELL=/bin/bash drivers/net/ethernet/hisilicon/hns/ If you fix the issue, kindly add following tag where applicable | Reported-by: kernel test robot | Link: https://lore.kernel.org/oe-kbuild-all/202305121214.bxn0gOdr-lkp@intel.com/ All warnings (new ones prefixed by >>): In file included from drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c:9: In file included from include/linux/interrupt.h:11: In file included from include/linux/hardirq.h:11: In file included from ./arch/hexagon/include/generated/asm/hardirq.h:1: In file included from include/asm-generic/hardirq.h:17: In file included from include/linux/irq.h:20: In file included from include/linux/io.h:13: In file included from arch/hexagon/include/asm/io.h:334: include/asm-generic/io.h:547:31: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] val = __raw_readb(PCI_IOBASE + addr); ~~~~~~~~~~ ^ include/asm-generic/io.h:560:61: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] val = __le16_to_cpu((__le16 __force)__raw_readw(PCI_IOBASE + addr)); ~~~~~~~~~~ ^ include/uapi/linux/byteorder/little_endian.h:37:51: note: expanded from macro '__le16_to_cpu' #define __le16_to_cpu(x) ((__force __u16)(__le16)(x)) ^ In file included from drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c:9: In file included from include/linux/interrupt.h:11: In file included from include/linux/hardirq.h:11: In file included from ./arch/hexagon/include/generated/asm/hardirq.h:1: In file included from include/asm-generic/hardirq.h:17: In file included from include/linux/irq.h:20: In file included from include/linux/io.h:13: In file included from arch/hexagon/include/asm/io.h:334: include/asm-generic/io.h:573:61: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] val = __le32_to_cpu((__le32 __force)__raw_readl(PCI_IOBASE + addr)); ~~~~~~~~~~ ^ include/uapi/linux/byteorder/little_endian.h:35:51: note: expanded from macro '__le32_to_cpu' #define __le32_to_cpu(x) ((__force __u32)(__le32)(x)) ^ In file included from drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c:9: In file included from include/linux/interrupt.h:11: In file included from include/linux/hardirq.h:11: In file included from ./arch/hexagon/include/generated/asm/hardirq.h:1: In file included from include/asm-generic/hardirq.h:17: In file included from include/linux/irq.h:20: In file included from include/linux/io.h:13: In file included from arch/hexagon/include/asm/io.h:334: include/asm-generic/io.h:584:33: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] __raw_writeb(value, PCI_IOBASE + addr); ~~~~~~~~~~ ^ include/asm-generic/io.h:594:59: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] __raw_writew((u16 __force)cpu_to_le16(value), PCI_IOBASE + addr); ~~~~~~~~~~ ^ include/asm-generic/io.h:604:59: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] __raw_writel((u32 __force)cpu_to_le32(value), PCI_IOBASE + addr); ~~~~~~~~~~ ^ In file included from drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c:12: In file included from include/linux/netdevice.h:38: In file included from include/net/net_namespace.h:43: In file included from include/linux/skbuff.h:17: In file included from include/linux/bvec.h:10: In file included from include/linux/highmem.h:10: include/linux/mm.h:2371:6: error: use of undeclared identifier 'fault' if (fault & (VM_FAULT_RETRY | VM_FAULT_COMPLETED)) ^ include/linux/mm.h:2371:6: error: use of undeclared identifier 'fault' include/linux/mm.h:2371:6: error: use of undeclared identifier 'fault' include/linux/mm.h:2396:20: error: use of undeclared identifier 'mm' mmap_read_unlock(mm); ^ >> drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c:200:48: warning: shift count >= width of type [-Wshift-count-overflow] if (!dma_set_mask_and_coherent(dsaf_dev->dev, DMA_BIT_MASK(64ULL))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ include/linux/dma-mapping.h:76:54: note: expanded from macro 'DMA_BIT_MASK' #define DMA_BIT_MASK(n) (((n) == 64) ? ~0ULL : ((1ULL<<(n))-1)) ^ include/linux/compiler.h:56:47: note: expanded from macro 'if' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ include/linux/compiler.h:58:52: note: expanded from macro '__trace_if_var' #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) ^~~~ >> drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c:200:48: warning: shift count >= width of type [-Wshift-count-overflow] if (!dma_set_mask_and_coherent(dsaf_dev->dev, DMA_BIT_MASK(64ULL))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ include/linux/dma-mapping.h:76:54: note: expanded from macro 'DMA_BIT_MASK' #define DMA_BIT_MASK(n) (((n) == 64) ? ~0ULL : ((1ULL<<(n))-1)) ^ include/linux/compiler.h:56:47: note: expanded from macro 'if' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ include/linux/compiler.h:58:61: note: expanded from macro '__trace_if_var' #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) ^~~~ >> drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c:200:48: warning: shift count >= width of type [-Wshift-count-overflow] if (!dma_set_mask_and_coherent(dsaf_dev->dev, DMA_BIT_MASK(64ULL))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ include/linux/dma-mapping.h:76:54: note: expanded from macro 'DMA_BIT_MASK' #define DMA_BIT_MASK(n) (((n) == 64) ? ~0ULL : ((1ULL<<(n))-1)) ^ include/linux/compiler.h:56:47: note: expanded from macro 'if' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ include/linux/compiler.h:58:86: note: expanded from macro '__trace_if_var' #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) ~~~~~~~~~~~~~~~~~^~~~~ include/linux/compiler.h:69:3: note: expanded from macro '__trace_if_value' (cond) ? \ ^~~~ 9 warnings and 4 errors generated. vim +200 drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c 8413b3be4d77dae Kejian Yan 2016-06-03 40 336a443bd9ddca3 YueHaibing 2018-07-26 41 static int hns_dsaf_get_cfg(struct dsaf_device *dsaf_dev) 511e6bc071db148 huangdaode 2015-09-17 42 { 511e6bc071db148 huangdaode 2015-09-17 43 int ret, i; 511e6bc071db148 huangdaode 2015-09-17 44 u32 desc_num; 511e6bc071db148 huangdaode 2015-09-17 45 u32 buf_size; 422c3107ed2cc62 Yisen.Zhuang\(Zhuangyuzeng\ 2016-04-23 46) u32 reset_offset = 0; 831d828bf2cc853 Yisen.Zhuang\(Zhuangyuzeng\ 2016-04-23 47) u32 res_idx = 0; 48189d6aaf1ed1b yankejian 2016-01-20 48 const char *mode_str; 831d828bf2cc853 Yisen.Zhuang\(Zhuangyuzeng\ 2016-04-23 49) struct regmap *syscon; 831d828bf2cc853 Yisen.Zhuang\(Zhuangyuzeng\ 2016-04-23 50) struct resource *res; 453cafbce5bd256 Peter Chen 2016-08-01 51 struct device_node *np = dsaf_dev->dev->of_node, *np_temp; 831d828bf2cc853 Yisen.Zhuang\(Zhuangyuzeng\ 2016-04-23 52) struct platform_device *pdev = to_platform_device(dsaf_dev->dev); 511e6bc071db148 huangdaode 2015-09-17 53 8413b3be4d77dae Kejian Yan 2016-06-03 54 if (dev_of_node(dsaf_dev->dev)) { 13ac695e7ea16cb Salil 2015-12-03 55 if (of_device_is_compatible(np, "hisilicon,hns-dsaf-v1")) 511e6bc071db148 huangdaode 2015-09-17 56 dsaf_dev->dsaf_ver = AE_VERSION_1; 13ac695e7ea16cb Salil 2015-12-03 57 else 13ac695e7ea16cb Salil 2015-12-03 58 dsaf_dev->dsaf_ver = AE_VERSION_2; 8413b3be4d77dae Kejian Yan 2016-06-03 59 } else if (is_acpi_node(dsaf_dev->dev->fwnode)) { 8413b3be4d77dae Kejian Yan 2016-06-03 60 if (acpi_dev_found(hns_dsaf_acpi_match[0].id)) 8413b3be4d77dae Kejian Yan 2016-06-03 61 dsaf_dev->dsaf_ver = AE_VERSION_1; 8413b3be4d77dae Kejian Yan 2016-06-03 62 else if (acpi_dev_found(hns_dsaf_acpi_match[1].id)) 8413b3be4d77dae Kejian Yan 2016-06-03 63 dsaf_dev->dsaf_ver = AE_VERSION_2; 8413b3be4d77dae Kejian Yan 2016-06-03 64 else 8413b3be4d77dae Kejian Yan 2016-06-03 65 return -ENXIO; 8413b3be4d77dae Kejian Yan 2016-06-03 66 } else { 8413b3be4d77dae Kejian Yan 2016-06-03 67 dev_err(dsaf_dev->dev, "cannot get cfg data from of or acpi\n"); 8413b3be4d77dae Kejian Yan 2016-06-03 68 return -ENXIO; 8413b3be4d77dae Kejian Yan 2016-06-03 69 } 511e6bc071db148 huangdaode 2015-09-17 70 6162928c76dcba2 Kejian Yan 2016-06-03 71 ret = device_property_read_string(dsaf_dev->dev, "mode", &mode_str); 511e6bc071db148 huangdaode 2015-09-17 72 if (ret) { 511e6bc071db148 huangdaode 2015-09-17 73 dev_err(dsaf_dev->dev, "get dsaf mode fail, ret=%d!\n", ret); 511e6bc071db148 huangdaode 2015-09-17 74 return ret; 511e6bc071db148 huangdaode 2015-09-17 75 } 511e6bc071db148 huangdaode 2015-09-17 76 for (i = 0; i < DSAF_MODE_MAX; i++) { 511e6bc071db148 huangdaode 2015-09-17 77 if (g_dsaf_mode_match[i] && 511e6bc071db148 huangdaode 2015-09-17 78 !strcmp(mode_str, g_dsaf_mode_match[i])) 511e6bc071db148 huangdaode 2015-09-17 79 break; 511e6bc071db148 huangdaode 2015-09-17 80 } 511e6bc071db148 huangdaode 2015-09-17 81 if (i >= DSAF_MODE_MAX || 511e6bc071db148 huangdaode 2015-09-17 82 i == DSAF_MODE_INVALID || i == DSAF_MODE_ENABLE) { 511e6bc071db148 huangdaode 2015-09-17 83 dev_err(dsaf_dev->dev, 511e6bc071db148 huangdaode 2015-09-17 84 "%s prs mode str fail!\n", dsaf_dev->ae_dev.name); 511e6bc071db148 huangdaode 2015-09-17 85 return -EINVAL; 511e6bc071db148 huangdaode 2015-09-17 86 } 511e6bc071db148 huangdaode 2015-09-17 87 dsaf_dev->dsaf_mode = (enum dsaf_mode)i; 511e6bc071db148 huangdaode 2015-09-17 88 511e6bc071db148 huangdaode 2015-09-17 89 if (dsaf_dev->dsaf_mode > DSAF_MODE_ENABLE) 511e6bc071db148 huangdaode 2015-09-17 90 dsaf_dev->dsaf_en = HRD_DSAF_NO_DSAF_MODE; 511e6bc071db148 huangdaode 2015-09-17 91 else 511e6bc071db148 huangdaode 2015-09-17 92 dsaf_dev->dsaf_en = HRD_DSAF_MODE; 511e6bc071db148 huangdaode 2015-09-17 93 511e6bc071db148 huangdaode 2015-09-17 94 if ((i == DSAF_MODE_ENABLE_16VM) || 511e6bc071db148 huangdaode 2015-09-17 95 (i == DSAF_MODE_DISABLE_2PORT_8VM) || 511e6bc071db148 huangdaode 2015-09-17 96 (i == DSAF_MODE_DISABLE_6PORT_2VM)) 511e6bc071db148 huangdaode 2015-09-17 97 dsaf_dev->dsaf_tc_mode = HRD_DSAF_8TC_MODE; 511e6bc071db148 huangdaode 2015-09-17 98 else 511e6bc071db148 huangdaode 2015-09-17 99 dsaf_dev->dsaf_tc_mode = HRD_DSAF_4TC_MODE; 511e6bc071db148 huangdaode 2015-09-17 100 8413b3be4d77dae Kejian Yan 2016-06-03 101 if (dev_of_node(dsaf_dev->dev)) { 453cafbce5bd256 Peter Chen 2016-08-01 102 np_temp = of_parse_phandle(np, "subctrl-syscon", 0); 453cafbce5bd256 Peter Chen 2016-08-01 103 syscon = syscon_node_to_regmap(np_temp); 453cafbce5bd256 Peter Chen 2016-08-01 104 of_node_put(np_temp); 831d828bf2cc853 Yisen.Zhuang\(Zhuangyuzeng\ 2016-04-23 105) if (IS_ERR_OR_NULL(syscon)) { 8413b3be4d77dae Kejian Yan 2016-06-03 106 res = platform_get_resource(pdev, IORESOURCE_MEM, 8413b3be4d77dae Kejian Yan 2016-06-03 107 res_idx++); 831d828bf2cc853 Yisen.Zhuang\(Zhuangyuzeng\ 2016-04-23 108) if (!res) { 831d828bf2cc853 Yisen.Zhuang\(Zhuangyuzeng\ 2016-04-23 109) dev_err(dsaf_dev->dev, "subctrl info is needed!\n"); 831d828bf2cc853 Yisen.Zhuang\(Zhuangyuzeng\ 2016-04-23 110) return -ENOMEM; 831d828bf2cc853 Yisen.Zhuang\(Zhuangyuzeng\ 2016-04-23 111) } 8413b3be4d77dae Kejian Yan 2016-06-03 112 8413b3be4d77dae Kejian Yan 2016-06-03 113 dsaf_dev->sc_base = devm_ioremap_resource(&pdev->dev, 8413b3be4d77dae Kejian Yan 2016-06-03 114 res); b3dc93501e34b6e Wei Yongjun 2016-08-23 115 if (IS_ERR(dsaf_dev->sc_base)) 96329a181bfbbac Wei Yongjun 2016-07-05 116 return PTR_ERR(dsaf_dev->sc_base); 511e6bc071db148 huangdaode 2015-09-17 117 8413b3be4d77dae Kejian Yan 2016-06-03 118 res = platform_get_resource(pdev, IORESOURCE_MEM, 8413b3be4d77dae Kejian Yan 2016-06-03 119 res_idx++); 831d828bf2cc853 Yisen.Zhuang\(Zhuangyuzeng\ 2016-04-23 120) if (!res) { 831d828bf2cc853 Yisen.Zhuang\(Zhuangyuzeng\ 2016-04-23 121) dev_err(dsaf_dev->dev, "serdes-ctrl info is needed!\n"); 831d828bf2cc853 Yisen.Zhuang\(Zhuangyuzeng\ 2016-04-23 122) return -ENOMEM; 831d828bf2cc853 Yisen.Zhuang\(Zhuangyuzeng\ 2016-04-23 123) } 8413b3be4d77dae Kejian Yan 2016-06-03 124 8413b3be4d77dae Kejian Yan 2016-06-03 125 dsaf_dev->sds_base = devm_ioremap_resource(&pdev->dev, 8413b3be4d77dae Kejian Yan 2016-06-03 126 res); b3dc93501e34b6e Wei Yongjun 2016-08-23 127 if (IS_ERR(dsaf_dev->sds_base)) 96329a181bfbbac Wei Yongjun 2016-07-05 128 return PTR_ERR(dsaf_dev->sds_base); 831d828bf2cc853 Yisen.Zhuang\(Zhuangyuzeng\ 2016-04-23 129) } else { 831d828bf2cc853 Yisen.Zhuang\(Zhuangyuzeng\ 2016-04-23 130) dsaf_dev->sub_ctrl = syscon; 511e6bc071db148 huangdaode 2015-09-17 131 } 8413b3be4d77dae Kejian Yan 2016-06-03 132 } 511e6bc071db148 huangdaode 2015-09-17 133 831d828bf2cc853 Yisen.Zhuang\(Zhuangyuzeng\ 2016-04-23 134) res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "ppe-base"); 831d828bf2cc853 Yisen.Zhuang\(Zhuangyuzeng\ 2016-04-23 135) if (!res) { 831d828bf2cc853 Yisen.Zhuang\(Zhuangyuzeng\ 2016-04-23 136) res = platform_get_resource(pdev, IORESOURCE_MEM, res_idx++); 831d828bf2cc853 Yisen.Zhuang\(Zhuangyuzeng\ 2016-04-23 137) if (!res) { 831d828bf2cc853 Yisen.Zhuang\(Zhuangyuzeng\ 2016-04-23 138) dev_err(dsaf_dev->dev, "ppe-base info is needed!\n"); 831d828bf2cc853 Yisen.Zhuang\(Zhuangyuzeng\ 2016-04-23 139) return -ENOMEM; 831d828bf2cc853 Yisen.Zhuang\(Zhuangyuzeng\ 2016-04-23 140) } 831d828bf2cc853 Yisen.Zhuang\(Zhuangyuzeng\ 2016-04-23 141) } 831d828bf2cc853 Yisen.Zhuang\(Zhuangyuzeng\ 2016-04-23 142) dsaf_dev->ppe_base = devm_ioremap_resource(&pdev->dev, res); b3dc93501e34b6e Wei Yongjun 2016-08-23 143 if (IS_ERR(dsaf_dev->ppe_base)) 96329a181bfbbac Wei Yongjun 2016-07-05 144 return PTR_ERR(dsaf_dev->ppe_base); 831d828bf2cc853 Yisen.Zhuang\(Zhuangyuzeng\ 2016-04-23 145) dsaf_dev->ppe_paddr = res->start; 831d828bf2cc853 Yisen.Zhuang\(Zhuangyuzeng\ 2016-04-23 146) 831d828bf2cc853 Yisen.Zhuang\(Zhuangyuzeng\ 2016-04-23 147) if (!HNS_DSAF_IS_DEBUG(dsaf_dev)) { 831d828bf2cc853 Yisen.Zhuang\(Zhuangyuzeng\ 2016-04-23 148) res = platform_get_resource_byname(pdev, IORESOURCE_MEM, 831d828bf2cc853 Yisen.Zhuang\(Zhuangyuzeng\ 2016-04-23 149) "dsaf-base"); 831d828bf2cc853 Yisen.Zhuang\(Zhuangyuzeng\ 2016-04-23 150) if (!res) { 831d828bf2cc853 Yisen.Zhuang\(Zhuangyuzeng\ 2016-04-23 151) res = platform_get_resource(pdev, IORESOURCE_MEM, 831d828bf2cc853 Yisen.Zhuang\(Zhuangyuzeng\ 2016-04-23 152) res_idx); 831d828bf2cc853 Yisen.Zhuang\(Zhuangyuzeng\ 2016-04-23 153) if (!res) { 511e6bc071db148 huangdaode 2015-09-17 154 dev_err(dsaf_dev->dev, 831d828bf2cc853 Yisen.Zhuang\(Zhuangyuzeng\ 2016-04-23 155) "dsaf-base info is needed!\n"); 831d828bf2cc853 Yisen.Zhuang\(Zhuangyuzeng\ 2016-04-23 156) return -ENOMEM; 511e6bc071db148 huangdaode 2015-09-17 157 } 831d828bf2cc853 Yisen.Zhuang\(Zhuangyuzeng\ 2016-04-23 158) } 831d828bf2cc853 Yisen.Zhuang\(Zhuangyuzeng\ 2016-04-23 159) dsaf_dev->io_base = devm_ioremap_resource(&pdev->dev, res); b3dc93501e34b6e Wei Yongjun 2016-08-23 160 if (IS_ERR(dsaf_dev->io_base)) 96329a181bfbbac Wei Yongjun 2016-07-05 161 return PTR_ERR(dsaf_dev->io_base); 831d828bf2cc853 Yisen.Zhuang\(Zhuangyuzeng\ 2016-04-23 162) } 511e6bc071db148 huangdaode 2015-09-17 163 6162928c76dcba2 Kejian Yan 2016-06-03 164 ret = device_property_read_u32(dsaf_dev->dev, "desc-num", &desc_num); 511e6bc071db148 huangdaode 2015-09-17 165 if (ret < 0 || desc_num < HNS_DSAF_MIN_DESC_CNT || 511e6bc071db148 huangdaode 2015-09-17 166 desc_num > HNS_DSAF_MAX_DESC_CNT) { 511e6bc071db148 huangdaode 2015-09-17 167 dev_err(dsaf_dev->dev, "get desc-num(%d) fail, ret=%d!\n", 511e6bc071db148 huangdaode 2015-09-17 168 desc_num, ret); f6c2df1e5b913f9 Qianqian Xie 2016-06-21 169 return -EINVAL; 511e6bc071db148 huangdaode 2015-09-17 170 } 511e6bc071db148 huangdaode 2015-09-17 171 dsaf_dev->desc_num = desc_num; 511e6bc071db148 huangdaode 2015-09-17 172 6162928c76dcba2 Kejian Yan 2016-06-03 173 ret = device_property_read_u32(dsaf_dev->dev, "reset-field-offset", 6162928c76dcba2 Kejian Yan 2016-06-03 174 &reset_offset); 422c3107ed2cc62 Yisen.Zhuang\(Zhuangyuzeng\ 2016-04-23 175) if (ret < 0) { 422c3107ed2cc62 Yisen.Zhuang\(Zhuangyuzeng\ 2016-04-23 176) dev_dbg(dsaf_dev->dev, 422c3107ed2cc62 Yisen.Zhuang\(Zhuangyuzeng\ 2016-04-23 177) "get reset-field-offset fail, ret=%d!\r\n", ret); 422c3107ed2cc62 Yisen.Zhuang\(Zhuangyuzeng\ 2016-04-23 178) } 422c3107ed2cc62 Yisen.Zhuang\(Zhuangyuzeng\ 2016-04-23 179) dsaf_dev->reset_offset = reset_offset; 422c3107ed2cc62 Yisen.Zhuang\(Zhuangyuzeng\ 2016-04-23 180) 6162928c76dcba2 Kejian Yan 2016-06-03 181 ret = device_property_read_u32(dsaf_dev->dev, "buf-size", &buf_size); 511e6bc071db148 huangdaode 2015-09-17 182 if (ret < 0) { 511e6bc071db148 huangdaode 2015-09-17 183 dev_err(dsaf_dev->dev, 511e6bc071db148 huangdaode 2015-09-17 184 "get buf-size fail, ret=%d!\r\n", ret); f6c2df1e5b913f9 Qianqian Xie 2016-06-21 185 return ret; 511e6bc071db148 huangdaode 2015-09-17 186 } 511e6bc071db148 huangdaode 2015-09-17 187 dsaf_dev->buf_size = buf_size; 511e6bc071db148 huangdaode 2015-09-17 188 511e6bc071db148 huangdaode 2015-09-17 189 dsaf_dev->buf_size_type = hns_rcb_buf_size2type(buf_size); 511e6bc071db148 huangdaode 2015-09-17 190 if (dsaf_dev->buf_size_type < 0) { 511e6bc071db148 huangdaode 2015-09-17 191 dev_err(dsaf_dev->dev, 511e6bc071db148 huangdaode 2015-09-17 192 "buf_size(%d) is wrong!\n", buf_size); f6c2df1e5b913f9 Qianqian Xie 2016-06-21 193 return -EINVAL; 511e6bc071db148 huangdaode 2015-09-17 194 } 511e6bc071db148 huangdaode 2015-09-17 195 a24274aa5c2328a Kejian Yan 2016-06-03 196 dsaf_dev->misc_op = hns_misc_op_get(dsaf_dev); a24274aa5c2328a Kejian Yan 2016-06-03 197 if (!dsaf_dev->misc_op) a24274aa5c2328a Kejian Yan 2016-06-03 198 return -ENOMEM; a24274aa5c2328a Kejian Yan 2016-06-03 199 511e6bc071db148 huangdaode 2015-09-17 @200 if (!dma_set_mask_and_coherent(dsaf_dev->dev, DMA_BIT_MASK(64ULL))) 511e6bc071db148 huangdaode 2015-09-17 201 dev_dbg(dsaf_dev->dev, "set mask to 64bit\n"); 511e6bc071db148 huangdaode 2015-09-17 202 else 511e6bc071db148 huangdaode 2015-09-17 203 dev_err(dsaf_dev->dev, "set mask to 64bit fail!\n"); 511e6bc071db148 huangdaode 2015-09-17 204 511e6bc071db148 huangdaode 2015-09-17 205 return 0; 511e6bc071db148 huangdaode 2015-09-17 206 } 511e6bc071db148 huangdaode 2015-09-17 207 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests