Problems with hypercalls

emilie lefebvre tricheurs at hotmail.fr
Wed Jun 8 10:54:03 EDT 2011



This is my function :


static spinlock_t xgr_learn_lock = SPIN_LOCK_UNLOCKED;

static int piga_seq_cpt = 1;

/*
* Function called for each systemcall (Hook SELinux avc function)
*/
int piga_control(u32 ssid, ...., struct av_decision * avd) {

/*
* Here my hypercall work but block my vm with this error :

*                " BUG: scheduling while atomic ... "
*/

spin_lock_bh(&xgr_learn_lock);

  if ( in_atomic())

           kvm_hypercall2 ( 6, (unsigned long)2 ,(unsigned long)piga_seq_cpt);

  spin_unlock_bh(&xgr_learn_lock);   

    

 if (piga_on == 1) {

/*
* Here my hypercall make a kernel panic with this error:
*             " divide error: 0000 [#1] SMP"
*/
                spin_lock_bh(&xgr_learn_lock);

                set_current_state(TASK_UNINTERRUPTIBLE);

                kvm_hypercall2 ( 6, (unsigned long)2 ,(unsigned long)piga_seq_cpt);

                set_current_state(TASK_RUNNING);

                spin_lock_bh(&xgr_learn_lock);

}

}

 
 




> Date: Wed, 8 Jun 2011 15:52:33 +0530
> Subject: Re: Problems with hypercalls
> From: fs.rajat at gmail.com
> To: mulyadi.santosa at gmail.com
> CC: tricheurs at hotmail.fr; kernelnewbies at kernelnewbies.org
> 
> are you doing 64bit devision on 32 bit arch? If that is the case,
> do_div is worth considering.
> 
> On Wed, Jun 8, 2011 at 3:25 PM, Mulyadi Santosa
> <mulyadi.santosa at gmail.com> wrote:
> > On Tue, Jun 7, 2011 at 15:39, emilie lefebvre <tricheurs at hotmail.fr> wrote:
> >> "divide error: 0000 [#1] SMP
> >> ...
> >>  [<ffffffff813f8cdd>] panic+0x78/0x137
> >>  [<ffffffff813fcb94>] oops_end+0xe4/0x100
> >>  [<ffffffff8101021b>] die+0x5b/0x90
> >>  [<ffffffff813fc444>] do_trap+0xc4/0x160
> >>  [<ffffffff8100df2f>] do_divide_error+0x8f/0xb0
> >>  [<ffffffff811f974c>] ? my_function+0xdc/0xe70 "
> >>
> >> Could you have any suggestions ?
> >
> > Could you show us your code? perhaps by pasting them somewhere?
> >
> > >From what I guess, sounds like your code did some math (directly or
> > indirectly) that fiddle with floating point numbers?
> >
> >
> > --
> > regards,
> >
> > Mulyadi Santosa
> > Freelance Linux trainer and consultant
> >
> > blog: the-hydra.blogspot.com
> > training: mulyaditraining.blogspot.com
> >
> > _______________________________________________
> > Kernelnewbies mailing list
> > Kernelnewbies at kernelnewbies.org
> > http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
> >
> 
> _______________________________________________
> Kernelnewbies mailing list
> Kernelnewbies at kernelnewbies.org
> http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
 		 	   		  
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20110608/f040c726/attachment.html 


More information about the Kernelnewbies mailing list