summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/asm-i386/i387.h39
-rw-r--r--include/linux/ide.h3
-rw-r--r--include/linux/net.h3
-rw-r--r--include/linux/pci_ids.h1
-rw-r--r--include/net/ipv6.h2
5 files changed, 37 insertions, 11 deletions
diff --git a/include/asm-i386/i387.h b/include/asm-i386/i387.h
index 408b16afeddc..adc63f6e7244 100644
--- a/include/asm-i386/i387.h
+++ b/include/asm-i386/i387.h
@@ -26,7 +26,9 @@ extern void restore_fpu( struct task_struct *tsk );
extern void kernel_fpu_begin(void);
#define kernel_fpu_end() do { stts(); preempt_enable(); } while(0)
-
+/*
+ * These must be called with preempt disabled
+ */
static inline void __save_init_fpu( struct task_struct *tsk )
{
if ( cpu_has_fxsr ) {
@@ -39,19 +41,12 @@ static inline void __save_init_fpu( struct task_struct *tsk )
tsk->thread_info->status &= ~TS_USEDFPU;
}
-static inline void save_init_fpu( struct task_struct *tsk )
-{
- __save_init_fpu(tsk);
- stts();
-}
-
-
-#define unlazy_fpu( tsk ) do { \
+#define __unlazy_fpu( tsk ) do { \
if ((tsk)->thread_info->status & TS_USEDFPU) \
save_init_fpu( tsk ); \
} while (0)
-#define clear_fpu( tsk ) \
+#define __clear_fpu( tsk ) \
do { \
if ((tsk)->thread_info->status & TS_USEDFPU) { \
asm volatile("fwait"); \
@@ -60,6 +55,30 @@ do { \
} \
} while (0)
+
+/*
+ * These disable preemption on their own and are safe
+ */
+static inline void save_init_fpu( struct task_struct *tsk )
+{
+ preempt_disable();
+ __save_init_fpu(tsk);
+ stts();
+ preempt_enable();
+}
+
+#define unlazy_fpu( tsk ) do { \
+ preempt_disable(); \
+ __unlazy_fpu(tsk); \
+ preempt_enable(); \
+} while (0)
+
+#define clear_fpu( tsk ) do { \
+ preempt_disable(); \
+ __clear_fpu( tsk ); \
+ preempt_enable(); \
+} while (0)
+ \
/*
* FPU state interaction...
*/
diff --git a/include/linux/ide.h b/include/linux/ide.h
index 98a1a968ad93..4664fd44a986 100644
--- a/include/linux/ide.h
+++ b/include/linux/ide.h
@@ -22,6 +22,7 @@
#include <asm/system.h>
#include <asm/hdreg.h>
#include <asm/io.h>
+#include <asm/semaphore.h>
#define DEBUG_PM
@@ -774,6 +775,7 @@ typedef struct ide_drive_s {
int crc_count; /* crc counter to reduce drive speed */
struct list_head list;
struct device gendev;
+ struct semaphore gendev_rel_sem; /* to deal with device release() */
struct gendisk *disk;
} ide_drive_t;
@@ -1040,6 +1042,7 @@ typedef struct hwif_s {
unsigned auto_poll : 1; /* supports nop auto-poll */
struct device gendev;
+ struct semaphore gendev_rel_sem; /* To deal with device release() */
void *hwif_data; /* extra hwif data */
diff --git a/include/linux/net.h b/include/linux/net.h
index 9101b7dcec92..6f9a0992e578 100644
--- a/include/linux/net.h
+++ b/include/linux/net.h
@@ -20,6 +20,7 @@
#include <linux/config.h>
#include <linux/wait.h>
+#include <linux/stringify.h>
struct poll_table_struct;
struct inode;
@@ -243,6 +244,8 @@ static struct proto_ops name##_ops = { \
};
#endif
+#define MODULE_ALIAS_NETPROTO(proto) \
+ MODULE_ALIAS("net-pf-" __stringify(proto))
#endif /* __KERNEL__ */
#endif /* _LINUX_NET_H */
diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h
index 4fc931b4e76f..6e6ff10ef587 100644
--- a/include/linux/pci_ids.h
+++ b/include/linux/pci_ids.h
@@ -878,6 +878,7 @@
#define PCI_DEVICE_ID_SII_680 0x0680
#define PCI_DEVICE_ID_SII_3112 0x3112
+#define PCI_DEVICE_ID_SII_1210SA 0x0240
#define PCI_VENDOR_ID_VISION 0x1098
#define PCI_DEVICE_ID_VISION_QD8500 0x0001
diff --git a/include/net/ipv6.h b/include/net/ipv6.h
index 8aeb974d8592..18020987d369 100644
--- a/include/net/ipv6.h
+++ b/include/net/ipv6.h
@@ -193,7 +193,7 @@ struct ip6_flowlabel
struct in6_addr dst;
struct ipv6_txoptions *opt;
atomic_t users;
- u32 linger;
+ unsigned long linger;
u8 share;
u32 owner;
unsigned long lastuse;