Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'ntb-6.5' of https://github.com/jonmason/ntb

Pull NTB updates from Jon Mason:
"Fixes for pci_clean_master, error handling in driver inits, and
various other issues/bugs"

* tag 'ntb-6.5' of https://github.com/jonmason/ntb:
ntb: hw: amd: Fix debugfs_create_dir error checking
ntb.rst: Fix copy and paste error
ntb_netdev: Fix module_init problem
ntb: intel: Remove redundant pci_clear_master
ntb: epf: Remove redundant pci_clear_master
ntb_hw_amd: Remove redundant pci_clear_master
ntb: idt: drop redundant pci_enable_pcie_error_reporting()
MAINTAINERS: git://github -> https://github.com for jonmason
NTB: EPF: fix possible memory leak in pci_vntb_probe()
NTB: ntb_tool: Add check for devm_kcalloc
NTB: ntb_transport: fix possible memory leak while device_register() fails
ntb: intel: Fix error handling in intel_ntb_pci_driver_init()
NTB: amd: Fix error handling in amd_ntb_pci_driver_init()
ntb: idt: Fix error handling in idt_pci_driver_init()

+36 -33
+2 -2
Documentation/driver-api/ntb.rst
··· 207 207 allows for passing MSI interrupts across NTB memory windows. The 208 208 test client is interacted with through the debugfs filesystem: 209 209 210 - * *debugfs*/ntb\_tool/*hw*/ 210 + * *debugfs*/ntb\_msi\_test/*hw*/ 211 211 A directory in debugfs will be created for each 212 - NTB device probed by the tool. This directory is shortened to *hw* 212 + NTB device probed by the msi test. This directory is shortened to *hw* 213 213 below. 214 214 * *hw*/port 215 215 This file describes the local port number
+1 -1
MAINTAINERS
··· 15010 15010 L: ntb@lists.linux.dev 15011 15011 S: Supported 15012 15012 W: https://github.com/jonmason/ntb/wiki 15013 - T: git git://github.com/jonmason/ntb.git 15013 + T: git https://github.com/jonmason/ntb.git 15014 15014 F: drivers/net/ntb_netdev.c 15015 15015 F: drivers/ntb/ 15016 15016 F: drivers/pci/endpoint/functions/pci-epf-*ntb.c
+1 -1
drivers/net/ntb_netdev.c
··· 493 493 494 494 return 0; 495 495 } 496 - module_init(ntb_netdev_init_module); 496 + late_initcall(ntb_netdev_init_module); 497 497 498 498 static void __exit ntb_netdev_exit_module(void) 499 499 {
+7 -4
drivers/ntb/hw/amd/ntb_hw_amd.c
··· 941 941 ndev->debugfs_dir = 942 942 debugfs_create_dir(pci_name(ndev->ntb.pdev), 943 943 debugfs_dir); 944 - if (!ndev->debugfs_dir) 944 + if (IS_ERR(ndev->debugfs_dir)) 945 945 ndev->debugfs_info = NULL; 946 946 else 947 947 ndev->debugfs_info = ··· 1194 1194 return 0; 1195 1195 1196 1196 err_dma_mask: 1197 - pci_clear_master(pdev); 1198 1197 pci_release_regions(pdev); 1199 1198 err_pci_regions: 1200 1199 pci_disable_device(pdev); ··· 1208 1209 1209 1210 pci_iounmap(pdev, ndev->self_mmio); 1210 1211 1211 - pci_clear_master(pdev); 1212 1212 pci_release_regions(pdev); 1213 1213 pci_disable_device(pdev); 1214 1214 pci_set_drvdata(pdev, NULL); ··· 1336 1338 1337 1339 static int __init amd_ntb_pci_driver_init(void) 1338 1340 { 1341 + int ret; 1339 1342 pr_info("%s %s\n", NTB_DESC, NTB_VER); 1340 1343 1341 1344 if (debugfs_initialized()) 1342 1345 debugfs_dir = debugfs_create_dir(KBUILD_MODNAME, NULL); 1343 1346 1344 - return pci_register_driver(&amd_ntb_pci_driver); 1347 + ret = pci_register_driver(&amd_ntb_pci_driver); 1348 + if (ret) 1349 + debugfs_remove_recursive(debugfs_dir); 1350 + 1351 + return ret; 1345 1352 } 1346 1353 module_init(amd_ntb_pci_driver_init); 1347 1354
+4 -8
drivers/ntb/hw/epf/ntb_hw_epf.c
··· 591 591 ret = dma_set_mask_and_coherent(dev, DMA_BIT_MASK(32)); 592 592 if (ret) { 593 593 dev_err(dev, "Cannot set DMA mask\n"); 594 - goto err_dma_mask; 594 + goto err_pci_regions; 595 595 } 596 596 dev_warn(&pdev->dev, "Cannot DMA highmem\n"); 597 597 } ··· 599 599 ndev->ctrl_reg = pci_iomap(pdev, ndev->ctrl_reg_bar, 0); 600 600 if (!ndev->ctrl_reg) { 601 601 ret = -EIO; 602 - goto err_dma_mask; 602 + goto err_pci_regions; 603 603 } 604 604 605 605 if (ndev->peer_spad_reg_bar) { 606 606 ndev->peer_spad_reg = pci_iomap(pdev, ndev->peer_spad_reg_bar, 0); 607 607 if (!ndev->peer_spad_reg) { 608 608 ret = -EIO; 609 - goto err_dma_mask; 609 + goto err_pci_regions; 610 610 } 611 611 } else { 612 612 spad_sz = 4 * readl(ndev->ctrl_reg + NTB_EPF_SPAD_COUNT); ··· 617 617 ndev->db_reg = pci_iomap(pdev, ndev->db_reg_bar, 0); 618 618 if (!ndev->db_reg) { 619 619 ret = -EIO; 620 - goto err_dma_mask; 620 + goto err_pci_regions; 621 621 } 622 622 623 623 return 0; 624 - 625 - err_dma_mask: 626 - pci_clear_master(pdev); 627 624 628 625 err_pci_regions: 629 626 pci_disable_device(pdev); ··· 639 642 pci_iounmap(pdev, ndev->peer_spad_reg); 640 643 pci_iounmap(pdev, ndev->db_reg); 641 644 642 - pci_clear_master(pdev); 643 645 pci_release_regions(pdev); 644 646 pci_disable_device(pdev); 645 647 pci_set_drvdata(pdev, NULL);
+11 -13
drivers/ntb/hw/idt/ntb_hw_idt.c
··· 2651 2651 } 2652 2652 2653 2653 /* 2654 - * Enable the device advanced error reporting. It's not critical to 2654 + * The PCI core enables device error reporting. It's not critical to 2655 2655 * have AER disabled in the kernel. 2656 + * 2657 + * Cleanup nonfatal error status before getting to init. 2656 2658 */ 2657 - ret = pci_enable_pcie_error_reporting(pdev); 2658 - if (ret != 0) 2659 - dev_warn(&pdev->dev, "PCIe AER capability disabled\n"); 2660 - else /* Cleanup nonfatal error status before getting to init */ 2661 - pci_aer_clear_nonfatal_status(pdev); 2659 + pci_aer_clear_nonfatal_status(pdev); 2662 2660 2663 2661 /* First enable the PCI device */ 2664 2662 ret = pcim_enable_device(pdev); 2665 2663 if (ret != 0) { 2666 2664 dev_err(&pdev->dev, "Failed to enable PCIe device\n"); 2667 - goto err_disable_aer; 2665 + return ret; 2668 2666 } 2669 2667 2670 2668 /* ··· 2690 2692 2691 2693 err_clear_master: 2692 2694 pci_clear_master(pdev); 2693 - err_disable_aer: 2694 - (void)pci_disable_pcie_error_reporting(pdev); 2695 2695 2696 2696 return ret; 2697 2697 } ··· 2709 2713 2710 2714 /* Clear the bus master disabling the Request TLPs translation */ 2711 2715 pci_clear_master(pdev); 2712 - 2713 - /* Disable the AER capability */ 2714 - (void)pci_disable_pcie_error_reporting(pdev); 2715 2716 2716 2717 dev_dbg(&pdev->dev, "NT-function PCIe interface cleared"); 2717 2718 } ··· 2884 2891 2885 2892 static int __init idt_pci_driver_init(void) 2886 2893 { 2894 + int ret; 2887 2895 pr_info("%s %s\n", NTB_DESC, NTB_VER); 2888 2896 2889 2897 /* Create the top DebugFS directory if the FS is initialized */ ··· 2892 2898 dbgfs_topdir = debugfs_create_dir(KBUILD_MODNAME, NULL); 2893 2899 2894 2900 /* Register the NTB hardware driver to handle the PCI device */ 2895 - return pci_register_driver(&idt_pci_driver); 2901 + ret = pci_register_driver(&idt_pci_driver); 2902 + if (ret) 2903 + debugfs_remove_recursive(dbgfs_topdir); 2904 + 2905 + return ret; 2896 2906 } 2897 2907 module_init(idt_pci_driver_init); 2898 2908
+6 -3
drivers/ntb/hw/intel/ntb_hw_gen1.c
··· 1791 1791 1792 1792 err_mmio: 1793 1793 err_dma_mask: 1794 - pci_clear_master(pdev); 1795 1794 pci_release_regions(pdev); 1796 1795 err_pci_regions: 1797 1796 pci_disable_device(pdev); ··· 1807 1808 pci_iounmap(pdev, ndev->peer_mmio); 1808 1809 pci_iounmap(pdev, ndev->self_mmio); 1809 1810 1810 - pci_clear_master(pdev); 1811 1811 pci_release_regions(pdev); 1812 1812 pci_disable_device(pdev); 1813 1813 pci_set_drvdata(pdev, NULL); ··· 2062 2064 2063 2065 static int __init intel_ntb_pci_driver_init(void) 2064 2066 { 2067 + int ret; 2065 2068 pr_info("%s %s\n", NTB_DESC, NTB_VER); 2066 2069 2067 2070 if (debugfs_initialized()) 2068 2071 debugfs_dir = debugfs_create_dir(KBUILD_MODNAME, NULL); 2069 2072 2070 - return pci_register_driver(&intel_ntb_pci_driver); 2073 + ret = pci_register_driver(&intel_ntb_pci_driver); 2074 + if (ret) 2075 + debugfs_remove_recursive(debugfs_dir); 2076 + 2077 + return ret; 2071 2078 } 2072 2079 module_init(intel_ntb_pci_driver_init); 2073 2080
+1 -1
drivers/ntb/ntb_transport.c
··· 410 410 411 411 rc = device_register(dev); 412 412 if (rc) { 413 - kfree(client_dev); 413 + put_device(dev); 414 414 goto err; 415 415 } 416 416
+2
drivers/ntb/test/ntb_tool.c
··· 998 998 tc->peers[pidx].outmws = 999 999 devm_kcalloc(&tc->ntb->dev, tc->peers[pidx].outmw_cnt, 1000 1000 sizeof(*tc->peers[pidx].outmws), GFP_KERNEL); 1001 + if (tc->peers[pidx].outmws == NULL) 1002 + return -ENOMEM; 1001 1003 1002 1004 for (widx = 0; widx < tc->peers[pidx].outmw_cnt; widx++) { 1003 1005 tc->peers[pidx].outmws[widx].pidx = pidx;
+1
drivers/pci/endpoint/functions/pci-epf-vntb.c
··· 1285 1285 return 0; 1286 1286 1287 1287 err_register_dev: 1288 + put_device(&ndev->ntb.dev); 1288 1289 return -EINVAL; 1289 1290 } 1290 1291