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