From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932674AbbFWIDQ (ORCPT ); Tue, 23 Jun 2015 04:03:16 -0400 Received: from smtprelay06.ispgateway.de ([80.67.31.104]:35598 "EHLO smtprelay06.ispgateway.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754064AbbFWIDB (ORCPT ); Tue, 23 Jun 2015 04:03:01 -0400 X-Greylist: delayed 412 seconds by postgrey-1.27 at vger.kernel.org; Tue, 23 Jun 2015 04:03:01 EDT Message-ID: <55891111.50809@ladisch.de> Date: Tue, 23 Jun 2015 09:56:01 +0200 From: Clemens Ladisch User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 MIME-Version: 1.0 To: Lukasz Stelmach , Stefan Richter , linux1394-devel@lists.sourceforge.net, LKML Subject: Re: [BUG] ohci_enable() fails during resume References: <55872606.3070801@poczta.fm> In-Reply-To: <55872606.3070801@poczta.fm> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Df-Sender: bGludXgta2VybmVsQGNsLmRvbWFpbmZhY3Rvcnkta3VuZGUuZGU= Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Lukasz Stelmach wrote: > A bit, suddenly by desktop PC started to fail to resume. [...] > The failing code is somewhere around line 2400 of > drivers/firewire/ohci.c (the latest mainline). > 0x000000000000003f <+31>: callq 0xffffffffffffb037 > 0x0000000000000044 <+36>: mov 0x898(%rbx),%rax > -->0x000000000000004b <+43>: mov (%rax),%edx <-- (The copy_config_rom call was not actually executed; the else branch jumped to 44.) ohci->next_config_rom is NULL because ohci->config_rom is NULL. > The code around the line 2400 appears to handle multiple > firewire ports (if I recognise variable names correctly, e.g. > next_config_rom). No, this code handles multiple versions of the same data structure. > Hardware bug in the on-board firewire controller *and* a bug in the > driver. Indeed; this appears to be the culprit: > [ 232.855042] firewire_ohci 0000:04:03.0: added OHCI v1.0 device as card 0, 8 IR + 8 IT contexts, quirks 0x0 > [ 232.864724] firewire_ohci 0000:04:03.0: bad self ID 0/1 (00000000 != ~00000000) With the "bad self ID", bus_reset_work() just aborts, and the controller is never completely initialized (therefore the unexpected NULL). Try unloading and reloading the firewire-ohci module to see if you can ever avoid the "bad self ID" error. But if it stays, your hardware indeed appears to be broken. Regards, Clemens