Linux 2.6.38-rc3-git4
This commit is contained in:
parent
9fd29980ae
commit
3b6f1e555c
@ -1,17 +0,0 @@
|
|||||||
atl1c: Add missing PCI device ID
|
|
||||||
|
|
||||||
Commit 8f574b35f22fbb9b5e5f1d11ad6b55b6f35f4533 added support for a new
|
|
||||||
adapter but failed to add it to the PCI device table.
|
|
||||||
|
|
||||||
Signed-Off-By: Chuck Ebbert <cebbert@redhat.com>
|
|
||||||
|
|
||||||
--- vanilla-2.6.38-rc3.orig/drivers/net/atl1c/atl1c_main.c
|
|
||||||
+++ vanilla-2.6.38-rc3/drivers/net/atl1c/atl1c_main.c
|
|
||||||
@@ -48,6 +48,7 @@ static DEFINE_PCI_DEVICE_TABLE(atl1c_pci
|
|
||||||
{PCI_DEVICE(PCI_VENDOR_ID_ATTANSIC, PCI_DEVICE_ID_ATHEROS_L2C_B)},
|
|
||||||
{PCI_DEVICE(PCI_VENDOR_ID_ATTANSIC, PCI_DEVICE_ID_ATHEROS_L2C_B2)},
|
|
||||||
{PCI_DEVICE(PCI_VENDOR_ID_ATTANSIC, PCI_DEVICE_ID_ATHEROS_L1D)},
|
|
||||||
+ {PCI_DEVICE(PCI_VENDOR_ID_ATTANSIC, PCI_DEVICE_ID_ATHEROS_L1D_2_0)},
|
|
||||||
/* required last entry */
|
|
||||||
{ 0 }
|
|
||||||
};
|
|
@ -1,17 +0,0 @@
|
|||||||
CAN: softing driver needs IOMEM
|
|
||||||
|
|
||||||
Without this dependency the softing driver will be buildable on s390,
|
|
||||||
where it fails.
|
|
||||||
|
|
||||||
Signed-Off-By: Chuck Ebbert <cebbert@redhat.com>
|
|
||||||
|
|
||||||
--- a/drivers/net/can/softing/Kconfig
|
|
||||||
+++ b/drivers/net/can/softing/Kconfig
|
|
||||||
@@ -1,6 +1,6 @@
|
|
||||||
config CAN_SOFTING
|
|
||||||
tristate "Softing Gmbh CAN generic support"
|
|
||||||
- depends on CAN_DEV
|
|
||||||
+ depends on CAN_DEV && HAS_IOMEM
|
|
||||||
---help---
|
|
||||||
Support for CAN cards from Softing Gmbh & some cards
|
|
||||||
from Vector Gmbh.
|
|
@ -1,24 +0,0 @@
|
|||||||
hfsplus: Don't leak buffer on error
|
|
||||||
|
|
||||||
Signed-Off-By: Chuck Ebbert <cebbert@redhat.com>
|
|
||||||
|
|
||||||
--- vanilla-2.6.38-rc2-git9.orig/fs/hfsplus/part_tbl.c
|
|
||||||
+++ vanilla-2.6.38-rc2-git9/fs/hfsplus/part_tbl.c
|
|
||||||
@@ -134,7 +134,7 @@ int hfs_part_find(struct super_block *sb
|
|
||||||
res = hfsplus_submit_bio(sb->s_bdev, *part_start + HFS_PMAP_BLK,
|
|
||||||
data, READ);
|
|
||||||
if (res)
|
|
||||||
- return res;
|
|
||||||
+ goto out;
|
|
||||||
|
|
||||||
switch (be16_to_cpu(*((__be16 *)data))) {
|
|
||||||
case HFS_OLD_PMAP_MAGIC:
|
|
||||||
@@ -147,7 +147,7 @@ int hfs_part_find(struct super_block *sb
|
|
||||||
res = -ENOENT;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
-
|
|
||||||
+out:
|
|
||||||
kfree(data);
|
|
||||||
return res;
|
|
||||||
}
|
|
@ -1,24 +0,0 @@
|
|||||||
hfsplus: Fix two memory leaks in wrapper.c
|
|
||||||
|
|
||||||
Signed-Off-By: Chuck Ebbert <cebbert@redhat.com>
|
|
||||||
|
|
||||||
--- vanilla-2.6.38-rc2-git9.orig/fs/hfsplus/wrapper.c
|
|
||||||
+++ vanilla-2.6.38-rc2-git9/fs/hfsplus/wrapper.c
|
|
||||||
@@ -167,7 +167,7 @@ reread:
|
|
||||||
break;
|
|
||||||
case cpu_to_be16(HFSP_WRAP_MAGIC):
|
|
||||||
if (!hfsplus_read_mdb(sbi->s_vhdr, &wd))
|
|
||||||
- goto out;
|
|
||||||
+ goto out_free_backup_vhdr;
|
|
||||||
wd.ablk_size >>= HFSPLUS_SECTOR_SHIFT;
|
|
||||||
part_start += wd.ablk_start + wd.embed_start * wd.ablk_size;
|
|
||||||
part_size = wd.embed_count * wd.ablk_size;
|
|
||||||
@@ -179,7 +179,7 @@ reread:
|
|
||||||
* (should do this only for cdrom/loop though)
|
|
||||||
*/
|
|
||||||
if (hfs_part_find(sb, &part_start, &part_size))
|
|
||||||
- goto out;
|
|
||||||
+ goto out_free_backup_vhdr;
|
|
||||||
goto reread;
|
|
||||||
}
|
|
||||||
|
|
@ -1,209 +0,0 @@
|
|||||||
From: Christoph Hellwig <hch@tuxera.com>
|
|
||||||
Subject: hfsplus: fix failed mount handling
|
|
||||||
|
|
||||||
Currently the error handling in hfsplus_fill_super is a mess, and can
|
|
||||||
lead to accessing fields in the superblock that haven't been even set
|
|
||||||
up yet. Fix this by making sure we do not set up sb->s_root until we
|
|
||||||
have the mount fully set up, and before that do proper step by step
|
|
||||||
unwinding instead of using hfsplus_put_super as a big hammer.
|
|
||||||
|
|
||||||
Reported-by: Dan Williams <dcbw@redhat.com>
|
|
||||||
Signed-off-by: Christoph Hellwig <hch@tuxera.com>
|
|
||||||
|
|
||||||
Index: linux-2.6/fs/hfsplus/super.c
|
|
||||||
===================================================================
|
|
||||||
--- linux-2.6.orig/fs/hfsplus/super.c 2011-02-01 12:48:09.984663687 -0700
|
|
||||||
+++ linux-2.6/fs/hfsplus/super.c 2011-02-01 13:17:41.803164619 -0700
|
|
||||||
@@ -338,20 +338,28 @@ static int hfsplus_fill_super(struct sup
|
|
||||||
struct inode *root, *inode;
|
|
||||||
struct qstr str;
|
|
||||||
struct nls_table *nls = NULL;
|
|
||||||
- int err = -EINVAL;
|
|
||||||
+ int err;
|
|
||||||
|
|
||||||
+ err = -EINVAL;
|
|
||||||
sbi = kzalloc(sizeof(*sbi), GFP_KERNEL);
|
|
||||||
if (!sbi)
|
|
||||||
- return -ENOMEM;
|
|
||||||
+ goto out;
|
|
||||||
|
|
||||||
sb->s_fs_info = sbi;
|
|
||||||
mutex_init(&sbi->alloc_mutex);
|
|
||||||
mutex_init(&sbi->vh_mutex);
|
|
||||||
hfsplus_fill_defaults(sbi);
|
|
||||||
+
|
|
||||||
+ err = -EINVAL;
|
|
||||||
if (!hfsplus_parse_options(data, sbi)) {
|
|
||||||
printk(KERN_ERR "hfs: unable to parse mount options\n");
|
|
||||||
- err = -EINVAL;
|
|
||||||
- goto cleanup;
|
|
||||||
+
|
|
||||||
+ /*
|
|
||||||
+ * hfsplus_parse_options sets sbi->nls, but we are going
|
|
||||||
+ * to free the localy cached nls in the cleanup path.
|
|
||||||
+ */
|
|
||||||
+ nls = sbi->nls;
|
|
||||||
+ goto out_unload_nls;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* temporarily use utf8 to correctly find the hidden dir below */
|
|
||||||
@@ -359,16 +367,14 @@ static int hfsplus_fill_super(struct sup
|
|
||||||
sbi->nls = load_nls("utf8");
|
|
||||||
if (!sbi->nls) {
|
|
||||||
printk(KERN_ERR "hfs: unable to load nls for utf8\n");
|
|
||||||
- err = -EINVAL;
|
|
||||||
- goto cleanup;
|
|
||||||
+ goto out_unload_nls;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Grab the volume header */
|
|
||||||
if (hfsplus_read_wrapper(sb)) {
|
|
||||||
if (!silent)
|
|
||||||
printk(KERN_WARNING "hfs: unable to find HFS+ superblock\n");
|
|
||||||
- err = -EINVAL;
|
|
||||||
- goto cleanup;
|
|
||||||
+ goto out_free_vhdr;
|
|
||||||
}
|
|
||||||
vhdr = sbi->s_vhdr;
|
|
||||||
|
|
||||||
@@ -377,7 +383,7 @@ static int hfsplus_fill_super(struct sup
|
|
||||||
if (be16_to_cpu(vhdr->version) < HFSPLUS_MIN_VERSION ||
|
|
||||||
be16_to_cpu(vhdr->version) > HFSPLUS_CURRENT_VERSION) {
|
|
||||||
printk(KERN_ERR "hfs: wrong filesystem version\n");
|
|
||||||
- goto cleanup;
|
|
||||||
+ goto out_free_vhdr;
|
|
||||||
}
|
|
||||||
sbi->total_blocks = be32_to_cpu(vhdr->total_blocks);
|
|
||||||
sbi->free_blocks = be32_to_cpu(vhdr->free_blocks);
|
|
||||||
@@ -421,19 +427,19 @@ static int hfsplus_fill_super(struct sup
|
|
||||||
sbi->ext_tree = hfs_btree_open(sb, HFSPLUS_EXT_CNID);
|
|
||||||
if (!sbi->ext_tree) {
|
|
||||||
printk(KERN_ERR "hfs: failed to load extents file\n");
|
|
||||||
- goto cleanup;
|
|
||||||
+ goto out_free_vhdr;
|
|
||||||
}
|
|
||||||
sbi->cat_tree = hfs_btree_open(sb, HFSPLUS_CAT_CNID);
|
|
||||||
if (!sbi->cat_tree) {
|
|
||||||
printk(KERN_ERR "hfs: failed to load catalog file\n");
|
|
||||||
- goto cleanup;
|
|
||||||
+ goto out_close_ext_tree;
|
|
||||||
}
|
|
||||||
|
|
||||||
inode = hfsplus_iget(sb, HFSPLUS_ALLOC_CNID);
|
|
||||||
if (IS_ERR(inode)) {
|
|
||||||
printk(KERN_ERR "hfs: failed to load allocation file\n");
|
|
||||||
err = PTR_ERR(inode);
|
|
||||||
- goto cleanup;
|
|
||||||
+ goto out_close_cat_tree;
|
|
||||||
}
|
|
||||||
sbi->alloc_file = inode;
|
|
||||||
|
|
||||||
@@ -442,14 +448,7 @@ static int hfsplus_fill_super(struct sup
|
|
||||||
if (IS_ERR(root)) {
|
|
||||||
printk(KERN_ERR "hfs: failed to load root directory\n");
|
|
||||||
err = PTR_ERR(root);
|
|
||||||
- goto cleanup;
|
|
||||||
- }
|
|
||||||
- sb->s_d_op = &hfsplus_dentry_operations;
|
|
||||||
- sb->s_root = d_alloc_root(root);
|
|
||||||
- if (!sb->s_root) {
|
|
||||||
- iput(root);
|
|
||||||
- err = -ENOMEM;
|
|
||||||
- goto cleanup;
|
|
||||||
+ goto out_put_alloc_file;
|
|
||||||
}
|
|
||||||
|
|
||||||
str.len = sizeof(HFSP_HIDDENDIR_NAME) - 1;
|
|
||||||
@@ -459,46 +458,68 @@ static int hfsplus_fill_super(struct sup
|
|
||||||
if (!hfs_brec_read(&fd, &entry, sizeof(entry))) {
|
|
||||||
hfs_find_exit(&fd);
|
|
||||||
if (entry.type != cpu_to_be16(HFSPLUS_FOLDER))
|
|
||||||
- goto cleanup;
|
|
||||||
+ goto out_put_root;
|
|
||||||
inode = hfsplus_iget(sb, be32_to_cpu(entry.folder.id));
|
|
||||||
if (IS_ERR(inode)) {
|
|
||||||
err = PTR_ERR(inode);
|
|
||||||
- goto cleanup;
|
|
||||||
+ goto out_put_root;
|
|
||||||
}
|
|
||||||
sbi->hidden_dir = inode;
|
|
||||||
} else
|
|
||||||
hfs_find_exit(&fd);
|
|
||||||
|
|
||||||
- if (sb->s_flags & MS_RDONLY)
|
|
||||||
- goto out;
|
|
||||||
+ if (!(sb->s_flags & MS_RDONLY)) {
|
|
||||||
+ /*
|
|
||||||
+ * H+LX == hfsplusutils, H+Lx == this driver, H+lx is unused
|
|
||||||
+ * all three are registered with Apple for our use
|
|
||||||
+ */
|
|
||||||
+ vhdr->last_mount_vers = cpu_to_be32(HFSP_MOUNT_VERSION);
|
|
||||||
+ vhdr->modify_date = hfsp_now2mt();
|
|
||||||
+ be32_add_cpu(&vhdr->write_count, 1);
|
|
||||||
+ vhdr->attributes &= cpu_to_be32(~HFSPLUS_VOL_UNMNT);
|
|
||||||
+ vhdr->attributes |= cpu_to_be32(HFSPLUS_VOL_INCNSTNT);
|
|
||||||
+ hfsplus_sync_fs(sb, 1);
|
|
||||||
+
|
|
||||||
+ if (!sbi->hidden_dir) {
|
|
||||||
+ mutex_lock(&sbi->vh_mutex);
|
|
||||||
+ sbi->hidden_dir = hfsplus_new_inode(sb, S_IFDIR);
|
|
||||||
+ hfsplus_create_cat(sbi->hidden_dir->i_ino, root, &str,
|
|
||||||
+ sbi->hidden_dir);
|
|
||||||
+ mutex_unlock(&sbi->vh_mutex);
|
|
||||||
|
|
||||||
- /* H+LX == hfsplusutils, H+Lx == this driver, H+lx is unused
|
|
||||||
- * all three are registered with Apple for our use
|
|
||||||
- */
|
|
||||||
- vhdr->last_mount_vers = cpu_to_be32(HFSP_MOUNT_VERSION);
|
|
||||||
- vhdr->modify_date = hfsp_now2mt();
|
|
||||||
- be32_add_cpu(&vhdr->write_count, 1);
|
|
||||||
- vhdr->attributes &= cpu_to_be32(~HFSPLUS_VOL_UNMNT);
|
|
||||||
- vhdr->attributes |= cpu_to_be32(HFSPLUS_VOL_INCNSTNT);
|
|
||||||
- hfsplus_sync_fs(sb, 1);
|
|
||||||
-
|
|
||||||
- if (!sbi->hidden_dir) {
|
|
||||||
- mutex_lock(&sbi->vh_mutex);
|
|
||||||
- sbi->hidden_dir = hfsplus_new_inode(sb, S_IFDIR);
|
|
||||||
- hfsplus_create_cat(sbi->hidden_dir->i_ino, sb->s_root->d_inode,
|
|
||||||
- &str, sbi->hidden_dir);
|
|
||||||
- mutex_unlock(&sbi->vh_mutex);
|
|
||||||
+ hfsplus_mark_inode_dirty(sbi->hidden_dir,
|
|
||||||
+ HFSPLUS_I_CAT_DIRTY);
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
|
|
||||||
- hfsplus_mark_inode_dirty(sbi->hidden_dir, HFSPLUS_I_CAT_DIRTY);
|
|
||||||
+ sb->s_d_op = &hfsplus_dentry_operations;
|
|
||||||
+ sb->s_root = d_alloc_root(root);
|
|
||||||
+ if (!sb->s_root) {
|
|
||||||
+ err = -ENOMEM;
|
|
||||||
+ goto out_put_hidden_dir;
|
|
||||||
}
|
|
||||||
-out:
|
|
||||||
+
|
|
||||||
unload_nls(sbi->nls);
|
|
||||||
sbi->nls = nls;
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
-cleanup:
|
|
||||||
- hfsplus_put_super(sb);
|
|
||||||
+out_put_hidden_dir:
|
|
||||||
+ iput(sbi->hidden_dir);
|
|
||||||
+out_put_root:
|
|
||||||
+ iput(sbi->alloc_file);
|
|
||||||
+out_put_alloc_file:
|
|
||||||
+ iput(sbi->alloc_file);
|
|
||||||
+out_close_cat_tree:
|
|
||||||
+ hfs_btree_close(sbi->cat_tree);
|
|
||||||
+out_close_ext_tree:
|
|
||||||
+ hfs_btree_close(sbi->ext_tree);
|
|
||||||
+out_free_vhdr:
|
|
||||||
+ kfree(sbi->s_vhdr);
|
|
||||||
+ kfree(sbi->s_backup_vhdr);
|
|
||||||
+out_unload_nls:
|
|
||||||
unload_nls(nls);
|
|
||||||
+ kfree(sbi);
|
|
||||||
+out:
|
|
||||||
return err;
|
|
||||||
}
|
|
||||||
|
|
27
kernel.spec
27
kernel.spec
@ -84,7 +84,7 @@ Summary: The Linux kernel
|
|||||||
# The rc snapshot level
|
# The rc snapshot level
|
||||||
%define rcrev 3
|
%define rcrev 3
|
||||||
# The git snapshot level
|
# The git snapshot level
|
||||||
%define gitrev 3
|
%define gitrev 4
|
||||||
# Set rpm version accordingly
|
# Set rpm version accordingly
|
||||||
%define rpmversion 2.6.%{upstream_sublevel}
|
%define rpmversion 2.6.%{upstream_sublevel}
|
||||||
%endif
|
%endif
|
||||||
@ -731,16 +731,6 @@ Patch12303: dmar-disable-when-ricoh-multifunction.patch
|
|||||||
|
|
||||||
Patch12421: fs-call-security_d_instantiate-in-d_obtain_alias.patch
|
Patch12421: fs-call-security_d_instantiate-in-d_obtain_alias.patch
|
||||||
|
|
||||||
Patch12430: can-softing-depend-on-iomem.patch
|
|
||||||
|
|
||||||
# rhbz#673857
|
|
||||||
Patch12432: hfsplus-01-dont-leak-buffer.patch
|
|
||||||
Patch12434: hfsplus-03-zero-vhdr-on-free.patch
|
|
||||||
Patch12436: hfsplus-05-fix-failed-mount.patch
|
|
||||||
|
|
||||||
# rhbz#607499
|
|
||||||
Patch12437: atl1c-add-missing-pci-id.patch
|
|
||||||
|
|
||||||
Patch12438: ath5k-fix-fast-channel-change.patch
|
Patch12438: ath5k-fix-fast-channel-change.patch
|
||||||
|
|
||||||
%endif
|
%endif
|
||||||
@ -1355,18 +1345,6 @@ ApplyPatch dmar-disable-when-ricoh-multifunction.patch
|
|||||||
# rhbz#662344,600690
|
# rhbz#662344,600690
|
||||||
ApplyPatch fs-call-security_d_instantiate-in-d_obtain_alias.patch
|
ApplyPatch fs-call-security_d_instantiate-in-d_obtain_alias.patch
|
||||||
|
|
||||||
# Fix build failure on s390
|
|
||||||
# accepted upstream
|
|
||||||
ApplyPatch can-softing-depend-on-iomem.patch
|
|
||||||
|
|
||||||
# rhbz#673857
|
|
||||||
ApplyPatch hfsplus-01-dont-leak-buffer.patch
|
|
||||||
ApplyPatch hfsplus-03-zero-vhdr-on-free.patch
|
|
||||||
ApplyPatch hfsplus-05-fix-failed-mount.patch
|
|
||||||
|
|
||||||
# rhbz#607499
|
|
||||||
ApplyPatch atl1c-add-missing-pci-id.patch
|
|
||||||
|
|
||||||
# rhbz#672778
|
# rhbz#672778
|
||||||
ApplyPatch ath5k-fix-fast-channel-change.patch
|
ApplyPatch ath5k-fix-fast-channel-change.patch
|
||||||
|
|
||||||
@ -1982,6 +1960,9 @@ fi
|
|||||||
# ||----w |
|
# ||----w |
|
||||||
# || ||
|
# || ||
|
||||||
%changelog
|
%changelog
|
||||||
|
* Fri Feb 04 2011 Chuck Ebbert <cebbert@redhat.com> 2.6.38-0.rc3.git4.1
|
||||||
|
- Linux 2.6.38-rc3-git4
|
||||||
|
|
||||||
* Thu Feb 03 2011 Chuck Ebbert <cebbert@redhat.com>
|
* Thu Feb 03 2011 Chuck Ebbert <cebbert@redhat.com>
|
||||||
- Linux 2.6.38-rc3-git3
|
- Linux 2.6.38-rc3-git3
|
||||||
- Enable Advansys SCSI driver on x86_64 (#589115)
|
- Enable Advansys SCSI driver on x86_64 (#589115)
|
||||||
|
2
sources
2
sources
@ -1,3 +1,3 @@
|
|||||||
c8ee37b4fdccdb651e0603d35350b434 linux-2.6.37.tar.bz2
|
c8ee37b4fdccdb651e0603d35350b434 linux-2.6.37.tar.bz2
|
||||||
5d036903b2be555ee94078e5ef594c1d patch-2.6.38-rc3.bz2
|
5d036903b2be555ee94078e5ef594c1d patch-2.6.38-rc3.bz2
|
||||||
934f6001d3443fa90da7fcf629c00aee patch-2.6.38-rc3-git3.bz2
|
32b200b529363e971a91706dd251fd4e patch-2.6.38-rc3-git4.bz2
|
||||||
|
Loading…
Reference in New Issue
Block a user