[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] How does hypervisor handle the hypercalls fromguest OSes?
A couple of comments... > long hypervisor_temp(struct task_struct *p, dom0_tmp_t *tmp) > { > int ret; > unsigned long cpu_mask = 0; > int p_size; > > if ( sizeof(*p->temp) > PAGE_SIZE ) BUG(); > > p->temp = (void *)get_free_page(GFP_KERNEL); > clear_page(p->temp); > p->temp = tmp->test; ^^^^^^^^^^^^^^^^^^^^ The line above looks like debugging you've forgotten to remove? > SHARE_PFN_WITH_DOMAIN(virt_to_page(p->temp), p->domain); > > cpu_mask = mark_guest_event(p, _EVENT_TEMP); > guest_event_notify(cpu_mask); > put_task_struct(p); ^^^^^^^^^^^^^^^^^^^ You probably don't want to decrement p's reference count here. p was passed into the function as an argument, which usually means that you are "borrowing" the caller's reference -- and he probably expects to get it back! Everything else looks like it is probably okay. The first comment above could be the problem though -- it looks like the code is plain wrong. -- Keir ------------------------------------------------------- This SF.Net email is sponsored by: Oracle 10g Get certified on the hottest thing ever to hit the market... Oracle 10g. Take an Oracle 10g class now, and we'll give you the exam FREE. http://ads.osdn.com/?ad_id=3149&alloc_id=8166&op=click _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.sourceforge.net/lists/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |