Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 158069
b: refs/heads/master
c: e3e5987
h: refs/heads/master
i:
  158067: 75cdab0
v: v3
  • Loading branch information
Joerg Roedel committed Sep 3, 2009
1 parent 2b684d9 commit ec252ec
Show file tree
Hide file tree
Showing 4 changed files with 28 additions and 10 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: e0faf54ee82bf9c07f0307b4391caad4020bd659
refs/heads/master: e3e59876e82a5e1a07f365d5474e7b6943524725
2 changes: 1 addition & 1 deletion trunk/arch/x86/include/asm/amd_iommu_types.h
Original file line number Diff line number Diff line change
Expand Up @@ -198,7 +198,7 @@ extern bool amd_iommu_dump;
#define DUMP_printk(format, arg...) \
do { \
if (amd_iommu_dump) \
printk(KERN_INFO "AMD-Vi: " format, ## arg); \
printk(KERN_INFO "AMD IOMMU: " format, ## arg); \
} while(0);

/*
Expand Down
20 changes: 19 additions & 1 deletion trunk/arch/x86/kernel/amd_iommu.c
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,9 @@ static DEFINE_RWLOCK(amd_iommu_devtable_lock);
static LIST_HEAD(iommu_pd_list);
static DEFINE_SPINLOCK(iommu_pd_list_lock);

#ifdef CONFIG_IOMMU_API
static struct iommu_ops amd_iommu_ops;
#endif

/*
* general struct to manage commands send to an IOMMU
Expand All @@ -60,6 +62,10 @@ static void dma_ops_reserve_addresses(struct dma_ops_domain *dom,
unsigned long start_page,
unsigned int pages);

#ifndef BUS_NOTIFY_UNBOUND_DRIVER
#define BUS_NOTIFY_UNBOUND_DRIVER 0x0005
#endif

#ifdef CONFIG_AMD_IOMMU_STATS

/*
Expand Down Expand Up @@ -132,6 +138,15 @@ static int iommu_has_npcache(struct amd_iommu *iommu)
*
****************************************************************************/

static void dump_dte_entry(u16 devid)
{
int i;

for (i = 0; i < 8; ++i)
pr_err("AMD-Vi: DTE[%d]: %08x\n", i,
amd_iommu_dev_table[devid].data[i]);
}

static void iommu_print_event(void *__evt)
{
u32 *event = __evt;
Expand All @@ -141,14 +156,15 @@ static void iommu_print_event(void *__evt)
int flags = (event[1] >> EVENT_FLAGS_SHIFT) & EVENT_FLAGS_MASK;
u64 address = (u64)(((u64)event[3]) << 32) | event[2];

printk(KERN_ERR "AMD-Vi: Event logged [");
printk(KERN_ERR "AMD IOMMU: Event logged [");

switch (type) {
case EVENT_TYPE_ILL_DEV:
printk("ILLEGAL_DEV_TABLE_ENTRY device=%02x:%02x.%x "
"address=0x%016llx flags=0x%04x]\n",
PCI_BUS(devid), PCI_SLOT(devid), PCI_FUNC(devid),
address, flags);
dump_dte_entry(devid);
break;
case EVENT_TYPE_IO_FAULT:
printk("IO_PAGE_FAULT device=%02x:%02x.%x "
Expand Down Expand Up @@ -479,6 +495,8 @@ void amd_iommu_flush_all_devices(void)
int i;

for (i = 0; i <= amd_iommu_last_bdf; ++i) {
if (amd_iommu_pd_table[i] == NULL)
continue;

iommu = amd_iommu_rlookup_table[i];
if (!iommu)
Expand Down
14 changes: 7 additions & 7 deletions trunk/arch/x86/kernel/amd_iommu_init.c
Original file line number Diff line number Diff line change
Expand Up @@ -252,7 +252,7 @@ static void __init iommu_feature_disable(struct amd_iommu *iommu, u8 bit)
/* Function to enable the hardware */
static void iommu_enable(struct amd_iommu *iommu)
{
printk(KERN_INFO "AMD-Vi: Enabling IOMMU at %s cap 0x%hx\n",
printk(KERN_INFO "AMD IOMMU: Enabling IOMMU at %s cap 0x%hx\n",
dev_name(&iommu->dev->dev), iommu->cap_ptr);

iommu_feature_enable(iommu, CONTROL_IOMMU_EN);
Expand Down Expand Up @@ -858,7 +858,7 @@ static int __init init_iommu_all(struct acpi_table_header *table)
switch (*p) {
case ACPI_IVHD_TYPE:

DUMP_printk("device: %02x:%02x.%01x cap: %04x "
DUMP_printk("IOMMU: device: %02x:%02x.%01x cap: %04x "
"seg: %d flags: %01x info %04x\n",
PCI_BUS(h->devid), PCI_SLOT(h->devid),
PCI_FUNC(h->devid), h->cap_ptr,
Expand Down Expand Up @@ -902,7 +902,7 @@ static int __init iommu_setup_msi(struct amd_iommu *iommu)

r = request_irq(iommu->dev->irq, amd_iommu_int_handler,
IRQF_SAMPLE_RANDOM,
"AMD-Vi",
"AMD IOMMU",
NULL);

if (r) {
Expand Down Expand Up @@ -1150,7 +1150,7 @@ int __init amd_iommu_init(void)


if (no_iommu) {
printk(KERN_INFO "AMD-Vi disabled by kernel command line\n");
printk(KERN_INFO "AMD IOMMU disabled by kernel command line\n");
return 0;
}

Expand Down Expand Up @@ -1248,16 +1248,16 @@ int __init amd_iommu_init(void)

enable_iommus();

printk(KERN_INFO "AMD-Vi: device isolation ");
printk(KERN_INFO "AMD IOMMU: device isolation ");
if (amd_iommu_isolate)
printk("enabled\n");
else
printk("disabled\n");

if (amd_iommu_unmap_flush)
printk(KERN_INFO "AMD-Vi: IO/TLB flush on unmap enabled\n");
printk(KERN_INFO "AMD IOMMU: IO/TLB flush on unmap enabled\n");
else
printk(KERN_INFO "AMD-Vi: Lazy IO/TLB flushing enabled\n");
printk(KERN_INFO "AMD IOMMU: Lazy IO/TLB flushing enabled\n");

out:
return ret;
Expand Down

0 comments on commit ec252ec

Please sign in to comment.