Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0f6db217 authored by Niels de Vos's avatar Niels de Vos Committed by Greg Kroah-Hartman
Browse files

parport_pc.c: correctly release the requested region for the IT887x



Replace release_resource() by release_region() and also fix the
inconsistency in the size of the requested/released region.

The size of the resource should be 32, not 0x8 like it was corrected in
commit e7c310c3 already.

CC: linux-serial@vger.kernel.org
Reported-by: default avatarJulia Lawall <julia@diku.dk>
Signed-off-by: default avatarNiels de Vos <ndevos@redhat.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent f0e615c3
Loading
Loading
Loading
Loading
+3 −5
Original line number Original line Diff line number Diff line
@@ -2550,7 +2550,6 @@ static int __devinit sio_ite_8872_probe(struct pci_dev *pdev, int autoirq,
					 const struct parport_pc_via_data *via)
					 const struct parport_pc_via_data *via)
{
{
	short inta_addr[6] = { 0x2A0, 0x2C0, 0x220, 0x240, 0x1E0 };
	short inta_addr[6] = { 0x2A0, 0x2C0, 0x220, 0x240, 0x1E0 };
	struct resource *base_res;
	u32 ite8872set;
	u32 ite8872set;
	u32 ite8872_lpt, ite8872_lpthi;
	u32 ite8872_lpt, ite8872_lpthi;
	u8 ite8872_irq, type;
	u8 ite8872_irq, type;
@@ -2561,8 +2560,7 @@ static int __devinit sio_ite_8872_probe(struct pci_dev *pdev, int autoirq,


	/* make sure which one chip */
	/* make sure which one chip */
	for (i = 0; i < 5; i++) {
	for (i = 0; i < 5; i++) {
		base_res = request_region(inta_addr[i], 32, "it887x");
		if (request_region(inta_addr[i], 32, "it887x")) {
		if (base_res) {
			int test;
			int test;
			pci_write_config_dword(pdev, 0x60,
			pci_write_config_dword(pdev, 0x60,
						0xe5000000 | inta_addr[i]);
						0xe5000000 | inta_addr[i]);
@@ -2571,7 +2569,7 @@ static int __devinit sio_ite_8872_probe(struct pci_dev *pdev, int autoirq,
			test = inb(inta_addr[i]);
			test = inb(inta_addr[i]);
			if (test != 0xff)
			if (test != 0xff)
				break;
				break;
			release_region(inta_addr[i], 0x8);
			release_region(inta_addr[i], 32);
		}
		}
	}
	}
	if (i >= 5) {
	if (i >= 5) {
@@ -2635,7 +2633,7 @@ static int __devinit sio_ite_8872_probe(struct pci_dev *pdev, int autoirq,
	/*
	/*
	 * Release the resource so that parport_pc_probe_port can get it.
	 * Release the resource so that parport_pc_probe_port can get it.
	 */
	 */
	release_resource(base_res);
	release_region(inta_addr[i], 32);
	if (parport_pc_probe_port(ite8872_lpt, ite8872_lpthi,
	if (parport_pc_probe_port(ite8872_lpt, ite8872_lpthi,
				   irq, PARPORT_DMA_NONE, &pdev->dev, 0)) {
				   irq, PARPORT_DMA_NONE, &pdev->dev, 0)) {
		printk(KERN_INFO
		printk(KERN_INFO