All of lore.kernel.org
 help / color / mirror / Atom feed
From: Joerg Roedel <joro-zLv9SwRftAIdnm+yROfE0A@public.gmane.org>
To: Baoquan He <bhe-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
Cc: iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org
Subject: Re: [Patch v2 4/9] iommu/amd: add copy_irq_table function
Date: Fri, 27 Nov 2015 12:13:13 +0100	[thread overview]
Message-ID: <20151127111312.GC24300@8bytes.org> (raw)
In-Reply-To: <1446811851-20623-5-git-send-email-bhe-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>

On Fri, Nov 06, 2015 at 08:10:46PM +0800, Baoquan He wrote:
> +static void copy_irq_table(u16 devid)
> +{
> +	struct irq_remap_table *table = NULL;
> +	u16 alias;
> +	u64 dte;
> +	u64 old_intr_virt;
> +
> +	alias = amd_iommu_alias_table[devid];
> +	table = irq_lookup_table[alias];
> +	if (table) {
> +	        irq_lookup_table[devid] = table;
> +	        return;
> +	}
> +	dte     = amd_iommu_dev_table[devid].data[2];
> +	dte &= DTE_IRQ_PHYS_ADDR_MASK;
> +	if(!dte)
> +	        return;

Better check the IV bit here to see if the remapping table address is
valid.

> +
> +	table = kzalloc(sizeof(*table), GFP_ATOMIC);
> +	if (!table){
> +	        pr_warn("AMD-Vi: amd irq table allocation failed\n");
> +	        return;   
> +	}
> +	dte &= DTE_IRQ_PHYS_ADDR_MASK;

Applying this mask here is redundant.

> +	old_intr_virt = ioremap_cache(dte, MAX_IRQS_PER_TABLE * sizeof(u32));

The Intel code now uses the memremap interface. Please use it for this
too.

> +	table->table = old_intr_virt;
> +	//table->table = dte;
> +	irq_lookup_table[devid] = table;

Hmm, you are reusing the old tables memory, is there a reason for this?
Copying the old table into new memory is better because it keeps the old
kernels memory as it was at crash time. 


	Joerg

  parent reply	other threads:[~2015-11-27 11:13 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-11-06 12:10 [Patch v2 0/9] Fix AMD IOMMU faults in kdump kernel Baoquan He
     [not found] ` <1446811851-20623-1-git-send-email-bhe-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2015-11-06 12:10   ` [Patch v2 1/9] iommu/amd: Use standard bitmap operation to set bitmap Baoquan He
2015-11-06 12:10   ` [Patch v2 2/9] iommu/amd: Detect pre enabled translation Baoquan He
     [not found]     ` <1446811851-20623-3-git-send-email-bhe-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2015-11-27 11:03       ` Joerg Roedel
     [not found]         ` <20151127110312.GA24300-zLv9SwRftAIdnm+yROfE0A@public.gmane.org>
2015-11-30 11:18           ` Baoquan He
2015-11-06 12:10   ` [Patch v2 3/9] iommu/amd: make several functions globally seen Baoquan He
     [not found]     ` <1446811851-20623-4-git-send-email-bhe-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2015-11-27 11:06       ` Joerg Roedel
     [not found]         ` <20151127110609.GB24300-zLv9SwRftAIdnm+yROfE0A@public.gmane.org>
2015-11-30 11:31           ` Baoquan He
2015-11-06 12:10   ` [Patch v2 4/9] iommu/amd: add copy_irq_table function Baoquan He
     [not found]     ` <1446811851-20623-5-git-send-email-bhe-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2015-11-27 11:13       ` Joerg Roedel [this message]
     [not found]         ` <20151127111312.GC24300-zLv9SwRftAIdnm+yROfE0A@public.gmane.org>
2015-11-30 11:49           ` Baoquan He
2015-11-06 12:10   ` [Patch v2 5/9] iommu/amd: Add function copy_dev_tables Baoquan He
     [not found]     ` <1446811851-20623-6-git-send-email-bhe-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2015-11-27 11:21       ` Joerg Roedel
     [not found]         ` <20151127112152.GD24300-zLv9SwRftAIdnm+yROfE0A@public.gmane.org>
2015-11-30 11:59           ` Baoquan He
2015-11-06 12:10   ` [Patch v2 6/9] iommu/amd: Add functions copy_command_buffer/copy_event_buffer Baoquan He
     [not found]     ` <1446811851-20623-7-git-send-email-bhe-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2015-11-27 11:24       ` Joerg Roedel
     [not found]         ` <20151127112446.GE24300-zLv9SwRftAIdnm+yROfE0A@public.gmane.org>
2015-11-30 12:02           ` Baoquan He
2015-11-06 12:10   ` [Patch v2 7/9] iommu/amd: copy old tables and do not update dev tables before driver init Baoquan He
     [not found]     ` <1446811851-20623-8-git-send-email-bhe-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2015-11-27 11:35       ` Joerg Roedel
     [not found]         ` <20151127113517.GF24300-zLv9SwRftAIdnm+yROfE0A@public.gmane.org>
2015-11-30 12:13           ` Baoquan He
2015-12-13  1:19           ` Baoquan He
     [not found]             ` <20151213011929.GA2490-ejN7fcUYdH/by3iVrkZq2A@public.gmane.org>
2015-12-16 15:51               ` Joerg Roedel
2015-11-06 12:10   ` [Patch v2 8/9] iommu/amd: Do not update the information of domain to devtables before device " Baoquan He
2015-11-06 12:10   ` [Patch v2 9/9] iommu/amd: Clear the iommu pre enabled setting Baoquan He
2015-11-06 12:14   ` [Patch v2 0/9] Fix AMD IOMMU faults in kdump kernel Baoquan He
2015-11-18  6:14   ` Baoquan He
2015-11-27 11:38   ` Joerg Roedel
     [not found]     ` <20151127113816.GG24300-zLv9SwRftAIdnm+yROfE0A@public.gmane.org>
2015-11-30 11:16       ` Baoquan He

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20151127111312.GC24300@8bytes.org \
    --to=joro-zlv9swrftaidnm+yrofe0a@public.gmane.org \
    --cc=bhe-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
    --cc=iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.