Re: [broken-out-2007-07-20-00-22] kernel bug at kernel/params:570

From: Satyam Sharma
Date: Sat Jul 21 2007 - 04:36:54 EST


On 7/21/07, Michal Piotrowski <michal.k.k.piotrowski@xxxxxxxxx> wrote:
Satyam Sharma pisze:
> [...]
> Gargh! My system obviously cannot boot without libata. Guess it's
> time to go through git log and see how to fix that build breakage
> myself ...
>
> Michal, how did you even manage to build / boot this kernel!

I commented origin.patch and mm.patch in series file, reverted xfs patches,
fixed libata build, deselected unionfs.

Here is a patch for libata

--- linux-work3-clean/drivers/ata/libata-core.c 2007-07-20 16:53:26.000000000 +0200
+++ linux-work3/drivers/ata/libata-core.c 2007-07-20 17:26:30.000000000 +0200
@@ -2036,7 +2036,7 @@ int ata_dev_configure(struct ata_device
dev->max_sectors = min_t(unsigned int, ATA_MAX_SECTORS_128,
dev->max_sectors);

- if (ata_device_blacklisted(dev) & ATA_HORKAGE_ALPM) {
+ if (ata_dev_blacklisted(dev) & ATA_HORKAGE_ALPM) {
dev->horkage |= ATA_HORKAGE_ALPM;

/* reset link pm_policy for this port to no pm */


And to think I went through all those hoops just to avoid *this* ... :-(
Anyway, please apply the attached patch and let's verify if we're both
actually bit by the same bug. A screenshot of my case is available at:

http://www.cse.iitk.ac.in/users/ssatyam/mtrr.show-bug.jpg

[ excuse the quality, it's not a digicam, but a cellphone-cam ]

Satyam diff --git a/kernel/params.c b/kernel/params.c
index effbaae..5656ccf 100644
--- a/kernel/params.c
+++ b/kernel/params.c
@@ -567,7 +567,11 @@ static void __init kernel_param_sysfs_setup(const char *name,
kobject_set_name(&mk->kobj, name);
kobject_init(&mk->kobj);
ret = kobject_add(&mk->kobj);
- BUG_ON(ret < 0);
+ if (ret) {
+ printf("~~~~~ .%s.%d.%s. ~~~~~\n", name, ret, kparam->name);
+ for (;;)
+ cpu_relax();
+ }
param_sysfs_setup(mk, kparam, num_params, name_skip);
kobject_uevent(&mk->kobj, KOBJ_ADD);
}