diff options
| author | J. Bruce Fields <bfields@citi.umich.edu> | 2009-06-15 21:08:07 -0400 |
|---|---|---|
| committer | J. Bruce Fields <bfields@citi.umich.edu> | 2009-06-15 21:08:07 -0400 |
| commit | 7eef4091a653c243a87e5375c54504cc03bec4d8 (patch) | |
| tree | f65b77f830b2c8f7d014512badfef5df0d591ee9 /include | |
| parent | 0a93a47f042c459f0f46942c3a920e3c81878031 (diff) | |
| parent | 07a2039b8eb0af4ff464efd3dfd95de5c02648c6 (diff) | |
Merge commit 'v2.6.30' into for-2.6.31
Diffstat (limited to 'include')
79 files changed, 481 insertions, 133 deletions
diff --git a/include/acpi/processor.h b/include/acpi/processor.h index b09c4fde9725..4927c063347c 100644 --- a/include/acpi/processor.h +++ b/include/acpi/processor.h | |||
| @@ -84,7 +84,6 @@ struct acpi_processor_power { | |||
| 84 | struct acpi_processor_cx *state; | 84 | struct acpi_processor_cx *state; |
| 85 | unsigned long bm_check_timestamp; | 85 | unsigned long bm_check_timestamp; |
| 86 | u32 default_state; | 86 | u32 default_state; |
| 87 | u32 bm_activity; | ||
| 88 | int count; | 87 | int count; |
| 89 | struct acpi_processor_cx states[ACPI_PROCESSOR_MAX_POWER]; | 88 | struct acpi_processor_cx states[ACPI_PROCESSOR_MAX_POWER]; |
| 90 | int timer_broadcast_on_state; | 89 | int timer_broadcast_on_state; |
diff --git a/include/acpi/video.h b/include/acpi/video.h index f0275bb79ce4..af6fe95fd3d0 100644 --- a/include/acpi/video.h +++ b/include/acpi/video.h | |||
| @@ -3,8 +3,10 @@ | |||
| 3 | 3 | ||
| 4 | #if (defined CONFIG_ACPI_VIDEO || defined CONFIG_ACPI_VIDEO_MODULE) | 4 | #if (defined CONFIG_ACPI_VIDEO || defined CONFIG_ACPI_VIDEO_MODULE) |
| 5 | extern int acpi_video_register(void); | 5 | extern int acpi_video_register(void); |
| 6 | extern int acpi_video_exit(void); | ||
| 6 | #else | 7 | #else |
| 7 | static inline int acpi_video_register(void) { return 0; } | 8 | static inline int acpi_video_register(void) { return 0; } |
| 9 | static inline void acpi_video_exit(void) { return; } | ||
| 8 | #endif | 10 | #endif |
| 9 | 11 | ||
| 10 | #endif | 12 | #endif |
diff --git a/include/asm-generic/atomic.h b/include/asm-generic/atomic.h index 7abdaa91ccd3..3673a13b6703 100644 --- a/include/asm-generic/atomic.h +++ b/include/asm-generic/atomic.h | |||
| @@ -132,9 +132,9 @@ static inline long atomic_long_add_unless(atomic_long_t *l, long a, long u) | |||
| 132 | #define atomic_long_inc_not_zero(l) atomic64_inc_not_zero((atomic64_t *)(l)) | 132 | #define atomic_long_inc_not_zero(l) atomic64_inc_not_zero((atomic64_t *)(l)) |
| 133 | 133 | ||
| 134 | #define atomic_long_cmpxchg(l, old, new) \ | 134 | #define atomic_long_cmpxchg(l, old, new) \ |
| 135 | (atomic_cmpxchg((atomic64_t *)(l), (old), (new))) | 135 | (atomic64_cmpxchg((atomic64_t *)(l), (old), (new))) |
| 136 | #define atomic_long_xchg(v, new) \ | 136 | #define atomic_long_xchg(v, new) \ |
| 137 | (atomic_xchg((atomic64_t *)(l), (new))) | 137 | (atomic64_xchg((atomic64_t *)(l), (new))) |
| 138 | 138 | ||
| 139 | #else /* BITS_PER_LONG == 64 */ | 139 | #else /* BITS_PER_LONG == 64 */ |
| 140 | 140 | ||
diff --git a/include/asm-generic/bug.h b/include/asm-generic/bug.h index e727fe0d1451..4b6755984d24 100644 --- a/include/asm-generic/bug.h +++ b/include/asm-generic/bug.h | |||
| @@ -58,12 +58,13 @@ struct bug_entry { | |||
| 58 | */ | 58 | */ |
| 59 | #ifndef __WARN | 59 | #ifndef __WARN |
| 60 | #ifndef __ASSEMBLY__ | 60 | #ifndef __ASSEMBLY__ |
| 61 | extern void warn_slowpath(const char *file, const int line, | 61 | extern void warn_slowpath_fmt(const char *file, const int line, |
| 62 | const char *fmt, ...) __attribute__((format(printf, 3, 4))); | 62 | const char *fmt, ...) __attribute__((format(printf, 3, 4))); |
| 63 | extern void warn_slowpath_null(const char *file, const int line); | ||
| 63 | #define WANT_WARN_ON_SLOWPATH | 64 | #define WANT_WARN_ON_SLOWPATH |
| 64 | #endif | 65 | #endif |
| 65 | #define __WARN() warn_slowpath(__FILE__, __LINE__, NULL) | 66 | #define __WARN() warn_slowpath_null(__FILE__, __LINE__) |
| 66 | #define __WARN_printf(arg...) warn_slowpath(__FILE__, __LINE__, arg) | 67 | #define __WARN_printf(arg...) warn_slowpath_fmt(__FILE__, __LINE__, arg) |
| 67 | #else | 68 | #else |
| 68 | #define __WARN_printf(arg...) do { printk(arg); __WARN(); } while (0) | 69 | #define __WARN_printf(arg...) do { printk(arg); __WARN(); } while (0) |
| 69 | #endif | 70 | #endif |
diff --git a/include/asm-generic/local.h b/include/asm-generic/local.h index dbd6150763e9..fc218444e315 100644 --- a/include/asm-generic/local.h +++ b/include/asm-generic/local.h | |||
| @@ -42,7 +42,7 @@ typedef struct | |||
| 42 | 42 | ||
| 43 | #define local_cmpxchg(l, o, n) atomic_long_cmpxchg((&(l)->a), (o), (n)) | 43 | #define local_cmpxchg(l, o, n) atomic_long_cmpxchg((&(l)->a), (o), (n)) |
| 44 | #define local_xchg(l, n) atomic_long_xchg((&(l)->a), (n)) | 44 | #define local_xchg(l, n) atomic_long_xchg((&(l)->a), (n)) |
| 45 | #define local_add_unless(l, a, u) atomic_long_add_unless((&(l)->a), (a), (u)) | 45 | #define local_add_unless(l, _a, u) atomic_long_add_unless((&(l)->a), (_a), (u)) |
| 46 | #define local_inc_not_zero(l) atomic_long_inc_not_zero(&(l)->a) | 46 | #define local_inc_not_zero(l) atomic_long_inc_not_zero(&(l)->a) |
| 47 | 47 | ||
| 48 | /* Non-atomic variants, ie. preemption disabled and won't be touched | 48 | /* Non-atomic variants, ie. preemption disabled and won't be touched |
diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h index 7fa660fd449c..89853bcd27a6 100644 --- a/include/asm-generic/vmlinux.lds.h +++ b/include/asm-generic/vmlinux.lds.h | |||
| @@ -1,3 +1,5 @@ | |||
| 1 | #include <linux/section-names.h> | ||
| 2 | |||
| 1 | #ifndef LOAD_OFFSET | 3 | #ifndef LOAD_OFFSET |
| 2 | #define LOAD_OFFSET 0 | 4 | #define LOAD_OFFSET 0 |
| 3 | #endif | 5 | #endif |
| @@ -88,7 +90,6 @@ | |||
| 88 | /* .data section */ | 90 | /* .data section */ |
| 89 | #define DATA_DATA \ | 91 | #define DATA_DATA \ |
| 90 | *(.data) \ | 92 | *(.data) \ |
| 91 | *(.data.init.refok) \ | ||
| 92 | *(.ref.data) \ | 93 | *(.ref.data) \ |
| 93 | DEV_KEEP(init.data) \ | 94 | DEV_KEEP(init.data) \ |
| 94 | DEV_KEEP(exit.data) \ | 95 | DEV_KEEP(exit.data) \ |
| @@ -287,8 +288,6 @@ | |||
| 287 | *(.text.hot) \ | 288 | *(.text.hot) \ |
| 288 | *(.text) \ | 289 | *(.text) \ |
| 289 | *(.ref.text) \ | 290 | *(.ref.text) \ |
| 290 | *(.text.init.refok) \ | ||
| 291 | *(.exit.text.refok) \ | ||
| 292 | DEV_KEEP(init.text) \ | 291 | DEV_KEEP(init.text) \ |
| 293 | DEV_KEEP(exit.text) \ | 292 | DEV_KEEP(exit.text) \ |
| 294 | CPU_KEEP(init.text) \ | 293 | CPU_KEEP(init.text) \ |
| @@ -331,7 +330,7 @@ | |||
| 331 | #endif | 330 | #endif |
| 332 | 331 | ||
| 333 | /* Section used for early init (in .S files) */ | 332 | /* Section used for early init (in .S files) */ |
| 334 | #define HEAD_TEXT *(.head.text) | 333 | #define HEAD_TEXT *(HEAD_TEXT_SECTION) |
| 335 | 334 | ||
| 336 | /* init and exit section handling */ | 335 | /* init and exit section handling */ |
| 337 | #define INIT_DATA \ | 336 | #define INIT_DATA \ |
diff --git a/include/drm/drmP.h b/include/drm/drmP.h index c8c422151431..b84d8ae35e6f 100644 --- a/include/drm/drmP.h +++ b/include/drm/drmP.h | |||
| @@ -1519,6 +1519,30 @@ static __inline__ void *drm_calloc(size_t nmemb, size_t size, int area) | |||
| 1519 | { | 1519 | { |
| 1520 | return kcalloc(nmemb, size, GFP_KERNEL); | 1520 | return kcalloc(nmemb, size, GFP_KERNEL); |
| 1521 | } | 1521 | } |
| 1522 | |||
| 1523 | static __inline__ void *drm_calloc_large(size_t nmemb, size_t size) | ||
| 1524 | { | ||
| 1525 | u8 *addr; | ||
| 1526 | |||
| 1527 | if (size <= PAGE_SIZE) | ||
| 1528 | return kcalloc(nmemb, size, GFP_KERNEL); | ||
| 1529 | |||
| 1530 | addr = vmalloc(nmemb * size); | ||
| 1531 | if (!addr) | ||
| 1532 | return NULL; | ||
| 1533 | |||
| 1534 | memset(addr, 0, nmemb * size); | ||
| 1535 | |||
| 1536 | return addr; | ||
| 1537 | } | ||
| 1538 | |||
| 1539 | static __inline void drm_free_large(void *ptr) | ||
| 1540 | { | ||
| 1541 | if (!is_vmalloc_addr(ptr)) | ||
| 1542 | return kfree(ptr); | ||
| 1543 | |||
| 1544 | vfree(ptr); | ||
| 1545 | } | ||
| 1522 | #else | 1546 | #else |
| 1523 | extern void *drm_alloc(size_t size, int area); | 1547 | extern void *drm_alloc(size_t size, int area); |
| 1524 | extern void drm_free(void *pt, size_t size, int area); | 1548 | extern void drm_free(void *pt, size_t size, int area); |
diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h index 3c1924c010e8..7300fb866767 100644 --- a/include/drm/drm_crtc.h +++ b/include/drm/drm_crtc.h | |||
| @@ -471,6 +471,9 @@ struct drm_connector { | |||
| 471 | u32 property_ids[DRM_CONNECTOR_MAX_PROPERTY]; | 471 | u32 property_ids[DRM_CONNECTOR_MAX_PROPERTY]; |
| 472 | uint64_t property_values[DRM_CONNECTOR_MAX_PROPERTY]; | 472 | uint64_t property_values[DRM_CONNECTOR_MAX_PROPERTY]; |
| 473 | 473 | ||
| 474 | /* requested DPMS state */ | ||
| 475 | int dpms; | ||
| 476 | |||
| 474 | void *helper_private; | 477 | void *helper_private; |
| 475 | 478 | ||
| 476 | uint32_t encoder_ids[DRM_CONNECTOR_MAX_ENCODER]; | 479 | uint32_t encoder_ids[DRM_CONNECTOR_MAX_ENCODER]; |
diff --git a/include/drm/drm_crtc_helper.h b/include/drm/drm_crtc_helper.h index ec073d8288d9..6769ff6c1bc0 100644 --- a/include/drm/drm_crtc_helper.h +++ b/include/drm/drm_crtc_helper.h | |||
| @@ -99,6 +99,8 @@ extern bool drm_crtc_helper_set_mode(struct drm_crtc *crtc, | |||
| 99 | struct drm_framebuffer *old_fb); | 99 | struct drm_framebuffer *old_fb); |
| 100 | extern bool drm_helper_crtc_in_use(struct drm_crtc *crtc); | 100 | extern bool drm_helper_crtc_in_use(struct drm_crtc *crtc); |
| 101 | 101 | ||
| 102 | extern void drm_helper_connector_dpms(struct drm_connector *connector, int mode); | ||
| 103 | |||
| 102 | extern int drm_helper_mode_fill_fb_struct(struct drm_framebuffer *fb, | 104 | extern int drm_helper_mode_fill_fb_struct(struct drm_framebuffer *fb, |
| 103 | struct drm_mode_fb_cmd *mode_cmd); | 105 | struct drm_mode_fb_cmd *mode_cmd); |
| 104 | 106 | ||
diff --git a/include/drm/drm_pciids.h b/include/drm/drm_pciids.h index 9477af01a639..fc55db780199 100644 --- a/include/drm/drm_pciids.h +++ b/include/drm/drm_pciids.h | |||
| @@ -532,6 +532,7 @@ | |||
| 532 | {0x8086, 0x2e02, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \ | 532 | {0x8086, 0x2e02, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \ |
| 533 | {0x8086, 0x2e12, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \ | 533 | {0x8086, 0x2e12, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \ |
| 534 | {0x8086, 0x2e22, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \ | 534 | {0x8086, 0x2e22, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \ |
| 535 | {0x8086, 0x2e32, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \ | ||
| 535 | {0x8086, 0xa001, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \ | 536 | {0x8086, 0xa001, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \ |
| 536 | {0x8086, 0xa011, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \ | 537 | {0x8086, 0xa011, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \ |
| 537 | {0x8086, 0x35e8, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \ | 538 | {0x8086, 0x35e8, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \ |
diff --git a/include/drm/i915_drm.h b/include/drm/i915_drm.h index 95962fa8398a..8e1e92583fbc 100644 --- a/include/drm/i915_drm.h +++ b/include/drm/i915_drm.h | |||
| @@ -184,6 +184,7 @@ typedef struct _drm_i915_sarea { | |||
| 184 | #define DRM_I915_GEM_GET_TILING 0x22 | 184 | #define DRM_I915_GEM_GET_TILING 0x22 |
| 185 | #define DRM_I915_GEM_GET_APERTURE 0x23 | 185 | #define DRM_I915_GEM_GET_APERTURE 0x23 |
| 186 | #define DRM_I915_GEM_MMAP_GTT 0x24 | 186 | #define DRM_I915_GEM_MMAP_GTT 0x24 |
| 187 | #define DRM_I915_GET_PIPE_FROM_CRTC_ID 0x25 | ||
| 187 | 188 | ||
| 188 | #define DRM_IOCTL_I915_INIT DRM_IOW( DRM_COMMAND_BASE + DRM_I915_INIT, drm_i915_init_t) | 189 | #define DRM_IOCTL_I915_INIT DRM_IOW( DRM_COMMAND_BASE + DRM_I915_INIT, drm_i915_init_t) |
| 189 | #define DRM_IOCTL_I915_FLUSH DRM_IO ( DRM_COMMAND_BASE + DRM_I915_FLUSH) | 190 | #define DRM_IOCTL_I915_FLUSH DRM_IO ( DRM_COMMAND_BASE + DRM_I915_FLUSH) |
| @@ -219,6 +220,7 @@ typedef struct _drm_i915_sarea { | |||
| 219 | #define DRM_IOCTL_I915_GEM_SET_TILING DRM_IOWR (DRM_COMMAND_BASE + DRM_I915_GEM_SET_TILING, struct drm_i915_gem_set_tiling) | 220 | #define DRM_IOCTL_I915_GEM_SET_TILING DRM_IOWR (DRM_COMMAND_BASE + DRM_I915_GEM_SET_TILING, struct drm_i915_gem_set_tiling) |
| 220 | #define DRM_IOCTL_I915_GEM_GET_TILING DRM_IOWR (DRM_COMMAND_BASE + DRM_I915_GEM_GET_TILING, struct drm_i915_gem_get_tiling) | 221 | #define DRM_IOCTL_I915_GEM_GET_TILING DRM_IOWR (DRM_COMMAND_BASE + DRM_I915_GEM_GET_TILING, struct drm_i915_gem_get_tiling) |
| 221 | #define DRM_IOCTL_I915_GEM_GET_APERTURE DRM_IOR (DRM_COMMAND_BASE + DRM_I915_GEM_GET_APERTURE, struct drm_i915_gem_get_aperture) | 222 | #define DRM_IOCTL_I915_GEM_GET_APERTURE DRM_IOR (DRM_COMMAND_BASE + DRM_I915_GEM_GET_APERTURE, struct drm_i915_gem_get_aperture) |
| 223 | #define DRM_IOCTL_I915_GET_PIPE_FROM_CRTC_ID DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GET_PIPE_FROM_CRTC_ID, struct drm_intel_get_pipe_from_crtc_id) | ||
| 222 | 224 | ||
| 223 | /* Allow drivers to submit batchbuffers directly to hardware, relying | 225 | /* Allow drivers to submit batchbuffers directly to hardware, relying |
| 224 | * on the security mechanisms provided by hardware. | 226 | * on the security mechanisms provided by hardware. |
| @@ -657,4 +659,12 @@ struct drm_i915_gem_get_aperture { | |||
| 657 | __u64 aper_available_size; | 659 | __u64 aper_available_size; |
| 658 | }; | 660 | }; |
| 659 | 661 | ||
| 662 | struct drm_i915_get_pipe_from_crtc_id { | ||
| 663 | /** ID of CRTC being requested **/ | ||
| 664 | __u32 crtc_id; | ||
| 665 | |||
| 666 | /** pipe of requested CRTC **/ | ||
| 667 | __u32 pipe; | ||
| 668 | }; | ||
| 669 | |||
| 660 | #endif /* _I915_DRM_H_ */ | 670 | #endif /* _I915_DRM_H_ */ |
diff --git a/include/linux/Kbuild b/include/linux/Kbuild index ca9b9b9bd331..3f0eaa397ef5 100644 --- a/include/linux/Kbuild +++ b/include/linux/Kbuild | |||
| @@ -138,6 +138,7 @@ header-y += qnxtypes.h | |||
| 138 | header-y += radeonfb.h | 138 | header-y += radeonfb.h |
| 139 | header-y += raw.h | 139 | header-y += raw.h |
| 140 | header-y += resource.h | 140 | header-y += resource.h |
| 141 | header-y += romfs_fs.h | ||
| 141 | header-y += rose.h | 142 | header-y += rose.h |
| 142 | header-y += serial_reg.h | 143 | header-y += serial_reg.h |
| 143 | header-y += smbno.h | 144 | header-y += smbno.h |
| @@ -314,7 +315,6 @@ unifdef-y += irqnr.h | |||
| 314 | unifdef-y += reboot.h | 315 | unifdef-y += reboot.h |
| 315 | unifdef-y += reiserfs_fs.h | 316 | unifdef-y += reiserfs_fs.h |
| 316 | unifdef-y += reiserfs_xattr.h | 317 | unifdef-y += reiserfs_xattr.h |
| 317 | unifdef-y += romfs_fs.h | ||
| 318 | unifdef-y += route.h | 318 | unifdef-y += route.h |
| 319 | unifdef-y += rtc.h | 319 | unifdef-y += rtc.h |
| 320 | unifdef-y += rtnetlink.h | 320 | unifdef-y += rtnetlink.h |
diff --git a/include/linux/acpi.h b/include/linux/acpi.h index 6586cbd0d4af..88be890ee3c7 100644 --- a/include/linux/acpi.h +++ b/include/linux/acpi.h | |||
| @@ -111,6 +111,7 @@ int acpi_register_ioapic(acpi_handle handle, u64 phys_addr, u32 gsi_base); | |||
| 111 | int acpi_unregister_ioapic(acpi_handle handle, u32 gsi_base); | 111 | int acpi_unregister_ioapic(acpi_handle handle, u32 gsi_base); |
| 112 | void acpi_irq_stats_init(void); | 112 | void acpi_irq_stats_init(void); |
| 113 | extern u32 acpi_irq_handled; | 113 | extern u32 acpi_irq_handled; |
| 114 | extern u32 acpi_irq_not_handled; | ||
| 114 | 115 | ||
| 115 | extern struct acpi_mcfg_allocation *pci_mmcfg_config; | 116 | extern struct acpi_mcfg_allocation *pci_mmcfg_config; |
| 116 | extern int pci_mmcfg_config_num; | 117 | extern int pci_mmcfg_config_num; |
diff --git a/include/linux/amba/bus.h b/include/linux/amba/bus.h index 51e6e54b2aa1..9b93cafa82a0 100644 --- a/include/linux/amba/bus.h +++ b/include/linux/amba/bus.h | |||
| @@ -28,7 +28,7 @@ struct amba_id { | |||
| 28 | 28 | ||
| 29 | struct amba_driver { | 29 | struct amba_driver { |
| 30 | struct device_driver drv; | 30 | struct device_driver drv; |
| 31 | int (*probe)(struct amba_device *, void *); | 31 | int (*probe)(struct amba_device *, struct amba_id *); |
| 32 | int (*remove)(struct amba_device *); | 32 | int (*remove)(struct amba_device *); |
| 33 | void (*shutdown)(struct amba_device *); | 33 | void (*shutdown)(struct amba_device *); |
| 34 | int (*suspend)(struct amba_device *, pm_message_t); | 34 | int (*suspend)(struct amba_device *, pm_message_t); |
diff --git a/include/linux/amba/serial.h b/include/linux/amba/serial.h index 48ee32a18ac5..64a982ea5d5f 100644 --- a/include/linux/amba/serial.h +++ b/include/linux/amba/serial.h | |||
| @@ -159,6 +159,7 @@ | |||
| 159 | #define UART01x_FR_MODEM_ANY (UART01x_FR_DCD|UART01x_FR_DSR|UART01x_FR_CTS) | 159 | #define UART01x_FR_MODEM_ANY (UART01x_FR_DCD|UART01x_FR_DSR|UART01x_FR_CTS) |
| 160 | 160 | ||
| 161 | #ifndef __ASSEMBLY__ | 161 | #ifndef __ASSEMBLY__ |
| 162 | struct amba_device; /* in uncompress this is included but amba/bus.h is not */ | ||
| 162 | struct amba_pl010_data { | 163 | struct amba_pl010_data { |
| 163 | void (*set_mctrl)(struct amba_device *dev, void __iomem *base, unsigned int mctrl); | 164 | void (*set_mctrl)(struct amba_device *dev, void __iomem *base, unsigned int mctrl); |
| 164 | }; | 165 | }; |
diff --git a/include/linux/ata.h b/include/linux/ata.h index cb79b7a208e1..915da43edee1 100644 --- a/include/linux/ata.h +++ b/include/linux/ata.h | |||
| @@ -730,6 +730,34 @@ static inline int ata_id_has_unload(const u16 *id) | |||
| 730 | return 0; | 730 | return 0; |
| 731 | } | 731 | } |
| 732 | 732 | ||
| 733 | static inline int ata_id_form_factor(const u16 *id) | ||
| 734 | { | ||
| 735 | u16 val = id[168]; | ||
| 736 | |||
| 737 | if (ata_id_major_version(id) < 7 || val == 0 || val == 0xffff) | ||
| 738 | return 0; | ||
| 739 | |||
| 740 | val &= 0xf; | ||
| 741 | |||
| 742 | if (val > 5) | ||
| 743 | return 0; | ||
| 744 | |||
| 745 | return val; | ||
| 746 | } | ||
| 747 | |||
| 748 | static inline int ata_id_rotation_rate(const u16 *id) | ||
| 749 | { | ||
| 750 | u16 val = id[217]; | ||
| 751 | |||
| 752 | if (ata_id_major_version(id) < 7 || val == 0 || val == 0xffff) | ||
| 753 | return 0; | ||
| 754 | |||
| 755 | if (val > 1 && val < 0x401) | ||
| 756 | return 0; | ||
| 757 | |||
| 758 | return val; | ||
| 759 | } | ||
| 760 | |||
| 733 | static inline int ata_id_has_trim(const u16 *id) | 761 | static inline int ata_id_has_trim(const u16 *id) |
| 734 | { | 762 | { |
| 735 | if (ata_id_major_version(id) >= 7 && | 763 | if (ata_id_major_version(id) >= 7 && |
diff --git a/include/linux/auto_fs.h b/include/linux/auto_fs.h index 63265852b7d1..7b09c8348fd3 100644 --- a/include/linux/auto_fs.h +++ b/include/linux/auto_fs.h | |||
| @@ -14,13 +14,12 @@ | |||
| 14 | #ifndef _LINUX_AUTO_FS_H | 14 | #ifndef _LINUX_AUTO_FS_H |
| 15 | #define _LINUX_AUTO_FS_H | 15 | #define _LINUX_AUTO_FS_H |
| 16 | 16 | ||
| 17 | #include <linux/types.h> | ||
| 17 | #ifdef __KERNEL__ | 18 | #ifdef __KERNEL__ |
| 18 | #include <linux/fs.h> | 19 | #include <linux/fs.h> |
| 19 | #include <linux/limits.h> | 20 | #include <linux/limits.h> |
| 20 | #include <linux/types.h> | ||
| 21 | #include <linux/ioctl.h> | 21 | #include <linux/ioctl.h> |
| 22 | #else | 22 | #else |
| 23 | #include <asm/types.h> | ||
| 24 | #include <sys/ioctl.h> | 23 | #include <sys/ioctl.h> |
| 25 | #endif /* __KERNEL__ */ | 24 | #endif /* __KERNEL__ */ |
| 26 | 25 | ||
diff --git a/include/linux/binfmts.h b/include/linux/binfmts.h index 6638b8148de7..61ee18c1bdb4 100644 --- a/include/linux/binfmts.h +++ b/include/linux/binfmts.h | |||
| @@ -82,7 +82,19 @@ struct linux_binfmt { | |||
| 82 | int hasvdso; | 82 | int hasvdso; |
| 83 | }; | 83 | }; |
| 84 | 84 | ||
| 85 | extern int register_binfmt(struct linux_binfmt *); | 85 | extern int __register_binfmt(struct linux_binfmt *fmt, int insert); |
| 86 | |||
| 87 | /* Registration of default binfmt handlers */ | ||
| 88 | static inline int register_binfmt(struct linux_binfmt *fmt) | ||
| 89 | { | ||
| 90 | return __register_binfmt(fmt, 0); | ||
| 91 | } | ||
| 92 | /* Same as above, but adds a new binfmt at the top of the list */ | ||
| 93 | static inline int insert_binfmt(struct linux_binfmt *fmt) | ||
| 94 | { | ||
| 95 | return __register_binfmt(fmt, 1); | ||
| 96 | } | ||
| 97 | |||
| 86 | extern void unregister_binfmt(struct linux_binfmt *); | 98 | extern void unregister_binfmt(struct linux_binfmt *); |
| 87 | 99 | ||
| 88 | extern int prepare_binprm(struct linux_binprm *); | 100 | extern int prepare_binprm(struct linux_binprm *); |
diff --git a/include/linux/bio.h b/include/linux/bio.h index b89cf2d82898..7b214fd672a2 100644 --- a/include/linux/bio.h +++ b/include/linux/bio.h | |||
| @@ -132,6 +132,7 @@ struct bio { | |||
| 132 | * top 4 bits of bio flags indicate the pool this bio came from | 132 | * top 4 bits of bio flags indicate the pool this bio came from |
| 133 | */ | 133 | */ |
| 134 | #define BIO_POOL_BITS (4) | 134 | #define BIO_POOL_BITS (4) |
| 135 | #define BIO_POOL_NONE ((1UL << BIO_POOL_BITS) - 1) | ||
| 135 | #define BIO_POOL_OFFSET (BITS_PER_LONG - BIO_POOL_BITS) | 136 | #define BIO_POOL_OFFSET (BITS_PER_LONG - BIO_POOL_BITS) |
| 136 | #define BIO_POOL_MASK (1UL << BIO_POOL_OFFSET) | 137 | #define BIO_POOL_MASK (1UL << BIO_POOL_OFFSET) |
| 137 | #define BIO_POOL_IDX(bio) ((bio)->bi_flags >> BIO_POOL_OFFSET) | 138 | #define BIO_POOL_IDX(bio) ((bio)->bi_flags >> BIO_POOL_OFFSET) |
diff --git a/include/linux/bitops.h b/include/linux/bitops.h index 61829139795a..c05a29cb9bb2 100644 --- a/include/linux/bitops.h +++ b/include/linux/bitops.h | |||
| @@ -112,6 +112,25 @@ static inline unsigned fls_long(unsigned long l) | |||
| 112 | return fls64(l); | 112 | return fls64(l); |
| 113 | } | 113 | } |
| 114 | 114 | ||
| 115 | /** | ||
| 116 | * __ffs64 - find first set bit in a 64 bit word | ||
| 117 | * @word: The 64 bit word | ||
| 118 | * | ||
| 119 | * On 64 bit arches this is a synomyn for __ffs | ||
| 120 | * The result is not defined if no bits are set, so check that @word | ||
| 121 | * is non-zero before calling this. | ||
| 122 | */ | ||
| 123 | static inline unsigned long __ffs64(u64 word) | ||
| 124 | { | ||
| 125 | #if BITS_PER_LONG == 32 | ||
| 126 | if (((u32)word) == 0UL) | ||
| 127 | return __ffs((u32)(word >> 32)) + 32; | ||
| 128 | #elif BITS_PER_LONG != 64 | ||
| 129 | #error BITS_PER_LONG not 32 or 64 | ||
| 130 | #endif | ||
| 131 | return __ffs((unsigned long)word); | ||
| 132 | } | ||
| 133 | |||
| 115 | #ifdef __KERNEL__ | 134 | #ifdef __KERNEL__ |
| 116 | #ifdef CONFIG_GENERIC_FIND_FIRST_BIT | 135 | #ifdef CONFIG_GENERIC_FIND_FIRST_BIT |
| 117 | 136 | ||
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h index ba54c834a590..b4f71f1a4af7 100644 --- a/include/linux/blkdev.h +++ b/include/linux/blkdev.h | |||
| @@ -118,6 +118,7 @@ enum rq_flag_bits { | |||
| 118 | __REQ_COPY_USER, /* contains copies of user pages */ | 118 | __REQ_COPY_USER, /* contains copies of user pages */ |
| 119 | __REQ_INTEGRITY, /* integrity metadata has been remapped */ | 119 | __REQ_INTEGRITY, /* integrity metadata has been remapped */ |
| 120 | __REQ_NOIDLE, /* Don't anticipate more IO after this one */ | 120 | __REQ_NOIDLE, /* Don't anticipate more IO after this one */ |
| 121 | __REQ_IO_STAT, /* account I/O stat */ | ||
| 121 | __REQ_NR_BITS, /* stops here */ | 122 | __REQ_NR_BITS, /* stops here */ |
| 122 | }; | 123 | }; |
| 123 | 124 | ||
| @@ -145,6 +146,7 @@ enum rq_flag_bits { | |||
| 145 | #define REQ_COPY_USER (1 << __REQ_COPY_USER) | 146 | #define REQ_COPY_USER (1 << __REQ_COPY_USER) |
| 146 | #define REQ_INTEGRITY (1 << __REQ_INTEGRITY) | 147 | #define REQ_INTEGRITY (1 << __REQ_INTEGRITY) |
| 147 | #define REQ_NOIDLE (1 << __REQ_NOIDLE) | 148 | #define REQ_NOIDLE (1 << __REQ_NOIDLE) |
| 149 | #define REQ_IO_STAT (1 << __REQ_IO_STAT) | ||
| 148 | 150 | ||
| 149 | #define BLK_MAX_CDB 16 | 151 | #define BLK_MAX_CDB 16 |
| 150 | 152 | ||
| @@ -598,6 +600,8 @@ enum { | |||
| 598 | blk_failfast_transport(rq) || \ | 600 | blk_failfast_transport(rq) || \ |
| 599 | blk_failfast_driver(rq)) | 601 | blk_failfast_driver(rq)) |
| 600 | #define blk_rq_started(rq) ((rq)->cmd_flags & REQ_STARTED) | 602 | #define blk_rq_started(rq) ((rq)->cmd_flags & REQ_STARTED) |
| 603 | #define blk_rq_io_stat(rq) ((rq)->cmd_flags & REQ_IO_STAT) | ||
| 604 | #define blk_rq_quiet(rq) ((rq)->cmd_flags & REQ_QUIET) | ||
| 601 | 605 | ||
| 602 | #define blk_account_rq(rq) (blk_rq_started(rq) && (blk_fs_request(rq) || blk_discard_rq(rq))) | 606 | #define blk_account_rq(rq) (blk_rq_started(rq) && (blk_fs_request(rq) || blk_discard_rq(rq))) |
| 603 | 607 | ||
diff --git a/include/linux/cpumask.h b/include/linux/cpumask.h index 9f315382610b..c5ac87ca7bc6 100644 --- a/include/linux/cpumask.h +++ b/include/linux/cpumask.h | |||
| @@ -1022,6 +1022,8 @@ typedef struct cpumask *cpumask_var_t; | |||
| 1022 | 1022 | ||
| 1023 | bool alloc_cpumask_var_node(cpumask_var_t *mask, gfp_t flags, int node); | 1023 | bool alloc_cpumask_var_node(cpumask_var_t *mask, gfp_t flags, int node); |
| 1024 | bool alloc_cpumask_var(cpumask_var_t *mask, gfp_t flags); | 1024 | bool alloc_cpumask_var(cpumask_var_t *mask, gfp_t flags); |
| 1025 | bool zalloc_cpumask_var_node(cpumask_var_t *mask, gfp_t flags, int node); | ||
| 1026 | bool zalloc_cpumask_var(cpumask_var_t *mask, gfp_t flags); | ||
| 1025 | void alloc_bootmem_cpumask_var(cpumask_var_t *mask); | 1027 | void alloc_bootmem_cpumask_var(cpumask_var_t *mask); |
| 1026 | void free_cpumask_var(cpumask_var_t mask); | 1028 | void free_cpumask_var(cpumask_var_t mask); |
| 1027 | void free_bootmem_cpumask_var(cpumask_var_t mask); | 1029 | void free_bootmem_cpumask_var(cpumask_var_t mask); |
| @@ -1040,6 +1042,19 @@ static inline bool alloc_cpumask_var_node(cpumask_var_t *mask, gfp_t flags, | |||
| 1040 | return true; | 1042 | return true; |
| 1041 | } | 1043 | } |
| 1042 | 1044 | ||
| 1045 | static inline bool zalloc_cpumask_var(cpumask_var_t *mask, gfp_t flags) | ||
| 1046 | { | ||
| 1047 | cpumask_clear(*mask); | ||
| 1048 | return true; | ||
| 1049 | } | ||
| 1050 | |||
| 1051 | static inline bool zalloc_cpumask_var_node(cpumask_var_t *mask, gfp_t flags, | ||
| 1052 | int node) | ||
| 1053 | { | ||
| 1054 | cpumask_clear(*mask); | ||
| 1055 | return true; | ||
| 1056 | } | ||
| 1057 | |||
| 1043 | static inline void alloc_bootmem_cpumask_var(cpumask_var_t *mask) | 1058 | static inline void alloc_bootmem_cpumask_var(cpumask_var_t *mask) |
| 1044 | { | 1059 | { |
| 1045 | } | 1060 | } |
diff --git a/include/linux/cred.h b/include/linux/cred.h index 3282ee4318e7..4fa999696310 100644 --- a/include/linux/cred.h +++ b/include/linux/cred.h | |||
| @@ -13,6 +13,7 @@ | |||
| 13 | #define _LINUX_CRED_H | 13 | #define _LINUX_CRED_H |
| 14 | 14 | ||
| 15 | #include <linux/capability.h> | 15 | #include <linux/capability.h> |
| 16 | #include <linux/init.h> | ||
| 16 | #include <linux/key.h> | 17 | #include <linux/key.h> |
| 17 | #include <asm/atomic.h> | 18 | #include <asm/atomic.h> |
| 18 | 19 | ||
diff --git a/include/linux/device.h b/include/linux/device.h index 6a69caaac18a..5d5c197bad45 100644 --- a/include/linux/device.h +++ b/include/linux/device.h | |||
| @@ -384,13 +384,8 @@ struct device { | |||
| 384 | struct device_driver *driver; /* which driver has allocated this | 384 | struct device_driver *driver; /* which driver has allocated this |
| 385 | device */ | 385 | device */ |
| 386 | void *driver_data; /* data private to the driver */ | 386 | void *driver_data; /* data private to the driver */ |
| 387 | 387 | void *platform_data; /* Platform specific data, device | |
| 388 | void *platform_data; /* We will remove platform_data | 388 | core doesn't touch it */ |
| 389 | field if all platform devices | ||
| 390 | pass its platform specific data | ||
| 391 | from platform_device->platform_data, | ||
| 392 | other kind of devices should not | ||
| 393 | use platform_data. */ | ||
| 394 | struct dev_pm_info power; | 389 | struct dev_pm_info power; |
| 395 | 390 | ||
| 396 | #ifdef CONFIG_NUMA | 391 | #ifdef CONFIG_NUMA |
diff --git a/include/linux/dmaengine.h b/include/linux/dmaengine.h index 2e2aa3df170c..ffefba81c818 100644 --- a/include/linux/dmaengine.h +++ b/include/linux/dmaengine.h | |||
| @@ -78,12 +78,18 @@ enum dma_transaction_type { | |||
| 78 | * dependency chains | 78 | * dependency chains |
| 79 | * @DMA_COMPL_SKIP_SRC_UNMAP - set to disable dma-unmapping the source buffer(s) | 79 | * @DMA_COMPL_SKIP_SRC_UNMAP - set to disable dma-unmapping the source buffer(s) |
| 80 | * @DMA_COMPL_SKIP_DEST_UNMAP - set to disable dma-unmapping the destination(s) | 80 | * @DMA_COMPL_SKIP_DEST_UNMAP - set to disable dma-unmapping the destination(s) |
| 81 | * @DMA_COMPL_SRC_UNMAP_SINGLE - set to do the source dma-unmapping as single | ||
| 82 | * (if not set, do the source dma-unmapping as page) | ||
| 83 | * @DMA_COMPL_DEST_UNMAP_SINGLE - set to do the destination dma-unmapping as single | ||
| 84 | * (if not set, do the destination dma-unmapping as page) | ||
| 81 | */ | 85 | */ |
| 82 | enum dma_ctrl_flags { | 86 | enum dma_ctrl_flags { |
| 83 | DMA_PREP_INTERRUPT = (1 << 0), | 87 | DMA_PREP_INTERRUPT = (1 << 0), |
| 84 | DMA_CTRL_ACK = (1 << 1), | 88 | DMA_CTRL_ACK = (1 << 1), |
| 85 | DMA_COMPL_SKIP_SRC_UNMAP = (1 << 2), | 89 | DMA_COMPL_SKIP_SRC_UNMAP = (1 << 2), |
| 86 | DMA_COMPL_SKIP_DEST_UNMAP = (1 << 3), | 90 | DMA_COMPL_SKIP_DEST_UNMAP = (1 << 3), |
| 91 | DMA_COMPL_SRC_UNMAP_SINGLE = (1 << 4), | ||
| 92 | DMA_COMPL_DEST_UNMAP_SINGLE = (1 << 5), | ||
| 87 | }; | 93 | }; |
| 88 | 94 | ||
| 89 | /** | 95 | /** |
diff --git a/include/linux/fs.h b/include/linux/fs.h index 5ba615e8f533..58e843b26b98 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h | |||
| @@ -1776,6 +1776,7 @@ void kill_block_super(struct super_block *sb); | |||
| 1776 | void kill_anon_super(struct super_block *sb); | 1776 | void kill_anon_super(struct super_block *sb); |
| 1777 | void kill_litter_super(struct super_block *sb); | 1777 | void kill_litter_super(struct super_block *sb); |
| 1778 | void deactivate_super(struct super_block *sb); | 1778 | void deactivate_super(struct super_block *sb); |
| 1779 | void deactivate_locked_super(struct super_block *sb); | ||
| 1779 | int set_anon_super(struct super_block *s, void *data); | 1780 | int set_anon_super(struct super_block *s, void *data); |
| 1780 | struct super_block *sget(struct file_system_type *type, | 1781 | struct super_block *sget(struct file_system_type *type, |
| 1781 | int (*test)(struct super_block *,void *), | 1782 | int (*test)(struct super_block *,void *), |
| @@ -2118,7 +2119,7 @@ extern struct file *create_write_pipe(int flags); | |||
| 2118 | extern void free_write_pipe(struct file *); | 2119 | extern void free_write_pipe(struct file *); |
| 2119 | 2120 | ||
| 2120 | extern struct file *do_filp_open(int dfd, const char *pathname, | 2121 | extern struct file *do_filp_open(int dfd, const char *pathname, |
| 2121 | int open_flag, int mode); | 2122 | int open_flag, int mode, int acc_mode); |
| 2122 | extern int may_open(struct path *, int, int); | 2123 | extern int may_open(struct path *, int, int); |
| 2123 | 2124 | ||
| 2124 | extern int kernel_read(struct file *, unsigned long, char *, unsigned long); | 2125 | extern int kernel_read(struct file *, unsigned long, char *, unsigned long); |
| @@ -2368,6 +2369,7 @@ extern void file_update_time(struct file *file); | |||
| 2368 | 2369 | ||
| 2369 | extern int generic_show_options(struct seq_file *m, struct vfsmount *mnt); | 2370 | extern int generic_show_options(struct seq_file *m, struct vfsmount *mnt); |
| 2370 | extern void save_mount_options(struct super_block *sb, char *options); | 2371 | extern void save_mount_options(struct super_block *sb, char *options); |
| 2372 | extern void replace_mount_options(struct super_block *sb, char *options); | ||
| 2371 | 2373 | ||
| 2372 | static inline ino_t parent_ino(struct dentry *dentry) | 2374 | static inline ino_t parent_ino(struct dentry *dentry) |
| 2373 | { | 2375 | { |
diff --git a/include/linux/fsl_devices.h b/include/linux/fsl_devices.h index 43fc95d822d5..244677cc082b 100644 --- a/include/linux/fsl_devices.h +++ b/include/linux/fsl_devices.h | |||
| @@ -79,6 +79,10 @@ struct fsl_spi_platform_data { | |||
| 79 | u16 max_chipselect; | 79 | u16 max_chipselect; |
| 80 | void (*cs_control)(struct spi_device *spi, bool on); | 80 | void (*cs_control)(struct spi_device *spi, bool on); |
| 81 | u32 sysclk; | 81 | u32 sysclk; |
| 82 | |||
| 83 | /* Legacy hooks, used by mpc52xx_psc_spi driver. */ | ||
| 84 | void (*activate_cs)(u8 cs, u8 polarity); | ||
| 85 | void (*deactivate_cs)(u8 cs, u8 polarity); | ||
| 82 | }; | 86 | }; |
| 83 | 87 | ||
| 84 | struct mpc8xx_pcmcia_ops { | 88 | struct mpc8xx_pcmcia_ops { |
diff --git a/include/linux/genhd.h b/include/linux/genhd.h index 634c53028fb8..a1a28caed23d 100644 --- a/include/linux/genhd.h +++ b/include/linux/genhd.h | |||
| @@ -214,6 +214,7 @@ static inline void disk_put_part(struct hd_struct *part) | |||
| 214 | #define DISK_PITER_REVERSE (1 << 0) /* iterate in the reverse direction */ | 214 | #define DISK_PITER_REVERSE (1 << 0) /* iterate in the reverse direction */ |
| 215 | #define DISK_PITER_INCL_EMPTY (1 << 1) /* include 0-sized parts */ | 215 | #define DISK_PITER_INCL_EMPTY (1 << 1) /* include 0-sized parts */ |
| 216 | #define DISK_PITER_INCL_PART0 (1 << 2) /* include partition 0 */ | 216 | #define DISK_PITER_INCL_PART0 (1 << 2) /* include partition 0 */ |
| 217 | #define DISK_PITER_INCL_EMPTY_PART0 (1 << 3) /* include empty partition 0 */ | ||
| 217 | 218 | ||
| 218 | struct disk_part_iter { | 219 | struct disk_part_iter { |
| 219 | struct gendisk *disk; | 220 | struct gendisk *disk; |
diff --git a/include/linux/i7300_idle.h b/include/linux/i7300_idle.h index 05a80c44513c..1587b7dec505 100644 --- a/include/linux/i7300_idle.h +++ b/include/linux/i7300_idle.h | |||
| @@ -16,35 +16,33 @@ | |||
| 16 | struct fbd_ioat { | 16 | struct fbd_ioat { |
| 17 | unsigned int vendor; | 17 | unsigned int vendor; |
| 18 | unsigned int ioat_dev; | 18 | unsigned int ioat_dev; |
| 19 | unsigned int enabled; | ||
| 19 | }; | 20 | }; |
| 20 | 21 | ||
| 21 | /* | 22 | /* |
| 22 | * The i5000 chip-set has the same hooks as the i7300 | 23 | * The i5000 chip-set has the same hooks as the i7300 |
| 23 | * but support is disabled by default because this driver | 24 | * but it is not enabled by default and must be manually |
| 24 | * has not been validated on that platform. | 25 | * manually enabled with "forceload=1" because it is |
| 26 | * only lightly validated. | ||
| 25 | */ | 27 | */ |
| 26 | #define SUPPORT_I5000 0 | ||
| 27 | 28 | ||
| 28 | static const struct fbd_ioat fbd_ioat_list[] = { | 29 | static const struct fbd_ioat fbd_ioat_list[] = { |
| 29 | {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_IOAT_CNB}, | 30 | {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_IOAT_CNB, 1}, |
| 30 | #if SUPPORT_I5000 | 31 | {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_IOAT, 0}, |
| 31 | {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_IOAT}, | ||
| 32 | #endif | ||
| 33 | {0, 0} | 32 | {0, 0} |
| 34 | }; | 33 | }; |
| 35 | 34 | ||
| 36 | /* table of devices that work with this driver */ | 35 | /* table of devices that work with this driver */ |
| 37 | static const struct pci_device_id pci_tbl[] = { | 36 | static const struct pci_device_id pci_tbl[] = { |
| 38 | { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_FBD_CNB) }, | 37 | { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_FBD_CNB) }, |
| 39 | #if SUPPORT_I5000 | ||
| 40 | { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_5000_ERR) }, | 38 | { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_5000_ERR) }, |
| 41 | #endif | ||
| 42 | { } /* Terminating entry */ | 39 | { } /* Terminating entry */ |
| 43 | }; | 40 | }; |
| 44 | 41 | ||
| 45 | /* Check for known platforms with I/O-AT */ | 42 | /* Check for known platforms with I/O-AT */ |
| 46 | static inline int i7300_idle_platform_probe(struct pci_dev **fbd_dev, | 43 | static inline int i7300_idle_platform_probe(struct pci_dev **fbd_dev, |
| 47 | struct pci_dev **ioat_dev) | 44 | struct pci_dev **ioat_dev, |
| 45 | int enable_all) | ||
| 48 | { | 46 | { |
| 49 | int i; | 47 | int i; |
| 50 | struct pci_dev *memdev, *dmadev; | 48 | struct pci_dev *memdev, *dmadev; |
| @@ -69,6 +67,8 @@ static inline int i7300_idle_platform_probe(struct pci_dev **fbd_dev, | |||
| 69 | for (i = 0; fbd_ioat_list[i].vendor != 0; i++) { | 67 | for (i = 0; fbd_ioat_list[i].vendor != 0; i++) { |
| 70 | if (dmadev->vendor == fbd_ioat_list[i].vendor && | 68 | if (dmadev->vendor == fbd_ioat_list[i].vendor && |
| 71 | dmadev->device == fbd_ioat_list[i].ioat_dev) { | 69 | dmadev->device == fbd_ioat_list[i].ioat_dev) { |
| 70 | if (!(fbd_ioat_list[i].enabled || enable_all)) | ||
| 71 | continue; | ||
| 72 | if (fbd_dev) | 72 | if (fbd_dev) |
| 73 | *fbd_dev = memdev; | 73 | *fbd_dev = memdev; |
| 74 | if (ioat_dev) | 74 | if (ioat_dev) |
diff --git a/include/linux/ide.h b/include/linux/ide.h index ff65fffb078f..9fed365a598b 100644 --- a/include/linux/ide.h +++ b/include/linux/ide.h | |||
| @@ -1109,7 +1109,7 @@ void ide_fix_driveid(u16 *); | |||
| 1109 | 1109 | ||
| 1110 | extern void ide_fixstring(u8 *, const int, const int); | 1110 | extern void ide_fixstring(u8 *, const int, const int); |
| 1111 | 1111 | ||
| 1112 | int ide_busy_sleep(ide_hwif_t *, unsigned long, int); | 1112 | int ide_busy_sleep(ide_drive_t *, unsigned long, int); |
| 1113 | 1113 | ||
| 1114 | int ide_wait_stat(ide_startstop_t *, ide_drive_t *, u8, u8, unsigned long); | 1114 | int ide_wait_stat(ide_startstop_t *, ide_drive_t *, u8, u8, unsigned long); |
| 1115 | 1115 | ||
diff --git a/include/linux/init.h b/include/linux/init.h index f121a7a10c3d..0e06c176f185 100644 --- a/include/linux/init.h +++ b/include/linux/init.h | |||
| @@ -2,6 +2,8 @@ | |||
| 2 | #define _LINUX_INIT_H | 2 | #define _LINUX_INIT_H |
| 3 | 3 | ||
| 4 | #include <linux/compiler.h> | 4 | #include <linux/compiler.h> |
| 5 | #include <linux/section-names.h> | ||
| 6 | #include <linux/stringify.h> | ||
| 5 | 7 | ||
| 6 | /* These macros are used to mark some functions or | 8 | /* These macros are used to mark some functions or |
| 7 | * initialized data (doesn't apply to uninitialized data) | 9 | * initialized data (doesn't apply to uninitialized data) |
| @@ -60,14 +62,6 @@ | |||
| 60 | #define __refdata __section(.ref.data) | 62 | #define __refdata __section(.ref.data) |
| 61 | #define __refconst __section(.ref.rodata) | 63 | #define __refconst __section(.ref.rodata) |
| 62 | 64 | ||
| 63 | /* backward compatibility note | ||
| 64 | * A few places hardcode the old section names: | ||
| 65 | * .text.init.refok | ||
| 66 | * .data.init.refok | ||
| 67 | * .exit.text.refok | ||
| 68 | * They should be converted to use the defines from this file | ||
| 69 | */ | ||
| 70 | |||
| 71 | /* compatibility defines */ | 65 | /* compatibility defines */ |
| 72 | #define __init_refok __ref | 66 | #define __init_refok __ref |
| 73 | #define __initdata_refok __refdata | 67 | #define __initdata_refok __refdata |
| @@ -107,7 +101,7 @@ | |||
| 107 | #define __memexitconst __section(.memexit.rodata) | 101 | #define __memexitconst __section(.memexit.rodata) |
| 108 | 102 | ||
| 109 | /* For assembly routines */ | 103 | /* For assembly routines */ |
| 110 | #define __HEAD .section ".head.text","ax" | 104 | #define __HEAD .section __stringify(HEAD_TEXT_SECTION),"ax" |
| 111 | #define __INIT .section ".init.text","ax" | 105 | #define __INIT .section ".init.text","ax" |
| 112 | #define __FINIT .previous | 106 | #define __FINIT .previous |
| 113 | 107 | ||
diff --git a/include/linux/input.h b/include/linux/input.h index 6b28048fc568..6fed4f6a9c9e 100644 --- a/include/linux/input.h +++ b/include/linux/input.h | |||
| @@ -106,6 +106,7 @@ struct input_absinfo { | |||
| 106 | 106 | ||
| 107 | #define SYN_REPORT 0 | 107 | #define SYN_REPORT 0 |
| 108 | #define SYN_CONFIG 1 | 108 | #define SYN_CONFIG 1 |
| 109 | #define SYN_MT_REPORT 2 | ||
| 109 | 110 | ||
| 110 | /* | 111 | /* |
| 111 | * Keys and buttons | 112 | * Keys and buttons |
| @@ -445,6 +446,7 @@ struct input_absinfo { | |||
| 445 | #define BTN_STYLUS2 0x14c | 446 | #define BTN_STYLUS2 0x14c |
| 446 | #define BTN_TOOL_DOUBLETAP 0x14d | 447 | #define BTN_TOOL_DOUBLETAP 0x14d |
| 447 | #define BTN_TOOL_TRIPLETAP 0x14e | 448 | #define BTN_TOOL_TRIPLETAP 0x14e |
| 449 | #define BTN_TOOL_QUADTAP 0x14f /* Four fingers on trackpad */ | ||
| 448 | 450 | ||
| 449 | #define BTN_WHEEL 0x150 | 451 | #define BTN_WHEEL 0x150 |
| 450 | #define BTN_GEAR_DOWN 0x150 | 452 | #define BTN_GEAR_DOWN 0x150 |
| @@ -644,6 +646,18 @@ struct input_absinfo { | |||
| 644 | #define ABS_TOOL_WIDTH 0x1c | 646 | #define ABS_TOOL_WIDTH 0x1c |
| 645 | #define ABS_VOLUME 0x20 | 647 | #define ABS_VOLUME 0x20 |
| 646 | #define ABS_MISC 0x28 | 648 | #define ABS_MISC 0x28 |
| 649 | |||
| 650 | #define ABS_MT_TOUCH_MAJOR 0x30 /* Major axis of touching ellipse */ | ||
| 651 | #define ABS_MT_TOUCH_MINOR 0x31 /* Minor axis (omit if circular) */ | ||
| 652 | #define ABS_MT_WIDTH_MAJOR 0x32 /* Major axis of approaching ellipse */ | ||
| 653 | #define ABS_MT_WIDTH_MINOR 0x33 /* Minor axis (omit if circular) */ | ||
| 654 | #define ABS_MT_ORIENTATION 0x34 /* Ellipse orientation */ | ||
| 655 | #define ABS_MT_POSITION_X 0x35 /* Center X ellipse position */ | ||
| 656 | #define ABS_MT_POSITION_Y 0x36 /* Center Y ellipse position */ | ||
| 657 | #define ABS_MT_TOOL_TYPE 0x37 /* Type of touching device */ | ||
| 658 | #define ABS_MT_BLOB_ID 0x38 /* Group a set of packets as a blob */ | ||
| 659 | #define ABS_MT_TRACKING_ID 0x39 /* Unique ID of initiated contact */ | ||
| 660 | |||
| 647 | #define ABS_MAX 0x3f | 661 | #define ABS_MAX 0x3f |
| 648 | #define ABS_CNT (ABS_MAX+1) | 662 | #define ABS_CNT (ABS_MAX+1) |
| 649 | 663 | ||
| @@ -743,6 +757,12 @@ struct input_absinfo { | |||
| 743 | #define BUS_ATARI 0x1B | 757 | #define BUS_ATARI 0x1B |
| 744 | 758 | ||
| 745 | /* | 759 | /* |
| 760 | * MT_TOOL types | ||
| 761 | */ | ||
| 762 | #define MT_TOOL_FINGER 0 | ||
| 763 | #define MT_TOOL_PEN 1 | ||
| 764 | |||
| 765 | /* | ||
| 746 | * Values describing the status of a force-feedback effect | 766 | * Values describing the status of a force-feedback effect |
| 747 | */ | 767 | */ |
| 748 | #define FF_STATUS_STOPPED 0x00 | 768 | #define FF_STATUS_STOPPED 0x00 |
| @@ -1311,6 +1331,11 @@ static inline void input_sync(struct input_dev *dev) | |||
| 1311 | input_event(dev, EV_SYN, SYN_REPORT, 0); | 1331 | input_event(dev, EV_SYN, SYN_REPORT, 0); |
| 1312 | } | 1332 | } |
| 1313 | 1333 | ||
| 1334 | static inline void input_mt_sync(struct input_dev *dev) | ||
| 1335 | { | ||
| 1336 | input_event(dev, EV_SYN, SYN_MT_REPORT, 0); | ||
| 1337 | } | ||
| 1338 | |||
| 1314 | void input_set_capability(struct input_dev *dev, unsigned int type, unsigned int code); | 1339 | void input_set_capability(struct input_dev *dev, unsigned int type, unsigned int code); |
| 1315 | 1340 | ||
| 1316 | static inline void input_set_abs_params(struct input_dev *dev, int axis, int min, int max, int fuzz, int flat) | 1341 | static inline void input_set_abs_params(struct input_dev *dev, int axis, int min, int max, int fuzz, int flat) |
diff --git a/include/linux/jbd.h b/include/linux/jbd.h index 53ae4399da2d..c2049a04fa0b 100644 --- a/include/linux/jbd.h +++ b/include/linux/jbd.h | |||
| @@ -978,7 +978,8 @@ extern void journal_destroy_revoke(journal_t *); | |||
| 978 | extern int journal_revoke (handle_t *, | 978 | extern int journal_revoke (handle_t *, |
| 979 | unsigned long, struct buffer_head *); | 979 | unsigned long, struct buffer_head *); |
| 980 | extern int journal_cancel_revoke(handle_t *, struct journal_head *); | 980 | extern int journal_cancel_revoke(handle_t *, struct journal_head *); |
| 981 | extern void journal_write_revoke_records(journal_t *, transaction_t *); | 981 | extern void journal_write_revoke_records(journal_t *, |
| 982 | transaction_t *, int); | ||
| 982 | 983 | ||
| 983 | /* Recovery revoke support */ | 984 | /* Recovery revoke support */ |
| 984 | extern int journal_set_revoke(journal_t *, unsigned long, tid_t); | 985 | extern int journal_set_revoke(journal_t *, unsigned long, tid_t); |
diff --git a/include/linux/jbd2.h b/include/linux/jbd2.h index 8815a3456b3b..cc02393bfce8 100644 --- a/include/linux/jbd2.h +++ b/include/linux/jbd2.h | |||
| @@ -1193,7 +1193,8 @@ extern int jbd2_journal_init_revoke_caches(void); | |||
| 1193 | extern void jbd2_journal_destroy_revoke(journal_t *); | 1193 | extern void jbd2_journal_destroy_revoke(journal_t *); |
| 1194 | extern int jbd2_journal_revoke (handle_t *, unsigned long long, struct buffer_head *); | 1194 | extern int jbd2_journal_revoke (handle_t *, unsigned long long, struct buffer_head *); |
| 1195 | extern int jbd2_journal_cancel_revoke(handle_t *, struct journal_head *); | 1195 | extern int jbd2_journal_cancel_revoke(handle_t *, struct journal_head *); |
| 1196 | extern void jbd2_journal_write_revoke_records(journal_t *, transaction_t *); | 1196 | extern void jbd2_journal_write_revoke_records(journal_t *, |
| 1197 | transaction_t *, int); | ||
| 1197 | 1198 | ||
| 1198 | /* Recovery revoke support */ | 1199 | /* Recovery revoke support */ |
| 1199 | extern int jbd2_journal_set_revoke(journal_t *, unsigned long long, tid_t); | 1200 | extern int jbd2_journal_set_revoke(journal_t *, unsigned long long, tid_t); |
diff --git a/include/linux/kvm.h b/include/linux/kvm.h index 311a073afe8a..8cc137911b34 100644 --- a/include/linux/kvm.h +++ b/include/linux/kvm.h | |||
| @@ -409,6 +409,8 @@ struct kvm_trace_rec { | |||
| 409 | #ifdef __KVM_HAVE_DEVICE_ASSIGNMENT | 409 | #ifdef __KVM_HAVE_DEVICE_ASSIGNMENT |
| 410 | #define KVM_CAP_DEVICE_DEASSIGNMENT 27 | 410 | #define KVM_CAP_DEVICE_DEASSIGNMENT 27 |
| 411 | #endif | 411 | #endif |
| 412 | /* Another bug in KVM_SET_USER_MEMORY_REGION fixed: */ | ||
| 413 | #define KVM_CAP_JOIN_MEMORY_REGIONS_WORKS 30 | ||
| 412 | 414 | ||
| 413 | #ifdef KVM_CAP_IRQ_ROUTING | 415 | #ifdef KVM_CAP_IRQ_ROUTING |
| 414 | 416 | ||
diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h index a9e3b76aa884..25b9ca93d232 100644 --- a/include/linux/memcontrol.h +++ b/include/linux/memcontrol.h | |||
| @@ -56,7 +56,7 @@ extern void mem_cgroup_move_lists(struct page *page, | |||
| 56 | enum lru_list from, enum lru_list to); | 56 | enum lru_list from, enum lru_list to); |
| 57 | extern void mem_cgroup_uncharge_page(struct page *page); | 57 | extern void mem_cgroup_uncharge_page(struct page *page); |
| 58 | extern void mem_cgroup_uncharge_cache_page(struct page *page); | 58 | extern void mem_cgroup_uncharge_cache_page(struct page *page); |
| 59 | extern int mem_cgroup_shrink_usage(struct page *page, | 59 | extern int mem_cgroup_shmem_charge_fallback(struct page *page, |
| 60 | struct mm_struct *mm, gfp_t gfp_mask); | 60 | struct mm_struct *mm, gfp_t gfp_mask); |
| 61 | 61 | ||
| 62 | extern unsigned long mem_cgroup_isolate_pages(unsigned long nr_to_scan, | 62 | extern unsigned long mem_cgroup_isolate_pages(unsigned long nr_to_scan, |
| @@ -155,7 +155,7 @@ static inline void mem_cgroup_uncharge_cache_page(struct page *page) | |||
| 155 | { | 155 | { |
| 156 | } | 156 | } |
| 157 | 157 | ||
| 158 | static inline int mem_cgroup_shrink_usage(struct page *page, | 158 | static inline int mem_cgroup_shmem_charge_fallback(struct page *page, |
| 159 | struct mm_struct *mm, gfp_t gfp_mask) | 159 | struct mm_struct *mm, gfp_t gfp_mask) |
| 160 | { | 160 | { |
| 161 | return 0; | 161 | return 0; |
diff --git a/include/linux/mman.h b/include/linux/mman.h index 30d1073bac3b..9872d6ca58ae 100644 --- a/include/linux/mman.h +++ b/include/linux/mman.h | |||
| @@ -12,21 +12,18 @@ | |||
| 12 | 12 | ||
| 13 | #ifdef __KERNEL__ | 13 | #ifdef __KERNEL__ |
| 14 | #include <linux/mm.h> | 14 | #include <linux/mm.h> |
| 15 | #include <linux/percpu_counter.h> | ||
| 15 | 16 | ||
| 16 | #include <asm/atomic.h> | 17 | #include <asm/atomic.h> |
| 17 | 18 | ||
| 18 | extern int sysctl_overcommit_memory; | 19 | extern int sysctl_overcommit_memory; |
| 19 | extern int sysctl_overcommit_ratio; | 20 | extern int sysctl_overcommit_ratio; |
| 20 | extern atomic_long_t vm_committed_space; | 21 | extern struct percpu_counter vm_committed_as; |
| 21 | 22 | ||
| 22 | #ifdef CONFIG_SMP | ||
| 23 | extern void vm_acct_memory(long pages); | ||
| 24 | #else | ||
| 25 | static inline void vm_acct_memory(long pages) | 23 | static inline void vm_acct_memory(long pages) |
| 26 | { | 24 | { |
| 27 | atomic_long_add(pages, &vm_committed_space); | 25 | percpu_counter_add(&vm_committed_as, pages); |
| 28 | } | 26 | } |
| 29 | #endif | ||
| 30 | 27 | ||
| 31 | static inline void vm_unacct_memory(long pages) | 28 | static inline void vm_unacct_memory(long pages) |
| 32 | { | 29 | { |
diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h index 186ec6ab334d..a47c879e1304 100644 --- a/include/linux/mmzone.h +++ b/include/linux/mmzone.h | |||
| @@ -1097,6 +1097,32 @@ unsigned long __init node_memmap_size_bytes(int, unsigned long, unsigned long); | |||
| 1097 | #define pfn_valid_within(pfn) (1) | 1097 | #define pfn_valid_within(pfn) (1) |
| 1098 | #endif | 1098 | #endif |
| 1099 | 1099 | ||
| 1100 | #ifdef CONFIG_ARCH_HAS_HOLES_MEMORYMODEL | ||
| 1101 | /* | ||
| 1102 | * pfn_valid() is meant to be able to tell if a given PFN has valid memmap | ||
| 1103 | * associated with it or not. In FLATMEM, it is expected that holes always | ||
| 1104 | * have valid memmap as long as there is valid PFNs either side of the hole. | ||
| 1105 | * In SPARSEMEM, it is assumed that a valid section has a memmap for the | ||
| 1106 | * entire section. | ||
| 1107 | * | ||
| 1108 | * However, an ARM, and maybe other embedded architectures in the future | ||
| 1109 | * free memmap backing holes to save memory on the assumption the memmap is | ||
| 1110 | * never used. The page_zone linkages are then broken even though pfn_valid() | ||
| 1111 | * returns true. A walker of the full memmap must then do this additional | ||
| 1112 | * check to ensure the memmap they are looking at is sane by making sure | ||
| 1113 | * the zone and PFN linkages are still valid. This is expensive, but walkers | ||
| 1114 | * of the full memmap are extremely rare. | ||
| 1115 | */ | ||
| 1116 | int memmap_valid_within(unsigned long pfn, | ||
| 1117 | struct page *page, struct zone *zone); | ||
| 1118 | #else | ||
| 1119 | static inline int memmap_valid_within(unsigned long pfn, | ||
| 1120 | struct page *page, struct zone *zone) | ||
| 1121 | { | ||
| 1122 | return 1; | ||
| 1123 | } | ||
| 1124 | #endif /* CONFIG_ARCH_HAS_HOLES_MEMORYMODEL */ | ||
| 1125 | |||
| 1100 | #endif /* !__GENERATING_BOUNDS.H */ | 1126 | #endif /* !__GENERATING_BOUNDS.H */ |
| 1101 | #endif /* !__ASSEMBLY__ */ | 1127 | #endif /* !__ASSEMBLY__ */ |
| 1102 | #endif /* _LINUX_MMZONE_H */ | 1128 | #endif /* _LINUX_MMZONE_H */ |
diff --git a/include/linux/namei.h b/include/linux/namei.h index fc2e03579877..518098fe63af 100644 --- a/include/linux/namei.h +++ b/include/linux/namei.h | |||
| @@ -69,7 +69,6 @@ extern int path_lookup(const char *, unsigned, struct nameidata *); | |||
| 69 | extern int vfs_path_lookup(struct dentry *, struct vfsmount *, | 69 | extern int vfs_path_lookup(struct dentry *, struct vfsmount *, |
| 70 | const char *, unsigned int, struct nameidata *); | 70 | const char *, unsigned int, struct nameidata *); |
| 71 | 71 | ||
| 72 | extern int path_lookup_open(int dfd, const char *name, unsigned lookup_flags, struct nameidata *, int open_flags); | ||
| 73 | extern struct file *lookup_instantiate_filp(struct nameidata *nd, struct dentry *dentry, | 72 | extern struct file *lookup_instantiate_filp(struct nameidata *nd, struct dentry *dentry, |
| 74 | int (*open)(struct inode *, struct file *)); | 73 | int (*open)(struct inode *, struct file *)); |
| 75 | extern struct file *nameidata_to_filp(struct nameidata *nd, int flags); | 74 | extern struct file *nameidata_to_filp(struct nameidata *nd, int flags); |
diff --git a/include/linux/net_dropmon.h b/include/linux/net_dropmon.h index 0217fb81a630..0e2e100c44a2 100644 --- a/include/linux/net_dropmon.h +++ b/include/linux/net_dropmon.h | |||
| @@ -1,6 +1,7 @@ | |||
| 1 | #ifndef __NET_DROPMON_H | 1 | #ifndef __NET_DROPMON_H |
| 2 | #define __NET_DROPMON_H | 2 | #define __NET_DROPMON_H |
| 3 | 3 | ||
| 4 | #include <linux/types.h> | ||
| 4 | #include <linux/netlink.h> | 5 | #include <linux/netlink.h> |
| 5 | 6 | ||
| 6 | struct net_dm_drop_point { | 7 | struct net_dm_drop_point { |
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index 2e7783f4a755..5a96a1a406e9 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h | |||
| @@ -104,7 +104,7 @@ struct wireless_dev; | |||
| 104 | # else | 104 | # else |
| 105 | # define LL_MAX_HEADER 96 | 105 | # define LL_MAX_HEADER 96 |
| 106 | # endif | 106 | # endif |
| 107 | #elif defined(CONFIG_TR) | 107 | #elif defined(CONFIG_TR) || defined(CONFIG_TR_MODULE) |
| 108 | # define LL_MAX_HEADER 48 | 108 | # define LL_MAX_HEADER 48 |
| 109 | #else | 109 | #else |
| 110 | # define LL_MAX_HEADER 32 | 110 | # define LL_MAX_HEADER 32 |
| @@ -500,7 +500,7 @@ struct netdev_queue { | |||
| 500 | * | 500 | * |
| 501 | * int (*ndo_set_mac_address)(struct net_device *dev, void *addr); | 501 | * int (*ndo_set_mac_address)(struct net_device *dev, void *addr); |
| 502 | * This function is called when the Media Access Control address | 502 | * This function is called when the Media Access Control address |
| 503 | * needs to be changed. If not this interface is not defined, the | 503 | * needs to be changed. If this interface is not defined, the |
| 504 | * mac address can not be changed. | 504 | * mac address can not be changed. |
| 505 | * | 505 | * |
| 506 | * int (*ndo_validate_addr)(struct net_device *dev); | 506 | * int (*ndo_validate_addr)(struct net_device *dev); |
diff --git a/include/linux/netfilter/nf_conntrack_tcp.h b/include/linux/netfilter/nf_conntrack_tcp.h index 3066789b972a..b2f384d42611 100644 --- a/include/linux/netfilter/nf_conntrack_tcp.h +++ b/include/linux/netfilter/nf_conntrack_tcp.h | |||
| @@ -35,6 +35,9 @@ enum tcp_conntrack { | |||
| 35 | /* Has unacknowledged data */ | 35 | /* Has unacknowledged data */ |
| 36 | #define IP_CT_TCP_FLAG_DATA_UNACKNOWLEDGED 0x10 | 36 | #define IP_CT_TCP_FLAG_DATA_UNACKNOWLEDGED 0x10 |
| 37 | 37 | ||
| 38 | /* The field td_maxack has been set */ | ||
| 39 | #define IP_CT_TCP_FLAG_MAXACK_SET 0x20 | ||
| 40 | |||
| 38 | struct nf_ct_tcp_flags { | 41 | struct nf_ct_tcp_flags { |
| 39 | __u8 flags; | 42 | __u8 flags; |
| 40 | __u8 mask; | 43 | __u8 mask; |
| @@ -46,6 +49,7 @@ struct ip_ct_tcp_state { | |||
| 46 | u_int32_t td_end; /* max of seq + len */ | 49 | u_int32_t td_end; /* max of seq + len */ |
| 47 | u_int32_t td_maxend; /* max of ack + max(win, 1) */ | 50 | u_int32_t td_maxend; /* max of ack + max(win, 1) */ |
| 48 | u_int32_t td_maxwin; /* max(win) */ | 51 | u_int32_t td_maxwin; /* max(win) */ |
| 52 | u_int32_t td_maxack; /* max of ack */ | ||
| 49 | u_int8_t td_scale; /* window scale factor */ | 53 | u_int8_t td_scale; /* window scale factor */ |
| 50 | u_int8_t flags; /* per direction options */ | 54 | u_int8_t flags; /* per direction options */ |
| 51 | }; | 55 | }; |
diff --git a/include/linux/netfilter/nfnetlink_conntrack.h b/include/linux/netfilter/nfnetlink_conntrack.h index 29fe9ea1d346..1a865e48b8eb 100644 --- a/include/linux/netfilter/nfnetlink_conntrack.h +++ b/include/linux/netfilter/nfnetlink_conntrack.h | |||
| @@ -100,6 +100,7 @@ enum ctattr_protoinfo_tcp { | |||
| 100 | enum ctattr_protoinfo_dccp { | 100 | enum ctattr_protoinfo_dccp { |
| 101 | CTA_PROTOINFO_DCCP_UNSPEC, | 101 | CTA_PROTOINFO_DCCP_UNSPEC, |
| 102 | CTA_PROTOINFO_DCCP_STATE, | 102 | CTA_PROTOINFO_DCCP_STATE, |
| 103 | CTA_PROTOINFO_DCCP_ROLE, | ||
| 103 | __CTA_PROTOINFO_DCCP_MAX, | 104 | __CTA_PROTOINFO_DCCP_MAX, |
| 104 | }; | 105 | }; |
| 105 | #define CTA_PROTOINFO_DCCP_MAX (__CTA_PROTOINFO_DCCP_MAX - 1) | 106 | #define CTA_PROTOINFO_DCCP_MAX (__CTA_PROTOINFO_DCCP_MAX - 1) |
diff --git a/include/linux/netfilter/x_tables.h b/include/linux/netfilter/x_tables.h index 7b1a652066c0..c9efe039dc57 100644 --- a/include/linux/netfilter/x_tables.h +++ b/include/linux/netfilter/x_tables.h | |||
| @@ -354,9 +354,6 @@ struct xt_table | |||
| 354 | /* What hooks you will enter on */ | 354 | /* What hooks you will enter on */ |
| 355 | unsigned int valid_hooks; | 355 | unsigned int valid_hooks; |
| 356 | 356 | ||
| 357 | /* Lock for the curtain */ | ||
| 358 | struct mutex lock; | ||
| 359 | |||
| 360 | /* Man behind the curtain... */ | 357 | /* Man behind the curtain... */ |
| 361 | struct xt_table_info *private; | 358 | struct xt_table_info *private; |
| 362 | 359 | ||
| @@ -434,8 +431,74 @@ extern void xt_proto_fini(struct net *net, u_int8_t af); | |||
| 434 | 431 | ||
| 435 | extern struct xt_table_info *xt_alloc_table_info(unsigned int size); | 432 | extern struct xt_table_info *xt_alloc_table_info(unsigned int size); |
| 436 | extern void xt_free_table_info(struct xt_table_info *info); | 433 | extern void xt_free_table_info(struct xt_table_info *info); |
| 437 | extern void xt_table_entry_swap_rcu(struct xt_table_info *old, | 434 | |
| 438 | struct xt_table_info *new); | 435 | /* |
| 436 | * Per-CPU spinlock associated with per-cpu table entries, and | ||
| 437 | * with a counter for the "reading" side that allows a recursive | ||
| 438 | * reader to avoid taking the lock and deadlocking. | ||
| 439 | * | ||
| 440 | * "reading" is used by ip/arp/ip6 tables rule processing which runs per-cpu. | ||
| 441 | * It needs to ensure that the rules are not being changed while the packet | ||
| 442 | * is being processed. In some cases, the read lock will be acquired | ||
| 443 | * twice on the same CPU; this is okay because of the count. | ||
| 444 | * | ||
| 445 | * "writing" is used when reading counters. | ||
| 446 | * During replace any readers that are using the old tables have to complete | ||
| 447 | * before freeing the old table. This is handled by the write locking | ||
| 448 | * necessary for reading the counters. | ||
| 449 | */ | ||
| 450 | struct xt_info_lock { | ||
| 451 | spinlock_t lock; | ||
| 452 | unsigned char readers; | ||
| 453 | }; | ||
| 454 | DECLARE_PER_CPU(struct xt_info_lock, xt_info_locks); | ||
| 455 | |||
| 456 | /* | ||
| 457 | * Note: we need to ensure that preemption is disabled before acquiring | ||
| 458 | * the per-cpu-variable, so we do it as a two step process rather than | ||
| 459 | * using "spin_lock_bh()". | ||
| 460 | * | ||
| 461 | * We _also_ need to disable bottom half processing before updating our | ||
| 462 | * nesting count, to make sure that the only kind of re-entrancy is this | ||
| 463 | * code being called by itself: since the count+lock is not an atomic | ||
| 464 | * operation, we can allow no races. | ||
| 465 | * | ||
| 466 | * _Only_ that special combination of being per-cpu and never getting | ||
| 467 | * re-entered asynchronously means that the count is safe. | ||
| 468 | */ | ||
| 469 | static inline void xt_info_rdlock_bh(void) | ||
| 470 | { | ||
| 471 | struct xt_info_lock *lock; | ||
| 472 | |||
| 473 | local_bh_disable(); | ||
| 474 | lock = &__get_cpu_var(xt_info_locks); | ||
| 475 | if (likely(!lock->readers++)) | ||
| 476 | spin_lock(&lock->lock); | ||
| 477 | } | ||
| 478 | |||
| 479 | static inline void xt_info_rdunlock_bh(void) | ||
| 480 | { | ||
| 481 | struct xt_info_lock *lock = &__get_cpu_var(xt_info_locks); | ||
| 482 | |||
| 483 | if (likely(!--lock->readers)) | ||
| 484 | spin_unlock(&lock->lock); | ||
| 485 | local_bh_enable(); | ||
| 486 | } | ||
| 487 | |||
| 488 | /* | ||
| 489 | * The "writer" side needs to get exclusive access to the lock, | ||
| 490 | * regardless of readers. This must be called with bottom half | ||
| 491 | * processing (and thus also preemption) disabled. | ||
| 492 | */ | ||
| 493 | static inline void xt_info_wrlock(unsigned int cpu) | ||
| 494 | { | ||
| 495 | spin_lock(&per_cpu(xt_info_locks, cpu).lock); | ||
| 496 | } | ||
| 497 | |||
| 498 | static inline void xt_info_wrunlock(unsigned int cpu) | ||
| 499 | { | ||
| 500 | spin_unlock(&per_cpu(xt_info_locks, cpu).lock); | ||
| 501 | } | ||
| 439 | 502 | ||
| 440 | /* | 503 | /* |
| 441 | * This helper is performance critical and must be inlined | 504 | * This helper is performance critical and must be inlined |
diff --git a/include/linux/netfilter/xt_LED.h b/include/linux/netfilter/xt_LED.h index 4c91a0d770d0..f5509e7524d3 100644 --- a/include/linux/netfilter/xt_LED.h +++ b/include/linux/netfilter/xt_LED.h | |||
| @@ -1,6 +1,8 @@ | |||
| 1 | #ifndef _XT_LED_H | 1 | #ifndef _XT_LED_H |
| 2 | #define _XT_LED_H | 2 | #define _XT_LED_H |
| 3 | 3 | ||
| 4 | #include <linux/types.h> | ||
| 5 | |||
| 4 | struct xt_led_info { | 6 | struct xt_led_info { |
| 5 | char id[27]; /* Unique ID for this trigger in the LED class */ | 7 | char id[27]; /* Unique ID for this trigger in the LED class */ |
| 6 | __u8 always_blink; /* Blink even if the LED is already on */ | 8 | __u8 always_blink; /* Blink even if the LED is already on */ |
diff --git a/include/linux/netfilter/xt_cluster.h b/include/linux/netfilter/xt_cluster.h index 5e0a0d07b526..886682656f09 100644 --- a/include/linux/netfilter/xt_cluster.h +++ b/include/linux/netfilter/xt_cluster.h | |||
| @@ -12,4 +12,6 @@ struct xt_cluster_match_info { | |||
| 12 | u_int32_t flags; | 12 | u_int32_t flags; |
| 13 | }; | 13 | }; |
| 14 | 14 | ||
| 15 | #define XT_CLUSTER_NODES_MAX 32 | ||
| 16 | |||
| 15 | #endif /* _XT_CLUSTER_MATCH_H */ | 17 | #endif /* _XT_CLUSTER_MATCH_H */ |
diff --git a/include/linux/nls.h b/include/linux/nls.h index 6a882208301a..52b1a76c1b43 100644 --- a/include/linux/nls.h +++ b/include/linux/nls.h | |||
| @@ -58,6 +58,25 @@ static inline int nls_strnicmp(struct nls_table *t, const unsigned char *s1, | |||
| 58 | return 0; | 58 | return 0; |
| 59 | } | 59 | } |
| 60 | 60 | ||
| 61 | /* | ||
| 62 | * nls_nullsize - return length of null character for codepage | ||
| 63 | * @codepage - codepage for which to return length of NULL terminator | ||
| 64 | * | ||
| 65 | * Since we can't guarantee that the null terminator will be a particular | ||
| 66 | * length, we have to check against the codepage. If there's a problem | ||
| 67 | * determining it, assume a single-byte NULL terminator. | ||
| 68 | */ | ||
| 69 | static inline int | ||
| 70 | nls_nullsize(const struct nls_table *codepage) | ||
| 71 | { | ||
| 72 | int charlen; | ||
| 73 | char tmp[NLS_MAX_CHARSET_SIZE]; | ||
| 74 | |||
| 75 | charlen = codepage->uni2char(0, tmp, NLS_MAX_CHARSET_SIZE); | ||
| 76 | |||
| 77 | return charlen > 0 ? charlen : 1; | ||
| 78 | } | ||
| 79 | |||
| 61 | #define MODULE_ALIAS_NLS(name) MODULE_ALIAS("nls_" __stringify(name)) | 80 | #define MODULE_ALIAS_NLS(name) MODULE_ALIAS("nls_" __stringify(name)) |
| 62 | 81 | ||
| 63 | #endif /* _LINUX_NLS_H */ | 82 | #endif /* _LINUX_NLS_H */ |
diff --git a/include/linux/of_platform.h b/include/linux/of_platform.h index 3d327b67d7e2..908406651330 100644 --- a/include/linux/of_platform.h +++ b/include/linux/of_platform.h | |||
| @@ -51,6 +51,16 @@ extern int of_register_driver(struct of_platform_driver *drv, | |||
| 51 | struct bus_type *bus); | 51 | struct bus_type *bus); |
| 52 | extern void of_unregister_driver(struct of_platform_driver *drv); | 52 | extern void of_unregister_driver(struct of_platform_driver *drv); |
| 53 | 53 | ||
| 54 | /* Platform drivers register/unregister */ | ||
| 55 | static inline int of_register_platform_driver(struct of_platform_driver *drv) | ||
| 56 | { | ||
| 57 | return of_register_driver(drv, &of_platform_bus_type); | ||
| 58 | } | ||
| 59 | static inline void of_unregister_platform_driver(struct of_platform_driver *drv) | ||
| 60 | { | ||
| 61 | of_unregister_driver(drv); | ||
| 62 | } | ||
| 63 | |||
| 54 | #include <asm/of_platform.h> | 64 | #include <asm/of_platform.h> |
| 55 | 65 | ||
| 56 | extern struct of_device *of_find_device_by_node(struct device_node *np); | 66 | extern struct of_device *of_find_device_by_node(struct device_node *np); |
diff --git a/include/linux/parport.h b/include/linux/parport.h index e1f83c5065c5..38a423ed3c01 100644 --- a/include/linux/parport.h +++ b/include/linux/parport.h | |||
| @@ -324,6 +324,10 @@ struct parport { | |||
| 324 | int spintime; | 324 | int spintime; |
| 325 | atomic_t ref_count; | 325 | atomic_t ref_count; |
| 326 | 326 | ||
| 327 | unsigned long devflags; | ||
| 328 | #define PARPORT_DEVPROC_REGISTERED 0 | ||
| 329 | struct pardevice *proc_device; /* Currently register proc device */ | ||
| 330 | |||
| 327 | struct list_head full_list; | 331 | struct list_head full_list; |
| 328 | struct parport *slaves[3]; | 332 | struct parport *slaves[3]; |
| 329 | }; | 333 | }; |
diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h index 06ba90c211a5..0f71812d67d3 100644 --- a/include/linux/pci_ids.h +++ b/include/linux/pci_ids.h | |||
| @@ -1406,7 +1406,7 @@ | |||
| 1406 | #define PCI_DEVICE_ID_VIA_82C598_1 0x8598 | 1406 | #define PCI_DEVICE_ID_VIA_82C598_1 0x8598 |
| 1407 | #define PCI_DEVICE_ID_VIA_838X_1 0xB188 | 1407 | #define PCI_DEVICE_ID_VIA_838X_1 0xB188 |
| 1408 | #define PCI_DEVICE_ID_VIA_83_87XX_1 0xB198 | 1408 | #define PCI_DEVICE_ID_VIA_83_87XX_1 0xB198 |
| 1409 | #define PCI_DEVICE_ID_VIA_C409_IDE 0XC409 | 1409 | #define PCI_DEVICE_ID_VIA_VX855_IDE 0xC409 |
| 1410 | #define PCI_DEVICE_ID_VIA_ANON 0xFFFF | 1410 | #define PCI_DEVICE_ID_VIA_ANON 0xFFFF |
| 1411 | 1411 | ||
| 1412 | #define PCI_VENDOR_ID_SIEMENS 0x110A | 1412 | #define PCI_VENDOR_ID_SIEMENS 0x110A |
diff --git a/include/linux/pci_regs.h b/include/linux/pci_regs.h index e4d08c1b2e0b..616bf8b3c8b5 100644 --- a/include/linux/pci_regs.h +++ b/include/linux/pci_regs.h | |||
| @@ -376,6 +376,7 @@ | |||
| 376 | #define PCI_EXP_TYPE_DOWNSTREAM 0x6 /* Downstream Port */ | 376 | #define PCI_EXP_TYPE_DOWNSTREAM 0x6 /* Downstream Port */ |
| 377 | #define PCI_EXP_TYPE_PCI_BRIDGE 0x7 /* PCI/PCI-X Bridge */ | 377 | #define PCI_EXP_TYPE_PCI_BRIDGE 0x7 /* PCI/PCI-X Bridge */ |
| 378 | #define PCI_EXP_TYPE_RC_END 0x9 /* Root Complex Integrated Endpoint */ | 378 | #define PCI_EXP_TYPE_RC_END 0x9 /* Root Complex Integrated Endpoint */ |
| 379 | #define PCI_EXP_TYPE_RC_EC 0x10 /* Root Complex Event Collector */ | ||
| 379 | #define PCI_EXP_FLAGS_SLOT 0x0100 /* Slot implemented */ | 380 | #define PCI_EXP_FLAGS_SLOT 0x0100 /* Slot implemented */ |
| 380 | #define PCI_EXP_FLAGS_IRQ 0x3e00 /* Interrupt message number */ | 381 | #define PCI_EXP_FLAGS_IRQ 0x3e00 /* Interrupt message number */ |
| 381 | #define PCI_EXP_DEVCAP 4 /* Device capabilities */ | 382 | #define PCI_EXP_DEVCAP 4 /* Device capabilities */ |
diff --git a/include/linux/pktcdvd.h b/include/linux/pktcdvd.h index 04b4d7330e6d..d745f5b6c7b0 100644 --- a/include/linux/pktcdvd.h +++ b/include/linux/pktcdvd.h | |||
| @@ -113,6 +113,7 @@ struct pkt_ctrl_command { | |||
| 113 | #include <linux/cdrom.h> | 113 | #include <linux/cdrom.h> |
| 114 | #include <linux/kobject.h> | 114 | #include <linux/kobject.h> |
| 115 | #include <linux/sysfs.h> | 115 | #include <linux/sysfs.h> |
| 116 | #include <linux/mempool.h> | ||
| 116 | 117 | ||
| 117 | /* default bio write queue congestion marks */ | 118 | /* default bio write queue congestion marks */ |
| 118 | #define PKT_WRITE_CONGESTION_ON 10000 | 119 | #define PKT_WRITE_CONGESTION_ON 10000 |
diff --git a/include/linux/platform_device.h b/include/linux/platform_device.h index 72736fd8223c..b67bb5d7b221 100644 --- a/include/linux/platform_device.h +++ b/include/linux/platform_device.h | |||
| @@ -20,7 +20,6 @@ struct platform_device { | |||
| 20 | struct device dev; | 20 | struct device dev; |
| 21 | u32 num_resources; | 21 | u32 num_resources; |
| 22 | struct resource * resource; | 22 | struct resource * resource; |
| 23 | void *platform_data; | ||
| 24 | 23 | ||
| 25 | struct platform_device_id *id_entry; | 24 | struct platform_device_id *id_entry; |
| 26 | }; | 25 | }; |
diff --git a/include/linux/regulator/driver.h b/include/linux/regulator/driver.h index 4848d8dacd90..225f733e7533 100644 --- a/include/linux/regulator/driver.h +++ b/include/linux/regulator/driver.h | |||
| @@ -50,6 +50,7 @@ enum regulator_status { | |||
| 50 | * @set_current_limit: Configure a limit for a current-limited regulator. | 50 | * @set_current_limit: Configure a limit for a current-limited regulator. |
| 51 | * @get_current_limit: Get the configured limit for a current-limited regulator. | 51 | * @get_current_limit: Get the configured limit for a current-limited regulator. |
| 52 | * | 52 | * |
| 53 | * @set_mode: Set the configured operating mode for the regulator. | ||
| 53 | * @get_mode: Get the configured operating mode for the regulator. | 54 | * @get_mode: Get the configured operating mode for the regulator. |
| 54 | * @get_status: Return actual (not as-configured) status of regulator, as a | 55 | * @get_status: Return actual (not as-configured) status of regulator, as a |
| 55 | * REGULATOR_STATUS value (or negative errno) | 56 | * REGULATOR_STATUS value (or negative errno) |
diff --git a/include/linux/reiserfs_fs_sb.h b/include/linux/reiserfs_fs_sb.h index 6b361d23a499..6473650c28f1 100644 --- a/include/linux/reiserfs_fs_sb.h +++ b/include/linux/reiserfs_fs_sb.h | |||
| @@ -402,7 +402,7 @@ struct reiserfs_sb_info { | |||
| 402 | int reserved_blocks; /* amount of blocks reserved for further allocations */ | 402 | int reserved_blocks; /* amount of blocks reserved for further allocations */ |
| 403 | spinlock_t bitmap_lock; /* this lock on now only used to protect reserved_blocks variable */ | 403 | spinlock_t bitmap_lock; /* this lock on now only used to protect reserved_blocks variable */ |
| 404 | struct dentry *priv_root; /* root of /.reiserfs_priv */ | 404 | struct dentry *priv_root; /* root of /.reiserfs_priv */ |
| 405 | struct dentry *xattr_root; /* root of /.reiserfs_priv/.xa */ | 405 | struct dentry *xattr_root; /* root of /.reiserfs_priv/xattrs */ |
| 406 | int j_errno; | 406 | int j_errno; |
| 407 | #ifdef CONFIG_QUOTA | 407 | #ifdef CONFIG_QUOTA |
| 408 | char *s_qf_names[MAXQUOTAS]; | 408 | char *s_qf_names[MAXQUOTAS]; |
| @@ -488,7 +488,6 @@ enum reiserfs_mount_options { | |||
| 488 | #define reiserfs_data_log(s) (REISERFS_SB(s)->s_mount_opt & (1 << REISERFS_DATA_LOG)) | 488 | #define reiserfs_data_log(s) (REISERFS_SB(s)->s_mount_opt & (1 << REISERFS_DATA_LOG)) |
| 489 | #define reiserfs_data_ordered(s) (REISERFS_SB(s)->s_mount_opt & (1 << REISERFS_DATA_ORDERED)) | 489 | #define reiserfs_data_ordered(s) (REISERFS_SB(s)->s_mount_opt & (1 << REISERFS_DATA_ORDERED)) |
| 490 | #define reiserfs_data_writeback(s) (REISERFS_SB(s)->s_mount_opt & (1 << REISERFS_DATA_WRITEBACK)) | 490 | #define reiserfs_data_writeback(s) (REISERFS_SB(s)->s_mount_opt & (1 << REISERFS_DATA_WRITEBACK)) |
| 491 | #define reiserfs_xattrs(s) ((s)->s_xattr != NULL) | ||
| 492 | #define reiserfs_xattrs_user(s) (REISERFS_SB(s)->s_mount_opt & (1 << REISERFS_XATTRS_USER)) | 491 | #define reiserfs_xattrs_user(s) (REISERFS_SB(s)->s_mount_opt & (1 << REISERFS_XATTRS_USER)) |
| 493 | #define reiserfs_posixacl(s) (REISERFS_SB(s)->s_mount_opt & (1 << REISERFS_POSIXACL)) | 492 | #define reiserfs_posixacl(s) (REISERFS_SB(s)->s_mount_opt & (1 << REISERFS_POSIXACL)) |
| 494 | #define reiserfs_xattrs_optional(s) (reiserfs_xattrs_user(s) || reiserfs_posixacl(s)) | 493 | #define reiserfs_xattrs_optional(s) (reiserfs_xattrs_user(s) || reiserfs_posixacl(s)) |
diff --git a/include/linux/reiserfs_xattr.h b/include/linux/reiserfs_xattr.h index dcae01e63e40..99928dce37ea 100644 --- a/include/linux/reiserfs_xattr.h +++ b/include/linux/reiserfs_xattr.h | |||
| @@ -38,8 +38,10 @@ struct nameidata; | |||
| 38 | int reiserfs_xattr_register_handlers(void) __init; | 38 | int reiserfs_xattr_register_handlers(void) __init; |
| 39 | void reiserfs_xattr_unregister_handlers(void); | 39 | void reiserfs_xattr_unregister_handlers(void); |
| 40 | int reiserfs_xattr_init(struct super_block *sb, int mount_flags); | 40 | int reiserfs_xattr_init(struct super_block *sb, int mount_flags); |
| 41 | int reiserfs_lookup_privroot(struct super_block *sb); | ||
| 41 | int reiserfs_delete_xattrs(struct inode *inode); | 42 | int reiserfs_delete_xattrs(struct inode *inode); |
| 42 | int reiserfs_chown_xattrs(struct inode *inode, struct iattr *attrs); | 43 | int reiserfs_chown_xattrs(struct inode *inode, struct iattr *attrs); |
| 44 | int reiserfs_permission(struct inode *inode, int mask); | ||
| 43 | 45 | ||
| 44 | #ifdef CONFIG_REISERFS_FS_XATTR | 46 | #ifdef CONFIG_REISERFS_FS_XATTR |
| 45 | #define has_xattr_dir(inode) (REISERFS_I(inode)->i_flags & i_has_xattr_dir) | 47 | #define has_xattr_dir(inode) (REISERFS_I(inode)->i_flags & i_has_xattr_dir) |
| @@ -49,7 +51,6 @@ int reiserfs_setxattr(struct dentry *dentry, const char *name, | |||
| 49 | const void *value, size_t size, int flags); | 51 | const void *value, size_t size, int flags); |
| 50 | ssize_t reiserfs_listxattr(struct dentry *dentry, char *buffer, size_t size); | 52 | ssize_t reiserfs_listxattr(struct dentry *dentry, char *buffer, size_t size); |
| 51 | int reiserfs_removexattr(struct dentry *dentry, const char *name); | 53 | int reiserfs_removexattr(struct dentry *dentry, const char *name); |
| 52 | int reiserfs_permission(struct inode *inode, int mask); | ||
| 53 | 54 | ||
| 54 | int reiserfs_xattr_get(struct inode *, const char *, void *, size_t); | 55 | int reiserfs_xattr_get(struct inode *, const char *, void *, size_t); |
| 55 | int reiserfs_xattr_set(struct inode *, const char *, const void *, size_t, int); | 56 | int reiserfs_xattr_set(struct inode *, const char *, const void *, size_t, int); |
| @@ -97,7 +98,7 @@ static inline size_t reiserfs_xattr_jcreate_nblocks(struct inode *inode) | |||
| 97 | 98 | ||
| 98 | if ((REISERFS_I(inode)->i_flags & i_has_xattr_dir) == 0) { | 99 | if ((REISERFS_I(inode)->i_flags & i_has_xattr_dir) == 0) { |
| 99 | nblocks += JOURNAL_BLOCKS_PER_OBJECT(inode->i_sb); | 100 | nblocks += JOURNAL_BLOCKS_PER_OBJECT(inode->i_sb); |
| 100 | if (REISERFS_SB(inode->i_sb)->xattr_root == NULL) | 101 | if (!REISERFS_SB(inode->i_sb)->xattr_root->d_inode) |
| 101 | nblocks += JOURNAL_BLOCKS_PER_OBJECT(inode->i_sb); | 102 | nblocks += JOURNAL_BLOCKS_PER_OBJECT(inode->i_sb); |
| 102 | } | 103 | } |
| 103 | 104 | ||
| @@ -116,8 +117,6 @@ static inline void reiserfs_init_xattr_rwsem(struct inode *inode) | |||
| 116 | #define reiserfs_listxattr NULL | 117 | #define reiserfs_listxattr NULL |
| 117 | #define reiserfs_removexattr NULL | 118 | #define reiserfs_removexattr NULL |
| 118 | 119 | ||
| 119 | #define reiserfs_permission NULL | ||
| 120 | |||
| 121 | static inline void reiserfs_init_xattr_rwsem(struct inode *inode) | 120 | static inline void reiserfs_init_xattr_rwsem(struct inode *inode) |
| 122 | { | 121 | { |
| 123 | } | 122 | } |
diff --git a/include/linux/romfs_fs.h b/include/linux/romfs_fs.h index e20bbf9eb365..c490fbc43fe2 100644 --- a/include/linux/romfs_fs.h +++ b/include/linux/romfs_fs.h | |||
| @@ -53,9 +53,4 @@ struct romfs_inode { | |||
| 53 | #define ROMFH_PAD (ROMFH_SIZE-1) | 53 | #define ROMFH_PAD (ROMFH_SIZE-1) |
| 54 | #define ROMFH_MASK (~ROMFH_PAD) | 54 | #define ROMFH_MASK (~ROMFH_PAD) |
| 55 | 55 | ||
| 56 | #ifdef __KERNEL__ | ||
| 57 | |||
| 58 | /* Not much now */ | ||
| 59 | |||
| 60 | #endif /* __KERNEL__ */ | ||
| 61 | #endif | 56 | #endif |
diff --git a/include/linux/section-names.h b/include/linux/section-names.h new file mode 100644 index 000000000000..c956f4eb2adf --- /dev/null +++ b/include/linux/section-names.h | |||
| @@ -0,0 +1,6 @@ | |||
| 1 | #ifndef __LINUX_SECTION_NAMES_H | ||
| 2 | #define __LINUX_SECTION_NAMES_H | ||
| 3 | |||
| 4 | #define HEAD_TEXT_SECTION .head.text | ||
| 5 | |||
| 6 | #endif /* !__LINUX_SECTION_NAMES_H */ | ||
diff --git a/include/linux/sunrpc/xprt.h b/include/linux/sunrpc/xprt.h index 1758d9f5b5c3..08afe43118f4 100644 --- a/include/linux/sunrpc/xprt.h +++ b/include/linux/sunrpc/xprt.h | |||
| @@ -261,6 +261,7 @@ void xprt_conditional_disconnect(struct rpc_xprt *xprt, unsigned int cookie); | |||
| 261 | #define XPRT_BINDING (5) | 261 | #define XPRT_BINDING (5) |
| 262 | #define XPRT_CLOSING (6) | 262 | #define XPRT_CLOSING (6) |
| 263 | #define XPRT_CONNECTION_ABORT (7) | 263 | #define XPRT_CONNECTION_ABORT (7) |
| 264 | #define XPRT_CONNECTION_CLOSE (8) | ||
| 264 | 265 | ||
| 265 | static inline void xprt_set_connected(struct rpc_xprt *xprt) | 266 | static inline void xprt_set_connected(struct rpc_xprt *xprt) |
| 266 | { | 267 | { |
diff --git a/include/linux/swap.h b/include/linux/swap.h index 62d81435347a..d476aad3ff57 100644 --- a/include/linux/swap.h +++ b/include/linux/swap.h | |||
| @@ -437,6 +437,11 @@ static inline int mem_cgroup_cache_charge_swapin(struct page *page, | |||
| 437 | return 0; | 437 | return 0; |
| 438 | } | 438 | } |
| 439 | 439 | ||
| 440 | static inline void | ||
| 441 | mem_cgroup_uncharge_swapcache(struct page *page, swp_entry_t ent) | ||
| 442 | { | ||
| 443 | } | ||
| 444 | |||
| 440 | #endif /* CONFIG_SWAP */ | 445 | #endif /* CONFIG_SWAP */ |
| 441 | #endif /* __KERNEL__*/ | 446 | #endif /* __KERNEL__*/ |
| 442 | #endif /* _LINUX_SWAP_H */ | 447 | #endif /* _LINUX_SWAP_H */ |
diff --git a/include/linux/syscalls.h b/include/linux/syscalls.h index 40617c1d8976..30520844b8da 100644 --- a/include/linux/syscalls.h +++ b/include/linux/syscalls.h | |||
| @@ -433,6 +433,7 @@ asmlinkage long sys_fcntl(unsigned int fd, unsigned int cmd, unsigned long arg); | |||
| 433 | asmlinkage long sys_fcntl64(unsigned int fd, | 433 | asmlinkage long sys_fcntl64(unsigned int fd, |
| 434 | unsigned int cmd, unsigned long arg); | 434 | unsigned int cmd, unsigned long arg); |
| 435 | #endif | 435 | #endif |
| 436 | asmlinkage long sys_pipe2(int __user *fildes, int flags); | ||
| 436 | asmlinkage long sys_dup(unsigned int fildes); | 437 | asmlinkage long sys_dup(unsigned int fildes); |
| 437 | asmlinkage long sys_dup2(unsigned int oldfd, unsigned int newfd); | 438 | asmlinkage long sys_dup2(unsigned int oldfd, unsigned int newfd); |
| 438 | asmlinkage long sys_dup3(unsigned int oldfd, unsigned int newfd, int flags); | 439 | asmlinkage long sys_dup3(unsigned int oldfd, unsigned int newfd, int flags); |
diff --git a/include/linux/tracehook.h b/include/linux/tracehook.h index c7aa154f4bfc..eb96603d92db 100644 --- a/include/linux/tracehook.h +++ b/include/linux/tracehook.h | |||
| @@ -259,14 +259,12 @@ static inline void tracehook_finish_clone(struct task_struct *child, | |||
| 259 | 259 | ||
| 260 | /** | 260 | /** |
| 261 | * tracehook_report_clone - in parent, new child is about to start running | 261 | * tracehook_report_clone - in parent, new child is about to start running |
| 262 | * @trace: return value from tracehook_prepare_clone() | ||
| 263 | * @regs: parent's user register state | 262 | * @regs: parent's user register state |
| 264 | * @clone_flags: flags from parent's system call | 263 | * @clone_flags: flags from parent's system call |
| 265 | * @pid: new child's PID in the parent's namespace | 264 | * @pid: new child's PID in the parent's namespace |
| 266 | * @child: new child task | 265 | * @child: new child task |
| 267 | * | 266 | * |
| 268 | * Called after a child is set up, but before it has been started | 267 | * Called after a child is set up, but before it has been started running. |
| 269 | * running. @trace is the value returned by tracehook_prepare_clone(). | ||
| 270 | * This is not a good place to block, because the child has not started | 268 | * This is not a good place to block, because the child has not started |
| 271 | * yet. Suspend the child here if desired, and then block in | 269 | * yet. Suspend the child here if desired, and then block in |
| 272 | * tracehook_report_clone_complete(). This must prevent the child from | 270 | * tracehook_report_clone_complete(). This must prevent the child from |
| @@ -276,13 +274,14 @@ static inline void tracehook_finish_clone(struct task_struct *child, | |||
| 276 | * | 274 | * |
| 277 | * Called with no locks held, but the child cannot run until this returns. | 275 | * Called with no locks held, but the child cannot run until this returns. |
| 278 | */ | 276 | */ |
| 279 | static inline void tracehook_report_clone(int trace, struct pt_regs *regs, | 277 | static inline void tracehook_report_clone(struct pt_regs *regs, |
| 280 | unsigned long clone_flags, | 278 | unsigned long clone_flags, |
| 281 | pid_t pid, struct task_struct *child) | 279 | pid_t pid, struct task_struct *child) |
| 282 | { | 280 | { |
| 283 | if (unlikely(trace) || unlikely(clone_flags & CLONE_PTRACE)) { | 281 | if (unlikely(task_ptrace(child))) { |
| 284 | /* | 282 | /* |
| 285 | * The child starts up with an immediate SIGSTOP. | 283 | * It doesn't matter who attached/attaching to this |
| 284 | * task, the pending SIGSTOP is right in any case. | ||
| 286 | */ | 285 | */ |
| 287 | sigaddset(&child->pending.signal, SIGSTOP); | 286 | sigaddset(&child->pending.signal, SIGSTOP); |
| 288 | set_tsk_thread_flag(child, TIF_SIGPENDING); | 287 | set_tsk_thread_flag(child, TIF_SIGPENDING); |
diff --git a/include/linux/usb/cdc.h b/include/linux/usb/cdc.h index 3c86ed25a04c..c24124a42ce5 100644 --- a/include/linux/usb/cdc.h +++ b/include/linux/usb/cdc.h | |||
| @@ -17,6 +17,7 @@ | |||
| 17 | #define USB_CDC_SUBCLASS_DMM 0x09 | 17 | #define USB_CDC_SUBCLASS_DMM 0x09 |
| 18 | #define USB_CDC_SUBCLASS_MDLM 0x0a | 18 | #define USB_CDC_SUBCLASS_MDLM 0x0a |
| 19 | #define USB_CDC_SUBCLASS_OBEX 0x0b | 19 | #define USB_CDC_SUBCLASS_OBEX 0x0b |
| 20 | #define USB_CDC_SUBCLASS_EEM 0x0c | ||
| 20 | 21 | ||
| 21 | #define USB_CDC_PROTO_NONE 0 | 22 | #define USB_CDC_PROTO_NONE 0 |
| 22 | 23 | ||
| @@ -28,6 +29,8 @@ | |||
| 28 | #define USB_CDC_ACM_PROTO_AT_CDMA 6 | 29 | #define USB_CDC_ACM_PROTO_AT_CDMA 6 |
| 29 | #define USB_CDC_ACM_PROTO_VENDOR 0xff | 30 | #define USB_CDC_ACM_PROTO_VENDOR 0xff |
| 30 | 31 | ||
| 32 | #define USB_CDC_PROTO_EEM 7 | ||
| 33 | |||
| 31 | /*-------------------------------------------------------------------------*/ | 34 | /*-------------------------------------------------------------------------*/ |
| 32 | 35 | ||
| 33 | /* | 36 | /* |
diff --git a/include/linux/usb/musb.h b/include/linux/usb/musb.h index d6aad0ea6033..d43755669261 100644 --- a/include/linux/usb/musb.h +++ b/include/linux/usb/musb.h | |||
| @@ -7,6 +7,9 @@ | |||
| 7 | * key configuration differences between boards. | 7 | * key configuration differences between boards. |
| 8 | */ | 8 | */ |
| 9 | 9 | ||
| 10 | #ifndef __LINUX_USB_MUSB_H | ||
| 11 | #define __LINUX_USB_MUSB_H | ||
| 12 | |||
| 10 | /* The USB role is defined by the connector used on the board, so long as | 13 | /* The USB role is defined by the connector used on the board, so long as |
| 11 | * standards are being followed. (Developer boards sometimes won't.) | 14 | * standards are being followed. (Developer boards sometimes won't.) |
| 12 | */ | 15 | */ |
| @@ -101,3 +104,5 @@ extern int __init tusb6010_setup_interface( | |||
| 101 | extern int tusb6010_platform_retime(unsigned is_refclk); | 104 | extern int tusb6010_platform_retime(unsigned is_refclk); |
| 102 | 105 | ||
| 103 | #endif /* OMAP2 */ | 106 | #endif /* OMAP2 */ |
| 107 | |||
| 108 | #endif /* __LINUX_USB_MUSB_H */ | ||
diff --git a/include/linux/virtio_net.h b/include/linux/virtio_net.h index 242348bb3766..cec79adbe3ea 100644 --- a/include/linux/virtio_net.h +++ b/include/linux/virtio_net.h | |||
| @@ -4,6 +4,7 @@ | |||
| 4 | * compatible drivers/servers. */ | 4 | * compatible drivers/servers. */ |
| 5 | #include <linux/types.h> | 5 | #include <linux/types.h> |
| 6 | #include <linux/virtio_config.h> | 6 | #include <linux/virtio_config.h> |
| 7 | #include <linux/if_ether.h> | ||
| 7 | 8 | ||
| 8 | /* The ID for virtio_net */ | 9 | /* The ID for virtio_net */ |
| 9 | #define VIRTIO_ID_NET 1 | 10 | #define VIRTIO_ID_NET 1 |
diff --git a/include/linux/wait.h b/include/linux/wait.h index 5d631c17eaee..bc024632f365 100644 --- a/include/linux/wait.h +++ b/include/linux/wait.h | |||
| @@ -440,13 +440,15 @@ void abort_exclusive_wait(wait_queue_head_t *q, wait_queue_t *wait, | |||
| 440 | int autoremove_wake_function(wait_queue_t *wait, unsigned mode, int sync, void *key); | 440 | int autoremove_wake_function(wait_queue_t *wait, unsigned mode, int sync, void *key); |
| 441 | int wake_bit_function(wait_queue_t *wait, unsigned mode, int sync, void *key); | 441 | int wake_bit_function(wait_queue_t *wait, unsigned mode, int sync, void *key); |
| 442 | 442 | ||
| 443 | #define DEFINE_WAIT(name) \ | 443 | #define DEFINE_WAIT_FUNC(name, function) \ |
| 444 | wait_queue_t name = { \ | 444 | wait_queue_t name = { \ |
| 445 | .private = current, \ | 445 | .private = current, \ |
| 446 | .func = autoremove_wake_function, \ | 446 | .func = function, \ |
| 447 | .task_list = LIST_HEAD_INIT((name).task_list), \ | 447 | .task_list = LIST_HEAD_INIT((name).task_list), \ |
| 448 | } | 448 | } |
| 449 | 449 | ||
| 450 | #define DEFINE_WAIT(name) DEFINE_WAIT_FUNC(name, autoremove_wake_function) | ||
| 451 | |||
| 450 | #define DEFINE_WAIT_BIT(name, word, bit) \ | 452 | #define DEFINE_WAIT_BIT(name, word, bit) \ |
| 451 | struct wait_bit_queue name = { \ | 453 | struct wait_bit_queue name = { \ |
| 452 | .key = __WAIT_BIT_KEY_INITIALIZER(word, bit), \ | 454 | .key = __WAIT_BIT_KEY_INITIALIZER(word, bit), \ |
diff --git a/include/linux/writeback.h b/include/linux/writeback.h index 9c1ed1fb6ddb..93445477f86a 100644 --- a/include/linux/writeback.h +++ b/include/linux/writeback.h | |||
| @@ -168,8 +168,6 @@ void writeback_set_ratelimit(void); | |||
| 168 | /* pdflush.c */ | 168 | /* pdflush.c */ |
| 169 | extern int nr_pdflush_threads; /* Global so it can be exported to sysctl | 169 | extern int nr_pdflush_threads; /* Global so it can be exported to sysctl |
| 170 | read-only. */ | 170 | read-only. */ |
| 171 | extern int nr_pdflush_threads_max; /* Global so it can be exported to sysctl */ | ||
| 172 | extern int nr_pdflush_threads_min; /* Global so it can be exported to sysctl */ | ||
| 173 | 171 | ||
| 174 | 172 | ||
| 175 | #endif /* WRITEBACK_H */ | 173 | #endif /* WRITEBACK_H */ |
diff --git a/include/net/9p/client.h b/include/net/9p/client.h index 4012e07162e5..e26812274b75 100644 --- a/include/net/9p/client.h +++ b/include/net/9p/client.h | |||
| @@ -98,7 +98,6 @@ enum p9_req_status_t { | |||
| 98 | struct p9_req_t { | 98 | struct p9_req_t { |
| 99 | int status; | 99 | int status; |
| 100 | int t_err; | 100 | int t_err; |
| 101 | u16 flush_tag; | ||
| 102 | wait_queue_head_t *wq; | 101 | wait_queue_head_t *wq; |
| 103 | struct p9_fcall *tc; | 102 | struct p9_fcall *tc; |
| 104 | struct p9_fcall *rc; | 103 | struct p9_fcall *rc; |
diff --git a/include/net/bluetooth/hci.h b/include/net/bluetooth/hci.h index f69f015bbcc0..ed3aea1605e8 100644 --- a/include/net/bluetooth/hci.h +++ b/include/net/bluetooth/hci.h | |||
| @@ -101,6 +101,7 @@ enum { | |||
| 101 | /* HCI timeouts */ | 101 | /* HCI timeouts */ |
| 102 | #define HCI_CONNECT_TIMEOUT (40000) /* 40 seconds */ | 102 | #define HCI_CONNECT_TIMEOUT (40000) /* 40 seconds */ |
| 103 | #define HCI_DISCONN_TIMEOUT (2000) /* 2 seconds */ | 103 | #define HCI_DISCONN_TIMEOUT (2000) /* 2 seconds */ |
| 104 | #define HCI_PAIRING_TIMEOUT (60000) /* 60 seconds */ | ||
| 104 | #define HCI_IDLE_TIMEOUT (6000) /* 6 seconds */ | 105 | #define HCI_IDLE_TIMEOUT (6000) /* 6 seconds */ |
| 105 | #define HCI_INIT_TIMEOUT (10000) /* 10 seconds */ | 106 | #define HCI_INIT_TIMEOUT (10000) /* 10 seconds */ |
| 106 | 107 | ||
diff --git a/include/net/bluetooth/hci_core.h b/include/net/bluetooth/hci_core.h index 01f9316b4c23..73aead222b32 100644 --- a/include/net/bluetooth/hci_core.h +++ b/include/net/bluetooth/hci_core.h | |||
| @@ -171,6 +171,7 @@ struct hci_conn { | |||
| 171 | __u8 auth_type; | 171 | __u8 auth_type; |
| 172 | __u8 sec_level; | 172 | __u8 sec_level; |
| 173 | __u8 power_save; | 173 | __u8 power_save; |
| 174 | __u16 disc_timeout; | ||
| 174 | unsigned long pend; | 175 | unsigned long pend; |
| 175 | 176 | ||
| 176 | unsigned int sent; | 177 | unsigned int sent; |
| @@ -180,7 +181,8 @@ struct hci_conn { | |||
| 180 | struct timer_list disc_timer; | 181 | struct timer_list disc_timer; |
| 181 | struct timer_list idle_timer; | 182 | struct timer_list idle_timer; |
| 182 | 183 | ||
| 183 | struct work_struct work; | 184 | struct work_struct work_add; |
| 185 | struct work_struct work_del; | ||
| 184 | 186 | ||
| 185 | struct device dev; | 187 | struct device dev; |
| 186 | 188 | ||
| @@ -348,9 +350,9 @@ static inline void hci_conn_put(struct hci_conn *conn) | |||
| 348 | if (conn->type == ACL_LINK) { | 350 | if (conn->type == ACL_LINK) { |
| 349 | del_timer(&conn->idle_timer); | 351 | del_timer(&conn->idle_timer); |
| 350 | if (conn->state == BT_CONNECTED) { | 352 | if (conn->state == BT_CONNECTED) { |
| 351 | timeo = msecs_to_jiffies(HCI_DISCONN_TIMEOUT); | 353 | timeo = msecs_to_jiffies(conn->disc_timeout); |
| 352 | if (!conn->out) | 354 | if (!conn->out) |
| 353 | timeo *= 5; | 355 | timeo *= 2; |
| 354 | } else | 356 | } else |
| 355 | timeo = msecs_to_jiffies(10); | 357 | timeo = msecs_to_jiffies(10); |
| 356 | } else | 358 | } else |
| @@ -455,6 +457,7 @@ int hci_recv_fragment(struct hci_dev *hdev, int type, void *data, int count); | |||
| 455 | 457 | ||
| 456 | int hci_register_sysfs(struct hci_dev *hdev); | 458 | int hci_register_sysfs(struct hci_dev *hdev); |
| 457 | void hci_unregister_sysfs(struct hci_dev *hdev); | 459 | void hci_unregister_sysfs(struct hci_dev *hdev); |
| 460 | void hci_conn_init_sysfs(struct hci_conn *conn); | ||
| 458 | void hci_conn_add_sysfs(struct hci_conn *conn); | 461 | void hci_conn_add_sysfs(struct hci_conn *conn); |
| 459 | void hci_conn_del_sysfs(struct hci_conn *conn); | 462 | void hci_conn_del_sysfs(struct hci_conn *conn); |
| 460 | 463 | ||
diff --git a/include/net/netfilter/nf_nat.h b/include/net/netfilter/nf_nat.h index 9dc1039ff78b..8df0b7f7fc6e 100644 --- a/include/net/netfilter/nf_nat.h +++ b/include/net/netfilter/nf_nat.h | |||
| @@ -18,6 +18,7 @@ enum nf_nat_manip_type | |||
| 18 | #define IP_NAT_RANGE_MAP_IPS 1 | 18 | #define IP_NAT_RANGE_MAP_IPS 1 |
| 19 | #define IP_NAT_RANGE_PROTO_SPECIFIED 2 | 19 | #define IP_NAT_RANGE_PROTO_SPECIFIED 2 |
| 20 | #define IP_NAT_RANGE_PROTO_RANDOM 4 | 20 | #define IP_NAT_RANGE_PROTO_RANDOM 4 |
| 21 | #define IP_NAT_RANGE_PERSISTENT 8 | ||
| 21 | 22 | ||
| 22 | /* NAT sequence number modifications */ | 23 | /* NAT sequence number modifications */ |
| 23 | struct nf_nat_seq { | 24 | struct nf_nat_seq { |
diff --git a/include/net/tcp.h b/include/net/tcp.h index 1b94b9bfe2dc..646dbe3962ea 100644 --- a/include/net/tcp.h +++ b/include/net/tcp.h | |||
| @@ -41,6 +41,7 @@ | |||
| 41 | #include <net/ip.h> | 41 | #include <net/ip.h> |
| 42 | #include <net/tcp_states.h> | 42 | #include <net/tcp_states.h> |
| 43 | #include <net/inet_ecn.h> | 43 | #include <net/inet_ecn.h> |
| 44 | #include <net/dst.h> | ||
| 44 | 45 | ||
| 45 | #include <linux/seq_file.h> | 46 | #include <linux/seq_file.h> |
| 46 | 47 | ||
| @@ -530,6 +531,17 @@ static inline void tcp_fast_path_check(struct sock *sk) | |||
| 530 | tcp_fast_path_on(tp); | 531 | tcp_fast_path_on(tp); |
| 531 | } | 532 | } |
| 532 | 533 | ||
| 534 | /* Compute the actual rto_min value */ | ||
| 535 | static inline u32 tcp_rto_min(struct sock *sk) | ||
| 536 | { | ||
| 537 | struct dst_entry *dst = __sk_dst_get(sk); | ||
| 538 | u32 rto_min = TCP_RTO_MIN; | ||
| 539 | |||
| 540 | if (dst && dst_metric_locked(dst, RTAX_RTO_MIN)) | ||
| 541 | rto_min = dst_metric_rtt(dst, RTAX_RTO_MIN); | ||
| 542 | return rto_min; | ||
| 543 | } | ||
| 544 | |||
| 533 | /* Compute the actual receive window we are currently advertising. | 545 | /* Compute the actual receive window we are currently advertising. |
| 534 | * Rcv_nxt can be after the window if our peer push more data | 546 | * Rcv_nxt can be after the window if our peer push more data |
| 535 | * than the offered window. | 547 | * than the offered window. |
| @@ -895,7 +907,7 @@ static inline int tcp_prequeue(struct sock *sk, struct sk_buff *skb) | |||
| 895 | wake_up_interruptible(sk->sk_sleep); | 907 | wake_up_interruptible(sk->sk_sleep); |
| 896 | if (!inet_csk_ack_scheduled(sk)) | 908 | if (!inet_csk_ack_scheduled(sk)) |
| 897 | inet_csk_reset_xmit_timer(sk, ICSK_TIME_DACK, | 909 | inet_csk_reset_xmit_timer(sk, ICSK_TIME_DACK, |
| 898 | (3 * TCP_RTO_MIN) / 4, | 910 | (3 * tcp_rto_min(sk)) / 4, |
| 899 | TCP_RTO_MAX); | 911 | TCP_RTO_MAX); |
| 900 | } | 912 | } |
| 901 | return 1; | 913 | return 1; |
diff --git a/include/scsi/fc/fc_fs.h b/include/scsi/fc/fc_fs.h index 1b7af3a64c7c..ac4cd38c860e 100644 --- a/include/scsi/fc/fc_fs.h +++ b/include/scsi/fc/fc_fs.h | |||
| @@ -149,6 +149,7 @@ enum fc_rctl { | |||
| 149 | * Well-known fabric addresses. | 149 | * Well-known fabric addresses. |
| 150 | */ | 150 | */ |
| 151 | enum fc_well_known_fid { | 151 | enum fc_well_known_fid { |
| 152 | FC_FID_NONE = 0x000000, /* No destination */ | ||
| 152 | FC_FID_BCAST = 0xffffff, /* broadcast */ | 153 | FC_FID_BCAST = 0xffffff, /* broadcast */ |
| 153 | FC_FID_FLOGI = 0xfffffe, /* fabric login */ | 154 | FC_FID_FLOGI = 0xfffffe, /* fabric login */ |
| 154 | FC_FID_FCTRL = 0xfffffd, /* fabric controller */ | 155 | FC_FID_FCTRL = 0xfffffd, /* fabric controller */ |
diff --git a/include/scsi/libfc.h b/include/scsi/libfc.h index 0303a6a098cc..45f9cc642c46 100644 --- a/include/scsi/libfc.h +++ b/include/scsi/libfc.h | |||
| @@ -637,6 +637,7 @@ struct fc_disc { | |||
| 637 | enum fc_disc_event); | 637 | enum fc_disc_event); |
| 638 | 638 | ||
| 639 | struct list_head rports; | 639 | struct list_head rports; |
| 640 | struct list_head rogue_rports; | ||
| 640 | struct fc_lport *lport; | 641 | struct fc_lport *lport; |
| 641 | struct mutex disc_mutex; | 642 | struct mutex disc_mutex; |
| 642 | struct fc_gpn_ft_resp partial_buf; /* partial name buffer */ | 643 | struct fc_gpn_ft_resp partial_buf; /* partial name buffer */ |
diff --git a/include/scsi/libiscsi.h b/include/scsi/libiscsi.h index 7ffaed2f94dd..0289f5745fb9 100644 --- a/include/scsi/libiscsi.h +++ b/include/scsi/libiscsi.h | |||
| @@ -36,6 +36,7 @@ struct scsi_transport_template; | |||
| 36 | struct scsi_host_template; | 36 | struct scsi_host_template; |
| 37 | struct scsi_device; | 37 | struct scsi_device; |
| 38 | struct Scsi_Host; | 38 | struct Scsi_Host; |
| 39 | struct scsi_target; | ||
| 39 | struct scsi_cmnd; | 40 | struct scsi_cmnd; |
| 40 | struct socket; | 41 | struct socket; |
| 41 | struct iscsi_transport; | 42 | struct iscsi_transport; |
| @@ -350,6 +351,7 @@ extern struct Scsi_Host *iscsi_host_alloc(struct scsi_host_template *sht, | |||
| 350 | bool xmit_can_sleep); | 351 | bool xmit_can_sleep); |
| 351 | extern void iscsi_host_remove(struct Scsi_Host *shost); | 352 | extern void iscsi_host_remove(struct Scsi_Host *shost); |
| 352 | extern void iscsi_host_free(struct Scsi_Host *shost); | 353 | extern void iscsi_host_free(struct Scsi_Host *shost); |
| 354 | extern int iscsi_target_alloc(struct scsi_target *starget); | ||
| 353 | 355 | ||
| 354 | /* | 356 | /* |
| 355 | * session management | 357 | * session management |
diff --git a/include/scsi/osd_protocol.h b/include/scsi/osd_protocol.h index cd3cbf764650..62b2ab8c69d4 100644 --- a/include/scsi/osd_protocol.h +++ b/include/scsi/osd_protocol.h | |||
| @@ -24,17 +24,18 @@ enum { | |||
| 24 | OSDv1_ADDITIONAL_CDB_LENGTH = 192, | 24 | OSDv1_ADDITIONAL_CDB_LENGTH = 192, |
| 25 | OSDv1_TOTAL_CDB_LEN = OSDv1_ADDITIONAL_CDB_LENGTH + 8, | 25 | OSDv1_TOTAL_CDB_LEN = OSDv1_ADDITIONAL_CDB_LENGTH + 8, |
| 26 | OSDv1_CAP_LEN = 80, | 26 | OSDv1_CAP_LEN = 80, |
| 27 | |||
| 27 | /* Latest supported version */ | 28 | /* Latest supported version */ |
| 28 | /* OSD_ADDITIONAL_CDB_LENGTH = 216,*/ | 29 | OSDv2_ADDITIONAL_CDB_LENGTH = 228, |
| 29 | OSD_ADDITIONAL_CDB_LENGTH = | 30 | OSD_ADDITIONAL_CDB_LENGTH = |
| 30 | OSDv1_ADDITIONAL_CDB_LENGTH, /* FIXME: Pete rev-001 sup */ | 31 | OSDv2_ADDITIONAL_CDB_LENGTH, |
| 31 | OSD_TOTAL_CDB_LEN = OSD_ADDITIONAL_CDB_LENGTH + 8, | 32 | OSD_TOTAL_CDB_LEN = OSD_ADDITIONAL_CDB_LENGTH + 8, |
| 32 | /* OSD_CAP_LEN = 104,*/ | 33 | OSD_CAP_LEN = 104, |
| 33 | OSD_CAP_LEN = OSDv1_CAP_LEN,/* FIXME: Pete rev-001 sup */ | ||
| 34 | 34 | ||
| 35 | OSD_SYSTEMID_LEN = 20, | 35 | OSD_SYSTEMID_LEN = 20, |
| 36 | OSD_CRYPTO_KEYID_SIZE = 20, | 36 | OSDv1_CRYPTO_KEYID_SIZE = 20, |
| 37 | /*FIXME: OSDv2_CRYPTO_KEYID_SIZE = 32,*/ | 37 | OSDv2_CRYPTO_KEYID_SIZE = 32, |
| 38 | OSD_CRYPTO_KEYID_SIZE = OSDv2_CRYPTO_KEYID_SIZE, | ||
| 38 | OSD_CRYPTO_SEED_SIZE = 4, | 39 | OSD_CRYPTO_SEED_SIZE = 4, |
| 39 | OSD_CRYPTO_NONCE_SIZE = 12, | 40 | OSD_CRYPTO_NONCE_SIZE = 12, |
| 40 | OSD_MAX_SENSE_LEN = 252, /* from SPC-3 */ | 41 | OSD_MAX_SENSE_LEN = 252, /* from SPC-3 */ |
| @@ -164,7 +165,11 @@ struct osd_cdb_head { | |||
| 164 | /* called allocation_length in some commands */ | 165 | /* called allocation_length in some commands */ |
| 165 | /*32*/ __be64 length; | 166 | /*32*/ __be64 length; |
| 166 | /*40*/ __be64 start_address; | 167 | /*40*/ __be64 start_address; |
| 167 | /*48*/ __be32 list_identifier;/* Rarely used */ | 168 | union { |
| 169 | /*48*/ __be32 list_identifier;/* Rarely used */ | ||
| 170 | /* OSD2r05 5.2.5 CDB continuation length */ | ||
| 171 | /*48*/ __be32 cdb_continuation_length; | ||
| 172 | }; | ||
| 168 | } __packed v2; | 173 | } __packed v2; |
| 169 | }; | 174 | }; |
| 170 | /*52*/ union { /* selected attributes mode Page/List/Single */ | 175 | /*52*/ union { /* selected attributes mode Page/List/Single */ |
| @@ -204,29 +209,40 @@ struct osd_cdb_head { | |||
| 204 | /*80*/ | 209 | /*80*/ |
| 205 | 210 | ||
| 206 | /*160 v1*/ | 211 | /*160 v1*/ |
| 207 | /*184 v2*/ | 212 | struct osdv1_security_parameters { |
| 208 | struct osd_security_parameters { | 213 | /*160*/u8 integrity_check_value[OSDv1_CRYPTO_KEYID_SIZE]; |
| 209 | /*160*/u8 integrity_check_value[OSD_CRYPTO_KEYID_SIZE]; | ||
| 210 | /*180*/u8 request_nonce[OSD_CRYPTO_NONCE_SIZE]; | 214 | /*180*/u8 request_nonce[OSD_CRYPTO_NONCE_SIZE]; |
| 211 | /*192*/osd_cdb_offset data_in_integrity_check_offset; | 215 | /*192*/osd_cdb_offset data_in_integrity_check_offset; |
| 212 | /*196*/osd_cdb_offset data_out_integrity_check_offset; | 216 | /*196*/osd_cdb_offset data_out_integrity_check_offset; |
| 213 | } __packed; | 217 | } __packed; |
| 214 | /*200 v1*/ | 218 | /*200 v1*/ |
| 215 | /*224 v2*/ | ||
| 216 | 219 | ||
| 217 | /* FIXME: osdv2_security_parameters */ | 220 | /*184 v2*/ |
| 221 | struct osdv2_security_parameters { | ||
| 222 | /*184*/u8 integrity_check_value[OSDv2_CRYPTO_KEYID_SIZE]; | ||
| 223 | /*216*/u8 request_nonce[OSD_CRYPTO_NONCE_SIZE]; | ||
| 224 | /*228*/osd_cdb_offset data_in_integrity_check_offset; | ||
| 225 | /*232*/osd_cdb_offset data_out_integrity_check_offset; | ||
| 226 | } __packed; | ||
| 227 | /*236 v2*/ | ||
| 228 | |||
| 229 | struct osd_security_parameters { | ||
| 230 | union { | ||
| 231 | struct osdv1_security_parameters v1; | ||
| 232 | struct osdv2_security_parameters v2; | ||
| 233 | }; | ||
| 234 | }; | ||
| 218 | 235 | ||
| 219 | struct osdv1_cdb { | 236 | struct osdv1_cdb { |
| 220 | struct osd_cdb_head h; | 237 | struct osd_cdb_head h; |
| 221 | u8 caps[OSDv1_CAP_LEN]; | 238 | u8 caps[OSDv1_CAP_LEN]; |
| 222 | struct osd_security_parameters sec_params; | 239 | struct osdv1_security_parameters sec_params; |
| 223 | } __packed; | 240 | } __packed; |
| 224 | 241 | ||
| 225 | struct osdv2_cdb { | 242 | struct osdv2_cdb { |
| 226 | struct osd_cdb_head h; | 243 | struct osd_cdb_head h; |
| 227 | u8 caps[OSD_CAP_LEN]; | 244 | u8 caps[OSD_CAP_LEN]; |
| 228 | struct osd_security_parameters sec_params; | 245 | struct osdv2_security_parameters sec_params; |
| 229 | /* FIXME: osdv2_security_parameters */ | ||
| 230 | } __packed; | 246 | } __packed; |
| 231 | 247 | ||
| 232 | struct osd_cdb { | 248 | struct osd_cdb { |
| @@ -301,14 +317,25 @@ struct osd_attributes_list_attrid { | |||
| 301 | } __packed; | 317 | } __packed; |
| 302 | 318 | ||
| 303 | /* | 319 | /* |
| 320 | * NOTE: v1: is not aligned. | ||
| 321 | */ | ||
| 322 | struct osdv1_attributes_list_element { | ||
| 323 | __be32 attr_page; | ||
| 324 | __be32 attr_id; | ||
| 325 | __be16 attr_bytes; /* valid bytes at attr_val without padding */ | ||
| 326 | u8 attr_val[0]; | ||
| 327 | } __packed; | ||
| 328 | |||
| 329 | /* | ||
| 304 | * osd2r03: 7.1.3.3 List entry format for retrieved attributes and | 330 | * osd2r03: 7.1.3.3 List entry format for retrieved attributes and |
| 305 | * for setting attributes | 331 | * for setting attributes |
| 306 | * NOTE: v2 is 8-bytes aligned, v1 is not aligned. | 332 | * NOTE: v2 is 8-bytes aligned |
| 307 | */ | 333 | */ |
| 308 | struct osd_attributes_list_element { | 334 | struct osdv2_attributes_list_element { |
| 309 | __be32 attr_page; | 335 | __be32 attr_page; |
| 310 | __be32 attr_id; | 336 | __be32 attr_id; |
| 311 | __be16 attr_bytes; | 337 | u8 reserved[6]; |
| 338 | __be16 attr_bytes; /* valid bytes at attr_val without padding */ | ||
| 312 | u8 attr_val[0]; | 339 | u8 attr_val[0]; |
| 313 | } __packed; | 340 | } __packed; |
| 314 | 341 | ||
| @@ -324,13 +351,13 @@ enum { | |||
| 324 | 351 | ||
| 325 | static inline unsigned osdv1_attr_list_elem_size(unsigned len) | 352 | static inline unsigned osdv1_attr_list_elem_size(unsigned len) |
| 326 | { | 353 | { |
| 327 | return ALIGN(len + sizeof(struct osd_attributes_list_element), | 354 | return ALIGN(len + sizeof(struct osdv1_attributes_list_element), |
| 328 | OSDv1_ATTRIBUTES_ELEM_ALIGN); | 355 | OSDv1_ATTRIBUTES_ELEM_ALIGN); |
| 329 | } | 356 | } |
| 330 | 357 | ||
| 331 | static inline unsigned osdv2_attr_list_elem_size(unsigned len) | 358 | static inline unsigned osdv2_attr_list_elem_size(unsigned len) |
| 332 | { | 359 | { |
| 333 | return ALIGN(len + sizeof(struct osd_attributes_list_element), | 360 | return ALIGN(len + sizeof(struct osdv2_attributes_list_element), |
| 334 | OSD_ATTRIBUTES_ELEM_ALIGN); | 361 | OSD_ATTRIBUTES_ELEM_ALIGN); |
| 335 | } | 362 | } |
| 336 | 363 | ||
| @@ -419,15 +446,35 @@ struct osd_data_out_integrity_info { | |||
| 419 | __be64 data_bytes; | 446 | __be64 data_bytes; |
| 420 | __be64 set_attributes_bytes; | 447 | __be64 set_attributes_bytes; |
| 421 | __be64 get_attributes_bytes; | 448 | __be64 get_attributes_bytes; |
| 422 | __be64 integrity_check_value; | 449 | __u8 integrity_check_value[OSD_CRYPTO_KEYID_SIZE]; |
| 423 | } __packed; | 450 | } __packed; |
| 424 | 451 | ||
| 452 | /* Same osd_data_out_integrity_info is used for OSD2/OSD1. The only difference | ||
| 453 | * Is the sizeof the structure since in OSD1 the last array is smaller. Use | ||
| 454 | * below for version independent handling of this structure | ||
| 455 | */ | ||
| 456 | static inline int osd_data_out_integrity_info_sizeof(bool is_ver1) | ||
| 457 | { | ||
| 458 | return sizeof(struct osd_data_out_integrity_info) - | ||
| 459 | (is_ver1 * (OSDv2_CRYPTO_KEYID_SIZE - OSDv1_CRYPTO_KEYID_SIZE)); | ||
| 460 | } | ||
| 461 | |||
| 425 | struct osd_data_in_integrity_info { | 462 | struct osd_data_in_integrity_info { |
| 426 | __be64 data_bytes; | 463 | __be64 data_bytes; |
| 427 | __be64 retrieved_attributes_bytes; | 464 | __be64 retrieved_attributes_bytes; |
| 428 | __be64 integrity_check_value; | 465 | __u8 integrity_check_value[OSD_CRYPTO_KEYID_SIZE]; |
| 429 | } __packed; | 466 | } __packed; |
| 430 | 467 | ||
| 468 | /* Same osd_data_in_integrity_info is used for OSD2/OSD1. The only difference | ||
| 469 | * Is the sizeof the structure since in OSD1 the last array is smaller. Use | ||
| 470 | * below for version independent handling of this structure | ||
| 471 | */ | ||
| 472 | static inline int osd_data_in_integrity_info_sizeof(bool is_ver1) | ||
| 473 | { | ||
| 474 | return sizeof(struct osd_data_in_integrity_info) - | ||
| 475 | (is_ver1 * (OSDv2_CRYPTO_KEYID_SIZE - OSDv1_CRYPTO_KEYID_SIZE)); | ||
| 476 | } | ||
| 477 | |||
| 431 | struct osd_timestamp { | 478 | struct osd_timestamp { |
| 432 | u8 time[6]; /* number of milliseconds since 1/1/1970 UT (big endian) */ | 479 | u8 time[6]; /* number of milliseconds since 1/1/1970 UT (big endian) */ |
| 433 | } __packed; | 480 | } __packed; |
| @@ -477,7 +524,7 @@ enum osd_capability_bit_masks { | |||
| 477 | 524 | ||
| 478 | OSD_SEC_CAP_NONE1 = BIT(8), | 525 | OSD_SEC_CAP_NONE1 = BIT(8), |
| 479 | OSD_SEC_CAP_NONE2 = BIT(9), | 526 | OSD_SEC_CAP_NONE2 = BIT(9), |
| 480 | OSD_SEC_CAP_NONE3 = BIT(10), | 527 | OSD_SEC_GBL_REM = BIT(10), /*v2 only*/ |
| 481 | OSD_SEC_CAP_QUERY = BIT(11), /*v2 only*/ | 528 | OSD_SEC_CAP_QUERY = BIT(11), /*v2 only*/ |
| 482 | OSD_SEC_CAP_M_OBJECT = BIT(12), /*v2 only*/ | 529 | OSD_SEC_CAP_M_OBJECT = BIT(12), /*v2 only*/ |
| 483 | OSD_SEC_CAP_POL_SEC = BIT(13), | 530 | OSD_SEC_CAP_POL_SEC = BIT(13), |
| @@ -552,8 +599,7 @@ struct osdv1_capability { | |||
| 552 | 599 | ||
| 553 | struct osd_capability { | 600 | struct osd_capability { |
| 554 | struct osd_capability_head h; | 601 | struct osd_capability_head h; |
| 555 | /* struct osd_cap_object_descriptor od;*/ | 602 | struct osd_cap_object_descriptor od; |
| 556 | struct osdv1_cap_object_descriptor od; /* FIXME: Pete rev-001 sup */ | ||
| 557 | } __packed; | 603 | } __packed; |
| 558 | 604 | ||
| 559 | /** | 605 | /** |
diff --git a/include/scsi/scsi_transport_fc.h b/include/scsi/scsi_transport_fc.h index c9184f756cad..68a8d873bbd9 100644 --- a/include/scsi/scsi_transport_fc.h +++ b/include/scsi/scsi_transport_fc.h | |||
| @@ -680,7 +680,7 @@ fc_remote_port_chkready(struct fc_rport *rport) | |||
| 680 | if (rport->roles & FC_PORT_ROLE_FCP_TARGET) | 680 | if (rport->roles & FC_PORT_ROLE_FCP_TARGET) |
| 681 | result = 0; | 681 | result = 0; |
| 682 | else if (rport->flags & FC_RPORT_DEVLOSS_PENDING) | 682 | else if (rport->flags & FC_RPORT_DEVLOSS_PENDING) |
| 683 | result = DID_TRANSPORT_DISRUPTED << 16; | 683 | result = DID_IMM_RETRY << 16; |
| 684 | else | 684 | else |
| 685 | result = DID_NO_CONNECT << 16; | 685 | result = DID_NO_CONNECT << 16; |
| 686 | break; | 686 | break; |
| @@ -688,7 +688,7 @@ fc_remote_port_chkready(struct fc_rport *rport) | |||
| 688 | if (rport->flags & FC_RPORT_FAST_FAIL_TIMEDOUT) | 688 | if (rport->flags & FC_RPORT_FAST_FAIL_TIMEDOUT) |
| 689 | result = DID_TRANSPORT_FAILFAST << 16; | 689 | result = DID_TRANSPORT_FAILFAST << 16; |
| 690 | else | 690 | else |
| 691 | result = DID_TRANSPORT_DISRUPTED << 16; | 691 | result = DID_IMM_RETRY << 16; |
| 692 | break; | 692 | break; |
| 693 | default: | 693 | default: |
| 694 | result = DID_NO_CONNECT << 16; | 694 | result = DID_NO_CONNECT << 16; |
diff --git a/include/sound/pxa2xx-lib.h b/include/sound/pxa2xx-lib.h index 2c894b600e5b..2fd3d251d9a5 100644 --- a/include/sound/pxa2xx-lib.h +++ b/include/sound/pxa2xx-lib.h | |||
| @@ -42,19 +42,4 @@ extern int pxa2xx_ac97_hw_resume(void); | |||
| 42 | extern int pxa2xx_ac97_hw_probe(struct platform_device *dev); | 42 | extern int pxa2xx_ac97_hw_probe(struct platform_device *dev); |
| 43 | extern void pxa2xx_ac97_hw_remove(struct platform_device *dev); | 43 | extern void pxa2xx_ac97_hw_remove(struct platform_device *dev); |
| 44 | 44 | ||
| 45 | /* AC97 platform_data */ | ||
| 46 | /** | ||
| 47 | * struct pxa2xx_ac97_platform_data - pxa ac97 platform data | ||
| 48 | * @reset_gpio: AC97 reset gpio (normally gpio113 or gpio95) | ||
| 49 | * a -1 value means no gpio will be used for reset | ||
| 50 | * | ||
| 51 | * Platform data should only be specified for pxa27x CPUs where a silicon bug | ||
| 52 | * prevents correct operation of the reset line. If not specified, the default | ||
| 53 | * behaviour is to consider gpio 113 as the AC97 reset line, which is the | ||
| 54 | * default on most boards. | ||
| 55 | */ | ||
| 56 | struct pxa2xx_ac97_platform_data { | ||
| 57 | int reset_gpio; | ||
| 58 | }; | ||
| 59 | |||
| 60 | #endif | 45 | #endif |
diff --git a/include/sound/version.h b/include/sound/version.h index a7e74e23ad2e..456f1359e1c0 100644 --- a/include/sound/version.h +++ b/include/sound/version.h | |||
| @@ -1,3 +1,3 @@ | |||
| 1 | /* include/version.h */ | 1 | /* include/version.h */ |
| 2 | #define CONFIG_SND_VERSION "1.0.19" | 2 | #define CONFIG_SND_VERSION "1.0.20" |
| 3 | #define CONFIG_SND_DATE "" | 3 | #define CONFIG_SND_DATE "" |
