OSDN Git Service

Merge android-4.4-p.203 (40ef73d) into msm-4.4
[sagit-ice-cold/kernel_xiaomi_msm8998.git] / kernel / printk / printk.c
index 5c8eca7..3575b20 100644 (file)
@@ -236,7 +236,11 @@ struct printk_log {
        u8 facility;            /* syslog facility */
        u8 flags:5;             /* internal record flags */
        u8 level:3;             /* syslog level */
-};
+}
+#ifdef CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS
+__packed __aligned(4)
+#endif
+;
 
 /*
  * The logbuf_lock protects kmsg buffer, indices, counters.  This can be taken
@@ -277,11 +281,7 @@ static u32 clear_idx;
 #define LOG_FACILITY(v)                ((v) >> 3 & 0xff)
 
 /* record buffer */
-#if defined(CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS)
-#define LOG_ALIGN 4
-#else
 #define LOG_ALIGN __alignof__(struct printk_log)
-#endif
 #define __LOG_BUF_LEN (1 << CONFIG_LOG_BUF_SHIFT)
 #define LOG_BUF_LEN_MAX (u32)(1 << 31)
 static char __log_buf[__LOG_BUF_LEN] __aligned(LOG_ALIGN);
@@ -2130,6 +2130,8 @@ void resume_console(void)
        console_unlock();
 }
 
+#ifdef CONFIG_CONSOLE_FLUSH_ON_HOTPLUG
+
 /**
  * console_cpu_notify - print deferred console messages after CPU hotplug
  * @self: notifier struct
@@ -2149,12 +2151,18 @@ static int console_cpu_notify(struct notifier_block *self,
        case CPU_DEAD:
        case CPU_DOWN_FAILED:
        case CPU_UP_CANCELED:
+       case CPU_DYING:
+#ifdef CONFIG_CONSOLE_FLUSH_ON_HOTPLUG
                console_lock();
                console_unlock();
+#endif
+               break;
        }
        return NOTIFY_OK;
 }
 
+#endif
+
 /**
  * console_lock - lock the console system for exclusive use.
  *
@@ -2719,7 +2727,9 @@ static int __init printk_late_init(void)
                        unregister_console(con);
                }
        }
+#ifdef CONFIG_CONSOLE_FLUSH_ON_HOTPLUG
        hotcpu_notifier(console_cpu_notify, 0);
+#endif
        return 0;
 }
 late_initcall(printk_late_init);