1. 30 Mar, 2012 5 commits
    • Gary Hade's avatar
      ACPI, APEI: Fix incorrect APEI register bit width check and usage · 15afae60
      Gary Hade authored
      The current code incorrectly assumes that
      (1) the APEI register bit width is always 8, 16, 32, or 64 and
      (2) the APEI register bit width is always equal to the APEI
          register access width.
      
      ERST serialization instructions entries such as:
      
      [030h 0048   1]                       Action : 00 [Begin Write Operation]
      [031h 0049   1]                  Instruction : 03 [Write Register Value]
      [032h 0050   1]        Flags (decoded below) : 01
                            Preserve Register Bits : 1
      [033h 0051   1]                     Reserved : 00
      
      [034h 0052  12]              Register Region : [Generic Address Structure]
      [034h 0052   1]                     Space ID : 00 [SystemMemory]
      [035h 0053   1]                    Bit Width : 03
      [036h 0054   1]                   Bit Offset : 00
      [037h 0055   1]         Encoded Access Width : 03 [DWord Access:32]
      [038h 0056   8]                      Address : 000000007F2D7038
      
      [040h 0064   8]                        Value : 0000000000000001
      [048h 0072   8]                         Mask : 0000000000000007
      
      break this assumption by yielding:
        [Firmware Bug]: APEI: Invalid bit width in GAR [0x7f2d7038/3/0]
      
      I have found no ACPI specification requirements corresponding
      with the above assumptions.  There is even a good example in
      the Serialization Instruction Entries section (ACPI 4.0 section
      17.4,1.2, ACPI 4.0a section 2.5.1.2, ACPI 5.0 section 18.5.1.2)
      that mentions a serialization instruction with a bit range of
      [6:2] which is 5 bits wide, _not_ 8, 16, 32, or 64 bits wide.
      
      Compile and boot tested with 3.3.0-rc7 on a IBM HX5.
      Signed-off-by: default avatarGary Hade <garyhade@us.ibm.com>
      Signed-off-by: default avatarLen Brown <len.brown@intel.com>
      15afae60
    • Chen Gong's avatar
      Update documentation for parameter *notrigger* in einj.txt · 6ef19ab7
      Chen Gong authored
      Add description of parameter notrigger in the einj.txt.
      One can utilize this new parameter to do some SRAR injection
      test. Pay attention, the operation is highly depended on the
      BIOS implementation. If no proper BIOS supports it, even if
      enabling this parameter, expected result will not happen.
      
      v2:
        Update the documentation suggested by Tony
      Suggested-by: default avatarTony Luck <tony.luck@intel.com>
      Signed-off-by: default avatarChen Gong <gong.chen@linux.intel.com>
      Signed-off-by: default avatarLen Brown <len.brown@intel.com>
      6ef19ab7
    • Chen Gong's avatar
      ACPI, APEI, EINJ, new parameter to control trigger action · ee49089d
      Chen Gong authored
      Some APEI firmware implementation will access injected address
      specified in param1 to trigger the error when injecting memory
      error, which means if one SRAR error is injected, the crash
      always happens because it is executed in kernel context. This
      new parameter can disable trigger action and control is taken
      over by the user. In this way, an SRAR error can happen in user
      context instead of crashing the system. This function is highly
      depended on BIOS implementation so please ensure you know the
      BIOS trigger procedure before you enable this switch.
      
      v2:
        notrigger should be created together with param1/param2
      Tested-by: default avatarTony Luck <tony.luck@lintel.com>
      Signed-off-by: default avatarChen Gong <gong.chen@linux.intel.com>
      Signed-off-by: default avatarLen Brown <len.brown@intel.com>
      ee49089d
    • Chen Gong's avatar
      ACPI, APEI, EINJ, limit the range of einj_param · 185210cc
      Chen Gong authored
      On the platforms with ACPI4.x support, parameter extension
      is not always doable, which means only parameter extension
      is enabled, einj_param can take effect.
      
      v2->v1: stopping early in einj_get_parameter_address for einj_param
      Signed-off-by: default avatarChen Gong <gong.chen@linux.intel.com>
      Acked-by: default avatarTony Luck <tony.luck@intel.com>
      Signed-off-by: default avatarLen Brown <len.brown@intel.com>
      185210cc
    • Jiang Liu's avatar
      ACPI, APEI, Fix ERST header length check · 7ed28f2e
      Jiang Liu authored
      This fixes a trivial copy & paste error in ERST header length check.
      It's just for future safety because sizeof(struct acpi_table_einj)
      equals to sizeof(struct acpi_table_erst) with current ACPI5.0
      specification. It applies to v3.3-rc6.
      Signed-off-by: default avatarJiang Liu <jiang.liu@huawei.com>
      Acked-by: default avatarHuang Ying <ying.huang@intel.com>
      Signed-off-by: default avatarLen Brown <len.brown@intel.com>
      7ed28f2e
  2. 18 Mar, 2012 3 commits
    • Linus Torvalds's avatar
      Linux 3.3 · c16fa4f2
      Linus Torvalds authored
      c16fa4f2
    • Jason Baron's avatar
      Don't limit non-nested epoll paths · 93dc6107
      Jason Baron authored
      Commit 28d82dc1 ("epoll: limit paths") that I did to limit the
      number of possible wakeup paths in epoll is causing a few applications
      to longer work (dovecot for one).
      
      The original patch is really about limiting the amount of epoll nesting
      (since epoll fds can be attached to other fds). Thus, we probably can
      allow an unlimited number of paths of depth 1. My current patch limits
      it at 1000. And enforce the limits on paths that have a greater depth.
      
      This is captured in: https://bugzilla.redhat.com/show_bug.cgi?id=681578Signed-off-by: default avatarJason Baron <jbaron@redhat.com>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      93dc6107
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · c579bc7e
      Linus Torvalds authored
      Pull networking changes from David Miller:
       "1) icmp6_dst_alloc() returns NULL instead of ERR_PTR() leading to
           crashes, particularly during shutdown.  Reported by Dave Jones and
           fixed by Eric Dumazet.
      
        2) hyperv and wimax/i2400m return NETDEV_TX_BUSY when they have
           already freed the SKB, which causes crashes as to the caller this
           means requeue the packet.  Fixes from Eric Dumazet.
      
        3) usbnet driver doesn't allocate the right amount of headroom on
           fresh RX SKBs, fix from Eric Dumazet.
      
        4) Fix regression in ip6_mc_find_dev_rcu(), as an RCU lookup it
           abolutely should not take a reference to 'dev', this leads to
           leaks.  Fix from RonQing Li.
      
        5) Fix netfilter ctnetlink race between delete and timeout expiration.
           From Pablo Neira Ayuso.
      
        6) Revert SFQ change which causes regressions, specifically queueing
           to tail can lead to unavoidable flow starvation.  From Eric
           Dumazet.
      
        7) Fix a memory leak and a crash on corrupt firmware files in bnx2x,
           from Michal Schmidt."
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net:
        netfilter: ctnetlink: fix race between delete and timeout expiration
        ipv6: Don't dev_hold(dev) in ip6_mc_find_dev_rcu.
        wimax/i2400m: fix erroneous NETDEV_TX_BUSY use
        net/hyperv: fix erroneous NETDEV_TX_BUSY use
        net/usbnet: reserve headroom on rx skbs
        bnx2x: fix memory leak in bnx2x_init_firmware()
        bnx2x: fix a crash on corrupt firmware file
        sch_sfq: revert dont put new flow at the end of flows
        ipv6: fix icmp6_dst_alloc()
      c579bc7e
  3. 17 Mar, 2012 10 commits
  4. 16 Mar, 2012 22 commits