r4231 - in dists/trunk/linux-2.6/debian: . patches-debian patches-debian/series

maximilian attems maks-guest at costa.debian.org
Sat Sep 17 01:46:27 UTC 2005


Author: maks-guest
Date: 2005-09-17 01:46:26 +0000 (Sat, 17 Sep 2005)
New Revision: 4231

Added:
   dists/trunk/linux-2.6/debian/patches-debian/patch-2.6.13.2
Modified:
   dists/trunk/linux-2.6/debian/changelog
   dists/trunk/linux-2.6/debian/patches-debian/series/2.6.13-1
Log:
latest stable release: 2.6.13.2, no can nr. yet..


Modified: dists/trunk/linux-2.6/debian/changelog
===================================================================
--- dists/trunk/linux-2.6/debian/changelog	2005-09-16 19:24:24 UTC (rev 4230)
+++ dists/trunk/linux-2.6/debian/changelog	2005-09-17 01:46:26 UTC (rev 4231)
@@ -57,6 +57,18 @@
   * Drop drivers-add-scsi_changer.patch (merged)
   * Drop drivers-ide-dma-blacklist-toshiba.patch (merged)
   * Drop drivers-ide-__devinit.patch (merged)
+  * Added patch-2.6.13.2:
+    - USB: ftdi_sio: custom baud rate fix
+    - Fix up more strange byte writes to the PCI_ROM_ADDRESS config word
+    - Fix MPOL_F_VERIFY
+    - jfs: jfs_delete_inode must call clear_inode
+    - Fix DHCP + MASQUERADE problem
+    - Sun HME: enable and map PCI ROM properly
+    - Sun GEM ethernet: enable and map PCI ROM properly
+    - hpt366: write the full 4 bytes of ROM address, not just low 1 byte
+    - forcedeth: Initialize link settings in every nv_open()
+    - Lost sockfd_put() in routing_ioctl()
+    - lost fput in 32bit ioctl on x86-64
 
   [ Sven Luther ]
   * [powerpc] Added hotplug support to the mv643xx_eth driver :

Added: dists/trunk/linux-2.6/debian/patches-debian/patch-2.6.13.2
===================================================================
--- dists/trunk/linux-2.6/debian/patches-debian/patch-2.6.13.2	2005-09-16 19:24:24 UTC (rev 4230)
+++ dists/trunk/linux-2.6/debian/patches-debian/patch-2.6.13.2	2005-09-17 01:46:26 UTC (rev 4231)
@@ -0,0 +1,328 @@
+diff --git a/arch/x86_64/ia32/ia32_ioctl.c b/arch/x86_64/ia32/ia32_ioctl.c
+--- a/arch/x86_64/ia32/ia32_ioctl.c
++++ b/arch/x86_64/ia32/ia32_ioctl.c
+@@ -24,17 +24,26 @@
+ static int tiocgdev(unsigned fd, unsigned cmd,  unsigned int __user *ptr) 
+ { 
+ 
+-	struct file *file = fget(fd);
++	struct file *file;
+ 	struct tty_struct *real_tty;
++	int fput_needed, ret;
+ 
++	file = fget_light(fd, &fput_needed);
+ 	if (!file)
+ 		return -EBADF;
++
++	ret = -EINVAL;
+ 	if (file->f_op->ioctl != tty_ioctl)
+-		return -EINVAL; 
++		goto out;
+ 	real_tty = (struct tty_struct *)file->private_data;
+ 	if (!real_tty) 	
+-		return -EINVAL; 
+-	return put_user(new_encode_dev(tty_devnum(real_tty)), ptr); 
++		goto out;
++
++	ret = put_user(new_encode_dev(tty_devnum(real_tty)), ptr); 
++
++out:
++	fput_light(file, fput_needed);
++	return ret;
+ } 
+ 
+ #define RTC_IRQP_READ32	_IOR('p', 0x0b, unsigned int)	 /* Read IRQ rate   */
+diff --git a/drivers/ide/pci/cmd64x.c b/drivers/ide/pci/cmd64x.c
+--- a/drivers/ide/pci/cmd64x.c
++++ b/drivers/ide/pci/cmd64x.c
+@@ -608,7 +608,7 @@ static unsigned int __devinit init_chips
+ 
+ #ifdef __i386__
+ 	if (dev->resource[PCI_ROM_RESOURCE].start) {
+-		pci_write_config_byte(dev, PCI_ROM_ADDRESS, dev->resource[PCI_ROM_RESOURCE].start | PCI_ROM_ADDRESS_ENABLE);
++		pci_write_config_dword(dev, PCI_ROM_ADDRESS, dev->resource[PCI_ROM_RESOURCE].start | PCI_ROM_ADDRESS_ENABLE);
+ 		printk(KERN_INFO "%s: ROM enabled at 0x%08lx\n", name, dev->resource[PCI_ROM_RESOURCE].start);
+ 	}
+ #endif
+diff --git a/drivers/ide/pci/hpt34x.c b/drivers/ide/pci/hpt34x.c
+--- a/drivers/ide/pci/hpt34x.c
++++ b/drivers/ide/pci/hpt34x.c
+@@ -173,7 +173,7 @@ static unsigned int __devinit init_chips
+ 
+ 	if (cmd & PCI_COMMAND_MEMORY) {
+ 		if (pci_resource_start(dev, PCI_ROM_RESOURCE)) {
+-			pci_write_config_byte(dev, PCI_ROM_ADDRESS,
++			pci_write_config_dword(dev, PCI_ROM_ADDRESS,
+ 				dev->resource[PCI_ROM_RESOURCE].start | PCI_ROM_ADDRESS_ENABLE);
+ 			printk(KERN_INFO "HPT345: ROM enabled at 0x%08lx\n",
+ 				dev->resource[PCI_ROM_RESOURCE].start);
+diff --git a/drivers/ide/pci/hpt366.c b/drivers/ide/pci/hpt366.c
+--- a/drivers/ide/pci/hpt366.c
++++ b/drivers/ide/pci/hpt366.c
+@@ -1334,9 +1334,13 @@ static int __devinit init_hpt366(struct 
+ static unsigned int __devinit init_chipset_hpt366(struct pci_dev *dev, const char *name)
+ {
+ 	int ret = 0;
+-	/* FIXME: Not portable */
++
++	/*
++	 * FIXME: Not portable. Also, why do we enable the ROM in the first place?
++	 * We don't seem to be using it.
++	 */
+ 	if (dev->resource[PCI_ROM_RESOURCE].start)
+-		pci_write_config_byte(dev, PCI_ROM_ADDRESS,
++		pci_write_config_dword(dev, PCI_ROM_ADDRESS,
+ 			dev->resource[PCI_ROM_RESOURCE].start | PCI_ROM_ADDRESS_ENABLE);
+ 
+ 	pci_write_config_byte(dev, PCI_CACHE_LINE_SIZE, (L1_CACHE_BYTES / 4));
+diff --git a/drivers/net/forcedeth.c b/drivers/net/forcedeth.c
+--- a/drivers/net/forcedeth.c
++++ b/drivers/net/forcedeth.c
+@@ -1888,6 +1888,9 @@ static int nv_open(struct net_device *de
+ 		writel(NVREG_MIISTAT_MASK, base + NvRegMIIStatus);
+ 		dprintk(KERN_INFO "startup: got 0x%08x.\n", miistat);
+ 	}
++	/* set linkspeed to invalid value, thus force nv_update_linkspeed
++	 * to init hw */
++	np->linkspeed = 0; 
+ 	ret = nv_update_linkspeed(dev);
+ 	nv_start_rx(dev);
+ 	nv_start_tx(dev);
+diff --git a/drivers/net/sungem.c b/drivers/net/sungem.c
+--- a/drivers/net/sungem.c
++++ b/drivers/net/sungem.c
+@@ -2816,7 +2816,7 @@ static int gem_ioctl(struct net_device *
+ 
+ #if (!defined(__sparc__) && !defined(CONFIG_PPC_PMAC))
+ /* Fetch MAC address from vital product data of PCI ROM. */
+-static void find_eth_addr_in_vpd(void __iomem *rom_base, int len, unsigned char *dev_addr)
++static int find_eth_addr_in_vpd(void __iomem *rom_base, int len, unsigned char *dev_addr)
+ {
+ 	int this_offset;
+ 
+@@ -2837,35 +2837,27 @@ static void find_eth_addr_in_vpd(void __
+ 
+ 		for (i = 0; i < 6; i++)
+ 			dev_addr[i] = readb(p + i);
+-		break;
++		return 1;
+ 	}
++	return 0;
+ }
+ 
+ static void get_gem_mac_nonobp(struct pci_dev *pdev, unsigned char *dev_addr)
+ {
+-	u32 rom_reg_orig;
+-	void __iomem *p;
+-
+-	if (pdev->resource[PCI_ROM_RESOURCE].parent == NULL) {
+-		if (pci_assign_resource(pdev, PCI_ROM_RESOURCE) < 0)
+-			goto use_random;
+-	}
+-
+-	pci_read_config_dword(pdev, pdev->rom_base_reg, &rom_reg_orig);
+-	pci_write_config_dword(pdev, pdev->rom_base_reg,
+-			       rom_reg_orig | PCI_ROM_ADDRESS_ENABLE);
++	size_t size;
++	void __iomem *p = pci_map_rom(pdev, &size);
+ 
+-	p = ioremap(pci_resource_start(pdev, PCI_ROM_RESOURCE), (64 * 1024));
+-	if (p != NULL && readb(p) == 0x55 && readb(p + 1) == 0xaa)
+-		find_eth_addr_in_vpd(p, (64 * 1024), dev_addr);
++	if (p) {
++			int found;
+ 
+-	if (p != NULL)
+-		iounmap(p);
+-
+-	pci_write_config_dword(pdev, pdev->rom_base_reg, rom_reg_orig);
+-	return;
++		found = readb(p) == 0x55 &&
++			readb(p + 1) == 0xaa &&
++			find_eth_addr_in_vpd(p, (64 * 1024), dev_addr);
++		pci_unmap_rom(pdev, p);
++		if (found)
++			return;
++	}
+ 
+-use_random:
+ 	/* Sun MAC prefix then 3 random bytes. */
+ 	dev_addr[0] = 0x08;
+ 	dev_addr[1] = 0x00;
+diff --git a/drivers/net/sunhme.c b/drivers/net/sunhme.c
+--- a/drivers/net/sunhme.c
++++ b/drivers/net/sunhme.c
+@@ -2954,7 +2954,7 @@ static int is_quattro_p(struct pci_dev *
+ }
+ 
+ /* Fetch MAC address from vital product data of PCI ROM. */
+-static void find_eth_addr_in_vpd(void __iomem *rom_base, int len, int index, unsigned char *dev_addr)
++static int find_eth_addr_in_vpd(void __iomem *rom_base, int len, int index, unsigned char *dev_addr)
+ {
+ 	int this_offset;
+ 
+@@ -2977,42 +2977,33 @@ static void find_eth_addr_in_vpd(void __
+ 
+ 			for (i = 0; i < 6; i++)
+ 				dev_addr[i] = readb(p + i);
+-			break;
++			return 1;
+ 		}
+ 		index--;
+ 	}
++	return 0;
+ }
+ 
+ static void get_hme_mac_nonsparc(struct pci_dev *pdev, unsigned char *dev_addr)
+ {
+-	u32 rom_reg_orig;
+-	void __iomem *p;
+-	int index;
++	size_t size;
++	void __iomem *p = pci_map_rom(pdev, &size);
+ 
+-	index = 0;
+-	if (is_quattro_p(pdev))
+-		index = PCI_SLOT(pdev->devfn);
+-
+-	if (pdev->resource[PCI_ROM_RESOURCE].parent == NULL) {
+-		if (pci_assign_resource(pdev, PCI_ROM_RESOURCE) < 0)
+-			goto use_random;
++	if (p) {
++		int index = 0;
++		int found;
++
++		if (is_quattro_p(pdev))
++			index = PCI_SLOT(pdev->devfn);
++
++		found = readb(p) == 0x55 &&
++			readb(p + 1) == 0xaa &&
++			find_eth_addr_in_vpd(p, (64 * 1024), index, dev_addr);
++		pci_unmap_rom(pdev, p);
++		if (found)
++			return;
+ 	}
+ 
+-	pci_read_config_dword(pdev, pdev->rom_base_reg, &rom_reg_orig);
+-	pci_write_config_dword(pdev, pdev->rom_base_reg,
+-			       rom_reg_orig | PCI_ROM_ADDRESS_ENABLE);
+-
+-	p = ioremap(pci_resource_start(pdev, PCI_ROM_RESOURCE), (64 * 1024));
+-	if (p != NULL && readb(p) == 0x55 && readb(p + 1) == 0xaa)
+-		find_eth_addr_in_vpd(p, (64 * 1024), index, dev_addr);
+-
+-	if (p != NULL)
+-		iounmap(p);
+-
+-	pci_write_config_dword(pdev, pdev->rom_base_reg, rom_reg_orig);
+-	return;
+-
+-use_random:
+ 	/* Sun MAC prefix then 3 random bytes. */
+ 	dev_addr[0] = 0x08;
+ 	dev_addr[1] = 0x00;
+diff --git a/drivers/usb/serial/ftdi_sio.c b/drivers/usb/serial/ftdi_sio.c
+--- a/drivers/usb/serial/ftdi_sio.c
++++ b/drivers/usb/serial/ftdi_sio.c
+@@ -874,7 +874,7 @@ static void ftdi_determine_type(struct u
+ 	unsigned interfaces;
+ 
+ 	/* Assume it is not the original SIO device for now. */
+-	priv->baud_base = 48000000 / 16;
++	priv->baud_base = 48000000 / 2;
+ 	priv->write_offset = 0;
+ 
+ 	version = le16_to_cpu(udev->descriptor.bcdDevice);
+diff --git a/fs/compat_ioctl.c b/fs/compat_ioctl.c
+--- a/fs/compat_ioctl.c
++++ b/fs/compat_ioctl.c
+@@ -798,13 +798,16 @@ static int routing_ioctl(unsigned int fd
+ 		r = (void *) &r4;
+ 	}
+ 
+-	if (ret)
+-		return -EFAULT;
++	if (ret) {
++		ret = -EFAULT;
++		goto out;
++	}
+ 
+ 	set_fs (KERNEL_DS);
+ 	ret = sys_ioctl (fd, cmd, (unsigned long) r);
+ 	set_fs (old_fs);
+ 
++out:
+ 	if (mysock)
+ 		sockfd_put(mysock);
+ 
+diff --git a/fs/jfs/inode.c b/fs/jfs/inode.c
+--- a/fs/jfs/inode.c
++++ b/fs/jfs/inode.c
+@@ -128,21 +128,21 @@ void jfs_delete_inode(struct inode *inod
+ {
+ 	jfs_info("In jfs_delete_inode, inode = 0x%p", inode);
+ 
+-	if (is_bad_inode(inode) ||
+-	    (JFS_IP(inode)->fileset != cpu_to_le32(FILESYSTEM_I)))
+-			return;
++	if (!is_bad_inode(inode) &&
++	    (JFS_IP(inode)->fileset == cpu_to_le32(FILESYSTEM_I))) {
+ 
+-	if (test_cflag(COMMIT_Freewmap, inode))
+-		jfs_free_zero_link(inode);
++		if (test_cflag(COMMIT_Freewmap, inode))
++			jfs_free_zero_link(inode);
+ 
+-	diFree(inode);
++		diFree(inode);
+ 
+-	/*
+-	 * Free the inode from the quota allocation.
+-	 */
+-	DQUOT_INIT(inode);
+-	DQUOT_FREE_INODE(inode);
+-	DQUOT_DROP(inode);
++		/*
++		 * Free the inode from the quota allocation.
++		 */
++		DQUOT_INIT(inode);
++		DQUOT_FREE_INODE(inode);
++		DQUOT_DROP(inode);
++	}
+ 
+ 	clear_inode(inode);
+ }
+diff --git a/mm/mempolicy.c b/mm/mempolicy.c
+--- a/mm/mempolicy.c
++++ b/mm/mempolicy.c
+@@ -333,8 +333,13 @@ check_range(struct mm_struct *mm, unsign
+ 		if (prev && prev->vm_end < vma->vm_start)
+ 			return ERR_PTR(-EFAULT);
+ 		if ((flags & MPOL_MF_STRICT) && !is_vm_hugetlb_page(vma)) {
++			unsigned long endvma = vma->vm_end; 
++			if (endvma > end)
++				endvma = end;
++			if (vma->vm_start > start)
++				start = vma->vm_start;
+ 			err = check_pgd_range(vma->vm_mm,
+-					   vma->vm_start, vma->vm_end, nodes);
++					   start, endvma, nodes);
+ 			if (err) {
+ 				first = ERR_PTR(err);
+ 				break;
+diff --git a/net/ipv4/netfilter/ipt_MASQUERADE.c b/net/ipv4/netfilter/ipt_MASQUERADE.c
+--- a/net/ipv4/netfilter/ipt_MASQUERADE.c
++++ b/net/ipv4/netfilter/ipt_MASQUERADE.c
+@@ -95,6 +95,12 @@ masquerade_target(struct sk_buff **pskb,
+ 	IP_NF_ASSERT(ct && (ctinfo == IP_CT_NEW || ctinfo == IP_CT_RELATED
+ 	                    || ctinfo == IP_CT_RELATED + IP_CT_IS_REPLY));
+ 
++	/* Source address is 0.0.0.0 - locally generated packet that is
++	 * probably not supposed to be masqueraded.
++	 */
++	if (ct->tuplehash[IP_CT_DIR_ORIGINAL].tuple.src.ip == 0)
++		return NF_ACCEPT;
++
+ 	mr = targinfo;
+ 	rt = (struct rtable *)(*pskb)->dst;
+ 	newsrc = inet_select_addr(out, rt->rt_gateway, RT_SCOPE_UNIVERSE);

Modified: dists/trunk/linux-2.6/debian/patches-debian/series/2.6.13-1
===================================================================
--- dists/trunk/linux-2.6/debian/patches-debian/series/2.6.13-1	2005-09-16 19:24:24 UTC (rev 4230)
+++ dists/trunk/linux-2.6/debian/patches-debian/series/2.6.13-1	2005-09-17 01:46:26 UTC (rev 4231)
@@ -21,3 +21,4 @@
 + tty-locking-fixes9.patch
 + version.patch
 + powerpc-mv643xx-hotplug-support.patch
++ patch-2.6.13.2




More information about the Kernel-svn-changes mailing list