Re: Re: Re: [BUG? kernel 2.6.32-git10] 3com 3c562 multifunction card does not work
Hi, >> >I have a bad feeling about this... might it be that cistpl.c isn't thread >> >safe at all? >> > >> >Could you test out this patch, please? >> With this patch, the 3c589_cs driver is not loaded at all. So I think this patch is not correct. >pcmcia_socket pcmcia_socket0: pccard: PCMCIA card inserted into slot 0 >pcmcia_socket pcmcia_socket0: cs: memory probe 0xd200-0xd40f: ___ Linux PCMCIA reimplementation list http://lists.infradead.org/mailman/listinfo/linux-pcmcia
Re: Re: [BUG? kernel 2.6.32-git10] 3com 3c562 multifunction card does not work
Hey, On Sat, Jan 09, 2010 at 06:05:26PM +0900, Komuro wrote: > >I have a bad feeling about this... might it be that cistpl.c isn't thread > >safe at all? > > > >Could you test out this patch, please? > > > OK. I will test it. Thanks! > By the way , do you think the pcmcia_core API is MP safe ? Yes I do. Best, Dominik ___ Linux PCMCIA reimplementation list http://lists.infradead.org/mailman/listinfo/linux-pcmcia
Re: Re: [BUG? kernel 2.6.32-git10] 3com 3c562 multifunction card does not work
Hi, >I have a bad feeling about this... might it be that cistpl.c isn't thread >safe at all? > >Could you test out this patch, please? OK. I will test it. By the way , do you think the pcmcia_core API is MP safe ? I need to learn the difference between spin_lock and mutex_lock. ___ Linux PCMCIA reimplementation list http://lists.infradead.org/mailman/listinfo/linux-pcmcia
Re: Re: [BUG? kernel 2.6.32-git10] 3com 3c562 multifunction card does not work
Hi, I think the resource problem is fixed. but if I connect the 3Com 3c562 and boot the linux, the mac address of 3c562 sometimes becomes ff:ff:ff:ff:ff:ff. the mac address becomes normal after replugging it. >pcmcia 0.0: pcmcia: registering new device pcmcia0.0 >pcmcia 0.1: pcmcia: registering new device pcmcia0.1 >0.1: ttyS0 at I/O 0x3f8 (irq = 3) is a 16550A >3c589_cs 0.0: pcmcia: could not parse base and rmask0 of CIS >eth0: 3Com 3c562, io 0x300, irq 3, hw_addr ff:ff:ff:ff:ff:ff > 32K FIFO split 3:5 Rx:Tx, auto xcvr Best Regards Komuro >Hey, > >On Sun, Dec 20, 2009 at 03:11:05PM +0900, Komuro wrote: >> >Any chance you could bisect it further? Also, does "lspci -vvv", >> >"/proc/ioports" and/or "/proc/iomem" change between -git7 and -git8? >> > > >Could you test this patch, please? > >Best, > Dominik > >From: Dominik Brodowski >Date: Sun, 20 Dec 2009 10:04:56 +0100 >Subject: [PATCH] resources: fix call to alignf() in allocate_resource() > >The second parameter to alignf() in allocate_resource() must >reflect what new resource is attempted to be allocated, else >functions like pcibios_align_resource() (at least on x86) or >pcmcia_align() can't work correctly. > >Commit 1e5ad9679016275d422e36b12a98b0927d76f556 broke this by >setting the "new" resource until we're about to return success. >To keep the resource untouched when allocate_resource() fails, >a "tmp" resource is introduced. > >CC: Linus Torvalds >CC: Yinghai Lu >CC: Bjorn Helgaas >CC: Jesse Barnes >Signed-off-by: Dominik Brodowski > >diff --git a/kernel/resource.c b/kernel/resource.c >index dc15686..af96c1e 100644 >--- a/kernel/resource.c >+++ b/kernel/resource.c >@@ -308,37 +308,37 @@ static int find_resource(struct resource *root, struct resource *new, >void *alignf_data) > { > struct resource *this = root->child; >- resource_size_t start, end; >+ struct resource tmp = *new; > >- start = root->start; >+ tmp.start = root->start; > /* >* Skip past an allocated resource that starts at 0, since the > assignment >- * of this->start - 1 to new->end below would cause an underflow. >+ * of this->start - 1 to tmp->end below would cause an underflow. >*/ > if (this && this->start == 0) { >- start = this->end + 1; >+ tmp.start = this->end + 1; > this = this->sibling; > } > for(;;) { > if (this) >- end = this->start - 1; >+ tmp.end = this->start - 1; > else >- end = root->end; >- if (start < min) >- start = min; >- if (end > max) >- end = max; >- start = ALIGN(start, align); >+ tmp.end = root->end; >+ if (tmp.start < min) >+ tmp.start = min; >+ if (tmp.end > max) >+ tmp.end = max; >+ tmp.start = ALIGN(tmp.start, align); > if (alignf) >- alignf(alignf_data, new, size, align); >- if (start < end && end - start >= size - 1) { >- new->start = start; >- new->end = start + size - 1; >+ alignf(alignf_data, &tmp, size, align); >+ if (tmp.start < tmp.end && tmp.end - tmp.start >= size - 1) { >+ new->start = tmp.start; >+ new->end = tmp.start + size - 1; > return 0; > } > if (!this) > break; >- start = this->end + 1; >+ tmp.start = this->end + 1; > this = this->sibling; > } > return -EBUSY; ___ Linux PCMCIA reimplementation list http://lists.infradead.org/mailman/listinfo/linux-pcmcia
Re: Re: Re: [BUG? kernel 2.6.32-git10] 3com 3c562 multifunction card does not work
Dear Komuro, Any chance you could bisect it further? Also, does "lspci -vvv", "/proc/ioports" and/or "/proc/iomem" change between -git7 and -git8? Best, Dominik On Sat, Dec 19, 2009 at 04:16:47PM +0900, Komuro wrote: > > Hi, > > 2.6.32-git7(2009/12/11) works and 2.6.32-git8(2009/12/12) does not work. > > So I think "'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbar > nes" > introduces this problem. > > > authorLinus Torvalds > Fri, 11 Dec 2009 20:18:16 + (12:18 -0800) > committer Linus Torvalds > Fri, 11 Dec 2009 20:18:16 + (12:18 -0800) > commit11bd04f6f35621193311c32e0721142b073a7794 > tree 00979740582bb26e8d3756bf3526c85f19f66a46tree | snapshot > parent4e2ccdb0409146f8cf64a11b6ef82a9c928ced2acommit | diff > parent9e0b5b2c447ad0caa075a5cfef86def62e1782ffcommit | diff > Merge branch 'linux-next' of git://git./linux/kernel/git/jbarnes/pci-2.6 > > * 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2. > 6: (109 commits) > PCI: fix coding style issue in pci_save_state() > PCI: add pci_request_acs > PCI: fix BUG_ON triggered by logical PCIe root port removal > PCI: remove ifdefed pci_cleanup_aer_correct_error_status > PCI: unconditionally clear AER uncorr status register during cleanup > x86/PCI: claim SR-IOV BARs in pcibios_allocate_resource > PCI: portdrv: remove redundant definitions > PCI: portdrv: remove unnecessary struct pcie_port_data > PCI: portdrv: minor cleanup for pcie_port_device_register > PCI: portdrv: add missing irq cleanup > PCI: portdrv: enable device before irq initialization > PCI: portdrv: cleanup service irqs initialization > PCI: portdrv: check capabilities first > PCI: portdrv: move PME capability check > PCI: portdrv: remove redundant pcie type calculation > PCI: portdrv: cleanup pcie_device registration > PCI: portdrv: remove redundant pcie_port_device_probe > PCI: Always set prefetchable base/limit upper32 registers > PCI: read-modify-write the pcie device control register when initiating pcie > flr > PCI: show dma_mask bits in /sys > ... > > >> > >>> The mac address of 3c562 becomes ff:ff:ff:ff:ff:ff > >>> and no startup message appear for serial. > >> > >>Ouch. > >> > >>> This card works with kernel-2.6.32-git7. > >> > >>Hm, there didn't happen much in PCMCIA land between git7 and git10: > >> > >># git log --pretty=oneline 3ef884b4c04e857c283cc77ca70ad8f638d94b0e..f405425 > 3 > >2e96dda5506eb76badea322f2ae4731c drivers/pcmcia/ include/pcmcia/ > >>11bd04f6f35621193311c32e0721142b073a7794 Merge branch 'linux-next' of git:// > g > >it.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6 > >>15ea76d407d560f985224b65fe59c9db01692a0d pccard: configure CLS on attach > >> > >>which only seems relevant for CardBus. Nonetheless: could you try commenting > >>out the line "pci_set_cacheline_size(dev)" in > >>drivers/pcmcia/cardbus.c:cardbus_config_irq_and_cls() ? > >> > > > >Even if I revert the "pccard: configure CLS on attach" manually, > >3com 3c562 still does not work. > > > >Best Regards > >Komuro > > > > > > > >___ > >Linux PCMCIA reimplementation list > >http://lists.infradead.org/mailman/listinfo/linux-pcmcia > ___ Linux PCMCIA reimplementation list http://lists.infradead.org/mailman/listinfo/linux-pcmcia
Re: Re: Re: [BUG? kernel 2.6.32-git10] 3com 3c562 multifunction card does not work
Hi, 2.6.32-git7(2009/12/11) works and 2.6.32-git8(2009/12/12) does not work. So I think "'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbar nes" introduces this problem. author Linus Torvalds Fri, 11 Dec 2009 20:18:16 + (12:18 -0800) committer Linus Torvalds Fri, 11 Dec 2009 20:18:16 + (12:18 -0800) commit 11bd04f6f35621193311c32e0721142b073a7794 tree00979740582bb26e8d3756bf3526c85f19f66a46tree | snapshot parent 4e2ccdb0409146f8cf64a11b6ef82a9c928ced2acommit | diff parent 9e0b5b2c447ad0caa075a5cfef86def62e1782ffcommit | diff Merge branch 'linux-next' of git://git./linux/kernel/git/jbarnes/pci-2.6 * 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2. 6: (109 commits) PCI: fix coding style issue in pci_save_state() PCI: add pci_request_acs PCI: fix BUG_ON triggered by logical PCIe root port removal PCI: remove ifdefed pci_cleanup_aer_correct_error_status PCI: unconditionally clear AER uncorr status register during cleanup x86/PCI: claim SR-IOV BARs in pcibios_allocate_resource PCI: portdrv: remove redundant definitions PCI: portdrv: remove unnecessary struct pcie_port_data PCI: portdrv: minor cleanup for pcie_port_device_register PCI: portdrv: add missing irq cleanup PCI: portdrv: enable device before irq initialization PCI: portdrv: cleanup service irqs initialization PCI: portdrv: check capabilities first PCI: portdrv: move PME capability check PCI: portdrv: remove redundant pcie type calculation PCI: portdrv: cleanup pcie_device registration PCI: portdrv: remove redundant pcie_port_device_probe PCI: Always set prefetchable base/limit upper32 registers PCI: read-modify-write the pcie device control register when initiating pcie flr PCI: show dma_mask bits in /sys ... >> >>> The mac address of 3c562 becomes ff:ff:ff:ff:ff:ff >>> and no startup message appear for serial. >> >>Ouch. >> >>> This card works with kernel-2.6.32-git7. >> >>Hm, there didn't happen much in PCMCIA land between git7 and git10: >> >># git log --pretty=oneline 3ef884b4c04e857c283cc77ca70ad8f638d94b0e..f405425 3 >2e96dda5506eb76badea322f2ae4731c drivers/pcmcia/ include/pcmcia/ >>11bd04f6f35621193311c32e0721142b073a7794 Merge branch 'linux-next' of git:// g >it.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6 >>15ea76d407d560f985224b65fe59c9db01692a0d pccard: configure CLS on attach >> >>which only seems relevant for CardBus. Nonetheless: could you try commenting >>out the line "pci_set_cacheline_size(dev)" in >>drivers/pcmcia/cardbus.c:cardbus_config_irq_and_cls() ? >> > >Even if I revert the "pccard: configure CLS on attach" manually, >3com 3c562 still does not work. > >Best Regards >Komuro > > > >___ >Linux PCMCIA reimplementation list >http://lists.infradead.org/mailman/listinfo/linux-pcmcia ___ Linux PCMCIA reimplementation list http://lists.infradead.org/mailman/listinfo/linux-pcmcia
Re: Re: [BUG? kernel 2.6.32-git10] 3com 3c562 multifunction card does not work
Hi > >> The mac address of 3c562 becomes ff:ff:ff:ff:ff:ff >> and no startup message appear for serial. > >Ouch. > >> This card works with kernel-2.6.32-git7. > >Hm, there didn't happen much in PCMCIA land between git7 and git10: > ># git log --pretty=oneline 3ef884b4c04e857c283cc77ca70ad8f638d94b0e..f4054253 2e96dda5506eb76badea322f2ae4731c drivers/pcmcia/ include/pcmcia/ >11bd04f6f35621193311c32e0721142b073a7794 Merge branch 'linux-next' of git://g it.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6 >15ea76d407d560f985224b65fe59c9db01692a0d pccard: configure CLS on attach > >which only seems relevant for CardBus. Nonetheless: could you try commenting >out the line "pci_set_cacheline_size(dev)" in >drivers/pcmcia/cardbus.c:cardbus_config_irq_and_cls() ? > Even if I revert the "pccard: configure CLS on attach" manually, 3com 3c562 still does not work. Best Regards Komuro ___ Linux PCMCIA reimplementation list http://lists.infradead.org/mailman/listinfo/linux-pcmcia
Re: Re: [BUG? kernel 2.6.32-git10] 3com 3c562 multifunction card does not work
> >> The mac address of 3c562 becomes ff:ff:ff:ff:ff:ff > >> and no startup message appear for serial. > >> > >> This card works with kernel-2.6.32-git7. > > It seems the pcmcia card can't access the io-range 0x100-0x3ff, > so serial can't allocate io-port resource. That sounds familiar. I think I had a card with a similar phenomenon, but that was months ago... Maybe I'll have time this week to dig this card out of wherever it is now :) -- Pengutronix e.K. | Wolfram Sang| Industrial Linux Solutions | http://www.pengutronix.de/ | signature.asc Description: Digital signature ___ Linux PCMCIA reimplementation list http://lists.infradead.org/mailman/listinfo/linux-pcmcia
Re: Re: [BUG? kernel 2.6.32-git10] 3com 3c562 multifunction card does not work
Hi, >> 3com 3c562 multifunction card does not work >> with kernel 2.6.32-git10. >> >> The mac address of 3c562 becomes ff:ff:ff:ff:ff:ff >> and no startup message appear for serial. >> >> This card works with kernel-2.6.32-git7. It seems the pcmcia card can't access the io-range 0x100-0x3ff, so serial can't allocate io-port resource. >Sounds like a good candidate for git-bisect :) > OK. but I don't have enough time on weekdays. Best Regards Komuro ___ Linux PCMCIA reimplementation list http://lists.infradead.org/mailman/listinfo/linux-pcmcia