* [PATCH net 1/3] ipvlan: const-specifier for functions that use iaddr
2026-01-20 16:18 [PATCH net 0/3] ipvlan: Deduplicate ipv4/ipv6 addr_validator_event code Dmitry Skorodumov
@ 2026-01-20 16:18 ` Dmitry Skorodumov
2026-01-20 16:18 ` [PATCH net 2/3] ipvlan: Common code from v6/v4 validator_event Dmitry Skorodumov
` (2 subsequent siblings)
3 siblings, 0 replies; 8+ messages in thread
From: Dmitry Skorodumov @ 2026-01-20 16:18 UTC (permalink / raw)
To: netdev, Dmitry Skorodumov, Jakub Kicinski, Kuniyuki Iwashima,
Paolo Abeni, Xiao Liang, Eric Dumazet, Ido Schimmel,
Guillaume Nault, Julian Vetter, Stanislav Fomichev, linux-kernel
Cc: Andrew Lunn, David S. Miller
Fix functions that accept "void *iaddr" as param to have
const-specifier.
Signed-off-by: Dmitry Skorodumov <skorodumov.dmitry@huawei.com>
---
drivers/net/ipvlan/ipvlan.h | 2 +-
drivers/net/ipvlan/ipvlan_core.c | 2 +-
drivers/net/ipvlan/ipvlan_main.c | 6 ++++--
3 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/drivers/net/ipvlan/ipvlan.h b/drivers/net/ipvlan/ipvlan.h
index 80f84fc87008..235e9218b1bb 100644
--- a/drivers/net/ipvlan/ipvlan.h
+++ b/drivers/net/ipvlan/ipvlan.h
@@ -159,7 +159,7 @@ int ipvlan_queue_xmit(struct sk_buff *skb, struct net_device *dev);
void ipvlan_ht_addr_add(struct ipvl_dev *ipvlan, struct ipvl_addr *addr);
struct ipvl_addr *ipvlan_find_addr(const struct ipvl_dev *ipvlan,
const void *iaddr, bool is_v6);
-bool ipvlan_addr_busy(struct ipvl_port *port, void *iaddr, bool is_v6);
+bool ipvlan_addr_busy(struct ipvl_port *port, const void *iaddr, bool is_v6);
void ipvlan_ht_addr_del(struct ipvl_addr *addr);
struct ipvl_addr *ipvlan_addr_lookup(struct ipvl_port *port, void *lyr3h,
int addr_type, bool use_dest);
diff --git a/drivers/net/ipvlan/ipvlan_core.c b/drivers/net/ipvlan/ipvlan_core.c
index bdb3a46b327c..6d22487010c0 100644
--- a/drivers/net/ipvlan/ipvlan_core.c
+++ b/drivers/net/ipvlan/ipvlan_core.c
@@ -118,7 +118,7 @@ struct ipvl_addr *ipvlan_find_addr(const struct ipvl_dev *ipvlan,
return NULL;
}
-bool ipvlan_addr_busy(struct ipvl_port *port, void *iaddr, bool is_v6)
+bool ipvlan_addr_busy(struct ipvl_port *port, const void *iaddr, bool is_v6)
{
struct ipvl_dev *ipvlan;
bool ret = false;
diff --git a/drivers/net/ipvlan/ipvlan_main.c b/drivers/net/ipvlan/ipvlan_main.c
index baccdad695fd..cf8c1ea78f4b 100644
--- a/drivers/net/ipvlan/ipvlan_main.c
+++ b/drivers/net/ipvlan/ipvlan_main.c
@@ -814,7 +814,8 @@ static int ipvlan_device_event(struct notifier_block *unused,
}
/* the caller must held the addrs lock */
-static int ipvlan_add_addr(struct ipvl_dev *ipvlan, void *iaddr, bool is_v6)
+static int ipvlan_add_addr(struct ipvl_dev *ipvlan, const void *iaddr,
+ bool is_v6)
{
struct ipvl_addr *addr;
@@ -846,7 +847,8 @@ static int ipvlan_add_addr(struct ipvl_dev *ipvlan, void *iaddr, bool is_v6)
return 0;
}
-static void ipvlan_del_addr(struct ipvl_dev *ipvlan, void *iaddr, bool is_v6)
+static void ipvlan_del_addr(struct ipvl_dev *ipvlan, const void *iaddr,
+ bool is_v6)
{
struct ipvl_addr *addr;
--
2.43.0
^ permalink raw reply related [flat|nested] 8+ messages in thread* [PATCH net 2/3] ipvlan: Common code from v6/v4 validator_event
2026-01-20 16:18 [PATCH net 0/3] ipvlan: Deduplicate ipv4/ipv6 addr_validator_event code Dmitry Skorodumov
2026-01-20 16:18 ` [PATCH net 1/3] ipvlan: const-specifier for functions that use iaddr Dmitry Skorodumov
@ 2026-01-20 16:18 ` Dmitry Skorodumov
2026-01-21 15:33 ` kernel test robot
2026-01-20 16:18 ` [PATCH net 3/3] ipvlan: common code to handle ipv6/ipv4 address events Dmitry Skorodumov
2026-01-20 18:59 ` [PATCH net 0/3] ipvlan: Deduplicate ipv4/ipv6 addr_validator_event code Jakub Kicinski
3 siblings, 1 reply; 8+ messages in thread
From: Dmitry Skorodumov @ 2026-01-20 16:18 UTC (permalink / raw)
To: netdev, Jakub Kicinski, Dmitry Skorodumov, Xiao Liang,
Kuniyuki Iwashima, Stanislav Fomichev, linux-kernel
Cc: Andrew Lunn, David S. Miller, Eric Dumazet, Paolo Abeni
Extract commond code for ipvlan_addr4_validator_event()/
ipvlan_addr6_validator_event() to own function.
Get rid of separate functions for xxx_validator_event()
and check whether we are called for ipv4 or ipv6 by
looking at "notifier_block *nblock" argument
Signed-off-by: Dmitry Skorodumov <skorodumov.dmitry@huawei.com>
---
drivers/net/ipvlan/ipvlan_main.c | 108 +++++++++++++++----------------
1 file changed, 54 insertions(+), 54 deletions(-)
diff --git a/drivers/net/ipvlan/ipvlan_main.c b/drivers/net/ipvlan/ipvlan_main.c
index cf8c1ea78f4b..dda891911ea4 100644
--- a/drivers/net/ipvlan/ipvlan_main.c
+++ b/drivers/net/ipvlan/ipvlan_main.c
@@ -878,6 +878,33 @@ static bool ipvlan_is_valid_dev(const struct net_device *dev)
return true;
}
+static int ipvlan_addr_validator_event(struct net_device *dev,
+ unsigned long event,
+ struct netlink_ext_ack *extack,
+ const void *iaddr,
+ bool is_v6)
+{
+ struct ipvl_dev *ipvlan = netdev_priv(dev);
+ int ret = NOTIFY_OK;
+
+ if (!ipvlan_is_valid_dev(dev))
+ return NOTIFY_DONE;
+
+ switch (event) {
+ case NETDEV_UP:
+ spin_lock_bh(&ipvlan->port->addrs_lock);
+ if (ipvlan_addr_busy(ipvlan->port, iaddr, is_v6)) {
+ NL_SET_ERR_MSG(extack,
+ "Address already assigned to an ipvlan device");
+ ret = notifier_from_errno(-EADDRINUSE);
+ }
+ spin_unlock_bh(&ipvlan->port->addrs_lock);
+ break;
+ }
+
+ return ret;
+}
+
#if IS_ENABLED(CONFIG_IPV6)
static int ipvlan_add_addr6(struct ipvl_dev *ipvlan, struct in6_addr *ip6_addr)
{
@@ -922,32 +949,6 @@ static int ipvlan_addr6_event(struct notifier_block *unused,
return NOTIFY_OK;
}
-
-static int ipvlan_addr6_validator_event(struct notifier_block *unused,
- unsigned long event, void *ptr)
-{
- struct in6_validator_info *i6vi = (struct in6_validator_info *)ptr;
- struct net_device *dev = (struct net_device *)i6vi->i6vi_dev->dev;
- struct ipvl_dev *ipvlan = netdev_priv(dev);
- int ret = NOTIFY_OK;
-
- if (!ipvlan_is_valid_dev(dev))
- return NOTIFY_DONE;
-
- switch (event) {
- case NETDEV_UP:
- spin_lock_bh(&ipvlan->port->addrs_lock);
- if (ipvlan_addr_busy(ipvlan->port, &i6vi->i6vi_addr, true)) {
- NL_SET_ERR_MSG(i6vi->extack,
- "Address already assigned to an ipvlan device");
- ret = notifier_from_errno(-EADDRINUSE);
- }
- spin_unlock_bh(&ipvlan->port->addrs_lock);
- break;
- }
-
- return ret;
-}
#endif
static int ipvlan_add_addr4(struct ipvl_dev *ipvlan, struct in_addr *ip4_addr)
@@ -997,38 +998,15 @@ static int ipvlan_addr4_event(struct notifier_block *unused,
return NOTIFY_OK;
}
-static int ipvlan_addr4_validator_event(struct notifier_block *unused,
- unsigned long event, void *ptr)
-{
- struct in_validator_info *ivi = (struct in_validator_info *)ptr;
- struct net_device *dev = (struct net_device *)ivi->ivi_dev->dev;
- struct ipvl_dev *ipvlan = netdev_priv(dev);
- int ret = NOTIFY_OK;
-
- if (!ipvlan_is_valid_dev(dev))
- return NOTIFY_DONE;
-
- switch (event) {
- case NETDEV_UP:
- spin_lock_bh(&ipvlan->port->addrs_lock);
- if (ipvlan_addr_busy(ipvlan->port, &ivi->ivi_addr, false)) {
- NL_SET_ERR_MSG(ivi->extack,
- "Address already assigned to an ipvlan device");
- ret = notifier_from_errno(-EADDRINUSE);
- }
- spin_unlock_bh(&ipvlan->port->addrs_lock);
- break;
- }
-
- return ret;
-}
+static int ipvlan_addr_validator_event_cb(struct notifier_block *nblock,
+ unsigned long event, void *ptr);
static struct notifier_block ipvlan_addr4_notifier_block __read_mostly = {
.notifier_call = ipvlan_addr4_event,
};
static struct notifier_block ipvlan_addr4_vtor_notifier_block __read_mostly = {
- .notifier_call = ipvlan_addr4_validator_event,
+ .notifier_call = ipvlan_addr_validator_event_cb,
};
static struct notifier_block ipvlan_notifier_block __read_mostly = {
@@ -1040,10 +1018,32 @@ static struct notifier_block ipvlan_addr6_notifier_block __read_mostly = {
.notifier_call = ipvlan_addr6_event,
};
+#endif
+
static struct notifier_block ipvlan_addr6_vtor_notifier_block __read_mostly = {
- .notifier_call = ipvlan_addr6_validator_event,
+ .notifier_call = ipvlan_addr_validator_event_cb,
};
-#endif
+
+static int ipvlan_addr_validator_event_cb(struct notifier_block *nblock,
+ unsigned long event, void *ptr)
+{
+ struct in6_validator_info *i6vi;
+ struct net_device *dev;
+
+ if (nblock == &ipvlan_addr4_vtor_notifier_block) {
+ struct in_validator_info *ivi;
+
+ ivi = (struct in_validator_info *)ptr;
+ dev = ivi->ivi_dev->dev;
+ return ipvlan_addr_validator_event(dev, event, ivi->extack,
+ &ivi->ivi_addr, false);
+ }
+
+ i6vi = (struct in6_validator_info *)ptr;
+ dev = i6vi->i6vi_dev->dev;
+ return ipvlan_addr_validator_event(dev, event, i6vi->extack,
+ &i6vi->i6vi_addr, true);
+}
static int __init ipvlan_init_module(void)
{
--
2.43.0
^ permalink raw reply related [flat|nested] 8+ messages in thread* Re: [PATCH net 2/3] ipvlan: Common code from v6/v4 validator_event
2026-01-20 16:18 ` [PATCH net 2/3] ipvlan: Common code from v6/v4 validator_event Dmitry Skorodumov
@ 2026-01-21 15:33 ` kernel test robot
0 siblings, 0 replies; 8+ messages in thread
From: kernel test robot @ 2026-01-21 15:33 UTC (permalink / raw)
To: Dmitry Skorodumov, netdev, Jakub Kicinski, Dmitry Skorodumov,
Xiao Liang, Kuniyuki Iwashima, Stanislav Fomichev, linux-kernel
Cc: oe-kbuild-all, Andrew Lunn, Eric Dumazet, Paolo Abeni
Hi Dmitry,
kernel test robot noticed the following build warnings:
[auto build test WARNING on net/main]
url: https://github.com/intel-lab-lkp/linux/commits/Dmitry-Skorodumov/ipvlan-const-specifier-for-functions-that-use-iaddr/20260121-021651
base: net/main
patch link: https://lore.kernel.org/r/20260120161852.639238-3-skorodumov.dmitry%40huawei.com
patch subject: [PATCH net 2/3] ipvlan: Common code from v6/v4 validator_event
config: csky-randconfig-r073-20260121 (https://download.01.org/0day-ci/archive/20260122/202601220042.cudmSYUb-lkp@intel.com/config)
compiler: csky-linux-gcc (GCC) 15.2.0
smatch version: v0.5.0-8985-g2614ff1a
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260122/202601220042.cudmSYUb-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/202601220042.cudmSYUb-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> drivers/net/ipvlan/ipvlan_main.c:1023:30: warning: 'ipvlan_addr6_vtor_notifier_block' defined but not used [-Wunused-variable]
1023 | static struct notifier_block ipvlan_addr6_vtor_notifier_block __read_mostly = {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vim +/ipvlan_addr6_vtor_notifier_block +1023 drivers/net/ipvlan/ipvlan_main.c
8c54904ac0f545 Dmitry Skorodumov 2026-01-20 1022
3ad7d2468f79fc Krister Johansen 2017-06-08 @1023 static struct notifier_block ipvlan_addr6_vtor_notifier_block __read_mostly = {
8c54904ac0f545 Dmitry Skorodumov 2026-01-20 1024 .notifier_call = ipvlan_addr_validator_event_cb,
3ad7d2468f79fc Krister Johansen 2017-06-08 1025 };
8c54904ac0f545 Dmitry Skorodumov 2026-01-20 1026
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH net 3/3] ipvlan: common code to handle ipv6/ipv4 address events
2026-01-20 16:18 [PATCH net 0/3] ipvlan: Deduplicate ipv4/ipv6 addr_validator_event code Dmitry Skorodumov
2026-01-20 16:18 ` [PATCH net 1/3] ipvlan: const-specifier for functions that use iaddr Dmitry Skorodumov
2026-01-20 16:18 ` [PATCH net 2/3] ipvlan: Common code from v6/v4 validator_event Dmitry Skorodumov
@ 2026-01-20 16:18 ` Dmitry Skorodumov
2026-01-22 3:58 ` kernel test robot
2026-01-20 18:59 ` [PATCH net 0/3] ipvlan: Deduplicate ipv4/ipv6 addr_validator_event code Jakub Kicinski
3 siblings, 1 reply; 8+ messages in thread
From: Dmitry Skorodumov @ 2026-01-20 16:18 UTC (permalink / raw)
To: netdev, Jakub Kicinski, Dmitry Skorodumov, Stanislav Fomichev,
Xiao Liang, Kuniyuki Iwashima, linux-kernel
Cc: Andrew Lunn, David S. Miller, Eric Dumazet, Paolo Abeni
Both IPv4 and IPv6 addr-event functions are very similar. Refactor
to use common funcitons.
Get rid of separate functions for ipvlan_addrX_event()
and check whether we are called for ipv4 or ipv6 by
looking at "notifier_block *nblock" argument
Signed-off-by: Dmitry Skorodumov <skorodumov.dmitry@huawei.com>
---
drivers/net/ipvlan/ipvlan_main.c | 112 +++++++++++--------------------
1 file changed, 41 insertions(+), 71 deletions(-)
diff --git a/drivers/net/ipvlan/ipvlan_main.c b/drivers/net/ipvlan/ipvlan_main.c
index dda891911ea4..88b32998ce54 100644
--- a/drivers/net/ipvlan/ipvlan_main.c
+++ b/drivers/net/ipvlan/ipvlan_main.c
@@ -905,93 +905,45 @@ static int ipvlan_addr_validator_event(struct net_device *dev,
return ret;
}
-#if IS_ENABLED(CONFIG_IPV6)
-static int ipvlan_add_addr6(struct ipvl_dev *ipvlan, struct in6_addr *ip6_addr)
+static int ipvlan_add_addr_event(struct ipvl_dev *ipvlan, const void *iaddr,
+ bool is_v6)
{
int ret = -EINVAL;
spin_lock_bh(&ipvlan->port->addrs_lock);
- if (ipvlan_addr_busy(ipvlan->port, ip6_addr, true))
- netif_err(ipvlan, ifup, ipvlan->dev,
- "Failed to add IPv6=%pI6c addr for %s intf\n",
- ip6_addr, ipvlan->dev->name);
- else
- ret = ipvlan_add_addr(ipvlan, ip6_addr, true);
- spin_unlock_bh(&ipvlan->port->addrs_lock);
- return ret;
-}
-
-static void ipvlan_del_addr6(struct ipvl_dev *ipvlan, struct in6_addr *ip6_addr)
-{
- return ipvlan_del_addr(ipvlan, ip6_addr, true);
-}
-
-static int ipvlan_addr6_event(struct notifier_block *unused,
- unsigned long event, void *ptr)
-{
- struct inet6_ifaddr *if6 = (struct inet6_ifaddr *)ptr;
- struct net_device *dev = (struct net_device *)if6->idev->dev;
- struct ipvl_dev *ipvlan = netdev_priv(dev);
-
- if (!ipvlan_is_valid_dev(dev))
- return NOTIFY_DONE;
-
- switch (event) {
- case NETDEV_UP:
- if (ipvlan_add_addr6(ipvlan, &if6->addr))
- return NOTIFY_BAD;
- break;
-
- case NETDEV_DOWN:
- ipvlan_del_addr6(ipvlan, &if6->addr);
- break;
+ if (ipvlan_addr_busy(ipvlan->port, iaddr, is_v6)) {
+ if (is_v6) {
+ netif_err(ipvlan, ifup, ipvlan->dev,
+ "Failed to add IPv6=%pI6c addr on %s intf\n",
+ iaddr, ipvlan->dev->name);
+ } else {
+ netif_err(ipvlan, ifup, ipvlan->dev,
+ "Failed to add IPv4=%pI4 on %s intf.\n",
+ iaddr, ipvlan->dev->name);
+ }
+ } else {
+ ret = ipvlan_add_addr(ipvlan, iaddr, is_v6);
}
-
- return NOTIFY_OK;
-}
-#endif
-
-static int ipvlan_add_addr4(struct ipvl_dev *ipvlan, struct in_addr *ip4_addr)
-{
- int ret = -EINVAL;
-
- spin_lock_bh(&ipvlan->port->addrs_lock);
- if (ipvlan_addr_busy(ipvlan->port, ip4_addr, false))
- netif_err(ipvlan, ifup, ipvlan->dev,
- "Failed to add IPv4=%pI4 on %s intf.\n",
- ip4_addr, ipvlan->dev->name);
- else
- ret = ipvlan_add_addr(ipvlan, ip4_addr, false);
spin_unlock_bh(&ipvlan->port->addrs_lock);
return ret;
}
-static void ipvlan_del_addr4(struct ipvl_dev *ipvlan, struct in_addr *ip4_addr)
-{
- return ipvlan_del_addr(ipvlan, ip4_addr, false);
-}
-
-static int ipvlan_addr4_event(struct notifier_block *unused,
- unsigned long event, void *ptr)
+static int ipvlan_addr_event(struct net_device *dev, unsigned long event,
+ const void *iaddr, bool is_v6)
{
- struct in_ifaddr *if4 = (struct in_ifaddr *)ptr;
- struct net_device *dev = (struct net_device *)if4->ifa_dev->dev;
struct ipvl_dev *ipvlan = netdev_priv(dev);
- struct in_addr ip4_addr;
if (!ipvlan_is_valid_dev(dev))
return NOTIFY_DONE;
switch (event) {
case NETDEV_UP:
- ip4_addr.s_addr = if4->ifa_address;
- if (ipvlan_add_addr4(ipvlan, &ip4_addr))
+ if (ipvlan_add_addr_event(ipvlan, iaddr, is_v6))
return NOTIFY_BAD;
break;
case NETDEV_DOWN:
- ip4_addr.s_addr = if4->ifa_address;
- ipvlan_del_addr4(ipvlan, &ip4_addr);
+ ipvlan_del_addr(ipvlan, iaddr, is_v6);
break;
}
@@ -1001,8 +953,11 @@ static int ipvlan_addr4_event(struct notifier_block *unused,
static int ipvlan_addr_validator_event_cb(struct notifier_block *nblock,
unsigned long event, void *ptr);
+static int ipvlan_addr_event_cb(struct notifier_block *unused,
+ unsigned long event, void *ptr);
+
static struct notifier_block ipvlan_addr4_notifier_block __read_mostly = {
- .notifier_call = ipvlan_addr4_event,
+ .notifier_call = ipvlan_addr_event_cb,
};
static struct notifier_block ipvlan_addr4_vtor_notifier_block __read_mostly = {
@@ -1013,13 +968,10 @@ static struct notifier_block ipvlan_notifier_block __read_mostly = {
.notifier_call = ipvlan_device_event,
};
-#if IS_ENABLED(CONFIG_IPV6)
static struct notifier_block ipvlan_addr6_notifier_block __read_mostly = {
- .notifier_call = ipvlan_addr6_event,
+ .notifier_call = ipvlan_addr_event_cb,
};
-#endif
-
static struct notifier_block ipvlan_addr6_vtor_notifier_block __read_mostly = {
.notifier_call = ipvlan_addr_validator_event_cb,
};
@@ -1045,6 +997,24 @@ static int ipvlan_addr_validator_event_cb(struct notifier_block *nblock,
&i6vi->i6vi_addr, true);
}
+static int ipvlan_addr_event_cb(struct notifier_block *nblock,
+ unsigned long event, void *ptr)
+{
+ struct inet6_ifaddr *if6;
+ struct net_device *dev;
+
+ if (nblock == &ipvlan_addr4_notifier_block) {
+ struct in_ifaddr *if4 = (struct in_ifaddr *)ptr;
+
+ dev = if4->ifa_dev->dev;
+ return ipvlan_addr_event(dev, event, &if4->ifa_address, false);
+ }
+
+ if6 = (struct inet6_ifaddr *)ptr;
+ dev = if6->idev->dev;
+ return ipvlan_addr_event(dev, event, &if6->addr, true);
+}
+
static int __init ipvlan_init_module(void)
{
int err;
--
2.43.0
^ permalink raw reply related [flat|nested] 8+ messages in thread* Re: [PATCH net 3/3] ipvlan: common code to handle ipv6/ipv4 address events
2026-01-20 16:18 ` [PATCH net 3/3] ipvlan: common code to handle ipv6/ipv4 address events Dmitry Skorodumov
@ 2026-01-22 3:58 ` kernel test robot
0 siblings, 0 replies; 8+ messages in thread
From: kernel test robot @ 2026-01-22 3:58 UTC (permalink / raw)
To: Dmitry Skorodumov, netdev, Jakub Kicinski, Dmitry Skorodumov,
Stanislav Fomichev, Xiao Liang, Kuniyuki Iwashima, linux-kernel
Cc: oe-kbuild-all, Andrew Lunn, Eric Dumazet, Paolo Abeni
Hi Dmitry,
kernel test robot noticed the following build warnings:
[auto build test WARNING on net/main]
url: https://github.com/intel-lab-lkp/linux/commits/Dmitry-Skorodumov/ipvlan-const-specifier-for-functions-that-use-iaddr/20260121-021651
base: net/main
patch link: https://lore.kernel.org/r/20260120161852.639238-4-skorodumov.dmitry%40huawei.com
patch subject: [PATCH net 3/3] ipvlan: common code to handle ipv6/ipv4 address events
config: csky-randconfig-r073-20260121 (https://download.01.org/0day-ci/archive/20260122/202601221123.nqHDZ5VS-lkp@intel.com/config)
compiler: csky-linux-gcc (GCC) 15.2.0
smatch version: v0.5.0-8985-g2614ff1a
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260122/202601221123.nqHDZ5VS-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/202601221123.nqHDZ5VS-lkp@intel.com/
All warnings (new ones prefixed by >>):
drivers/net/ipvlan/ipvlan_main.c:975:30: warning: 'ipvlan_addr6_vtor_notifier_block' defined but not used [-Wunused-variable]
975 | static struct notifier_block ipvlan_addr6_vtor_notifier_block __read_mostly = {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/net/ipvlan/ipvlan_main.c:971:30: warning: 'ipvlan_addr6_notifier_block' defined but not used [-Wunused-variable]
971 | static struct notifier_block ipvlan_addr6_notifier_block __read_mostly = {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
vim +/ipvlan_addr6_notifier_block +971 drivers/net/ipvlan/ipvlan_main.c
2ad7bf3638411c Mahesh Bandewar 2014-11-23 970
2ad7bf3638411c Mahesh Bandewar 2014-11-23 @971 static struct notifier_block ipvlan_addr6_notifier_block __read_mostly = {
125ac7e42e5f15 Dmitry Skorodumov 2026-01-20 972 .notifier_call = ipvlan_addr_event_cb,
2ad7bf3638411c Mahesh Bandewar 2014-11-23 973 };
2ad7bf3638411c Mahesh Bandewar 2014-11-23 974
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH net 0/3] ipvlan: Deduplicate ipv4/ipv6 addr_validator_event code
2026-01-20 16:18 [PATCH net 0/3] ipvlan: Deduplicate ipv4/ipv6 addr_validator_event code Dmitry Skorodumov
` (2 preceding siblings ...)
2026-01-20 16:18 ` [PATCH net 3/3] ipvlan: common code to handle ipv6/ipv4 address events Dmitry Skorodumov
@ 2026-01-20 18:59 ` Jakub Kicinski
2026-01-23 17:06 ` Dmitry Skorodumov
3 siblings, 1 reply; 8+ messages in thread
From: Jakub Kicinski @ 2026-01-20 18:59 UTC (permalink / raw)
To: Dmitry Skorodumov; +Cc: netdev, Dmitry Skorodumov
On Tue, 20 Jan 2026 19:18:33 +0300 Dmitry Skorodumov wrote:
> This is a bit stylish patches: The code to handle ipv4 and ipv6
> address change are exactly the same. We don't need separate
> functions for them. Just look whether we are called
> with ipvlan_addr4_notifier_block or with ipvlan_addr6_notifier_block
[PATCH net] is for fixes, please use [PATCH net-next] for cleanups.
If these patches depend on your locking fix you'll need to wait
with reposting until the fix appears in net-next (Thu afternoon).
--
pw-bot: cr
^ permalink raw reply [flat|nested] 8+ messages in thread* Re: [PATCH net 0/3] ipvlan: Deduplicate ipv4/ipv6 addr_validator_event code
2026-01-20 18:59 ` [PATCH net 0/3] ipvlan: Deduplicate ipv4/ipv6 addr_validator_event code Jakub Kicinski
@ 2026-01-23 17:06 ` Dmitry Skorodumov
0 siblings, 0 replies; 8+ messages in thread
From: Dmitry Skorodumov @ 2026-01-23 17:06 UTC (permalink / raw)
To: Jakub Kicinski, Dmitry Skorodumov; +Cc: netdev
yes, sorry. It was a mechanical mistake from my side
Dmitry
On 20.01.2026 21:59, Jakub Kicinski wrote:
> On Tue, 20 Jan 2026 19:18:33 +0300 Dmitry Skorodumov wrote:
>> This is a bit stylish patches: The code to handle ipv4 and ipv6
>> address change are exactly the same. We don't need separate
>> functions for them. Just look whether we are called
>> with ipvlan_addr4_notifier_block or with ipvlan_addr6_notifier_block
> [PATCH net] is for fixes, please use [PATCH net-next] for cleanups.
> If these patches depend on your locking fix you'll need to wait
> with reposting until the fix appears in net-next (Thu afternoon).
^ permalink raw reply [flat|nested] 8+ messages in thread