<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/drivers/iommu/dmar.c, branch v3.14.42</title>
<subtitle>Linux kernel for Apalis and Colibri modules</subtitle>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/'/>
<entry>
<title>iommu/vt-d, trivial: clean sparse warnings</title>
<updated>2014-01-09T11:44:16+00:00</updated>
<author>
<name>Jiang Liu</name>
<email>jiang.liu@linux.intel.com</email>
</author>
<published>2014-01-06T06:18:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=b707cb027edf5b7ff1b8637c184b9a58d74e5159'/>
<id>b707cb027edf5b7ff1b8637c184b9a58d74e5159</id>
<content type='text'>
Clean up most sparse warnings in Intel DMA and interrupt remapping
drivers.

Signed-off-by: Jiang Liu &lt;jiang.liu@linux.intel.com&gt;
Signed-off-by: Joerg Roedel &lt;joro@8bytes.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Clean up most sparse warnings in Intel DMA and interrupt remapping
drivers.

Signed-off-by: Jiang Liu &lt;jiang.liu@linux.intel.com&gt;
Signed-off-by: Joerg Roedel &lt;joro@8bytes.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>iommu/vt-d: fix wrong return value of dmar_table_init()</title>
<updated>2014-01-09T11:43:45+00:00</updated>
<author>
<name>Jiang Liu</name>
<email>jiang.liu@linux.intel.com</email>
</author>
<published>2014-01-06T06:18:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=cc05301fd54f3e166aedf24e39f6731c4dec0451'/>
<id>cc05301fd54f3e166aedf24e39f6731c4dec0451</id>
<content type='text'>
If dmar_table_init() fails to detect DMAR table on the first call,
it will return wrong result on following calls because it always
sets dmar_table_initialized no matter if succeeds or fails to
detect DMAR table.

Signed-off-by: Jiang Liu &lt;jiang.liu@linux.intel.com&gt;
Signed-off-by: Joerg Roedel &lt;joro@8bytes.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If dmar_table_init() fails to detect DMAR table on the first call,
it will return wrong result on following calls because it always
sets dmar_table_initialized no matter if succeeds or fails to
detect DMAR table.

Signed-off-by: Jiang Liu &lt;jiang.liu@linux.intel.com&gt;
Signed-off-by: Joerg Roedel &lt;joro@8bytes.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>iommu/vt-d: release invalidation queue when destroying IOMMU unit</title>
<updated>2014-01-09T11:43:43+00:00</updated>
<author>
<name>Jiang Liu</name>
<email>jiang.liu@linux.intel.com</email>
</author>
<published>2014-01-06T06:18:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=a84da70b7ba0c5236fccf25115acefc235ed65f9'/>
<id>a84da70b7ba0c5236fccf25115acefc235ed65f9</id>
<content type='text'>
Release associated invalidation queue when destroying IOMMU unit
to avoid memory leak.

Signed-off-by: Jiang Liu &lt;jiang.liu@linux.intel.com&gt;
Signed-off-by: Joerg Roedel &lt;joro@8bytes.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Release associated invalidation queue when destroying IOMMU unit
to avoid memory leak.

Signed-off-by: Jiang Liu &lt;jiang.liu@linux.intel.com&gt;
Signed-off-by: Joerg Roedel &lt;joro@8bytes.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>iommu/vt-d: keep shared resources when failed to initialize iommu devices</title>
<updated>2014-01-09T11:43:40+00:00</updated>
<author>
<name>Jiang Liu</name>
<email>jiang.liu@linux.intel.com</email>
</author>
<published>2014-01-06T06:18:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=a868e6b7b661c3d3e7e681a16d0b205971987c99'/>
<id>a868e6b7b661c3d3e7e681a16d0b205971987c99</id>
<content type='text'>
Data structure drhd-&gt;iommu is shared between DMA remapping driver and
interrupt remapping driver, so DMA remapping driver shouldn't release
drhd-&gt;iommu when it failed to initialize IOMMU devices. Otherwise it
may cause invalid memory access to the interrupt remapping driver.

Sample stack dump:
[   13.315090] BUG: unable to handle kernel paging request at ffffc9000605a088
[   13.323221] IP: [&lt;ffffffff81461bac&gt;] qi_submit_sync+0x15c/0x400
[   13.330107] PGD 82f81e067 PUD c2f81e067 PMD 82e846067 PTE 0
[   13.336818] Oops: 0002 [#1] SMP
[   13.340757] Modules linked in:
[   13.344422] CPU: 0 PID: 4 Comm: kworker/0:0 Not tainted 3.13.0-rc1-gerry+ #7
[   13.352474] Hardware name: Intel Corporation LH Pass ........../SVRBD-ROW_T,                                               BIOS SE5C600.86B.99.99.x059.091020121352 09/10/2012
[   13.365659] Workqueue: events work_for_cpu_fn
[   13.370774] task: ffff88042ddf00d0 ti: ffff88042ddee000 task.ti: ffff88042dde                                              e000
[   13.379389] RIP: 0010:[&lt;ffffffff81461bac&gt;]  [&lt;ffffffff81461bac&gt;] qi_submit_sy                                              nc+0x15c/0x400
[   13.389055] RSP: 0000:ffff88042ddef940  EFLAGS: 00010002
[   13.395151] RAX: 00000000000005e0 RBX: 0000000000000082 RCX: 0000000200000025
[   13.403308] RDX: ffffc9000605a000 RSI: 0000000000000010 RDI: ffff88042ddb8610
[   13.411446] RBP: ffff88042ddef9a0 R08: 00000000000005d0 R09: 0000000000000001
[   13.419599] R10: 0000000000000000 R11: 000000000000005d R12: 000000000000005c
[   13.427742] R13: ffff88102d84d300 R14: 0000000000000174 R15: ffff88042ddb4800
[   13.435877] FS:  0000000000000000(0000) GS:ffff88043de00000(0000) knlGS:00000                                              00000000000
[   13.445168] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[   13.451749] CR2: ffffc9000605a088 CR3: 0000000001a0b000 CR4: 00000000000407f0
[   13.459895] Stack:
[   13.462297]  ffff88042ddb85d0 000000000000005d ffff88042ddef9b0 0000000000000                                              5d0
[   13.471147]  00000000000005c0 ffff88042ddb8000 000000000000005c 0000000000000                                              015
[   13.480001]  ffff88042ddb4800 0000000000000282 ffff88042ddefa40 ffff88042ddef                                              ac0
[   13.488855] Call Trace:
[   13.491771]  [&lt;ffffffff8146848d&gt;] modify_irte+0x9d/0xd0
[   13.497778]  [&lt;ffffffff8146886d&gt;] intel_setup_ioapic_entry+0x10d/0x290
[   13.505250]  [&lt;ffffffff810a92a6&gt;] ? trace_hardirqs_on_caller+0x16/0x1e0
[   13.512824]  [&lt;ffffffff810346b0&gt;] ? default_init_apic_ldr+0x60/0x60
[   13.519998]  [&lt;ffffffff81468be0&gt;] setup_ioapic_remapped_entry+0x20/0x30
[   13.527566]  [&lt;ffffffff8103683a&gt;] io_apic_setup_irq_pin+0x12a/0x2c0
[   13.534742]  [&lt;ffffffff8136673b&gt;] ? acpi_pci_irq_find_prt_entry+0x2b9/0x2d8
[   13.544102]  [&lt;ffffffff81037fd5&gt;] io_apic_setup_irq_pin_once+0x85/0xa0
[   13.551568]  [&lt;ffffffff8103816f&gt;] ? mp_find_ioapic_pin+0x8f/0xf0
[   13.558434]  [&lt;ffffffff81038044&gt;] io_apic_set_pci_routing+0x34/0x70
[   13.565621]  [&lt;ffffffff8102f4cf&gt;] mp_register_gsi+0xaf/0x1c0
[   13.572111]  [&lt;ffffffff8102f5ee&gt;] acpi_register_gsi_ioapic+0xe/0x10
[   13.579286]  [&lt;ffffffff8102f33f&gt;] acpi_register_gsi+0xf/0x20
[   13.585779]  [&lt;ffffffff81366b86&gt;] acpi_pci_irq_enable+0x171/0x1e3
[   13.592764]  [&lt;ffffffff8146d771&gt;] pcibios_enable_device+0x31/0x40
[   13.599744]  [&lt;ffffffff81320e9b&gt;] do_pci_enable_device+0x3b/0x60
[   13.606633]  [&lt;ffffffff81322248&gt;] pci_enable_device_flags+0xc8/0x120
[   13.613887]  [&lt;ffffffff813222f3&gt;] pci_enable_device+0x13/0x20
[   13.620484]  [&lt;ffffffff8132fa7e&gt;] pcie_port_device_register+0x1e/0x510
[   13.627947]  [&lt;ffffffff810a92a6&gt;] ? trace_hardirqs_on_caller+0x16/0x1e0
[   13.635510]  [&lt;ffffffff810a947d&gt;] ? trace_hardirqs_on+0xd/0x10
[   13.642189]  [&lt;ffffffff813302b8&gt;] pcie_portdrv_probe+0x58/0xc0
[   13.648877]  [&lt;ffffffff81323ba5&gt;] local_pci_probe+0x45/0xa0
[   13.655266]  [&lt;ffffffff8106bc44&gt;] work_for_cpu_fn+0x14/0x20
[   13.661656]  [&lt;ffffffff8106fa79&gt;] process_one_work+0x369/0x710
[   13.668334]  [&lt;ffffffff8106fa02&gt;] ? process_one_work+0x2f2/0x710
[   13.675215]  [&lt;ffffffff81071d56&gt;] ? worker_thread+0x46/0x690
[   13.681714]  [&lt;ffffffff81072194&gt;] worker_thread+0x484/0x690
[   13.688109]  [&lt;ffffffff81071d10&gt;] ? cancel_delayed_work_sync+0x20/0x20
[   13.695576]  [&lt;ffffffff81079c60&gt;] kthread+0xf0/0x110
[   13.701300]  [&lt;ffffffff8108e7bf&gt;] ? local_clock+0x3f/0x50
[   13.707492]  [&lt;ffffffff81079b70&gt;] ? kthread_create_on_node+0x250/0x250
[   13.714959]  [&lt;ffffffff81574d2c&gt;] ret_from_fork+0x7c/0xb0
[   13.721152]  [&lt;ffffffff81079b70&gt;] ? kthread_create_on_node+0x250/0x250

Signed-off-by: Jiang Liu &lt;jiang.liu@linux.intel.com&gt;
Signed-off-by: Joerg Roedel &lt;joro@8bytes.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Data structure drhd-&gt;iommu is shared between DMA remapping driver and
interrupt remapping driver, so DMA remapping driver shouldn't release
drhd-&gt;iommu when it failed to initialize IOMMU devices. Otherwise it
may cause invalid memory access to the interrupt remapping driver.

Sample stack dump:
[   13.315090] BUG: unable to handle kernel paging request at ffffc9000605a088
[   13.323221] IP: [&lt;ffffffff81461bac&gt;] qi_submit_sync+0x15c/0x400
[   13.330107] PGD 82f81e067 PUD c2f81e067 PMD 82e846067 PTE 0
[   13.336818] Oops: 0002 [#1] SMP
[   13.340757] Modules linked in:
[   13.344422] CPU: 0 PID: 4 Comm: kworker/0:0 Not tainted 3.13.0-rc1-gerry+ #7
[   13.352474] Hardware name: Intel Corporation LH Pass ........../SVRBD-ROW_T,                                               BIOS SE5C600.86B.99.99.x059.091020121352 09/10/2012
[   13.365659] Workqueue: events work_for_cpu_fn
[   13.370774] task: ffff88042ddf00d0 ti: ffff88042ddee000 task.ti: ffff88042dde                                              e000
[   13.379389] RIP: 0010:[&lt;ffffffff81461bac&gt;]  [&lt;ffffffff81461bac&gt;] qi_submit_sy                                              nc+0x15c/0x400
[   13.389055] RSP: 0000:ffff88042ddef940  EFLAGS: 00010002
[   13.395151] RAX: 00000000000005e0 RBX: 0000000000000082 RCX: 0000000200000025
[   13.403308] RDX: ffffc9000605a000 RSI: 0000000000000010 RDI: ffff88042ddb8610
[   13.411446] RBP: ffff88042ddef9a0 R08: 00000000000005d0 R09: 0000000000000001
[   13.419599] R10: 0000000000000000 R11: 000000000000005d R12: 000000000000005c
[   13.427742] R13: ffff88102d84d300 R14: 0000000000000174 R15: ffff88042ddb4800
[   13.435877] FS:  0000000000000000(0000) GS:ffff88043de00000(0000) knlGS:00000                                              00000000000
[   13.445168] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[   13.451749] CR2: ffffc9000605a088 CR3: 0000000001a0b000 CR4: 00000000000407f0
[   13.459895] Stack:
[   13.462297]  ffff88042ddb85d0 000000000000005d ffff88042ddef9b0 0000000000000                                              5d0
[   13.471147]  00000000000005c0 ffff88042ddb8000 000000000000005c 0000000000000                                              015
[   13.480001]  ffff88042ddb4800 0000000000000282 ffff88042ddefa40 ffff88042ddef                                              ac0
[   13.488855] Call Trace:
[   13.491771]  [&lt;ffffffff8146848d&gt;] modify_irte+0x9d/0xd0
[   13.497778]  [&lt;ffffffff8146886d&gt;] intel_setup_ioapic_entry+0x10d/0x290
[   13.505250]  [&lt;ffffffff810a92a6&gt;] ? trace_hardirqs_on_caller+0x16/0x1e0
[   13.512824]  [&lt;ffffffff810346b0&gt;] ? default_init_apic_ldr+0x60/0x60
[   13.519998]  [&lt;ffffffff81468be0&gt;] setup_ioapic_remapped_entry+0x20/0x30
[   13.527566]  [&lt;ffffffff8103683a&gt;] io_apic_setup_irq_pin+0x12a/0x2c0
[   13.534742]  [&lt;ffffffff8136673b&gt;] ? acpi_pci_irq_find_prt_entry+0x2b9/0x2d8
[   13.544102]  [&lt;ffffffff81037fd5&gt;] io_apic_setup_irq_pin_once+0x85/0xa0
[   13.551568]  [&lt;ffffffff8103816f&gt;] ? mp_find_ioapic_pin+0x8f/0xf0
[   13.558434]  [&lt;ffffffff81038044&gt;] io_apic_set_pci_routing+0x34/0x70
[   13.565621]  [&lt;ffffffff8102f4cf&gt;] mp_register_gsi+0xaf/0x1c0
[   13.572111]  [&lt;ffffffff8102f5ee&gt;] acpi_register_gsi_ioapic+0xe/0x10
[   13.579286]  [&lt;ffffffff8102f33f&gt;] acpi_register_gsi+0xf/0x20
[   13.585779]  [&lt;ffffffff81366b86&gt;] acpi_pci_irq_enable+0x171/0x1e3
[   13.592764]  [&lt;ffffffff8146d771&gt;] pcibios_enable_device+0x31/0x40
[   13.599744]  [&lt;ffffffff81320e9b&gt;] do_pci_enable_device+0x3b/0x60
[   13.606633]  [&lt;ffffffff81322248&gt;] pci_enable_device_flags+0xc8/0x120
[   13.613887]  [&lt;ffffffff813222f3&gt;] pci_enable_device+0x13/0x20
[   13.620484]  [&lt;ffffffff8132fa7e&gt;] pcie_port_device_register+0x1e/0x510
[   13.627947]  [&lt;ffffffff810a92a6&gt;] ? trace_hardirqs_on_caller+0x16/0x1e0
[   13.635510]  [&lt;ffffffff810a947d&gt;] ? trace_hardirqs_on+0xd/0x10
[   13.642189]  [&lt;ffffffff813302b8&gt;] pcie_portdrv_probe+0x58/0xc0
[   13.648877]  [&lt;ffffffff81323ba5&gt;] local_pci_probe+0x45/0xa0
[   13.655266]  [&lt;ffffffff8106bc44&gt;] work_for_cpu_fn+0x14/0x20
[   13.661656]  [&lt;ffffffff8106fa79&gt;] process_one_work+0x369/0x710
[   13.668334]  [&lt;ffffffff8106fa02&gt;] ? process_one_work+0x2f2/0x710
[   13.675215]  [&lt;ffffffff81071d56&gt;] ? worker_thread+0x46/0x690
[   13.681714]  [&lt;ffffffff81072194&gt;] worker_thread+0x484/0x690
[   13.688109]  [&lt;ffffffff81071d10&gt;] ? cancel_delayed_work_sync+0x20/0x20
[   13.695576]  [&lt;ffffffff81079c60&gt;] kthread+0xf0/0x110
[   13.701300]  [&lt;ffffffff8108e7bf&gt;] ? local_clock+0x3f/0x50
[   13.707492]  [&lt;ffffffff81079b70&gt;] ? kthread_create_on_node+0x250/0x250
[   13.714959]  [&lt;ffffffff81574d2c&gt;] ret_from_fork+0x7c/0xb0
[   13.721152]  [&lt;ffffffff81079b70&gt;] ? kthread_create_on_node+0x250/0x250

Signed-off-by: Jiang Liu &lt;jiang.liu@linux.intel.com&gt;
Signed-off-by: Joerg Roedel &lt;joro@8bytes.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>iommu/vt-d, trivial: simplify code with existing macros</title>
<updated>2014-01-09T11:43:37+00:00</updated>
<author>
<name>Jiang Liu</name>
<email>jiang.liu@linux.intel.com</email>
</author>
<published>2014-01-06T06:18:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=7c9197791a0cbbbb0f74aade3339f8e5890fbd15'/>
<id>7c9197791a0cbbbb0f74aade3339f8e5890fbd15</id>
<content type='text'>
Simplify vt-d related code with existing macros and introduce a new
macro for_each_active_drhd_unit() to enumerate all active DRHD unit.

Signed-off-by: Jiang Liu &lt;jiang.liu@linux.intel.com&gt;
Signed-off-by: Joerg Roedel &lt;joro@8bytes.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Simplify vt-d related code with existing macros and introduce a new
macro for_each_active_drhd_unit() to enumerate all active DRHD unit.

Signed-off-by: Jiang Liu &lt;jiang.liu@linux.intel.com&gt;
Signed-off-by: Joerg Roedel &lt;joro@8bytes.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>iommu/vt-d: mark internal functions as static</title>
<updated>2014-01-09T11:43:33+00:00</updated>
<author>
<name>Jiang Liu</name>
<email>jiang.liu@linux.intel.com</email>
</author>
<published>2014-01-06T06:18:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=694835dc227ad203886457aa447025d09b2f7523'/>
<id>694835dc227ad203886457aa447025d09b2f7523</id>
<content type='text'>
Functions alloc_iommu() and parse_ioapics_under_ir()
are only used internally, so mark them as static.

[Joerg: Made detect_intel_iommu() non-static again for IA64]

Signed-off-by: Jiang Liu &lt;jiang.liu@linux.intel.com&gt;
Signed-off-by: Joerg Roedel &lt;joro@8bytes.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Functions alloc_iommu() and parse_ioapics_under_ir()
are only used internally, so mark them as static.

[Joerg: Made detect_intel_iommu() non-static again for IA64]

Signed-off-by: Jiang Liu &lt;jiang.liu@linux.intel.com&gt;
Signed-off-by: Joerg Roedel &lt;joro@8bytes.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>iommu/vt-d, trivial: clean up unused code</title>
<updated>2014-01-09T11:43:31+00:00</updated>
<author>
<name>Jiang Liu</name>
<email>jiang.liu@linux.intel.com</email>
</author>
<published>2014-01-06T06:18:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=b8a2d2881e6682464f6a832eea4c9be298d70c41'/>
<id>b8a2d2881e6682464f6a832eea4c9be298d70c41</id>
<content type='text'>
Remove dead code from VT-d related files.

Signed-off-by: Jiang Liu &lt;jiang.liu@linux.intel.com&gt;
Signed-off-by: Joerg Roedel &lt;joro@8bytes.org&gt;

Conflicts:

	drivers/iommu/dmar.c
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Remove dead code from VT-d related files.

Signed-off-by: Jiang Liu &lt;jiang.liu@linux.intel.com&gt;
Signed-off-by: Joerg Roedel &lt;joro@8bytes.org&gt;

Conflicts:

	drivers/iommu/dmar.c
</pre>
</div>
</content>
</entry>
<entry>
<title>iommu/vt-d, trivial: check suitable flag in function detect_intel_iommu()</title>
<updated>2014-01-09T11:43:30+00:00</updated>
<author>
<name>Jiang Liu</name>
<email>jiang.liu@linux.intel.com</email>
</author>
<published>2014-01-06T06:18:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=b977e73a837963ad73d24db4ca7b71040791868c'/>
<id>b977e73a837963ad73d24db4ca7b71040791868c</id>
<content type='text'>
Flag irq_remapping_enabled is only set by intel_enable_irq_remapping(),
which is called after detect_intel_iommu(). So moving pr_info() from
detect_intel_iommu() to intel_enable_irq_remapping(), which also
slightly simplifies implementation.

Reviewed-by: Yijing Wang &lt;wangyijing@huawei.com&gt;
Signed-off-by: Jiang Liu &lt;jiang.liu@linux.intel.com&gt;
Signed-off-by: Joerg Roedel &lt;joro@8bytes.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Flag irq_remapping_enabled is only set by intel_enable_irq_remapping(),
which is called after detect_intel_iommu(). So moving pr_info() from
detect_intel_iommu() to intel_enable_irq_remapping(), which also
slightly simplifies implementation.

Reviewed-by: Yijing Wang &lt;wangyijing@huawei.com&gt;
Signed-off-by: Jiang Liu &lt;jiang.liu@linux.intel.com&gt;
Signed-off-by: Joerg Roedel &lt;joro@8bytes.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>iommu/vt-d: fix PCI device reference leakage on error recovery path</title>
<updated>2014-01-09T11:42:35+00:00</updated>
<author>
<name>Jiang Liu</name>
<email>jiang.liu@linux.intel.com</email>
</author>
<published>2014-01-06T06:18:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=ada4d4b2a32e9f63d4dcb9f69578473408f4622c'/>
<id>ada4d4b2a32e9f63d4dcb9f69578473408f4622c</id>
<content type='text'>
Function dmar_parse_dev_scope() should release the PCI device reference
count gained in function dmar_parse_one_dev_scope() on error recovery,
otherwise it will cause PCI device object leakage.

This patch also introduces dmar_free_dev_scope(), which will be used
to support DMAR device hotplug.

Reviewed-by: Yijing Wang &lt;wangyijing@huawei.com&gt;
Signed-off-by: Jiang Liu &lt;jiang.liu@linux.intel.com&gt;
Signed-off-by: Joerg Roedel &lt;joro@8bytes.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Function dmar_parse_dev_scope() should release the PCI device reference
count gained in function dmar_parse_one_dev_scope() on error recovery,
otherwise it will cause PCI device object leakage.

This patch also introduces dmar_free_dev_scope(), which will be used
to support DMAR device hotplug.

Reviewed-by: Yijing Wang &lt;wangyijing@huawei.com&gt;
Signed-off-by: Jiang Liu &lt;jiang.liu@linux.intel.com&gt;
Signed-off-by: Joerg Roedel &lt;joro@8bytes.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>iommu/vt-d: Mark functions as static in dmar.c</title>
<updated>2013-12-30T14:36:30+00:00</updated>
<author>
<name>Rashika Kheria</name>
<email>rashika.kheria@gmail.com</email>
</author>
<published>2013-12-18T06:31:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=21004dcd3ba25163d620eddc703185cd50c89a93'/>
<id>21004dcd3ba25163d620eddc703185cd50c89a93</id>
<content type='text'>
Mark the functions check_zero_address() and dmar_get_fault_reason() as
static in dmar.c because they are not used outside this file.

This eliminates the following warnings in dmar.c:
drivers/iommu/dmar.c:491:12: warning: no previous prototype for ‘check_zero_address’ [-Wmissing-prototypes]
drivers/iommu/dmar.c:1116:13: warning: no previous prototype for ‘dmar_get_fault_reason’ [-Wmissing-prototypes]

Signed-off-by: Rashika Kheria &lt;rashika.kheria@gmail.com&gt;
Reviewed-by: Josh Triplett &lt;josh@joshtriplett.org&gt;
Signed-off-by: Joerg Roedel &lt;joro@8bytes.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Mark the functions check_zero_address() and dmar_get_fault_reason() as
static in dmar.c because they are not used outside this file.

This eliminates the following warnings in dmar.c:
drivers/iommu/dmar.c:491:12: warning: no previous prototype for ‘check_zero_address’ [-Wmissing-prototypes]
drivers/iommu/dmar.c:1116:13: warning: no previous prototype for ‘dmar_get_fault_reason’ [-Wmissing-prototypes]

Signed-off-by: Rashika Kheria &lt;rashika.kheria@gmail.com&gt;
Reviewed-by: Josh Triplett &lt;josh@joshtriplett.org&gt;
Signed-off-by: Joerg Roedel &lt;joro@8bytes.org&gt;
</pre>
</div>
</content>
</entry>
</feed>
