--- /dev/null
+From f78233dd44a110c574fe760ad6f9c1e8741a0d00 Mon Sep 17 00:00:00 2001
+From: Sachin Prabhu <sprabhu@redhat.com>
+Date: Sat, 13 Mar 2010 09:03:55 -0600
+Subject: 9p: Skip check for mandatory locks when unlocking
+
+From: Sachin Prabhu <sprabhu@redhat.com>
+
+commit f78233dd44a110c574fe760ad6f9c1e8741a0d00 upstream.
+
+While investigating a bug, I came across a possible bug in v9fs. The
+problem is similar to the one reported for NFS by ASANO Masahiro in
+http://lkml.org/lkml/2005/12/21/334.
+
+v9fs_file_lock() will skip locks on file which has mode set to 02666.
+This is a problem in cases where the mode of the file is changed after
+a process has obtained a lock on the file. Such a lock will be skipped
+during unlock and the machine will end up with a BUG in
+locks_remove_flock().
+
+v9fs_file_lock() should skip the check for mandatory locks when
+unlocking a file.
+
+Signed-off-by: Sachin Prabhu <sprabhu@redhat.com>
+Signed-off-by: Eric Van Hensbergen <ericvh@gmail.com>
+Cc: maximilian attems <max@stro.at>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ fs/9p/vfs_file.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/fs/9p/vfs_file.c
++++ b/fs/9p/vfs_file.c
+@@ -114,7 +114,7 @@ static int v9fs_file_lock(struct file *f
+ P9_DPRINTK(P9_DEBUG_VFS, "filp: %p lock: %p\n", filp, fl);
+
+ /* No mandatory locks */
+- if (__mandatory_lock(inode))
++ if (__mandatory_lock(inode) && fl->fl_type != F_UNLCK)
+ return -ENOLCK;
+
+ if ((IS_SETLK(cmd) || IS_SETLKW(cmd)) && fl->fl_type != F_UNLCK) {
--- /dev/null
+From 2bc1c59dbdefdb6f9767e06efb86bbdb2923a8be Mon Sep 17 00:00:00 2001
+From: Mike Christie <michaelc@cs.wisc.edu>
+Date: Thu, 5 Nov 2009 11:18:09 -0600
+Subject: [SCSI] fc class: fail fast bsg requests
+
+From: Mike Christie <michaelc@cs.wisc.edu>
+
+commit 2bc1c59dbdefdb6f9767e06efb86bbdb2923a8be upstream.
+
+If the port state is blocked and the fast io fail tmo has
+fired then this patch will fail bsg requests immediately.
+This is needed if userspace is sending IOs to test the transport
+like with fcping, so it will not have to wait for the dev loss tmo.
+With this patch he bsg req fast io fail code behaves like the normal
+and sg io/passthrough fast io fail.
+
+Signed-off-by: Mike Christie <michaelc@cs.wisc.edu>
+Acked-By: James Smart <james.smart@emulex.com>
+Signed-off-by: James Bottomley <James.Bottomley@suse.de>
+Cc: maximilian attems <max@stro.at>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/scsi/scsi_transport_fc.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+--- a/drivers/scsi/scsi_transport_fc.c
++++ b/drivers/scsi/scsi_transport_fc.c
+@@ -3796,8 +3796,9 @@ fc_bsg_request_handler(struct request_qu
+ return;
+
+ while (!blk_queue_plugged(q)) {
+- if (rport && (rport->port_state == FC_PORTSTATE_BLOCKED))
+- break;
++ if (rport && (rport->port_state == FC_PORTSTATE_BLOCKED) &&
++ !(rport->flags & FC_RPORT_FAST_FAIL_TIMEDOUT))
++ break;
+
+ req = blk_fetch_request(q);
+ if (!req)
--- /dev/null
+From 747d49baaf4e3f4ad5ae77477830da026eeef69d Mon Sep 17 00:00:00 2001
+From: Alexander Duyck <alexander.h.duyck@intel.com>
+Date: Mon, 5 Oct 2009 06:33:27 +0000
+Subject: igb: add support for 82576NS SerDes adapter
+
+From: Alexander Duyck <alexander.h.duyck@intel.com>
+
+commit 747d49baaf4e3f4ad5ae77477830da026eeef69d upstream.
+
+This patch adds the device ID necessary to support the 82576NS SerDes
+adapter.
+
+Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
+Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Cc: maximilian attems <max@stro.at>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/net/igb/e1000_82575.c | 1 +
+ drivers/net/igb/e1000_hw.h | 1 +
+ drivers/net/igb/igb_main.c | 1 +
+ 3 files changed, 3 insertions(+)
+
+--- a/drivers/net/igb/e1000_82575.c
++++ b/drivers/net/igb/e1000_82575.c
+@@ -81,6 +81,7 @@ static s32 igb_get_invariants_82575(stru
+ break;
+ case E1000_DEV_ID_82576:
+ case E1000_DEV_ID_82576_NS:
++ case E1000_DEV_ID_82576_NS_SERDES:
+ case E1000_DEV_ID_82576_FIBER:
+ case E1000_DEV_ID_82576_SERDES:
+ case E1000_DEV_ID_82576_QUAD_COPPER:
+--- a/drivers/net/igb/e1000_hw.h
++++ b/drivers/net/igb/e1000_hw.h
+@@ -42,6 +42,7 @@ struct e1000_hw;
+ #define E1000_DEV_ID_82576_SERDES 0x10E7
+ #define E1000_DEV_ID_82576_QUAD_COPPER 0x10E8
+ #define E1000_DEV_ID_82576_NS 0x150A
++#define E1000_DEV_ID_82576_NS_SERDES 0x1518
+ #define E1000_DEV_ID_82576_SERDES_QUAD 0x150D
+ #define E1000_DEV_ID_82575EB_COPPER 0x10A7
+ #define E1000_DEV_ID_82575EB_FIBER_SERDES 0x10A9
+--- a/drivers/net/igb/igb_main.c
++++ b/drivers/net/igb/igb_main.c
+@@ -63,6 +63,7 @@ static const struct e1000_info *igb_info
+ static struct pci_device_id igb_pci_tbl[] = {
+ { PCI_VDEVICE(INTEL, E1000_DEV_ID_82576), board_82575 },
+ { PCI_VDEVICE(INTEL, E1000_DEV_ID_82576_NS), board_82575 },
++ { PCI_VDEVICE(INTEL, E1000_DEV_ID_82576_NS_SERDES), board_82575 },
+ { PCI_VDEVICE(INTEL, E1000_DEV_ID_82576_FIBER), board_82575 },
+ { PCI_VDEVICE(INTEL, E1000_DEV_ID_82576_SERDES), board_82575 },
+ { PCI_VDEVICE(INTEL, E1000_DEV_ID_82576_SERDES_QUAD), board_82575 },
+++ /dev/null
-From 1cb561f83793191cf86a2db3948d28f5f42df9ff Mon Sep 17 00:00:00 2001
-From: Javier Cardona <javier@cozybit.com>
-Date: Mon, 29 Mar 2010 11:00:20 -0700
-Subject: mac80211: Handle mesh action frames in ieee80211_rx_h_action
-
-From: Javier Cardona <javier@cozybit.com>
-
-commit 1cb561f83793191cf86a2db3948d28f5f42df9ff upstream.
-
-This fixes the problem introduced in commit
-8404080568613d93ad7cf0a16dfb68 which broke mesh peer link establishment.
-
-changes:
-v2 Added missing break (Johannes)
-v3 Broke original patch into two (Johannes)
-
-Signed-off-by: Javier Cardona <javier@cozybit.com>
-Reviewed-by: Johannes Berg <johannes@sipsolutions.net>
-Signed-off-by: John W. Linville <linville@tuxdriver.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-
----
- net/mac80211/mesh.c | 3 ---
- net/mac80211/rx.c | 5 +++++
- 2 files changed, 5 insertions(+), 3 deletions(-)
-
---- a/net/mac80211/mesh.c
-+++ b/net/mac80211/mesh.c
-@@ -704,9 +704,6 @@ ieee80211_mesh_rx_mgmt(struct ieee80211_
-
- switch (fc & IEEE80211_FCTL_STYPE) {
- case IEEE80211_STYPE_ACTION:
-- if (skb->len < IEEE80211_MIN_ACTION_SIZE)
-- return RX_DROP_MONITOR;
-- /* fall through */
- case IEEE80211_STYPE_PROBE_RESP:
- case IEEE80211_STYPE_BEACON:
- skb_queue_tail(&ifmsh->skb_queue, skb);
---- a/net/mac80211/rx.c
-+++ b/net/mac80211/rx.c
-@@ -2038,6 +2038,11 @@ static void ieee80211_invoke_rx_handlers
- case RX_QUEUED:
- I802_DEBUG_INC(sdata->local->rx_handlers_queued);
- break;
-+ case MESH_PLINK_CATEGORY:
-+ case MESH_PATH_SEL_CATEGORY:
-+ if (ieee80211_vif_is_mesh(&sdata->vif))
-+ return ieee80211_mesh_rx_mgmt(sdata, rx->skb);
-+ break;
- }
- }
-
--- /dev/null
+From 78c37eb0d5e6a9727b12ea0f1821795ffaa66cfe Mon Sep 17 00:00:00 2001
+From: Tao Ma <tao.ma@oracle.com>
+Date: Wed, 3 Mar 2010 11:26:27 +0800
+Subject: ocfs2: Change bg_chain check for ocfs2_validate_gd_parent.
+
+From: Tao Ma <tao.ma@oracle.com>
+
+commit 78c37eb0d5e6a9727b12ea0f1821795ffaa66cfe upstream.
+
+In ocfs2_validate_gd_parent, we check bg_chain against the
+cl_next_free_rec of the dinode. Actually in resize, we have
+the chance of bg_chain == cl_next_free_rec. So add some
+additional condition check for it.
+
+I also rename paramter "clean_error" to "resize", since the
+old one is not clearly enough to indicate that we should only
+meet with this case in resize.
+
+btw, the correpsonding bug is
+http://oss.oracle.com/bugzilla/show_bug.cgi?id=1230.
+
+Signed-off-by: Tao Ma <tao.ma@oracle.com>
+Signed-off-by: Joel Becker <joel.becker@oracle.com>
+Cc: maximilian attems <max@stro.at>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ fs/ocfs2/suballoc.c | 13 ++++++++-----
+ 1 file changed, 8 insertions(+), 5 deletions(-)
+
+--- a/fs/ocfs2/suballoc.c
++++ b/fs/ocfs2/suballoc.c
+@@ -152,7 +152,7 @@ static u32 ocfs2_bits_per_group(struct o
+
+ #define do_error(fmt, ...) \
+ do{ \
+- if (clean_error) \
++ if (resize) \
+ mlog(ML_ERROR, fmt "\n", ##__VA_ARGS__); \
+ else \
+ ocfs2_error(sb, fmt, ##__VA_ARGS__); \
+@@ -160,7 +160,7 @@ static u32 ocfs2_bits_per_group(struct o
+
+ static int ocfs2_validate_gd_self(struct super_block *sb,
+ struct buffer_head *bh,
+- int clean_error)
++ int resize)
+ {
+ struct ocfs2_group_desc *gd = (struct ocfs2_group_desc *)bh->b_data;
+
+@@ -211,7 +211,7 @@ static int ocfs2_validate_gd_self(struct
+ static int ocfs2_validate_gd_parent(struct super_block *sb,
+ struct ocfs2_dinode *di,
+ struct buffer_head *bh,
+- int clean_error)
++ int resize)
+ {
+ unsigned int max_bits;
+ struct ocfs2_group_desc *gd = (struct ocfs2_group_desc *)bh->b_data;
+@@ -233,8 +233,11 @@ static int ocfs2_validate_gd_parent(stru
+ return -EINVAL;
+ }
+
+- if (le16_to_cpu(gd->bg_chain) >=
+- le16_to_cpu(di->id2.i_chain.cl_next_free_rec)) {
++ /* In resize, we may meet the case bg_chain == cl_next_free_rec. */
++ if ((le16_to_cpu(gd->bg_chain) >
++ le16_to_cpu(di->id2.i_chain.cl_next_free_rec)) ||
++ ((le16_to_cpu(gd->bg_chain) ==
++ le16_to_cpu(di->id2.i_chain.cl_next_free_rec)) && !resize)) {
+ do_error("Group descriptor #%llu has bad chain %u",
+ (unsigned long long)bh->b_blocknr,
+ le16_to_cpu(gd->bg_chain));
--- /dev/null
+From fcefd25ac89239cb57fa198f125a79ff85468c75 Mon Sep 17 00:00:00 2001
+From: Mark Fasheh <mfasheh@suse.com>
+Date: Mon, 15 Mar 2010 15:39:00 -0700
+Subject: ocfs2: set i_mode on disk during acl operations
+
+From: Mark Fasheh <mfasheh@suse.com>
+
+commit fcefd25ac89239cb57fa198f125a79ff85468c75 upstream.
+
+ocfs2_set_acl() and ocfs2_init_acl() were setting i_mode on the in-memory
+inode, but never setting it on the disk copy. Thus, acls were some times not
+getting propagated between nodes. This patch fixes the issue by adding a
+helper function ocfs2_acl_set_mode() which does this the right way.
+ocfs2_set_acl() and ocfs2_init_acl() are then updated to call
+ocfs2_acl_set_mode().
+
+Signed-off-by: Mark Fasheh <mfasheh@suse.com>
+Signed-off-by: Joel Becker <joel.becker@oracle.com>
+Cc: maximilian attems <max@stro.at>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ fs/ocfs2/acl.c | 77 +++++++++++++++++++++++++++++++++++++++++++++++++++++----
+ 1 file changed, 72 insertions(+), 5 deletions(-)
+
+--- a/fs/ocfs2/acl.c
++++ b/fs/ocfs2/acl.c
+@@ -30,6 +30,8 @@
+ #include "alloc.h"
+ #include "dlmglue.h"
+ #include "file.h"
++#include "inode.h"
++#include "journal.h"
+ #include "ocfs2_fs.h"
+
+ #include "xattr.h"
+@@ -170,6 +172,60 @@ static struct posix_acl *ocfs2_get_acl(s
+ }
+
+ /*
++ * Helper function to set i_mode in memory and disk. Some call paths
++ * will not have di_bh or a journal handle to pass, in which case it
++ * will create it's own.
++ */
++static int ocfs2_acl_set_mode(struct inode *inode, struct buffer_head *di_bh,
++ handle_t *handle, umode_t new_mode)
++{
++ int ret, commit_handle = 0;
++ struct ocfs2_dinode *di;
++
++ if (di_bh == NULL) {
++ ret = ocfs2_read_inode_block(inode, &di_bh);
++ if (ret) {
++ mlog_errno(ret);
++ goto out;
++ }
++ } else
++ get_bh(di_bh);
++
++ if (handle == NULL) {
++ handle = ocfs2_start_trans(OCFS2_SB(inode->i_sb),
++ OCFS2_INODE_UPDATE_CREDITS);
++ if (IS_ERR(handle)) {
++ ret = PTR_ERR(handle);
++ mlog_errno(ret);
++ goto out_brelse;
++ }
++
++ commit_handle = 1;
++ }
++
++ di = (struct ocfs2_dinode *)di_bh->b_data;
++ ret = ocfs2_journal_access_di(handle, INODE_CACHE(inode), di_bh,
++ OCFS2_JOURNAL_ACCESS_WRITE);
++ if (ret) {
++ mlog_errno(ret);
++ goto out_commit;
++ }
++
++ inode->i_mode = new_mode;
++ di->i_mode = cpu_to_le16(inode->i_mode);
++
++ ocfs2_journal_dirty(handle, di_bh);
++
++out_commit:
++ if (commit_handle)
++ ocfs2_commit_trans(OCFS2_SB(inode->i_sb), handle);
++out_brelse:
++ brelse(di_bh);
++out:
++ return ret;
++}
++
++/*
+ * Set the access or default ACL of an inode.
+ */
+ static int ocfs2_set_acl(handle_t *handle,
+@@ -197,9 +253,14 @@ static int ocfs2_set_acl(handle_t *handl
+ if (ret < 0)
+ return ret;
+ else {
+- inode->i_mode = mode;
+ if (ret == 0)
+ acl = NULL;
++
++ ret = ocfs2_acl_set_mode(inode, di_bh,
++ handle, mode);
++ if (ret)
++ return ret;
++
+ }
+ }
+ break;
+@@ -287,6 +348,7 @@ int ocfs2_init_acl(handle_t *handle,
+ struct ocfs2_super *osb = OCFS2_SB(inode->i_sb);
+ struct posix_acl *acl = NULL;
+ int ret = 0;
++ mode_t mode;
+
+ if (!S_ISLNK(inode->i_mode)) {
+ if (osb->s_mount_opt & OCFS2_MOUNT_POSIX_ACL) {
+@@ -295,12 +357,17 @@ int ocfs2_init_acl(handle_t *handle,
+ if (IS_ERR(acl))
+ return PTR_ERR(acl);
+ }
+- if (!acl)
+- inode->i_mode &= ~current_umask();
++ if (!acl) {
++ mode = inode->i_mode & ~current_umask();
++ ret = ocfs2_acl_set_mode(inode, di_bh, handle, mode);
++ if (ret) {
++ mlog_errno(ret);
++ goto cleanup;
++ }
++ }
+ }
+ if ((osb->s_mount_opt & OCFS2_MOUNT_POSIX_ACL) && acl) {
+ struct posix_acl *clone;
+- mode_t mode;
+
+ if (S_ISDIR(inode->i_mode)) {
+ ret = ocfs2_set_acl(handle, inode, di_bh,
+@@ -317,7 +384,7 @@ int ocfs2_init_acl(handle_t *handle,
+ mode = inode->i_mode;
+ ret = posix_acl_create_masq(clone, &mode);
+ if (ret >= 0) {
+- inode->i_mode = mode;
++ ret = ocfs2_acl_set_mode(inode, di_bh, handle, mode);
+ if (ret > 0) {
+ ret = ocfs2_set_acl(handle, inode,
+ di_bh, ACL_TYPE_ACCESS,
--- /dev/null
+From b49bfd32901625e4adcfee011d2b32a43b4db67d Mon Sep 17 00:00:00 2001
+From: Youquan,Song <youquan.song@linux.intel.com>
+Date: Thu, 17 Dec 2009 08:22:48 -0500
+Subject: PCIe AER: prevent AER injection if hardware masks error reporting
+
+From: Youquan,Song <youquan.song@linux.intel.com>
+
+commit b49bfd32901625e4adcfee011d2b32a43b4db67d upstream.
+
+The Correcteable/Uncorrectable Error Mask Registers are used by PCIe AER
+driver which will controls the reporting of individual errors to PCIe RC
+via PCIe error messages.
+
+If hardware masks special error reporting to RC, the aer_inject driver
+should not inject aer error.
+
+Acked-by: Andi Kleen <ak@linux.intel.com>
+Signed-off-by: Youquan, Song <youquan.song@intel.com>
+Acked-by: Ying, Huang <ying.huang@intel.com>
+Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
+Cc: maximilian attems <max@stro.at>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/pci/pcie/aer/aer_inject.c | 20 +++++++++++++++++++-
+ 1 file changed, 19 insertions(+), 1 deletion(-)
+
+--- a/drivers/pci/pcie/aer/aer_inject.c
++++ b/drivers/pci/pcie/aer/aer_inject.c
+@@ -302,7 +302,7 @@ static int aer_inject(struct aer_error_i
+ unsigned long flags;
+ unsigned int devfn = PCI_DEVFN(einj->dev, einj->fn);
+ int pos_cap_err, rp_pos_cap_err;
+- u32 sever;
++ u32 sever, mask;
+ int ret = 0;
+
+ dev = pci_get_bus_and_slot(einj->bus, devfn);
+@@ -354,6 +354,24 @@ static int aer_inject(struct aer_error_i
+ err->header_log2 = einj->header_log2;
+ err->header_log3 = einj->header_log3;
+
++ pci_read_config_dword(dev, pos_cap_err + PCI_ERR_COR_MASK, &mask);
++ if (einj->cor_status && !(einj->cor_status & ~mask)) {
++ ret = -EINVAL;
++ printk(KERN_WARNING "The correctable error(s) is masked "
++ "by device\n");
++ spin_unlock_irqrestore(&inject_lock, flags);
++ goto out_put;
++ }
++
++ pci_read_config_dword(dev, pos_cap_err + PCI_ERR_UNCOR_MASK, &mask);
++ if (einj->uncor_status && !(einj->uncor_status & ~mask)) {
++ ret = -EINVAL;
++ printk(KERN_WARNING "The uncorrectable error(s) is masked "
++ "by device\n");
++ spin_unlock_irqrestore(&inject_lock, flags);
++ goto out_put;
++ }
++
+ rperr = __find_aer_error_by_dev(rpdev);
+ if (!rperr) {
+ rperr = rperr_alloc;
--- /dev/null
+From 3f9daedfcb197d784c6e7ecd731e3aa9859bc951 Mon Sep 17 00:00:00 2001
+From: Mike Christie <michaelc@cs.wisc.edu>
+Date: Thu, 5 Nov 2009 11:37:28 -0600
+Subject: SCSI: add scsi target reset support to scsi ioctl
+
+From: Mike Christie <michaelc@cs.wisc.edu>
+
+commit 3f9daedfcb197d784c6e7ecd731e3aa9859bc951 upstream.
+
+The scsi ioctl code path was missing scsi target reset
+support. This patch just adds it.
+
+Signed-off-by: Mike Christie <michaelc@cs.wisc.edu>
+Signed-off-by: James Bottomley <James.Bottomley@suse.de>
+Cc: maximilian attems <max@stro.at>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/scsi/scsi_ioctl.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+--- a/drivers/scsi/scsi_ioctl.c
++++ b/drivers/scsi/scsi_ioctl.c
+@@ -308,6 +308,9 @@ int scsi_nonblockable_ioctl(struct scsi_
+ case SG_SCSI_RESET_DEVICE:
+ val = SCSI_TRY_RESET_DEVICE;
+ break;
++ case SG_SCSI_RESET_TARGET:
++ val = SCSI_TRY_RESET_TARGET;
++ break;
+ case SG_SCSI_RESET_BUS:
+ val = SCSI_TRY_RESET_BUS;
+ break;
--- /dev/null
+From eda05a28ec52be40086400a1b606d211276f0e41 Mon Sep 17 00:00:00 2001
+From: Harish Zunjarrao <harish.zunjarrao@qlogic.com>
+Date: Tue, 12 Jan 2010 12:59:50 -0800
+Subject: SCSI: fc-transport: Use packed modifier for fc_bsg_request structure.
+
+From: Harish Zunjarrao <harish.zunjarrao@qlogic.com>
+
+commit eda05a28ec52be40086400a1b606d211276f0e41 upstream.
+
+The 32bit kernel does not add padding bytes in the fc_bsg_request structure
+whereas the 64bit kernel adds padding bytes in the fc_bsg_request structure.
+Due to this, structure elements gets mismatched with 32bit application and
+64bit kernel.To resolve this, used packed modifier to avoid adding padding bytes.
+Signed-off-by: Giridhar Malavali <giridhar.malavali@qlogic.com>
+Signed-off-by: James Bottomley <James.Bottomley@suse.de>
+Cc: maximilian attems <max@stro.at>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ include/scsi/scsi_bsg_fc.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/include/scsi/scsi_bsg_fc.h
++++ b/include/scsi/scsi_bsg_fc.h
+@@ -292,7 +292,7 @@ struct fc_bsg_request {
+ struct fc_bsg_rport_els r_els;
+ struct fc_bsg_rport_ct r_ct;
+ } rqst_data;
+-};
++} __attribute__((packed));
+
+
+ /* response (request sense data) structure of the sg_io_v4 */
cifs-fix-a-kernel-bug-with-remote-os-2-server-try-3.patch
cifs-initialize-nbytes-at-the-beginning-of-cifssmbwrite.patch
iwlwifi-need-check-for-valid-qos-packet-before-free.patch
-mac80211-handle-mesh-action-frames-in-ieee80211_rx_h_action.patch
arm-6031-1-fix-thumb-2-decompressor.patch
drm-edid-quirks-envision-en2028.patch
drm-radeon-r300-ad-only-has-one-quad-pipe.patch
quota-fix-possible-dq_flags-corruption.patch
staging-comedi-fix-usbdux-timeout-bug.patch
staging-comedi-usbdux.c-fix-locking-up-of-the-driver-when-the-comedi-ringbuffer-runs-empty.patch
+ocfs2-set-i_mode-on-disk-during-acl-operations.patch
+ocfs2-change-bg_chain-check-for-ocfs2_validate_gd_parent.patch
+9p-skip-check-for-mandatory-locks-when-unlocking.patch
+fc-class-fail-fast-bsg-requests.patch
+scsi-add-scsi-target-reset-support-to-scsi-ioctl.patch
+igb-add-support-for-82576ns-serdes-adapter.patch
+pcie-aer-prevent-aer-injection-if-hardware-masks-error-reporting.patch
+vgaarb-fix-vga-arbiter-to-accept-pci-domains-other-than-0.patch
+scsi-fc-transport-use-packed-modifier-for-fc_bsg_request-structure.patch
--- /dev/null
+From 773a38dbdad03474c5ee235f7d9bf9f51c9e3c2b Mon Sep 17 00:00:00 2001
+From: Mike Travis <travis@sgi.com>
+Date: Tue, 2 Feb 2010 14:38:15 -0800
+Subject: vgaarb: Fix VGA arbiter to accept PCI domains other than 0
+
+From: Mike Travis <travis@sgi.com>
+
+commit 773a38dbdad03474c5ee235f7d9bf9f51c9e3c2b upstream.
+
+Update the VGA Arbiter to accept PCI Domains other than 0.
+
+Signed-off-by: Mike Travis <travis@sgi.com>
+LKML-Reference: <201002022238.o12McFe8018730@imap1.linux-foundation.org>
+Cc: Thomas Gleixner <tglx@linutronix.de>
+Cc: Robin Holt <holt@sgi.com>
+Cc: Jack Steiner <steiner@sgi.com>
+Cc: Ingo Molnar <mingo@elte.hu>
+Cc: Jesse Barnes <jbarnes@virtuousgeek.org>
+Cc: David Airlie <airlied@linux.ie>
+Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
+Signed-off-by: H. Peter Anvin <hpa@zytor.com>
+Cc: maximilian attems <max@stro.at>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/gpu/vga/vgaarb.c | 23 +++++++++++++++++++----
+ 1 file changed, 19 insertions(+), 4 deletions(-)
+
+--- a/drivers/gpu/vga/vgaarb.c
++++ b/drivers/gpu/vga/vgaarb.c
+@@ -954,6 +954,7 @@ static ssize_t vga_arb_write(struct file
+ }
+
+ } else if (strncmp(curr_pos, "target ", 7) == 0) {
++ struct pci_bus *pbus;
+ unsigned int domain, bus, devfn;
+ struct vga_device *vgadev;
+
+@@ -969,18 +970,31 @@ static ssize_t vga_arb_write(struct file
+ ret_val = -EPROTO;
+ goto done;
+ }
++ pr_devel("vgaarb: %s ==> %x:%x:%x.%x\n", curr_pos,
++ domain, bus, PCI_SLOT(devfn), PCI_FUNC(devfn));
+
+- pdev = pci_get_bus_and_slot(bus, devfn);
++ pbus = pci_find_bus(domain, bus);
++ pr_devel("vgaarb: pbus %p\n", pbus);
++ if (pbus == NULL) {
++ pr_err("vgaarb: invalid PCI domain and/or bus address %x:%x\n",
++ domain, bus);
++ ret_val = -ENODEV;
++ goto done;
++ }
++ pdev = pci_get_slot(pbus, devfn);
++ pr_devel("vgaarb: pdev %p\n", pdev);
+ if (!pdev) {
+- pr_info("vgaarb: invalid PCI address!\n");
++ pr_err("vgaarb: invalid PCI address %x:%x\n",
++ bus, devfn);
+ ret_val = -ENODEV;
+ goto done;
+ }
+ }
+
+ vgadev = vgadev_find(pdev);
++ pr_devel("vgaarb: vgadev %p\n", vgadev);
+ if (vgadev == NULL) {
+- pr_info("vgaarb: this pci device is not a vga device\n");
++ pr_err("vgaarb: this pci device is not a vga device\n");
+ pci_dev_put(pdev);
+ ret_val = -ENODEV;
+ goto done;
+@@ -998,7 +1012,8 @@ static ssize_t vga_arb_write(struct file
+ }
+ }
+ if (i == MAX_USER_CARDS) {
+- pr_err("vgaarb: maximum user cards number reached!\n");
++ pr_err("vgaarb: maximum user cards (%d) number reached!\n",
++ MAX_USER_CARDS);
+ pci_dev_put(pdev);
+ /* XXX: which value to return? */
+ ret_val = -ENOMEM;