diff --git a/atl1c-add-missing-pci-id.patch b/atl1c-add-missing-pci-id.patch deleted file mode 100644 index 236319b74..000000000 --- a/atl1c-add-missing-pci-id.patch +++ /dev/null @@ -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 - ---- 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 } - }; diff --git a/can-softing-depend-on-iomem.patch b/can-softing-depend-on-iomem.patch deleted file mode 100644 index 9b944ef71..000000000 --- a/can-softing-depend-on-iomem.patch +++ /dev/null @@ -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 - ---- 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. diff --git a/hfsplus-01-dont-leak-buffer.patch b/hfsplus-01-dont-leak-buffer.patch deleted file mode 100644 index 225166800..000000000 --- a/hfsplus-01-dont-leak-buffer.patch +++ /dev/null @@ -1,24 +0,0 @@ -hfsplus: Don't leak buffer on error - -Signed-Off-By: Chuck Ebbert - ---- 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; - } diff --git a/hfsplus-03-zero-vhdr-on-free.patch b/hfsplus-03-zero-vhdr-on-free.patch deleted file mode 100644 index 020789ec5..000000000 --- a/hfsplus-03-zero-vhdr-on-free.patch +++ /dev/null @@ -1,24 +0,0 @@ -hfsplus: Fix two memory leaks in wrapper.c - -Signed-Off-By: Chuck Ebbert - ---- 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; - } - diff --git a/hfsplus-05-fix-failed-mount.patch b/hfsplus-05-fix-failed-mount.patch deleted file mode 100644 index 10fdad4b1..000000000 --- a/hfsplus-05-fix-failed-mount.patch +++ /dev/null @@ -1,209 +0,0 @@ -From: Christoph Hellwig -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 -Signed-off-by: Christoph Hellwig - -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; - } - diff --git a/kernel.spec b/kernel.spec index 71cf21e9e..a581fde2d 100644 --- a/kernel.spec +++ b/kernel.spec @@ -84,7 +84,7 @@ Summary: The Linux kernel # The rc snapshot level %define rcrev 3 # The git snapshot level -%define gitrev 3 +%define gitrev 4 # Set rpm version accordingly %define rpmversion 2.6.%{upstream_sublevel} %endif @@ -731,16 +731,6 @@ Patch12303: dmar-disable-when-ricoh-multifunction.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 %endif @@ -1355,18 +1345,6 @@ ApplyPatch dmar-disable-when-ricoh-multifunction.patch # rhbz#662344,600690 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 ApplyPatch ath5k-fix-fast-channel-change.patch @@ -1982,6 +1960,9 @@ fi # ||----w | # || || %changelog +* Fri Feb 04 2011 Chuck Ebbert 2.6.38-0.rc3.git4.1 +- Linux 2.6.38-rc3-git4 + * Thu Feb 03 2011 Chuck Ebbert - Linux 2.6.38-rc3-git3 - Enable Advansys SCSI driver on x86_64 (#589115) diff --git a/sources b/sources index 8f07f2c56..4d8415667 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ c8ee37b4fdccdb651e0603d35350b434 linux-2.6.37.tar.bz2 5d036903b2be555ee94078e5ef594c1d patch-2.6.38-rc3.bz2 -934f6001d3443fa90da7fcf629c00aee patch-2.6.38-rc3-git3.bz2 +32b200b529363e971a91706dd251fd4e patch-2.6.38-rc3-git4.bz2