[jirislaby:devel 19/43] drivers/scsi/sd.c:1042:9: sparse: sparse: too long token expansion
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/jirislaby/linux.git devel
head: 0894ff5eb82865f50565a1186db5970da0aa00dd
commit: 5e6fa3cf7bef3bf4d3f0564c7c27022753a43bf2 [19/43] include condition in the BUG_ON/WARN_ON output
config: parisc-randconfig-s031-20200714 (attached as .config)
compiler: hppa-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-41-g14e84ffc-dirty
git checkout 5e6fa3cf7bef3bf4d3f0564c7c27022753a43bf2
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=parisc
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
sparse warnings: (new ones prefixed by >>)
>> drivers/scsi/sd.c:1042:9: sparse: sparse: too long token expansion
vim +1042 drivers/scsi/sd.c
5db44863b6ebbb4 Martin K. Petersen 2012-09-18 1021
5db44863b6ebbb4 Martin K. Petersen 2012-09-18 1022 /**
5db44863b6ebbb4 Martin K. Petersen 2012-09-18 1023 * sd_setup_write_same_cmnd - write the same data to multiple blocks
59b1134c5a2aab2 Christoph Hellwig 2014-06-28 1024 * @cmd: command to prepare
5db44863b6ebbb4 Martin K. Petersen 2012-09-18 1025 *
7529fbb0080d67b Damien Le Moal 2017-04-24 1026 * Will set up either WRITE SAME(10) or WRITE SAME(16) depending on
7529fbb0080d67b Damien Le Moal 2017-04-24 1027 * the preference indicated by the target device.
5db44863b6ebbb4 Martin K. Petersen 2012-09-18 1028 **/
159b2cbf59f44f2 Christoph Hellwig 2018-11-09 1029 static blk_status_t sd_setup_write_same_cmnd(struct scsi_cmnd *cmd)
5db44863b6ebbb4 Martin K. Petersen 2012-09-18 1030 {
59b1134c5a2aab2 Christoph Hellwig 2014-06-28 1031 struct request *rq = cmd->request;
59b1134c5a2aab2 Christoph Hellwig 2014-06-28 1032 struct scsi_device *sdp = cmd->device;
5db44863b6ebbb4 Martin K. Petersen 2012-09-18 1033 struct scsi_disk *sdkp = scsi_disk(rq->rq_disk);
5db44863b6ebbb4 Martin K. Petersen 2012-09-18 1034 struct bio *bio = rq->bio;
c6c93fdd3451cc0 Martin K. Petersen 2019-01-15 1035 u64 lba = sectors_to_logical(sdp, blk_rq_pos(rq));
c6c93fdd3451cc0 Martin K. Petersen 2019-01-15 1036 u32 nr_blocks = sectors_to_logical(sdp, blk_rq_sectors(rq));
159b2cbf59f44f2 Christoph Hellwig 2018-11-09 1037 blk_status_t ret;
5db44863b6ebbb4 Martin K. Petersen 2012-09-18 1038
5db44863b6ebbb4 Martin K. Petersen 2012-09-18 1039 if (sdkp->device->no_write_same)
159b2cbf59f44f2 Christoph Hellwig 2018-11-09 1040 return BLK_STS_TARGET;
5db44863b6ebbb4 Martin K. Petersen 2012-09-18 1041
a4ad39b1d10584d Kent Overstreet 2013-08-07 @1042 BUG_ON(bio_offset(bio) || bio_iovec(bio).bv_len != sdp->sector_size);
5db44863b6ebbb4 Martin K. Petersen 2012-09-18 1043
5db44863b6ebbb4 Martin K. Petersen 2012-09-18 1044 rq->timeout = SD_WRITE_SAME_TIMEOUT;
5db44863b6ebbb4 Martin K. Petersen 2012-09-18 1045
c6c93fdd3451cc0 Martin K. Petersen 2019-01-15 1046 if (sdkp->ws16 || lba > 0xffffffff || nr_blocks > 0xffff) {
59b1134c5a2aab2 Christoph Hellwig 2014-06-28 1047 cmd->cmd_len = 16;
59b1134c5a2aab2 Christoph Hellwig 2014-06-28 1048 cmd->cmnd[0] = WRITE_SAME_16;
c6c93fdd3451cc0 Martin K. Petersen 2019-01-15 1049 put_unaligned_be64(lba, &cmd->cmnd[2]);
c6c93fdd3451cc0 Martin K. Petersen 2019-01-15 1050 put_unaligned_be32(nr_blocks, &cmd->cmnd[10]);
5db44863b6ebbb4 Martin K. Petersen 2012-09-18 1051 } else {
59b1134c5a2aab2 Christoph Hellwig 2014-06-28 1052 cmd->cmd_len = 10;
59b1134c5a2aab2 Christoph Hellwig 2014-06-28 1053 cmd->cmnd[0] = WRITE_SAME;
c6c93fdd3451cc0 Martin K. Petersen 2019-01-15 1054 put_unaligned_be32(lba, &cmd->cmnd[2]);
c6c93fdd3451cc0 Martin K. Petersen 2019-01-15 1055 put_unaligned_be16(nr_blocks, &cmd->cmnd[7]);
5db44863b6ebbb4 Martin K. Petersen 2012-09-18 1056 }
5db44863b6ebbb4 Martin K. Petersen 2012-09-18 1057
59b1134c5a2aab2 Christoph Hellwig 2014-06-28 1058 cmd->transfersize = sdp->sector_size;
a25ee5485157403 Christoph Hellwig 2014-06-28 1059 cmd->allowed = SD_MAX_RETRIES;
08965c2eba135bd Bart Van Assche 2017-01-25 1060
08965c2eba135bd Bart Van Assche 2017-01-25 1061 /*
08965c2eba135bd Bart Van Assche 2017-01-25 1062 * For WRITE SAME the data transferred via the DATA OUT buffer is
08965c2eba135bd Bart Van Assche 2017-01-25 1063 * different from the amount of data actually written to the target.
08965c2eba135bd Bart Van Assche 2017-01-25 1064 *
08965c2eba135bd Bart Van Assche 2017-01-25 1065 * We set up __data_len to the amount of data transferred via the
08965c2eba135bd Bart Van Assche 2017-01-25 1066 * DATA OUT buffer so that blk_rq_map_sg sets up the proper S/G list
08965c2eba135bd Bart Van Assche 2017-01-25 1067 * to transfer a single sector of data first, but then reset it to
08965c2eba135bd Bart Van Assche 2017-01-25 1068 * the amount of data to be written right after so that the I/O path
08965c2eba135bd Bart Van Assche 2017-01-25 1069 * knows how much to actually write.
08965c2eba135bd Bart Van Assche 2017-01-25 1070 */
08965c2eba135bd Bart Van Assche 2017-01-25 1071 rq->__data_len = sdp->sector_size;
08965c2eba135bd Bart Van Assche 2017-01-25 1072 ret = scsi_init_io(cmd);
84f7a9de0602704 Bart Van Assche 2019-01-15 1073 rq->__data_len = blk_rq_bytes(rq);
29f6ca6916e29fc Damien Le Moal 2017-05-08 1074
08965c2eba135bd Bart Van Assche 2017-01-25 1075 return ret;
5db44863b6ebbb4 Martin K. Petersen 2012-09-18 1076 }
5db44863b6ebbb4 Martin K. Petersen 2012-09-18 1077
:::::: The code at line 1042 was first introduced by commit
:::::: a4ad39b1d10584dfcfcfb0d510faab2c7f034399 block: Convert bio_iovec() to bvec_iter
:::::: TO: Kent Overstreet <kmo(a)daterainc.com>
:::::: CC: Kent Overstreet <kmo(a)daterainc.com>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 2 months
[renesas-drivers:master 69/80] drivers/net/ethernet/sfc/efx_common.c:1227:17: warning: 'enum pci_channel_state' declared inside parameter list will not be visible outside of this definition or declaration
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers.git master
head: 541708cc1e6ad29fdb4c294831dfa855bd64487b
commit: 428d2a440d43ba81b698ec71de5125e4aeddf752 [69/80] Merge remote-tracking branch 'pci/next' into renesas-drivers
config: alpha-allyesconfig (attached as .config)
compiler: alpha-linux-gcc (GCC) 9.3.0
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
git checkout 428d2a440d43ba81b698ec71de5125e4aeddf752
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=alpha
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All error/warnings (new ones prefixed by >>):
>> drivers/net/ethernet/sfc/efx_common.c:1227:17: warning: 'enum pci_channel_state' declared inside parameter list will not be visible outside of this definition or declaration
1227 | enum pci_channel_state state)
| ^~~~~~~~~~~~~~~~~
>> drivers/net/ethernet/sfc/efx_common.c:1227:35: error: parameter 2 ('state') has incomplete type
1227 | enum pci_channel_state state)
| ~~~~~~~~~~~~~~~~~~~~~~~^~~~~
>> drivers/net/ethernet/sfc/efx_common.c:1226:25: error: function declaration isn't a prototype [-Werror=strict-prototypes]
1226 | static pci_ers_result_t efx_io_error_detected(struct pci_dev *pdev,
| ^~~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
vim +1227 drivers/net/ethernet/sfc/efx_common.c
21ea21252eddb3c Edward Cree 2020-06-29 1221
21ea21252eddb3c Edward Cree 2020-06-29 1222 /* A PCI error affecting this device was detected.
21ea21252eddb3c Edward Cree 2020-06-29 1223 * At this point MMIO and DMA may be disabled.
21ea21252eddb3c Edward Cree 2020-06-29 1224 * Stop the software path and request a slot reset.
21ea21252eddb3c Edward Cree 2020-06-29 1225 */
21ea21252eddb3c Edward Cree 2020-06-29 @1226 static pci_ers_result_t efx_io_error_detected(struct pci_dev *pdev,
21ea21252eddb3c Edward Cree 2020-06-29 @1227 enum pci_channel_state state)
21ea21252eddb3c Edward Cree 2020-06-29 1228 {
21ea21252eddb3c Edward Cree 2020-06-29 1229 pci_ers_result_t status = PCI_ERS_RESULT_RECOVERED;
21ea21252eddb3c Edward Cree 2020-06-29 1230 struct efx_nic *efx = pci_get_drvdata(pdev);
21ea21252eddb3c Edward Cree 2020-06-29 1231
21ea21252eddb3c Edward Cree 2020-06-29 1232 if (state == pci_channel_io_perm_failure)
21ea21252eddb3c Edward Cree 2020-06-29 1233 return PCI_ERS_RESULT_DISCONNECT;
21ea21252eddb3c Edward Cree 2020-06-29 1234
21ea21252eddb3c Edward Cree 2020-06-29 1235 rtnl_lock();
21ea21252eddb3c Edward Cree 2020-06-29 1236
21ea21252eddb3c Edward Cree 2020-06-29 1237 if (efx->state != STATE_DISABLED) {
21ea21252eddb3c Edward Cree 2020-06-29 1238 efx->state = STATE_RECOVERY;
21ea21252eddb3c Edward Cree 2020-06-29 1239 efx->reset_pending = 0;
21ea21252eddb3c Edward Cree 2020-06-29 1240
21ea21252eddb3c Edward Cree 2020-06-29 1241 efx_device_detach_sync(efx);
21ea21252eddb3c Edward Cree 2020-06-29 1242
21ea21252eddb3c Edward Cree 2020-06-29 1243 efx_stop_all(efx);
21ea21252eddb3c Edward Cree 2020-06-29 1244 efx_disable_interrupts(efx);
21ea21252eddb3c Edward Cree 2020-06-29 1245
21ea21252eddb3c Edward Cree 2020-06-29 1246 status = PCI_ERS_RESULT_NEED_RESET;
21ea21252eddb3c Edward Cree 2020-06-29 1247 } else {
21ea21252eddb3c Edward Cree 2020-06-29 1248 /* If the interface is disabled we don't want to do anything
21ea21252eddb3c Edward Cree 2020-06-29 1249 * with it.
21ea21252eddb3c Edward Cree 2020-06-29 1250 */
21ea21252eddb3c Edward Cree 2020-06-29 1251 status = PCI_ERS_RESULT_RECOVERED;
21ea21252eddb3c Edward Cree 2020-06-29 1252 }
21ea21252eddb3c Edward Cree 2020-06-29 1253
21ea21252eddb3c Edward Cree 2020-06-29 1254 rtnl_unlock();
21ea21252eddb3c Edward Cree 2020-06-29 1255
21ea21252eddb3c Edward Cree 2020-06-29 1256 pci_disable_device(pdev);
21ea21252eddb3c Edward Cree 2020-06-29 1257
21ea21252eddb3c Edward Cree 2020-06-29 1258 return status;
21ea21252eddb3c Edward Cree 2020-06-29 1259 }
21ea21252eddb3c Edward Cree 2020-06-29 1260
:::::: The code at line 1227 was first introduced by commit
:::::: 21ea21252eddb3cea56845f58f87208062799bef sfc: commonise PCI error handlers
:::::: TO: Edward Cree <ecree(a)solarflare.com>
:::::: CC: David S. Miller <davem(a)davemloft.net>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 2 months
[RFC PATCH] drm/i915: g4x_get_flip_counter() can be static
by kernel test robot
Signed-off-by: kernel test robot <lkp(a)intel.com>
---
i915_irq.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
index 9812a8051c5ea..79a3118f918a1 100644
--- a/drivers/gpu/drm/i915/i915_irq.c
+++ b/drivers/gpu/drm/i915/i915_irq.c
@@ -697,7 +697,7 @@ u32 i915_get_vblank_counter(struct drm_crtc *crtc)
return (((high1 << 8) | low) + (pixel >= vbl_start)) & 0xffffff;
}
-u32 g4x_get_flip_counter(struct drm_crtc *crtc)
+static u32 g4x_get_flip_counter(struct drm_crtc *crtc)
{
struct drm_i915_private *dev_priv = to_i915(crtc->dev);
enum pipe pipe = to_intel_crtc(crtc)->pipe;
2 years, 2 months
Re: [PATCH net-next v1 1/2] net: mdiobus: add support to access PHY registers via debugfs
by kernel test robot
Hi "Marek,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on net-next/master]
url: https://github.com/0day-ci/linux/commits/Marek-Beh-n/net-mdiobus-add-supp...
base: https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git 07dd1b7e68e4b83a1004b14dffd7e142c0bc79bd
config: ia64-randconfig-r003-20200714 (attached as .config)
compiler: ia64-linux-gcc (GCC) 9.3.0
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
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=ia64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
In file included from arch/ia64/include/asm/pgtable.h:154,
from include/linux/pgtable.h:6,
from include/linux/mm.h:32,
from include/linux/bvec.h:13,
from include/linux/skbuff.h:17,
from include/linux/if_ether.h:19,
from include/linux/etherdevice.h:20,
from drivers/net/phy/mdio_bus.c:14:
arch/ia64/include/asm/mmu_context.h: In function 'reload_context':
arch/ia64/include/asm/mmu_context.h:137:41: warning: variable 'old_rr4' set but not used [-Wunused-but-set-variable]
137 | unsigned long rr0, rr1, rr2, rr3, rr4, old_rr4;
| ^~~~~~~
drivers/net/phy/mdio_bus.c: At top level:
>> drivers/net/phy/mdio_bus.c:42:10: fatal error: mdio_debugfs.h: No such file or directory
42 | #include "mdio_debugfs.h"
| ^~~~~~~~~~~~~~~~
compilation terminated.
vim +42 drivers/net/phy/mdio_bus.c
40
41 #include "mdio-boardinfo.h"
> 42 #include "mdio_debugfs.h"
43
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 2 months
Re: [PATCH] drivers: staging: media: atomisp: pci: css_2401_system: host: csi_rx.c: fixed a sparse warning by making undeclared symbols static
by kernel test robot
Hi K,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on staging/staging-testing]
url: https://github.com/0day-ci/linux/commits/B-K-Karthik/drivers-staging-medi...
base: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git caaba08f8c0dbe5c8fcb497faa7e3b394c21ff39
config: x86_64-allyesconfig (attached as .config)
compiler: clang version 11.0.0 (https://github.com/llvm/llvm-project 02946de3802d3bc65bc9f2eb9b8d4969b5a7add8)
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
# install x86_64 cross compiling tool for clang build
# apt-get install binutils-x86-64-linux-gnu
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
>> drivers/staging/media/atomisp/pci/css_2401_system/host/csi_rx.c:18:18: warning: unused variable 'N_SHORT_PACKET_LUT_ENTRIES' [-Wunused-const-variable]
static const u32 N_SHORT_PACKET_LUT_ENTRIES[N_CSI_RX_BACKEND_ID] = {
^
>> drivers/staging/media/atomisp/pci/css_2401_system/host/csi_rx.c:24:18: warning: unused variable 'N_LONG_PACKET_LUT_ENTRIES' [-Wunused-const-variable]
static const u32 N_LONG_PACKET_LUT_ENTRIES[N_CSI_RX_BACKEND_ID] = {
^
>> drivers/staging/media/atomisp/pci/css_2401_system/host/csi_rx.c:30:18: warning: unused variable 'N_CSI_RX_FE_CTRL_DLANES' [-Wunused-const-variable]
static const u32 N_CSI_RX_FE_CTRL_DLANES[N_CSI_RX_FRONTEND_ID] = {
^
>> drivers/staging/media/atomisp/pci/css_2401_system/host/csi_rx.c:37:18: warning: unused variable 'N_CSI_RX_BE_SID_WIDTH' [-Wunused-const-variable]
static const u32 N_CSI_RX_BE_SID_WIDTH[N_CSI_RX_BACKEND_ID] = {
^
4 warnings generated.
vim +/N_SHORT_PACKET_LUT_ENTRIES +18 drivers/staging/media/atomisp/pci/css_2401_system/host/csi_rx.c
17
> 18 static const u32 N_SHORT_PACKET_LUT_ENTRIES[N_CSI_RX_BACKEND_ID] = {
19 4, /* 4 entries at CSI_RX_BACKEND0_ID*/
20 4, /* 4 entries at CSI_RX_BACKEND1_ID*/
21 4 /* 4 entries at CSI_RX_BACKEND2_ID*/
22 };
23
> 24 static const u32 N_LONG_PACKET_LUT_ENTRIES[N_CSI_RX_BACKEND_ID] = {
25 8, /* 8 entries at CSI_RX_BACKEND0_ID*/
26 4, /* 4 entries at CSI_RX_BACKEND1_ID*/
27 4 /* 4 entries at CSI_RX_BACKEND2_ID*/
28 };
29
> 30 static const u32 N_CSI_RX_FE_CTRL_DLANES[N_CSI_RX_FRONTEND_ID] = {
31 N_CSI_RX_DLANE_ID, /* 4 dlanes for CSI_RX_FR0NTEND0_ID */
32 N_CSI_RX_DLANE_ID, /* 4 dlanes for CSI_RX_FR0NTEND1_ID */
33 N_CSI_RX_DLANE_ID /* 4 dlanes for CSI_RX_FR0NTEND2_ID */
34 };
35
36 /* sid_width for CSI_RX_BACKEND<N>_ID */
> 37 static const u32 N_CSI_RX_BE_SID_WIDTH[N_CSI_RX_BACKEND_ID] = {
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 2 months
[lkp] [+853 bytes kernel size regression] [i386-tinyconfig] [ae04f172df] fs: add mount_setattr()
by kernel test robot
FYI, we noticed a +853 bytes kernel size regression due to commit:
commit: ae04f172df5d207dbf185c2ae5c293306ca6a143 (fs: add mount_setattr())
https://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux.git mount_setattr
Details as below (size data is obtained by `nm --size-sort vmlinux`):
9573a242: namespace: only take read lock in do_reconfigure_mnt()
ae04f172: fs: add mount_setattr()
+-------------------------------+----------+----------+-------+
| symbol | 9573a242 | ae04f172 | delta |
+-------------------------------+----------+----------+-------+
| nm.T.__ia32_sys_mount_setattr | 0 | 847 | 847 |
| bzImage | 442464 | 442880 | 416 |
| nm.t.build_attr_flags | 0 | 45 | 45 |
| nm.R.sys_call_table | 1760 | 1764 | 4 |
| nm.T.do_mount | 1551 | 1538 | -13 |
| nm.T.__ia32_sys_fsmount | 531 | 501 | -30 |
+-------------------------------+----------+----------+-------+
Thanks
2 years, 2 months
ERROR: modpost: "min_low_pfn" undefined!
by kernel test robot
Hi Christoph,
First bad commit (maybe != root cause):
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 0dc589da873b58b70f4caf4b070fb0cf70fdd1dc
commit: cc97923a5bccc776851c242b61015faf288d5c22 block: move dma drain handling to scsi
date: 3 months ago
config: microblaze-randconfig-r011-20200714 (attached as .config)
compiler: microblaze-linux-gcc (GCC) 9.3.0
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
git checkout cc97923a5bccc776851c242b61015faf288d5c22
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=microblaze
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>, old ones prefixed by <<):
ERROR: modpost: "min_low_pfn" [drivers/rpmsg/virtio_rpmsg_bus.ko] undefined!
ERROR: modpost: "min_low_pfn" [drivers/mtd/nand/raw/cadence-nand-controller.ko] undefined!
>> ERROR: modpost: "min_low_pfn" [drivers/scsi/scsi_mod.ko] undefined!
ERROR: modpost: "min_low_pfn" [security/keys/encrypted-keys/encrypted-keys.ko] undefined!
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 2 months
[mlankhorst:locking-rework 30/30] drivers/gpu/drm/i915/gem/i915_gem_shrinker.c:94:1: sparse: unsigned long extern i915_gem_shrink( ... )
by kernel test robot
tree: git://people.freedesktop.org/~mlankhorst/linux locking-rework
head: df835d9d9fee30c2d4584242c64c8b32eae0d0a4
commit: df835d9d9fee30c2d4584242c64c8b32eae0d0a4 [30/30] how to implement eviction
:::::: branch date: 10 hours ago
:::::: commit date: 10 hours ago
config: x86_64-randconfig-s022-20200710 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-14) 9.3.0
reproduce:
# apt-get install sparse
# sparse version: v0.6.2-37-gc9676a3b-dirty
git checkout df835d9d9fee30c2d4584242c64c8b32eae0d0a4
# save the attached .config to linux build tree
make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=x86_64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
sparse warnings: (new ones prefixed by >>)
drivers/gpu/drm/i915/gem/i915_gem_shrinker.c:213:54: sparse: sparse: no member 'lock' in struct <unnamed>
drivers/gpu/drm/i915/gem/i915_gem_shrinker.c:94:1: sparse: sparse: symbol 'i915_gem_shrink' redeclared with different type (incompatible argument 1 (different base types)):
>> drivers/gpu/drm/i915/gem/i915_gem_shrinker.c:94:1: sparse: unsigned long extern [addressable] [toplevel] [unsigned] i915_gem_shrink( ... )
drivers/gpu/drm/i915/gem/i915_gem_shrinker.h:15:15: sparse: note: previously declared as:
>> drivers/gpu/drm/i915/gem/i915_gem_shrinker.h:15:15: sparse: unsigned long extern [addressable] [toplevel] [unsigned] i915_gem_shrink( ... )
>> drivers/gpu/drm/i915/gem/i915_gem_shrinker.c:304:33: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected struct i915_gem_ww_ctx *ww @@ got struct drm_i915_private *i915 @@
>> drivers/gpu/drm/i915/gem/i915_gem_shrinker.c:304:33: sparse: expected struct i915_gem_ww_ctx *ww
>> drivers/gpu/drm/i915/gem/i915_gem_shrinker.c:304:33: sparse: got struct drm_i915_private *i915
>> drivers/gpu/drm/i915/gem/i915_gem_shrinker.c:305:35: sparse: sparse: incorrect type in argument 2 (different base types) @@ expected struct drm_i915_private *i915 @@ got unsigned long nr_to_scan @@
>> drivers/gpu/drm/i915/gem/i915_gem_shrinker.c:305:35: sparse: expected struct drm_i915_private *i915
>> drivers/gpu/drm/i915/gem/i915_gem_shrinker.c:305:35: sparse: got unsigned long nr_to_scan
>> drivers/gpu/drm/i915/gem/i915_gem_shrinker.c:306:34: sparse: sparse: incorrect type in argument 3 (different base types) @@ expected unsigned long target @@ got unsigned long * @@
>> drivers/gpu/drm/i915/gem/i915_gem_shrinker.c:306:34: sparse: expected unsigned long target
>> drivers/gpu/drm/i915/gem/i915_gem_shrinker.c:306:34: sparse: got unsigned long *
>> drivers/gpu/drm/i915/gem/i915_gem_shrinker.c:307:51: sparse: sparse: incorrect type in argument 4 (different base types) @@ expected unsigned long *nr_scanned @@ got unsigned long @@
>> drivers/gpu/drm/i915/gem/i915_gem_shrinker.c:307:51: sparse: expected unsigned long *nr_scanned
drivers/gpu/drm/i915/gem/i915_gem_shrinker.c:307:51: sparse: got unsigned long
>> drivers/gpu/drm/i915/gem/i915_gem_shrinker.c:304:32: sparse: sparse: not enough arguments for function i915_gem_shrink
drivers/gpu/drm/i915/gem/i915_gem_shrinker.c:313:49: sparse: sparse: not enough arguments for function i915_gem_shrink
drivers/gpu/drm/i915/gem/i915_gem_shrinker.c:338:48: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected struct i915_gem_ww_ctx *ww @@ got struct drm_i915_private *i915 @@
drivers/gpu/drm/i915/gem/i915_gem_shrinker.c:338:48: sparse: expected struct i915_gem_ww_ctx *ww
drivers/gpu/drm/i915/gem/i915_gem_shrinker.c:338:48: sparse: got struct drm_i915_private *i915
>> drivers/gpu/drm/i915/gem/i915_gem_shrinker.c:338:54: sparse: sparse: incorrect type in argument 2 (different base types) @@ expected struct drm_i915_private *i915 @@ got unsigned long @@
drivers/gpu/drm/i915/gem/i915_gem_shrinker.c:338:54: sparse: expected struct drm_i915_private *i915
drivers/gpu/drm/i915/gem/i915_gem_shrinker.c:338:54: sparse: got unsigned long
>> drivers/gpu/drm/i915/gem/i915_gem_shrinker.c:338:60: sparse: sparse: incorrect type in argument 3 (different base types) @@ expected unsigned long target @@ got void * @@
drivers/gpu/drm/i915/gem/i915_gem_shrinker.c:338:60: sparse: expected unsigned long target
>> drivers/gpu/drm/i915/gem/i915_gem_shrinker.c:338:60: sparse: got void *
drivers/gpu/drm/i915/gem/i915_gem_shrinker.c:340:68: sparse: sparse: incorrect type in argument 4 (different base types) @@ expected unsigned long *nr_scanned @@ got unsigned long @@
drivers/gpu/drm/i915/gem/i915_gem_shrinker.c:340:68: sparse: expected unsigned long *nr_scanned
drivers/gpu/drm/i915/gem/i915_gem_shrinker.c:340:68: sparse: got unsigned long
drivers/gpu/drm/i915/gem/i915_gem_shrinker.c:338:47: sparse: sparse: not enough arguments for function i915_gem_shrink
drivers/gpu/drm/i915/gem/i915_gem_shrinker.c:376:48: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected struct i915_gem_ww_ctx *ww @@ got struct drm_i915_private *i915 @@
drivers/gpu/drm/i915/gem/i915_gem_shrinker.c:376:48: sparse: expected struct i915_gem_ww_ctx *ww
drivers/gpu/drm/i915/gem/i915_gem_shrinker.c:376:48: sparse: got struct drm_i915_private *i915
drivers/gpu/drm/i915/gem/i915_gem_shrinker.c:376:54: sparse: sparse: incorrect type in argument 2 (different base types) @@ expected struct drm_i915_private *i915 @@ got unsigned long @@
drivers/gpu/drm/i915/gem/i915_gem_shrinker.c:376:54: sparse: expected struct drm_i915_private *i915
drivers/gpu/drm/i915/gem/i915_gem_shrinker.c:376:54: sparse: got unsigned long
drivers/gpu/drm/i915/gem/i915_gem_shrinker.c:376:60: sparse: sparse: incorrect type in argument 3 (different base types) @@ expected unsigned long target @@ got void * @@
drivers/gpu/drm/i915/gem/i915_gem_shrinker.c:376:60: sparse: expected unsigned long target
drivers/gpu/drm/i915/gem/i915_gem_shrinker.c:376:60: sparse: got void *
drivers/gpu/drm/i915/gem/i915_gem_shrinker.c:378:68: sparse: sparse: incorrect type in argument 4 (different base types) @@ expected unsigned long *nr_scanned @@ got unsigned long @@
drivers/gpu/drm/i915/gem/i915_gem_shrinker.c:378:68: sparse: expected unsigned long *nr_scanned
drivers/gpu/drm/i915/gem/i915_gem_shrinker.c:378:68: sparse: got unsigned long
drivers/gpu/drm/i915/gem/i915_gem_shrinker.c:376:47: sparse: sparse: not enough arguments for function i915_gem_shrink
git remote add mlankhorst git://people.freedesktop.org/~mlankhorst/linux
git remote update mlankhorst
git checkout df835d9d9fee30c2d4584242c64c8b32eae0d0a4
vim +94 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c
2d6692e642e7ca drivers/gpu/drm/i915/i915_gem_shrinker.c Chris Wilson 2019-04-20 67
eb0b44adc08c0b drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 68 /**
eb0b44adc08c0b drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 69 * i915_gem_shrink - Shrink buffer object caches
56fa4bf2b2f084 drivers/gpu/drm/i915/i915_gem_shrinker.c Chris Wilson 2017-11-23 70 * @i915: i915 device
eb0b44adc08c0b drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 71 * @target: amount of memory to make available, in pages
912d572d63b8cd drivers/gpu/drm/i915/i915_gem_shrinker.c Chris Wilson 2017-09-06 72 * @nr_scanned: optional output for number of pages scanned (incremental)
70972f51819a22 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Chris Wilson 2019-06-12 73 * @shrink: control flags for selecting cache types
eb0b44adc08c0b drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 74 *
eb0b44adc08c0b drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 75 * This function is the main interface to the shrinker. It will try to release
eb0b44adc08c0b drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 76 * up to @target pages of main memory backing storage from buffer objects.
eb0b44adc08c0b drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 77 * Selection of the specific caches can be done with @flags. This is e.g. useful
eb0b44adc08c0b drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 78 * when purgeable objects should be removed from caches preferentially.
eb0b44adc08c0b drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 79 *
eb0b44adc08c0b drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 80 * Note that it's not guaranteed that released amount is actually available as
eb0b44adc08c0b drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 81 * free system memory - the pages might still be in-used to due to other reasons
eb0b44adc08c0b drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 82 * (like cpu mmaps) or the mm core has reused them before we could grab them.
eb0b44adc08c0b drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 83 * Therefore code that needs to explicitly shrink buffer objects caches (e.g. to
eb0b44adc08c0b drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 84 * avoid deadlocks in memory reclaim) must fall back to i915_gem_shrink_all().
eb0b44adc08c0b drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 85 *
eb0b44adc08c0b drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 86 * Also note that any kind of pinning (both per-vma address space pins and
eb0b44adc08c0b drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 87 * backing storage pins at the buffer object level) result in the shrinker code
eb0b44adc08c0b drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 88 * having to skip the object.
eb0b44adc08c0b drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 89 *
eb0b44adc08c0b drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 90 * Returns:
eb0b44adc08c0b drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 91 * The number of pages of backing storage actually released.
eb0b44adc08c0b drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 92 */
be6a0376950475 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 93 unsigned long
df835d9d9fee30 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Maarten Lankhorst 2020-07-10 @94 i915_gem_shrink(struct i915_gem_ww_ctx *ww,
df835d9d9fee30 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Maarten Lankhorst 2020-07-10 95 struct drm_i915_private *i915,
912d572d63b8cd drivers/gpu/drm/i915/i915_gem_shrinker.c Chris Wilson 2017-09-06 96 unsigned long target,
912d572d63b8cd drivers/gpu/drm/i915/i915_gem_shrinker.c Chris Wilson 2017-09-06 97 unsigned long *nr_scanned,
a8cff4c8283af3 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Chris Wilson 2019-06-10 98 unsigned int shrink)
be6a0376950475 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 99 {
be6a0376950475 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 100 const struct {
be6a0376950475 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 101 struct list_head *list;
be6a0376950475 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 102 unsigned int bit;
be6a0376950475 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 103 } phases[] = {
3b4fa9640ccded drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Chris Wilson 2019-05-30 104 { &i915->mm.purge_list, ~0u },
ecab9be174d98f drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Chris Wilson 2019-06-12 105 {
ecab9be174d98f drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Chris Wilson 2019-06-12 106 &i915->mm.shrink_list,
ecab9be174d98f drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Chris Wilson 2019-06-12 107 I915_SHRINK_BOUND | I915_SHRINK_UNBOUND
ecab9be174d98f drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Chris Wilson 2019-06-12 108 },
be6a0376950475 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 109 { NULL, 0 },
be6a0376950475 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 110 }, *phase;
538ef96b9dae7f drivers/gpu/drm/i915/i915_gem_shrinker.c Chris Wilson 2019-01-14 111 intel_wakeref_t wakeref = 0;
be6a0376950475 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 112 unsigned long count = 0;
912d572d63b8cd drivers/gpu/drm/i915/i915_gem_shrinker.c Chris Wilson 2017-09-06 113 unsigned long scanned = 0;
df835d9d9fee30 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Maarten Lankhorst 2020-07-10 114 int err;
be6a0376950475 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 115
2f6a3783833dde drivers/gpu/drm/i915/i915_gem_shrinker.c Chris Wilson 2017-11-08 116 /*
ce476c80b8bfa8 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Chris Wilson 2019-06-14 117 * When shrinking the active list, we should also consider active
ce476c80b8bfa8 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Chris Wilson 2019-06-14 118 * contexts. Active contexts are pinned until they are retired, and
ce476c80b8bfa8 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Chris Wilson 2019-06-14 119 * so can not be simply unbound to retire and unpin their pages. To
ce476c80b8bfa8 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Chris Wilson 2019-06-14 120 * shrink the contexts, we must wait until the gpu is idle and
ce476c80b8bfa8 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Chris Wilson 2019-06-14 121 * completed its switch to the kernel context. In short, we do
ce476c80b8bfa8 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Chris Wilson 2019-06-14 122 * not have a good mechanism for idling a specific context.
2f6a3783833dde drivers/gpu/drm/i915/i915_gem_shrinker.c Chris Wilson 2017-11-08 123 */
2f6a3783833dde drivers/gpu/drm/i915/i915_gem_shrinker.c Chris Wilson 2017-11-08 124
a8cff4c8283af3 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Chris Wilson 2019-06-10 125 trace_i915_gem_shrink(i915, target, shrink);
3abafa539d2c17 drivers/gpu/drm/i915/i915_gem_shrinker.c Chris Wilson 2015-10-01 126
178a30c90ac74e drivers/gpu/drm/i915/i915_gem_shrinker.c Praveen Paneri 2016-05-02 127 /*
178a30c90ac74e drivers/gpu/drm/i915/i915_gem_shrinker.c Praveen Paneri 2016-05-02 128 * Unbinding of objects will require HW access; Let us not wake the
178a30c90ac74e drivers/gpu/drm/i915/i915_gem_shrinker.c Praveen Paneri 2016-05-02 129 * device just to recover a little memory. If absolutely necessary,
178a30c90ac74e drivers/gpu/drm/i915/i915_gem_shrinker.c Praveen Paneri 2016-05-02 130 * we will force the wake during oom-notifier.
178a30c90ac74e drivers/gpu/drm/i915/i915_gem_shrinker.c Praveen Paneri 2016-05-02 131 */
a8cff4c8283af3 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Chris Wilson 2019-06-10 132 if (shrink & I915_SHRINK_BOUND) {
d858d5695f3897 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Daniele Ceraolo Spurio 2019-06-13 133 wakeref = intel_runtime_pm_get_if_in_use(&i915->runtime_pm);
538ef96b9dae7f drivers/gpu/drm/i915/i915_gem_shrinker.c Chris Wilson 2019-01-14 134 if (!wakeref)
a8cff4c8283af3 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Chris Wilson 2019-06-10 135 shrink &= ~I915_SHRINK_BOUND;
538ef96b9dae7f drivers/gpu/drm/i915/i915_gem_shrinker.c Chris Wilson 2019-01-14 136 }
178a30c90ac74e drivers/gpu/drm/i915/i915_gem_shrinker.c Praveen Paneri 2016-05-02 137
be6a0376950475 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 138 /*
be6a0376950475 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 139 * As we may completely rewrite the (un)bound list whilst unbinding
be6a0376950475 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 140 * (due to retiring requests) we have to strictly process only
be6a0376950475 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 141 * one element of the list at the time, and recheck the list
be6a0376950475 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 142 * on every iteration.
be6a0376950475 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 143 *
be6a0376950475 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 144 * In particular, we must hold a reference whilst removing the
be6a0376950475 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 145 * object as we may end up waiting for and/or retiring the objects.
be6a0376950475 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 146 * This might release the final reference (held by the active list)
be6a0376950475 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 147 * and result in the object being freed from under us. This is
be6a0376950475 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 148 * similar to the precautions the eviction code must take whilst
be6a0376950475 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 149 * removing objects.
be6a0376950475 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 150 *
be6a0376950475 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 151 * Also note that although these lists do not hold a reference to
be6a0376950475 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 152 * the object we can safely grab one here: The final object
be6a0376950475 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 153 * unreferencing and the bound_list are both protected by the
be6a0376950475 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 154 * dev->struct_mutex and so we won't ever be able to observe an
be6a0376950475 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 155 * object on the bound_list with a reference count equals 0.
be6a0376950475 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 156 */
be6a0376950475 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 157 for (phase = phases; phase->list; phase++) {
be6a0376950475 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 158 struct list_head still_in_list;
2a1d775201081c drivers/gpu/drm/i915/i915_gem_shrinker.c Chris Wilson 2016-07-26 159 struct drm_i915_gem_object *obj;
a8cff4c8283af3 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Chris Wilson 2019-06-10 160 unsigned long flags;
be6a0376950475 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 161
a8cff4c8283af3 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Chris Wilson 2019-06-10 162 if ((shrink & phase->bit) == 0)
be6a0376950475 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 163 continue;
be6a0376950475 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 164
be6a0376950475 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 165 INIT_LIST_HEAD(&still_in_list);
f2123818ffad03 drivers/gpu/drm/i915/i915_gem_shrinker.c Chris Wilson 2017-10-16 166
f2123818ffad03 drivers/gpu/drm/i915/i915_gem_shrinker.c Chris Wilson 2017-10-16 167 /*
f2123818ffad03 drivers/gpu/drm/i915/i915_gem_shrinker.c Chris Wilson 2017-10-16 168 * We serialize our access to unreferenced objects through
f2123818ffad03 drivers/gpu/drm/i915/i915_gem_shrinker.c Chris Wilson 2017-10-16 169 * the use of the struct_mutex. While the objects are not
f2123818ffad03 drivers/gpu/drm/i915/i915_gem_shrinker.c Chris Wilson 2017-10-16 170 * yet freed (due to RCU then a workqueue) we still want
f2123818ffad03 drivers/gpu/drm/i915/i915_gem_shrinker.c Chris Wilson 2017-10-16 171 * to be able to shrink their pages, so they remain on
f2123818ffad03 drivers/gpu/drm/i915/i915_gem_shrinker.c Chris Wilson 2017-10-16 172 * the unbound/bound list until actually freed.
f2123818ffad03 drivers/gpu/drm/i915/i915_gem_shrinker.c Chris Wilson 2017-10-16 173 */
a8cff4c8283af3 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Chris Wilson 2019-06-10 174 spin_lock_irqsave(&i915->mm.obj_lock, flags);
2a1d775201081c drivers/gpu/drm/i915/i915_gem_shrinker.c Chris Wilson 2016-07-26 175 while (count < target &&
2a1d775201081c drivers/gpu/drm/i915/i915_gem_shrinker.c Chris Wilson 2016-07-26 176 (obj = list_first_entry_or_null(phase->list,
2a1d775201081c drivers/gpu/drm/i915/i915_gem_shrinker.c Chris Wilson 2016-07-26 177 typeof(*obj),
f2123818ffad03 drivers/gpu/drm/i915/i915_gem_shrinker.c Chris Wilson 2017-10-16 178 mm.link))) {
f2123818ffad03 drivers/gpu/drm/i915/i915_gem_shrinker.c Chris Wilson 2017-10-16 179 list_move_tail(&obj->mm.link, &still_in_list);
be6a0376950475 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 180
a8cff4c8283af3 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Chris Wilson 2019-06-10 181 if (shrink & I915_SHRINK_VMAPS &&
a4f5ea64f0a818 drivers/gpu/drm/i915/i915_gem_shrinker.c Chris Wilson 2016-10-28 182 !is_vmalloc_addr(obj->mm.mapping))
eae2c43b1233f8 drivers/gpu/drm/i915/i915_gem_shrinker.c Chris Wilson 2016-04-08 183 continue;
eae2c43b1233f8 drivers/gpu/drm/i915/i915_gem_shrinker.c Chris Wilson 2016-04-08 184
a8cff4c8283af3 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Chris Wilson 2019-06-10 185 if (!(shrink & I915_SHRINK_ACTIVE) &&
c03467ba40f783 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Chris Wilson 2019-07-03 186 i915_gem_object_is_framebuffer(obj))
5763ff04dc4ebd drivers/gpu/drm/i915/i915_gem_shrinker.c Chris Wilson 2015-10-01 187 continue;
5763ff04dc4ebd drivers/gpu/drm/i915/i915_gem_shrinker.c Chris Wilson 2015-10-01 188
c1a415e261aad0 drivers/gpu/drm/i915/i915_gem_shrinker.c Chris Wilson 2015-12-04 189 if (!can_release_pages(obj))
c1a415e261aad0 drivers/gpu/drm/i915/i915_gem_shrinker.c Chris Wilson 2015-12-04 190 continue;
c1a415e261aad0 drivers/gpu/drm/i915/i915_gem_shrinker.c Chris Wilson 2015-12-04 191
0bd6cb6b58f733 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Chris Wilson 2019-06-18 192 if (!kref_get_unless_zero(&obj->base.refcount))
0bd6cb6b58f733 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Chris Wilson 2019-06-18 193 continue;
0bd6cb6b58f733 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Chris Wilson 2019-06-18 194
a8cff4c8283af3 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Chris Wilson 2019-06-10 195 spin_unlock_irqrestore(&i915->mm.obj_lock, flags);
f2123818ffad03 drivers/gpu/drm/i915/i915_gem_shrinker.c Chris Wilson 2017-10-16 196
df835d9d9fee30 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Maarten Lankhorst 2020-07-10 197 err = 0;
c03467ba40f783 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Chris Wilson 2019-07-03 198 if (unsafe_drop_pages(obj, shrink)) {
7b7a119e8546e2 drivers/gpu/drm/i915/i915_gem_shrinker.c Chris Wilson 2016-10-31 199 /* May arrive from get_pages on another bo */
df835d9d9fee30 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Maarten Lankhorst 2020-07-10 200 if (!ww) {
df835d9d9fee30 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Maarten Lankhorst 2020-07-10 201 if (!i915_gem_object_trylock(obj))
df835d9d9fee30 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Maarten Lankhorst 2020-07-10 202 goto skip;
df835d9d9fee30 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Maarten Lankhorst 2020-07-10 203 } else {
df835d9d9fee30 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Maarten Lankhorst 2020-07-10 204 err = i915_gem_object_lock(obj, ww);
df835d9d9fee30 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Maarten Lankhorst 2020-07-10 205 if (err)
df835d9d9fee30 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Maarten Lankhorst 2020-07-10 206 goto skip;
df835d9d9fee30 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Maarten Lankhorst 2020-07-10 207 }
df835d9d9fee30 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Maarten Lankhorst 2020-07-10 208
f1fa4f442c82eb drivers/gpu/drm/i915/i915_gem_shrinker.c Chris Wilson 2017-10-13 209 if (!i915_gem_object_has_pages(obj)) {
a8cff4c8283af3 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Chris Wilson 2019-06-10 210 try_to_writeback(obj, shrink);
be6a0376950475 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 211 count += obj->base.size >> PAGE_SHIFT;
be6a0376950475 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 212 }
1233e2db199dea drivers/gpu/drm/i915/i915_gem_shrinker.c Chris Wilson 2016-10-28 @213 mutex_unlock(&obj->mm.lock);
1233e2db199dea drivers/gpu/drm/i915/i915_gem_shrinker.c Chris Wilson 2016-10-28 214 }
0bd6cb6b58f733 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Chris Wilson 2019-06-18 215
4e773c3a8a693e drivers/gpu/drm/i915/i915_gem_shrinker.c Chris Wilson 2017-10-13 216 scanned += obj->base.size >> PAGE_SHIFT;
df835d9d9fee30 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Maarten Lankhorst 2020-07-10 217 skip:
0bd6cb6b58f733 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Chris Wilson 2019-06-18 218 i915_gem_object_put(obj);
f2123818ffad03 drivers/gpu/drm/i915/i915_gem_shrinker.c Chris Wilson 2017-10-16 219
a8cff4c8283af3 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Chris Wilson 2019-06-10 220 spin_lock_irqsave(&i915->mm.obj_lock, flags);
df835d9d9fee30 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Maarten Lankhorst 2020-07-10 221 if (err)
df835d9d9fee30 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Maarten Lankhorst 2020-07-10 222 break;
be6a0376950475 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 223 }
535972771d8c99 drivers/gpu/drm/i915/i915_gem_shrinker.c Chris Wilson 2016-11-01 224 list_splice_tail(&still_in_list, phase->list);
a8cff4c8283af3 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Chris Wilson 2019-06-10 225 spin_unlock_irqrestore(&i915->mm.obj_lock, flags);
df835d9d9fee30 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Maarten Lankhorst 2020-07-10 226 if (err)
df835d9d9fee30 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Maarten Lankhorst 2020-07-10 227 return err;
be6a0376950475 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 228 }
be6a0376950475 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 229
a8cff4c8283af3 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Chris Wilson 2019-06-10 230 if (shrink & I915_SHRINK_BOUND)
d858d5695f3897 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c Daniele Ceraolo Spurio 2019-06-13 231 intel_runtime_pm_put(&i915->runtime_pm, wakeref);
178a30c90ac74e drivers/gpu/drm/i915/i915_gem_shrinker.c Praveen Paneri 2016-05-02 232
912d572d63b8cd drivers/gpu/drm/i915/i915_gem_shrinker.c Chris Wilson 2017-09-06 233 if (nr_scanned)
912d572d63b8cd drivers/gpu/drm/i915/i915_gem_shrinker.c Chris Wilson 2017-09-06 234 *nr_scanned += scanned;
be6a0376950475 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 235 return count;
be6a0376950475 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 236 }
be6a0376950475 drivers/gpu/drm/i915/i915_gem_shrinker.c Daniel Vetter 2015-03-18 237
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 2 months
Re: [PATCH v4 1/5] drm/i915: Add enable/disable flip done and flip done handler
by kernel test robot
Hi Karthik,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on drm-intel/for-linux-next]
[also build test ERROR on drm-tip/drm-tip drm-exynos/exynos-drm-next tegra-drm/drm/tegra/for-next v5.8-rc5 next-20200713]
[cannot apply to drm/drm-next]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Karthik-B-S/Asynchronous-flip-im...
base: git://anongit.freedesktop.org/drm-intel for-linux-next
config: i386-randconfig-a002-20200714 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-14) 9.3.0
reproduce (this is a W=1 build):
# save the attached .config to linux build tree
make W=1 ARCH=i386
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
>> drivers/gpu/drm/i915/i915_irq.c:700:5: error: no previous prototype for 'g4x_get_flip_counter' [-Werror=missing-prototypes]
700 | u32 g4x_get_flip_counter(struct drm_crtc *crtc)
| ^~~~~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors
vim +/g4x_get_flip_counter +700 drivers/gpu/drm/i915/i915_irq.c
699
> 700 u32 g4x_get_flip_counter(struct drm_crtc *crtc)
701 {
702 struct drm_i915_private *dev_priv = to_i915(crtc->dev);
703 enum pipe pipe = to_intel_crtc(crtc)->pipe;
704
705 return I915_READ(PIPE_FLIPCOUNT_G4X(pipe));
706 }
707
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 2 months