- drivers-ide-fix-error-return-bugs-interface.patch removed from -mm tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The patch titled

     drivers/ide: fix error return bugs, interface

has been removed from the -mm tree.  Its filename is

     drivers-ide-fix-error-return-bugs-interface.patch

This patch was dropped because it was nacked by the maintainer

------------------------------------------------------
Subject: drivers/ide: fix error return bugs, interface
From: Jeff Garzik <jeff@xxxxxxxxxx>

This fixes the following error handling problems:

* The init_chipset API function is defined to return 'unsigned int', but
	- the caller code tests the return value for '< 0'
	- drivers sometimes return a negative value
  so, we change the API to return an 'int'

* cs5530: handle pci_set_mwi() failure with a printk()... shouldn't kill driver

* sc1200: handle pci_enable_device() failure during resume

Signed-off-by: Jeff Garzik <jeff@xxxxxxxxxx>
Cc: Alan Cox <alan@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxx>
---

 drivers/ide/pci/aec62xx.c      |    2 +-
 drivers/ide/pci/alim15x3.c     |    2 +-
 drivers/ide/pci/amd74xx.c      |    2 +-
 drivers/ide/pci/cmd64x.c       |    2 +-
 drivers/ide/pci/cs5530.c       |    6 ++++--
 drivers/ide/pci/cy82c693.c     |    2 +-
 drivers/ide/pci/hpt34x.c       |    2 +-
 drivers/ide/pci/hpt366.c       |    2 +-
 drivers/ide/pci/it821x.c       |    2 +-
 drivers/ide/pci/pdc202xx_new.c |    2 +-
 drivers/ide/pci/pdc202xx_old.c |    2 +-
 drivers/ide/pci/piix.c         |    2 +-
 drivers/ide/pci/sc1200.c       |    7 ++++++-
 drivers/ide/pci/serverworks.c  |    2 +-
 drivers/ide/pci/siimage.c      |    2 +-
 drivers/ide/pci/sis5513.c      |    2 +-
 drivers/ide/pci/sl82c105.c     |    2 +-
 drivers/ide/pci/via82cxxx.c    |    2 +-
 include/linux/ide.h            |    2 +-
 19 files changed, 27 insertions(+), 20 deletions(-)

diff -puN drivers/ide/pci/aec62xx.c~drivers-ide-fix-error-return-bugs-interface drivers/ide/pci/aec62xx.c
--- a/drivers/ide/pci/aec62xx.c~drivers-ide-fix-error-return-bugs-interface
+++ a/drivers/ide/pci/aec62xx.c
@@ -247,7 +247,7 @@ static int aec62xx_irq_timeout (ide_driv
 	return 0;
 }
 
-static unsigned int __devinit init_chipset_aec62xx(struct pci_dev *dev, const char *name)
+static int __devinit init_chipset_aec62xx(struct pci_dev *dev, const char *name)
 {
 	int bus_speed = system_bus_clock();
 
diff -puN drivers/ide/pci/alim15x3.c~drivers-ide-fix-error-return-bugs-interface drivers/ide/pci/alim15x3.c
--- a/drivers/ide/pci/alim15x3.c~drivers-ide-fix-error-return-bugs-interface
+++ a/drivers/ide/pci/alim15x3.c
@@ -582,7 +582,7 @@ static int ali15x3_dma_setup(ide_drive_t
  *	appropriate also sets up the 1533 southbridge.
  */
   
-static unsigned int __devinit init_chipset_ali15x3 (struct pci_dev *dev, const char *name)
+static int __devinit init_chipset_ali15x3 (struct pci_dev *dev, const char *name)
 {
 	unsigned long flags;
 	u8 tmpbyte;
diff -puN drivers/ide/pci/amd74xx.c~drivers-ide-fix-error-return-bugs-interface drivers/ide/pci/amd74xx.c
--- a/drivers/ide/pci/amd74xx.c~drivers-ide-fix-error-return-bugs-interface
+++ a/drivers/ide/pci/amd74xx.c
@@ -312,7 +312,7 @@ static int amd74xx_ide_dma_check(ide_dri
  * and initialize its drive independent registers.
  */
 
-static unsigned int __devinit init_chipset_amd74xx(struct pci_dev *dev, const char *name)
+static int __devinit init_chipset_amd74xx(struct pci_dev *dev, const char *name)
 {
 	unsigned char t;
 	unsigned int u;
diff -puN drivers/ide/pci/cmd64x.c~drivers-ide-fix-error-return-bugs-interface drivers/ide/pci/cmd64x.c
--- a/drivers/ide/pci/cmd64x.c~drivers-ide-fix-error-return-bugs-interface
+++ a/drivers/ide/pci/cmd64x.c
@@ -589,7 +589,7 @@ static int cmd646_1_ide_dma_end (ide_dri
 	return (dma_stat & 7) != 4;
 }
 
-static unsigned int __devinit init_chipset_cmd64x(struct pci_dev *dev, const char *name)
+static int __devinit init_chipset_cmd64x(struct pci_dev *dev, const char *name)
 {
 	u32 class_rev = 0;
 	u8 mrdmode = 0;
diff -puN drivers/ide/pci/cs5530.c~drivers-ide-fix-error-return-bugs-interface drivers/ide/pci/cs5530.c
--- a/drivers/ide/pci/cs5530.c~drivers-ide-fix-error-return-bugs-interface
+++ a/drivers/ide/pci/cs5530.c
@@ -216,7 +216,7 @@ static int cs5530_config_dma (ide_drive_
  *	Initialize the cs5530 bridge for reliable IDE DMA operation.
  */
 
-static unsigned int __devinit init_chipset_cs5530 (struct pci_dev *dev, const char *name)
+static int __devinit init_chipset_cs5530 (struct pci_dev *dev, const char *name)
 {
 	struct pci_dev *master_0 = NULL, *cs5530_0 = NULL;
 	unsigned long flags;
@@ -250,7 +250,9 @@ static unsigned int __devinit init_chips
 	 */
 
 	pci_set_master(cs5530_0);
-	pci_set_mwi(cs5530_0);
+	if (pci_set_mwi(cs5530_0))
+		dev_printk(KERN_WARNING, &cs5530_0->dev,
+			   "MWI enable failed\n");
 
 	/*
 	 * Set PCI CacheLineSize to 16-bytes:
diff -puN drivers/ide/pci/cy82c693.c~drivers-ide-fix-error-return-bugs-interface drivers/ide/pci/cy82c693.c
--- a/drivers/ide/pci/cy82c693.c~drivers-ide-fix-error-return-bugs-interface
+++ a/drivers/ide/pci/cy82c693.c
@@ -390,7 +390,7 @@ static void cy82c693_tune_drive (ide_dri
 /*
  * this function is called during init and is used to setup the cy82c693 chip
  */
-static unsigned int __devinit init_chipset_cy82c693(struct pci_dev *dev, const char *name)
+static int __devinit init_chipset_cy82c693(struct pci_dev *dev, const char *name)
 {
 	if (PCI_FUNC(dev->devfn) != 1)
 		return 0;
diff -puN drivers/ide/pci/hpt34x.c~drivers-ide-fix-error-return-bugs-interface drivers/ide/pci/hpt34x.c
--- a/drivers/ide/pci/hpt34x.c~drivers-ide-fix-error-return-bugs-interface
+++ a/drivers/ide/pci/hpt34x.c
@@ -156,7 +156,7 @@ fast_ata_pio:
  */
 #define	HPT34X_PCI_INIT_REG		0x80
 
-static unsigned int __devinit init_chipset_hpt34x(struct pci_dev *dev, const char *name)
+static int __devinit init_chipset_hpt34x(struct pci_dev *dev, const char *name)
 {
 	int i = 0;
 	unsigned long hpt34xIoBase = pci_resource_start(dev, 4);
diff -puN drivers/ide/pci/hpt366.c~drivers-ide-fix-error-return-bugs-interface drivers/ide/pci/hpt366.c
--- a/drivers/ide/pci/hpt366.c~drivers-ide-fix-error-return-bugs-interface
+++ a/drivers/ide/pci/hpt366.c
@@ -1012,7 +1012,7 @@ static int __devinit hpt37x_calibrate_dp
 	return 1;
 }
 
-static unsigned int __devinit init_chipset_hpt366(struct pci_dev *dev, const char *name)
+static int __devinit init_chipset_hpt366(struct pci_dev *dev, const char *name)
 {
 	struct hpt_info *info	= kmalloc(sizeof(struct hpt_info), GFP_KERNEL);
 	unsigned long io_base	= pci_resource_start(dev, 4);
diff -puN drivers/ide/pci/it821x.c~drivers-ide-fix-error-return-bugs-interface drivers/ide/pci/it821x.c
--- a/drivers/ide/pci/it821x.c~drivers-ide-fix-error-return-bugs-interface
+++ a/drivers/ide/pci/it821x.c
@@ -742,7 +742,7 @@ static void __devinit it8212_disable_rai
 	pci_write_config_byte(dev, PCI_LATENCY_TIMER, 0x20);
 }
 
-static unsigned int __devinit init_chipset_it821x(struct pci_dev *dev, const char *name)
+static int __devinit init_chipset_it821x(struct pci_dev *dev, const char *name)
 {
 	u8 conf;
 	static char *mode[2] = { "pass through", "smart" };
diff -puN drivers/ide/pci/pdc202xx_new.c~drivers-ide-fix-error-return-bugs-interface drivers/ide/pci/pdc202xx_new.c
--- a/drivers/ide/pci/pdc202xx_new.c~drivers-ide-fix-error-return-bugs-interface
+++ a/drivers/ide/pci/pdc202xx_new.c
@@ -307,7 +307,7 @@ static void __devinit apple_kiwi_init(st
 }
 #endif /* CONFIG_PPC_PMAC */
 
-static unsigned int __devinit init_chipset_pdcnew(struct pci_dev *dev, const char *name)
+static int __devinit init_chipset_pdcnew(struct pci_dev *dev, const char *name)
 {
 	if (dev->resource[PCI_ROM_RESOURCE].start) {
 		pci_write_config_dword(dev, PCI_ROM_ADDRESS,
diff -puN drivers/ide/pci/pdc202xx_old.c~drivers-ide-fix-error-return-bugs-interface drivers/ide/pci/pdc202xx_old.c
--- a/drivers/ide/pci/pdc202xx_old.c~drivers-ide-fix-error-return-bugs-interface
+++ a/drivers/ide/pci/pdc202xx_old.c
@@ -481,7 +481,7 @@ static void pdc202xx_reset (ide_drive_t 
 	hwif->tuneproc(drive, 5);
 }
 
-static unsigned int __devinit init_chipset_pdc202xx(struct pci_dev *dev,
+static int __devinit init_chipset_pdc202xx(struct pci_dev *dev,
 							const char *name)
 {
 	/* This doesn't appear needed */
diff -puN drivers/ide/pci/piix.c~drivers-ide-fix-error-return-bugs-interface drivers/ide/pci/piix.c
--- a/drivers/ide/pci/piix.c~drivers-ide-fix-error-return-bugs-interface
+++ a/drivers/ide/pci/piix.c
@@ -419,7 +419,7 @@ fast_ata_pio:
  *	out to be nice and simple
  */
  
-static unsigned int __devinit init_chipset_piix (struct pci_dev *dev, const char *name)
+static int __devinit init_chipset_piix (struct pci_dev *dev, const char *name)
 {
         switch(dev->device) {
 		case PCI_DEVICE_ID_INTEL_82801EB_1:
diff -puN drivers/ide/pci/sc1200.c~drivers-ide-fix-error-return-bugs-interface drivers/ide/pci/sc1200.c
--- a/drivers/ide/pci/sc1200.c~drivers-ide-fix-error-return-bugs-interface
+++ a/drivers/ide/pci/sc1200.c
@@ -394,10 +394,15 @@ static int sc1200_suspend (struct pci_de
 static int sc1200_resume (struct pci_dev *dev)
 {
 	ide_hwif_t	*hwif = NULL;
+	int rc;
+
 
 	pci_set_power_state(dev, PCI_D0);	// bring chip back from sleep state
 	dev->current_state = PM_EVENT_ON;
-	pci_enable_device(dev);
+	rc = pci_enable_device(dev);
+	if (rc)
+		return rc;
+
 	//
 	// loop over all interfaces that are part of this pci device:
 	//
diff -puN drivers/ide/pci/serverworks.c~drivers-ide-fix-error-return-bugs-interface drivers/ide/pci/serverworks.c
--- a/drivers/ide/pci/serverworks.c~drivers-ide-fix-error-return-bugs-interface
+++ a/drivers/ide/pci/serverworks.c
@@ -346,7 +346,7 @@ static int svwks_ide_dma_end (ide_drive_
 	return __ide_dma_end(drive);
 }
 
-static unsigned int __devinit init_chipset_svwks (struct pci_dev *dev, const char *name)
+static int __devinit init_chipset_svwks (struct pci_dev *dev, const char *name)
 {
 	unsigned int reg;
 	u8 btr;
diff -puN drivers/ide/pci/siimage.c~drivers-ide-fix-error-return-bugs-interface drivers/ide/pci/siimage.c
--- a/drivers/ide/pci/siimage.c~drivers-ide-fix-error-return-bugs-interface
+++ a/drivers/ide/pci/siimage.c
@@ -764,7 +764,7 @@ static unsigned int setup_mmio_siimage (
  *	to 133MHz clocking if the system isn't already set up to do it.
  */
 
-static unsigned int __devinit init_chipset_siimage(struct pci_dev *dev, const char *name)
+static int __devinit init_chipset_siimage(struct pci_dev *dev, const char *name)
 {
 	u32 class_rev	= 0;
 	u8 tmpbyte	= 0;
diff -puN drivers/ide/pci/sis5513.c~drivers-ide-fix-error-return-bugs-interface drivers/ide/pci/sis5513.c
--- a/drivers/ide/pci/sis5513.c~drivers-ide-fix-error-return-bugs-interface
+++ a/drivers/ide/pci/sis5513.c
@@ -730,7 +730,7 @@ static int sis5513_config_xfer_rate (ide
 */
 
 /* Chip detection and general config */
-static unsigned int __devinit init_chipset_sis5513 (struct pci_dev *dev, const char *name)
+static int __devinit init_chipset_sis5513 (struct pci_dev *dev, const char *name)
 {
 	struct pci_dev *host;
 	int i = 0;
diff -puN drivers/ide/pci/sl82c105.c~drivers-ide-fix-error-return-bugs-interface drivers/ide/pci/sl82c105.c
--- a/drivers/ide/pci/sl82c105.c~drivers-ide-fix-error-return-bugs-interface
+++ a/drivers/ide/pci/sl82c105.c
@@ -385,7 +385,7 @@ static unsigned int sl82c105_bridge_revi
  * channel 0 here at least, but channel 1 has to be enabled by
  * firmware or arch code. We still set both to 16 bits mode.
  */
-static unsigned int __devinit init_chipset_sl82c105(struct pci_dev *dev, const char *msg)
+static int __devinit init_chipset_sl82c105(struct pci_dev *dev, const char *msg)
 {
 	u32 val;
 
diff -puN drivers/ide/pci/via82cxxx.c~drivers-ide-fix-error-return-bugs-interface drivers/ide/pci/via82cxxx.c
--- a/drivers/ide/pci/via82cxxx.c~drivers-ide-fix-error-return-bugs-interface
+++ a/drivers/ide/pci/via82cxxx.c
@@ -271,7 +271,7 @@ static struct via_isa_bridge *via_config
  *	and initialize its drive independent registers.
  */
 
-static unsigned int __devinit init_chipset_via82cxxx(struct pci_dev *dev, const char *name)
+static int __devinit init_chipset_via82cxxx(struct pci_dev *dev, const char *name)
 {
 	struct pci_dev *isa = NULL;
 	struct via_isa_bridge *via_config;
diff -puN include/linux/ide.h~drivers-ide-fix-error-return-bugs-interface include/linux/ide.h
--- a/include/linux/ide.h~drivers-ide-fix-error-return-bugs-interface
+++ a/include/linux/ide.h
@@ -1233,7 +1233,7 @@ typedef struct ide_pci_device_s {
 	char			*name;
 	int			(*init_setup)(struct pci_dev *, struct ide_pci_device_s *);
 	void			(*init_setup_dma)(struct pci_dev *, struct ide_pci_device_s *, ide_hwif_t *);
-	unsigned int		(*init_chipset)(struct pci_dev *, const char *);
+	int			(*init_chipset)(struct pci_dev *, const char *);
 	void			(*init_iops)(ide_hwif_t *);
 	void                    (*init_hwif)(ide_hwif_t *);
 	void			(*init_dma)(ide_hwif_t *, unsigned long);
_

Patches currently in -mm which might be from jeff@xxxxxxxxxx are

origin.patch
tpm-fix-error-handling.patch
x86-microcode-handle-sysfs-error.patch
firmware-dell_rbu-handle-sysfs-errors.patch
ipmi-handle-sysfs-errors.patch
eisa-handle-sysfs-errors.patch
firmware-efivars-handle-error.patch
drivers-mca-handle-sysfs-errors.patch
isdn-several-minor-fixes.patch
fix-up-a-multitude-of-acpi-compiler-warnings-on-x86_64.patch
cpufreq-handle-sysfs-errors.patch
drm-fix-error-returns-sysfs-error-handling.patch
git-dvb.patch
i2c-buses-scx200_acb-handle-pci-errors.patch
input-handle-sysfs-errors.patch
input-drivers-handle-sysfs-errors.patch
git-libata-all.patch
ata-must-depend-on-block.patch
pci_module_init-conversion-for-pata_pdc2027x.patch
libata-return-sense-data-in-hdio_drive_cmd-ioctl.patch
via-pata-controller-xfer-fixes.patch
ahci-ati-sb600-sata-support-for-various-modes.patch
git-mtd.patch
git-netdev-all.patch
libphy-dont-do-that.patch
update-smc91x-driver-with-arm-versatile-board-info.patch
b44-fix-eeprom-endianess-issue.patch
forcedeth-power-management-support.patch
remove-unnecessary-check-in-drivers-net-depcac.patch
8139too-force-media-setting-fix.patch
ibmveth-irq-fix.patch
ehea-firmware-interface-based-on-anton-blanchards-new-hvcall-interface.patch
tulip-fix-shutdown-dma-irq-race.patch
drivers-dma-handle-sysfs-errors.patch
atm-firestream-handle-thrown-error.patch
r8169-driver-corega-support-patch.patch
git-pciseg.patch
watchdog-itco_wdt-fix-bug-related-to-gcc-uninit-warning.patch
airo-suspend-fix.patch
drivers-ide-fix-error-return-bugs-interface.patch
drivers-led-handle-sysfs-errors.patch
i2o-handle-a-few-sysfs-errors.patch
fs-partitions-check-add-sysfs-error-handling.patch
git-gccbug.patch

-
To unsubscribe from this list: send the line "unsubscribe mm-commits" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Kernel Newbies FAQ]     [Kernel Archive]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [Bugtraq]     [Photo]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]

  Powered by Linux