Skip to content

Commit

Permalink
mtd: ubi: Add logging functions ubi_msg, ubi_warn and ubi_err
Browse files Browse the repository at this point in the history
Using logging functions instead of macros can reduce overall object size.

$ size drivers/mtd/ubi/built-in.o*
   text	   data	    bss	    dec	    hex	filename
 271620	 163364	  73696	 508680	  7c308	drivers/mtd/ubi/built-in.o.allyesconfig.new
 287638	 165380	  73504	 526522	  808ba	drivers/mtd/ubi/built-in.o.allyesconfig.old
  87728	   3780	    504	  92012	  1676c	drivers/mtd/ubi/built-in.o.defconfig.new
  97084	   3780	    504	 101368	  18bf8	drivers/mtd/ubi/built-in.o.defconfig.old

Signed-off-by: Joe Perches <[email protected]>
Signed-off-by: Richard Weinberger <[email protected]>
  • Loading branch information
JoePerches authored and richardweinberger committed Mar 20, 2016
1 parent 3e7f2c5 commit 58d303d
Show file tree
Hide file tree
Showing 2 changed files with 59 additions and 6 deletions.
49 changes: 49 additions & 0 deletions drivers/mtd/ubi/misc.c
Original file line number Diff line number Diff line change
Expand Up @@ -153,3 +153,52 @@ int ubi_check_pattern(const void *buf, uint8_t patt, int size)
return 0;
return 1;
}

/* Normal UBI messages */
void ubi_msg(const struct ubi_device *ubi, const char *fmt, ...)
{
struct va_format vaf;
va_list args;

va_start(args, fmt);

vaf.fmt = fmt;
vaf.va = &args;

pr_notice(UBI_NAME_STR "%d: %pV\n", ubi->ubi_num, &vaf);

va_end(args);
}

/* UBI warning messages */
void ubi_warn(const struct ubi_device *ubi, const char *fmt, ...)
{
struct va_format vaf;
va_list args;

va_start(args, fmt);

vaf.fmt = fmt;
vaf.va = &args;

pr_warn(UBI_NAME_STR "%d warning: %ps: %pV\n",
ubi->ubi_num, __builtin_return_address(0), &vaf);

va_end(args);
}

/* UBI error messages */
void ubi_err(const struct ubi_device *ubi, const char *fmt, ...)
{
struct va_format vaf;
va_list args;

va_start(args, fmt);

vaf.fmt = fmt;
vaf.va = &args;

pr_err(UBI_NAME_STR "%d error: %ps: %pV\n",
ubi->ubi_num, __builtin_return_address(0), &vaf);
va_end(args);
}
16 changes: 10 additions & 6 deletions drivers/mtd/ubi/ubi.h
Original file line number Diff line number Diff line change
Expand Up @@ -49,15 +49,19 @@
/* UBI name used for character devices, sysfs, etc */
#define UBI_NAME_STR "ubi"

struct ubi_device;

/* Normal UBI messages */
#define ubi_msg(ubi, fmt, ...) pr_notice(UBI_NAME_STR "%d: " fmt "\n", \
ubi->ubi_num, ##__VA_ARGS__)
__printf(2, 3)
void ubi_msg(const struct ubi_device *ubi, const char *fmt, ...);

/* UBI warning messages */
#define ubi_warn(ubi, fmt, ...) pr_warn(UBI_NAME_STR "%d warning: %s: " fmt "\n", \
ubi->ubi_num, __func__, ##__VA_ARGS__)
__printf(2, 3)
void ubi_warn(const struct ubi_device *ubi, const char *fmt, ...);

/* UBI error messages */
#define ubi_err(ubi, fmt, ...) pr_err(UBI_NAME_STR "%d error: %s: " fmt "\n", \
ubi->ubi_num, __func__, ##__VA_ARGS__)
__printf(2, 3)
void ubi_err(const struct ubi_device *ubi, const char *fmt, ...);

/* Background thread name pattern */
#define UBI_BGT_NAME_PATTERN "ubi_bgt%dd"
Expand Down

0 comments on commit 58d303d

Please sign in to comment.