<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/virt/kvm/arm/arch_timer.c, branch linux-4.8.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.8.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.8.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2016-08-17T10:23:47Z</updated>
<entry>
<title>KVM: arm/arm64: timer: Workaround misconfigured timer interrupt</title>
<updated>2016-08-17T10:23:47Z</updated>
<author>
<name>Marc Zyngier</name>
</author>
<published>2016-08-16T14:03:02Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=cabdc5c59ab46a1ec5ea98c5ac4022111fbfd63a'/>
<id>urn:sha1:cabdc5c59ab46a1ec5ea98c5ac4022111fbfd63a</id>
<content type='text'>
Similarily to f005bd7e3b84 ("clocksource/arm_arch_timer: Force
per-CPU interrupt to be level-triggered"), make sure we can
survive an interrupt that has been misconfigured as edge-triggered
by forcing it to be level-triggered (active low is assumed, but
the GIC doesn't really care whether this is high or low).

Hopefully, the amount of shouting in the kernel log will convince
the user to do something about their firmware.

Signed-off-by: Marc Zyngier &lt;marc.zyngier@arm.com&gt;
Signed-off-by: Christoffer Dall &lt;christoffer.dall@linaro.org&gt;
</content>
</entry>
<entry>
<title>arm/kvm/arch_timer: Convert to hotplug state machine</title>
<updated>2016-07-15T08:40:27Z</updated>
<author>
<name>Richard Cochran</name>
</author>
<published>2016-07-13T17:16:47Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b3c9950a5c75983c0a2fcc93760f53ba52da3c85'/>
<id>urn:sha1:b3c9950a5c75983c0a2fcc93760f53ba52da3c85</id>
<content type='text'>
Install the callbacks via the state machine and let the core invoke
the callbacks on the already online CPUs.

Signed-off-by: Richard Cochran &lt;rcochran@linutronix.de&gt;
Signed-off-by: Anna-Maria Gleixner &lt;anna-maria@linutronix.de&gt;
Reviewed-by: Sebastian Andrzej Siewior &lt;bigeasy@linutronix.de&gt;
Cc: Christoffer Dall &lt;christoffer.dall@linaro.org&gt;
Cc: Gleb Natapov &lt;gleb@kernel.org&gt;
Cc: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Cc: Marc Zyngier &lt;marc.zyngier@arm.com&gt;
Cc: Paolo Bonzini &lt;pbonzini@redhat.com&gt;
Cc: Peter Zijlstra &lt;peterz@infradead.org&gt;
Cc: Radim Krcmar &lt;rkrcmar@redhat.com&gt;
Cc: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Cc: kvm@vger.kernel.org
Cc: kvmarm@lists.cs.columbia.edu
Cc: linux-arm-kernel@lists.infradead.org
Cc: rt@linutronix.de
Link: http://lkml.kernel.org/r/20160713153336.634155707@linutronix.de
Signed-off-by: Ingo Molnar &lt;mingo@kernel.org&gt;
</content>
</entry>
<entry>
<title>KVM: arm/arm64: Move timer IRQ map to latest possible time</title>
<updated>2016-05-20T13:39:41Z</updated>
<author>
<name>Christoffer Dall</name>
</author>
<published>2016-05-18T15:26:00Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=41a54482c010d8806cf56e1501bb3b61fac14cf9'/>
<id>urn:sha1:41a54482c010d8806cf56e1501bb3b61fac14cf9</id>
<content type='text'>
We are about to modify the VGIC to allocate all data structures
dynamically and store mapped IRQ information on a per-IRQ struct, which
is indeed allocated dynamically at init time.

Therefore, we cannot record the mapped IRQ info from the timer at timer
reset time like it's done now, because VCPU reset happens before timer
init.

A possible later time to do this is on the first run of a per VCPU, it
just requires us to move the enable state to be a per-VCPU state and do
the lookup of the physical IRQ number when we are about to run the VCPU.

Signed-off-by: Christoffer Dall &lt;christoffer.dall@linaro.org&gt;
Signed-off-by: Andre Przywara &lt;andre.przywara@arm.com&gt;
</content>
</entry>
<entry>
<title>KVM: arm/arm64: vgic: Remove irq_phys_map from interface</title>
<updated>2016-05-20T13:39:40Z</updated>
<author>
<name>Andre Przywara</name>
</author>
<published>2016-04-13T10:49:07Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c8eb3f6b9bc31abc0ab3230737fde1639c8b1ea6'/>
<id>urn:sha1:c8eb3f6b9bc31abc0ab3230737fde1639c8b1ea6</id>
<content type='text'>
Now that the virtual arch timer does not care about the irq_phys_map
anymore, let's rework kvm_vgic_map_phys_irq() to return an error
value instead. Any reference to that mapping can later be done by
passing the correct combination of VCPU and virtual IRQ number.
This makes the irq_phys_map handling completely private to the
VGIC code.

Signed-off-by: Andre Przywara &lt;andre.przywara@arm.com&gt;
Reviewed-by: Eric Auger &lt;eric.auger@linaro.org&gt;
Reviewed-by: Christoffer Dall &lt;christoffer.dall@linaro.org&gt;
</content>
</entry>
<entry>
<title>KVM: arm/arm64: arch_timer: Remove irq_phys_map</title>
<updated>2016-05-20T13:39:39Z</updated>
<author>
<name>Andre Przywara</name>
</author>
<published>2016-04-13T10:03:02Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a7e33ad9b25552b75a2523cc598db8bcd218ede5'/>
<id>urn:sha1:a7e33ad9b25552b75a2523cc598db8bcd218ede5</id>
<content type='text'>
Now that the interface between the arch timer and the VGIC does not
require passing the irq_phys_map entry pointer anymore, let's remove
it from the virtual arch timer and use the virtual IRQ number instead
directly.
The remaining pointer returned by kvm_vgic_map_phys_irq() will be
removed in the following patch.

Signed-off-by: Andre Przywara &lt;andre.przywara@arm.com&gt;
Reviewed-by: Eric Auger &lt;eric.auger@linaro.org&gt;
Reviewed-by: Christoffer Dall &lt;christoffer.dall@linaro.org&gt;
</content>
</entry>
<entry>
<title>KVM: arm/arm64: Remove the IRQ field from struct irq_phys_map</title>
<updated>2016-05-20T13:39:39Z</updated>
<author>
<name>Christoffer Dall</name>
</author>
<published>2016-06-04T14:41:00Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b452cb52072d21f026e38ac7af36a969bab2ed22'/>
<id>urn:sha1:b452cb52072d21f026e38ac7af36a969bab2ed22</id>
<content type='text'>
The communication of a Linux IRQ number from outside the VGIC to the
vgic was a leftover from the day when the vgic code cared about how a
particular device injects virtual interrupts mapped to a physical
interrupt.

We can safely remove this notion, leaving all physical IRQ handling to
be done in the device driver (the arch timer in this case), which makes
room for a saner API for the new VGIC.

Signed-off-by: Christoffer Dall &lt;christoffer.dall@linaro.org&gt;
Signed-off-by: Andre Przywara &lt;andre.przywara@arm.com&gt;
Reviewed-by: Eric Auger &lt;eric.auger@linaro.org&gt;
</content>
</entry>
<entry>
<title>KVM: arm/arm64: vgic: avoid map in kvm_vgic_unmap_phys_irq()</title>
<updated>2016-05-20T13:39:38Z</updated>
<author>
<name>Andre Przywara</name>
</author>
<published>2016-04-13T09:04:06Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=63306c28ac92bdf9e41aef367708d762f9f725f2'/>
<id>urn:sha1:63306c28ac92bdf9e41aef367708d762f9f725f2</id>
<content type='text'>
kvm_vgic_unmap_phys_irq() only needs the virtual IRQ number, so let's
just pass that between the arch timer and the VGIC to get rid of
the irq_phys_map pointer.

Signed-off-by: Andre Przywara &lt;andre.przywara@arm.com&gt;
Reviewed-by: Eric Auger &lt;eric.auger@linaro.org&gt;
Reviewed-by: Christoffer Dall &lt;christoffer.dall@linaro.org&gt;
</content>
</entry>
<entry>
<title>KVM: arm/arm64: vgic: avoid map in kvm_vgic_map_is_active()</title>
<updated>2016-05-20T13:39:38Z</updated>
<author>
<name>Andre Przywara</name>
</author>
<published>2016-04-13T09:03:49Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e262f4193638fff2de458f0c70284f0cb50926a7'/>
<id>urn:sha1:e262f4193638fff2de458f0c70284f0cb50926a7</id>
<content type='text'>
For getting the active state of a mapped IRQ, we actually only need
the virtual IRQ number, not the pointer to the mapping entry.
Pass the virtual IRQ number from the arch timer to the VGIC directly.

Signed-off-by: Andre Przywara &lt;andre.przywara@arm.com&gt;
Reviewed-by: Eric Auger &lt;eric.auger@linaro.org&gt;
Reviewed-by: Christoffer Dall &lt;christoffer.dall@linaro.org&gt;
</content>
</entry>
<entry>
<title>KVM: arm/arm64: vgic: avoid map in kvm_vgic_inject_mapped_irq()</title>
<updated>2016-05-20T13:39:37Z</updated>
<author>
<name>Andre Przywara</name>
</author>
<published>2016-04-13T08:48:02Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=4f551a3d96a2de85a041ee60e806bda1d5b06255'/>
<id>urn:sha1:4f551a3d96a2de85a041ee60e806bda1d5b06255</id>
<content type='text'>
When we want to inject a hardware mapped IRQ into a guest, we actually
only need the virtual IRQ number from the irq_phys_map.
So let's pass this number directly from the arch timer to the VGIC
to avoid using the map as a parameter.

Signed-off-by: Andre Przywara &lt;andre.przywara@arm.com&gt;
Reviewed-by: Eric Auger &lt;eric.auger@linaro.org&gt;
Reviewed-by: Christoffer Dall &lt;christoffer.dall@linaro.org&gt;
</content>
</entry>
<entry>
<title>KVM: arm/arm64: arch_timer: Rely on the arch timer to parse the firmware tables</title>
<updated>2016-05-03T10:54:21Z</updated>
<author>
<name>Julien Grall</name>
</author>
<published>2016-04-11T15:32:58Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=29c2d6ff4cf9af6bcbba3a76aae1d5cacd5da16b'/>
<id>urn:sha1:29c2d6ff4cf9af6bcbba3a76aae1d5cacd5da16b</id>
<content type='text'>
The firmware table is currently parsed by the virtual timer code in
order to retrieve the virtual timer interrupt. However, this is already
done by the arch timer driver.

To avoid code duplication, use the newly function arch_timer_get_kvm_info()
which return all the information required by the virtual timer code.

Signed-off-by: Julien Grall &lt;julien.grall@arm.com&gt;
Acked-by: Christoffer Dall &lt;christoffer.dall@linaro.org&gt;
Signed-off-by: Christoffer Dall &lt;christoffer.dall@linaro.org&gt;
</content>
</entry>
</feed>
