lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Wed, 3 Jun 2009 08:30:25 +0200
From:	Andreas Mohr <andim2@...rs.sourceforge.net>
To:	andi@...as.de
Cc:	Jeff Kirsher <jeffrey.t.kirsher@...el.com>, rjw@...k.pl,
	e1000-devel@...ts.sourceforge.net, netdev@...r.kernel.org,
	linux-kernel@...r.kernel.org
Subject: Re: e100 kills S2R on my box, plus network drops dead

Hi,

On Wed, Jun 03, 2009 at 08:01:23AM +0200, Andreas Mohr wrote:
> IOW, we have _two_ issues:
> 
> - that PM suspend part here doesn't support non-PM PCI cards
> - PM suspend breaks networking stuff (or is that caused by incomplete reinitialization of my card,
>   thus it's not network-suitable after resume and hangs on some network APIs?)
> 
> What to do?
> 
> (I should have provided some SysRq-T(?) lock traces I guess, will record that now)

Those were not too useful methinks, but I can provide them if need be.

> Oh, and I will test whether eepro100 S2R works on that machine, and if
> so what that driver does to avoid trouble.

Well, yes, eepro100 (2.6.28.10) does achieve successful S2R,
and I _do_ have working network even after resume (which is not too astonishing
since it almost takes active measures to NOT make this card work,
given that it's fully auto-configuring on the transceiver side)



static int eepro100_suspend(struct pci_dev *pdev, pm_message_t state)
{
        struct net_device *dev = pci_get_drvdata (pdev);
        struct speedo_private *sp = netdev_priv(dev);
        void __iomem *ioaddr = sp->regs;

        pci_save_state(pdev);

        if (!netif_running(dev))
                return 0;

        del_timer_sync(&sp->timer);

        netif_device_detach(dev);
        iowrite32(PortPartialReset, ioaddr + SCBPort);

        /* XXX call pci_set_power_state ()? */
        pci_disable_device(pdev);
        pci_set_power_state (pdev, PCI_D3hot);
        return 0;
}


That's pretty boring code, linearily executing stuff without checking
results, thus it's unsurprising that it does not prevent suspend
on a non-PM PCI card.


So, what to do to fix those suspend issues on the e100 side of things?
And do we perhaps have similar non-PM PCI card support issues
with other drivers?


Thanks,

Andreas Mohr
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ