rpms/kernel/F-9 linux-2.6-libata-ata_piix-check-sidpr.patch, NONE, 1.1 linux-2.6-md-fix-oops-in-rdev_attr_store.patch, NONE, 1.1 kernel.spec, 1.631, 1.632
Chuck Ebbert (cebbert)
fedora-extras-commits at redhat.com
Thu May 1 02:02:59 UTC 2008
Author: cebbert
Update of /cvs/pkgs/rpms/kernel/F-9
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv10844
Modified Files:
kernel.spec
Added Files:
linux-2.6-libata-ata_piix-check-sidpr.patch
linux-2.6-md-fix-oops-in-rdev_attr_store.patch
Log Message:
* Wed Apr 30 2008 Chuck Ebbert <cebbert at redhat.com> 2.6.25-13
- Fix drive detection on some Macbook models (#439398)
- Fix oops in RAID code (#441765)
linux-2.6-libata-ata_piix-check-sidpr.patch:
--- NEW FILE linux-2.6-libata-ata_piix-check-sidpr.patch ---
On certain configurations (certain macbooks), even though all the
conditions for SIDPR access described in the datasheet are met,
actually reading those registers just returns 0 and have no effect on
write. Verify SIDPR is actually working before enabling it.
This is reported by Ryan Roth in bz#10512.
Signed-off-by: Tejun Heo <htejun at gmail.com>
Cc: Ryan Roth <ryan.roth at ch2m.com>
---
Apple did another weird thing with ich8m in addition to the weird
lockup on second port enable and SIDPR causes drive misdetection.
This one probably should go to -stable too.
Thanks.
drivers/ata/ata_piix.c | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)
diff --git a/drivers/ata/ata_piix.c b/drivers/ata/ata_piix.c
index ea2c764..a9027b8 100644
--- a/drivers/ata/ata_piix.c
+++ b/drivers/ata/ata_piix.c
@@ -1348,6 +1348,8 @@ static void __devinit piix_init_sidpr(struct ata_host *host)
{
struct pci_dev *pdev = to_pci_dev(host->dev);
struct piix_host_priv *hpriv = host->private_data;
+ struct ata_device *dev0 = &host->ports[0]->link.device[0];
+ u32 scontrol;
int i;
/* check for availability */
@@ -1366,6 +1368,29 @@ static void __devinit piix_init_sidpr(struct ata_host *host)
return;
hpriv->sidpr = pcim_iomap_table(pdev)[PIIX_SIDPR_BAR];
+
+ /* SCR access via SIDPR doesn't work on some configurations.
+ * Give it a test drive by inhibiting power save modes which
+ * we'll do anyway.
+ */
+ scontrol = piix_sidpr_read(dev0, SCR_CONTROL);
+
+ /* if IPM is already 3, SCR access is probably working. Don't
+ * un-inhibit power save modes as BIOS might have inhibited
+ * them for a reason.
+ */
+ if ((scontrol & 0xf00) != 0x300) {
+ scontrol |= 0x300;
+ piix_sidpr_write(dev0, SCR_CONTROL, scontrol);
+ scontrol = piix_sidpr_read(dev0, SCR_CONTROL);
+
+ if ((scontrol & 0xf00) != 0x300) {
+ dev_printk(KERN_INFO, host->dev, "SCR access via "
+ "SIDPR is available but doesn't work\n");
+ return;
+ }
+ }
+
host->ports[0]->ops = &piix_sidpr_sata_ops;
host->ports[1]->ops = &piix_sidpr_sata_ops;
}
_
linux-2.6-md-fix-oops-in-rdev_attr_store.patch:
--- NEW FILE linux-2.6-md-fix-oops-in-rdev_attr_store.patch ---
md: fix use after free when removing rdev via sysfs
From: Dan Williams <dan.j.williams at intel.com>
rdev->mddev is no longer valid upon return from entry->store() when the
'remove' command is given.
Signed-off-by: Dan Williams <dan.j.williams at intel.com>
Signed-off-by: Neil Brown <neilb at suse.de>
### Diffstat output
./drivers/md/md.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff .prev/drivers/md/md.c ./drivers/md/md.c
--- .prev/drivers/md/md.c 2008-04-28 14:58:30.000000000 +1000
+++ ./drivers/md/md.c 2008-04-28 14:58:30.000000000 +1000
@@ -2096,7 +2096,7 @@ rdev_attr_store(struct kobject *kobj, st
rv = -EBUSY;
else
rv = entry->store(rdev, page, length);
- mddev_unlock(rdev->mddev);
+ mddev_unlock(mddev);
}
return rv;
}
Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-9/kernel.spec,v
retrieving revision 1.631
retrieving revision 1.632
diff -u -r1.631 -r1.632
--- kernel.spec 30 Apr 2008 06:53:37 -0000 1.631
+++ kernel.spec 1 May 2008 02:02:17 -0000 1.632
@@ -611,6 +611,7 @@
Patch610: linux-2.6-defaults-fat-utf8.patch
Patch670: linux-2.6-ata-quirk.patch
Patch671: linux-2.6-libata-force-hardreset-in-sleep-mode.patch
+Patch672: linux-2.6-libata-ata_piix-check-sidpr.patch
Patch680: linux-2.6-wireless.patch
Patch681: linux-2.6-wireless-pending.patch
@@ -620,6 +621,8 @@
Patch700: linux-2.6-nfs-client-mounts-hang.patch
+Patch750: linux-2.6-md-fix-oops-in-rdev_attr_store.patch
+
# SELinux patches, will go upstream in .26
Patch800: linux-2.6-selinux-ssinitialized-bugon.patch
@@ -1142,6 +1145,8 @@
ApplyPatch linux-2.6-ata-quirk.patch
# wake up links that have been put to sleep by BIOS (#436099)
ApplyPatch linux-2.6-libata-force-hardreset-in-sleep-mode.patch
+# fix broken drive detection on some macbooks (#439398)
+ApplyPatch linux-2.6-libata-ata_piix-check-sidpr.patch
# wireless patches headed for 2.6.25
#ApplyPatch linux-2.6-wireless.patch
@@ -1160,6 +1165,9 @@
# NFS Client mounts hang when exported directory do not exist
ApplyPatch linux-2.6-nfs-client-mounts-hang.patch
+# fix oops in mdraid (#441765)
+ApplyPatch linux-2.6-md-fix-oops-in-rdev_attr_store.patch
+
# build id related enhancements
ApplyPatch linux-2.6-default-mmf_dump_elf_headers.patch
@@ -1797,6 +1805,10 @@
%kernel_variant_files -a /%{image_install_path}/xen*-%{KVERREL}.xen -e /etc/ld.so.conf.d/kernelcap-%{KVERREL}.xen.conf %{with_xen} xen
%changelog
+* Wed Apr 30 2008 Chuck Ebbert <cebbert at redhat.com> 2.6.25-13
+- Fix drive detection on some Macbook models (#439398)
+- Fix oops in RAID code (#441765)
+
* Tue Apr 29 2008 Chuck Ebbert <cebbert at redhat.com> 2.6.25-12
- Fix CVE-2008-1675; patches taken from 2.6.25.1-rc1.
More information about the fedora-extras-commits
mailing list