Subject: linux-next: build failure after merge of the net-next tree

From: Stephen Rothwell <[email-masked]>
Date: Tue, 10 May 2022 13:05:56 +1000

Hi all,

After merging the net-next tree, today's linux-next build (x86_64
allmodconfig) failed like this:

drivers/net/ethernet/sfc/ptp.c:2191:35: error: 'efx_copy_channel' undeclared here (not in a function); did you mean 'efx_ptp_channel'?
 2191 |         .copy                   = efx_copy_channel,
      |                                   ^~~~~~~~~~~~~~~~
      |                                   efx_ptp_channel

Caused by commit

  54fccfdd7c66 ("sfc: efx_default_channel_type APIs can be static")

interacting with commit

  49e6123c65da ("net: sfc: fix memory leak due to ptp channel")

from the net tree.

I have added the following merge fix patch.

From: Stephen Rothwell <[email-masked]>
Date: Tue, 10 May 2022 12:56:18 +1000
Subject: [PATCH] fix up for "net: sfc: fix memory leak due to ptp channel"

This is a partial revert of

  54fccfdd7c66 ("sfc: efx_default_channel_type APIs can be static")

Signed-off-by: Stephen Rothwell <[email-masked]>
---
 drivers/net/ethernet/sfc/efx_channels.c | 1 -
 drivers/net/ethernet/sfc/efx_channels.h | 1 +
 2 files changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/sfc/efx_channels.c b/drivers/net/ethernet/sfc/efx_channels.c
index ec913f62790b..79df636d6df8 100644
--- a/drivers/net/ethernet/sfc/efx_channels.c
+++ b/drivers/net/ethernet/sfc/efx_channels.c
@@ -598,7 +598,6 @@ void efx_fini_channels(struct efx_nic *efx)
 /* Allocate and initialise a channel structure, copying parameters
  * (but not resources) from an old channel structure.
  */
-static
 struct efx_channel *efx_copy_channel(const struct efx_channel *old_channel)
 {
 	struct efx_rx_queue *rx_queue;
diff --git a/drivers/net/ethernet/sfc/efx_channels.h b/drivers/net/ethernet/sfc/efx_channels.h
index 64abb99a56b8..46b702648721 100644
--- a/drivers/net/ethernet/sfc/efx_channels.h
+++ b/drivers/net/ethernet/sfc/efx_channels.h
@@ -39,6 +39,7 @@ int efx_set_channels(struct efx_nic *efx);
 void efx_remove_channel(struct efx_channel *channel);
 void efx_remove_channels(struct efx_nic *efx);
 void efx_fini_channels(struct efx_nic *efx);
+struct efx_channel *efx_copy_channel(const struct efx_channel *old_channel);
 void efx_start_channels(struct efx_nic *efx);
 void efx_stop_channels(struct efx_nic *efx);
 
-- 
2.35.1

-- 
Cheers,
Stephen Rothwell