Date: Wed, 08 Nov 2006 10:01:25 -0700 (MST) From: Warner Losh <imp@bsdimp.com> To: attilio@FreeBSD.org Cc: freebsd-drivers@FreeBSD.org, jackie7691@yahoo.com.mx Subject: Re: PCCARD - interruptible sleep Message-ID: <20061108.100125.104107782.imp@bsdimp.com> In-Reply-To: <3bbf2fe10611080543y61511b96nd49f71985e7cf6d1@mail.gmail.com> References: <20061108103429.24496.qmail@web56014.mail.re3.yahoo.com> <3bbf2fe10611080543y61511b96nd49f71985e7cf6d1@mail.gmail.com>
index | next in thread | previous in thread | raw e-mail
From: "Attilio Rao" <attilio@freebsd.org>
Subject: Re: PCCARD - interruptible sleep
Date: Wed, 8 Nov 2006 14:43:59 +0100
> 2006/11/8, Jacqueline P <jackie7691@yahoo.com.mx>:
> > Hi all
> >
> > how can I implement an interruptible sleep within my pccard smart card reader driver like ?
> > For Linux I do this the following way
> >
> > // interruptible_pause()
> > static inline void ipause(unsigned long amount) {
> > set_current_state(TASK_INTERRUPTIBLE);
> > schedule_timeout(amount);
> > }
> >
> > and within my driver I use the function DELAY which does a busy wait.
> >
> > The problem is, that the driver does not recognize when the pccard is detached during a read / write operation.
> >
> > Does the kernel update the struct device_t, so that the driver can use the function device_is_attached() to determine that the device is detached ?
>
> You can implement a 'dying' flag in your softc structure (and
> subsequent macro in order to handle).
But that won't tell you if the hardware has disappeared. Experience
has shown that dying isn't such a good idea in many cases and tends to
cause more races than it solves.
Warner
home |
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20061108.100125.104107782.imp>
