]> www.infradead.org Git - users/jedix/linux-maple.git/log
users/jedix/linux-maple.git
12 years agosvcrpc: sends on closed socket should stop immediately
J. Bruce Fields [Mon, 20 Aug 2012 20:04:40 +0000 (16:04 -0400)]
svcrpc: sends on closed socket should stop immediately

commit f06f00a24d76e168ecb38d352126fd203937b601 upstream.

svc_tcp_sendto sets XPT_CLOSE if we fail to transmit the entire reply.
However, the XPT_CLOSE won't be acted on immediately.  Meanwhile other
threads could send further replies before the socket is really shut
down.  This can manifest as data corruption: for example, if a truncated
read reply is followed by another rpc reply, that second reply will look
to the client like further read data.

Symptoms were data corruption preceded by svc_tcp_sendto logging
something like

kernel: rpc-srv/tcp: nfsd: sent only 963696 when sending 1048708 bytes - shutting down socket

Reported-by: Malahal Naineni <malahal@us.ibm.com>
Tested-by: Malahal Naineni <malahal@us.ibm.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
12 years agosvcrpc: fix svc_xprt_enqueue/svc_recv busy-looping
J. Bruce Fields [Fri, 17 Aug 2012 21:31:53 +0000 (17:31 -0400)]
svcrpc: fix svc_xprt_enqueue/svc_recv busy-looping

commit d10f27a750312ed5638c876e4bd6aa83664cccd8 upstream.

The rpc server tries to ensure that there will be room to send a reply
before it receives a request.

It does this by tracking, in xpt_reserved, an upper bound on the total
size of the replies that is has already committed to for the socket.

Currently it is adding in the estimate for a new reply *before* it
checks whether there is space available.  If it finds that there is not
space, it then subtracts the estimate back out.

This may lead the subsequent svc_xprt_enqueue to decide that there is
space after all.

The results is a svc_recv() that will repeatedly return -EAGAIN, causing
server threads to loop without doing any actual work.

Reported-by: Michael Tokarev <mjt@tls.msk.ru>
Tested-by: Michael Tokarev <mjt@tls.msk.ru>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
12 years agosvcrpc: fix BUG() in svc_tcp_clear_pages
J. Bruce Fields [Thu, 9 Aug 2012 22:12:28 +0000 (18:12 -0400)]
svcrpc: fix BUG() in svc_tcp_clear_pages

commit be1e44441a560c43c136a562d49a1c9623c91197 upstream.

Examination of svc_tcp_clear_pages shows that it assumes sk_tcplen is
consistent with sk_pages[] (in particular, sk_pages[n] can't be NULL if
sk_tcplen would lead us to expect n pages of data).

svc_tcp_restore_pages zeroes out sk_pages[] while leaving sk_tcplen.
This is OK, since both functions are serialized by XPT_BUSY.  However,
that means the inconsistency must be repaired before dropping XPT_BUSY.

Therefore we should be ensuring that svc_tcp_save_pages repairs the
problem before exiting svc_tcp_recv_record on error.

Symptoms were a BUG() in svc_tcp_clear_pages.

Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
12 years agoaudit: fix refcounting in audit-tree
Miklos Szeredi [Wed, 15 Aug 2012 10:55:22 +0000 (12:55 +0200)]
audit: fix refcounting in audit-tree

commit a2140fc0cb0325bb6384e788edd27b9a568714e2 upstream.

Refcounting of fsnotify_mark in audit tree is broken.  E.g:

                              refcount
create_chunk
  alloc_chunk                 1
  fsnotify_add_mark           2

untag_chunk
  fsnotify_get_mark           3
  fsnotify_destroy_mark
    audit_tree_freeing_mark   2
  fsnotify_put_mark           1
  fsnotify_put_mark           0
  via destroy_list
    fsnotify_mark_destroy    -1

This was reported by various people as triggering Oops when stopping auditd.

We could just remove the put_mark from audit_tree_freeing_mark() but that would
break freeing via inode destruction.  So this patch simply omits a put_mark
after calling destroy_mark or adds a get_mark before.

The additional get_mark is necessary where there's no other put_mark after
fsnotify_destroy_mark() since it assumes that the caller is holding a reference
(or the inode is keeping the mark pinned, not the case here AFAICS).

Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
Reported-by: Valentin Avram <aval13@gmail.com>
Reported-by: Peter Moody <pmoody@google.com>
Acked-by: Eric Paris <eparis@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
12 years agoaudit: don't free_chunk() after fsnotify_add_mark()
Miklos Szeredi [Wed, 15 Aug 2012 10:55:22 +0000 (12:55 +0200)]
audit: don't free_chunk() after fsnotify_add_mark()

commit 0fe33aae0e94b4097dd433c9399e16e17d638cd8 upstream.

Don't do free_chunk() after fsnotify_add_mark().  That one does a delayed unref
via the destroy list and this results in use-after-free.

Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
Acked-by: Eric Paris <eparis@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
12 years agoNFS: Alias the nfs module to nfs4
bjschuma@gmail.com [Wed, 8 Aug 2012 17:57:10 +0000 (13:57 -0400)]
NFS: Alias the nfs module to nfs4

commit 425e776d93a7a5070b77d4f458a5bab0f924652c upstream.

This allows distros to remove the line from their modprobe
configuration.

Signed-off-by: Bryan Schumaker <bjschuma@netapp.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
[bwh: Backported to 3.2: adjust context]
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
12 years agoNFSv4.1: Remove a bogus BUG_ON() in nfs4_layoutreturn_done
Trond Myklebust [Wed, 8 Aug 2012 20:03:13 +0000 (16:03 -0400)]
NFSv4.1: Remove a bogus BUG_ON() in nfs4_layoutreturn_done

commit 47fbf7976e0b7d9dcdd799e2a1baba19064d9631 upstream.

Ever since commit 0a57cdac3f (NFSv4.1 send layoutreturn to fence
disconnected data server) we've been sending layoutreturn calls
while there is potentially still outstanding I/O to the data
servers. The reason we do this is to avoid races between replayed
writes to the MDS and the original writes to the DS.

When this happens, the BUG_ON() in nfs4_layoutreturn_done can
be triggered because it assumes that we would never call
layoutreturn without knowing that all I/O to the DS is
finished. The fix is to remove the BUG_ON() now that the
assumptions behind the test are obsolete.

Reported-by: Boaz Harrosh <bharrosh@panasas.com>
Reported-by: Tigran Mkrtchyan <tigran.mkrtchyan@desy.de>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
12 years agoNFSv3: Ensure that do_proc_get_root() reports errors correctly
Trond Myklebust [Mon, 20 Aug 2012 16:42:15 +0000 (12:42 -0400)]
NFSv3: Ensure that do_proc_get_root() reports errors correctly

commit 086600430493e04b802bee6e5b3ce0458e4eb77f upstream.

If the rpc call to NFS3PROC_FSINFO fails, then we need to report that
error so that the mount fails. Otherwise we can end up with a
superblock with completely unusable values for block sizes, maxfilesize,
etc.

Reported-by: Yuanming Chen <hikvision_linux@163.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
12 years agomm: hugetlbfs: correctly populate shared pmd
Michal Hocko [Mon, 8 Oct 2012 10:36:54 +0000 (03:36 -0700)]
mm: hugetlbfs: correctly populate shared pmd

commit eb48c071464757414538c68a6033c8f8c15196f8 upstream.

Each page mapped in a process's address space must be correctly
accounted for in _mapcount.  Normally the rules for this are
straightforward but hugetlbfs page table sharing is different.  The page
table pages at the PMD level are reference counted while the mapcount
remains the same.

If this accounting is wrong, it causes bugs like this one reported by
Larry Woodman:

  kernel BUG at mm/filemap.c:135!
  invalid opcode: 0000 [#1] SMP
  CPU 22
  Modules linked in: bridge stp llc sunrpc binfmt_misc dcdbas microcode pcspkr acpi_pad acpi]
  Pid: 18001, comm: mpitest Tainted: G        W    3.3.0+ #4 Dell Inc. PowerEdge R620/07NDJ2
  RIP: 0010:[<ffffffff8112cfed>]  [<ffffffff8112cfed>] __delete_from_page_cache+0x15d/0x170
  Process mpitest (pid: 18001, threadinfo ffff880428972000, task ffff880428b5cc20)
  Call Trace:
    delete_from_page_cache+0x40/0x80
    truncate_hugepages+0x115/0x1f0
    hugetlbfs_evict_inode+0x18/0x30
    evict+0x9f/0x1b0
    iput_final+0xe3/0x1e0
    iput+0x3e/0x50
    d_kill+0xf8/0x110
    dput+0xe2/0x1b0
    __fput+0x162/0x240

During fork(), copy_hugetlb_page_range() detects if huge_pte_alloc()
shared page tables with the check dst_pte == src_pte.  The logic is if
the PMD page is the same, they must be shared.  This assumes that the
sharing is between the parent and child.  However, if the sharing is
with a different process entirely then this check fails as in this
diagram:

  parent
    |
    ------------>pmd
                 src_pte----------> data page
                                        ^
  other--------->pmd--------------------|
                  ^
  child-----------|
                 dst_pte

For this situation to occur, it must be possible for Parent and Other to
have faulted and failed to share page tables with each other.  This is
possible due to the following style of race.

  PROC A                                          PROC B
  copy_hugetlb_page_range                         copy_hugetlb_page_range
    src_pte == huge_pte_offset                      src_pte == huge_pte_offset
    !src_pte so no sharing                          !src_pte so no sharing

  (time passes)

  hugetlb_fault                                   hugetlb_fault
    huge_pte_alloc                                  huge_pte_alloc
      huge_pmd_share                                 huge_pmd_share
        LOCK(i_mmap_mutex)
        find nothing, no sharing
        UNLOCK(i_mmap_mutex)
                                                      LOCK(i_mmap_mutex)
                                                      find nothing, no sharing
                                                      UNLOCK(i_mmap_mutex)
      pmd_alloc                                       pmd_alloc
      LOCK(instantiation_mutex)
      fault
      UNLOCK(instantiation_mutex)
                                                  LOCK(instantiation_mutex)
                                                  fault
                                                  UNLOCK(instantiation_mutex)

These two processes are not poing to the same data page but are not
sharing page tables because the opportunity was missed.  When either
process later forks, the src_pte == dst pte is potentially insufficient.
As the check falls through, the wrong PTE information is copied in
(harmless but wrong) and the mapcount is bumped for a page mapped by a
shared page table leading to the BUG_ON.

This patch addresses the issue by moving pmd_alloc into huge_pmd_share
which guarantees that the shared pud is populated in the same critical
section as pmd.  This also means that huge_pte_offset test in
huge_pmd_share is serialized correctly now which in turn means that the
success of the sharing will be higher as the racing tasks see the pud
and pmd populated together.

Race identified and changelog written mostly by Mel Gorman.

{akpm@linux-foundation.org: attempt to make the huge_pmd_share() comment comprehensible, clean up coding style]
Reported-by: Larry Woodman <lwoodman@redhat.com>
Tested-by: Larry Woodman <lwoodman@redhat.com>
Reviewed-by: Mel Gorman <mgorman@suse.de>
Signed-off-by: Michal Hocko <mhocko@suse.cz>
Reviewed-by: Rik van Riel <riel@redhat.com>
Cc: David Gibson <david@gibson.dropbear.id.au>
Cc: Ken Chen <kenchen@google.com>
Cc: Cong Wang <xiyou.wangcong@gmail.com>
Cc: Hillf Danton <dhillf@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Conflicts:

arch/x86/mm/hugetlbpage.c

Signed-off-by: Maxim Uvarov <maxim.uvarov@oracle.com>
12 years agoUSB: winbond: remove __devinit* from the struct usb_device_id table
Greg Kroah-Hartman [Sat, 18 Aug 2012 00:48:37 +0000 (17:48 -0700)]
USB: winbond: remove __devinit* from the struct usb_device_id table

commit 43a34695d9cd79c6659f09da6d3b0624f3dd169f upstream.

This structure needs to always stick around, even if CONFIG_HOTPLUG
is disabled, otherwise we can oops when trying to probe a device that
was added after the structure is thrown away.

Thanks to Fengguang Wu and Bjørn Mork for tracking this issue down.

Reported-by: Fengguang Wu <fengguang.wu@intel.com>
Reported-by: Bjørn Mork <bjorn@mork.no>
CC: Pavel Machek <pavel@ucw.cz>
CC: Paul Gortmaker <paul.gortmaker@windriver.com>
CC: "John W. Linville" <linville@tuxdriver.com>
CC: Eliad Peller <eliad@wizery.com>
CC: Devendra Naga <devendra.aaru@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
12 years agovfs: canonicalize create mode in build_open_flags()
Miklos Szeredi [Wed, 15 Aug 2012 11:01:24 +0000 (13:01 +0200)]
vfs: canonicalize create mode in build_open_flags()

commit e68726ff72cf7ba5e7d789857fcd9a75ca573f03 upstream.

Userspace can pass weird create mode in open(2) that we canonicalize to
"(mode & S_IALLUGO) | S_IFREG" in vfs_create().

The problem is that we use the uncanonicalized mode before calling vfs_create()
with unforseen consequences.

So do the canonicalization early in build_open_flags().

Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
Tested-by: Richard W.M. Jones <rjones@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
12 years agovfs: missed source of ->f_pos races
Al Viro [Mon, 20 Aug 2012 14:28:00 +0000 (15:28 +0100)]
vfs: missed source of ->f_pos races

commit 0e665d5d1125f9f4ccff56a75e814f10f88861a2 upstream.

compat_sys_{read,write}v() need the same "pass a copy of file->f_pos" thing
as sys_{read,write}{,v}().

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
12 years agoALSA: hda - fix Copyright debug message
Wang Xingchao [Mon, 13 Aug 2012 06:11:10 +0000 (14:11 +0800)]
ALSA: hda - fix Copyright debug message

commit 088c820b732dbfd515fc66d459d5f5777f79b406 upstream.

As spec said, 1 indicates no copyright is asserted.

Signed-off-by: Wang Xingchao <xingchao.wang@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
12 years agoUSB: emi62: remove __devinit* from the struct usb_device_id table
Greg Kroah-Hartman [Sat, 18 Aug 2012 00:48:41 +0000 (17:48 -0700)]
USB: emi62: remove __devinit* from the struct usb_device_id table

commit 83957df21dd94655d2b026e0944a69ff37b83988 upstream.

This structure needs to always stick around, even if CONFIG_HOTPLUG
is disabled, otherwise we can oops when trying to probe a device that
was added after the structure is thrown away.

Thanks to Fengguang Wu and Bjørn Mork for tracking this issue down.

Reported-by: Fengguang Wu <fengguang.wu@intel.com>
Reported-by: Bjørn Mork <bjorn@mork.no>
CC: Paul Gortmaker <paul.gortmaker@windriver.com>
CC: Andrew Morton <akpm@linux-foundation.org>
CC: Felipe Balbi <balbi@ti.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
12 years agoUSB: vt6656: remove __devinit* from the struct usb_device_id table
Greg Kroah-Hartman [Sat, 18 Aug 2012 00:48:33 +0000 (17:48 -0700)]
USB: vt6656: remove __devinit* from the struct usb_device_id table

commit 4d088876f24887cd15a29db923f5f37db6a99f21 upstream.

This structure needs to always stick around, even if CONFIG_HOTPLUG
is disabled, otherwise we can oops when trying to probe a device that
was added after the structure is thrown away.

Thanks to Fengguang Wu and Bjørn Mork for tracking this issue down.

Reported-by: Fengguang Wu <fengguang.wu@intel.com>
Reported-by: Bjørn Mork <bjorn@mork.no>
CC: Forest Bond <forest@alittletooquiet.net>
CC: Marcos Paulo de Souza <marcos.souza.org@gmail.com>
CC: "David S. Miller" <davem@davemloft.net>
CC: Jesper Juhl <jj@chaosbits.net>
CC: Jiri Pirko <jpirko@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
12 years agoLinux 3.0.42
Greg Kroah-Hartman [Mon, 8 Oct 2012 10:15:32 +0000 (03:15 -0700)]
Linux 3.0.42

12 years agoIB/srp: Fix a race condition
Bart Van Assche [Tue, 14 Aug 2012 13:18:53 +0000 (13:18 +0000)]
IB/srp: Fix a race condition

commit 220329916c72ee3d54ae7262b215a050f04a18fc upstream.

Avoid a crash caused by the scmnd->scsi_done(scmnd) call in
srp_process_rsp() being invoked with scsi_done == NULL.  This can
happen if a reply is received during or after a command abort.

Reported-by: Joseph Glanville <joseph.glanville@orionvm.com.au>
Reference: http://marc.info/?l=linux-rdma&m=134314367801595
Acked-by: David Dillow <dillowda@ornl.gov>
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Signed-off-by: Roland Dreier <roland@purestorage.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
12 years agousb: serial: mos7840: Fixup mos7840_chars_in_buffer()
Mark Ferrell [Tue, 24 Jul 2012 19:15:13 +0000 (14:15 -0500)]
usb: serial: mos7840: Fixup mos7840_chars_in_buffer()

commit 5c263b92f828af6a8cf54041db45ceae5af8f2ab upstream.

 * Use the buffer content length as opposed to the total buffer size.  This can
   be a real problem when using the mos7840 as a usb serial-console as all
   kernel output is truncated during boot.

Signed-off-by: Mark Ferrell <mferrell@uplogix.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
12 years agoxhci: Switch PPT ports to EHCI on shutdown.
Sarah Sharp [Mon, 23 Jul 2012 15:59:30 +0000 (18:59 +0300)]
xhci: Switch PPT ports to EHCI on shutdown.

commit e95829f474f0db3a4d940cae1423783edd966027 upstream.

The Intel desktop boards DH77EB and DH77DF have a hardware issue that
can be worked around by BIOS.  If the USB ports are switched to xHCI on
shutdown, the xHCI host will send a spurious interrupt, which will wake
the system.  Some BIOS will work around this, but not all.

The bug can be avoided if the USB ports are switched back to EHCI on
shutdown.  The Intel Windows driver switches the ports back to EHCI, so
change the Linux xHCI driver to do the same.

Unfortunately, we can't tell the two effected boards apart from other
working motherboards, because the vendors will change the DMI strings
for the DH77EB and DH77DF boards to their own custom names.  One example
is Compulab's mini-desktop, the Intense-PC.  Instead, key off the
Panther Point xHCI host PCI vendor and device ID, and switch the ports
over for all PPT xHCI hosts.

The only impact this will have on non-effected boards is to add a couple
hundred milliseconds delay on boot when the BIOS has to switch the ports
over from EHCI to xHCI.

This patch should be backported to kernels as old as 3.0, that contain
the commit 69e848c2090aebba5698a1620604c7dccb448684 "Intel xhci: Support
EHCI/xHCI port switching."

Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
Reported-by: Denis Turischev <denis@compulab.co.il>
Tested-by: Denis Turischev <denis@compulab.co.il>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Fix proper comparison.
Signed-off-by: Maxim Uvarov <maxim.uvarov@oracle.com>
12 years agoxhci: Increase reset timeout for Renesas 720201 host.
Sarah Sharp [Mon, 23 Jul 2012 23:06:08 +0000 (16:06 -0700)]
xhci: Increase reset timeout for Renesas 720201 host.

commit 22ceac191211cf6688b1bf6ecd93c8b6bf80ed9b upstream.

The NEC/Renesas 720201 xHCI host controller does not complete its reset
within 250 milliseconds.  In fact, it takes about 9 seconds to reset the
host controller, and 1 second for the host to be ready for doorbell
rings.  Extend the reset and CNR polling timeout to 10 seconds each.

This patch should be backported to kernels as old as 2.6.31, that
contain the commit 66d4eadd8d067269ea8fead1a50fe87c2979a80d "USB: xhci:
BIOS handoff and HW initialization."

Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
Reported-by: Edwin Klein Mentink <e.kleinmentink@zonnet.nl>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
12 years agoext4: avoid kmemcheck complaint from reading uninitialized memory
Theodore Ts'o [Mon, 6 Aug 2012 03:28:16 +0000 (23:28 -0400)]
ext4: avoid kmemcheck complaint from reading uninitialized memory

commit 7e731bc9a12339f344cddf82166b82633d99dd86 upstream.

Commit 03179fe923 introduced a kmemcheck complaint in
ext4_da_get_block_prep() because we save and restore
ei->i_da_metadata_calc_last_lblock even though it is left
uninitialized in the case where i_da_metadata_calc_len is zero.

This doesn't hurt anything, but silencing the kmemcheck complaint
makes it easier for people to find real bugs.

Addresses https://bugzilla.kernel.org/show_bug.cgi?id=45631
(which is marked as a regression).

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
12 years agodrm/radeon: do not reenable crtc after moving vram start address
Jerome Glisse [Fri, 27 Jul 2012 20:32:24 +0000 (16:32 -0400)]
drm/radeon: do not reenable crtc after moving vram start address

commit 81ee8fb6b52ec69eeed37fe7943446af1dccecc5 upstream.

It seems we can not update the crtc scanout address. After disabling
crtc, update to base address do not take effect after crtc being
reenable leading to at least frame being scanout from the old crtc
base address. Disabling crtc display request lead to same behavior.

So after changing the vram address if we don't keep crtc disabled
we will have the GPU trying to read some random system memory address
with some iommu this will broke the crtc engine and will lead to
broken display and iommu error message.

So to avoid this, disable crtc. For flicker less boot we will need
to avoid moving the vram start address.

This patch should also fix :

https://bugs.freedesktop.org/show_bug.cgi?id=42373

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
12 years agodrm/i915: correctly order the ring init sequence
Daniel Vetter [Tue, 7 Aug 2012 07:54:14 +0000 (09:54 +0200)]
drm/i915: correctly order the ring init sequence

commit 0d8957c8a90bbb5d34fab9a304459448a5131e06 upstream.

We may only start to set up the new register values after having
confirmed that the ring is truely off. Otherwise the hw might lose the
newly written register values. This is caught later on in the init
sequence, when we check whether the register writes have stuck.

Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=50522
Tested-by: Yang Guang <guang.a.yang@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
12 years agoxen: mark local pages as FOREIGN in the m2p_override
Stefano Stabellini [Wed, 23 May 2012 17:57:20 +0000 (18:57 +0100)]
xen: mark local pages as FOREIGN in the m2p_override

commit b9e0d95c041ca2d7ad297ee37c2e9cfab67a188f upstream.

When the frontend and the backend reside on the same domain, even if we
add pages to the m2p_override, these pages will never be returned by
mfn_to_pfn because the check "get_phys_to_machine(pfn) != mfn" will
always fail, so the pfn of the frontend will be returned instead
(resulting in a deadlock because the frontend pages are already locked).

INFO: task qemu-system-i38:1085 blocked for more than 120 seconds.
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
qemu-system-i38 D ffff8800cfc137c0     0  1085      1 0x00000000
 ffff8800c47ed898 0000000000000282 ffff8800be4596b0 00000000000137c0
 ffff8800c47edfd8 ffff8800c47ec010 00000000000137c0 00000000000137c0
 ffff8800c47edfd8 00000000000137c0 ffffffff82213020 ffff8800be4596b0
Call Trace:
 [<ffffffff81101ee0>] ? __lock_page+0x70/0x70
 [<ffffffff81a0fdd9>] schedule+0x29/0x70
 [<ffffffff81a0fe80>] io_schedule+0x60/0x80
 [<ffffffff81101eee>] sleep_on_page+0xe/0x20
 [<ffffffff81a0e1ca>] __wait_on_bit_lock+0x5a/0xc0
 [<ffffffff81101ed7>] __lock_page+0x67/0x70
 [<ffffffff8106f750>] ? autoremove_wake_function+0x40/0x40
 [<ffffffff811867e6>] ? bio_add_page+0x36/0x40
 [<ffffffff8110b692>] set_page_dirty_lock+0x52/0x60
 [<ffffffff81186021>] bio_set_pages_dirty+0x51/0x70
 [<ffffffff8118c6b4>] do_blockdev_direct_IO+0xb24/0xeb0
 [<ffffffff811e71a0>] ? ext3_get_blocks_handle+0xe00/0xe00
 [<ffffffff8118ca95>] __blockdev_direct_IO+0x55/0x60
 [<ffffffff811e71a0>] ? ext3_get_blocks_handle+0xe00/0xe00
 [<ffffffff811e91c8>] ext3_direct_IO+0xf8/0x390
 [<ffffffff811e71a0>] ? ext3_get_blocks_handle+0xe00/0xe00
 [<ffffffff81004b60>] ? xen_mc_flush+0xb0/0x1b0
 [<ffffffff81104027>] generic_file_aio_read+0x737/0x780
 [<ffffffff813bedeb>] ? gnttab_map_refs+0x15b/0x1e0
 [<ffffffff811038f0>] ? find_get_pages+0x150/0x150
 [<ffffffff8119736c>] aio_rw_vect_retry+0x7c/0x1d0
 [<ffffffff811972f0>] ? lookup_ioctx+0x90/0x90
 [<ffffffff81198856>] aio_run_iocb+0x66/0x1a0
 [<ffffffff811998b8>] do_io_submit+0x708/0xb90
 [<ffffffff81199d50>] sys_io_submit+0x10/0x20
 [<ffffffff81a18d69>] system_call_fastpath+0x16/0x1b

The explanation is in the comment within the code:

We need to do this because the pages shared by the frontend
(xen-blkfront) can be already locked (lock_page, called by
do_read_cache_page); when the userspace backend tries to use them
with direct_IO, mfn_to_pfn returns the pfn of the frontend, so
do_blockdev_direct_IO is going to try to lock the same pages
again resulting in a deadlock.

A simplified call graph looks like this:

pygrub                          QEMU
-----------------------------------------------
do_read_cache_page              io_submit
  |                              |
lock_page                       ext3_direct_IO
                                 |
                                bio_add_page
                                 |
                                lock_page

Internally the xen-blkback uses m2p_add_override to swizzle (temporarily)
a 'struct page' to have a different MFN (so that it can point to another
guest). It also can easily find out whether another pfn corresponding
to the mfn exists in the m2p, and can set the FOREIGN bit
in the p2m, making sure that mfn_to_pfn returns the pfn of the backend.

This allows the backend to perform direct_IO on these pages, but as a
side effect prevents the frontend from using get_user_pages_fast on
them while they are being shared with the backend.

Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
12 years agofuse: verify all ioctl retry iov elements
Zach Brown [Tue, 24 Jul 2012 19:10:11 +0000 (12:10 -0700)]
fuse: verify all ioctl retry iov elements

commit fb6ccff667712c46b4501b920ea73a326e49626a upstream.

Commit 7572777eef78ebdee1ecb7c258c0ef94d35bad16 attempted to verify that
the total iovec from the client doesn't overflow iov_length() but it
only checked the first element.  The iovec could still overflow by
starting with a small element.  The obvious fix is to check all the
elements.

The overflow case doesn't look dangerous to the kernel as the copy is
limited by the length after the overflow.  This fix restores the
intention of returning an error instead of successfully copying less
than the iovec represented.

I found this by code inspection.  I built it but don't have a test case.
I'm cc:ing stable because the initial commit did as well.

Signed-off-by: Zach Brown <zab@redhat.com>
Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
12 years agoSPEC: v2.6.39-400.1.0
Maxim Uvarov [Mon, 24 Sep 2012 10:22:09 +0000 (03:22 -0700)]
SPEC: v2.6.39-400.1.0

Signed-off-by: Maxim Uvarov <maxim.uvarov@oracle.com>
12 years agoMerge branch 'uek2-merge' of git://ca-git.us.oracle.com/linux-konrad-public
Maxim Uvarov [Fri, 21 Sep 2012 12:07:22 +0000 (05:07 -0700)]
Merge branch 'uek2-merge' of git://ca-git.us.oracle.com/linux-konrad-public

12 years agoMerge branch 'stable/for-linus-3.6.rebased' into uek2-merge
Konrad Rzeszutek Wilk [Wed, 19 Sep 2012 15:02:41 +0000 (11:02 -0400)]
Merge branch 'stable/for-linus-3.6.rebased' into uek2-merge

* stable/for-linus-3.6.rebased:
  xen/boot: Disable BIOS SMP MP table search.
  xen/m2p: do not reuse kmap_op->dev_bus_addr
  xen/setup: Fix one-off error when adding for-balloon PFNs to the P2M.

Conflicts:
arch/x86/xen/enlighten.c

12 years agoMerge branch 'stable/xen-pciback-0.6.3.bugfixes' into uek2-merge
Konrad Rzeszutek Wilk [Wed, 19 Sep 2012 15:02:09 +0000 (11:02 -0400)]
Merge branch 'stable/xen-pciback-0.6.3.bugfixes' into uek2-merge

* stable/xen-pciback-0.6.3.bugfixes:
  xen-pciback: support wild cards in slot specifications
  xen/pciback: Fix proper FLR steps.

12 years agoxen-pciback: support wild cards in slot specifications
Jan Beulich [Tue, 18 Sep 2012 11:29:03 +0000 (12:29 +0100)]
xen-pciback: support wild cards in slot specifications

Particularly for hiding sets of SR-IOV devices, specifying them all
individually is rather cumbersome. Therefore, allow function and slot
numbers to be replaced by a wildcard character ('*').

Unfortunately this gets complicated by the in-kernel sscanf()
implementation not being really standard conformant - matching of
plain text tails cannot be checked by the caller (a patch to overcome
this will be sent shortly, and a follow-up patch for simplifying the
code is planned to be sent when that fixed went upstream).

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
(cherry picked from commit c3cb4709809e655a4ba5a716086c8bc5bbbbccdb)

12 years agoxen/boot: Disable BIOS SMP MP table search.
Konrad Rzeszutek Wilk [Wed, 19 Sep 2012 12:30:55 +0000 (08:30 -0400)]
xen/boot: Disable BIOS SMP MP table search.

As the initial domain we are able to search/map certain regions
of memory to harvest configuration data. For all low-level we
use ACPI tables - for interrupts we use exclusively ACPI _PRT
(so DSDT) and MADT for INT_SRC_OVR.

The SMP MP table is not used at all. As a matter of fact we do
not even support machines that only have SMP MP but no ACPI tables.

Lets follow how Moorestown does it and just disable searching
for BIOS SMP tables.

This also fixes an issue on HP Proliant BL680c G5 and DL380 G6:

9f->100 for 1:1 PTE
Freeing 9f-100 pfn range: 97 pages freed
1-1 mapping on 9f->100
.. snip..
e820: BIOS-provided physical RAM map:
Xen: [mem 0x0000000000000000-0x000000000009efff] usable
Xen: [mem 0x000000000009f400-0x00000000000fffff] reserved
Xen: [mem 0x0000000000100000-0x00000000cfd1dfff] usable
.. snip..
Scan for SMP in [mem 0x00000000-0x000003ff]
Scan for SMP in [mem 0x0009fc00-0x0009ffff]
Scan for SMP in [mem 0x000f0000-0x000fffff]
found SMP MP-table at [mem 0x000f4fa0-0x000f4faf] mapped at [ffff8800000f4fa0]
(XEN) mm.c:908:d0 Error getting mfn 100 (pfn 5555555555555555) from L1 entry 0000000000100461 for l1e_owner=0, pg_owner=0
(XEN) mm.c:4995:d0 ptwr_emulate: could not get_page_from_l1e()
BUG: unable to handle kernel NULL pointer dereference at           (null)
IP: [<ffffffff81ac07e2>] xen_set_pte_init+0x66/0x71
. snip..
Pid: 0, comm: swapper Not tainted 3.6.0-rc6upstream-00188-gb6fb969-dirty #2 HP ProLiant BL680c G5
.. snip..
Call Trace:
 [<ffffffff81ad31c6>] __early_ioremap+0x18a/0x248
 [<ffffffff81624731>] ? printk+0x48/0x4a
 [<ffffffff81ad32ac>] early_ioremap+0x13/0x15
 [<ffffffff81acc140>] get_mpc_size+0x2f/0x67
 [<ffffffff81acc284>] smp_scan_config+0x10c/0x136
 [<ffffffff81acc2e4>] default_find_smp_config+0x36/0x5a
 [<ffffffff81ac3085>] setup_arch+0x5b3/0xb5b
 [<ffffffff81624731>] ? printk+0x48/0x4a
 [<ffffffff81abca7f>] start_kernel+0x90/0x390
 [<ffffffff81abc356>] x86_64_start_reservations+0x131/0x136
 [<ffffffff81abfa83>] xen_start_kernel+0x65f/0x661
(XEN) Domain 0 crashed: 'noreboot' set - not rebooting.

which is that ioremap would end up mapping 0xff using _PAGE_IOMAP
(which is what early_ioremap sticks as a flag) - which meant
we would get MFN 0xFF (pte ff461, which is OK), and then it would
also map 0x100 (b/c ioremap tries to get page aligned request, and
it was trying to map 0xf4fa0 + PAGE_SIZE - so it mapped the next page)
as _PAGE_IOMAP. Since 0x100 is actually a RAM page, and the _PAGE_IOMAP
bypasses the P2M lookup we would happily set the PTE to 1000461.
Xen would deny the request since we do not have access to the
Machine Frame Number (MFN) of 0x100. The P2M[0x100] is for example
0x80140.

CC: stable@kernel.org
Fixes-Oracle-Bugzilla: https://bugzilla.oracle.com/bugzilla/show_bug.cgi?id=13665
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
(cherry picked from commit c205ce318b53a73340cad92a14297d213f2f679e)

Conflicts:

arch/x86/xen/enlighten.c

12 years agoxen/m2p: do not reuse kmap_op->dev_bus_addr
Stefano Stabellini [Wed, 12 Sep 2012 11:44:30 +0000 (12:44 +0100)]
xen/m2p: do not reuse kmap_op->dev_bus_addr

If the caller passes a valid kmap_op to m2p_add_override, we use
kmap_op->dev_bus_addr to store the original mfn, but dev_bus_addr is
part of the interface with Xen and if we are batching the hypercalls it
might not have been written by the hypervisor yet. That means that later
on Xen will write to it and we'll think that the original mfn is
actually what Xen has written to it.

Rather than "stealing" struct members from kmap_op, keep using
page->index to store the original mfn and add another parameter to
m2p_remove_override to get the corresponding kmap_op instead.
It is now responsibility of the caller to keep track of which kmap_op
corresponds to a particular page in the m2p_override (gntdev, the only
user of this interface that passes a valid kmap_op, is already doing that).

CC: stable@kernel.org
Reported-and-Tested-By: Sander Eikelenboom <linux@eikelenboom.it>
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
(cherry picked from commit 2fc136eecd0c647a6b13fcd00d0c41a1a28f35a5)

12 years agoxen/pciback: Fix proper FLR steps.
Konrad Rzeszutek Wilk [Wed, 5 Sep 2012 20:35:20 +0000 (16:35 -0400)]
xen/pciback: Fix proper FLR steps.

When we do FLR and save PCI config we did it in the wrong order.
The end result was that if a PCI device was unbind from
its driver, then binded to xen-pciback, and then back to its
driver we would get:

> lspci -s 04:00.0
04:00.0 Ethernet controller: Intel Corporation 82574L Gigabit Network Connection
13:42:12 # 4 :~/
> echo "0000:04:00.0" > /sys/bus/pci/drivers/pciback/unbind
> modprobe e1000e
e1000e: Intel(R) PRO/1000 Network Driver - 2.0.0-k
e1000e: Copyright(c) 1999 - 2012 Intel Corporation.
e1000e 0000:04:00.0: Disabling ASPM L0s L1
e1000e 0000:04:00.0: enabling device (0000 -> 0002)
xen: registering gsi 48 triggering 0 polarity 1
Already setup the GSI :48
e1000e 0000:04:00.0: Interrupt Throttling Rate (ints/sec) set to dynamic conservative mode
e1000e: probe of 0000:04:00.0 failed with error -2

This fixes it by first saving the PCI configuration space, then
doing the FLR.

Reported-by: Ren, Yongjie <yongjie.ren@intel.com>
Reported-and-Tested-by: Tobias Geiger <tobias.geiger@vido.info>
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
CC: stable@vger.kernel.org
(cherry picked from commit 80ba77dfbce85f2d1be54847de3c866de1b18a9a)

12 years agoxen/setup: Fix one-off error when adding for-balloon PFNs to the P2M.
Konrad Rzeszutek Wilk [Fri, 17 Aug 2012 20:43:28 +0000 (16:43 -0400)]
xen/setup: Fix one-off error when adding for-balloon PFNs to the P2M.

When we are finished with return PFNs to the hypervisor, then
populate it back, and also mark the E820 MMIO and E820 gaps
as IDENTITY_FRAMEs, we then call P2M to set areas that can
be used for ballooning. We were off by one, and ended up
over-writting a P2M entry that most likely was an IDENTITY_FRAME.
For example:

1-1 mapping on 40000->40200
1-1 mapping on bc558->bc5ac
1-1 mapping on bc5b4->bc8c5
1-1 mapping on bc8c6->bcb7c
1-1 mapping on bcd00->100000
Released 614 pages of unused memory
Set 277889 page(s) to 1-1 mapping
Populating 40200-40466 pfn range: 614 pages added

=> here we set from 40466 up to bc559 P2M tree to be
INVALID_P2M_ENTRY. We should have done it up to bc558.

The end result is that if anybody is trying to construct
a PTE for PFN bc558 they end up with ~PAGE_PRESENT.

CC: stable@vger.kernel.org
Reported-by-and-Tested-by: Andre Przywara <andre.przywara@amd.com>
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
(cherry picked from commit c96aae1f7f393387d160211f60398d58463a7e65)

12 years agoSPEC: v2.6.39-300.8.0
Guru Anbalagane [Wed, 12 Sep 2012 23:45:50 +0000 (16:45 -0700)]
SPEC: v2.6.39-300.8.0
Signed-off-by: Guru Anbalagane <guru.anbalagane@oracle.com>
12 years agoocfs2: Fix oops in ocfs2_fast_symlink_readpage() code path
Xiaowei.Hu [Wed, 12 Sep 2012 07:40:06 +0000 (15:40 +0800)]
ocfs2: Fix oops in ocfs2_fast_symlink_readpage() code path

from ocfs2-devel
Reported-and-Tested-by: Vincent Etienne <vetienne@aprogsys.com>
Signed-off-by: Sunil Mushran <sunil.mushran@gmail.com>
12 years agoSPEC: v2.6.39-300.7.0
Maxim Uvarov [Thu, 6 Sep 2012 16:15:10 +0000 (09:15 -0700)]
SPEC: v2.6.39-300.7.0

Signed-off-by: Maxim Uvarov <maxim.uvarov@oracle.com>
12 years agoMerge branch 'uek2-merge' of git://ca-git.us.oracle.com/linux-konrad-public
Maxim Uvarov [Thu, 6 Sep 2012 14:52:06 +0000 (07:52 -0700)]
Merge branch 'uek2-merge' of git://ca-git.us.oracle.com/linux-konrad-public

12 years agoMerge branch 'uek2-2.6.39-300-lpfc-update' of git://ca-git.us.oracle.com/linux-snits...
Maxim Uvarov [Thu, 6 Sep 2012 14:46:42 +0000 (07:46 -0700)]
Merge branch 'uek2-2.6.39-300-lpfc-update' of git://ca-git.us.oracle.com/linux-snits-public

12 years agohtrimer: fix kabi break.
Joe Jin [Tue, 28 Aug 2012 11:57:55 +0000 (19:57 +0800)]
htrimer: fix kabi break.

Signed-off-by: Joe Jin <joe.jin@oracle.com>
12 years agotimekeeping: Add missing update call in timekeeping_resume()
Thomas Gleixner [Tue, 17 Jul 2012 17:33:58 +0000 (13:33 -0400)]
timekeeping: Add missing update call in timekeeping_resume()

This is a backport of 3e997130bd2e8c6f5aaa49d6e3161d4d29b43ab0

The leap second rework unearthed another issue of inconsistent data.

On timekeeping_resume() the timekeeper data is updated, but nothing
calls timekeeping_update(), so now the update code in the timer
interrupt sees stale values.

This has been the case before those changes, but then the timer
interrupt was using stale data as well so this went unnoticed for quite
some time.

Add the missing update call, so all the data is consistent everywhere.

Reported-by: Andreas Schwab <schwab@linux-m68k.org>
Reported-and-tested-by: "Rafael J. Wysocki" <rjw@sisk.pl>
Reported-and-tested-by: Martin Steigerwald <Martin@lichtvoll.de>
Cc: John Stultz <johnstul@us.ibm.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>,
Cc: Prarit Bhargava <prarit@redhat.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: John Stultz <johnstul@us.ibm.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Prarit Bhargava <prarit@redhat.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: John Stultz <johnstul@us.ibm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit 0851978b661f25192ff763289698f3175b1bab42)

Signed-off-by: Joe Jin <joe.jin@oracle.com>
12 years agohrtimer: Update hrtimer base offsets each hrtimer_interrupt
John Stultz [Tue, 17 Jul 2012 17:33:57 +0000 (13:33 -0400)]
hrtimer: Update hrtimer base offsets each hrtimer_interrupt

This is a backport of 5baefd6d84163443215f4a99f6a20f054ef11236

The update of the hrtimer base offsets on all cpus cannot be made
atomically from the timekeeper.lock held and interrupt disabled region
as smp function calls are not allowed there.

clock_was_set(), which enforces the update on all cpus, is called
either from preemptible process context in case of do_settimeofday()
or from the softirq context when the offset modification happened in
the timer interrupt itself due to a leap second.

In both cases there is a race window for an hrtimer interrupt between
dropping timekeeper lock, enabling interrupts and clock_was_set()
issuing the updates. Any interrupt which arrives in that window will
see the new time but operate on stale offsets.

So we need to make sure that an hrtimer interrupt always sees a
consistent state of time and offsets.

ktime_get_update_offsets() allows us to get the current monotonic time
and update the per cpu hrtimer base offsets from hrtimer_interrupt()
to capture a consistent state of monotonic time and the offsets. The
function replaces the existing ktime_get() calls in hrtimer_interrupt().

The overhead of the new function vs. ktime_get() is minimal as it just
adds two store operations.

This ensures that any changes to realtime or boottime offsets are
noticed and stored into the per-cpu hrtimer base structures, prior to
any hrtimer expiration and guarantees that timers are not expired early.

Signed-off-by: John Stultz <johnstul@us.ibm.com>
Reviewed-by: Ingo Molnar <mingo@kernel.org>
Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Acked-by: Prarit Bhargava <prarit@redhat.com>
Link: http://lkml.kernel.org/r/1341960205-56738-8-git-send-email-johnstul@us.ibm.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Prarit Bhargava <prarit@redhat.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: John Stultz <johnstul@us.ibm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit bb6ed34f2a6eeb40608b8ca91f3ec90ec9dca26f)

Signed-off-by: Joe Jin <joe.jin@oracle.com>
12 years agotimekeeping: Provide hrtimer update function
Thomas Gleixner [Tue, 17 Jul 2012 17:33:56 +0000 (13:33 -0400)]
timekeeping: Provide hrtimer update function

This is a backport of f6c06abfb3972ad4914cef57d8348fcb2932bc3b

To finally fix the infamous leap second issue and other race windows
caused by functions which change the offsets between the various time
bases (CLOCK_MONOTONIC, CLOCK_REALTIME and CLOCK_BOOTTIME) we need a
function which atomically gets the current monotonic time and updates
the offsets of CLOCK_REALTIME and CLOCK_BOOTTIME with minimalistic
overhead. The previous patch which provides ktime_t offsets allows us
to make this function almost as cheap as ktime_get() which is going to
be replaced in hrtimer_interrupt().

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Ingo Molnar <mingo@kernel.org>
Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Acked-by: Prarit Bhargava <prarit@redhat.com>
Signed-off-by: John Stultz <johnstul@us.ibm.com>
Link: http://lkml.kernel.org/r/1341960205-56738-7-git-send-email-johnstul@us.ibm.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Prarit Bhargava <prarit@redhat.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: John Stultz <johnstul@us.ibm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit 22f4bbcfb131e2392c78ad67af35fdd436d4dd54)

Signed-off-by: Joe Jin <joe.jin@oracle.com>
12 years agohrtimers: Move lock held region in hrtimer_interrupt()
Thomas Gleixner [Tue, 17 Jul 2012 17:33:55 +0000 (13:33 -0400)]
hrtimers: Move lock held region in hrtimer_interrupt()

This is a backport of 196951e91262fccda81147d2bcf7fdab08668b40

We need to update the base offsets from this code and we need to do
that under base->lock. Move the lock held region around the
ktime_get() calls. The ktime_get() calls are going to be replaced with
a function which gets the time and the offsets atomically.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Ingo Molnar <mingo@kernel.org>
Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Acked-by: Prarit Bhargava <prarit@redhat.com>
Signed-off-by: John Stultz <johnstul@us.ibm.com>
Link: http://lkml.kernel.org/r/1341960205-56738-6-git-send-email-johnstul@us.ibm.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Prarit Bhargava <prarit@redhat.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: John Stultz <johnstul@us.ibm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit 6c89f2ce05ea7e26a7580ad9eb950f2c4f10891b)

Signed-off-by: Joe Jin <joe.jin@oracle.com>
12 years agotimekeeping: Maintain ktime_t based offsets for hrtimers
Thomas Gleixner [Tue, 17 Jul 2012 17:33:54 +0000 (13:33 -0400)]
timekeeping: Maintain ktime_t based offsets for hrtimers

This is a backport of 5b9fe759a678e05be4937ddf03d50e950207c1c0

We need to update the hrtimer clock offsets from the hrtimer interrupt
context. To avoid conversions from timespec to ktime_t maintain a
ktime_t based representation of those offsets in the timekeeper. This
puts the conversion overhead into the code which updates the
underlying offsets and provides fast accessible values in the hrtimer
interrupt.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: John Stultz <johnstul@us.ibm.com>
Reviewed-by: Ingo Molnar <mingo@kernel.org>
Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Acked-by: Prarit Bhargava <prarit@redhat.com>
Link: http://lkml.kernel.org/r/1341960205-56738-4-git-send-email-johnstul@us.ibm.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Prarit Bhargava <prarit@redhat.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: John Stultz <johnstul@us.ibm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit 03a90b9a6f7eec70edde4eb1f88fa8a5c058d85e)

Signed-off-by: Joe Jin <joe.jin@oracle.com>
12 years agotimekeeping: Fix leapsecond triggered load spike issue
John Stultz [Tue, 17 Jul 2012 17:33:53 +0000 (13:33 -0400)]
timekeeping: Fix leapsecond triggered load spike issue

This is a backport of 4873fa070ae84a4115f0b3c9dfabc224f1bc7c51

The timekeeping code misses an update of the hrtimer subsystem after a
leap second happened. Due to that timers based on CLOCK_REALTIME are
either expiring a second early or late depending on whether a leap
second has been inserted or deleted until an operation is initiated
which causes that update. Unless the update happens by some other
means this discrepancy between the timekeeping and the hrtimer data
stays forever and timers are expired either early or late.

The reported immediate workaround - $ data -s "`date`" - is causing a
call to clock_was_set() which updates the hrtimer data structures.
See: http://www.sheeri.com/content/mysql-and-leap-second-high-cpu-and-fix

Add the missing clock_was_set() call to update_wall_time() in case of
a leap second event. The actual update is deferred to softirq context
as the necessary smp function call cannot be invoked from hard
interrupt context.

Signed-off-by: John Stultz <johnstul@us.ibm.com>
Reported-by: Jan Engelhardt <jengelh@inai.de>
Reviewed-by: Ingo Molnar <mingo@kernel.org>
Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Acked-by: Prarit Bhargava <prarit@redhat.com>
Link: http://lkml.kernel.org/r/1341960205-56738-3-git-send-email-johnstul@us.ibm.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Prarit Bhargava <prarit@redhat.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: John Stultz <johnstul@us.ibm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit d21e4baf4523fec26e3c70cb78b013ad3b245c83)

Signed-off-by: Joe Jin <joe.jin@oracle.com>
12 years agohrtimer: Provide clock_was_set_delayed()
John Stultz [Tue, 17 Jul 2012 17:33:52 +0000 (13:33 -0400)]
hrtimer: Provide clock_was_set_delayed()

This is a backport of f55a6faa384304c89cfef162768e88374d3312cb

clock_was_set() cannot be called from hard interrupt context because
it calls on_each_cpu().

For fixing the widely reported leap seconds issue it is necessary to
call it from hard interrupt context, i.e. the timer tick code, which
does the timekeeping updates.

Provide a new function which denotes it in the hrtimer cpu base
structure of the cpu on which it is called and raise the hrtimer
softirq. We then execute the clock_was_set() notificiation from
softirq context in run_hrtimer_softirq(). The hrtimer softirq is
rarely used, so polling the flag there is not a performance issue.

[ tglx: Made it depend on CONFIG_HIGH_RES_TIMERS. We really should get
  rid of all this ifdeffery ASAP ]

Signed-off-by: John Stultz <johnstul@us.ibm.com>
Reported-by: Jan Engelhardt <jengelh@inai.de>
Reviewed-by: Ingo Molnar <mingo@kernel.org>
Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Acked-by: Prarit Bhargava <prarit@redhat.com>
Link: http://lkml.kernel.org/r/1341960205-56738-2-git-send-email-johnstul@us.ibm.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Prarit Bhargava <prarit@redhat.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: John Stultz <johnstul@us.ibm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit 62b787f886e2d96cc7c5428aeee05dbe32a9531b)

Signed-off-by: Joe Jin <joe.jin@oracle.com>
12 years agotime: Move common updates to a function
Thomas Gleixner [Tue, 17 Jul 2012 17:33:51 +0000 (13:33 -0400)]
time: Move common updates to a function

This is a backport of cc06268c6a87db156af2daed6e96a936b955cc82

While not a bugfix itself, it allows following fixes to backport
in a more straightforward manner.

CC: Thomas Gleixner <tglx@linutronix.de>
CC: Eric Dumazet <eric.dumazet@gmail.com>
CC: Richard Cochran <richardcochran@gmail.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Prarit Bhargava <prarit@redhat.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: John Stultz <john.stultz@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit c7e2580578671c4d19a1a83e6fdb2482cc136283)

Signed-off-by: Joe Jin <joe.jin@oracle.com>
12 years agotimekeeping: Fix CLOCK_MONOTONIC inconsistency during leapsecond
John Stultz [Tue, 17 Jul 2012 17:33:50 +0000 (13:33 -0400)]
timekeeping: Fix CLOCK_MONOTONIC inconsistency during leapsecond

This is a backport of fad0c66c4bb836d57a5f125ecd38bed653ca863a
which resolves a bug the previous commit.

Commit 6b43ae8a61 (ntp: Fix leap-second hrtimer livelock) broke the
leapsecond update of CLOCK_MONOTONIC. The missing leapsecond update to
wall_to_monotonic causes discontinuities in CLOCK_MONOTONIC.

Adjust wall_to_monotonic when NTP inserted a leapsecond.

Reported-by: Richard Cochran <richardcochran@gmail.com>
Signed-off-by: John Stultz <john.stultz@linaro.org>
Tested-by: Richard Cochran <richardcochran@gmail.com>
Link: http://lkml.kernel.org/r/1338400497-12420-1-git-send-email-john.stultz@linaro.org
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Prarit Bhargava <prarit@redhat.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: John Stultz <johnstul@us.ibm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit c33f2424c3941986d402c81d380d4e805870a20f)
Conflicts:
kernel/time/timekeeping.c

Signed-off-by: Joe Jin <joe.jin@oracle.com>
12 years agontp: Correct TAI offset during leap second
Richard Cochran [Tue, 17 Jul 2012 17:33:49 +0000 (13:33 -0400)]
ntp: Correct TAI offset during leap second

This is a backport of dd48d708ff3e917f6d6b6c2b696c3f18c019feed

When repeating a UTC time value during a leap second (when the UTC
time should be 23:59:60), the TAI timescale should not stop. The kernel
NTP code increments the TAI offset one second too late. This patch fixes
the issue by incrementing the offset during the leap second itself.

Signed-off-by: Richard Cochran <richardcochran@gmail.com>
Cc: Prarit Bhargava <prarit@redhat.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: John Stultz <john.stultz@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit 96bab736bad82423c2b312d602689a9078481fa9)

Signed-off-by: Joe Jin <joe.jin@oracle.com>
12 years agoRevert "3.0.x: hrtimer: Fix clock_was_set so it is safe to call from irq context"
Joe Jin [Tue, 28 Aug 2012 10:13:13 +0000 (18:13 +0800)]
Revert "3.0.x: hrtimer: Fix clock_was_set so it is safe to call from irq context"

This reverts commit c51e012012e48ca262d4b489e33bc113bb5ac74d.

12 years agoRevert "3.0.x: time: Fix leapsecond triggered hrtimer/futex load spike issue"
Joe Jin [Tue, 28 Aug 2012 10:13:11 +0000 (18:13 +0800)]
Revert "3.0.x: time: Fix leapsecond triggered hrtimer/futex load spike issue"

This reverts commit aac67aba83c32bd03f4b59bdd932a076afbee089.

12 years agoRevert "3.0.x: hrtimer: Update hrtimer base offsets each hrtimer_interrupt"
Joe Jin [Tue, 28 Aug 2012 10:13:05 +0000 (18:13 +0800)]
Revert "3.0.x: hrtimer: Update hrtimer base offsets each hrtimer_interrupt"

This reverts commit 54b16ee687c86dfd6c94e49bdaa1535a3bf3cc9f.

12 years agoscsi/lpfc: Resolve spinlock issue
Vaios Papadimitriou [Wed, 5 Sep 2012 19:20:32 +0000 (12:20 -0700)]
scsi/lpfc: Resolve spinlock issue

Modify lpfc_scsi_cmd_iocb_cmpl() and lpfc_abort_handler() to use
spin_lock_irqsave/spin_unlock_irqrestore to lock phba->hbalock.

Signed-off-by: Jerry Snitselaar <jerry.snitselaar@oracle.com>
12 years agoscsi/lpfc: Update lpfc version for 8.3.5.82.2p driver release
Vaios Papadimitriou [Tue, 28 Aug 2012 23:04:27 +0000 (16:04 -0700)]
scsi/lpfc: Update lpfc version for 8.3.5.82.2p driver release

commit id: None

Signed-off-by: Jerry Snitselaar <jerry.snitselaar@oracle.com>
12 years agoscsi/lpfc: Fix null pointer error for piocbq
Vaios Papadimitriou [Tue, 28 Aug 2012 23:03:38 +0000 (16:03 -0700)]
scsi/lpfc: Fix null pointer error for piocbq

commit id: a629852ab810015223eec7a2f31a6bd5f93c83cf

Signed-off-by: Jerry Snitselaar <jerry.snitselaar@oracle.com>
12 years agoscsi/lpfc: Add missing jumps to mempool_free to fix potential memory leak
Vaios Papadimitriou [Tue, 28 Aug 2012 23:03:13 +0000 (16:03 -0700)]
scsi/lpfc: Add missing jumps to mempool_free to fix potential memory leak

commit id: 4f4c18634d2a05079194ba333c7882349f25d6f7

Signed-off-by: Jerry Snitselaar <jerry.snitselaar@oracle.com>
12 years agoscsi/lpfc: Fixed leaking memory from pci dma pool
Vaios Papadimitriou [Tue, 28 Aug 2012 23:02:43 +0000 (16:02 -0700)]
scsi/lpfc: Fixed leaking memory from pci dma pool

commit id: http://marc.info/?l=linux-scsi&m=134496910830011

Signed-off-by: Jerry Snitselaar <jerry.snitselaar@oracle.com>
12 years agoscsi/lpfc: Logged XRI of the SCSI command to be aborted on abort handler timeout
Vaios Papadimitriou [Tue, 28 Aug 2012 23:02:15 +0000 (16:02 -0700)]
scsi/lpfc: Logged XRI of the SCSI command to be aborted on abort handler timeout

commit id: http://marc.info/?l=linux-scsi&m=134496908630003

Signed-off-by: Jerry Snitselaar <jerry.snitselaar@oracle.com>
12 years agoscsi/lpfc: Fix bug with driver logging too many fcp underrun messages
Vaios Papadimitriou [Tue, 28 Aug 2012 23:01:45 +0000 (16:01 -0700)]
scsi/lpfc: Fix bug with driver logging too many fcp underrun messages

commit id: http://marc.info/?l=linux-scsi&m=134496907930001

Signed-off-by: Jerry Snitselaar <jerry.snitselaar@oracle.com>
12 years agoscsi/lpfc: Fixed unnecessary SCSI device reset escalation due to LLD handling of...
Vaios Papadimitriou [Tue, 28 Aug 2012 23:01:10 +0000 (16:01 -0700)]
scsi/lpfc: Fixed unnecessary SCSI device reset escalation due to LLD handling of I/O abort

commit id: http://marc.info/?l=linux-scsi&m=134496910030010

Signed-off-by: Jerry Snitselaar <jerry.snitselaar@oracle.com>
12 years agoscsi/lpfc: Fixed system panic due to midlayer abort and driver complete race on SCSI cmd
Vaios Papadimitriou [Tue, 28 Aug 2012 23:00:44 +0000 (16:00 -0700)]
scsi/lpfc: Fixed system panic due to midlayer abort and driver complete race on SCSI cmd

commit id: 4f2e66c6d225a14fcf77d826fe71f6137cb27352

Signed-off-by: Jerry Snitselaar <jerry.snitselaar@oracle.com>
12 years agoscsi/lpfc: Fix unable to create vports on FCoE SLI4 adapter
Vaios Papadimitriou [Tue, 28 Aug 2012 23:00:20 +0000 (16:00 -0700)]
scsi/lpfc: Fix unable to create vports on FCoE SLI4 adapter

commit id: a7dd9c0f44966b4328b52c5e32f8c3345e3482e5

Signed-off-by: Jerry Snitselaar <jerry.snitselaar@oracle.com>
12 years agoscsi/lpfc: Fix BlockGuard lpfc_printf_vlog messages
Vaios Papadimitriou [Tue, 28 Aug 2012 22:59:53 +0000 (15:59 -0700)]
scsi/lpfc: Fix BlockGuard lpfc_printf_vlog messages

commit id: http://marc.info/?l=linux-scsi&m=134496906329998

Signed-off-by: Jerry Snitselaar <jerry.snitselaar@oracle.com>
12 years agoscsi/lpfc: Fix parameter field in CQE to mask for LOCAL_REJECT status
Vaios Papadimitriou [Tue, 28 Aug 2012 22:59:25 +0000 (15:59 -0700)]
scsi/lpfc: Fix parameter field in CQE to mask for LOCAL_REJECT status

commit id: http://marc.info/?l=linux-scsi&m=134496905829996

Signed-off-by: Jerry Snitselaar <jerry.snitselaar@oracle.com>
12 years agoscsi/lpfc: Fixed new requirement compatibility with Resource and Capacity Descriptors
Vaios Papadimitriou [Tue, 28 Aug 2012 22:58:52 +0000 (15:58 -0700)]
scsi/lpfc: Fixed new requirement compatibility with Resource and Capacity Descriptors

commit id: http://marc.info/?l=linux-scsi&m=134496904429993

Signed-off-by: Jerry Snitselaar <jerry.snitselaar@oracle.com>
12 years agoscsi/lpfc: Fixed incomplete list of SLI4 commands with extended 300 second timeout...
Vaios Papadimitriou [Tue, 28 Aug 2012 22:58:28 +0000 (15:58 -0700)]
scsi/lpfc: Fixed incomplete list of SLI4 commands with extended 300 second timeout value

commit id: http://marc.info/?l=linux-scsi&m=134401210706394

Signed-off-by: Jerry Snitselaar <jerry.snitselaar@oracle.com>
12 years agoscsi/lpfc: Fix switching ports on Fabric causing additional fc_host rport entries
Vaios Papadimitriou [Tue, 28 Aug 2012 22:58:03 +0000 (15:58 -0700)]
scsi/lpfc: Fix switching ports on Fabric causing additional fc_host rport entries

commit id: http://marc.info/?l=linux-scsi&m=134401198306327

Signed-off-by: Jerry Snitselaar <jerry.snitselaar@oracle.com>
12 years agoscsi/lpfc: Fix conflicts in log message numbers
Vaios Papadimitriou [Tue, 28 Aug 2012 22:57:39 +0000 (15:57 -0700)]
scsi/lpfc: Fix conflicts in log message numbers

commit id: http://marc.info/?l=linux-scsi&m=134401198306327

Signed-off-by: Jerry Snitselaar <jerry.snitselaar@oracle.com>
12 years agoscsi/lpfc: Fixed kernel panic after scsi_eh escalation by checking the proper return...
Vaios Papadimitriou [Tue, 28 Aug 2012 22:57:17 +0000 (15:57 -0700)]
scsi/lpfc: Fixed kernel panic after scsi_eh escalation by checking the proper return status

commit id: http://marc.info/?l=linux-scsi&m=134401197206322

Signed-off-by: Jerry Snitselaar <jerry.snitselaar@oracle.com>
12 years agoscsi/lpfc: Fix driver not checking data transfered on write commands
Vaios Papadimitriou [Tue, 28 Aug 2012 22:56:41 +0000 (15:56 -0700)]
scsi/lpfc: Fix driver not checking data transfered on write commands

commit id: http://marc.info/?l=linux-scsi&m=134401196206316

Signed-off-by: Jerry Snitselaar <jerry.snitselaar@oracle.com>
12 years agoscsi/lpfc: Fix bug with message 2520 appearing in the messages file
Vaios Papadimitriou [Tue, 28 Aug 2012 22:56:11 +0000 (15:56 -0700)]
scsi/lpfc: Fix bug with message 2520 appearing in the messages file

commit id: http://marc.info/?l=linux-scsi&m=134401194806312

Signed-off-by: Jerry Snitselaar <jerry.snitselaar@oracle.com>
12 years agoscsi/lpfc: Fix bug with rrq_pool not being destroyed during driver removal
Vaios Papadimitriou [Tue, 28 Aug 2012 22:55:47 +0000 (15:55 -0700)]
scsi/lpfc: Fix bug with rrq_pool not being destroyed during driver removal

commit id: http://marc.info/?l=linux-scsi&m=134401193306311

Signed-off-by: Jerry Snitselaar <jerry.snitselaar@oracle.com>
12 years agoscsi/lpfc: Fix Driver not attaching to OCe14000 adapters
Vaios Papadimitriou [Tue, 28 Aug 2012 22:55:13 +0000 (15:55 -0700)]
scsi/lpfc: Fix Driver not attaching to OCe14000 adapters

commit id: http://marc.info/?l=linux-scsi&m=134401245106524

Signed-off-by: Jerry Snitselaar <jerry.snitselaar@oracle.com>
12 years agoscsi/lpfc: Fix bug with driver not setting the diag set valid bit for loopback testing
Vaios Papadimitriou [Tue, 28 Aug 2012 22:54:45 +0000 (15:54 -0700)]
scsi/lpfc: Fix bug with driver not setting the diag set valid bit for loopback testing

commit id: http://marc.info/?l=linux-scsi&m=134401185006275

Signed-off-by: Jerry Snitselaar <jerry.snitselaar@oracle.com>
12 years agoscsi/lpfc: Fix bug with driver does not reporting misconfigured ports for Ganymede
Vaios Papadimitriou [Tue, 28 Aug 2012 22:54:20 +0000 (15:54 -0700)]
scsi/lpfc: Fix bug with driver does not reporting misconfigured ports for Ganymede

commit id: 4b8bae08b296a1199ef40f21ea7f4685b2c56ec7

Signed-off-by: Jerry Snitselaar <jerry.snitselaar@oracle.com>
12 years agoscsi/lpfc: Fix System Panic During IO Test using Medusa tool
Vaios Papadimitriou [Tue, 28 Aug 2012 22:53:54 +0000 (15:53 -0700)]
scsi/lpfc: Fix System Panic During IO Test using Medusa tool

commit id: 6b415f5d6c05eb7f4808e98baf539c5dbc53cdbc

Signed-off-by: Jerry Snitselaar <jerry.snitselaar@oracle.com>
12 years agoscsi/lpfc: Fix fcp_imax module parameter to dynamically change FCP EQ delay multiplier
Vaios Papadimitriou [Tue, 28 Aug 2012 22:53:24 +0000 (15:53 -0700)]
scsi/lpfc: Fix fcp_imax module parameter to dynamically change FCP EQ delay multiplier

commit id: 173edbb2c326ce4839bae8caa868fe83ce46dda3

Signed-off-by: Jerry Snitselaar <jerry.snitselaar@oracle.com>
12 years agoscsi/lpfc: Fix successful aborts returning incorrect status
Vaios Papadimitriou [Tue, 28 Aug 2012 22:52:36 +0000 (15:52 -0700)]
scsi/lpfc: Fix successful aborts returning incorrect status

commit id: 3a70730aa06c37d46086ecdbca7107531fe2d2c5

Signed-off-by: Jerry Snitselaar <jerry.snitselaar@oracle.com>
12 years agoscsi/lpfc: Fixed system held-up when performing resource provsion through same PCI...
Vaios Papadimitriou [Tue, 28 Aug 2012 22:51:44 +0000 (15:51 -0700)]
scsi/lpfc: Fixed system held-up when performing resource provsion through same PCI function

commit id: 618a5230b8fa62bc7901b8b754b4379b3fcfa0f9

Signed-off-by: Jerry Snitselaar <jerry.snitselaar@oracle.com>
12 years agoscsi/lpfc: Fixed debug helper routine failed to dump CQ and EQ entries in non-MSI...
Vaios Papadimitriou [Tue, 28 Aug 2012 22:51:06 +0000 (15:51 -0700)]
scsi/lpfc: Fixed debug helper routine failed to dump CQ and EQ entries in non-MSI-X mode

commit id: 3b3da6a974357887c73c5ee61988dbe3a8f62d88

Signed-off-by: Jerry Snitselaar <jerry.snitselaar@oracle.com>
12 years agoscsi/lpfc: Fixed system crash due to not providing SCSI error-handling host reset...
Vaios Papadimitriou [Tue, 28 Aug 2012 22:50:32 +0000 (15:50 -0700)]
scsi/lpfc: Fixed system crash due to not providing SCSI error-handling host reset handler

commit id: 27b01b821f136e657c28078007a865a307816c1a

Signed-off-by: Jerry Snitselaar <jerry.snitselaar@oracle.com>
12 years agoscsi/lpfc: Fix bug with driver using the wrong xritag when sending an els echo
Vaios Papadimitriou [Tue, 28 Aug 2012 22:49:43 +0000 (15:49 -0700)]
scsi/lpfc: Fix bug with driver using the wrong xritag when sending an els echo

commit id: 93d1379e6924daef1968779d97c46ba2e0915fd2

Signed-off-by: Jerry Snitselaar <jerry.snitselaar@oracle.com>
12 years agoscsi/lpfc: Increment capability to dump various SLI4 queues via debug helper routines
Vaios Papadimitriou [Tue, 28 Aug 2012 22:48:48 +0000 (15:48 -0700)]
scsi/lpfc: Increment capability to dump various SLI4 queues via debug helper routines

commit id: 809c75368d94d73c1fb4f1e6e3578ae3b5b72b1c

Signed-off-by: Jerry Snitselaar <jerry.snitselaar@oracle.com>
12 years agoscsi/lpfc: Fix unsol abts xri lookup
Vaios Papadimitriou [Tue, 28 Aug 2012 22:48:00 +0000 (15:48 -0700)]
scsi/lpfc: Fix unsol abts xri lookup

commit id: ee0f4fe17b0fda87c7f4eb3ec6e96ef8291419bd

Signed-off-by: Jerry Snitselaar <jerry.snitselaar@oracle.com>
12 years agoscsi/lpfc: Bug fixes for LPe16000 to LPe16000 discovery (CR 130446)
Vaios Papadimitriou [Tue, 28 Aug 2012 22:47:20 +0000 (15:47 -0700)]
scsi/lpfc: Bug fixes for LPe16000 to LPe16000 discovery (CR 130446)

commit id: 939723a4a680a7863fc95179b1480c5529f31d88

Signed-off-by: Jerry Snitselaar <jerry.snitselaar@oracle.com>
12 years agoscsi/lpfc: Reregister VPI for SLI3 after cable moved to new 8Gb FC Adapter port
Vaios Papadimitriou [Tue, 28 Aug 2012 22:46:46 +0000 (15:46 -0700)]
scsi/lpfc: Reregister VPI for SLI3 after cable moved to new 8Gb FC Adapter port

commit id: 27aa1b73539f2c7118a68c9baaad590d3a92462f

Signed-off-by: Jerry Snitselaar <jerry.snitselaar@oracle.com>
12 years agoscsi/lpfc: Fix driver crash during back-to-back ramp events
Vaios Papadimitriou [Tue, 28 Aug 2012 22:46:21 +0000 (15:46 -0700)]
scsi/lpfc: Fix driver crash during back-to-back ramp events

commit id: 75ad83a452116c00c092bdc4c842c4401cd24080

Signed-off-by: Jerry Snitselaar <jerry.snitselaar@oracle.com>
12 years agoscsi/lpfc: Fix log message 2597 displayed when no error is detected
Vaios Papadimitriou [Tue, 28 Aug 2012 22:45:21 +0000 (15:45 -0700)]
scsi/lpfc: Fix log message 2597 displayed when no error is detected

commit id: cc459f19e32bdc783f9f0ce5c872c1ff399e3e82

Signed-off-by: Jerry Snitselaar <jerry.snitselaar@oracle.com>
12 years agoscsi/lpfc: Address FCP LOG support for Finisar trace correlation
Vaios Papadimitriou [Tue, 28 Aug 2012 22:44:58 +0000 (15:44 -0700)]
scsi/lpfc: Address FCP LOG support for Finisar trace correlation

commit id: 5a0d80fc0dd3c134d42df34e66e0f5fc91261b53

Signed-off-by: Jerry Snitselaar <jerry.snitselaar@oracle.com>
12 years agoscsi/lpfc: Fix kernel panic when going into to sleep state
Vaios Papadimitriou [Tue, 28 Aug 2012 22:44:18 +0000 (15:44 -0700)]
scsi/lpfc: Fix kernel panic when going into to sleep state

commit id: 043c956f50ee9e19a02a681cdf198b0b964cf772

Signed-off-by: Jerry Snitselaar <jerry.snitselaar@oracle.com>
12 years agoscsi/lpfc: Fix error message displayed even when not an error
Vaios Papadimitriou [Tue, 28 Aug 2012 22:43:46 +0000 (15:43 -0700)]
scsi/lpfc: Fix error message displayed even when not an error

commit id: 81378052645b137e9973aa5e5b2bc0ddd69023d8

Signed-off-by: Jerry Snitselaar <jerry.snitselaar@oracle.com>
12 years agoscsi/lpfc: Fix Read Link status data
Vaios Papadimitriou [Tue, 28 Aug 2012 22:43:01 +0000 (15:43 -0700)]
scsi/lpfc: Fix Read Link status data

commit id: 37db57e32bd1b00170fdd38ab36a7f2acdd7557c

Signed-off-by: Jerry Snitselaar <jerry.snitselaar@oracle.com>
12 years agoscsi/lpfc: Fix initiator sending flogi after acking flogi from target
Vaios Papadimitriou [Tue, 28 Aug 2012 22:42:33 +0000 (15:42 -0700)]
scsi/lpfc: Fix initiator sending flogi after acking flogi from target

commit id: e64464391d39b69c950d3645f001eb1af7a8bfd0

Signed-off-by: Jerry Snitselaar <jerry.snitselaar@oracle.com>
12 years agoscsi/lpfc: Fix bug with driver not supporting the get controller attributes command
Vaios Papadimitriou [Tue, 28 Aug 2012 22:41:58 +0000 (15:41 -0700)]
scsi/lpfc: Fix bug with driver not supporting the get controller attributes command

commit id: b99570dd63757834cd0c21e1b117c857af90a04a

Signed-off-by: Jerry Snitselaar <jerry.snitselaar@oracle.com>
12 years agoscsi/lpfc: Incremented capability for handling SLI4-port XRI resource-provisioning...
Vaios Papadimitriou [Tue, 28 Aug 2012 22:41:27 +0000 (15:41 -0700)]
scsi/lpfc: Incremented capability for handling SLI4-port XRI resource-provisioning profile change

commit id: 8a9d2e8003040d2e1cd24ac5e83bb30b68f7f488

Signed-off-by: Jerry Snitselaar <jerry.snitselaar@oracle.com>
12 years agoscsi/lpfc: Sync driver base with upstream code
Vaios Papadimitriou [Tue, 28 Aug 2012 22:41:00 +0000 (15:41 -0700)]
scsi/lpfc: Sync driver base with upstream code

commit id: None

Signed-off-by: Jerry Snitselaar <jerry.snitselaar@oracle.com>
12 years agoscsi/lpfc: Change default DA_ID support from disabled to enabled
Vaios Papadimitriou [Tue, 28 Aug 2012 22:40:30 +0000 (15:40 -0700)]
scsi/lpfc: Change default DA_ID support from disabled to enabled

commit id: cf9712403f384f9e832f489e7f41ab535c8f1a74

Signed-off-by: Jerry Snitselaar <jerry.snitselaar@oracle.com>
12 years agoscsi/lpfc: Fix bug with driver unload leaving a scsi host for a vport around
Vaios Papadimitriou [Tue, 28 Aug 2012 22:39:34 +0000 (15:39 -0700)]
scsi/lpfc: Fix bug with driver unload leaving a scsi host for a vport around

commit id: bdcd2b926192c7f690a9cb4fb2de30eb820983fc

Signed-off-by: Jerry Snitselaar <jerry.snitselaar@oracle.com>
12 years agoscsi/lpfc: Incremented capability for T10 DIF debugfs error injection (CR 123966)
Vaios Papadimitriou [Tue, 28 Aug 2012 22:37:54 +0000 (15:37 -0700)]
scsi/lpfc: Incremented capability for T10 DIF debugfs error injection (CR 123966)

commit id: 4ac9b22625333f9d86c01df702c83d2dfe732131

Signed-off-by: Jerry Snitselaar <jerry.snitselaar@oracle.com>