/****************************************************************************** AudioScience HPI driver Copyright (C) 1997-2012 AudioScience Inc. This program is free software; you can redistribute it and/or modify it under the terms of version 2 of the GNU General Public License as published by the Free Software Foundation; This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA HPI Operating System function implementation for Linux (C) Copyright AudioScience Inc. 1997-2003 ******************************************************************************/ #define SOURCEFILE_NAME "hpios.c" #include "hpi_internal.h" #include "hpidebug.h" #include #include void hpios_delay_micro_seconds(u32 num_micro_sec) { if ((usecs_to_jiffies(num_micro_sec) > 1) && !in_interrupt()) { /* MUST NOT SCHEDULE IN INTERRUPT CONTEXT! */ schedule_timeout_uninterruptible(usecs_to_jiffies (num_micro_sec)); } else if (num_micro_sec <= 2000) udelay(num_micro_sec); else mdelay(num_micro_sec / 1000); } /** Allocate an area of locked memory for bus master DMA operations. If allocation fails, return 1, and *pMemArea.size = 0 */ u16 hpios_locked_mem_alloc(struct consistent_dma_area *p_mem_area, u32 size, struct pci_dev *pdev) { /*?? any benefit in using managed dmam_alloc_coherent? */ p_mem_area->vaddr = dma_alloc_coherent(&pdev->dev, size, &p_mem_area->dma_handle, GFP_DMA32 | GFP_KERNEL); if (p_mem_area->vaddr) { HPI_DEBUG_LOG(DEBUG, "allocated %d bytes, dma 0x%x vma %p\n", size, (unsigned int)p_mem_area->dma_handle, p_mem_area->vaddr); p_mem_area->pdev = &pdev->dev; p_mem_area->size = size; return 0; } else { HPI_DEBUG_LOG(WARNING, "failed to allocate %d bytes locked memory\n", size); p_mem_area->size = 0; return 1; } } u16 hpios_locked_mem_free(struct consistent_dma_area *p_mem_area) { if (p_mem_area->size) { dma_free_coherent(p_mem_area->pdev, p_mem_area->size, p_mem_area->vaddr, p_mem_area->dma_handle); HPI_DEBUG_LOG(DEBUG, "freed %lu bytes, dma 0x%x vma %p\n", (unsigned long)p_mem_area->size, (unsigned int)p_mem_area->dma_handle, p_mem_area->vaddr); p_mem_area->size = 0; return 0; } else { return 1; } } value='range'>range
diff options
context:
space:
mode:
authorJiri Slaby <jslaby@suse.cz>2017-01-18 14:29:21 +0100
committerIngo Molnar <mingo@kernel.org>2017-01-19 08:39:44 +0100
commitb5b46c4740aed1538544f0fa849c5b76c7823469 (patch)
tree125e7aced4835bad6f6a0c0d02d012f333caf922 /tools/perf/pmu-events/arch/x86/westmereep-sp/other.json
parentfa19a769f82fb9a5ca000b83cacd13fcaeda51ac (diff)
objtool: Fix IRET's opcode
The IRET opcode is 0xcf according to the Intel manual and also to objdump of my vmlinux: 1ea8: 48 cf iretq Fix the opcode in arch_decode_instruction(). The previous value (0xc5) seems to correspond to LDS. Signed-off-by: Jiri Slaby <jslaby@suse.cz> Acked-by: Josh Poimboeuf <jpoimboe@redhat.com> Cc: Andy Lutomirski <luto@kernel.org> Cc: Borislav Petkov <bp@alien8.de> Cc: Brian Gerst <brgerst@gmail.com> Cc: Denys Vlasenko <dvlasenk@redhat.com> Cc: H. Peter Anvin <hpa@zytor.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Thomas Gleixner <tglx@linutronix.de> Link: http://lkml.kernel.org/r/20170118132921.19319-1-jslaby@suse.cz Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'tools/perf/pmu-events/arch/x86/westmereep-sp/other.json')