{"push_id":1195319340,"size":1000,"distinct_size":4,"ref":"refs/heads/si2168","head":"20670e0ba79b7fea5d478fa23a58d43f54b42afb","before":"31ed9a9bfbaab80ec99e531681d17176a2bb2957","commits":[{"sha":"7cbc084dc22ca4adb8fd741502e43f29b577abfb","author":{"name":"Andre Przywara","email":"e18662054c872a726023dbfa4e7db0d5fee233cc@arm.com"},"message":"KVM: arm/arm64: vgic: streamline vgic_update_irq_pending() interface\n\nWe actually don't use the irq_phys_map parameter in\nvgic_update_irq_pending(), so let's just remove it.\n\nSigned-off-by: Andre Przywara <andre.przywara@arm.com>\nReviewed-by: Eric Auger <eric.auger@linaro.org>\nReviewed-by: Christoffer Dall <christoffer.dall@linaro.org>","distinct":false,"url":"https://api.github.com/repos/nereeb/linux_media/commits/7cbc084dc22ca4adb8fd741502e43f29b577abfb"},{"sha":"4f551a3d96a2de85a041ee60e806bda1d5b06255","author":{"name":"Andre Przywara","email":"e18662054c872a726023dbfa4e7db0d5fee233cc@arm.com"},"message":"KVM: arm/arm64: vgic: avoid map in kvm_vgic_inject_mapped_irq()\n\nWhen we want to inject a hardware mapped IRQ into a guest, we actually\nonly need the virtual IRQ number from the irq_phys_map.\nSo let's pass this number directly from the arch timer to the VGIC\nto avoid using the map as a parameter.\n\nSigned-off-by: Andre Przywara <andre.przywara@arm.com>\nReviewed-by: Eric Auger <eric.auger@linaro.org>\nReviewed-by: Christoffer Dall <christoffer.dall@linaro.org>","distinct":false,"url":"https://api.github.com/repos/nereeb/linux_media/commits/4f551a3d96a2de85a041ee60e806bda1d5b06255"},{"sha":"e262f4193638fff2de458f0c70284f0cb50926a7","author":{"name":"Andre Przywara","email":"e18662054c872a726023dbfa4e7db0d5fee233cc@arm.com"},"message":"KVM: arm/arm64: vgic: avoid map in kvm_vgic_map_is_active()\n\nFor getting the active state of a mapped IRQ, we actually only need\nthe virtual IRQ number, not the pointer to the mapping entry.\nPass the virtual IRQ number from the arch timer to the VGIC directly.\n\nSigned-off-by: Andre Przywara <andre.przywara@arm.com>\nReviewed-by: Eric Auger <eric.auger@linaro.org>\nReviewed-by: Christoffer Dall <christoffer.dall@linaro.org>","distinct":false,"url":"https://api.github.com/repos/nereeb/linux_media/commits/e262f4193638fff2de458f0c70284f0cb50926a7"},{"sha":"63306c28ac92bdf9e41aef367708d762f9f725f2","author":{"name":"Andre Przywara","email":"e18662054c872a726023dbfa4e7db0d5fee233cc@arm.com"},"message":"KVM: arm/arm64: vgic: avoid map in kvm_vgic_unmap_phys_irq()\n\nkvm_vgic_unmap_phys_irq() only needs the virtual IRQ number, so let's\njust pass that between the arch timer and the VGIC to get rid of\nthe irq_phys_map pointer.\n\nSigned-off-by: Andre Przywara <andre.przywara@arm.com>\nReviewed-by: Eric Auger <eric.auger@linaro.org>\nReviewed-by: Christoffer Dall <christoffer.dall@linaro.org>","distinct":false,"url":"https://api.github.com/repos/nereeb/linux_media/commits/63306c28ac92bdf9e41aef367708d762f9f725f2"},{"sha":"b452cb52072d21f026e38ac7af36a969bab2ed22","author":{"name":"Christoffer Dall","email":"b249998232cb7d24098fb5b77ff4884b10b77179@linaro.org"},"message":"KVM: arm/arm64: Remove the IRQ field from struct irq_phys_map\n\nThe communication of a Linux IRQ number from outside the VGIC to the\nvgic was a leftover from the day when the vgic code cared about how a\nparticular device injects virtual interrupts mapped to a physical\ninterrupt.\n\nWe can safely remove this notion, leaving all physical IRQ handling to\nbe done in the device driver (the arch timer in this case), which makes\nroom for a saner API for the new VGIC.\n\nSigned-off-by: Christoffer Dall <christoffer.dall@linaro.org>\nSigned-off-by: Andre Przywara <andre.przywara@arm.com>\nReviewed-by: Eric Auger <eric.auger@linaro.org>","distinct":false,"url":"https://api.github.com/repos/nereeb/linux_media/commits/b452cb52072d21f026e38ac7af36a969bab2ed22"},{"sha":"a7e33ad9b25552b75a2523cc598db8bcd218ede5","author":{"name":"Andre Przywara","email":"e18662054c872a726023dbfa4e7db0d5fee233cc@arm.com"},"message":"KVM: arm/arm64: arch_timer: Remove irq_phys_map\n\nNow that the interface between the arch timer and the VGIC does not\nrequire passing the irq_phys_map entry pointer anymore, let's remove\nit from the virtual arch timer and use the virtual IRQ number instead\ndirectly.\nThe remaining pointer returned by kvm_vgic_map_phys_irq() will be\nremoved in the following patch.\n\nSigned-off-by: Andre Przywara <andre.przywara@arm.com>\nReviewed-by: Eric Auger <eric.auger@linaro.org>\nReviewed-by: Christoffer Dall <christoffer.dall@linaro.org>","distinct":false,"url":"https://api.github.com/repos/nereeb/linux_media/commits/a7e33ad9b25552b75a2523cc598db8bcd218ede5"},{"sha":"c8eb3f6b9bc31abc0ab3230737fde1639c8b1ea6","author":{"name":"Andre Przywara","email":"e18662054c872a726023dbfa4e7db0d5fee233cc@arm.com"},"message":"KVM: arm/arm64: vgic: Remove irq_phys_map from interface\n\nNow that the virtual arch timer does not care about the irq_phys_map\nanymore, let's rework kvm_vgic_map_phys_irq() to return an error\nvalue instead. Any reference to that mapping can later be done by\npassing the correct combination of VCPU and virtual IRQ number.\nThis makes the irq_phys_map handling completely private to the\nVGIC code.\n\nSigned-off-by: Andre Przywara <andre.przywara@arm.com>\nReviewed-by: Eric Auger <eric.auger@linaro.org>\nReviewed-by: Christoffer Dall <christoffer.dall@linaro.org>","distinct":false,"url":"https://api.github.com/repos/nereeb/linux_media/commits/c8eb3f6b9bc31abc0ab3230737fde1639c8b1ea6"},{"sha":"41a54482c010d8806cf56e1501bb3b61fac14cf9","author":{"name":"Christoffer Dall","email":"b249998232cb7d24098fb5b77ff4884b10b77179@linaro.org"},"message":"KVM: arm/arm64: Move timer IRQ map to latest possible time\n\nWe are about to modify the VGIC to allocate all data structures\ndynamically and store mapped IRQ information on a per-IRQ struct, which\nis indeed allocated dynamically at init time.\n\nTherefore, we cannot record the mapped IRQ info from the timer at timer\nreset time like it's done now, because VCPU reset happens before timer\ninit.\n\nA possible later time to do this is on the first run of a per VCPU, it\njust requires us to move the enable state to be a per-VCPU state and do\nthe lookup of the physical IRQ number when we are about to run the VCPU.\n\nSigned-off-by: Christoffer Dall <christoffer.dall@linaro.org>\nSigned-off-by: Andre Przywara <andre.przywara@arm.com>","distinct":false,"url":"https://api.github.com/repos/nereeb/linux_media/commits/41a54482c010d8806cf56e1501bb3b61fac14cf9"},{"sha":"2db4c104fa2a9af12c07433642e2e4fee37fe2fd","author":{"name":"Christoffer Dall","email":"b249998232cb7d24098fb5b77ff4884b10b77179@linaro.org"},"message":"KVM: arm/arm64: Get rid of vgic_cpu->nr_lr\n\nThe number of list registers is a property of the underlying system, not\nof emulated VGIC CPU interface.\n\nAs we are about to move this variable to global state in the new vgic\nfor clarity, move it from the legacy implementation as well to make the\nmerge of the new code easier.\n\nSigned-off-by: Christoffer Dall <christoffer.dall@linaro.org>\nSigned-off-by: Andre Przywara <andre.przywara@arm.com>\nReviewed-by: Andre Przywara <andre.przywara@arm.com>","distinct":false,"url":"https://api.github.com/repos/nereeb/linux_media/commits/2db4c104fa2a9af12c07433642e2e4fee37fe2fd"},{"sha":"83091db981e105d97562d3ed3ffe676e21927e3a","author":{"name":"Christoffer Dall","email":"b249998232cb7d24098fb5b77ff4884b10b77179@linaro.org"},"message":"KVM: arm/arm64: Fix MMIO emulation data handling\n\nWhen the kernel was handling a guest MMIO read access internally, we\nneed to copy the emulation result into the run->mmio structure in order\nfor the kvm_handle_mmio_return() function to pick it up and inject the\n\tresult back into the guest.\n\nCurrently the only user of kvm_io_bus for ARM is the VGIC, which did\nthis copying itself, so this was not causing issues so far.\n\nBut with the upcoming new vgic implementation we need this done\nproperly.\n\nUpdate the kvm_handle_mmio_return description and cleanup the code to\nonly perform a single copying when needed.\n\nCode and commit message inspired by Andre Przywara.\n\nReported-by: Andre Przywara <andre.przywara@arm.com>\nSigned-off-by: Christoffer Dall <christoffer.dall@linaro.org>\nSigned-off-by: Andre Przywara <andre.przywara@arm.com>\nReviewed-by: Marc Zyngier <marc.zyngier@arm.com>\nReviewed-by: Andre Przywara <andre.przywara@arm.com>","distinct":false,"url":"https://api.github.com/repos/nereeb/linux_media/commits/83091db981e105d97562d3ed3ffe676e21927e3a"},{"sha":"d5a5a0eff368f039ed2222b47c15f09cb60e1245","author":{"name":"Christoffer Dall","email":"b249998232cb7d24098fb5b77ff4884b10b77179@linaro.org"},"message":"KVM: arm/arm64: Export mmio_read/write_bus\n\nRename mmio_{read,write}_bus to kvm_mmio_{read,write}_bus and export\nthem out of mmio.c.\nThis will be needed later for the new VGIC implementation.\n\nSigned-off-by: Christoffer Dall <christoffer.dall@linaro.org>\nSigned-off-by: Andre Przywara <andre.przywara@arm.com>\nAcked-by: Marc Zyngier <marc.zyngier@arm.com>\nReviewed-by: Andre Przywara <andre.przywara@arm.com>","distinct":false,"url":"https://api.github.com/repos/nereeb/linux_media/commits/d5a5a0eff368f039ed2222b47c15f09cb60e1245"},{"sha":"2defaff48aaf16072a6eac4cf8234917197dfa72","author":{"name":"Andre Przywara","email":"e18662054c872a726023dbfa4e7db0d5fee233cc@arm.com"},"message":"KVM: arm/arm64: pmu: abstract access to number of SPIs\n\nCurrently the PMU uses a member of the struct vgic_dist directly,\nwhich not only breaks abstraction, but will fail with the new VGIC.\nAbstract this access in the VGIC header file and refactor the validity\ncheck in the PMU code.\n\nSigned-off-by: Andre Przywara <andre.przywara@arm.com>","distinct":false,"url":"https://api.github.com/repos/nereeb/linux_media/commits/2defaff48aaf16072a6eac4cf8234917197dfa72"},{"sha":"b13216cf6010ef482e69875e00711de7f9573c80","author":{"name":"Christoffer Dall","email":"b249998232cb7d24098fb5b77ff4884b10b77179@linaro.org"},"message":"KVM: arm/arm64: Provide functionality to pause and resume a guest\n\nFor some rare corner cases in our VGIC emulation later we have to stop\nthe guest to make sure the VGIC state is consistent.\nProvide the necessary framework to pause and resume a guest.\n\nSigned-off-by: Christoffer Dall <christoffer.dall@linaro.org>\nSigned-off-by: Andre Przywara <andre.przywara@arm.com>","distinct":false,"url":"https://api.github.com/repos/nereeb/linux_media/commits/b13216cf6010ef482e69875e00711de7f9573c80"},{"sha":"44bfc42e94cd76a0bd44f3fce98d4a7b76f31bc0","author":{"name":"Andre Przywara","email":"e18662054c872a726023dbfa4e7db0d5fee233cc@arm.com"},"message":"KVM: arm/arm64: move GICv2 emulation defines into arm-gic-v3.h\n\nAs (some) GICv3 hosts can emulate a GICv2, some GICv2 specific masks\nfor the list register definition also apply to GICv3 LRs.\nAt the moment we have those definitions in the KVM VGICv3\nimplementation, so let's move them into the GICv3 header file to\nhave them automatically defined.\n\nSigned-off-by: Andre Przywara <andre.przywara@arm.com>\nAcked-by: Marc Zyngier <marc.zyngier@arm.com>","distinct":false,"url":"https://api.github.com/repos/nereeb/linux_media/commits/44bfc42e94cd76a0bd44f3fce98d4a7b76f31bc0"},{"sha":"b18b57787f5e469b2825784ae3c522fc14472e97","author":{"name":"Christoffer Dall","email":"b249998232cb7d24098fb5b77ff4884b10b77179@linaro.org"},"message":"KVM: arm/arm64: vgic-new: Add data structure definitions\n\nAdd a new header file for the new and improved GIC implementation.\nThe big change is that we now have a struct vgic_irq per IRQ instead\nof spreading all the information over various bitmaps.\n\nWe include this new header conditionally from within the old header\nfile for the time being to avoid touching all the users.\n\nSigned-off-by: Christoffer Dall <christoffer.dall@linaro.org>\nSigned-off-by: Andre Przywara <andre.przywara@arm.com>\nReviewed-by: Marc Zyngier <marc.zyngier@arm.com>","distinct":false,"url":"https://api.github.com/repos/nereeb/linux_media/commits/b18b57787f5e469b2825784ae3c522fc14472e97"},{"sha":"64a959d66e47039833e7f3c8d7e50fd4afa078ca","author":{"name":"Christoffer Dall","email":"b249998232cb7d24098fb5b77ff4884b10b77179@linaro.org"},"message":"KVM: arm/arm64: vgic-new: Add acccessor to new struct vgic_irq instance\n\nThe new VGIC implementation centers around a struct vgic_irq instance\nper virtual IRQ.\nProvide a function to retrieve the right instance for a given IRQ\nnumber and (in case of private interrupts) the right VCPU.\n\nSigned-off-by: Christoffer Dall <christoffer.dall@linaro.org>\nSigned-off-by: Andre Przywara <andre.przywara@arm.com>\nReviewed-by: Eric Auger <eric.auger@linaro.org>\nAcked-by: Marc Zyngier <marc.zyngier@arm.com>","distinct":false,"url":"https://api.github.com/repos/nereeb/linux_media/commits/64a959d66e47039833e7f3c8d7e50fd4afa078ca"},{"sha":"81eeb95ddbabbb998a6b39f762bc7edaa2a979b4","author":{"name":"Christoffer Dall","email":"b249998232cb7d24098fb5b77ff4884b10b77179@linaro.org"},"message":"KVM: arm/arm64: vgic-new: Implement virtual IRQ injection\n\nProvide a vgic_queue_irq_unlock() function which decides whether a\ngiven IRQ needs to be queued to a VCPU's ap_list.\nThis should be called whenever an IRQ becomes pending or enabled,\neither as a result of userspace injection, from in-kernel emulated\ndevices like the architected timer or from MMIO accesses to the\ndistributor emulation.\nAlso provides the necessary functions to allow userland to inject an\nIRQ to a guest.\nSince this is the first code that starts using our locking mechanism, we\nadd some (hopefully) clear documentation of our locking strategy and\nrequirements along with this patch.\n\nSigned-off-by: Christoffer Dall <christoffer.dall@linaro.org>\nSigned-off-by: Andre Przywara <andre.przywara@arm.com>","distinct":false,"url":"https://api.github.com/repos/nereeb/linux_media/commits/81eeb95ddbabbb998a6b39f762bc7edaa2a979b4"},{"sha":"8e4447457965a7ddc576d0b9fd34c9905eb0416d","author":{"name":"Christoffer Dall","email":"b249998232cb7d24098fb5b77ff4884b10b77179@linaro.org"},"message":"KVM: arm/arm64: vgic-new: Add IRQ sorting\n\nAdds the sorting function to cover the case where you have more IRQs\nto consider than you have LRs. We now consider priorities.\n\nSigned-off-by: Christoffer Dall <christoffer.dall@linaro.org>\nSigned-off-by: Andre Przywara <andre.przywara@arm.com>\nReviewed-by: Eric Auger <eric.auger@linaro.org>\nReviewed-by: Marc Zyngier <marc.zyngier@arm.com>","distinct":false,"url":"https://api.github.com/repos/nereeb/linux_media/commits/8e4447457965a7ddc576d0b9fd34c9905eb0416d"},{"sha":"0919e84c0fc1fc73525fdcedefab89ea8460f697","author":{"name":"Marc Zyngier","email":"3404add73d8af5dc5183acdd46985971473febc7@arm.com"},"message":"KVM: arm/arm64: vgic-new: Add IRQ sync/flush framework\n\nImplement the framework for syncing IRQs between our emulation and\nthe list registers, which represent the guest's view of IRQs.\nThis is done in kvm_vgic_flush_hwstate and kvm_vgic_sync_hwstate,\nwhich gets called on guest entry and exit.\nThe code talking to the actual GICv2/v3 hardware is added in the\nfollowing patches.\n\nSigned-off-by: Marc Zyngier <marc.zyngier@arm.com>\nSigned-off-by: Christoffer Dall <christoffer.dall@linaro.org>\nSigned-off-by: Eric Auger <eric.auger@linaro.org>\nSigned-off-by: Andre Przywara <andre.przywara@arm.com>\nReviewed-by: Eric Auger <eric.auger@linaro.org>\nReviewed-by: Christoffer Dall <christoffer.dall@linaro.org>","distinct":false,"url":"https://api.github.com/repos/nereeb/linux_media/commits/0919e84c0fc1fc73525fdcedefab89ea8460f697"},{"sha":"140b086dd19771410915a924db2e635c2b51a0f4","author":{"name":"Marc Zyngier","email":"3404add73d8af5dc5183acdd46985971473febc7@arm.com"},"message":"KVM: arm/arm64: vgic-new: Add GICv2 world switch backend\n\nProcessing maintenance interrupts and accessing the list registers\nare dependent on the host's GIC version.\nIntroduce vgic-v2.c to contain GICv2 specific functions.\nImplement the GICv2 specific code for syncing the emulation state\ninto the VGIC registers.\n\nSigned-off-by: Marc Zyngier <marc.zyngier@arm.com>\nSigned-off-by: Christoffer Dall <christoffer.dall@linaro.org>\nSigned-off-by: Eric Auger <eric.auger@linaro.org>\nSigned-off-by: Andre Przywara <andre.przywara@arm.com>\nReviewed-by: Eric Auger <eric.auger@linaro.org>\nReviewed-by: Christoffer Dall <christoffer.dall@linaro.org>","distinct":false,"url":"https://api.github.com/repos/nereeb/linux_media/commits/140b086dd19771410915a924db2e635c2b51a0f4"}]}
{"actor":{"display_login":"nereeb"}}