Skip to content

Commit

Permalink
Decompressors: get rid of set_error_fn() macro
Browse files Browse the repository at this point in the history
set_error_fn() has become a useless complication after c1e7c3a
("bzip2/lzma/gzip: pre-boot malloc doesn't return NULL on failure") fixed
the use of error() in malloc().  Only decompress_unlzma.c had some use for
it and that was easy to change too.

This also gets rid of the static function pointer "error", which
should have been marked as __initdata.

Signed-off-by: Lasse Collin <[email protected]>
Cc: "H. Peter Anvin" <[email protected]>
Cc: Alain Knaff <[email protected]>
Cc: Albin Tonnerre <[email protected]>
Cc: Phillip Lougher <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
  • Loading branch information
Larhzu authored and torvalds committed Jan 13, 2011
1 parent 6b01ed6 commit 93685ad
Show file tree
Hide file tree
Showing 5 changed files with 11 additions and 19 deletions.
5 changes: 0 additions & 5 deletions include/linux/decompress/mm.h
Original file line number Diff line number Diff line change
Expand Up @@ -61,8 +61,6 @@ static void free(void *where)
#define large_malloc(a) malloc(a)
#define large_free(a) free(a)

#define set_error_fn(x)

#define INIT

#else /* STATIC */
Expand All @@ -84,9 +82,6 @@ static void free(void *where)
#define large_malloc(a) vmalloc(a)
#define large_free(a) vfree(a)

static void(*error)(char *m);
#define set_error_fn(x) error = x;

#define INIT __init
#define STATIC

Expand Down
7 changes: 3 additions & 4 deletions lib/decompress_bunzip2.c
Original file line number Diff line number Diff line change
Expand Up @@ -682,13 +682,12 @@ STATIC int INIT bunzip2(unsigned char *buf, int len,
int(*flush)(void*, unsigned int),
unsigned char *outbuf,
int *pos,
void(*error_fn)(char *x))
void(*error)(char *x))
{
struct bunzip_data *bd;
int i = -1;
unsigned char *inbuf;

set_error_fn(error_fn);
if (flush)
outbuf = malloc(BZIP2_IOBUF_SIZE);

Expand Down Expand Up @@ -751,8 +750,8 @@ STATIC int INIT decompress(unsigned char *buf, int len,
int(*flush)(void*, unsigned int),
unsigned char *outbuf,
int *pos,
void(*error_fn)(char *x))
void(*error)(char *x))
{
return bunzip2(buf, len - 4, fill, flush, outbuf, pos, error_fn);
return bunzip2(buf, len - 4, fill, flush, outbuf, pos, error);
}
#endif
3 changes: 1 addition & 2 deletions lib/decompress_inflate.c
Original file line number Diff line number Diff line change
Expand Up @@ -38,13 +38,12 @@ STATIC int INIT gunzip(unsigned char *buf, int len,
int(*flush)(void*, unsigned int),
unsigned char *out_buf,
int *pos,
void(*error_fn)(char *x)) {
void(*error)(char *x)) {
u8 *zbuf;
struct z_stream_s *strm;
int rc;
size_t out_len;

set_error_fn(error_fn);
rc = -1;
if (flush) {
out_len = 0x8000; /* 32 K */
Expand Down
11 changes: 6 additions & 5 deletions lib/decompress_unlzma.c
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,7 @@ struct rc {
uint32_t code;
uint32_t range;
uint32_t bound;
void (*error)(char *);
};


Expand All @@ -92,7 +93,7 @@ static void INIT rc_read(struct rc *rc)
{
rc->buffer_size = rc->fill((char *)rc->buffer, LZMA_IOBUF_SIZE);
if (rc->buffer_size <= 0)
error("unexpected EOF");
rc->error("unexpected EOF");
rc->ptr = rc->buffer;
rc->buffer_end = rc->buffer + rc->buffer_size;
}
Expand Down Expand Up @@ -536,7 +537,7 @@ STATIC inline int INIT unlzma(unsigned char *buf, int in_len,
int(*flush)(void*, unsigned int),
unsigned char *output,
int *posp,
void(*error_fn)(char *x)
void(*error)(char *x)
)
{
struct lzma_header header;
Expand All @@ -552,7 +553,7 @@ STATIC inline int INIT unlzma(unsigned char *buf, int in_len,
unsigned char *inbuf;
int ret = -1;

set_error_fn(error_fn);
rc.error = error;

if (buf)
inbuf = buf;
Expand Down Expand Up @@ -659,9 +660,9 @@ STATIC int INIT decompress(unsigned char *buf, int in_len,
int(*flush)(void*, unsigned int),
unsigned char *output,
int *posp,
void(*error_fn)(char *x)
void(*error)(char *x)
)
{
return unlzma(buf, in_len - 4, fill, flush, output, posp, error_fn);
return unlzma(buf, in_len - 4, fill, flush, output, posp, error);
}
#endif
4 changes: 1 addition & 3 deletions lib/decompress_unlzo.c
Original file line number Diff line number Diff line change
Expand Up @@ -91,16 +91,14 @@ STATIC inline int INIT unlzo(u8 *input, int in_len,
int (*fill) (void *, unsigned int),
int (*flush) (void *, unsigned int),
u8 *output, int *posp,
void (*error_fn) (char *x))
void (*error) (char *x))
{
u8 skip = 0, r = 0;
u32 src_len, dst_len;
size_t tmp;
u8 *in_buf, *in_buf_save, *out_buf;
int ret = -1;

set_error_fn(error_fn);

if (output) {
out_buf = output;
} else if (!flush) {
Expand Down

0 comments on commit 93685ad

Please sign in to comment.