All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dan Carpenter <dan.carpenter@oracle.com>
To: kbuild@lists.01.org
Subject: [habanaai:habanalabs-next 17/17] drivers/misc/habanalabs/gaudi/gaudi.c:6077 gaudi_is_device_idle() warn: should '!is_eng_idle << (0 + dma_id)' be a 64 bit
Date: Mon, 24 Aug 2020 13:49:48 +0300	[thread overview]
Message-ID: <20200824104948.GC1793@kadam> (raw)

[-- Attachment #1: Type: text/plain, Size: 9688 bytes --]

tree:   https://github.com/HabanaAI/linux.git habanalabs-next
head:   eb5cb5d380ac735874da3b555f4c8ab6ea814c90
commit: eb5cb5d380ac735874da3b555f4c8ab6ea814c90 [17/17] habanalabs: extend busy engines mask to 64 bits
config: x86_64-randconfig-m001-20200820 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>

smatch warnings:
drivers/misc/habanalabs/gaudi/gaudi.c:6077 gaudi_is_device_idle() warn: should '!is_eng_idle << (0 + dma_id)' be a 64 bit type?

# https://github.com/HabanaAI/linux/commit/eb5cb5d380ac735874da3b555f4c8ab6ea814c90
git remote add habanaai https://github.com/HabanaAI/linux.git
git fetch --no-tags habanaai habanalabs-next
git checkout eb5cb5d380ac735874da3b555f4c8ab6ea814c90
vim +6077 drivers/misc/habanalabs/gaudi/gaudi.c

eb5cb5d380ac735 farah kassabri 2020-08-12  6044  static bool gaudi_is_device_idle(struct hl_device *hdev, u64 *mask,
                                                                                                          ^^^^^^^^^
This is now 64 bit.

ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6045  					struct seq_file *s)
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6046  {
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6047  	struct gaudi_device *gaudi = hdev->asic_specific;
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6048  	const char *fmt = "%-5d%-9s%#-14x%#-12x%#x\n";
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6049  	const char *mme_slave_fmt = "%-5d%-9s%-14s%-12s%#x\n";
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6050  	u32 qm_glbl_sts0, qm_cgm_sts, dma_core_sts0, tpc_cfg_sts, mme_arch_sts;
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6051  	bool is_idle = true, is_eng_idle, is_slave;
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6052  	u64 offset;
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6053  	int i, dma_id;
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6054  
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6055  	mutex_lock(&gaudi->clk_gate_mutex);
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6056  
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6057  	hdev->asic_funcs->disable_clock_gating(hdev);
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6058  
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6059  	if (s)
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6060  		seq_puts(s,
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6061  			"\nDMA  is_idle  QM_GLBL_STS0  QM_CGM_STS  DMA_CORE_STS0\n"
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6062  			"---  -------  ------------  ----------  -------------\n");
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6063  
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6064  	for (i = 0 ; i < DMA_NUMBER_OF_CHNLS ; i++) {
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6065  		dma_id = gaudi_dma_assignment[i];
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6066  		offset = dma_id * DMA_QMAN_OFFSET;
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6067  
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6068  		qm_glbl_sts0 = RREG32(mmDMA0_QM_GLBL_STS0 + offset);
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6069  		qm_cgm_sts = RREG32(mmDMA0_QM_CGM_STS + offset);
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6070  		dma_core_sts0 = RREG32(mmDMA0_CORE_STS0 + offset);
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6071  		is_eng_idle = IS_QM_IDLE(qm_glbl_sts0, qm_cgm_sts) &&
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6072  				IS_DMA_IDLE(dma_core_sts0);
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6073  		is_idle &= is_eng_idle;
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6074  
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6075  		if (mask)
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6076  			*mask |= !is_eng_idle <<
ac0ae6a96aa58ee Oded Gabbay    2020-05-11 @6077  					(GAUDI_ENGINE_ID_DMA_0 + dma_id);

So this needs to be:

	*mask |= (u64)s_eng_idle << (GAUDI_ENGINE_ID_DMA_0 + dma_id);

to prevent shift wrapping.  Smatch doesn't know the value of dma_id.

ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6078  		if (s)
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6079  			seq_printf(s, fmt, dma_id,
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6080  				is_eng_idle ? "Y" : "N", qm_glbl_sts0,
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6081  				qm_cgm_sts, dma_core_sts0);
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6082  	}
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6083  
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6084  	if (s)
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6085  		seq_puts(s,
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6086  			"\nTPC  is_idle  QM_GLBL_STS0  QM_CGM_STS  CFG_STATUS\n"
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6087  			"---  -------  ------------  ----------  ----------\n");
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6088  
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6089  	for (i = 0 ; i < TPC_NUMBER_OF_ENGINES ; i++) {
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6090  		offset = i * TPC_QMAN_OFFSET;
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6091  		qm_glbl_sts0 = RREG32(mmTPC0_QM_GLBL_STS0 + offset);
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6092  		qm_cgm_sts = RREG32(mmTPC0_QM_CGM_STS + offset);
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6093  		tpc_cfg_sts = RREG32(mmTPC0_CFG_STATUS + offset);
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6094  		is_eng_idle = IS_QM_IDLE(qm_glbl_sts0, qm_cgm_sts) &&
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6095  				IS_TPC_IDLE(tpc_cfg_sts);
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6096  		is_idle &= is_eng_idle;
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6097  
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6098  		if (mask)
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6099  			*mask |= !is_eng_idle << (GAUDI_ENGINE_ID_TPC_0 + i);

Presumably Smatch knows that TPC_NUMBER_OF_ENGINES + GAUDI_ENGINE_ID_TPC_0
is less than 31.

ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6100  		if (s)
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6101  			seq_printf(s, fmt, i,
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6102  				is_eng_idle ? "Y" : "N",
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6103  				qm_glbl_sts0, qm_cgm_sts, tpc_cfg_sts);
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6104  	}
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6105  
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6106  	if (s)
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6107  		seq_puts(s,
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6108  			"\nMME  is_idle  QM_GLBL_STS0  QM_CGM_STS  ARCH_STATUS\n"
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6109  			"---  -------  ------------  ----------  -----------\n");
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6110  
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6111  	for (i = 0 ; i < MME_NUMBER_OF_ENGINES ; i++) {
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6112  		offset = i * MME_QMAN_OFFSET;
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6113  		mme_arch_sts = RREG32(mmMME0_CTRL_ARCH_STATUS + offset);
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6114  		is_eng_idle = IS_MME_IDLE(mme_arch_sts);
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6115  
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6116  		/* MME 1 & 3 are slaves, no need to check their QMANs */
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6117  		is_slave = i % 2;
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6118  		if (!is_slave) {
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6119  			qm_glbl_sts0 = RREG32(mmMME0_QM_GLBL_STS0 + offset);
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6120  			qm_cgm_sts = RREG32(mmMME0_QM_CGM_STS + offset);
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6121  			is_eng_idle &= IS_QM_IDLE(qm_glbl_sts0, qm_cgm_sts);
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6122  		}
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6123  
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6124  		is_idle &= is_eng_idle;
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6125  
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6126  		if (mask)
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6127  			*mask |= !is_eng_idle << (GAUDI_ENGINE_ID_MME_0 + i);



ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6128  		if (s) {
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6129  			if (!is_slave)
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6130  				seq_printf(s, fmt, i,
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6131  					is_eng_idle ? "Y" : "N",
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6132  					qm_glbl_sts0, qm_cgm_sts, mme_arch_sts);
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6133  			else
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6134  				seq_printf(s, mme_slave_fmt, i,
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6135  					is_eng_idle ? "Y" : "N", "-",
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6136  					"-", mme_arch_sts);
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6137  		}
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6138  	}
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6139  
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6140  	if (s)
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6141  		seq_puts(s, "\n");
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6142  
e38bfd30e08802d Oded Gabbay    2020-07-03  6143  	hdev->asic_funcs->set_clock_gating(hdev);
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6144  
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6145  	mutex_unlock(&gaudi->clk_gate_mutex);
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6146  
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6147  	return is_idle;
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6148  }

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 36161 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: Dan Carpenter <dan.carpenter@oracle.com>
To: kbuild-all@lists.01.org
Subject: [habanaai:habanalabs-next 17/17] drivers/misc/habanalabs/gaudi/gaudi.c:6077 gaudi_is_device_idle() warn: should '!is_eng_idle << (0 + dma_id)' be a 64 bit
Date: Mon, 24 Aug 2020 13:49:48 +0300	[thread overview]
Message-ID: <20200824104948.GC1793@kadam> (raw)

[-- Attachment #1: Type: text/plain, Size: 9688 bytes --]

tree:   https://github.com/HabanaAI/linux.git habanalabs-next
head:   eb5cb5d380ac735874da3b555f4c8ab6ea814c90
commit: eb5cb5d380ac735874da3b555f4c8ab6ea814c90 [17/17] habanalabs: extend busy engines mask to 64 bits
config: x86_64-randconfig-m001-20200820 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>

smatch warnings:
drivers/misc/habanalabs/gaudi/gaudi.c:6077 gaudi_is_device_idle() warn: should '!is_eng_idle << (0 + dma_id)' be a 64 bit type?

# https://github.com/HabanaAI/linux/commit/eb5cb5d380ac735874da3b555f4c8ab6ea814c90
git remote add habanaai https://github.com/HabanaAI/linux.git
git fetch --no-tags habanaai habanalabs-next
git checkout eb5cb5d380ac735874da3b555f4c8ab6ea814c90
vim +6077 drivers/misc/habanalabs/gaudi/gaudi.c

eb5cb5d380ac735 farah kassabri 2020-08-12  6044  static bool gaudi_is_device_idle(struct hl_device *hdev, u64 *mask,
                                                                                                          ^^^^^^^^^
This is now 64 bit.

ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6045  					struct seq_file *s)
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6046  {
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6047  	struct gaudi_device *gaudi = hdev->asic_specific;
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6048  	const char *fmt = "%-5d%-9s%#-14x%#-12x%#x\n";
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6049  	const char *mme_slave_fmt = "%-5d%-9s%-14s%-12s%#x\n";
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6050  	u32 qm_glbl_sts0, qm_cgm_sts, dma_core_sts0, tpc_cfg_sts, mme_arch_sts;
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6051  	bool is_idle = true, is_eng_idle, is_slave;
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6052  	u64 offset;
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6053  	int i, dma_id;
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6054  
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6055  	mutex_lock(&gaudi->clk_gate_mutex);
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6056  
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6057  	hdev->asic_funcs->disable_clock_gating(hdev);
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6058  
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6059  	if (s)
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6060  		seq_puts(s,
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6061  			"\nDMA  is_idle  QM_GLBL_STS0  QM_CGM_STS  DMA_CORE_STS0\n"
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6062  			"---  -------  ------------  ----------  -------------\n");
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6063  
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6064  	for (i = 0 ; i < DMA_NUMBER_OF_CHNLS ; i++) {
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6065  		dma_id = gaudi_dma_assignment[i];
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6066  		offset = dma_id * DMA_QMAN_OFFSET;
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6067  
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6068  		qm_glbl_sts0 = RREG32(mmDMA0_QM_GLBL_STS0 + offset);
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6069  		qm_cgm_sts = RREG32(mmDMA0_QM_CGM_STS + offset);
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6070  		dma_core_sts0 = RREG32(mmDMA0_CORE_STS0 + offset);
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6071  		is_eng_idle = IS_QM_IDLE(qm_glbl_sts0, qm_cgm_sts) &&
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6072  				IS_DMA_IDLE(dma_core_sts0);
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6073  		is_idle &= is_eng_idle;
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6074  
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6075  		if (mask)
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6076  			*mask |= !is_eng_idle <<
ac0ae6a96aa58ee Oded Gabbay    2020-05-11 @6077  					(GAUDI_ENGINE_ID_DMA_0 + dma_id);

So this needs to be:

	*mask |= (u64)s_eng_idle << (GAUDI_ENGINE_ID_DMA_0 + dma_id);

to prevent shift wrapping.  Smatch doesn't know the value of dma_id.

ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6078  		if (s)
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6079  			seq_printf(s, fmt, dma_id,
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6080  				is_eng_idle ? "Y" : "N", qm_glbl_sts0,
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6081  				qm_cgm_sts, dma_core_sts0);
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6082  	}
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6083  
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6084  	if (s)
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6085  		seq_puts(s,
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6086  			"\nTPC  is_idle  QM_GLBL_STS0  QM_CGM_STS  CFG_STATUS\n"
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6087  			"---  -------  ------------  ----------  ----------\n");
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6088  
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6089  	for (i = 0 ; i < TPC_NUMBER_OF_ENGINES ; i++) {
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6090  		offset = i * TPC_QMAN_OFFSET;
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6091  		qm_glbl_sts0 = RREG32(mmTPC0_QM_GLBL_STS0 + offset);
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6092  		qm_cgm_sts = RREG32(mmTPC0_QM_CGM_STS + offset);
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6093  		tpc_cfg_sts = RREG32(mmTPC0_CFG_STATUS + offset);
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6094  		is_eng_idle = IS_QM_IDLE(qm_glbl_sts0, qm_cgm_sts) &&
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6095  				IS_TPC_IDLE(tpc_cfg_sts);
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6096  		is_idle &= is_eng_idle;
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6097  
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6098  		if (mask)
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6099  			*mask |= !is_eng_idle << (GAUDI_ENGINE_ID_TPC_0 + i);

Presumably Smatch knows that TPC_NUMBER_OF_ENGINES + GAUDI_ENGINE_ID_TPC_0
is less than 31.

ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6100  		if (s)
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6101  			seq_printf(s, fmt, i,
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6102  				is_eng_idle ? "Y" : "N",
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6103  				qm_glbl_sts0, qm_cgm_sts, tpc_cfg_sts);
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6104  	}
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6105  
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6106  	if (s)
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6107  		seq_puts(s,
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6108  			"\nMME  is_idle  QM_GLBL_STS0  QM_CGM_STS  ARCH_STATUS\n"
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6109  			"---  -------  ------------  ----------  -----------\n");
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6110  
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6111  	for (i = 0 ; i < MME_NUMBER_OF_ENGINES ; i++) {
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6112  		offset = i * MME_QMAN_OFFSET;
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6113  		mme_arch_sts = RREG32(mmMME0_CTRL_ARCH_STATUS + offset);
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6114  		is_eng_idle = IS_MME_IDLE(mme_arch_sts);
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6115  
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6116  		/* MME 1 & 3 are slaves, no need to check their QMANs */
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6117  		is_slave = i % 2;
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6118  		if (!is_slave) {
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6119  			qm_glbl_sts0 = RREG32(mmMME0_QM_GLBL_STS0 + offset);
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6120  			qm_cgm_sts = RREG32(mmMME0_QM_CGM_STS + offset);
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6121  			is_eng_idle &= IS_QM_IDLE(qm_glbl_sts0, qm_cgm_sts);
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6122  		}
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6123  
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6124  		is_idle &= is_eng_idle;
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6125  
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6126  		if (mask)
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6127  			*mask |= !is_eng_idle << (GAUDI_ENGINE_ID_MME_0 + i);



ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6128  		if (s) {
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6129  			if (!is_slave)
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6130  				seq_printf(s, fmt, i,
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6131  					is_eng_idle ? "Y" : "N",
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6132  					qm_glbl_sts0, qm_cgm_sts, mme_arch_sts);
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6133  			else
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6134  				seq_printf(s, mme_slave_fmt, i,
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6135  					is_eng_idle ? "Y" : "N", "-",
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6136  					"-", mme_arch_sts);
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6137  		}
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6138  	}
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6139  
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6140  	if (s)
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6141  		seq_puts(s, "\n");
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6142  
e38bfd30e08802d Oded Gabbay    2020-07-03  6143  	hdev->asic_funcs->set_clock_gating(hdev);
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6144  
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6145  	mutex_unlock(&gaudi->clk_gate_mutex);
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6146  
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6147  	return is_idle;
ac0ae6a96aa58ee Oded Gabbay    2020-05-11  6148  }

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 36161 bytes --]

             reply	other threads:[~2020-08-24 10:49 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-08-24 10:49 Dan Carpenter [this message]
2020-08-24 10:49 ` [habanaai:habanalabs-next 17/17] drivers/misc/habanalabs/gaudi/gaudi.c:6077 gaudi_is_device_idle() warn: should '!is_eng_idle << (0 + dma_id)' be a 64 bit Dan Carpenter
  -- strict thread matches above, loose matches on Subject: below --
2020-08-20 22:16 kernel test robot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200824104948.GC1793@kadam \
    --to=dan.carpenter@oracle.com \
    --cc=kbuild@lists.01.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.