diff options
| author | Ingo Molnar <mingo@elte.hu> | 2009-03-12 21:14:25 -0400 |
|---|---|---|
| committer | Ingo Molnar <mingo@elte.hu> | 2009-03-12 21:14:25 -0400 |
| commit | 25d500067d5a666d1336598d1b324793554e5496 (patch) | |
| tree | 3402308c4c69a66d02ce55f5c165e242fad2a8a9 /include/linux | |
| parent | 0b13fda1e0936b3d64c4c407f183d33fa6bd2ad4 (diff) | |
| parent | 9ead64974b05501bbac0d63a47c99fa786d064ba (diff) | |
Merge branch 'linus' into core/ipi
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/Kbuild | 1 | ||||
| -rw-r--r-- | include/linux/ata.h | 2 | ||||
| -rw-r--r-- | include/linux/blkdev.h | 2 | ||||
| -rw-r--r-- | include/linux/cpufreq.h | 1 | ||||
| -rw-r--r-- | include/linux/dcbnl.h | 4 | ||||
| -rw-r--r-- | include/linux/dmaengine.h | 7 | ||||
| -rw-r--r-- | include/linux/hdreg.h | 1 | ||||
| -rw-r--r-- | include/linux/i2c-dev.h | 2 | ||||
| -rw-r--r-- | include/linux/i2c.h | 2 | ||||
| -rw-r--r-- | include/linux/ide.h | 3 | ||||
| -rw-r--r-- | include/linux/intel-iommu.h | 3 | ||||
| -rw-r--r-- | include/linux/io-mapping.h | 49 | ||||
| -rw-r--r-- | include/linux/libata.h | 6 | ||||
| -rw-r--r-- | include/linux/mm_types.h | 3 | ||||
| -rw-r--r-- | include/linux/netdevice.h | 1 | ||||
| -rw-r--r-- | include/linux/netfilter/xt_NFLOG.h | 2 | ||||
| -rw-r--r-- | include/linux/rcuclassic.h | 6 | ||||
| -rw-r--r-- | include/linux/rcupdate.h | 4 | ||||
| -rw-r--r-- | include/linux/rcupreempt.h | 15 | ||||
| -rw-r--r-- | include/linux/rcutree.h | 6 | ||||
| -rw-r--r-- | include/linux/sched.h | 7 | ||||
| -rw-r--r-- | include/linux/serio.h | 2 | ||||
| -rw-r--r-- | include/linux/user_namespace.h | 1 |
23 files changed, 102 insertions, 28 deletions
diff --git a/include/linux/Kbuild b/include/linux/Kbuild index b97cdc516a8f..106c3ba50844 100644 --- a/include/linux/Kbuild +++ b/include/linux/Kbuild | |||
| @@ -52,6 +52,7 @@ header-y += const.h | |||
| 52 | header-y += cgroupstats.h | 52 | header-y += cgroupstats.h |
| 53 | header-y += cramfs_fs.h | 53 | header-y += cramfs_fs.h |
| 54 | header-y += cycx_cfm.h | 54 | header-y += cycx_cfm.h |
| 55 | header-y += dcbnl.h | ||
| 55 | header-y += dlmconstants.h | 56 | header-y += dlmconstants.h |
| 56 | header-y += dlm_device.h | 57 | header-y += dlm_device.h |
| 57 | header-y += dlm_netlink.h | 58 | header-y += dlm_netlink.h |
diff --git a/include/linux/ata.h b/include/linux/ata.h index 08a86d5cdf1b..9a061accd8b8 100644 --- a/include/linux/ata.h +++ b/include/linux/ata.h | |||
| @@ -89,6 +89,8 @@ enum { | |||
| 89 | ATA_ID_DLF = 128, | 89 | ATA_ID_DLF = 128, |
| 90 | ATA_ID_CSFO = 129, | 90 | ATA_ID_CSFO = 129, |
| 91 | ATA_ID_CFA_POWER = 160, | 91 | ATA_ID_CFA_POWER = 160, |
| 92 | ATA_ID_CFA_KEY_MGMT = 162, | ||
| 93 | ATA_ID_CFA_MODES = 163, | ||
| 92 | ATA_ID_ROT_SPEED = 217, | 94 | ATA_ID_ROT_SPEED = 217, |
| 93 | ATA_ID_PIO4 = (1 << 1), | 95 | ATA_ID_PIO4 = (1 << 1), |
| 94 | 96 | ||
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h index dcaa0fd84b02..465d6babc847 100644 --- a/include/linux/blkdev.h +++ b/include/linux/blkdev.h | |||
| @@ -708,6 +708,8 @@ struct req_iterator { | |||
| 708 | }; | 708 | }; |
| 709 | 709 | ||
| 710 | /* This should not be used directly - use rq_for_each_segment */ | 710 | /* This should not be used directly - use rq_for_each_segment */ |
| 711 | #define for_each_bio(_bio) \ | ||
| 712 | for (; _bio; _bio = _bio->bi_next) | ||
| 711 | #define __rq_for_each_bio(_bio, rq) \ | 713 | #define __rq_for_each_bio(_bio, rq) \ |
| 712 | if ((rq->bio)) \ | 714 | if ((rq->bio)) \ |
| 713 | for (_bio = (rq)->bio; _bio; _bio = _bio->bi_next) | 715 | for (_bio = (rq)->bio; _bio; _bio = _bio->bi_next) |
diff --git a/include/linux/cpufreq.h b/include/linux/cpufreq.h index 384b38d3e8e2..161042746afc 100644 --- a/include/linux/cpufreq.h +++ b/include/linux/cpufreq.h | |||
| @@ -234,7 +234,6 @@ struct cpufreq_driver { | |||
| 234 | int (*suspend) (struct cpufreq_policy *policy, pm_message_t pmsg); | 234 | int (*suspend) (struct cpufreq_policy *policy, pm_message_t pmsg); |
| 235 | int (*resume) (struct cpufreq_policy *policy); | 235 | int (*resume) (struct cpufreq_policy *policy); |
| 236 | struct freq_attr **attr; | 236 | struct freq_attr **attr; |
| 237 | bool hide_interface; | ||
| 238 | }; | 237 | }; |
| 239 | 238 | ||
| 240 | /* flags */ | 239 | /* flags */ |
diff --git a/include/linux/dcbnl.h b/include/linux/dcbnl.h index b0ef274e0031..7d2e10006188 100644 --- a/include/linux/dcbnl.h +++ b/include/linux/dcbnl.h | |||
| @@ -20,10 +20,12 @@ | |||
| 20 | #ifndef __LINUX_DCBNL_H__ | 20 | #ifndef __LINUX_DCBNL_H__ |
| 21 | #define __LINUX_DCBNL_H__ | 21 | #define __LINUX_DCBNL_H__ |
| 22 | 22 | ||
| 23 | #include <linux/types.h> | ||
| 24 | |||
| 23 | #define DCB_PROTO_VERSION 1 | 25 | #define DCB_PROTO_VERSION 1 |
| 24 | 26 | ||
| 25 | struct dcbmsg { | 27 | struct dcbmsg { |
| 26 | unsigned char dcb_family; | 28 | __u8 dcb_family; |
| 27 | __u8 cmd; | 29 | __u8 cmd; |
| 28 | __u16 dcb_pad; | 30 | __u16 dcb_pad; |
| 29 | }; | 31 | }; |
diff --git a/include/linux/dmaengine.h b/include/linux/dmaengine.h index f0413845f20e..1956c8d46d32 100644 --- a/include/linux/dmaengine.h +++ b/include/linux/dmaengine.h | |||
| @@ -97,7 +97,6 @@ typedef struct { DECLARE_BITMAP(bits, DMA_TX_TYPE_END); } dma_cap_mask_t; | |||
| 97 | 97 | ||
| 98 | /** | 98 | /** |
| 99 | * struct dma_chan_percpu - the per-CPU part of struct dma_chan | 99 | * struct dma_chan_percpu - the per-CPU part of struct dma_chan |
| 100 | * @refcount: local_t used for open-coded "bigref" counting | ||
| 101 | * @memcpy_count: transaction counter | 100 | * @memcpy_count: transaction counter |
| 102 | * @bytes_transferred: byte counter | 101 | * @bytes_transferred: byte counter |
| 103 | */ | 102 | */ |
| @@ -114,9 +113,6 @@ struct dma_chan_percpu { | |||
| 114 | * @cookie: last cookie value returned to client | 113 | * @cookie: last cookie value returned to client |
| 115 | * @chan_id: channel ID for sysfs | 114 | * @chan_id: channel ID for sysfs |
| 116 | * @dev: class device for sysfs | 115 | * @dev: class device for sysfs |
| 117 | * @refcount: kref, used in "bigref" slow-mode | ||
| 118 | * @slow_ref: indicates that the DMA channel is free | ||
| 119 | * @rcu: the DMA channel's RCU head | ||
| 120 | * @device_node: used to add this to the device chan list | 116 | * @device_node: used to add this to the device chan list |
| 121 | * @local: per-cpu pointer to a struct dma_chan_percpu | 117 | * @local: per-cpu pointer to a struct dma_chan_percpu |
| 122 | * @client-count: how many clients are using this channel | 118 | * @client-count: how many clients are using this channel |
| @@ -213,8 +209,6 @@ struct dma_async_tx_descriptor { | |||
| 213 | * @global_node: list_head for global dma_device_list | 209 | * @global_node: list_head for global dma_device_list |
| 214 | * @cap_mask: one or more dma_capability flags | 210 | * @cap_mask: one or more dma_capability flags |
| 215 | * @max_xor: maximum number of xor sources, 0 if no capability | 211 | * @max_xor: maximum number of xor sources, 0 if no capability |
| 216 | * @refcount: reference count | ||
| 217 | * @done: IO completion struct | ||
| 218 | * @dev_id: unique device ID | 212 | * @dev_id: unique device ID |
| 219 | * @dev: struct device reference for dma mapping api | 213 | * @dev: struct device reference for dma mapping api |
| 220 | * @device_alloc_chan_resources: allocate resources and return the | 214 | * @device_alloc_chan_resources: allocate resources and return the |
| @@ -227,6 +221,7 @@ struct dma_async_tx_descriptor { | |||
| 227 | * @device_prep_dma_interrupt: prepares an end of chain interrupt operation | 221 | * @device_prep_dma_interrupt: prepares an end of chain interrupt operation |
| 228 | * @device_prep_slave_sg: prepares a slave dma operation | 222 | * @device_prep_slave_sg: prepares a slave dma operation |
| 229 | * @device_terminate_all: terminate all pending operations | 223 | * @device_terminate_all: terminate all pending operations |
| 224 | * @device_is_tx_complete: poll for transaction completion | ||
| 230 | * @device_issue_pending: push pending transactions to hardware | 225 | * @device_issue_pending: push pending transactions to hardware |
| 231 | */ | 226 | */ |
| 232 | struct dma_device { | 227 | struct dma_device { |
diff --git a/include/linux/hdreg.h b/include/linux/hdreg.h index c37e9241fae7..ed21bd3dbd25 100644 --- a/include/linux/hdreg.h +++ b/include/linux/hdreg.h | |||
| @@ -511,7 +511,6 @@ struct hd_driveid { | |||
| 511 | unsigned short words69_70[2]; /* reserved words 69-70 | 511 | unsigned short words69_70[2]; /* reserved words 69-70 |
| 512 | * future command overlap and queuing | 512 | * future command overlap and queuing |
| 513 | */ | 513 | */ |
| 514 | /* HDIO_GET_IDENTITY currently returns only words 0 through 70 */ | ||
| 515 | unsigned short words71_74[4]; /* reserved words 71-74 | 514 | unsigned short words71_74[4]; /* reserved words 71-74 |
| 516 | * for IDENTIFY PACKET DEVICE command | 515 | * for IDENTIFY PACKET DEVICE command |
| 517 | */ | 516 | */ |
diff --git a/include/linux/i2c-dev.h b/include/linux/i2c-dev.h index 311315b56b61..fd53bfd26470 100644 --- a/include/linux/i2c-dev.h +++ b/include/linux/i2c-dev.h | |||
| @@ -33,7 +33,7 @@ | |||
| 33 | */ | 33 | */ |
| 34 | #define I2C_RETRIES 0x0701 /* number of times a device address should | 34 | #define I2C_RETRIES 0x0701 /* number of times a device address should |
| 35 | be polled when not acknowledging */ | 35 | be polled when not acknowledging */ |
| 36 | #define I2C_TIMEOUT 0x0702 /* set timeout in jiffies - call with int */ | 36 | #define I2C_TIMEOUT 0x0702 /* set timeout in units of 10 ms */ |
| 37 | 37 | ||
| 38 | /* NOTE: Slave address is 7 or 10 bits, but 10-bit addresses | 38 | /* NOTE: Slave address is 7 or 10 bits, but 10-bit addresses |
| 39 | * are NOT supported! (due to code brokenness) | 39 | * are NOT supported! (due to code brokenness) |
diff --git a/include/linux/i2c.h b/include/linux/i2c.h index fcfbfea3af72..c86c3b07604c 100644 --- a/include/linux/i2c.h +++ b/include/linux/i2c.h | |||
| @@ -361,7 +361,7 @@ struct i2c_adapter { | |||
| 361 | struct mutex bus_lock; | 361 | struct mutex bus_lock; |
| 362 | struct mutex clist_lock; | 362 | struct mutex clist_lock; |
| 363 | 363 | ||
| 364 | int timeout; | 364 | int timeout; /* in jiffies */ |
| 365 | int retries; | 365 | int retries; |
| 366 | struct device dev; /* the adapter device */ | 366 | struct device dev; /* the adapter device */ |
| 367 | 367 | ||
diff --git a/include/linux/ide.h b/include/linux/ide.h index 194da5a4b0d6..e0cedfe9fad4 100644 --- a/include/linux/ide.h +++ b/include/linux/ide.h | |||
| @@ -663,7 +663,7 @@ typedef struct ide_drive_s ide_drive_t; | |||
| 663 | #define to_ide_device(dev) container_of(dev, ide_drive_t, gendev) | 663 | #define to_ide_device(dev) container_of(dev, ide_drive_t, gendev) |
| 664 | 664 | ||
| 665 | #define to_ide_drv(obj, cont_type) \ | 665 | #define to_ide_drv(obj, cont_type) \ |
| 666 | container_of(obj, struct cont_type, kref) | 666 | container_of(obj, struct cont_type, dev) |
| 667 | 667 | ||
| 668 | #define ide_drv_g(disk, cont_type) \ | 668 | #define ide_drv_g(disk, cont_type) \ |
| 669 | container_of((disk)->private_data, struct cont_type, driver) | 669 | container_of((disk)->private_data, struct cont_type, driver) |
| @@ -866,6 +866,7 @@ struct ide_host { | |||
| 866 | unsigned int n_ports; | 866 | unsigned int n_ports; |
| 867 | struct device *dev[2]; | 867 | struct device *dev[2]; |
| 868 | unsigned int (*init_chipset)(struct pci_dev *); | 868 | unsigned int (*init_chipset)(struct pci_dev *); |
| 869 | irq_handler_t irq_handler; | ||
| 869 | unsigned long host_flags; | 870 | unsigned long host_flags; |
| 870 | void *host_priv; | 871 | void *host_priv; |
| 871 | ide_hwif_t *cur_port; /* for hosts requiring serialization */ | 872 | ide_hwif_t *cur_port; /* for hosts requiring serialization */ |
diff --git a/include/linux/intel-iommu.h b/include/linux/intel-iommu.h index c4f6c101dbcd..d2e3cbfba14f 100644 --- a/include/linux/intel-iommu.h +++ b/include/linux/intel-iommu.h | |||
| @@ -194,6 +194,7 @@ static inline void dmar_writeq(void __iomem *addr, u64 val) | |||
| 194 | /* FSTS_REG */ | 194 | /* FSTS_REG */ |
| 195 | #define DMA_FSTS_PPF ((u32)2) | 195 | #define DMA_FSTS_PPF ((u32)2) |
| 196 | #define DMA_FSTS_PFO ((u32)1) | 196 | #define DMA_FSTS_PFO ((u32)1) |
| 197 | #define DMA_FSTS_IQE (1 << 4) | ||
| 197 | #define dma_fsts_fault_record_index(s) (((s) >> 8) & 0xff) | 198 | #define dma_fsts_fault_record_index(s) (((s) >> 8) & 0xff) |
| 198 | 199 | ||
| 199 | /* FRCD_REG, 32 bits access */ | 200 | /* FRCD_REG, 32 bits access */ |
| @@ -328,7 +329,7 @@ extern int qi_flush_iotlb(struct intel_iommu *iommu, u16 did, u64 addr, | |||
| 328 | unsigned int size_order, u64 type, | 329 | unsigned int size_order, u64 type, |
| 329 | int non_present_entry_flush); | 330 | int non_present_entry_flush); |
| 330 | 331 | ||
| 331 | extern void qi_submit_sync(struct qi_desc *desc, struct intel_iommu *iommu); | 332 | extern int qi_submit_sync(struct qi_desc *desc, struct intel_iommu *iommu); |
| 332 | 333 | ||
| 333 | extern void *intel_alloc_coherent(struct device *, size_t, dma_addr_t *, gfp_t); | 334 | extern void *intel_alloc_coherent(struct device *, size_t, dma_addr_t *, gfp_t); |
| 334 | extern void intel_free_coherent(struct device *, size_t, void *, dma_addr_t); | 335 | extern void intel_free_coherent(struct device *, size_t, void *, dma_addr_t); |
diff --git a/include/linux/io-mapping.h b/include/linux/io-mapping.h index 82df31726a54..0adb0f91568c 100644 --- a/include/linux/io-mapping.h +++ b/include/linux/io-mapping.h | |||
| @@ -30,11 +30,14 @@ | |||
| 30 | * See Documentation/io_mapping.txt | 30 | * See Documentation/io_mapping.txt |
| 31 | */ | 31 | */ |
| 32 | 32 | ||
| 33 | /* this struct isn't actually defined anywhere */ | ||
| 34 | struct io_mapping; | ||
| 35 | |||
| 36 | #ifdef CONFIG_HAVE_ATOMIC_IOMAP | 33 | #ifdef CONFIG_HAVE_ATOMIC_IOMAP |
| 37 | 34 | ||
| 35 | struct io_mapping { | ||
| 36 | resource_size_t base; | ||
| 37 | unsigned long size; | ||
| 38 | pgprot_t prot; | ||
| 39 | }; | ||
| 40 | |||
| 38 | /* | 41 | /* |
| 39 | * For small address space machines, mapping large objects | 42 | * For small address space machines, mapping large objects |
| 40 | * into the kernel virtual space isn't practical. Where | 43 | * into the kernel virtual space isn't practical. Where |
| @@ -43,23 +46,40 @@ struct io_mapping; | |||
| 43 | */ | 46 | */ |
| 44 | 47 | ||
| 45 | static inline struct io_mapping * | 48 | static inline struct io_mapping * |
| 46 | io_mapping_create_wc(unsigned long base, unsigned long size) | 49 | io_mapping_create_wc(resource_size_t base, unsigned long size) |
| 47 | { | 50 | { |
| 48 | return (struct io_mapping *) base; | 51 | struct io_mapping *iomap; |
| 52 | |||
| 53 | if (!is_io_mapping_possible(base, size)) | ||
| 54 | return NULL; | ||
| 55 | |||
| 56 | iomap = kmalloc(sizeof(*iomap), GFP_KERNEL); | ||
| 57 | if (!iomap) | ||
| 58 | return NULL; | ||
| 59 | |||
| 60 | iomap->base = base; | ||
| 61 | iomap->size = size; | ||
| 62 | iomap->prot = pgprot_writecombine(__pgprot(__PAGE_KERNEL)); | ||
| 63 | return iomap; | ||
| 49 | } | 64 | } |
| 50 | 65 | ||
| 51 | static inline void | 66 | static inline void |
| 52 | io_mapping_free(struct io_mapping *mapping) | 67 | io_mapping_free(struct io_mapping *mapping) |
| 53 | { | 68 | { |
| 69 | kfree(mapping); | ||
| 54 | } | 70 | } |
| 55 | 71 | ||
| 56 | /* Atomic map/unmap */ | 72 | /* Atomic map/unmap */ |
| 57 | static inline void * | 73 | static inline void * |
| 58 | io_mapping_map_atomic_wc(struct io_mapping *mapping, unsigned long offset) | 74 | io_mapping_map_atomic_wc(struct io_mapping *mapping, unsigned long offset) |
| 59 | { | 75 | { |
| 60 | offset += (unsigned long) mapping; | 76 | resource_size_t phys_addr; |
| 61 | return iomap_atomic_prot_pfn(offset >> PAGE_SHIFT, KM_USER0, | 77 | unsigned long pfn; |
| 62 | __pgprot(__PAGE_KERNEL_WC)); | 78 | |
| 79 | BUG_ON(offset >= mapping->size); | ||
| 80 | phys_addr = mapping->base + offset; | ||
| 81 | pfn = (unsigned long) (phys_addr >> PAGE_SHIFT); | ||
| 82 | return iomap_atomic_prot_pfn(pfn, KM_USER0, mapping->prot); | ||
| 63 | } | 83 | } |
| 64 | 84 | ||
| 65 | static inline void | 85 | static inline void |
| @@ -71,8 +91,12 @@ io_mapping_unmap_atomic(void *vaddr) | |||
| 71 | static inline void * | 91 | static inline void * |
| 72 | io_mapping_map_wc(struct io_mapping *mapping, unsigned long offset) | 92 | io_mapping_map_wc(struct io_mapping *mapping, unsigned long offset) |
| 73 | { | 93 | { |
| 74 | offset += (unsigned long) mapping; | 94 | resource_size_t phys_addr; |
| 75 | return ioremap_wc(offset, PAGE_SIZE); | 95 | |
| 96 | BUG_ON(offset >= mapping->size); | ||
| 97 | phys_addr = mapping->base + offset; | ||
| 98 | |||
| 99 | return ioremap_wc(phys_addr, PAGE_SIZE); | ||
| 76 | } | 100 | } |
| 77 | 101 | ||
| 78 | static inline void | 102 | static inline void |
| @@ -83,9 +107,12 @@ io_mapping_unmap(void *vaddr) | |||
| 83 | 107 | ||
| 84 | #else | 108 | #else |
| 85 | 109 | ||
| 110 | /* this struct isn't actually defined anywhere */ | ||
| 111 | struct io_mapping; | ||
| 112 | |||
| 86 | /* Create the io_mapping object*/ | 113 | /* Create the io_mapping object*/ |
| 87 | static inline struct io_mapping * | 114 | static inline struct io_mapping * |
| 88 | io_mapping_create_wc(unsigned long base, unsigned long size) | 115 | io_mapping_create_wc(resource_size_t base, unsigned long size) |
| 89 | { | 116 | { |
| 90 | return (struct io_mapping *) ioremap_wc(base, size); | 117 | return (struct io_mapping *) ioremap_wc(base, size); |
| 91 | } | 118 | } |
diff --git a/include/linux/libata.h b/include/linux/libata.h index 5d87bc09a1f5..dc18b87ed722 100644 --- a/include/linux/libata.h +++ b/include/linux/libata.h | |||
| @@ -275,7 +275,7 @@ enum { | |||
| 275 | * advised to wait only for the following duration before | 275 | * advised to wait only for the following duration before |
| 276 | * doing SRST. | 276 | * doing SRST. |
| 277 | */ | 277 | */ |
| 278 | ATA_TMOUT_PMP_SRST_WAIT = 1000, | 278 | ATA_TMOUT_PMP_SRST_WAIT = 5000, |
| 279 | 279 | ||
| 280 | /* ATA bus states */ | 280 | /* ATA bus states */ |
| 281 | BUS_UNKNOWN = 0, | 281 | BUS_UNKNOWN = 0, |
| @@ -530,6 +530,7 @@ struct ata_queued_cmd { | |||
| 530 | unsigned long flags; /* ATA_QCFLAG_xxx */ | 530 | unsigned long flags; /* ATA_QCFLAG_xxx */ |
| 531 | unsigned int tag; | 531 | unsigned int tag; |
| 532 | unsigned int n_elem; | 532 | unsigned int n_elem; |
| 533 | unsigned int orig_n_elem; | ||
| 533 | 534 | ||
| 534 | int dma_dir; | 535 | int dma_dir; |
| 535 | 536 | ||
| @@ -750,7 +751,8 @@ struct ata_port { | |||
| 750 | acpi_handle acpi_handle; | 751 | acpi_handle acpi_handle; |
| 751 | struct ata_acpi_gtm __acpi_init_gtm; /* use ata_acpi_init_gtm() */ | 752 | struct ata_acpi_gtm __acpi_init_gtm; /* use ata_acpi_init_gtm() */ |
| 752 | #endif | 753 | #endif |
| 753 | u8 sector_buf[ATA_SECT_SIZE]; /* owned by EH */ | 754 | /* owned by EH */ |
| 755 | u8 sector_buf[ATA_SECT_SIZE] ____cacheline_aligned; | ||
| 754 | }; | 756 | }; |
| 755 | 757 | ||
| 756 | /* The following initializer overrides a method to NULL whether one of | 758 | /* The following initializer overrides a method to NULL whether one of |
diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h index 92915e81443f..d84feb7bdbf0 100644 --- a/include/linux/mm_types.h +++ b/include/linux/mm_types.h | |||
| @@ -276,4 +276,7 @@ struct mm_struct { | |||
| 276 | #endif | 276 | #endif |
| 277 | }; | 277 | }; |
| 278 | 278 | ||
| 279 | /* Future-safe accessor for struct mm_struct's cpu_vm_mask. */ | ||
| 280 | #define mm_cpumask(mm) (&(mm)->cpu_vm_mask) | ||
| 281 | |||
| 279 | #endif /* _LINUX_MM_TYPES_H */ | 282 | #endif /* _LINUX_MM_TYPES_H */ |
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index ec54785d34f9..659366734f3f 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h | |||
| @@ -1079,6 +1079,7 @@ extern void synchronize_net(void); | |||
| 1079 | extern int register_netdevice_notifier(struct notifier_block *nb); | 1079 | extern int register_netdevice_notifier(struct notifier_block *nb); |
| 1080 | extern int unregister_netdevice_notifier(struct notifier_block *nb); | 1080 | extern int unregister_netdevice_notifier(struct notifier_block *nb); |
| 1081 | extern int init_dummy_netdev(struct net_device *dev); | 1081 | extern int init_dummy_netdev(struct net_device *dev); |
| 1082 | extern void netdev_resync_ops(struct net_device *dev); | ||
| 1082 | 1083 | ||
| 1083 | extern int call_netdevice_notifiers(unsigned long val, struct net_device *dev); | 1084 | extern int call_netdevice_notifiers(unsigned long val, struct net_device *dev); |
| 1084 | extern struct net_device *dev_get_by_index(struct net *net, int ifindex); | 1085 | extern struct net_device *dev_get_by_index(struct net *net, int ifindex); |
diff --git a/include/linux/netfilter/xt_NFLOG.h b/include/linux/netfilter/xt_NFLOG.h index cdcd0ed58f7a..4b36aeb46a10 100644 --- a/include/linux/netfilter/xt_NFLOG.h +++ b/include/linux/netfilter/xt_NFLOG.h | |||
| @@ -2,7 +2,7 @@ | |||
| 2 | #define _XT_NFLOG_TARGET | 2 | #define _XT_NFLOG_TARGET |
| 3 | 3 | ||
| 4 | #define XT_NFLOG_DEFAULT_GROUP 0x1 | 4 | #define XT_NFLOG_DEFAULT_GROUP 0x1 |
| 5 | #define XT_NFLOG_DEFAULT_THRESHOLD 1 | 5 | #define XT_NFLOG_DEFAULT_THRESHOLD 0 |
| 6 | 6 | ||
| 7 | #define XT_NFLOG_MASK 0x0 | 7 | #define XT_NFLOG_MASK 0x0 |
| 8 | 8 | ||
diff --git a/include/linux/rcuclassic.h b/include/linux/rcuclassic.h index f3f697df1d71..80044a4f3ab9 100644 --- a/include/linux/rcuclassic.h +++ b/include/linux/rcuclassic.h | |||
| @@ -181,4 +181,10 @@ extern long rcu_batches_completed_bh(void); | |||
| 181 | #define rcu_enter_nohz() do { } while (0) | 181 | #define rcu_enter_nohz() do { } while (0) |
| 182 | #define rcu_exit_nohz() do { } while (0) | 182 | #define rcu_exit_nohz() do { } while (0) |
| 183 | 183 | ||
| 184 | /* A context switch is a grace period for rcuclassic. */ | ||
| 185 | static inline int rcu_blocking_is_gp(void) | ||
| 186 | { | ||
| 187 | return num_online_cpus() == 1; | ||
| 188 | } | ||
| 189 | |||
| 184 | #endif /* __LINUX_RCUCLASSIC_H */ | 190 | #endif /* __LINUX_RCUCLASSIC_H */ |
diff --git a/include/linux/rcupdate.h b/include/linux/rcupdate.h index 921340a7b71c..528343e6da51 100644 --- a/include/linux/rcupdate.h +++ b/include/linux/rcupdate.h | |||
| @@ -52,6 +52,9 @@ struct rcu_head { | |||
| 52 | void (*func)(struct rcu_head *head); | 52 | void (*func)(struct rcu_head *head); |
| 53 | }; | 53 | }; |
| 54 | 54 | ||
| 55 | /* Internal to kernel, but needed by rcupreempt.h. */ | ||
| 56 | extern int rcu_scheduler_active; | ||
| 57 | |||
| 55 | #if defined(CONFIG_CLASSIC_RCU) | 58 | #if defined(CONFIG_CLASSIC_RCU) |
| 56 | #include <linux/rcuclassic.h> | 59 | #include <linux/rcuclassic.h> |
| 57 | #elif defined(CONFIG_TREE_RCU) | 60 | #elif defined(CONFIG_TREE_RCU) |
| @@ -265,6 +268,7 @@ extern void rcu_barrier_sched(void); | |||
| 265 | 268 | ||
| 266 | /* Internal to kernel */ | 269 | /* Internal to kernel */ |
| 267 | extern void rcu_init(void); | 270 | extern void rcu_init(void); |
| 271 | extern void rcu_scheduler_starting(void); | ||
| 268 | extern int rcu_needs_cpu(int cpu); | 272 | extern int rcu_needs_cpu(int cpu); |
| 269 | 273 | ||
| 270 | #endif /* __LINUX_RCUPDATE_H */ | 274 | #endif /* __LINUX_RCUPDATE_H */ |
diff --git a/include/linux/rcupreempt.h b/include/linux/rcupreempt.h index 3e05c09b54a2..74304b4538d8 100644 --- a/include/linux/rcupreempt.h +++ b/include/linux/rcupreempt.h | |||
| @@ -142,4 +142,19 @@ static inline void rcu_exit_nohz(void) | |||
| 142 | #define rcu_exit_nohz() do { } while (0) | 142 | #define rcu_exit_nohz() do { } while (0) |
| 143 | #endif /* CONFIG_NO_HZ */ | 143 | #endif /* CONFIG_NO_HZ */ |
| 144 | 144 | ||
| 145 | /* | ||
| 146 | * A context switch is a grace period for rcupreempt synchronize_rcu() | ||
| 147 | * only during early boot, before the scheduler has been initialized. | ||
| 148 | * So, how the heck do we get a context switch? Well, if the caller | ||
| 149 | * invokes synchronize_rcu(), they are willing to accept a context | ||
| 150 | * switch, so we simply pretend that one happened. | ||
| 151 | * | ||
| 152 | * After boot, there might be a blocked or preempted task in an RCU | ||
| 153 | * read-side critical section, so we cannot then take the fastpath. | ||
| 154 | */ | ||
| 155 | static inline int rcu_blocking_is_gp(void) | ||
| 156 | { | ||
| 157 | return num_online_cpus() == 1 && !rcu_scheduler_active; | ||
| 158 | } | ||
| 159 | |||
| 145 | #endif /* __LINUX_RCUPREEMPT_H */ | 160 | #endif /* __LINUX_RCUPREEMPT_H */ |
diff --git a/include/linux/rcutree.h b/include/linux/rcutree.h index d4368b7975c3..a722fb67bb2d 100644 --- a/include/linux/rcutree.h +++ b/include/linux/rcutree.h | |||
| @@ -326,4 +326,10 @@ static inline void rcu_exit_nohz(void) | |||
| 326 | } | 326 | } |
| 327 | #endif /* CONFIG_NO_HZ */ | 327 | #endif /* CONFIG_NO_HZ */ |
| 328 | 328 | ||
| 329 | /* A context switch is a grace period for rcutree. */ | ||
| 330 | static inline int rcu_blocking_is_gp(void) | ||
| 331 | { | ||
| 332 | return num_online_cpus() == 1; | ||
| 333 | } | ||
| 334 | |||
| 329 | #endif /* __LINUX_RCUTREE_H */ | 335 | #endif /* __LINUX_RCUTREE_H */ |
diff --git a/include/linux/sched.h b/include/linux/sched.h index 8981e52c714f..011db2f4c94c 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h | |||
| @@ -1419,6 +1419,9 @@ struct task_struct { | |||
| 1419 | #endif | 1419 | #endif |
| 1420 | }; | 1420 | }; |
| 1421 | 1421 | ||
| 1422 | /* Future-safe accessor for struct task_struct's cpus_allowed. */ | ||
| 1423 | #define tsk_cpumask(tsk) (&(tsk)->cpus_allowed) | ||
| 1424 | |||
| 1422 | /* | 1425 | /* |
| 1423 | * Priority of a process goes from 0..MAX_PRIO-1, valid RT | 1426 | * Priority of a process goes from 0..MAX_PRIO-1, valid RT |
| 1424 | * priority is 0..MAX_RT_PRIO-1, and SCHED_NORMAL/SCHED_BATCH | 1427 | * priority is 0..MAX_RT_PRIO-1, and SCHED_NORMAL/SCHED_BATCH |
| @@ -2291,9 +2294,13 @@ extern long sched_group_rt_runtime(struct task_group *tg); | |||
| 2291 | extern int sched_group_set_rt_period(struct task_group *tg, | 2294 | extern int sched_group_set_rt_period(struct task_group *tg, |
| 2292 | long rt_period_us); | 2295 | long rt_period_us); |
| 2293 | extern long sched_group_rt_period(struct task_group *tg); | 2296 | extern long sched_group_rt_period(struct task_group *tg); |
| 2297 | extern int sched_rt_can_attach(struct task_group *tg, struct task_struct *tsk); | ||
| 2294 | #endif | 2298 | #endif |
| 2295 | #endif | 2299 | #endif |
| 2296 | 2300 | ||
| 2301 | extern int task_can_switch_user(struct user_struct *up, | ||
| 2302 | struct task_struct *tsk); | ||
| 2303 | |||
| 2297 | #ifdef CONFIG_TASK_XACCT | 2304 | #ifdef CONFIG_TASK_XACCT |
| 2298 | static inline void add_rchar(struct task_struct *tsk, ssize_t amt) | 2305 | static inline void add_rchar(struct task_struct *tsk, ssize_t amt) |
| 2299 | { | 2306 | { |
diff --git a/include/linux/serio.h b/include/linux/serio.h index 1bcb357a01a1..e0417e4d3f15 100644 --- a/include/linux/serio.h +++ b/include/linux/serio.h | |||
| @@ -212,7 +212,7 @@ static inline void serio_unpin_driver(struct serio *serio) | |||
| 212 | #define SERIO_FUJITSU 0x35 | 212 | #define SERIO_FUJITSU 0x35 |
| 213 | #define SERIO_ZHENHUA 0x36 | 213 | #define SERIO_ZHENHUA 0x36 |
| 214 | #define SERIO_INEXIO 0x37 | 214 | #define SERIO_INEXIO 0x37 |
| 215 | #define SERIO_TOUCHIT213 0x37 | 215 | #define SERIO_TOUCHIT213 0x38 |
| 216 | #define SERIO_W8001 0x39 | 216 | #define SERIO_W8001 0x39 |
| 217 | 217 | ||
| 218 | #endif | 218 | #endif |
diff --git a/include/linux/user_namespace.h b/include/linux/user_namespace.h index 315bcd375224..cc4f45361dbb 100644 --- a/include/linux/user_namespace.h +++ b/include/linux/user_namespace.h | |||
| @@ -13,6 +13,7 @@ struct user_namespace { | |||
| 13 | struct kref kref; | 13 | struct kref kref; |
| 14 | struct hlist_head uidhash_table[UIDHASH_SZ]; | 14 | struct hlist_head uidhash_table[UIDHASH_SZ]; |
| 15 | struct user_struct *creator; | 15 | struct user_struct *creator; |
| 16 | struct work_struct destroyer; | ||
| 16 | }; | 17 | }; |
| 17 | 18 | ||
| 18 | extern struct user_namespace init_user_ns; | 19 | extern struct user_namespace init_user_ns; |
