fixes from 2.4 (same as in branch KERNEL_2_4, forget the changelog there :(
o fix typo in the pci MODULE_DEVICE_TABLE in hisax (Ingo Oeser/me) o fix crash with dss1_divert compiled into the kernel o fix PPP crash with compression (Andre Beck) o fix V.110 crash known bugs: most likely another MPPP crash remains, which I couldn't reproduce yet.
This commit is contained in:
parent
18a3ebaa1f
commit
15696b18a0
|
@ -1757,8 +1757,8 @@ int __devinit hisax_init_pcmcia(void *pcm_iob, int *busy_flag, struct IsdnCard *
|
|||
|
||||
#ifndef COMPAT_HAS_2_2_PCI
|
||||
static struct pci_device_id hisax_pci_tbl[] __initdata = {
|
||||
#ifdef CONFIG_HISAX_FRTIZPCI
|
||||
{PCI_VENDOR_ID_AVM, PCI_DEVICE_ID_AVM_FRITZ, PCI_ANY_ID, PCI_ANY_ID},
|
||||
#ifdef CONFIG_HISAX_FRITZPCI
|
||||
{PCI_VENDOR_ID_AVM, PCI_DEVICE_ID_AVM_A1, PCI_ANY_ID, PCI_ANY_ID},
|
||||
#endif
|
||||
#ifdef CONFIG_HISAX_DIEHLDIVA
|
||||
{PCI_VENDOR_ID_EICON, PCI_DEVICE_ID_EICON_DIVA20, PCI_ANY_ID, PCI_ANY_ID},
|
||||
|
|
|
@ -37,6 +37,9 @@
|
|||
#ifdef CONFIG_ISDN_AUDIO
|
||||
#include "isdn_audio.h"
|
||||
#endif
|
||||
#ifdef CONFIG_ISDN_DIVERSION_MODULE
|
||||
#define CONFIG_ISDN_DIVERSION
|
||||
#endif
|
||||
#ifdef CONFIG_ISDN_DIVERSION
|
||||
#include <linux/isdn_divertif.h>
|
||||
#endif CONFIG_ISDN_DIVERSION
|
||||
|
@ -67,7 +70,7 @@ static char *isdn_audio_revision = ": none $";
|
|||
extern char *isdn_v110_revision;
|
||||
|
||||
#ifdef CONFIG_ISDN_DIVERSION
|
||||
isdn_divert_if *divert_if; /* interface to diversion module */
|
||||
static isdn_divert_if *divert_if; /* = NULL */
|
||||
#endif CONFIG_ISDN_DIVERSION
|
||||
|
||||
|
||||
|
@ -2197,7 +2200,6 @@ set_global_features(void)
|
|||
}
|
||||
|
||||
#ifdef CONFIG_ISDN_DIVERSION
|
||||
extern isdn_divert_if *divert_if;
|
||||
|
||||
static char *map_drvname(int di)
|
||||
{
|
||||
|
|
|
@ -2350,8 +2350,7 @@ static struct sk_buff *isdn_ppp_decompress(struct sk_buff *skb,struct ippp_struc
|
|||
rsparm.data = rsdata;
|
||||
rsparm.maxdlen = IPPP_RESET_MAXDATABYTES;
|
||||
|
||||
/* !!!HACK,HACK,HACK!!! 2048 is only assumed */
|
||||
skb_out = dev_alloc_skb(2048);
|
||||
skb_out = dev_alloc_skb(is->mru + PPP_HDRLEN);
|
||||
len = ipc->decompress(stat, skb, skb_out, &rsparm);
|
||||
kfree_skb(skb);
|
||||
if (len <= 0) {
|
||||
|
@ -2372,14 +2371,9 @@ static struct sk_buff *isdn_ppp_decompress(struct sk_buff *skb,struct ippp_struc
|
|||
kfree_skb(skb_out);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (isdn_ppp_skip_ac(ri, skb) < 0) {
|
||||
kfree_skb(skb);
|
||||
return NULL;
|
||||
}
|
||||
*proto = isdn_ppp_strip_proto(skb);
|
||||
*proto = isdn_ppp_strip_proto(skb_out);
|
||||
if (*proto < 0) {
|
||||
kfree_skb(skb);
|
||||
kfree_skb(skb_out);
|
||||
return NULL;
|
||||
}
|
||||
return skb_out;
|
||||
|
|
|
@ -102,7 +102,7 @@ isdn_v110_open(unsigned char key, int hdrlen, int maxsize)
|
|||
int i;
|
||||
isdn_v110_stream *v;
|
||||
|
||||
if ((v = kmalloc(sizeof(isdn_v110_stream), GFP_KERNEL)) == NULL)
|
||||
if ((v = kmalloc(sizeof(isdn_v110_stream), GFP_ATOMIC)) == NULL)
|
||||
return NULL;
|
||||
memset(v, 0, sizeof(isdn_v110_stream));
|
||||
v->key = key;
|
||||
|
@ -134,7 +134,7 @@ isdn_v110_open(unsigned char key, int hdrlen, int maxsize)
|
|||
v->b = 0;
|
||||
v->skbres = hdrlen;
|
||||
v->maxsize = maxsize - hdrlen;
|
||||
if ((v->encodebuf = kmalloc(maxsize, GFP_KERNEL)) == NULL) {
|
||||
if ((v->encodebuf = kmalloc(maxsize, GFP_ATOMIC)) == NULL) {
|
||||
kfree(v);
|
||||
return NULL;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue