summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKai Germaschewski <kai@tp1.ruhr-uni-bochum.de>2002-10-06 05:44:10 -0500
committerKai Germaschewski <kai@tp1.ruhr-uni-bochum.de>2002-10-06 05:44:10 -0500
commit0d4990181f70cf58006b9247daf19c2da2a9abc3 (patch)
treebc09923d329e04279309c2222aac79b8a1a40eb8
parent61fa33282c906f511e10f881322202f392cb2b4a (diff)
ISDN: Replace rx_netdev, st_netdev by a single field
For some unknown reason, isdn_net kept two pointers back from the channel to the associated isdn_net_dev, one is enough, though.
-rw-r--r--drivers/isdn/i4l/isdn_common.c27
-rw-r--r--drivers/isdn/i4l/isdn_common.h6
-rw-r--r--drivers/isdn/i4l/isdn_net.c16
3 files changed, 14 insertions, 35 deletions
diff --git a/drivers/isdn/i4l/isdn_common.c b/drivers/isdn/i4l/isdn_common.c
index 7fec01fe0f64..5a2b4b527a29 100644
--- a/drivers/isdn/i4l/isdn_common.c
+++ b/drivers/isdn/i4l/isdn_common.c
@@ -46,8 +46,7 @@ struct isdn_slot {
unsigned long obytes; /* Statistics outgoing bytes */
struct isdn_v110 iv110; /* For V.110 */
int m_idx; /* Index for mdm.... */
- isdn_net_dev *rx_netdev; /* rx netdev-pointers */
- isdn_net_dev *st_netdev; /* stat netdev-pointers */
+ isdn_net_dev *idev; /* pointer to isdn_net_dev */
};
static struct isdn_slot slot[ISDN_MAX_CHANNELS];
@@ -2067,35 +2066,19 @@ isdn_slot_num(int sl)
}
void
-isdn_slot_set_rx_netdev(int sl, isdn_net_dev *nd)
+isdn_slot_set_idev(int sl, isdn_net_dev *idev)
{
BUG_ON(sl < 0);
- slot[sl].rx_netdev = nd;
+ slot[sl].idev = idev;
}
isdn_net_dev *
-isdn_slot_rx_netdev(int sl)
+isdn_slot_idev(int sl)
{
BUG_ON(sl < 0);
- return slot[sl].rx_netdev;
-}
-
-void
-isdn_slot_set_st_netdev(int sl, isdn_net_dev *nd)
-{
- BUG_ON(sl < 0);
-
- slot[sl].st_netdev = nd;
-}
-
-isdn_net_dev *
-isdn_slot_st_netdev(int sl)
-{
- BUG_ON(sl < 0);
-
- return slot[sl].st_netdev;
+ return slot[sl].idev;
}
int
diff --git a/drivers/isdn/i4l/isdn_common.h b/drivers/isdn/i4l/isdn_common.h
index f151fcc02685..d0ea6f37088c 100644
--- a/drivers/isdn/i4l/isdn_common.h
+++ b/drivers/isdn/i4l/isdn_common.h
@@ -100,8 +100,6 @@ extern void isdn_slot_set_usage(int slot, int usage);
extern char *isdn_slot_num(int slot);
extern int isdn_slot_m_idx(int slot);
extern void isdn_slot_set_m_idx(int slot, int midx);
-extern void isdn_slot_set_rx_netdev(int sl, isdn_net_dev *nd);
-extern void isdn_slot_set_st_netdev(int sl, isdn_net_dev *nd);
-extern isdn_net_dev *isdn_slot_rx_netdev(int sl);
-extern isdn_net_dev *isdn_slot_st_netdev(int sl);
+extern void isdn_slot_set_idev(int sl, isdn_net_dev *);
+extern isdn_net_dev *isdn_slot_idev(int sl);
extern int isdn_hard_header_len(void);
diff --git a/drivers/isdn/i4l/isdn_net.c b/drivers/isdn/i4l/isdn_net.c
index 88745cacf437..20fdd1408dff 100644
--- a/drivers/isdn/i4l/isdn_net.c
+++ b/drivers/isdn/i4l/isdn_net.c
@@ -216,8 +216,7 @@ isdn_net_unbind_channel(isdn_net_dev *idev)
idev->dialstate = ST_NULL;
- isdn_slot_set_rx_netdev(idev->isdn_slot, NULL);
- isdn_slot_set_st_netdev(idev->isdn_slot, NULL);
+ isdn_slot_set_idev(idev->isdn_slot, NULL);
isdn_slot_free(idev->isdn_slot, ISDN_USAGE_NET);
idev->isdn_slot = -1;
@@ -239,8 +238,7 @@ isdn_net_bind_channel(isdn_net_dev *idev, int idx)
cli();
idev->isdn_slot = idx;
- isdn_slot_set_rx_netdev(idev->isdn_slot, idev);
- isdn_slot_set_st_netdev(idev->isdn_slot, idev);
+ isdn_slot_set_idev(idev->isdn_slot, idev);
if (mlp->ops->bind)
retval = mlp->ops->bind(idev);
@@ -296,7 +294,7 @@ static void isdn_net_connected(isdn_net_dev *idev)
int
isdn_net_stat_callback(int idx, isdn_ctrl *c)
{
- isdn_net_dev *idev = isdn_slot_st_netdev(idx);
+ isdn_net_dev *idev = isdn_slot_idev(idx);
if (!idev) {
HERE;
@@ -547,7 +545,6 @@ isdn_net_event_in_wait_bconn(isdn_net_dev *idev, int pr, void *arg)
break;
case ISDN_STAT_BCONN:
del_timer(&idev->dial_timer);
- isdn_slot_set_rx_netdev(idev->isdn_slot, idev);
isdn_net_connected(idev);
return 1;
case ISDN_STAT_DHUP:
@@ -939,11 +936,12 @@ isdn_net_receive(isdn_net_dev *idev, struct sk_buff *skb)
int
isdn_net_rcv_skb(int idx, struct sk_buff *skb)
{
- isdn_net_dev *idev = isdn_slot_rx_netdev(idx);
+ isdn_net_dev *idev = isdn_slot_idev(idx);
- if (!idev)
+ if (!idev) {
+ HERE;
return 0;
-
+ }
if (!isdn_net_online(idev))
return 0;