From: Jens Axboe <axboe@suse.de>
To: Michal Piotrowski <michal.k.k.piotrowski@gmail.com>
Cc: Andrew Morton <akpm@osdl.org>, linux-kernel@vger.kernel.org
Subject: Re: mm snapshot broken-out-2006-08-08-00-59.tar.gz uploaded
Date: Thu, 10 Aug 2006 08:35:32 +0200 [thread overview]
Message-ID: <20060810063532.GF11829@suse.de> (raw)
In-Reply-To: <6bffcb0e0608091544l376c37c6j5c766b38426c318b@mail.gmail.com>
On Thu, Aug 10 2006, Michal Piotrowski wrote:
> Hi,
>
> On 09/08/06, Michal Piotrowski <michal.k.k.piotrowski@gmail.com> wrote:
> >On 08/08/06, akpm@osdl.org <akpm@osdl.org> wrote:
> >> The mm snapshot broken-out-2006-08-08-00-59.tar.gz has been uploaded to
> >>
> >>
> >ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/mm/broken-out-2006-08-08-00-59.tar.gz
> >>
> >
> >When I want to halt system I type "init 0", but it stops on
> >
> >Halting system...
> >Synchronizing SCSI cache for disk sda
> >Shutdown: hda
> >
> >Problem appears on 2.6.18-rc3-mm*. I guess that this is an IDE or ACPI bug.
> >I'll revert IDE and ACPI patches. If it won't help, I'll do binary search.
>
> It's a git-block.patch
>
> Jens, can you look at this?
>
> Here is a config file
> http://www.stardust.webpages.pl/files/mm/2.6.18-rc4-mm1/mm-config2
It's the already solved bug, I believe. The version referenced above
still has the fixed REQ_TYPE_ATA_TASKFILE and ->end_io_data for suspend
problem.
Let me know if it works or not with this applied.
diff -urp linux-2.6.18-rc3.virgin/drivers/ide/ide.c linux-2.6.18-rc3/drivers/ide/ide.c
--- linux-2.6.18-rc3.virgin/drivers/ide/ide.c 2006-08-10 08:32:18.000000000 +0200
+++ linux-2.6.18-rc3/drivers/ide/ide.c 2006-08-10 08:34:05.000000000 +0200
@@ -1223,7 +1223,7 @@ static int generic_ide_suspend(struct de
memset(&args, 0, sizeof(args));
rq.cmd_type = REQ_TYPE_PM_SUSPEND;
rq.special = &args;
- rq.end_io_data = &rqpm;
+ rq.data = &rqpm;
rqpm.pm_step = ide_pm_state_start_suspend;
if (mesg.event == PM_EVENT_PRETHAW)
mesg.event = PM_EVENT_FREEZE;
@@ -1244,7 +1244,7 @@ static int generic_ide_resume(struct dev
memset(&args, 0, sizeof(args));
rq.cmd_type = REQ_TYPE_PM_RESUME;
rq.special = &args;
- rq.end_io_data = &rqpm;
+ rq.data = &rqpm;
rqpm.pm_step = ide_pm_state_start_resume;
rqpm.pm_state = PM_EVENT_ON;
diff -urp linux-2.6.18-rc3.virgin/drivers/ide/ide-io.c linux-2.6.18-rc3/drivers/ide/ide-io.c
--- linux-2.6.18-rc3.virgin/drivers/ide/ide-io.c 2006-08-10 08:32:18.000000000 +0200
+++ linux-2.6.18-rc3/drivers/ide/ide-io.c 2006-08-10 08:34:20.000000000 +0200
@@ -141,7 +141,7 @@ enum {
static void ide_complete_power_step(ide_drive_t *drive, struct request *rq, u8 stat, u8 error)
{
- struct request_pm_state *pm = rq->end_io_data;
+ struct request_pm_state *pm = rq->data;
if (drive->media != ide_disk)
return;
@@ -167,7 +167,7 @@ static void ide_complete_power_step(ide_
static ide_startstop_t ide_start_power_step(ide_drive_t *drive, struct request *rq)
{
- struct request_pm_state *pm = rq->end_io_data;
+ struct request_pm_state *pm = rq->data;
ide_task_t *args = rq->special;
memset(args, 0, sizeof(*args));
@@ -402,7 +402,7 @@ void ide_end_drive_cmd (ide_drive_t *dri
args[5] = hwif->INB(IDE_HCYL_REG);
args[6] = hwif->INB(IDE_SELECT_REG);
}
- } else if (rq->cmd_type & REQ_TYPE_ATA_TASKFILE) {
+ } else if (rq->cmd_type == REQ_TYPE_ATA_TASKFILE) {
ide_task_t *args = (ide_task_t *) rq->special;
if (rq->errors == 0)
rq->errors = !OK_STAT(stat,READY_STAT,BAD_STAT);
@@ -433,7 +433,7 @@ void ide_end_drive_cmd (ide_drive_t *dri
}
}
} else if (blk_pm_request(rq)) {
- struct request_pm_state *pm = rq->end_io_data;
+ struct request_pm_state *pm = rq->data;
#ifdef DEBUG_PM
printk("%s: complete_power_step(step: %d, stat: %x, err: %x)\n",
drive->name, rq->pm->pm_step, stat, err);
@@ -945,7 +945,7 @@ done:
static void ide_check_pm_state(ide_drive_t *drive, struct request *rq)
{
- struct request_pm_state *pm = rq->end_io_data;
+ struct request_pm_state *pm = rq->data;
if (blk_pm_suspend_request(rq) &&
pm->pm_step == ide_pm_state_start_suspend)
@@ -1030,7 +1030,7 @@ static ide_startstop_t start_request (id
rq->cmd_type == REQ_TYPE_ATA_TASKFILE)
return execute_drive_cmd(drive, rq);
else if (blk_pm_request(rq)) {
- struct request_pm_state *pm = rq->end_io_data;
+ struct request_pm_state *pm = rq->data;
#ifdef DEBUG_PM
printk("%s: start_power_step(step: %d)\n",
drive->name, rq->pm->pm_step);
--
Jens Axboe
next prev parent reply other threads:[~2006-08-10 6:34 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <200608080800.k7880noU028915@shell0.pdx.osdl.net>
2006-08-08 20:29 ` mm snapshot broken-out-2006-08-08-00-59.tar.gz uploaded Michal Piotrowski
2006-08-08 21:05 ` Andrew Morton
2006-08-08 21:19 ` Michal Piotrowski
2006-08-08 21:37 ` Andrew Morton
2006-08-08 22:11 ` Michal Piotrowski
2006-08-08 23:24 ` Michal Piotrowski
2006-08-08 23:42 ` Andrew Morton
2006-08-09 0:01 ` Michal Piotrowski
2006-08-09 6:21 ` Ravikiran G Thirumalai
2006-08-09 13:21 ` Michal Piotrowski
2006-08-09 1:43 ` Andi Kleen
2006-08-09 12:49 ` Michal Piotrowski
2006-08-09 1:42 ` Andi Kleen
2006-08-09 14:20 ` Michal Piotrowski
2006-08-09 22:44 ` Michal Piotrowski
2006-08-10 6:35 ` Jens Axboe [this message]
2006-08-10 13:06 ` Michal Piotrowski
2006-08-10 13:09 ` Jens Axboe
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20060810063532.GF11829@suse.de \
--to=axboe@suse.de \
--cc=akpm@osdl.org \
--cc=linux-kernel@vger.kernel.org \
--cc=michal.k.k.piotrowski@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.