Skip to content
  1. Mar 09, 2013
  2. Mar 08, 2013
    • Linus Torvalds's avatar
      Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 47b3bc90
      Linus Torvalds authored
      Pull x86 fixes from Peter Anvin:
       "Several boot fixes (MacBook, legacy EFI bootloaders), another
        please-don't-brick fix, and some minor stuff."
      
      * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86: Do not try to sync identity map for non-mapped pages
        x86, doc: Be explicit about what the x86 struct boot_params requires
        x86: Don't clear efi_info even if the sentinel hits
        x86, mm: Make sure to find a 2M free block for the first mapped area
        x86: Fix 32-bit *_cpu_data initializers
        efivarfs: return accurate error code in efivarfs_fill_super()
        efivars: efivarfs_valid_name() should handle pstore syntax
        efi: be more paranoid about available space when creating variables
        iommu, x86: Add DMA remap fault reason
        x86, smpboot: Remove unused variable
      47b3bc90
    • Linus Torvalds's avatar
      Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux · af2841cd
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "Misc radeon, nouveau, mgag200 and intel fixes.
      
        The intel fixes should contain the fix for the touchpad on the
        Chromebook - hey I'm an input maintainer now!"
      
      Hate to pee on your parade, Dave, but I don't think being an input
      maintainer is necessarily something to strive for..
      
      * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux: (25 commits)
        drm/tegra: drop "select DRM_HDMI"
        drm: Documentation typo fixes
        drm/mgag200: Bug fix: Renesas board now selects native resolution.
        drm/mgag200: Reject modes that are too big for VRAM
        drm/mgag200: 'fbdev_list' in 'struct mga_fbdev' is not used
        drm/radeon: don't check mipmap alignment if MIP_ADDRESS is FMASK
        drm/radeon: skip MC reset as it's probably not hung
        drm/radeon: add primary dac adj quirk for R200 board
        drm/radeon: don't set hpd, afmt interrupts when interrupts are disabled
        drm/i915: Turn off hsync and vsync on ADPA when disabling crt
        drm/i915: Fix incorrect definition of ADPA HSYNC and VSYNC bits
        drm/i915: also disable south interrupts when handling them
        drm/i915: enable irqs earlier when resuming
        drm/i915: Increase the RC6p threshold.
        DRM/i915: On G45 enable cursor plane briefly after enabling the display plane.
        drm/nv50-: prevent some races between modesetting and page flipping
        drm/nouveau/i2c: drop parent refcount when creating ports
        drm/nv84: fix regression in page flipping
        drm/nouveau: Fix typo in init_idx_addr_latched().
        drm/nouveau: Disable AGP on PowerPC again.
        ...
      af2841cd
    • Linus Torvalds's avatar
      Merge tag 'pm+acpi-3.9-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · c89b148f
      Linus Torvalds authored
      Pull ACPI and power management fixes from Rafael J Wysocki:
      
       - Two fixes for the new intel_pstate driver from Dirk Brandewie.
      
       - Fix for incorrect usage of the .find_bridge() callback from struct
         acpi_bus_type in the USB core and subsequent removal of that callback
         from Rafael J Wysocki.
      
       - ACPI processor driver cleanups from Chen Gang and Syam Sidhardhan.
      
       - ACPI initialization and error messages fix from Joe Perches.
      
       - Operating Performance Points documentation improvement from Nishanth
         Menon.
      
       - Fixes for memory leaks and potential concurrency issues and sysfs
        attributes leaks during device removal in the core device PM QoS code
        from Rafael J Wysocki.
      
       - Calxeda Highbank cpufreq driver simplification from Emilio López.
      
       - cpufreq comment cleanup from Namhyung Kim.
      
       - Fix for a section mismatch in Calxeda Highbank interprocessor
         communication code from Mark Langsdorf (this is not a PM fix strictly
         speaking, but the code in question went in through the PM tree).
      
      * tag 'pm+acpi-3.9-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        cpufreq / intel_pstate: Do not load on VM that does not report max P state.
        cpufreq / intel_pstate: Fix intel_pstate_init() error path
        ACPI / glue: Drop .find_bridge() callback from struct acpi_bus_type
        ACPI / glue: Add .match() callback to struct acpi_bus_type
        ACPI / porocessor: Beautify code, pr->id is u32 which is never < 0
        ACPI / processor: Remove redundant NULL check before kfree
        ACPI / Sleep: Avoid interleaved message on errors
        PM / QoS: Remove device PM QoS sysfs attributes at the right place
        PM / QoS: Fix concurrency issues and memory leaks in device PM QoS
        cpufreq: highbank: do not initialize array with a loop
        PM / OPP: improve introductory documentation
        cpufreq: Fix a typo in comment
        mailbox, pl320-ipc: remove __init from probe function
      c89b148f
    • Paul Bolle's avatar
      drm/tegra: drop "select DRM_HDMI" · 36c1813b
      Paul Bolle authored
      Commit ac24c220
      
       ("drm/tegra: Use generic
      HDMI infoframe helpers") added "select DRM_HDMI" to the DRM_TEGRA
      Kconfig entry. But there is no Kconfig symbol named DRM_HDMI. The select
      statement for that symbol is a nop. Drop it.
      
      What was needed to use HDMI functionality was to select HDMI (which this
      entry already did through depending on DRM) and to include linux/hdmi.h
      (which this commit also did).
      
      Signed-off-by: default avatarPaul Bolle <pebolle@tiscali.nl>
      Acked-by: default avatarThierry Reding <thierry.reding@avionic-design.de>
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      36c1813b
    • Christopher Harvey's avatar
      drm: Documentation typo fixes · 13bcf01b
      Christopher Harvey authored
      
      
      Signed-off-by: default avatarChristopher Harvey <charvey@matrox.com>
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      13bcf01b
    • Julia Lemire's avatar
      drm/mgag200: Bug fix: Renesas board now selects native resolution. · ce495960
      Julia Lemire authored
      
      
      Renesas boards were consistently defaulting to the 1024x768 resolution,
      regardless of the native resolution of the monitor plugged in.  It was
      determined that the EDID of the monitor was not being read.  Since the
      DAC is a shared line, in order to read from or write to it we must take
      control of the DAC clock.  This can be done by setting the proper
      register to one.
      
      This bug fix sets the register MGA1064_GEN_IO_CTL2 to one.  The DAC
      control line can be used to determine whether or not a new monitor has
      been plugged in.  But since the hotplug feature is not one we will
      support, it has been decided to simply leave the register set to one.
      
      Signed-off-by: default avatarJulia Lemire <jlemire@matrox.com>
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      ce495960
    • Christopher Harvey's avatar
      drm/mgag200: Reject modes that are too big for VRAM · 0ba53171
      Christopher Harvey authored
      
      
      A monitor or a user could request a resolution greater than the
      available VRAM for the backing framebuffer. This change checks the
      required framebuffer size against the max VRAM size and rejects modes
      if they are too big. This change can also remove a mode request passed
      in via the video= parameter.
      
      Signed-off-by: default avatarChristopher Harvey <charvey@matrox.com>
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      0ba53171
    • Christopher Harvey's avatar
    • Dave Airlie's avatar
      Merge branch 'drm-fixes-3.9' of git://people.freedesktop.org/~agd5f/linux into drm-next · 9d624526
      Dave Airlie authored
      Alex writes:
        Radeon fixes pull.  Not much to it.
        - fix some splatter if the interrupt handler isn't registered
        - Add a quirk for an old R200 board to fix washed out colors on the DAC
        - Don't try and soft reset the MC when we reset the GPU.  It usually doesn't
          need it and doesn't always work reliably.
        - A CS checker fix from Marek
      
      * 'drm-fixes-3.9' of git://people.freedesktop.org/~agd5f/linux:
        drm/radeon: don't check mipmap alignment if MIP_ADDRESS is FMASK
        drm/radeon: skip MC reset as it's probably not hung
        drm/radeon: add primary dac adj quirk for R200 board
        drm/radeon: don't set hpd, afmt interrupts when interrupts are disabled
      9d624526
    • Linus Torvalds's avatar
      Merge branch 'fixes' of git://git.linaro.org/people/rmk/linux-arm · 19cf3edb
      Linus Torvalds authored
      Pull ARM fixes from Russell King:
       "Mainly a group of fixes, the only exception is the wiring up of the
        kcmp syscall now that those patches went in during the last merge
        window."
      
      * 'fixes' of git://git.linaro.org/people/rmk/linux-arm:
        ARM: 7668/1: fix memset-related crashes caused by recent GCC (4.7.2) optimizations
        ARM: 7667/1: perf: Fix section mismatch on armpmu_init()
        ARM: 7666/1: decompressor: add -mno-single-pic-base for building the decompressor
        ARM: 7665/1: Wire up kcmp syscall
        ARM: 7664/1: perf: remove erroneous semicolon from event initialisation
        ARM: 7663/1: perf: fix ARMv7 EVTYPE_MASK to include NSH bit
        ARM: 7662/1: hw_breakpoint: reset debug logic on secondary CPUs in s2ram resume
        ARM: 7661/1: mm: perform explicit branch predictor maintenance when required
        ARM: 7660/1: tlb: add branch predictor maintenance operations
        ARM: 7659/1: mm: make mm->context.id an atomic64_t variable
        ARM: 7658/1: mm: fix race updating mm->context.id on ASID rollover
        ARM: 7657/1: head: fix swapper and idmap population with LPAE and big-endian
        ARM: 7655/1: smp_twd: make twd_local_timer_of_register() no-op for nosmp
        ARM: 7652/1: mm: fix missing use of 'asid' to get asid value from mm->context.id
        ARM: 7642/1: netx: bump IRQ offset to 64
      19cf3edb
    • H. Peter Anvin's avatar
      Merge tag 'efi-for-3.9-rc2' into x86/urgent · cc677088
      H. Peter Anvin authored
      
      
      EFI changes for v3.9-rc2,
      
        * Make the EFI variable code more paranoid about running out of
          space in NVRAM, since this is the root cause of the recent issue
          where machines refuse to boot - from Matthew Garrett.
      
        * Some efivarfs patches that fix regressions introduced in v3.9-rc1.
      
      Signed-off-by: default avatarH. Peter Anvin <hpa@zytor.com>
      cc677088
    • Dave Hansen's avatar
      x86: Do not try to sync identity map for non-mapped pages · 60f583d5
      Dave Hansen authored
      kernel_map_sync_memtype() is called from a variety of contexts.  The
      pat.c code that calls it seems to ensure that it is not called for
      non-ram areas by checking via pat_pagerange_is_ram().  It is important
      that it only be called on the actual identity map because there *IS*
      no map to sync for highmem pages, or for memory holes.
      
      The ioremap.c uses are not as careful as those from pat.c, and call
      kernel_map_sync_memtype() on PCI space which is in the middle of the
      kernel identity map _range_, but is not actually mapped.
      
      This patch adds a check to kernel_map_sync_memtype() which probably
      duplicates some of the checks already in pat.c.  But, it is necessary
      for the ioremap.c uses and shouldn't hurt other callers.
      
      I have reproduced this bug and this patch fixes it for me and the
      original bug reporter:
      
      	https://lkml.org/lkml/2013/2/5/396
      
      
      
      Signed-off-by: default avatarDave Hansen <dave@linux.vnet.ibm.com>
      Link: http://lkml.kernel.org/r/20130307163151.D9B58C4E@kernel.stglabs.ibm.com
      
      
      Signed-off-by: default avatarDave Hansen <dave@sr71.net>
      Tested-by: default avatarTetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>
      Signed-off-by: default avatarH. Peter Anvin <hpa@zytor.com>
      60f583d5
    • Linus Torvalds's avatar
      Merge tag 'regulator-3.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator · d3452436
      Linus Torvalds authored
      Pull regulator fixes from Mark Brown:
       "A few small things here and there, nothing major here really.  The
        conversion of twl4030ldo_ops to get_voltage_sel is a fix, as covered
        in the commit log it fixes inconsistency in handling of the IS_UNSUP()
        feature in the driver."
      
      * tag 'regulator-3.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator:
        regulator: fixed regulator_bulk_enable unwinding code
        regulator: twl: Convert twl4030ldo_ops to get_voltage_sel
        regulator: palmas: fix number of SMPS voltages
        regulator: core: fix documentation error in regulator_allow_bypass
        regulator: core: update kernel documentation for regulator_desc
        regulator: db8500-prcmu - remove incorrect __exit markup
      d3452436
    • Linus Torvalds's avatar
      Merge tag 'regmap-v3.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap · 0c8150d2
      Linus Torvalds authored
      Pull regmap PM fix from Mark Brown:
       "A simple fix to stop us leaking a runtime PM reference in the case
        where we fail to enable a device."
      
      * tag 'regmap-v3.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap:
        regmap: irq: call pm_runtime_put in pm_runtime_get_sync failed case
      0c8150d2
    • Linus Torvalds's avatar
      Merge tag 'ecryptfs-3.9-rc2-fixes' of... · e2e091fd
      Linus Torvalds authored
      Merge tag 'ecryptfs-3.9-rc2-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tyhicks/ecryptfs
      
      Pull ecryptfs fixes from Tyler Hicks:
       "Minor code cleanups and new Kconfig option to disable /dev/ecryptfs
      
        The code cleanups fix up W=1 compiler warnings and some unnecessary
        checks.  The new Kconfig option, defaulting to N, allows the rarely
        used eCryptfs kernel to userspace communication channel to be compiled
        out.  This may be the first step in it being eventually removed."
      
      Hmm.  I'm not sure whether these should be called "fixes", and it
      probably should have gone in the merge window.  But I'll let it slide.
      
      * tag 'ecryptfs-3.9-rc2-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tyhicks/ecryptfs:
        eCryptfs: allow userspace messaging to be disabled
        eCryptfs: Fix redundant error check on ecryptfs_find_daemon_by_euid()
        ecryptfs: ecryptfs_msg_ctx_alloc_to_free(): remove kfree() redundant null check
        eCryptfs: decrypt_pki_encrypted_session_key(): remove kfree() redundant null check
        eCryptfs: remove unneeded checks in virt_to_scatterlist()
        eCryptfs: Fix -Wmissing-prototypes warnings
        eCryptfs: Fix -Wunused-but-set-variable warnings
        eCryptfs: initialize payload_len in keystore.c
      e2e091fd
    • Linus Torvalds's avatar
      Merge tag 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging · cd66acb4
      Linus Torvalds authored
      Pull hwmon patches from Guenter Roeck:
       "Bug fixes for sht15 and ltc2978 driver plus some documentation
        updates"
      
      * tag 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
        hwmon: (sht15) Check return value of regulator_enable()
        hwmon: (adt7410) Document ADT7420 support
        hwmon: (pmbus/ltc2978) Use detected chip ID to select supported functionality
        hwmon: (pmbus/ltc2978) Fix peak attribute handling
        hwmon: (pmbus/ltc2978) Update datasheet links
        hwmon: Update my e-mail address in driver documentation
      cd66acb4
    • Marek Olšák's avatar
      drm/radeon: don't check mipmap alignment if MIP_ADDRESS is FMASK · 774c389f
      Marek Olšák authored
      
      
      The MIP_ADDRESS state has 2 meanings. If the texture has one sample
      per pixel, it's a pointer to the mipmap chain. If the texture has
      multiple samples per pixel, it's a pointer to FMASK, a metadata buffer
      needed for reading compressed MSAA textures. The mipmap
      alignment rules do not apply to FMASK.
      
      Signed-off-by: default avatarMarek Olšák <maraeo@gmail.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      774c389f
    • Alex Deucher's avatar
      drm/radeon: skip MC reset as it's probably not hung · d808fc88
      Alex Deucher authored
      
      
      The MC is mostly likely busy (e.g., display requests), not hung
      so no need to reset it.  Doing an MC reset is tricky and not
      particularly reliable.  Fixes hangs in certain cases.
      
      Reported-by: default avatarJosh Boyer <jwboyer@gmail.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      d808fc88
    • Alex Deucher's avatar
      drm/radeon: add primary dac adj quirk for R200 board · e8fc4137
      Alex Deucher authored
      
      
      vbios values are wrong leading to colors that are
      too bright.  Use the default values instead.
      
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      Cc: stable@vger.kernel.org
      e8fc4137
    • Alex Deucher's avatar
      drm/radeon: don't set hpd, afmt interrupts when interrupts are disabled · cc9945bf
      Alex Deucher authored
      
      
      Avoids splatter if the interrupt handler is not registered due
      to acceleration being disabled.
      
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      Reviewed-by: default avatarJerome Glisse <jglisse@redhat.com>
      Cc: stable@vger.kernel.org
      cc9945bf
    • Ivan Djelic's avatar
      ARM: 7668/1: fix memset-related crashes caused by recent GCC (4.7.2) optimizations · 455bd4c4
      Ivan Djelic authored
      
      
      Recent GCC versions (e.g. GCC-4.7.2) perform optimizations based on
      assumptions about the implementation of memset and similar functions.
      The current ARM optimized memset code does not return the value of
      its first argument, as is usually expected from standard implementations.
      
      For instance in the following function:
      
      void debug_mutex_lock_common(struct mutex *lock, struct mutex_waiter *waiter)
      {
      	memset(waiter, MUTEX_DEBUG_INIT, sizeof(*waiter));
      	waiter->magic = waiter;
      	INIT_LIST_HEAD(&waiter->list);
      }
      
      compiled as:
      
      800554d0 <debug_mutex_lock_common>:
      800554d0:       e92d4008        push    {r3, lr}
      800554d4:       e1a00001        mov     r0, r1
      800554d8:       e3a02010        mov     r2, #16 ; 0x10
      800554dc:       e3a01011        mov     r1, #17 ; 0x11
      800554e0:       eb04426e        bl      80165ea0 <memset>
      800554e4:       e1a03000        mov     r3, r0
      800554e8:       e583000c        str     r0, [r3, #12]
      800554ec:       e5830000        str     r0, [r3]
      800554f0:       e5830004        str     r0, [r3, #4]
      800554f4:       e8bd8008        pop     {r3, pc}
      
      GCC assumes memset returns the value of pointer 'waiter' in register r0; causing
      register/memory corruptions.
      
      This patch fixes the return value of the assembly version of memset.
      It adds a 'mov' instruction and merges an additional load+store into
      existing load/store instructions.
      For ease of review, here is a breakdown of the patch into 4 simple steps:
      
      Step 1
      ======
      Perform the following substitutions:
      ip -> r8, then
      r0 -> ip,
      and insert 'mov ip, r0' as the first statement of the function.
      At this point, we have a memset() implementation returning the proper result,
      but corrupting r8 on some paths (the ones that were using ip).
      
      Step 2
      ======
      Make sure r8 is saved and restored when (! CALGN(1)+0) == 1:
      
      save r8:
      -       str     lr, [sp, #-4]!
      +       stmfd   sp!, {r8, lr}
      
      and restore r8 on both exit paths:
      -       ldmeqfd sp!, {pc}               @ Now <64 bytes to go.
      +       ldmeqfd sp!, {r8, pc}           @ Now <64 bytes to go.
      (...)
              tst     r2, #16
              stmneia ip!, {r1, r3, r8, lr}
      -       ldr     lr, [sp], #4
      +       ldmfd   sp!, {r8, lr}
      
      Step 3
      ======
      Make sure r8 is saved and restored when (! CALGN(1)+0) == 0:
      
      save r8:
      -       stmfd   sp!, {r4-r7, lr}
      +       stmfd   sp!, {r4-r8, lr}
      
      and restore r8 on both exit paths:
              bgt     3b
      -       ldmeqfd sp!, {r4-r7, pc}
      +       ldmeqfd sp!, {r4-r8, pc}
      (...)
              tst     r2, #16
              stmneia ip!, {r4-r7}
      -       ldmfd   sp!, {r4-r7, lr}
      +       ldmfd   sp!, {r4-r8, lr}
      
      Step 4
      ======
      Rewrite register list "r4-r7, r8" as "r4-r8".
      
      Signed-off-by: default avatarIvan Djelic <ivan.djelic@parrot.com>
      Reviewed-by: default avatarNicolas Pitre <nico@linaro.org>
      Signed-off-by: default avatarDirk Behme <dirk.behme@gmail.com>
      Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
      455bd4c4
  3. Mar 07, 2013
  4. Mar 06, 2013
    • Matt Fleming's avatar
      efivarfs: return accurate error code in efivarfs_fill_super() · feff5dc4
      Matt Fleming authored
      
      
      Joseph was hitting a failure case when mounting efivarfs which
      resulted in an incorrect error message,
      
        $ sudo mount -v /sys/firmware/efi/efivars mount: Cannot allocate memory
      
      triggered when efivarfs_valid_name() returned -EINVAL.
      
      Make sure we pass accurate return values up the stack if
      efivarfs_fill_super() fails to build inodes for EFI variables.
      
      Reported-by: default avatarJoseph Yasi <joe.yasi@gmail.com>
      Reported-by: default avatarLingzhu Xiang <lxiang@redhat.com>
      Cc: Josh Boyer <jwboyer@redhat.com>
      Cc: Jeremy Kerr <jk@ozlabs.org>
      Cc: Matthew Garrett <mjg59@srcf.ucam.org>
      Cc: <stable@vger.kernel.org> # v3.8
      Signed-off-by: default avatarMatt Fleming <matt.fleming@intel.com>
      feff5dc4
    • Matt Fleming's avatar
      efivars: efivarfs_valid_name() should handle pstore syntax · 123abd76
      Matt Fleming authored
      Stricter validation was introduced with commit da27a243
      ("efivarfs: guid part of filenames are case-insensitive") and commit
      47f531e8
      
       ("efivarfs: Validate filenames much more aggressively"),
      which is necessary for the guid portion of efivarfs filenames, but we
      don't need to be so strict with the first part, the variable name. The
      UEFI specification doesn't impose any constraints on variable names
      other than they be a NULL-terminated string.
      
      The above commits caused a regression that resulted in users seeing
      the following message,
      
        $ sudo mount -v /sys/firmware/efi/efivars mount: Cannot allocate memory
      
      whenever pstore EFI variables were present in the variable store,
      since their variable names failed to pass the following check,
      
          /* GUID should be right after the first '-' */
          if (s - 1 != strchr(str, '-'))
      
      as a typical pstore filename is of the form, dump-type0-10-1-<guid>.
      The fix is trivial since the guid portion of the filename is GUID_LEN
      bytes, we can use (len - GUID_LEN) to ensure the '-' character is
      where we expect it to be.
      
      (The bogus ENOMEM error value will be fixed in a separate patch.)
      
      Reported-by: default avatarJoseph Yasi <joe.yasi@gmail.com>
      Tested-by: default avatarJoseph Yasi <joe.yasi@gmail.com>
      Reported-by: default avatarLingzhu Xiang <lxiang@redhat.com>
      Cc: Josh Boyer <jwboyer@redhat.com>
      Cc: Jeremy Kerr <jk@ozlabs.org>
      Cc: Matthew Garrett <mjg59@srcf.ucam.org>
      Cc: <stable@vger.kernel.org> # v3.8
      Signed-off-by: default avatarMatt Fleming <matt.fleming@intel.com>
      123abd76
    • Matthew Garrett's avatar
      efi: be more paranoid about available space when creating variables · 68d92986
      Matthew Garrett authored
      
      
      UEFI variables are typically stored in flash. For various reasons, avaiable
      space is typically not reclaimed immediately upon the deletion of a
      variable - instead, the system will garbage collect during initialisation
      after a reboot.
      
      Some systems appear to handle this garbage collection extremely poorly,
      failing if more than 50% of the system flash is in use. This can result in
      the machine refusing to boot. The safest thing to do for the moment is to
      forbid writes if they'd end up using more than half of the storage space.
      We can make this more finegrained later if we come up with a method for
      identifying the broken machines.
      
      Signed-off-by: default avatarMatthew Garrett <matthew.garrett@nebula.com>
      Cc: Josh Boyer <jwboyer@redhat.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarMatt Fleming <matt.fleming@intel.com>
      68d92986