summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/atm/solos-pci.c1
-rw-r--r--include/linux/atmdev.h1
-rw-r--r--net/atm/common.c25
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;