diff options
Diffstat (limited to 'include')
80 files changed, 725 insertions, 177 deletions
diff --git a/include/acpi/acpi_bus.h b/include/acpi/acpi_bus.h index 1cef1398e358..3cd9ccdcbd8f 100644 --- a/include/acpi/acpi_bus.h +++ b/include/acpi/acpi_bus.h | |||
| @@ -70,7 +70,6 @@ enum acpi_bus_device_type { | |||
| 70 | ACPI_BUS_TYPE_POWER, | 70 | ACPI_BUS_TYPE_POWER, |
| 71 | ACPI_BUS_TYPE_PROCESSOR, | 71 | ACPI_BUS_TYPE_PROCESSOR, |
| 72 | ACPI_BUS_TYPE_THERMAL, | 72 | ACPI_BUS_TYPE_THERMAL, |
| 73 | ACPI_BUS_TYPE_SYSTEM, | ||
| 74 | ACPI_BUS_TYPE_POWER_BUTTON, | 73 | ACPI_BUS_TYPE_POWER_BUTTON, |
| 75 | ACPI_BUS_TYPE_SLEEP_BUTTON, | 74 | ACPI_BUS_TYPE_SLEEP_BUTTON, |
| 76 | ACPI_BUS_DEVICE_TYPE_COUNT | 75 | ACPI_BUS_DEVICE_TYPE_COUNT |
| @@ -142,10 +141,7 @@ struct acpi_device_status { | |||
| 142 | 141 | ||
| 143 | struct acpi_device_flags { | 142 | struct acpi_device_flags { |
| 144 | u32 dynamic_status:1; | 143 | u32 dynamic_status:1; |
| 145 | u32 hardware_id:1; | ||
| 146 | u32 compatible_ids:1; | ||
| 147 | u32 bus_address:1; | 144 | u32 bus_address:1; |
| 148 | u32 unique_id:1; | ||
| 149 | u32 removable:1; | 145 | u32 removable:1; |
| 150 | u32 ejectable:1; | 146 | u32 ejectable:1; |
| 151 | u32 lockable:1; | 147 | u32 lockable:1; |
| @@ -154,7 +150,7 @@ struct acpi_device_flags { | |||
| 154 | u32 performance_manageable:1; | 150 | u32 performance_manageable:1; |
| 155 | u32 wake_capable:1; /* Wakeup(_PRW) supported? */ | 151 | u32 wake_capable:1; /* Wakeup(_PRW) supported? */ |
| 156 | u32 force_power_state:1; | 152 | u32 force_power_state:1; |
| 157 | u32 reserved:19; | 153 | u32 reserved:22; |
| 158 | }; | 154 | }; |
| 159 | 155 | ||
| 160 | /* File System */ | 156 | /* File System */ |
| @@ -172,20 +168,23 @@ typedef unsigned long acpi_bus_address; | |||
| 172 | typedef char acpi_device_name[40]; | 168 | typedef char acpi_device_name[40]; |
| 173 | typedef char acpi_device_class[20]; | 169 | typedef char acpi_device_class[20]; |
| 174 | 170 | ||
| 171 | struct acpi_hardware_id { | ||
| 172 | struct list_head list; | ||
| 173 | char *id; | ||
| 174 | }; | ||
| 175 | |||
| 175 | struct acpi_device_pnp { | 176 | struct acpi_device_pnp { |
| 176 | acpi_bus_id bus_id; /* Object name */ | 177 | acpi_bus_id bus_id; /* Object name */ |
| 177 | acpi_bus_address bus_address; /* _ADR */ | 178 | acpi_bus_address bus_address; /* _ADR */ |
| 178 | char *hardware_id; /* _HID */ | ||
| 179 | struct acpica_device_id_list *cid_list; /* _CIDs */ | ||
| 180 | char *unique_id; /* _UID */ | 179 | char *unique_id; /* _UID */ |
| 180 | struct list_head ids; /* _HID and _CIDs */ | ||
| 181 | acpi_device_name device_name; /* Driver-determined */ | 181 | acpi_device_name device_name; /* Driver-determined */ |
| 182 | acpi_device_class device_class; /* " */ | 182 | acpi_device_class device_class; /* " */ |
| 183 | }; | 183 | }; |
| 184 | 184 | ||
| 185 | #define acpi_device_bid(d) ((d)->pnp.bus_id) | 185 | #define acpi_device_bid(d) ((d)->pnp.bus_id) |
| 186 | #define acpi_device_adr(d) ((d)->pnp.bus_address) | 186 | #define acpi_device_adr(d) ((d)->pnp.bus_address) |
| 187 | #define acpi_device_hid(d) ((d)->pnp.hardware_id) | 187 | char *acpi_device_hid(struct acpi_device *device); |
| 188 | #define acpi_device_uid(d) ((d)->pnp.unique_id) | ||
| 189 | #define acpi_device_name(d) ((d)->pnp.device_name) | 188 | #define acpi_device_name(d) ((d)->pnp.device_name) |
| 190 | #define acpi_device_class(d) ((d)->pnp.device_class) | 189 | #define acpi_device_class(d) ((d)->pnp.device_class) |
| 191 | 190 | ||
| @@ -262,7 +261,8 @@ struct acpi_device_wakeup { | |||
| 262 | /* Device */ | 261 | /* Device */ |
| 263 | 262 | ||
| 264 | struct acpi_device { | 263 | struct acpi_device { |
| 265 | acpi_handle handle; | 264 | int device_type; |
| 265 | acpi_handle handle; /* no handle for fixed hardware */ | ||
| 266 | struct acpi_device *parent; | 266 | struct acpi_device *parent; |
| 267 | struct list_head children; | 267 | struct list_head children; |
| 268 | struct list_head node; | 268 | struct list_head node; |
| @@ -322,6 +322,8 @@ extern void unregister_acpi_bus_notifier(struct notifier_block *nb); | |||
| 322 | 322 | ||
| 323 | int acpi_bus_get_device(acpi_handle handle, struct acpi_device **device); | 323 | int acpi_bus_get_device(acpi_handle handle, struct acpi_device **device); |
| 324 | void acpi_bus_data_handler(acpi_handle handle, void *context); | 324 | void acpi_bus_data_handler(acpi_handle handle, void *context); |
| 325 | acpi_status acpi_bus_get_status_handle(acpi_handle handle, | ||
| 326 | unsigned long long *sta); | ||
| 325 | int acpi_bus_get_status(struct acpi_device *device); | 327 | int acpi_bus_get_status(struct acpi_device *device); |
| 326 | int acpi_bus_get_power(acpi_handle handle, int *state); | 328 | int acpi_bus_get_power(acpi_handle handle, int *state); |
| 327 | int acpi_bus_set_power(acpi_handle handle, int state); | 329 | int acpi_bus_set_power(acpi_handle handle, int state); |
diff --git a/include/asm-generic/fcntl.h b/include/asm-generic/fcntl.h index 0c3dd8603927..495dc8af4044 100644 --- a/include/asm-generic/fcntl.h +++ b/include/asm-generic/fcntl.h | |||
| @@ -73,14 +73,23 @@ | |||
| 73 | #define F_SETSIG 10 /* for sockets. */ | 73 | #define F_SETSIG 10 /* for sockets. */ |
| 74 | #define F_GETSIG 11 /* for sockets. */ | 74 | #define F_GETSIG 11 /* for sockets. */ |
| 75 | #endif | 75 | #endif |
| 76 | |||
| 77 | #ifndef CONFIG_64BIT | ||
| 78 | #ifndef F_GETLK64 | ||
| 79 | #define F_GETLK64 12 /* using 'struct flock64' */ | ||
| 80 | #define F_SETLK64 13 | ||
| 81 | #define F_SETLKW64 14 | ||
| 82 | #endif | ||
| 83 | #endif | ||
| 84 | |||
| 76 | #ifndef F_SETOWN_EX | 85 | #ifndef F_SETOWN_EX |
| 77 | #define F_SETOWN_EX 12 | 86 | #define F_SETOWN_EX 15 |
| 78 | #define F_GETOWN_EX 13 | 87 | #define F_GETOWN_EX 16 |
| 79 | #endif | 88 | #endif |
| 80 | 89 | ||
| 81 | #define F_OWNER_TID 0 | 90 | #define F_OWNER_TID 0 |
| 82 | #define F_OWNER_PID 1 | 91 | #define F_OWNER_PID 1 |
| 83 | #define F_OWNER_GID 2 | 92 | #define F_OWNER_PGRP 2 |
| 84 | 93 | ||
| 85 | struct f_owner_ex { | 94 | struct f_owner_ex { |
| 86 | int type; | 95 | int type; |
| @@ -139,12 +148,6 @@ struct flock { | |||
| 139 | 148 | ||
| 140 | #ifndef CONFIG_64BIT | 149 | #ifndef CONFIG_64BIT |
| 141 | 150 | ||
| 142 | #ifndef F_GETLK64 | ||
| 143 | #define F_GETLK64 12 /* using 'struct flock64' */ | ||
| 144 | #define F_SETLK64 13 | ||
| 145 | #define F_SETLKW64 14 | ||
| 146 | #endif | ||
| 147 | |||
| 148 | #ifndef HAVE_ARCH_STRUCT_FLOCK64 | 151 | #ifndef HAVE_ARCH_STRUCT_FLOCK64 |
| 149 | #ifndef __ARCH_FLOCK64_PAD | 152 | #ifndef __ARCH_FLOCK64_PAD |
| 150 | #define __ARCH_FLOCK64_PAD | 153 | #define __ARCH_FLOCK64_PAD |
diff --git a/include/asm-generic/gpio.h b/include/asm-generic/gpio.h index 9cca3785cab8..66d6106a2067 100644 --- a/include/asm-generic/gpio.h +++ b/include/asm-generic/gpio.h | |||
| @@ -1,6 +1,7 @@ | |||
| 1 | #ifndef _ASM_GENERIC_GPIO_H | 1 | #ifndef _ASM_GENERIC_GPIO_H |
| 2 | #define _ASM_GENERIC_GPIO_H | 2 | #define _ASM_GENERIC_GPIO_H |
| 3 | 3 | ||
| 4 | #include <linux/kernel.h> | ||
| 4 | #include <linux/types.h> | 5 | #include <linux/types.h> |
| 5 | #include <linux/errno.h> | 6 | #include <linux/errno.h> |
| 6 | 7 | ||
diff --git a/include/asm-generic/hardirq.h b/include/asm-generic/hardirq.h index 23bb4dad4962..62f59080e5cc 100644 --- a/include/asm-generic/hardirq.h +++ b/include/asm-generic/hardirq.h | |||
| @@ -6,7 +6,7 @@ | |||
| 6 | #include <linux/irq.h> | 6 | #include <linux/irq.h> |
| 7 | 7 | ||
| 8 | typedef struct { | 8 | typedef struct { |
| 9 | unsigned long __softirq_pending; | 9 | unsigned int __softirq_pending; |
| 10 | } ____cacheline_aligned irq_cpustat_t; | 10 | } ____cacheline_aligned irq_cpustat_t; |
| 11 | 11 | ||
| 12 | #include <linux/irq_cpustat.h> /* Standard mappings for irq_cpustat_t above */ | 12 | #include <linux/irq_cpustat.h> /* Standard mappings for irq_cpustat_t above */ |
diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h index 29ca8f53ffbe..b6e818f4b247 100644 --- a/include/asm-generic/vmlinux.lds.h +++ b/include/asm-generic/vmlinux.lds.h | |||
| @@ -721,12 +721,12 @@ | |||
| 721 | . = ALIGN(PAGE_SIZE); \ | 721 | . = ALIGN(PAGE_SIZE); \ |
| 722 | .data : AT(ADDR(.data) - LOAD_OFFSET) { \ | 722 | .data : AT(ADDR(.data) - LOAD_OFFSET) { \ |
| 723 | INIT_TASK_DATA(inittask) \ | 723 | INIT_TASK_DATA(inittask) \ |
| 724 | NOSAVE_DATA \ | ||
| 725 | PAGE_ALIGNED_DATA(pagealigned) \ | ||
| 724 | CACHELINE_ALIGNED_DATA(cacheline) \ | 726 | CACHELINE_ALIGNED_DATA(cacheline) \ |
| 725 | READ_MOSTLY_DATA(cacheline) \ | 727 | READ_MOSTLY_DATA(cacheline) \ |
| 726 | DATA_DATA \ | 728 | DATA_DATA \ |
| 727 | CONSTRUCTORS \ | 729 | CONSTRUCTORS \ |
| 728 | NOSAVE_DATA \ | ||
| 729 | PAGE_ALIGNED_DATA(pagealigned) \ | ||
| 730 | } | 730 | } |
| 731 | 731 | ||
| 732 | #define INIT_TEXT_SECTION(inittext_align) \ | 732 | #define INIT_TEXT_SECTION(inittext_align) \ |
diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h index ae1e9e166959..b69347b8904f 100644 --- a/include/drm/drm_crtc.h +++ b/include/drm/drm_crtc.h | |||
| @@ -387,6 +387,7 @@ struct drm_crtc { | |||
| 387 | * @get_modes: get mode list for this connector | 387 | * @get_modes: get mode list for this connector |
| 388 | * @set_property: property for this connector may need update | 388 | * @set_property: property for this connector may need update |
| 389 | * @destroy: make object go away | 389 | * @destroy: make object go away |
| 390 | * @force: notify the driver the connector is forced on | ||
| 390 | * | 391 | * |
| 391 | * Each CRTC may have one or more connectors attached to it. The functions | 392 | * Each CRTC may have one or more connectors attached to it. The functions |
| 392 | * below allow the core DRM code to control connectors, enumerate available modes, | 393 | * below allow the core DRM code to control connectors, enumerate available modes, |
| @@ -401,6 +402,7 @@ struct drm_connector_funcs { | |||
| 401 | int (*set_property)(struct drm_connector *connector, struct drm_property *property, | 402 | int (*set_property)(struct drm_connector *connector, struct drm_property *property, |
| 402 | uint64_t val); | 403 | uint64_t val); |
| 403 | void (*destroy)(struct drm_connector *connector); | 404 | void (*destroy)(struct drm_connector *connector); |
| 405 | void (*force)(struct drm_connector *connector); | ||
| 404 | }; | 406 | }; |
| 405 | 407 | ||
| 406 | struct drm_encoder_funcs { | 408 | struct drm_encoder_funcs { |
| @@ -429,6 +431,13 @@ struct drm_encoder { | |||
| 429 | void *helper_private; | 431 | void *helper_private; |
| 430 | }; | 432 | }; |
| 431 | 433 | ||
| 434 | enum drm_connector_force { | ||
| 435 | DRM_FORCE_UNSPECIFIED, | ||
| 436 | DRM_FORCE_OFF, | ||
| 437 | DRM_FORCE_ON, /* force on analog part normally */ | ||
| 438 | DRM_FORCE_ON_DIGITAL, /* for DVI-I use digital connector */ | ||
| 439 | }; | ||
| 440 | |||
| 432 | /** | 441 | /** |
| 433 | * drm_connector - central DRM connector control structure | 442 | * drm_connector - central DRM connector control structure |
| 434 | * @crtc: CRTC this connector is currently connected to, NULL if none | 443 | * @crtc: CRTC this connector is currently connected to, NULL if none |
| @@ -478,9 +487,12 @@ struct drm_connector { | |||
| 478 | 487 | ||
| 479 | void *helper_private; | 488 | void *helper_private; |
| 480 | 489 | ||
| 490 | /* forced on connector */ | ||
| 491 | enum drm_connector_force force; | ||
| 481 | uint32_t encoder_ids[DRM_CONNECTOR_MAX_ENCODER]; | 492 | uint32_t encoder_ids[DRM_CONNECTOR_MAX_ENCODER]; |
| 482 | uint32_t force_encoder_id; | 493 | uint32_t force_encoder_id; |
| 483 | struct drm_encoder *encoder; /* currently active encoder */ | 494 | struct drm_encoder *encoder; /* currently active encoder */ |
| 495 | void *fb_helper_private; | ||
| 484 | }; | 496 | }; |
| 485 | 497 | ||
| 486 | /** | 498 | /** |
| @@ -746,7 +758,7 @@ extern int drm_mode_gamma_set_ioctl(struct drm_device *dev, | |||
| 746 | extern bool drm_detect_hdmi_monitor(struct edid *edid); | 758 | extern bool drm_detect_hdmi_monitor(struct edid *edid); |
| 747 | extern struct drm_display_mode *drm_cvt_mode(struct drm_device *dev, | 759 | extern struct drm_display_mode *drm_cvt_mode(struct drm_device *dev, |
| 748 | int hdisplay, int vdisplay, int vrefresh, | 760 | int hdisplay, int vdisplay, int vrefresh, |
| 749 | bool reduced, bool interlaced); | 761 | bool reduced, bool interlaced, bool margins); |
| 750 | extern struct drm_display_mode *drm_gtf_mode(struct drm_device *dev, | 762 | extern struct drm_display_mode *drm_gtf_mode(struct drm_device *dev, |
| 751 | int hdisplay, int vdisplay, int vrefresh, | 763 | int hdisplay, int vdisplay, int vrefresh, |
| 752 | bool interlaced, int margins); | 764 | bool interlaced, int margins); |
diff --git a/include/drm/drm_crtc_helper.h b/include/drm/drm_crtc_helper.h index 4c8dacaf4f58..b29e20168b5f 100644 --- a/include/drm/drm_crtc_helper.h +++ b/include/drm/drm_crtc_helper.h | |||
| @@ -39,6 +39,7 @@ | |||
| 39 | 39 | ||
| 40 | #include <linux/fb.h> | 40 | #include <linux/fb.h> |
| 41 | 41 | ||
| 42 | #include "drm_fb_helper.h" | ||
| 42 | struct drm_crtc_helper_funcs { | 43 | struct drm_crtc_helper_funcs { |
| 43 | /* | 44 | /* |
| 44 | * Control power levels on the CRTC. If the mode passed in is | 45 | * Control power levels on the CRTC. If the mode passed in is |
| @@ -60,6 +61,9 @@ struct drm_crtc_helper_funcs { | |||
| 60 | /* Move the crtc on the current fb to the given position *optional* */ | 61 | /* Move the crtc on the current fb to the given position *optional* */ |
| 61 | int (*mode_set_base)(struct drm_crtc *crtc, int x, int y, | 62 | int (*mode_set_base)(struct drm_crtc *crtc, int x, int y, |
| 62 | struct drm_framebuffer *old_fb); | 63 | struct drm_framebuffer *old_fb); |
| 64 | |||
| 65 | /* reload the current crtc LUT */ | ||
| 66 | void (*load_lut)(struct drm_crtc *crtc); | ||
| 63 | }; | 67 | }; |
| 64 | 68 | ||
| 65 | struct drm_encoder_helper_funcs { | 69 | struct drm_encoder_helper_funcs { |
| @@ -119,10 +123,11 @@ static inline void drm_encoder_helper_add(struct drm_encoder *encoder, | |||
| 119 | encoder->helper_private = (void *)funcs; | 123 | encoder->helper_private = (void *)funcs; |
| 120 | } | 124 | } |
| 121 | 125 | ||
| 122 | static inline void drm_connector_helper_add(struct drm_connector *connector, | 126 | static inline int drm_connector_helper_add(struct drm_connector *connector, |
| 123 | const struct drm_connector_helper_funcs *funcs) | 127 | const struct drm_connector_helper_funcs *funcs) |
| 124 | { | 128 | { |
| 125 | connector->helper_private = (void *)funcs; | 129 | connector->helper_private = (void *)funcs; |
| 130 | return drm_fb_helper_add_connector(connector); | ||
| 126 | } | 131 | } |
| 127 | 132 | ||
| 128 | extern int drm_helper_resume_force_mode(struct drm_device *dev); | 133 | extern int drm_helper_resume_force_mode(struct drm_device *dev); |
diff --git a/include/drm/drm_fb_helper.h b/include/drm/drm_fb_helper.h index 88fffbdfa26f..58c892a2cbfa 100644 --- a/include/drm/drm_fb_helper.h +++ b/include/drm/drm_fb_helper.h | |||
| @@ -35,9 +35,30 @@ struct drm_fb_helper_crtc { | |||
| 35 | struct drm_mode_set mode_set; | 35 | struct drm_mode_set mode_set; |
| 36 | }; | 36 | }; |
| 37 | 37 | ||
| 38 | |||
| 38 | struct drm_fb_helper_funcs { | 39 | struct drm_fb_helper_funcs { |
| 39 | void (*gamma_set)(struct drm_crtc *crtc, u16 red, u16 green, | 40 | void (*gamma_set)(struct drm_crtc *crtc, u16 red, u16 green, |
| 40 | u16 blue, int regno); | 41 | u16 blue, int regno); |
| 42 | void (*gamma_get)(struct drm_crtc *crtc, u16 *red, u16 *green, | ||
| 43 | u16 *blue, int regno); | ||
| 44 | }; | ||
| 45 | |||
| 46 | /* mode specified on the command line */ | ||
| 47 | struct drm_fb_helper_cmdline_mode { | ||
| 48 | bool specified; | ||
| 49 | bool refresh_specified; | ||
| 50 | bool bpp_specified; | ||
| 51 | int xres, yres; | ||
| 52 | int bpp; | ||
| 53 | int refresh; | ||
| 54 | bool rb; | ||
| 55 | bool interlace; | ||
| 56 | bool cvt; | ||
| 57 | bool margins; | ||
| 58 | }; | ||
| 59 | |||
| 60 | struct drm_fb_helper_connector { | ||
| 61 | struct drm_fb_helper_cmdline_mode cmdline_mode; | ||
| 41 | }; | 62 | }; |
| 42 | 63 | ||
| 43 | struct drm_fb_helper { | 64 | struct drm_fb_helper { |
| @@ -52,11 +73,14 @@ struct drm_fb_helper { | |||
| 52 | }; | 73 | }; |
| 53 | 74 | ||
| 54 | int drm_fb_helper_single_fb_probe(struct drm_device *dev, | 75 | int drm_fb_helper_single_fb_probe(struct drm_device *dev, |
| 76 | int preferred_bpp, | ||
| 55 | int (*fb_create)(struct drm_device *dev, | 77 | int (*fb_create)(struct drm_device *dev, |
| 56 | uint32_t fb_width, | 78 | uint32_t fb_width, |
| 57 | uint32_t fb_height, | 79 | uint32_t fb_height, |
| 58 | uint32_t surface_width, | 80 | uint32_t surface_width, |
| 59 | uint32_t surface_height, | 81 | uint32_t surface_height, |
| 82 | uint32_t surface_depth, | ||
| 83 | uint32_t surface_bpp, | ||
| 60 | struct drm_framebuffer **fb_ptr)); | 84 | struct drm_framebuffer **fb_ptr)); |
| 61 | int drm_fb_helper_init_crtc_count(struct drm_fb_helper *helper, int crtc_count, | 85 | int drm_fb_helper_init_crtc_count(struct drm_fb_helper *helper, int crtc_count, |
| 62 | int max_conn); | 86 | int max_conn); |
| @@ -77,6 +101,11 @@ int drm_fb_helper_setcolreg(unsigned regno, | |||
| 77 | void drm_fb_helper_restore(void); | 101 | void drm_fb_helper_restore(void); |
| 78 | void drm_fb_helper_fill_var(struct fb_info *info, struct drm_framebuffer *fb, | 102 | void drm_fb_helper_fill_var(struct fb_info *info, struct drm_framebuffer *fb, |
| 79 | uint32_t fb_width, uint32_t fb_height); | 103 | uint32_t fb_width, uint32_t fb_height); |
| 80 | void drm_fb_helper_fill_fix(struct fb_info *info, uint32_t pitch); | 104 | void drm_fb_helper_fill_fix(struct fb_info *info, uint32_t pitch, |
| 105 | uint32_t depth); | ||
| 106 | |||
| 107 | int drm_fb_helper_add_connector(struct drm_connector *connector); | ||
| 108 | int drm_fb_helper_parse_command_line(struct drm_device *dev); | ||
| 109 | int drm_fb_helper_setcmap(struct fb_cmap *cmap, struct fb_info *info); | ||
| 81 | 110 | ||
| 82 | #endif | 111 | #endif |
diff --git a/include/drm/drm_pciids.h b/include/drm/drm_pciids.h index 3f6e545609be..e6f3b120f51a 100644 --- a/include/drm/drm_pciids.h +++ b/include/drm/drm_pciids.h | |||
| @@ -80,7 +80,7 @@ | |||
| 80 | {0x1002, 0x5158, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV200}, \ | 80 | {0x1002, 0x5158, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV200}, \ |
| 81 | {0x1002, 0x5159, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV100}, \ | 81 | {0x1002, 0x5159, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV100}, \ |
| 82 | {0x1002, 0x515A, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV100}, \ | 82 | {0x1002, 0x515A, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV100}, \ |
| 83 | {0x1002, 0x515E, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV100}, \ | 83 | {0x1002, 0x515E, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV100|RADEON_SINGLE_CRTC}, \ |
| 84 | {0x1002, 0x5460, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV380|RADEON_IS_MOBILITY}, \ | 84 | {0x1002, 0x5460, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV380|RADEON_IS_MOBILITY}, \ |
| 85 | {0x1002, 0x5462, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV380|RADEON_IS_MOBILITY}, \ | 85 | {0x1002, 0x5462, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV380|RADEON_IS_MOBILITY}, \ |
| 86 | {0x1002, 0x5464, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV380|RADEON_IS_MOBILITY}, \ | 86 | {0x1002, 0x5464, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV380|RADEON_IS_MOBILITY}, \ |
| @@ -113,7 +113,7 @@ | |||
| 113 | {0x1002, 0x5962, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV280}, \ | 113 | {0x1002, 0x5962, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV280}, \ |
| 114 | {0x1002, 0x5964, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV280}, \ | 114 | {0x1002, 0x5964, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV280}, \ |
| 115 | {0x1002, 0x5965, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV280}, \ | 115 | {0x1002, 0x5965, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV280}, \ |
| 116 | {0x1002, 0x5969, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV100}, \ | 116 | {0x1002, 0x5969, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV100|RADEON_SINGLE_CRTC}, \ |
| 117 | {0x1002, 0x5a41, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS400|RADEON_IS_IGP|RADEON_IS_IGPGART}, \ | 117 | {0x1002, 0x5a41, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS400|RADEON_IS_IGP|RADEON_IS_IGPGART}, \ |
| 118 | {0x1002, 0x5a42, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS400|RADEON_IS_IGP|RADEON_IS_MOBILITY|RADEON_IS_IGPGART}, \ | 118 | {0x1002, 0x5a42, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS400|RADEON_IS_IGP|RADEON_IS_MOBILITY|RADEON_IS_IGPGART}, \ |
| 119 | {0x1002, 0x5a61, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS400|RADEON_IS_IGP|RADEON_IS_IGPGART}, \ | 119 | {0x1002, 0x5a61, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS400|RADEON_IS_IGP|RADEON_IS_IGPGART}, \ |
diff --git a/include/linux/Kbuild b/include/linux/Kbuild index cff4a101f266..1feed71551c9 100644 --- a/include/linux/Kbuild +++ b/include/linux/Kbuild | |||
| @@ -126,6 +126,7 @@ header-y += nfs_mount.h | |||
| 126 | header-y += nl80211.h | 126 | header-y += nl80211.h |
| 127 | header-y += param.h | 127 | header-y += param.h |
| 128 | header-y += pci_regs.h | 128 | header-y += pci_regs.h |
| 129 | header-y += perf_event.h | ||
| 129 | header-y += pfkeyv2.h | 130 | header-y += pfkeyv2.h |
| 130 | header-y += pg.h | 131 | header-y += pg.h |
| 131 | header-y += phantom.h | 132 | header-y += phantom.h |
| @@ -363,6 +364,7 @@ unifdef-y += utsname.h | |||
| 363 | unifdef-y += videodev2.h | 364 | unifdef-y += videodev2.h |
| 364 | unifdef-y += videodev.h | 365 | unifdef-y += videodev.h |
| 365 | unifdef-y += virtio_config.h | 366 | unifdef-y += virtio_config.h |
| 367 | unifdef-y += virtio_ids.h | ||
| 366 | unifdef-y += virtio_blk.h | 368 | unifdef-y += virtio_blk.h |
| 367 | unifdef-y += virtio_net.h | 369 | unifdef-y += virtio_net.h |
| 368 | unifdef-y += virtio_9p.h | 370 | unifdef-y += virtio_9p.h |
diff --git a/include/linux/agp_backend.h b/include/linux/agp_backend.h index 880130f7311f..9101ed64f803 100644 --- a/include/linux/agp_backend.h +++ b/include/linux/agp_backend.h | |||
| @@ -53,7 +53,7 @@ struct agp_kern_info { | |||
| 53 | int current_memory; | 53 | int current_memory; |
| 54 | bool cant_use_aperture; | 54 | bool cant_use_aperture; |
| 55 | unsigned long page_mask; | 55 | unsigned long page_mask; |
| 56 | struct vm_operations_struct *vm_ops; | 56 | const struct vm_operations_struct *vm_ops; |
| 57 | }; | 57 | }; |
| 58 | 58 | ||
| 59 | /* | 59 | /* |
diff --git a/include/linux/amba/mmci.h b/include/linux/amba/mmci.h new file mode 100644 index 000000000000..6b4241748dda --- /dev/null +++ b/include/linux/amba/mmci.h | |||
| @@ -0,0 +1,18 @@ | |||
| 1 | /* | ||
| 2 | * include/linux/amba/mmci.h | ||
| 3 | */ | ||
| 4 | #ifndef AMBA_MMCI_H | ||
| 5 | #define AMBA_MMCI_H | ||
| 6 | |||
| 7 | #include <linux/mmc/host.h> | ||
| 8 | |||
| 9 | struct mmci_platform_data { | ||
| 10 | unsigned int ocr_mask; /* available voltages */ | ||
| 11 | u32 (*translate_vdd)(struct device *, unsigned int); | ||
| 12 | unsigned int (*status)(struct device *); | ||
| 13 | int gpio_wp; | ||
| 14 | int gpio_cd; | ||
| 15 | unsigned long capabilities; | ||
| 16 | }; | ||
| 17 | |||
| 18 | #endif | ||
diff --git a/include/linux/amba/pl022.h b/include/linux/amba/pl022.h index dcad0ffd1755..e4836c6b3dd7 100644 --- a/include/linux/amba/pl022.h +++ b/include/linux/amba/pl022.h | |||
| @@ -136,12 +136,12 @@ enum ssp_tx_level_trig { | |||
| 136 | 136 | ||
| 137 | /** | 137 | /** |
| 138 | * enum SPI Clock Phase - clock phase (Motorola SPI interface only) | 138 | * enum SPI Clock Phase - clock phase (Motorola SPI interface only) |
| 139 | * @SSP_CLK_RISING_EDGE: Receive data on rising edge | 139 | * @SSP_CLK_FIRST_EDGE: Receive data on first edge transition (actual direction depends on polarity) |
| 140 | * @SSP_CLK_FALLING_EDGE: Receive data on falling edge | 140 | * @SSP_CLK_SECOND_EDGE: Receive data on second edge transition (actual direction depends on polarity) |
| 141 | */ | 141 | */ |
| 142 | enum ssp_spi_clk_phase { | 142 | enum ssp_spi_clk_phase { |
| 143 | SSP_CLK_RISING_EDGE, | 143 | SSP_CLK_FIRST_EDGE, |
| 144 | SSP_CLK_FALLING_EDGE | 144 | SSP_CLK_SECOND_EDGE |
| 145 | }; | 145 | }; |
| 146 | 146 | ||
| 147 | /** | 147 | /** |
diff --git a/include/linux/ata.h b/include/linux/ata.h index 6299a259ed19..4fb357312b3b 100644 --- a/include/linux/ata.h +++ b/include/linux/ata.h | |||
| @@ -334,9 +334,12 @@ enum { | |||
| 334 | SETFEATURES_SATA_DISABLE = 0x90, /* Disable use of SATA feature */ | 334 | SETFEATURES_SATA_DISABLE = 0x90, /* Disable use of SATA feature */ |
| 335 | 335 | ||
| 336 | /* SETFEATURE Sector counts for SATA features */ | 336 | /* SETFEATURE Sector counts for SATA features */ |
| 337 | SATA_AN = 0x05, /* Asynchronous Notification */ | 337 | SATA_FPDMA_OFFSET = 0x01, /* FPDMA non-zero buffer offsets */ |
| 338 | SATA_DIPM = 0x03, /* Device Initiated Power Management */ | 338 | SATA_FPDMA_AA = 0x02, /* FPDMA Setup FIS Auto-Activate */ |
| 339 | SATA_FPDMA_AA = 0x02, /* DMA Setup FIS Auto-Activate */ | 339 | SATA_DIPM = 0x03, /* Device Initiated Power Management */ |
| 340 | SATA_FPDMA_IN_ORDER = 0x04, /* FPDMA in-order data delivery */ | ||
| 341 | SATA_AN = 0x05, /* Asynchronous Notification */ | ||
| 342 | SATA_SSP = 0x06, /* Software Settings Preservation */ | ||
| 340 | 343 | ||
| 341 | /* feature values for SET_MAX */ | 344 | /* feature values for SET_MAX */ |
| 342 | ATA_SET_MAX_ADDR = 0x00, | 345 | ATA_SET_MAX_ADDR = 0x00, |
diff --git a/include/linux/backing-dev.h b/include/linux/backing-dev.h index 0ee33c2e6129..b449e738533a 100644 --- a/include/linux/backing-dev.h +++ b/include/linux/backing-dev.h | |||
| @@ -101,7 +101,8 @@ int bdi_register(struct backing_dev_info *bdi, struct device *parent, | |||
| 101 | const char *fmt, ...); | 101 | const char *fmt, ...); |
| 102 | int bdi_register_dev(struct backing_dev_info *bdi, dev_t dev); | 102 | int bdi_register_dev(struct backing_dev_info *bdi, dev_t dev); |
| 103 | void bdi_unregister(struct backing_dev_info *bdi); | 103 | void bdi_unregister(struct backing_dev_info *bdi); |
| 104 | void bdi_start_writeback(struct backing_dev_info *bdi, long nr_pages); | 104 | void bdi_start_writeback(struct backing_dev_info *bdi, struct super_block *sb, |
| 105 | long nr_pages); | ||
| 105 | int bdi_writeback_task(struct bdi_writeback *wb); | 106 | int bdi_writeback_task(struct bdi_writeback *wb); |
| 106 | int bdi_has_dirty_io(struct backing_dev_info *bdi); | 107 | int bdi_has_dirty_io(struct backing_dev_info *bdi); |
| 107 | 108 | ||
diff --git a/include/linux/backlight.h b/include/linux/backlight.h index 79ca2da81c87..0f5f57858a23 100644 --- a/include/linux/backlight.h +++ b/include/linux/backlight.h | |||
| @@ -27,6 +27,11 @@ | |||
| 27 | * Any other use of the locks below is probably wrong. | 27 | * Any other use of the locks below is probably wrong. |
| 28 | */ | 28 | */ |
| 29 | 29 | ||
| 30 | enum backlight_update_reason { | ||
| 31 | BACKLIGHT_UPDATE_HOTKEY, | ||
| 32 | BACKLIGHT_UPDATE_SYSFS, | ||
| 33 | }; | ||
| 34 | |||
| 30 | struct backlight_device; | 35 | struct backlight_device; |
| 31 | struct fb_info; | 36 | struct fb_info; |
| 32 | 37 | ||
| @@ -100,6 +105,8 @@ static inline void backlight_update_status(struct backlight_device *bd) | |||
| 100 | extern struct backlight_device *backlight_device_register(const char *name, | 105 | extern struct backlight_device *backlight_device_register(const char *name, |
| 101 | struct device *dev, void *devdata, struct backlight_ops *ops); | 106 | struct device *dev, void *devdata, struct backlight_ops *ops); |
| 102 | extern void backlight_device_unregister(struct backlight_device *bd); | 107 | extern void backlight_device_unregister(struct backlight_device *bd); |
| 108 | extern void backlight_force_update(struct backlight_device *bd, | ||
| 109 | enum backlight_update_reason reason); | ||
| 103 | 110 | ||
| 104 | #define to_backlight_device(obj) container_of(obj, struct backlight_device, dev) | 111 | #define to_backlight_device(obj) container_of(obj, struct backlight_device, dev) |
| 105 | 112 | ||
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h index e23a86cae5ac..221cecd86bd3 100644 --- a/include/linux/blkdev.h +++ b/include/linux/blkdev.h | |||
| @@ -82,7 +82,6 @@ enum rq_cmd_type_bits { | |||
| 82 | enum { | 82 | enum { |
| 83 | REQ_LB_OP_EJECT = 0x40, /* eject request */ | 83 | REQ_LB_OP_EJECT = 0x40, /* eject request */ |
| 84 | REQ_LB_OP_FLUSH = 0x41, /* flush request */ | 84 | REQ_LB_OP_FLUSH = 0x41, /* flush request */ |
| 85 | REQ_LB_OP_DISCARD = 0x42, /* discard sectors */ | ||
| 86 | }; | 85 | }; |
| 87 | 86 | ||
| 88 | /* | 87 | /* |
| @@ -261,7 +260,6 @@ typedef void (request_fn_proc) (struct request_queue *q); | |||
| 261 | typedef int (make_request_fn) (struct request_queue *q, struct bio *bio); | 260 | typedef int (make_request_fn) (struct request_queue *q, struct bio *bio); |
| 262 | typedef int (prep_rq_fn) (struct request_queue *, struct request *); | 261 | typedef int (prep_rq_fn) (struct request_queue *, struct request *); |
| 263 | typedef void (unplug_fn) (struct request_queue *); | 262 | typedef void (unplug_fn) (struct request_queue *); |
| 264 | typedef int (prepare_discard_fn) (struct request_queue *, struct request *); | ||
| 265 | 263 | ||
| 266 | struct bio_vec; | 264 | struct bio_vec; |
| 267 | struct bvec_merge_data { | 265 | struct bvec_merge_data { |
| @@ -313,6 +311,7 @@ struct queue_limits { | |||
| 313 | unsigned int alignment_offset; | 311 | unsigned int alignment_offset; |
| 314 | unsigned int io_min; | 312 | unsigned int io_min; |
| 315 | unsigned int io_opt; | 313 | unsigned int io_opt; |
| 314 | unsigned int max_discard_sectors; | ||
| 316 | 315 | ||
| 317 | unsigned short logical_block_size; | 316 | unsigned short logical_block_size; |
| 318 | unsigned short max_hw_segments; | 317 | unsigned short max_hw_segments; |
| @@ -340,7 +339,6 @@ struct request_queue | |||
| 340 | make_request_fn *make_request_fn; | 339 | make_request_fn *make_request_fn; |
| 341 | prep_rq_fn *prep_rq_fn; | 340 | prep_rq_fn *prep_rq_fn; |
| 342 | unplug_fn *unplug_fn; | 341 | unplug_fn *unplug_fn; |
| 343 | prepare_discard_fn *prepare_discard_fn; | ||
| 344 | merge_bvec_fn *merge_bvec_fn; | 342 | merge_bvec_fn *merge_bvec_fn; |
| 345 | prepare_flush_fn *prepare_flush_fn; | 343 | prepare_flush_fn *prepare_flush_fn; |
| 346 | softirq_done_fn *softirq_done_fn; | 344 | softirq_done_fn *softirq_done_fn; |
| @@ -460,6 +458,7 @@ struct request_queue | |||
| 460 | #define QUEUE_FLAG_VIRT QUEUE_FLAG_NONROT /* paravirt device */ | 458 | #define QUEUE_FLAG_VIRT QUEUE_FLAG_NONROT /* paravirt device */ |
| 461 | #define QUEUE_FLAG_IO_STAT 15 /* do IO stats */ | 459 | #define QUEUE_FLAG_IO_STAT 15 /* do IO stats */ |
| 462 | #define QUEUE_FLAG_CQ 16 /* hardware does queuing */ | 460 | #define QUEUE_FLAG_CQ 16 /* hardware does queuing */ |
| 461 | #define QUEUE_FLAG_DISCARD 17 /* supports DISCARD */ | ||
| 463 | 462 | ||
| 464 | #define QUEUE_FLAG_DEFAULT ((1 << QUEUE_FLAG_IO_STAT) | \ | 463 | #define QUEUE_FLAG_DEFAULT ((1 << QUEUE_FLAG_IO_STAT) | \ |
| 465 | (1 << QUEUE_FLAG_CLUSTER) | \ | 464 | (1 << QUEUE_FLAG_CLUSTER) | \ |
| @@ -591,6 +590,7 @@ enum { | |||
| 591 | #define blk_queue_flushing(q) ((q)->ordseq) | 590 | #define blk_queue_flushing(q) ((q)->ordseq) |
| 592 | #define blk_queue_stackable(q) \ | 591 | #define blk_queue_stackable(q) \ |
| 593 | test_bit(QUEUE_FLAG_STACKABLE, &(q)->queue_flags) | 592 | test_bit(QUEUE_FLAG_STACKABLE, &(q)->queue_flags) |
| 593 | #define blk_queue_discard(q) test_bit(QUEUE_FLAG_DISCARD, &(q)->queue_flags) | ||
| 594 | 594 | ||
| 595 | #define blk_fs_request(rq) ((rq)->cmd_type == REQ_TYPE_FS) | 595 | #define blk_fs_request(rq) ((rq)->cmd_type == REQ_TYPE_FS) |
| 596 | #define blk_pc_request(rq) ((rq)->cmd_type == REQ_TYPE_BLOCK_PC) | 596 | #define blk_pc_request(rq) ((rq)->cmd_type == REQ_TYPE_BLOCK_PC) |
| @@ -929,6 +929,8 @@ extern void blk_queue_max_hw_sectors(struct request_queue *, unsigned int); | |||
| 929 | extern void blk_queue_max_phys_segments(struct request_queue *, unsigned short); | 929 | extern void blk_queue_max_phys_segments(struct request_queue *, unsigned short); |
| 930 | extern void blk_queue_max_hw_segments(struct request_queue *, unsigned short); | 930 | extern void blk_queue_max_hw_segments(struct request_queue *, unsigned short); |
| 931 | extern void blk_queue_max_segment_size(struct request_queue *, unsigned int); | 931 | extern void blk_queue_max_segment_size(struct request_queue *, unsigned int); |
| 932 | extern void blk_queue_max_discard_sectors(struct request_queue *q, | ||
| 933 | unsigned int max_discard_sectors); | ||
| 932 | extern void blk_queue_logical_block_size(struct request_queue *, unsigned short); | 934 | extern void blk_queue_logical_block_size(struct request_queue *, unsigned short); |
| 933 | extern void blk_queue_physical_block_size(struct request_queue *, unsigned short); | 935 | extern void blk_queue_physical_block_size(struct request_queue *, unsigned short); |
| 934 | extern void blk_queue_alignment_offset(struct request_queue *q, | 936 | extern void blk_queue_alignment_offset(struct request_queue *q, |
| @@ -955,7 +957,6 @@ extern void blk_queue_merge_bvec(struct request_queue *, merge_bvec_fn *); | |||
| 955 | extern void blk_queue_dma_alignment(struct request_queue *, int); | 957 | extern void blk_queue_dma_alignment(struct request_queue *, int); |
| 956 | extern void blk_queue_update_dma_alignment(struct request_queue *, int); | 958 | extern void blk_queue_update_dma_alignment(struct request_queue *, int); |
| 957 | extern void blk_queue_softirq_done(struct request_queue *, softirq_done_fn *); | 959 | extern void blk_queue_softirq_done(struct request_queue *, softirq_done_fn *); |
| 958 | extern void blk_queue_set_discard(struct request_queue *, prepare_discard_fn *); | ||
| 959 | extern void blk_queue_rq_timed_out(struct request_queue *, rq_timed_out_fn *); | 960 | extern void blk_queue_rq_timed_out(struct request_queue *, rq_timed_out_fn *); |
| 960 | extern void blk_queue_rq_timeout(struct request_queue *, unsigned int); | 961 | extern void blk_queue_rq_timeout(struct request_queue *, unsigned int); |
| 961 | extern struct backing_dev_info *blk_get_backing_dev_info(struct block_device *bdev); | 962 | extern struct backing_dev_info *blk_get_backing_dev_info(struct block_device *bdev); |
| @@ -1080,25 +1081,37 @@ static inline unsigned int queue_physical_block_size(struct request_queue *q) | |||
| 1080 | return q->limits.physical_block_size; | 1081 | return q->limits.physical_block_size; |
| 1081 | } | 1082 | } |
| 1082 | 1083 | ||
| 1084 | static inline int bdev_physical_block_size(struct block_device *bdev) | ||
| 1085 | { | ||
| 1086 | return queue_physical_block_size(bdev_get_queue(bdev)); | ||
| 1087 | } | ||
| 1088 | |||
| 1083 | static inline unsigned int queue_io_min(struct request_queue *q) | 1089 | static inline unsigned int queue_io_min(struct request_queue *q) |
| 1084 | { | 1090 | { |
| 1085 | return q->limits.io_min; | 1091 | return q->limits.io_min; |
| 1086 | } | 1092 | } |
| 1087 | 1093 | ||
| 1094 | static inline int bdev_io_min(struct block_device *bdev) | ||
| 1095 | { | ||
| 1096 | return queue_io_min(bdev_get_queue(bdev)); | ||
| 1097 | } | ||
| 1098 | |||
| 1088 | static inline unsigned int queue_io_opt(struct request_queue *q) | 1099 | static inline unsigned int queue_io_opt(struct request_queue *q) |
| 1089 | { | 1100 | { |
| 1090 | return q->limits.io_opt; | 1101 | return q->limits.io_opt; |
| 1091 | } | 1102 | } |
| 1092 | 1103 | ||
| 1104 | static inline int bdev_io_opt(struct block_device *bdev) | ||
| 1105 | { | ||
| 1106 | return queue_io_opt(bdev_get_queue(bdev)); | ||
| 1107 | } | ||
| 1108 | |||
| 1093 | static inline int queue_alignment_offset(struct request_queue *q) | 1109 | static inline int queue_alignment_offset(struct request_queue *q) |
| 1094 | { | 1110 | { |
| 1095 | if (q && q->limits.misaligned) | 1111 | if (q->limits.misaligned) |
| 1096 | return -1; | 1112 | return -1; |
| 1097 | 1113 | ||
| 1098 | if (q && q->limits.alignment_offset) | 1114 | return q->limits.alignment_offset; |
| 1099 | return q->limits.alignment_offset; | ||
| 1100 | |||
| 1101 | return 0; | ||
| 1102 | } | 1115 | } |
| 1103 | 1116 | ||
| 1104 | static inline int queue_sector_alignment_offset(struct request_queue *q, | 1117 | static inline int queue_sector_alignment_offset(struct request_queue *q, |
| @@ -1108,6 +1121,19 @@ static inline int queue_sector_alignment_offset(struct request_queue *q, | |||
| 1108 | & (q->limits.io_min - 1); | 1121 | & (q->limits.io_min - 1); |
| 1109 | } | 1122 | } |
| 1110 | 1123 | ||
| 1124 | static inline int bdev_alignment_offset(struct block_device *bdev) | ||
| 1125 | { | ||
| 1126 | struct request_queue *q = bdev_get_queue(bdev); | ||
| 1127 | |||
| 1128 | if (q->limits.misaligned) | ||
| 1129 | return -1; | ||
| 1130 | |||
| 1131 | if (bdev != bdev->bd_contains) | ||
| 1132 | return bdev->bd_part->alignment_offset; | ||
| 1133 | |||
| 1134 | return q->limits.alignment_offset; | ||
| 1135 | } | ||
| 1136 | |||
| 1111 | static inline int queue_dma_alignment(struct request_queue *q) | 1137 | static inline int queue_dma_alignment(struct request_queue *q) |
| 1112 | { | 1138 | { |
| 1113 | return q ? q->dma_alignment : 511; | 1139 | return q ? q->dma_alignment : 511; |
diff --git a/include/linux/blktrace_api.h b/include/linux/blktrace_api.h index 7e4350ece0f8..3b73b9992b26 100644 --- a/include/linux/blktrace_api.h +++ b/include/linux/blktrace_api.h | |||
| @@ -198,6 +198,7 @@ extern int blk_trace_setup(struct request_queue *q, char *name, dev_t dev, | |||
| 198 | char __user *arg); | 198 | char __user *arg); |
| 199 | extern int blk_trace_startstop(struct request_queue *q, int start); | 199 | extern int blk_trace_startstop(struct request_queue *q, int start); |
| 200 | extern int blk_trace_remove(struct request_queue *q); | 200 | extern int blk_trace_remove(struct request_queue *q); |
| 201 | extern void blk_trace_remove_sysfs(struct device *dev); | ||
| 201 | extern int blk_trace_init_sysfs(struct device *dev); | 202 | extern int blk_trace_init_sysfs(struct device *dev); |
| 202 | 203 | ||
| 203 | extern struct attribute_group blk_trace_attr_group; | 204 | extern struct attribute_group blk_trace_attr_group; |
| @@ -211,6 +212,7 @@ extern struct attribute_group blk_trace_attr_group; | |||
| 211 | # define blk_trace_startstop(q, start) (-ENOTTY) | 212 | # define blk_trace_startstop(q, start) (-ENOTTY) |
| 212 | # define blk_trace_remove(q) (-ENOTTY) | 213 | # define blk_trace_remove(q) (-ENOTTY) |
| 213 | # define blk_add_trace_msg(q, fmt, ...) do { } while (0) | 214 | # define blk_add_trace_msg(q, fmt, ...) do { } while (0) |
| 215 | # define blk_trace_remove_sysfs(dev) do { } while (0) | ||
| 214 | static inline int blk_trace_init_sysfs(struct device *dev) | 216 | static inline int blk_trace_init_sysfs(struct device *dev) |
| 215 | { | 217 | { |
| 216 | return 0; | 218 | return 0; |
diff --git a/include/linux/cgroup.h b/include/linux/cgroup.h index b62bb9294d0c..0008dee66514 100644 --- a/include/linux/cgroup.h +++ b/include/linux/cgroup.h | |||
| @@ -37,7 +37,7 @@ extern void cgroup_exit(struct task_struct *p, int run_callbacks); | |||
| 37 | extern int cgroupstats_build(struct cgroupstats *stats, | 37 | extern int cgroupstats_build(struct cgroupstats *stats, |
| 38 | struct dentry *dentry); | 38 | struct dentry *dentry); |
| 39 | 39 | ||
| 40 | extern struct file_operations proc_cgroup_operations; | 40 | extern const struct file_operations proc_cgroup_operations; |
| 41 | 41 | ||
| 42 | /* Define the enumeration of all cgroup subsystems */ | 42 | /* Define the enumeration of all cgroup subsystems */ |
| 43 | #define SUBSYS(_x) _x ## _subsys_id, | 43 | #define SUBSYS(_x) _x ## _subsys_id, |
diff --git a/include/linux/cpufreq.h b/include/linux/cpufreq.h index 44717eb47639..79a2340d83cd 100644 --- a/include/linux/cpufreq.h +++ b/include/linux/cpufreq.h | |||
| @@ -291,8 +291,15 @@ struct global_attr { | |||
| 291 | int cpufreq_get_policy(struct cpufreq_policy *policy, unsigned int cpu); | 291 | int cpufreq_get_policy(struct cpufreq_policy *policy, unsigned int cpu); |
| 292 | int cpufreq_update_policy(unsigned int cpu); | 292 | int cpufreq_update_policy(unsigned int cpu); |
| 293 | 293 | ||
| 294 | #ifdef CONFIG_CPU_FREQ | ||
| 294 | /* query the current CPU frequency (in kHz). If zero, cpufreq couldn't detect it */ | 295 | /* query the current CPU frequency (in kHz). If zero, cpufreq couldn't detect it */ |
| 295 | unsigned int cpufreq_get(unsigned int cpu); | 296 | unsigned int cpufreq_get(unsigned int cpu); |
| 297 | #else | ||
| 298 | static inline unsigned int cpufreq_get(unsigned int cpu) | ||
| 299 | { | ||
| 300 | return 0; | ||
| 301 | } | ||
| 302 | #endif | ||
| 296 | 303 | ||
| 297 | /* query the last known CPU freq (in kHz). If zero, cpufreq couldn't detect it */ | 304 | /* query the last known CPU freq (in kHz). If zero, cpufreq couldn't detect it */ |
| 298 | #ifdef CONFIG_CPU_FREQ | 305 | #ifdef CONFIG_CPU_FREQ |
diff --git a/include/linux/device.h b/include/linux/device.h index aca31bf7d8ed..2ea3e4921812 100644 --- a/include/linux/device.h +++ b/include/linux/device.h | |||
| @@ -124,7 +124,9 @@ struct device_driver { | |||
| 124 | struct bus_type *bus; | 124 | struct bus_type *bus; |
| 125 | 125 | ||
| 126 | struct module *owner; | 126 | struct module *owner; |
| 127 | const char *mod_name; /* used for built-in modules */ | 127 | const char *mod_name; /* used for built-in modules */ |
| 128 | |||
| 129 | bool suppress_bind_attrs; /* disables bind/unbind via sysfs */ | ||
| 128 | 130 | ||
| 129 | int (*probe) (struct device *dev); | 131 | int (*probe) (struct device *dev); |
| 130 | int (*remove) (struct device *dev); | 132 | int (*remove) (struct device *dev); |
diff --git a/include/linux/elf.h b/include/linux/elf.h index 45a937be6d38..90a4ed0ea0e5 100644 --- a/include/linux/elf.h +++ b/include/linux/elf.h | |||
| @@ -361,6 +361,7 @@ typedef struct elf64_shdr { | |||
| 361 | #define NT_PPC_VSX 0x102 /* PowerPC VSX registers */ | 361 | #define NT_PPC_VSX 0x102 /* PowerPC VSX registers */ |
| 362 | #define NT_386_TLS 0x200 /* i386 TLS slots (struct user_desc) */ | 362 | #define NT_386_TLS 0x200 /* i386 TLS slots (struct user_desc) */ |
| 363 | #define NT_386_IOPERM 0x201 /* x86 io permission bitmap (1=deny) */ | 363 | #define NT_386_IOPERM 0x201 /* x86 io permission bitmap (1=deny) */ |
| 364 | #define NT_PRXSTATUS 0x300 /* s390 upper register halves */ | ||
| 364 | 365 | ||
| 365 | 366 | ||
| 366 | /* Note header in a PT_NOTE section */ | 367 | /* Note header in a PT_NOTE section */ |
diff --git a/include/linux/ext3_fs_i.h b/include/linux/ext3_fs_i.h index ca1bfe90004f..93e7428156ba 100644 --- a/include/linux/ext3_fs_i.h +++ b/include/linux/ext3_fs_i.h | |||
| @@ -137,6 +137,14 @@ struct ext3_inode_info { | |||
| 137 | * by other means, so we have truncate_mutex. | 137 | * by other means, so we have truncate_mutex. |
| 138 | */ | 138 | */ |
| 139 | struct mutex truncate_mutex; | 139 | struct mutex truncate_mutex; |
| 140 | |||
| 141 | /* | ||
| 142 | * Transactions that contain inode's metadata needed to complete | ||
| 143 | * fsync and fdatasync, respectively. | ||
| 144 | */ | ||
| 145 | atomic_t i_sync_tid; | ||
| 146 | atomic_t i_datasync_tid; | ||
| 147 | |||
| 140 | struct inode vfs_inode; | 148 | struct inode vfs_inode; |
| 141 | }; | 149 | }; |
| 142 | 150 | ||
diff --git a/include/linux/fb.h b/include/linux/fb.h index f847df9e99b6..de9c722e7b90 100644 --- a/include/linux/fb.h +++ b/include/linux/fb.h | |||
| @@ -133,6 +133,7 @@ struct dentry; | |||
| 133 | #define FB_ACCEL_NEOMAGIC_NM2230 96 /* NeoMagic NM2230 */ | 133 | #define FB_ACCEL_NEOMAGIC_NM2230 96 /* NeoMagic NM2230 */ |
| 134 | #define FB_ACCEL_NEOMAGIC_NM2360 97 /* NeoMagic NM2360 */ | 134 | #define FB_ACCEL_NEOMAGIC_NM2360 97 /* NeoMagic NM2360 */ |
| 135 | #define FB_ACCEL_NEOMAGIC_NM2380 98 /* NeoMagic NM2380 */ | 135 | #define FB_ACCEL_NEOMAGIC_NM2380 98 /* NeoMagic NM2380 */ |
| 136 | #define FB_ACCEL_PXA3XX 99 /* PXA3xx */ | ||
| 136 | 137 | ||
| 137 | #define FB_ACCEL_SAVAGE4 0x80 /* S3 Savage4 */ | 138 | #define FB_ACCEL_SAVAGE4 0x80 /* S3 Savage4 */ |
| 138 | #define FB_ACCEL_SAVAGE3D 0x81 /* S3 Savage3D */ | 139 | #define FB_ACCEL_SAVAGE3D 0x81 /* S3 Savage3D */ |
| @@ -668,12 +669,6 @@ struct fb_ops { | |||
| 668 | /* perform fb specific mmap */ | 669 | /* perform fb specific mmap */ |
| 669 | int (*fb_mmap)(struct fb_info *info, struct vm_area_struct *vma); | 670 | int (*fb_mmap)(struct fb_info *info, struct vm_area_struct *vma); |
| 670 | 671 | ||
| 671 | /* save current hardware state */ | ||
| 672 | void (*fb_save_state)(struct fb_info *info); | ||
| 673 | |||
| 674 | /* restore saved state */ | ||
| 675 | void (*fb_restore_state)(struct fb_info *info); | ||
| 676 | |||
| 677 | /* get capability given var */ | 672 | /* get capability given var */ |
| 678 | void (*fb_get_caps)(struct fb_info *info, struct fb_blit_caps *caps, | 673 | void (*fb_get_caps)(struct fb_info *info, struct fb_blit_caps *caps, |
| 679 | struct fb_var_screeninfo *var); | 674 | struct fb_var_screeninfo *var); |
diff --git a/include/linux/fs.h b/include/linux/fs.h index 2adaa2529f18..2620a8c63571 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h | |||
| @@ -300,6 +300,10 @@ struct inodes_stat_t { | |||
| 300 | #define BLKTRACESTOP _IO(0x12,117) | 300 | #define BLKTRACESTOP _IO(0x12,117) |
| 301 | #define BLKTRACETEARDOWN _IO(0x12,118) | 301 | #define BLKTRACETEARDOWN _IO(0x12,118) |
| 302 | #define BLKDISCARD _IO(0x12,119) | 302 | #define BLKDISCARD _IO(0x12,119) |
| 303 | #define BLKIOMIN _IO(0x12,120) | ||
| 304 | #define BLKIOOPT _IO(0x12,121) | ||
| 305 | #define BLKALIGNOFF _IO(0x12,122) | ||
| 306 | #define BLKPBSZGET _IO(0x12,123) | ||
| 303 | 307 | ||
| 304 | #define BMAP_IOCTL 1 /* obsolete - kept for compatibility */ | 308 | #define BMAP_IOCTL 1 /* obsolete - kept for compatibility */ |
| 305 | #define FIBMAP _IO(0x00,1) /* bmap access */ | 309 | #define FIBMAP _IO(0x00,1) /* bmap access */ |
| @@ -2446,7 +2450,7 @@ static int __fops ## _open(struct inode *inode, struct file *file) \ | |||
| 2446 | __simple_attr_check_format(__fmt, 0ull); \ | 2450 | __simple_attr_check_format(__fmt, 0ull); \ |
| 2447 | return simple_attr_open(inode, file, __get, __set, __fmt); \ | 2451 | return simple_attr_open(inode, file, __get, __set, __fmt); \ |
| 2448 | } \ | 2452 | } \ |
| 2449 | static struct file_operations __fops = { \ | 2453 | static const struct file_operations __fops = { \ |
| 2450 | .owner = THIS_MODULE, \ | 2454 | .owner = THIS_MODULE, \ |
| 2451 | .open = __fops ## _open, \ | 2455 | .open = __fops ## _open, \ |
| 2452 | .release = simple_attr_release, \ | 2456 | .release = simple_attr_release, \ |
diff --git a/include/linux/ftrace.h b/include/linux/ftrace.h index cd3d2abaf30a..0b4f97d24d7f 100644 --- a/include/linux/ftrace.h +++ b/include/linux/ftrace.h | |||
| @@ -241,7 +241,7 @@ extern void ftrace_enable_daemon(void); | |||
| 241 | # define ftrace_set_filter(buf, len, reset) do { } while (0) | 241 | # define ftrace_set_filter(buf, len, reset) do { } while (0) |
| 242 | # define ftrace_disable_daemon() do { } while (0) | 242 | # define ftrace_disable_daemon() do { } while (0) |
| 243 | # define ftrace_enable_daemon() do { } while (0) | 243 | # define ftrace_enable_daemon() do { } while (0) |
| 244 | static inline void ftrace_release(void *start, unsigned long size) { } | 244 | static inline void ftrace_release_mod(struct module *mod) {} |
| 245 | static inline int register_ftrace_command(struct ftrace_func_command *cmd) | 245 | static inline int register_ftrace_command(struct ftrace_func_command *cmd) |
| 246 | { | 246 | { |
| 247 | return -EINVAL; | 247 | return -EINVAL; |
diff --git a/include/linux/futex.h b/include/linux/futex.h index 8ec17997d94f..1e5a26d79232 100644 --- a/include/linux/futex.h +++ b/include/linux/futex.h | |||
| @@ -33,8 +33,8 @@ | |||
| 33 | #define FUTEX_LOCK_PI_PRIVATE (FUTEX_LOCK_PI | FUTEX_PRIVATE_FLAG) | 33 | #define FUTEX_LOCK_PI_PRIVATE (FUTEX_LOCK_PI | FUTEX_PRIVATE_FLAG) |
| 34 | #define FUTEX_UNLOCK_PI_PRIVATE (FUTEX_UNLOCK_PI | FUTEX_PRIVATE_FLAG) | 34 | #define FUTEX_UNLOCK_PI_PRIVATE (FUTEX_UNLOCK_PI | FUTEX_PRIVATE_FLAG) |
| 35 | #define FUTEX_TRYLOCK_PI_PRIVATE (FUTEX_TRYLOCK_PI | FUTEX_PRIVATE_FLAG) | 35 | #define FUTEX_TRYLOCK_PI_PRIVATE (FUTEX_TRYLOCK_PI | FUTEX_PRIVATE_FLAG) |
| 36 | #define FUTEX_WAIT_BITSET_PRIVATE (FUTEX_WAIT_BITS | FUTEX_PRIVATE_FLAG) | 36 | #define FUTEX_WAIT_BITSET_PRIVATE (FUTEX_WAIT_BITSET | FUTEX_PRIVATE_FLAG) |
| 37 | #define FUTEX_WAKE_BITSET_PRIVATE (FUTEX_WAKE_BITS | FUTEX_PRIVATE_FLAG) | 37 | #define FUTEX_WAKE_BITSET_PRIVATE (FUTEX_WAKE_BITSET | FUTEX_PRIVATE_FLAG) |
| 38 | #define FUTEX_WAIT_REQUEUE_PI_PRIVATE (FUTEX_WAIT_REQUEUE_PI | \ | 38 | #define FUTEX_WAIT_REQUEUE_PI_PRIVATE (FUTEX_WAIT_REQUEUE_PI | \ |
| 39 | FUTEX_PRIVATE_FLAG) | 39 | FUTEX_PRIVATE_FLAG) |
| 40 | #define FUTEX_CMP_REQUEUE_PI_PRIVATE (FUTEX_CMP_REQUEUE_PI | \ | 40 | #define FUTEX_CMP_REQUEUE_PI_PRIVATE (FUTEX_CMP_REQUEUE_PI | \ |
diff --git a/include/linux/hugetlb.h b/include/linux/hugetlb.h index 11ab19ac6b3d..41a59afc70fa 100644 --- a/include/linux/hugetlb.h +++ b/include/linux/hugetlb.h | |||
| @@ -3,15 +3,15 @@ | |||
| 3 | 3 | ||
| 4 | #include <linux/fs.h> | 4 | #include <linux/fs.h> |
| 5 | 5 | ||
| 6 | struct ctl_table; | ||
| 7 | struct user_struct; | ||
| 8 | |||
| 6 | #ifdef CONFIG_HUGETLB_PAGE | 9 | #ifdef CONFIG_HUGETLB_PAGE |
| 7 | 10 | ||
| 8 | #include <linux/mempolicy.h> | 11 | #include <linux/mempolicy.h> |
| 9 | #include <linux/shm.h> | 12 | #include <linux/shm.h> |
| 10 | #include <asm/tlbflush.h> | 13 | #include <asm/tlbflush.h> |
| 11 | 14 | ||
| 12 | struct ctl_table; | ||
| 13 | struct user_struct; | ||
| 14 | |||
| 15 | int PageHuge(struct page *page); | 15 | int PageHuge(struct page *page); |
| 16 | 16 | ||
| 17 | static inline int is_vm_hugetlb_page(struct vm_area_struct *vma) | 17 | static inline int is_vm_hugetlb_page(struct vm_area_struct *vma) |
| @@ -163,7 +163,7 @@ static inline struct hugetlbfs_sb_info *HUGETLBFS_SB(struct super_block *sb) | |||
| 163 | } | 163 | } |
| 164 | 164 | ||
| 165 | extern const struct file_operations hugetlbfs_file_operations; | 165 | extern const struct file_operations hugetlbfs_file_operations; |
| 166 | extern struct vm_operations_struct hugetlb_vm_ops; | 166 | extern const struct vm_operations_struct hugetlb_vm_ops; |
| 167 | struct file *hugetlb_file_setup(const char *name, size_t size, int acct, | 167 | struct file *hugetlb_file_setup(const char *name, size_t size, int acct, |
| 168 | struct user_struct **user, int creat_flags); | 168 | struct user_struct **user, int creat_flags); |
| 169 | int hugetlb_get_quota(struct address_space *mapping, long delta); | 169 | int hugetlb_get_quota(struct address_space *mapping, long delta); |
| @@ -187,7 +187,11 @@ static inline void set_file_hugepages(struct file *file) | |||
| 187 | 187 | ||
| 188 | #define is_file_hugepages(file) 0 | 188 | #define is_file_hugepages(file) 0 |
| 189 | #define set_file_hugepages(file) BUG() | 189 | #define set_file_hugepages(file) BUG() |
| 190 | #define hugetlb_file_setup(name,size,acct,user,creat) ERR_PTR(-ENOSYS) | 190 | static inline struct file *hugetlb_file_setup(const char *name, size_t size, |
| 191 | int acctflag, struct user_struct **user, int creat_flags) | ||
| 192 | { | ||
| 193 | return ERR_PTR(-ENOSYS); | ||
| 194 | } | ||
| 191 | 195 | ||
| 192 | #endif /* !CONFIG_HUGETLBFS */ | 196 | #endif /* !CONFIG_HUGETLBFS */ |
| 193 | 197 | ||
diff --git a/include/linux/i2c.h b/include/linux/i2c.h index 57d41b0abce2..7b40cda57a70 100644 --- a/include/linux/i2c.h +++ b/include/linux/i2c.h | |||
| @@ -361,6 +361,24 @@ static inline void i2c_set_adapdata(struct i2c_adapter *dev, void *data) | |||
| 361 | dev_set_drvdata(&dev->dev, data); | 361 | dev_set_drvdata(&dev->dev, data); |
| 362 | } | 362 | } |
| 363 | 363 | ||
| 364 | /** | ||
| 365 | * i2c_lock_adapter - Prevent access to an I2C bus segment | ||
| 366 | * @adapter: Target I2C bus segment | ||
| 367 | */ | ||
| 368 | static inline void i2c_lock_adapter(struct i2c_adapter *adapter) | ||
| 369 | { | ||
| 370 | mutex_lock(&adapter->bus_lock); | ||
| 371 | } | ||
| 372 | |||
| 373 | /** | ||
| 374 | * i2c_unlock_adapter - Reauthorize access to an I2C bus segment | ||
| 375 | * @adapter: Target I2C bus segment | ||
| 376 | */ | ||
| 377 | static inline void i2c_unlock_adapter(struct i2c_adapter *adapter) | ||
| 378 | { | ||
| 379 | mutex_unlock(&adapter->bus_lock); | ||
| 380 | } | ||
| 381 | |||
| 364 | /*flags for the client struct: */ | 382 | /*flags for the client struct: */ |
| 365 | #define I2C_CLIENT_PEC 0x04 /* Use Packet Error Checking */ | 383 | #define I2C_CLIENT_PEC 0x04 /* Use Packet Error Checking */ |
| 366 | #define I2C_CLIENT_TEN 0x10 /* we have a ten bit chip address */ | 384 | #define I2C_CLIENT_TEN 0x10 /* we have a ten bit chip address */ |
diff --git a/include/linux/i2c/twl4030.h b/include/linux/i2c/twl4030.h index 2d02dfd7076c..508824ee35e6 100644 --- a/include/linux/i2c/twl4030.h +++ b/include/linux/i2c/twl4030.h | |||
| @@ -349,11 +349,11 @@ struct twl4030_madc_platform_data { | |||
| 349 | int irq_line; | 349 | int irq_line; |
| 350 | }; | 350 | }; |
| 351 | 351 | ||
| 352 | /* Boards have uniqe mappings of {col, row} --> keycode. | 352 | /* Boards have uniqe mappings of {row, col} --> keycode. |
| 353 | * Column and row are 4 bits, but range only from 0..7. | 353 | * Column and row are 8 bits each, but range only from 0..7. |
| 354 | * a PERSISTENT_KEY is "always on" and never reported. | 354 | * a PERSISTENT_KEY is "always on" and never reported. |
| 355 | */ | 355 | */ |
| 356 | #define PERSISTENT_KEY(c, r) KEY((c), (r), KEY_RESERVED) | 356 | #define PERSISTENT_KEY(r, c) KEY((r), (c), KEY_RESERVED) |
| 357 | 357 | ||
| 358 | struct twl4030_keypad_data { | 358 | struct twl4030_keypad_data { |
| 359 | const struct matrix_keymap_data *keymap_data; | 359 | const struct matrix_keymap_data *keymap_data; |
diff --git a/include/linux/init.h b/include/linux/init.h index 400adbb45414..ff8bde520d03 100644 --- a/include/linux/init.h +++ b/include/linux/init.h | |||
| @@ -271,6 +271,7 @@ void __init parse_early_options(char *cmdline); | |||
| 271 | #else /* MODULE */ | 271 | #else /* MODULE */ |
| 272 | 272 | ||
| 273 | /* Don't use these in modules, but some people do... */ | 273 | /* Don't use these in modules, but some people do... */ |
| 274 | #define early_initcall(fn) module_init(fn) | ||
| 274 | #define core_initcall(fn) module_init(fn) | 275 | #define core_initcall(fn) module_init(fn) |
| 275 | #define postcore_initcall(fn) module_init(fn) | 276 | #define postcore_initcall(fn) module_init(fn) |
| 276 | #define arch_initcall(fn) module_init(fn) | 277 | #define arch_initcall(fn) module_init(fn) |
diff --git a/include/linux/input.h b/include/linux/input.h index 0ccfc30cd40f..c2b1a7d244d9 100644 --- a/include/linux/input.h +++ b/include/linux/input.h | |||
| @@ -1377,6 +1377,10 @@ extern struct class input_class; | |||
| 1377 | * methods; erase() is optional. set_gain() and set_autocenter() need | 1377 | * methods; erase() is optional. set_gain() and set_autocenter() need |
| 1378 | * only be implemented if driver sets up FF_GAIN and FF_AUTOCENTER | 1378 | * only be implemented if driver sets up FF_GAIN and FF_AUTOCENTER |
| 1379 | * bits. | 1379 | * bits. |
| 1380 | * | ||
| 1381 | * Note that playback(), set_gain() and set_autocenter() are called with | ||
| 1382 | * dev->event_lock spinlock held and interrupts off and thus may not | ||
| 1383 | * sleep. | ||
| 1380 | */ | 1384 | */ |
| 1381 | struct ff_device { | 1385 | struct ff_device { |
| 1382 | int (*upload)(struct input_dev *dev, struct ff_effect *effect, | 1386 | int (*upload)(struct input_dev *dev, struct ff_effect *effect, |
diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h index b78cf8194957..7ca72b74eec7 100644 --- a/include/linux/interrupt.h +++ b/include/linux/interrupt.h | |||
| @@ -10,7 +10,6 @@ | |||
| 10 | #include <linux/irqreturn.h> | 10 | #include <linux/irqreturn.h> |
| 11 | #include <linux/irqnr.h> | 11 | #include <linux/irqnr.h> |
| 12 | #include <linux/hardirq.h> | 12 | #include <linux/hardirq.h> |
| 13 | #include <linux/sched.h> | ||
| 14 | #include <linux/irqflags.h> | 13 | #include <linux/irqflags.h> |
| 15 | #include <linux/smp.h> | 14 | #include <linux/smp.h> |
| 16 | #include <linux/percpu.h> | 15 | #include <linux/percpu.h> |
| @@ -610,6 +609,7 @@ extern void debug_poll_all_shared_irqs(void); | |||
| 610 | static inline void debug_poll_all_shared_irqs(void) { } | 609 | static inline void debug_poll_all_shared_irqs(void) { } |
| 611 | #endif | 610 | #endif |
| 612 | 611 | ||
| 612 | struct seq_file; | ||
| 613 | int show_interrupts(struct seq_file *p, void *v); | 613 | int show_interrupts(struct seq_file *p, void *v); |
| 614 | 614 | ||
| 615 | struct irq_desc; | 615 | struct irq_desc; |
diff --git a/include/linux/ipc.h b/include/linux/ipc.h index b8826107b518..3b1594d662b0 100644 --- a/include/linux/ipc.h +++ b/include/linux/ipc.h | |||
| @@ -78,8 +78,6 @@ struct ipc_kludge { | |||
| 78 | #define IPCCALL(version,op) ((version)<<16 | (op)) | 78 | #define IPCCALL(version,op) ((version)<<16 | (op)) |
| 79 | 79 | ||
| 80 | #ifdef __KERNEL__ | 80 | #ifdef __KERNEL__ |
| 81 | |||
| 82 | #include <linux/kref.h> | ||
| 83 | #include <linux/spinlock.h> | 81 | #include <linux/spinlock.h> |
| 84 | 82 | ||
| 85 | #define IPCMNI 32768 /* <= MAX_INT limit for ipc arrays (including sysctl changes) */ | 83 | #define IPCMNI 32768 /* <= MAX_INT limit for ipc arrays (including sysctl changes) */ |
diff --git a/include/linux/jbd2.h b/include/linux/jbd2.h index 52695d3dfd0b..f1011f7f3d41 100644 --- a/include/linux/jbd2.h +++ b/include/linux/jbd2.h | |||
| @@ -464,9 +464,9 @@ struct handle_s | |||
| 464 | */ | 464 | */ |
| 465 | struct transaction_chp_stats_s { | 465 | struct transaction_chp_stats_s { |
| 466 | unsigned long cs_chp_time; | 466 | unsigned long cs_chp_time; |
| 467 | unsigned long cs_forced_to_close; | 467 | __u32 cs_forced_to_close; |
| 468 | unsigned long cs_written; | 468 | __u32 cs_written; |
| 469 | unsigned long cs_dropped; | 469 | __u32 cs_dropped; |
| 470 | }; | 470 | }; |
| 471 | 471 | ||
| 472 | /* The transaction_t type is the guts of the journaling mechanism. It | 472 | /* The transaction_t type is the guts of the journaling mechanism. It |
| @@ -668,23 +668,16 @@ struct transaction_run_stats_s { | |||
| 668 | unsigned long rs_flushing; | 668 | unsigned long rs_flushing; |
| 669 | unsigned long rs_logging; | 669 | unsigned long rs_logging; |
| 670 | 670 | ||
| 671 | unsigned long rs_handle_count; | 671 | __u32 rs_handle_count; |
| 672 | unsigned long rs_blocks; | 672 | __u32 rs_blocks; |
| 673 | unsigned long rs_blocks_logged; | 673 | __u32 rs_blocks_logged; |
| 674 | }; | 674 | }; |
| 675 | 675 | ||
| 676 | struct transaction_stats_s { | 676 | struct transaction_stats_s { |
| 677 | int ts_type; | ||
| 678 | unsigned long ts_tid; | 677 | unsigned long ts_tid; |
| 679 | union { | 678 | struct transaction_run_stats_s run; |
| 680 | struct transaction_run_stats_s run; | ||
| 681 | struct transaction_chp_stats_s chp; | ||
| 682 | } u; | ||
| 683 | }; | 679 | }; |
| 684 | 680 | ||
| 685 | #define JBD2_STATS_RUN 1 | ||
| 686 | #define JBD2_STATS_CHECKPOINT 2 | ||
| 687 | |||
| 688 | static inline unsigned long | 681 | static inline unsigned long |
| 689 | jbd2_time_diff(unsigned long start, unsigned long end) | 682 | jbd2_time_diff(unsigned long start, unsigned long end) |
| 690 | { | 683 | { |
| @@ -988,12 +981,6 @@ struct journal_s | |||
| 988 | /* | 981 | /* |
| 989 | * Journal statistics | 982 | * Journal statistics |
| 990 | */ | 983 | */ |
| 991 | struct transaction_stats_s *j_history; | ||
| 992 | int j_history_max; | ||
| 993 | int j_history_cur; | ||
| 994 | /* | ||
| 995 | * Protect the transactions statistics history | ||
| 996 | */ | ||
| 997 | spinlock_t j_history_lock; | 984 | spinlock_t j_history_lock; |
| 998 | struct proc_dir_entry *j_proc_entry; | 985 | struct proc_dir_entry *j_proc_entry; |
| 999 | struct transaction_stats_s j_stats; | 986 | struct transaction_stats_s j_stats; |
diff --git a/include/linux/kernel.h b/include/linux/kernel.h index d3cd23f30039..f4e3184fa054 100644 --- a/include/linux/kernel.h +++ b/include/linux/kernel.h | |||
| @@ -659,6 +659,12 @@ extern int do_sysinfo(struct sysinfo *info); | |||
| 659 | 659 | ||
| 660 | #endif /* __KERNEL__ */ | 660 | #endif /* __KERNEL__ */ |
| 661 | 661 | ||
| 662 | #ifndef __EXPORTED_HEADERS__ | ||
| 663 | #ifndef __KERNEL__ | ||
| 664 | #warning Attempt to use kernel headers from user space, see http://kernelnewbies.org/KernelHeaders | ||
| 665 | #endif /* __KERNEL__ */ | ||
| 666 | #endif /* __EXPORTED_HEADERS__ */ | ||
| 667 | |||
| 662 | #define SI_LOAD_SHIFT 16 | 668 | #define SI_LOAD_SHIFT 16 |
| 663 | struct sysinfo { | 669 | struct sysinfo { |
| 664 | long uptime; /* Seconds since boot */ | 670 | long uptime; /* Seconds since boot */ |
diff --git a/include/linux/kref.h b/include/linux/kref.h index 0cef6badd6fb..b0cb0ebad9e6 100644 --- a/include/linux/kref.h +++ b/include/linux/kref.h | |||
| @@ -16,7 +16,6 @@ | |||
| 16 | #define _KREF_H_ | 16 | #define _KREF_H_ |
| 17 | 17 | ||
| 18 | #include <linux/types.h> | 18 | #include <linux/types.h> |
| 19 | #include <asm/atomic.h> | ||
| 20 | 19 | ||
| 21 | struct kref { | 20 | struct kref { |
| 22 | atomic_t refcount; | 21 | atomic_t refcount; |
diff --git a/include/linux/libata.h b/include/linux/libata.h index 76319bf03e37..87698640c091 100644 --- a/include/linux/libata.h +++ b/include/linux/libata.h | |||
| @@ -418,6 +418,17 @@ enum { | |||
| 418 | ATA_TIMING_ACTIVE | ATA_TIMING_RECOVER | | 418 | ATA_TIMING_ACTIVE | ATA_TIMING_RECOVER | |
| 419 | ATA_TIMING_DMACK_HOLD | ATA_TIMING_CYCLE | | 419 | ATA_TIMING_DMACK_HOLD | ATA_TIMING_CYCLE | |
| 420 | ATA_TIMING_UDMA, | 420 | ATA_TIMING_UDMA, |
| 421 | |||
| 422 | /* ACPI constants */ | ||
| 423 | ATA_ACPI_FILTER_SETXFER = 1 << 0, | ||
| 424 | ATA_ACPI_FILTER_LOCK = 1 << 1, | ||
| 425 | ATA_ACPI_FILTER_DIPM = 1 << 2, | ||
| 426 | ATA_ACPI_FILTER_FPDMA_OFFSET = 1 << 3, /* FPDMA non-zero offset */ | ||
| 427 | ATA_ACPI_FILTER_FPDMA_AA = 1 << 4, /* FPDMA auto activate */ | ||
| 428 | |||
| 429 | ATA_ACPI_FILTER_DEFAULT = ATA_ACPI_FILTER_SETXFER | | ||
| 430 | ATA_ACPI_FILTER_LOCK | | ||
| 431 | ATA_ACPI_FILTER_DIPM, | ||
| 421 | }; | 432 | }; |
| 422 | 433 | ||
| 423 | enum ata_xfer_mask { | 434 | enum ata_xfer_mask { |
| @@ -587,6 +598,7 @@ struct ata_device { | |||
| 587 | #ifdef CONFIG_ATA_ACPI | 598 | #ifdef CONFIG_ATA_ACPI |
| 588 | acpi_handle acpi_handle; | 599 | acpi_handle acpi_handle; |
| 589 | union acpi_object *gtf_cache; | 600 | union acpi_object *gtf_cache; |
| 601 | unsigned int gtf_filter; | ||
| 590 | #endif | 602 | #endif |
| 591 | /* n_sector is CLEAR_BEGIN, read comment above CLEAR_BEGIN */ | 603 | /* n_sector is CLEAR_BEGIN, read comment above CLEAR_BEGIN */ |
| 592 | u64 n_sectors; /* size of device, if ATA */ | 604 | u64 n_sectors; /* size of device, if ATA */ |
diff --git a/include/linux/mfd/wm831x/status.h b/include/linux/mfd/wm831x/status.h new file mode 100644 index 000000000000..6bc090d0e3ac --- /dev/null +++ b/include/linux/mfd/wm831x/status.h | |||
| @@ -0,0 +1,34 @@ | |||
| 1 | /* | ||
| 2 | * include/linux/mfd/wm831x/status.h -- Status LEDs for WM831x | ||
| 3 | * | ||
| 4 | * Copyright 2009 Wolfson Microelectronics PLC. | ||
| 5 | * | ||
| 6 | * Author: Mark Brown <broonie@opensource.wolfsonmicro.com> | ||
| 7 | * | ||
| 8 | * This program is free software; you can redistribute it and/or modify it | ||
| 9 | * under the terms of the GNU General Public License as published by the | ||
| 10 | * Free Software Foundation; either version 2 of the License, or (at your | ||
| 11 | * option) any later version. | ||
| 12 | * | ||
| 13 | */ | ||
| 14 | |||
| 15 | #ifndef __MFD_WM831X_STATUS_H__ | ||
| 16 | #define __MFD_WM831X_STATUS_H__ | ||
| 17 | |||
| 18 | #define WM831X_LED_SRC_MASK 0xC000 /* LED_SRC - [15:14] */ | ||
| 19 | #define WM831X_LED_SRC_SHIFT 14 /* LED_SRC - [15:14] */ | ||
| 20 | #define WM831X_LED_SRC_WIDTH 2 /* LED_SRC - [15:14] */ | ||
| 21 | #define WM831X_LED_MODE_MASK 0x0300 /* LED_MODE - [9:8] */ | ||
| 22 | #define WM831X_LED_MODE_SHIFT 8 /* LED_MODE - [9:8] */ | ||
| 23 | #define WM831X_LED_MODE_WIDTH 2 /* LED_MODE - [9:8] */ | ||
| 24 | #define WM831X_LED_SEQ_LEN_MASK 0x0030 /* LED_SEQ_LEN - [5:4] */ | ||
| 25 | #define WM831X_LED_SEQ_LEN_SHIFT 4 /* LED_SEQ_LEN - [5:4] */ | ||
| 26 | #define WM831X_LED_SEQ_LEN_WIDTH 2 /* LED_SEQ_LEN - [5:4] */ | ||
| 27 | #define WM831X_LED_DUR_MASK 0x000C /* LED_DUR - [3:2] */ | ||
| 28 | #define WM831X_LED_DUR_SHIFT 2 /* LED_DUR - [3:2] */ | ||
| 29 | #define WM831X_LED_DUR_WIDTH 2 /* LED_DUR - [3:2] */ | ||
| 30 | #define WM831X_LED_DUTY_CYC_MASK 0x0003 /* LED_DUTY_CYC - [1:0] */ | ||
| 31 | #define WM831X_LED_DUTY_CYC_SHIFT 0 /* LED_DUTY_CYC - [1:0] */ | ||
| 32 | #define WM831X_LED_DUTY_CYC_WIDTH 2 /* LED_DUTY_CYC - [1:0] */ | ||
| 33 | |||
| 34 | #endif | ||
diff --git a/include/linux/mm.h b/include/linux/mm.h index df08551cb0ad..24c395694f4d 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h | |||
| @@ -288,7 +288,7 @@ static inline int is_vmalloc_addr(const void *x) | |||
| 288 | #ifdef CONFIG_MMU | 288 | #ifdef CONFIG_MMU |
| 289 | extern int is_vmalloc_or_module_addr(const void *x); | 289 | extern int is_vmalloc_or_module_addr(const void *x); |
| 290 | #else | 290 | #else |
| 291 | static int is_vmalloc_or_module_addr(const void *x) | 291 | static inline int is_vmalloc_or_module_addr(const void *x) |
| 292 | { | 292 | { |
| 293 | return 0; | 293 | return 0; |
| 294 | } | 294 | } |
diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h index 21d6aa45206a..84a524afb3dc 100644 --- a/include/linux/mm_types.h +++ b/include/linux/mm_types.h | |||
| @@ -171,7 +171,7 @@ struct vm_area_struct { | |||
| 171 | struct anon_vma *anon_vma; /* Serialized by page_table_lock */ | 171 | struct anon_vma *anon_vma; /* Serialized by page_table_lock */ |
| 172 | 172 | ||
| 173 | /* Function pointers to deal with this struct. */ | 173 | /* Function pointers to deal with this struct. */ |
| 174 | struct vm_operations_struct * vm_ops; | 174 | const struct vm_operations_struct *vm_ops; |
| 175 | 175 | ||
| 176 | /* Information about our backing store: */ | 176 | /* Information about our backing store: */ |
| 177 | unsigned long vm_pgoff; /* Offset (within vm_file) in PAGE_SIZE | 177 | unsigned long vm_pgoff; /* Offset (within vm_file) in PAGE_SIZE |
diff --git a/include/linux/mmc/host.h b/include/linux/mmc/host.h index 81bb42358595..eaf36364b7d4 100644 --- a/include/linux/mmc/host.h +++ b/include/linux/mmc/host.h | |||
| @@ -11,6 +11,7 @@ | |||
| 11 | #define LINUX_MMC_HOST_H | 11 | #define LINUX_MMC_HOST_H |
| 12 | 12 | ||
| 13 | #include <linux/leds.h> | 13 | #include <linux/leds.h> |
| 14 | #include <linux/sched.h> | ||
| 14 | 15 | ||
| 15 | #include <linux/mmc/core.h> | 16 | #include <linux/mmc/core.h> |
| 16 | 17 | ||
diff --git a/include/linux/moduleparam.h b/include/linux/moduleparam.h index 6547c3cdbc4c..82a9124f7d75 100644 --- a/include/linux/moduleparam.h +++ b/include/linux/moduleparam.h | |||
| @@ -37,7 +37,6 @@ typedef int (*param_set_fn)(const char *val, struct kernel_param *kp); | |||
| 37 | typedef int (*param_get_fn)(char *buffer, struct kernel_param *kp); | 37 | typedef int (*param_get_fn)(char *buffer, struct kernel_param *kp); |
| 38 | 38 | ||
| 39 | /* Flag bits for kernel_param.flags */ | 39 | /* Flag bits for kernel_param.flags */ |
| 40 | #define KPARAM_KMALLOCED 1 | ||
| 41 | #define KPARAM_ISBOOL 2 | 40 | #define KPARAM_ISBOOL 2 |
| 42 | 41 | ||
| 43 | struct kernel_param { | 42 | struct kernel_param { |
diff --git a/include/linux/nfs_fs.h b/include/linux/nfs_fs.h index f6b90240dd41..d09db1bc9083 100644 --- a/include/linux/nfs_fs.h +++ b/include/linux/nfs_fs.h | |||
| @@ -40,7 +40,6 @@ | |||
| 40 | #ifdef __KERNEL__ | 40 | #ifdef __KERNEL__ |
| 41 | 41 | ||
| 42 | #include <linux/in.h> | 42 | #include <linux/in.h> |
| 43 | #include <linux/kref.h> | ||
| 44 | #include <linux/mm.h> | 43 | #include <linux/mm.h> |
| 45 | #include <linux/pagemap.h> | 44 | #include <linux/pagemap.h> |
| 46 | #include <linux/rbtree.h> | 45 | #include <linux/rbtree.h> |
diff --git a/include/linux/nilfs2_fs.h b/include/linux/nilfs2_fs.h index 79fec6af3f9f..ce520402e840 100644 --- a/include/linux/nilfs2_fs.h +++ b/include/linux/nilfs2_fs.h | |||
| @@ -425,15 +425,6 @@ struct nilfs_dat_entry { | |||
| 425 | }; | 425 | }; |
| 426 | 426 | ||
| 427 | /** | 427 | /** |
| 428 | * struct nilfs_dat_group_desc - block group descriptor | ||
| 429 | * @dg_nfrees: number of free virtual block numbers in block group | ||
| 430 | */ | ||
| 431 | struct nilfs_dat_group_desc { | ||
| 432 | __le32 dg_nfrees; | ||
| 433 | }; | ||
| 434 | |||
| 435 | |||
| 436 | /** | ||
| 437 | * struct nilfs_snapshot_list - snapshot list | 428 | * struct nilfs_snapshot_list - snapshot list |
| 438 | * @ssl_next: next checkpoint number on snapshot list | 429 | * @ssl_next: next checkpoint number on snapshot list |
| 439 | * @ssl_prev: previous checkpoint number on snapshot list | 430 | * @ssl_prev: previous checkpoint number on snapshot list |
diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h index da1fda8623e0..84cf1f3b7838 100644 --- a/include/linux/pci_ids.h +++ b/include/linux/pci_ids.h | |||
| @@ -379,9 +379,6 @@ | |||
| 379 | #define PCI_DEVICE_ID_ATI_IXP600_IDE 0x438c | 379 | #define PCI_DEVICE_ID_ATI_IXP600_IDE 0x438c |
| 380 | #define PCI_DEVICE_ID_ATI_IXP700_SATA 0x4390 | 380 | #define PCI_DEVICE_ID_ATI_IXP700_SATA 0x4390 |
| 381 | #define PCI_DEVICE_ID_ATI_IXP700_IDE 0x439c | 381 | #define PCI_DEVICE_ID_ATI_IXP700_IDE 0x439c |
| 382 | /* AMD SB Chipset */ | ||
| 383 | #define PCI_DEVICE_ID_AMD_SB900_IDE 0x780c | ||
| 384 | #define PCI_DEVICE_ID_AMD_SB900_SATA_IDE 0x7800 | ||
| 385 | 382 | ||
| 386 | #define PCI_VENDOR_ID_VLSI 0x1004 | 383 | #define PCI_VENDOR_ID_VLSI 0x1004 |
| 387 | #define PCI_DEVICE_ID_VLSI_82C592 0x0005 | 384 | #define PCI_DEVICE_ID_VLSI_82C592 0x0005 |
| @@ -485,6 +482,9 @@ | |||
| 485 | #define PCI_DEVICE_ID_IBM_ICOM_V2_ONE_PORT_RVX_ONE_PORT_MDM_PCIE 0x0361 | 482 | #define PCI_DEVICE_ID_IBM_ICOM_V2_ONE_PORT_RVX_ONE_PORT_MDM_PCIE 0x0361 |
| 486 | #define PCI_DEVICE_ID_IBM_ICOM_FOUR_PORT_MODEL 0x252 | 483 | #define PCI_DEVICE_ID_IBM_ICOM_FOUR_PORT_MODEL 0x252 |
| 487 | 484 | ||
| 485 | #define PCI_SUBVENDOR_ID_IBM 0x1014 | ||
| 486 | #define PCI_SUBDEVICE_ID_IBM_SATURN_SERIAL_ONE_PORT 0x03d4 | ||
| 487 | |||
| 488 | #define PCI_VENDOR_ID_UNISYS 0x1018 | 488 | #define PCI_VENDOR_ID_UNISYS 0x1018 |
| 489 | #define PCI_DEVICE_ID_UNISYS_DMA_DIRECTOR 0x001C | 489 | #define PCI_DEVICE_ID_UNISYS_DMA_DIRECTOR 0x001C |
| 490 | 490 | ||
| @@ -543,7 +543,7 @@ | |||
| 543 | #define PCI_DEVICE_ID_AMD_8131_BRIDGE 0x7450 | 543 | #define PCI_DEVICE_ID_AMD_8131_BRIDGE 0x7450 |
| 544 | #define PCI_DEVICE_ID_AMD_8131_APIC 0x7451 | 544 | #define PCI_DEVICE_ID_AMD_8131_APIC 0x7451 |
| 545 | #define PCI_DEVICE_ID_AMD_8132_BRIDGE 0x7458 | 545 | #define PCI_DEVICE_ID_AMD_8132_BRIDGE 0x7458 |
| 546 | #define PCI_DEVICE_ID_AMD_SB900_SMBUS 0x780b | 546 | #define PCI_DEVICE_ID_AMD_HUDSON2_SMBUS 0x780b |
| 547 | #define PCI_DEVICE_ID_AMD_CS5535_IDE 0x208F | 547 | #define PCI_DEVICE_ID_AMD_CS5535_IDE 0x208F |
| 548 | #define PCI_DEVICE_ID_AMD_CS5536_ISA 0x2090 | 548 | #define PCI_DEVICE_ID_AMD_CS5536_ISA 0x2090 |
| 549 | #define PCI_DEVICE_ID_AMD_CS5536_FLASH 0x2091 | 549 | #define PCI_DEVICE_ID_AMD_CS5536_FLASH 0x2091 |
| @@ -553,9 +553,10 @@ | |||
| 553 | #define PCI_DEVICE_ID_AMD_CS5536_UDC 0x2096 | 553 | #define PCI_DEVICE_ID_AMD_CS5536_UDC 0x2096 |
| 554 | #define PCI_DEVICE_ID_AMD_CS5536_UOC 0x2097 | 554 | #define PCI_DEVICE_ID_AMD_CS5536_UOC 0x2097 |
| 555 | #define PCI_DEVICE_ID_AMD_CS5536_IDE 0x209A | 555 | #define PCI_DEVICE_ID_AMD_CS5536_IDE 0x209A |
| 556 | |||
| 557 | #define PCI_DEVICE_ID_AMD_LX_VIDEO 0x2081 | 556 | #define PCI_DEVICE_ID_AMD_LX_VIDEO 0x2081 |
| 558 | #define PCI_DEVICE_ID_AMD_LX_AES 0x2082 | 557 | #define PCI_DEVICE_ID_AMD_LX_AES 0x2082 |
| 558 | #define PCI_DEVICE_ID_AMD_HUDSON2_IDE 0x780c | ||
| 559 | #define PCI_DEVICE_ID_AMD_HUDSON2_SATA_IDE 0x7800 | ||
| 559 | 560 | ||
| 560 | #define PCI_VENDOR_ID_TRIDENT 0x1023 | 561 | #define PCI_VENDOR_ID_TRIDENT 0x1023 |
| 561 | #define PCI_DEVICE_ID_TRIDENT_4DWAVE_DX 0x2000 | 562 | #define PCI_DEVICE_ID_TRIDENT_4DWAVE_DX 0x2000 |
| @@ -776,6 +777,7 @@ | |||
| 776 | #define PCI_DEVICE_ID_TI_X515 0x8036 | 777 | #define PCI_DEVICE_ID_TI_X515 0x8036 |
| 777 | #define PCI_DEVICE_ID_TI_XX12 0x8039 | 778 | #define PCI_DEVICE_ID_TI_XX12 0x8039 |
| 778 | #define PCI_DEVICE_ID_TI_XX12_FM 0x803b | 779 | #define PCI_DEVICE_ID_TI_XX12_FM 0x803b |
| 780 | #define PCI_DEVICE_ID_TI_XIO2000A 0x8231 | ||
| 779 | #define PCI_DEVICE_ID_TI_1130 0xac12 | 781 | #define PCI_DEVICE_ID_TI_1130 0xac12 |
| 780 | #define PCI_DEVICE_ID_TI_1031 0xac13 | 782 | #define PCI_DEVICE_ID_TI_1031 0xac13 |
| 781 | #define PCI_DEVICE_ID_TI_1131 0xac15 | 783 | #define PCI_DEVICE_ID_TI_1131 0xac15 |
| @@ -1954,6 +1956,8 @@ | |||
| 1954 | #define PCI_DEVICE_ID_LAVA_DSERIAL 0x0100 /* 2x 16550 */ | 1956 | #define PCI_DEVICE_ID_LAVA_DSERIAL 0x0100 /* 2x 16550 */ |
| 1955 | #define PCI_DEVICE_ID_LAVA_QUATRO_A 0x0101 /* 2x 16550, half of 4 port */ | 1957 | #define PCI_DEVICE_ID_LAVA_QUATRO_A 0x0101 /* 2x 16550, half of 4 port */ |
| 1956 | #define PCI_DEVICE_ID_LAVA_QUATRO_B 0x0102 /* 2x 16550, half of 4 port */ | 1958 | #define PCI_DEVICE_ID_LAVA_QUATRO_B 0x0102 /* 2x 16550, half of 4 port */ |
| 1959 | #define PCI_DEVICE_ID_LAVA_QUATTRO_A 0x0120 /* 2x 16550A, half of 4 port */ | ||
| 1960 | #define PCI_DEVICE_ID_LAVA_QUATTRO_B 0x0121 /* 2x 16550A, half of 4 port */ | ||
| 1957 | #define PCI_DEVICE_ID_LAVA_OCTO_A 0x0180 /* 4x 16550A, half of 8 port */ | 1961 | #define PCI_DEVICE_ID_LAVA_OCTO_A 0x0180 /* 4x 16550A, half of 8 port */ |
| 1958 | #define PCI_DEVICE_ID_LAVA_OCTO_B 0x0181 /* 4x 16550A, half of 8 port */ | 1962 | #define PCI_DEVICE_ID_LAVA_OCTO_B 0x0181 /* 4x 16550A, half of 8 port */ |
| 1959 | #define PCI_DEVICE_ID_LAVA_PORT_PLUS 0x0200 /* 2x 16650 */ | 1963 | #define PCI_DEVICE_ID_LAVA_PORT_PLUS 0x0200 /* 2x 16650 */ |
| @@ -2161,6 +2165,10 @@ | |||
| 2161 | #define PCI_DEVICE_ID_ADDIDATA_APCI7420_3 0x700D | 2165 | #define PCI_DEVICE_ID_ADDIDATA_APCI7420_3 0x700D |
| 2162 | #define PCI_DEVICE_ID_ADDIDATA_APCI7300_3 0x700E | 2166 | #define PCI_DEVICE_ID_ADDIDATA_APCI7300_3 0x700E |
| 2163 | #define PCI_DEVICE_ID_ADDIDATA_APCI7800_3 0x700F | 2167 | #define PCI_DEVICE_ID_ADDIDATA_APCI7800_3 0x700F |
| 2168 | #define PCI_DEVICE_ID_ADDIDATA_APCIe7300 0x7010 | ||
| 2169 | #define PCI_DEVICE_ID_ADDIDATA_APCIe7420 0x7011 | ||
| 2170 | #define PCI_DEVICE_ID_ADDIDATA_APCIe7500 0x7012 | ||
| 2171 | #define PCI_DEVICE_ID_ADDIDATA_APCIe7800 0x7013 | ||
| 2164 | 2172 | ||
| 2165 | #define PCI_VENDOR_ID_PDC 0x15e9 | 2173 | #define PCI_VENDOR_ID_PDC 0x15e9 |
| 2166 | 2174 | ||
diff --git a/include/linux/perf_counter.h b/include/linux/perf_counter.h index 368bd70f1d2d..7b7fbf433cff 100644 --- a/include/linux/perf_counter.h +++ b/include/linux/perf_counter.h | |||
| @@ -361,7 +361,7 @@ enum perf_event_type { | |||
| 361 | * struct perf_event_header header; | 361 | * struct perf_event_header header; |
| 362 | * u32 pid, ppid; | 362 | * u32 pid, ppid; |
| 363 | * u32 tid, ptid; | 363 | * u32 tid, ptid; |
| 364 | * { u64 time; } && PERF_SAMPLE_TIME | 364 | * u64 time; |
| 365 | * }; | 365 | * }; |
| 366 | */ | 366 | */ |
| 367 | PERF_EVENT_FORK = 7, | 367 | PERF_EVENT_FORK = 7, |
diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h index acefaf71e6dd..9e7012689a84 100644 --- a/include/linux/perf_event.h +++ b/include/linux/perf_event.h | |||
| @@ -357,7 +357,7 @@ enum perf_event_type { | |||
| 357 | * struct perf_event_header header; | 357 | * struct perf_event_header header; |
| 358 | * u32 pid, ppid; | 358 | * u32 pid, ppid; |
| 359 | * u32 tid, ptid; | 359 | * u32 tid, ptid; |
| 360 | * { u64 time; } && PERF_SAMPLE_TIME | 360 | * u64 time; |
| 361 | * }; | 361 | * }; |
| 362 | */ | 362 | */ |
| 363 | PERF_RECORD_FORK = 7, | 363 | PERF_RECORD_FORK = 7, |
| @@ -442,6 +442,7 @@ enum perf_callchain_context { | |||
| 442 | #include <linux/hrtimer.h> | 442 | #include <linux/hrtimer.h> |
| 443 | #include <linux/fs.h> | 443 | #include <linux/fs.h> |
| 444 | #include <linux/pid_namespace.h> | 444 | #include <linux/pid_namespace.h> |
| 445 | #include <linux/workqueue.h> | ||
| 445 | #include <asm/atomic.h> | 446 | #include <asm/atomic.h> |
| 446 | 447 | ||
| 447 | #define PERF_MAX_STACK_DEPTH 255 | 448 | #define PERF_MAX_STACK_DEPTH 255 |
| @@ -470,8 +471,8 @@ struct hw_perf_event { | |||
| 470 | unsigned long event_base; | 471 | unsigned long event_base; |
| 471 | int idx; | 472 | int idx; |
| 472 | }; | 473 | }; |
| 473 | union { /* software */ | 474 | struct { /* software */ |
| 474 | atomic64_t count; | 475 | s64 remaining; |
| 475 | struct hrtimer hrtimer; | 476 | struct hrtimer hrtimer; |
| 476 | }; | 477 | }; |
| 477 | }; | 478 | }; |
| @@ -513,6 +514,10 @@ struct file; | |||
| 513 | 514 | ||
| 514 | struct perf_mmap_data { | 515 | struct perf_mmap_data { |
| 515 | struct rcu_head rcu_head; | 516 | struct rcu_head rcu_head; |
| 517 | #ifdef CONFIG_PERF_USE_VMALLOC | ||
| 518 | struct work_struct work; | ||
| 519 | #endif | ||
| 520 | int data_order; | ||
| 516 | int nr_pages; /* nr of data pages */ | 521 | int nr_pages; /* nr of data pages */ |
| 517 | int writable; /* are we writable */ | 522 | int writable; /* are we writable */ |
| 518 | int nr_locked; /* nr pages mlocked */ | 523 | int nr_locked; /* nr pages mlocked */ |
diff --git a/include/linux/poll.h b/include/linux/poll.h index fa287f25138d..6673743946f7 100644 --- a/include/linux/poll.h +++ b/include/linux/poll.h | |||
| @@ -6,10 +6,10 @@ | |||
| 6 | #ifdef __KERNEL__ | 6 | #ifdef __KERNEL__ |
| 7 | 7 | ||
| 8 | #include <linux/compiler.h> | 8 | #include <linux/compiler.h> |
| 9 | #include <linux/ktime.h> | ||
| 9 | #include <linux/wait.h> | 10 | #include <linux/wait.h> |
| 10 | #include <linux/string.h> | 11 | #include <linux/string.h> |
| 11 | #include <linux/fs.h> | 12 | #include <linux/fs.h> |
| 12 | #include <linux/sched.h> | ||
| 13 | #include <asm/uaccess.h> | 13 | #include <asm/uaccess.h> |
| 14 | 14 | ||
| 15 | /* ~832 bytes of stack space used max in sys_select/sys_poll before allocating | 15 | /* ~832 bytes of stack space used max in sys_select/sys_poll before allocating |
diff --git a/include/linux/prctl.h b/include/linux/prctl.h index 931150566ade..a3baeb2c2161 100644 --- a/include/linux/prctl.h +++ b/include/linux/prctl.h | |||
| @@ -88,6 +88,18 @@ | |||
| 88 | #define PR_TASK_PERF_EVENTS_DISABLE 31 | 88 | #define PR_TASK_PERF_EVENTS_DISABLE 31 |
| 89 | #define PR_TASK_PERF_EVENTS_ENABLE 32 | 89 | #define PR_TASK_PERF_EVENTS_ENABLE 32 |
| 90 | 90 | ||
| 91 | /* | ||
| 92 | * Set early/late kill mode for hwpoison memory corruption. | ||
| 93 | * This influences when the process gets killed on a memory corruption. | ||
| 94 | */ | ||
| 91 | #define PR_MCE_KILL 33 | 95 | #define PR_MCE_KILL 33 |
| 96 | # define PR_MCE_KILL_CLEAR 0 | ||
| 97 | # define PR_MCE_KILL_SET 1 | ||
| 98 | |||
| 99 | # define PR_MCE_KILL_LATE 0 | ||
| 100 | # define PR_MCE_KILL_EARLY 1 | ||
| 101 | # define PR_MCE_KILL_DEFAULT 2 | ||
| 102 | |||
| 103 | #define PR_MCE_KILL_GET 34 | ||
| 92 | 104 | ||
| 93 | #endif /* _LINUX_PRCTL_H */ | 105 | #endif /* _LINUX_PRCTL_H */ |
diff --git a/include/linux/ramfs.h b/include/linux/ramfs.h index 37aaf2b39863..4e768dda87b0 100644 --- a/include/linux/ramfs.h +++ b/include/linux/ramfs.h | |||
| @@ -17,7 +17,7 @@ extern int ramfs_nommu_mmap(struct file *file, struct vm_area_struct *vma); | |||
| 17 | #endif | 17 | #endif |
| 18 | 18 | ||
| 19 | extern const struct file_operations ramfs_file_operations; | 19 | extern const struct file_operations ramfs_file_operations; |
| 20 | extern struct vm_operations_struct generic_file_vm_ops; | 20 | extern const struct vm_operations_struct generic_file_vm_ops; |
| 21 | extern int __init init_rootfs(void); | 21 | extern int __init init_rootfs(void); |
| 22 | 22 | ||
| 23 | #endif | 23 | #endif |
diff --git a/include/linux/rcupdate.h b/include/linux/rcupdate.h index 6fe0363724e9..3ebd0b7bcb08 100644 --- a/include/linux/rcupdate.h +++ b/include/linux/rcupdate.h | |||
| @@ -77,7 +77,7 @@ extern int rcu_scheduler_active; | |||
| 77 | #error "Unknown RCU implementation specified to kernel configuration" | 77 | #error "Unknown RCU implementation specified to kernel configuration" |
| 78 | #endif | 78 | #endif |
| 79 | 79 | ||
| 80 | #define RCU_HEAD_INIT { .next = NULL, .func = NULL } | 80 | #define RCU_HEAD_INIT { .next = NULL, .func = NULL } |
| 81 | #define RCU_HEAD(head) struct rcu_head head = RCU_HEAD_INIT | 81 | #define RCU_HEAD(head) struct rcu_head head = RCU_HEAD_INIT |
| 82 | #define INIT_RCU_HEAD(ptr) do { \ | 82 | #define INIT_RCU_HEAD(ptr) do { \ |
| 83 | (ptr)->next = NULL; (ptr)->func = NULL; \ | 83 | (ptr)->next = NULL; (ptr)->func = NULL; \ |
| @@ -129,12 +129,6 @@ static inline void rcu_read_lock(void) | |||
| 129 | rcu_read_acquire(); | 129 | rcu_read_acquire(); |
| 130 | } | 130 | } |
| 131 | 131 | ||
| 132 | /** | ||
| 133 | * rcu_read_unlock - marks the end of an RCU read-side critical section. | ||
| 134 | * | ||
| 135 | * See rcu_read_lock() for more information. | ||
| 136 | */ | ||
| 137 | |||
| 138 | /* | 132 | /* |
| 139 | * So where is rcu_write_lock()? It does not exist, as there is no | 133 | * So where is rcu_write_lock()? It does not exist, as there is no |
| 140 | * way for writers to lock out RCU readers. This is a feature, not | 134 | * way for writers to lock out RCU readers. This is a feature, not |
| @@ -144,6 +138,12 @@ static inline void rcu_read_lock(void) | |||
| 144 | * used as well. RCU does not care how the writers keep out of each | 138 | * used as well. RCU does not care how the writers keep out of each |
| 145 | * others' way, as long as they do so. | 139 | * others' way, as long as they do so. |
| 146 | */ | 140 | */ |
| 141 | |||
| 142 | /** | ||
| 143 | * rcu_read_unlock - marks the end of an RCU read-side critical section. | ||
| 144 | * | ||
| 145 | * See rcu_read_lock() for more information. | ||
| 146 | */ | ||
| 147 | static inline void rcu_read_unlock(void) | 147 | static inline void rcu_read_unlock(void) |
| 148 | { | 148 | { |
| 149 | rcu_read_release(); | 149 | rcu_read_release(); |
| @@ -196,6 +196,8 @@ static inline void rcu_read_lock_sched(void) | |||
| 196 | __acquire(RCU_SCHED); | 196 | __acquire(RCU_SCHED); |
| 197 | rcu_read_acquire(); | 197 | rcu_read_acquire(); |
| 198 | } | 198 | } |
| 199 | |||
| 200 | /* Used by lockdep and tracing: cannot be traced, cannot call lockdep. */ | ||
| 199 | static inline notrace void rcu_read_lock_sched_notrace(void) | 201 | static inline notrace void rcu_read_lock_sched_notrace(void) |
| 200 | { | 202 | { |
| 201 | preempt_disable_notrace(); | 203 | preempt_disable_notrace(); |
| @@ -213,6 +215,8 @@ static inline void rcu_read_unlock_sched(void) | |||
| 213 | __release(RCU_SCHED); | 215 | __release(RCU_SCHED); |
| 214 | preempt_enable(); | 216 | preempt_enable(); |
| 215 | } | 217 | } |
| 218 | |||
| 219 | /* Used by lockdep and tracing: cannot be traced, cannot call lockdep. */ | ||
| 216 | static inline notrace void rcu_read_unlock_sched_notrace(void) | 220 | static inline notrace void rcu_read_unlock_sched_notrace(void) |
| 217 | { | 221 | { |
| 218 | __release(RCU_SCHED); | 222 | __release(RCU_SCHED); |
diff --git a/include/linux/rcutree.h b/include/linux/rcutree.h index 37682770e9d2..9642c6bcb399 100644 --- a/include/linux/rcutree.h +++ b/include/linux/rcutree.h | |||
| @@ -30,10 +30,14 @@ | |||
| 30 | #ifndef __LINUX_RCUTREE_H | 30 | #ifndef __LINUX_RCUTREE_H |
| 31 | #define __LINUX_RCUTREE_H | 31 | #define __LINUX_RCUTREE_H |
| 32 | 32 | ||
| 33 | struct notifier_block; | ||
| 34 | |||
| 33 | extern void rcu_sched_qs(int cpu); | 35 | extern void rcu_sched_qs(int cpu); |
| 34 | extern void rcu_bh_qs(int cpu); | 36 | extern void rcu_bh_qs(int cpu); |
| 35 | 37 | extern int rcu_cpu_notify(struct notifier_block *self, | |
| 38 | unsigned long action, void *hcpu); | ||
| 36 | extern int rcu_needs_cpu(int cpu); | 39 | extern int rcu_needs_cpu(int cpu); |
| 40 | extern int rcu_expedited_torture_stats(char *page); | ||
| 37 | 41 | ||
| 38 | #ifdef CONFIG_TREE_PREEMPT_RCU | 42 | #ifdef CONFIG_TREE_PREEMPT_RCU |
| 39 | 43 | ||
| @@ -72,11 +76,7 @@ static inline void __rcu_read_unlock_bh(void) | |||
| 72 | 76 | ||
| 73 | extern void call_rcu_sched(struct rcu_head *head, | 77 | extern void call_rcu_sched(struct rcu_head *head, |
| 74 | void (*func)(struct rcu_head *rcu)); | 78 | void (*func)(struct rcu_head *rcu)); |
| 75 | 79 | extern void synchronize_rcu_expedited(void); | |
| 76 | static inline void synchronize_rcu_expedited(void) | ||
| 77 | { | ||
| 78 | synchronize_sched_expedited(); | ||
| 79 | } | ||
| 80 | 80 | ||
| 81 | static inline void synchronize_rcu_bh_expedited(void) | 81 | static inline void synchronize_rcu_bh_expedited(void) |
| 82 | { | 82 | { |
| @@ -85,16 +85,11 @@ static inline void synchronize_rcu_bh_expedited(void) | |||
| 85 | 85 | ||
| 86 | extern void __rcu_init(void); | 86 | extern void __rcu_init(void); |
| 87 | extern void rcu_check_callbacks(int cpu, int user); | 87 | extern void rcu_check_callbacks(int cpu, int user); |
| 88 | extern void rcu_restart_cpu(int cpu); | ||
| 89 | 88 | ||
| 90 | extern long rcu_batches_completed(void); | 89 | extern long rcu_batches_completed(void); |
| 91 | extern long rcu_batches_completed_bh(void); | 90 | extern long rcu_batches_completed_bh(void); |
| 92 | extern long rcu_batches_completed_sched(void); | 91 | extern long rcu_batches_completed_sched(void); |
| 93 | 92 | ||
| 94 | static inline void rcu_init_sched(void) | ||
| 95 | { | ||
| 96 | } | ||
| 97 | |||
| 98 | #ifdef CONFIG_NO_HZ | 93 | #ifdef CONFIG_NO_HZ |
| 99 | void rcu_enter_nohz(void); | 94 | void rcu_enter_nohz(void); |
| 100 | void rcu_exit_nohz(void); | 95 | void rcu_exit_nohz(void); |
| @@ -107,7 +102,7 @@ static inline void rcu_exit_nohz(void) | |||
| 107 | } | 102 | } |
| 108 | #endif /* CONFIG_NO_HZ */ | 103 | #endif /* CONFIG_NO_HZ */ |
| 109 | 104 | ||
| 110 | /* A context switch is a grace period for rcutree. */ | 105 | /* A context switch is a grace period for RCU-sched and RCU-bh. */ |
| 111 | static inline int rcu_blocking_is_gp(void) | 106 | static inline int rcu_blocking_is_gp(void) |
| 112 | { | 107 | { |
| 113 | return num_online_cpus() == 1; | 108 | return num_online_cpus() == 1; |
diff --git a/include/linux/res_counter.h b/include/linux/res_counter.h index 731af71cddc9..fcb9884df618 100644 --- a/include/linux/res_counter.h +++ b/include/linux/res_counter.h | |||
| @@ -114,8 +114,7 @@ void res_counter_init(struct res_counter *counter, struct res_counter *parent); | |||
| 114 | int __must_check res_counter_charge_locked(struct res_counter *counter, | 114 | int __must_check res_counter_charge_locked(struct res_counter *counter, |
| 115 | unsigned long val); | 115 | unsigned long val); |
| 116 | int __must_check res_counter_charge(struct res_counter *counter, | 116 | int __must_check res_counter_charge(struct res_counter *counter, |
| 117 | unsigned long val, struct res_counter **limit_fail_at, | 117 | unsigned long val, struct res_counter **limit_fail_at); |
| 118 | struct res_counter **soft_limit_at); | ||
| 119 | 118 | ||
| 120 | /* | 119 | /* |
| 121 | * uncharge - tell that some portion of the resource is released | 120 | * uncharge - tell that some portion of the resource is released |
| @@ -128,8 +127,7 @@ int __must_check res_counter_charge(struct res_counter *counter, | |||
| 128 | */ | 127 | */ |
| 129 | 128 | ||
| 130 | void res_counter_uncharge_locked(struct res_counter *counter, unsigned long val); | 129 | void res_counter_uncharge_locked(struct res_counter *counter, unsigned long val); |
| 131 | void res_counter_uncharge(struct res_counter *counter, unsigned long val, | 130 | void res_counter_uncharge(struct res_counter *counter, unsigned long val); |
| 132 | bool *was_soft_limit_excess); | ||
| 133 | 131 | ||
| 134 | static inline bool res_counter_limit_check_locked(struct res_counter *cnt) | 132 | static inline bool res_counter_limit_check_locked(struct res_counter *cnt) |
| 135 | { | 133 | { |
diff --git a/include/linux/serial_core.h b/include/linux/serial_core.h index fe661afe0713..db532ce288be 100644 --- a/include/linux/serial_core.h +++ b/include/linux/serial_core.h | |||
| @@ -176,6 +176,9 @@ | |||
| 176 | /* Qualcomm MSM SoCs */ | 176 | /* Qualcomm MSM SoCs */ |
| 177 | #define PORT_MSM 88 | 177 | #define PORT_MSM 88 |
| 178 | 178 | ||
| 179 | /* BCM63xx family SoCs */ | ||
| 180 | #define PORT_BCM63XX 89 | ||
| 181 | |||
| 179 | #ifdef __KERNEL__ | 182 | #ifdef __KERNEL__ |
| 180 | 183 | ||
| 181 | #include <linux/compiler.h> | 184 | #include <linux/compiler.h> |
diff --git a/include/linux/spi/lms283gf05.h b/include/linux/spi/lms283gf05.h new file mode 100644 index 000000000000..555d254e6606 --- /dev/null +++ b/include/linux/spi/lms283gf05.h | |||
| @@ -0,0 +1,28 @@ | |||
| 1 | /* | ||
| 2 | * lms283gf05.h - Platform glue for Samsung LMS283GF05 LCD | ||
| 3 | * | ||
| 4 | * Copyright (C) 2009 Marek Vasut <marek.vasut@gmail.com> | ||
| 5 | * | ||
| 6 | * This program is free software; you can redistribute it and/or modify | ||
| 7 | * it under the terms of the GNU General Public License version 2 as | ||
| 8 | * published by the Free Software Foundation. | ||
| 9 | * | ||
| 10 | * This program is distributed in the hope that it will be useful, | ||
| 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 13 | * GNU General Public License for more details. | ||
| 14 | * | ||
| 15 | * You should have received a copy of the GNU General Public License | ||
| 16 | * along with this program; if not, write to the Free Software | ||
| 17 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
| 18 | */ | ||
| 19 | |||
| 20 | #ifndef _INCLUDE_LINUX_SPI_LMS283GF05_H_ | ||
| 21 | #define _INCLUDE_LINUX_SPI_LMS283GF05_H_ | ||
| 22 | |||
| 23 | struct lms283gf05_pdata { | ||
| 24 | unsigned long reset_gpio; | ||
| 25 | bool reset_inverted; | ||
| 26 | }; | ||
| 27 | |||
| 28 | #endif /* _INCLUDE_LINUX_SPI_LMS283GF05_H_ */ | ||
diff --git a/include/linux/string.h b/include/linux/string.h index 489019ef1694..b8508868d5ad 100644 --- a/include/linux/string.h +++ b/include/linux/string.h | |||
| @@ -62,7 +62,7 @@ extern char * strnchr(const char *, size_t, int); | |||
| 62 | #ifndef __HAVE_ARCH_STRRCHR | 62 | #ifndef __HAVE_ARCH_STRRCHR |
| 63 | extern char * strrchr(const char *,int); | 63 | extern char * strrchr(const char *,int); |
| 64 | #endif | 64 | #endif |
| 65 | extern char * strstrip(char *); | 65 | extern char * __must_check strstrip(char *); |
| 66 | #ifndef __HAVE_ARCH_STRSTR | 66 | #ifndef __HAVE_ARCH_STRSTR |
| 67 | extern char * strstr(const char *,const char *); | 67 | extern char * strstr(const char *,const char *); |
| 68 | #endif | 68 | #endif |
diff --git a/include/linux/suspend.h b/include/linux/suspend.h index cd15df6c63cd..5e781d824e6d 100644 --- a/include/linux/suspend.h +++ b/include/linux/suspend.h | |||
| @@ -301,6 +301,8 @@ static inline int unregister_pm_notifier(struct notifier_block *nb) | |||
| 301 | #define pm_notifier(fn, pri) do { (void)(fn); } while (0) | 301 | #define pm_notifier(fn, pri) do { (void)(fn); } while (0) |
| 302 | #endif /* !CONFIG_PM_SLEEP */ | 302 | #endif /* !CONFIG_PM_SLEEP */ |
| 303 | 303 | ||
| 304 | extern struct mutex pm_mutex; | ||
| 305 | |||
| 304 | #ifndef CONFIG_HIBERNATION | 306 | #ifndef CONFIG_HIBERNATION |
| 305 | static inline void register_nosave_region(unsigned long b, unsigned long e) | 307 | static inline void register_nosave_region(unsigned long b, unsigned long e) |
| 306 | { | 308 | { |
| @@ -308,8 +310,23 @@ static inline void register_nosave_region(unsigned long b, unsigned long e) | |||
| 308 | static inline void register_nosave_region_late(unsigned long b, unsigned long e) | 310 | static inline void register_nosave_region_late(unsigned long b, unsigned long e) |
| 309 | { | 311 | { |
| 310 | } | 312 | } |
| 311 | #endif | ||
| 312 | 313 | ||
| 313 | extern struct mutex pm_mutex; | 314 | static inline void lock_system_sleep(void) {} |
| 315 | static inline void unlock_system_sleep(void) {} | ||
| 316 | |||
| 317 | #else | ||
| 318 | |||
| 319 | /* Let some subsystems like memory hotadd exclude hibernation */ | ||
| 320 | |||
| 321 | static inline void lock_system_sleep(void) | ||
| 322 | { | ||
| 323 | mutex_lock(&pm_mutex); | ||
| 324 | } | ||
| 325 | |||
| 326 | static inline void unlock_system_sleep(void) | ||
| 327 | { | ||
| 328 | mutex_unlock(&pm_mutex); | ||
| 329 | } | ||
| 330 | #endif | ||
| 314 | 331 | ||
| 315 | #endif /* _LINUX_SUSPEND_H */ | 332 | #endif /* _LINUX_SUSPEND_H */ |
diff --git a/include/linux/topology.h b/include/linux/topology.h index fc0bf3edeb67..57e63579bfdd 100644 --- a/include/linux/topology.h +++ b/include/linux/topology.h | |||
| @@ -129,7 +129,7 @@ int arch_update_cpu_topology(void); | |||
| 129 | | 1*SD_BALANCE_FORK \ | 129 | | 1*SD_BALANCE_FORK \ |
| 130 | | 0*SD_BALANCE_WAKE \ | 130 | | 0*SD_BALANCE_WAKE \ |
| 131 | | 1*SD_WAKE_AFFINE \ | 131 | | 1*SD_WAKE_AFFINE \ |
| 132 | | 1*SD_PREFER_LOCAL \ | 132 | | 0*SD_PREFER_LOCAL \ |
| 133 | | 0*SD_SHARE_CPUPOWER \ | 133 | | 0*SD_SHARE_CPUPOWER \ |
| 134 | | 1*SD_SHARE_PKG_RESOURCES \ | 134 | | 1*SD_SHARE_PKG_RESOURCES \ |
| 135 | | 0*SD_SERIALIZE \ | 135 | | 0*SD_SERIALIZE \ |
| @@ -162,7 +162,7 @@ int arch_update_cpu_topology(void); | |||
| 162 | | 1*SD_BALANCE_FORK \ | 162 | | 1*SD_BALANCE_FORK \ |
| 163 | | 0*SD_BALANCE_WAKE \ | 163 | | 0*SD_BALANCE_WAKE \ |
| 164 | | 1*SD_WAKE_AFFINE \ | 164 | | 1*SD_WAKE_AFFINE \ |
| 165 | | 1*SD_PREFER_LOCAL \ | 165 | | 0*SD_PREFER_LOCAL \ |
| 166 | | 0*SD_SHARE_CPUPOWER \ | 166 | | 0*SD_SHARE_CPUPOWER \ |
| 167 | | 0*SD_SHARE_PKG_RESOURCES \ | 167 | | 0*SD_SHARE_PKG_RESOURCES \ |
| 168 | | 0*SD_SERIALIZE \ | 168 | | 0*SD_SERIALIZE \ |
diff --git a/include/linux/trace_seq.h b/include/linux/trace_seq.h index c134dd1fe6b6..09077f6ed128 100644 --- a/include/linux/trace_seq.h +++ b/include/linux/trace_seq.h | |||
| @@ -7,7 +7,7 @@ | |||
| 7 | 7 | ||
| 8 | /* | 8 | /* |
| 9 | * Trace sequences are used to allow a function to call several other functions | 9 | * Trace sequences are used to allow a function to call several other functions |
| 10 | * to create a string of data to use (up to a max of PAGE_SIZE. | 10 | * to create a string of data to use (up to a max of PAGE_SIZE). |
| 11 | */ | 11 | */ |
| 12 | 12 | ||
| 13 | struct trace_seq { | 13 | struct trace_seq { |
diff --git a/include/linux/tracepoint.h b/include/linux/tracepoint.h index 660a9de96f81..2aac8a83e89b 100644 --- a/include/linux/tracepoint.h +++ b/include/linux/tracepoint.h | |||
| @@ -36,7 +36,7 @@ struct tracepoint { | |||
| 36 | #ifndef DECLARE_TRACE | 36 | #ifndef DECLARE_TRACE |
| 37 | 37 | ||
| 38 | #define TP_PROTO(args...) args | 38 | #define TP_PROTO(args...) args |
| 39 | #define TP_ARGS(args...) args | 39 | #define TP_ARGS(args...) args |
| 40 | 40 | ||
| 41 | #ifdef CONFIG_TRACEPOINTS | 41 | #ifdef CONFIG_TRACEPOINTS |
| 42 | 42 | ||
diff --git a/include/linux/tty_driver.h b/include/linux/tty_driver.h index 3566129384a4..b08677982525 100644 --- a/include/linux/tty_driver.h +++ b/include/linux/tty_driver.h | |||
| @@ -45,8 +45,16 @@ | |||
| 45 | * | 45 | * |
| 46 | * void (*shutdown)(struct tty_struct * tty); | 46 | * void (*shutdown)(struct tty_struct * tty); |
| 47 | * | 47 | * |
| 48 | * This routine is called when a particular tty device is closed for | 48 | * This routine is called synchronously when a particular tty device |
| 49 | * the last time freeing up the resources. | 49 | * is closed for the last time freeing up the resources. |
| 50 | * | ||
| 51 | * | ||
| 52 | * void (*cleanup)(struct tty_struct * tty); | ||
| 53 | * | ||
| 54 | * This routine is called asynchronously when a particular tty device | ||
| 55 | * is closed for the last time freeing up the resources. This is | ||
| 56 | * actually the second part of shutdown for routines that might sleep. | ||
| 57 | * | ||
| 50 | * | 58 | * |
| 51 | * int (*write)(struct tty_struct * tty, | 59 | * int (*write)(struct tty_struct * tty, |
| 52 | * const unsigned char *buf, int count); | 60 | * const unsigned char *buf, int count); |
| @@ -233,6 +241,7 @@ struct tty_operations { | |||
| 233 | int (*open)(struct tty_struct * tty, struct file * filp); | 241 | int (*open)(struct tty_struct * tty, struct file * filp); |
| 234 | void (*close)(struct tty_struct * tty, struct file * filp); | 242 | void (*close)(struct tty_struct * tty, struct file * filp); |
| 235 | void (*shutdown)(struct tty_struct *tty); | 243 | void (*shutdown)(struct tty_struct *tty); |
| 244 | void (*cleanup)(struct tty_struct *tty); | ||
| 236 | int (*write)(struct tty_struct * tty, | 245 | int (*write)(struct tty_struct * tty, |
| 237 | const unsigned char *buf, int count); | 246 | const unsigned char *buf, int count); |
| 238 | int (*put_char)(struct tty_struct *tty, unsigned char ch); | 247 | int (*put_char)(struct tty_struct *tty, unsigned char ch); |
diff --git a/include/linux/usb/serial.h b/include/linux/usb/serial.h index c17eb64d7213..ce911ebf91e8 100644 --- a/include/linux/usb/serial.h +++ b/include/linux/usb/serial.h | |||
| @@ -150,6 +150,7 @@ struct usb_serial { | |||
| 150 | struct usb_interface *interface; | 150 | struct usb_interface *interface; |
| 151 | unsigned char disconnected:1; | 151 | unsigned char disconnected:1; |
| 152 | unsigned char suspending:1; | 152 | unsigned char suspending:1; |
| 153 | unsigned char attached:1; | ||
| 153 | unsigned char minor; | 154 | unsigned char minor; |
| 154 | unsigned char num_ports; | 155 | unsigned char num_ports; |
| 155 | unsigned char num_port_pointers; | 156 | unsigned char num_port_pointers; |
diff --git a/include/linux/virtio_9p.h b/include/linux/virtio_9p.h index ea7226a45acb..095e10d148b4 100644 --- a/include/linux/virtio_9p.h +++ b/include/linux/virtio_9p.h | |||
| @@ -2,6 +2,7 @@ | |||
| 2 | #define _LINUX_VIRTIO_9P_H | 2 | #define _LINUX_VIRTIO_9P_H |
| 3 | /* This header is BSD licensed so anyone can use the definitions to implement | 3 | /* This header is BSD licensed so anyone can use the definitions to implement |
| 4 | * compatible drivers/servers. */ | 4 | * compatible drivers/servers. */ |
| 5 | #include <linux/virtio_ids.h> | ||
| 5 | #include <linux/virtio_config.h> | 6 | #include <linux/virtio_config.h> |
| 6 | 7 | ||
| 7 | /* Maximum number of virtio channels per partition (1 for now) */ | 8 | /* Maximum number of virtio channels per partition (1 for now) */ |
diff --git a/include/linux/virtio_balloon.h b/include/linux/virtio_balloon.h index 09d730085060..1418f048cb34 100644 --- a/include/linux/virtio_balloon.h +++ b/include/linux/virtio_balloon.h | |||
| @@ -2,6 +2,7 @@ | |||
| 2 | #define _LINUX_VIRTIO_BALLOON_H | 2 | #define _LINUX_VIRTIO_BALLOON_H |
| 3 | /* This header is BSD licensed so anyone can use the definitions to implement | 3 | /* This header is BSD licensed so anyone can use the definitions to implement |
| 4 | * compatible drivers/servers. */ | 4 | * compatible drivers/servers. */ |
| 5 | #include <linux/virtio_ids.h> | ||
| 5 | #include <linux/virtio_config.h> | 6 | #include <linux/virtio_config.h> |
| 6 | 7 | ||
| 7 | /* The feature bitmap for virtio balloon */ | 8 | /* The feature bitmap for virtio balloon */ |
diff --git a/include/linux/virtio_blk.h b/include/linux/virtio_blk.h index 15cb666581d7..fd294c56d571 100644 --- a/include/linux/virtio_blk.h +++ b/include/linux/virtio_blk.h | |||
| @@ -3,6 +3,7 @@ | |||
| 3 | /* This header is BSD licensed so anyone can use the definitions to implement | 3 | /* This header is BSD licensed so anyone can use the definitions to implement |
| 4 | * compatible drivers/servers. */ | 4 | * compatible drivers/servers. */ |
| 5 | #include <linux/types.h> | 5 | #include <linux/types.h> |
| 6 | #include <linux/virtio_ids.h> | ||
| 6 | #include <linux/virtio_config.h> | 7 | #include <linux/virtio_config.h> |
| 7 | 8 | ||
| 8 | /* Feature bits */ | 9 | /* Feature bits */ |
| @@ -13,11 +14,8 @@ | |||
| 13 | #define VIRTIO_BLK_F_RO 5 /* Disk is read-only */ | 14 | #define VIRTIO_BLK_F_RO 5 /* Disk is read-only */ |
| 14 | #define VIRTIO_BLK_F_BLK_SIZE 6 /* Block size of disk is available*/ | 15 | #define VIRTIO_BLK_F_BLK_SIZE 6 /* Block size of disk is available*/ |
| 15 | #define VIRTIO_BLK_F_SCSI 7 /* Supports scsi command passthru */ | 16 | #define VIRTIO_BLK_F_SCSI 7 /* Supports scsi command passthru */ |
| 16 | #define VIRTIO_BLK_F_IDENTIFY 8 /* ATA IDENTIFY supported */ | ||
| 17 | #define VIRTIO_BLK_F_FLUSH 9 /* Cache flush command support */ | 17 | #define VIRTIO_BLK_F_FLUSH 9 /* Cache flush command support */ |
| 18 | 18 | ||
| 19 | #define VIRTIO_BLK_ID_BYTES (sizeof(__u16[256])) /* IDENTIFY DATA */ | ||
| 20 | |||
| 21 | struct virtio_blk_config { | 19 | struct virtio_blk_config { |
| 22 | /* The capacity (in 512-byte sectors). */ | 20 | /* The capacity (in 512-byte sectors). */ |
| 23 | __u64 capacity; | 21 | __u64 capacity; |
| @@ -33,7 +31,6 @@ struct virtio_blk_config { | |||
| 33 | } geometry; | 31 | } geometry; |
| 34 | /* block size of device (if VIRTIO_BLK_F_BLK_SIZE) */ | 32 | /* block size of device (if VIRTIO_BLK_F_BLK_SIZE) */ |
| 35 | __u32 blk_size; | 33 | __u32 blk_size; |
| 36 | __u8 identify[VIRTIO_BLK_ID_BYTES]; | ||
| 37 | } __attribute__((packed)); | 34 | } __attribute__((packed)); |
| 38 | 35 | ||
| 39 | /* | 36 | /* |
diff --git a/include/linux/virtio_console.h b/include/linux/virtio_console.h index b5f519806014..fe885174cc1f 100644 --- a/include/linux/virtio_console.h +++ b/include/linux/virtio_console.h | |||
| @@ -1,6 +1,7 @@ | |||
| 1 | #ifndef _LINUX_VIRTIO_CONSOLE_H | 1 | #ifndef _LINUX_VIRTIO_CONSOLE_H |
| 2 | #define _LINUX_VIRTIO_CONSOLE_H | 2 | #define _LINUX_VIRTIO_CONSOLE_H |
| 3 | #include <linux/types.h> | 3 | #include <linux/types.h> |
| 4 | #include <linux/virtio_ids.h> | ||
| 4 | #include <linux/virtio_config.h> | 5 | #include <linux/virtio_config.h> |
| 5 | /* This header, excluding the #ifdef __KERNEL__ part, is BSD licensed so | 6 | /* This header, excluding the #ifdef __KERNEL__ part, is BSD licensed so |
| 6 | * anyone can use the definitions to implement compatible drivers/servers. */ | 7 | * anyone can use the definitions to implement compatible drivers/servers. */ |
diff --git a/include/linux/virtio_net.h b/include/linux/virtio_net.h index 1f41734bbb77..085e42298ce5 100644 --- a/include/linux/virtio_net.h +++ b/include/linux/virtio_net.h | |||
| @@ -3,6 +3,7 @@ | |||
| 3 | /* This header is BSD licensed so anyone can use the definitions to implement | 3 | /* This header is BSD licensed so anyone can use the definitions to implement |
| 4 | * compatible drivers/servers. */ | 4 | * compatible drivers/servers. */ |
| 5 | #include <linux/types.h> | 5 | #include <linux/types.h> |
| 6 | #include <linux/virtio_ids.h> | ||
| 6 | #include <linux/virtio_config.h> | 7 | #include <linux/virtio_config.h> |
| 7 | #include <linux/if_ether.h> | 8 | #include <linux/if_ether.h> |
| 8 | 9 | ||
diff --git a/include/linux/virtio_rng.h b/include/linux/virtio_rng.h index 48121c3c434b..c4d5de896f0c 100644 --- a/include/linux/virtio_rng.h +++ b/include/linux/virtio_rng.h | |||
| @@ -2,6 +2,7 @@ | |||
| 2 | #define _LINUX_VIRTIO_RNG_H | 2 | #define _LINUX_VIRTIO_RNG_H |
| 3 | /* This header is BSD licensed so anyone can use the definitions to implement | 3 | /* This header is BSD licensed so anyone can use the definitions to implement |
| 4 | * compatible drivers/servers. */ | 4 | * compatible drivers/servers. */ |
| 5 | #include <linux/virtio_ids.h> | ||
| 5 | #include <linux/virtio_config.h> | 6 | #include <linux/virtio_config.h> |
| 6 | 7 | ||
| 7 | #endif /* _LINUX_VIRTIO_RNG_H */ | 8 | #endif /* _LINUX_VIRTIO_RNG_H */ |
diff --git a/include/linux/workqueue.h b/include/linux/workqueue.h index 7ef0c7b94f31..cf24c20de9e4 100644 --- a/include/linux/workqueue.h +++ b/include/linux/workqueue.h | |||
| @@ -207,6 +207,7 @@ extern int queue_delayed_work_on(int cpu, struct workqueue_struct *wq, | |||
| 207 | 207 | ||
| 208 | extern void flush_workqueue(struct workqueue_struct *wq); | 208 | extern void flush_workqueue(struct workqueue_struct *wq); |
| 209 | extern void flush_scheduled_work(void); | 209 | extern void flush_scheduled_work(void); |
| 210 | extern void flush_delayed_work(struct delayed_work *work); | ||
| 210 | 211 | ||
| 211 | extern int schedule_work(struct work_struct *work); | 212 | extern int schedule_work(struct work_struct *work); |
| 212 | extern int schedule_work_on(int cpu, struct work_struct *work); | 213 | extern int schedule_work_on(int cpu, struct work_struct *work); |
diff --git a/include/net/9p/client.h b/include/net/9p/client.h index e26812274b75..fb00b329f0d3 100644 --- a/include/net/9p/client.h +++ b/include/net/9p/client.h | |||
| @@ -159,8 +159,7 @@ struct p9_client { | |||
| 159 | * @qid: the &p9_qid server identifier this handle points to | 159 | * @qid: the &p9_qid server identifier this handle points to |
| 160 | * @iounit: the server reported maximum transaction size for this file | 160 | * @iounit: the server reported maximum transaction size for this file |
| 161 | * @uid: the numeric uid of the local user who owns this handle | 161 | * @uid: the numeric uid of the local user who owns this handle |
| 162 | * @aux: transport specific information (unused?) | 162 | * @rdir: readdir accounting structure (allocated on demand) |
| 163 | * @rdir_fpos: tracks offset of file position when reading directory contents | ||
| 164 | * @flist: per-client-instance fid tracking | 163 | * @flist: per-client-instance fid tracking |
| 165 | * @dlist: per-dentry fid tracking | 164 | * @dlist: per-dentry fid tracking |
| 166 | * | 165 | * |
| @@ -174,9 +173,9 @@ struct p9_fid { | |||
| 174 | struct p9_qid qid; | 173 | struct p9_qid qid; |
| 175 | u32 iounit; | 174 | u32 iounit; |
| 176 | uid_t uid; | 175 | uid_t uid; |
| 177 | void *aux; | ||
| 178 | 176 | ||
| 179 | int rdir_fpos; | 177 | void *rdir; |
| 178 | |||
| 180 | struct list_head flist; | 179 | struct list_head flist; |
| 181 | struct list_head dlist; /* list of all fids attached to a dentry */ | 180 | struct list_head dlist; /* list of all fids attached to a dentry */ |
| 182 | }; | 181 | }; |
diff --git a/include/pcmcia/ss.h b/include/pcmcia/ss.h index 9a3b49865173..e0f6feb8588c 100644 --- a/include/pcmcia/ss.h +++ b/include/pcmcia/ss.h | |||
| @@ -262,6 +262,8 @@ struct pcmcia_socket { | |||
| 262 | struct device dev; | 262 | struct device dev; |
| 263 | /* data internal to the socket driver */ | 263 | /* data internal to the socket driver */ |
| 264 | void *driver_data; | 264 | void *driver_data; |
| 265 | /* status of the card during resume from a system sleep state */ | ||
| 266 | int resume_status; | ||
| 265 | }; | 267 | }; |
| 266 | 268 | ||
| 267 | 269 | ||
| @@ -279,7 +281,9 @@ extern struct pccard_resource_ops pccard_iodyn_ops; | |||
| 279 | extern struct pccard_resource_ops pccard_nonstatic_ops; | 281 | extern struct pccard_resource_ops pccard_nonstatic_ops; |
| 280 | 282 | ||
| 281 | /* socket drivers are expected to use these callbacks in their .drv struct */ | 283 | /* socket drivers are expected to use these callbacks in their .drv struct */ |
| 282 | extern int pcmcia_socket_dev_suspend(struct device *dev, pm_message_t state); | 284 | extern int pcmcia_socket_dev_suspend(struct device *dev); |
| 285 | extern void pcmcia_socket_dev_early_resume(struct device *dev); | ||
| 286 | extern void pcmcia_socket_dev_late_resume(struct device *dev); | ||
| 283 | extern int pcmcia_socket_dev_resume(struct device *dev); | 287 | extern int pcmcia_socket_dev_resume(struct device *dev); |
| 284 | 288 | ||
| 285 | /* socket drivers use this callback in their IRQ handler */ | 289 | /* socket drivers use this callback in their IRQ handler */ |
diff --git a/include/scsi/libiscsi.h b/include/scsi/libiscsi.h index 887e57e3e223..a72edd4eceec 100644 --- a/include/scsi/libiscsi.h +++ b/include/scsi/libiscsi.h | |||
| @@ -303,6 +303,7 @@ struct iscsi_session { | |||
| 303 | int cmds_max; /* size of cmds array */ | 303 | int cmds_max; /* size of cmds array */ |
| 304 | struct iscsi_task **cmds; /* Original Cmds arr */ | 304 | struct iscsi_task **cmds; /* Original Cmds arr */ |
| 305 | struct iscsi_pool cmdpool; /* PDU's pool */ | 305 | struct iscsi_pool cmdpool; /* PDU's pool */ |
| 306 | void *dd_data; /* LLD private data */ | ||
| 306 | }; | 307 | }; |
| 307 | 308 | ||
| 308 | enum { | 309 | enum { |
| @@ -363,7 +364,7 @@ extern int iscsi_target_alloc(struct scsi_target *starget); | |||
| 363 | */ | 364 | */ |
| 364 | extern struct iscsi_cls_session * | 365 | extern struct iscsi_cls_session * |
| 365 | iscsi_session_setup(struct iscsi_transport *, struct Scsi_Host *shost, | 366 | iscsi_session_setup(struct iscsi_transport *, struct Scsi_Host *shost, |
| 366 | uint16_t, int, uint32_t, unsigned int); | 367 | uint16_t, int, int, uint32_t, unsigned int); |
| 367 | extern void iscsi_session_teardown(struct iscsi_cls_session *); | 368 | extern void iscsi_session_teardown(struct iscsi_cls_session *); |
| 368 | extern void iscsi_session_recovery_timedout(struct iscsi_cls_session *); | 369 | extern void iscsi_session_recovery_timedout(struct iscsi_cls_session *); |
| 369 | extern int iscsi_set_param(struct iscsi_cls_conn *cls_conn, | 370 | extern int iscsi_set_param(struct iscsi_cls_conn *cls_conn, |
diff --git a/include/scsi/scsi.h b/include/scsi/scsi.h index 084478e14d24..34c46ab5c31b 100644 --- a/include/scsi/scsi.h +++ b/include/scsi/scsi.h | |||
| @@ -129,6 +129,9 @@ struct scsi_cmnd; | |||
| 129 | #define MI_REPORT_TARGET_PGS 0x0a | 129 | #define MI_REPORT_TARGET_PGS 0x0a |
| 130 | /* values for maintenance out */ | 130 | /* values for maintenance out */ |
| 131 | #define MO_SET_TARGET_PGS 0x0a | 131 | #define MO_SET_TARGET_PGS 0x0a |
| 132 | /* values for variable length command */ | ||
| 133 | #define READ_32 0x09 | ||
| 134 | #define WRITE_32 0x0b | ||
| 132 | 135 | ||
| 133 | /* Values for T10/04-262r7 */ | 136 | /* Values for T10/04-262r7 */ |
| 134 | #define ATA_16 0x85 /* 16-byte pass-thru */ | 137 | #define ATA_16 0x85 /* 16-byte pass-thru */ |
diff --git a/include/scsi/scsi_cmnd.h b/include/scsi/scsi_cmnd.h index 3878d1dc7f59..a5e885a111df 100644 --- a/include/scsi/scsi_cmnd.h +++ b/include/scsi/scsi_cmnd.h | |||
| @@ -229,10 +229,6 @@ enum scsi_prot_operations { | |||
| 229 | /* OS-HBA: Protected, HBA-Target: Protected */ | 229 | /* OS-HBA: Protected, HBA-Target: Protected */ |
| 230 | SCSI_PROT_READ_PASS, | 230 | SCSI_PROT_READ_PASS, |
| 231 | SCSI_PROT_WRITE_PASS, | 231 | SCSI_PROT_WRITE_PASS, |
| 232 | |||
| 233 | /* OS-HBA: Protected, HBA-Target: Protected, checksum conversion */ | ||
| 234 | SCSI_PROT_READ_CONVERT, | ||
| 235 | SCSI_PROT_WRITE_CONVERT, | ||
| 236 | }; | 232 | }; |
| 237 | 233 | ||
| 238 | static inline void scsi_set_prot_op(struct scsi_cmnd *scmd, unsigned char op) | 234 | static inline void scsi_set_prot_op(struct scsi_cmnd *scmd, unsigned char op) |
diff --git a/include/scsi/scsi_host.h b/include/scsi/scsi_host.h index b62a097b3ecb..47941fc5aba7 100644 --- a/include/scsi/scsi_host.h +++ b/include/scsi/scsi_host.h | |||
| @@ -797,24 +797,24 @@ static inline unsigned int scsi_host_get_prot(struct Scsi_Host *shost) | |||
| 797 | 797 | ||
| 798 | static inline unsigned int scsi_host_dif_capable(struct Scsi_Host *shost, unsigned int target_type) | 798 | static inline unsigned int scsi_host_dif_capable(struct Scsi_Host *shost, unsigned int target_type) |
| 799 | { | 799 | { |
| 800 | switch (target_type) { | 800 | static unsigned char cap[] = { 0, |
| 801 | case 1: return shost->prot_capabilities & SHOST_DIF_TYPE1_PROTECTION; | 801 | SHOST_DIF_TYPE1_PROTECTION, |
| 802 | case 2: return shost->prot_capabilities & SHOST_DIF_TYPE2_PROTECTION; | 802 | SHOST_DIF_TYPE2_PROTECTION, |
| 803 | case 3: return shost->prot_capabilities & SHOST_DIF_TYPE3_PROTECTION; | 803 | SHOST_DIF_TYPE3_PROTECTION }; |
| 804 | } | ||
| 805 | 804 | ||
| 806 | return 0; | 805 | return shost->prot_capabilities & cap[target_type] ? target_type : 0; |
| 807 | } | 806 | } |
| 808 | 807 | ||
| 809 | static inline unsigned int scsi_host_dix_capable(struct Scsi_Host *shost, unsigned int target_type) | 808 | static inline unsigned int scsi_host_dix_capable(struct Scsi_Host *shost, unsigned int target_type) |
| 810 | { | 809 | { |
| 811 | switch (target_type) { | 810 | #if defined(CONFIG_BLK_DEV_INTEGRITY) |
| 812 | case 0: return shost->prot_capabilities & SHOST_DIX_TYPE0_PROTECTION; | 811 | static unsigned char cap[] = { SHOST_DIX_TYPE0_PROTECTION, |
| 813 | case 1: return shost->prot_capabilities & SHOST_DIX_TYPE1_PROTECTION; | 812 | SHOST_DIX_TYPE1_PROTECTION, |
| 814 | case 2: return shost->prot_capabilities & SHOST_DIX_TYPE2_PROTECTION; | 813 | SHOST_DIX_TYPE2_PROTECTION, |
| 815 | case 3: return shost->prot_capabilities & SHOST_DIX_TYPE3_PROTECTION; | 814 | SHOST_DIX_TYPE3_PROTECTION }; |
| 816 | } | ||
| 817 | 815 | ||
| 816 | return shost->prot_capabilities & cap[target_type]; | ||
| 817 | #endif | ||
| 818 | return 0; | 818 | return 0; |
| 819 | } | 819 | } |
| 820 | 820 | ||
diff --git a/include/trace/events/block.h b/include/trace/events/block.h index d86af94691c2..00405b5f624a 100644 --- a/include/trace/events/block.h +++ b/include/trace/events/block.h | |||
| @@ -488,6 +488,39 @@ TRACE_EVENT(block_remap, | |||
| 488 | (unsigned long long)__entry->old_sector) | 488 | (unsigned long long)__entry->old_sector) |
| 489 | ); | 489 | ); |
| 490 | 490 | ||
| 491 | TRACE_EVENT(block_rq_remap, | ||
| 492 | |||
| 493 | TP_PROTO(struct request_queue *q, struct request *rq, dev_t dev, | ||
| 494 | sector_t from), | ||
| 495 | |||
| 496 | TP_ARGS(q, rq, dev, from), | ||
| 497 | |||
| 498 | TP_STRUCT__entry( | ||
| 499 | __field( dev_t, dev ) | ||
| 500 | __field( sector_t, sector ) | ||
| 501 | __field( unsigned int, nr_sector ) | ||
| 502 | __field( dev_t, old_dev ) | ||
| 503 | __field( sector_t, old_sector ) | ||
| 504 | __array( char, rwbs, 6 ) | ||
| 505 | ), | ||
| 506 | |||
| 507 | TP_fast_assign( | ||
| 508 | __entry->dev = disk_devt(rq->rq_disk); | ||
| 509 | __entry->sector = blk_rq_pos(rq); | ||
| 510 | __entry->nr_sector = blk_rq_sectors(rq); | ||
| 511 | __entry->old_dev = dev; | ||
| 512 | __entry->old_sector = from; | ||
| 513 | blk_fill_rwbs_rq(__entry->rwbs, rq); | ||
| 514 | ), | ||
| 515 | |||
| 516 | TP_printk("%d,%d %s %llu + %u <- (%d,%d) %llu", | ||
| 517 | MAJOR(__entry->dev), MINOR(__entry->dev), __entry->rwbs, | ||
| 518 | (unsigned long long)__entry->sector, | ||
| 519 | __entry->nr_sector, | ||
| 520 | MAJOR(__entry->old_dev), MINOR(__entry->old_dev), | ||
| 521 | (unsigned long long)__entry->old_sector) | ||
| 522 | ); | ||
| 523 | |||
| 491 | #endif /* _TRACE_BLOCK_H */ | 524 | #endif /* _TRACE_BLOCK_H */ |
| 492 | 525 | ||
| 493 | /* This part must be outside protection */ | 526 | /* This part must be outside protection */ |
diff --git a/include/trace/events/ext4.h b/include/trace/events/ext4.h index c1bd8f1e8b94..d09550bf3f95 100644 --- a/include/trace/events/ext4.h +++ b/include/trace/events/ext4.h | |||
| @@ -11,6 +11,7 @@ struct ext4_allocation_context; | |||
| 11 | struct ext4_allocation_request; | 11 | struct ext4_allocation_request; |
| 12 | struct ext4_prealloc_space; | 12 | struct ext4_prealloc_space; |
| 13 | struct ext4_inode_info; | 13 | struct ext4_inode_info; |
| 14 | struct mpage_da_data; | ||
| 14 | 15 | ||
| 15 | #define EXT4_I(inode) (container_of(inode, struct ext4_inode_info, vfs_inode)) | 16 | #define EXT4_I(inode) (container_of(inode, struct ext4_inode_info, vfs_inode)) |
| 16 | 17 | ||
| @@ -236,6 +237,7 @@ TRACE_EVENT(ext4_da_writepages, | |||
| 236 | __field( char, for_kupdate ) | 237 | __field( char, for_kupdate ) |
| 237 | __field( char, for_reclaim ) | 238 | __field( char, for_reclaim ) |
| 238 | __field( char, range_cyclic ) | 239 | __field( char, range_cyclic ) |
| 240 | __field( pgoff_t, writeback_index ) | ||
| 239 | ), | 241 | ), |
| 240 | 242 | ||
| 241 | TP_fast_assign( | 243 | TP_fast_assign( |
| @@ -249,15 +251,17 @@ TRACE_EVENT(ext4_da_writepages, | |||
| 249 | __entry->for_kupdate = wbc->for_kupdate; | 251 | __entry->for_kupdate = wbc->for_kupdate; |
| 250 | __entry->for_reclaim = wbc->for_reclaim; | 252 | __entry->for_reclaim = wbc->for_reclaim; |
| 251 | __entry->range_cyclic = wbc->range_cyclic; | 253 | __entry->range_cyclic = wbc->range_cyclic; |
| 254 | __entry->writeback_index = inode->i_mapping->writeback_index; | ||
| 252 | ), | 255 | ), |
| 253 | 256 | ||
| 254 | TP_printk("dev %s ino %lu nr_to_write %ld pages_skipped %ld range_start %llu range_end %llu nonblocking %d for_kupdate %d for_reclaim %d range_cyclic %d", | 257 | TP_printk("dev %s ino %lu nr_to_write %ld pages_skipped %ld range_start %llu range_end %llu nonblocking %d for_kupdate %d for_reclaim %d range_cyclic %d writeback_index %lu", |
| 255 | jbd2_dev_to_name(__entry->dev), | 258 | jbd2_dev_to_name(__entry->dev), |
| 256 | (unsigned long) __entry->ino, __entry->nr_to_write, | 259 | (unsigned long) __entry->ino, __entry->nr_to_write, |
| 257 | __entry->pages_skipped, __entry->range_start, | 260 | __entry->pages_skipped, __entry->range_start, |
| 258 | __entry->range_end, __entry->nonblocking, | 261 | __entry->range_end, __entry->nonblocking, |
| 259 | __entry->for_kupdate, __entry->for_reclaim, | 262 | __entry->for_kupdate, __entry->for_reclaim, |
| 260 | __entry->range_cyclic) | 263 | __entry->range_cyclic, |
| 264 | (unsigned long) __entry->writeback_index) | ||
| 261 | ); | 265 | ); |
| 262 | 266 | ||
| 263 | TRACE_EVENT(ext4_da_write_pages, | 267 | TRACE_EVENT(ext4_da_write_pages, |
| @@ -309,6 +313,7 @@ TRACE_EVENT(ext4_da_writepages_result, | |||
| 309 | __field( char, encountered_congestion ) | 313 | __field( char, encountered_congestion ) |
| 310 | __field( char, more_io ) | 314 | __field( char, more_io ) |
| 311 | __field( char, no_nrwrite_index_update ) | 315 | __field( char, no_nrwrite_index_update ) |
| 316 | __field( pgoff_t, writeback_index ) | ||
| 312 | ), | 317 | ), |
| 313 | 318 | ||
| 314 | TP_fast_assign( | 319 | TP_fast_assign( |
| @@ -320,14 +325,16 @@ TRACE_EVENT(ext4_da_writepages_result, | |||
| 320 | __entry->encountered_congestion = wbc->encountered_congestion; | 325 | __entry->encountered_congestion = wbc->encountered_congestion; |
| 321 | __entry->more_io = wbc->more_io; | 326 | __entry->more_io = wbc->more_io; |
| 322 | __entry->no_nrwrite_index_update = wbc->no_nrwrite_index_update; | 327 | __entry->no_nrwrite_index_update = wbc->no_nrwrite_index_update; |
| 328 | __entry->writeback_index = inode->i_mapping->writeback_index; | ||
| 323 | ), | 329 | ), |
| 324 | 330 | ||
| 325 | TP_printk("dev %s ino %lu ret %d pages_written %d pages_skipped %ld congestion %d more_io %d no_nrwrite_index_update %d", | 331 | TP_printk("dev %s ino %lu ret %d pages_written %d pages_skipped %ld congestion %d more_io %d no_nrwrite_index_update %d writeback_index %lu", |
| 326 | jbd2_dev_to_name(__entry->dev), | 332 | jbd2_dev_to_name(__entry->dev), |
| 327 | (unsigned long) __entry->ino, __entry->ret, | 333 | (unsigned long) __entry->ino, __entry->ret, |
| 328 | __entry->pages_written, __entry->pages_skipped, | 334 | __entry->pages_written, __entry->pages_skipped, |
| 329 | __entry->encountered_congestion, __entry->more_io, | 335 | __entry->encountered_congestion, __entry->more_io, |
| 330 | __entry->no_nrwrite_index_update) | 336 | __entry->no_nrwrite_index_update, |
| 337 | (unsigned long) __entry->writeback_index) | ||
| 331 | ); | 338 | ); |
| 332 | 339 | ||
| 333 | TRACE_EVENT(ext4_da_write_begin, | 340 | TRACE_EVENT(ext4_da_write_begin, |
| @@ -737,6 +744,169 @@ TRACE_EVENT(ext4_alloc_da_blocks, | |||
| 737 | __entry->data_blocks, __entry->meta_blocks) | 744 | __entry->data_blocks, __entry->meta_blocks) |
| 738 | ); | 745 | ); |
| 739 | 746 | ||
| 747 | TRACE_EVENT(ext4_mballoc_alloc, | ||
| 748 | TP_PROTO(struct ext4_allocation_context *ac), | ||
| 749 | |||
| 750 | TP_ARGS(ac), | ||
| 751 | |||
| 752 | TP_STRUCT__entry( | ||
| 753 | __field( dev_t, dev ) | ||
| 754 | __field( ino_t, ino ) | ||
| 755 | __field( __u16, found ) | ||
| 756 | __field( __u16, groups ) | ||
| 757 | __field( __u16, buddy ) | ||
| 758 | __field( __u16, flags ) | ||
| 759 | __field( __u16, tail ) | ||
| 760 | __field( __u8, cr ) | ||
| 761 | __field( __u32, orig_logical ) | ||
| 762 | __field( int, orig_start ) | ||
| 763 | __field( __u32, orig_group ) | ||
| 764 | __field( int, orig_len ) | ||
| 765 | __field( __u32, goal_logical ) | ||
| 766 | __field( int, goal_start ) | ||
| 767 | __field( __u32, goal_group ) | ||
| 768 | __field( int, goal_len ) | ||
| 769 | __field( __u32, result_logical ) | ||
| 770 | __field( int, result_start ) | ||
| 771 | __field( __u32, result_group ) | ||
| 772 | __field( int, result_len ) | ||
| 773 | ), | ||
| 774 | |||
| 775 | TP_fast_assign( | ||
| 776 | __entry->dev = ac->ac_inode->i_sb->s_dev; | ||
| 777 | __entry->ino = ac->ac_inode->i_ino; | ||
| 778 | __entry->found = ac->ac_found; | ||
| 779 | __entry->flags = ac->ac_flags; | ||
| 780 | __entry->groups = ac->ac_groups_scanned; | ||
| 781 | __entry->buddy = ac->ac_buddy; | ||
| 782 | __entry->tail = ac->ac_tail; | ||
| 783 | __entry->cr = ac->ac_criteria; | ||
| 784 | __entry->orig_logical = ac->ac_o_ex.fe_logical; | ||
| 785 | __entry->orig_start = ac->ac_o_ex.fe_start; | ||
| 786 | __entry->orig_group = ac->ac_o_ex.fe_group; | ||
| 787 | __entry->orig_len = ac->ac_o_ex.fe_len; | ||
| 788 | __entry->goal_logical = ac->ac_g_ex.fe_logical; | ||
| 789 | __entry->goal_start = ac->ac_g_ex.fe_start; | ||
| 790 | __entry->goal_group = ac->ac_g_ex.fe_group; | ||
| 791 | __entry->goal_len = ac->ac_g_ex.fe_len; | ||
| 792 | __entry->result_logical = ac->ac_f_ex.fe_logical; | ||
| 793 | __entry->result_start = ac->ac_f_ex.fe_start; | ||
| 794 | __entry->result_group = ac->ac_f_ex.fe_group; | ||
| 795 | __entry->result_len = ac->ac_f_ex.fe_len; | ||
| 796 | ), | ||
| 797 | |||
| 798 | TP_printk("dev %s inode %lu orig %u/%d/%u@%u goal %u/%d/%u@%u " | ||
| 799 | "result %u/%d/%u@%u blks %u grps %u cr %u flags 0x%04x " | ||
| 800 | "tail %u broken %u", | ||
| 801 | jbd2_dev_to_name(__entry->dev), (unsigned long) __entry->ino, | ||
| 802 | __entry->orig_group, __entry->orig_start, | ||
| 803 | __entry->orig_len, __entry->orig_logical, | ||
| 804 | __entry->goal_group, __entry->goal_start, | ||
| 805 | __entry->goal_len, __entry->goal_logical, | ||
| 806 | __entry->result_group, __entry->result_start, | ||
| 807 | __entry->result_len, __entry->result_logical, | ||
| 808 | __entry->found, __entry->groups, __entry->cr, | ||
| 809 | __entry->flags, __entry->tail, | ||
| 810 | __entry->buddy ? 1 << __entry->buddy : 0) | ||
| 811 | ); | ||
| 812 | |||
| 813 | TRACE_EVENT(ext4_mballoc_prealloc, | ||
| 814 | TP_PROTO(struct ext4_allocation_context *ac), | ||
| 815 | |||
| 816 | TP_ARGS(ac), | ||
| 817 | |||
| 818 | TP_STRUCT__entry( | ||
| 819 | __field( dev_t, dev ) | ||
| 820 | __field( ino_t, ino ) | ||
| 821 | __field( __u32, orig_logical ) | ||
| 822 | __field( int, orig_start ) | ||
| 823 | __field( __u32, orig_group ) | ||
| 824 | __field( int, orig_len ) | ||
| 825 | __field( __u32, result_logical ) | ||
| 826 | __field( int, result_start ) | ||
| 827 | __field( __u32, result_group ) | ||
| 828 | __field( int, result_len ) | ||
| 829 | ), | ||
| 830 | |||
| 831 | TP_fast_assign( | ||
| 832 | __entry->dev = ac->ac_inode->i_sb->s_dev; | ||
| 833 | __entry->ino = ac->ac_inode->i_ino; | ||
| 834 | __entry->orig_logical = ac->ac_o_ex.fe_logical; | ||
| 835 | __entry->orig_start = ac->ac_o_ex.fe_start; | ||
| 836 | __entry->orig_group = ac->ac_o_ex.fe_group; | ||
| 837 | __entry->orig_len = ac->ac_o_ex.fe_len; | ||
| 838 | __entry->result_logical = ac->ac_b_ex.fe_logical; | ||
| 839 | __entry->result_start = ac->ac_b_ex.fe_start; | ||
| 840 | __entry->result_group = ac->ac_b_ex.fe_group; | ||
| 841 | __entry->result_len = ac->ac_b_ex.fe_len; | ||
| 842 | ), | ||
| 843 | |||
| 844 | TP_printk("dev %s inode %lu orig %u/%d/%u@%u result %u/%d/%u@%u", | ||
| 845 | jbd2_dev_to_name(__entry->dev), (unsigned long) __entry->ino, | ||
| 846 | __entry->orig_group, __entry->orig_start, | ||
| 847 | __entry->orig_len, __entry->orig_logical, | ||
| 848 | __entry->result_group, __entry->result_start, | ||
| 849 | __entry->result_len, __entry->result_logical) | ||
| 850 | ); | ||
| 851 | |||
| 852 | TRACE_EVENT(ext4_mballoc_discard, | ||
| 853 | TP_PROTO(struct ext4_allocation_context *ac), | ||
| 854 | |||
| 855 | TP_ARGS(ac), | ||
| 856 | |||
| 857 | TP_STRUCT__entry( | ||
| 858 | __field( dev_t, dev ) | ||
| 859 | __field( ino_t, ino ) | ||
| 860 | __field( __u32, result_logical ) | ||
| 861 | __field( int, result_start ) | ||
| 862 | __field( __u32, result_group ) | ||
| 863 | __field( int, result_len ) | ||
| 864 | ), | ||
| 865 | |||
| 866 | TP_fast_assign( | ||
| 867 | __entry->dev = ac->ac_inode->i_sb->s_dev; | ||
| 868 | __entry->ino = ac->ac_inode->i_ino; | ||
| 869 | __entry->result_logical = ac->ac_b_ex.fe_logical; | ||
| 870 | __entry->result_start = ac->ac_b_ex.fe_start; | ||
| 871 | __entry->result_group = ac->ac_b_ex.fe_group; | ||
| 872 | __entry->result_len = ac->ac_b_ex.fe_len; | ||
| 873 | ), | ||
| 874 | |||
| 875 | TP_printk("dev %s inode %lu extent %u/%d/%u@%u ", | ||
| 876 | jbd2_dev_to_name(__entry->dev), (unsigned long) __entry->ino, | ||
| 877 | __entry->result_group, __entry->result_start, | ||
| 878 | __entry->result_len, __entry->result_logical) | ||
| 879 | ); | ||
| 880 | |||
| 881 | TRACE_EVENT(ext4_mballoc_free, | ||
| 882 | TP_PROTO(struct ext4_allocation_context *ac), | ||
| 883 | |||
| 884 | TP_ARGS(ac), | ||
| 885 | |||
| 886 | TP_STRUCT__entry( | ||
| 887 | __field( dev_t, dev ) | ||
| 888 | __field( ino_t, ino ) | ||
| 889 | __field( __u32, result_logical ) | ||
| 890 | __field( int, result_start ) | ||
| 891 | __field( __u32, result_group ) | ||
| 892 | __field( int, result_len ) | ||
| 893 | ), | ||
| 894 | |||
| 895 | TP_fast_assign( | ||
| 896 | __entry->dev = ac->ac_inode->i_sb->s_dev; | ||
| 897 | __entry->ino = ac->ac_inode->i_ino; | ||
| 898 | __entry->result_logical = ac->ac_b_ex.fe_logical; | ||
| 899 | __entry->result_start = ac->ac_b_ex.fe_start; | ||
| 900 | __entry->result_group = ac->ac_b_ex.fe_group; | ||
| 901 | __entry->result_len = ac->ac_b_ex.fe_len; | ||
| 902 | ), | ||
| 903 | |||
| 904 | TP_printk("dev %s inode %lu extent %u/%d/%u@%u ", | ||
| 905 | jbd2_dev_to_name(__entry->dev), (unsigned long) __entry->ino, | ||
| 906 | __entry->result_group, __entry->result_start, | ||
| 907 | __entry->result_len, __entry->result_logical) | ||
| 908 | ); | ||
| 909 | |||
| 740 | #endif /* _TRACE_EXT4_H */ | 910 | #endif /* _TRACE_EXT4_H */ |
| 741 | 911 | ||
| 742 | /* This part must be outside protection */ | 912 | /* This part must be outside protection */ |
diff --git a/include/trace/events/jbd2.h b/include/trace/events/jbd2.h index b851f0b4701c..3c60b75adb9e 100644 --- a/include/trace/events/jbd2.h +++ b/include/trace/events/jbd2.h | |||
| @@ -7,6 +7,9 @@ | |||
| 7 | #include <linux/jbd2.h> | 7 | #include <linux/jbd2.h> |
| 8 | #include <linux/tracepoint.h> | 8 | #include <linux/tracepoint.h> |
| 9 | 9 | ||
| 10 | struct transaction_chp_stats_s; | ||
| 11 | struct transaction_run_stats_s; | ||
| 12 | |||
| 10 | TRACE_EVENT(jbd2_checkpoint, | 13 | TRACE_EVENT(jbd2_checkpoint, |
| 11 | 14 | ||
| 12 | TP_PROTO(journal_t *journal, int result), | 15 | TP_PROTO(journal_t *journal, int result), |
| @@ -162,6 +165,81 @@ TRACE_EVENT(jbd2_submit_inode_data, | |||
| 162 | jbd2_dev_to_name(__entry->dev), (unsigned long) __entry->ino) | 165 | jbd2_dev_to_name(__entry->dev), (unsigned long) __entry->ino) |
| 163 | ); | 166 | ); |
| 164 | 167 | ||
| 168 | TRACE_EVENT(jbd2_run_stats, | ||
| 169 | TP_PROTO(dev_t dev, unsigned long tid, | ||
| 170 | struct transaction_run_stats_s *stats), | ||
| 171 | |||
| 172 | TP_ARGS(dev, tid, stats), | ||
| 173 | |||
| 174 | TP_STRUCT__entry( | ||
| 175 | __field( dev_t, dev ) | ||
| 176 | __field( unsigned long, tid ) | ||
| 177 | __field( unsigned long, wait ) | ||
| 178 | __field( unsigned long, running ) | ||
| 179 | __field( unsigned long, locked ) | ||
| 180 | __field( unsigned long, flushing ) | ||
| 181 | __field( unsigned long, logging ) | ||
| 182 | __field( __u32, handle_count ) | ||
| 183 | __field( __u32, blocks ) | ||
| 184 | __field( __u32, blocks_logged ) | ||
| 185 | ), | ||
| 186 | |||
| 187 | TP_fast_assign( | ||
| 188 | __entry->dev = dev; | ||
| 189 | __entry->tid = tid; | ||
| 190 | __entry->wait = stats->rs_wait; | ||
| 191 | __entry->running = stats->rs_running; | ||
| 192 | __entry->locked = stats->rs_locked; | ||
| 193 | __entry->flushing = stats->rs_flushing; | ||
| 194 | __entry->logging = stats->rs_logging; | ||
| 195 | __entry->handle_count = stats->rs_handle_count; | ||
| 196 | __entry->blocks = stats->rs_blocks; | ||
| 197 | __entry->blocks_logged = stats->rs_blocks_logged; | ||
| 198 | ), | ||
| 199 | |||
| 200 | TP_printk("dev %s tid %lu wait %u running %u locked %u flushing %u " | ||
| 201 | "logging %u handle_count %u blocks %u blocks_logged %u", | ||
| 202 | jbd2_dev_to_name(__entry->dev), __entry->tid, | ||
| 203 | jiffies_to_msecs(__entry->wait), | ||
| 204 | jiffies_to_msecs(__entry->running), | ||
| 205 | jiffies_to_msecs(__entry->locked), | ||
| 206 | jiffies_to_msecs(__entry->flushing), | ||
| 207 | jiffies_to_msecs(__entry->logging), | ||
| 208 | __entry->handle_count, __entry->blocks, | ||
| 209 | __entry->blocks_logged) | ||
| 210 | ); | ||
| 211 | |||
| 212 | TRACE_EVENT(jbd2_checkpoint_stats, | ||
| 213 | TP_PROTO(dev_t dev, unsigned long tid, | ||
| 214 | struct transaction_chp_stats_s *stats), | ||
| 215 | |||
| 216 | TP_ARGS(dev, tid, stats), | ||
| 217 | |||
| 218 | TP_STRUCT__entry( | ||
| 219 | __field( dev_t, dev ) | ||
| 220 | __field( unsigned long, tid ) | ||
| 221 | __field( unsigned long, chp_time ) | ||
| 222 | __field( __u32, forced_to_close ) | ||
| 223 | __field( __u32, written ) | ||
| 224 | __field( __u32, dropped ) | ||
| 225 | ), | ||
| 226 | |||
| 227 | TP_fast_assign( | ||
| 228 | __entry->dev = dev; | ||
| 229 | __entry->tid = tid; | ||
| 230 | __entry->chp_time = stats->cs_chp_time; | ||
| 231 | __entry->forced_to_close= stats->cs_forced_to_close; | ||
| 232 | __entry->written = stats->cs_written; | ||
| 233 | __entry->dropped = stats->cs_dropped; | ||
| 234 | ), | ||
| 235 | |||
| 236 | TP_printk("dev %s tid %lu chp_time %u forced_to_close %u " | ||
| 237 | "written %u dropped %u", | ||
| 238 | jbd2_dev_to_name(__entry->dev), __entry->tid, | ||
| 239 | jiffies_to_msecs(__entry->chp_time), | ||
| 240 | __entry->forced_to_close, __entry->written, __entry->dropped) | ||
| 241 | ); | ||
| 242 | |||
| 165 | #endif /* _TRACE_JBD2_H */ | 243 | #endif /* _TRACE_JBD2_H */ |
| 166 | 244 | ||
| 167 | /* This part must be outside protection */ | 245 | /* This part must be outside protection */ |
diff --git a/include/trace/events/workqueue.h b/include/trace/events/workqueue.h index fcfd9a1e4b96..e4612dbd7ba6 100644 --- a/include/trace/events/workqueue.h +++ b/include/trace/events/workqueue.h | |||
| @@ -26,7 +26,7 @@ TRACE_EVENT(workqueue_insertion, | |||
| 26 | __entry->func = work->func; | 26 | __entry->func = work->func; |
| 27 | ), | 27 | ), |
| 28 | 28 | ||
| 29 | TP_printk("thread=%s:%d func=%pF", __entry->thread_comm, | 29 | TP_printk("thread=%s:%d func=%pf", __entry->thread_comm, |
| 30 | __entry->thread_pid, __entry->func) | 30 | __entry->thread_pid, __entry->func) |
| 31 | ); | 31 | ); |
| 32 | 32 | ||
| @@ -48,7 +48,7 @@ TRACE_EVENT(workqueue_execution, | |||
| 48 | __entry->func = work->func; | 48 | __entry->func = work->func; |
| 49 | ), | 49 | ), |
| 50 | 50 | ||
| 51 | TP_printk("thread=%s:%d func=%pF", __entry->thread_comm, | 51 | TP_printk("thread=%s:%d func=%pf", __entry->thread_comm, |
| 52 | __entry->thread_pid, __entry->func) | 52 | __entry->thread_pid, __entry->func) |
| 53 | ); | 53 | ); |
| 54 | 54 | ||
