From 315c77b4fe78c00ad732b456c5f4056191dd99ad Mon Sep 17 00:00:00 2001 From: Kai Germaschewski Date: Sun, 17 Nov 2002 02:37:06 -0600 Subject: ISDN: Introduce .owner The current way of passing a command to inc the module use count is inherently racy, so expose a struct module *owner instead (which makes it possible to fix this race, though that's not done yet). Also, add some missing #include --- include/linux/isdnif.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'include/linux') diff --git a/include/linux/isdnif.h b/include/linux/isdnif.h index 342dd971b1b6..09583b356f80 100644 --- a/include/linux/isdnif.h +++ b/include/linux/isdnif.h @@ -173,8 +173,6 @@ typedef struct #define ISDN_CMD_GETL2 11 /* Get B-Chan. Layer2-Parameter */ #define ISDN_CMD_SETL3 12 /* Set B-Chan. Layer3-Parameter */ #define ISDN_CMD_GETL3 13 /* Get B-Chan. Layer3-Parameter */ -#define ISDN_CMD_LOCK 14 /* Signal usage by upper levels */ -#define ISDN_CMD_UNLOCK 15 /* Release usage-lock */ #define ISDN_CMD_SUSPEND 16 /* Suspend connection */ #define ISDN_CMD_RESUME 17 /* Resume connection */ #define ISDN_CMD_PROCEED 18 /* Proceed with call establishment */ @@ -423,6 +421,8 @@ typedef struct { * */ typedef struct { + struct module *owner; + /* Number of channels supported by this driver */ int channels; -- cgit v1.2.3 From 226abcaf8282cc100b76a24ea7495d0e16c0da19 Mon Sep 17 00:00:00 2001 From: Kai Germaschewski Date: Sun, 17 Nov 2002 05:08:04 -0600 Subject: ISDN: Remove unused commands There's a number of commands which are never used by the link layer, so no reason to have them stick around. --- drivers/isdn/act2000/module.c | 27 -------- drivers/isdn/capi/capidrv.c | 25 -------- drivers/isdn/eicon/eicon_mod.c | 27 -------- drivers/isdn/hardware/eicon/i4lididrv.c | 27 -------- drivers/isdn/hisax/callc.c | 14 ----- drivers/isdn/icn/icn.c | 26 -------- drivers/isdn/isdnloop/isdnloop.c | 26 -------- drivers/isdn/pcbit/drv.c | 11 ---- drivers/isdn/sc/command.c | 105 +++----------------------------- drivers/isdn/tpam/tpam_commands.c | 27 -------- include/linux/isdnif.h | 7 --- 11 files changed, 7 insertions(+), 315 deletions(-) (limited to 'include/linux') diff --git a/drivers/isdn/act2000/module.c b/drivers/isdn/act2000/module.c index 3837b95385b5..130d82dd1f93 100644 --- a/drivers/isdn/act2000/module.c +++ b/drivers/isdn/act2000/module.c @@ -398,12 +398,6 @@ act2000_command(act2000_card * card, isdn_ctrl * c) break; chan->l2prot = (c->arg >> 8); return 0; - case ISDN_CMD_GETL2: - if (!card->flags & ACT2000_FLAGS_RUNNING) - return -ENODEV; - if (!(chan = find_channel(card, c->arg & 0x0f))) - break; - return chan->l2prot; case ISDN_CMD_SETL3: if (!card->flags & ACT2000_FLAGS_RUNNING) return -ENODEV; @@ -415,27 +409,6 @@ act2000_command(act2000_card * card, isdn_ctrl * c) break; chan->l3prot = (c->arg >> 8); return 0; - case ISDN_CMD_GETL3: - if (!card->flags & ACT2000_FLAGS_RUNNING) - return -ENODEV; - if (!(chan = find_channel(card, c->arg & 0x0f))) - break; - return chan->l3prot; - case ISDN_CMD_GETEAZ: - if (!card->flags & ACT2000_FLAGS_RUNNING) - return -ENODEV; - printk(KERN_DEBUG "act2000 CMD_GETEAZ not implemented\n"); - return 0; - case ISDN_CMD_SETSIL: - if (!card->flags & ACT2000_FLAGS_RUNNING) - return -ENODEV; - printk(KERN_DEBUG "act2000 CMD_SETSIL not implemented\n"); - return 0; - case ISDN_CMD_GETSIL: - if (!card->flags & ACT2000_FLAGS_RUNNING) - return -ENODEV; - printk(KERN_DEBUG "act2000 CMD_GETSIL not implemented\n"); - return 0; } return -EINVAL; diff --git a/drivers/isdn/capi/capidrv.c b/drivers/isdn/capi/capidrv.c index 680b271c25e1..bbe41cbd73d1 100644 --- a/drivers/isdn/capi/capidrv.c +++ b/drivers/isdn/capi/capidrv.c @@ -1787,31 +1787,6 @@ static int capidrv_command(isdn_ctrl * c, capidrv_contr * card) bchan->msn[0] = 0; return 0; - case ISDN_CMD_GETL2: - if (debugmode) - printk(KERN_DEBUG "capidrv-%d: ISDN_CMD_GETL2\n", - card->contrnr); - return -ENODEV; - case ISDN_CMD_GETL3: - if (debugmode) - printk(KERN_DEBUG "capidrv-%d: ISDN_CMD_GETL3\n", - card->contrnr); - return -ENODEV; - case ISDN_CMD_GETEAZ: - if (debugmode) - printk(KERN_DEBUG "capidrv-%d: ISDN_CMD_GETEAZ\n", - card->contrnr); - return -ENODEV; - case ISDN_CMD_SETSIL: - if (debugmode) - printk(KERN_DEBUG "capidrv-%d: ISDN_CMD_SETSIL\n", - card->contrnr); - return -ENODEV; - case ISDN_CMD_GETSIL: - if (debugmode) - printk(KERN_DEBUG "capidrv-%d: ISDN_CMD_GETSIL\n", - card->contrnr); - return -ENODEV; default: printk(KERN_ERR "capidrv-%d: ISDN_CMD_%d, Huh?\n", card->contrnr, c->command); diff --git a/drivers/isdn/eicon/eicon_mod.c b/drivers/isdn/eicon/eicon_mod.c index 9fc69b838fd8..54edc7d3f470 100644 --- a/drivers/isdn/eicon/eicon_mod.c +++ b/drivers/isdn/eicon/eicon_mod.c @@ -529,12 +529,6 @@ eicon_command(eicon_card * card, isdn_ctrl * c) break; chan->l2prot = (c->arg >> 8); return 0; - case ISDN_CMD_GETL2: - if (!card->flags & EICON_FLAGS_RUNNING) - return -ENODEV; - if (!(chan = find_channel(card, c->arg & 0x1f))) - break; - return chan->l2prot; case ISDN_CMD_SETL3: if (!card->flags & EICON_FLAGS_RUNNING) return -ENODEV; @@ -548,27 +542,6 @@ eicon_command(eicon_card * card, isdn_ctrl * c) } #endif return 0; - case ISDN_CMD_GETL3: - if (!card->flags & EICON_FLAGS_RUNNING) - return -ENODEV; - if (!(chan = find_channel(card, c->arg & 0x1f))) - break; - return chan->l3prot; - case ISDN_CMD_GETEAZ: - if (!card->flags & EICON_FLAGS_RUNNING) - return -ENODEV; - eicon_log(card, 1, "eicon CMD_GETEAZ not implemented\n"); - return 0; - case ISDN_CMD_SETSIL: - if (!card->flags & EICON_FLAGS_RUNNING) - return -ENODEV; - eicon_log(card, 1, "eicon CMD_SETSIL not implemented\n"); - return 0; - case ISDN_CMD_GETSIL: - if (!card->flags & EICON_FLAGS_RUNNING) - return -ENODEV; - eicon_log(card, 1, "eicon CMD_GETSIL not implemented\n"); - return 0; #ifdef CONFIG_ISDN_TTY_FAX case ISDN_CMD_FAXCMD: if (!card->flags & EICON_FLAGS_RUNNING) diff --git a/drivers/isdn/hardware/eicon/i4lididrv.c b/drivers/isdn/hardware/eicon/i4lididrv.c index b0dc3a7c148a..d086cdd17d00 100644 --- a/drivers/isdn/hardware/eicon/i4lididrv.c +++ b/drivers/isdn/hardware/eicon/i4lididrv.c @@ -589,12 +589,6 @@ eicon_command(eicon_card * card, isdn_ctrl * c) chan->l2prot = (c->arg >> 8); memcpy(chan->a_para, c->parm.aux.para, sizeof(chan->a_para)); return 0; - case ISDN_CMD_GETL2: - if (!card->flags & EICON_FLAGS_RUNNING) - return -ENODEV; - if (!(chan = find_channel(card, c->arg & 0x1f))) - break; - return chan->l2prot; case ISDN_CMD_SETL3: if (!card->flags & EICON_FLAGS_RUNNING) return -ENODEV; @@ -608,27 +602,6 @@ eicon_command(eicon_card * card, isdn_ctrl * c) } #endif return 0; - case ISDN_CMD_GETL3: - if (!card->flags & EICON_FLAGS_RUNNING) - return -ENODEV; - if (!(chan = find_channel(card, c->arg & 0x1f))) - break; - return chan->l3prot; - case ISDN_CMD_GETEAZ: - if (!card->flags & EICON_FLAGS_RUNNING) - return -ENODEV; - eicon_log(card, 1, "%s: CMD_GETEAZ not implemented\n", DRIVERLNAME); - return 0; - case ISDN_CMD_SETSIL: - if (!card->flags & EICON_FLAGS_RUNNING) - return -ENODEV; - eicon_log(card, 1, "%s: CMD_SETSIL not implemented\n",DRIVERLNAME); - return 0; - case ISDN_CMD_GETSIL: - if (!card->flags & EICON_FLAGS_RUNNING) - return -ENODEV; - eicon_log(card, 1, "%s: CMD_GETSIL not implemented\n", DRIVERLNAME); - return 0; #ifdef CONFIG_ISDN_TTY_FAX case ISDN_CMD_FAXCMD: if (!card->flags & EICON_FLAGS_RUNNING) diff --git a/drivers/isdn/hisax/callc.c b/drivers/isdn/hisax/callc.c index 9544e40f85c8..13f9297dcaa8 100644 --- a/drivers/isdn/hisax/callc.c +++ b/drivers/isdn/hisax/callc.c @@ -1605,14 +1605,6 @@ HiSax_command(isdn_ctrl * ic) printk(KERN_DEBUG "HiSax: delay card %d set to %d ms\n", csta->cardnr + 1, num); break; - case (3): - for (i = 0; i < *(unsigned int *) ic->parm.num; i++) - HiSax_mod_dec_use_count(NULL); - break; - case (4): - for (i = 0; i < *(unsigned int *) ic->parm.num; i++) - HiSax_mod_inc_use_count(NULL); - break; case (5): /* set card in leased mode */ num = *(unsigned int *) ic->parm.num; if ((num <1) || (num > 2)) { @@ -1675,12 +1667,6 @@ HiSax_command(isdn_ctrl * ic) } L4L3(chanp->d_st, DL_ESTABLISH | REQUEST, NULL); break; -#ifdef MODULE - case (55): - MOD_USE_COUNT = 0; - HiSax_mod_inc_use_count(NULL); - break; -#endif /* MODULE */ case (11): num = csta->debug & DEB_DLOG_HEX; csta->debug = *(unsigned int *) ic->parm.num; diff --git a/drivers/isdn/icn/icn.c b/drivers/isdn/icn/icn.c index b7adac06aab5..751d9628ff43 100644 --- a/drivers/isdn/icn/icn.c +++ b/drivers/isdn/icn/icn.c @@ -1441,36 +1441,10 @@ icn_command(isdn_ctrl * c, icn_card * card) card->l2_proto[a & 255] = (a >> 8); } break; - case ISDN_CMD_GETL2: - if (!card->flags & ICN_FLAGS_RUNNING) - return -ENODEV; - if ((c->arg & 255) < ICN_BCH) - return card->l2_proto[c->arg & 255]; - else - return -ENODEV; case ISDN_CMD_SETL3: if (!card->flags & ICN_FLAGS_RUNNING) return -ENODEV; return 0; - case ISDN_CMD_GETL3: - if (!card->flags & ICN_FLAGS_RUNNING) - return -ENODEV; - if ((c->arg & 255) < ICN_BCH) - return ISDN_PROTO_L3_TRANS; - else - return -ENODEV; - case ISDN_CMD_GETEAZ: - if (!card->flags & ICN_FLAGS_RUNNING) - return -ENODEV; - break; - case ISDN_CMD_SETSIL: - if (!card->flags & ICN_FLAGS_RUNNING) - return -ENODEV; - break; - case ISDN_CMD_GETSIL: - if (!card->flags & ICN_FLAGS_RUNNING) - return -ENODEV; - break; default: return -EINVAL; } diff --git a/drivers/isdn/isdnloop/isdnloop.c b/drivers/isdn/isdnloop/isdnloop.c index d440b17f95c2..c31b71a324aa 100644 --- a/drivers/isdn/isdnloop/isdnloop.c +++ b/drivers/isdn/isdnloop/isdnloop.c @@ -1345,36 +1345,10 @@ isdnloop_command(isdn_ctrl * c, isdnloop_card * card) card->l2_proto[a & 255] = (a >> 8); } break; - case ISDN_CMD_GETL2: - if (!card->flags & ISDNLOOP_FLAGS_RUNNING) - return -ENODEV; - if ((c->arg & 255) < ISDNLOOP_BCH) - return card->l2_proto[c->arg & 255]; - else - return -ENODEV; case ISDN_CMD_SETL3: if (!card->flags & ISDNLOOP_FLAGS_RUNNING) return -ENODEV; return 0; - case ISDN_CMD_GETL3: - if (!card->flags & ISDNLOOP_FLAGS_RUNNING) - return -ENODEV; - if ((c->arg & 255) < ISDNLOOP_BCH) - return ISDN_PROTO_L3_TRANS; - else - return -ENODEV; - case ISDN_CMD_GETEAZ: - if (!card->flags & ISDNLOOP_FLAGS_RUNNING) - return -ENODEV; - break; - case ISDN_CMD_SETSIL: - if (!card->flags & ISDNLOOP_FLAGS_RUNNING) - return -ENODEV; - break; - case ISDN_CMD_GETSIL: - if (!card->flags & ISDNLOOP_FLAGS_RUNNING) - return -ENODEV; - break; default: return -EINVAL; } diff --git a/drivers/isdn/pcbit/drv.c b/drivers/isdn/pcbit/drv.c index f9000ebaaf33..d9ad2e18cac6 100644 --- a/drivers/isdn/pcbit/drv.c +++ b/drivers/isdn/pcbit/drv.c @@ -277,9 +277,6 @@ int pcbit_command(isdn_ctrl* ctl) case ISDN_CMD_SETL2: chan->proto = (ctl->arg >> 8); break; - case ISDN_CMD_GETL2: - return chan->proto; - break; case ISDN_CMD_CLREAZ: pcbit_clear_msn(dev); break; @@ -290,14 +287,6 @@ int pcbit_command(isdn_ctrl* ctl) if ((ctl->arg >> 8) != ISDN_PROTO_L3_TRANS) printk(KERN_DEBUG "L3 protocol unknown\n"); break; - case ISDN_CMD_GETL3: - return ISDN_PROTO_L3_TRANS; - break; - case ISDN_CMD_GETEAZ: - case ISDN_CMD_SETSIL: - case ISDN_CMD_GETSIL: - printk(KERN_DEBUG "pcbit_command: code %d not implemented yet\n", ctl->command); - break; default: printk(KERN_DEBUG "pcbit_command: unknown command\n"); break; diff --git a/drivers/isdn/sc/command.c b/drivers/isdn/sc/command.c index 505caccfabf9..54ed228d4ecd 100644 --- a/drivers/isdn/sc/command.c +++ b/drivers/isdn/sc/command.c @@ -27,13 +27,8 @@ int hangup(int card, unsigned long channel); int answer(int card, unsigned long channel); int clreaz(int card, unsigned long channel); int seteaz(int card, unsigned long channel, char *); -int geteaz(int card, unsigned long channel, char *); -int setsil(int card, unsigned long channel, char *); -int getsil(int card, unsigned long channel, char *); int setl2(int card, unsigned long arg); -int getl2(int card, unsigned long arg); int setl3(int card, unsigned long arg); -int getl3(int card, unsigned long arg); int acceptb(int card, unsigned long channel); extern int cinst; @@ -61,17 +56,17 @@ static char *commands[] = { "ISDN_CMD_IOCTL", "ISDN_CMD_HANGUP", "ISDN_CMD_CLREAZ", "ISDN_CMD_SETEAZ", - "ISDN_CMD_GETEAZ", - "ISDN_CMD_SETSIL", - "ISDN_CMD_GETSIL", + NULL, + NULL, + NULL, "ISDN_CMD_SETL2", - "ISDN_CMD_GETL2", + NULL, "ISDN_CMD_SETL3", - "ISDN_CMD_GETL3", NULL, NULL, - "ISDN_CMD_SUSPEND", - "ISDN_CMD_RESUME" }; + NULL, + NULL, + NULL, }; /* * Translates ISDN4Linux protocol codes to strings for debug messages @@ -142,20 +137,10 @@ int command(isdn_ctrl *cmd) return clreaz(card, cmd->arg); case ISDN_CMD_SETEAZ: return seteaz(card, cmd->arg, cmd->parm.num); - case ISDN_CMD_GETEAZ: - return geteaz(card, cmd->arg, cmd->parm.num); - case ISDN_CMD_SETSIL: - return setsil(card, cmd->arg, cmd->parm.num); - case ISDN_CMD_GETSIL: - return getsil(card, cmd->arg, cmd->parm.num); case ISDN_CMD_SETL2: return setl2(card, cmd->arg); - case ISDN_CMD_GETL2: - return getl2(card, cmd->arg); case ISDN_CMD_SETL3: return setl3(card, cmd->arg); - case ISDN_CMD_GETL3: - return getl3(card, cmd->arg); default: return -EINVAL; } @@ -351,23 +336,6 @@ int setl2(int card, unsigned long arg) return 0; } -/* - * Get the layer 2 protocol - */ -int getl2(int card, unsigned long channel) { - - if(!IS_VALID_CARD(card)) { - pr_debug("Invalid param: %d is not a valid card id\n", card); - return -ENODEV; - } - - pr_debug("%s: Level 2 protocol for channel %d reported as %s\n", - adapter[card]->devicename, channel+1, - l2protos[adapter[card]->channel[channel].l2_proto]); - - return adapter[card]->channel[channel].l2_proto; -} - /* * Set the layer 3 protocol */ @@ -386,23 +354,6 @@ int setl3(int card, unsigned long channel) return 0; } -/* - * Get the layer 3 protocol - */ -int getl3(int card, unsigned long arg) -{ - if(!IS_VALID_CARD(card)) { - pr_debug("Invalid param: %d is not a valid card id\n", card); - return -ENODEV; - } - - pr_debug("%s: Level 3 protocol for channel %d reported as %s\n", - adapter[card]->devicename, arg+1, - l3protos[adapter[card]->channel[arg].l3_proto]); - return adapter[card]->channel[arg].l3_proto; -} - - int acceptb(int card, unsigned long channel) { if(!IS_VALID_CARD(card)) { @@ -451,48 +402,6 @@ int seteaz(int card, unsigned long arg, char *num) return 0; } -int geteaz(int card, unsigned long arg, char *num) -{ - if(!IS_VALID_CARD(card)) { - pr_debug("Invalid param: %d is not a valid card id\n", card); - return -ENODEV; - } - - strcpy(num, adapter[card]->channel[arg].eazlist); - pr_debug("%s: EAZ List for channel %d reported: %s\n", - adapter[card]->devicename, arg+1, - adapter[card]->channel[arg].eazlist); - return 0; -} - -int setsil(int card, unsigned long arg, char *num) -{ - if(!IS_VALID_CARD(card)) { - pr_debug("Invalid param: %d is not a valid card id\n", card); - return -ENODEV; - } - - strcpy(adapter[card]->channel[arg].sillist, num); - pr_debug("%s: Service Indicators for channel %d set: %s\n", - adapter[card]->devicename, arg+1, - adapter[card]->channel[arg].sillist); - return 0; -} - -int getsil(int card, unsigned long arg, char *num) -{ - if(!IS_VALID_CARD(card)) { - pr_debug("Invalid param: %d is not a valid card id\n", card); - return -ENODEV; - } - - strcpy(num, adapter[card]->channel[arg].sillist); - pr_debug("%s: SIL for channel %d reported: %s\n", - adapter[card]->devicename, arg+1, - adapter[card]->channel[arg].sillist); - return 0; -} - int reset(int card) { unsigned long flags; diff --git a/drivers/isdn/tpam/tpam_commands.c b/drivers/isdn/tpam/tpam_commands.c index cc035a8a8e03..d4c4339ab166 100644 --- a/drivers/isdn/tpam/tpam_commands.c +++ b/drivers/isdn/tpam/tpam_commands.c @@ -27,7 +27,6 @@ static int tpam_command_ioctl_dsprun(tpam_card *); static int tpam_command_ioctl_loopmode(tpam_card *, u8); static int tpam_command_dial(tpam_card *, u32, u8 *); static int tpam_command_setl2(tpam_card *, u32, u8); -static int tpam_command_getl2(tpam_card *, u32); static int tpam_command_acceptd(tpam_card *, u32); static int tpam_command_acceptb(tpam_card *, u32); static int tpam_command_hangup(tpam_card *, u32); @@ -93,8 +92,6 @@ int tpam_command(isdn_ctrl *c) { case ISDN_CMD_SETL2: return tpam_command_setl2(card, c->arg & 0xff, c->arg >> 8); - case ISDN_CMD_GETL2: - return tpam_command_getl2(card, c->arg); case ISDN_CMD_PROCEED: return tpam_command_proceed(card, c->arg); default: @@ -364,30 +361,6 @@ static int tpam_command_setl2(tpam_card *card, u32 channel, u8 proto) { return 0; } -/* - * Return the level2 protocol (modem or HDLC). - * - * card: the board - * channel: the channel number - * - * Return: ISDN_PROTO_L2_HDLC/MODEM if OK, <0 if error. - */ -static int tpam_command_getl2(tpam_card *card, u32 channel) { - - dprintk("TurboPAM(tpam_command_getl2): card=%d, channel=%lu\n", - card->id, (unsigned long)channel); - - /* board must be running */ - if (!card->running) - return -ENODEV; - - /* return the current mode */ - if (card->channels[channel].realhdlc) - return ISDN_PROTO_L2_HDLC; - else - return ISDN_PROTO_L2_MODEM; -} - /* * Accept a D-channel connection (incoming connection). This function * builds and sends a CConnectRsp message and signals DCONN to the ISDN diff --git a/include/linux/isdnif.h b/include/linux/isdnif.h index 09583b356f80..fed344ec7a41 100644 --- a/include/linux/isdnif.h +++ b/include/linux/isdnif.h @@ -166,15 +166,8 @@ typedef struct #define ISDN_CMD_HANGUP 4 /* Hangup */ #define ISDN_CMD_CLREAZ 5 /* Clear EAZ(s) of channel */ #define ISDN_CMD_SETEAZ 6 /* Set EAZ(s) of channel */ -#define ISDN_CMD_GETEAZ 7 /* Get EAZ(s) of channel */ -#define ISDN_CMD_SETSIL 8 /* Set Service-Indicator-List of channel */ -#define ISDN_CMD_GETSIL 9 /* Get Service-Indicator-List of channel */ #define ISDN_CMD_SETL2 10 /* Set B-Chan. Layer2-Parameter */ -#define ISDN_CMD_GETL2 11 /* Get B-Chan. Layer2-Parameter */ #define ISDN_CMD_SETL3 12 /* Set B-Chan. Layer3-Parameter */ -#define ISDN_CMD_GETL3 13 /* Get B-Chan. Layer3-Parameter */ -#define ISDN_CMD_SUSPEND 16 /* Suspend connection */ -#define ISDN_CMD_RESUME 17 /* Resume connection */ #define ISDN_CMD_PROCEED 18 /* Proceed with call establishment */ #define ISDN_CMD_ALERT 19 /* Alert after Proceeding */ #define ISDN_CMD_REDIR 20 /* Redir a incoming call */ -- cgit v1.2.3