Commit 9399e05e authored by Linus Torvalds's avatar Linus Torvalds

Merge bk://linuxusb.bkbits.net/gregkh-2.6

into home.osdl.org:/home/torvalds/v2.5/linux
parents 0aef2868 4f428f01
......@@ -646,7 +646,7 @@ static void __init quirk_disable_pxb(struct pci_dev *pdev)
int interrupt_line_quirk;
static void __init quirk_via_bridge(struct pci_dev *pdev)
static void __devinit quirk_via_bridge(struct pci_dev *pdev)
{
if(pdev->devfn == 0)
interrupt_line_quirk = 1;
......
......@@ -426,8 +426,11 @@ static int ehci_start (struct usb_hcd *hcd)
*/
if (HCC_64BIT_ADDR (hcc_params)) {
writel (0, &ehci->regs->segment);
#if 0
// this is deeply broken on almost all architectures
if (!pci_set_dma_mask (ehci->hcd.pdev, 0xffffffffffffffffULL))
ehci_info (ehci, "enabled 64bit PCI DMA\n");
#endif
}
/* help hc dma work well with cachelines */
......
......@@ -1120,8 +1120,11 @@ static int kaweth_probe(
usb_set_intfdata(intf, kaweth);
#if 0
// dma_supported() is deeply broken on almost all architectures
if (dma_supported (&intf->dev, 0xffffffffffffffffULL))
kaweth->net->features |= NETIF_F_HIGHDMA;
#endif
SET_NETDEV_DEV(netdev, &intf->dev);
if (register_netdev(netdev) != 0) {
......
......@@ -2972,9 +2972,12 @@ usbnet_probe (struct usb_interface *udev, const struct usb_device_id *prod)
strcpy (net->name, "usb%d");
memcpy (net->dev_addr, node_id, sizeof node_id);
#if 0
// dma_supported() is deeply broken on almost all architectures
// possible with some EHCI controllers
if (dma_supported (&udev->dev, 0xffffffffffffffffULL))
net->features |= NETIF_F_HIGHDMA;
#endif
net->change_mtu = usbnet_change_mtu;
net->get_stats = usbnet_get_stats;
......
......@@ -417,10 +417,21 @@ static int usb_stor_control_thread(void * __us)
scsi_unlock(host);
} /* for (;;) */
/* notify the exit routine that we're actually exiting now */
complete(&(us->notify));
return 0;
/* notify the exit routine that we're actually exiting now
*
* complete()/wait_for_completion() is similar to up()/down(),
* except that complete() is safe in the case where the structure
* is getting deleted in a parallel mode of execution (i.e. just
* after the down() -- that's necessary for the thread-shutdown
* case.
*
* complete_and_exit() goes even further than this -- it is safe in
* the case that the thread of the caller is going away (not just
* the structure) -- this is necessary for the module-remove case.
* This is important in preemption kernels, which transfer the flow
* of execution immediately upon a complete().
*/
complete_and_exit(&(us->notify), 0);
}
/***********************************************************************
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment