1. Add the RTASE entry in the Kconfig.
2. Add the CONFIG_RTASE entry in the Makefile.
Signed-off-by: Justin Lai <[email protected]>
---
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
+ 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/
--
2.34.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 <[email protected]>
> ---
> 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
>
>
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/[email protected]/config)
compiler: loongarch64-linux-gcc (GCC) 13.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240504/[email protected]/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 <[email protected]>
| Closes: https://lore.kernel.org/oe-kbuild-all/[email protected]/
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
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
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/[email protected]/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/[email protected]/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 <[email protected]>
| Closes: https://lore.kernel.org/oe-kbuild-all/[email protected]/
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
> 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 <[email protected]>
> > ---
> > 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
> >
> >
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%40realtekc
> 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
> [email protected]/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
> [email protected]/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 <[email protected]>
> | 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
> 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 <[email protected]>
> > ---
> > 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
> >
> >
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 <[email protected]>
> > > ---
> > > 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.