All of lore.kernel.org
 help / color / mirror / Atom feed
From: Yijing Wang <wangyijing@huawei.com>
To: Jiang Liu <jiang.liu@linux.intel.com>,
	Joerg Roedel <joro@8bytes.org>,
	David Woodhouse <dwmw2@infradead.org>,
	Yinghai Lu <yinghai@kernel.org>,
	Bjorn Helgaas <bhelgaas@google.com>,
	Dan Williams <dan.j.williams@intel.com>,
	Vinod Koul <vinod.koul@intel.com>,
	"Rafael J . Wysocki" <rafael.j.wysocki@intel.com>
Cc: Ashok Raj <ashok.raj@intel.com>, Tony Luck <tony.luck@intel.com>,
	iommu@lists.linux-foundation.org, linux-pci@vger.kernel.org,
	linux-hotplug@vger.kernel.org, linux-kernel@vger.kernel.org,
	dmaengine@vger.kernel.org
Subject: Re: [Patch Part3 V5 5/8] iommu/vt-d: Enhance intel_irq_remapping driver to support DMAR unit hotplug
Date: Tue, 16 Sep 2014 07:53:31 +0000	[thread overview]
Message-ID: <5417EC7B.4060400@huawei.com> (raw)
In-Reply-To: <5417E00D.5000108@linux.intel.com>

On 2014/9/16 15:00, Jiang Liu wrote:
> On 2014/9/15 10:20, Yijing Wang wrote:
>>> +static void ir_remove_ioapic_hpet_scope(struct intel_iommu *iommu)
>>> +{
>>> +	int i;
>>>  
>>> -			ir_parse_one_hpet_scope(scope, iommu);
>>> -		}
>>> -		start += scope->length;
>>> -	}
>>> +	for (i = 0; i < MAX_HPET_TBS; i++)
>>> +		if (ir_hpet[i].iommu = iommu)
>>> +			ir_hpet[i].iommu = NULL;
>>
>> Hi Gerry, why not reset whole ir_hpe and ir_ioapic data struct?
> Hi Yijing,
> 	Thanks for review. Zero is legal for id, bus and devfn in
> struct ioapic_scope and struct hpet_scope. So we use domain field
> as a flag to mark entry valid or invalid and only reset iommu field.

Hi Gerry, use iommu field as a flag to mark entry valid may be not safe enough,
I found map_hpet_to_ir() and map_ioapic_to_ir() still only check the id field to return the valid iommu.

What about this case:
E.g. ir_hpet[2].id = N, ir_hpet[2].iommu = NULL, ir_hpet[4].id = N, ir_hpet[4].iommu = iommu;

ir_hpet[2] maybe released yet, and the hpet now has been saved in ir_hpet[4], but map_hpet_to_irq()
will return the wrong iommu(NULL).


static struct intel_iommu *map_hpet_to_ir(u8 hpet_id)
{
	int i;

	for (i = 0; i < MAX_HPET_TBS; i++)
		if (ir_hpet[i].id = hpet_id)
			return ir_hpet[i].iommu;
	return NULL;
}

> 
> Regards!
> Gerry
>>
>>
>>
>>>  
>>> -	return 0;
>>> +	for (i = 0; i < MAX_IO_APICS; i++)
>>> +		if (ir_ioapic[i].iommu = iommu)
>>> +			ir_ioapic[i].iommu = NULL;
>>>  }
>>>  
>>
>> --
>> 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/
>>
> 
> .
> 


-- 
Thanks!
Yijing


WARNING: multiple messages have this Message-ID (diff)
From: Yijing Wang <wangyijing@huawei.com>
To: Jiang Liu <jiang.liu@linux.intel.com>,
	Joerg Roedel <joro@8bytes.org>,
	David Woodhouse <dwmw2@infradead.org>,
	Yinghai Lu <yinghai@kernel.org>,
	Bjorn Helgaas <bhelgaas@google.com>,
	Dan Williams <dan.j.williams@intel.com>,
	Vinod Koul <vinod.koul@intel.com>,
	"Rafael J . Wysocki" <rafael.j.wysocki@intel.com>
Cc: Ashok Raj <ashok.raj@intel.com>, Tony Luck <tony.luck@intel.com>,
	iommu@lists.linux-foundation.org, linux-pci@vger.kernel.org,
	linux-hotplug@vger.kernel.org, linux-kernel@vger.kernel.org,
	dmaengine@vger.kernel.org
Subject: Re: [Patch Part3 V5 5/8] iommu/vt-d: Enhance intel_irq_remapping driver to support DMAR unit hotplug
Date: Tue, 16 Sep 2014 15:53:31 +0800	[thread overview]
Message-ID: <5417EC7B.4060400@huawei.com> (raw)
In-Reply-To: <5417E00D.5000108@linux.intel.com>

On 2014/9/16 15:00, Jiang Liu wrote:
> On 2014/9/15 10:20, Yijing Wang wrote:
>>> +static void ir_remove_ioapic_hpet_scope(struct intel_iommu *iommu)
>>> +{
>>> +	int i;
>>>  
>>> -			ir_parse_one_hpet_scope(scope, iommu);
>>> -		}
>>> -		start += scope->length;
>>> -	}
>>> +	for (i = 0; i < MAX_HPET_TBS; i++)
>>> +		if (ir_hpet[i].iommu == iommu)
>>> +			ir_hpet[i].iommu = NULL;
>>
>> Hi Gerry, why not reset whole ir_hpe and ir_ioapic data struct?
> Hi Yijing,
> 	Thanks for review. Zero is legal for id, bus and devfn in
> struct ioapic_scope and struct hpet_scope. So we use domain field
> as a flag to mark entry valid or invalid and only reset iommu field.

Hi Gerry, use iommu field as a flag to mark entry valid may be not safe enough,
I found map_hpet_to_ir() and map_ioapic_to_ir() still only check the id field to return the valid iommu.

What about this case:
E.g. ir_hpet[2].id = N, ir_hpet[2].iommu = NULL, ir_hpet[4].id = N, ir_hpet[4].iommu = iommu;

ir_hpet[2] maybe released yet, and the hpet now has been saved in ir_hpet[4], but map_hpet_to_irq()
will return the wrong iommu(NULL).


static struct intel_iommu *map_hpet_to_ir(u8 hpet_id)
{
	int i;

	for (i = 0; i < MAX_HPET_TBS; i++)
		if (ir_hpet[i].id == hpet_id)
			return ir_hpet[i].iommu;
	return NULL;
}

> 
> Regards!
> Gerry
>>
>>
>>
>>>  
>>> -	return 0;
>>> +	for (i = 0; i < MAX_IO_APICS; i++)
>>> +		if (ir_ioapic[i].iommu == iommu)
>>> +			ir_ioapic[i].iommu = NULL;
>>>  }
>>>  
>>
>> --
>> 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/
>>
> 
> .
> 


-- 
Thanks!
Yijing

WARNING: multiple messages have this Message-ID (diff)
From: Yijing Wang <wangyijing@huawei.com>
To: Jiang Liu <jiang.liu@linux.intel.com>,
	Joerg Roedel <joro@8bytes.org>,
	David Woodhouse <dwmw2@infradead.org>,
	Yinghai Lu <yinghai@kernel.org>,
	"Bjorn Helgaas" <bhelgaas@google.com>,
	Dan Williams <dan.j.williams@intel.com>,
	"Vinod Koul" <vinod.koul@intel.com>,
	"Rafael J . Wysocki" <rafael.j.wysocki@intel.com>
Cc: Ashok Raj <ashok.raj@intel.com>, Tony Luck <tony.luck@intel.com>,
	<iommu@lists.linux-foundation.org>, <linux-pci@vger.kernel.org>,
	<linux-hotplug@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
	<dmaengine@vger.kernel.org>
Subject: Re: [Patch Part3 V5 5/8] iommu/vt-d: Enhance intel_irq_remapping driver to support DMAR unit hotplug
Date: Tue, 16 Sep 2014 15:53:31 +0800	[thread overview]
Message-ID: <5417EC7B.4060400@huawei.com> (raw)
In-Reply-To: <5417E00D.5000108@linux.intel.com>

On 2014/9/16 15:00, Jiang Liu wrote:
> On 2014/9/15 10:20, Yijing Wang wrote:
>>> +static void ir_remove_ioapic_hpet_scope(struct intel_iommu *iommu)
>>> +{
>>> +	int i;
>>>  
>>> -			ir_parse_one_hpet_scope(scope, iommu);
>>> -		}
>>> -		start += scope->length;
>>> -	}
>>> +	for (i = 0; i < MAX_HPET_TBS; i++)
>>> +		if (ir_hpet[i].iommu == iommu)
>>> +			ir_hpet[i].iommu = NULL;
>>
>> Hi Gerry, why not reset whole ir_hpe and ir_ioapic data struct?
> Hi Yijing,
> 	Thanks for review. Zero is legal for id, bus and devfn in
> struct ioapic_scope and struct hpet_scope. So we use domain field
> as a flag to mark entry valid or invalid and only reset iommu field.

Hi Gerry, use iommu field as a flag to mark entry valid may be not safe enough,
I found map_hpet_to_ir() and map_ioapic_to_ir() still only check the id field to return the valid iommu.

What about this case:
E.g. ir_hpet[2].id = N, ir_hpet[2].iommu = NULL, ir_hpet[4].id = N, ir_hpet[4].iommu = iommu;

ir_hpet[2] maybe released yet, and the hpet now has been saved in ir_hpet[4], but map_hpet_to_irq()
will return the wrong iommu(NULL).


static struct intel_iommu *map_hpet_to_ir(u8 hpet_id)
{
	int i;

	for (i = 0; i < MAX_HPET_TBS; i++)
		if (ir_hpet[i].id == hpet_id)
			return ir_hpet[i].iommu;
	return NULL;
}

> 
> Regards!
> Gerry
>>
>>
>>
>>>  
>>> -	return 0;
>>> +	for (i = 0; i < MAX_IO_APICS; i++)
>>> +		if (ir_ioapic[i].iommu == iommu)
>>> +			ir_ioapic[i].iommu = NULL;
>>>  }
>>>  
>>
>> --
>> 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/
>>
> 
> .
> 


-- 
Thanks!
Yijing


  reply	other threads:[~2014-09-16  7:53 UTC|newest]

Thread overview: 72+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-09-12  2:10 [Patch Part3 V5 0/8] Enable support of Intel DMAR device hotplug Jiang Liu
2014-09-12  2:10 ` Jiang Liu
2014-09-12  2:10 ` Jiang Liu
2014-09-12  2:10 ` [Patch Part3 V5 1/8] iommu/vt-d: Introduce helper function dmar_walk_resources() Jiang Liu
2014-09-12  2:10   ` Jiang Liu
2014-09-12  2:10   ` Jiang Liu
2014-09-12  9:16   ` Yijing Wang
2014-09-12  9:16     ` Yijing Wang
2014-09-12  9:16     ` Yijing Wang
2014-09-16  7:13     ` Jiang Liu
2014-09-16  7:13       ` Jiang Liu
2014-09-16  7:13       ` Jiang Liu
2014-09-16  8:08       ` Yijing Wang
2014-09-16  8:08         ` Yijing Wang
2014-09-16  8:08         ` Yijing Wang
2014-09-12  2:10 ` [Patch Part3 V5 2/8] iommu/vt-d: Dynamically allocate and free seq_id for DMAR units Jiang Liu
2014-09-12  2:10   ` Jiang Liu
2014-09-12  2:10   ` Jiang Liu
2014-09-12  9:16   ` Yijing Wang
2014-09-12  9:16     ` Yijing Wang
2014-09-12  9:16     ` Yijing Wang
2014-09-12  2:10 ` [Patch Part3 V5 3/8] iommu/vt-d: Implement DMAR unit hotplug framework Jiang Liu
2014-09-12  2:10   ` Jiang Liu
2014-09-12  2:10   ` Jiang Liu
2014-09-15  1:40   ` Yijing Wang
2014-09-15  1:40     ` Yijing Wang
2014-09-15  1:40     ` Yijing Wang
2014-09-12  2:10 ` [Patch Part3 V5 4/8] iommu/vt-d: Search for ACPI _DSM method for DMAR hotplug Jiang Liu
2014-09-12  2:10   ` Jiang Liu
2014-09-12  2:10   ` Jiang Liu
2014-09-15  1:53   ` Yijing Wang
2014-09-15  1:53     ` Yijing Wang
2014-09-15  1:53     ` Yijing Wang
2014-09-12  2:10 ` [Patch Part3 V5 5/8] iommu/vt-d: Enhance intel_irq_remapping driver to support DMAR unit hotplug Jiang Liu
2014-09-12  2:10   ` Jiang Liu
2014-09-12  2:10   ` Jiang Liu
2014-09-15  2:20   ` Yijing Wang
2014-09-15  2:20     ` Yijing Wang
2014-09-15  2:20     ` Yijing Wang
2014-09-16  7:00     ` Jiang Liu
2014-09-16  7:00       ` Jiang Liu
2014-09-16  7:00       ` Jiang Liu
2014-09-16  7:53       ` Yijing Wang [this message]
2014-09-16  7:53         ` Yijing Wang
2014-09-16  7:53         ` Yijing Wang
2014-09-16  8:13         ` Jiang Liu
2014-09-16  8:13           ` Jiang Liu
2014-09-16  8:13           ` Jiang Liu
2014-09-12  2:10 ` [Patch Part3 V5 6/8] iommu/vt-d: Enhance error recovery in function intel_enable_irq_remapping() Jiang Liu
2014-09-12  2:10   ` Jiang Liu
2014-09-12  2:10   ` Jiang Liu
2014-09-15  2:25   ` Yijing Wang
2014-09-15  2:25     ` Yijing Wang
2014-09-15  2:25     ` Yijing Wang
2014-09-12  2:10 ` [Patch Part3 V5 7/8] iommu/vt-d: Enhance intel-iommu driver to support DMAR unit hotplug Jiang Liu
2014-09-12  2:10   ` Jiang Liu
2014-09-12  2:10   ` Jiang Liu
2014-09-15  2:53   ` Yijing Wang
2014-09-15  2:53     ` Yijing Wang
2014-09-15  2:53     ` Yijing Wang
2014-09-12  2:10 ` [Patch Part3 V5 8/8] pci, ACPI, iommu: Enhance pci_root to support DMAR device hotplug Jiang Liu
2014-09-12  2:10   ` Jiang Liu
2014-09-12  2:10   ` Jiang Liu
2014-09-15  3:28   ` Yijing Wang
2014-09-15  3:28     ` Yijing Wang
2014-09-15  3:28     ` Yijing Wang
2014-09-15  7:54 ` [Patch Part3 V5 0/8] Enable support of Intel " Yijing Wang
2014-09-15  7:54   ` Yijing Wang
2014-09-15  7:54   ` Yijing Wang
2014-09-16  7:17   ` Jiang Liu
2014-09-16  7:17     ` Jiang Liu
2014-09-16  7:17     ` Jiang Liu

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=5417EC7B.4060400@huawei.com \
    --to=wangyijing@huawei.com \
    --cc=ashok.raj@intel.com \
    --cc=bhelgaas@google.com \
    --cc=dan.j.williams@intel.com \
    --cc=dmaengine@vger.kernel.org \
    --cc=dwmw2@infradead.org \
    --cc=iommu@lists.linux-foundation.org \
    --cc=jiang.liu@linux.intel.com \
    --cc=joro@8bytes.org \
    --cc=linux-hotplug@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=rafael.j.wysocki@intel.com \
    --cc=tony.luck@intel.com \
    --cc=vinod.koul@intel.com \
    --cc=yinghai@kernel.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.