diff mbox series

[net-next,v17,12/13] realtek: Update the Makefile and Kconfig in the realtek folder

Message ID 20240502091847.65181-13-justinlai0215@realtek.com (mailing list archive)
State Superseded
Delegated to: Netdev Maintainers
Headers show
Series Add Realtek automotive PCIe driver | expand

Checks

Context Check Description
netdev/tree_selection success Clearly marked for net-next, async
netdev/apply fail Patch does not apply to net-next-1

Commit Message

Justin Lai May 2, 2024, 9:18 a.m. UTC
1. Add the RTASE entry in the Kconfig.
2. Add the CONFIG_RTASE entry in the Makefile.

Signed-off-by: Justin Lai <justinlai0215@realtek.com>
---
 drivers/net/ethernet/realtek/Kconfig  | 17 +++++++++++++++++
 drivers/net/ethernet/realtek/Makefile |  1 +
 2 files changed, 18 insertions(+)

Comments

Simon Horman May 3, 2024, 8:35 a.m. UTC | #1
On Thu, May 02, 2024 at 05:18:46PM +0800, Justin Lai wrote:
> 1. Add the RTASE entry in the Kconfig.
> 2. Add the CONFIG_RTASE entry in the Makefile.
> 
> Signed-off-by: Justin Lai <justinlai0215@realtek.com>
> ---
>  drivers/net/ethernet/realtek/Kconfig  | 17 +++++++++++++++++
>  drivers/net/ethernet/realtek/Makefile |  1 +
>  2 files changed, 18 insertions(+)
> 
> diff --git a/drivers/net/ethernet/realtek/Kconfig b/drivers/net/ethernet/realtek/Kconfig
> index 93d9df55b361..57ef924deebd 100644
> --- a/drivers/net/ethernet/realtek/Kconfig
> +++ b/drivers/net/ethernet/realtek/Kconfig
> @@ -113,4 +113,21 @@ config R8169
>  	  To compile this driver as a module, choose M here: the module
>  	  will be called r8169.  This is recommended.
>  
> +config RTASE
> +	tristate "Realtek Automotive Switch 9054/9068/9072/9075/9068/9071 PCIe Interface support"
> +	depends on PCI
> +	select CRC32

Hi Justin,

I believe that you also need:

	select PAGE_POOL

As the driver uses page_pool_alloc_pages()

FWIIW, I observed this when using a config based on make tinyconfig with
PCI and NET enabled, all WiFi drivers disabled, and only and only this Ethernet
driver enabled.

> +	help
> +	  Say Y here if you have a Realtek Ethernet adapter belonging to
> +	  the following families:
> +	  RTL9054 5GBit Ethernet
> +	  RTL9068 5GBit Ethernet
> +	  RTL9072 5GBit Ethernet
> +	  RTL9075 5GBit Ethernet
> +	  RTL9068 5GBit Ethernet
> +	  RTL9071 5GBit Ethernet
> +
> +	  To compile this driver as a module, choose M here: the module
> +	  will be called rtase. This is recommended.

The advice above to chose Y and M seem to conflict.
Perhaps this can be edited somehow.

> +
>  endif # NET_VENDOR_REALTEK
> diff --git a/drivers/net/ethernet/realtek/Makefile b/drivers/net/ethernet/realtek/Makefile
> index 2e1d78b106b0..0c1c16f63e9a 100644
> --- a/drivers/net/ethernet/realtek/Makefile
> +++ b/drivers/net/ethernet/realtek/Makefile
> @@ -8,3 +8,4 @@ obj-$(CONFIG_8139TOO) += 8139too.o
>  obj-$(CONFIG_ATP) += atp.o
>  r8169-objs += r8169_main.o r8169_firmware.o r8169_phy_config.o
>  obj-$(CONFIG_R8169) += r8169.o
> +obj-$(CONFIG_RTASE) += rtase/
> -- 
> 2.34.1
> 
>
kernel test robot May 4, 2024, 1:39 p.m. UTC | #2
Hi Justin,

kernel test robot noticed the following build errors:

[auto build test ERROR on horms-ipvs/master]
[cannot apply to net-next/main linus/master v6.9-rc6 next-20240503]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Justin-Lai/rtase-Add-pci-table-supported-in-this-module/20240502-172835
base:   https://git.kernel.org/pub/scm/linux/kernel/git/horms/ipvs.git master
patch link:    https://lore.kernel.org/r/20240502091847.65181-13-justinlai0215%40realtek.com
patch subject: [PATCH net-next v17 12/13] realtek: Update the Makefile and Kconfig in the realtek folder
config: loongarch-allmodconfig (https://download.01.org/0day-ci/archive/20240504/202405042153.ugnyFsrz-lkp@intel.com/config)
compiler: loongarch64-linux-gcc (GCC) 13.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240504/202405042153.ugnyFsrz-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202405042153.ugnyFsrz-lkp@intel.com/

All errors (new ones prefixed by >>):

>> drivers/net/ethernet/realtek/rtase/rtase_main.c:67:10: fatal error: net/netdev_queues.h: No such file or directory
      67 | #include <net/netdev_queues.h>
         |          ^~~~~~~~~~~~~~~~~~~~~
   compilation terminated.


vim +67 drivers/net/ethernet/realtek/rtase/rtase_main.c

6c114677e472d0 Justin Lai 2024-05-02 @67  #include <net/netdev_queues.h>
6c114677e472d0 Justin Lai 2024-05-02  68  #include <net/page_pool/helpers.h>
6c114677e472d0 Justin Lai 2024-05-02  69  #include <net/pkt_cls.h>
6c114677e472d0 Justin Lai 2024-05-02  70
kernel test robot May 4, 2024, 6:01 p.m. UTC | #3
Hi Justin,

kernel test robot noticed the following build errors:

[auto build test ERROR on horms-ipvs/master]
[cannot apply to net-next/main linus/master v6.9-rc6 next-20240503]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Justin-Lai/rtase-Add-pci-table-supported-in-this-module/20240502-172835
base:   https://git.kernel.org/pub/scm/linux/kernel/git/horms/ipvs.git master
patch link:    https://lore.kernel.org/r/20240502091847.65181-13-justinlai0215%40realtek.com
patch subject: [PATCH net-next v17 12/13] realtek: Update the Makefile and Kconfig in the realtek folder
config: s390-allmodconfig (https://download.01.org/0day-ci/archive/20240505/202405050111.thv4v0Bl-lkp@intel.com/config)
compiler: clang version 19.0.0git (https://github.com/llvm/llvm-project 37ae4ad0eef338776c7e2cffb3896153d43dcd90)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240505/202405050111.thv4v0Bl-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202405050111.thv4v0Bl-lkp@intel.com/

All errors (new ones prefixed by >>):

   In file included from drivers/net/ethernet/realtek/rtase/rtase_main.c:47:
   In file included from include/linux/dma-mapping.h:7:
   In file included from include/linux/device.h:32:
   In file included from include/linux/device/driver.h:21:
   In file included from include/linux/module.h:19:
   In file included from include/linux/elf.h:6:
   In file included from arch/s390/include/asm/elf.h:173:
   In file included from arch/s390/include/asm/mmu_context.h:11:
   In file included from arch/s390/include/asm/pgalloc.h:18:
   In file included from include/linux/mm.h:1970:
   include/linux/vmstat.h:502:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
     502 |         return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
         |                            ~~~~~~~~~~~~~~~~~~~~~ ^
     503 |                            item];
         |                            ~~~~
   include/linux/vmstat.h:509:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
     509 |         return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
         |                            ~~~~~~~~~~~~~~~~~~~~~ ^
     510 |                            NR_VM_NUMA_EVENT_ITEMS +
         |                            ~~~~~~~~~~~~~~~~~~~~~~
   include/linux/vmstat.h:516:36: warning: arithmetic between different enumeration types ('enum node_stat_item' and 'enum lru_list') [-Wenum-enum-conversion]
     516 |         return node_stat_name(NR_LRU_BASE + lru) + 3; // skip "nr_"
         |                               ~~~~~~~~~~~ ^ ~~~
   include/linux/vmstat.h:521:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
     521 |         return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
         |                            ~~~~~~~~~~~~~~~~~~~~~ ^
     522 |                            NR_VM_NUMA_EVENT_ITEMS +
         |                            ~~~~~~~~~~~~~~~~~~~~~~
   include/linux/vmstat.h:530:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
     530 |         return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
         |                            ~~~~~~~~~~~~~~~~~~~~~ ^
     531 |                            NR_VM_NUMA_EVENT_ITEMS +
         |                            ~~~~~~~~~~~~~~~~~~~~~~
   In file included from drivers/net/ethernet/realtek/rtase/rtase_main.c:47:
   In file included from include/linux/dma-mapping.h:10:
   In file included from include/linux/scatterlist.h:9:
   In file included from arch/s390/include/asm/io.h:75:
   include/asm-generic/io.h:547:31: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
     547 |         val = __raw_readb(PCI_IOBASE + addr);
         |                           ~~~~~~~~~~ ^
   include/asm-generic/io.h:560:61: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
     560 |         val = __le16_to_cpu((__le16 __force)__raw_readw(PCI_IOBASE + addr));
         |                                                         ~~~~~~~~~~ ^
   include/uapi/linux/byteorder/big_endian.h:37:59: note: expanded from macro '__le16_to_cpu'
      37 | #define __le16_to_cpu(x) __swab16((__force __u16)(__le16)(x))
         |                                                           ^
   include/uapi/linux/swab.h:102:54: note: expanded from macro '__swab16'
     102 | #define __swab16(x) (__u16)__builtin_bswap16((__u16)(x))
         |                                                      ^
   In file included from drivers/net/ethernet/realtek/rtase/rtase_main.c:47:
   In file included from include/linux/dma-mapping.h:10:
   In file included from include/linux/scatterlist.h:9:
   In file included from arch/s390/include/asm/io.h:75:
   include/asm-generic/io.h:573:61: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
     573 |         val = __le32_to_cpu((__le32 __force)__raw_readl(PCI_IOBASE + addr));
         |                                                         ~~~~~~~~~~ ^
   include/uapi/linux/byteorder/big_endian.h:35:59: note: expanded from macro '__le32_to_cpu'
      35 | #define __le32_to_cpu(x) __swab32((__force __u32)(__le32)(x))
         |                                                           ^
   include/uapi/linux/swab.h:115:54: note: expanded from macro '__swab32'
     115 | #define __swab32(x) (__u32)__builtin_bswap32((__u32)(x))
         |                                                      ^
   In file included from drivers/net/ethernet/realtek/rtase/rtase_main.c:47:
   In file included from include/linux/dma-mapping.h:10:
   In file included from include/linux/scatterlist.h:9:
   In file included from arch/s390/include/asm/io.h:75:
   include/asm-generic/io.h:584:33: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
     584 |         __raw_writeb(value, PCI_IOBASE + addr);
         |                             ~~~~~~~~~~ ^
   include/asm-generic/io.h:594:59: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
     594 |         __raw_writew((u16 __force)cpu_to_le16(value), PCI_IOBASE + addr);
         |                                                       ~~~~~~~~~~ ^
   include/asm-generic/io.h:604:59: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
     604 |         __raw_writel((u32 __force)cpu_to_le32(value), PCI_IOBASE + addr);
         |                                                       ~~~~~~~~~~ ^
   include/asm-generic/io.h:692:20: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
     692 |         readsb(PCI_IOBASE + addr, buffer, count);
         |                ~~~~~~~~~~ ^
   include/asm-generic/io.h:700:20: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
     700 |         readsw(PCI_IOBASE + addr, buffer, count);
         |                ~~~~~~~~~~ ^
   include/asm-generic/io.h:708:20: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
     708 |         readsl(PCI_IOBASE + addr, buffer, count);
         |                ~~~~~~~~~~ ^
   include/asm-generic/io.h:717:21: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
     717 |         writesb(PCI_IOBASE + addr, buffer, count);
         |                 ~~~~~~~~~~ ^
   include/asm-generic/io.h:726:21: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
     726 |         writesw(PCI_IOBASE + addr, buffer, count);
         |                 ~~~~~~~~~~ ^
   include/asm-generic/io.h:735:21: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
     735 |         writesl(PCI_IOBASE + addr, buffer, count);
         |                 ~~~~~~~~~~ ^
>> drivers/net/ethernet/realtek/rtase/rtase_main.c:67:10: fatal error: 'net/netdev_queues.h' file not found
      67 | #include <net/netdev_queues.h>
         |          ^~~~~~~~~~~~~~~~~~~~~
   17 warnings and 1 error generated.


vim +67 drivers/net/ethernet/realtek/rtase/rtase_main.c

6c114677e472d0 Justin Lai 2024-05-02 @67  #include <net/netdev_queues.h>
6c114677e472d0 Justin Lai 2024-05-02  68  #include <net/page_pool/helpers.h>
6c114677e472d0 Justin Lai 2024-05-02  69  #include <net/pkt_cls.h>
6c114677e472d0 Justin Lai 2024-05-02  70
Justin Lai May 6, 2024, 2:59 a.m. UTC | #4
> On Thu, May 02, 2024 at 05:18:46PM +0800, Justin Lai wrote:
> > 1. Add the RTASE entry in the Kconfig.
> > 2. Add the CONFIG_RTASE entry in the Makefile.
> >
> > Signed-off-by: Justin Lai <justinlai0215@realtek.com>
> > ---
> >  drivers/net/ethernet/realtek/Kconfig  | 17 +++++++++++++++++
> > drivers/net/ethernet/realtek/Makefile |  1 +
> >  2 files changed, 18 insertions(+)
> >
> > diff --git a/drivers/net/ethernet/realtek/Kconfig
> > b/drivers/net/ethernet/realtek/Kconfig
> > index 93d9df55b361..57ef924deebd 100644
> > --- a/drivers/net/ethernet/realtek/Kconfig
> > +++ b/drivers/net/ethernet/realtek/Kconfig
> > @@ -113,4 +113,21 @@ config R8169
> >         To compile this driver as a module, choose M here: the module
> >         will be called r8169.  This is recommended.
> >
> > +config RTASE
> > +     tristate "Realtek Automotive Switch
> 9054/9068/9072/9075/9068/9071 PCIe Interface support"
> > +     depends on PCI
> > +     select CRC32
> 
> Hi Justin,
> 
> I believe that you also need:
> 
>         select PAGE_POOL
> 
> As the driver uses page_pool_alloc_pages()
> 
> FWIIW, I observed this when using a config based on make tinyconfig with PCI
> and NET enabled, all WiFi drivers disabled, and only and only this Ethernet
> driver enabled.

Thank you for your feedback, I will modify this part.
> 
> > +     help
> > +       Say Y here if you have a Realtek Ethernet adapter belonging to
> > +       the following families:
> > +       RTL9054 5GBit Ethernet
> > +       RTL9068 5GBit Ethernet
> > +       RTL9072 5GBit Ethernet
> > +       RTL9075 5GBit Ethernet
> > +       RTL9068 5GBit Ethernet
> > +       RTL9071 5GBit Ethernet
> > +
> > +       To compile this driver as a module, choose M here: the module
> > +       will be called rtase. This is recommended.
> 
> The advice above to chose Y and M seem to conflict.
> Perhaps this can be edited somehow.
> 

I will confirm and modify this part again, thank you for your suggestion.
> > +
> >  endif # NET_VENDOR_REALTEK
> > diff --git a/drivers/net/ethernet/realtek/Makefile
> > b/drivers/net/ethernet/realtek/Makefile
> > index 2e1d78b106b0..0c1c16f63e9a 100644
> > --- a/drivers/net/ethernet/realtek/Makefile
> > +++ b/drivers/net/ethernet/realtek/Makefile
> > @@ -8,3 +8,4 @@ obj-$(CONFIG_8139TOO) += 8139too.o
> >  obj-$(CONFIG_ATP) += atp.o
> >  r8169-objs += r8169_main.o r8169_firmware.o r8169_phy_config.o
> >  obj-$(CONFIG_R8169) += r8169.o
> > +obj-$(CONFIG_RTASE) += rtase/
> > --
> > 2.34.1
> >
> >
Justin Lai May 6, 2024, 11:39 a.m. UTC | #5
The problem this time seems to be caused by me not doing a rebase.
I will modify the reviewer's suggestions in the next version and re-upload
the next version after rebase.

> Hi Justin,
> 
> kernel test robot noticed the following build errors:
> 
> [auto build test ERROR on horms-ipvs/master] [cannot apply to net-next/main
> linus/master v6.9-rc6 next-20240503] [If your patch is applied to the wrong git
> tree, kindly drop us a note.
> And when submitting patch, we suggest to use '--base' as documented in
> https://git-scm.com/docs/git-format-patch#_base_tree_information]
> 
> url:
> https://github.com/intel-lab-lkp/linux/commits/Justin-Lai/rtase-Add-pci-table-s
> upported-in-this-module/20240502-172835
> base:   https://git.kernel.org/pub/scm/linux/kernel/git/horms/ipvs.git master
> patch link:
> https://lore.kernel.org/r/20240502091847.65181-13-justinlai0215%40realtek.c
> om
> patch subject: [PATCH net-next v17 12/13] realtek: Update the Makefile and
> Kconfig in the realtek folder
> config: s390-allmodconfig
> (https://download.01.org/0day-ci/archive/20240505/202405050111.thv4v0Bl-l
> kp@intel.com/config)
> compiler: clang version 19.0.0git (https://github.com/llvm/llvm-project
> 37ae4ad0eef338776c7e2cffb3896153d43dcd90)
> reproduce (this is a W=1 build):
> (https://download.01.org/0day-ci/archive/20240505/202405050111.thv4v0Bl-l
> kp@intel.com/reproduce)
> 
> If you fix the issue in a separate patch/commit (i.e. not just a new version of
> the same patch/commit), kindly add following tags
> | Reported-by: kernel test robot <lkp@intel.com>
> | Closes:
> | https://lore.kernel.org/oe-kbuild-all/202405050111.thv4v0Bl-lkp@intel.
> | com/
> 
> All errors (new ones prefixed by >>):
> 
>    In file included from drivers/net/ethernet/realtek/rtase/rtase_main.c:47:
>    In file included from include/linux/dma-mapping.h:7:
>    In file included from include/linux/device.h:32:
>    In file included from include/linux/device/driver.h:21:
>    In file included from include/linux/module.h:19:
>    In file included from include/linux/elf.h:6:
>    In file included from arch/s390/include/asm/elf.h:173:
>    In file included from arch/s390/include/asm/mmu_context.h:11:
>    In file included from arch/s390/include/asm/pgalloc.h:18:
>    In file included from include/linux/mm.h:1970:
>    include/linux/vmstat.h:502:43: warning: arithmetic between different
> enumeration types ('enum zone_stat_item' and 'enum numa_stat_item')
> [-Wenum-enum-conversion]
>      502 |         return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
>          |                            ~~~~~~~~~~~~~~~~~~~~~ ^
>      503 |                            item];
>          |                            ~~~~
>    include/linux/vmstat.h:509:43: warning: arithmetic between different
> enumeration types ('enum zone_stat_item' and 'enum numa_stat_item')
> [-Wenum-enum-conversion]
>      509 |         return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
>          |                            ~~~~~~~~~~~~~~~~~~~~~ ^
>      510 |                            NR_VM_NUMA_EVENT_ITEMS +
>          |                            ~~~~~~~~~~~~~~~~~~~~~~
>    include/linux/vmstat.h:516:36: warning: arithmetic between different
> enumeration types ('enum node_stat_item' and 'enum lru_list')
> [-Wenum-enum-conversion]
>      516 |         return node_stat_name(NR_LRU_BASE + lru) + 3; // skip
> "nr_"
>          |                               ~~~~~~~~~~~ ^ ~~~
>    include/linux/vmstat.h:521:43: warning: arithmetic between different
> enumeration types ('enum zone_stat_item' and 'enum numa_stat_item')
> [-Wenum-enum-conversion]
>      521 |         return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
>          |                            ~~~~~~~~~~~~~~~~~~~~~ ^
>      522 |                            NR_VM_NUMA_EVENT_ITEMS +
>          |                            ~~~~~~~~~~~~~~~~~~~~~~
>    include/linux/vmstat.h:530:43: warning: arithmetic between different
> enumeration types ('enum zone_stat_item' and 'enum numa_stat_item')
> [-Wenum-enum-conversion]
>      530 |         return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
>          |                            ~~~~~~~~~~~~~~~~~~~~~ ^
>      531 |                            NR_VM_NUMA_EVENT_ITEMS +
>          |                            ~~~~~~~~~~~~~~~~~~~~~~
>    In file included from drivers/net/ethernet/realtek/rtase/rtase_main.c:47:
>    In file included from include/linux/dma-mapping.h:10:
>    In file included from include/linux/scatterlist.h:9:
>    In file included from arch/s390/include/asm/io.h:75:
>    include/asm-generic/io.h:547:31: warning: performing pointer arithmetic
> on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
>      547 |         val = __raw_readb(PCI_IOBASE + addr);
>          |                           ~~~~~~~~~~ ^
>    include/asm-generic/io.h:560:61: warning: performing pointer arithmetic
> on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
>      560 |         val = __le16_to_cpu((__le16
> __force)__raw_readw(PCI_IOBASE + addr));
>          |
> ~~~~~~~~~~ ^
>    include/uapi/linux/byteorder/big_endian.h:37:59: note: expanded from
> macro '__le16_to_cpu'
>       37 | #define __le16_to_cpu(x) __swab16((__force __u16)(__le16)(x))
>          |
> ^
>    include/uapi/linux/swab.h:102:54: note: expanded from macro '__swab16'
>      102 | #define __swab16(x) (__u16)__builtin_bswap16((__u16)(x))
>          |
> ^
>    In file included from drivers/net/ethernet/realtek/rtase/rtase_main.c:47:
>    In file included from include/linux/dma-mapping.h:10:
>    In file included from include/linux/scatterlist.h:9:
>    In file included from arch/s390/include/asm/io.h:75:
>    include/asm-generic/io.h:573:61: warning: performing pointer arithmetic
> on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
>      573 |         val = __le32_to_cpu((__le32
> __force)__raw_readl(PCI_IOBASE + addr));
>          |
> ~~~~~~~~~~ ^
>    include/uapi/linux/byteorder/big_endian.h:35:59: note: expanded from
> macro '__le32_to_cpu'
>       35 | #define __le32_to_cpu(x) __swab32((__force __u32)(__le32)(x))
>          |
> ^
>    include/uapi/linux/swab.h:115:54: note: expanded from macro '__swab32'
>      115 | #define __swab32(x) (__u32)__builtin_bswap32((__u32)(x))
>          |
> ^
>    In file included from drivers/net/ethernet/realtek/rtase/rtase_main.c:47:
>    In file included from include/linux/dma-mapping.h:10:
>    In file included from include/linux/scatterlist.h:9:
>    In file included from arch/s390/include/asm/io.h:75:
>    include/asm-generic/io.h:584:33: warning: performing pointer arithmetic
> on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
>      584 |         __raw_writeb(value, PCI_IOBASE + addr);
>          |                             ~~~~~~~~~~ ^
>    include/asm-generic/io.h:594:59: warning: performing pointer arithmetic
> on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
>      594 |         __raw_writew((u16 __force)cpu_to_le16(value),
> PCI_IOBASE + addr);
>          |
> ~~~~~~~~~~ ^
>    include/asm-generic/io.h:604:59: warning: performing pointer arithmetic
> on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
>      604 |         __raw_writel((u32 __force)cpu_to_le32(value),
> PCI_IOBASE + addr);
>          |
> ~~~~~~~~~~ ^
>    include/asm-generic/io.h:692:20: warning: performing pointer arithmetic
> on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
>      692 |         readsb(PCI_IOBASE + addr, buffer, count);
>          |                ~~~~~~~~~~ ^
>    include/asm-generic/io.h:700:20: warning: performing pointer arithmetic
> on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
>      700 |         readsw(PCI_IOBASE + addr, buffer, count);
>          |                ~~~~~~~~~~ ^
>    include/asm-generic/io.h:708:20: warning: performing pointer arithmetic
> on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
>      708 |         readsl(PCI_IOBASE + addr, buffer, count);
>          |                ~~~~~~~~~~ ^
>    include/asm-generic/io.h:717:21: warning: performing pointer arithmetic
> on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
>      717 |         writesb(PCI_IOBASE + addr, buffer, count);
>          |                 ~~~~~~~~~~ ^
>    include/asm-generic/io.h:726:21: warning: performing pointer arithmetic
> on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
>      726 |         writesw(PCI_IOBASE + addr, buffer, count);
>          |                 ~~~~~~~~~~ ^
>    include/asm-generic/io.h:735:21: warning: performing pointer arithmetic
> on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
>      735 |         writesl(PCI_IOBASE + addr, buffer, count);
>          |                 ~~~~~~~~~~ ^
> >> drivers/net/ethernet/realtek/rtase/rtase_main.c:67:10: fatal error:
> >> 'net/netdev_queues.h' file not found
>       67 | #include <net/netdev_queues.h>
>          |          ^~~~~~~~~~~~~~~~~~~~~
>    17 warnings and 1 error generated.
> 
> 
> vim +67 drivers/net/ethernet/realtek/rtase/rtase_main.c
> 
> 6c114677e472d0 Justin Lai 2024-05-02 @67  #include
> <net/netdev_queues.h>
> 6c114677e472d0 Justin Lai 2024-05-02  68  #include
> <net/page_pool/helpers.h>
> 6c114677e472d0 Justin Lai 2024-05-02  69  #include <net/pkt_cls.h>
> 6c114677e472d0 Justin Lai 2024-05-02  70
> 
> --
> 0-DAY CI Kernel Test Service
> https://github.com/intel/lkp-tests/wiki
Justin Lai May 7, 2024, 9:44 a.m. UTC | #6
> On Thu, May 02, 2024 at 05:18:46PM +0800, Justin Lai wrote:
> > 1. Add the RTASE entry in the Kconfig.
> > 2. Add the CONFIG_RTASE entry in the Makefile.
> >
> > Signed-off-by: Justin Lai <justinlai0215@realtek.com>
> > ---
> >  drivers/net/ethernet/realtek/Kconfig  | 17 +++++++++++++++++
> > drivers/net/ethernet/realtek/Makefile |  1 +
> >  2 files changed, 18 insertions(+)
> >
> > diff --git a/drivers/net/ethernet/realtek/Kconfig
> > b/drivers/net/ethernet/realtek/Kconfig
> > index 93d9df55b361..57ef924deebd 100644
> > --- a/drivers/net/ethernet/realtek/Kconfig
> > +++ b/drivers/net/ethernet/realtek/Kconfig
> > @@ -113,4 +113,21 @@ config R8169
> >         To compile this driver as a module, choose M here: the module
> >         will be called r8169.  This is recommended.
> >
> > +config RTASE
> > +     tristate "Realtek Automotive Switch
> 9054/9068/9072/9075/9068/9071 PCIe Interface support"
> > +     depends on PCI
> > +     select CRC32
> 
> Hi Justin,
> 
> I believe that you also need:
> 
>         select PAGE_POOL
> 
> As the driver uses page_pool_alloc_pages()
> 
> FWIIW, I observed this when using a config based on make tinyconfig with PCI
> and NET enabled, all WiFi drivers disabled, and only and only this Ethernet
> driver enabled.
> 
> > +     help
> > +       Say Y here if you have a Realtek Ethernet adapter belonging to
> > +       the following families:
> > +       RTL9054 5GBit Ethernet
> > +       RTL9068 5GBit Ethernet
> > +       RTL9072 5GBit Ethernet
> > +       RTL9075 5GBit Ethernet
> > +       RTL9068 5GBit Ethernet
> > +       RTL9071 5GBit Ethernet
> > +
> > +       To compile this driver as a module, choose M here: the module
> > +       will be called rtase. This is recommended.
> 
> The advice above to chose Y and M seem to conflict.
> Perhaps this can be edited somehow.
> 

Hi Simon,
I would like to ask if it would be clearer if I changed it to the following?

config RTASE
	tristate "Realtek Automotive Switch 9054/9068/9072/9075/9068/9071 PCIe Interface support"
	depends on PCI
	select CRC32
	select PAGE_POOL
	help
	  Say Y here and it will be compiled and linked with the kernel
	  if you have a Realtek Ethernet adapter belonging to the
	  following families:
	  RTL9054 5GBit Ethernet
	  RTL9068 5GBit Ethernet
	  RTL9072 5GBit Ethernet
	  RTL9075 5GBit Ethernet
	  RTL9068 5GBit Ethernet
	  RTL9071 5GBit Ethernet
 
	  To compile this driver as a module, choose M here: the module
	  will be called rtase. This is recommended.
> > +
> >  endif # NET_VENDOR_REALTEK
> > diff --git a/drivers/net/ethernet/realtek/Makefile
> > b/drivers/net/ethernet/realtek/Makefile
> > index 2e1d78b106b0..0c1c16f63e9a 100644
> > --- a/drivers/net/ethernet/realtek/Makefile
> > +++ b/drivers/net/ethernet/realtek/Makefile
> > @@ -8,3 +8,4 @@ obj-$(CONFIG_8139TOO) += 8139too.o
> >  obj-$(CONFIG_ATP) += atp.o
> >  r8169-objs += r8169_main.o r8169_firmware.o r8169_phy_config.o
> >  obj-$(CONFIG_R8169) += r8169.o
> > +obj-$(CONFIG_RTASE) += rtase/
> > --
> > 2.34.1
> >
> >
Simon Horman May 8, 2024, 8:40 a.m. UTC | #7
On Tue, May 07, 2024 at 09:44:14AM +0000, Justin Lai wrote:
> > On Thu, May 02, 2024 at 05:18:46PM +0800, Justin Lai wrote:
> > > 1. Add the RTASE entry in the Kconfig.
> > > 2. Add the CONFIG_RTASE entry in the Makefile.
> > >
> > > Signed-off-by: Justin Lai <justinlai0215@realtek.com>
> > > ---
> > >  drivers/net/ethernet/realtek/Kconfig  | 17 +++++++++++++++++
> > > drivers/net/ethernet/realtek/Makefile |  1 +
> > >  2 files changed, 18 insertions(+)
> > >
> > > diff --git a/drivers/net/ethernet/realtek/Kconfig
> > > b/drivers/net/ethernet/realtek/Kconfig
> > > index 93d9df55b361..57ef924deebd 100644
> > > --- a/drivers/net/ethernet/realtek/Kconfig
> > > +++ b/drivers/net/ethernet/realtek/Kconfig
> > > @@ -113,4 +113,21 @@ config R8169
> > >         To compile this driver as a module, choose M here: the module
> > >         will be called r8169.  This is recommended.
> > >
> > > +config RTASE
> > > +     tristate "Realtek Automotive Switch
> > 9054/9068/9072/9075/9068/9071 PCIe Interface support"
> > > +     depends on PCI
> > > +     select CRC32
> > 
> > Hi Justin,
> > 
> > I believe that you also need:
> > 
> >         select PAGE_POOL
> > 
> > As the driver uses page_pool_alloc_pages()
> > 
> > FWIIW, I observed this when using a config based on make tinyconfig with PCI
> > and NET enabled, all WiFi drivers disabled, and only and only this Ethernet
> > driver enabled.
> > 
> > > +     help
> > > +       Say Y here if you have a Realtek Ethernet adapter belonging to
> > > +       the following families:
> > > +       RTL9054 5GBit Ethernet
> > > +       RTL9068 5GBit Ethernet
> > > +       RTL9072 5GBit Ethernet
> > > +       RTL9075 5GBit Ethernet
> > > +       RTL9068 5GBit Ethernet
> > > +       RTL9071 5GBit Ethernet
> > > +
> > > +       To compile this driver as a module, choose M here: the module
> > > +       will be called rtase. This is recommended.
> > 
> > The advice above to chose Y and M seem to conflict.
> > Perhaps this can be edited somehow.
> > 
> 
> Hi Simon,
> I would like to ask if it would be clearer if I changed it to the following?
> 
> config RTASE
> 	tristate "Realtek Automotive Switch 9054/9068/9072/9075/9068/9071 PCIe Interface support"
> 	depends on PCI
> 	select CRC32
> 	select PAGE_POOL
> 	help
> 	  Say Y here and it will be compiled and linked with the kernel
> 	  if you have a Realtek Ethernet adapter belonging to the
> 	  following families:
> 	  RTL9054 5GBit Ethernet
> 	  RTL9068 5GBit Ethernet
> 	  RTL9072 5GBit Ethernet
> 	  RTL9075 5GBit Ethernet
> 	  RTL9068 5GBit Ethernet
> 	  RTL9071 5GBit Ethernet
>  
> 	  To compile this driver as a module, choose M here: the module
> 	  will be called rtase. This is recommended.

Thanks Justin,

Yes, I think that addresses my concern.
diff mbox series

Patch

diff --git a/drivers/net/ethernet/realtek/Kconfig b/drivers/net/ethernet/realtek/Kconfig
index 93d9df55b361..57ef924deebd 100644
--- a/drivers/net/ethernet/realtek/Kconfig
+++ b/drivers/net/ethernet/realtek/Kconfig
@@ -113,4 +113,21 @@  config R8169
 	  To compile this driver as a module, choose M here: the module
 	  will be called r8169.  This is recommended.
 
+config RTASE
+	tristate "Realtek Automotive Switch 9054/9068/9072/9075/9068/9071 PCIe Interface support"
+	depends on PCI
+	select CRC32
+	help
+	  Say Y here if you have a Realtek Ethernet adapter belonging to
+	  the following families:
+	  RTL9054 5GBit Ethernet
+	  RTL9068 5GBit Ethernet
+	  RTL9072 5GBit Ethernet
+	  RTL9075 5GBit Ethernet
+	  RTL9068 5GBit Ethernet
+	  RTL9071 5GBit Ethernet
+
+	  To compile this driver as a module, choose M here: the module
+	  will be called rtase. This is recommended.
+
 endif # NET_VENDOR_REALTEK
diff --git a/drivers/net/ethernet/realtek/Makefile b/drivers/net/ethernet/realtek/Makefile
index 2e1d78b106b0..0c1c16f63e9a 100644
--- a/drivers/net/ethernet/realtek/Makefile
+++ b/drivers/net/ethernet/realtek/Makefile
@@ -8,3 +8,4 @@  obj-$(CONFIG_8139TOO) += 8139too.o
 obj-$(CONFIG_ATP) += atp.o
 r8169-objs += r8169_main.o r8169_firmware.o r8169_phy_config.o
 obj-$(CONFIG_R8169) += r8169.o
+obj-$(CONFIG_RTASE) += rtase/