From: Olaf Hering Date: Mon, 20 Feb 2012 21:16:32 +0000 (+0100) Subject: mem_event: use C99 initializers for mem_event_request_t users X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~8862 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=8295fa0d827768695eab81ce6c950a575cfec47b;p=xen.git mem_event: use C99 initializers for mem_event_request_t users Use C99 initializers for mem_event_request_t users to make sure req is always cleared, even with local debug patches that shuffle code around to have a single exit point. The common case is to use and send req, so it does not add significant overhead to always clear req. Signed-off-by: Olaf Hering Acked-by: Tim Deegan Committed-by: Tim Deegan --- diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c index d00eaf5fed..de90f6183e 100644 --- a/xen/arch/x86/hvm/hvm.c +++ b/xen/arch/x86/hvm/hvm.c @@ -4302,7 +4302,7 @@ static int hvm_memory_event_traps(long p, uint32_t reason, { struct vcpu* v = current; struct domain *d = v->domain; - mem_event_request_t req; + mem_event_request_t req = { .reason = reason }; int rc; if ( !(p & HVMPME_MODE_MASK) ) @@ -4321,9 +4321,6 @@ static int hvm_memory_event_traps(long p, uint32_t reason, else if ( rc < 0 ) return rc; - memset(&req, 0, sizeof(req)); - req.reason = reason; - if ( (p & HVMPME_MODE_MASK) == HVMPME_mode_sync ) { req.flags |= MEM_EVENT_FLAG_VCPU_PAUSED; diff --git a/xen/arch/x86/mm/p2m.c b/xen/arch/x86/mm/p2m.c index 9eb0ba5f35..45ed6e2766 100644 --- a/xen/arch/x86/mm/p2m.c +++ b/xen/arch/x86/mm/p2m.c @@ -913,7 +913,7 @@ int p2m_mem_paging_evict(struct domain *d, unsigned long gfn) void p2m_mem_paging_drop_page(struct domain *d, unsigned long gfn, p2m_type_t p2mt) { - mem_event_request_t req; + mem_event_request_t req = { .gfn = gfn }; /* We allow no ring in this unique case, because it won't affect * correctness of the guest execution at this point. If this is the only @@ -924,8 +924,6 @@ void p2m_mem_paging_drop_page(struct domain *d, unsigned long gfn, return; /* Send release notification to pager */ - memset(&req, 0, sizeof(req)); - req.gfn = gfn; req.flags = MEM_EVENT_FLAG_DROP_PAGE; /* Update stats unless the page hasn't yet been evicted */ @@ -962,7 +960,7 @@ void p2m_mem_paging_drop_page(struct domain *d, unsigned long gfn, void p2m_mem_paging_populate(struct domain *d, unsigned long gfn) { struct vcpu *v = current; - mem_event_request_t req; + mem_event_request_t req = { .gfn = gfn }; p2m_type_t p2mt; p2m_access_t a; mfn_t mfn; @@ -980,8 +978,6 @@ void p2m_mem_paging_populate(struct domain *d, unsigned long gfn) else if ( rc < 0 ) return; - memset(&req, 0, sizeof(req)); - /* Fix p2m mapping */ gfn_lock(p2m, gfn, 0); mfn = p2m->get_entry(p2m, gfn, &p2mt, &a, p2m_query, NULL); @@ -1011,7 +1007,6 @@ void p2m_mem_paging_populate(struct domain *d, unsigned long gfn) } /* Send request to pager */ - req.gfn = gfn; req.p2mt = p2mt; req.vcpu_id = v->vcpu_id;