mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-07-23 22:38:20 -04:00
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>
This commit is contained in:
@@ -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
|
||||
};
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user