Commit 4a918bc2 authored by Paul Fulghum's avatar Paul Fulghum Committed by Linus Torvalds

[PATCH] synclink.c: compiler optimisation fix

Make some fields of DMA descriptor volatile to prevent compiler optimizations.
Signed-off-by: default avatarPaul Fulghum <paulkf@microgate.com>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 9d5c1e1b
/* /*
* linux/drivers/char/synclink.c * linux/drivers/char/synclink.c
* *
* $Id: synclink.c,v 4.28 2004/08/11 19:30:01 paulkf Exp $ * $Id: synclink.c,v 4.37 2005/09/07 13:13:19 paulkf Exp $
* *
* Device driver for Microgate SyncLink ISA and PCI * Device driver for Microgate SyncLink ISA and PCI
* high speed multiprotocol serial adapters. * high speed multiprotocol serial adapters.
...@@ -141,9 +141,9 @@ static MGSL_PARAMS default_params = { ...@@ -141,9 +141,9 @@ static MGSL_PARAMS default_params = {
typedef struct _DMABUFFERENTRY typedef struct _DMABUFFERENTRY
{ {
u32 phys_addr; /* 32-bit flat physical address of data buffer */ u32 phys_addr; /* 32-bit flat physical address of data buffer */
u16 count; /* buffer size/data count */ volatile u16 count; /* buffer size/data count */
u16 status; /* Control/status field */ volatile u16 status; /* Control/status field */
u16 rcc; /* character count field */ volatile u16 rcc; /* character count field */
u16 reserved; /* padding required by 16C32 */ u16 reserved; /* padding required by 16C32 */
u32 link; /* 32-bit flat link to next buffer entry */ u32 link; /* 32-bit flat link to next buffer entry */
char *virt_addr; /* virtual address of data buffer */ char *virt_addr; /* virtual address of data buffer */
...@@ -896,7 +896,7 @@ module_param_array(txdmabufs, int, NULL, 0); ...@@ -896,7 +896,7 @@ module_param_array(txdmabufs, int, NULL, 0);
module_param_array(txholdbufs, int, NULL, 0); module_param_array(txholdbufs, int, NULL, 0);
static char *driver_name = "SyncLink serial driver"; static char *driver_name = "SyncLink serial driver";
static char *driver_version = "$Revision: 4.28 $"; static char *driver_version = "$Revision: 4.37 $";
static int synclink_init_one (struct pci_dev *dev, static int synclink_init_one (struct pci_dev *dev,
const struct pci_device_id *ent); const struct pci_device_id *ent);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment