2007-02-22 11:59:33

by Divy Le ray

[permalink] [raw]
Subject: [PATCH 2/7] cxgb3 - private ioctl cleanup

From: Divy Le Ray <[email protected]>

Clean up some private ioctls.

Signed-off-by: Divy Le Ray <[email protected]>
---

drivers/net/cxgb3/cxgb3_ioctl.h | 21 ++++-------------
drivers/net/cxgb3/cxgb3_main.c | 48 +++------------------------------------
2 files changed, 9 insertions(+), 60 deletions(-)

diff --git a/drivers/net/cxgb3/cxgb3_ioctl.h b/drivers/net/cxgb3/cxgb3_ioctl.h
index a942818..42d4bf6 100644
--- a/drivers/net/cxgb3/cxgb3_ioctl.h
+++ b/drivers/net/cxgb3/cxgb3_ioctl.h
@@ -36,28 +36,17 @@
* Ioctl commands specific to this driver.
*/
enum {
- CHELSIO_SETREG = 1024,
- CHELSIO_GETREG,
- CHELSIO_SETTPI,
- CHELSIO_GETTPI,
- CHELSIO_GETMTUTAB,
+ CHELSIO_GETMTUTAB = 1024,
CHELSIO_SETMTUTAB,
- CHELSIO_GETMTU,
- CHELSIO_SET_PM,
- CHELSIO_GET_PM,
- CHELSIO_GET_TCAM,
- CHELSIO_SET_TCAM,
- CHELSIO_GET_TCB,
CHELSIO_GET_MEM,
CHELSIO_LOAD_FW,
- CHELSIO_GET_PROTO,
- CHELSIO_SET_PROTO,
CHELSIO_SET_TRACE_FILTER,
- CHELSIO_SET_QSET_PARAMS,
CHELSIO_GET_QSET_PARAMS,
- CHELSIO_SET_QSET_NUM,
+ CHELSIO_SET_QSET_PARAMS,
CHELSIO_GET_QSET_NUM,
- CHELSIO_SET_PKTSCHED,
+ CHELSIO_SET_QSET_NUM,
+ CHELSIO_GET_PM,
+ CHELSIO_SET_PM,
};

struct ch_reg {
diff --git a/drivers/net/cxgb3/cxgb3_main.c b/drivers/net/cxgb3/cxgb3_main.c
index 59f2b51..7ff834e 100644
--- a/drivers/net/cxgb3/cxgb3_main.c
+++ b/drivers/net/cxgb3/cxgb3_main.c
@@ -1552,32 +1552,6 @@ static int cxgb_extension_ioctl(struct n
return -EFAULT;

switch (cmd) {
- case CHELSIO_SETREG:{
- struct ch_reg edata;
-
- if (!capable(CAP_NET_ADMIN))
- return -EPERM;
- if (copy_from_user(&edata, useraddr, sizeof(edata)))
- return -EFAULT;
- if ((edata.addr & 3) != 0
- || edata.addr >= adapter->mmio_len)
- return -EINVAL;
- writel(edata.val, adapter->regs + edata.addr);
- break;
- }
- case CHELSIO_GETREG:{
- struct ch_reg edata;
-
- if (copy_from_user(&edata, useraddr, sizeof(edata)))
- return -EFAULT;
- if ((edata.addr & 3) != 0
- || edata.addr >= adapter->mmio_len)
- return -EINVAL;
- edata.val = readl(adapter->regs + edata.addr);
- if (copy_to_user(useraddr, &edata, sizeof(edata)))
- return -EFAULT;
- break;
- }
case CHELSIO_SET_QSET_PARAMS:{
int i;
struct qset_params *q;
@@ -1841,10 +1815,10 @@ static int cxgb_extension_ioctl(struct n
return -EINVAL;

/*
- * Version scheme:
- * bits 0..9: chip version
- * bits 10..15: chip revision
- */
+ * Version scheme:
+ * bits 0..9: chip version
+ * bits 10..15: chip revision
+ */
t.version = 3 | (adapter->params.rev << 10);
if (copy_to_user(useraddr, &t, sizeof(t)))
return -EFAULT;
@@ -1893,20 +1867,6 @@ static int cxgb_extension_ioctl(struct n
t.trace_rx);
break;
}
- case CHELSIO_SET_PKTSCHED:{
- struct ch_pktsched_params p;
-
- if (!capable(CAP_NET_ADMIN))
- return -EPERM;
- if (!adapter->open_device_map)
- return -EAGAIN; /* uP and SGE must be running */
- if (copy_from_user(&p, useraddr, sizeof(p)))
- return -EFAULT;
- send_pktsched_cmd(adapter, p.sched, p.idx, p.min, p.max,
- p.binding);
- break;
-
- }
default:
return -EOPNOTSUPP;
}


2007-02-22 12:06:13

by YOSHIFUJI Hideaki

[permalink] [raw]
Subject: Re: [PATCH 2/7] cxgb3 - private ioctl cleanup

In article <[email protected]> (at Thu, 22 Feb 2007 03:59:25 -0800), [email protected] says:

> From: Divy Le Ray <[email protected]>
>
> Clean up some private ioctls.
>
> Signed-off-by: Divy Le Ray <[email protected]>
> ---
>
> drivers/net/cxgb3/cxgb3_ioctl.h | 21 ++++-------------
> drivers/net/cxgb3/cxgb3_main.c | 48 +++------------------------------------
> 2 files changed, 9 insertions(+), 60 deletions(-)
>
> diff --git a/drivers/net/cxgb3/cxgb3_ioctl.h b/drivers/net/cxgb3/cxgb3_ioctl.h
> index a942818..42d4bf6 100644
> --- a/drivers/net/cxgb3/cxgb3_ioctl.h
> +++ b/drivers/net/cxgb3/cxgb3_ioctl.h
> @@ -36,28 +36,17 @@
> * Ioctl commands specific to this driver.
> */
> enum {
> - CHELSIO_SETREG = 1024,
> - CHELSIO_GETREG,
> - CHELSIO_SETTPI,
> - CHELSIO_GETTPI,
> - CHELSIO_GETMTUTAB,
> + CHELSIO_GETMTUTAB = 1024,
> CHELSIO_SETMTUTAB,
> - CHELSIO_GETMTU,
> - CHELSIO_SET_PM,
> - CHELSIO_GET_PM,
> - CHELSIO_GET_TCAM,
> - CHELSIO_SET_TCAM,
> - CHELSIO_GET_TCB,
> CHELSIO_GET_MEM,
> CHELSIO_LOAD_FW,
> - CHELSIO_GET_PROTO,
> - CHELSIO_SET_PROTO,
> CHELSIO_SET_TRACE_FILTER,
> - CHELSIO_SET_QSET_PARAMS,
> CHELSIO_GET_QSET_PARAMS,
> - CHELSIO_SET_QSET_NUM,
> + CHELSIO_SET_QSET_PARAMS,
> CHELSIO_GET_QSET_NUM,
> - CHELSIO_SET_PKTSCHED,
> + CHELSIO_SET_QSET_NUM,
> + CHELSIO_GET_PM,
> + CHELSIO_SET_PM,
> };
>

I disagree. This is very bad.

1. Please do do change the values.
2. Explain why you are going to kill these ioctls.

Regards,

--yoshfuji

2007-02-22 12:34:51

by Divy Le ray

[permalink] [raw]
Subject: Re: [PATCH 2/7] cxgb3 - private ioctl cleanup

Hi Yoshfuji,
>> From: Divy Le Ray <[email protected]>
>>
>> Clean up some private ioctls.
>>
>> Signed-off-by: Divy Le Ray <[email protected]>
>> ---
>>
>> drivers/net/cxgb3/cxgb3_ioctl.h | 21 ++++-------------
>> drivers/net/cxgb3/cxgb3_main.c | 48 +++------------------------------------
>> 2 files changed, 9 insertions(+), 60 deletions(-)
>>
>> diff --git a/drivers/net/cxgb3/cxgb3_ioctl.h b/drivers/net/cxgb3/cxgb3_ioctl.h
>> index a942818..42d4bf6 100644
>> --- a/drivers/net/cxgb3/cxgb3_ioctl.h
>> +++ b/drivers/net/cxgb3/cxgb3_ioctl.h
>> @@ -36,28 +36,17 @@
>> * Ioctl commands specific to this driver.
>> */
>> enum {
>> - CHELSIO_SETREG = 1024,
>> - CHELSIO_GETREG,
>> - CHELSIO_SETTPI,
>> - CHELSIO_GETTPI,
>> - CHELSIO_GETMTUTAB,
>> + CHELSIO_GETMTUTAB = 1024,
>> CHELSIO_SETMTUTAB,
>> - CHELSIO_GETMTU,
>> - CHELSIO_SET_PM,
>> - CHELSIO_GET_PM,
>> - CHELSIO_GET_TCAM,
>> - CHELSIO_SET_TCAM,
>> - CHELSIO_GET_TCB,
>> CHELSIO_GET_MEM,
>> CHELSIO_LOAD_FW,
>> - CHELSIO_GET_PROTO,
>> - CHELSIO_SET_PROTO,
>> CHELSIO_SET_TRACE_FILTER,
>> - CHELSIO_SET_QSET_PARAMS,
>> CHELSIO_GET_QSET_PARAMS,
>> - CHELSIO_SET_QSET_NUM,
>> + CHELSIO_SET_QSET_PARAMS,
>> CHELSIO_GET_QSET_NUM,
>> - CHELSIO_SET_PKTSCHED,
>> + CHELSIO_SET_QSET_NUM,
>> + CHELSIO_GET_PM,
>> + CHELSIO_SET_PM,
>> };
>>
>>
>
> I disagree. This is very bad.
>
> 1. Please do do change the values.
> 2. Explain why you are going to kill these ioctls.
>
Jeff and Arjan have required that most of these ioctls go.
Please read:
http://marc.theaimsgroup.com/?l=linux-netdev&m=117029584904193&w=2

Cheers,
Divy

2007-02-22 12:39:10

by YOSHIFUJI Hideaki

[permalink] [raw]
Subject: Re: [PATCH 2/7] cxgb3 - private ioctl cleanup

In article <[email protected]> (at Thu, 22 Feb 2007 04:34:34 -0800), Divy Le Ray <[email protected]> says:


> > 1. Please do do change the values.
> > 2. Explain why you are going to kill these ioctls.
> >
> Jeff and Arjan have required that most of these ioctls go.
> Please read:
> http://marc.theaimsgroup.com/?l=linux-netdev&m=117029584904193&w=2

Even if you remove them, PLEASE DO NOT CHANGE THE VALUES,
unless you have very, very good reason.

--yoshfuji

2007-02-22 12:50:24

by Divy Le ray

[permalink] [raw]
Subject: Re: [PATCH 2/7] cxgb3 - private ioctl cleanup

YOSHIFUJI Hideaki / $B5HF#1QL@ wrote:
> In article <[email protected]> (at Thu, 22 Feb 2007 04:34:34 -0800), Divy Le Ray <[email protected]> says:
>
>
>
>>> 1. Please do do change the values.
>>> 2. Explain why you are going to kill these ioctls.
>>>
>>>
>> Jeff and Arjan have required that most of these ioctls go.
>> Please read:
>> http://marc.theaimsgroup.com/?l=linux-netdev&m=117029584904193&w=2
>>
>
> Even if you remove them, PLEASE DO NOT CHANGE THE VALUES,
> unless you have very, very good reason.
>

The cxgb3 driver has not yet appeared in a stable version of the linux
kernel.
The odds of breaking an application using these private ioctls are
pretty slim.
Since some cleanup was required, I chose not to let holes between the
values.

Cheers,
Divy


2007-02-22 14:11:19

by YOSHIFUJI Hideaki

[permalink] [raw]
Subject: Re: [PATCH 2/7] cxgb3 - private ioctl cleanup

In article <[email protected]> (at Thu, 22 Feb 2007 04:50:05 -0800), Divy Le Ray <[email protected]> says:

> > Even if you remove them, PLEASE DO NOT CHANGE THE VALUES,
> > unless you have very, very good reason.
:
> The cxgb3 driver has not yet appeared in a stable version of the linux
> kernel.
> The odds of breaking an application using these private ioctls are
> pretty slim.
> Since some cleanup was required, I chose not to let holes between the
> values.

Even so, if I were you, I would not have changed them and
I would even try keeping compatibility with old (out-kernel)
drivers.

--yoshfuji