lkml.org 
[lkml]   [2005]   [Nov]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
Subject[PATCH 1/7]: PCI revised [PATCH 16/42]: PCI: PCI Error reporting callbacks
From
On Mon, Nov 07, 2005 at 10:27:27AM -0800, Greg KH was heard to remark:
> 3) realy strong typing that sparse can detect.


PCI Error Recovery: header file patch

Change enums and subroutine signatures to be strongly typed, per recent
discussion with GregKH. Also, change the acronym to the more unique,
less generic "PERS" "PCI Error Recovery System".

Greg, Please apply.

Signed-off-by: Linas Vepstas <linas@austin.ibm.com>

--
Index: linux-2.6.14-mm1/include/linux/pci.h
===================================================================
--- linux-2.6.14-mm1.orig/include/linux/pci.h 2005-11-07 13:55:28.528843983 -0600
+++ linux-2.6.14-mm1/include/linux/pci.h 2005-11-07 13:55:35.745830682 -0600
@@ -82,11 +82,11 @@
* the pci device. If some PCI bus between here and the pci device
* has crashed or locked up, this info is reflected here.
*/
-enum pci_channel_state {
+typedef enum {
pci_channel_io_normal = 0, /* I/O channel is in normal state */
pci_channel_io_frozen = 1, /* I/O to channel is blocked */
pci_channel_io_perm_failure, /* PCI card is dead */
-};
+} pci_channel_state_t;

/*
* The pci_dev structure is used to describe PCI devices.
@@ -121,7 +121,7 @@
this is D0-D3, D0 being fully functional,
and D3 being off. */

- enum pci_channel_state error_state; /* current connectivity state */
+ pci_channel_state_t error_state; /* current connectivity state */
struct device dev; /* Generic device interface */

/* device is compatible with these IDs */
@@ -245,35 +245,35 @@
};

/* ---------------------------------------------------------------- */
-/** PCI error recovery infrastructure. If a PCI device driver provides
+/** PCI Error Recovery System (PERS). If a PCI device driver provides
* a set fof callbacks in struct pci_error_handlers, then that device driver
* will be notified of PCI bus errors, and will be driven to recovery
* when an error occurs.
*/

-enum pcierr_result {
- PCIERR_RESULT_NONE = 0, /* no result/none/not supported in device driver */
- PCIERR_RESULT_CAN_RECOVER=1, /* Device driver can recover without slot reset */
- PCIERR_RESULT_NEED_RESET, /* Device driver wants slot to be reset. */
- PCIERR_RESULT_DISCONNECT, /* Device has completely failed, is unrecoverable */
- PCIERR_RESULT_RECOVERED, /* Device driver is fully recovered and operational */
-};
+typedef enum {
+ PERS_RESULT_NONE = 0, /* no result/none/not supported in device driver */
+ PERS_RESULT_CAN_RECOVER=1, /* Device driver can recover without slot reset */
+ PERS_RESULT_NEED_RESET, /* Device driver wants slot to be reset. */
+ PERS_RESULT_DISCONNECT, /* Device has completely failed, is unrecoverable */
+ PERS_RESULT_RECOVERED, /* Device driver is fully recovered and operational */
+} pers_result_t;

/* PCI bus error event callbacks */
struct pci_error_handlers
{
/* PCI bus error detected on this device */
- int (*error_detected)(struct pci_dev *dev,
- enum pci_channel_state error);
+ pers_result_t (*error_detected)(struct pci_dev *dev,
+ pci_channel_state_t error);

/* MMIO has been re-enabled, but not DMA */
- int (*mmio_enabled)(struct pci_dev *dev);
+ pers_result_t (*mmio_enabled)(struct pci_dev *dev);

/* PCI Express link has been reset */
- int (*link_reset)(struct pci_dev *dev);
+ pers_result_t (*link_reset)(struct pci_dev *dev);

/* PCI slot has been reset */
- int (*slot_reset)(struct pci_dev *dev);
+ pers_result_t (*slot_reset)(struct pci_dev *dev);

/* Device driver may resume normal operations */
void (*resume)(struct pci_dev *dev);
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
\
 
 \ /
  Last update: 2005-11-07 21:00    [from the cache]
©2003-2011 Jasper Spaans