X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=drivers%2Fisdn%2Fisdnloop%2Fisdnloop.c;h=33d33970041173e54fe52cd25f21fe7e5275abf3;hb=987b0145d94eecf292d8b301228356f44611ab7c;hp=544f41b413ed98683b8f0938ad509b0555d10010;hpb=70790a4b5cd6c0291e5b1a2836e2832d46036ac6;p=linux-2.6.git diff --git a/drivers/isdn/isdnloop/isdnloop.c b/drivers/isdn/isdnloop/isdnloop.c index 544f41b41..33d339700 100644 --- a/drivers/isdn/isdnloop/isdnloop.c +++ b/drivers/isdn/isdnloop/isdnloop.c @@ -13,6 +13,7 @@ #include #include #include +#include #include "isdnloop.h" static char *revision = "$Revision: 1.11.6.7 $"; @@ -1145,8 +1146,8 @@ isdnloop_command(isdn_ctrl * c, isdnloop_card * card) case ISDNLOOP_IOCTL_DEBUGVAR: return (ulong) card; case ISDNLOOP_IOCTL_STARTUP: - if ((i = verify_area(VERIFY_READ, (void *) a, sizeof(isdnloop_sdef)))) - return i; + if (!access_ok(VERIFY_READ, (void *) a, sizeof(isdnloop_sdef))) + return -EFAULT; return (isdnloop_start(card, (isdnloop_sdef *) a)); break; case ISDNLOOP_IOCTL_ADDCARD: @@ -1160,10 +1161,9 @@ isdnloop_command(isdn_ctrl * c, isdnloop_card * card) if (a) { if (!card->leased) { card->leased = 1; - while (card->ptype == ISDN_PTYPE_UNKNOWN) { - schedule_timeout(10); - } - schedule_timeout(10); + while (card->ptype == ISDN_PTYPE_UNKNOWN) + schedule_timeout_interruptible(10); + schedule_timeout_interruptible(10); sprintf(cbuf, "00;FV2ON\n01;EAZ1\n02;EAZ2\n"); i = isdnloop_writecmd(cbuf, strlen(cbuf), 0, card); printk(KERN_INFO