Hi all,
We are porting a usb host controller driver from 2.4.18 kernel to 2.6.12
kernel. We face some issues with
mark_bh( ) call. Can anyone suggest us how we proceed in porting mark_bh( )
in the 2.6.12 kernel.
thanks and regards
shiva g
On Wed, Mar 29, 2006 at 04:12:43PM +0530, shiva g wrote:
> Hi all,
> We are porting a usb host controller driver from 2.4.18 kernel to 2.6.12
> kernel. We face some issues with
> mark_bh( ) call. Can anyone suggest us how we proceed in porting mark_bh( )
> in the 2.6.12 kernel.
Posting the source may give you more/better feedback...
Sam
Here is the source
static __inline__ void usbd_schedule_device_bh(struct usb_device_instance
*device)
{
if (device && (device->status != USBD_CLOSING) &&
!device->device_bh.sync) {
queue_task(&device->device_bh, &tq_immediate);
mark_bh(IMMEDIATE_BH);
}
}
Also,in the below code, will replacing "schedule_task" simply by
"schedule_work" work?
static __inline__ void usbd_schedule_function_bh(struct usb_device_instance
*device)
{
if (device && (device->status != USBD_CLOSING) &&
!device->function_bh.sync) {
schedule_task(&device->function_bh);
}
---- Original Message -----
From: "Sam Ravnborg" <[email protected]>
To: "shiva g" <[email protected]>
Cc: <[email protected]>
Sent: Wednesday, March 29, 2006 4:26 PM
Subject: Re: mark_bh in Linux 2.6.12 kernel
> On Wed, Mar 29, 2006 at 04:12:43PM +0530, shiva g wrote:
>> Hi all,
>> We are porting a usb host controller driver from 2.4.18 kernel to
>> 2.6.12
>> kernel. We face some issues with
>> mark_bh( ) call. Can anyone suggest us how we proceed in porting
>> mark_bh( )
>> in the 2.6.12 kernel.
> Posting the source may give you more/better feedback...
>
> Sam
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
On Wed, Mar 29, 2006 at 04:31:49PM +0530, shiva g wrote:
> Here is the source
>
> static __inline__ void usbd_schedule_device_bh(struct usb_device_instance
> *device)
> {
> if (device && (device->status != USBD_CLOSING) &&
> !device->device_bh.sync) {
> queue_task(&device->device_bh, &tq_immediate);
> mark_bh(IMMEDIATE_BH);
> }
> }
>
> Also,in the below code, will replacing "schedule_task" simply by
> "schedule_work" work?
> static __inline__ void usbd_schedule_function_bh(struct usb_device_instance
> *device)
> {
> if (device && (device->status != USBD_CLOSING) &&
> !device->function_bh.sync) {
> schedule_task(&device->function_bh);
> }
>
Have a look at http://lwn.net/images/pdf/LDD3/ch10.pdf
It should answer your questions.
Peter
--
Peter Hagervall......................email: [email protected]
Department of Computing Science........tel: +46(0)90 786 7018
University of Ume?, SE-901 87 Ume?.....fax: +46(0)90 786 6126