diff options
| author | Jakub Kicinski <kuba@kernel.org> | 2026-06-15 12:44:13 -0700 |
|---|---|---|
| committer | Jakub Kicinski <kuba@kernel.org> | 2026-06-16 08:53:52 -0700 |
| commit | 6719d57ee047cba211e8684eef46d5486a3295bb (patch) | |
| tree | 4c374ab8452fa2cb4fdc58c5fa0db612e96ef7b6 | |
| parent | aa582dc25ace8951ad595c71fb93d21ed2ec4624 (diff) | |
atm: remove the unused change_qos device operation
atmdev_ops::change_qos() was the hook for renegotiating the traffic
parameters of an already-connected VCC, driven from SO_ATMQOS on a
connected socket (and previously from the SVC as_modify path, now gone).
None of the ATM drivers left in tree implement it - solos-pci only listed
change_qos = NULL - so atm_change_qos() always returned -EOPNOTSUPP.
Drop the operation and return -EOPNOTSUPP directly.
Link: https://patch.msgid.link/20260615194416.752559-7-kuba@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
| -rw-r--r-- | drivers/atm/solos-pci.c | 1 | ||||
| -rw-r--r-- | include/linux/atmdev.h | 1 | ||||
| -rw-r--r-- | net/atm/common.c | 25 |
3 files changed, 2 insertions, 25 deletions
diff --git a/drivers/atm/solos-pci.c b/drivers/atm/solos-pci.c index 4ad170a858ee..9c246b956c30 100644 --- a/drivers/atm/solos-pci.c +++ b/drivers/atm/solos-pci.c @@ -1182,7 +1182,6 @@ static const struct atmdev_ops fpga_ops = { .send = psend, .phy_put = NULL, .phy_get = NULL, - .change_qos = NULL, .proc_read = NULL, .owner = THIS_MODULE }; diff --git a/include/linux/atmdev.h b/include/linux/atmdev.h index 59477676063c..218c05f2ec54 100644 --- a/include/linux/atmdev.h +++ b/include/linux/atmdev.h @@ -143,7 +143,6 @@ struct atmdev_ops { /* only send is required */ void (*phy_put)(struct atm_dev *dev,unsigned char value, unsigned long addr); unsigned char (*phy_get)(struct atm_dev *dev,unsigned long addr); - int (*change_qos)(struct atm_vcc *vcc,struct atm_qos *qos,int flags); int (*proc_read)(struct atm_dev *dev,loff_t *pos,char *page); struct module *owner; }; diff --git a/net/atm/common.c b/net/atm/common.c index 650814d0a56c..44a0179d4586 100644 --- a/net/atm/common.c +++ b/net/atm/common.c @@ -673,28 +673,6 @@ __poll_t vcc_poll(struct file *file, struct socket *sock, poll_table *wait) return mask; } -static int atm_change_qos(struct atm_vcc *vcc, struct atm_qos *qos) -{ - int error; - - /* - * Don't let the QoS change the already connected AAL type nor the - * traffic class. - */ - if (qos->aal != vcc->qos.aal || - qos->rxtp.traffic_class != vcc->qos.rxtp.traffic_class || - qos->txtp.traffic_class != vcc->qos.txtp.traffic_class) - return -EINVAL; - error = adjust_tp(&qos->txtp, qos->aal); - if (!error) - error = adjust_tp(&qos->rxtp, qos->aal); - if (error) - return error; - if (!vcc->dev->ops->change_qos) - return -EOPNOTSUPP; - return vcc->dev->ops->change_qos(vcc, qos, ATM_MF_SET); -} - static int check_tp(const struct atm_trafprm *tp) { /* @@@ Should be merged with adjust_tp */ @@ -753,8 +731,9 @@ int vcc_setsockopt(struct socket *sock, int level, int optname, error = check_qos(&qos); if (error) return error; + /* QoS cannot be renegotiated on an already connected VCC. */ if (sock->state == SS_CONNECTED) - return atm_change_qos(vcc, &qos); + return -EOPNOTSUPP; if (sock->state != SS_UNCONNECTED) return -EBADFD; vcc->qos = qos; |
