dahdi: Issue warning if DAHDI_INDIRECT ioctl is used.

DAHDI_INDIRECT is only used when setting up pciradio channels.
dahdi_cfg no longer should need DAHDI_INDIRECT since revision 9352.

Review: https://reviewboard.asterisk.org/r/905/

Signed-off-by: Shaun Ruffell <sruffell@digium.com>

git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@9365 a0bf4364-ded3-4de4-8d8a-66a801d63aff
This commit is contained in:
Shaun Ruffell
2010-09-20 20:33:19 +00:00
parent d5e718ec03
commit 3e6b113991

View File

@@ -4410,15 +4410,39 @@ static int dahdi_ctl_ioctl(struct file *file, unsigned int cmd, unsigned long da
void __user * const user_data = (void __user *)data;
int rv;
struct dahdi_span *s;
switch(cmd) {
struct dahdi_chan *chan;
switch (cmd) {
case DAHDI_INDIRECT:
{
struct dahdi_indirect_data ind;
void *old;
static bool warned;
if (copy_from_user(&ind, user_data, sizeof(ind)))
if (copy_from_user(&ind, (void __user *)data, sizeof(ind)))
return -EFAULT;
VALID_CHANNEL(ind.chan);
return dahdi_chan_ioctl(file, ind.op, (unsigned long) ind.data, ind.chan);
chan = chans[ind.chan];
if (!chan)
return -EINVAL;
if (!warned) {
warned = true;
module_printk(KERN_WARNING, "Using deprecated " \
"DAHDI_INDIRECT. Please update " \
"dahdi-tools.\n");
}
/* Since dahdi_chan_ioctl expects to be called on file handles
* associated with channels, we'll temporarily set the
* private_data pointer on the ctl file handle just for this
* call. */
old = file->private_data;
file->private_data = chan;
res = dahdi_chan_ioctl(file, ind.op, (unsigned long) ind.data, ind.chan);
file->private_data = old;
return res;
}
case DAHDI_SPANCONFIG:
{