From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============6516470476826844397==" MIME-Version: 1.0 From: kernel test robot To: kbuild-all@lists.01.org Subject: Re: [PATCH] sparse: use static inline for __chk_{user, io}_ptr() Date: Wed, 02 Sep 2020 09:12:38 +0800 Message-ID: <202009020955.cun2o9FJ%lkp@intel.com> In-Reply-To: <20200828085301.78423-1-luc.vanoostenryck@gmail.com> List-Id: --===============6516470476826844397== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Hi Luc, I love your patch! Perhaps something to improve: [auto build test WARNING on 9123e3a74ec7b934a4a099e98af6a61c2f80bbf5] url: https://github.com/0day-ci/linux/commits/Luc-Van-Oostenryck/sparse-= use-static-inline-for-__chk_-user-io-_ptr/20200828-165431 base: 9123e3a74ec7b934a4a099e98af6a61c2f80bbf5 config: sparc-randconfig-s032-20200901 (attached as .config) compiler: sparc64-linux-gcc (GCC) 9.3.0 reproduce: wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/= make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # apt-get install sparse # sparse version: v0.6.2-191-g10164920-dirty # save the attached .config to linux build tree COMPILER_INSTALL_PATH=3D$HOME/0day COMPILER=3Dgcc-9.3.0 make.cross = C=3D1 CF=3D'-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=3Dsparc = If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot sparse warnings: (new ones prefixed by >>) drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:138:17: sparse: sparse: inco= rrect type in initializer (different base types) @@ expected restricted= __poll_t ( *poll )( ... ) @@ got unsigned int ( * )( ... ) @@ drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:138:17: sparse: expected= restricted __poll_t ( *poll )( ... ) drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:138:17: sparse: got unsi= gned int ( * )( ... ) drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:261:29: sparse: sparse: cast= removes address space '__user' of expression drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:261:29: sparse: sparse: cast= removes address space '__user' of expression drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:261:29: sparse: sparse: inco= rrect type in argument 1 (different address spaces) @@ expected void co= nst volatile [noderef] __user *ptr @@ got unsigned int [usertype] * @@ drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:261:29: sparse: expected= void const volatile [noderef] __user *ptr drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:261:29: sparse: got unsi= gned int [usertype] * drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:261:29: sparse: sparse: cast= removes address space '__user' of expression drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:261:29: sparse: sparse: cast= removes address space '__user' of expression drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:261:29: sparse: sparse: cast= removes address space '__user' of expression drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:261:29: sparse: sparse: cast= removes address space '__user' of expression drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:261:29: sparse: sparse: cast= removes address space '__user' of expression drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:263:29: sparse: sparse: cast= removes address space '__user' of expression drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:263:29: sparse: sparse: cast= removes address space '__user' of expression drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:263:29: sparse: sparse: inco= rrect type in argument 1 (different address spaces) @@ expected void co= nst volatile [noderef] __user *ptr @@ got unsigned int [usertype] * @@ drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:263:29: sparse: expected= void const volatile [noderef] __user *ptr drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:263:29: sparse: got unsi= gned int [usertype] * drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:263:29: sparse: sparse: cast= removes address space '__user' of expression drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:263:29: sparse: sparse: cast= removes address space '__user' of expression drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:354:21: sparse: sparse: cast= removes address space '__user' of expression drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:354:21: sparse: sparse: cast= removes address space '__user' of expression drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:354:21: sparse: sparse: inco= rrect type in argument 1 (different address spaces) @@ expected void co= nst volatile [noderef] __user *ptr @@ got unsigned int [usertype] * @@ drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:354:21: sparse: expected= void const volatile [noderef] __user *ptr drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:354:21: sparse: got unsi= gned int [usertype] * drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:354:21: sparse: sparse: cast= removes address space '__user' of expression drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:354:21: sparse: sparse: cast= removes address space '__user' of expression drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:354:21: sparse: sparse: cast= removes address space '__user' of expression drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:354:21: sparse: sparse: cast= removes address space '__user' of expression drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:354:21: sparse: sparse: cast= removes address space '__user' of expression drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:412:21: sparse: sparse: cast= removes address space '__user' of expression drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:412:21: sparse: sparse: cast= removes address space '__user' of expression drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:412:21: sparse: sparse: inco= rrect type in argument 1 (different address spaces) @@ expected void co= nst volatile [noderef] __user *ptr @@ got unsigned int [usertype] * @@ drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:412:21: sparse: expected= void const volatile [noderef] __user *ptr drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:412:21: sparse: got unsi= gned int [usertype] * drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:412:21: sparse: sparse: cast= removes address space '__user' of expression drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:412:21: sparse: sparse: cast= removes address space '__user' of expression drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:473:21: sparse: sparse: cast= removes address space '__user' of expression drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:473:21: sparse: sparse: cast= removes address space '__user' of expression drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:473:21: sparse: sparse: inco= rrect type in argument 1 (different address spaces) @@ expected void co= nst volatile [noderef] __user *ptr @@ got unsigned int [usertype] * @@ drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:473:21: sparse: expected= void const volatile [noderef] __user *ptr drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:473:21: sparse: got unsi= gned int [usertype] * drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:473:21: sparse: sparse: cast= removes address space '__user' of expression drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:473:21: sparse: sparse: cast= removes address space '__user' of expression drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:473:21: sparse: sparse: cast= removes address space '__user' of expression drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:473:21: sparse: sparse: cast= removes address space '__user' of expression drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:473:21: sparse: sparse: cast= removes address space '__user' of expression drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:531:21: sparse: sparse: cast= removes address space '__user' of expression drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:531:21: sparse: sparse: cast= removes address space '__user' of expression drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:531:21: sparse: sparse: inco= rrect type in argument 1 (different address spaces) @@ expected void co= nst volatile [noderef] __user *ptr @@ got unsigned int [usertype] * @@ drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:531:21: sparse: expected= void const volatile [noderef] __user *ptr drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:531:21: sparse: got unsi= gned int [usertype] * drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:531:21: sparse: sparse: cast= removes address space '__user' of expression drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:531:21: sparse: sparse: cast= removes address space '__user' of expression drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:592:21: sparse: sparse: cast= removes address space '__user' of expression drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:592:21: sparse: sparse: cast= removes address space '__user' of expression drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:592:21: sparse: sparse: inco= rrect type in argument 1 (different address spaces) @@ expected void co= nst volatile [noderef] __user *ptr @@ got unsigned int [usertype] * @@ drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:592:21: sparse: expected= void const volatile [noderef] __user *ptr drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:592:21: sparse: got unsi= gned int [usertype] * drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:592:21: sparse: sparse: cast= removes address space '__user' of expression drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:592:21: sparse: sparse: cast= removes address space '__user' of expression drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:592:21: sparse: sparse: cast= removes address space '__user' of expression drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:592:21: sparse: sparse: cast= removes address space '__user' of expression drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:592:21: sparse: sparse: cast= removes address space '__user' of expression drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:650:21: sparse: sparse: cast= removes address space '__user' of expression drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:650:21: sparse: sparse: cast= removes address space '__user' of expression drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:650:21: sparse: sparse: inco= rrect type in argument 1 (different address spaces) @@ expected void co= nst volatile [noderef] __user *ptr @@ got unsigned int [usertype] * @@ drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:650:21: sparse: expected= void const volatile [noderef] __user *ptr drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:650:21: sparse: got unsi= gned int [usertype] * drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:650:21: sparse: sparse: cast= removes address space '__user' of expression drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:650:21: sparse: sparse: cast= removes address space '__user' of expression drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:747:21: sparse: sparse: cast= removes address space '__user' of expression drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:747:21: sparse: sparse: cast= removes address space '__user' of expression drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:747:21: sparse: sparse: inco= rrect type in argument 1 (different address spaces) @@ expected void co= nst volatile [noderef] __user *ptr @@ got unsigned int [usertype] * @@ drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:747:21: sparse: expected= void const volatile [noderef] __user *ptr drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:747:21: sparse: got unsi= gned int [usertype] * drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:747:21: sparse: sparse: cast= removes address space '__user' of expression drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:747:21: sparse: sparse: cast= removes address space '__user' of expression drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:747:21: sparse: sparse: cast= removes address space '__user' of expression drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:747:21: sparse: sparse: cast= removes address space '__user' of expression drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:747:21: sparse: sparse: cast= removes address space '__user' of expression drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:825:29: sparse: sparse: cast= removes address space '__user' of expression drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:825:29: sparse: sparse: cast= removes address space '__user' of expression >> drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:825:29: sparse: sparse: inco= rrect type in argument 1 (different address spaces) @@ expected void co= nst volatile [noderef] __user *ptr @@ got signed int [usertype] * @@ drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:825:29: sparse: expected= void const volatile [noderef] __user *ptr drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:825:29: sparse: got sign= ed int [usertype] * drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:825:29: sparse: sparse: cast= removes address space '__user' of expression drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:825:29: sparse: sparse: cast= removes address space '__user' of expression drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:825:29: sparse: sparse: cast= removes address space '__user' of expression drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:825:29: sparse: sparse: cast= removes address space '__user' of expression drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:825:29: sparse: sparse: cast= removes address space '__user' of expression drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:911:21: sparse: sparse: cast= removes address space '__user' of expression drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:911:21: sparse: sparse: cast= removes address space '__user' of expression drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:911:21: sparse: sparse: inco= rrect type in argument 1 (different address spaces) @@ expected void co= nst volatile [noderef] __user *ptr @@ got unsigned int [usertype] * @@ drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:911:21: sparse: expected= void const volatile [noderef] __user *ptr drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:911:21: sparse: got unsi= gned int [usertype] * drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:911:21: sparse: sparse: cast= removes address space '__user' of expression drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:911:21: sparse: sparse: cast= removes address space '__user' of expression drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:911:21: sparse: sparse: cast= removes address space '__user' of expression drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:911:21: sparse: sparse: cast= removes address space '__user' of expression drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:911:21: sparse: sparse: cast= removes address space '__user' of expression drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:1004:21: sparse: sparse: cas= t removes address space '__user' of expression drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:1004:21: sparse: sparse: cas= t removes address space '__user' of expression drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:1004:21: sparse: sparse: inc= orrect type in argument 1 (different address spaces) @@ expected void c= onst volatile [noderef] __user *ptr @@ got unsigned int [usertype] * @@ drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:1004:21: sparse: expecte= d void const volatile [noderef] __user *ptr drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:1004:21: sparse: got uns= igned int [usertype] * drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:1004:21: sparse: sparse: cas= t removes address space '__user' of expression drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:1004:21: sparse: sparse: cas= t removes address space '__user' of expression drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:1004:21: sparse: sparse: cas= t removes address space '__user' of expression drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:1004:21: sparse: sparse: cas= t removes address space '__user' of expression drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:1004:21: sparse: sparse: cas= t removes address space '__user' of expression drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:1054:21: sparse: sparse: cas= t removes address space '__user' of expression drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:1054:21: sparse: sparse: cas= t removes address space '__user' of expression drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:1054:21: sparse: sparse: inc= orrect type in argument 1 (different address spaces) @@ expected void c= onst volatile [noderef] __user *ptr @@ got unsigned int [usertype] * @@ drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:1054:21: sparse: expecte= d void const volatile [noderef] __user *ptr drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:1054:21: sparse: got uns= igned int [usertype] * drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:1054:21: sparse: sparse: cas= t removes address space '__user' of expression drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:1054:21: sparse: sparse: cas= t removes address space '__user' of expression drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:1108:21: sparse: sparse: cas= t removes address space '__user' of expression drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:1108:21: sparse: sparse: cas= t removes address space '__user' of expression drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:1108:21: sparse: sparse: inc= orrect type in argument 1 (different address spaces) @@ expected void c= onst volatile [noderef] __user *ptr @@ got unsigned int [usertype] * @@ drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:1108:21: sparse: expecte= d void const volatile [noderef] __user *ptr drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:1108:21: sparse: got uns= igned int [usertype] * drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:1108:21: sparse: sparse: cas= t removes address space '__user' of expression drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:1108:21: sparse: sparse: cas= t removes address space '__user' of expression drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:1108:21: sparse: sparse: cas= t removes address space '__user' of expression drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:1108:21: sparse: sparse: cas= t removes address space '__user' of expression drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:1108:21: sparse: sparse: cas= t removes address space '__user' of expression drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:1357:25: sparse: sparse: inc= ompatible types in comparison expression (different address spaces): drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:1357:25: sparse: struct d= ma_fence [noderef] __rcu * drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:1357:25: sparse: struct d= ma_fence * drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:1358:17: sparse: sparse: inc= ompatible types in comparison expression (different address spaces): drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:1358:17: sparse: struct d= ma_fence [noderef] __rcu * drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:1358:17: sparse: struct d= ma_fence * drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:1409:23: sparse: sparse: cas= t to restricted __le32 drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:1409:23: sparse: sparse: too= many warnings drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:1417:17: sparse: sparse: inc= ompatible types in comparison expression (different address spaces): drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:1417:17: sparse: struct d= ma_fence [noderef] __rcu * drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:1417:17: sparse: struct d= ma_fence * # https://github.com/0day-ci/linux/commit/7d01c91ac34a64f0177bc6d058cc50e80= 5f59102 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Luc-Van-Oostenryck/sparse-use-static-inlin= e-for-__chk_-user-io-_ptr/20200828-165431 git checkout 7d01c91ac34a64f0177bc6d058cc50e805f59102 vim +825 drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c 75758255dc0fae Alex Deucher 2017-12-14 672 = 7e4237dbe494f9 Tom St Denis 2018-05-02 673 /** 7e4237dbe494f9 Tom St Denis 2018-05-02 674 * amdgpu_debugfs_gca_config_r= ead - Read from gfx config data 7e4237dbe494f9 Tom St Denis 2018-05-02 675 * 7e4237dbe494f9 Tom St Denis 2018-05-02 676 * @f: open file handle 7e4237dbe494f9 Tom St Denis 2018-05-02 677 * @buf: User buffer to store = read data in 7e4237dbe494f9 Tom St Denis 2018-05-02 678 * @size: Number of bytes to r= ead 7e4237dbe494f9 Tom St Denis 2018-05-02 679 * @pos: Offset to seek to 7e4237dbe494f9 Tom St Denis 2018-05-02 680 * 7e4237dbe494f9 Tom St Denis 2018-05-02 681 * This file is used to access= configuration data in a somewhat 7e4237dbe494f9 Tom St Denis 2018-05-02 682 * stable fashion. The format= is a series of DWORDs with the first 7e4237dbe494f9 Tom St Denis 2018-05-02 683 * indicating which revision i= t is. New content is appended to the 7e4237dbe494f9 Tom St Denis 2018-05-02 684 * end so that older software = can still read the data. 7e4237dbe494f9 Tom St Denis 2018-05-02 685 */ 7e4237dbe494f9 Tom St Denis 2018-05-02 686 = 75758255dc0fae Alex Deucher 2017-12-14 687 static ssize_t amdgpu_debugfs_= gca_config_read(struct file *f, char __user *buf, 75758255dc0fae Alex Deucher 2017-12-14 688 size_t size, loff_t *pos) 75758255dc0fae Alex Deucher 2017-12-14 689 { 75758255dc0fae Alex Deucher 2017-12-14 690 struct amdgpu_device *adev = =3D file_inode(f)->i_private; 75758255dc0fae Alex Deucher 2017-12-14 691 ssize_t result =3D 0; 75758255dc0fae Alex Deucher 2017-12-14 692 int r; 75758255dc0fae Alex Deucher 2017-12-14 693 uint32_t *config, no_regs =3D= 0; 75758255dc0fae Alex Deucher 2017-12-14 694 = 75758255dc0fae Alex Deucher 2017-12-14 695 if (size & 0x3 || *pos & 0x3) 75758255dc0fae Alex Deucher 2017-12-14 696 return -EINVAL; 75758255dc0fae Alex Deucher 2017-12-14 697 = 75758255dc0fae Alex Deucher 2017-12-14 698 config =3D kmalloc_array(256,= sizeof(*config), GFP_KERNEL); 75758255dc0fae Alex Deucher 2017-12-14 699 if (!config) 75758255dc0fae Alex Deucher 2017-12-14 700 return -ENOMEM; 75758255dc0fae Alex Deucher 2017-12-14 701 = 75758255dc0fae Alex Deucher 2017-12-14 702 /* version, increment each ti= me something is added */ 75758255dc0fae Alex Deucher 2017-12-14 703 config[no_regs++] =3D 3; 75758255dc0fae Alex Deucher 2017-12-14 704 config[no_regs++] =3D adev->g= fx.config.max_shader_engines; 75758255dc0fae Alex Deucher 2017-12-14 705 config[no_regs++] =3D adev->g= fx.config.max_tile_pipes; 75758255dc0fae Alex Deucher 2017-12-14 706 config[no_regs++] =3D adev->g= fx.config.max_cu_per_sh; 75758255dc0fae Alex Deucher 2017-12-14 707 config[no_regs++] =3D adev->g= fx.config.max_sh_per_se; 75758255dc0fae Alex Deucher 2017-12-14 708 config[no_regs++] =3D adev->g= fx.config.max_backends_per_se; 75758255dc0fae Alex Deucher 2017-12-14 709 config[no_regs++] =3D adev->g= fx.config.max_texture_channel_caches; 75758255dc0fae Alex Deucher 2017-12-14 710 config[no_regs++] =3D adev->g= fx.config.max_gprs; 75758255dc0fae Alex Deucher 2017-12-14 711 config[no_regs++] =3D adev->g= fx.config.max_gs_threads; 75758255dc0fae Alex Deucher 2017-12-14 712 config[no_regs++] =3D adev->g= fx.config.max_hw_contexts; 75758255dc0fae Alex Deucher 2017-12-14 713 config[no_regs++] =3D adev->g= fx.config.sc_prim_fifo_size_frontend; 75758255dc0fae Alex Deucher 2017-12-14 714 config[no_regs++] =3D adev->g= fx.config.sc_prim_fifo_size_backend; 75758255dc0fae Alex Deucher 2017-12-14 715 config[no_regs++] =3D adev->g= fx.config.sc_hiz_tile_fifo_size; 75758255dc0fae Alex Deucher 2017-12-14 716 config[no_regs++] =3D adev->g= fx.config.sc_earlyz_tile_fifo_size; 75758255dc0fae Alex Deucher 2017-12-14 717 config[no_regs++] =3D adev->g= fx.config.num_tile_pipes; 75758255dc0fae Alex Deucher 2017-12-14 718 config[no_regs++] =3D adev->g= fx.config.backend_enable_mask; 75758255dc0fae Alex Deucher 2017-12-14 719 config[no_regs++] =3D adev->g= fx.config.mem_max_burst_length_bytes; 75758255dc0fae Alex Deucher 2017-12-14 720 config[no_regs++] =3D adev->g= fx.config.mem_row_size_in_kb; 75758255dc0fae Alex Deucher 2017-12-14 721 config[no_regs++] =3D adev->g= fx.config.shader_engine_tile_size; 75758255dc0fae Alex Deucher 2017-12-14 722 config[no_regs++] =3D adev->g= fx.config.num_gpus; 75758255dc0fae Alex Deucher 2017-12-14 723 config[no_regs++] =3D adev->g= fx.config.multi_gpu_tile_size; 75758255dc0fae Alex Deucher 2017-12-14 724 config[no_regs++] =3D adev->g= fx.config.mc_arb_ramcfg; 75758255dc0fae Alex Deucher 2017-12-14 725 config[no_regs++] =3D adev->g= fx.config.gb_addr_config; 75758255dc0fae Alex Deucher 2017-12-14 726 config[no_regs++] =3D adev->g= fx.config.num_rbs; 75758255dc0fae Alex Deucher 2017-12-14 727 = 75758255dc0fae Alex Deucher 2017-12-14 728 /* rev=3D=3D1 */ 75758255dc0fae Alex Deucher 2017-12-14 729 config[no_regs++] =3D adev->r= ev_id; 75758255dc0fae Alex Deucher 2017-12-14 730 config[no_regs++] =3D adev->p= g_flags; 75758255dc0fae Alex Deucher 2017-12-14 731 config[no_regs++] =3D adev->c= g_flags; 75758255dc0fae Alex Deucher 2017-12-14 732 = 75758255dc0fae Alex Deucher 2017-12-14 733 /* rev=3D=3D2 */ 75758255dc0fae Alex Deucher 2017-12-14 734 config[no_regs++] =3D adev->f= amily; 75758255dc0fae Alex Deucher 2017-12-14 735 config[no_regs++] =3D adev->e= xternal_rev_id; 75758255dc0fae Alex Deucher 2017-12-14 736 = 75758255dc0fae Alex Deucher 2017-12-14 737 /* rev=3D=3D3 */ 75758255dc0fae Alex Deucher 2017-12-14 738 config[no_regs++] =3D adev->p= dev->device; 75758255dc0fae Alex Deucher 2017-12-14 739 config[no_regs++] =3D adev->p= dev->revision; 75758255dc0fae Alex Deucher 2017-12-14 740 config[no_regs++] =3D adev->p= dev->subsystem_device; 75758255dc0fae Alex Deucher 2017-12-14 741 config[no_regs++] =3D adev->p= dev->subsystem_vendor; 75758255dc0fae Alex Deucher 2017-12-14 742 = 75758255dc0fae Alex Deucher 2017-12-14 743 while (size && (*pos < no_reg= s * 4)) { 75758255dc0fae Alex Deucher 2017-12-14 744 uint32_t value; 75758255dc0fae Alex Deucher 2017-12-14 745 = 75758255dc0fae Alex Deucher 2017-12-14 746 value =3D config[*pos >> 2]; 75758255dc0fae Alex Deucher 2017-12-14 @747 r =3D put_user(value, (uint3= 2_t *)buf); 75758255dc0fae Alex Deucher 2017-12-14 748 if (r) { 75758255dc0fae Alex Deucher 2017-12-14 749 kfree(config); 75758255dc0fae Alex Deucher 2017-12-14 750 return r; 75758255dc0fae Alex Deucher 2017-12-14 751 } 75758255dc0fae Alex Deucher 2017-12-14 752 = 75758255dc0fae Alex Deucher 2017-12-14 753 result +=3D 4; 75758255dc0fae Alex Deucher 2017-12-14 754 buf +=3D 4; 75758255dc0fae Alex Deucher 2017-12-14 755 *pos +=3D 4; 75758255dc0fae Alex Deucher 2017-12-14 756 size -=3D 4; 75758255dc0fae Alex Deucher 2017-12-14 757 } 75758255dc0fae Alex Deucher 2017-12-14 758 = 75758255dc0fae Alex Deucher 2017-12-14 759 kfree(config); 75758255dc0fae Alex Deucher 2017-12-14 760 return result; 75758255dc0fae Alex Deucher 2017-12-14 761 } 75758255dc0fae Alex Deucher 2017-12-14 762 = 7e4237dbe494f9 Tom St Denis 2018-05-02 763 /** 7e4237dbe494f9 Tom St Denis 2018-05-02 764 * amdgpu_debugfs_sensor_read = - Read from the powerplay sensors 7e4237dbe494f9 Tom St Denis 2018-05-02 765 * 7e4237dbe494f9 Tom St Denis 2018-05-02 766 * @f: open file handle 7e4237dbe494f9 Tom St Denis 2018-05-02 767 * @buf: User buffer to store = read data in 7e4237dbe494f9 Tom St Denis 2018-05-02 768 * @size: Number of bytes to r= ead 7e4237dbe494f9 Tom St Denis 2018-05-02 769 * @pos: Offset to seek to 7e4237dbe494f9 Tom St Denis 2018-05-02 770 * 7e4237dbe494f9 Tom St Denis 2018-05-02 771 * The offset is treated as th= e BYTE address of one of the sensors 7e4237dbe494f9 Tom St Denis 2018-05-02 772 * enumerated in amd/include/k= gd_pp_interface.h under the 7e4237dbe494f9 Tom St Denis 2018-05-02 773 * 'amd_pp_sensors' enumeratio= n. For instance to read the UVD VCLK 7e4237dbe494f9 Tom St Denis 2018-05-02 774 * you would use the offset 3 = * 4 =3D 12. 7e4237dbe494f9 Tom St Denis 2018-05-02 775 */ 75758255dc0fae Alex Deucher 2017-12-14 776 static ssize_t amdgpu_debugfs_= sensor_read(struct file *f, char __user *buf, 75758255dc0fae Alex Deucher 2017-12-14 777 size_t size, loff_t *pos) 75758255dc0fae Alex Deucher 2017-12-14 778 { 75758255dc0fae Alex Deucher 2017-12-14 779 struct amdgpu_device *adev = =3D file_inode(f)->i_private; 75758255dc0fae Alex Deucher 2017-12-14 780 int idx, x, outsize, r, value= size; 75758255dc0fae Alex Deucher 2017-12-14 781 uint32_t values[16]; 75758255dc0fae Alex Deucher 2017-12-14 782 = 75758255dc0fae Alex Deucher 2017-12-14 783 if (size & 3 || *pos & 0x3) 75758255dc0fae Alex Deucher 2017-12-14 784 return -EINVAL; 75758255dc0fae Alex Deucher 2017-12-14 785 = b13aa1091fb200 Rex Zhu 2018-03-26 786 if (!adev->pm.dpm_enabled) 75758255dc0fae Alex Deucher 2017-12-14 787 return -EINVAL; 75758255dc0fae Alex Deucher 2017-12-14 788 = 75758255dc0fae Alex Deucher 2017-12-14 789 /* convert offset to sensor n= umber */ 75758255dc0fae Alex Deucher 2017-12-14 790 idx =3D *pos >> 2; 75758255dc0fae Alex Deucher 2017-12-14 791 = 75758255dc0fae Alex Deucher 2017-12-14 792 valuesize =3D sizeof(values); a9ffe2a9833835 Alex Deucher 2020-01-10 793 = a9ffe2a9833835 Alex Deucher 2020-01-10 794 r =3D pm_runtime_get_sync(ade= v->ddev->dev); 9eee152aab56d3 Alex Deucher 2020-06-17 795 if (r < 0) { 9eee152aab56d3 Alex Deucher 2020-06-17 796 pm_runtime_put_autosuspend(a= dev->ddev->dev); a9ffe2a9833835 Alex Deucher 2020-01-10 797 return r; 9eee152aab56d3 Alex Deucher 2020-06-17 798 } a9ffe2a9833835 Alex Deucher 2020-01-10 799 = 95a2f917387a23 Yintian Tao 2020-04-07 800 r =3D amdgpu_virt_enable_acce= ss_debugfs(adev); 9eee152aab56d3 Alex Deucher 2020-06-17 801 if (r < 0) { 9eee152aab56d3 Alex Deucher 2020-06-17 802 pm_runtime_put_autosuspend(a= dev->ddev->dev); 95a2f917387a23 Yintian Tao 2020-04-07 803 return r; 9eee152aab56d3 Alex Deucher 2020-06-17 804 } 95a2f917387a23 Yintian Tao 2020-04-07 805 = 75758255dc0fae Alex Deucher 2017-12-14 806 r =3D amdgpu_dpm_read_sensor(= adev, idx, &values[0], &valuesize); a9ffe2a9833835 Alex Deucher 2020-01-10 807 = a9ffe2a9833835 Alex Deucher 2020-01-10 808 pm_runtime_mark_last_busy(ade= v->ddev->dev); a9ffe2a9833835 Alex Deucher 2020-01-10 809 pm_runtime_put_autosuspend(ad= ev->ddev->dev); a9ffe2a9833835 Alex Deucher 2020-01-10 810 = 95a2f917387a23 Yintian Tao 2020-04-07 811 if (r) { 95a2f917387a23 Yintian Tao 2020-04-07 812 amdgpu_virt_disable_access_d= ebugfs(adev); 4a5a2de66686e3 Kevin Wang 2019-01-11 813 return r; 95a2f917387a23 Yintian Tao 2020-04-07 814 } 75758255dc0fae Alex Deucher 2017-12-14 815 = 95a2f917387a23 Yintian Tao 2020-04-07 816 if (size > valuesize) { 95a2f917387a23 Yintian Tao 2020-04-07 817 amdgpu_virt_disable_access_d= ebugfs(adev); 75758255dc0fae Alex Deucher 2017-12-14 818 return -EINVAL; 95a2f917387a23 Yintian Tao 2020-04-07 819 } 75758255dc0fae Alex Deucher 2017-12-14 820 = 75758255dc0fae Alex Deucher 2017-12-14 821 outsize =3D 0; 75758255dc0fae Alex Deucher 2017-12-14 822 x =3D 0; 75758255dc0fae Alex Deucher 2017-12-14 823 if (!r) { 75758255dc0fae Alex Deucher 2017-12-14 824 while (size) { 75758255dc0fae Alex Deucher 2017-12-14 @825 r =3D put_user(values[x++],= (int32_t *)buf); 75758255dc0fae Alex Deucher 2017-12-14 826 buf +=3D 4; 75758255dc0fae Alex Deucher 2017-12-14 827 size -=3D 4; 75758255dc0fae Alex Deucher 2017-12-14 828 outsize +=3D 4; 75758255dc0fae Alex Deucher 2017-12-14 829 } 75758255dc0fae Alex Deucher 2017-12-14 830 } 75758255dc0fae Alex Deucher 2017-12-14 831 = 95a2f917387a23 Yintian Tao 2020-04-07 832 amdgpu_virt_disable_access_de= bugfs(adev); 75758255dc0fae Alex Deucher 2017-12-14 833 return !r ? outsize : r; 75758255dc0fae Alex Deucher 2017-12-14 834 } 75758255dc0fae Alex Deucher 2017-12-14 835 = --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org --===============6516470476826844397== Content-Type: application/gzip MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="config.gz" 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 m4cgMZXoo1NsBcOoa4D/A5rPlrqC4AEA --===============6516470476826844397==--