Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757142AbYGJBxi (ORCPT ); Wed, 9 Jul 2008 21:53:38 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1753042AbYGJBxa (ORCPT ); Wed, 9 Jul 2008 21:53:30 -0400 Received: from smtp1.linux-foundation.org ([140.211.169.13]:43958 "EHLO smtp1.linux-foundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751255AbYGJBxa (ORCPT ); Wed, 9 Jul 2008 21:53:30 -0400 Date: Wed, 9 Jul 2008 18:47:28 -0700 From: Andrew Morton To: Joerg Roedel Cc: tglx@linutronix.de, mingo@redhat.com, linux-kernel@vger.kernel.org, iommu@lists.linux-foundation.org, bhavna.sarathy@amd.com, Sebastian.Biemueller@amd.com, robert.richter@amd.com, joro@8bytes.org Subject: Re: [PATCH 09/34] AMD IOMMU: add command buffer (de-)allocation Message-Id: <20080709184728.6d344e45.akpm@linux-foundation.org> In-Reply-To: <1214508490-29683-10-git-send-email-joerg.roedel@amd.com> References: <1214508490-29683-1-git-send-email-joerg.roedel@amd.com> <1214508490-29683-10-git-send-email-joerg.roedel@amd.com> X-Mailer: Sylpheed 2.4.7 (GTK+ 2.12.1; x86_64-redhat-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1575 Lines: 54 On Thu, 26 Jun 2008 21:27:45 +0200 Joerg Roedel wrote: > This patch adds the functions to allocate and deallocate the command buffer for > one IOMMU in the system. > > Signed-off-by: Joerg Roedel > --- > arch/x86/kernel/amd_iommu_init.c | 30 ++++++++++++++++++++++++++++++ > 1 files changed, 30 insertions(+), 0 deletions(-) > > diff --git a/arch/x86/kernel/amd_iommu_init.c b/arch/x86/kernel/amd_iommu_init.c > index ffb8ac8..c2be3ad 100644 > --- a/arch/x86/kernel/amd_iommu_init.c > +++ b/arch/x86/kernel/amd_iommu_init.c > @@ -278,3 +278,33 @@ static int __init find_last_devid_acpi(struct acpi_table_header *table) > return 0; > } > > +static u8 * __init alloc_command_buffer(struct amd_iommu *iommu) > +{ > + u8 *cmd_buf = (u8 *)__get_free_pages(GFP_KERNEL, > + get_order(CMD_BUFFER_SIZE)); Can use __GFP_ZERO here > + u64 entry = 0; Unneeded initialisation. > + if (cmd_buf == NULL) > + return NULL; > + > + iommu->cmd_buf_size = CMD_BUFFER_SIZE; > + > + memset(cmd_buf, 0, CMD_BUFFER_SIZE); And remove this. > + entry = (u64)virt_to_phys(cmd_buf); > + entry |= MMIO_CMD_SIZE_512; > + memcpy_toio(iommu->mmio_base + MMIO_CMD_BUF_OFFSET, > + &entry, sizeof(entry)); > + > + iommu_feature_enable(iommu, CONTROL_CMDBUF_EN); > + > + return cmd_buf; > +} > + -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/