lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20230817133341.212747-1-rick.wertenbroek@gmail.com>
Date:   Thu, 17 Aug 2023 15:33:41 +0200
From:   Rick Wertenbroek <rick.wertenbroek@...il.com>
To:     rick.wertenbroek@...g-vd.ch
Cc:     dlemoal@...nel.org, Rick Wertenbroek <rick.wertenbroek@...il.com>,
        Lorenzo Pieralisi <lpieralisi@...nel.org>,
        Krzysztof WilczyƄski <kw@...ux.com>,
        Manivannan Sadhasivam <mani@...nel.org>,
        Kishon Vijay Abraham I <kishon@...nel.org>,
        Bjorn Helgaas <bhelgaas@...gle.com>, linux-pci@...r.kernel.org,
        linux-kernel@...r.kernel.org
Subject: [PATCH] PCI: endpoint: Return error code when callback is not implemented

Return an error code when the callback for an endpoint controller
function is not implemented (is null). Among all the functions, only
map_msi_irq() had an error returned if the callback was null. Extend
this error handling to other functions as well.

Signed-off-by: Rick Wertenbroek <rick.wertenbroek@...il.com>
---
 drivers/pci/endpoint/pci-epc-core.c | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/drivers/pci/endpoint/pci-epc-core.c b/drivers/pci/endpoint/pci-epc-core.c
index 5a4a8b0be626..14f4256b9410 100644
--- a/drivers/pci/endpoint/pci-epc-core.c
+++ b/drivers/pci/endpoint/pci-epc-core.c
@@ -196,7 +196,7 @@ int pci_epc_start(struct pci_epc *epc)
 		return -EINVAL;
 
 	if (!epc->ops->start)
-		return 0;
+		return -EINVAL;
 
 	mutex_lock(&epc->lock);
 	ret = epc->ops->start(epc);
@@ -228,7 +228,7 @@ int pci_epc_raise_irq(struct pci_epc *epc, u8 func_no, u8 vfunc_no,
 		return -EINVAL;
 
 	if (!epc->ops->raise_irq)
-		return 0;
+		return -EINVAL;
 
 	mutex_lock(&epc->lock);
 	ret = epc->ops->raise_irq(epc, func_no, vfunc_no, type, interrupt_num);
@@ -340,7 +340,7 @@ int pci_epc_set_msi(struct pci_epc *epc, u8 func_no, u8 vfunc_no, u8 interrupts)
 		return -EINVAL;
 
 	if (!epc->ops->set_msi)
-		return 0;
+		return -EINVAL;
 
 	encode_int = order_base_2(interrupts);
 
@@ -408,7 +408,7 @@ int pci_epc_set_msix(struct pci_epc *epc, u8 func_no, u8 vfunc_no,
 		return -EINVAL;
 
 	if (!epc->ops->set_msix)
-		return 0;
+		return -EINVAL;
 
 	mutex_lock(&epc->lock);
 	ret = epc->ops->set_msix(epc, func_no, vfunc_no, interrupts - 1, bir,
@@ -469,7 +469,7 @@ int pci_epc_map_addr(struct pci_epc *epc, u8 func_no, u8 vfunc_no,
 		return -EINVAL;
 
 	if (!epc->ops->map_addr)
-		return 0;
+		return -EINVAL;
 
 	mutex_lock(&epc->lock);
 	ret = epc->ops->map_addr(epc, func_no, vfunc_no, phys_addr, pci_addr,
@@ -537,7 +537,7 @@ int pci_epc_set_bar(struct pci_epc *epc, u8 func_no, u8 vfunc_no,
 		return -EINVAL;
 
 	if (!epc->ops->set_bar)
-		return 0;
+		return -EINVAL;
 
 	mutex_lock(&epc->lock);
 	ret = epc->ops->set_bar(epc, func_no, vfunc_no, epf_bar);
@@ -575,7 +575,7 @@ int pci_epc_write_header(struct pci_epc *epc, u8 func_no, u8 vfunc_no,
 		return -EINVAL;
 
 	if (!epc->ops->write_header)
-		return 0;
+		return -EINVAL;
 
 	mutex_lock(&epc->lock);
 	ret = epc->ops->write_header(epc, func_no, vfunc_no, header);
-- 
2.25.1

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ