From 7c8075728f4df477d94df2e4d23a95ee69ee9493 Mon Sep 17 00:00:00 2001 From: Jonathan Lemon Date: Mon, 16 Aug 2021 15:13:34 -0700 Subject: [PATCH 1/4] ptp: ocp: Fix uninitialized variable warning spotted by clang. If attempting to flash the firmware with a blob of size 0, the entire write loop is skipped and the uninitialized err is returned. Fix by setting to 0 first. Fixes: 773bda964921 ("ptp: ocp: Expose various resources on the timecard.") Signed-off-by: Jonathan Lemon Signed-off-by: Jakub Kicinski --- drivers/ptp/ptp_ocp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/ptp/ptp_ocp.c b/drivers/ptp/ptp_ocp.c index 92edf772feed..9e4317d1184f 100644 --- a/drivers/ptp/ptp_ocp.c +++ b/drivers/ptp/ptp_ocp.c @@ -763,7 +763,7 @@ ptp_ocp_devlink_flash(struct devlink *devlink, struct device *dev, size_t off, len, resid, wrote; struct erase_info erase; size_t base, blksz; - int err; + int err = 0; off = 0; base = bp->flash_start; From d9fdbf132dab4d844167004ae4ca979fbebd9871 Mon Sep 17 00:00:00 2001 From: Jonathan Lemon Date: Mon, 16 Aug 2021 15:13:35 -0700 Subject: [PATCH 2/4] ptp: ocp: Fix error path for pci_ocp_device_init() If ptp_ocp_device_init() fails, pci_disable_device() is skipped. Fix the error handling so this case is covered. Update ptp_ocp_remove() so the normal exit path is identical. Reported-by: Hulk Robot Fixes: 773bda964921 ("ptp: ocp: Expose various resources on the timecard.") Signed-off-by: Jonathan Lemon Signed-off-by: Jakub Kicinski --- drivers/ptp/ptp_ocp.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/ptp/ptp_ocp.c b/drivers/ptp/ptp_ocp.c index 9e4317d1184f..caf9b37c5eb1 100644 --- a/drivers/ptp/ptp_ocp.c +++ b/drivers/ptp/ptp_ocp.c @@ -1438,7 +1438,7 @@ ptp_ocp_probe(struct pci_dev *pdev, const struct pci_device_id *id) bp = devlink_priv(devlink); err = ptp_ocp_device_init(bp, pdev); if (err) - goto out_unregister; + goto out_disable; /* compat mode. * Older FPGA firmware only returns 2 irq's. @@ -1476,8 +1476,9 @@ ptp_ocp_probe(struct pci_dev *pdev, const struct pci_device_id *id) out: ptp_ocp_detach(bp); - pci_disable_device(pdev); pci_set_drvdata(pdev, NULL); +out_disable: + pci_disable_device(pdev); out_unregister: devlink_unregister(devlink); out_free: @@ -1493,8 +1494,8 @@ ptp_ocp_remove(struct pci_dev *pdev) struct devlink *devlink = priv_to_devlink(bp); ptp_ocp_detach(bp); - pci_disable_device(pdev); pci_set_drvdata(pdev, NULL); + pci_disable_device(pdev); devlink_unregister(devlink); devlink_free(devlink); From d79500e66a52103be31e62389cdd7ef345e4fe47 Mon Sep 17 00:00:00 2001 From: Jonathan Lemon Date: Mon, 16 Aug 2021 15:13:36 -0700 Subject: [PATCH 3/4] ptp: ocp: Have Kconfig select NET_DEVLINK NET doesn't imply NET_DEVLINK. Select this separately, so that random config combinations don't complain. Reported-by: kernel test robot Fixes: 773bda964921 ("ptp: ocp: Expose various resources on the timecard.") Signed-off-by: Jonathan Lemon Signed-off-by: Jakub Kicinski --- drivers/ptp/Kconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/ptp/Kconfig b/drivers/ptp/Kconfig index 823eae1b4b53..8ad88c3e79aa 100644 --- a/drivers/ptp/Kconfig +++ b/drivers/ptp/Kconfig @@ -177,6 +177,7 @@ config PTP_1588_CLOCK_OCP imply MTD_SPI_NOR imply I2C_XILINX select SERIAL_8250 + select NET_DEVLINK default n help From b40fb16df9f495ffeb4475950b68ee0fcba86b33 Mon Sep 17 00:00:00 2001 From: Jonathan Lemon Date: Mon, 16 Aug 2021 15:13:37 -0700 Subject: [PATCH 4/4] MAINTAINERS: Update for ptp_ocp driver. Add maintainer info for the OpenCompute PTP driver. Signed-off-by: Jonathan Lemon Signed-off-by: Jakub Kicinski --- MAINTAINERS | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/MAINTAINERS b/MAINTAINERS index 2da75be3fb3f..43ec27b32ee5 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -13885,6 +13885,12 @@ F: Documentation/devicetree/ F: arch/*/boot/dts/ F: include/dt-bindings/ +OPENCOMPUTE PTP CLOCK DRIVER +M: Jonathan Lemon +L: netdev@vger.kernel.org +S: Maintained +F: drivers/ptp/ptp_ocp.c + OPENCORES I2C BUS DRIVER M: Peter Korsgaard M: Andrew Lunn