change for 2.1.86 (removing FREE_READ/FREE_WRITE from [dev]_kfree_skb()
This commit is contained in:
parent
2bc2e218d4
commit
dfed11997a
|
@ -20,6 +20,11 @@
|
|||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Log$
|
||||
* Revision 1.4 1997/10/09 22:23:00 fritz
|
||||
* New HL<->LL interface:
|
||||
* New BSENT callback with nr. of bytes included.
|
||||
* Sending without ACK.
|
||||
*
|
||||
* Revision 1.3 1997/09/25 17:25:38 fritz
|
||||
* Support for adding cards at runtime.
|
||||
* Support for new Firmware.
|
||||
|
@ -417,7 +422,7 @@ isa_send(act2000_card * card)
|
|||
msg->msg.data_b3_req.flags = card->need_b3ack;
|
||||
skb_queue_tail(&card->ackq, skb);
|
||||
} else
|
||||
dev_kfree_skb(skb, FREE_WRITE);
|
||||
dev_kfree_skb(skb);
|
||||
card->sbuf = NULL;
|
||||
#if 0
|
||||
printk(KERN_DEBUG "isa_send: %d bytes\n", l);
|
||||
|
|
|
@ -21,6 +21,11 @@
|
|||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Log$
|
||||
* Revision 1.5 1997/10/09 22:23:02 fritz
|
||||
* New HL<->LL interface:
|
||||
* New BSENT callback with nr. of bytes included.
|
||||
* Sending without ACK.
|
||||
*
|
||||
* Revision 1.4 1997/09/25 17:25:39 fritz
|
||||
* Support for adding cards at runtime.
|
||||
* Support for new Firmware.
|
||||
|
@ -637,7 +642,7 @@ handle_ack(act2000_card *card, act2000_chan *chan, __u8 blocknr) {
|
|||
chan->queued -= m->msg.data_b3_req.datalen;
|
||||
if (m->msg.data_b3_req.flags)
|
||||
ret = m->msg.data_b3_req.datalen;
|
||||
dev_kfree_skb(tmp, FREE_WRITE);
|
||||
dev_kfree_skb(tmp);
|
||||
if (chan->queued < 0)
|
||||
chan->queued = 0;
|
||||
return ret;
|
||||
|
@ -960,7 +965,7 @@ actcapi_dispatch(act2000_card *card)
|
|||
printk(KERN_WARNING "act2000: UNHANDLED Message %04x\n", ccmd);
|
||||
break;
|
||||
}
|
||||
dev_kfree_skb(skb, FREE_READ);
|
||||
dev_kfree_skb(skb);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -20,6 +20,9 @@
|
|||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Log$
|
||||
* Revision 1.6 1998/01/31 22:10:42 keil
|
||||
* changes for 2.1.82
|
||||
*
|
||||
* Revision 1.5 1997/10/09 22:23:04 fritz
|
||||
* New HL<->LL interface:
|
||||
* New BSENT callback with nr. of bytes included.
|
||||
|
@ -507,7 +510,7 @@ act2000_sendbuf(act2000_card *card, int channel, int ack, struct sk_buff *skb)
|
|||
return 0;
|
||||
}
|
||||
}
|
||||
dev_kfree_skb(skb, FREE_WRITE);
|
||||
dev_kfree_skb(skb);
|
||||
msg = (actcapi_msg *)skb_push(xmit_skb, 19);
|
||||
msg->hdr.len = 19 + len;
|
||||
msg->hdr.applicationID = 1;
|
||||
|
|
|
@ -7,6 +7,9 @@
|
|||
*
|
||||
*
|
||||
* $Log$
|
||||
* Revision 1.1 1998/02/03 23:20:51 keil
|
||||
* New files for SPARC isdn support
|
||||
*
|
||||
* Revision 1.1 1998/01/08 04:17:12 baccala
|
||||
* ISDN comes to the Sparc. Key points:
|
||||
*
|
||||
|
@ -113,7 +116,7 @@ Bchan_xmt_bh(struct BCState *bcs)
|
|||
struct sk_buff *skb;
|
||||
|
||||
if (bcs->hw.amd7930.tx_skb != NULL) {
|
||||
dev_kfree_skb(bcs->hw.amd7930.tx_skb, FREE_WRITE);
|
||||
dev_kfree_skb(bcs->hw.amd7930.tx_skb);
|
||||
bcs->hw.amd7930.tx_skb = NULL;
|
||||
}
|
||||
|
||||
|
@ -173,7 +176,7 @@ Bchan_fill_fifo(struct BCState *bcs, struct sk_buff *skb)
|
|||
bcs->hw.amd7930.tx_buff, len,
|
||||
(void *) &Bchan_xmit_callback,
|
||||
(void *) bcs);
|
||||
dev_kfree_skb(skb, FREE_WRITE);
|
||||
dev_kfree_skb(skb);
|
||||
} else if (bcs->mode == L1_MODE_TRANS) {
|
||||
amd7930_bxmit(0, bcs->channel,
|
||||
bcs->hw.amd7930.tx_buff, skb->len,
|
||||
|
@ -181,7 +184,7 @@ Bchan_fill_fifo(struct BCState *bcs, struct sk_buff *skb)
|
|||
(void *) bcs);
|
||||
bcs->hw.amd7930.tx_skb = skb;
|
||||
} else {
|
||||
dev_kfree_skb(skb, FREE_WRITE);
|
||||
dev_kfree_skb(skb);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -368,10 +371,10 @@ Bchan_close(struct BCState *bcs)
|
|||
|
||||
if (test_bit(BC_FLG_INIT, &bcs->Flag)) {
|
||||
while ((skb = skb_dequeue(&bcs->rqueue))) {
|
||||
dev_kfree_skb(skb, FREE_READ);
|
||||
dev_kfree_skb(skb);
|
||||
}
|
||||
while ((skb = skb_dequeue(&bcs->squeue))) {
|
||||
dev_kfree_skb(skb, FREE_WRITE);
|
||||
dev_kfree_skb(skb);
|
||||
}
|
||||
}
|
||||
test_and_clear_bit(BC_FLG_INIT, &bcs->Flag);
|
||||
|
|
|
@ -7,6 +7,9 @@
|
|||
* Fritz Elfert
|
||||
*
|
||||
* $Log$
|
||||
* Revision 2.12 1998/02/09 10:55:54 keil
|
||||
* New leased line mode
|
||||
*
|
||||
* Revision 2.11 1998/02/02 13:35:19 keil
|
||||
* config B-channel delay
|
||||
*
|
||||
|
@ -1812,7 +1815,7 @@ lldata_handler(struct PStack *st, int pr, void *arg)
|
|||
if (chanp->data_open)
|
||||
chanp->cs->iif.rcvcallb_skb(chanp->cs->myid, chanp->chan, skb);
|
||||
else {
|
||||
dev_kfree_skb(skb, FREE_READ);
|
||||
dev_kfree_skb(skb);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
|
@ -1840,7 +1843,7 @@ lltrans_handler(struct PStack *st, int pr, void *arg)
|
|||
chanp->cs->iif.rcvcallb_skb(chanp->cs->myid,
|
||||
chanp->chan, skb);
|
||||
} else
|
||||
dev_kfree_skb(skb, FREE_READ);
|
||||
dev_kfree_skb(skb);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
|
@ -2205,7 +2208,7 @@ HiSax_writebuf_skb(int id, int chan, int ack, struct sk_buff *skb)
|
|||
chanp->bcs->tx_cnt += len;
|
||||
st->l2.l2l1(st, PH_DATA_REQ, nskb);
|
||||
}
|
||||
dev_kfree_skb(skb, FREE_WRITE);
|
||||
dev_kfree_skb(skb);
|
||||
} else
|
||||
len = 0;
|
||||
restore_flags(flags);
|
||||
|
|
|
@ -6,6 +6,9 @@
|
|||
*
|
||||
*
|
||||
* $Log$
|
||||
* Revision 1.2 1998/02/02 13:26:13 keil
|
||||
* New
|
||||
*
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
@ -266,7 +269,7 @@ static struct sk_buff
|
|||
sti();
|
||||
debugl1(cs, "RFIFO BUSY error");
|
||||
printk(KERN_WARNING "HFC FIFO channel %d BUSY Error\n", bcs->channel);
|
||||
dev_kfree_skb(skb, FREE_READ);
|
||||
dev_kfree_skb(skb);
|
||||
skb = NULL;
|
||||
} else {
|
||||
cli();
|
||||
|
@ -284,7 +287,7 @@ static struct sk_buff
|
|||
}
|
||||
if (stat) {
|
||||
debugl1(cs, "FIFO CRC error");
|
||||
dev_kfree_skb(skb, FREE_READ);
|
||||
dev_kfree_skb(skb);
|
||||
skb = NULL;
|
||||
}
|
||||
}
|
||||
|
@ -380,7 +383,7 @@ hfc_fill_fifo(struct BCState *bcs)
|
|||
if (bcs->st->lli.l1writewakeup &&
|
||||
(PACKET_NOACK != bcs->hw.hfc.tx_skb->pkt_type))
|
||||
bcs->st->lli.l1writewakeup(bcs->st, bcs->hw.hfc.tx_skb->len);
|
||||
dev_kfree_skb(bcs->hw.hfc.tx_skb, FREE_WRITE);
|
||||
dev_kfree_skb(bcs->hw.hfc.tx_skb);
|
||||
bcs->hw.hfc.tx_skb = NULL;
|
||||
}
|
||||
WaitForBusy(cs);
|
||||
|
@ -580,13 +583,13 @@ close_2bs0(struct BCState *bcs)
|
|||
mode_2bs0(bcs, 0, 0);
|
||||
if (test_and_clear_bit(BC_FLG_INIT, &bcs->Flag)) {
|
||||
while ((skb = skb_dequeue(&bcs->rqueue))) {
|
||||
dev_kfree_skb(skb, FREE_READ);
|
||||
dev_kfree_skb(skb);
|
||||
}
|
||||
while ((skb = skb_dequeue(&bcs->squeue))) {
|
||||
dev_kfree_skb(skb, FREE_WRITE);
|
||||
dev_kfree_skb(skb);
|
||||
}
|
||||
if (bcs->hw.hfc.tx_skb) {
|
||||
dev_kfree_skb(bcs->hw.hfc.tx_skb, FREE_WRITE);
|
||||
dev_kfree_skb(bcs->hw.hfc.tx_skb);
|
||||
bcs->hw.hfc.tx_skb = NULL;
|
||||
test_and_clear_bit(BC_FLG_BUSY, &bcs->Flag);
|
||||
}
|
||||
|
@ -779,7 +782,7 @@ int receive_dmsg(struct IsdnCardState *cs)
|
|||
sti();
|
||||
debugl1(cs, "RFIFO D BUSY error");
|
||||
printk(KERN_WARNING "HFC DFIFO channel BUSY Error\n");
|
||||
dev_kfree_skb(skb, FREE_READ);
|
||||
dev_kfree_skb(skb);
|
||||
skb = NULL;
|
||||
} else {
|
||||
cli();
|
||||
|
@ -797,7 +800,7 @@ int receive_dmsg(struct IsdnCardState *cs)
|
|||
}
|
||||
if (stat) {
|
||||
debugl1(cs, "FIFO CRC error");
|
||||
dev_kfree_skb(skb, FREE_READ);
|
||||
dev_kfree_skb(skb);
|
||||
skb = NULL;
|
||||
} else {
|
||||
skb_queue_tail(&cs->rq, skb);
|
||||
|
@ -899,7 +902,7 @@ hfc_fill_dfifo(struct IsdnCardState *cs)
|
|||
cli();
|
||||
WaitNoBusy(cs);
|
||||
ReadReg(cs, HFCD_DATA, HFCD_FIFO | HFCD_F1_INC | HFCD_SEND);
|
||||
dev_kfree_skb(cs->tx_skb, FREE_WRITE);
|
||||
dev_kfree_skb(cs->tx_skb);
|
||||
cs->tx_skb = NULL;
|
||||
sti();
|
||||
WaitForBusy(cs);
|
||||
|
@ -1046,7 +1049,7 @@ hfc2bds0_interrupt(struct IsdnCardState *cs, u_char val)
|
|||
}
|
||||
goto afterXPR;
|
||||
} else {
|
||||
dev_kfree_skb(cs->tx_skb, FREE_WRITE);
|
||||
dev_kfree_skb(cs->tx_skb);
|
||||
cs->tx_cnt = 0;
|
||||
cs->tx_skb = NULL;
|
||||
}
|
||||
|
|
|
@ -6,6 +6,9 @@
|
|||
*
|
||||
*
|
||||
* $Log$
|
||||
* Revision 1.3 1997/11/06 17:13:35 keil
|
||||
* New 2.1 init code
|
||||
*
|
||||
* Revision 1.2 1997/10/29 19:04:47 keil
|
||||
* changes for 2.1
|
||||
*
|
||||
|
@ -216,7 +219,7 @@ hfc_empty_fifo(struct BCState *bcs, int count)
|
|||
if (idx != count - 3) {
|
||||
debugl1(cs, "RFIFO BUSY error");
|
||||
printk(KERN_WARNING "HFC FIFO channel %d BUSY Error\n", bcs->channel);
|
||||
dev_kfree_skb(skb, FREE_READ);
|
||||
dev_kfree_skb(skb);
|
||||
WaitNoBusy(cs);
|
||||
stat = cs->BC_Read_Reg(cs, HFC_DATA, HFC_CIP | HFC_F2_INC | HFC_REC |
|
||||
HFC_CHANNEL(bcs->channel));
|
||||
|
@ -236,7 +239,7 @@ hfc_empty_fifo(struct BCState *bcs, int count)
|
|||
}
|
||||
if (stat) {
|
||||
debugl1(cs, "FIFO CRC error");
|
||||
dev_kfree_skb(skb, FREE_READ);
|
||||
dev_kfree_skb(skb);
|
||||
skb = NULL;
|
||||
}
|
||||
WaitNoBusy(cs);
|
||||
|
@ -315,7 +318,7 @@ hfc_fill_fifo(struct BCState *bcs)
|
|||
bcs->tx_cnt -= count;
|
||||
if (PACKET_NOACK == bcs->hw.hfc.tx_skb->pkt_type)
|
||||
count = -1;
|
||||
dev_kfree_skb(bcs->hw.hfc.tx_skb, FREE_WRITE);
|
||||
dev_kfree_skb(bcs->hw.hfc.tx_skb);
|
||||
bcs->hw.hfc.tx_skb = NULL;
|
||||
WaitForBusy(cs);
|
||||
WaitNoBusy(cs);
|
||||
|
@ -505,13 +508,13 @@ close_hfcstate(struct BCState *bcs)
|
|||
mode_hfc(bcs, 0, 0);
|
||||
if (test_bit(BC_FLG_INIT, &bcs->Flag)) {
|
||||
while ((skb = skb_dequeue(&bcs->rqueue))) {
|
||||
dev_kfree_skb(skb, FREE_READ);
|
||||
dev_kfree_skb(skb);
|
||||
}
|
||||
while ((skb = skb_dequeue(&bcs->squeue))) {
|
||||
dev_kfree_skb(skb, FREE_WRITE);
|
||||
dev_kfree_skb(skb);
|
||||
}
|
||||
if (bcs->hw.hfc.tx_skb) {
|
||||
dev_kfree_skb(bcs->hw.hfc.tx_skb, FREE_WRITE);
|
||||
dev_kfree_skb(bcs->hw.hfc.tx_skb);
|
||||
bcs->hw.hfc.tx_skb = NULL;
|
||||
test_and_clear_bit(BC_FLG_BUSY, &bcs->Flag);
|
||||
}
|
||||
|
|
|
@ -6,6 +6,9 @@
|
|||
*
|
||||
*
|
||||
* $Log$
|
||||
* Revision 1.6 1998/02/02 13:41:12 keil
|
||||
* new init
|
||||
*
|
||||
* Revision 1.5 1997/11/06 17:09:34 keil
|
||||
* New 2.1 init code
|
||||
*
|
||||
|
@ -162,13 +165,13 @@ close_hscxstate(struct BCState *bcs)
|
|||
bcs->hw.hscx.rcvbuf = NULL;
|
||||
}
|
||||
while ((skb = skb_dequeue(&bcs->rqueue))) {
|
||||
dev_kfree_skb(skb, FREE_READ);
|
||||
dev_kfree_skb(skb);
|
||||
}
|
||||
while ((skb = skb_dequeue(&bcs->squeue))) {
|
||||
dev_kfree_skb(skb, FREE_WRITE);
|
||||
dev_kfree_skb(skb);
|
||||
}
|
||||
if (bcs->hw.hscx.tx_skb) {
|
||||
dev_kfree_skb(bcs->hw.hscx.tx_skb, FREE_WRITE);
|
||||
dev_kfree_skb(bcs->hw.hscx.tx_skb);
|
||||
bcs->hw.hscx.tx_skb = NULL;
|
||||
test_and_clear_bit(BC_FLG_BUSY, &bcs->Flag);
|
||||
}
|
||||
|
|
|
@ -7,6 +7,9 @@
|
|||
* This is an include file for fast inline IRQ stuff
|
||||
*
|
||||
* $Log$
|
||||
* Revision 1.6 1997/10/29 19:01:07 keil
|
||||
* changes for 2.1
|
||||
*
|
||||
* Revision 1.5 1997/10/01 09:21:35 fritz
|
||||
* Removed old compatibility stuff for 2.0.X kernels.
|
||||
* From now on, this code is for 2.1.X ONLY!
|
||||
|
@ -221,7 +224,7 @@ hscx_interrupt(struct IsdnCardState *cs, u_char val, u_char hscx)
|
|||
if (bcs->st->lli.l1writewakeup &&
|
||||
(PACKET_NOACK != bcs->hw.hscx.tx_skb->pkt_type))
|
||||
bcs->st->lli.l1writewakeup(bcs->st, bcs->hw.hscx.count);
|
||||
dev_kfree_skb(bcs->hw.hscx.tx_skb, FREE_WRITE);
|
||||
dev_kfree_skb(bcs->hw.hscx.tx_skb);
|
||||
bcs->hw.hscx.count = 0;
|
||||
bcs->hw.hscx.tx_skb = NULL;
|
||||
}
|
||||
|
|
|
@ -6,6 +6,9 @@
|
|||
*
|
||||
*
|
||||
* $Log$
|
||||
* Revision 1.11 1998/02/09 10:54:49 keil
|
||||
* fixes for leased mode
|
||||
*
|
||||
* Revision 1.10 1998/02/02 13:37:37 keil
|
||||
* new init
|
||||
*
|
||||
|
@ -304,7 +307,7 @@ isac_interrupt(struct IsdnCardState *cs, u_char val)
|
|||
isac_fill_fifo(cs);
|
||||
goto afterXPR;
|
||||
} else {
|
||||
dev_kfree_skb(cs->tx_skb, FREE_WRITE);
|
||||
dev_kfree_skb(cs->tx_skb);
|
||||
cs->tx_cnt = 0;
|
||||
cs->tx_skb = NULL;
|
||||
}
|
||||
|
|
|
@ -11,6 +11,9 @@
|
|||
*
|
||||
*
|
||||
* $Log$
|
||||
* Revision 2.17 1998/02/11 17:28:07 keil
|
||||
* Niccy PnP/PCI support
|
||||
*
|
||||
* Revision 2.16 1998/02/09 18:46:08 keil
|
||||
* Support for Sedlbauer PCMCIA (Marcus Niemann)
|
||||
*
|
||||
|
@ -465,7 +468,7 @@ DChannel_proc_rcv(struct IsdnCardState *cs)
|
|||
stptr = stptr->next;
|
||||
}
|
||||
}
|
||||
dev_kfree_skb(skb, FREE_READ);
|
||||
dev_kfree_skb(skb);
|
||||
} else if (sapi == CTRL_SAPI) {
|
||||
found = 0;
|
||||
while (stptr != NULL)
|
||||
|
@ -488,7 +491,7 @@ DChannel_proc_rcv(struct IsdnCardState *cs)
|
|||
LogFrame(cs, skb->data, skb->len);
|
||||
dlogframe(cs, skb->data + 4, skb->len - 4, tmp);
|
||||
}
|
||||
dev_kfree_skb(skb, FREE_READ);
|
||||
dev_kfree_skb(skb);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -591,13 +594,13 @@ closecard(int cardnr)
|
|||
csta->rcvbuf = NULL;
|
||||
}
|
||||
while ((skb = skb_dequeue(&csta->rq))) {
|
||||
dev_kfree_skb(skb, FREE_READ);
|
||||
dev_kfree_skb(skb);
|
||||
}
|
||||
while ((skb = skb_dequeue(&csta->sq))) {
|
||||
dev_kfree_skb(skb, FREE_WRITE);
|
||||
dev_kfree_skb(skb);
|
||||
}
|
||||
if (csta->tx_skb) {
|
||||
dev_kfree_skb(csta->tx_skb, FREE_WRITE);
|
||||
dev_kfree_skb(csta->tx_skb);
|
||||
csta->tx_skb = NULL;
|
||||
}
|
||||
if (csta->mon_rx) {
|
||||
|
|
|
@ -7,6 +7,9 @@
|
|||
* Fritz Elfert
|
||||
*
|
||||
* $Log$
|
||||
* Revision 2.6 1998/02/02 13:36:15 keil
|
||||
* bugfix X.75 win calculation
|
||||
*
|
||||
* Revision 2.5 1997/11/06 17:09:22 keil
|
||||
* New 2.1 init code
|
||||
*
|
||||
|
@ -136,7 +139,7 @@ ReleaseWin(struct Layer2 *l2)
|
|||
for (i = 0; i < MAX_WINDOW; i++) {
|
||||
if (l2->windowar[i]) {
|
||||
cnt++;
|
||||
dev_kfree_skb(l2->windowar[i], FREE_WRITE);
|
||||
dev_kfree_skb(l2->windowar[i]);
|
||||
l2->windowar[i] = NULL;
|
||||
}
|
||||
}
|
||||
|
@ -161,7 +164,7 @@ discard_i_queue(struct PStack *st)
|
|||
struct sk_buff *skb;
|
||||
|
||||
while ((skb = skb_dequeue(&st->l2.i_queue))) {
|
||||
dev_kfree_skb(skb, FREE_READ);
|
||||
dev_kfree_skb(skb);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -171,7 +174,7 @@ discard_ui_queue(struct PStack *st)
|
|||
struct sk_buff *skb;
|
||||
|
||||
while ((skb = skb_dequeue(&st->l2.ui_queue))) {
|
||||
dev_kfree_skb(skb, FREE_READ);
|
||||
dev_kfree_skb(skb);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -314,7 +317,7 @@ setva(struct PStack *st, int nr)
|
|||
len = l2->windowar[l2->sow]->len;
|
||||
if (PACKET_NOACK == l2->windowar[l2->sow]->pkt_type)
|
||||
len = -1;
|
||||
dev_kfree_skb(l2->windowar[l2->sow], FREE_WRITE);
|
||||
dev_kfree_skb(l2->windowar[l2->sow]);
|
||||
l2->windowar[l2->sow] = NULL;
|
||||
l2->sow = (l2->sow + 1) % l2->window;
|
||||
if (st->lli.l2writewakeup && (len >=0))
|
||||
|
@ -348,7 +351,7 @@ get_PollFlag(struct PStack * st, struct sk_buff * skb)
|
|||
inline void
|
||||
FreeSkb(struct sk_buff *skb)
|
||||
{
|
||||
dev_kfree_skb(skb, FREE_READ);
|
||||
dev_kfree_skb(skb);
|
||||
}
|
||||
|
||||
|
||||
|
@ -1113,7 +1116,7 @@ l2_pull_iqueue(struct FsmInst *fi, int event, void *arg)
|
|||
if (l2->windowar[p1]) {
|
||||
printk(KERN_WARNING "isdnl2 try overwrite ack queue entry %d\n",
|
||||
p1);
|
||||
dev_kfree_skb(l2->windowar[p1], FREE_WRITE);
|
||||
dev_kfree_skb(l2->windowar[p1]);
|
||||
}
|
||||
l2->windowar[p1] = skb_clone(skb, GFP_ATOMIC);
|
||||
|
||||
|
@ -1446,12 +1449,12 @@ isdnl2_l3l2(struct PStack *st, int pr, void *arg)
|
|||
switch (pr) {
|
||||
case (DL_DATA):
|
||||
if (FsmEvent(&st->l2.l2m, EV_L2_DL_DATA, arg)) {
|
||||
dev_kfree_skb((struct sk_buff *) arg, FREE_READ);
|
||||
dev_kfree_skb((struct sk_buff *) arg);
|
||||
}
|
||||
break;
|
||||
case (DL_UNIT_DATA):
|
||||
if (FsmEvent(&st->l2.l2m, EV_L2_DL_UNIT_DATA, arg)) {
|
||||
dev_kfree_skb((struct sk_buff *) arg, FREE_READ);
|
||||
dev_kfree_skb((struct sk_buff *) arg);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -7,6 +7,9 @@
|
|||
* Fritz Elfert
|
||||
*
|
||||
* $Log$
|
||||
* Revision 2.4 1997/11/06 17:09:25 keil
|
||||
* New 2.1 init code
|
||||
*
|
||||
* Revision 2.3 1997/10/29 19:07:53 keil
|
||||
* changes for 2.1
|
||||
*
|
||||
|
@ -193,7 +196,7 @@ no_l3_proto(struct PStack *st, int pr, void *arg)
|
|||
|
||||
HiSax_putstatus(st->l1.hardware, "L3 no D protocol\n");
|
||||
if (skb) {
|
||||
dev_kfree_skb(skb, FREE_READ);
|
||||
dev_kfree_skb(skb);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -6,6 +6,9 @@
|
|||
*
|
||||
*
|
||||
* $Log$
|
||||
* Revision 2.3 1997/11/06 17:12:24 keil
|
||||
* KERN_NOTICE --> KERN_INFO
|
||||
*
|
||||
* Revision 2.2 1997/10/29 19:03:00 keil
|
||||
* changes for 2.1
|
||||
*
|
||||
|
@ -244,7 +247,7 @@ l3_1tr6_setup(struct l3_process *pc, u_char pr, void *arg)
|
|||
if ((FAC_SPV == p[3]) || (FAC_Activate == p[3]))
|
||||
pc->para.spv = 1;
|
||||
}
|
||||
dev_kfree_skb(skb, FREE_READ);
|
||||
dev_kfree_skb(skb);
|
||||
|
||||
/* Signal all services, linklevel takes care of Service-Indicator */
|
||||
if (bcfound) {
|
||||
|
@ -273,7 +276,7 @@ l3_1tr6_setup_ack(struct l3_process *pc, u_char pr, void *arg)
|
|||
pc->para.bchannel = p[2] & 0x3;
|
||||
} else if (pc->st->l3.debug & L3_DEB_WARN)
|
||||
l3_debug(pc->st, "setup answer without bchannel");
|
||||
dev_kfree_skb(skb, FREE_READ);
|
||||
dev_kfree_skb(skb);
|
||||
L3AddTimer(&pc->timer, T304, CC_T304);
|
||||
pc->st->l3.l3l4(pc, CC_MORE_INFO, NULL);
|
||||
}
|
||||
|
@ -290,7 +293,7 @@ l3_1tr6_call_sent(struct l3_process *pc, u_char pr, void *arg)
|
|||
pc->para.bchannel = p[2] & 0x3;
|
||||
} else if (pc->st->l3.debug & L3_DEB_WARN)
|
||||
l3_debug(pc->st, "setup answer without bchannel");
|
||||
dev_kfree_skb(skb, FREE_READ);
|
||||
dev_kfree_skb(skb);
|
||||
L3AddTimer(&pc->timer, T310, CC_T310);
|
||||
newl3state(pc, 3);
|
||||
pc->st->l3.l3l4(pc, CC_PROCEEDING_IND, NULL);
|
||||
|
@ -301,7 +304,7 @@ l3_1tr6_alert(struct l3_process *pc, u_char pr, void *arg)
|
|||
{
|
||||
struct sk_buff *skb = arg;
|
||||
|
||||
dev_kfree_skb(skb, FREE_READ);
|
||||
dev_kfree_skb(skb);
|
||||
L3DelTimer(&pc->timer); /* T304 */
|
||||
newl3state(pc, 4);
|
||||
pc->st->l3.l3l4(pc, CC_ALERTING_IND, NULL);
|
||||
|
@ -332,7 +335,7 @@ l3_1tr6_info(struct l3_process *pc, u_char pr, void *arg)
|
|||
}
|
||||
} else if (pc->st->l3.debug & L3_DEB_CHARGE)
|
||||
l3_debug(pc->st, "charging info not found");
|
||||
dev_kfree_skb(skb, FREE_READ);
|
||||
dev_kfree_skb(skb);
|
||||
|
||||
}
|
||||
|
||||
|
@ -341,7 +344,7 @@ l3_1tr6_info_s2(struct l3_process *pc, u_char pr, void *arg)
|
|||
{
|
||||
struct sk_buff *skb = arg;
|
||||
|
||||
dev_kfree_skb(skb, FREE_READ);
|
||||
dev_kfree_skb(skb);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -351,7 +354,7 @@ l3_1tr6_connect(struct l3_process *pc, u_char pr, void *arg)
|
|||
|
||||
L3DelTimer(&pc->timer); /* T310 */
|
||||
newl3state(pc, 10);
|
||||
dev_kfree_skb(skb, FREE_READ);
|
||||
dev_kfree_skb(skb);
|
||||
pc->para.chargeinfo = 0;
|
||||
pc->st->l3.l3l4(pc, CC_SETUP_CNF, NULL);
|
||||
}
|
||||
|
@ -376,7 +379,7 @@ l3_1tr6_rel(struct l3_process *pc, u_char pr, void *arg)
|
|||
}
|
||||
} else
|
||||
pc->para.cause = -1;
|
||||
dev_kfree_skb(skb, FREE_READ);
|
||||
dev_kfree_skb(skb);
|
||||
StopAllL3Timer(pc);
|
||||
newl3state(pc, 0);
|
||||
l3_1TR6_message(pc, MT_N1_REL_ACK, PROTO_DIS_N1);
|
||||
|
@ -389,7 +392,7 @@ l3_1tr6_rel_ack(struct l3_process *pc, u_char pr, void *arg)
|
|||
{
|
||||
struct sk_buff *skb = arg;
|
||||
|
||||
dev_kfree_skb(skb, FREE_READ);
|
||||
dev_kfree_skb(skb);
|
||||
StopAllL3Timer(pc);
|
||||
newl3state(pc, 0);
|
||||
pc->para.cause = -1;
|
||||
|
@ -442,7 +445,7 @@ l3_1tr6_disc(struct l3_process *pc, u_char pr, void *arg)
|
|||
l3_debug(pc->st, "cause not found");
|
||||
pc->para.cause = -1;
|
||||
}
|
||||
dev_kfree_skb(skb, FREE_READ);
|
||||
dev_kfree_skb(skb);
|
||||
newl3state(pc, 12);
|
||||
pc->st->l3.l3l4(pc, CC_DISCONNECT_IND, NULL);
|
||||
}
|
||||
|
@ -453,7 +456,7 @@ l3_1tr6_connect_ack(struct l3_process *pc, u_char pr, void *arg)
|
|||
{
|
||||
struct sk_buff *skb = arg;
|
||||
|
||||
dev_kfree_skb(skb, FREE_READ);
|
||||
dev_kfree_skb(skb);
|
||||
newl3state(pc, 10);
|
||||
pc->para.chargeinfo = 0;
|
||||
L3DelTimer(&pc->timer);
|
||||
|
@ -731,7 +734,7 @@ up1tr6(struct PStack *st, int pr, void *arg)
|
|||
sprintf(tmp, "up1tr6 len only %d", skb->len);
|
||||
l3_debug(st, tmp);
|
||||
}
|
||||
dev_kfree_skb(skb, FREE_READ);
|
||||
dev_kfree_skb(skb);
|
||||
return;
|
||||
}
|
||||
if ((skb->data[0] & 0xfe) != PROTO_DIS_N0) {
|
||||
|
@ -741,7 +744,7 @@ up1tr6(struct PStack *st, int pr, void *arg)
|
|||
skb->data[0], skb->len);
|
||||
l3_debug(st, tmp);
|
||||
}
|
||||
dev_kfree_skb(skb, FREE_READ);
|
||||
dev_kfree_skb(skb);
|
||||
return;
|
||||
}
|
||||
if (skb->data[1] != 1) {
|
||||
|
@ -749,13 +752,13 @@ up1tr6(struct PStack *st, int pr, void *arg)
|
|||
sprintf(tmp, "up1tr6 CR len not 1");
|
||||
l3_debug(st, tmp);
|
||||
}
|
||||
dev_kfree_skb(skb, FREE_READ);
|
||||
dev_kfree_skb(skb);
|
||||
return;
|
||||
}
|
||||
cr = skb->data[2];
|
||||
mt = skb->data[3];
|
||||
if (skb->data[0] == PROTO_DIS_N0) {
|
||||
dev_kfree_skb(skb, FREE_READ);
|
||||
dev_kfree_skb(skb);
|
||||
if (st->l3.debug & L3_DEB_STATE) {
|
||||
sprintf(tmp, "up1tr6%s N0 mt %x unhandled",
|
||||
(pr == DL_DATA) ? " " : "(broadcast) ", mt);
|
||||
|
@ -769,11 +772,11 @@ up1tr6(struct PStack *st, int pr, void *arg)
|
|||
sprintf(tmp, "up1tr6 no roc mem");
|
||||
l3_debug(st, tmp);
|
||||
}
|
||||
dev_kfree_skb(skb, FREE_READ);
|
||||
dev_kfree_skb(skb);
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
dev_kfree_skb(skb, FREE_READ);
|
||||
dev_kfree_skb(skb);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -782,7 +785,7 @@ up1tr6(struct PStack *st, int pr, void *arg)
|
|||
((1 << proc->state) & datastln1[i].state))
|
||||
break;
|
||||
if (i == datastln1_len) {
|
||||
dev_kfree_skb(skb, FREE_READ);
|
||||
dev_kfree_skb(skb);
|
||||
if (st->l3.debug & L3_DEB_STATE) {
|
||||
sprintf(tmp, "up1tr6%sstate %d mt %x unhandled",
|
||||
(pr == DL_DATA) ? " " : "(broadcast) ",
|
||||
|
|
|
@ -9,6 +9,9 @@
|
|||
* Fritz Elfert
|
||||
*
|
||||
* $Log$
|
||||
* Revision 2.6 1998/02/03 23:26:35 keil
|
||||
* V110 extensions from Thomas Pfeiffer
|
||||
*
|
||||
* Revision 2.5 1998/02/02 13:34:28 keil
|
||||
* Support australian Microlink net and german AOCD
|
||||
*
|
||||
|
@ -304,7 +307,7 @@ l3dss1_release_cmpl(struct l3_process *pc, u_char pr, void *arg)
|
|||
pc->para.loc = *p++;
|
||||
cause = *p & 0x7f;
|
||||
}
|
||||
dev_kfree_skb(skb, FREE_READ);
|
||||
dev_kfree_skb(skb);
|
||||
StopAllL3Timer(pc);
|
||||
pc->para.cause = cause;
|
||||
newl3state(pc, 0);
|
||||
|
@ -648,7 +651,7 @@ l3dss1_call_proc(struct l3_process *pc, u_char pr, void *arg)
|
|||
l3_debug(pc->st, "setup answer without bchannel");
|
||||
} else if (pc->debug & L3_DEB_WARN)
|
||||
l3_debug(pc->st, "setup answer without bchannel");
|
||||
dev_kfree_skb(skb, FREE_READ);
|
||||
dev_kfree_skb(skb);
|
||||
newl3state(pc, 3);
|
||||
L3AddTimer(&pc->timer, T310, CC_T310);
|
||||
pc->st->l3.l3l4(pc, CC_PROCEEDING_IND, NULL);
|
||||
|
@ -668,7 +671,7 @@ l3dss1_setup_ack(struct l3_process *pc, u_char pr, void *arg)
|
|||
l3_debug(pc->st, "setup answer without bchannel");
|
||||
} else if (pc->debug & L3_DEB_WARN)
|
||||
l3_debug(pc->st, "setup answer without bchannel");
|
||||
dev_kfree_skb(skb, FREE_READ);
|
||||
dev_kfree_skb(skb);
|
||||
newl3state(pc, 2);
|
||||
L3AddTimer(&pc->timer, T304, CC_T304);
|
||||
pc->st->l3.l3l4(pc, CC_MORE_INFO, NULL);
|
||||
|
@ -690,7 +693,7 @@ l3dss1_disconnect(struct l3_process *pc, u_char pr, void *arg)
|
|||
pc->para.loc = *p++;
|
||||
cause = *p & 0x7f;
|
||||
}
|
||||
dev_kfree_skb(skb, FREE_READ);
|
||||
dev_kfree_skb(skb);
|
||||
newl3state(pc, 12);
|
||||
pc->para.cause = cause;
|
||||
pc->st->l3.l3l4(pc, CC_DISCONNECT_IND, NULL);
|
||||
|
@ -701,7 +704,7 @@ l3dss1_connect(struct l3_process *pc, u_char pr, void *arg)
|
|||
{
|
||||
struct sk_buff *skb = arg;
|
||||
|
||||
dev_kfree_skb(skb, FREE_READ);
|
||||
dev_kfree_skb(skb);
|
||||
L3DelTimer(&pc->timer); /* T310 */
|
||||
newl3state(pc, 10);
|
||||
pc->para.chargeinfo = 0;
|
||||
|
@ -713,7 +716,7 @@ l3dss1_alerting(struct l3_process *pc, u_char pr, void *arg)
|
|||
{
|
||||
struct sk_buff *skb = arg;
|
||||
|
||||
dev_kfree_skb(skb, FREE_READ);
|
||||
dev_kfree_skb(skb);
|
||||
L3DelTimer(&pc->timer); /* T304 */
|
||||
newl3state(pc, 4);
|
||||
pc->st->l3.l3l4(pc, CC_ALERTING_IND, NULL);
|
||||
|
@ -780,7 +783,7 @@ l3dss1_setup(struct l3_process *pc, u_char pr, void *arg)
|
|||
* cause 0x60
|
||||
*/
|
||||
pc->para.cause = 0x60;
|
||||
dev_kfree_skb(skb, FREE_READ);
|
||||
dev_kfree_skb(skb);
|
||||
if (pc->state == 0)
|
||||
pc->st->l3.l3l4(pc, CC_ESTABLISH, NULL);
|
||||
else
|
||||
|
@ -844,7 +847,7 @@ l3dss1_setup(struct l3_process *pc, u_char pr, void *arg)
|
|||
l3_debug(pc->st, "setup without bearer capabilities");
|
||||
/* ETS 300-104 1.3.3 */
|
||||
pc->para.cause = 0x60;
|
||||
dev_kfree_skb(skb, FREE_READ);
|
||||
dev_kfree_skb(skb);
|
||||
if (pc->state == 0)
|
||||
pc->st->l3.l3l4(pc, CC_ESTABLISH, NULL);
|
||||
else
|
||||
|
@ -894,7 +897,7 @@ l3dss1_setup(struct l3_process *pc, u_char pr, void *arg)
|
|||
l3_debug(pc->st, "wrong calling subaddress");
|
||||
}
|
||||
|
||||
dev_kfree_skb(skb, FREE_READ);
|
||||
dev_kfree_skb(skb);
|
||||
|
||||
if (bcfound) {
|
||||
if ((pc->para.setup.si1 != 7) && (pc->debug & L3_DEB_WARN)) {
|
||||
|
@ -929,7 +932,7 @@ l3dss1_connect_ack(struct l3_process *pc, u_char pr, void *arg)
|
|||
{
|
||||
struct sk_buff *skb = arg;
|
||||
|
||||
dev_kfree_skb(skb, FREE_READ);
|
||||
dev_kfree_skb(skb);
|
||||
newl3state(pc, 10);
|
||||
L3DelTimer(&pc->timer);
|
||||
pc->st->l3.l3l4(pc, CC_SETUP_COMPLETE_IND, NULL);
|
||||
|
@ -1016,7 +1019,7 @@ l3dss1_release(struct l3_process *pc, u_char pr, void *arg)
|
|||
p = NULL;
|
||||
#endif
|
||||
}
|
||||
dev_kfree_skb(skb, FREE_READ);
|
||||
dev_kfree_skb(skb);
|
||||
StopAllL3Timer(pc);
|
||||
pc->para.cause = cause;
|
||||
l3dss1_message(pc, MT_RELEASE_COMPLETE);
|
||||
|
@ -1041,7 +1044,7 @@ l3dss1_status_enq(struct l3_process *pc, u_char pr, void *arg)
|
|||
int l;
|
||||
struct sk_buff *skb = arg;
|
||||
|
||||
dev_kfree_skb(skb, FREE_READ);
|
||||
dev_kfree_skb(skb);
|
||||
|
||||
MsgHead(p, pc->callref, MT_STATUS);
|
||||
|
||||
|
@ -1071,7 +1074,7 @@ l3dss1_status_req(struct l3_process *pc, u_char pr, void *arg)
|
|||
int l;
|
||||
struct sk_buff *skb = arg;
|
||||
|
||||
dev_kfree_skb(skb, FREE_READ);
|
||||
dev_kfree_skb(skb);
|
||||
|
||||
MsgHead(p, pc->callref, MT_STATUS);
|
||||
|
||||
|
@ -1256,7 +1259,7 @@ l3dss1_status(struct l3_process *pc, u_char pr, void *arg)
|
|||
*/
|
||||
l3dss1_release_ind(pc, pr, arg);
|
||||
} else
|
||||
dev_kfree_skb(skb, FREE_READ);
|
||||
dev_kfree_skb(skb);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -1304,7 +1307,7 @@ l3dss1_global_restart(struct l3_process *pc, u_char pr, void *arg)
|
|||
sprintf(tmp, "Restart for channel %d", chan);
|
||||
l3_debug(pc->st, tmp);
|
||||
}
|
||||
dev_kfree_skb(skb, FREE_READ);
|
||||
dev_kfree_skb(skb);
|
||||
newl3state(pc, 2);
|
||||
up = pc->st->l3.proc;
|
||||
while (up) {
|
||||
|
@ -1460,7 +1463,7 @@ global_handler(struct PStack *st, int mt, struct sk_buff *skb)
|
|||
((1 << proc->state) & globalmes_list[i].state))
|
||||
break;
|
||||
if (i == globalm_len) {
|
||||
dev_kfree_skb(skb, FREE_READ);
|
||||
dev_kfree_skb(skb);
|
||||
if (st->l3.debug & L3_DEB_STATE) {
|
||||
sprintf(tmp, "dss1 global state %d mt %x unhandled",
|
||||
proc->state, mt);
|
||||
|
@ -1493,7 +1496,7 @@ dss1up(struct PStack *st, int pr, void *arg)
|
|||
skb->data[0], skb->len);
|
||||
l3_debug(st, tmp);
|
||||
}
|
||||
dev_kfree_skb(skb, FREE_READ);
|
||||
dev_kfree_skb(skb);
|
||||
return;
|
||||
}
|
||||
cr = getcallref(skb->data);
|
||||
|
@ -1502,7 +1505,7 @@ dss1up(struct PStack *st, int pr, void *arg)
|
|||
global_handler(st, mt, skb);
|
||||
return;
|
||||
} else if (cr == -1) { /* Dummy Callref */
|
||||
dev_kfree_skb(skb, FREE_READ);
|
||||
dev_kfree_skb(skb);
|
||||
return;
|
||||
} else if (!(proc = getl3proc(st, cr))) {
|
||||
/* No transaction process exist, that means no call with
|
||||
|
@ -1515,7 +1518,7 @@ dss1up(struct PStack *st, int pr, void *arg)
|
|||
* CAUSE 0x2f "Resource unavailable", but this
|
||||
* need a new_l3_process too ... arghh
|
||||
*/
|
||||
dev_kfree_skb(skb, FREE_READ);
|
||||
dev_kfree_skb(skb);
|
||||
return;
|
||||
}
|
||||
} else if (mt == MT_STATUS) {
|
||||
|
@ -1539,7 +1542,7 @@ dss1up(struct PStack *st, int pr, void *arg)
|
|||
* MT_STATUS is received with call state == 0,
|
||||
* we must send nothing
|
||||
*/
|
||||
dev_kfree_skb(skb, FREE_READ);
|
||||
dev_kfree_skb(skb);
|
||||
return;
|
||||
} else {
|
||||
/* ETS 300-104 part 2.4.2
|
||||
|
@ -1547,7 +1550,7 @@ dss1up(struct PStack *st, int pr, void *arg)
|
|||
* MT_STATUS is received with call state != 0,
|
||||
* we must send MT_RELEASE_COMPLETE cause 101
|
||||
*/
|
||||
dev_kfree_skb(skb, FREE_READ);
|
||||
dev_kfree_skb(skb);
|
||||
if ((proc = new_l3_process(st, cr))) {
|
||||
proc->para.cause = 0x65; /* 101 */
|
||||
proc->st->l3.l3l4(proc, CC_ESTABLISH, NULL);
|
||||
|
@ -1555,14 +1558,14 @@ dss1up(struct PStack *st, int pr, void *arg)
|
|||
return;
|
||||
}
|
||||
} else if (mt == MT_RELEASE_COMPLETE){
|
||||
dev_kfree_skb(skb, FREE_READ);
|
||||
dev_kfree_skb(skb);
|
||||
return;
|
||||
} else {
|
||||
/* ETS 300-104 part 2
|
||||
* if setup has not been made and a message type
|
||||
* (except MT_SETUP and RELEASE_COMPLETE) is received,
|
||||
* we must send MT_RELEASE_COMPLETE cause 81 */
|
||||
dev_kfree_skb(skb, FREE_READ);
|
||||
dev_kfree_skb(skb);
|
||||
if ((proc = new_l3_process(st, cr))) {
|
||||
proc->para.cause = 0x51; /* 81 */
|
||||
proc->st->l3.l3l4(proc, CC_ESTABLISH, NULL);
|
||||
|
@ -1583,7 +1586,7 @@ dss1up(struct PStack *st, int pr, void *arg)
|
|||
((1 << proc->state) & datastatelist[i].state))
|
||||
break;
|
||||
if (i == datasllen) {
|
||||
dev_kfree_skb(skb, FREE_READ);
|
||||
dev_kfree_skb(skb);
|
||||
if (st->l3.debug & L3_DEB_STATE) {
|
||||
sprintf(tmp, "dss1up%sstate %d mt %x unhandled",
|
||||
(pr == DL_DATA) ? " " : "(broadcast) ",
|
||||
|
|
|
@ -8,6 +8,9 @@
|
|||
*
|
||||
*
|
||||
* $Log$
|
||||
* Revision 1.2 1998/02/02 13:32:06 keil
|
||||
* New
|
||||
*
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
@ -540,7 +543,7 @@ static void fill_dma(struct BCState *bcs)
|
|||
if (test_and_clear_bit(BC_FLG_NOFRAME, &bcs->Flag)) {
|
||||
write_raw(bcs, bcs->hw.tiger.sendp, bcs->hw.tiger.free);
|
||||
} else if (test_and_clear_bit(BC_FLG_HALF, &bcs->Flag)) {
|
||||
p = (u_int *) inl(bcs->cs->hw.njet.base + NETJET_DMA_READ_ADR);
|
||||
p = bus_to_virt(inl(bcs->cs->hw.njet.base + NETJET_DMA_READ_ADR));
|
||||
sp = bcs->hw.tiger.sendp;
|
||||
if (p == bcs->hw.tiger.s_end)
|
||||
p = bcs->hw.tiger.send -1;
|
||||
|
@ -561,7 +564,7 @@ static void fill_dma(struct BCState *bcs)
|
|||
write_raw(bcs, p, bcs->hw.tiger.free - cnt);
|
||||
}
|
||||
} else if (test_and_clear_bit(BC_FLG_EMPTY, &bcs->Flag)) {
|
||||
p = (u_int *) inl(bcs->cs->hw.njet.base + NETJET_DMA_READ_ADR);
|
||||
p = bus_to_virt(inl(bcs->cs->hw.njet.base + NETJET_DMA_READ_ADR));
|
||||
cnt = bcs->hw.tiger.s_end - p;
|
||||
if (cnt < 2) {
|
||||
p = bcs->hw.tiger.send + 1;
|
||||
|
@ -622,11 +625,16 @@ static void write_raw(struct BCState *bcs, u_int *buf, int cnt) {
|
|||
bcs->hw.tiger.sp += s_cnt;
|
||||
bcs->hw.tiger.sendp = p;
|
||||
if (!bcs->hw.tiger.sendcnt) {
|
||||
if (bcs->st->lli.l1writewakeup &&
|
||||
(PACKET_NOACK != bcs->hw.tiger.tx_skb->pkt_type))
|
||||
bcs->st->lli.l1writewakeup(bcs->st, bcs->hw.tiger.tx_skb->len);
|
||||
dev_kfree_skb(bcs->hw.tiger.tx_skb, FREE_WRITE);
|
||||
bcs->hw.tiger.tx_skb = NULL;
|
||||
if (!bcs->hw.tiger.tx_skb) {
|
||||
sprintf(tmp,"tiger write_raw: NULL skb s_cnt %d", s_cnt);
|
||||
debugl1(bcs->cs, tmp);
|
||||
} else {
|
||||
if (bcs->st->lli.l1writewakeup &&
|
||||
(PACKET_NOACK != bcs->hw.tiger.tx_skb->pkt_type))
|
||||
bcs->st->lli.l1writewakeup(bcs->st, bcs->hw.tiger.tx_skb->len);
|
||||
dev_kfree_skb(bcs->hw.tiger.tx_skb);
|
||||
bcs->hw.tiger.tx_skb = NULL;
|
||||
}
|
||||
test_and_clear_bit(BC_FLG_BUSY, &bcs->Flag);
|
||||
bcs->hw.tiger.free = cnt - s_cnt;
|
||||
if (bcs->hw.tiger.free > (NETJET_DMA_SIZE/2))
|
||||
|
@ -744,13 +752,13 @@ close_tigerstate(struct BCState *bcs)
|
|||
bcs->hw.tiger.sendbuf = NULL;
|
||||
}
|
||||
while ((skb = skb_dequeue(&bcs->rqueue))) {
|
||||
dev_kfree_skb(skb, FREE_READ);
|
||||
dev_kfree_skb(skb);
|
||||
}
|
||||
while ((skb = skb_dequeue(&bcs->squeue))) {
|
||||
dev_kfree_skb(skb, FREE_WRITE);
|
||||
dev_kfree_skb(skb);
|
||||
}
|
||||
if (bcs->hw.tiger.tx_skb) {
|
||||
dev_kfree_skb(bcs->hw.tiger.tx_skb, FREE_WRITE);
|
||||
dev_kfree_skb(bcs->hw.tiger.tx_skb);
|
||||
bcs->hw.tiger.tx_skb = NULL;
|
||||
test_and_clear_bit(BC_FLG_BUSY, &bcs->Flag);
|
||||
}
|
||||
|
@ -763,12 +771,12 @@ open_tigerstate(struct IsdnCardState *cs, int bc)
|
|||
struct BCState *bcs = cs->bcs + bc;
|
||||
|
||||
if (!test_and_set_bit(BC_FLG_INIT, &bcs->Flag)) {
|
||||
if (!(bcs->hw.tiger.rcvbuf = kmalloc(HSCX_BUFMAX, GFP_ATOMIC))) {
|
||||
if (!(bcs->hw.tiger.rcvbuf = kmalloc(HSCX_BUFMAX, GFP_KERNEL))) {
|
||||
printk(KERN_WARNING
|
||||
"HiSax: No memory for tiger.rcvbuf\n");
|
||||
return (1);
|
||||
}
|
||||
if (!(bcs->hw.tiger.sendbuf = kmalloc(RAW_BUFMAX, GFP_ATOMIC))) {
|
||||
if (!(bcs->hw.tiger.sendbuf = kmalloc(RAW_BUFMAX, GFP_KERNEL))) {
|
||||
printk(KERN_WARNING
|
||||
"HiSax: No memory for tiger.sendbuf\n");
|
||||
return (1);
|
||||
|
@ -822,7 +830,7 @@ inittiger(struct IsdnCardState *cs))
|
|||
char tmp[128];
|
||||
|
||||
if (!(cs->bcs[0].hw.tiger.send = kmalloc(NETJET_DMA_SIZE * sizeof(unsigned int),
|
||||
GFP_ATOMIC | GFP_DMA))) {
|
||||
GFP_KERNEL | GFP_DMA))) {
|
||||
printk(KERN_WARNING
|
||||
"HiSax: No memory for tiger.send\n");
|
||||
return;
|
||||
|
@ -837,14 +845,14 @@ inittiger(struct IsdnCardState *cs))
|
|||
sprintf(tmp, "tiger: send buf %x - %x", (u_int)cs->bcs[0].hw.tiger.send,
|
||||
(u_int)(cs->bcs[0].hw.tiger.send + NETJET_DMA_SIZE - 1));
|
||||
debugl1(cs, tmp);
|
||||
outl((u_int)cs->bcs[0].hw.tiger.send,
|
||||
outl(virt_to_bus(cs->bcs[0].hw.tiger.send),
|
||||
cs->hw.njet.base + NETJET_DMA_READ_START);
|
||||
outl((u_int)(cs->bcs[0].hw.tiger.s_irq),
|
||||
outl(virt_to_bus(cs->bcs[0].hw.tiger.s_irq),
|
||||
cs->hw.njet.base + NETJET_DMA_READ_IRQ);
|
||||
outl((u_int)(cs->bcs[0].hw.tiger.s_end),
|
||||
outl(virt_to_bus(cs->bcs[0].hw.tiger.s_end),
|
||||
cs->hw.njet.base + NETJET_DMA_READ_END);
|
||||
if (!(cs->bcs[0].hw.tiger.rec = kmalloc(NETJET_DMA_SIZE * sizeof(unsigned int),
|
||||
GFP_ATOMIC | GFP_DMA))) {
|
||||
GFP_KERNEL | GFP_DMA))) {
|
||||
printk(KERN_WARNING
|
||||
"HiSax: No memory for tiger.rec\n");
|
||||
return;
|
||||
|
@ -854,11 +862,11 @@ inittiger(struct IsdnCardState *cs))
|
|||
debugl1(cs, tmp);
|
||||
cs->bcs[1].hw.tiger.rec = cs->bcs[0].hw.tiger.rec;
|
||||
memset(cs->bcs[0].hw.tiger.rec, 0xff, NETJET_DMA_SIZE * sizeof(unsigned int));
|
||||
outl((u_int)cs->bcs[0].hw.tiger.rec,
|
||||
outl(virt_to_bus(cs->bcs[0].hw.tiger.rec),
|
||||
cs->hw.njet.base + NETJET_DMA_WRITE_START);
|
||||
outl((u_int)(cs->bcs[0].hw.tiger.rec + NETJET_DMA_SIZE/2 - 1),
|
||||
outl(virt_to_bus(cs->bcs[0].hw.tiger.rec + NETJET_DMA_SIZE/2 - 1),
|
||||
cs->hw.njet.base + NETJET_DMA_WRITE_IRQ);
|
||||
outl((u_int)(cs->bcs[0].hw.tiger.rec + NETJET_DMA_SIZE - 1),
|
||||
outl(virt_to_bus(cs->bcs[0].hw.tiger.rec + NETJET_DMA_SIZE - 1),
|
||||
cs->hw.njet.base + NETJET_DMA_WRITE_END);
|
||||
sprintf(tmp, "tiger: dmacfg %x/%x pulse=%d",
|
||||
inl(cs->hw.njet.base + NETJET_DMA_WRITE_ADR),
|
||||
|
|
|
@ -7,6 +7,9 @@
|
|||
* Fritz Elfert
|
||||
*
|
||||
* $Log$
|
||||
* Revision 2.6 1998/02/02 13:41:42 keil
|
||||
* fix MDL_ASSIGN for PtP
|
||||
*
|
||||
* Revision 2.5 1997/11/06 17:09:12 keil
|
||||
* New 2.1 init code
|
||||
*
|
||||
|
@ -378,7 +381,7 @@ tei_l1l2(struct PStack *st, int pr, void *arg)
|
|||
sprintf(tmp, "tei handler wrong pr %x\n", pr);
|
||||
st->ma.tei_m.printdebug(&st->ma.tei_m, tmp);
|
||||
}
|
||||
dev_kfree_skb(skb, FREE_READ);
|
||||
dev_kfree_skb(skb);
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
@ -730,7 +730,7 @@ void pcbit_l3_receive(struct pcbit_dev * dev, ulong msg,
|
|||
#endif
|
||||
}
|
||||
|
||||
kfree_skb(skb, FREE_READ);
|
||||
kfree_skb(skb);
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -106,13 +106,13 @@ pcbit_l2_write(struct pcbit_dev *dev, ulong msg, ushort refnum,
|
|||
unsigned long flags;
|
||||
|
||||
if (dev->l2_state != L2_RUNNING && dev->l2_state != L2_LOADING) {
|
||||
dev_kfree_skb(skb, FREE_WRITE);
|
||||
dev_kfree_skb(skb);
|
||||
return -1;
|
||||
}
|
||||
if ((frame = (struct frame_buf *) kmalloc(sizeof(struct frame_buf),
|
||||
GFP_ATOMIC)) == NULL) {
|
||||
printk(KERN_WARNING "pcbit_2_write: kmalloc failed\n");
|
||||
dev_kfree_skb(skb, FREE_WRITE);
|
||||
dev_kfree_skb(skb);
|
||||
return -1;
|
||||
}
|
||||
frame->msg = msg;
|
||||
|
@ -287,7 +287,7 @@ pcbit_transmit(struct pcbit_dev *dev)
|
|||
|
||||
if (frame->skb != NULL) {
|
||||
/* free frame */
|
||||
dev_kfree_skb(frame->skb, FREE_WRITE);
|
||||
dev_kfree_skb(frame->skb);
|
||||
}
|
||||
kfree(frame);
|
||||
}
|
||||
|
@ -381,7 +381,7 @@ pcbit_receive(struct pcbit_dev *dev)
|
|||
#else
|
||||
/* discard previous queued frame */
|
||||
if (dev->read_frame->skb)
|
||||
kfree_skb(dev->read_frame->skb, FREE_READ);
|
||||
kfree_skb(dev->read_frame->skb);
|
||||
kfree(dev->read_frame);
|
||||
dev->read_frame = NULL;
|
||||
#endif
|
||||
|
@ -647,7 +647,7 @@ pcbit_l2_err_recover(unsigned long data)
|
|||
|
||||
if (dev->read_frame) {
|
||||
if (dev->read_frame->skb)
|
||||
kfree_skb(dev->read_frame->skb, FREE_READ);
|
||||
kfree_skb(dev->read_frame->skb);
|
||||
kfree(dev->read_frame);
|
||||
dev->read_frame = NULL;
|
||||
}
|
||||
|
@ -657,7 +657,7 @@ pcbit_l2_err_recover(unsigned long data)
|
|||
dev->write_queue = dev->write_queue->next;
|
||||
|
||||
if (frame->skb) {
|
||||
dev_kfree_skb(frame->skb, FREE_WRITE);
|
||||
dev_kfree_skb(frame->skb);
|
||||
}
|
||||
kfree(frame);
|
||||
#else
|
||||
|
|
|
@ -102,7 +102,7 @@ int sndpkt(int devId, int channel, struct sk_buff *data)
|
|||
adapter[card]->channel[channel].num_sendbufs ? 0 :
|
||||
adapter[card]->channel[channel].next_sendbuf;
|
||||
pr_debug("%s: Packet sent successfully\n", adapter[card]->devicename);
|
||||
dev_kfree_skb(data, FREE_WRITE);
|
||||
dev_kfree_skb(data);
|
||||
indicate_status(card,ISDN_STAT_BSENT,channel, (char *)&len);
|
||||
}
|
||||
return len;
|
||||
|
|
Loading…
Reference in New Issue