summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Kicinski <kuba@kernel.org>2026-06-15 12:44:14 -0700
committerJakub Kicinski <kuba@kernel.org>2026-06-16 08:53:52 -0700
commitae6e653514d156f0cc2327fe9e7db731ecb35a76 (patch)
tree062aa0d7994229284a2619ce00d5a8fac7ddc259
parent6719d57ee047cba211e8684eef46d5486a3295bb (diff)
atm: remove the unused pre_send and send_bh device operations
atmdev_ops::pre_send (a TX pre-processing hook) and ::send_bh (a bottom-half capable send variant) have no implementation behind them: no remaining ATM driver sets either, so vcc_sendmsg() always skipped pre_send and the raw AAL0/AAL5 paths always fell back to ->send(). The drivers that used these hooks were removed with the legacy ATM adapters. Drop both operations and the dead branches that tested for them. Link: https://patch.msgid.link/20260615194416.752559-8-kuba@kernel.org Signed-off-by: Jakub Kicinski <kuba@kernel.org>
-rw-r--r--include/linux/atmdev.h2
-rw-r--r--net/atm/common.c6
-rw-r--r--net/atm/raw.c7
3 files changed, 1 insertions, 14 deletions
diff --git a/include/linux/atmdev.h b/include/linux/atmdev.h
index 218c05f2ec54..96ce36e02247 100644
--- a/include/linux/atmdev.h
+++ b/include/linux/atmdev.h
@@ -137,9 +137,7 @@ struct atmdev_ops { /* only send is required */
int (*compat_ioctl)(struct atm_dev *dev,unsigned int cmd,
void __user *arg);
#endif
- int (*pre_send)(struct atm_vcc *vcc, struct sk_buff *skb);
int (*send)(struct atm_vcc *vcc,struct sk_buff *skb);
- int (*send_bh)(struct atm_vcc *vcc, struct sk_buff *skb);
void (*phy_put)(struct atm_dev *dev,unsigned char value,
unsigned long addr);
unsigned char (*phy_get)(struct atm_dev *dev,unsigned long addr);
diff --git a/net/atm/common.c b/net/atm/common.c
index 44a0179d4586..654cbe3c855e 100644
--- a/net/atm/common.c
+++ b/net/atm/common.c
@@ -626,12 +626,6 @@ int vcc_sendmsg(struct socket *sock, struct msghdr *m, size_t size)
if (eff != size)
memset(skb->data + size, 0, eff-size);
- if (vcc->dev->ops->pre_send) {
- error = vcc->dev->ops->pre_send(vcc, skb);
- if (error)
- goto free_skb;
- }
-
error = vcc->dev->ops->send(vcc, skb);
error = error ? error : size;
out:
diff --git a/net/atm/raw.c b/net/atm/raw.c
index 1d6ac7b0c4e5..87d136c7554b 100644
--- a/net/atm/raw.c
+++ b/net/atm/raw.c
@@ -54,8 +54,6 @@ static int atm_send_aal0(struct atm_vcc *vcc, struct sk_buff *skb)
kfree_skb(skb);
return -EADDRNOTAVAIL;
}
- if (vcc->dev->ops->send_bh)
- return vcc->dev->ops->send_bh(vcc, skb);
return vcc->dev->ops->send(vcc, skb);
}
@@ -71,10 +69,7 @@ int atm_init_aal5(struct atm_vcc *vcc)
{
vcc->push = atm_push_raw;
vcc->pop = atm_pop_raw;
- if (vcc->dev->ops->send_bh)
- vcc->send = vcc->dev->ops->send_bh;
- else
- vcc->send = vcc->dev->ops->send;
+ vcc->send = vcc->dev->ops->send;
return 0;
}
EXPORT_SYMBOL(atm_init_aal5);