Commit 1168386a authored by Dominik Brodowski's avatar Dominik Brodowski

pcmcia: deprecate CS_OUT_OF_RESOURCE

CS_OUT_OF_RESOURCE was almost only used to note -ENOMEM situations.
Therefore, use -ENOMEM explicitely, and also print out warnings.

CC: netdev@vger.kernel.org
Signed-off-by: default avatarDominik Brodowski <linux@dominikbrodowski.net>
parent 5ff87db6
...@@ -491,7 +491,7 @@ static int mhz_mfc_config(struct pcmcia_device *link) ...@@ -491,7 +491,7 @@ static int mhz_mfc_config(struct pcmcia_device *link)
cfg_mem = kmalloc(sizeof(struct smc_cfg_mem), GFP_KERNEL); cfg_mem = kmalloc(sizeof(struct smc_cfg_mem), GFP_KERNEL);
if (!cfg_mem) if (!cfg_mem)
return CS_OUT_OF_RESOURCE; return -ENOMEM;
link->conf.Attributes |= CONF_ENABLE_SPKR; link->conf.Attributes |= CONF_ENABLE_SPKR;
link->conf.Status = CCSR_AUDIO_ENA; link->conf.Status = CCSR_AUDIO_ENA;
...@@ -690,7 +690,7 @@ static int smc_setup(struct pcmcia_device *link) ...@@ -690,7 +690,7 @@ static int smc_setup(struct pcmcia_device *link)
cfg_mem = kmalloc(sizeof(struct smc_cfg_mem), GFP_KERNEL); cfg_mem = kmalloc(sizeof(struct smc_cfg_mem), GFP_KERNEL);
if (!cfg_mem) if (!cfg_mem)
return CS_OUT_OF_RESOURCE; return -ENOMEM;
tuple = &cfg_mem->tuple; tuple = &cfg_mem->tuple;
parse = &cfg_mem->parse; parse = &cfg_mem->parse;
......
...@@ -352,7 +352,9 @@ int verify_cis_cache(struct pcmcia_socket *s) ...@@ -352,7 +352,9 @@ int verify_cis_cache(struct pcmcia_socket *s)
buf = kmalloc(256, GFP_KERNEL); buf = kmalloc(256, GFP_KERNEL);
if (buf == NULL) if (buf == NULL)
return -1; dev_printk(KERN_WARNING, &s->dev,
"no memory for verifying CIS\n");
return -ENOMEM;
list_for_each_entry(cis, &s->cis_cache, node) { list_for_each_entry(cis, &s->cis_cache, node) {
int len = cis->len; int len = cis->len;
...@@ -384,12 +386,16 @@ int verify_cis_cache(struct pcmcia_socket *s) ...@@ -384,12 +386,16 @@ int verify_cis_cache(struct pcmcia_socket *s)
int pcmcia_replace_cis(struct pcmcia_socket *s, int pcmcia_replace_cis(struct pcmcia_socket *s,
const u8 *data, const size_t len) const u8 *data, const size_t len)
{ {
if (len > CISTPL_MAX_CIS_SIZE) if (len > CISTPL_MAX_CIS_SIZE) {
return CS_BAD_SIZE; dev_printk(KERN_WARNING, &s->dev, "replacement CIS too big\n");
return -EINVAL;
}
kfree(s->fake_cis); kfree(s->fake_cis);
s->fake_cis = kmalloc(len, GFP_KERNEL); s->fake_cis = kmalloc(len, GFP_KERNEL);
if (s->fake_cis == NULL) if (s->fake_cis == NULL) {
return CS_OUT_OF_RESOURCE; dev_printk(KERN_WARNING, &s->dev, "no memory to replace CIS\n");
return -ENOMEM;
}
s->fake_cis_len = len; s->fake_cis_len = len;
memcpy(s->fake_cis, data, len); memcpy(s->fake_cis, data, len);
return 0; return 0;
...@@ -1411,8 +1417,10 @@ int pccard_read_tuple(struct pcmcia_socket *s, unsigned int function, cisdata_t ...@@ -1411,8 +1417,10 @@ int pccard_read_tuple(struct pcmcia_socket *s, unsigned int function, cisdata_t
int ret; int ret;
buf = kmalloc(256, GFP_KERNEL); buf = kmalloc(256, GFP_KERNEL);
if (buf == NULL) if (buf == NULL) {
return CS_OUT_OF_RESOURCE; dev_printk(KERN_WARNING, &s->dev, "no memory to read tuple\n");
return -ENOMEM;
}
tuple.DesiredTuple = code; tuple.DesiredTuple = code;
tuple.Attributes = TUPLE_RETURN_COMMON; tuple.Attributes = TUPLE_RETURN_COMMON;
ret = pccard_get_first_tuple(s, function, &tuple); ret = pccard_get_first_tuple(s, function, &tuple);
...@@ -1452,12 +1460,15 @@ int pccard_validate_cis(struct pcmcia_socket *s, unsigned int function, unsigned ...@@ -1452,12 +1460,15 @@ int pccard_validate_cis(struct pcmcia_socket *s, unsigned int function, unsigned
return CS_BAD_HANDLE; return CS_BAD_HANDLE;
tuple = kmalloc(sizeof(*tuple), GFP_KERNEL); tuple = kmalloc(sizeof(*tuple), GFP_KERNEL);
if (tuple == NULL) if (tuple == NULL) {
return CS_OUT_OF_RESOURCE; dev_printk(KERN_WARNING, &s->dev, "no memory to validate CIS\n");
return -ENOMEM;
}
p = kmalloc(sizeof(*p), GFP_KERNEL); p = kmalloc(sizeof(*p), GFP_KERNEL);
if (p == NULL) { if (p == NULL) {
kfree(tuple); kfree(tuple);
return CS_OUT_OF_RESOURCE; dev_printk(KERN_WARNING, &s->dev, "no memory to validate CIS\n");
return -ENOMEM;
} }
count = reserved = 0; count = reserved = 0;
......
...@@ -780,7 +780,7 @@ int pcmcia_request_window(struct pcmcia_device **p_dev, win_req_t *req, window_h ...@@ -780,7 +780,7 @@ int pcmcia_request_window(struct pcmcia_device **p_dev, win_req_t *req, window_h
for (w = 0; w < MAX_WIN; w++) for (w = 0; w < MAX_WIN; w++)
if (!(s->state & SOCKET_WIN_REQ(w))) break; if (!(s->state & SOCKET_WIN_REQ(w))) break;
if (w == MAX_WIN) if (w == MAX_WIN)
return CS_OUT_OF_RESOURCE; return CS_IN_USE;
win = &s->win[w]; win = &s->win[w];
win->magic = WINDOW_MAGIC; win->magic = WINDOW_MAGIC;
......
...@@ -131,7 +131,10 @@ static int add_interval(struct resource_map *map, u_long base, u_long num) ...@@ -131,7 +131,10 @@ static int add_interval(struct resource_map *map, u_long base, u_long num)
break; break;
} }
q = kmalloc(sizeof(struct resource_map), GFP_KERNEL); q = kmalloc(sizeof(struct resource_map), GFP_KERNEL);
if (!q) return CS_OUT_OF_RESOURCE; if (!q) {
printk(KERN_WARNING "out of memory to update resources\n");
return -ENOMEM;
}
q->base = base; q->num = num; q->base = base; q->num = num;
q->next = p->next; p->next = q; q->next = p->next; p->next = q;
return 0; return 0;
...@@ -166,7 +169,10 @@ static int sub_interval(struct resource_map *map, u_long base, u_long num) ...@@ -166,7 +169,10 @@ static int sub_interval(struct resource_map *map, u_long base, u_long num)
} else { } else {
/* Split the block into two pieces */ /* Split the block into two pieces */
p = kmalloc(sizeof(struct resource_map), GFP_KERNEL); p = kmalloc(sizeof(struct resource_map), GFP_KERNEL);
if (!p) return CS_OUT_OF_RESOURCE; if (!p) {
printk(KERN_WARNING "out of memory to update resources\n");
return -ENOMEM;
}
p->base = base+num; p->base = base+num;
p->num = q->base+q->num - p->base; p->num = q->base+q->num - p->base;
q->num = base - q->base; q->num = base - q->base;
......
...@@ -316,7 +316,7 @@ typedef struct error_info_t { ...@@ -316,7 +316,7 @@ typedef struct error_info_t {
#define CS_CONFIGURATION_LOCKED 0x1d #define CS_CONFIGURATION_LOCKED 0x1d
#define CS_IN_USE 0x1e #define CS_IN_USE 0x1e
#define CS_NO_MORE_ITEMS 0x1f #define CS_NO_MORE_ITEMS 0x1f
#define CS_OUT_OF_RESOURCE 0x20 #define CS_OUT_OF_RESOURCE -ENOMEM
#define CS_BAD_HANDLE 0x21 #define CS_BAD_HANDLE 0x21
#define CS_BAD_TUPLE 0x40 #define CS_BAD_TUPLE 0x40
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment