[PATCH v4 06/13] ARM: KVM: VGIC distributor handling

Christoffer Dall c.dall at virtualopensystems.com
Tue Nov 13 08:38:18 EST 2012


On Mon, Nov 12, 2012 at 4:29 AM, Dong Aisheng <b29396 at freescale.com> wrote:
> On Sat, Nov 10, 2012 at 04:44:58PM +0100, Christoffer Dall wrote:
> [...]
>> @@ -141,7 +519,98 @@ struct mmio_range *find_matching_range(const struct mmio_range *ranges,
>>   */
>>  bool vgic_handle_mmio(struct kvm_vcpu *vcpu, struct kvm_run *run, struct kvm_exit_mmio *mmio)
>>  {
>> -     return KVM_EXIT_MMIO;
>> +     const struct mmio_range *range;
>> +     struct vgic_dist *dist = &vcpu->kvm->arch.vgic;
>> +     unsigned long base = dist->vgic_dist_base;
>> +     bool updated_state;
>> +
>> +     if (!irqchip_in_kernel(vcpu->kvm) ||
>> +         mmio->phys_addr < base ||
>> +         (mmio->phys_addr + mmio->len) > (base + dist->vgic_dist_size))
>> +             return false;
>> +
>> +     range = find_matching_range(vgic_ranges, mmio, base);
>> +     if (unlikely(!range || !range->handle_mmio)) {
>> +             pr_warn("Unhandled access %d %08llx %d\n",
>> +                     mmio->is_write, mmio->phys_addr, mmio->len);
>> +             return false;
>> +     }
>> +
>> +     spin_lock(&vcpu->kvm->arch.vgic.lock);
>> +     updated_state = range->handle_mmio(vcpu, mmio,mmio->phys_addr - range->base - base);
> Missing space after ','.
> Checkpatch may fail here.
>
thanks,
-Christoffer



More information about the linux-arm-kernel mailing list