* [BK PATCH] More fixes for 2.6.0-test9 @ 2003-11-07 19:26 Greg KH 2003-11-07 19:27 ` [PATCH] " Greg KH 0 siblings, 1 reply; 4+ messages in thread From: Greg KH @ 2003-11-07 19:26 UTC (permalink / raw) To: torvalds; +Cc: linux-usb-devel, linux-kernel Hi, Here are some more minor fixes for 2.6.0-test9. These fixes do the following: - fix oops with cardbus firewire controllers - fix oops with usbnet devices on non-i386 platforms - fix oops when removing the usb-storage module when using preempt. Please pull from: bk://linuxusb.bkbits.net/gregkh-2.6 Patches will be posted as a follow-up thread for those who want to see them. thanks, greg k-h drivers/pci/quirks.c | 2 +- drivers/usb/host/ehci-hcd.c | 3 +++ drivers/usb/net/kaweth.c | 3 +++ drivers/usb/net/usbnet.c | 3 +++ drivers/usb/storage/usb.c | 19 +++++++++++++++---- 5 files changed, 25 insertions(+), 5 deletions(-) ----- <michael:metaparadigm.com>: o PCI: Fix oops in quirk_via_bridge David Brownell: o USB: usb ignores 64bit dma Matthew Dharm: o USB: fix a thread-exit problem at module unload ^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH] More fixes for 2.6.0-test9 2003-11-07 19:26 [BK PATCH] More fixes for 2.6.0-test9 Greg KH @ 2003-11-07 19:27 ` Greg KH 2003-11-07 19:27 ` Greg KH 0 siblings, 1 reply; 4+ messages in thread From: Greg KH @ 2003-11-07 19:27 UTC (permalink / raw) To: linux-kernel, linux-usb-devel ChangeSet 1.1418, 2003/11/07 10:04:16-08:00, michael@metaparadigm.com [PATCH] PCI: Fix oops in quirk_via_bridge I have a VIA cardbus 1394 controller which oops on insertion after an APM suspend/resume cycle (without card inserted): bounds: 0000 [#1] CPU: 0 EIP: 0060:[<c0300060>] Tainted: PF EFLAGS: 00010206 EIP is at quirk_via_bridge+0x4/0x1c eax: 0000ffff ebx: c02982e0 ecx: d1958000 edx: 000c0010 esi: d1958000 edi: 00000001 ebp: 00000000 esp: da401ee8 ds: 007b es: 007b ss: 0068 Process pccardd (pid: 1093, threadinfo=da400000 task=da4c8780) Stack: c019fb85 d1958000 00000001 d1958000 00000000 c019fbc2 d1958000 00000001 c02980a0 d1958000 dfdebf14 c019d828 00000001 d1958000 00000000 dec2802c dfdebf00 dfdebf14 00000000 e3dfe7c7 dfdebf00 00000000 dec2802c da401f48 Call Trace: [<c019fb85>] pci_do_fixups+0x52/0x54 [<c019fbc2>] pci_fixup_device+0x3b/0x49 [<c019d828>] pci_scan_slot+0x46/0x8f [<e3dfe7c7>] cb_alloc+0x29/0xf7 [pcmcia_core] [<e3dfb9aa>] socket_insert+0x90/0x102 [pcmcia_core] [<e3dfbc0d>] socket_detect_change+0x54/0x7e [pcmcia_core] [<e3dfbdbc>] pccardd+0x185/0x1f9 [pcmcia_core] quirk_via_bridge (which is marked device PCI_ANY_ID) triggers on my 1394 controller which vendor=VIA but is not a bridge. Making the quirk __devinit solves the problem. drivers/pci/quirks.c | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) diff -Nru a/drivers/pci/quirks.c b/drivers/pci/quirks.c --- a/drivers/pci/quirks.c Fri Nov 7 11:22:16 2003 +++ b/drivers/pci/quirks.c Fri Nov 7 11:22:16 2003 @@ -646,7 +646,7 @@ 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; ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] More fixes for 2.6.0-test9 2003-11-07 19:27 ` [PATCH] " Greg KH @ 2003-11-07 19:27 ` Greg KH 2003-11-07 19:27 ` Greg KH 0 siblings, 1 reply; 4+ messages in thread From: Greg KH @ 2003-11-07 19:27 UTC (permalink / raw) To: linux-kernel, linux-usb-devel ChangeSet 1.1419, 2003/11/07 10:07:03-08:00, mdharm-usb@one-eyed-alien.net [PATCH] USB: fix a thread-exit problem at module unload This patch fixes a thread-exit problem when the usb-storage module is unloaded with a preemptable kernel. Please refer to the comments in the code for more detail. drivers/usb/storage/usb.c | 19 +++++++++++++++---- 1 files changed, 15 insertions(+), 4 deletions(-) diff -Nru a/drivers/usb/storage/usb.c b/drivers/usb/storage/usb.c --- a/drivers/usb/storage/usb.c Fri Nov 7 11:22:10 2003 +++ b/drivers/usb/storage/usb.c Fri Nov 7 11:22:10 2003 @@ -417,10 +417,21 @@ 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); } /*********************************************************************** ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] More fixes for 2.6.0-test9 2003-11-07 19:27 ` Greg KH @ 2003-11-07 19:27 ` Greg KH 0 siblings, 0 replies; 4+ messages in thread From: Greg KH @ 2003-11-07 19:27 UTC (permalink / raw) To: linux-kernel, linux-usb-devel ChangeSet 1.1420, 2003/11/07 10:19:35-08:00, david-b@pacbell.net [PATCH] USB: usb ignores 64bit dma The dma hooks whereby EHCI can pass 64bit DMA support up the driver stack (to avoid buffer copies) turn out to broken on most architectures(*). This patch just disables them all, since it looks like those mechanisms won't get fixed before 2.6.0-final. For now it'd only matter on a few big Intel boxes anyway. Please merge. - Dave (*) On x86, mips, and arm dma_supported() doesn't even compare with the device's mask. On several other architectures (reported on ppc, alpha, and sparc64), asking that question for non-PCI devices will just BUG() -- even though all info needed to answer the question is right at hand. drivers/usb/host/ehci-hcd.c | 3 +++ drivers/usb/net/kaweth.c | 3 +++ drivers/usb/net/usbnet.c | 3 +++ 3 files changed, 9 insertions(+) diff -Nru a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c --- a/drivers/usb/host/ehci-hcd.c Fri Nov 7 11:22:04 2003 +++ b/drivers/usb/host/ehci-hcd.c Fri Nov 7 11:22:04 2003 @@ -426,8 +426,11 @@ */ 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 */ diff -Nru a/drivers/usb/net/kaweth.c b/drivers/usb/net/kaweth.c --- a/drivers/usb/net/kaweth.c Fri Nov 7 11:22:04 2003 +++ b/drivers/usb/net/kaweth.c Fri Nov 7 11:22:04 2003 @@ -1120,8 +1120,11 @@ 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) { diff -Nru a/drivers/usb/net/usbnet.c b/drivers/usb/net/usbnet.c --- a/drivers/usb/net/usbnet.c Fri Nov 7 11:22:04 2003 +++ b/drivers/usb/net/usbnet.c Fri Nov 7 11:22:04 2003 @@ -2972,9 +2972,12 @@ 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; ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2003-11-08 0:24 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2003-11-07 19:26 [BK PATCH] More fixes for 2.6.0-test9 Greg KH 2003-11-07 19:27 ` [PATCH] " Greg KH 2003-11-07 19:27 ` Greg KH 2003-11-07 19:27 ` Greg KH
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox