On Tue, Mar 04, 2003 at 11:06:50AM +1300, Nigel Cunningham wrote:
> You were hitting the BUG_ON before swsusp was even trying to write the
> image?!! That is interesting! Since count_and_copy is first called post
> driver suspend in the current version, perhaps they are somehow related.
Sure, I get this too:
It now says (copied by hand):
freeing memory: .....................|
(this 'freeing' takes ages, around 30 seconds, while in progress, the disk
light blinks every once in a while, perhaps each time while a dot is being
printed)
syncing disks
suspending devices
suspending device c0418bcc
suspending devices
suspending device c0418bcc
suspending: hda ------------------[ cut here
trace back:
device_susp()
drivers_susp()
do_software_susp()
This happens, I think, from here in kernel/suspend.c:
/* Called from process context */
static int drivers_suspend(void)
{
device_suspend(4, SUSPEND_NOTIFY);
device_suspend(4, SUSPEND_SAVE_STATE);
device_suspend(4, SUSPEND_DISABLE);
...
I think the problem occurs on the second call, SUSPEND_SAVE_STATE:
static int idedisk_suspend(struct device *dev, u32 state, u32 level)
{
ide_drive_t *drive = dev->driver_data;
printk("Suspending device %p\n", dev->driver_data);
/* I hope that every freeze operation from the upper levels have
* already been done...
*/
if (level != SUSPEND_SAVE_STATE)
return 0;
/* set the drive to standby */
printk(KERN_INFO "suspending: %s ", drive->name);
do_idedisk_standby(drive);
drive->blocked = 1;
BUG_ON (HWGROUP(drive)->handler); // <----- this BUGs
return 0;
}
Regards,
bert
-- http://www.PowerDNS.com Open source, database driven DNS Software http://lartc.org Linux Advanced Routing & Traffic Control HOWTO http://netherlabs.nl Consulting - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
This archive was generated by hypermail 2b29 : Fri Mar 07 2003 - 22:00:24 EST