aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
authorDave Airlie <airlied@starflyer.(none)>2006-01-03 02:18:01 -0500
committerDave Airlie <airlied@linux.ie>2006-01-03 02:18:01 -0500
commit97f2aab6698f3ab2552c41c1024a65ffd0763a6d (patch)
treebb6e3b2949459f54f884c710fc74d40eef00d834 /include/linux
parentd985c1088146607532093d9eaaaf99758f6a4d21 (diff)
parent88026842b0a760145aa71d69e74fbc9ec118ca44 (diff)
drm: merge in Linus mainline
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/acct.h2
-rw-r--r--include/linux/aio.h13
-rw-r--r--include/linux/atmdev.h18
-rw-r--r--include/linux/bitops.h10
-rw-r--r--include/linux/blkdev.h2
-rw-r--r--include/linux/cache.h2
-rw-r--r--include/linux/cciss_ioctl.h2
-rw-r--r--include/linux/cm4000_cs.h66
-rw-r--r--include/linux/cn_proc.h10
-rw-r--r--include/linux/compat_ioctl.h75
-rw-r--r--include/linux/connector.h2
-rw-r--r--include/linux/cpu.h7
-rw-r--r--include/linux/ds17287rtc.h67
-rw-r--r--include/linux/ds1742rtc.h53
-rw-r--r--include/linux/dvb/audio.h28
-rw-r--r--include/linux/dvb/ca.h36
-rw-r--r--include/linux/dvb/dmx.h20
-rw-r--r--include/linux/dvb/osd.h58
-rw-r--r--include/linux/dvb/video.h44
-rw-r--r--include/linux/fb.h30
-rw-r--r--include/linux/file.h10
-rw-r--r--include/linux/font.h2
-rw-r--r--include/linux/fsl_devices.h2
-rw-r--r--include/linux/genhd.h4
-rw-r--r--include/linux/gfp.h25
-rw-r--r--include/linux/hardirq.h2
-rw-r--r--include/linux/hdreg.h6
-rw-r--r--include/linux/hugetlb.h4
-rw-r--r--include/linux/i2c-id.h2
-rw-r--r--include/linux/ide.h164
-rw-r--r--include/linux/idr.h6
-rw-r--r--include/linux/if_ether.h4
-rw-r--r--include/linux/init_task.h1
-rw-r--r--include/linux/inotify.h2
-rw-r--r--include/linux/interrupt.h1
-rw-r--r--include/linux/ipv6_route.h1
-rw-r--r--include/linux/irq.h2
-rw-r--r--include/linux/jbd.h17
-rw-r--r--include/linux/kprobes.h8
-rw-r--r--include/linux/libata.h19
-rw-r--r--include/linux/list.h26
-rw-r--r--include/linux/memory.h1
-rw-r--r--include/linux/mm.h43
-rw-r--r--include/linux/mmc/protocol.h4
-rw-r--r--include/linux/mmzone.h40
-rw-r--r--include/linux/mtd/cfi.h18
-rw-r--r--include/linux/mtd/onenand.h5
-rw-r--r--include/linux/n_r3964.h20
-rw-r--r--include/linux/netdevice.h7
-rw-r--r--include/linux/netfilter/nfnetlink.h6
-rw-r--r--include/linux/netfilter_ipv4/ipt_sctp.h12
-rw-r--r--include/linux/nfs_fs.h1
-rw-r--r--include/linux/page-flags.h4
-rw-r--r--include/linux/pagemap.h4
-rw-r--r--include/linux/parport_pc.h2
-rw-r--r--include/linux/pci-acpi.h5
-rw-r--r--include/linux/pci.h13
-rw-r--r--include/linux/pci_ids.h11
-rw-r--r--include/linux/percpu.h2
-rw-r--r--include/linux/platform_device.h15
-rw-r--r--include/linux/pm.h49
-rw-r--r--include/linux/pm_legacy.h56
-rw-r--r--include/linux/preempt.h2
-rw-r--r--include/linux/raid_class.h32
-rw-r--r--include/linux/rcupdate.h2
-rw-r--r--include/linux/relayfs_fs.h5
-rw-r--r--include/linux/rmap.h4
-rw-r--r--include/linux/rtnetlink.h4
-rw-r--r--include/linux/sched.h33
-rw-r--r--include/linux/serial_core.h3
-rw-r--r--include/linux/skbuff.h34
-rw-r--r--include/linux/smp_lock.h3
-rw-r--r--include/linux/swap.h6
-rw-r--r--include/linux/sysctl.h7
-rw-r--r--include/linux/tcp.h16
-rw-r--r--include/linux/thread_info.h47
-rw-r--r--include/linux/time.h3
-rw-r--r--include/linux/uinput.h13
-rw-r--r--include/linux/usb.h7
-rw-r--r--include/linux/videodev2.h1
80 files changed, 873 insertions, 520 deletions
diff --git a/include/linux/acct.h b/include/linux/acct.h
index 93c5b3cdf951..9a66401073fc 100644
--- a/include/linux/acct.h
+++ b/include/linux/acct.h
@@ -16,6 +16,8 @@
16#define _LINUX_ACCT_H 16#define _LINUX_ACCT_H
17 17
18#include <linux/types.h> 18#include <linux/types.h>
19#include <linux/jiffies.h>
20
19#include <asm/param.h> 21#include <asm/param.h>
20#include <asm/byteorder.h> 22#include <asm/byteorder.h>
21 23
diff --git a/include/linux/aio.h b/include/linux/aio.h
index 403d71dcb7c8..49fd37629ee4 100644
--- a/include/linux/aio.h
+++ b/include/linux/aio.h
@@ -124,7 +124,7 @@ struct kiocb {
124 (x)->ki_users = 1; \ 124 (x)->ki_users = 1; \
125 (x)->ki_key = KIOCB_SYNC_KEY; \ 125 (x)->ki_key = KIOCB_SYNC_KEY; \
126 (x)->ki_filp = (filp); \ 126 (x)->ki_filp = (filp); \
127 (x)->ki_ctx = &tsk->active_mm->default_kioctx; \ 127 (x)->ki_ctx = NULL; \
128 (x)->ki_cancel = NULL; \ 128 (x)->ki_cancel = NULL; \
129 (x)->ki_dtor = NULL; \ 129 (x)->ki_dtor = NULL; \
130 (x)->ki_obj.tsk = tsk; \ 130 (x)->ki_obj.tsk = tsk; \
@@ -210,8 +210,15 @@ struct kioctx *lookup_ioctx(unsigned long ctx_id);
210int FASTCALL(io_submit_one(struct kioctx *ctx, struct iocb __user *user_iocb, 210int FASTCALL(io_submit_one(struct kioctx *ctx, struct iocb __user *user_iocb,
211 struct iocb *iocb)); 211 struct iocb *iocb));
212 212
213#define get_ioctx(kioctx) do { if (unlikely(atomic_read(&(kioctx)->users) <= 0)) BUG(); atomic_inc(&(kioctx)->users); } while (0) 213#define get_ioctx(kioctx) do { \
214#define put_ioctx(kioctx) do { if (unlikely(atomic_dec_and_test(&(kioctx)->users))) __put_ioctx(kioctx); else if (unlikely(atomic_read(&(kioctx)->users) < 0)) BUG(); } while (0) 214 BUG_ON(unlikely(atomic_read(&(kioctx)->users) <= 0)); \
215 atomic_inc(&(kioctx)->users); \
216} while (0)
217#define put_ioctx(kioctx) do { \
218 BUG_ON(unlikely(atomic_read(&(kioctx)->users) <= 0)); \
219 if (unlikely(atomic_dec_and_test(&(kioctx)->users))) \
220 __put_ioctx(kioctx); \
221} while (0)
215 222
216#define in_aio() !is_sync_wait(current->io_wait) 223#define in_aio() !is_sync_wait(current->io_wait)
217/* may be used for debugging */ 224/* may be used for debugging */
diff --git a/include/linux/atmdev.h b/include/linux/atmdev.h
index e7d0593bb576..b203ea82a0a8 100644
--- a/include/linux/atmdev.h
+++ b/include/linux/atmdev.h
@@ -7,7 +7,6 @@
7#define LINUX_ATMDEV_H 7#define LINUX_ATMDEV_H
8 8
9 9
10#include <linux/config.h>
11#include <linux/atmapi.h> 10#include <linux/atmapi.h>
12#include <linux/atm.h> 11#include <linux/atm.h>
13#include <linux/atmioc.h> 12#include <linux/atmioc.h>
@@ -210,6 +209,7 @@ struct atm_cirange {
210 209
211#ifdef __KERNEL__ 210#ifdef __KERNEL__
212 211
212#include <linux/config.h>
213#include <linux/wait.h> /* wait_queue_head_t */ 213#include <linux/wait.h> /* wait_queue_head_t */
214#include <linux/time.h> /* struct timeval */ 214#include <linux/time.h> /* struct timeval */
215#include <linux/net.h> 215#include <linux/net.h>
@@ -274,7 +274,7 @@ enum {
274 274
275 275
276enum { 276enum {
277 ATM_DF_CLOSE, /* close device when last VCC is closed */ 277 ATM_DF_REMOVED, /* device was removed from atm_devs list */
278}; 278};
279 279
280 280
@@ -415,7 +415,6 @@ struct atm_dev *atm_dev_register(const char *type,const struct atmdev_ops *ops,
415 int number,unsigned long *flags); /* number == -1: pick first available */ 415 int number,unsigned long *flags); /* number == -1: pick first available */
416struct atm_dev *atm_dev_lookup(int number); 416struct atm_dev *atm_dev_lookup(int number);
417void atm_dev_deregister(struct atm_dev *dev); 417void atm_dev_deregister(struct atm_dev *dev);
418void shutdown_atm_dev(struct atm_dev *dev);
419void vcc_insert_socket(struct sock *sk); 418void vcc_insert_socket(struct sock *sk);
420 419
421 420
@@ -457,18 +456,19 @@ static inline void atm_dev_hold(struct atm_dev *dev)
457 456
458static inline void atm_dev_put(struct atm_dev *dev) 457static inline void atm_dev_put(struct atm_dev *dev)
459{ 458{
460 atomic_dec(&dev->refcnt); 459 if (atomic_dec_and_test(&dev->refcnt)) {
461 460 BUG_ON(!test_bit(ATM_DF_REMOVED, &dev->flags));
462 if ((atomic_read(&dev->refcnt) == 1) && 461 if (dev->ops->dev_close)
463 test_bit(ATM_DF_CLOSE,&dev->flags)) 462 dev->ops->dev_close(dev);
464 shutdown_atm_dev(dev); 463 kfree(dev);
464 }
465} 465}
466 466
467 467
468int atm_charge(struct atm_vcc *vcc,int truesize); 468int atm_charge(struct atm_vcc *vcc,int truesize);
469struct sk_buff *atm_alloc_charge(struct atm_vcc *vcc,int pdu_size, 469struct sk_buff *atm_alloc_charge(struct atm_vcc *vcc,int pdu_size,
470 gfp_t gfp_flags); 470 gfp_t gfp_flags);
471int atm_pcr_goal(struct atm_trafprm *tp); 471int atm_pcr_goal(const struct atm_trafprm *tp);
472 472
473void vcc_release_async(struct atm_vcc *vcc, int reply); 473void vcc_release_async(struct atm_vcc *vcc, int reply);
474 474
diff --git a/include/linux/bitops.h b/include/linux/bitops.h
index cb3c3ef50f50..38c2fb7ebe09 100644
--- a/include/linux/bitops.h
+++ b/include/linux/bitops.h
@@ -84,6 +84,16 @@ static __inline__ int get_bitmask_order(unsigned int count)
84 return order; /* We could be slightly more clever with -1 here... */ 84 return order; /* We could be slightly more clever with -1 here... */
85} 85}
86 86
87static __inline__ int get_count_order(unsigned int count)
88{
89 int order;
90
91 order = fls(count) - 1;
92 if (count & (count - 1))
93 order++;
94 return order;
95}
96
87/* 97/*
88 * hweightN: returns the hamming weight (i.e. the number 98 * hweightN: returns the hamming weight (i.e. the number
89 * of bits set) of a N-bit word 99 * of bits set) of a N-bit word
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
index 025a7f084dbd..a33a31e71bbc 100644
--- a/include/linux/blkdev.h
+++ b/include/linux/blkdev.h
@@ -406,6 +406,7 @@ struct request_queue
406 406
407 atomic_t refcnt; 407 atomic_t refcnt;
408 408
409 unsigned int nr_sorted;
409 unsigned int in_flight; 410 unsigned int in_flight;
410 411
411 /* 412 /*
@@ -631,6 +632,7 @@ static inline void elv_dispatch_add_tail(struct request_queue *q,
631{ 632{
632 if (q->last_merge == rq) 633 if (q->last_merge == rq)
633 q->last_merge = NULL; 634 q->last_merge = NULL;
635 q->nr_sorted--;
634 636
635 q->end_sector = rq_end_sector(rq); 637 q->end_sector = rq_end_sector(rq);
636 q->boundary_rq = rq; 638 q->boundary_rq = rq;
diff --git a/include/linux/cache.h b/include/linux/cache.h
index f6b5a46c5f82..0b7ecf3af78a 100644
--- a/include/linux/cache.h
+++ b/include/linux/cache.h
@@ -13,7 +13,7 @@
13#define SMP_CACHE_BYTES L1_CACHE_BYTES 13#define SMP_CACHE_BYTES L1_CACHE_BYTES
14#endif 14#endif
15 15
16#if defined(CONFIG_X86) || defined(CONFIG_SPARC64) 16#if defined(CONFIG_X86) || defined(CONFIG_SPARC64) || defined(CONFIG_IA64)
17#define __read_mostly __attribute__((__section__(".data.read_mostly"))) 17#define __read_mostly __attribute__((__section__(".data.read_mostly")))
18#else 18#else
19#define __read_mostly 19#define __read_mostly
diff --git a/include/linux/cciss_ioctl.h b/include/linux/cciss_ioctl.h
index 424d5e622b43..6e27f42e3a57 100644
--- a/include/linux/cciss_ioctl.h
+++ b/include/linux/cciss_ioctl.h
@@ -10,8 +10,8 @@
10typedef struct _cciss_pci_info_struct 10typedef struct _cciss_pci_info_struct
11{ 11{
12 unsigned char bus; 12 unsigned char bus;
13 unsigned short domain;
14 unsigned char dev_fn; 13 unsigned char dev_fn;
14 unsigned short domain;
15 __u32 board_id; 15 __u32 board_id;
16} cciss_pci_info_struct; 16} cciss_pci_info_struct;
17 17
diff --git a/include/linux/cm4000_cs.h b/include/linux/cm4000_cs.h
new file mode 100644
index 000000000000..605ebe24bb2e
--- /dev/null
+++ b/include/linux/cm4000_cs.h
@@ -0,0 +1,66 @@
1#ifndef _CM4000_H_
2#define _CM4000_H_
3
4#define MAX_ATR 33
5
6#define CM4000_MAX_DEV 4
7
8/* those two structures are passed via ioctl() from/to userspace. They are
9 * used by existing userspace programs, so I kepth the awkward "bIFSD" naming
10 * not to break compilation of userspace apps. -HW */
11
12typedef struct atreq {
13 int32_t atr_len;
14 unsigned char atr[64];
15 int32_t power_act;
16 unsigned char bIFSD;
17 unsigned char bIFSC;
18} atreq_t;
19
20
21/* what is particularly stupid in the original driver is the arch-dependant
22 * member sizes. This leads to CONFIG_COMPAT breakage, since 32bit userspace
23 * will lay out the structure members differently than the 64bit kernel.
24 *
25 * I've changed "ptsreq.protocol" from "unsigned long" to "u_int32_t".
26 * On 32bit this will make no difference. With 64bit kernels, it will make
27 * 32bit apps work, too.
28 */
29
30typedef struct ptsreq {
31 u_int32_t protocol; /*T=0: 2^0, T=1: 2^1*/
32 unsigned char flags;
33 unsigned char pts1;
34 unsigned char pts2;
35 unsigned char pts3;
36} ptsreq_t;
37
38#define CM_IOC_MAGIC 'c'
39#define CM_IOC_MAXNR 255
40
41#define CM_IOCGSTATUS _IOR (CM_IOC_MAGIC, 0, unsigned char *)
42#define CM_IOCGATR _IOWR(CM_IOC_MAGIC, 1, atreq_t *)
43#define CM_IOCSPTS _IOW (CM_IOC_MAGIC, 2, ptsreq_t *)
44#define CM_IOCSRDR _IO (CM_IOC_MAGIC, 3)
45#define CM_IOCARDOFF _IO (CM_IOC_MAGIC, 4)
46
47#define CM_IOSDBGLVL _IOW(CM_IOC_MAGIC, 250, int*)
48
49/* card and device states */
50#define CM_CARD_INSERTED 0x01
51#define CM_CARD_POWERED 0x02
52#define CM_ATR_PRESENT 0x04
53#define CM_ATR_VALID 0x08
54#define CM_STATE_VALID 0x0f
55/* extra info only from CM4000 */
56#define CM_NO_READER 0x10
57#define CM_BAD_CARD 0x20
58
59
60#ifdef __KERNEL__
61
62#define DEVICE_NAME "cmm"
63#define MODULE_NAME "cm4000_cs"
64
65#endif /* __KERNEL__ */
66#endif /* _CM4000_H_ */
diff --git a/include/linux/cn_proc.h b/include/linux/cn_proc.h
index 70ab56317380..1417de935057 100644
--- a/include/linux/cn_proc.h
+++ b/include/linux/cn_proc.h
@@ -26,6 +26,7 @@
26#define CN_PROC_H 26#define CN_PROC_H
27 27
28#include <linux/types.h> 28#include <linux/types.h>
29#include <linux/time.h>
29#include <linux/connector.h> 30#include <linux/connector.h>
30 31
31/* 32/*
@@ -65,6 +66,7 @@ struct proc_event {
65 PROC_EVENT_EXIT = 0x80000000 66 PROC_EVENT_EXIT = 0x80000000
66 } what; 67 } what;
67 __u32 cpu; 68 __u32 cpu;
69 struct timespec timestamp;
68 union { /* must be last field of proc_event struct */ 70 union { /* must be last field of proc_event struct */
69 struct { 71 struct {
70 __u32 err; 72 __u32 err;
@@ -86,12 +88,12 @@ struct proc_event {
86 pid_t process_pid; 88 pid_t process_pid;
87 pid_t process_tgid; 89 pid_t process_tgid;
88 union { 90 union {
89 uid_t ruid; /* current->uid */ 91 __u32 ruid; /* task uid */
90 gid_t rgid; /* current->gid */ 92 __u32 rgid; /* task gid */
91 } r; 93 } r;
92 union { 94 union {
93 uid_t euid; 95 __u32 euid;
94 gid_t egid; 96 __u32 egid;
95 } e; 97 } e;
96 } id; 98 } id;
97 99
diff --git a/include/linux/compat_ioctl.h b/include/linux/compat_ioctl.h
index 2209ad3499a3..119f9d064cc6 100644
--- a/include/linux/compat_ioctl.h
+++ b/include/linux/compat_ioctl.h
@@ -259,6 +259,14 @@ COMPATIBLE_IOCTL(RTC_RD_TIME)
259COMPATIBLE_IOCTL(RTC_SET_TIME) 259COMPATIBLE_IOCTL(RTC_SET_TIME)
260COMPATIBLE_IOCTL(RTC_WKALM_SET) 260COMPATIBLE_IOCTL(RTC_WKALM_SET)
261COMPATIBLE_IOCTL(RTC_WKALM_RD) 261COMPATIBLE_IOCTL(RTC_WKALM_RD)
262/*
263 * These two are only for the sbus rtc driver, but
264 * hwclock tries them on every rtc device first when
265 * running on sparc. On other architectures the entries
266 * are useless but harmless.
267 */
268COMPATIBLE_IOCTL(_IOR('p', 20, int[7])) /* RTCGET */
269COMPATIBLE_IOCTL(_IOW('p', 21, int[7])) /* RTCSET */
262/* Little m */ 270/* Little m */
263COMPATIBLE_IOCTL(MTIOCTOP) 271COMPATIBLE_IOCTL(MTIOCTOP)
264/* Socket level stuff */ 272/* Socket level stuff */
@@ -787,3 +795,70 @@ COMPATIBLE_IOCTL(HIDIOCGFLAG)
787COMPATIBLE_IOCTL(HIDIOCSFLAG) 795COMPATIBLE_IOCTL(HIDIOCSFLAG)
788COMPATIBLE_IOCTL(HIDIOCGCOLLECTIONINDEX) 796COMPATIBLE_IOCTL(HIDIOCGCOLLECTIONINDEX)
789COMPATIBLE_IOCTL(HIDIOCGCOLLECTIONINFO) 797COMPATIBLE_IOCTL(HIDIOCGCOLLECTIONINFO)
798/* dvb */
799COMPATIBLE_IOCTL(AUDIO_STOP)
800COMPATIBLE_IOCTL(AUDIO_PLAY)
801COMPATIBLE_IOCTL(AUDIO_PAUSE)
802COMPATIBLE_IOCTL(AUDIO_CONTINUE)
803COMPATIBLE_IOCTL(AUDIO_SELECT_SOURCE)
804COMPATIBLE_IOCTL(AUDIO_SET_MUTE)
805COMPATIBLE_IOCTL(AUDIO_SET_AV_SYNC)
806COMPATIBLE_IOCTL(AUDIO_SET_BYPASS_MODE)
807COMPATIBLE_IOCTL(AUDIO_CHANNEL_SELECT)
808COMPATIBLE_IOCTL(AUDIO_GET_STATUS)
809COMPATIBLE_IOCTL(AUDIO_GET_CAPABILITIES)
810COMPATIBLE_IOCTL(AUDIO_CLEAR_BUFFER)
811COMPATIBLE_IOCTL(AUDIO_SET_ID)
812COMPATIBLE_IOCTL(AUDIO_SET_MIXER)
813COMPATIBLE_IOCTL(AUDIO_SET_STREAMTYPE)
814COMPATIBLE_IOCTL(AUDIO_SET_EXT_ID)
815COMPATIBLE_IOCTL(AUDIO_SET_ATTRIBUTES)
816COMPATIBLE_IOCTL(AUDIO_SET_KARAOKE)
817COMPATIBLE_IOCTL(DMX_START)
818COMPATIBLE_IOCTL(DMX_STOP)
819COMPATIBLE_IOCTL(DMX_SET_FILTER)
820COMPATIBLE_IOCTL(DMX_SET_PES_FILTER)
821COMPATIBLE_IOCTL(DMX_SET_BUFFER_SIZE)
822COMPATIBLE_IOCTL(DMX_GET_PES_PIDS)
823COMPATIBLE_IOCTL(DMX_GET_CAPS)
824COMPATIBLE_IOCTL(DMX_SET_SOURCE)
825COMPATIBLE_IOCTL(DMX_GET_STC)
826COMPATIBLE_IOCTL(FE_GET_INFO)
827COMPATIBLE_IOCTL(FE_DISEQC_RESET_OVERLOAD)
828COMPATIBLE_IOCTL(FE_DISEQC_SEND_MASTER_CMD)
829COMPATIBLE_IOCTL(FE_DISEQC_RECV_SLAVE_REPLY)
830COMPATIBLE_IOCTL(FE_DISEQC_SEND_BURST)
831COMPATIBLE_IOCTL(FE_SET_TONE)
832COMPATIBLE_IOCTL(FE_SET_VOLTAGE)
833COMPATIBLE_IOCTL(FE_ENABLE_HIGH_LNB_VOLTAGE)
834COMPATIBLE_IOCTL(FE_READ_STATUS)
835COMPATIBLE_IOCTL(FE_READ_BER)
836COMPATIBLE_IOCTL(FE_READ_SIGNAL_STRENGTH)
837COMPATIBLE_IOCTL(FE_READ_SNR)
838COMPATIBLE_IOCTL(FE_READ_UNCORRECTED_BLOCKS)
839COMPATIBLE_IOCTL(FE_SET_FRONTEND)
840COMPATIBLE_IOCTL(FE_GET_FRONTEND)
841COMPATIBLE_IOCTL(FE_GET_EVENT)
842COMPATIBLE_IOCTL(FE_DISHNETWORK_SEND_LEGACY_CMD)
843COMPATIBLE_IOCTL(VIDEO_STOP)
844COMPATIBLE_IOCTL(VIDEO_PLAY)
845COMPATIBLE_IOCTL(VIDEO_FREEZE)
846COMPATIBLE_IOCTL(VIDEO_CONTINUE)
847COMPATIBLE_IOCTL(VIDEO_SELECT_SOURCE)
848COMPATIBLE_IOCTL(VIDEO_SET_BLANK)
849COMPATIBLE_IOCTL(VIDEO_GET_STATUS)
850COMPATIBLE_IOCTL(VIDEO_SET_DISPLAY_FORMAT)
851COMPATIBLE_IOCTL(VIDEO_FAST_FORWARD)
852COMPATIBLE_IOCTL(VIDEO_SLOWMOTION)
853COMPATIBLE_IOCTL(VIDEO_GET_CAPABILITIES)
854COMPATIBLE_IOCTL(VIDEO_CLEAR_BUFFER)
855COMPATIBLE_IOCTL(VIDEO_SET_ID)
856COMPATIBLE_IOCTL(VIDEO_SET_STREAMTYPE)
857COMPATIBLE_IOCTL(VIDEO_SET_FORMAT)
858COMPATIBLE_IOCTL(VIDEO_SET_SYSTEM)
859COMPATIBLE_IOCTL(VIDEO_SET_HIGHLIGHT)
860COMPATIBLE_IOCTL(VIDEO_SET_SPU)
861COMPATIBLE_IOCTL(VIDEO_GET_NAVI)
862COMPATIBLE_IOCTL(VIDEO_SET_ATTRIBUTES)
863COMPATIBLE_IOCTL(VIDEO_GET_SIZE)
864COMPATIBLE_IOCTL(VIDEO_GET_FRAME_RATE)
diff --git a/include/linux/connector.h b/include/linux/connector.h
index c5769c6585f4..ad1a22c1c42e 100644
--- a/include/linux/connector.h
+++ b/include/linux/connector.h
@@ -32,6 +32,8 @@
32 */ 32 */
33#define CN_IDX_PROC 0x1 33#define CN_IDX_PROC 0x1
34#define CN_VAL_PROC 0x1 34#define CN_VAL_PROC 0x1
35#define CN_IDX_CIFS 0x2
36#define CN_VAL_CIFS 0x1
35 37
36#define CN_NETLINK_USERS 1 38#define CN_NETLINK_USERS 1
37 39
diff --git a/include/linux/cpu.h b/include/linux/cpu.h
index 43c44530ef9d..0ed1d4853c69 100644
--- a/include/linux/cpu.h
+++ b/include/linux/cpu.h
@@ -65,10 +65,9 @@ extern struct sysdev_class cpu_sysdev_class;
65 65
66#ifdef CONFIG_HOTPLUG_CPU 66#ifdef CONFIG_HOTPLUG_CPU
67/* Stop CPUs going up and down. */ 67/* Stop CPUs going up and down. */
68extern struct semaphore cpucontrol; 68extern void lock_cpu_hotplug(void);
69#define lock_cpu_hotplug() down(&cpucontrol) 69extern void unlock_cpu_hotplug(void);
70#define unlock_cpu_hotplug() up(&cpucontrol) 70extern int lock_cpu_hotplug_interruptible(void);
71#define lock_cpu_hotplug_interruptible() down_interruptible(&cpucontrol)
72#define hotcpu_notifier(fn, pri) { \ 71#define hotcpu_notifier(fn, pri) { \
73 static struct notifier_block fn##_nb = \ 72 static struct notifier_block fn##_nb = \
74 { .notifier_call = fn, .priority = pri }; \ 73 { .notifier_call = fn, .priority = pri }; \
diff --git a/include/linux/ds17287rtc.h b/include/linux/ds17287rtc.h
new file mode 100644
index 000000000000..c281ba42e28f
--- /dev/null
+++ b/include/linux/ds17287rtc.h
@@ -0,0 +1,67 @@
1/*
2 * ds17287rtc.h - register definitions for the ds1728[57] RTC / CMOS RAM
3 *
4 * This file is subject to the terms and conditions of the GNU General Public
5 * License. See the file "COPYING" in the main directory of this archive
6 * for more details.
7 *
8 * (C) 2003 Guido Guenther <agx@sigxcpu.org>
9 */
10#ifndef __LINUX_DS17287RTC_H
11#define __LINUX_DS17287RTC_H
12
13#include <linux/rtc.h> /* get the user-level API */
14#include <linux/spinlock.h> /* spinlock_t */
15#include <linux/mc146818rtc.h>
16
17/* Register A */
18#define DS_REGA_DV2 0x40 /* countdown chain */
19#define DS_REGA_DV1 0x20 /* oscillator enable */
20#define DS_REGA_DV0 0x10 /* bank select */
21
22/* bank 1 registers */
23#define DS_B1_MODEL 0x40 /* model number byte */
24#define DS_B1_SN1 0x41 /* serial number byte 1 */
25#define DS_B1_SN2 0x42 /* serial number byte 2 */
26#define DS_B1_SN3 0x43 /* serial number byte 3 */
27#define DS_B1_SN4 0x44 /* serial number byte 4 */
28#define DS_B1_SN5 0x45 /* serial number byte 5 */
29#define DS_B1_SN6 0x46 /* serial number byte 6 */
30#define DS_B1_CRC 0x47 /* CRC byte */
31#define DS_B1_CENTURY 0x48 /* Century byte */
32#define DS_B1_DALARM 0x49 /* date alarm */
33#define DS_B1_XCTRL4A 0x4a /* extendec control register 4a */
34#define DS_B1_XCTRL4B 0x4b /* extendec control register 4b */
35#define DS_B1_RTCADDR2 0x4e /* rtc address 2 */
36#define DS_B1_RTCADDR3 0x4f /* rtc address 3 */
37#define DS_B1_RAMLSB 0x50 /* extended ram LSB */
38#define DS_B1_RAMMSB 0x51 /* extended ram MSB */
39#define DS_B1_RAMDPORT 0x53 /* extended ram data port */
40
41/* register details */
42/* extended control register 4a */
43#define DS_XCTRL4A_VRT2 0x80 /* valid ram and time */
44#define DS_XCTRL4A_INCR 0x40 /* increment progress status */
45#define DS_XCTRL4A_BME 0x20 /* burst mode enable */
46#define DS_XCTRL4A_PAB 0x08 /* power active bar ctrl */
47#define DS_XCTRL4A_RF 0x04 /* ram clear flag */
48#define DS_XCTRL4A_WF 0x02 /* wake up alarm flag */
49#define DS_XCTRL4A_KF 0x01 /* kickstart flag */
50
51/* interrupt causes */
52#define DS_XCTRL4A_IFS (DS_XCTRL4A_RF|DS_XCTRL4A_WF|DS_XCTRL4A_KF)
53
54/* extended control register 4b */
55#define DS_XCTRL4B_ABE 0x80 /* auxiliary battery enable */
56#define DS_XCTRL4B_E32K 0x40 /* enable 32.768 kHz Output */
57#define DS_XCTRL4B_CS 0x20 /* crystal select */
58#define DS_XCTRL4B_RCE 0x10 /* ram clear enable */
59#define DS_XCTRL4B_PRS 0x08 /* PAB resec select */
60#define DS_XCTRL4B_RIE 0x04 /* ram clear interrupt enable */
61#define DS_XCTRL4B_WFE 0x02 /* wake up alarm interrupt enable */
62#define DS_XCTRL4B_KFE 0x01 /* kickstart interrupt enable */
63
64/* interrupt enable bits */
65#define DS_XCTRL4B_IFES (DS_XCTRL4B_RIE|DS_XCTRL4B_WFE|DS_XCTRL4B_KFE)
66
67#endif /* __LINUX_DS17287RTC_H */
diff --git a/include/linux/ds1742rtc.h b/include/linux/ds1742rtc.h
new file mode 100644
index 000000000000..a83cdd1cafc9
--- /dev/null
+++ b/include/linux/ds1742rtc.h
@@ -0,0 +1,53 @@
1/*
2 * ds1742rtc.h - register definitions for the Real-Time-Clock / CMOS RAM
3 *
4 * Copyright (C) 1999-2001 Toshiba Corporation
5 * Copyright (C) 2003 Ralf Baechle (ralf@linux-mips.org)
6 *
7 * Permission is hereby granted to copy, modify and redistribute this code
8 * in terms of the GNU Library General Public License, Version 2 or later,
9 * at your option.
10 */
11#ifndef __LINUX_DS1742RTC_H
12#define __LINUX_DS1742RTC_H
13
14#include <asm/ds1742.h>
15
16#define RTC_BRAM_SIZE 0x800
17#define RTC_OFFSET 0x7f8
18
19/*
20 * Register summary
21 */
22#define RTC_CONTROL (RTC_OFFSET + 0)
23#define RTC_CENTURY (RTC_OFFSET + 0)
24#define RTC_SECONDS (RTC_OFFSET + 1)
25#define RTC_MINUTES (RTC_OFFSET + 2)
26#define RTC_HOURS (RTC_OFFSET + 3)
27#define RTC_DAY (RTC_OFFSET + 4)
28#define RTC_DATE (RTC_OFFSET + 5)
29#define RTC_MONTH (RTC_OFFSET + 6)
30#define RTC_YEAR (RTC_OFFSET + 7)
31
32#define RTC_CENTURY_MASK 0x3f
33#define RTC_SECONDS_MASK 0x7f
34#define RTC_DAY_MASK 0x07
35
36/*
37 * Bits in the Control/Century register
38 */
39#define RTC_WRITE 0x80
40#define RTC_READ 0x40
41
42/*
43 * Bits in the Seconds register
44 */
45#define RTC_STOP 0x80
46
47/*
48 * Bits in the Day register
49 */
50#define RTC_BATT_FLAG 0x80
51#define RTC_FREQ_TEST 0x40
52
53#endif /* __LINUX_DS1742RTC_H */
diff --git a/include/linux/dvb/audio.h b/include/linux/dvb/audio.h
index cc314443f1c4..2b8797084685 100644
--- a/include/linux/dvb/audio.h
+++ b/include/linux/dvb/audio.h
@@ -32,39 +32,39 @@
32 32
33 33
34typedef enum { 34typedef enum {
35 AUDIO_SOURCE_DEMUX, /* Select the demux as the main source */ 35 AUDIO_SOURCE_DEMUX, /* Select the demux as the main source */
36 AUDIO_SOURCE_MEMORY /* Select internal memory as the main source */ 36 AUDIO_SOURCE_MEMORY /* Select internal memory as the main source */
37} audio_stream_source_t; 37} audio_stream_source_t;
38 38
39 39
40typedef enum { 40typedef enum {
41 AUDIO_STOPPED, /* Device is stopped */ 41 AUDIO_STOPPED, /* Device is stopped */
42 AUDIO_PLAYING, /* Device is currently playing */ 42 AUDIO_PLAYING, /* Device is currently playing */
43 AUDIO_PAUSED /* Device is paused */ 43 AUDIO_PAUSED /* Device is paused */
44} audio_play_state_t; 44} audio_play_state_t;
45 45
46 46
47typedef enum { 47typedef enum {
48 AUDIO_STEREO, 48 AUDIO_STEREO,
49 AUDIO_MONO_LEFT, 49 AUDIO_MONO_LEFT,
50 AUDIO_MONO_RIGHT 50 AUDIO_MONO_RIGHT
51} audio_channel_select_t; 51} audio_channel_select_t;
52 52
53 53
54typedef struct audio_mixer { 54typedef struct audio_mixer {
55 unsigned int volume_left; 55 unsigned int volume_left;
56 unsigned int volume_right; 56 unsigned int volume_right;
57 // what else do we need? bass, pass-through, ... 57 // what else do we need? bass, pass-through, ...
58} audio_mixer_t; 58} audio_mixer_t;
59 59
60 60
61typedef struct audio_status { 61typedef struct audio_status {
62 int AV_sync_state; /* sync audio and video? */ 62 int AV_sync_state; /* sync audio and video? */
63 int mute_state; /* audio is muted */ 63 int mute_state; /* audio is muted */
64 audio_play_state_t play_state; /* current playback state */ 64 audio_play_state_t play_state; /* current playback state */
65 audio_stream_source_t stream_source; /* current stream source */ 65 audio_stream_source_t stream_source; /* current stream source */
66 audio_channel_select_t channel_select; /* currently selected channel */ 66 audio_channel_select_t channel_select; /* currently selected channel */
67 int bypass_mode; /* pass on audio data to */ 67 int bypass_mode; /* pass on audio data to */
68 audio_mixer_t mixer_state; /* current mixer state */ 68 audio_mixer_t mixer_state; /* current mixer state */
69} audio_status_t; /* separate decoder hardware */ 69} audio_status_t; /* separate decoder hardware */
70 70
@@ -74,8 +74,8 @@ struct audio_karaoke{ /* if Vocal1 or Vocal2 are non-zero, they get mixed */
74 int vocal1; /* into left and right t at 70% each */ 74 int vocal1; /* into left and right t at 70% each */
75 int vocal2; /* if both, Vocal1 and Vocal2 are non-zero, Vocal1 gets*/ 75 int vocal2; /* if both, Vocal1 and Vocal2 are non-zero, Vocal1 gets*/
76 int melody; /* mixed into the left channel and */ 76 int melody; /* mixed into the left channel and */
77 /* Vocal2 into the right channel at 100% each. */ 77 /* Vocal2 into the right channel at 100% each. */
78 /* if Melody is non-zero, the melody channel gets mixed*/ 78 /* if Melody is non-zero, the melody channel gets mixed*/
79} audio_karaoke_t; /* into left and right */ 79} audio_karaoke_t; /* into left and right */
80 80
81 81
diff --git a/include/linux/dvb/ca.h b/include/linux/dvb/ca.h
index 558af0cc7692..c18537f3e449 100644
--- a/include/linux/dvb/ca.h
+++ b/include/linux/dvb/ca.h
@@ -27,16 +27,16 @@
27/* slot interface types and info */ 27/* slot interface types and info */
28 28
29typedef struct ca_slot_info { 29typedef struct ca_slot_info {
30 int num; /* slot number */ 30 int num; /* slot number */
31 31
32 int type; /* CA interface this slot supports */ 32 int type; /* CA interface this slot supports */
33#define CA_CI 1 /* CI high level interface */ 33#define CA_CI 1 /* CI high level interface */
34#define CA_CI_LINK 2 /* CI link layer level interface */ 34#define CA_CI_LINK 2 /* CI link layer level interface */
35#define CA_CI_PHYS 4 /* CI physical layer level interface */ 35#define CA_CI_PHYS 4 /* CI physical layer level interface */
36#define CA_DESCR 8 /* built-in descrambler */ 36#define CA_DESCR 8 /* built-in descrambler */
37#define CA_SC 128 /* simple smart card interface */ 37#define CA_SC 128 /* simple smart card interface */
38 38
39 unsigned int flags; 39 unsigned int flags;
40#define CA_CI_MODULE_PRESENT 1 /* module (or card) inserted */ 40#define CA_CI_MODULE_PRESENT 1 /* module (or card) inserted */
41#define CA_CI_MODULE_READY 2 41#define CA_CI_MODULE_READY 2
42} ca_slot_info_t; 42} ca_slot_info_t;
@@ -45,37 +45,37 @@ typedef struct ca_slot_info {
45/* descrambler types and info */ 45/* descrambler types and info */
46 46
47typedef struct ca_descr_info { 47typedef struct ca_descr_info {
48 unsigned int num; /* number of available descramblers (keys) */ 48 unsigned int num; /* number of available descramblers (keys) */
49 unsigned int type; /* type of supported scrambling system */ 49 unsigned int type; /* type of supported scrambling system */
50#define CA_ECD 1 50#define CA_ECD 1
51#define CA_NDS 2 51#define CA_NDS 2
52#define CA_DSS 4 52#define CA_DSS 4
53} ca_descr_info_t; 53} ca_descr_info_t;
54 54
55typedef struct ca_caps { 55typedef struct ca_caps {
56 unsigned int slot_num; /* total number of CA card and module slots */ 56 unsigned int slot_num; /* total number of CA card and module slots */
57 unsigned int slot_type; /* OR of all supported types */ 57 unsigned int slot_type; /* OR of all supported types */
58 unsigned int descr_num; /* total number of descrambler slots (keys) */ 58 unsigned int descr_num; /* total number of descrambler slots (keys) */
59 unsigned int descr_type; /* OR of all supported types */ 59 unsigned int descr_type; /* OR of all supported types */
60} ca_caps_t; 60} ca_caps_t;
61 61
62/* a message to/from a CI-CAM */ 62/* a message to/from a CI-CAM */
63typedef struct ca_msg { 63typedef struct ca_msg {
64 unsigned int index; 64 unsigned int index;
65 unsigned int type; 65 unsigned int type;
66 unsigned int length; 66 unsigned int length;
67 unsigned char msg[256]; 67 unsigned char msg[256];
68} ca_msg_t; 68} ca_msg_t;
69 69
70typedef struct ca_descr { 70typedef struct ca_descr {
71 unsigned int index; 71 unsigned int index;
72 unsigned int parity; /* 0 == even, 1 == odd */ 72 unsigned int parity; /* 0 == even, 1 == odd */
73 unsigned char cw[8]; 73 unsigned char cw[8];
74} ca_descr_t; 74} ca_descr_t;
75 75
76typedef struct ca_pid { 76typedef struct ca_pid {
77 unsigned int pid; 77 unsigned int pid;
78 int index; /* -1 == disable*/ 78 int index; /* -1 == disable*/
79} ca_pid_t; 79} ca_pid_t;
80 80
81#define CA_RESET _IO('o', 128) 81#define CA_RESET _IO('o', 128)
diff --git a/include/linux/dvb/dmx.h b/include/linux/dvb/dmx.h
index ce3f829da82c..2787b8a22ff1 100644
--- a/include/linux/dvb/dmx.h
+++ b/include/linux/dvb/dmx.h
@@ -1,4 +1,4 @@
1/* 1/*
2 * dmx.h 2 * dmx.h
3 * 3 *
4 * Copyright (C) 2000 Marcus Metzler <marcus@convergence.de> 4 * Copyright (C) 2000 Marcus Metzler <marcus@convergence.de>
@@ -38,10 +38,10 @@ typedef enum
38{ 38{
39 DMX_OUT_DECODER, /* Streaming directly to decoder. */ 39 DMX_OUT_DECODER, /* Streaming directly to decoder. */
40 DMX_OUT_TAP, /* Output going to a memory buffer */ 40 DMX_OUT_TAP, /* Output going to a memory buffer */
41 /* (to be retrieved via the read command).*/ 41 /* (to be retrieved via the read command).*/
42 DMX_OUT_TS_TAP /* Output multiplexed into a new TS */ 42 DMX_OUT_TS_TAP /* Output multiplexed into a new TS */
43 /* (to be retrieved by reading from the */ 43 /* (to be retrieved by reading from the */
44 /* logical DVR device). */ 44 /* logical DVR device). */
45} dmx_output_t; 45} dmx_output_t;
46 46
47 47
@@ -54,25 +54,25 @@ typedef enum
54 54
55typedef enum 55typedef enum
56{ 56{
57 DMX_PES_AUDIO0, 57 DMX_PES_AUDIO0,
58 DMX_PES_VIDEO0, 58 DMX_PES_VIDEO0,
59 DMX_PES_TELETEXT0, 59 DMX_PES_TELETEXT0,
60 DMX_PES_SUBTITLE0, 60 DMX_PES_SUBTITLE0,
61 DMX_PES_PCR0, 61 DMX_PES_PCR0,
62 62
63 DMX_PES_AUDIO1, 63 DMX_PES_AUDIO1,
64 DMX_PES_VIDEO1, 64 DMX_PES_VIDEO1,
65 DMX_PES_TELETEXT1, 65 DMX_PES_TELETEXT1,
66 DMX_PES_SUBTITLE1, 66 DMX_PES_SUBTITLE1,
67 DMX_PES_PCR1, 67 DMX_PES_PCR1,
68 68
69 DMX_PES_AUDIO2, 69 DMX_PES_AUDIO2,
70 DMX_PES_VIDEO2, 70 DMX_PES_VIDEO2,
71 DMX_PES_TELETEXT2, 71 DMX_PES_TELETEXT2,
72 DMX_PES_SUBTITLE2, 72 DMX_PES_SUBTITLE2,
73 DMX_PES_PCR2, 73 DMX_PES_PCR2,
74 74
75 DMX_PES_AUDIO3, 75 DMX_PES_AUDIO3,
76 DMX_PES_VIDEO3, 76 DMX_PES_VIDEO3,
77 DMX_PES_TELETEXT3, 77 DMX_PES_TELETEXT3,
78 DMX_PES_SUBTITLE3, 78 DMX_PES_SUBTITLE3,
@@ -90,8 +90,8 @@ typedef enum
90 90
91typedef enum 91typedef enum
92{ 92{
93 DMX_SCRAMBLING_EV, 93 DMX_SCRAMBLING_EV,
94 DMX_FRONTEND_EV 94 DMX_FRONTEND_EV
95} dmx_event_t; 95} dmx_event_t;
96 96
97 97
diff --git a/include/linux/dvb/osd.h b/include/linux/dvb/osd.h
index 0e1973d54a6b..880e68435832 100644
--- a/include/linux/dvb/osd.h
+++ b/include/linux/dvb/osd.h
@@ -98,43 +98,43 @@ typedef enum {
98} OSD_Command; 98} OSD_Command;
99 99
100typedef struct osd_cmd_s { 100typedef struct osd_cmd_s {
101 OSD_Command cmd; 101 OSD_Command cmd;
102 int x0; 102 int x0;
103 int y0; 103 int y0;
104 int x1; 104 int x1;
105 int y1; 105 int y1;
106 int color; 106 int color;
107 void __user *data; 107 void __user *data;
108} osd_cmd_t; 108} osd_cmd_t;
109 109
110/* OSD_OpenRaw: set 'color' to desired window type */ 110/* OSD_OpenRaw: set 'color' to desired window type */
111typedef enum { 111typedef enum {
112 OSD_BITMAP1, /* 1 bit bitmap */ 112 OSD_BITMAP1, /* 1 bit bitmap */
113 OSD_BITMAP2, /* 2 bit bitmap */ 113 OSD_BITMAP2, /* 2 bit bitmap */
114 OSD_BITMAP4, /* 4 bit bitmap */ 114 OSD_BITMAP4, /* 4 bit bitmap */
115 OSD_BITMAP8, /* 8 bit bitmap */ 115 OSD_BITMAP8, /* 8 bit bitmap */
116 OSD_BITMAP1HR, /* 1 Bit bitmap half resolution */ 116 OSD_BITMAP1HR, /* 1 Bit bitmap half resolution */
117 OSD_BITMAP2HR, /* 2 bit bitmap half resolution */ 117 OSD_BITMAP2HR, /* 2 bit bitmap half resolution */
118 OSD_BITMAP4HR, /* 4 bit bitmap half resolution */ 118 OSD_BITMAP4HR, /* 4 bit bitmap half resolution */
119 OSD_BITMAP8HR, /* 8 bit bitmap half resolution */ 119 OSD_BITMAP8HR, /* 8 bit bitmap half resolution */
120 OSD_YCRCB422, /* 4:2:2 YCRCB Graphic Display */ 120 OSD_YCRCB422, /* 4:2:2 YCRCB Graphic Display */
121 OSD_YCRCB444, /* 4:4:4 YCRCB Graphic Display */ 121 OSD_YCRCB444, /* 4:4:4 YCRCB Graphic Display */
122 OSD_YCRCB444HR, /* 4:4:4 YCRCB graphic half resolution */ 122 OSD_YCRCB444HR, /* 4:4:4 YCRCB graphic half resolution */
123 OSD_VIDEOTSIZE, /* True Size Normal MPEG Video Display */ 123 OSD_VIDEOTSIZE, /* True Size Normal MPEG Video Display */
124 OSD_VIDEOHSIZE, /* MPEG Video Display Half Resolution */ 124 OSD_VIDEOHSIZE, /* MPEG Video Display Half Resolution */
125 OSD_VIDEOQSIZE, /* MPEG Video Display Quarter Resolution */ 125 OSD_VIDEOQSIZE, /* MPEG Video Display Quarter Resolution */
126 OSD_VIDEODSIZE, /* MPEG Video Display Double Resolution */ 126 OSD_VIDEODSIZE, /* MPEG Video Display Double Resolution */
127 OSD_VIDEOTHSIZE, /* True Size MPEG Video Display Half Resolution */ 127 OSD_VIDEOTHSIZE, /* True Size MPEG Video Display Half Resolution */
128 OSD_VIDEOTQSIZE, /* True Size MPEG Video Display Quarter Resolution*/ 128 OSD_VIDEOTQSIZE, /* True Size MPEG Video Display Quarter Resolution*/
129 OSD_VIDEOTDSIZE, /* True Size MPEG Video Display Double Resolution */ 129 OSD_VIDEOTDSIZE, /* True Size MPEG Video Display Double Resolution */
130 OSD_VIDEONSIZE, /* Full Size MPEG Video Display */ 130 OSD_VIDEONSIZE, /* Full Size MPEG Video Display */
131 OSD_CURSOR /* Cursor */ 131 OSD_CURSOR /* Cursor */
132} osd_raw_window_t; 132} osd_raw_window_t;
133 133
134typedef struct osd_cap_s { 134typedef struct osd_cap_s {
135 int cmd; 135 int cmd;
136#define OSD_CAP_MEMSIZE 1 /* memory size */ 136#define OSD_CAP_MEMSIZE 1 /* memory size */
137 long val; 137 long val;
138} osd_cap_t; 138} osd_cap_t;
139 139
140 140
diff --git a/include/linux/dvb/video.h b/include/linux/dvb/video.h
index 941045e9ab89..b1999bfeaa56 100644
--- a/include/linux/dvb/video.h
+++ b/include/linux/dvb/video.h
@@ -36,7 +36,7 @@
36 36
37typedef enum { 37typedef enum {
38 VIDEO_FORMAT_4_3, /* Select 4:3 format */ 38 VIDEO_FORMAT_4_3, /* Select 4:3 format */
39 VIDEO_FORMAT_16_9, /* Select 16:9 format. */ 39 VIDEO_FORMAT_16_9, /* Select 16:9 format. */
40 VIDEO_FORMAT_221_1 /* 2.21:1 */ 40 VIDEO_FORMAT_221_1 /* 2.21:1 */
41} video_format_t; 41} video_format_t;
42 42
@@ -54,7 +54,7 @@ typedef enum {
54 54
55 55
56typedef enum { 56typedef enum {
57 VIDEO_PAN_SCAN, /* use pan and scan format */ 57 VIDEO_PAN_SCAN, /* use pan and scan format */
58 VIDEO_LETTER_BOX, /* use letterbox format */ 58 VIDEO_LETTER_BOX, /* use letterbox format */
59 VIDEO_CENTER_CUT_OUT /* use center cut out format */ 59 VIDEO_CENTER_CUT_OUT /* use center cut out format */
60} video_displayformat_t; 60} video_displayformat_t;
@@ -66,7 +66,7 @@ typedef struct {
66} video_size_t; 66} video_size_t;
67 67
68typedef enum { 68typedef enum {
69 VIDEO_SOURCE_DEMUX, /* Select the demux as the main source */ 69 VIDEO_SOURCE_DEMUX, /* Select the demux as the main source */
70 VIDEO_SOURCE_MEMORY /* If this source is selected, the stream 70 VIDEO_SOURCE_MEMORY /* If this source is selected, the stream
71 comes from the user through the write 71 comes from the user through the write
72 system call */ 72 system call */
@@ -75,35 +75,35 @@ typedef enum {
75 75
76typedef enum { 76typedef enum {
77 VIDEO_STOPPED, /* Video is stopped */ 77 VIDEO_STOPPED, /* Video is stopped */
78 VIDEO_PLAYING, /* Video is currently playing */ 78 VIDEO_PLAYING, /* Video is currently playing */
79 VIDEO_FREEZED /* Video is freezed */ 79 VIDEO_FREEZED /* Video is freezed */
80} video_play_state_t; 80} video_play_state_t;
81 81
82 82
83struct video_event { 83struct video_event {
84 int32_t type; 84 int32_t type;
85#define VIDEO_EVENT_SIZE_CHANGED 1 85#define VIDEO_EVENT_SIZE_CHANGED 1
86#define VIDEO_EVENT_FRAME_RATE_CHANGED 2 86#define VIDEO_EVENT_FRAME_RATE_CHANGED 2
87 time_t timestamp; 87 time_t timestamp;
88 union { 88 union {
89 video_size_t size; 89 video_size_t size;
90 unsigned int frame_rate; /* in frames per 1000sec */ 90 unsigned int frame_rate; /* in frames per 1000sec */
91 } u; 91 } u;
92}; 92};
93 93
94 94
95struct video_status { 95struct video_status {
96 int video_blank; /* blank video on freeze? */ 96 int video_blank; /* blank video on freeze? */
97 video_play_state_t play_state; /* current state of playback */ 97 video_play_state_t play_state; /* current state of playback */
98 video_stream_source_t stream_source; /* current source (demux/memory) */ 98 video_stream_source_t stream_source; /* current source (demux/memory) */
99 video_format_t video_format; /* current aspect ratio of stream*/ 99 video_format_t video_format; /* current aspect ratio of stream*/
100 video_displayformat_t display_format;/* selected cropping mode */ 100 video_displayformat_t display_format;/* selected cropping mode */
101}; 101};
102 102
103 103
104struct video_still_picture { 104struct video_still_picture {
105 char __user *iFrame; /* pointer to a single iframe in memory */ 105 char __user *iFrame; /* pointer to a single iframe in memory */
106 int32_t size; 106 int32_t size;
107}; 107};
108 108
109 109
@@ -111,19 +111,19 @@ typedef
111struct video_highlight { 111struct video_highlight {
112 int active; /* 1=show highlight, 0=hide highlight */ 112 int active; /* 1=show highlight, 0=hide highlight */
113 uint8_t contrast1; /* 7- 4 Pattern pixel contrast */ 113 uint8_t contrast1; /* 7- 4 Pattern pixel contrast */
114 /* 3- 0 Background pixel contrast */ 114 /* 3- 0 Background pixel contrast */
115 uint8_t contrast2; /* 7- 4 Emphasis pixel-2 contrast */ 115 uint8_t contrast2; /* 7- 4 Emphasis pixel-2 contrast */
116 /* 3- 0 Emphasis pixel-1 contrast */ 116 /* 3- 0 Emphasis pixel-1 contrast */
117 uint8_t color1; /* 7- 4 Pattern pixel color */ 117 uint8_t color1; /* 7- 4 Pattern pixel color */
118 /* 3- 0 Background pixel color */ 118 /* 3- 0 Background pixel color */
119 uint8_t color2; /* 7- 4 Emphasis pixel-2 color */ 119 uint8_t color2; /* 7- 4 Emphasis pixel-2 color */
120 /* 3- 0 Emphasis pixel-1 color */ 120 /* 3- 0 Emphasis pixel-1 color */
121 uint32_t ypos; /* 23-22 auto action mode */ 121 uint32_t ypos; /* 23-22 auto action mode */
122 /* 21-12 start y */ 122 /* 21-12 start y */
123 /* 9- 0 end y */ 123 /* 9- 0 end y */
124 uint32_t xpos; /* 23-22 button color number */ 124 uint32_t xpos; /* 23-22 button color number */
125 /* 21-12 start x */ 125 /* 21-12 start x */
126 /* 9- 0 end x */ 126 /* 9- 0 end x */
127} video_highlight_t; 127} video_highlight_t;
128 128
129 129
diff --git a/include/linux/fb.h b/include/linux/fb.h
index 04a58f33ec53..a973be2cfe61 100644
--- a/include/linux/fb.h
+++ b/include/linux/fb.h
@@ -617,6 +617,12 @@ struct fb_ops {
617 617
618 /* perform fb specific mmap */ 618 /* perform fb specific mmap */
619 int (*fb_mmap)(struct fb_info *info, struct file *file, struct vm_area_struct *vma); 619 int (*fb_mmap)(struct fb_info *info, struct file *file, struct vm_area_struct *vma);
620
621 /* save current hardware state */
622 void (*fb_save_state)(struct fb_info *info);
623
624 /* restore saved state */
625 void (*fb_restore_state)(struct fb_info *info);
620}; 626};
621 627
622#ifdef CONFIG_FB_TILEBLITTING 628#ifdef CONFIG_FB_TILEBLITTING
@@ -726,6 +732,18 @@ struct fb_tile_ops {
726 from userspace */ 732 from userspace */
727#define FBINFO_MISC_TILEBLITTING 0x20000 /* use tile blitting */ 733#define FBINFO_MISC_TILEBLITTING 0x20000 /* use tile blitting */
728 734
735/* A driver may set this flag to indicate that it does want a set_par to be
736 * called every time when fbcon_switch is executed. The advantage is that with
737 * this flag set you can really be shure that set_par is always called before
738 * any of the functions dependant on the correct hardware state or altering
739 * that state, even if you are using some broken X releases. The disadvantage
740 * is that it introduces unwanted delays to every console switch if set_par
741 * is slow. It is a good idea to try this flag in the drivers initialization
742 * code whenever there is a bug report related to switching between X and the
743 * framebuffer console.
744 */
745#define FBINFO_MISC_ALWAYS_SETPAR 0x40000
746
729struct fb_info { 747struct fb_info {
730 int node; 748 int node;
731 int flags; 749 int flags;
@@ -817,6 +835,18 @@ struct fb_info {
817 835
818#endif 836#endif
819 837
838#if defined (__BIG_ENDIAN)
839#define FB_LEFT_POS(bpp) (32 - bpp)
840#define FB_SHIFT_HIGH(val, bits) ((val) >> (bits))
841#define FB_SHIFT_LOW(val, bits) ((val) << (bits))
842#define FB_BIT_NR(b) (7 - (b))
843#else
844#define FB_LEFT_POS(bpp) (0)
845#define FB_SHIFT_HIGH(val, bits) ((val) << (bits))
846#define FB_SHIFT_LOW(val, bits) ((val) >> (bits))
847#define FB_BIT_NR(b) (b)
848#endif
849
820 /* 850 /*
821 * `Generic' versions of the frame buffer device operations 851 * `Generic' versions of the frame buffer device operations
822 */ 852 */
diff --git a/include/linux/file.h b/include/linux/file.h
index d3b1a15d5f21..418b6101b59a 100644
--- a/include/linux/file.h
+++ b/include/linux/file.h
@@ -33,13 +33,13 @@ struct fdtable {
33 * Open file table structure 33 * Open file table structure
34 */ 34 */
35struct files_struct { 35struct files_struct {
36 atomic_t count; 36 atomic_t count;
37 spinlock_t file_lock; /* Protects all the below members. Nests inside tsk->alloc_lock */
38 struct fdtable *fdt; 37 struct fdtable *fdt;
39 struct fdtable fdtab; 38 struct fdtable fdtab;
40 fd_set close_on_exec_init; 39 fd_set close_on_exec_init;
41 fd_set open_fds_init; 40 fd_set open_fds_init;
42 struct file * fd_array[NR_OPEN_DEFAULT]; 41 struct file * fd_array[NR_OPEN_DEFAULT];
42 spinlock_t file_lock; /* Protects concurrent writers. Nests inside tsk->alloc_lock */
43}; 43};
44 44
45#define files_fdtable(files) (rcu_dereference((files)->fdt)) 45#define files_fdtable(files) (rcu_dereference((files)->fdt))
diff --git a/include/linux/font.h b/include/linux/font.h
index 8aac48c37f3d..53b129f07f6f 100644
--- a/include/linux/font.h
+++ b/include/linux/font.h
@@ -31,7 +31,6 @@ struct font_desc {
31#define SUN12x22_IDX 7 31#define SUN12x22_IDX 7
32#define ACORN8x8_IDX 8 32#define ACORN8x8_IDX 8
33#define MINI4x6_IDX 9 33#define MINI4x6_IDX 9
34#define RL_IDX 10
35 34
36extern const struct font_desc font_vga_8x8, 35extern const struct font_desc font_vga_8x8,
37 font_vga_8x16, 36 font_vga_8x16,
@@ -42,7 +41,6 @@ extern const struct font_desc font_vga_8x8,
42 font_sun_8x16, 41 font_sun_8x16,
43 font_sun_12x22, 42 font_sun_12x22,
44 font_acorn_8x8, 43 font_acorn_8x8,
45 font_rl,
46 font_mini_4x6; 44 font_mini_4x6;
47 45
48/* Find a font with a specific name */ 46/* Find a font with a specific name */
diff --git a/include/linux/fsl_devices.h b/include/linux/fsl_devices.h
index 114d5d59f695..934aa9bda481 100644
--- a/include/linux/fsl_devices.h
+++ b/include/linux/fsl_devices.h
@@ -4,7 +4,7 @@
4 * Definitions for any platform device related flags or structures for 4 * Definitions for any platform device related flags or structures for
5 * Freescale processor devices 5 * Freescale processor devices
6 * 6 *
7 * Maintainer: Kumar Gala (kumar.gala@freescale.com) 7 * Maintainer: Kumar Gala <galak@kernel.crashing.org>
8 * 8 *
9 * Copyright 2004 Freescale Semiconductor, Inc 9 * Copyright 2004 Freescale Semiconductor, Inc
10 * 10 *
diff --git a/include/linux/genhd.h b/include/linux/genhd.h
index 8eeaa53a68c9..eef5ccdcd731 100644
--- a/include/linux/genhd.h
+++ b/include/linux/genhd.h
@@ -78,7 +78,7 @@ struct hd_struct {
78 sector_t start_sect; 78 sector_t start_sect;
79 sector_t nr_sects; 79 sector_t nr_sects;
80 struct kobject kobj; 80 struct kobject kobj;
81 unsigned ios[2], sectors[2]; 81 unsigned ios[2], sectors[2]; /* READs and WRITEs */
82 int policy, partno; 82 int policy, partno;
83}; 83};
84 84
@@ -89,7 +89,7 @@ struct hd_struct {
89#define GENHD_FL_SUPPRESS_PARTITION_INFO 32 89#define GENHD_FL_SUPPRESS_PARTITION_INFO 32
90 90
91struct disk_stats { 91struct disk_stats {
92 unsigned sectors[2]; 92 unsigned sectors[2]; /* READs and WRITEs */
93 unsigned ios[2]; 93 unsigned ios[2];
94 unsigned merges[2]; 94 unsigned merges[2];
95 unsigned ticks[2]; 95 unsigned ticks[2];
diff --git a/include/linux/gfp.h b/include/linux/gfp.h
index c3779432a723..8b2eab90abb6 100644
--- a/include/linux/gfp.h
+++ b/include/linux/gfp.h
@@ -11,9 +11,16 @@ struct vm_area_struct;
11/* 11/*
12 * GFP bitmasks.. 12 * GFP bitmasks..
13 */ 13 */
14/* Zone modifiers in GFP_ZONEMASK (see linux/mmzone.h - low two bits) */ 14/* Zone modifiers in GFP_ZONEMASK (see linux/mmzone.h - low three bits) */
15#define __GFP_DMA ((__force gfp_t)0x01u) 15#define __GFP_DMA ((__force gfp_t)0x01u)
16#define __GFP_HIGHMEM ((__force gfp_t)0x02u) 16#define __GFP_HIGHMEM ((__force gfp_t)0x02u)
17#ifdef CONFIG_DMA_IS_DMA32
18#define __GFP_DMA32 ((__force gfp_t)0x01) /* ZONE_DMA is ZONE_DMA32 */
19#elif BITS_PER_LONG < 64
20#define __GFP_DMA32 ((__force gfp_t)0x00) /* ZONE_NORMAL is ZONE_DMA32 */
21#else
22#define __GFP_DMA32 ((__force gfp_t)0x04) /* Has own ZONE_DMA32 */
23#endif
17 24
18/* 25/*
19 * Action modifiers - doesn't change the zoning 26 * Action modifiers - doesn't change the zoning
@@ -39,8 +46,7 @@ struct vm_area_struct;
39#define __GFP_COMP ((__force gfp_t)0x4000u)/* Add compound page metadata */ 46#define __GFP_COMP ((__force gfp_t)0x4000u)/* Add compound page metadata */
40#define __GFP_ZERO ((__force gfp_t)0x8000u)/* Return zeroed page on success */ 47#define __GFP_ZERO ((__force gfp_t)0x8000u)/* Return zeroed page on success */
41#define __GFP_NOMEMALLOC ((__force gfp_t)0x10000u) /* Don't use emergency reserves */ 48#define __GFP_NOMEMALLOC ((__force gfp_t)0x10000u) /* Don't use emergency reserves */
42#define __GFP_NORECLAIM ((__force gfp_t)0x20000u) /* No realy zone reclaim during allocation */ 49#define __GFP_HARDWALL ((__force gfp_t)0x20000u) /* Enforce hardwall cpuset memory allocs */
43#define __GFP_HARDWALL ((__force gfp_t)0x40000u) /* Enforce hardwall cpuset memory allocs */
44 50
45#define __GFP_BITS_SHIFT 20 /* Room for 20 __GFP_FOO bits */ 51#define __GFP_BITS_SHIFT 20 /* Room for 20 __GFP_FOO bits */
46#define __GFP_BITS_MASK ((__force gfp_t)((1 << __GFP_BITS_SHIFT) - 1)) 52#define __GFP_BITS_MASK ((__force gfp_t)((1 << __GFP_BITS_SHIFT) - 1))
@@ -49,7 +55,7 @@ struct vm_area_struct;
49#define GFP_LEVEL_MASK (__GFP_WAIT|__GFP_HIGH|__GFP_IO|__GFP_FS| \ 55#define GFP_LEVEL_MASK (__GFP_WAIT|__GFP_HIGH|__GFP_IO|__GFP_FS| \
50 __GFP_COLD|__GFP_NOWARN|__GFP_REPEAT| \ 56 __GFP_COLD|__GFP_NOWARN|__GFP_REPEAT| \
51 __GFP_NOFAIL|__GFP_NORETRY|__GFP_NO_GROW|__GFP_COMP| \ 57 __GFP_NOFAIL|__GFP_NORETRY|__GFP_NO_GROW|__GFP_COMP| \
52 __GFP_NOMEMALLOC|__GFP_NORECLAIM|__GFP_HARDWALL) 58 __GFP_NOMEMALLOC|__GFP_HARDWALL)
53 59
54#define GFP_ATOMIC (__GFP_HIGH) 60#define GFP_ATOMIC (__GFP_HIGH)
55#define GFP_NOIO (__GFP_WAIT) 61#define GFP_NOIO (__GFP_WAIT)
@@ -64,7 +70,16 @@ struct vm_area_struct;
64 70
65#define GFP_DMA __GFP_DMA 71#define GFP_DMA __GFP_DMA
66 72
67#define gfp_zone(mask) ((__force int)((mask) & (__force gfp_t)GFP_ZONEMASK)) 73/* 4GB DMA on some platforms */
74#define GFP_DMA32 __GFP_DMA32
75
76
77static inline int gfp_zone(gfp_t gfp)
78{
79 int zone = GFP_ZONEMASK & (__force int) gfp;
80 BUG_ON(zone >= GFP_ZONETYPES);
81 return zone;
82}
68 83
69/* 84/*
70 * There is only one page-allocator function, and two main namespaces to 85 * There is only one page-allocator function, and two main namespaces to
diff --git a/include/linux/hardirq.h b/include/linux/hardirq.h
index 5912874ca83c..71d2b8a723b9 100644
--- a/include/linux/hardirq.h
+++ b/include/linux/hardirq.h
@@ -90,6 +90,8 @@ extern void synchronize_irq(unsigned int irq);
90#define nmi_enter() irq_enter() 90#define nmi_enter() irq_enter()
91#define nmi_exit() sub_preempt_count(HARDIRQ_OFFSET) 91#define nmi_exit() sub_preempt_count(HARDIRQ_OFFSET)
92 92
93struct task_struct;
94
93#ifndef CONFIG_VIRT_CPU_ACCOUNTING 95#ifndef CONFIG_VIRT_CPU_ACCOUNTING
94static inline void account_user_vtime(struct task_struct *tsk) 96static inline void account_user_vtime(struct task_struct *tsk)
95{ 97{
diff --git a/include/linux/hdreg.h b/include/linux/hdreg.h
index b5d660089de4..2b54eac738ea 100644
--- a/include/linux/hdreg.h
+++ b/include/linux/hdreg.h
@@ -80,10 +80,12 @@
80/* 80/*
81 * Define standard taskfile in/out register 81 * Define standard taskfile in/out register
82 */ 82 */
83#define IDE_TASKFILE_STD_OUT_FLAGS 0xFE
84#define IDE_TASKFILE_STD_IN_FLAGS 0xFE 83#define IDE_TASKFILE_STD_IN_FLAGS 0xFE
85#define IDE_HOB_STD_OUT_FLAGS 0x3C
86#define IDE_HOB_STD_IN_FLAGS 0x3C 84#define IDE_HOB_STD_IN_FLAGS 0x3C
85#ifndef __KERNEL__
86#define IDE_TASKFILE_STD_OUT_FLAGS 0xFE
87#define IDE_HOB_STD_OUT_FLAGS 0x3C
88#endif
87 89
88typedef unsigned char task_ioreg_t; 90typedef unsigned char task_ioreg_t;
89typedef unsigned long sata_ioreg_t; 91typedef unsigned long sata_ioreg_t;
diff --git a/include/linux/hugetlb.h b/include/linux/hugetlb.h
index 0cea162b08c0..1056717ee501 100644
--- a/include/linux/hugetlb.h
+++ b/include/linux/hugetlb.h
@@ -102,8 +102,8 @@ static inline unsigned long hugetlb_total_pages(void)
102#define hugetlb_fault(mm, vma, addr, write) ({ BUG(); 0; }) 102#define hugetlb_fault(mm, vma, addr, write) ({ BUG(); 0; })
103 103
104#ifndef HPAGE_MASK 104#ifndef HPAGE_MASK
105#define HPAGE_MASK 0 /* Keep the compiler happy */ 105#define HPAGE_MASK PAGE_MASK /* Keep the compiler happy */
106#define HPAGE_SIZE 0 106#define HPAGE_SIZE PAGE_SIZE
107#endif 107#endif
108 108
109#endif /* !CONFIG_HUGETLB_PAGE */ 109#endif /* !CONFIG_HUGETLB_PAGE */
diff --git a/include/linux/i2c-id.h b/include/linux/i2c-id.h
index 74abaecdb572..006c81ef4d50 100644
--- a/include/linux/i2c-id.h
+++ b/include/linux/i2c-id.h
@@ -107,6 +107,8 @@
107#define I2C_DRIVERID_CX25840 71 /* cx2584x video encoder */ 107#define I2C_DRIVERID_CX25840 71 /* cx2584x video encoder */
108#define I2C_DRIVERID_SAA7127 72 /* saa7124 video encoder */ 108#define I2C_DRIVERID_SAA7127 72 /* saa7124 video encoder */
109#define I2C_DRIVERID_SAA711X 73 /* saa711x video encoders */ 109#define I2C_DRIVERID_SAA711X 73 /* saa711x video encoders */
110#define I2C_DRIVERID_AKITAIOEXP 74 /* IO Expander on Sharp SL-C1000 */
111#define I2C_DRIVERID_INFRARED 75 /* I2C InfraRed on Video boards */
110 112
111#define I2C_DRIVERID_EXP0 0xF0 /* experimental use id's */ 113#define I2C_DRIVERID_EXP0 0xF0 /* experimental use id's */
112#define I2C_DRIVERID_EXP1 0xF1 114#define I2C_DRIVERID_EXP1 0xF1
diff --git a/include/linux/ide.h b/include/linux/ide.h
index 77ae55d4c13c..7b6a6a58e465 100644
--- a/include/linux/ide.h
+++ b/include/linux/ide.h
@@ -23,17 +23,6 @@
23#include <asm/io.h> 23#include <asm/io.h>
24#include <asm/semaphore.h> 24#include <asm/semaphore.h>
25 25
26/*
27 * This is the multiple IDE interface driver, as evolved from hd.c.
28 * It supports up to four IDE interfaces, on one or more IRQs (usually 14 & 15).
29 * There can be up to two drives per interface, as per the ATA-2 spec.
30 *
31 * Primary i/f: ide0: major=3; (hda) minor=0; (hdb) minor=64
32 * Secondary i/f: ide1: major=22; (hdc or hd1a) minor=0; (hdd or hd1b) minor=64
33 * Tertiary i/f: ide2: major=33; (hde) minor=0; (hdf) minor=64
34 * Quaternary i/f: ide3: major=34; (hdg) minor=0; (hdh) minor=64
35 */
36
37/****************************************************************************** 26/******************************************************************************
38 * IDE driver configuration options (play with these as desired): 27 * IDE driver configuration options (play with these as desired):
39 * 28 *
@@ -193,11 +182,6 @@ typedef unsigned char byte; /* used everywhere */
193#define WAIT_CMD (10*HZ) /* 10sec - maximum wait for an IRQ to happen */ 182#define WAIT_CMD (10*HZ) /* 10sec - maximum wait for an IRQ to happen */
194#define WAIT_MIN_SLEEP (2*HZ/100) /* 20msec - minimum sleep time */ 183#define WAIT_MIN_SLEEP (2*HZ/100) /* 20msec - minimum sleep time */
195 184
196#define HOST(hwif,chipset) \
197{ \
198 return ((hwif)->chipset == chipset) ? 1 : 0; \
199}
200
201/* 185/*
202 * Check for an interrupt and acknowledge the interrupt status 186 * Check for an interrupt and acknowledge the interrupt status
203 */ 187 */
@@ -391,45 +375,6 @@ typedef union {
391} ata_nsector_t, ata_data_t, atapi_bcount_t, ata_index_t; 375} ata_nsector_t, ata_data_t, atapi_bcount_t, ata_index_t;
392 376
393/* 377/*
394 * ATA-IDE Error Register
395 *
396 * mark : Bad address mark
397 * tzero : Couldn't find track 0
398 * abrt : Aborted Command
399 * mcr : Media Change Request
400 * id : ID field not found
401 * mce : Media Change Event
402 * ecc : Uncorrectable ECC error
403 * bdd : dual meaing
404 */
405typedef union {
406 unsigned all :8;
407 struct {
408#if defined(__LITTLE_ENDIAN_BITFIELD)
409 unsigned mark :1;
410 unsigned tzero :1;
411 unsigned abrt :1;
412 unsigned mcr :1;
413 unsigned id :1;
414 unsigned mce :1;
415 unsigned ecc :1;
416 unsigned bdd :1;
417#elif defined(__BIG_ENDIAN_BITFIELD)
418 unsigned bdd :1;
419 unsigned ecc :1;
420 unsigned mce :1;
421 unsigned id :1;
422 unsigned mcr :1;
423 unsigned abrt :1;
424 unsigned tzero :1;
425 unsigned mark :1;
426#else
427#error "Please fix <asm/byteorder.h>"
428#endif
429 } b;
430} ata_error_t;
431
432/*
433 * ATA-IDE Select Register, aka Device-Head 378 * ATA-IDE Select Register, aka Device-Head
434 * 379 *
435 * head : always zeros here 380 * head : always zeros here
@@ -504,39 +449,6 @@ typedef union {
504} ata_status_t, atapi_status_t; 449} ata_status_t, atapi_status_t;
505 450
506/* 451/*
507 * ATA-IDE Control Register
508 *
509 * bit0 : Should be set to zero
510 * nIEN : device INTRQ to host
511 * SRST : host soft reset bit
512 * bit3 : ATA-2 thingy, Should be set to 1
513 * reserved456 : Reserved
514 * HOB : 48-bit address ordering, High Ordered Bit
515 */
516typedef union {
517 unsigned all : 8;
518 struct {
519#if defined(__LITTLE_ENDIAN_BITFIELD)
520 unsigned bit0 : 1;
521 unsigned nIEN : 1;
522 unsigned SRST : 1;
523 unsigned bit3 : 1;
524 unsigned reserved456 : 3;
525 unsigned HOB : 1;
526#elif defined(__BIG_ENDIAN_BITFIELD)
527 unsigned HOB : 1;
528 unsigned reserved456 : 3;
529 unsigned bit3 : 1;
530 unsigned SRST : 1;
531 unsigned nIEN : 1;
532 unsigned bit0 : 1;
533#else
534#error "Please fix <asm/byteorder.h>"
535#endif
536 } b;
537} ata_control_t;
538
539/*
540 * ATAPI Feature Register 452 * ATAPI Feature Register
541 * 453 *
542 * dma : Using DMA or PIO 454 * dma : Using DMA or PIO
@@ -618,39 +530,6 @@ typedef union {
618} atapi_error_t; 530} atapi_error_t;
619 531
620/* 532/*
621 * ATAPI floppy Drive Select Register
622 *
623 * sam_lun : Logical unit number
624 * reserved3 : Reserved
625 * drv : The responding drive will be drive 0 (0) or drive 1 (1)
626 * one5 : Should be set to 1
627 * reserved6 : Reserved
628 * one7 : Should be set to 1
629 */
630typedef union {
631 unsigned all :8;
632 struct {
633#if defined(__LITTLE_ENDIAN_BITFIELD)
634 unsigned sam_lun :3;
635 unsigned reserved3 :1;
636 unsigned drv :1;
637 unsigned one5 :1;
638 unsigned reserved6 :1;
639 unsigned one7 :1;
640#elif defined(__BIG_ENDIAN_BITFIELD)
641 unsigned one7 :1;
642 unsigned reserved6 :1;
643 unsigned one5 :1;
644 unsigned drv :1;
645 unsigned reserved3 :1;
646 unsigned sam_lun :3;
647#else
648#error "Please fix <asm/byteorder.h>"
649#endif
650 } b;
651} atapi_select_t;
652
653/*
654 * Status returned from various ide_ functions 533 * Status returned from various ide_ functions
655 */ 534 */
656typedef enum { 535typedef enum {
@@ -1089,9 +968,11 @@ enum {
1089 968
1090/* 969/*
1091 * Subdrivers support. 970 * Subdrivers support.
971 *
972 * The gendriver.owner field should be set to the module owner of this driver.
973 * The gendriver.name field should be set to the name of this driver
1092 */ 974 */
1093typedef struct ide_driver_s { 975typedef struct ide_driver_s {
1094 struct module *owner;
1095 const char *version; 976 const char *version;
1096 u8 media; 977 u8 media;
1097 unsigned supports_dsc_overlap : 1; 978 unsigned supports_dsc_overlap : 1;
@@ -1099,10 +980,7 @@ typedef struct ide_driver_s {
1099 int (*end_request)(ide_drive_t *, int, int); 980 int (*end_request)(ide_drive_t *, int, int);
1100 ide_startstop_t (*error)(ide_drive_t *, struct request *rq, u8, u8); 981 ide_startstop_t (*error)(ide_drive_t *, struct request *rq, u8, u8);
1101 ide_startstop_t (*abort)(ide_drive_t *, struct request *rq); 982 ide_startstop_t (*abort)(ide_drive_t *, struct request *rq);
1102 int (*ioctl)(ide_drive_t *, struct inode *, struct file *, unsigned int, unsigned long);
1103 ide_proc_entry_t *proc; 983 ide_proc_entry_t *proc;
1104 void (*ata_prebuilder)(ide_drive_t *);
1105 void (*atapi_prebuilder)(ide_drive_t *);
1106 struct device_driver gen_driver; 984 struct device_driver gen_driver;
1107} ide_driver_t; 985} ide_driver_t;
1108 986
@@ -1199,37 +1077,11 @@ extern u64 ide_get_error_location(ide_drive_t *, char *);
1199 */ 1077 */
1200typedef enum { 1078typedef enum {
1201 ide_wait, /* insert rq at end of list, and wait for it */ 1079 ide_wait, /* insert rq at end of list, and wait for it */
1202 ide_next, /* insert rq immediately after current request */
1203 ide_preempt, /* insert rq in front of current request */ 1080 ide_preempt, /* insert rq in front of current request */
1204 ide_head_wait, /* insert rq in front of current request and wait for it */ 1081 ide_head_wait, /* insert rq in front of current request and wait for it */
1205 ide_end /* insert rq at end of list, but don't wait for it */ 1082 ide_end /* insert rq at end of list, but don't wait for it */
1206} ide_action_t; 1083} ide_action_t;
1207 1084
1208/*
1209 * This function issues a special IDE device request
1210 * onto the request queue.
1211 *
1212 * If action is ide_wait, then the rq is queued at the end of the
1213 * request queue, and the function sleeps until it has been processed.
1214 * This is for use when invoked from an ioctl handler.
1215 *
1216 * If action is ide_preempt, then the rq is queued at the head of
1217 * the request queue, displacing the currently-being-processed
1218 * request and this function returns immediately without waiting
1219 * for the new rq to be completed. This is VERY DANGEROUS, and is
1220 * intended for careful use by the ATAPI tape/cdrom driver code.
1221 *
1222 * If action is ide_next, then the rq is queued immediately after
1223 * the currently-being-processed-request (if any), and the function
1224 * returns without waiting for the new rq to be completed. As above,
1225 * This is VERY DANGEROUS, and is intended for careful use by the
1226 * ATAPI tape/cdrom driver code.
1227 *
1228 * If action is ide_end, then the rq is queued at the end of the
1229 * request queue, and the function returns immediately without waiting
1230 * for the new rq to be completed. This is again intended for careful
1231 * use by the ATAPI tape/cdrom driver code.
1232 */
1233extern int ide_do_drive_cmd(ide_drive_t *, struct request *, ide_action_t); 1085extern int ide_do_drive_cmd(ide_drive_t *, struct request *, ide_action_t);
1234 1086
1235/* 1087/*
@@ -1322,14 +1174,14 @@ extern int ide_spin_wait_hwgroup(ide_drive_t *);
1322extern void ide_timer_expiry(unsigned long); 1174extern void ide_timer_expiry(unsigned long);
1323extern irqreturn_t ide_intr(int irq, void *dev_id, struct pt_regs *regs); 1175extern irqreturn_t ide_intr(int irq, void *dev_id, struct pt_regs *regs);
1324extern void do_ide_request(request_queue_t *); 1176extern void do_ide_request(request_queue_t *);
1325extern void ide_init_subdrivers(void);
1326 1177
1327void ide_init_disk(struct gendisk *, ide_drive_t *); 1178void ide_init_disk(struct gendisk *, ide_drive_t *);
1328 1179
1329extern int ideprobe_init(void); 1180extern int ideprobe_init(void);
1330 1181
1331extern void ide_scan_pcibus(int scan_direction) __init; 1182extern void ide_scan_pcibus(int scan_direction) __init;
1332extern int ide_pci_register_driver(struct pci_driver *driver); 1183extern int __ide_pci_register_driver(struct pci_driver *driver, struct module *owner);
1184#define ide_pci_register_driver(d) __ide_pci_register_driver(d, THIS_MODULE)
1333extern void ide_pci_unregister_driver(struct pci_driver *driver); 1185extern void ide_pci_unregister_driver(struct pci_driver *driver);
1334void ide_pci_setup_ports(struct pci_dev *, struct ide_pci_device_s *, int, ata_index_t *); 1186void ide_pci_setup_ports(struct pci_dev *, struct ide_pci_device_s *, int, ata_index_t *);
1335extern void ide_setup_pci_noise (struct pci_dev *dev, struct ide_pci_device_s *d); 1187extern void ide_setup_pci_noise (struct pci_dev *dev, struct ide_pci_device_s *d);
@@ -1394,6 +1246,12 @@ void ide_init_sg_cmd(ide_drive_t *, struct request *);
1394#define GOOD_DMA_DRIVE 1 1246#define GOOD_DMA_DRIVE 1
1395 1247
1396#ifdef CONFIG_BLK_DEV_IDEDMA 1248#ifdef CONFIG_BLK_DEV_IDEDMA
1249struct drive_list_entry {
1250 const char *id_model;
1251 const char *id_firmware;
1252};
1253
1254int ide_in_drive_list(struct hd_driveid *, const struct drive_list_entry *);
1397int __ide_dma_bad_drive(ide_drive_t *); 1255int __ide_dma_bad_drive(ide_drive_t *);
1398int __ide_dma_good_drive(ide_drive_t *); 1256int __ide_dma_good_drive(ide_drive_t *);
1399int ide_use_dma(ide_drive_t *); 1257int ide_use_dma(ide_drive_t *);
diff --git a/include/linux/idr.h b/include/linux/idr.h
index 7fb3ff9c7b0e..d37c8d808b0f 100644
--- a/include/linux/idr.h
+++ b/include/linux/idr.h
@@ -8,6 +8,10 @@
8 * Small id to pointer translation service avoiding fixed sized 8 * Small id to pointer translation service avoiding fixed sized
9 * tables. 9 * tables.
10 */ 10 */
11
12#ifndef __IDR_H__
13#define __IDR_H__
14
11#include <linux/types.h> 15#include <linux/types.h>
12#include <linux/bitops.h> 16#include <linux/bitops.h>
13 17
@@ -77,3 +81,5 @@ int idr_get_new_above(struct idr *idp, void *ptr, int starting_id, int *id);
77void idr_remove(struct idr *idp, int id); 81void idr_remove(struct idr *idp, int id);
78void idr_destroy(struct idr *idp); 82void idr_destroy(struct idr *idp);
79void idr_init(struct idr *idp); 83void idr_init(struct idr *idp);
84
85#endif /* __IDR_H__ */
diff --git a/include/linux/if_ether.h b/include/linux/if_ether.h
index d21c305c6c64..fe26d431de87 100644
--- a/include/linux/if_ether.h
+++ b/include/linux/if_ether.h
@@ -21,6 +21,8 @@
21#ifndef _LINUX_IF_ETHER_H 21#ifndef _LINUX_IF_ETHER_H
22#define _LINUX_IF_ETHER_H 22#define _LINUX_IF_ETHER_H
23 23
24#include <linux/types.h>
25
24/* 26/*
25 * IEEE 802.3 Ethernet magic constants. The frame sizes omit the preamble 27 * IEEE 802.3 Ethernet magic constants. The frame sizes omit the preamble
26 * and FCS/CRC (frame check sequence). 28 * and FCS/CRC (frame check sequence).
@@ -100,7 +102,7 @@
100struct ethhdr { 102struct ethhdr {
101 unsigned char h_dest[ETH_ALEN]; /* destination eth addr */ 103 unsigned char h_dest[ETH_ALEN]; /* destination eth addr */
102 unsigned char h_source[ETH_ALEN]; /* source ether addr */ 104 unsigned char h_source[ETH_ALEN]; /* source ether addr */
103 unsigned short h_proto; /* packet type ID field */ 105 __be16 h_proto; /* packet type ID field */
104} __attribute__((packed)); 106} __attribute__((packed));
105 107
106#ifdef __KERNEL__ 108#ifdef __KERNEL__
diff --git a/include/linux/init_task.h b/include/linux/init_task.h
index 68ab5f2ab9cd..dcfd2ecccb5d 100644
--- a/include/linux/init_task.h
+++ b/include/linux/init_task.h
@@ -51,7 +51,6 @@
51 .page_table_lock = SPIN_LOCK_UNLOCKED, \ 51 .page_table_lock = SPIN_LOCK_UNLOCKED, \
52 .mmlist = LIST_HEAD_INIT(name.mmlist), \ 52 .mmlist = LIST_HEAD_INIT(name.mmlist), \
53 .cpu_vm_mask = CPU_MASK_ALL, \ 53 .cpu_vm_mask = CPU_MASK_ALL, \
54 .default_kioctx = INIT_KIOCTX(name.default_kioctx, name), \
55} 54}
56 55
57#define INIT_SIGNALS(sig) { \ 56#define INIT_SIGNALS(sig) { \
diff --git a/include/linux/inotify.h b/include/linux/inotify.h
index ee5b239092ed..267c88b5f742 100644
--- a/include/linux/inotify.h
+++ b/include/linux/inotify.h
@@ -47,6 +47,8 @@ struct inotify_event {
47#define IN_MOVE (IN_MOVED_FROM | IN_MOVED_TO) /* moves */ 47#define IN_MOVE (IN_MOVED_FROM | IN_MOVED_TO) /* moves */
48 48
49/* special flags */ 49/* special flags */
50#define IN_ONLYDIR 0x01000000 /* only watch the path if it is a directory */
51#define IN_DONT_FOLLOW 0x02000000 /* don't follow a sym link */
50#define IN_MASK_ADD 0x20000000 /* add to the mask of an already existing watch */ 52#define IN_MASK_ADD 0x20000000 /* add to the mask of an already existing watch */
51#define IN_ISDIR 0x40000000 /* event occurred against dir */ 53#define IN_ISDIR 0x40000000 /* event occurred against dir */
52#define IN_ONESHOT 0x80000000 /* only send event once */ 54#define IN_ONESHOT 0x80000000 /* only send event once */
diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h
index 0a90205184b0..41f150a3d2dd 100644
--- a/include/linux/interrupt.h
+++ b/include/linux/interrupt.h
@@ -9,6 +9,7 @@
9#include <linux/preempt.h> 9#include <linux/preempt.h>
10#include <linux/cpumask.h> 10#include <linux/cpumask.h>
11#include <linux/hardirq.h> 11#include <linux/hardirq.h>
12#include <linux/sched.h>
12#include <asm/atomic.h> 13#include <asm/atomic.h>
13#include <asm/ptrace.h> 14#include <asm/ptrace.h>
14#include <asm/system.h> 15#include <asm/system.h>
diff --git a/include/linux/ipv6_route.h b/include/linux/ipv6_route.h
index e2f935038013..d7c41d1d706a 100644
--- a/include/linux/ipv6_route.h
+++ b/include/linux/ipv6_route.h
@@ -18,6 +18,7 @@
18 fallback, no routers on link */ 18 fallback, no routers on link */
19#define RTF_ADDRCONF 0x00040000 /* addrconf route - RA */ 19#define RTF_ADDRCONF 0x00040000 /* addrconf route - RA */
20#define RTF_PREFIX_RT 0x00080000 /* A prefix only route - RA */ 20#define RTF_PREFIX_RT 0x00080000 /* A prefix only route - RA */
21#define RTF_ANYCAST 0x00100000 /* Anycast */
21 22
22#define RTF_NONEXTHOP 0x00200000 /* route with no nexthop */ 23#define RTF_NONEXTHOP 0x00200000 /* route with no nexthop */
23#define RTF_EXPIRES 0x00400000 24#define RTF_EXPIRES 0x00400000
diff --git a/include/linux/irq.h b/include/linux/irq.h
index c516382fbec2..f04ba20712a2 100644
--- a/include/linux/irq.h
+++ b/include/linux/irq.h
@@ -10,7 +10,7 @@
10 */ 10 */
11 11
12#include <linux/config.h> 12#include <linux/config.h>
13#include <asm/smp.h> /* cpu_online_map */ 13#include <linux/smp.h>
14 14
15#if !defined(CONFIG_ARCH_S390) 15#if !defined(CONFIG_ARCH_S390)
16 16
diff --git a/include/linux/jbd.h b/include/linux/jbd.h
index aa56172c6fed..dcde7adfdce5 100644
--- a/include/linux/jbd.h
+++ b/include/linux/jbd.h
@@ -16,8 +16,6 @@
16#ifndef _LINUX_JBD_H 16#ifndef _LINUX_JBD_H
17#define _LINUX_JBD_H 17#define _LINUX_JBD_H
18 18
19#if defined(CONFIG_JBD) || defined(CONFIG_JBD_MODULE) || !defined(__KERNEL__)
20
21/* Allow this file to be included directly into e2fsprogs */ 19/* Allow this file to be included directly into e2fsprogs */
22#ifndef __KERNEL__ 20#ifndef __KERNEL__
23#include "jfs_compat.h" 21#include "jfs_compat.h"
@@ -1083,19 +1081,4 @@ extern int jbd_blocks_per_page(struct inode *inode);
1083 1081
1084#endif /* __KERNEL__ */ 1082#endif /* __KERNEL__ */
1085 1083
1086#endif /* CONFIG_JBD || CONFIG_JBD_MODULE || !__KERNEL__ */
1087
1088/*
1089 * Compatibility no-ops which allow the kernel to compile without CONFIG_JBD
1090 * go here.
1091 */
1092
1093#if defined(__KERNEL__) && !(defined(CONFIG_JBD) || defined(CONFIG_JBD_MODULE))
1094
1095#define J_ASSERT(expr) do {} while (0)
1096#define J_ASSERT_BH(bh, expr) do {} while (0)
1097#define buffer_jbd(bh) 0
1098#define journal_buffer_journal_lru(bh) 0
1099
1100#endif /* defined(__KERNEL__) && !defined(CONFIG_JBD) */
1101#endif /* _LINUX_JBD_H */ 1084#endif /* _LINUX_JBD_H */
diff --git a/include/linux/kprobes.h b/include/linux/kprobes.h
index e373c4a9de53..c03f2dc933de 100644
--- a/include/linux/kprobes.h
+++ b/include/linux/kprobes.h
@@ -37,6 +37,7 @@
37#include <linux/spinlock.h> 37#include <linux/spinlock.h>
38#include <linux/rcupdate.h> 38#include <linux/rcupdate.h>
39 39
40#ifdef CONFIG_KPROBES
40#include <asm/kprobes.h> 41#include <asm/kprobes.h>
41 42
42/* kprobe_status settings */ 43/* kprobe_status settings */
@@ -147,7 +148,6 @@ struct kretprobe_instance {
147 struct task_struct *task; 148 struct task_struct *task;
148}; 149};
149 150
150#ifdef CONFIG_KPROBES
151extern spinlock_t kretprobe_lock; 151extern spinlock_t kretprobe_lock;
152extern int arch_prepare_kprobe(struct kprobe *p); 152extern int arch_prepare_kprobe(struct kprobe *p);
153extern void arch_copy_kprobe(struct kprobe *p); 153extern void arch_copy_kprobe(struct kprobe *p);
@@ -158,6 +158,7 @@ extern int arch_init_kprobes(void);
158extern void show_registers(struct pt_regs *regs); 158extern void show_registers(struct pt_regs *regs);
159extern kprobe_opcode_t *get_insn_slot(void); 159extern kprobe_opcode_t *get_insn_slot(void);
160extern void free_insn_slot(kprobe_opcode_t *slot); 160extern void free_insn_slot(kprobe_opcode_t *slot);
161extern void kprobes_inc_nmissed_count(struct kprobe *p);
161 162
162/* Get the kprobe at this addr (if any) - called with preemption disabled */ 163/* Get the kprobe at this addr (if any) - called with preemption disabled */
163struct kprobe *get_kprobe(void *addr); 164struct kprobe *get_kprobe(void *addr);
@@ -195,6 +196,11 @@ void add_rp_inst(struct kretprobe_instance *ri);
195void kprobe_flush_task(struct task_struct *tk); 196void kprobe_flush_task(struct task_struct *tk);
196void recycle_rp_inst(struct kretprobe_instance *ri); 197void recycle_rp_inst(struct kretprobe_instance *ri);
197#else /* CONFIG_KPROBES */ 198#else /* CONFIG_KPROBES */
199
200#define __kprobes /**/
201struct jprobe;
202struct kretprobe;
203
198static inline struct kprobe *kprobe_running(void) 204static inline struct kprobe *kprobe_running(void)
199{ 205{
200 return NULL; 206 return NULL;
diff --git a/include/linux/libata.h b/include/linux/libata.h
index 6f0752219f64..41ea7dbc1755 100644
--- a/include/linux/libata.h
+++ b/include/linux/libata.h
@@ -29,6 +29,7 @@
29#include <linux/delay.h> 29#include <linux/delay.h>
30#include <linux/interrupt.h> 30#include <linux/interrupt.h>
31#include <linux/pci.h> 31#include <linux/pci.h>
32#include <linux/dma-mapping.h>
32#include <asm/io.h> 33#include <asm/io.h>
33#include <linux/ata.h> 34#include <linux/ata.h>
34#include <linux/workqueue.h> 35#include <linux/workqueue.h>
@@ -58,6 +59,8 @@
58#define VPRINTK(fmt, args...) 59#define VPRINTK(fmt, args...)
59#endif /* ATA_DEBUG */ 60#endif /* ATA_DEBUG */
60 61
62#define BPRINTK(fmt, args...) if (ap->flags & ATA_FLAG_DEBUGMSG) printk(KERN_ERR "%s: " fmt, __FUNCTION__, ## args)
63
61#ifdef ATA_NDEBUG 64#ifdef ATA_NDEBUG
62#define assert(expr) 65#define assert(expr)
63#else 66#else
@@ -118,6 +121,8 @@ enum {
118 ATA_FLAG_PIO_DMA = (1 << 8), /* PIO cmds via DMA */ 121 ATA_FLAG_PIO_DMA = (1 << 8), /* PIO cmds via DMA */
119 ATA_FLAG_NOINTR = (1 << 9), /* FIXME: Remove this once 122 ATA_FLAG_NOINTR = (1 << 9), /* FIXME: Remove this once
120 * proper HSM is in place. */ 123 * proper HSM is in place. */
124 ATA_FLAG_DEBUGMSG = (1 << 10),
125 ATA_FLAG_NO_ATAPI = (1 << 11), /* No ATAPI support */
121 126
122 ATA_QCFLAG_ACTIVE = (1 << 1), /* cmd not yet ack'd to scsi lyer */ 127 ATA_QCFLAG_ACTIVE = (1 << 1), /* cmd not yet ack'd to scsi lyer */
123 ATA_QCFLAG_SG = (1 << 3), /* have s/g table? */ 128 ATA_QCFLAG_SG = (1 << 3), /* have s/g table? */
@@ -398,12 +403,13 @@ struct ata_port_operations {
398}; 403};
399 404
400struct ata_port_info { 405struct ata_port_info {
401 struct scsi_host_template *sht; 406 struct scsi_host_template *sht;
402 unsigned long host_flags; 407 unsigned long host_flags;
403 unsigned long pio_mask; 408 unsigned long pio_mask;
404 unsigned long mwdma_mask; 409 unsigned long mwdma_mask;
405 unsigned long udma_mask; 410 unsigned long udma_mask;
406 const struct ata_port_operations *port_ops; 411 const struct ata_port_operations *port_ops;
412 void *private_data;
407}; 413};
408 414
409struct ata_timing { 415struct ata_timing {
@@ -657,6 +663,17 @@ static inline void ata_tf_init(struct ata_port *ap, struct ata_taskfile *tf, uns
657 tf->device = ATA_DEVICE_OBS | ATA_DEV1; 663 tf->device = ATA_DEVICE_OBS | ATA_DEV1;
658} 664}
659 665
666static inline void ata_qc_reinit(struct ata_queued_cmd *qc)
667{
668 qc->__sg = NULL;
669 qc->flags = 0;
670 qc->cursect = qc->cursg = qc->cursg_ofs = 0;
671 qc->nsect = 0;
672 qc->nbytes = qc->curbytes = 0;
673
674 ata_tf_init(qc->ap, &qc->tf, qc->dev->devno);
675}
676
660 677
661/** 678/**
662 * ata_irq_on - Enable interrupts on a port. 679 * ata_irq_on - Enable interrupts on a port.
diff --git a/include/linux/list.h b/include/linux/list.h
index fbfca73355a3..8e3388284530 100644
--- a/include/linux/list.h
+++ b/include/linux/list.h
@@ -202,12 +202,15 @@ static inline void list_del_rcu(struct list_head *entry)
202 * 202 *
203 * The old entry will be replaced with the new entry atomically. 203 * The old entry will be replaced with the new entry atomically.
204 */ 204 */
205static inline void list_replace_rcu(struct list_head *old, struct list_head *new){ 205static inline void list_replace_rcu(struct list_head *old,
206 struct list_head *new)
207{
206 new->next = old->next; 208 new->next = old->next;
207 new->prev = old->prev; 209 new->prev = old->prev;
208 smp_wmb(); 210 smp_wmb();
209 new->next->prev = new; 211 new->next->prev = new;
210 new->prev->next = new; 212 new->prev->next = new;
213 old->prev = LIST_POISON2;
211} 214}
212 215
213/** 216/**
@@ -578,6 +581,27 @@ static inline void hlist_del_init(struct hlist_node *n)
578 } 581 }
579} 582}
580 583
584/*
585 * hlist_replace_rcu - replace old entry by new one
586 * @old : the element to be replaced
587 * @new : the new element to insert
588 *
589 * The old entry will be replaced with the new entry atomically.
590 */
591static inline void hlist_replace_rcu(struct hlist_node *old,
592 struct hlist_node *new)
593{
594 struct hlist_node *next = old->next;
595
596 new->next = next;
597 new->pprev = old->pprev;
598 smp_wmb();
599 if (next)
600 new->next->pprev = &new->next;
601 *new->pprev = new;
602 old->pprev = LIST_POISON2;
603}
604
581static inline void hlist_add_head(struct hlist_node *n, struct hlist_head *h) 605static inline void hlist_add_head(struct hlist_node *n, struct hlist_head *h)
582{ 606{
583 struct hlist_node *first = h->first; 607 struct hlist_node *first = h->first;
diff --git a/include/linux/memory.h b/include/linux/memory.h
index 9a424383e6c6..dc4081b6f161 100644
--- a/include/linux/memory.h
+++ b/include/linux/memory.h
@@ -85,7 +85,6 @@ struct notifier_block;
85extern int register_memory_notifier(struct notifier_block *nb); 85extern int register_memory_notifier(struct notifier_block *nb);
86extern void unregister_memory_notifier(struct notifier_block *nb); 86extern void unregister_memory_notifier(struct notifier_block *nb);
87 87
88extern struct sysdev_class memory_sysdev_class;
89#endif /* CONFIG_MEMORY_HOTPLUG */ 88#endif /* CONFIG_MEMORY_HOTPLUG */
90 89
91#define hotplug_memory_notifier(fn, pri) { \ 90#define hotplug_memory_notifier(fn, pri) { \
diff --git a/include/linux/mm.h b/include/linux/mm.h
index 7b115feca4df..a06a84d347fb 100644
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
@@ -144,7 +144,8 @@ extern unsigned int kobjsize(const void *objp);
144 144
145#define VM_GROWSDOWN 0x00000100 /* general info on the segment */ 145#define VM_GROWSDOWN 0x00000100 /* general info on the segment */
146#define VM_GROWSUP 0x00000200 146#define VM_GROWSUP 0x00000200
147#define VM_SHM 0x00000400 /* shared memory area, don't swap out */ 147#define VM_SHM 0x00000000 /* Means nothing: delete it later */
148#define VM_PFNMAP 0x00000400 /* Page-ranges managed without "struct page", just pure PFN */
148#define VM_DENYWRITE 0x00000800 /* ETXTBSY on write attempts.. */ 149#define VM_DENYWRITE 0x00000800 /* ETXTBSY on write attempts.. */
149 150
150#define VM_EXECUTABLE 0x00001000 151#define VM_EXECUTABLE 0x00001000
@@ -157,11 +158,12 @@ extern unsigned int kobjsize(const void *objp);
157 158
158#define VM_DONTCOPY 0x00020000 /* Do not copy this vma on fork */ 159#define VM_DONTCOPY 0x00020000 /* Do not copy this vma on fork */
159#define VM_DONTEXPAND 0x00040000 /* Cannot expand with mremap() */ 160#define VM_DONTEXPAND 0x00040000 /* Cannot expand with mremap() */
160#define VM_RESERVED 0x00080000 /* Pages managed in a special way */ 161#define VM_RESERVED 0x00080000 /* Count as reserved_vm like IO */
161#define VM_ACCOUNT 0x00100000 /* Is a VM accounted object */ 162#define VM_ACCOUNT 0x00100000 /* Is a VM accounted object */
162#define VM_HUGETLB 0x00400000 /* Huge TLB Page VM */ 163#define VM_HUGETLB 0x00400000 /* Huge TLB Page VM */
163#define VM_NONLINEAR 0x00800000 /* Is non-linear (remap_file_pages) */ 164#define VM_NONLINEAR 0x00800000 /* Is non-linear (remap_file_pages) */
164#define VM_MAPPED_COPY 0x01000000 /* T if mapped copy of data (nommu mmap) */ 165#define VM_MAPPED_COPY 0x01000000 /* T if mapped copy of data (nommu mmap) */
166#define VM_INSERTPAGE 0x02000000 /* The vma has had "vm_insert_page()" done on it */
165 167
166#ifndef VM_STACK_DEFAULT_FLAGS /* arch can override this */ 168#ifndef VM_STACK_DEFAULT_FLAGS /* arch can override this */
167#define VM_STACK_DEFAULT_FLAGS VM_DATA_DEFAULT_FLAGS 169#define VM_STACK_DEFAULT_FLAGS VM_DATA_DEFAULT_FLAGS
@@ -206,12 +208,6 @@ struct vm_operations_struct {
206struct mmu_gather; 208struct mmu_gather;
207struct inode; 209struct inode;
208 210
209#ifdef ARCH_HAS_ATOMIC_UNSIGNED
210typedef unsigned page_flags_t;
211#else
212typedef unsigned long page_flags_t;
213#endif
214
215/* 211/*
216 * Each physical page in the system has a struct page associated with 212 * Each physical page in the system has a struct page associated with
217 * it to keep track of whatever it is we are using the page for at the 213 * it to keep track of whatever it is we are using the page for at the
@@ -219,7 +215,7 @@ typedef unsigned long page_flags_t;
219 * a page. 215 * a page.
220 */ 216 */
221struct page { 217struct page {
222 page_flags_t flags; /* Atomic flags, some possibly 218 unsigned long flags; /* Atomic flags, some possibly
223 * updated asynchronously */ 219 * updated asynchronously */
224 atomic_t _count; /* Usage count, see below. */ 220 atomic_t _count; /* Usage count, see below. */
225 atomic_t _mapcount; /* Count of ptes mapped in mms, 221 atomic_t _mapcount; /* Count of ptes mapped in mms,
@@ -317,8 +313,6 @@ struct page {
317 313
318extern void FASTCALL(__page_cache_release(struct page *)); 314extern void FASTCALL(__page_cache_release(struct page *));
319 315
320#ifdef CONFIG_HUGETLB_PAGE
321
322static inline int page_count(struct page *page) 316static inline int page_count(struct page *page)
323{ 317{
324 if (PageCompound(page)) 318 if (PageCompound(page))
@@ -335,23 +329,6 @@ static inline void get_page(struct page *page)
335 329
336void put_page(struct page *page); 330void put_page(struct page *page);
337 331
338#else /* CONFIG_HUGETLB_PAGE */
339
340#define page_count(p) (atomic_read(&(p)->_count) + 1)
341
342static inline void get_page(struct page *page)
343{
344 atomic_inc(&page->_count);
345}
346
347static inline void put_page(struct page *page)
348{
349 if (put_page_testzero(page))
350 __page_cache_release(page);
351}
352
353#endif /* CONFIG_HUGETLB_PAGE */
354
355/* 332/*
356 * Multiple processes may "see" the same page. E.g. for untouched 333 * Multiple processes may "see" the same page. E.g. for untouched
357 * mappings of /dev/null, all processes see the same page full of 334 * mappings of /dev/null, all processes see the same page full of
@@ -435,7 +412,7 @@ static inline void put_page(struct page *page)
435#endif 412#endif
436 413
437/* Page flags: | [SECTION] | [NODE] | ZONE | ... | FLAGS | */ 414/* Page flags: | [SECTION] | [NODE] | ZONE | ... | FLAGS | */
438#define SECTIONS_PGOFF ((sizeof(page_flags_t)*8) - SECTIONS_WIDTH) 415#define SECTIONS_PGOFF ((sizeof(unsigned long)*8) - SECTIONS_WIDTH)
439#define NODES_PGOFF (SECTIONS_PGOFF - NODES_WIDTH) 416#define NODES_PGOFF (SECTIONS_PGOFF - NODES_WIDTH)
440#define ZONES_PGOFF (NODES_PGOFF - ZONES_WIDTH) 417#define ZONES_PGOFF (NODES_PGOFF - ZONES_WIDTH)
441 418
@@ -688,6 +665,7 @@ struct zap_details {
688 unsigned long truncate_count; /* Compare vm_truncate_count */ 665 unsigned long truncate_count; /* Compare vm_truncate_count */
689}; 666};
690 667
668struct page *vm_normal_page(struct vm_area_struct *, unsigned long, pte_t);
691unsigned long zap_page_range(struct vm_area_struct *vma, unsigned long address, 669unsigned long zap_page_range(struct vm_area_struct *vma, unsigned long address,
692 unsigned long size, struct zap_details *); 670 unsigned long size, struct zap_details *);
693unsigned long unmap_vmas(struct mmu_gather **tlb, 671unsigned long unmap_vmas(struct mmu_gather **tlb,
@@ -764,6 +742,8 @@ struct shrinker;
764extern struct shrinker *set_shrinker(int, shrinker_t); 742extern struct shrinker *set_shrinker(int, shrinker_t);
765extern void remove_shrinker(struct shrinker *shrinker); 743extern void remove_shrinker(struct shrinker *shrinker);
766 744
745extern pte_t *FASTCALL(get_locked_pte(struct mm_struct *mm, unsigned long addr, spinlock_t **ptl));
746
767int __pud_alloc(struct mm_struct *mm, pgd_t *pgd, unsigned long address); 747int __pud_alloc(struct mm_struct *mm, pgd_t *pgd, unsigned long address);
768int __pmd_alloc(struct mm_struct *mm, pud_t *pud, unsigned long address); 748int __pmd_alloc(struct mm_struct *mm, pud_t *pud, unsigned long address);
769int __pte_alloc(struct mm_struct *mm, pmd_t *pmd, unsigned long address); 749int __pte_alloc(struct mm_struct *mm, pmd_t *pmd, unsigned long address);
@@ -946,7 +926,9 @@ unsigned long max_sane_readahead(unsigned long nr);
946 926
947/* Do stack extension */ 927/* Do stack extension */
948extern int expand_stack(struct vm_area_struct *vma, unsigned long address); 928extern int expand_stack(struct vm_area_struct *vma, unsigned long address);
929#ifdef CONFIG_IA64
949extern int expand_upwards(struct vm_area_struct *vma, unsigned long address); 930extern int expand_upwards(struct vm_area_struct *vma, unsigned long address);
931#endif
950 932
951/* Look up the first VMA which satisfies addr < vm_end, NULL if none. */ 933/* Look up the first VMA which satisfies addr < vm_end, NULL if none. */
952extern struct vm_area_struct * find_vma(struct mm_struct * mm, unsigned long addr); 934extern struct vm_area_struct * find_vma(struct mm_struct * mm, unsigned long addr);
@@ -974,8 +956,9 @@ struct page *vmalloc_to_page(void *addr);
974unsigned long vmalloc_to_pfn(void *addr); 956unsigned long vmalloc_to_pfn(void *addr);
975int remap_pfn_range(struct vm_area_struct *, unsigned long addr, 957int remap_pfn_range(struct vm_area_struct *, unsigned long addr,
976 unsigned long pfn, unsigned long size, pgprot_t); 958 unsigned long pfn, unsigned long size, pgprot_t);
959int vm_insert_page(struct vm_area_struct *, unsigned long addr, struct page *);
977 960
978struct page *follow_page(struct mm_struct *, unsigned long address, 961struct page *follow_page(struct vm_area_struct *, unsigned long address,
979 unsigned int foll_flags); 962 unsigned int foll_flags);
980#define FOLL_WRITE 0x01 /* check pte is writable */ 963#define FOLL_WRITE 0x01 /* check pte is writable */
981#define FOLL_TOUCH 0x02 /* mark page accessed */ 964#define FOLL_TOUCH 0x02 /* mark page accessed */
diff --git a/include/linux/mmc/protocol.h b/include/linux/mmc/protocol.h
index f819cae92266..a14dc306545b 100644
--- a/include/linux/mmc/protocol.h
+++ b/include/linux/mmc/protocol.h
@@ -63,7 +63,7 @@
63 /* class 5 */ 63 /* class 5 */
64#define MMC_ERASE_GROUP_START 35 /* ac [31:0] data addr R1 */ 64#define MMC_ERASE_GROUP_START 35 /* ac [31:0] data addr R1 */
65#define MMC_ERASE_GROUP_END 36 /* ac [31:0] data addr R1 */ 65#define MMC_ERASE_GROUP_END 36 /* ac [31:0] data addr R1 */
66#define MMC_ERASE 37 /* ac R1b */ 66#define MMC_ERASE 38 /* ac R1b */
67 67
68 /* class 9 */ 68 /* class 9 */
69#define MMC_FAST_IO 39 /* ac <Complex> R4 */ 69#define MMC_FAST_IO 39 /* ac <Complex> R4 */
@@ -74,7 +74,7 @@
74 74
75 /* class 8 */ 75 /* class 8 */
76#define MMC_APP_CMD 55 /* ac [31:16] RCA R1 */ 76#define MMC_APP_CMD 55 /* ac [31:16] RCA R1 */
77#define MMC_GEN_CMD 56 /* adtc [0] RD/WR R1b */ 77#define MMC_GEN_CMD 56 /* adtc [0] RD/WR R1 */
78 78
79/* SD commands type argument response */ 79/* SD commands type argument response */
80 /* class 8 */ 80 /* class 8 */
diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h
index f5fa3082fd6a..9f22090df7dd 100644
--- a/include/linux/mmzone.h
+++ b/include/linux/mmzone.h
@@ -71,10 +71,11 @@ struct per_cpu_pageset {
71#endif 71#endif
72 72
73#define ZONE_DMA 0 73#define ZONE_DMA 0
74#define ZONE_NORMAL 1 74#define ZONE_DMA32 1
75#define ZONE_HIGHMEM 2 75#define ZONE_NORMAL 2
76#define ZONE_HIGHMEM 3
76 77
77#define MAX_NR_ZONES 3 /* Sync this with ZONES_SHIFT */ 78#define MAX_NR_ZONES 4 /* Sync this with ZONES_SHIFT */
78#define ZONES_SHIFT 2 /* ceil(log2(MAX_NR_ZONES)) */ 79#define ZONES_SHIFT 2 /* ceil(log2(MAX_NR_ZONES)) */
79 80
80 81
@@ -90,27 +91,18 @@ struct per_cpu_pageset {
90 * will be a maximum of 4 (2 ** 2) zonelists, for 3 modifiers there will 91 * will be a maximum of 4 (2 ** 2) zonelists, for 3 modifiers there will
91 * be 8 (2 ** 3) zonelists. GFP_ZONETYPES defines the number of possible 92 * be 8 (2 ** 3) zonelists. GFP_ZONETYPES defines the number of possible
92 * combinations of zone modifiers in "zone modifier space". 93 * combinations of zone modifiers in "zone modifier space".
94 *
95 * NOTE! Make sure this matches the zones in <linux/gfp.h>
93 */ 96 */
94#define GFP_ZONEMASK 0x03 97#define GFP_ZONEMASK 0x07
95/* 98#define GFP_ZONETYPES 5
96 * As an optimisation any zone modifier bits which are only valid when
97 * no other zone modifier bits are set (loners) should be placed in
98 * the highest order bits of this field. This allows us to reduce the
99 * extent of the zonelists thus saving space. For example in the case
100 * of three zone modifier bits, we could require up to eight zonelists.
101 * If the left most zone modifier is a "loner" then the highest valid
102 * zonelist would be four allowing us to allocate only five zonelists.
103 * Use the first form when the left most bit is not a "loner", otherwise
104 * use the second.
105 */
106/* #define GFP_ZONETYPES (GFP_ZONEMASK + 1) */ /* Non-loner */
107#define GFP_ZONETYPES ((GFP_ZONEMASK + 1) / 2 + 1) /* Loner */
108 99
109/* 100/*
110 * On machines where it is needed (eg PCs) we divide physical memory 101 * On machines where it is needed (eg PCs) we divide physical memory
111 * into multiple physical zones. On a PC we have 3 zones: 102 * into multiple physical zones. On a PC we have 4 zones:
112 * 103 *
113 * ZONE_DMA < 16 MB ISA DMA capable memory 104 * ZONE_DMA < 16 MB ISA DMA capable memory
105 * ZONE_DMA32 0 MB Empty
114 * ZONE_NORMAL 16-896 MB direct mapped by the kernel 106 * ZONE_NORMAL 16-896 MB direct mapped by the kernel
115 * ZONE_HIGHMEM > 896 MB only page cache and user processes 107 * ZONE_HIGHMEM > 896 MB only page cache and user processes
116 */ 108 */
@@ -329,7 +321,7 @@ void get_zone_counts(unsigned long *active, unsigned long *inactive,
329void build_all_zonelists(void); 321void build_all_zonelists(void);
330void wakeup_kswapd(struct zone *zone, int order); 322void wakeup_kswapd(struct zone *zone, int order);
331int zone_watermark_ok(struct zone *z, int order, unsigned long mark, 323int zone_watermark_ok(struct zone *z, int order, unsigned long mark,
332 int alloc_type, int can_try_harder, gfp_t gfp_high); 324 int classzone_idx, int alloc_flags);
333 325
334#ifdef CONFIG_HAVE_MEMORY_PRESENT 326#ifdef CONFIG_HAVE_MEMORY_PRESENT
335void memory_present(int nid, unsigned long start, unsigned long end); 327void memory_present(int nid, unsigned long start, unsigned long end);
@@ -433,7 +425,9 @@ int lowmem_reserve_ratio_sysctl_handler(struct ctl_table *, int, struct file *,
433 425
434#include <linux/topology.h> 426#include <linux/topology.h>
435/* Returns the number of the current Node. */ 427/* Returns the number of the current Node. */
428#ifndef numa_node_id
436#define numa_node_id() (cpu_to_node(raw_smp_processor_id())) 429#define numa_node_id() (cpu_to_node(raw_smp_processor_id()))
430#endif
437 431
438#ifndef CONFIG_NEED_MULTIPLE_NODES 432#ifndef CONFIG_NEED_MULTIPLE_NODES
439 433
@@ -453,12 +447,12 @@ extern struct pglist_data contig_page_data;
453#include <asm/sparsemem.h> 447#include <asm/sparsemem.h>
454#endif 448#endif
455 449
456#if BITS_PER_LONG == 32 || defined(ARCH_HAS_ATOMIC_UNSIGNED) 450#if BITS_PER_LONG == 32
457/* 451/*
458 * with 32 bit page->flags field, we reserve 8 bits for node/zone info. 452 * with 32 bit page->flags field, we reserve 9 bits for node/zone info.
459 * there are 3 zones (2 bits) and this leaves 8-2=6 bits for nodes. 453 * there are 4 zones (3 bits) and this leaves 9-3=6 bits for nodes.
460 */ 454 */
461#define FLAGS_RESERVED 8 455#define FLAGS_RESERVED 9
462 456
463#elif BITS_PER_LONG == 64 457#elif BITS_PER_LONG == 64
464/* 458/*
diff --git a/include/linux/mtd/cfi.h b/include/linux/mtd/cfi.h
index 3c9ea4b7adda..23a568910341 100644
--- a/include/linux/mtd/cfi.h
+++ b/include/linux/mtd/cfi.h
@@ -1,7 +1,7 @@
1 1
2/* Common Flash Interface structures 2/* Common Flash Interface structures
3 * See http://support.intel.com/design/flash/technote/index.htm 3 * See http://support.intel.com/design/flash/technote/index.htm
4 * $Id: cfi.h,v 1.56 2005/11/07 11:14:54 gleixner Exp $ 4 * $Id: cfi.h,v 1.57 2005/11/15 23:28:17 tpoynor Exp $
5 */ 5 */
6 6
7#ifndef __MTD_CFI_H__ 7#ifndef __MTD_CFI_H__
@@ -426,6 +426,22 @@ static inline uint8_t cfi_read_query(struct map_info *map, uint32_t addr)
426 } 426 }
427} 427}
428 428
429static inline uint16_t cfi_read_query16(struct map_info *map, uint32_t addr)
430{
431 map_word val = map_read(map, addr);
432
433 if (map_bankwidth_is_1(map)) {
434 return val.x[0] & 0xff;
435 } else if (map_bankwidth_is_2(map)) {
436 return cfi16_to_cpu(val.x[0]);
437 } else {
438 /* No point in a 64-bit byteswap since that would just be
439 swapping the responses from different chips, and we are
440 only interested in one chip (a representative sample) */
441 return cfi32_to_cpu(val.x[0]);
442 }
443}
444
429static inline void cfi_udelay(int us) 445static inline void cfi_udelay(int us)
430{ 446{
431 if (us >= 1000) { 447 if (us >= 1000) {
diff --git a/include/linux/mtd/onenand.h b/include/linux/mtd/onenand.h
index f1fd4215686a..7419b5fab133 100644
--- a/include/linux/mtd/onenand.h
+++ b/include/linux/mtd/onenand.h
@@ -17,7 +17,6 @@
17#include <linux/mtd/bbm.h> 17#include <linux/mtd/bbm.h>
18 18
19#define MAX_BUFFERRAM 2 19#define MAX_BUFFERRAM 2
20#define MAX_ONENAND_PAGESIZE (2048 + 64)
21 20
22/* Scan and identify a OneNAND device */ 21/* Scan and identify a OneNAND device */
23extern int onenand_scan(struct mtd_info *mtd, int max_chips); 22extern int onenand_scan(struct mtd_info *mtd, int max_chips);
@@ -110,6 +109,7 @@ struct onenand_chip {
110 spinlock_t chip_lock; 109 spinlock_t chip_lock;
111 wait_queue_head_t wq; 110 wait_queue_head_t wq;
112 onenand_state_t state; 111 onenand_state_t state;
112 unsigned char *page_buf;
113 113
114 struct nand_oobinfo *autooob; 114 struct nand_oobinfo *autooob;
115 115
@@ -134,13 +134,12 @@ struct onenand_chip {
134 * Options bits 134 * Options bits
135 */ 135 */
136#define ONENAND_CONT_LOCK (0x0001) 136#define ONENAND_CONT_LOCK (0x0001)
137 137#define ONENAND_PAGEBUF_ALLOC (0x1000)
138 138
139/* 139/*
140 * OneNAND Flash Manufacturer ID Codes 140 * OneNAND Flash Manufacturer ID Codes
141 */ 141 */
142#define ONENAND_MFR_SAMSUNG 0xec 142#define ONENAND_MFR_SAMSUNG 0xec
143#define ONENAND_MFR_UNKNOWN 0x00
144 143
145/** 144/**
146 * struct nand_manufacturers - NAND Flash Manufacturer ID Structure 145 * struct nand_manufacturers - NAND Flash Manufacturer ID Structure
diff --git a/include/linux/n_r3964.h b/include/linux/n_r3964.h
index 2352bcd31a06..db4f3776978a 100644
--- a/include/linux/n_r3964.h
+++ b/include/linux/n_r3964.h
@@ -13,6 +13,10 @@
13 * L. Haag 13 * L. Haag
14 * 14 *
15 * $Log: r3964.h,v $ 15 * $Log: r3964.h,v $
16 * Revision 1.4 2005/12/21 19:54:24 Kurt Huwig <kurt huwig de>
17 * Fixed HZ usage on 2.6 kernels
18 * Removed unnecessary include
19 *
16 * Revision 1.3 2001/03/18 13:02:24 dwmw2 20 * Revision 1.3 2001/03/18 13:02:24 dwmw2
17 * Fix timer usage, use spinlocks properly. 21 * Fix timer usage, use spinlocks properly.
18 * 22 *
@@ -45,9 +49,11 @@
45#define __LINUX_N_R3964_H__ 49#define __LINUX_N_R3964_H__
46 50
47/* line disciplines for r3964 protocol */ 51/* line disciplines for r3964 protocol */
48#include <asm/termios.h>
49 52
50#ifdef __KERNEL__ 53#ifdef __KERNEL__
54
55#include <linux/param.h>
56
51/* 57/*
52 * Common ascii handshake characters: 58 * Common ascii handshake characters:
53 */ 59 */
@@ -58,14 +64,14 @@
58#define NAK 0x15 64#define NAK 0x15
59 65
60/* 66/*
61 * Timeouts (msecs/10 msecs per timer interrupt): 67 * Timeouts (from milliseconds to jiffies)
62 */ 68 */
63 69
64#define R3964_TO_QVZ 550/10 70#define R3964_TO_QVZ ((550)*HZ/1000)
65#define R3964_TO_ZVZ 220/10 71#define R3964_TO_ZVZ ((220)*HZ/1000)
66#define R3964_TO_NO_BUF 400/10 72#define R3964_TO_NO_BUF ((400)*HZ/1000)
67#define R3964_NO_TX_ROOM 100/10 73#define R3964_NO_TX_ROOM ((100)*HZ/1000)
68#define R3964_TO_RX_PANIC 4000/10 74#define R3964_TO_RX_PANIC ((4000)*HZ/1000)
69#define R3964_MAX_RETRIES 5 75#define R3964_MAX_RETRIES 5
70 76
71#endif 77#endif
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
index c6efce4a04a4..936f8b76114e 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -927,6 +927,13 @@ extern int netdev_max_backlog;
927extern int weight_p; 927extern int weight_p;
928extern int netdev_set_master(struct net_device *dev, struct net_device *master); 928extern int netdev_set_master(struct net_device *dev, struct net_device *master);
929extern int skb_checksum_help(struct sk_buff *skb, int inward); 929extern int skb_checksum_help(struct sk_buff *skb, int inward);
930#ifdef CONFIG_BUG
931extern void netdev_rx_csum_fault(struct net_device *dev);
932#else
933static inline void netdev_rx_csum_fault(struct net_device *dev)
934{
935}
936#endif
930/* rx skb timestamps */ 937/* rx skb timestamps */
931extern void net_enable_timestamp(void); 938extern void net_enable_timestamp(void);
932extern void net_disable_timestamp(void); 939extern void net_disable_timestamp(void);
diff --git a/include/linux/netfilter/nfnetlink.h b/include/linux/netfilter/nfnetlink.h
index 72975fa8795d..934a2479f160 100644
--- a/include/linux/netfilter/nfnetlink.h
+++ b/include/linux/netfilter/nfnetlink.h
@@ -112,7 +112,6 @@ struct nfnl_callback
112{ 112{
113 int (*call)(struct sock *nl, struct sk_buff *skb, 113 int (*call)(struct sock *nl, struct sk_buff *skb,
114 struct nlmsghdr *nlh, struct nfattr *cda[], int *errp); 114 struct nlmsghdr *nlh, struct nfattr *cda[], int *errp);
115 kernel_cap_t cap_required; /* capabilities required for this msg */
116 u_int16_t attr_count; /* number of nfattr's */ 115 u_int16_t attr_count; /* number of nfattr's */
117}; 116};
118 117
@@ -154,11 +153,14 @@ extern void nfattr_parse(struct nfattr *tb[], int maxattr,
154 153
155#define nfattr_bad_size(tb, max, cta_min) \ 154#define nfattr_bad_size(tb, max, cta_min) \
156({ int __i, __res = 0; \ 155({ int __i, __res = 0; \
157 for (__i=0; __i<max; __i++) \ 156 for (__i=0; __i<max; __i++) { \
157 if (!cta_min[__i]) \
158 continue; \
158 if (tb[__i] && NFA_PAYLOAD(tb[__i]) < cta_min[__i]){ \ 159 if (tb[__i] && NFA_PAYLOAD(tb[__i]) < cta_min[__i]){ \
159 __res = 1; \ 160 __res = 1; \
160 break; \ 161 break; \
161 } \ 162 } \
163 } \
162 __res; \ 164 __res; \
163}) 165})
164 166
diff --git a/include/linux/netfilter_ipv4/ipt_sctp.h b/include/linux/netfilter_ipv4/ipt_sctp.h
index e93a9ec99fc2..80b3dbacd193 100644
--- a/include/linux/netfilter_ipv4/ipt_sctp.h
+++ b/include/linux/netfilter_ipv4/ipt_sctp.h
@@ -7,8 +7,6 @@
7 7
8#define IPT_SCTP_VALID_FLAGS 0x07 8#define IPT_SCTP_VALID_FLAGS 0x07
9 9
10#define ELEMCOUNT(x) (sizeof(x)/sizeof(x[0]))
11
12 10
13struct ipt_sctp_flag_info { 11struct ipt_sctp_flag_info {
14 u_int8_t chunktype; 12 u_int8_t chunktype;
@@ -59,21 +57,21 @@ struct ipt_sctp_info {
59#define SCTP_CHUNKMAP_RESET(chunkmap) \ 57#define SCTP_CHUNKMAP_RESET(chunkmap) \
60 do { \ 58 do { \
61 int i; \ 59 int i; \
62 for (i = 0; i < ELEMCOUNT(chunkmap); i++) \ 60 for (i = 0; i < ARRAY_SIZE(chunkmap); i++) \
63 chunkmap[i] = 0; \ 61 chunkmap[i] = 0; \
64 } while (0) 62 } while (0)
65 63
66#define SCTP_CHUNKMAP_SET_ALL(chunkmap) \ 64#define SCTP_CHUNKMAP_SET_ALL(chunkmap) \
67 do { \ 65 do { \
68 int i; \ 66 int i; \
69 for (i = 0; i < ELEMCOUNT(chunkmap); i++) \ 67 for (i = 0; i < ARRAY_SIZE(chunkmap); i++) \
70 chunkmap[i] = ~0; \ 68 chunkmap[i] = ~0; \
71 } while (0) 69 } while (0)
72 70
73#define SCTP_CHUNKMAP_COPY(destmap, srcmap) \ 71#define SCTP_CHUNKMAP_COPY(destmap, srcmap) \
74 do { \ 72 do { \
75 int i; \ 73 int i; \
76 for (i = 0; i < ELEMCOUNT(chunkmap); i++) \ 74 for (i = 0; i < ARRAY_SIZE(chunkmap); i++) \
77 destmap[i] = srcmap[i]; \ 75 destmap[i] = srcmap[i]; \
78 } while (0) 76 } while (0)
79 77
@@ -81,7 +79,7 @@ struct ipt_sctp_info {
81({ \ 79({ \
82 int i; \ 80 int i; \
83 int flag = 1; \ 81 int flag = 1; \
84 for (i = 0; i < ELEMCOUNT(chunkmap); i++) { \ 82 for (i = 0; i < ARRAY_SIZE(chunkmap); i++) { \
85 if (chunkmap[i]) { \ 83 if (chunkmap[i]) { \
86 flag = 0; \ 84 flag = 0; \
87 break; \ 85 break; \
@@ -94,7 +92,7 @@ struct ipt_sctp_info {
94({ \ 92({ \
95 int i; \ 93 int i; \
96 int flag = 1; \ 94 int flag = 1; \
97 for (i = 0; i < ELEMCOUNT(chunkmap); i++) { \ 95 for (i = 0; i < ARRAY_SIZE(chunkmap); i++) { \
98 if (chunkmap[i] != ~0) { \ 96 if (chunkmap[i] != ~0) { \
99 flag = 0; \ 97 flag = 0; \
100 break; \ 98 break; \
diff --git a/include/linux/nfs_fs.h b/include/linux/nfs_fs.h
index 12787a9b0259..2516adeccecf 100644
--- a/include/linux/nfs_fs.h
+++ b/include/linux/nfs_fs.h
@@ -291,6 +291,7 @@ static inline int nfs_verify_change_attribute(struct inode *inode, unsigned long
291/* 291/*
292 * linux/fs/nfs/inode.c 292 * linux/fs/nfs/inode.c
293 */ 293 */
294extern int nfs_sync_mapping(struct address_space *mapping);
294extern void nfs_zap_caches(struct inode *); 295extern void nfs_zap_caches(struct inode *);
295extern struct inode *nfs_fhget(struct super_block *, struct nfs_fh *, 296extern struct inode *nfs_fhget(struct super_block *, struct nfs_fh *,
296 struct nfs_fattr *); 297 struct nfs_fattr *);
diff --git a/include/linux/page-flags.h b/include/linux/page-flags.h
index f34767c5fc79..343083fec258 100644
--- a/include/linux/page-flags.h
+++ b/include/linux/page-flags.h
@@ -287,11 +287,7 @@ extern void __mod_page_state(unsigned long offset, unsigned long delta);
287#define ClearPageReclaim(page) clear_bit(PG_reclaim, &(page)->flags) 287#define ClearPageReclaim(page) clear_bit(PG_reclaim, &(page)->flags)
288#define TestClearPageReclaim(page) test_and_clear_bit(PG_reclaim, &(page)->flags) 288#define TestClearPageReclaim(page) test_and_clear_bit(PG_reclaim, &(page)->flags)
289 289
290#ifdef CONFIG_HUGETLB_PAGE
291#define PageCompound(page) test_bit(PG_compound, &(page)->flags) 290#define PageCompound(page) test_bit(PG_compound, &(page)->flags)
292#else
293#define PageCompound(page) 0
294#endif
295#define SetPageCompound(page) set_bit(PG_compound, &(page)->flags) 291#define SetPageCompound(page) set_bit(PG_compound, &(page)->flags)
296#define ClearPageCompound(page) clear_bit(PG_compound, &(page)->flags) 292#define ClearPageCompound(page) clear_bit(PG_compound, &(page)->flags)
297 293
diff --git a/include/linux/pagemap.h b/include/linux/pagemap.h
index ba6c310a055f..ee700c6eb442 100644
--- a/include/linux/pagemap.h
+++ b/include/linux/pagemap.h
@@ -53,12 +53,12 @@ void release_pages(struct page **pages, int nr, int cold);
53 53
54static inline struct page *page_cache_alloc(struct address_space *x) 54static inline struct page *page_cache_alloc(struct address_space *x)
55{ 55{
56 return alloc_pages(mapping_gfp_mask(x)|__GFP_NORECLAIM, 0); 56 return alloc_pages(mapping_gfp_mask(x), 0);
57} 57}
58 58
59static inline struct page *page_cache_alloc_cold(struct address_space *x) 59static inline struct page *page_cache_alloc_cold(struct address_space *x)
60{ 60{
61 return alloc_pages(mapping_gfp_mask(x)|__GFP_COLD|__GFP_NORECLAIM, 0); 61 return alloc_pages(mapping_gfp_mask(x)|__GFP_COLD, 0);
62} 62}
63 63
64typedef int filler_t(void *, struct page *); 64typedef int filler_t(void *, struct page *);
diff --git a/include/linux/parport_pc.h b/include/linux/parport_pc.h
index 7825c76cbd00..c6f762470879 100644
--- a/include/linux/parport_pc.h
+++ b/include/linux/parport_pc.h
@@ -86,7 +86,7 @@ extern __inline__ void dump_parport_state (char *str, struct parport *p)
86 unsigned char dcr = inb (CONTROL (p)); 86 unsigned char dcr = inb (CONTROL (p));
87 unsigned char dsr = inb (STATUS (p)); 87 unsigned char dsr = inb (STATUS (p));
88 static char *ecr_modes[] = {"SPP", "PS2", "PPFIFO", "ECP", "xXx", "yYy", "TST", "CFG"}; 88 static char *ecr_modes[] = {"SPP", "PS2", "PPFIFO", "ECP", "xXx", "yYy", "TST", "CFG"};
89 const struct parport_pc_private *priv = (parport_pc_private *)p->physport->private_data; 89 const struct parport_pc_private *priv = p->physport->private_data;
90 int i; 90 int i;
91 91
92 printk (KERN_DEBUG "*** parport state (%s): ecr=[%s", str, ecr_modes[(ecr & 0xe0) >> 5]); 92 printk (KERN_DEBUG "*** parport state (%s): ecr=[%s", str, ecr_modes[(ecr & 0xe0) >> 5]);
diff --git a/include/linux/pci-acpi.h b/include/linux/pci-acpi.h
index 857126a36ecc..4877e35ae202 100644
--- a/include/linux/pci-acpi.h
+++ b/include/linux/pci-acpi.h
@@ -47,14 +47,15 @@
47 OSC_PCI_EXPRESS_CAP_STRUCTURE_CONTROL) 47 OSC_PCI_EXPRESS_CAP_STRUCTURE_CONTROL)
48 48
49#ifdef CONFIG_ACPI 49#ifdef CONFIG_ACPI
50extern acpi_status pci_osc_control_set(u32 flags); 50extern acpi_status pci_osc_control_set(acpi_handle handle, u32 flags);
51extern acpi_status pci_osc_support_set(u32 flags); 51extern acpi_status pci_osc_support_set(u32 flags);
52#else 52#else
53#if !defined(acpi_status) 53#if !defined(acpi_status)
54typedef u32 acpi_status; 54typedef u32 acpi_status;
55#define AE_ERROR (acpi_status) (0x0001) 55#define AE_ERROR (acpi_status) (0x0001)
56#endif 56#endif
57static inline acpi_status pci_osc_control_set(u32 flags) {return AE_ERROR;} 57static inline acpi_status pci_osc_control_set(acpi_handle handle, u32 flags)
58{return AE_ERROR;}
58static inline acpi_status pci_osc_support_set(u32 flags) {return AE_ERROR;} 59static inline acpi_status pci_osc_support_set(u32 flags) {return AE_ERROR;}
59#endif 60#endif
60 61
diff --git a/include/linux/pci.h b/include/linux/pci.h
index 3596ac94ecff..de690ca73d58 100644
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
@@ -236,7 +236,6 @@ struct module;
236struct pci_driver { 236struct pci_driver {
237 struct list_head node; 237 struct list_head node;
238 char *name; 238 char *name;
239 struct module *owner;
240 const struct pci_device_id *id_table; /* must be non-NULL for probe to be called */ 239 const struct pci_device_id *id_table; /* must be non-NULL for probe to be called */
241 int (*probe) (struct pci_dev *dev, const struct pci_device_id *id); /* New device inserted */ 240 int (*probe) (struct pci_dev *dev, const struct pci_device_id *id); /* New device inserted */
242 void (*remove) (struct pci_dev *dev); /* Device removed (NULL if not a hot-plug capable driver) */ 241 void (*remove) (struct pci_dev *dev); /* Device removed (NULL if not a hot-plug capable driver) */
@@ -338,6 +337,7 @@ struct pci_dev *pci_find_device (unsigned int vendor, unsigned int device, const
338struct pci_dev *pci_find_device_reverse (unsigned int vendor, unsigned int device, const struct pci_dev *from); 337struct pci_dev *pci_find_device_reverse (unsigned int vendor, unsigned int device, const struct pci_dev *from);
339struct pci_dev *pci_find_slot (unsigned int bus, unsigned int devfn); 338struct pci_dev *pci_find_slot (unsigned int bus, unsigned int devfn);
340int pci_find_capability (struct pci_dev *dev, int cap); 339int pci_find_capability (struct pci_dev *dev, int cap);
340int pci_find_next_capability (struct pci_dev *dev, u8 pos, int cap);
341int pci_find_ext_capability (struct pci_dev *dev, int cap); 341int pci_find_ext_capability (struct pci_dev *dev, int cap);
342struct pci_bus * pci_find_next_bus(const struct pci_bus *from); 342struct pci_bus * pci_find_next_bus(const struct pci_bus *from);
343 343
@@ -432,8 +432,13 @@ int pci_bus_alloc_resource(struct pci_bus *bus, struct resource *res,
432 void *alignf_data); 432 void *alignf_data);
433void pci_enable_bridges(struct pci_bus *bus); 433void pci_enable_bridges(struct pci_bus *bus);
434 434
435/* New-style probing supporting hot-pluggable devices */ 435/* Proper probing supporting hot-pluggable devices */
436int pci_register_driver(struct pci_driver *); 436int __pci_register_driver(struct pci_driver *, struct module *);
437static inline int pci_register_driver(struct pci_driver *driver)
438{
439 return __pci_register_driver(driver, THIS_MODULE);
440}
441
437void pci_unregister_driver(struct pci_driver *); 442void pci_unregister_driver(struct pci_driver *);
438void pci_remove_behind_bridge(struct pci_dev *); 443void pci_remove_behind_bridge(struct pci_dev *);
439struct pci_driver *pci_dev_driver(const struct pci_dev *); 444struct pci_driver *pci_dev_driver(const struct pci_dev *);
@@ -547,9 +552,11 @@ static inline int pci_enable_device(struct pci_dev *dev) { return -EIO; }
547static inline void pci_disable_device(struct pci_dev *dev) { } 552static inline void pci_disable_device(struct pci_dev *dev) { }
548static inline int pci_set_dma_mask(struct pci_dev *dev, u64 mask) { return -EIO; } 553static inline int pci_set_dma_mask(struct pci_dev *dev, u64 mask) { return -EIO; }
549static inline int pci_assign_resource(struct pci_dev *dev, int i) { return -EBUSY;} 554static inline int pci_assign_resource(struct pci_dev *dev, int i) { return -EBUSY;}
555static inline int __pci_register_driver(struct pci_driver *drv, struct module *owner) { return 0;}
550static inline int pci_register_driver(struct pci_driver *drv) { return 0;} 556static inline int pci_register_driver(struct pci_driver *drv) { return 0;}
551static inline void pci_unregister_driver(struct pci_driver *drv) { } 557static inline void pci_unregister_driver(struct pci_driver *drv) { }
552static inline int pci_find_capability (struct pci_dev *dev, int cap) {return 0; } 558static inline int pci_find_capability (struct pci_dev *dev, int cap) {return 0; }
559static inline int pci_find_next_capability (struct pci_dev *dev, u8 post, int cap) { return 0; }
553static inline int pci_find_ext_capability (struct pci_dev *dev, int cap) {return 0; } 560static inline int pci_find_ext_capability (struct pci_dev *dev, int cap) {return 0; }
554static inline const struct pci_device_id *pci_match_device(const struct pci_device_id *ids, const struct pci_dev *dev) { return NULL; } 561static inline const struct pci_device_id *pci_match_device(const struct pci_device_id *ids, const struct pci_dev *dev) { return NULL; }
555 562
diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h
index 4e06eb0f4451..4db67b3b05cc 100644
--- a/include/linux/pci_ids.h
+++ b/include/linux/pci_ids.h
@@ -442,6 +442,7 @@
442#define PCI_DEVICE_ID_IBM_SNIPE 0x0180 442#define PCI_DEVICE_ID_IBM_SNIPE 0x0180
443#define PCI_DEVICE_ID_IBM_CITRINE 0x028C 443#define PCI_DEVICE_ID_IBM_CITRINE 0x028C
444#define PCI_DEVICE_ID_IBM_GEMSTONE 0xB166 444#define PCI_DEVICE_ID_IBM_GEMSTONE 0xB166
445#define PCI_DEVICE_ID_IBM_OBSIDIAN 0x02BD
445#define PCI_DEVICE_ID_IBM_ICOM_DEV_ID_1 0x0031 446#define PCI_DEVICE_ID_IBM_ICOM_DEV_ID_1 0x0031
446#define PCI_DEVICE_ID_IBM_ICOM_DEV_ID_2 0x0219 447#define PCI_DEVICE_ID_IBM_ICOM_DEV_ID_2 0x0219
447#define PCI_DEVICE_ID_IBM_ICOM_V2_TWO_PORTS_RVX 0x021A 448#define PCI_DEVICE_ID_IBM_ICOM_V2_TWO_PORTS_RVX 0x021A
@@ -619,6 +620,7 @@
619#define PCI_DEVICE_ID_SI_961 0x0961 620#define PCI_DEVICE_ID_SI_961 0x0961
620#define PCI_DEVICE_ID_SI_962 0x0962 621#define PCI_DEVICE_ID_SI_962 0x0962
621#define PCI_DEVICE_ID_SI_963 0x0963 622#define PCI_DEVICE_ID_SI_963 0x0963
623#define PCI_DEVICE_ID_SI_965 0x0965
622#define PCI_DEVICE_ID_SI_5511 0x5511 624#define PCI_DEVICE_ID_SI_5511 0x5511
623#define PCI_DEVICE_ID_SI_5513 0x5513 625#define PCI_DEVICE_ID_SI_5513 0x5513
624#define PCI_DEVICE_ID_SI_5518 0x5518 626#define PCI_DEVICE_ID_SI_5518 0x5518
@@ -804,6 +806,10 @@
804#define PCI_DEVICE_ID_APPLE_SH_SUNGEM 0x0051 806#define PCI_DEVICE_ID_APPLE_SH_SUNGEM 0x0051
805#define PCI_DEVICE_ID_APPLE_U3L_AGP 0x0058 807#define PCI_DEVICE_ID_APPLE_U3L_AGP 0x0058
806#define PCI_DEVICE_ID_APPLE_U3H_AGP 0x0059 808#define PCI_DEVICE_ID_APPLE_U3H_AGP 0x0059
809#define PCI_DEVICE_ID_APPLE_IPID2_AGP 0x0066
810#define PCI_DEVICE_ID_APPLE_IPID2_ATA 0x0069
811#define PCI_DEVICE_ID_APPLE_IPID2_FW 0x006a
812#define PCI_DEVICE_ID_APPLE_IPID2_GMAC 0x006b
807#define PCI_DEVICE_ID_APPLE_TIGON3 0x1645 813#define PCI_DEVICE_ID_APPLE_TIGON3 0x1645
808 814
809#define PCI_VENDOR_ID_YAMAHA 0x1073 815#define PCI_VENDOR_ID_YAMAHA 0x1073
@@ -1193,6 +1199,7 @@
1193#define PCI_DEVICE_ID_VIA_3269_0 0x0269 1199#define PCI_DEVICE_ID_VIA_3269_0 0x0269
1194#define PCI_DEVICE_ID_VIA_K8T800PRO_0 0x0282 1200#define PCI_DEVICE_ID_VIA_K8T800PRO_0 0x0282
1195#define PCI_DEVICE_ID_VIA_8363_0 0x0305 1201#define PCI_DEVICE_ID_VIA_8363_0 0x0305
1202#define PCI_DEVICE_ID_VIA_P4M800CE 0x0314
1196#define PCI_DEVICE_ID_VIA_8371_0 0x0391 1203#define PCI_DEVICE_ID_VIA_8371_0 0x0391
1197#define PCI_DEVICE_ID_VIA_8501_0 0x0501 1204#define PCI_DEVICE_ID_VIA_8501_0 0x0501
1198#define PCI_DEVICE_ID_VIA_82C561 0x0561 1205#define PCI_DEVICE_ID_VIA_82C561 0x0561
@@ -1229,6 +1236,7 @@
1229#define PCI_DEVICE_ID_VIA_8703_51_0 0x3148 1236#define PCI_DEVICE_ID_VIA_8703_51_0 0x3148
1230#define PCI_DEVICE_ID_VIA_8237_SATA 0x3149 1237#define PCI_DEVICE_ID_VIA_8237_SATA 0x3149
1231#define PCI_DEVICE_ID_VIA_XN266 0x3156 1238#define PCI_DEVICE_ID_VIA_XN266 0x3156
1239#define PCI_DEVICE_ID_VIA_6410 0x3164
1232#define PCI_DEVICE_ID_VIA_8754C_0 0x3168 1240#define PCI_DEVICE_ID_VIA_8754C_0 0x3168
1233#define PCI_DEVICE_ID_VIA_8235 0x3177 1241#define PCI_DEVICE_ID_VIA_8235 0x3177
1234#define PCI_DEVICE_ID_VIA_8385_0 0x3188 1242#define PCI_DEVICE_ID_VIA_8385_0 0x3188
@@ -1236,6 +1244,7 @@
1236#define PCI_DEVICE_ID_VIA_8378_0 0x3205 1244#define PCI_DEVICE_ID_VIA_8378_0 0x3205
1237#define PCI_DEVICE_ID_VIA_8783_0 0x3208 1245#define PCI_DEVICE_ID_VIA_8783_0 0x3208
1238#define PCI_DEVICE_ID_VIA_8237 0x3227 1246#define PCI_DEVICE_ID_VIA_8237 0x3227
1247#define PCI_DEVICE_ID_VIA_8251 0x3287
1239#define PCI_DEVICE_ID_VIA_3296_0 0x0296 1248#define PCI_DEVICE_ID_VIA_3296_0 0x0296
1240#define PCI_DEVICE_ID_VIA_8231 0x8231 1249#define PCI_DEVICE_ID_VIA_8231 0x8231
1241#define PCI_DEVICE_ID_VIA_8231_4 0x8235 1250#define PCI_DEVICE_ID_VIA_8231_4 0x8235
@@ -1396,6 +1405,7 @@
1396#define PCI_SUBDEVICE_ID_KEYSPAN_SX2 0x5334 1405#define PCI_SUBDEVICE_ID_KEYSPAN_SX2 0x5334
1397 1406
1398#define PCI_VENDOR_ID_MARVELL 0x11ab 1407#define PCI_VENDOR_ID_MARVELL 0x11ab
1408#define PCI_DEVICE_ID_MARVELL_GT64111 0x4146
1399#define PCI_DEVICE_ID_MARVELL_GT64260 0x6430 1409#define PCI_DEVICE_ID_MARVELL_GT64260 0x6430
1400#define PCI_DEVICE_ID_MARVELL_MV64360 0x6460 1410#define PCI_DEVICE_ID_MARVELL_MV64360 0x6460
1401#define PCI_DEVICE_ID_MARVELL_MV64460 0x6480 1411#define PCI_DEVICE_ID_MARVELL_MV64460 0x6480
@@ -2147,6 +2157,7 @@
2147#define PCI_DEVICE_ID_ADAPTEC2_7899B 0x00c1 2157#define PCI_DEVICE_ID_ADAPTEC2_7899B 0x00c1
2148#define PCI_DEVICE_ID_ADAPTEC2_7899D 0x00c3 2158#define PCI_DEVICE_ID_ADAPTEC2_7899D 0x00c3
2149#define PCI_DEVICE_ID_ADAPTEC2_7899P 0x00cf 2159#define PCI_DEVICE_ID_ADAPTEC2_7899P 0x00cf
2160#define PCI_DEVICE_ID_ADAPTEC2_OBSIDIAN 0x0500
2150#define PCI_DEVICE_ID_ADAPTEC2_SCAMP 0x0503 2161#define PCI_DEVICE_ID_ADAPTEC2_SCAMP 0x0503
2151 2162
2152 2163
diff --git a/include/linux/percpu.h b/include/linux/percpu.h
index 5451eb1e781d..fb8d2d24e4bb 100644
--- a/include/linux/percpu.h
+++ b/include/linux/percpu.h
@@ -38,7 +38,7 @@ extern void free_percpu(const void *);
38 38
39#else /* CONFIG_SMP */ 39#else /* CONFIG_SMP */
40 40
41#define per_cpu_ptr(ptr, cpu) (ptr) 41#define per_cpu_ptr(ptr, cpu) ({ (void)(cpu); (ptr); })
42 42
43static inline void *__alloc_percpu(size_t size, size_t align) 43static inline void *__alloc_percpu(size_t size, size_t align)
44{ 44{
diff --git a/include/linux/platform_device.h b/include/linux/platform_device.h
index 1a165b7ae01b..17e336f40b47 100644
--- a/include/linux/platform_device.h
+++ b/include/linux/platform_device.h
@@ -43,4 +43,19 @@ extern int platform_device_add_data(struct platform_device *pdev, void *data, si
43extern int platform_device_add(struct platform_device *pdev); 43extern int platform_device_add(struct platform_device *pdev);
44extern void platform_device_put(struct platform_device *pdev); 44extern void platform_device_put(struct platform_device *pdev);
45 45
46struct platform_driver {
47 int (*probe)(struct platform_device *);
48 int (*remove)(struct platform_device *);
49 void (*shutdown)(struct platform_device *);
50 int (*suspend)(struct platform_device *, pm_message_t state);
51 int (*resume)(struct platform_device *);
52 struct device_driver driver;
53};
54
55extern int platform_driver_register(struct platform_driver *);
56extern void platform_driver_unregister(struct platform_driver *);
57
58#define platform_get_drvdata(_dev) dev_get_drvdata(&(_dev)->dev)
59#define platform_set_drvdata(_dev,data) dev_set_drvdata(&(_dev)->dev, (data))
60
46#endif /* _PLATFORM_DEVICE_H_ */ 61#endif /* _PLATFORM_DEVICE_H_ */
diff --git a/include/linux/pm.h b/include/linux/pm.h
index 1514098d156d..5be87ba3b7ac 100644
--- a/include/linux/pm.h
+++ b/include/linux/pm.h
@@ -94,55 +94,6 @@ struct pm_dev
94 struct list_head entry; 94 struct list_head entry;
95}; 95};
96 96
97#ifdef CONFIG_PM
98
99extern int pm_active;
100
101#define PM_IS_ACTIVE() (pm_active != 0)
102
103/*
104 * Register a device with power management
105 */
106struct pm_dev __deprecated *
107pm_register(pm_dev_t type, unsigned long id, pm_callback callback);
108
109/*
110 * Unregister a device with power management
111 */
112void __deprecated pm_unregister(struct pm_dev *dev);
113
114/*
115 * Unregister all devices with matching callback
116 */
117void __deprecated pm_unregister_all(pm_callback callback);
118
119/*
120 * Send a request to all devices
121 */
122int __deprecated pm_send_all(pm_request_t rqst, void *data);
123
124#else /* CONFIG_PM */
125
126#define PM_IS_ACTIVE() 0
127
128static inline struct pm_dev *pm_register(pm_dev_t type,
129 unsigned long id,
130 pm_callback callback)
131{
132 return NULL;
133}
134
135static inline void pm_unregister(struct pm_dev *dev) {}
136
137static inline void pm_unregister_all(pm_callback callback) {}
138
139static inline int pm_send_all(pm_request_t rqst, void *data)
140{
141 return 0;
142}
143
144#endif /* CONFIG_PM */
145
146/* Functions above this comment are list-based old-style power 97/* Functions above this comment are list-based old-style power
147 * managment. Please avoid using them. */ 98 * managment. Please avoid using them. */
148 99
diff --git a/include/linux/pm_legacy.h b/include/linux/pm_legacy.h
new file mode 100644
index 000000000000..1252b45face1
--- /dev/null
+++ b/include/linux/pm_legacy.h
@@ -0,0 +1,56 @@
1#ifndef __LINUX_PM_LEGACY_H__
2#define __LINUX_PM_LEGACY_H__
3
4#include <linux/config.h>
5
6#ifdef CONFIG_PM_LEGACY
7
8extern int pm_active;
9
10#define PM_IS_ACTIVE() (pm_active != 0)
11
12/*
13 * Register a device with power management
14 */
15struct pm_dev __deprecated *
16pm_register(pm_dev_t type, unsigned long id, pm_callback callback);
17
18/*
19 * Unregister a device with power management
20 */
21void __deprecated pm_unregister(struct pm_dev *dev);
22
23/*
24 * Unregister all devices with matching callback
25 */
26void __deprecated pm_unregister_all(pm_callback callback);
27
28/*
29 * Send a request to all devices
30 */
31int __deprecated pm_send_all(pm_request_t rqst, void *data);
32
33#else /* CONFIG_PM_LEGACY */
34
35#define PM_IS_ACTIVE() 0
36
37static inline struct pm_dev *pm_register(pm_dev_t type,
38 unsigned long id,
39 pm_callback callback)
40{
41 return NULL;
42}
43
44static inline void pm_unregister(struct pm_dev *dev) {}
45
46static inline void pm_unregister_all(pm_callback callback) {}
47
48static inline int pm_send_all(pm_request_t rqst, void *data)
49{
50 return 0;
51}
52
53#endif /* CONFIG_PM_LEGACY */
54
55#endif /* __LINUX_PM_LEGACY_H__ */
56
diff --git a/include/linux/preempt.h b/include/linux/preempt.h
index dd98c54a23b4..5769d14d1e6a 100644
--- a/include/linux/preempt.h
+++ b/include/linux/preempt.h
@@ -7,6 +7,7 @@
7 */ 7 */
8 8
9#include <linux/config.h> 9#include <linux/config.h>
10#include <linux/thread_info.h>
10#include <linux/linkage.h> 11#include <linux/linkage.h>
11 12
12#ifdef CONFIG_DEBUG_PREEMPT 13#ifdef CONFIG_DEBUG_PREEMPT
@@ -47,6 +48,7 @@ do { \
47#define preempt_enable() \ 48#define preempt_enable() \
48do { \ 49do { \
49 preempt_enable_no_resched(); \ 50 preempt_enable_no_resched(); \
51 barrier(); \
50 preempt_check_resched(); \ 52 preempt_check_resched(); \
51} while (0) 53} while (0)
52 54
diff --git a/include/linux/raid_class.h b/include/linux/raid_class.h
index a71123c28272..48831eac2910 100644
--- a/include/linux/raid_class.h
+++ b/include/linux/raid_class.h
@@ -1,4 +1,9 @@
1/* 1/*
2 * raid_class.h - a generic raid visualisation class
3 *
4 * Copyright (c) 2005 - James Bottomley <James.Bottomley@steeleye.com>
5 *
6 * This file is licensed under GPLv2
2 */ 7 */
3#include <linux/transport_class.h> 8#include <linux/transport_class.h>
4 9
@@ -14,20 +19,35 @@ struct raid_function_template {
14}; 19};
15 20
16enum raid_state { 21enum raid_state {
17 RAID_ACTIVE = 1, 22 RAID_STATE_UNKNOWN = 0,
18 RAID_DEGRADED, 23 RAID_STATE_ACTIVE,
19 RAID_RESYNCING, 24 RAID_STATE_DEGRADED,
20 RAID_OFFLINE, 25 RAID_STATE_RESYNCING,
26 RAID_STATE_OFFLINE,
27};
28
29enum raid_level {
30 RAID_LEVEL_UNKNOWN = 0,
31 RAID_LEVEL_LINEAR,
32 RAID_LEVEL_0,
33 RAID_LEVEL_1,
34 RAID_LEVEL_3,
35 RAID_LEVEL_4,
36 RAID_LEVEL_5,
37 RAID_LEVEL_6,
21}; 38};
22 39
23struct raid_data { 40struct raid_data {
24 struct list_head component_list; 41 struct list_head component_list;
25 int component_count; 42 int component_count;
26 int level; 43 enum raid_level level;
27 enum raid_state state; 44 enum raid_state state;
28 int resync; 45 int resync;
29}; 46};
30 47
48/* resync complete goes from 0 to this */
49#define RAID_MAX_RESYNC (10000)
50
31#define DEFINE_RAID_ATTRIBUTE(type, attr) \ 51#define DEFINE_RAID_ATTRIBUTE(type, attr) \
32static inline void \ 52static inline void \
33raid_set_##attr(struct raid_template *r, struct device *dev, type value) { \ 53raid_set_##attr(struct raid_template *r, struct device *dev, type value) { \
@@ -48,7 +68,7 @@ raid_get_##attr(struct raid_template *r, struct device *dev) { \
48 return rd->attr; \ 68 return rd->attr; \
49} 69}
50 70
51DEFINE_RAID_ATTRIBUTE(int, level) 71DEFINE_RAID_ATTRIBUTE(enum raid_level, level)
52DEFINE_RAID_ATTRIBUTE(int, resync) 72DEFINE_RAID_ATTRIBUTE(int, resync)
53DEFINE_RAID_ATTRIBUTE(enum raid_state, state) 73DEFINE_RAID_ATTRIBUTE(enum raid_state, state)
54 74
diff --git a/include/linux/rcupdate.h b/include/linux/rcupdate.h
index cce25591eec2..a471f3bb713e 100644
--- a/include/linux/rcupdate.h
+++ b/include/linux/rcupdate.h
@@ -100,6 +100,7 @@ struct rcu_data {
100 struct rcu_head *donelist; 100 struct rcu_head *donelist;
101 struct rcu_head **donetail; 101 struct rcu_head **donetail;
102 int cpu; 102 int cpu;
103 struct rcu_head barrier;
103}; 104};
104 105
105DECLARE_PER_CPU(struct rcu_data, rcu_data); 106DECLARE_PER_CPU(struct rcu_data, rcu_data);
@@ -285,6 +286,7 @@ extern void FASTCALL(call_rcu_bh(struct rcu_head *head,
285extern __deprecated_for_modules void synchronize_kernel(void); 286extern __deprecated_for_modules void synchronize_kernel(void);
286extern void synchronize_rcu(void); 287extern void synchronize_rcu(void);
287void synchronize_idle(void); 288void synchronize_idle(void);
289extern void rcu_barrier(void);
288 290
289#endif /* __KERNEL__ */ 291#endif /* __KERNEL__ */
290#endif /* __LINUX_RCUPDATE_H */ 292#endif /* __LINUX_RCUPDATE_H */
diff --git a/include/linux/relayfs_fs.h b/include/linux/relayfs_fs.h
index cfafc3e76bc2..fb7e80737325 100644
--- a/include/linux/relayfs_fs.h
+++ b/include/linux/relayfs_fs.h
@@ -20,9 +20,9 @@
20#include <linux/kref.h> 20#include <linux/kref.h>
21 21
22/* 22/*
23 * Tracks changes to rchan_buf struct 23 * Tracks changes to rchan/rchan_buf structs
24 */ 24 */
25#define RELAYFS_CHANNEL_VERSION 5 25#define RELAYFS_CHANNEL_VERSION 6
26 26
27/* 27/*
28 * Per-cpu relay channel buffer 28 * Per-cpu relay channel buffer
@@ -60,6 +60,7 @@ struct rchan
60 struct rchan_callbacks *cb; /* client callbacks */ 60 struct rchan_callbacks *cb; /* client callbacks */
61 struct kref kref; /* channel refcount */ 61 struct kref kref; /* channel refcount */
62 void *private_data; /* for user-defined data */ 62 void *private_data; /* for user-defined data */
63 size_t last_toobig; /* tried to log event > subbuf size */
63 struct rchan_buf *buf[NR_CPUS]; /* per-cpu channel buffers */ 64 struct rchan_buf *buf[NR_CPUS]; /* per-cpu channel buffers */
64}; 65};
65 66
diff --git a/include/linux/rmap.h b/include/linux/rmap.h
index 35b30e6c8cf8..33261f1d2239 100644
--- a/include/linux/rmap.h
+++ b/include/linux/rmap.h
@@ -89,7 +89,7 @@ static inline void page_dup_rmap(struct page *page)
89/* 89/*
90 * Called from mm/vmscan.c to handle paging out 90 * Called from mm/vmscan.c to handle paging out
91 */ 91 */
92int page_referenced(struct page *, int is_locked, int ignore_token); 92int page_referenced(struct page *, int is_locked);
93int try_to_unmap(struct page *); 93int try_to_unmap(struct page *);
94 94
95/* 95/*
@@ -109,7 +109,7 @@ unsigned long page_address_in_vma(struct page *, struct vm_area_struct *);
109#define anon_vma_prepare(vma) (0) 109#define anon_vma_prepare(vma) (0)
110#define anon_vma_link(vma) do {} while (0) 110#define anon_vma_link(vma) do {} while (0)
111 111
112#define page_referenced(page,l,i) TestClearPageReferenced(page) 112#define page_referenced(page,l) TestClearPageReferenced(page)
113#define try_to_unmap(page) SWAP_FAIL 113#define try_to_unmap(page) SWAP_FAIL
114 114
115#endif /* CONFIG_MMU */ 115#endif /* CONFIG_MMU */
diff --git a/include/linux/rtnetlink.h b/include/linux/rtnetlink.h
index c231e9a08f0b..d50482ba27fe 100644
--- a/include/linux/rtnetlink.h
+++ b/include/linux/rtnetlink.h
@@ -866,6 +866,7 @@ enum rtnetlink_groups {
866#define RTNLGRP_IPV4_MROUTE RTNLGRP_IPV4_MROUTE 866#define RTNLGRP_IPV4_MROUTE RTNLGRP_IPV4_MROUTE
867 RTNLGRP_IPV4_ROUTE, 867 RTNLGRP_IPV4_ROUTE,
868#define RTNLGRP_IPV4_ROUTE RTNLGRP_IPV4_ROUTE 868#define RTNLGRP_IPV4_ROUTE RTNLGRP_IPV4_ROUTE
869 RTNLGRP_NOP1,
869 RTNLGRP_IPV6_IFADDR, 870 RTNLGRP_IPV6_IFADDR,
870#define RTNLGRP_IPV6_IFADDR RTNLGRP_IPV6_IFADDR 871#define RTNLGRP_IPV6_IFADDR RTNLGRP_IPV6_IFADDR
871 RTNLGRP_IPV6_MROUTE, 872 RTNLGRP_IPV6_MROUTE,
@@ -876,8 +877,11 @@ enum rtnetlink_groups {
876#define RTNLGRP_IPV6_IFINFO RTNLGRP_IPV6_IFINFO 877#define RTNLGRP_IPV6_IFINFO RTNLGRP_IPV6_IFINFO
877 RTNLGRP_DECnet_IFADDR, 878 RTNLGRP_DECnet_IFADDR,
878#define RTNLGRP_DECnet_IFADDR RTNLGRP_DECnet_IFADDR 879#define RTNLGRP_DECnet_IFADDR RTNLGRP_DECnet_IFADDR
880 RTNLGRP_NOP2,
879 RTNLGRP_DECnet_ROUTE, 881 RTNLGRP_DECnet_ROUTE,
880#define RTNLGRP_DECnet_ROUTE RTNLGRP_DECnet_ROUTE 882#define RTNLGRP_DECnet_ROUTE RTNLGRP_DECnet_ROUTE
883 RTNLGRP_NOP3,
884 RTNLGRP_NOP4,
881 RTNLGRP_IPV6_PREFIX, 885 RTNLGRP_IPV6_PREFIX,
882#define RTNLGRP_IPV6_PREFIX RTNLGRP_IPV6_PREFIX 886#define RTNLGRP_IPV6_PREFIX RTNLGRP_IPV6_PREFIX
883 __RTNLGRP_MAX 887 __RTNLGRP_MAX
diff --git a/include/linux/sched.h b/include/linux/sched.h
index 2bbf968b23d9..b0ad6f30679e 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -357,7 +357,6 @@ struct mm_struct {
357 /* aio bits */ 357 /* aio bits */
358 rwlock_t ioctx_list_lock; 358 rwlock_t ioctx_list_lock;
359 struct kioctx *ioctx_list; 359 struct kioctx *ioctx_list;
360 struct kioctx default_kioctx;
361}; 360};
362 361
363struct sighand_struct { 362struct sighand_struct {
@@ -909,7 +908,6 @@ do { if (atomic_dec_and_test(&(tsk)->usage)) __put_task_struct(tsk); } while(0)
909#define PF_SYNCWRITE 0x00200000 /* I am doing a sync write */ 908#define PF_SYNCWRITE 0x00200000 /* I am doing a sync write */
910#define PF_BORROWED_MM 0x00400000 /* I am a kthread doing use_mm */ 909#define PF_BORROWED_MM 0x00400000 /* I am a kthread doing use_mm */
911#define PF_RANDOMIZE 0x00800000 /* randomize virtual address space */ 910#define PF_RANDOMIZE 0x00800000 /* randomize virtual address space */
912#define PF_HOTPLUG_CPU 0x01000000 /* Currently performing CPU hotplug */
913 911
914/* 912/*
915 * Only the _current_ task can read/write to tsk->flags, but other 913 * Only the _current_ task can read/write to tsk->flags, but other
@@ -1233,32 +1231,49 @@ static inline void task_unlock(struct task_struct *p)
1233 spin_unlock(&p->alloc_lock); 1231 spin_unlock(&p->alloc_lock);
1234} 1232}
1235 1233
1234#ifndef __HAVE_THREAD_FUNCTIONS
1235
1236#define task_thread_info(task) (task)->thread_info
1237
1238static inline void setup_thread_stack(struct task_struct *p, struct task_struct *org)
1239{
1240 *task_thread_info(p) = *task_thread_info(org);
1241 task_thread_info(p)->task = p;
1242}
1243
1244static inline unsigned long *end_of_stack(struct task_struct *p)
1245{
1246 return (unsigned long *)(p->thread_info + 1);
1247}
1248
1249#endif
1250
1236/* set thread flags in other task's structures 1251/* set thread flags in other task's structures
1237 * - see asm/thread_info.h for TIF_xxxx flags available 1252 * - see asm/thread_info.h for TIF_xxxx flags available
1238 */ 1253 */
1239static inline void set_tsk_thread_flag(struct task_struct *tsk, int flag) 1254static inline void set_tsk_thread_flag(struct task_struct *tsk, int flag)
1240{ 1255{
1241 set_ti_thread_flag(tsk->thread_info,flag); 1256 set_ti_thread_flag(task_thread_info(tsk), flag);
1242} 1257}
1243 1258
1244static inline void clear_tsk_thread_flag(struct task_struct *tsk, int flag) 1259static inline void clear_tsk_thread_flag(struct task_struct *tsk, int flag)
1245{ 1260{
1246 clear_ti_thread_flag(tsk->thread_info,flag); 1261 clear_ti_thread_flag(task_thread_info(tsk), flag);
1247} 1262}
1248 1263
1249static inline int test_and_set_tsk_thread_flag(struct task_struct *tsk, int flag) 1264static inline int test_and_set_tsk_thread_flag(struct task_struct *tsk, int flag)
1250{ 1265{
1251 return test_and_set_ti_thread_flag(tsk->thread_info,flag); 1266 return test_and_set_ti_thread_flag(task_thread_info(tsk), flag);
1252} 1267}
1253 1268
1254static inline int test_and_clear_tsk_thread_flag(struct task_struct *tsk, int flag) 1269static inline int test_and_clear_tsk_thread_flag(struct task_struct *tsk, int flag)
1255{ 1270{
1256 return test_and_clear_ti_thread_flag(tsk->thread_info,flag); 1271 return test_and_clear_ti_thread_flag(task_thread_info(tsk), flag);
1257} 1272}
1258 1273
1259static inline int test_tsk_thread_flag(struct task_struct *tsk, int flag) 1274static inline int test_tsk_thread_flag(struct task_struct *tsk, int flag)
1260{ 1275{
1261 return test_ti_thread_flag(tsk->thread_info,flag); 1276 return test_ti_thread_flag(task_thread_info(tsk), flag);
1262} 1277}
1263 1278
1264static inline void set_tsk_need_resched(struct task_struct *tsk) 1279static inline void set_tsk_need_resched(struct task_struct *tsk)
@@ -1329,12 +1344,12 @@ extern void signal_wake_up(struct task_struct *t, int resume_stopped);
1329 1344
1330static inline unsigned int task_cpu(const struct task_struct *p) 1345static inline unsigned int task_cpu(const struct task_struct *p)
1331{ 1346{
1332 return p->thread_info->cpu; 1347 return task_thread_info(p)->cpu;
1333} 1348}
1334 1349
1335static inline void set_task_cpu(struct task_struct *p, unsigned int cpu) 1350static inline void set_task_cpu(struct task_struct *p, unsigned int cpu)
1336{ 1351{
1337 p->thread_info->cpu = cpu; 1352 task_thread_info(p)->cpu = cpu;
1338} 1353}
1339 1354
1340#else 1355#else
diff --git a/include/linux/serial_core.h b/include/linux/serial_core.h
index a3ac92b19aca..e3710d7e260a 100644
--- a/include/linux/serial_core.h
+++ b/include/linux/serial_core.h
@@ -121,6 +121,9 @@
121 121
122#define PORT_IP3106 70 122#define PORT_IP3106 70
123 123
124/* Hilscher netx */
125#define PORT_NETX 71
126
124#ifdef __KERNEL__ 127#ifdef __KERNEL__
125 128
126#include <linux/config.h> 129#include <linux/config.h>
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
index 83010231db99..8c5d6001a923 100644
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
@@ -206,6 +206,7 @@ enum {
206 * @nfct: Associated connection, if any 206 * @nfct: Associated connection, if any
207 * @ipvs_property: skbuff is owned by ipvs 207 * @ipvs_property: skbuff is owned by ipvs
208 * @nfctinfo: Relationship of this skb to the connection 208 * @nfctinfo: Relationship of this skb to the connection
209 * @nfct_reasm: netfilter conntrack re-assembly pointer
209 * @nf_bridge: Saved data about a bridged frame - see br_netfilter.c 210 * @nf_bridge: Saved data about a bridged frame - see br_netfilter.c
210 * @tc_index: Traffic control index 211 * @tc_index: Traffic control index
211 * @tc_verd: traffic control verdict 212 * @tc_verd: traffic control verdict
@@ -264,16 +265,14 @@ struct sk_buff {
264 nohdr:1, 265 nohdr:1,
265 nfctinfo:3; 266 nfctinfo:3;
266 __u8 pkt_type:3, 267 __u8 pkt_type:3,
267 fclone:2; 268 fclone:2,
269 ipvs_property:1;
268 __be16 protocol; 270 __be16 protocol;
269 271
270 void (*destructor)(struct sk_buff *skb); 272 void (*destructor)(struct sk_buff *skb);
271#ifdef CONFIG_NETFILTER 273#ifdef CONFIG_NETFILTER
272 __u32 nfmark; 274 __u32 nfmark;
273 struct nf_conntrack *nfct; 275 struct nf_conntrack *nfct;
274#if defined(CONFIG_IP_VS) || defined(CONFIG_IP_VS_MODULE)
275 __u8 ipvs_property:1;
276#endif
277#if defined(CONFIG_NF_CONNTRACK) || defined(CONFIG_NF_CONNTRACK_MODULE) 276#if defined(CONFIG_NF_CONNTRACK) || defined(CONFIG_NF_CONNTRACK_MODULE)
278 struct sk_buff *nfct_reasm; 277 struct sk_buff *nfct_reasm;
279#endif 278#endif
@@ -1236,8 +1235,7 @@ extern unsigned int datagram_poll(struct file *file, struct socket *sock,
1236extern int skb_copy_datagram_iovec(const struct sk_buff *from, 1235extern int skb_copy_datagram_iovec(const struct sk_buff *from,
1237 int offset, struct iovec *to, 1236 int offset, struct iovec *to,
1238 int size); 1237 int size);
1239extern int skb_copy_and_csum_datagram_iovec(const 1238extern int skb_copy_and_csum_datagram_iovec(struct sk_buff *skb,
1240 struct sk_buff *skb,
1241 int hlen, 1239 int hlen,
1242 struct iovec *iov); 1240 struct iovec *iov);
1243extern void skb_free_datagram(struct sock *sk, struct sk_buff *skb); 1241extern void skb_free_datagram(struct sock *sk, struct sk_buff *skb);
@@ -1305,6 +1303,30 @@ static inline void skb_set_timestamp(struct sk_buff *skb, const struct timeval *
1305 1303
1306extern void __net_timestamp(struct sk_buff *skb); 1304extern void __net_timestamp(struct sk_buff *skb);
1307 1305
1306extern unsigned int __skb_checksum_complete(struct sk_buff *skb);
1307
1308/**
1309 * skb_checksum_complete - Calculate checksum of an entire packet
1310 * @skb: packet to process
1311 *
1312 * This function calculates the checksum over the entire packet plus
1313 * the value of skb->csum. The latter can be used to supply the
1314 * checksum of a pseudo header as used by TCP/UDP. It returns the
1315 * checksum.
1316 *
1317 * For protocols that contain complete checksums such as ICMP/TCP/UDP,
1318 * this function can be used to verify that checksum on received
1319 * packets. In that case the function should return zero if the
1320 * checksum is correct. In particular, this function will return zero
1321 * if skb->ip_summed is CHECKSUM_UNNECESSARY which indicates that the
1322 * hardware has already verified the correctness of the checksum.
1323 */
1324static inline unsigned int skb_checksum_complete(struct sk_buff *skb)
1325{
1326 return skb->ip_summed != CHECKSUM_UNNECESSARY &&
1327 __skb_checksum_complete(skb);
1328}
1329
1308#ifdef CONFIG_NETFILTER 1330#ifdef CONFIG_NETFILTER
1309static inline void nf_conntrack_put(struct nf_conntrack *nfct) 1331static inline void nf_conntrack_put(struct nf_conntrack *nfct)
1310{ 1332{
diff --git a/include/linux/smp_lock.h b/include/linux/smp_lock.h
index b63ce7014093..fa1ff3b165fe 100644
--- a/include/linux/smp_lock.h
+++ b/include/linux/smp_lock.h
@@ -2,11 +2,10 @@
2#define __LINUX_SMPLOCK_H 2#define __LINUX_SMPLOCK_H
3 3
4#include <linux/config.h> 4#include <linux/config.h>
5#ifdef CONFIG_LOCK_KERNEL
5#include <linux/sched.h> 6#include <linux/sched.h>
6#include <linux/spinlock.h> 7#include <linux/spinlock.h>
7 8
8#ifdef CONFIG_LOCK_KERNEL
9
10#define kernel_locked() (current->lock_depth >= 0) 9#define kernel_locked() (current->lock_depth >= 0)
11 10
12extern int __lockfunc __reacquire_kernel_lock(void); 11extern int __lockfunc __reacquire_kernel_lock(void);
diff --git a/include/linux/swap.h b/include/linux/swap.h
index 20c975642cab..508668f840b6 100644
--- a/include/linux/swap.h
+++ b/include/linux/swap.h
@@ -239,6 +239,11 @@ static inline void put_swap_token(struct mm_struct *mm)
239 __put_swap_token(mm); 239 __put_swap_token(mm);
240} 240}
241 241
242static inline void disable_swap_token(void)
243{
244 put_swap_token(swap_token_mm);
245}
246
242#else /* CONFIG_SWAP */ 247#else /* CONFIG_SWAP */
243 248
244#define total_swap_pages 0 249#define total_swap_pages 0
@@ -283,6 +288,7 @@ static inline swp_entry_t get_swap_page(void)
283#define put_swap_token(x) do { } while(0) 288#define put_swap_token(x) do { } while(0)
284#define grab_swap_token() do { } while(0) 289#define grab_swap_token() do { } while(0)
285#define has_swap_token(x) 0 290#define has_swap_token(x) 0
291#define disable_swap_token() do { } while(0)
286 292
287#endif /* CONFIG_SWAP */ 293#endif /* CONFIG_SWAP */
288#endif /* __KERNEL__*/ 294#endif /* __KERNEL__*/
diff --git a/include/linux/sysctl.h b/include/linux/sysctl.h
index 22cf5e1ac987..4be34ef8c2f7 100644
--- a/include/linux/sysctl.h
+++ b/include/linux/sysctl.h
@@ -20,7 +20,6 @@
20 20
21#include <linux/kernel.h> 21#include <linux/kernel.h>
22#include <linux/types.h> 22#include <linux/types.h>
23#include <linux/list.h>
24#include <linux/compiler.h> 23#include <linux/compiler.h>
25 24
26struct file; 25struct file;
@@ -390,6 +389,7 @@ enum
390 NET_TCP_BIC_BETA=108, 389 NET_TCP_BIC_BETA=108,
391 NET_IPV4_ICMP_ERRORS_USE_INBOUND_IFADDR=109, 390 NET_IPV4_ICMP_ERRORS_USE_INBOUND_IFADDR=109,
392 NET_TCP_CONG_CONTROL=110, 391 NET_TCP_CONG_CONTROL=110,
392 NET_TCP_ABC=111,
393}; 393};
394 394
395enum { 395enum {
@@ -670,6 +670,9 @@ enum {
670 NET_DECNET_DST_GC_INTERVAL = 9, 670 NET_DECNET_DST_GC_INTERVAL = 9,
671 NET_DECNET_CONF = 10, 671 NET_DECNET_CONF = 10,
672 NET_DECNET_NO_FC_MAX_CWND = 11, 672 NET_DECNET_NO_FC_MAX_CWND = 11,
673 NET_DECNET_MEM = 12,
674 NET_DECNET_RMEM = 13,
675 NET_DECNET_WMEM = 14,
673 NET_DECNET_DEBUG_LEVEL = 255 676 NET_DECNET_DEBUG_LEVEL = 255
674}; 677};
675 678
@@ -714,6 +717,7 @@ enum {
714 NET_SCTP_PRSCTP_ENABLE = 14, 717 NET_SCTP_PRSCTP_ENABLE = 14,
715 NET_SCTP_SNDBUF_POLICY = 15, 718 NET_SCTP_SNDBUF_POLICY = 15,
716 NET_SCTP_SACK_TIMEOUT = 16, 719 NET_SCTP_SACK_TIMEOUT = 16,
720 NET_SCTP_RCVBUF_POLICY = 17,
717}; 721};
718 722
719/* /proc/sys/net/bridge */ 723/* /proc/sys/net/bridge */
@@ -857,6 +861,7 @@ enum
857}; 861};
858 862
859#ifdef __KERNEL__ 863#ifdef __KERNEL__
864#include <linux/list.h>
860 865
861extern void sysctl_init(void); 866extern void sysctl_init(void);
862 867
diff --git a/include/linux/tcp.h b/include/linux/tcp.h
index ac4ca44c75ca..0e1da6602e05 100644
--- a/include/linux/tcp.h
+++ b/include/linux/tcp.h
@@ -307,6 +307,21 @@ struct tcp_sock {
307 struct tcp_sack_block duplicate_sack[1]; /* D-SACK block */ 307 struct tcp_sack_block duplicate_sack[1]; /* D-SACK block */
308 struct tcp_sack_block selective_acks[4]; /* The SACKS themselves*/ 308 struct tcp_sack_block selective_acks[4]; /* The SACKS themselves*/
309 309
310 struct tcp_sack_block recv_sack_cache[4];
311
312 /* from STCP, retrans queue hinting */
313 struct sk_buff* lost_skb_hint;
314
315 struct sk_buff *scoreboard_skb_hint;
316 struct sk_buff *retransmit_skb_hint;
317 struct sk_buff *forward_skb_hint;
318 struct sk_buff *fastpath_skb_hint;
319
320 int fastpath_cnt_hint;
321 int lost_cnt_hint;
322 int retransmit_cnt_hint;
323 int forward_cnt_hint;
324
310 __u16 advmss; /* Advertised MSS */ 325 __u16 advmss; /* Advertised MSS */
311 __u16 prior_ssthresh; /* ssthresh saved at recovery start */ 326 __u16 prior_ssthresh; /* ssthresh saved at recovery start */
312 __u32 lost_out; /* Lost packets */ 327 __u32 lost_out; /* Lost packets */
@@ -326,6 +341,7 @@ struct tcp_sock {
326 __u32 snd_up; /* Urgent pointer */ 341 __u32 snd_up; /* Urgent pointer */
327 342
328 __u32 total_retrans; /* Total retransmits for entire connection */ 343 __u32 total_retrans; /* Total retransmits for entire connection */
344 __u32 bytes_acked; /* Appropriate Byte Counting - RFC3465 */
329 345
330 unsigned int keepalive_time; /* time before keep alive takes place */ 346 unsigned int keepalive_time; /* time before keep alive takes place */
331 unsigned int keepalive_intvl; /* time interval between keep alive probes */ 347 unsigned int keepalive_intvl; /* time interval between keep alive probes */
diff --git a/include/linux/thread_info.h b/include/linux/thread_info.h
index d252f45a0f9b..1c4eb41dbd89 100644
--- a/include/linux/thread_info.h
+++ b/include/linux/thread_info.h
@@ -27,31 +27,6 @@ extern long do_no_restart_syscall(struct restart_block *parm);
27 * - pass TIF_xxxx constants to these functions 27 * - pass TIF_xxxx constants to these functions
28 */ 28 */
29 29
30static inline void set_thread_flag(int flag)
31{
32 set_bit(flag,&current_thread_info()->flags);
33}
34
35static inline void clear_thread_flag(int flag)
36{
37 clear_bit(flag,&current_thread_info()->flags);
38}
39
40static inline int test_and_set_thread_flag(int flag)
41{
42 return test_and_set_bit(flag,&current_thread_info()->flags);
43}
44
45static inline int test_and_clear_thread_flag(int flag)
46{
47 return test_and_clear_bit(flag,&current_thread_info()->flags);
48}
49
50static inline int test_thread_flag(int flag)
51{
52 return test_bit(flag,&current_thread_info()->flags);
53}
54
55static inline void set_ti_thread_flag(struct thread_info *ti, int flag) 30static inline void set_ti_thread_flag(struct thread_info *ti, int flag)
56{ 31{
57 set_bit(flag,&ti->flags); 32 set_bit(flag,&ti->flags);
@@ -77,15 +52,19 @@ static inline int test_ti_thread_flag(struct thread_info *ti, int flag)
77 return test_bit(flag,&ti->flags); 52 return test_bit(flag,&ti->flags);
78} 53}
79 54
80static inline void set_need_resched(void) 55#define set_thread_flag(flag) \
81{ 56 set_ti_thread_flag(current_thread_info(), flag)
82 set_thread_flag(TIF_NEED_RESCHED); 57#define clear_thread_flag(flag) \
83} 58 clear_ti_thread_flag(current_thread_info(), flag)
84 59#define test_and_set_thread_flag(flag) \
85static inline void clear_need_resched(void) 60 test_and_set_ti_thread_flag(current_thread_info(), flag)
86{ 61#define test_and_clear_thread_flag(flag) \
87 clear_thread_flag(TIF_NEED_RESCHED); 62 test_and_clear_ti_thread_flag(current_thread_info(), flag)
88} 63#define test_thread_flag(flag) \
64 test_ti_thread_flag(current_thread_info(), flag)
65
66#define set_need_resched() set_thread_flag(TIF_NEED_RESCHED)
67#define clear_need_resched() clear_thread_flag(TIF_NEED_RESCHED)
89 68
90#endif 69#endif
91 70
diff --git a/include/linux/time.h b/include/linux/time.h
index 8e83f4e778bb..797ccd813bb0 100644
--- a/include/linux/time.h
+++ b/include/linux/time.h
@@ -95,13 +95,14 @@ struct itimerval;
95extern int do_setitimer(int which, struct itimerval *value, struct itimerval *ovalue); 95extern int do_setitimer(int which, struct itimerval *value, struct itimerval *ovalue);
96extern int do_getitimer(int which, struct itimerval *value); 96extern int do_getitimer(int which, struct itimerval *value);
97extern void getnstimeofday (struct timespec *tv); 97extern void getnstimeofday (struct timespec *tv);
98extern void getnstimestamp(struct timespec *ts);
98 99
99extern struct timespec timespec_trunc(struct timespec t, unsigned gran); 100extern struct timespec timespec_trunc(struct timespec t, unsigned gran);
100 101
101static inline void 102static inline void
102set_normalized_timespec (struct timespec *ts, time_t sec, long nsec) 103set_normalized_timespec (struct timespec *ts, time_t sec, long nsec)
103{ 104{
104 while (nsec > NSEC_PER_SEC) { 105 while (nsec >= NSEC_PER_SEC) {
105 nsec -= NSEC_PER_SEC; 106 nsec -= NSEC_PER_SEC;
106 ++sec; 107 ++sec;
107 } 108 }
diff --git a/include/linux/uinput.h b/include/linux/uinput.h
index 84876077027f..0ff7ca68e5c5 100644
--- a/include/linux/uinput.h
+++ b/include/linux/uinput.h
@@ -34,8 +34,7 @@
34#define UINPUT_BUFFER_SIZE 16 34#define UINPUT_BUFFER_SIZE 16
35#define UINPUT_NUM_REQUESTS 16 35#define UINPUT_NUM_REQUESTS 16
36 36
37/* state flags => bit index for {set|clear|test}_bit ops */ 37enum uinput_state { UIST_NEW_DEVICE, UIST_SETUP_COMPLETE, UIST_CREATED };
38#define UIST_CREATED 0
39 38
40struct uinput_request { 39struct uinput_request {
41 int id; 40 int id;
@@ -52,11 +51,12 @@ struct uinput_request {
52 51
53struct uinput_device { 52struct uinput_device {
54 struct input_dev *dev; 53 struct input_dev *dev;
55 unsigned long state; 54 struct semaphore sem;
55 enum uinput_state state;
56 wait_queue_head_t waitq; 56 wait_queue_head_t waitq;
57 unsigned char ready, 57 unsigned char ready;
58 head, 58 unsigned char head;
59 tail; 59 unsigned char tail;
60 struct input_event buff[UINPUT_BUFFER_SIZE]; 60 struct input_event buff[UINPUT_BUFFER_SIZE];
61 61
62 struct uinput_request *requests[UINPUT_NUM_REQUESTS]; 62 struct uinput_request *requests[UINPUT_NUM_REQUESTS];
@@ -91,6 +91,7 @@ struct uinput_ff_erase {
91#define UI_SET_SNDBIT _IOW(UINPUT_IOCTL_BASE, 106, int) 91#define UI_SET_SNDBIT _IOW(UINPUT_IOCTL_BASE, 106, int)
92#define UI_SET_FFBIT _IOW(UINPUT_IOCTL_BASE, 107, int) 92#define UI_SET_FFBIT _IOW(UINPUT_IOCTL_BASE, 107, int)
93#define UI_SET_PHYS _IOW(UINPUT_IOCTL_BASE, 108, char*) 93#define UI_SET_PHYS _IOW(UINPUT_IOCTL_BASE, 108, char*)
94#define UI_SET_SWBIT _IOW(UINPUT_IOCTL_BASE, 109, int)
94 95
95#define UI_BEGIN_FF_UPLOAD _IOWR(UINPUT_IOCTL_BASE, 200, struct uinput_ff_upload) 96#define UI_BEGIN_FF_UPLOAD _IOWR(UINPUT_IOCTL_BASE, 200, struct uinput_ff_upload)
96#define UI_END_FF_UPLOAD _IOW(UINPUT_IOCTL_BASE, 201, struct uinput_ff_upload) 97#define UI_END_FF_UPLOAD _IOW(UINPUT_IOCTL_BASE, 201, struct uinput_ff_upload)
diff --git a/include/linux/usb.h b/include/linux/usb.h
index 748d04385256..d81b050e5955 100644
--- a/include/linux/usb.h
+++ b/include/linux/usb.h
@@ -47,6 +47,7 @@ struct usb_driver;
47 * @urb_list: urbs queued to this endpoint; maintained by usbcore 47 * @urb_list: urbs queued to this endpoint; maintained by usbcore
48 * @hcpriv: for use by HCD; typically holds hardware dma queue head (QH) 48 * @hcpriv: for use by HCD; typically holds hardware dma queue head (QH)
49 * with one or more transfer descriptors (TDs) per urb 49 * with one or more transfer descriptors (TDs) per urb
50 * @kobj: kobject for sysfs info
50 * @extra: descriptors following this endpoint in the configuration 51 * @extra: descriptors following this endpoint in the configuration
51 * @extralen: how many bytes of "extra" are valid 52 * @extralen: how many bytes of "extra" are valid
52 * 53 *
@@ -819,7 +820,7 @@ typedef void (*usb_complete_t)(struct urb *, struct pt_regs *);
819 */ 820 */
820struct urb 821struct urb
821{ 822{
822 /* private, usb core and host controller only fields in the urb */ 823 /* private: usb core and host controller only fields in the urb */
823 struct kref kref; /* reference count of the URB */ 824 struct kref kref; /* reference count of the URB */
824 spinlock_t lock; /* lock for the URB */ 825 spinlock_t lock; /* lock for the URB */
825 void *hcpriv; /* private data for host controller */ 826 void *hcpriv; /* private data for host controller */
@@ -827,7 +828,7 @@ struct urb
827 atomic_t use_count; /* concurrent submissions counter */ 828 atomic_t use_count; /* concurrent submissions counter */
828 u8 reject; /* submissions will fail */ 829 u8 reject; /* submissions will fail */
829 830
830 /* public, documented fields in the urb that can be used by drivers */ 831 /* public: documented fields in the urb that can be used by drivers */
831 struct list_head urb_list; /* list head for use by the urb's 832 struct list_head urb_list; /* list head for use by the urb's
832 * current owner */ 833 * current owner */
833 struct usb_device *dev; /* (in) pointer to associated device */ 834 struct usb_device *dev; /* (in) pointer to associated device */
@@ -1045,7 +1046,7 @@ struct usb_sg_request {
1045 size_t bytes; 1046 size_t bytes;
1046 1047
1047 /* 1048 /*
1048 * members below are private to usbcore, 1049 * members below are private: to usbcore,
1049 * and are not provided for driver access! 1050 * and are not provided for driver access!
1050 */ 1051 */
1051 spinlock_t lock; 1052 spinlock_t lock;
diff --git a/include/linux/videodev2.h b/include/linux/videodev2.h
index a114fff6568b..1cded681eb6d 100644
--- a/include/linux/videodev2.h
+++ b/include/linux/videodev2.h
@@ -636,6 +636,7 @@ typedef __u64 v4l2_std_id;
636#define V4L2_STD_SECAM_K ((v4l2_std_id)0x00100000) 636#define V4L2_STD_SECAM_K ((v4l2_std_id)0x00100000)
637#define V4L2_STD_SECAM_K1 ((v4l2_std_id)0x00200000) 637#define V4L2_STD_SECAM_K1 ((v4l2_std_id)0x00200000)
638#define V4L2_STD_SECAM_L ((v4l2_std_id)0x00400000) 638#define V4L2_STD_SECAM_L ((v4l2_std_id)0x00400000)
639#define V4L2_STD_SECAM_LC ((v4l2_std_id)0x00800000)
639 640
640/* ATSC/HDTV */ 641/* ATSC/HDTV */
641#define V4L2_STD_ATSC_8_VSB ((v4l2_std_id)0x01000000) 642#define V4L2_STD_ATSC_8_VSB ((v4l2_std_id)0x01000000)