All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] net: mana: Fix return type of mana_start_xmit
@ 2022-09-12 21:43 ` Nathan Huckleberry
  0 siblings, 0 replies; 6+ messages in thread
From: Nathan Huckleberry @ 2022-09-12 21:43 UTC (permalink / raw)
  Cc: Nathan Huckleberry, Dan Carpenter, llvm, K. Y. Srinivasan,
	Haiyang Zhang, Stephen Hemminger, Wei Liu, Dexuan Cui,
	David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
	Nathan Chancellor, Nick Desaulniers, Tom Rix, linux-hyperv,
	netdev, linux-kernel

The ndo_start_xmit field in net_device_ops is expected to be of type
netdev_tx_t (*ndo_start_xmit)(struct sk_buff *skb, struct net_device *dev).

The mismatched return type breaks forward edge kCFI since the underlying
function definition does not match the function hook definition.

The return type of mana_start_xmit should be changed from int to
netdev_tx_t.

Reported-by: Dan Carpenter <error27@gmail.com>
Link: https://github.com/ClangBuiltLinux/linux/issues/1703
Cc: llvm@lists.linux.dev
Signed-off-by: Nathan Huckleberry <nhuck@google.com>
---
 drivers/net/ethernet/microsoft/mana/mana_en.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/microsoft/mana/mana_en.c b/drivers/net/ethernet/microsoft/mana/mana_en.c
index 9259a74eca40..dfecef8c08e5 100644
--- a/drivers/net/ethernet/microsoft/mana/mana_en.c
+++ b/drivers/net/ethernet/microsoft/mana/mana_en.c
@@ -128,7 +128,7 @@ static int mana_map_skb(struct sk_buff *skb, struct mana_port_context *apc,
 	return -ENOMEM;
 }
 
-int mana_start_xmit(struct sk_buff *skb, struct net_device *ndev)
+netdev_tx_t mana_start_xmit(struct sk_buff *skb, struct net_device *ndev)
 {
 	enum mana_tx_pkt_format pkt_fmt = MANA_SHORT_PKT_FMT;
 	struct mana_port_context *apc = netdev_priv(ndev);
-- 
2.37.2.789.g6183377224-goog


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH] net: mana: Fix return type of mana_start_xmit
@ 2022-09-12 21:43 ` Nathan Huckleberry
  0 siblings, 0 replies; 6+ messages in thread
From: Nathan Huckleberry @ 2022-09-12 21:43 UTC (permalink / raw)
  Cc: Nathan Huckleberry, Dan Carpenter, llvm, K. Y. Srinivasan,
	Haiyang Zhang, Stephen Hemminger, Wei Liu, Dexuan Cui,
	David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
	Nathan Chancellor, Nick Desaulniers, Tom Rix, linux-hyperv,
	netdev, linux-kernel

The ndo_start_xmit field in net_device_ops is expected to be of type
netdev_tx_t (*ndo_start_xmit)(struct sk_buff *skb, struct net_device *dev).

The mismatched return type breaks forward edge kCFI since the underlying
function definition does not match the function hook definition.

The return type of mana_start_xmit should be changed from int to
netdev_tx_t.

Reported-by: Dan Carpenter <error27@gmail.com>
Link: https://github.com/ClangBuiltLinux/linux/issues/1703
Cc: llvm@lists.linux.dev
Signed-off-by: Nathan Huckleberry <nhuck@google.com>
---
 drivers/net/ethernet/microsoft/mana/mana_en.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/microsoft/mana/mana_en.c b/drivers/net/ethernet/microsoft/mana/mana_en.c
index 9259a74eca40..dfecef8c08e5 100644
--- a/drivers/net/ethernet/microsoft/mana/mana_en.c
+++ b/drivers/net/ethernet/microsoft/mana/mana_en.c
@@ -128,7 +128,7 @@ static int mana_map_skb(struct sk_buff *skb, struct mana_port_context *apc,
 	return -ENOMEM;
 }
 
-int mana_start_xmit(struct sk_buff *skb, struct net_device *ndev)
+netdev_tx_t mana_start_xmit(struct sk_buff *skb, struct net_device *ndev)
 {
 	enum mana_tx_pkt_format pkt_fmt = MANA_SHORT_PKT_FMT;
 	struct mana_port_context *apc = netdev_priv(ndev);
-- 
2.37.2.789.g6183377224-goog


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* RE: [PATCH] net: mana: Fix return type of mana_start_xmit
  2022-09-12 21:43 ` Nathan Huckleberry
  (?)
@ 2022-09-12 21:56 ` Dexuan Cui
  -1 siblings, 0 replies; 6+ messages in thread
From: Dexuan Cui @ 2022-09-12 21:56 UTC (permalink / raw)
  To: Nathan Huckleberry
  Cc: Dan Carpenter, llvm, KY Srinivasan, Haiyang Zhang,
	Stephen Hemminger, Wei Liu, David S. Miller, Eric Dumazet,
	Jakub Kicinski, Paolo Abeni, Nathan Chancellor, Nick Desaulniers,
	Tom Rix, linux-hyperv, netdev, linux-kernel

> From: Nathan Huckleberry <nhuck@google.com>
> Sent: Monday, September 12, 2022 2:44 PM
>  ...
> The ndo_start_xmit field in net_device_ops is expected to be of type
> netdev_tx_t (*ndo_start_xmit)(struct sk_buff *skb, struct net_device *dev).
> 
> The mismatched return type breaks forward edge kCFI since the underlying
> function definition does not match the function hook definition.
> 
> The return type of mana_start_xmit should be changed from int to
> netdev_tx_t.
> 
> Reported-by: Dan Carpenter <error27@gmail.com>
> Link: ...
> Cc: llvm@lists.linux.dev
> Signed-off-by: Nathan Huckleberry <nhuck@google.com>

Reviewed-by: Dexuan Cui <decui@microsoft.com>

Thanks for the fix!


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] net: mana: Fix return type of mana_start_xmit
  2022-09-12 21:43 ` Nathan Huckleberry
  (?)
  (?)
@ 2022-09-20  1:28 ` Jakub Kicinski
  2022-09-29 18:14   ` [PATCH v2] " Nathan Huckleberry
  -1 siblings, 1 reply; 6+ messages in thread
From: Jakub Kicinski @ 2022-09-20  1:28 UTC (permalink / raw)
  To: Nathan Huckleberry
  Cc: Dan Carpenter, llvm, K. Y. Srinivasan, Haiyang Zhang,
	Stephen Hemminger, Wei Liu, Dexuan Cui, David S. Miller,
	Eric Dumazet, Paolo Abeni, Nathan Chancellor, Nick Desaulniers,
	Tom Rix, linux-hyperv, netdev, linux-kernel

On Mon, 12 Sep 2022 14:43:53 -0700 Nathan Huckleberry wrote:
> -int mana_start_xmit(struct sk_buff *skb, struct net_device *ndev)
> +netdev_tx_t mana_start_xmit(struct sk_buff *skb, struct net_device *ndev)

This one has a prototype.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH v2] net: mana: Fix return type of mana_start_xmit
  2022-09-20  1:28 ` Jakub Kicinski
@ 2022-09-29 18:14   ` Nathan Huckleberry
  2022-10-03 23:39     ` Jakub Kicinski
  0 siblings, 1 reply; 6+ messages in thread
From: Nathan Huckleberry @ 2022-09-29 18:14 UTC (permalink / raw)
  To: kuba
  Cc: davem, decui, edumazet, error27, haiyangz, kys, linux-hyperv,
	linux-kernel, llvm, nathan, ndesaulniers, netdev, nhuck, pabeni,
	sthemmin, trix, wei.liu

The ndo_start_xmit field in net_device_ops is expected to be of type
netdev_tx_t (*ndo_start_xmit)(struct sk_buff *skb, struct net_device *dev).

The mismatched return type breaks forward edge kCFI since the underlying
function definition does not match the function hook definition.

The return type of mana_start_xmit should be changed from int to
netdev_tx_t.

Reported-by: Dan Carpenter <error27@gmail.com>
Link: https://github.com/ClangBuiltLinux/linux/issues/1703
Cc: llvm@lists.linux.dev
Signed-off-by: Nathan Huckleberry <nhuck@google.com>
Reviewed-by: Dexuan Cui <decui@microsoft.com>
---

Changes v1 -> v2
- Update header file

 drivers/net/ethernet/microsoft/mana/mana_en.c | 2 +-
 include/net/mana/mana.h                       | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/microsoft/mana/mana_en.c b/drivers/net/ethernet/microsoft/mana/mana_en.c
index 7ca313c7b7b3..a3df5678bb4f 100644
--- a/drivers/net/ethernet/microsoft/mana/mana_en.c
+++ b/drivers/net/ethernet/microsoft/mana/mana_en.c
@@ -141,7 +141,7 @@ static int mana_map_skb(struct sk_buff *skb, struct mana_port_context *apc,
 	return -ENOMEM;
 }
 
-int mana_start_xmit(struct sk_buff *skb, struct net_device *ndev)
+netdev_tx_t mana_start_xmit(struct sk_buff *skb, struct net_device *ndev)
 {
 	enum mana_tx_pkt_format pkt_fmt = MANA_SHORT_PKT_FMT;
 	struct mana_port_context *apc = netdev_priv(ndev);
diff --git a/include/net/mana/mana.h b/include/net/mana/mana.h
index 20212ffeefb9..3bb579962a14 100644
--- a/include/net/mana/mana.h
+++ b/include/net/mana/mana.h
@@ -390,7 +390,7 @@ struct mana_port_context {
 	struct mana_ethtool_stats eth_stats;
 };
 
-int mana_start_xmit(struct sk_buff *skb, struct net_device *ndev);
+netdev_tx_t mana_start_xmit(struct sk_buff *skb, struct net_device *ndev);
 int mana_config_rss(struct mana_port_context *ac, enum TRI_STATE rx,
 		    bool update_hash, bool update_tab);
 
-- 
2.38.0.rc1.362.ged0d419d3c-goog


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH v2] net: mana: Fix return type of mana_start_xmit
  2022-09-29 18:14   ` [PATCH v2] " Nathan Huckleberry
@ 2022-10-03 23:39     ` Jakub Kicinski
  0 siblings, 0 replies; 6+ messages in thread
From: Jakub Kicinski @ 2022-10-03 23:39 UTC (permalink / raw)
  To: Nathan Huckleberry
  Cc: davem, decui, edumazet, error27, haiyangz, kys, linux-hyperv,
	linux-kernel, llvm, nathan, ndesaulniers, netdev, pabeni,
	sthemmin, trix, wei.liu

On Thu, 29 Sep 2022 11:14:11 -0700 Nathan Huckleberry wrote:
>  include/net/mana/mana.h                       | 2 +-

This file does not exist in the net-next tree :S
Perhaps it was created when RDMA support was added?
Anyway, repost in a couple of weeks, it should all be straightened out
after the merge window.

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2022-10-03 23:39 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-09-12 21:43 [PATCH] net: mana: Fix return type of mana_start_xmit Nathan Huckleberry
2022-09-12 21:43 ` Nathan Huckleberry
2022-09-12 21:56 ` Dexuan Cui
2022-09-20  1:28 ` Jakub Kicinski
2022-09-29 18:14   ` [PATCH v2] " Nathan Huckleberry
2022-10-03 23:39     ` Jakub Kicinski

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.