Some driver changes were done by Oliver Neukum and David Brownell.
// Give this to the USB subsystem so it can tell us
// when more data arrives.
- if ( (res = usb_submit_urb(ether_dev->rx_urb)) ) {
+ if ( (res = usb_submit_urb(ether_dev->rx_urb, GFP_KERNEL)) ) {
warn( __FUNCTION__ " failed submint rx_urb %d", res);
}
ether_dev->tx_urb->transfer_buffer_length = count;
// Send the URB on its merry way.
- if ((res = usb_submit_urb(ether_dev->tx_urb))) {
+ if ((res = usb_submit_urb(ether_dev->tx_urb, GFP_KERNEL))) {
// Hmm... It didn't go. Tell someone...
warn("failed tx_urb %d", res);
// update some stats...
read_bulk_callback, ether_dev );
// Put it out there so the device can send us stuff
- if ( (res = usb_submit_urb(ether_dev->rx_urb)) )
+ if ( (res = usb_submit_urb(ether_dev->rx_urb, GFP_KERNEL)) )
{
// Hmm... Okay...
warn( __FUNCTION__ " failed rx_urb %d", res );
urb->actual_length = 0;
urb->dev = acm->dev;
- if (usb_submit_urb(urb))
+ if (usb_submit_urb(urb, GFP_KERNEL))
dbg("failed resubmitting read urb");
}
unlock_kernel();
acm->ctrlurb.dev = acm->dev;
- if (usb_submit_urb(&acm->ctrlurb))
+ if (usb_submit_urb(&acm->ctrlurb, GFP_KERNEL))
dbg("usb_submit_urb(ctrl irq) failed");
acm->readurb.dev = acm->dev;
- if (usb_submit_urb(&acm->readurb))
+ if (usb_submit_urb(&acm->readurb, GFP_KERNEL))
dbg("usb_submit_urb(read bulk) failed");
acm_set_control(acm, acm->ctrlout = ACM_CTRL_DTR | ACM_CTRL_RTS);
acm->writeurb.transfer_buffer_length = count;
acm->writeurb.dev = acm->dev;
- if (usb_submit_urb(&acm->writeurb))
+ if (usb_submit_urb(&acm->writeurb, GFP_KERNEL))
dbg("usb_submit_urb(write bulk) failed");
return count;
if (!usbin_retire_desc(u, urb) &&
u->flags & FLG_RUNNING &&
!usbin_prepare_desc(u, urb) &&
- (suret = usb_submit_urb(urb)) == 0) {
+ (suret = usb_submit_urb(urb, GFP_KERNEL)) == 0) {
u->flags |= mask;
} else {
u->flags &= ~(mask | FLG_RUNNING);
if (!usbin_sync_retire_desc(u, urb) &&
u->flags & FLG_RUNNING &&
!usbin_sync_prepare_desc(u, urb) &&
- (suret = usb_submit_urb(urb)) == 0) {
+ (suret = usb_submit_urb(urb, GFP_KERNEL)) == 0) {
u->flags |= mask;
} else {
u->flags &= ~(mask | FLG_RUNNING);
urb->number_of_packets = DESCFRAMES;
urb->context = as;
urb->complete = usbin_completed;
- if (!usbin_prepare_desc(u, urb) && !usb_submit_urb(urb))
+ if (!usbin_prepare_desc(u, urb) && !usb_submit_urb(urb, GFP_KERNEL))
u->flags |= FLG_URB0RUNNING;
else
u->flags &= ~FLG_RUNNING;
urb->number_of_packets = DESCFRAMES;
urb->context = as;
urb->complete = usbin_completed;
- if (!usbin_prepare_desc(u, urb) && !usb_submit_urb(urb))
+ if (!usbin_prepare_desc(u, urb) && !usb_submit_urb(urb, GFP_KERNEL))
u->flags |= FLG_URB1RUNNING;
else
u->flags &= ~FLG_RUNNING;
urb->context = as;
urb->complete = usbin_sync_completed;
/* stride: u->syncinterval */
- if (!usbin_sync_prepare_desc(u, urb) && !usb_submit_urb(urb))
+ if (!usbin_sync_prepare_desc(u, urb) && !usb_submit_urb(urb, GFP_KERNEL))
u->flags |= FLG_SYNC0RUNNING;
else
u->flags &= ~FLG_RUNNING;
urb->context = as;
urb->complete = usbin_sync_completed;
/* stride: u->syncinterval */
- if (!usbin_sync_prepare_desc(u, urb) && !usb_submit_urb(urb))
+ if (!usbin_sync_prepare_desc(u, urb) && !usb_submit_urb(urb, GFP_KERNEL))
u->flags |= FLG_SYNC1RUNNING;
else
u->flags &= ~FLG_RUNNING;
if (!usbout_retire_desc(u, urb) &&
u->flags & FLG_RUNNING &&
!usbout_prepare_desc(u, urb) &&
- (suret = usb_submit_urb(urb)) == 0) {
+ (suret = usb_submit_urb(urb, GFP_KERNEL)) == 0) {
u->flags |= mask;
} else {
u->flags &= ~(mask | FLG_RUNNING);
if (!usbout_sync_retire_desc(u, urb) &&
u->flags & FLG_RUNNING &&
!usbout_sync_prepare_desc(u, urb) &&
- (suret = usb_submit_urb(urb)) == 0) {
+ (suret = usb_submit_urb(urb, GFP_KERNEL)) == 0) {
u->flags |= mask;
} else {
u->flags &= ~(mask | FLG_RUNNING);
urb->number_of_packets = DESCFRAMES;
urb->context = as;
urb->complete = usbout_completed;
- if (!usbout_prepare_desc(u, urb) && !usb_submit_urb(urb))
+ if (!usbout_prepare_desc(u, urb) && !usb_submit_urb(urb, GFP_KERNEL))
u->flags |= FLG_URB0RUNNING;
else
u->flags &= ~FLG_RUNNING;
urb->number_of_packets = DESCFRAMES;
urb->context = as;
urb->complete = usbout_completed;
- if (!usbout_prepare_desc(u, urb) && !usb_submit_urb(urb))
+ if (!usbout_prepare_desc(u, urb) && !usb_submit_urb(urb, GFP_KERNEL))
u->flags |= FLG_URB1RUNNING;
else
u->flags &= ~FLG_RUNNING;
urb->context = as;
urb->complete = usbout_sync_completed;
/* stride: u->syncinterval */
- if (!usbout_sync_prepare_desc(u, urb) && !usb_submit_urb(urb))
+ if (!usbout_sync_prepare_desc(u, urb) && !usb_submit_urb(urb, GFP_KERNEL))
u->flags |= FLG_SYNC0RUNNING;
else
u->flags &= ~FLG_RUNNING;
urb->context = as;
urb->complete = usbout_sync_completed;
/* stride: u->syncinterval */
- if (!usbout_sync_prepare_desc(u, urb) && !usb_submit_urb(urb))
+ if (!usbout_sync_prepare_desc(u, urb) && !usb_submit_urb(urb, GFP_KERNEL))
u->flags |= FLG_SYNC1RUNNING;
else
u->flags &= ~FLG_RUNNING;
urb = acep->urbp;
dbg ("auerchain_complete: submitting next urb from chain");
urb->status = 0; /* needed! */
- result = usb_submit_urb( urb);
+ result = usb_submit_urb(urb, GFP_KERNEL);
/* check for submit errors */
if (result) {
if (acep) {
dbg("submitting urb immediate");
urb->status = 0; /* needed! */
- result = usb_submit_urb( urb);
+ result = usb_submit_urb(urb, GFP_KERNEL);
/* check for submit errors */
if (result) {
urb->status = result;
FILL_INT_URB (cp->inturbp, cp->usbdev, usb_rcvintpipe (cp->usbdev,AU_IRQENDP), cp->intbufp, irqsize, auerswald_int_complete, cp, ep->bInterval);
/* start the urb */
cp->inturbp->status = 0; /* needed! */
- ret = usb_submit_urb (cp->inturbp);
+ ret = usb_submit_urb (cp->inturbp, GFP_KERNEL);
intoend:
if (ret < 0) {
(unsigned char*)dr, urb->transfer_buffer, len, bluetooth_ctrl_callback, bluetooth);
/* send it down the pipe */
- status = usb_submit_urb(urb);
+ status = usb_submit_urb(urb, GFP_KERNEL);
if (status)
dbg(__FUNCTION__ " - usb_submit_urb(control) failed with status = %d", status);
bluetooth->bulk_in_buffer,
bluetooth->bulk_in_buffer_size,
bluetooth_read_bulk_callback, bluetooth);
- result = usb_submit_urb(bluetooth->read_urb);
+ result = usb_submit_urb(bluetooth->read_urb, GFP_KERNEL);
if (result)
dbg(__FUNCTION__ " - usb_submit_urb(read bulk) failed with status %d", result);
#endif
bluetooth->interrupt_in_buffer_size,
bluetooth_int_callback, bluetooth,
bluetooth->interrupt_in_interval);
- result = usb_submit_urb(bluetooth->interrupt_in_urb);
+ result = usb_submit_urb(bluetooth->interrupt_in_urb, GFP_KERNEL);
if (result)
dbg(__FUNCTION__ " - usb_submit_urb(interrupt in) failed with status %d", result);
}
urb->transfer_flags |= USB_QUEUE_BULK;
/* send it down the pipe */
- retval = usb_submit_urb(urb);
+ retval = usb_submit_urb(urb, GFP_KERNEL);
if (retval) {
dbg(__FUNCTION__ " - usb_submit_urb(write bulk) failed with error = %d", retval);
goto exit;
usb_rcvbulkpipe(bluetooth->dev, bluetooth->bulk_in_endpointAddress),
bluetooth->bulk_in_buffer, bluetooth->bulk_in_buffer_size,
bluetooth_read_bulk_callback, bluetooth);
- result = usb_submit_urb(bluetooth->read_urb);
+ result = usb_submit_urb(bluetooth->read_urb, GFP_KERNEL);
if (result)
err (__FUNCTION__ " - failed submitting read urb, error %d", result);
}
usb_rcvbulkpipe(bluetooth->dev, bluetooth->bulk_in_endpointAddress),
bluetooth->bulk_in_buffer, bluetooth->bulk_in_buffer_size,
bluetooth_read_bulk_callback, bluetooth);
- result = usb_submit_urb(bluetooth->read_urb);
+ result = usb_submit_urb(bluetooth->read_urb, GFP_KERNEL);
if (result)
err (__FUNCTION__ " - failed resubmitting read urb, error %d", result);
usb_rcvbulkpipe(bluetooth->dev, bluetooth->bulk_in_endpointAddress),
bluetooth->bulk_in_buffer, bluetooth->bulk_in_buffer_size,
bluetooth_read_bulk_callback, bluetooth);
- result = usb_submit_urb(bluetooth->read_urb);
+ result = usb_submit_urb(bluetooth->read_urb, GFP_KERNEL);
if (result)
err (__FUNCTION__ " - failed resubmitting read urb, error %d", result);
if ((data[1] & 0x80) && !test_and_set_bit(RX_RUNNING, &catc->flags)) {
catc->rx_urb->dev = catc->usbdev;
- if ((status = usb_submit_urb(catc->rx_urb)) < 0) {
+ if ((status = usb_submit_urb(catc->rx_urb, GFP_KERNEL)) < 0) {
err("submit(rx_urb) status %d", status);
return;
}
catc->tx_urb->transfer_buffer = catc->tx_buf[catc->tx_idx];
catc->tx_urb->dev = catc->usbdev;
- if ((status = usb_submit_urb(catc->tx_urb)) < 0)
+ if ((status = usb_submit_urb(catc->tx_urb, GFP_KERNEL)) < 0)
err("submit(tx_urb), status %d", status);
catc->tx_idx = !catc->tx_idx;
if (!q->dir && q->buf && q->len)
memcpy(catc->ctrl_buf, q->buf, q->len);
- if ((status = usb_submit_urb(catc->ctrl_urb)))
+ if ((status = usb_submit_urb(catc->ctrl_urb, GFP_KERNEL)))
err("submit(ctrl_urb) status %d", status);
}
int status;
catc->irq_urb->dev = catc->usbdev;
- if ((status = usb_submit_urb(catc->irq_urb)) < 0) {
+ if ((status = usb_submit_urb(catc->irq_urb, GFP_KERNEL)) < 0) {
err("submit(irq_urb) status %d", status);
return -1;
}
end = list_entry (s->rec_buff_list.prev, buff_t, buff_list);
- ret = usb_submit_urb (end->purb);
+ ret = usb_submit_urb (end->purb, GFP_KERNEL);
if (ret) {
err("usb_submit_urb returned:%d", ret);
if (dabusb_add_buf_tail (s, &s->free_buff_list, &s->rec_buff_list))
if (test_bit(intf, &ps->ifclaimed))
return 0;
/* if not yet claimed, claim it for the driver */
- printk(KERN_WARNING "usbdevfs: process %d (%s) did not claim interface %u before use\n",
+ printk(KERN_WARNING "usbfs: process %d (%s) did not claim interface %u before use\n",
current->pid, current->comm, intf);
return claimintf(ps, intf);
}
}
free_page((unsigned long)tbuf);
if (i<0) {
- printk(KERN_DEBUG "usbdevfs: USBDEVFS_CONTROL failed dev %d rqt %u rq %u len %u ret %d\n",
+ printk(KERN_DEBUG "usbfs: USBDEVFS_CONTROL failed dev %d rqt %u rq %u len %u ret %d\n",
dev->devnum, ctrl.bRequestType, ctrl.bRequest, ctrl.wLength, i);
}
return i;
}
free_page((unsigned long)tbuf);
if (i < 0) {
- printk(KERN_WARNING "usbdevfs: USBDEVFS_BULK failed dev %d ep 0x%x len %u ret %d\n",
+ printk(KERN_WARNING "usbfs: USBDEVFS_BULK failed dev %d ep 0x%x len %u ret %d\n",
dev->devnum, bulk.ep, bulk.len, i);
return i;
}
}
}
async_newpending(as);
- if ((ret = usb_submit_urb(as->urb))) {
- printk(KERN_DEBUG "usbdevfs: usb_submit_urb returned %d\n", ret);
+ if ((ret = usb_submit_urb(as->urb, GFP_KERNEL))) {
+ printk(KERN_DEBUG "usbfs: usb_submit_urb returned %d\n", ret);
async_removepending(as);
free_async(as);
return ret;
hid->urbout.setup_packet = (void *) &(hid->out[hid->outtail].dr);
hid->urbout.dev = hid->dev;
- if (usb_submit_urb(&hid->urbout)) {
+ if (usb_submit_urb(&hid->urbout, GFP_KERNEL)) {
err("usb_submit_urb(out) failed");
return -1;
}
hid->urb.dev = hid->dev;
- if (usb_submit_urb(&hid->urb))
+ if (usb_submit_urb(&hid->urb, GFP_KERNEL))
return -EIO;
return 0;
desc->interrupt_interval
);
- if ( 0 > usb_submit_urb(desc->controlurb)) {
+ if ( 0 > usb_submit_urb(desc->controlurb, GFP_KERNEL)) {
kfree(sht->proc_name);
return 0;
}
hpusbscsi->scallback = callback;
hpusbscsi->srb = srb;
- res = usb_submit_urb(hpusbscsi->dataurb);
+ res = usb_submit_urb(hpusbscsi->dataurb, GFP_ATOMIC);
if (unlikely(res)) {
hpusbscsi->state = HP_STATE_FREE;
TRACE_STATE;
hpusbscsi
);
- res = usb_submit_urb(u);
+ res = usb_submit_urb(u, GFP_ATOMIC);
if (unlikely(res))
hpusbscsi->state = HP_STATE_ERROR;
TRACE_STATE;
hpusbscsi
);
- res = usb_submit_urb(u);
+ res = usb_submit_urb(u, GFP_ATOMIC);
if (unlikely(res)) {
handle_usb_error(hpusbscsi);
return;
FILL_INT_URB(hub->urb, dev, pipe, hub->buffer, maxp, hub_irq,
hub, endpoint->bInterval);
- ret = usb_submit_urb(hub->urb);
+ ret = usb_submit_urb(hub->urb, GFP_KERNEL);
if (ret) {
err("usb_submit_urb failed (%d)", ret);
kfree(hub->descriptor);
return -1;
hub->urb->dev = dev;
- if (usb_submit_urb(hub->urb))
+ if (usb_submit_urb(hub->urb, GFP_KERNEL))
return -1;
usb_hub_power_on(hub);
/****************************************************************
* kaweth_resubmit_rx_urb
****************************************************************/
-static inline void kaweth_resubmit_rx_urb(struct kaweth_device *kaweth)
+static inline void kaweth_resubmit_rx_urb(struct kaweth_device *kaweth,
+ int mem_flags)
{
int result;
kaweth_usb_receive,
kaweth);
- if((result = usb_submit_urb(kaweth->rx_urb))) {
+ if((result = usb_submit_urb(kaweth->rx_urb, mem_flags))) {
kaweth_err("resubmitting rx_urb %d failed", result);
}
}
urb->status,
count,
(int)pkt_len);
- kaweth_resubmit_rx_urb(kaweth);
+ kaweth_resubmit_rx_urb(kaweth, GFP_ATOMIC);
return;
}
kaweth_err("Packet length too long for USB frame (pkt_len: %x, count: %x)",pkt_len, count);
kaweth_err("Packet len & 2047: %x", pkt_len & 2047);
kaweth_err("Count 2: %x", count2);
- kaweth_resubmit_rx_urb(kaweth);
+ kaweth_resubmit_rx_urb(kaweth, GFP_ATOMIC);
return;
}
if(!(skb = dev_alloc_skb(pkt_len+2))) {
- kaweth_resubmit_rx_urb(kaweth);
+ kaweth_resubmit_rx_urb(kaweth, GFP_ATOMIC);
return;
}
kaweth->stats.rx_bytes += pkt_len;
}
- kaweth_resubmit_rx_urb(kaweth);
+ kaweth_resubmit_rx_urb(kaweth, GFP_ATOMIC);
}
/****************************************************************
kaweth_dbg("Opening network device.");
- kaweth_resubmit_rx_urb(kaweth);
+ MOD_INC_USE_COUNT;
- netif_start_queue(net);
+ kaweth_resubmit_rx_urb(kaweth, GFP_KERNEL);
- MOD_INC_USE_COUNT;
+ netif_start_queue(net);
kaweth_async_set_rx_mode(kaweth);
return 0;
kaweth_usb_transmit_complete,
kaweth);
- if((res = usb_submit_urb(kaweth->tx_urb)))
+ if((res = usb_submit_urb(kaweth->tx_urb, GFP_ATOMIC)))
{
kaweth_warn("kaweth failed tx_urb %d", res);
kaweth->stats.tx_errors++;
set_current_state(TASK_INTERRUPTIBLE);
add_wait_queue(&awd.wqh, &wait);
urb->context = &awd;
- status = usb_submit_urb(urb);
+ status = usb_submit_urb(urb, GFP_KERNEL);
if (status) {
// something went wrong
usb_free_urb(urb);
retval=0;
mdc800->irq_urb->dev = mdc800->dev;
- if (usb_submit_urb (mdc800->irq_urb))
+ if (usb_submit_urb (mdc800->irq_urb, GFP_KERNEL))
{
err ("request USB irq fails (submit_retval=%i urb_status=%i).",retval, mdc800->irq_urb->status);
errn = -EIO;
/* Download -> Request new bytes */
mdc800->download_urb->dev = mdc800->dev;
- if (usb_submit_urb (mdc800->download_urb))
+ if (usb_submit_urb (mdc800->download_urb, GFP_KERNEL))
{
err ("Can't submit download urb (status=%i)",mdc800->download_urb->status);
up (&mdc800->io_lock);
mdc800->state=WORKING;
memcpy (mdc800->write_urb->transfer_buffer, mdc800->in,8);
mdc800->write_urb->dev = mdc800->dev;
- if (usb_submit_urb (mdc800->write_urb))
+ if (usb_submit_urb (mdc800->write_urb, GFP_KERNEL))
{
err ("submitting write urb fails (status=%i)", mdc800->write_urb->status);
up (&mdc800->io_lock);
transfer->status = 0;
- res = usb_submit_urb( transfer );
+ res = usb_submit_urb( transfer, GFP_ATOMIC );
if ( unlikely(res) ) {
MTS_INT_ERROR( "could not submit URB! Error was %d\n",(int)res );
context->srb->result = DID_ERROR << 16;
mts_build_transfer_context( srb, desc );
desc->context.final_callback = callback;
- res=usb_submit_urb(desc->urb);
+ /* here we need ATOMIC as we are called with the iolock */
+ res=usb_submit_urb(desc->urb, GFP_ATOMIC);
if(unlikely(res)){
MTS_ERROR("error %d submitting URB\n",(int)res);
for (n = 0; n < OV511_NUMSBUF; n++) {
ov511->sbuf[n].urb->dev = ov511->dev;
- err = usb_submit_urb(ov511->sbuf[n].urb);
+ err = usb_submit_urb(ov511->sbuf[n].urb, GFP_KERNEL);
if (err)
err("init isoc: usb_submit_urb(%d) ret %d", n, err);
}
add_wait_queue( &pegasus->ctrl_wait, &wait );
set_current_state( TASK_UNINTERRUPTIBLE );
- if ( (ret = usb_submit_urb( pegasus->ctrl_urb )) ) {
+ /* using ATOMIC, we'd never wake up if we slept */
+ if ( (ret = usb_submit_urb( pegasus->ctrl_urb, GFP_ATOMIC )) ) {
err("%s: BAD CTRLs %d", __FUNCTION__, ret);
goto out;
}
add_wait_queue( &pegasus->ctrl_wait, &wait );
set_current_state( TASK_UNINTERRUPTIBLE );
- if ( (ret = usb_submit_urb( pegasus->ctrl_urb )) ) {
+ if ( (ret = usb_submit_urb( pegasus->ctrl_urb, GFP_ATOMIC )) ) {
err("%s: BAD CTRL %d", __FUNCTION__, ret);
goto out;
}
add_wait_queue( &pegasus->ctrl_wait, &wait );
set_current_state( TASK_UNINTERRUPTIBLE );
- if ( (ret = usb_submit_urb( pegasus->ctrl_urb )) ) {
+ if ( (ret = usb_submit_urb( pegasus->ctrl_urb, GFP_ATOMIC )) ) {
err("%s: BAD CTRL %d", __FUNCTION__, ret);
goto out;
}
(char *)&pegasus->dr,
pegasus->eth_regs, 3, ctrl_callback, pegasus );
- if ( (ret = usb_submit_urb( pegasus->ctrl_urb )) )
+ if ( (ret = usb_submit_urb( pegasus->ctrl_urb, GFP_ATOMIC )) )
err("%s: BAD CTRL %d, flgs %x",__FUNCTION__,ret,pegasus->flags);
return ret;
usb_rcvbulkpipe(pegasus->usb, 1),
pegasus->rx_buff, PEGASUS_MAX_MTU,
read_bulk_callback, pegasus );
- if ( (res = usb_submit_urb(pegasus->rx_urb)) )
+ if ( (res = usb_submit_urb(pegasus->rx_urb, GFP_ATOMIC)) )
warn("%s: failed submint rx_urb %d", __FUNCTION__, res);
pegasus->flags &= ~PEGASUS_RX_BUSY;
}
pegasus->tx_buff, PEGASUS_MAX_MTU,
write_bulk_callback, pegasus );
pegasus->tx_urb->transfer_buffer_length = count;
- if ((res = usb_submit_urb(pegasus->tx_urb))) {
+ if ((res = usb_submit_urb(pegasus->tx_urb, GFP_ATOMIC))) {
warn("failed tx_urb %d", res);
pegasus->stats.tx_errors++;
netif_start_queue( net );
usb_rcvbulkpipe(pegasus->usb, 1),
pegasus->rx_buff, PEGASUS_MAX_MTU,
read_bulk_callback, pegasus );
- if ( (res = usb_submit_urb(pegasus->rx_urb)) )
+ if ( (res = usb_submit_urb(pegasus->rx_urb, GFP_KERNEL)) )
warn("%s: failed rx_urb %d", __FUNCTION__, res);
#ifdef PEGASUS_USE_INTR
FILL_INT_URB( pegasus->intr_urb, pegasus->usb,
usb_rcvintpipe(pegasus->usb, 3),
pegasus->intr_buff, sizeof(pegasus->intr_buff),
intr_callback, pegasus, pegasus->intr_interval );
- if ( (res = usb_submit_urb(pegasus->intr_urb)) )
+ if ( (res = usb_submit_urb(pegasus->intr_urb, GFP_KERNEL)) )
warn("%s: failed intr_urb %d", __FUNCTION__, res);
#endif
netif_start_queue( net );
if (usblp->bidir) {
usblp->readcount = 0;
usblp->readurb.dev = usblp->dev;
- if (usb_submit_urb(&usblp->readurb) < 0) {
+ if (usb_submit_urb(&usblp->readurb, GFP_KERNEL) < 0) {
retval = -EIO;
usblp->used = 0;
file->private_data = NULL;
usblp->writeurb.dev = usblp->dev;
usblp->wcomplete = 0;
- if (usb_submit_urb(&usblp->writeurb)) {
+ if (usb_submit_urb(&usblp->writeurb, GFP_KERNEL)) {
count = -EIO;
up (&usblp->sem);
break;
usblp->minor, usblp->readurb.status);
usblp->readurb.dev = usblp->dev;
usblp->readcount = 0;
- usb_submit_urb(&usblp->readurb);
+ usb_submit_urb(&usblp->readurb, GFP_KERNEL);
count = -EIO;
goto done;
}
usblp->readcount = 0;
usblp->readurb.dev = usblp->dev;
usblp->rcomplete = 0;
- if (usb_submit_urb(&usblp->readurb)) {
+ if (usb_submit_urb(&usblp->readurb, GFP_KERNEL)) {
count = -EIO;
goto done;
}
/* link */
for (i = 0; i < MAX_ISO_BUFS; i++) {
- ret = usb_submit_urb(pdev->sbuf[i].urb);
+ ret = usb_submit_urb(pdev->sbuf[i].urb, GFP_KERNEL);
if (ret)
Err("isoc_init() submit_urb %d failed with error %d\n", i, ret);
else
// endpoint[(int)have_intr].bInterval);
250);
- if (usb_submit_urb(scn->scn_irq)) {
+ if (usb_submit_urb(scn->scn_irq, GFP_KERNEL)) {
err("probe_scanner(%d): Unable to allocate INT URB.", scn_minor);
kfree(scn);
up(&scn_mutex);
/* Resubmit urb for new data */
urb->status=0;
urb->dev=se401->dev;
- if(usb_submit_urb(urb))
+ if(usb_submit_urb(urb, GFP_KERNEL))
info("urb burned down");
return;
}
se401->urb[i]=urb;
- err=usb_submit_urb(se401->urb[i]);
+ err=usb_submit_urb(se401->urb[i], GFP_KERNEL);
if(err)
err("urb burned down");
}
se401,
HZ/10
);
- if (usb_submit_urb(se401->inturb)) {
+ if (usb_submit_urb(se401->inturb, GFP_KERNEL)) {
info("int urb burned down");
return 1;
}
/* Resubmit urb for new data */
urb->status = 0;
urb->dev = stv680->udev;
- if (usb_submit_urb (urb))
+ if (usb_submit_urb (urb, GFP_KERNEL))
PDEBUG (0, "STV(e): urb burned down in video irq");
return;
} /* _video_irq */
urb->timeout = PENCAM_TIMEOUT * 2;
urb->transfer_flags |= USB_QUEUE_BULK;
stv680->urb[i] = urb;
- err = usb_submit_urb (stv680->urb[i]);
+ err = usb_submit_urb (stv680->urb[i], GFP_KERNEL);
if (err)
PDEBUG (0, "STV(e): urb burned down in start stream");
} /* i STV680_NUMSBUF */
skel_write_bulk_callback, dev);
/* send the data out the bulk port */
- retval = usb_submit_urb(dev->write_urb);
+ /* a character device write uses GFP_KERNEL,
+ unless a spinlock is held */
+ retval = usb_submit_urb(dev->write_urb, GFP_KERNEL);
if (retval) {
err(__FUNCTION__ " - failed submitting write urb, error %d",
retval);
kbd->leds = kbd->newleds;
kbd->led->dev = kbd->usbdev;
- if (usb_submit_urb(kbd->led))
+ if (usb_submit_urb(kbd->led, GFP_KERNEL))
err("usb_submit_urb(leds) failed");
return 0;
kbd->leds = kbd->newleds;
kbd->led->dev = kbd->usbdev;
- if (usb_submit_urb(kbd->led))
+ if (usb_submit_urb(kbd->led, GFP_KERNEL))
err("usb_submit_urb(leds) failed");
}
return 0;
kbd->irq->dev = kbd->usbdev;
- if (usb_submit_urb(kbd->irq))
+ if (usb_submit_urb(kbd->irq, GFP_KERNEL))
return -EIO;
return 0;
return 0;
mouse->irq->dev = mouse->usbdev;
- if (usb_submit_urb(mouse->irq))
+ if (usb_submit_urb(mouse->irq, GFP_KERNEL))
return -EIO;
return 0;
// issue usb interrupt read
if (priv && priv->irq_urb) {
// submit urb
- if ((retval = usb_submit_urb (priv->irq_urb)) != 0)
+ if ((retval = usb_submit_urb (priv->irq_urb, GFP_KERNEL)) != 0)
dbg ("gl_interrupt_read: submit fail - %X...", retval);
else
dbg ("gl_interrupt_read: submit success...");
spin_lock_irqsave (&dev->rxq.lock, lockflags);
if (netif_running (&dev->net)) {
- if ((retval = usb_submit_urb (urb)) != 0) {
+ if ((retval = usb_submit_urb (urb, GFP_ATOMIC)) != 0) {
dbg ("%s rx submit, %d", dev->net.name, retval);
tasklet_schedule (&dev->bh);
} else {
#endif /* CONFIG_USB_NET1080 */
netif_stop_queue (net);
- if ((retval = usb_submit_urb (urb)) != 0) {
+ if ((retval = usb_submit_urb (urb, GFP_ATOMIC)) != 0) {
netif_start_queue (net);
dbg ("%s tx: submit urb err %d", net->name, retval);
} else {
/* Submit all URBs */
for (i=0; i < USBVIDEO_NUMSBUF; i++) {
- errFlag = usb_submit_urb(uvd->sbuf[i].urb);
+ errFlag = usb_submit_urb(uvd->sbuf[i].urb, GFP_KERNEL);
if (errFlag)
err("%s: usb_submit_isoc(%d) ret %d", proc, i, errFlag);
}
synchronize(vicam);
mdelay(10);
vicam_parameters(vicam);
- printk("Submiting urb: %d\n", usb_submit_urb(vicam->readurb));
+ printk(KERN_DEBUG "Submiting urb: %d\n", usb_submit_urb(vicam->readurb, GFP_KERNEL));
#endif
}
memcpy(vicam->fbuf, buf+64, 0x1e480);
if (!change_pending) {
- if (usb_submit_urb(urb))
+ if (usb_submit_urb(urb, GFP_ATOMIC))
dbg("failed resubmitting read urb");
} else {
change_pending = 0;
FILL_BULK_URB(vicam->readurb, vicam->udev, usb_rcvbulkpipe(vicam->udev, 0x81),
buf, 0x1e480, vicam_bulk, vicam);
- printk("Submiting urb: %d\n", usb_submit_urb(vicam->readurb));
+ printk(KERN_DEBUG "Submiting urb: %d\n", usb_submit_urb(vicam->readurb, GFP_KERNEL));
return 0;
error:
return 0;
wacom->irq->dev = wacom->usbdev;
- if (usb_submit_urb(wacom->irq))
+ if (usb_submit_urb(wacom->irq, GFP_KERNEL))
return -EIO;
return 0;