linux/arch/sparc/include/asm
Dwight Engen d0aedcd4f1 vio: fix reuse of vio_dring slot
vio_dring_avail() will allow use of every dring entry, but when the last
entry is allocated then dr->prod == dr->cons which is indistinguishable from
the ring empty condition. This causes the next allocation to reuse an entry.
When this happens in sunvdc, the server side vds driver begins nack'ing the
messages and ends up resetting the ldc channel. This problem does not effect
sunvnet since it checks for < 2.

The fix here is to just never allocate the very last dring slot so that full
and empty are not the same condition. The request start path was changed to
check for the ring being full a bit earlier, and to stop the blk_queue if
there is no space left. The blk_queue will be restarted once the ring is
only half full again. The number of ring entries was increased to 512 which
matches the sunvnet and Solaris vdc drivers, and greatly reduces the
frequency of hitting the ring full condition and the associated blk_queue
stop/starting. The checks in sunvent were adjusted to account for
vio_dring_avail() returning 1 less.

Orabug: 19441666
OraBZ: 14983

Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2014-09-30 14:37:35 -07:00
..
agp.h
apb.h
asm-offsets.h
asm.h
asmmacro.h sparc32: add support for run-time patching of leon/sun single instructions 2012-05-27 23:52:43 -07:00
atomic.h
atomic_32.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next 2014-06-19 07:50:07 -10:00
atomic_64.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next 2014-06-19 07:50:07 -10:00
auxio.h sparc32: fix sparse warnings in auxio_32.c 2014-04-29 01:12:26 -04:00
auxio_32.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
auxio_64.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
backoff.h sparc64: Improvde documentation and readability of atomic backoff code. 2012-10-28 13:04:47 -07:00
barrier.h Disintegrate asm/system.h for Sparc 2012-03-28 18:30:03 +01:00
barrier_32.h arch: Clean up asm/barrier.h implementations using asm-generic/barrier.h 2014-01-12 10:37:15 +01:00
barrier_64.h arch,sparc: Convert smp_mb__*() 2014-04-18 14:20:44 +02:00
bbc.h
bitext.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
bitops.h
bitops_32.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next 2014-06-19 07:50:07 -10:00
bitops_64.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next 2014-06-19 07:50:07 -10:00
btext.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
bug.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
bugs.h
cache.h sparc32: Remove completely unused code from asm/cache.h 2012-05-19 21:15:37 -07:00
cacheflush.h sparc32: use flushi when run-time patching in per_cpu_patch 2012-05-20 13:33:36 -07:00
cacheflush_32.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
cacheflush_64.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
cachetlb_32.h sparc32: Move cache and TLB flushes over to method ops. 2012-05-13 20:49:31 -07:00
chafsr.h
checksum.h
checksum_32.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next 2014-06-19 07:50:07 -10:00
checksum_64.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next 2014-06-19 07:50:07 -10:00
chmctrl.h
clock.h
cmpxchg.h Disintegrate asm/system.h for Sparc 2012-03-28 18:30:03 +01:00
cmpxchg_32.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
cmpxchg_64.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
compat.h sparc64: Make montmul/montsqr/mpmul usable in 32-bit threads. 2012-10-26 15:18:37 -07:00
compat_signal.h sparc: switch to generic sigaltstack 2013-02-03 18:16:17 -05:00
contregs.h sparc32: Remove sun4{,c} control reg definitions from contregs.h. 2012-05-11 21:29:17 -07:00
cpu_type.h sparc32: Remove sun4 and sun4c from enum sparc_cpu. 2012-05-12 00:23:23 -07:00
cpudata.h sparc: fix sparse warnings in cpu.c 2014-04-29 01:12:25 -04:00
cpudata_32.h sparc32: generic clockevent support 2012-04-15 10:28:50 -07:00
cpudata_64.h sparc: fix sparse warnings in cpu.c 2014-04-29 01:12:25 -04:00
current.h
dcr.h
dcu.h
delay.h
delay_32.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
delay_64.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
device.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
dma-mapping.h sparc32, leon: Make leon_dma_ops avaiable when !CONFIG_PCI 2014-09-09 16:42:17 -07:00
dma.h sparc32: Convert mmu_* interfaces from btfixup to method ops. 2012-05-13 13:57:05 -07:00
ebus_dma.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
ecc.h
eeprom.h
elf.h
elf_32.h default SET_PERSONALITY() in linux/elf.h 2013-02-26 02:46:08 -05:00
elf_64.h sparc64: Add detection for features new in SPARC-T4. 2012-08-18 23:02:36 -07:00
estate.h
fb.h sparc: Really fix "console=" for serial consoles. 2010-08-16 12:26:09 -07:00
fbio.h UAPI: (Scripted) Disintegrate arch/sparc/include/asm 2012-10-09 09:47:43 +01:00
fhc.h
floppy.h
floppy_32.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
floppy_64.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
fpumacro.h
ftrace.h sparc64: fix sparse warning in ftrace.c 2014-05-18 19:01:35 -07:00
futex.h
futex_32.h
futex_64.h Disintegrate asm/system.h for Sparc 2012-03-28 18:30:03 +01:00
gpio.h gpiolib/arches: Centralise bolierplate asm/gpio.h 2012-05-11 18:00:14 -06:00
hardirq.h
hardirq_32.h hardirq: Make hardirq bits generic 2013-11-13 20:21:46 +01:00
hardirq_64.h hardirq: Make hardirq bits generic 2013-11-13 20:21:46 +01:00
head.h
head_32.h sparc: Consistently use 'wr' and 'rd' instructions for ASRs. 2013-04-06 17:51:48 -04:00
head_64.h
hibernate.h sparc64: Hibernation support 2013-03-20 11:06:54 -07:00
highmem.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
hugetlb.h mm/hugetlb: add more arch-defined huge_pte functions 2013-04-29 15:54:33 -07:00
hvtramp.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
hw_irq.h
hypervisor.h sparc64: T5 PMU 2014-09-16 18:26:40 -07:00
ide.h
idprom.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
intr_queue.h
io-unit.h sparc32: fix sparse warning in io-unit.c 2014-05-18 19:01:26 -07:00
io.h sparc: add {read,write}*_be routines 2011-05-12 13:44:29 -07:00
io_32.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
io_64.h sparc64: avoid code duplication in io_64.h 2014-07-21 21:43:19 -07:00
ioctls.h UAPI: (Scripted) Disintegrate arch/sparc/include/asm 2012-10-09 09:47:43 +01:00
iommu.h
iommu_32.h sparc32: fix sparse warning in iommu.c 2014-05-18 19:01:26 -07:00
iommu_64.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
irq.h
irq_32.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
irq_64.h nmi: provide the option to issue an NMI back trace to every cpu but current 2014-06-23 16:47:44 -07:00
irqflags.h
irqflags_32.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
irqflags_64.h sparc/irqs: Do not trace arch_local_{*,irq_*} functions 2011-07-06 08:00:29 -07:00
jump_label.h compiler/gcc4: Add quirk for 'asm goto' miscompilation bug 2013-10-11 07:39:14 +02:00
Kbuild lib/scatterlist: make ARCH_HAS_SG_CHAIN an actual Kconfig 2014-08-08 15:57:26 -07:00
kdebug.h
kdebug_32.h
kdebug_64.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
kgdb.h sparc64: fix sparse warning in kgdb_64.c 2014-05-18 19:01:34 -07:00
kmap_types.h
kprobes.h sparc64: fix sparse warning in kprobes.c 2014-05-18 19:01:34 -07:00
ldc.h sparc64: Move request_irq() from ldc_bind() to ldc_alloc() 2014-09-16 18:31:31 -07:00
leon.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
leon_amba.h sparc32, leon: Remove separate "ticker" timer for SMP 2013-06-19 02:10:29 -07:00
leon_pci.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
lsu.h
machines.h sparc32: Trivial removal of sun4c references in comments. 2012-05-12 00:35:45 -07:00
mbus.h sparc32: Remove cypress cpu support. 2012-05-15 10:22:00 -07:00
mc146818rtc.h sparc32: fix sparse warnings in time_32.c 2014-05-18 19:01:27 -07:00
mc146818rtc_32.h
mc146818rtc_64.h
mdesc.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
memctrl.h
mman.h UAPI: (Scripted) Disintegrate arch/sparc/include/asm 2012-10-09 09:47:43 +01:00
mmu.h
mmu_32.h sparc32: add irq + smp declarations to headers 2011-03-16 18:19:08 -07:00
mmu_64.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
mmu_context.h
mmu_context_32.h sparc32: centralize all mmu context handling in srmmu.c 2012-07-26 16:46:16 -07:00
mmu_context_64.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
mmzone.h Fix node_start/end_pfn() definition for mm/page_cgroup.c 2011-06-27 14:13:09 -07:00
msi.h
mxcc.h
nmi.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
ns87303.h Disintegrate asm/system.h for Sparc 2012-03-28 18:30:03 +01:00
obio.h sparc32: move smp ipi to method ops 2012-05-14 14:05:07 -07:00
openprom.h sparc: Pass buffer pointer all the way down to prom_{get,put}char(). 2010-11-30 14:33:29 -08:00
oplib.h
oplib_32.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
oplib_64.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
page.h sparc: move page_to_phys to page.h 2014-05-02 01:30:20 -04:00
page_32.h sparc32: drop sparc_unmapped_base 2012-07-26 16:46:16 -07:00
page_64.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
parport.h SPARC: drivers: remove __dev* attributes. 2013-01-03 15:57:04 -08:00
pbm.h
pci.h
pci_32.h PCI: Turn pcibios_penalize_isa_irq() into a weak function 2014-05-27 16:23:58 -06:00
pci_64.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next 2014-06-19 07:50:07 -10:00
pcic.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
pcr.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
percpu.h
percpu_32.h
percpu_64.h
perf_event.h perf, arch: Cleanup perf-pmu init vs lockup-detector 2010-11-26 15:14:56 +01:00
pgalloc.h
pgalloc_32.h sparc32: fix sparse warnings in ioport.c 2014-04-29 01:12:25 -04:00
pgalloc_64.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
pgtable.h
pgtable_32.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
pgtable_64.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next 2014-06-19 07:50:07 -10:00
pgtsrmmu.h sparc32: srmmu_probe now knows about leon too 2012-05-27 23:52:51 -07:00
pil.h
processor.h Disintegrate asm/system.h for Sparc 2012-03-28 18:30:03 +01:00
processor_32.h arch, locking: Ciao arch_mutex_cpu_relax() 2014-07-17 12:32:47 +02:00
processor_64.h arch, locking: Ciao arch_mutex_cpu_relax() 2014-07-17 12:32:47 +02:00
prom.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
psr.h UAPI: (Scripted) Disintegrate arch/sparc/include/asm 2012-10-09 09:47:43 +01:00
ptrace.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
ross.h
rwsem.h rwsem: Move duplicate function prototypes to linux/rwsem.h 2011-01-27 12:30:39 +01:00
sbi.h
scratchpad.h
seccomp.h
sections.h sparc32: add support for run-time patching of leon/sun single instructions 2012-05-27 23:52:43 -07:00
setup.h sparc64: fix sparse warnings in init_64.c 2014-05-18 19:01:34 -07:00
sfafsr.h
sfp-machine.h
sfp-machine_32.h sparc32: remove cast from output constraints in math asm statements 2014-05-18 19:01:28 -07:00
sfp-machine_64.h
shmparam.h
shmparam_32.h sparc32: Remove sun4 and sun4c from enum sparc_cpu. 2012-05-12 00:23:23 -07:00
shmparam_64.h
sigcontext.h UAPI: (Scripted) Disintegrate arch/sparc/include/asm 2012-10-09 09:47:43 +01:00
siginfo.h UAPI: (Scripted) Disintegrate arch/sparc/include/asm 2012-10-09 09:47:43 +01:00
signal.h consolidate kernel-side struct sigaction declarations 2013-02-03 15:09:22 -05:00
smp.h
smp_32.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
smp_64.h sparc64: fix sparse warnings in smp_64.c 2014-05-18 19:01:31 -07:00
sparsemem.h sparc64: Fix inconsistent max-physical-address defines. 2013-11-12 15:22:34 -08:00
spinlock.h
spinlock_32.h sparc32: unbreak arch_write_unlock() 2011-08-15 14:35:19 -07:00
spinlock_64.h sparc64: remove unnecessary macros from spinlock_64.h 2011-08-15 14:35:18 -07:00
spinlock_types.h
spitfire.h sparc64: correctly recognise M6 and M7 cpu type 2014-09-09 15:24:10 -07:00
stacktrace.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
starfire.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
string.h
string_32.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
string_64.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
sunbpp.h
swift.h
switch_to.h Disintegrate asm/system.h for Sparc 2012-03-28 18:30:03 +01:00
switch_to_32.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
switch_to_64.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
syscall.h
syscalls.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
termbits.h UAPI: (Scripted) Disintegrate arch/sparc/include/asm 2012-10-09 09:47:43 +01:00
termios.h UAPI: (Scripted) Disintegrate arch/sparc/include/asm 2012-10-09 09:47:43 +01:00
thread_info.h
thread_info_32.h preempt: Make PREEMPT_ACTIVE generic 2013-11-13 20:21:47 +01:00
thread_info_64.h sparc64: sun4v TLB error power off events 2014-09-16 17:46:44 -07:00
timer.h
timer_32.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
timer_64.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
timex.h
timex_32.h sparc32: generic clockevent support 2012-04-15 10:28:50 -07:00
timex_64.h
tlb.h
tlb_32.h
tlb_64.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
tlbflush.h
tlbflush_32.h sparc32: Move cache and TLB flushes over to method ops. 2012-05-13 20:49:31 -07:00
tlbflush_64.h sparc64: Guard against flushing openfirmware mappings. 2014-08-04 20:16:00 -07:00
topology.h
topology_32.h
topology_64.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
trap_block.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
traps.h UAPI: (Scripted) Disintegrate arch/sparc/include/asm 2012-10-09 09:47:43 +01:00
tsb.h sparc64: Fix huge PMD invalidation. 2014-05-03 22:31:52 -07:00
tsunami.h
ttable.h sparc64: Make montmul/montsqr/mpmul usable in 32-bit threads. 2012-10-26 15:18:37 -07:00
turbosparc.h
uaccess.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
uaccess_32.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
uaccess_64.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
unaligned.h
unistd.h sys_sgetmask/sys_ssetmask: add CONFIG_SGETMASK_SYSCALL 2014-06-04 16:54:14 -07:00
upa.h
user.h
vaddrs.h sparc32: drop fixmap.h 2012-07-26 16:46:16 -07:00
vga.h BUG: headers with BUG/BUG_ON etc. need linux/bug.h 2012-03-04 17:54:34 -05:00
viking.h
vio.h vio: fix reuse of vio_dring slot 2014-09-30 14:37:35 -07:00
visasm.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00
winmacro.h sparc32: Implement hard_smp_processor_id() via instruction patching. 2012-05-14 13:31:38 -07:00
xor.h
xor_32.h
xor_64.h sparc: drop use of extern for prototypes in arch/sparc/include/asm 2014-05-18 19:01:29 -07:00