From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Omer Shpigelman <oshpigelman@habana.ai>,
Oded Gabbay <ogabbay@kernel.org>, Sasha Levin <sashal@kernel.org>,
Arnd@vger.kernel.org, gregkh@linuxfoundation.org,
obitton@habana.ai, osharabi@habana.ai, kelbaz@habana.ai,
fkassabri@habana.ai, ynudelman@habana.ai, amizrahi@habana.ai
Subject: [PATCH AUTOSEL 5.14 20/40] habanalabs/gaudi: use direct MSI in single mode
Date: Tue, 28 Sep 2021 01:55:04 -0400 [thread overview]
Message-ID: <20210928055524.172051-20-sashal@kernel.org> (raw)
In-Reply-To: <20210928055524.172051-1-sashal@kernel.org>
From: Omer Shpigelman <oshpigelman@habana.ai>
[ Upstream commit 3e08f157c2587fc7ada93abed41aae19bcbf8a6b ]
Due to FLR scenario when running inside a VM, we must not use indirect
MSI because it might cause some issues on VM destroy.
In a VM we use single MSI mode in contrary to multi MSI mode which is
used in bare-metal.
Hence direct MSI should be used in single MSI mode only.
Signed-off-by: Omer Shpigelman <oshpigelman@habana.ai>
Reviewed-by: Oded Gabbay <ogabbay@kernel.org>
Signed-off-by: Oded Gabbay <ogabbay@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/misc/habanalabs/gaudi/gaudi.c | 9 ++++++---
.../misc/habanalabs/include/gaudi/asic_reg/gaudi_regs.h | 2 ++
2 files changed, 8 insertions(+), 3 deletions(-)
diff --git a/drivers/misc/habanalabs/gaudi/gaudi.c b/drivers/misc/habanalabs/gaudi/gaudi.c
index 409f05c962f2..8a9c4f0f37f9 100644
--- a/drivers/misc/habanalabs/gaudi/gaudi.c
+++ b/drivers/misc/habanalabs/gaudi/gaudi.c
@@ -5620,6 +5620,7 @@ static void gaudi_add_end_of_cb_packets(struct hl_device *hdev,
{
struct gaudi_device *gaudi = hdev->asic_specific;
struct packet_msg_prot *cq_pkt;
+ u64 msi_addr;
u32 tmp;
cq_pkt = kernel_address + len - (sizeof(struct packet_msg_prot) * 2);
@@ -5641,10 +5642,12 @@ static void gaudi_add_end_of_cb_packets(struct hl_device *hdev,
cq_pkt->ctl = cpu_to_le32(tmp);
cq_pkt->value = cpu_to_le32(1);
- if (!gaudi->multi_msi_mode)
- msi_vec = 0;
+ if (gaudi->multi_msi_mode)
+ msi_addr = mmPCIE_MSI_INTR_0 + msi_vec * 4;
+ else
+ msi_addr = mmPCIE_CORE_MSI_REQ;
- cq_pkt->addr = cpu_to_le64(CFG_BASE + mmPCIE_MSI_INTR_0 + msi_vec * 4);
+ cq_pkt->addr = cpu_to_le64(CFG_BASE + msi_addr);
}
static void gaudi_update_eq_ci(struct hl_device *hdev, u32 val)
diff --git a/drivers/misc/habanalabs/include/gaudi/asic_reg/gaudi_regs.h b/drivers/misc/habanalabs/include/gaudi/asic_reg/gaudi_regs.h
index 5bb54b34a8ae..907644202b0c 100644
--- a/drivers/misc/habanalabs/include/gaudi/asic_reg/gaudi_regs.h
+++ b/drivers/misc/habanalabs/include/gaudi/asic_reg/gaudi_regs.h
@@ -305,6 +305,8 @@
#define mmPCIE_AUX_FLR_CTRL 0xC07394
#define mmPCIE_AUX_DBI 0xC07490
+#define mmPCIE_CORE_MSI_REQ 0xC04100
+
#define mmPSOC_PCI_PLL_NR 0xC72100
#define mmSRAM_W_PLL_NR 0x4C8100
#define mmPSOC_HBM_PLL_NR 0xC74100
--
2.33.0
next prev parent reply other threads:[~2021-09-28 5:56 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-09-28 5:54 [PATCH AUTOSEL 5.14 01/40] spi: rockchip: handle zero length transfers without timing out Sasha Levin
2021-09-28 5:54 ` [PATCH AUTOSEL 5.14 02/40] afs: Add missing vnode validation checks Sasha Levin
2021-09-28 5:54 ` [PATCH AUTOSEL 5.14 03/40] platform/x86: touchscreen_dmi: Add info for the Chuwi HiBook (CWI514) tablet Sasha Levin
2021-09-28 5:54 ` [PATCH AUTOSEL 5.14 04/40] platform/x86: touchscreen_dmi: Update info for the Chuwi Hi10 Plus (CWI527) tablet Sasha Levin
2021-09-28 5:54 ` [PATCH AUTOSEL 5.14 05/40] nfsd: back channel stuck in SEQ4_STATUS_CB_PATH_DOWN Sasha Levin
2021-09-28 5:54 ` [PATCH AUTOSEL 5.14 06/40] btrfs: replace BUG_ON() in btrfs_csum_one_bio() with proper error handling Sasha Levin
2021-09-28 5:54 ` [PATCH AUTOSEL 5.14 07/40] btrfs: fix mount failure due to past and transient device flush error Sasha Levin
2021-09-28 5:54 ` [PATCH AUTOSEL 5.14 08/40] net: mdio: introduce a shutdown method to mdio device drivers Sasha Levin
2021-09-28 5:54 ` [PATCH AUTOSEL 5.14 09/40] xen-netback: correct success/error reporting for the SKB-with-fraglist case Sasha Levin
2021-09-28 5:54 ` [PATCH AUTOSEL 5.14 10/40] sparc64: fix pci_iounmap() when CONFIG_PCI is not set Sasha Levin
2021-09-28 5:54 ` [PATCH AUTOSEL 5.14 11/40] platform/x86/intel: hid: Add DMI switches allow list Sasha Levin
2021-09-28 5:54 ` [PATCH AUTOSEL 5.14 12/40] platform/x86: gigabyte-wmi: add support for B550I Aorus Pro AX Sasha Levin
2021-09-28 5:54 ` [PATCH AUTOSEL 5.14 13/40] ext2: fix sleeping in atomic bugs on error Sasha Levin
2021-09-28 5:54 ` [PATCH AUTOSEL 5.14 14/40] drm/amdkfd: handle svm migrate init error Sasha Levin
2021-09-28 5:54 ` [PATCH AUTOSEL 5.14 15/40] drm/amdkfd: fix svm_migrate_fini warning Sasha Levin
2021-09-28 5:55 ` [PATCH AUTOSEL 5.14 16/40] scsi: sd: Free scsi_disk device via put_device() Sasha Levin
2021-09-28 5:55 ` [PATCH AUTOSEL 5.14 17/40] scsi: elx: efct: Do not hold lock while calling fc_vport_terminate() Sasha Levin
2021-09-28 5:55 ` [PATCH AUTOSEL 5.14 18/40] usb: testusb: Fix for showing the connection speed Sasha Levin
2021-09-28 5:55 ` [PATCH AUTOSEL 5.14 19/40] usb: dwc2: check return value after calling platform_get_resource() Sasha Levin
2021-09-28 5:55 ` Sasha Levin [this message]
2021-09-28 5:55 ` [PATCH AUTOSEL 5.14 21/40] habanalabs: fail collective wait when not supported Sasha Levin
2021-09-28 5:55 ` [PATCH AUTOSEL 5.14 22/40] habanalabs/gaudi: fix LBW RR configuration Sasha Levin
2021-09-28 5:55 ` [PATCH AUTOSEL 5.14 23/40] selftests: be sure to make khdr before other targets Sasha Levin
2021-09-28 5:55 ` [PATCH AUTOSEL 5.14 24/40] selftests:kvm: fix get_warnings_count() ignoring fscanf() return warn Sasha Levin
2021-09-28 5:55 ` [PATCH AUTOSEL 5.14 25/40] selftests:kvm: fix get_trans_hugepagesz() " Sasha Levin
2021-09-28 5:55 ` [PATCH AUTOSEL 5.14 26/40] selftests: kvm: move get_run_delay() into lib/test_util Sasha Levin
2021-09-28 5:55 ` [PATCH AUTOSEL 5.14 27/40] selftests: kvm: fix get_run_delay() ignoring fscanf() return warn Sasha Levin
2021-09-28 5:55 ` [PATCH AUTOSEL 5.14 28/40] Xen/gntdev: don't ignore kernel unmapping error Sasha Levin
2021-09-28 5:55 ` [PATCH AUTOSEL 5.14 29/40] swiotlb-xen: ensure to issue well-formed XENMEM_exchange requests Sasha Levin
2021-09-28 5:55 ` [PATCH AUTOSEL 5.14 30/40] nvme-fc: update hardware queues before using them Sasha Levin
2021-09-28 5:55 ` [PATCH AUTOSEL 5.14 31/40] nvme-fc: avoid race between time out and tear down Sasha Levin
2021-09-28 5:55 ` [PATCH AUTOSEL 5.14 32/40] thermal/drivers/tsens: Fix wrong check for tzd in irq handlers Sasha Levin
2021-09-28 5:55 ` [PATCH AUTOSEL 5.14 33/40] scsi: ses: Retry failed Send/Receive Diagnostic commands Sasha Levin
2021-09-28 5:55 ` [PATCH AUTOSEL 5.14 34/40] irqchip/gic: Work around broken Renesas integration Sasha Levin
2021-09-28 5:55 ` [PATCH AUTOSEL 5.14 35/40] smb3: correct smb3 ACL security descriptor Sasha Levin
2021-09-28 5:55 ` [PATCH AUTOSEL 5.14 36/40] x86/insn, tools/x86: Fix undefined behavior due to potential unaligned accesses Sasha Levin
2021-09-28 5:55 ` [PATCH AUTOSEL 5.14 37/40] io_uring: allow conditional reschedule for intensive iterators Sasha Levin
2021-09-28 5:55 ` [PATCH AUTOSEL 5.14 38/40] block: don't call rq_qos_ops->done_bio if the bio isn't tracked Sasha Levin
2021-09-28 5:55 ` [PATCH AUTOSEL 5.14 39/40] tools/vm/page-types: remove dependency on opt_file for idle page tracking Sasha Levin
2021-09-28 5:55 ` [PATCH AUTOSEL 5.14 40/40] kasan: always respect CONFIG_KASAN_STACK Sasha Levin
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=20210928055524.172051-20-sashal@kernel.org \
--to=sashal@kernel.org \
--cc=Arnd@vger.kernel.org \
--cc=amizrahi@habana.ai \
--cc=fkassabri@habana.ai \
--cc=gregkh@linuxfoundation.org \
--cc=kelbaz@habana.ai \
--cc=linux-kernel@vger.kernel.org \
--cc=obitton@habana.ai \
--cc=ogabbay@kernel.org \
--cc=osharabi@habana.ai \
--cc=oshpigelman@habana.ai \
--cc=stable@vger.kernel.org \
--cc=ynudelman@habana.ai \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox