Hi~
         I found that if i don't request the interrupts of the ethernet
        card, my system won't crash.
            ( I used the example code on IRQ7)

        Is the irq_hard_enable_irq() function has some problems with the
        IRQs of ethernet cards?
        Is there anyone request the IRQs of ethernet card's  and use the
        function successfully?
----- Original Message -----
From: "Iven" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Tuesday, April 16, 2002 11:43 PM
Subject: Re: [rtl] about rtl_hard_enable_irq


> Hello,
>     Thanks for Venkat's response , but my system still crash.
>     Before I used the rtl_hard_enable_irq function, my system didn't crash
>     even if i returned 0.
>
>     I found that the following URL has an example .It uses the
> rtl_hard_enable_irq
>     function , and returns 0,too.
>     http://www.linuxdevices.com/articles/AT8948080759.html
>
>     So...i still don't know why my system crashed  :~
>
>     Here is my code :
>
> #include <rtl.h>
> #include <rtl_fifo.h>
> #include <rtl_time.h>
> #include <rtl_sched.h>
> #include <rtl_sync.h>
> #include <rtl_core.h>
> #include "common.h"
> #define IRQ1 4     // IRQ of device1 , eth0
>
> unsigned int int_handler(unsigned int irq, struct pt_regs *regs)
> {
>         long long t;
>         t = lrdtsc();
>         switch (irq) {
>                 case IRQ1 :
>                         rtf_put(0, &t, sizeof(t));
>                         break;
>                 default :
>                         break;
>         }
>         rtl_hard_enable_irq(irq);
>         return 1; // it was 0 , now changes to 1 , but still crash
> }
>
> int init_module(void)
> {
>         int ret;
>         if (rtf_create(0, 1024*sizeof(long long)) != 0)
>                 rtl_printf("Fail to create fifo 0\n");
>         ret = rtl_request_irq(IRQ1, int_handler);
>         if (ret) {
>                 rtl_printf("failed to get irq%d: %d\n", IRQ1, ret);
>         } else { rtl_printf("got irq%d\n", IRQ1); }
>         return 0;
> }
>
> void cleanup_module(void)
> {
>         if (rtf_destroy(0) < 0)
>                 rtl_printf("Fail to destroy fifo 0\n");
>         rtl_free_irq(IRQ1);
> }
>
>
> ----- Original Message -----
> From: "A V" <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Sent: Monday, April 15, 2002 12:20 PM
> Subject: Re: [rtl] about rtl_hard_enable_irq
>
>
> >
> > U return 1 dont return 0. If u return 1 OS thinks that
> > ur interrupt was handled. And if u return 0 OS thinks
> > the interrupt is not handled and searches for suitable
> > handler. But it fails and crashes.
> >
> > Regards
> > Venkat
> >
> > --- ¸Î¤å <[EMAIL PROTECTED]> wrote:
> > > Hi,
> > >
> > >     I got a problem with the rtl_hard_enable_irq
> > > function.
> > >     When i put the function in a rtl interrupt
> > > handler like this...
> > >
> > >
> > > unsigned int int_handler(unsigned int irq, struct
> > > pt_regs *regs)
> > > {
> > >         long long t;
> > >         t = lrdtsc();
> > >         switch (irq) {
> > >                 case IRQ1 :
> > >                       rtl_hard_enable_irq(IRQ1);
> > >                       rtf_put(0, &t, sizeof(t));
> > >                       break;
> > >                 case IRQ2 :
> > >                       rtl_hard_enable_irq(IRQ2);
> > >                       rtf_put(1, &t, sizeof(t));
> > >                       break;
> > >
> > >
> > >                 default :
> > >                       break;
> > >         }
> > >         return 0;
> > > }
> > >
> > >     when there's an interrupt occur(IRQ1=4 , IRQ2=3
> > > ), my system will
> > >     crash seriously. But if i don't use the
> > > function. rtlinux will not receive
> > >     anymore interrupt(IRQ1 and IRQ2) before
> > > rtl_global_pend_irq().
> > >
> > >     I searched some others' codes, all of them put
> > > the rtl_hard_enable_irq
> > >     in their interrupt handler. So i can not
> > > understand why my system crashed.
> > >     Does anyone have the answer ?
> > >
> > >     enviroment: redhat 7.0
> > >                 kernel2.2.19-rtl
> > >                 rtlinux-3.1
> > >                 NIC Card IRQ : 4 and 3
> > >
> > >
> > >
> >
> >
> > __________________________________________________
> > Do You Yahoo!?
> > Yahoo! Tax Center - online filing with TurboTax
> > http://taxes.yahoo.com/
> > -- [rtl] ---
> > To unsubscribe:
> > echo "unsubscribe rtl" | mail [EMAIL PROTECTED] OR
> > echo "unsubscribe rtl <Your_email>" | mail [EMAIL PROTECTED]
> > --
> > For more information on Real-Time Linux see:
> > http://www.rtlinux.org/
>
> -- [rtl] ---
> To unsubscribe:
> echo "unsubscribe rtl" | mail [EMAIL PROTECTED] OR
> echo "unsubscribe rtl <Your_email>" | mail [EMAIL PROTECTED]
> --
> For more information on Real-Time Linux see:
> http://www.rtlinux.org/

-- [rtl] ---
To unsubscribe:
echo "unsubscribe rtl" | mail [EMAIL PROTECTED] OR
echo "unsubscribe rtl <Your_email>" | mail [EMAIL PROTECTED]
--
For more information on Real-Time Linux see:
http://www.rtlinux.org/

Reply via email to