aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2010-07-08powerpc: Fix logic error in fixup_irqsJohannes Berg1-1/+4
When SPARSE_IRQ is set, irq_to_desc() can return NULL. While the code here has a check for NULL, it's not really correct. Fix it by separating the check for it. This fixes CPU hot unplug for me. Reported-by: Alastair Bridgewater <[email protected]> Cc: [email protected] [2.6.32+] Signed-off-by: Johannes Berg <[email protected]> Signed-off-by: Benjamin Herrenschmidt <[email protected]>
2010-07-08powerpc/iseries: Fix possible null pointer dereference in ↵Denis Kirjanov1-1/+5
iSeries_pcibios_fixup_resources I don't know if this is a right fix for the problem since of_get_property can return NULL. Since iseries_device_information is used only for informational purpose, we can skip this function without valid HvSubBusNumber number. Signed-off-by: Denis Kirjanov <[email protected]> Signed-off-by: Benjamin Herrenschmidt <[email protected]>
2010-07-08powerpc: Linux cannot run with 0 coresAnton Blanchard1-1/+1
If we configure with CONFIG_SMP=n or set NR_CPUS less than the number of SMT threads we will set the max cores property to 0 in the ibm,client-architecture-support structure. On new versions of firmware that understand this property it obliges and terminates our partition. Use DIV_ROUND_UP so we handle not only the CONFIG_SMP=n case but also the case where NR_CPUS isn't a multiple of the number of SMT threads. Signed-off-by: Anton Blanchard <[email protected]> Acked-by: Paul E. McKenney <[email protected]> Signed-off-by: Benjamin Herrenschmidt <[email protected]>
2010-07-08powerpc: Fix feature-fixup tests for gcc 4.5Stephen Rothwell1-8/+9
The feature-fixup test declare some extern void variables and then take their addresses. Fix this by declaring them as extern u8 instead. Fixes these warnings (treated as errors): CC arch/powerpc/lib/feature-fixups.o cc1: warnings being treated as errors arch/powerpc/lib/feature-fixups.c: In function 'test_cpu_macros': arch/powerpc/lib/feature-fixups.c:293:23: error: taking address of expression of type 'void' arch/powerpc/lib/feature-fixups.c:294:9: error: taking address of expression of type 'void' arch/powerpc/lib/feature-fixups.c:297:2: error: taking address of expression of type 'void' arch/powerpc/lib/feature-fixups.c:297:2: error: taking address of expression of type 'void' arch/powerpc/lib/feature-fixups.c: In function 'test_fw_macros': arch/powerpc/lib/feature-fixups.c:306:23: error: taking address of expression of type 'void' arch/powerpc/lib/feature-fixups.c:307:9: error: taking address of expression of type 'void' arch/powerpc/lib/feature-fixups.c:310:2: error: taking address of expression of type 'void' arch/powerpc/lib/feature-fixups.c:310:2: error: taking address of expression of type 'void' arch/powerpc/lib/feature-fixups.c: In function 'test_lwsync_macros': arch/powerpc/lib/feature-fixups.c:321:23: error: taking address of expression of type 'void' arch/powerpc/lib/feature-fixups.c:322:9: error: taking address of expression of type 'void' arch/powerpc/lib/feature-fixups.c:326:3: error: taking address of expression of type 'void' arch/powerpc/lib/feature-fixups.c:326:3: error: taking address of expression of type 'void' arch/powerpc/lib/feature-fixups.c:329:3: error: taking address of expression of type 'void' arch/powerpc/lib/feature-fixups.c:329:3: error: taking address of expression of type 'void' Signed-off-by: Stephen Rothwell <[email protected]> Signed-off-by: Benjamin Herrenschmidt <[email protected]>
2010-07-08powerpc: Disable SPARSE_IRQ by defaultYang Li1-2/+2
The SPARSE_IRQ considerably adds overhead to critical path of IRQ handling. However it doesn't benefit much in space for most systems with limited IRQ_NR. Should be disabled unless really necessary. Signed-off-by: Li Yang <[email protected]> Signed-off-by: Benjamin Herrenschmidt <[email protected]>
2010-07-08powerpc: Fix compile errors in prom_init_check for gcc 4.5Stephen Rothwell1-0/+6
Just whitelist these extra compiler generated symbols. Fixes these errors: Error: External symbol '_restgpr0_14' referenced from prom_init.c Error: External symbol '_restgpr0_20' referenced from prom_init.c Error: External symbol '_restgpr0_22' referenced from prom_init.c Error: External symbol '_restgpr0_24' referenced from prom_init.c Error: External symbol '_restgpr0_25' referenced from prom_init.c Error: External symbol '_restgpr0_26' referenced from prom_init.c Error: External symbol '_restgpr0_27' referenced from prom_init.c Error: External symbol '_restgpr0_28' referenced from prom_init.c Error: External symbol '_restgpr0_29' referenced from prom_init.c Error: External symbol '_restgpr0_31' referenced from prom_init.c Error: External symbol '_savegpr0_14' referenced from prom_init.c Error: External symbol '_savegpr0_20' referenced from prom_init.c Error: External symbol '_savegpr0_22' referenced from prom_init.c Error: External symbol '_savegpr0_24' referenced from prom_init.c Error: External symbol '_savegpr0_25' referenced from prom_init.c Error: External symbol '_savegpr0_26' referenced from prom_init.c Error: External symbol '_savegpr0_27' referenced from prom_init.c Error: External symbol '_savegpr0_28' referenced from prom_init.c Error: External symbol '_savegpr0_29' referenced from prom_init.c Error: External symbol '_savegpr0_31' referenced from prom_init.c Signed-off-by: Stephen Rothwell <[email protected]> Acked-by: Segher Boessenkool <[email protected]> Signed-off-by: Benjamin Herrenschmidt <[email protected]>
2010-07-08powerpc: Fix module building for gcc 4.5 and 64 bitStephen Rothwell4-4/+138
Gcc 4.5 is now generating out of line register save and restore in the function prefix and postfix when we use -Os. Signed-off-by: Stephen Rothwell <[email protected]> Signed-off-by: Benjamin Herrenschmidt <[email protected]>
2010-07-08powerpc/perf_event: Fix for power_pmu_disable()Matt Evans1-1/+4
When power_pmu_disable() removes the given event from a particular index into cpuhw->event[], it shuffles down higher event[] entries. But, this array is paired with cpuhw->events[] and cpuhw->flags[] so should shuffle them similarly. If these arrays get out of sync, code such as power_check_constraints() will fail. This caused a bug where events were temporarily disabled and then failed to be re-enabled; subsequent code tried to write_pmc() with its (disabled) idx of 0, causing a message "oops trying to write PMC0". This triggers this bug on POWER7, running a miss-heavy test: perf record -e L1-dcache-load-misses -e L1-dcache-store-misses ./misstest Signed-off-by: Matt Evans <[email protected]> Acked-by: Paul Mackerras <[email protected]> Signed-off-by: Benjamin Herrenschmidt <[email protected]>
2010-07-08perf: Sync callchains with period based hitsFrederic Weisbecker3-19/+20
Hists have their hits increased by the event period. And this period based counting is the foundation of all the stats in perf report. But callchains still use the raw number of hits, without taking the period into account. So when we compute the percentage, absolute based percentages are totally broken, and relative ones too in the first parent level. Because we pass the number of events muliplied by their period as the total number of hits to the callchain filtering, while callchains expect this number to be the number of raw hits. perf report -g graph was simply not working, showing no graph unless the min percent was zero. And even there the percentage of the branches was always 0. And may be fractal filtering was broken on the first branch level too. flat also was broken, but it was hidden because of other breakages. Anyway fix this by counting using periods on callchains. Signed-off-by: Frederic Weisbecker <[email protected]> Cc: Ingo Molnar <[email protected]> Cc: Peter Zijlstra <[email protected]> Cc: Arnaldo Carvalho de Melo <[email protected]> Cc: Paul Mackerras <[email protected]>
2010-07-08perf: Resurrect flat callchainsFrederic Weisbecker1-0/+3
Initialize the callchain radix tree root correctly. When we walk through the parents, we must stop after the root, but since it wasn't well initialized, its parent pointer was random. Also the number of hits was random because uninitialized, hence it was part of the callchain while the root doesn't contain anything. This fixes segfaults and percentages followed by empty callchains while running: perf report -g flat Reported-by: Ingo Molnar <[email protected]> Signed-off-by: Frederic Weisbecker <[email protected]> Cc: Peter Zijlstra <[email protected]> Cc: Arnaldo Carvalho de Melo <[email protected]> Cc: Paul Mackerras <[email protected]> Cc: 2.6.31.x-2.6.34.x <[email protected]>
2010-07-07Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6Linus Torvalds36-189/+332
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (35 commits) NET: SB1250: Initialize .owner vxge: show startup message with KERN_INFO ll_temac: Fix missing iounmaps bridge: Clear IPCB before possible entry into IP stack bridge br_multicast: BUG: unable to handle kernel NULL pointer dereference net: Fix definition of netif_vdbg() when VERBOSE_DEBUG is defined net/ne: fix memory leak in ne_drv_probe() xfrm: fix xfrm by MARK logic virtio_net: fix oom handling on tx virtio_net: do not reschedule rx refill forever s2io: resolve statistics issues linux/net.h: fix kernel-doc warnings net: decreasing real_num_tx_queues needs to flush qdisc sched: qdisc_reset_all_tx is calling qdisc_reset without qdisc_lock qlge: fix a eeh handler to not add a pending timer qlge: Replacing add_timer() to mod_timer() usbnet: Set parent device early for netdev_printk() net: Revert "rndis_host: Poll status channel before control channel" netfilter: ip6t_REJECT: fix a dst leak in ipv6 REJECT drivers: bluetooth: bluecard_cs.c: Fixed include error, changed to linux/io.h ...
2010-07-07input: i8042 - add runtime check in x86's i8042_platform_initFeng Tang1-0/+10
Then it will first check x86_platforms's i8042 detection result, then go on with normal probe. Signed-off-by: Feng Tang <[email protected]> LKML-Reference: <[email protected]> Signed-off-by: Tony Luck <[email protected]> Acked-by: Dmitry Torokhov <[email protected]> Signed-off-by: H. Peter Anvin <[email protected]>
2010-07-07Revert "Input: fixup X86_MRST selects"Feng Tang2-2/+2
This reverts commit 0b28bac5aef7bd1ab213723df031e61db9ff151a. After adding x86_platform's detection for i8042 controller, we don't need the force dependency on !X86_MRST any more Cc: Randy Dunlap <[email protected]> Signed-off-by: Feng Tang <[email protected]> LKML-Reference: <[email protected]> Acked-by: Dmitry Torokhov <[email protected]> Signed-off-by: H. Peter Anvin <[email protected]>
2010-07-07Revert "Input: do not force selecting i8042 on Moorestown"Feng Tang2-2/+2
This reverts commit 685afae02557a178185a4be36f58332976e79f63. After adding x86_platform's detection for i8042 controller, we don't need the force dependency on !X86_MRST any more Cc: Jacob Pan <[email protected]> Signed-off-by: Feng Tang <[email protected]> LKML-Reference: <[email protected]> Acked-by: Dmitry Torokhov <[email protected]> Signed-off-by: H. Peter Anvin <[email protected]>
2010-07-07x86, mrst: Add i8042_detect API for Moorestwon platformFeng Tang1-0/+7
It will just return 0 as there is no i8042 controller Signed-off-by: Feng Tang <[email protected]> LKML-Reference: <[email protected]> Acked-by: Dmitry Torokhov <[email protected]> Signed-off-by: H. Peter Anvin <[email protected]>
2010-07-07x86: Add i8042 pre-detection hook to x86_platform_opsFeng Tang2-1/+5
Some x86 platforms like Intel MID platforms don't have i8042 controllers, and i8042 driver's probe to some legacy IO ports may hang the MID processor. With this hook, i8042 driver can runtime check and skip the probe when the pretection fail which also saves some probe time [ hpa note: this is currently a compile-time check, which breaks the i386 allyesconfig build. This patch series thus does fix a regression. ] Signed-off-by: Feng Tang <[email protected]> LKML-Reference: <[email protected]> Acked-by: Dmitry Torokhov <[email protected]> Signed-off-by: H. Peter Anvin <[email protected]>
2010-07-07x86, platform: Export x86_platform to modulesH. Peter Anvin1-0/+3
Export x86_platform to modules in preparation of using it for i8042 discovery control. Signed-off-by: H. Peter Anvin <[email protected]> LKML-Reference: <[email protected]> Cc: Thomas Gleixner <[email protected]> Cc: Feng Tang <[email protected]> Cc: Dmitry Torokhov <[email protected]>
2010-07-07NET: SB1250: Initialize .ownerRalf Baechle1-0/+1
Signed-off-by: Ralf Baechle <[email protected]> drivers/net/sb1250-mac.c | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) Signed-off-by: David S. Miller <[email protected]>
2010-07-07vxge: show startup message with KERN_INFOWu Fengguang1-2/+2
The original KERN_CRIT will mess up terminals. CC: Sreenivasa Honnur <[email protected]> Signed-off-by: Wu Fengguang <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2010-07-07ll_temac: Fix missing iounmapsDenis Kirjanov1-5/+13
Fix missing iounmaps. Signed-off-by: Denis Kirjanov <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2010-07-07bridge: Clear IPCB before possible entry into IP stackHerbert Xu1-0/+3
The bridge protocol lives dangerously by having incestuous relations with the IP stack. In this instance an abomination has been created where a bogus IPCB area from a bridged packet leads to a crash in the IP stack because it's interpreted as IP options. This patch papers over the problem by clearing the IPCB area in that particular spot. To fix this properly we'd also need to parse any IP options if present but I'm way too lazy for that. Signed-off-by: Herbert Xu <[email protected]> Cheers, Signed-off-by: David S. Miller <[email protected]>
2010-07-07ath9k_htc: fix memory leak in ath9k_hif_usb_alloc_urbsRajkumar Manoharan1-2/+6
Failure cases within ath9k_hif_usb_alloc_urbs are failed to release allocated memory. Signed-off-by: Rajkumar Manoharan <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2010-07-07Merge branch 'drm-fixes' of ↵Linus Torvalds4-43/+56
git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6 * 'drm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6: drm: correctly update connector DPMS status in drm_fb_helper drm/radeon/kms: fix shared ddc handling drm/ttm: Allocate the page pool manager in the heap.
2010-07-07drm: correctly update connector DPMS status in drm_fb_helperJesse Barnes1-3/+20
We don't currently update the DPMS status of the connector (both in the connector itself and the connector's DPMS property) in the fb helper code. This means that if the kernel FB core has blanked the screen, sysfs will still show a DPMS status of "on". It also means that when X starts, it will try to light up the connectors, but the drm_crtc_helper code will ignore the DPMS change since according to the connector, the DPMS status is already on. Fixes https://bugs.freedesktop.org/show_bug.cgi?id=28436 (the annoying "my screen was blanked when I started X and now it won't light up" bug). Signed-off-by: Jesse Barnes <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2010-07-07drm/radeon/kms: fix shared ddc handlingAlex Deucher1-1/+3
Connectors with a shared ddc line can be connected to different encoders. Reported by Pasi Kärkkäinen <[email protected]> on dri-devel Signed-off-by: Alex Deucher <[email protected]> Cc: [email protected] Signed-off-by: Dave Airlie <[email protected]>
2010-07-06ACPI video: fix string mismatch for Sony SR290 laptopNik A. Melchior1-1/+1
Fix string mismatch for Sony SR290 laptop. https://bugzilla.kernel.org/show_bug.cgi?id=12904#c45 Signed-off-by: Nik A. Melchior <[email protected]> Signed-off-by: Len Brown <[email protected]>
2010-07-06ACPI battery: don't invoke power_supply_changed twice when battery is hot-addedZhang Rui1-1/+7
When battery is hot-added, we should not invoke power_supply_changed in acpi_battery_notify, because it has been invoked in acpi_battery_update, and battery->bat.changed_work is queued in keventd already. https://bugzilla.kernel.org/show_bug.cgi?id=16244 Signed-off-by: Zhang Rui <[email protected]> Acked-by: Alexey Starikovskiy <[email protected]> Signed-off-by: Len Brown <[email protected]>
2010-07-07drm/ttm: Allocate the page pool manager in the heap.Francisco Jerez2-39/+33
Repeated ttm_page_alloc_init/fini fails noisily because the pool manager kobj isn't zeroed out between uses (we could do just that but statically allocated kobjects are generally considered a bad thing). Move it to kzalloc'ed memory. Note that this patch drops the refcounting behavior of the pool allocator init/fini functions: it would have led to a race condition in its current form, and anyway it was never exploited. This fixes a regression with reloading kms modules at runtime, since page allocator was introduced. Signed-off-by: Francisco Jerez <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2010-07-06VFS: introduce s_dirty accessorsArtem Bityutskiy1-0/+13
This patch introduces 3 VFS accessors: 'sb_mark_dirty()', 'sb_mark_clean()', and 'sb_is_dirty()'. They simply set 'sb->s_dirt' or test 'sb->s_dirt'. The plan is to make every FS use these accessors later instead of manipulating the 'sb->s_dirt' flag directly. Ultimately, this change is a preparation for the periodic superblock synchronization optimization which is about preventing the "sync_supers" kernel thread from waking up even if there is nothing to synchronize. This patch does not do any functional change, just adds accessor functions. Signed-off-by: Artem Bityutskiy <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2010-07-06Merge branch 'x86-fixes-for-linus' of ↵Linus Torvalds4-79/+88
git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: rbtree: Undo augmented trees performance damage and regression x86, Calgary: Limit the max PHB number to 256
2010-07-06Merge branch 'for-linus' of ↵Linus Torvalds10-33/+69
git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client: ceph: fix crush device 'out' threshold to 1.0, not 0.1 ceph: fix caps usage accounting for import (non-reserved) case ceph: only release clean, unused caps with mds requests ceph: fix crush CHOOSE_LEAF when type is already a leaf ceph: fix crush recursion ceph: fix caps debugfs entry ceph: delay umount until all mds requests drop inode+dentry refs ceph: handle splice_dentry/d_materialize_unique error in readdir_prepopulate ceph: fix crush map update decoding ceph: fix message memory leak, uninitialized variable ceph: fix map handler error path ceph: some endianity fixes
2010-07-06Merge branch 'urgent' of ↵Linus Torvalds1-2/+1
git://git.kernel.org/pub/scm/linux/kernel/git/brodo/pcmcia-2.6 * 'urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/brodo/pcmcia-2.6: pcmcia: do not initialize the present flag too late.
2010-07-06Merge branch 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linusLinus Torvalds25-175/+515
* 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus: (22 commits) MIPS: Return after handling coprocessor 2 exception MIPS: BCM47xx: Add NVRAM support devices MIPS: Loongson: Define rtc device on MC146818-equipped systems MIPS: MT: Fix FPU affinity. MIPS: Oprofile: Fixup of loongson2_exit() MIPS: Alchemy: sleepcode without compile-time cputype dependencies MIPS: Tracing: Cleanup of address space checking MIPS: Tracing: Cleanup of function graph tracer MIPS: Tracing: Reduce the overhead of dynamic Function Tracer MIPS: Tracing: Cleanup of instructions used MIPS: Tracing: Fix 32-bit support with -mmcount-ra-address MIPS: Tracing: Fix argument passing of the 32bit support with gcc 4.5 MIPS: Tracing: Cleanup comments MIPS: Tracing: Cleanup the arguments passing of prepare_ftrace_return MIPS: Tracing: Merge adjacent #ifdefs with same condition. MIPS: AR7, BCM63xx: fix gpio_to_irq() return value MIPS: Restore signalling NaN behaviour for abs.[sd] MIPS: Loongson: CS5536: Fix ISA support MIPS: Loongson: Add a missing break statement in CS5536 IDE code MIPS: Loongson: CS5536: Add missing RDMSRs for IDE and USB ...
2010-07-06kbuild: Fix path to scripts/setlocalversionMichal Marek1-1/+1
Commit 0a564b2 broke LOCALVERSION for O=... builds. Ouch. Reported-by: Stephen Rothwell <[email protected]> Reported-and-tested-by: Rafael J. Wysocki <[email protected]> Reported-by: Peter Anvin <[email protected]> Signed-off-by: Michal Marek <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2010-07-06IPoIB: Fix world-writable child interface control sysfs attributesOr Gerlitz1-2/+2
Sumeet Lahorani <[email protected]> reported that the IPoIB child entries are world-writable; however we don't want ordinary users to be able to create and destroy child interfaces, so fix them to be writable only by root. Signed-off-by: Or Gerlitz <[email protected]> Cc: <[email protected]> Signed-off-by: Roland Dreier <[email protected]>
2010-07-06IB/qib: Clean up properly if qib_init() failsRalph Campbell1-0/+10
If qib_init() fails, the driver fails to free memory, unregister device files, and unregister with the PCIe framework. The driver will unload without error but a subsequent driver load will cause the system to panic. This was found by changing the 7220 code to load the serdes microcode separately and not installing the microcode file. Signed-off-by: Ralph Campbell <[email protected]> Signed-off-by: Roland Dreier <[email protected]>
2010-07-06IB/qib: Completion queue callback needs to be single threadedRalph Campbell1-1/+1
Workqueues aren't exactly equivalent to tasklets since the callback function may be called from multiple CPUs before the callback returns. This causes completion notification callbacks to have MT bugs since they weren't expecting this behavior. The fix is to use a single threaded work queue. Signed-off-by: Ralph Campbell <[email protected]> Signed-off-by: Roland Dreier <[email protected]>
2010-07-06IB/qib: Update 7322 serdes tablesRalph Campbell1-4/+12
Signed-off-by: Ralph Campbell <[email protected]> Signed-off-by: Roland Dreier <[email protected]>
2010-07-06IB/qib: Clear 6120 hardware error registerRalph Campbell1-2/+1
The hardware error register needs to be cleared or another interrupt will be generated, thus causing an infinite loop. This is a regression introduced when removing debug output. Signed-off-by: Ralph Campbell <[email protected]> Signed-off-by: Roland Dreier <[email protected]>
2010-07-06IB/qib: Clear eager buffer memory for each new processRalph Campbell1-0/+3
The eager buffers are not being cleared before being mmapped into a new user address space. This is a potential security risk and should be fixed. Note that the eager header queue is already being cleared. Signed-off-by: Ralph Campbell <[email protected]> Signed-off-by: Roland Dreier <[email protected]>
2010-07-06IB/qib: Mask hardware error during link resetRalph Campbell2-26/+31
The HCA checks for certain hardware errors which can be falsely triggered when the IB link is reset. The fix is to mask them rather than report them. Signed-off-by: Ralph Campbell <[email protected]> Signed-off-by: Roland Dreier <[email protected]>
2010-07-06IB/qib: Don't mark VL15 bufs as WC to avoid a rare 7322 chip problemDave Olson6-6/+46
Don't set write combining via PAT on the VL15 buffers to avoid a rare problem with unaligned writes from interrupt-flushed store buffers. Signed-off-by: Dave Olson <[email protected]> Signed-off-by: Roland Dreier <[email protected]>
2010-07-06RDMA/cxgb4: Derive smac_idx from port viidSteve Wise1-4/+5
Signed-off-by: Steve Wise <[email protected]> Signed-off-by: Roland Dreier <[email protected]>
2010-07-06RDMA/cxgb4: Avoid false GTS CIDX_INC overflowsSteve Wise1-5/+20
The T4 IQ hw design assumes CIDX_INC credits will be returned on a regular basis and always before the CIDX counter crosses over the PIDX counter. For RDMA CQs, however, returning CIDX_INC credits is only needed and desired when and if the CQ is armed for notification. This can lead to a GTS write returning credits that causes the HW to reject the credit update because it causes CIDX to pass PIDX. Once this happens, the CIDX/PIDX counters get out of whack and an application can miss a notification and get stuck blocked awaiting a notification. To avoid this, we allocate the HW IQ 2x times the requested size. This seems to avoid the false overflow failures. If we see more issues with this, then we'll have to add code in the poll path to return credits periodically like when the amount reaches 1/2 the queue depth). I would like to avoid this as it adds a PCI write transaction for applications that never arm the CQ (like most MPIs). Signed-off-by: Steve Wise <[email protected]> Signed-off-by: Roland Dreier <[email protected]>
2010-07-06RDMA/cxgb4: Don't call abort_connection() for active connect failuresSteve Wise1-1/+2
Signed-off-by: Steve Wise <[email protected]> Signed-off-by: Roland Dreier <[email protected]>
2010-07-06RDMA/cxgb4: Use the DMA state API instead of the pci equivalentsFUJITA Tomonori5-15/+15
This replace the PCI DMA state API (include/linux/pci-dma.h) with the DMA equivalents since the PCI DMA state API will be obsolete. No functional change. For further information about the background: http://marc.info/?l=linux-netdev&m=127037540020276&w=2 Signed-off-by: FUJITA Tomonori <[email protected]> Acked-by: Steve Wise <[email protected]> Signed-off-by: Roland Dreier <[email protected]>
2010-07-06KVM: VMX: Fix host MSR_KERNEL_GS_BASE corruptionAvi Kivity1-5/+2
enter_lmode() and exit_lmode() modify the guest's EFER.LMA before calling vmx_set_efer(). However, the latter function depends on the value of EFER.LMA to determine whether MSR_KERNEL_GS_BASE needs reloading, via vmx_load_host_state(). With EFER.LMA changing under its feet, it took the wrong choice and corrupted userspace's %gs. This causes 32-on-64 host userspace to fault. Fix not touching EFER.LMA; instead ask vmx_set_efer() to change it. Signed-off-by: Avi Kivity <[email protected]>
2010-07-06writeback: simplify the write back thread queueChristoph Hellwig3-197/+72
First remove items from work_list as soon as we start working on them. This means we don't have to track any pending or visited state and can get rid of all the RCU magic freeing the work items - we can simply free them once the operation has finished. Second use a real completion for tracking synchronous requests - if the caller sets the completion pointer we complete it, otherwise use it as a boolean indicator that we can free the work item directly. Third unify struct wb_writeback_args and struct bdi_work into a single data structure, wb_writeback_work. Previous we set all parameters into a struct wb_writeback_args, copied it into struct bdi_work, copied it again on the stack to use it there. Instead of just allocate one structure dynamically or on the stack and use it all the way through the stack. Signed-off-by: Christoph Hellwig <[email protected]> Signed-off-by: Jens Axboe <[email protected]>
2010-07-06writeback: split writeback_inodes_wbChristoph Hellwig2-38/+46
The case where we have a superblock doesn't require a loop here as we scan over all inodes in writeback_sb_inodes. Split it out into a separate helper to make the code simpler. This also allows to get rid of the sb member in struct writeback_control, which was rather out of place there. Also update the comments in writeback_sb_inodes that explain the handling of inodes from wrong superblocks. Signed-off-by: Christoph Hellwig <[email protected]> Signed-off-by: Jens Axboe <[email protected]>
2010-07-06writeback: remove writeback_inodes_wbcChristoph Hellwig6-20/+6
This was just an odd wrapper around writeback_inodes_wb. Removing this also allows to get rid of the bdi member of struct writeback_control which was rather out of place there. Signed-off-by: Christoph Hellwig <[email protected]> Signed-off-by: Jens Axboe <[email protected]>