Dong Yibo schrieb am Di 16. Sep, 19:29 (+0800):
> diff --git a/drivers/net/ethernet/mucse/rnpgbe/rnpgbe_main.c 
> b/drivers/net/ethernet/mucse/rnpgbe/rnpgbe_main.c
> index 60bbc806f17b..0afe39621661 100644
> --- a/drivers/net/ethernet/mucse/rnpgbe/rnpgbe_main.c
> +++ b/drivers/net/ethernet/mucse/rnpgbe/rnpgbe_main.c
> @@ -2,8 +2,11 @@
>  /* Copyright(c) 2020 - 2025 Mucse Corporation. */
>  
>  #include <linux/pci.h>
> +#include <net/rtnetlink.h>
> +#include <linux/etherdevice.h>
>  
>  #include "rnpgbe.h"
> +#include "rnpgbe_hw.h"
>  
>  static const char rnpgbe_driver_name[] = "rnpgbe";
>  
> @@ -25,6 +28,54 @@ static struct pci_device_id rnpgbe_pci_tbl[] = {
>       {0, },
>  };
>  
> +/**
> + * rnpgbe_add_adapter - Add netdev for this pci_dev
> + * @pdev: PCI device information structure
> + * @board_type: board type
> + *
> + * rnpgbe_add_adapter initializes a netdev for this pci_dev
> + * structure. Initializes Bar map, private structure, and a
> + * hardware reset occur.
> + *
> + * Return: 0 on success, negative errno on failure
> + **/
> +static int rnpgbe_add_adapter(struct pci_dev *pdev,
> +                           int board_type)
> +{
> +     struct net_device *netdev;
> +     void __iomem *hw_addr;
> +     struct mucse *mucse;
> +     struct mucse_hw *hw;
> +     int err;
> +
> +     netdev = alloc_etherdev_mq(sizeof(struct mucse), RNPGBE_MAX_QUEUES);
> +     if (!netdev)
> +             return -ENOMEM;
> +
> +     SET_NETDEV_DEV(netdev, &pdev->dev);
> +     mucse = netdev_priv(netdev);
> +     mucse->netdev = netdev;
> +     mucse->pdev = pdev;
> +     pci_set_drvdata(pdev, mucse);
> +
> +     hw = &mucse->hw;
> +     hw_addr = devm_ioremap(&pdev->dev,
> +                            pci_resource_start(pdev, 2),
> +                            pci_resource_len(pdev, 2));
> +     if (!hw_addr) {
> +             err = -EIO;
> +             goto err_free_net;
> +     }
> +
> +     hw->hw_addr = hw_addr;
> +
> +     return 0;
> +
> +err_free_net:
> +     free_netdev(netdev);
> +     return err;
> +}
> +
>  /**
>   * rnpgbe_probe - Device initialization routine
>   * @pdev: PCI device information struct
> @@ -37,6 +88,7 @@ static struct pci_device_id rnpgbe_pci_tbl[] = {
>   **/
>  static int rnpgbe_probe(struct pci_dev *pdev, const struct pci_device_id *id)
>  {
> +     int board_type = id->driver_data;
>       int err;
>  
>       err = pci_enable_device_mem(pdev);
> @@ -63,6 +115,9 @@ static int rnpgbe_probe(struct pci_dev *pdev, const struct 
> pci_device_id *id)
>               dev_err(&pdev->dev, "pci_save_state failed %d\n", err);
>               goto err_free_regions;
>       }
> +     err = rnpgbe_add_adapter(pdev, board_type);

Would an empty line before this assignment make the code more readable?



-- 
Professor: ‚Gott‘, unverständliches und mythisches Wesen, das sich einmal
  pro Woche im Kreis der Sterblichen manifestiert um Weisheit auf Folien
  unter das Volk zu bringen.            (Dschungelbuch 11, FSU Jena)

Attachment: signature.asc
Description: PGP signature

Reply via email to