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>
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);
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:
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);
}
{
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);