From patchwork Thu Jun 17 08:07:26 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Borislav Petkov X-Patchwork-Id: 55983 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id CCD821007D3 for ; Thu, 17 Jun 2010 18:07:50 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932087Ab0FQIHi (ORCPT ); Thu, 17 Jun 2010 04:07:38 -0400 Received: from mail.skyhub.de ([78.46.96.112]:39795 "EHLO mail.skyhub.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1759347Ab0FQIHd (ORCPT ); Thu, 17 Jun 2010 04:07:33 -0400 Received: from localhost (localhost [127.0.0.1]) by mail.skyhub.de (SuperMail on ZX Spectrum 128k) with ESMTP id 358EB1D955D; Thu, 17 Jun 2010 10:07:29 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=alien8.de; s=alien8; t=1276762049; bh=1rGLvbJrFrYSw+FK32bXtY8wFn9hdgL3IwI7MHgJDvM=; h=Date:From:To:Cc:Subject:Message-ID:MIME-Version:Content-Type; b=j 9QxzAMYNInOFRepQNx3BT5rQjgyUOcvKXcSLu5q8EE96UY0gtHviFTv0jsFG4fIutQ5 fMumPQQoTbeie7lBury8QGpnn6fLB/ziNX4tC18cyBkn+8djGqzXCo4R3Kf8yU61DAP ex+el3g+efD54bNq/nR5HO1r8Gc5CxSeSrSc= X-Virus-Scanned: Nedap ESD1 at mail.skyhub.de Received: from mail.skyhub.de ([127.0.0.1]) by localhost (door.skyhub.de [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id XzuqcVEggumE; Thu, 17 Jun 2010 10:07:29 +0200 (CEST) Received: from liondog.tnic (g224196187.adsl.alicedsl.de [92.224.196.187]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.skyhub.de (SuperMail on ZX Spectrum 128k) with ESMTPSA id 920E41D955A; Thu, 17 Jun 2010 10:07:28 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=alien8.de; s=alien8; t=1276762048; bh=1rGLvbJrFrYSw+FK32bXtY8wFn9hdgL3IwI7MHgJDvM=; h=Date:From:To:Cc:Subject:Message-ID:MIME-Version:Content-Type; b=S 9n47ANW4lWFUrj6wLaITQMx0jFtVt816qCHhBJ6bCb9t5fOAzhNv2rKbLSWvpWC91gJ JzgXK4ASn87QuZTzl3ZXsVqeqxKfqZ/wsXw8Pb5+yWzn3cUDhqwdrWRn/Q8MEyt8IuK ZaMRmZMQFvXvT85N+be5pQlX/4w4/9oHJX2k= Received: by liondog.tnic (Postfix, from userid 1000) id 69ED54B8682; Thu, 17 Jun 2010 10:07:26 +0200 (CEST) Date: Thu, 17 Jun 2010 10:07:26 +0200 From: Borislav Petkov To: Hans42Mueller@googlemail.com Cc: Andrew Morton , linux-ide Subject: [Bug 16142] r8169: Kernel Panic when a lot of data is transferred through network interface Message-ID: <20100617080726.GA13713@liondog.tnic> MIME-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.5.20 (2009-06-14) Sender: linux-ide-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-ide@vger.kernel.org Hi, switching to mail for now. Ok, this looks almost exactly like https://bugzilla.kernel.org/show_bug.cgi?id=13399 and I have a theory :) Hans, can you apply the debug patch below, rebuild your kernel and catch the _whole_ output this time (not the oops only) and send it to me? It might be a bit much with all the stack traces so let me know of any troubles you might have catching it. Thanks. diff --git a/drivers/ide/ide-cd.c b/drivers/ide/ide-cd.c index 64207df..436304c 100644 --- a/drivers/ide/ide-cd.c +++ b/drivers/ide/ide-cd.c @@ -552,8 +552,10 @@ static ide_startstop_t cdrom_newpc_intr(ide_drive_t *drive) if (!OK_STAT(stat, 0, BAD_R_STAT)) { rc = cdrom_decode_status(drive, stat); if (rc) { - if (rc == 2) + if (rc == 2) { + printk(KERN_EMERG "%s: bad status with a sense rq\n", __func__); goto out_end; + } return ide_stopped; } } @@ -667,8 +669,10 @@ out_end: blk_end_request_all(rq, 0); hwif->rq = NULL; } else { - if (sense && uptodate) + if (sense && uptodate) { + printk(KERN_EMERG "%s: complete failed rq: %p\n", __func__, rq); ide_cd_complete_failed_rq(drive, rq); + } if (blk_fs_request(rq)) { if (cmd->nleft == 0) @@ -688,10 +692,13 @@ out_end: rq->resid_len += cmd->last_xfer_len; } + printk(KERN_EMERG "%s: completing rq %p\n", __func__, rq); ide_complete_rq(drive, uptodate ? 0 : -EIO, blk_rq_bytes(rq)); - if (sense && rc == 2) + if (sense && rc == 2) { + printk(KERN_EMERG "%s: request sense failure, rq: %p\n", __func__, rq); ide_error(drive, "request sense failure", stat); + } } return ide_stopped; } diff --git a/drivers/ide/ide-io.c b/drivers/ide/ide-io.c index 172ac92..3317778 100644 --- a/drivers/ide/ide-io.c +++ b/drivers/ide/ide-io.c @@ -57,6 +57,9 @@ int ide_end_rq(ide_drive_t *drive, struct request *rq, int error, unsigned int nr_bytes) { + + dump_stack(); + /* * decide whether to reenable DMA -- 3 is a random magic for now, * if we DMA timeout more than 3 times, just stay in PIO @@ -118,6 +121,8 @@ int ide_complete_rq(ide_drive_t *drive, int error, unsigned int nr_bytes) struct request *rq = hwif->rq; int rc; + dump_stack(); + /* * if failfast is set on a request, override number of sectors * and complete the whole request right now