From: Bjorn Helgaas Date: Thu, 13 Sep 2012 21:54:57 +0000 (-0600) Subject: Merge commit 'v3.6-rc5' into pci/gavin-window-alignment X-Git-Url: http://drtracing.org/?a=commitdiff_plain;h=9a5d5bd8480068c5829e3d997ee21dab9b3ed05f;p=deliverable%2Flinux.git Merge commit 'v3.6-rc5' into pci/gavin-window-alignment * commit 'v3.6-rc5': (1098 commits) Linux 3.6-rc5 HID: tpkbd: work even if the new Lenovo Keyboard driver is not configured Remove user-triggerable BUG from mpol_to_str xen/pciback: Fix proper FLR steps. uml: fix compile error in deliver_alarm() dj: memory scribble in logi_dj Fix order of arguments to compat_put_time[spec|val] xen: Use correct masking in xen_swiotlb_alloc_coherent. xen: fix logical error in tlb flushing xen/p2m: Fix one-off error in checking the P2M tree directory. powerpc: Don't use __put_user() in patch_instruction powerpc: Make sure IPI handlers see data written by IPI senders powerpc: Restore correct DSCR in context switch powerpc: Fix DSCR inheritance in copy_thread() powerpc: Keep thread.dscr and thread.dscr_inherit in sync powerpc: Update DSCR on all CPUs when writing sysfs dscr_default powerpc/powernv: Always go into nap mode when CPU is offline powerpc: Give hypervisor decrementer interrupts their own handler powerpc/vphn: Fix arch_update_cpu_topology() return value ARM: gemini: fix the gemini build ... Conflicts: drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c drivers/rapidio/devices/tsi721.c --- 9a5d5bd8480068c5829e3d997ee21dab9b3ed05f diff --cc drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c index 281cf3f7bc20,21054987257a..605c4574d32d --- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c +++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c @@@ -9378,28 -9372,29 +9366,25 @@@ static int __devinit bnx2x_prev_mark_pa return rc; } - static bool __devinit bnx2x_can_flr(struct bnx2x *bp) - { - u32 cap; - struct pci_dev *dev = bp->pdev; - - pcie_capability_read_dword(dev, PCI_EXP_DEVCAP, &cap); - if (!(cap & PCI_EXP_DEVCAP_FLR)) - return false; - - return true; - } - static int __devinit bnx2x_do_flr(struct bnx2x *bp) { - int i, pos; + int i; u16 status; struct pci_dev *dev = bp->pdev; - /* probe the capability first */ - if (bnx2x_can_flr(bp)) - return -ENOTTY; + + if (CHIP_IS_E1x(bp)) { + BNX2X_DEV_INFO("FLR not supported in E1/E1H\n"); + return -EINVAL; + } + + /* only bootcode REQ_BC_VER_4_INITIATE_FLR and onwards support flr */ + if (bp->common.bc_ver < REQ_BC_VER_4_INITIATE_FLR) { + BNX2X_ERR("FLR not supported by BC_VER: 0x%x\n", + bp->common.bc_ver); + return -EINVAL; + } - pos = pci_pcie_cap(dev); - if (!pos) - return -ENOTTY; - /* Wait for Transaction Pending bit clean */ for (i = 0; i < 4; i++) { if (i) diff --cc drivers/rapidio/devices/tsi721.c index fc22b93e0924,5d44252b7342..d5e1625bbac2 --- a/drivers/rapidio/devices/tsi721.c +++ b/drivers/rapidio/devices/tsi721.c @@@ -2212,8 -2219,9 +2219,7 @@@ static int __devinit tsi721_probe(struc const struct pci_device_id *id) { struct tsi721_device *priv; - int i; - int cap; int err; - u32 regval; priv = kzalloc(sizeof(struct tsi721_device), GFP_KERNEL); if (priv == NULL) {