kernel news – 05.12.2012

Posted: December 5, 2012 in kernel

-Artem Bityutskiy announces last-minute fixes for UBI (-rc9),
and Tejun Heo has workqueue fixes for -rc8:

So, safe fixes my ass. 8852aac (“workqueue: mod_delayed_work_on()
shouldn’t queue timer on 0 delay”) had the side-effect of performing
delayed_work sanity checks even when @delay is 0, which should be fine
for any sane use cases.

Unfortunately, megaraid was being overly ingenious. It seemingly
wanted to use cancel_delayed_work_sync() before cancel_work_sync() was
introduced, but didn’t want to waste the space for full delayed_work
as it was only gonna use 0 @delay. So, it only allocated space for
struct work_struct and then casted it to struct delayed_work and
passed it into delayed_work functions – truly awesome engineering
tradeoff to save some bytes.

Xiaotian fixed it by making megraid allocate full delayed_work for
now. It should be converted to use work_struct and cancel_work_sync()
but I think we better do that after 3.7.

I added another commit to change BUG_ON()s in __queue_delayed_work()
to WARN_ON_ONCE()s so that the kernel doens’t crash even if there are
more such abuses.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s