1. 09 Feb, 2010 10 commits
    • Felix Beck's avatar
      zcrypt: Do not remove coprocessor for error 8/72 · 083beff0
      Felix Beck authored
      commit 19b123eb upstream.
      
      In a case where the number of the input data is bigger than the
      modulus of the key, the coprocessor adapters will report an 8/72
      error. This case is not caught yet, thus the adapter will be taken
      offline. To prevent this, we return an -EINVAL instead.
      Signed-off-by: default avatarFelix Beck <felix.beck@de.ibm.com>
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      083beff0
    • Tejun Heo's avatar
      libata: retry FS IOs even if it has failed with AC_ERR_INVALID · 63693ee8
      Tejun Heo authored
      commit 534ead70 upstream.
      
      libata currently doesn't retry if a command fails with AC_ERR_INVALID
      assuming that retrying won't get it any further even if retried.
      However, a failure may be classified as invalid through hardware
      glitch (incorrect reading of the error register or firmware bug) and
      there isn't whole lot to gain by not retrying as actually invalid
      commands will be failed immediately.  Also, commands serving FS IOs
      are extremely unlikely to be invalid.  Retry FS IOs even if it's
      marked invalid.
      
      Transient and incorrect invalid failure was seen while debugging
      firmware related issue on Samsung n130 on bko#14314.
      
        http://bugzilla.kernel.org/show_bug.cgi?id=14314Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Reported-by: default avatarJohannes Stezenbach <js@sig21.net>
      Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      63693ee8
    • H. Peter Anvin's avatar
      x86: Remove "x86 CPU features in debugfs" (CONFIG_X86_CPU_DEBUG) · 8c2cd3f3
      H. Peter Anvin authored
      commit b1600918 upstream.
      
      CONFIG_X86_CPU_DEBUG, which provides some parsed versions of the x86
      CPU configuration via debugfs, has caused boot failures on real
      hardware.  The value of this feature has been marginal at best, as all
      this information is already available to userspace via generic
      interfaces.
      
      Causes crashes that have not been fixed + minimal utility -> remove.
      
      See the referenced LKML thread for more information.
      Reported-by: default avatarOzan Çağlayan <ozan@pardus.org.tr>
      Signed-off-by: default avatarH. Peter Anvin <hpa@zytor.com>
      LKML-Reference: <alpine.LFD.2.00.1001221755320.13231@localhost.localdomain>
      Cc: Jaswinder Singh Rajput <jaswinder@kernel.org>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Rafael J. Wysocki <rjw@sisk.pl>
      Cc: Yinghai Lu <yinghai@kernel.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      8c2cd3f3
    • David Rientjes's avatar
      x86: Set hotpluggable nodes in nodes_possible_map · b5b39c39
      David Rientjes authored
      commit 3a5fc0e4 upstream.
      
      nodes_possible_map does not currently include nodes that have SRAT
      entries that are all ACPI_SRAT_MEM_HOT_PLUGGABLE since the bit is
      cleared in nodes_parsed if it does not have an online address range.
      
      Unequivocally setting the bit in nodes_parsed is insufficient since
      existing code, such as acpi_get_nodes(), assumes all nodes in the map
      have online address ranges.  In fact, all code using nodes_parsed
      assumes such nodes represent an address range of online memory.
      
      nodes_possible_map is created by unioning nodes_parsed and
      cpu_nodes_parsed; the former represents nodes with online memory and
      the latter represents memoryless nodes.  We now set the bit for
      hotpluggable nodes in cpu_nodes_parsed so that it also gets set in
      nodes_possible_map.
      
      [ hpa: Haicheng Li points out that this makes the naming of the
        variable cpu_nodes_parsed somewhat counterintuitive.  However, leave
        it as is in the interest of keeping the pure bug fix patch small. ]
      Signed-off-by: default avatarDavid Rientjes <rientjes@google.com>
      Tested-by: default avatarHaicheng Li <haicheng.li@linux.intel.com>
      LKML-Reference: <alpine.DEB.2.00.1001201152040.30528@chino.kir.corp.google.com>
      Signed-off-by: default avatarH. Peter Anvin <hpa@zytor.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      b5b39c39
    • Martin Schwidefsky's avatar
      S390: fix single stepped svcs with TRACE_IRQFLAGS=y · 76e789c0
      Martin Schwidefsky authored
      commit 21ec7f6d upstream.
      
      If irq flags tracing is enabled the TRACE_IRQS_ON macros expands to
      a function call which clobbers registers %r0-%r5. The macro is used
      in the code path for single stepped system calls. The argument
      registers %r2-%r6 need to be restored from the stack before the system
      call function is called.
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      76e789c0
    • Stefan Richter's avatar
      firewire: ohci: fix crashes with TSB43AB23 on 64bit systems · 16a2ae6e
      Stefan Richter authored
      commit 7a481436 upstream.
      
      Unsurprisingly, Texas Instruments TSB43AB23 exhibits the same behaviour
      as TSB43AB22/A in dual buffer IR DMA mode:  If descriptors are located
      at physical addresses above the 31 bit address range (2 GB), the
      controller will overwrite random memory.  With luck, this merely
      prevents video reception.  With only a little less luck, the machine
      crashes.
      
      We use the same workaround here as with TSB43AB22/A:  Switch off the
      dual buffer capability flag and use packet-per-buffer IR DMA instead.
      Another possible workaround would be to limit the coherent DMA mask to
      31 bits.
      
      In Linux 2.6.33, this change serves effectively only as documentation
      since dual buffer mode is not used for any controller anymore.  But
      somebody might want to re-enable it in the future to make use of
      features of dual buffer DMA that are not available in packet-per-buffer
      mode.
      
      In Linux 2.6.32 and older, this update is vital for anyone with this
      controller, more than 2 GB RAM, a 64 bit kernel, and FireWire video or
      audio applications.
      
      We have at least four reports:
      http://bugzilla.kernel.org/show_bug.cgi?id=13808
      http://marc.info/?l=linux1394-user&m=126154279004083
      https://bugzilla.redhat.com/show_bug.cgi?id=552142
      http://marc.info/?l=linux1394-user&m=126432246128386
      
      Reported-by: Paul Johnson
      Reported-by: Ronneil Camara
      Reported-by: G Zornetzer
      Reported-by: Mark Thompson
      Signed-off-by: default avatarStefan Richter <stefanr@s5r6.in-berlin.de>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      16a2ae6e
    • Chris Wilson's avatar
      drm/i915: Selectively enable self-reclaim · d8e09028
      Chris Wilson authored
      commit 4bdadb97 upstream.
      
      Having missed the ENOMEM return via i915_gem_fault(), there are probably
      other paths that I also missed. By not enabling NORETRY by default these
      paths can run the shrinker and take memory from the system (but not from
      our own inactive lists because our shrinker can not run whilst we hold
      the struct mutex) and this may allow the system to survive a little longer
      whilst our drivers consume all available memory.
      
      References:
        OOM killer unexpectedly called with kernel 2.6.32
        http://bugzilla.kernel.org/show_bug.cgi?id=14933
      
      v2: Pass gfp into page mapping.
      v3: Use new read_cache_page_gfp() instead of open-coding.
      Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
      Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
      Cc: Hugh Dickins <hugh.dickins@tiscali.co.uk>
      Cc: Jesse Barnes <jbarnes@virtuousgeek.org>
      Cc: Eric Anholt <eric@anholt.net>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      d8e09028
    • Linus Torvalds's avatar
      mm: add new 'read_cache_page_gfp()' helper function · 8268c0bc
      Linus Torvalds authored
      commit 0531b2aa upstream.
      
      It's a simplified 'read_cache_page()' which takes a page allocation
      flag, so that different paths can control how aggressive the memory
      allocations are that populate a address space.
      
      In particular, the intel GPU object mapping code wants to be able to do
      a certain amount of own internal memory management by automatically
      shrinking the address space when memory starts getting tight.  This
      allows it to dynamically use different memory allocation policies on a
      per-allocation basis, rather than depend on the (static) address space
      gfp policy.
      
      The actual new function is a one-liner, but re-organizing the helper
      functions to the point where you can do this with a single line of code
      is what most of the patch is all about.
      Tested-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      8268c0bc
    • Anatolij Gustschin's avatar
      mptsas: Fix issue with chain pools allocation on katmai · b7a9d922
      Anatolij Gustschin authored
      commit f1053a7c upstream.
      
      Since commit 9d2e9d66
      mptsas driver fails to allocate memory for the MPT chain buffers
      for second LSI adapter on PPC440SPe Katmai platform:
      ...
      ioc1: LSISAS1068E B3: Capabilities={Initiator}
      mptbase: ioc1: ERROR - Unable to allocate Reply, Request, Chain Buffers!
      mptbase: ioc1: ERROR - didn't initialize properly! (-3)
      mptsas: probe of 0002:31:00.0 failed with error -3
      
      This commit increased MPT_FC_CAN_QUEUE value but initChainBuffers()
      doesn't differentiate between SAS and FC causing increased allocation
      for SAS case, too. Later pci_alloc_consistent() fails to allocate
      increased chain buffer pool size for SAS case.
      
      Provide a fix by looking at the bus type and using appropriate
      MPT_SAS_CAN_QUEUE value while calculation of the number of chain
      buffers.
      Signed-off-by: default avatarAnatolij Gustschin <agust@denx.de>
      Acked-by: default avatarKashyap Desai <kashyap.desai@lsi.com>
      Signed-off-by: default avatarJames Bottomley <James.Bottomley@suse.de>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      b7a9d922
    • Boaz Harrosh's avatar
      scsi_lib: Fix bug in completion of bidi commands · e15fca01
      Boaz Harrosh authored
      commit 63c43b0e upstream.
      
      Because of the terrible structuring of scsi-bidi-commands
      it breaks some of the life time rules of a scsi-command.
      It is now not allowed to free up the block-request before
      cleanup and partial deallocation of the scsi-command. (Which
      is not so for none bidi commands)
      
      The right fix to this problem would be to make bidi command
      a first citizen by allocating a scsi_sdb pointer at scsi command
      just like cmd->prot_sdb. The bidi sdb should be allocated/deallocated
      as part of the get/put_command (Again like the prot_sdb) and the
      current decoupling of scsi_cmnd and blk-request should be kept.
      
      For now make sure scsi_release_buffers() is called before the
      call to blk_end_request_all() which might cause the suicide of
      the block requests. At best the leak of bidi buffers, at worse
      a crash, as there is a race between the existence of the bidi_request
      and the free of the associated bidi_sdb.
      
      The reason this was never hit before is because only OSD has the potential
      of doing asynchronous bidi commands. (So does bsg but it is never used)
      And OSD clients just happen to do all their bidi commands synchronously, up
      until recently.
      Signed-off-by: default avatarBoaz Harrosh <bharrosh@panasas.com>
      Signed-off-by: default avatarJames Bottomley <James.Bottomley@suse.de>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      e15fca01
  2. 28 Jan, 2010 30 commits