Skip to contentSkip to conversation

'syslog_partial' defined but not used on !CONFIG_PRINTK

PATCH In review [email protected] 2 participants 2 messages Jul 10, 2012 Kernel janitors

lore
Share & tools
lore
#0 lore raw

PATCH 6/6 'syslog_partial' defined but not used on !CONFIG_PRINTK

Hi Kay,

There are new compile warnings show up in

tree:   git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core.git driver-core-linus
head:   eb02dac93708f581c99858a19162af8ca2b6bfcb
commit: eb02dac93708f581c99858a19162af8ca2b6bfcb [6/6] kmsg: /proc/kmsg - support reading of partial log records

All warnings:

kernel/printk.c:220:15: warning: 'syslog_partial' defined but not used [-Wunused-variable]

vim +220 kernel/printk.c
217 /* the next printk record to read by syslog(READ) or /proc/kmsg */
218 static u64 syslog_seq;
219 static u32 syslog_idx;

Quoted 1 line

220 static size_t syslog_partial;

221
222 /* index and sequence number of the first record stored in the buffer */
223 static u64 log_first_seq;

The problem is, syslog_partial is defined outside of CONFIG_PRINTK and used inside it:

static size_t syslog_partial;

#ifdef CONFIG_PRINTK
                        syslog_partial = 0;
                skip = syslog_partial;
                if (n - syslog_partial <= size) {
                        n -= syslog_partial;
                        syslog_partial = 0;
                        syslog_partial += n;
int do_syslog(int type, char __user *buf, int len, bool from_file)
                        syslog_partial = 0;
                        error -= syslog_partial;
        return do_syslog(type, buf, len, SYSLOG_FROM_CALL);

#endif /* CONFIG_PRINTK */

---
0-DAY kernel build testing backend Open Source Technology Centre
Fengguang Wu <[email protected]> Intel Corporation

#1 lore raw
Quoted 7 lines · On Tue, 2012-07-10 at 08:15 +0800, [email protected] wrote:

There are new compile warnings show up in

vim +220 kernel/printk.c
217 /* the next printk record to read by syslog(READ) or /proc/kmsg */

   218	static u64 syslog_seq;
   219	static u32 syslog_idx;
Quoted 1 line

220 static size_t syslog_partial;

Oh, that again, sorry. :)

I moved all variables out of the weird ifdef mess now, that should make it a bit easier to avoid forgetting that.

Thanks,
Kay

From: Kay Sievers <[email protected]>
Subject: kmsg - avoid warning for CONFIG_PRINTK=n compilations

---

 kernel/printk.c |   10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)
kernel/printk.c +8 -2
@@ -216,6 +216,7 @@ struct log {
  */
 static DEFINE_RAW_SPINLOCK(logbuf_lock);
 
+#ifdef CONFIG_PRINTK
 /* the next printk record to read by syslog(READ) or /proc/kmsg */
 static u64 syslog_seq;
 static u32 syslog_idx;
@@ -228,7 +229,6 @@ static u32 log_first_idx;
 
 /* index and sequence number of the next record to store in the buffer */
 static u64 log_next_seq;
-#ifdef CONFIG_PRINTK
 static u32 log_next_idx;
 
 /* the next printk record to read after the last 'clear' command */
@@ -1631,9 +1631,15 @@ asmlinkage int printk(const char *fmt, .
 }
 EXPORT_SYMBOL(printk);
 
-#else
+#else /* CONFIG_PRINTK */
 
 #define LOG_LINE_MAX 0
+static u64 syslog_seq;
+static u32 syslog_idx;
+static enum log_flags syslog_prev;
+static u64 log_first_seq;
+static u32 log_first_idx;
+static u64 log_next_seq;
 static struct cont {
 	size_t len;
 	size_t cons;