1. 27 Nov, 2012 7 commits
    • Seiji Aguchi's avatar
      efi_pstore: Add a format check for an existing variable name at erasing time · f94ec0c0
      Seiji Aguchi authored
      [Issue]
      
      a format of variable name has been updated to type, id, count and ctime
      to support holding multiple logs.
      
      Format of current variable name
        dump-type0-1-2-12345678
      
        type:0
        id:1
        count:2
        ctime:12345678
      
      On the other hand, if an old variable name before being updated
      remains, users can't erase it via /dev/pstore.
      
      Format of old variable name
        dump-type0-1-12345678
      
        type:0
        id:1
        ctime:12345678
      
      [Solution]
      
      This patch add a format check for the old variable name in a erase callback to make it erasable.
      Signed-off-by: default avatarSeiji Aguchi <seiji.aguchi@hds.com>
      Acked-by: default avatarMike Waychison <mikew@google.com>
      Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
      f94ec0c0
    • Seiji Aguchi's avatar
      efi_pstore: Add a format check for an existing variable name at reading time · 0f7de85a
      Seiji Aguchi authored
      [Issue]
      
      a format of variable name has been updated to type, id, count and ctime
      to support holding multiple logs.
      
      Format of current variable name
        dump-type0-1-2-12345678
      
        type:0
        id:1
        count:2
        ctime:12345678
      
      On the other hand, if an old variable name before being updated
      remains, users can't read it via /dev/pstore.
      
      Format of old variable name
        dump-type0-1-12345678
      
        type:0
        id:1
        ctime:12345678
      
      [Solution]
      
      This patch add a format check for the old variable name in a read callback
      to make it readable.
      Signed-off-by: default avatarSeiji Aguchi <seiji.aguchi@hds.com>
      Acked-by: default avatarMike Waychison <mikew@google.com>
      Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
      0f7de85a
    • Seiji Aguchi's avatar
      efi_pstore: Add a sequence counter to a variable name · 755d4fe4
      Seiji Aguchi authored
      [Issue]
      
      Currently, a variable name, which identifies each entry, consists of type, id and ctime.
      But if multiple events happens in a short time, a second/third event may fail to log because
      efi_pstore can't distinguish each event with current variable name.
      
      [Solution]
      
      A reasonable way to identify all events precisely is introducing a sequence counter to
      the variable name.
      
      The sequence counter has already supported in a pstore layer with "oopscount".
      So, this patch adds it to a variable name.
      Also, it is passed to read/erase callbacks of platform drivers in accordance with
      the modification of the variable name.
      
        <before applying this patch>
       a variable name of first event: dump-type0-1-12345678
       a variable name of second event: dump-type0-1-12345678
      
        type:0
        id:1
        ctime:12345678
      
       If multiple events happen in a short time, efi_pstore can't distinguish them because
       variable names are same among them.
      
        <after applying this patch>
      
       it can be distinguishable by adding a sequence counter as follows.
      
       a variable name of first event: dump-type0-1-1-12345678
       a variable name of Second event: dump-type0-1-2-12345678
      
        type:0
        id:1
        sequence counter: 1(first event), 2(second event)
        ctime:12345678
      
      In case of a write callback executed in pstore_console_write(), "0" is added to
      an argument of the write callback because it just logs all kernel messages and
      doesn't need to care about multiple events.
      Signed-off-by: default avatarSeiji Aguchi <seiji.aguchi@hds.com>
      Acked-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      Acked-by: default avatarMike Waychison <mikew@google.com>
      Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
      755d4fe4
    • Seiji Aguchi's avatar
      efi_pstore: Add ctime to argument of erase callback · a9efd39c
      Seiji Aguchi authored
      [Issue]
      
      Currently, a variable name, which is used to identify each log entry, consists of type,
      id and ctime. But an erase callback does not use ctime.
      
      If efi_pstore supported just one log, type and id were enough.
      However, in case of supporting multiple logs, it doesn't work because
      it can't distinguish each entry without ctime at erasing time.
      
       <Example>
      
       As you can see below, efi_pstore can't differentiate first event from second one without ctime.
      
       a variable name of first event: dump-type0-1-12345678
       a variable name of second event: dump-type0-1-23456789
      
        type:0
        id:1
        ctime:12345678, 23456789
      
      [Solution]
      
      This patch adds ctime to an argument of an erase callback.
      
      It works across reboots because ctime of pstore means the date that the record was originally stored.
      To do this, efi_pstore saves the ctime to variable name at writing time and passes it to pstore
      at reading time.
      Signed-off-by: default avatarSeiji Aguchi <seiji.aguchi@hds.com>
      Acked-by: default avatarMike Waychison <mikew@google.com>
      Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
      a9efd39c
    • Seiji Aguchi's avatar
      efi_pstore: Remove a logic erasing entries from a write callback to hold multiple logs · 96480d9c
      Seiji Aguchi authored
      [Issue]
      
      Currently, efi_pstore driver simply overwrites existing panic messages in NVRAM.
      So, in the following scenario, we will lose 1st panic messages.
      
      1. kernel panics.
      2. efi_pstore is kicked and writes panic messages to NVRAM.
      3. system reboots.
      4. kernel panics again before a user checks the 1st panic messages in NVRAM.
      
      [Solution]
      
      A reasonable solution to fix the issue is just holding multiple logs without erasing
      existing entries.
      This patch removes a logic erasing existing entries in a write callback
      because the logic is not needed in the write callback to support holding multiple logs.
      Signed-off-by: default avatarSeiji Aguchi <seiji.aguchi@hds.com>
      Acked-by: default avatarMike Waychison <mikew@google.com>
      Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
      96480d9c
    • Seiji Aguchi's avatar
      efi_pstore: Add a logic erasing entries to an erase callback · dd230fec
      Seiji Aguchi authored
      [Issue]
      
      Currently, efi_pstore driver simply overwrites existing panic messages in NVRAM.
      So, in the following scenario, we will lose 1st panic messages.
      
       1. kernel panics.
       2. efi_pstore is kicked and writes panic messages to NVRAM.
       3. system reboots.
       4. kernel panics again before a user checks the 1st panic messages in NVRAM.
      
      [Solution]
      
      A reasonable solution to fix the issue is just holding multiple logs without erasing
      existing entries.
      
      This patch freshly adds a logic erasing existing entries, which shared with a write callback,
      to an erase callback.
      To support holding multiple logs, the write callback doesn't need to erase any entries and
      it will be removed in a subsequent patch.
      Signed-off-by: default avatarSeiji Aguchi <seiji.aguchi@hds.com>
      Acked-by: default avatarMike Waychison <mikew@google.com>
      Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
      dd230fec
    • Seiji Aguchi's avatar
      efi_pstore: Check remaining space with QueryVariableInfo() before writing data · d80a361d
      Seiji Aguchi authored
      [Issue]
      
      As discussed in a thread below, Running out of space in EFI isn't a well-tested scenario.
      And we wouldn't expect all firmware to handle it gracefully.
      http://marc.info/?l=linux-kernel&m=134305325801789&w=2
      
      On the other hand, current efi_pstore doesn't check a remaining space of storage at writing time.
      Therefore, efi_pstore may not work if it tries to write a large amount of data.
      
      [Patch Description]
      
      To avoid handling the situation above, this patch checks if there is a space enough to log with
      QueryVariableInfo() before writing data.
      Signed-off-by: default avatarSeiji Aguchi <seiji.aguchi@hds.com>
      Acked-by: default avatarMike Waychison <mikew@google.com>
      Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
      d80a361d
  2. 26 Nov, 2012 3 commits
  3. 25 Nov, 2012 1 commit
  4. 24 Nov, 2012 4 commits
    • Linus Torvalds's avatar
      Merge tag 'sound-3.7' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 194d9831
      Linus Torvalds authored
      Pull sound build error fix from Takashi Iwai:
       "Only a single commit for fixing the build error without CONFIG_PM in
        hda driver."
      
      * tag 'sound-3.7' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
        ALSA: hda - Fix build without CONFIG_PM
      194d9831
    • Takashi Iwai's avatar
      ALSA: hda - Fix build without CONFIG_PM · d846b174
      Takashi Iwai authored
      I forgot this again...  codec->in_pm is in #ifdef CONFIG_PM
      Reported-by: default avatarMarkus Trippelsdorf <markus@trippelsdorf.de>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      d846b174
    • Linus Torvalds's avatar
      Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 2654ad44
      Linus Torvalds authored
      Pull x86 arch fixes from Peter Anvin:
       "Here is a collection of fixes for 3.7-rc7.  This is a superset of
        tglx' earlier pull request."
      
      * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86-64: Fix ordering of CFI directives and recent ASM_CLAC additions
        x86, microcode, AMD: Add support for family 16h processors
        x86-32: Export kernel_stack_pointer() for modules
        x86-32: Fix invalid stack address while in softirq
        x86, efi: Fix processor-specific memcpy() build error
        x86: remove dummy long from EFI stub
        x86, mm: Correct vmflag test for checking VM_HUGETLB
        x86, amd: Disable way access filter on Piledriver CPUs
        x86/mce: Do not change worker's running cpu in cmci_rediscover().
        x86/ce4100: Fix PCI configuration register access for devices without interrupts
        x86/ce4100: Fix reboot by forcing the reboot method to be KBD
        x86/ce4100: Fix pm_poweroff
        MAINTAINERS: Update email address for Robert Richter
        x86, microcode_amd: Change email addresses, MAINTAINERS entry
        MAINTAINERS: Change Boris' email address
        EDAC: Change Boris' email address
        x86, AMD: Change Boris' email address
      2654ad44
    • Linus Torvalds's avatar
      Merge tag 'for-linus-20121123' of git://git.infradead.org/mtd-2.6 · 35f95d22
      Linus Torvalds authored
      Pull MTD fixes from David Woodhouse:
       "The most important part of this is that it fixes a regression in
        Samsung NAND chip detection, introduced by some rework which went into
        3.7.  The initial fix wasn't quite complete, so it's in two parts.  In
        fact the first part is committed twice (Artem committed his own copy
        of the same patch) and I've merged Artem's tree into mine which
        already had that fix.
      
        I'd have recommitted that to make it somewhat cleaner, but figured by
        this point in the release cycle it was better to merge *exactly* the
        commits which have been in linux-next.
      
        If I'd recommitted, I'd also omit the sparse warning fix.  But it's
        there, and it's harmless — just marking one function as 'static' in
        onenand code.
      
        This also includes a couple more fixes for stable: an AB-BA deadlock
        in JFFS2, and an invalid range check in slram."
      
      * tag 'for-linus-20121123' of git://git.infradead.org/mtd-2.6:
        mtd: nand: fix Samsung SLC detection regression
        mtd: nand: fix Samsung SLC NAND identification regression
        jffs2: Fix lock acquisition order bug in jffs2_write_begin
        mtd: onenand: Make flexonenand_set_boundary static
        mtd: slram: invalid checking of absolute end address
        mtd: ofpart: Fix incorrect NULL check in parse_ofoldpart_partitions()
        mtd: nand: fix Samsung SLC NAND identification regression
      35f95d22
  5. 23 Nov, 2012 25 commits