Subject: Re: PROBLEM: freeze when resuming from suspend-to-ram

From: Jan Janssen <[email-masked]>
Date: Sun, 18 Nov 2012 11:28:16 +0100

On Saturday 17 November 2012 20:20:36 Francois Romieu wrote:
> Jan Janssen <[email-masked]> :
> [...]
> 
> > I'd be glad to help you with that. The bug happens with 3.6.6 and with
> > 3.7-
> > rc6. Pick one that suits you best, I can work with both.
> 
> /me slaps head.
> 
> Please try the patch below against v3.7-rc6
> 
> diff --git a/drivers/net/ethernet/sis/sis900.c
> b/drivers/net/ethernet/sis/sis900.c index fb9f6b3..edf5edb 100644
> --- a/drivers/net/ethernet/sis/sis900.c
> +++ b/drivers/net/ethernet/sis/sis900.c
> @@ -2479,7 +2479,7 @@ static int sis900_resume(struct pci_dev *pci_dev)
>  	netif_start_queue(net_dev);
> 
>  	/* Workaround for EDB */
> -	sis900_set_mode(ioaddr, HW_SPEED_10_MBPS, FDX_CAPABLE_HALF_SELECTED);
> +	sis900_set_mode(sis_priv, HW_SPEED_10_MBPS, FDX_CAPABLE_HALF_SELECTED);
> 
>  	/* Enable all known interrupts by setting the interrupt mask. */
>  	sw32(imr, RxSOVR | RxORN | RxERR | RxOK | TxURN | TxERR | TxIDLE);
This seems to fix it. I was able to repeatedly suspend and resume.

On my first resume try I did get a netdev watchdog timeout right after I got 
back to my shell prompt, but it wasn't reproducable. So, I'm assuming it's 
some unrelated rc or hardware issue. Thought I might better mention it.

Jan