Re: [Bug #14889] System wakeup by time not working anymore

From: OGAWA Hirofumi
Date: Wed Dec 30 2009 - 04:18:37 EST


Malte Schröder <maltesch@xxxxxx> writes:

> On Wed, 30 Dec 2009 02:36:56 +0900
> OGAWA Hirofumi <hirofumi@xxxxxxxxxxxxxxxxxx> wrote:
>
>> "Rafael J. Wysocki" <rjw@xxxxxxx> writes:
>>
>> > This message has been generated automatically as a part of a report
>> > of regressions introduced between 2.6.31 and 2.6.32.
>> >
>> > The following bug entry is on the current list of known regressions
>> > introduced between 2.6.31 and 2.6.32. Please verify if it still should
>> > be listed and let me know (either way).
>> >
>> >
>> > Bug-Entry : http://bugzilla.kernel.org/show_bug.cgi?id=14889
>> > Subject : System wakeup by time not working anymore
>> > Submitter : Malte Schröder <maltesch@xxxxxx>
>> > Date : 2009-12-03 18:06 (27 days old)
>> > First-Bad-Commit: http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=abd6633c67925f90775bb74755f9c547e30f1f20
>> > References : http://marc.info/?l=linux-kernel&m=125986362631900&w=4
>>
>> Specified commit would break the pnp driver which is using
>> driver->shutdown.
>>
>> Could you test this (untested) patch?
>
> I tried to reproduce the problem, it looks like it is working now :)

Thanks for testing.

Andrew, could you handle this pnp breakage fix?
--
OGAWA Hirofumi <hirofumi@xxxxxxxxxxxxxxxxxx>


[PATCH] rtc_cmos: convert shutdown to new pnp_driver->shutdown

commit abd6633c67925f90775bb74755f9c547e30f1f20 adds shutdown method
to bus driver blindly. With it, driver->shutdown is invalid anymore.

Use pnp_driver->shutdown instead.

Signed-off-by: OGAWA Hirofumi <hirofumi@xxxxxxxxxxxxxxxxxx>
---

drivers/rtc/rtc-cmos.c | 9 +++------
1 file changed, 3 insertions(+), 6 deletions(-)

diff -puN drivers/rtc/rtc-cmos.c~rtc-cmos-shutdown-fix drivers/rtc/rtc-cmos.c
--- linux-2.6/drivers/rtc/rtc-cmos.c~rtc-cmos-shutdown-fix 2009-12-30 01:25:10.000000000 +0900
+++ linux-2.6-hirofumi/drivers/rtc/rtc-cmos.c 2009-12-30 01:27:36.000000000 +0900
@@ -1096,9 +1096,9 @@ static int cmos_pnp_resume(struct pnp_de
#define cmos_pnp_resume NULL
#endif

-static void cmos_pnp_shutdown(struct device *pdev)
+static void cmos_pnp_shutdown(struct pnp_dev *pnp)
{
- if (system_state == SYSTEM_POWER_OFF && !cmos_poweroff(pdev))
+ if (system_state == SYSTEM_POWER_OFF && !cmos_poweroff(&pnp->dev))
return;

cmos_do_shutdown();
@@ -1117,15 +1117,12 @@ static struct pnp_driver cmos_pnp_driver
.id_table = rtc_ids,
.probe = cmos_pnp_probe,
.remove = __exit_p(cmos_pnp_remove),
+ .shutdown = cmos_pnp_shutdown,

/* flag ensures resume() gets called, and stops syslog spam */
.flags = PNP_DRIVER_RES_DO_NOT_CHANGE,
.suspend = cmos_pnp_suspend,
.resume = cmos_pnp_resume,
- .driver = {
- .name = (char *)driver_name,
- .shutdown = cmos_pnp_shutdown,
- }
};

#endif /* CONFIG_PNP */
_
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/