diff options
Diffstat (limited to 'include')
| -rw-r--r-- | include/linux/bio.h | 4 | ||||
| -rw-r--r-- | include/linux/capability.h | 6 | ||||
| -rw-r--r-- | include/linux/compiler-gcc.h | 10 | ||||
| -rw-r--r-- | include/linux/ide.h | 1 | ||||
| -rw-r--r-- | include/linux/interrupt.h | 17 | ||||
| -rw-r--r-- | include/linux/irq.h | 16 | ||||
| -rw-r--r-- | include/linux/irqnr.h | 8 | ||||
| -rw-r--r-- | include/linux/irqreturn.h | 28 | ||||
| -rw-r--r-- | include/linux/kernel_stat.h | 13 | ||||
| -rw-r--r-- | include/linux/lockd/lockd.h | 8 | ||||
| -rw-r--r-- | include/linux/nfs_xdr.h | 2 | ||||
| -rw-r--r-- | include/linux/nfsacl.h | 3 | ||||
| -rw-r--r-- | include/scsi/fc/fc_fcoe.h | 4 | ||||
| -rw-r--r-- | include/scsi/fc/fc_fs.h | 5 | ||||
| -rw-r--r-- | include/scsi/libfc.h | 138 | ||||
| -rw-r--r-- | include/scsi/libfcoe.h | 9 |
16 files changed, 161 insertions, 111 deletions
diff --git a/include/linux/bio.h b/include/linux/bio.h index 1b16108a541..d8bd43bfdcf 100644 --- a/include/linux/bio.h +++ b/include/linux/bio.h | |||
| @@ -531,7 +531,7 @@ extern void bio_integrity_endio(struct bio *, int); | |||
| 531 | extern void bio_integrity_advance(struct bio *, unsigned int); | 531 | extern void bio_integrity_advance(struct bio *, unsigned int); |
| 532 | extern void bio_integrity_trim(struct bio *, unsigned int, unsigned int); | 532 | extern void bio_integrity_trim(struct bio *, unsigned int, unsigned int); |
| 533 | extern void bio_integrity_split(struct bio *, struct bio_pair *, int); | 533 | extern void bio_integrity_split(struct bio *, struct bio_pair *, int); |
| 534 | extern int bio_integrity_clone(struct bio *, struct bio *, struct bio_set *); | 534 | extern int bio_integrity_clone(struct bio *, struct bio *, gfp_t, struct bio_set *); |
| 535 | extern int bioset_integrity_create(struct bio_set *, int); | 535 | extern int bioset_integrity_create(struct bio_set *, int); |
| 536 | extern void bioset_integrity_free(struct bio_set *); | 536 | extern void bioset_integrity_free(struct bio_set *); |
| 537 | extern void bio_integrity_init_slab(void); | 537 | extern void bio_integrity_init_slab(void); |
| @@ -542,7 +542,7 @@ extern void bio_integrity_init_slab(void); | |||
| 542 | #define bioset_integrity_create(a, b) (0) | 542 | #define bioset_integrity_create(a, b) (0) |
| 543 | #define bio_integrity_prep(a) (0) | 543 | #define bio_integrity_prep(a) (0) |
| 544 | #define bio_integrity_enabled(a) (0) | 544 | #define bio_integrity_enabled(a) (0) |
| 545 | #define bio_integrity_clone(a, b, c) (0) | 545 | #define bio_integrity_clone(a, b, c,d ) (0) |
| 546 | #define bioset_integrity_free(a) do { } while (0) | 546 | #define bioset_integrity_free(a) do { } while (0) |
| 547 | #define bio_integrity_free(a, b) do { } while (0) | 547 | #define bio_integrity_free(a, b) do { } while (0) |
| 548 | #define bio_integrity_endio(a, b) do { } while (0) | 548 | #define bio_integrity_endio(a, b) do { } while (0) |
diff --git a/include/linux/capability.h b/include/linux/capability.h index 1b987255613..4864a43b2b4 100644 --- a/include/linux/capability.h +++ b/include/linux/capability.h | |||
| @@ -393,8 +393,10 @@ struct cpu_vfs_cap_data { | |||
| 393 | # define CAP_FULL_SET ((kernel_cap_t){{ ~0, ~0 }}) | 393 | # define CAP_FULL_SET ((kernel_cap_t){{ ~0, ~0 }}) |
| 394 | # define CAP_INIT_EFF_SET ((kernel_cap_t){{ ~CAP_TO_MASK(CAP_SETPCAP), ~0 }}) | 394 | # define CAP_INIT_EFF_SET ((kernel_cap_t){{ ~CAP_TO_MASK(CAP_SETPCAP), ~0 }}) |
| 395 | # define CAP_FS_SET ((kernel_cap_t){{ CAP_FS_MASK_B0, CAP_FS_MASK_B1 } }) | 395 | # define CAP_FS_SET ((kernel_cap_t){{ CAP_FS_MASK_B0, CAP_FS_MASK_B1 } }) |
| 396 | # define CAP_NFSD_SET ((kernel_cap_t){{ CAP_FS_MASK_B0|CAP_TO_MASK(CAP_SYS_RESOURCE), \ | 396 | # define CAP_NFSD_SET ((kernel_cap_t){{ CAP_FS_MASK_B0 \ |
| 397 | CAP_FS_MASK_B1 } }) | 397 | | CAP_TO_MASK(CAP_SYS_RESOURCE) \ |
| 398 | | CAP_TO_MASK(CAP_MKNOD), \ | ||
| 399 | CAP_FS_MASK_B1 } }) | ||
| 398 | 400 | ||
| 399 | #endif /* _KERNEL_CAPABILITY_U32S != 2 */ | 401 | #endif /* _KERNEL_CAPABILITY_U32S != 2 */ |
| 400 | 402 | ||
diff --git a/include/linux/compiler-gcc.h b/include/linux/compiler-gcc.h index 1514d534dee..a3ed7cb8ca3 100644 --- a/include/linux/compiler-gcc.h +++ b/include/linux/compiler-gcc.h | |||
| @@ -52,7 +52,15 @@ | |||
| 52 | #define __deprecated __attribute__((deprecated)) | 52 | #define __deprecated __attribute__((deprecated)) |
| 53 | #define __packed __attribute__((packed)) | 53 | #define __packed __attribute__((packed)) |
| 54 | #define __weak __attribute__((weak)) | 54 | #define __weak __attribute__((weak)) |
| 55 | #define __naked __attribute__((naked)) | 55 | |
| 56 | /* | ||
| 57 | * it doesn't make sense on ARM (currently the only user of __naked) to trace | ||
| 58 | * naked functions because then mcount is called without stack and frame pointer | ||
| 59 | * being set up and there is no chance to restore the lr register to the value | ||
| 60 | * before mcount was called. | ||
| 61 | */ | ||
| 62 | #define __naked __attribute__((naked)) notrace | ||
| 63 | |||
| 56 | #define __noreturn __attribute__((noreturn)) | 64 | #define __noreturn __attribute__((noreturn)) |
| 57 | 65 | ||
| 58 | /* | 66 | /* |
diff --git a/include/linux/ide.h b/include/linux/ide.h index e0cedfe9fad..25087aead65 100644 --- a/include/linux/ide.h +++ b/include/linux/ide.h | |||
| @@ -797,6 +797,7 @@ typedef struct hwif_s { | |||
| 797 | struct scatterlist *sg_table; | 797 | struct scatterlist *sg_table; |
| 798 | int sg_max_nents; /* Maximum number of entries in it */ | 798 | int sg_max_nents; /* Maximum number of entries in it */ |
| 799 | int sg_nents; /* Current number of entries in it */ | 799 | int sg_nents; /* Current number of entries in it */ |
| 800 | int orig_sg_nents; | ||
| 800 | int sg_dma_direction; /* dma transfer direction */ | 801 | int sg_dma_direction; /* dma transfer direction */ |
| 801 | 802 | ||
| 802 | /* data phase of the active command (currently only valid for PIO/DMA) */ | 803 | /* data phase of the active command (currently only valid for PIO/DMA) */ |
diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h index 472f11765f6..0c9cb63e689 100644 --- a/include/linux/interrupt.h +++ b/include/linux/interrupt.h | |||
| @@ -61,6 +61,17 @@ | |||
| 61 | 61 | ||
| 62 | typedef irqreturn_t (*irq_handler_t)(int, void *); | 62 | typedef irqreturn_t (*irq_handler_t)(int, void *); |
| 63 | 63 | ||
| 64 | /** | ||
| 65 | * struct irqaction - per interrupt action descriptor | ||
| 66 | * @handler: interrupt handler function | ||
| 67 | * @flags: flags (see IRQF_* above) | ||
| 68 | * @mask: no comment as it is useless and about to be removed | ||
| 69 | * @name: name of the device | ||
| 70 | * @dev_id: cookie to identify the device | ||
| 71 | * @next: pointer to the next irqaction for shared interrupts | ||
| 72 | * @irq: interrupt number | ||
| 73 | * @dir: pointer to the proc/irq/NN/name entry | ||
| 74 | */ | ||
| 64 | struct irqaction { | 75 | struct irqaction { |
| 65 | irq_handler_t handler; | 76 | irq_handler_t handler; |
| 66 | unsigned long flags; | 77 | unsigned long flags; |
| @@ -462,6 +473,12 @@ static inline void init_irq_proc(void) | |||
| 462 | } | 473 | } |
| 463 | #endif | 474 | #endif |
| 464 | 475 | ||
| 476 | #if defined(CONFIG_GENERIC_HARDIRQS) && defined(CONFIG_DEBUG_SHIRQ) | ||
| 477 | extern void debug_poll_all_shared_irqs(void); | ||
| 478 | #else | ||
| 479 | static inline void debug_poll_all_shared_irqs(void) { } | ||
| 480 | #endif | ||
| 481 | |||
| 465 | int show_interrupts(struct seq_file *p, void *v); | 482 | int show_interrupts(struct seq_file *p, void *v); |
| 466 | 483 | ||
| 467 | struct irq_desc; | 484 | struct irq_desc; |
diff --git a/include/linux/irq.h b/include/linux/irq.h index 27a67536511..873e4ac11b8 100644 --- a/include/linux/irq.h +++ b/include/linux/irq.h | |||
| @@ -160,12 +160,10 @@ struct irq_2_iommu; | |||
| 160 | */ | 160 | */ |
| 161 | struct irq_desc { | 161 | struct irq_desc { |
| 162 | unsigned int irq; | 162 | unsigned int irq; |
| 163 | #ifdef CONFIG_SPARSE_IRQ | ||
| 164 | struct timer_rand_state *timer_rand_state; | 163 | struct timer_rand_state *timer_rand_state; |
| 165 | unsigned int *kstat_irqs; | 164 | unsigned int *kstat_irqs; |
| 166 | # ifdef CONFIG_INTR_REMAP | 165 | #ifdef CONFIG_INTR_REMAP |
| 167 | struct irq_2_iommu *irq_2_iommu; | 166 | struct irq_2_iommu *irq_2_iommu; |
| 168 | # endif | ||
| 169 | #endif | 167 | #endif |
| 170 | irq_flow_handler_t handle_irq; | 168 | irq_flow_handler_t handle_irq; |
| 171 | struct irq_chip *chip; | 169 | struct irq_chip *chip; |
| @@ -202,12 +200,6 @@ extern void arch_free_chip_data(struct irq_desc *old_desc, struct irq_desc *desc | |||
| 202 | extern struct irq_desc irq_desc[NR_IRQS]; | 200 | extern struct irq_desc irq_desc[NR_IRQS]; |
| 203 | #else /* CONFIG_SPARSE_IRQ */ | 201 | #else /* CONFIG_SPARSE_IRQ */ |
| 204 | extern struct irq_desc *move_irq_desc(struct irq_desc *old_desc, int cpu); | 202 | extern struct irq_desc *move_irq_desc(struct irq_desc *old_desc, int cpu); |
| 205 | |||
| 206 | #define kstat_irqs_this_cpu(DESC) \ | ||
| 207 | ((DESC)->kstat_irqs[smp_processor_id()]) | ||
| 208 | #define kstat_incr_irqs_this_cpu(irqno, DESC) \ | ||
| 209 | ((DESC)->kstat_irqs[smp_processor_id()]++) | ||
| 210 | |||
| 211 | #endif /* CONFIG_SPARSE_IRQ */ | 203 | #endif /* CONFIG_SPARSE_IRQ */ |
| 212 | 204 | ||
| 213 | extern struct irq_desc *irq_to_desc_alloc_cpu(unsigned int irq, int cpu); | 205 | extern struct irq_desc *irq_to_desc_alloc_cpu(unsigned int irq, int cpu); |
| @@ -226,7 +218,6 @@ irq_remap_to_desc(unsigned int irq, struct irq_desc *desc) | |||
| 226 | * Migration helpers for obsolete names, they will go away: | 218 | * Migration helpers for obsolete names, they will go away: |
| 227 | */ | 219 | */ |
| 228 | #define hw_interrupt_type irq_chip | 220 | #define hw_interrupt_type irq_chip |
| 229 | typedef struct irq_chip hw_irq_controller; | ||
| 230 | #define no_irq_type no_irq_chip | 221 | #define no_irq_type no_irq_chip |
| 231 | typedef struct irq_desc irq_desc_t; | 222 | typedef struct irq_desc irq_desc_t; |
| 232 | 223 | ||
| @@ -236,6 +227,7 @@ typedef struct irq_desc irq_desc_t; | |||
| 236 | #include <asm/hw_irq.h> | 227 | #include <asm/hw_irq.h> |
| 237 | 228 | ||
| 238 | extern int setup_irq(unsigned int irq, struct irqaction *new); | 229 | extern int setup_irq(unsigned int irq, struct irqaction *new); |
| 230 | extern void remove_irq(unsigned int irq, struct irqaction *act); | ||
| 239 | 231 | ||
| 240 | #ifdef CONFIG_GENERIC_HARDIRQS | 232 | #ifdef CONFIG_GENERIC_HARDIRQS |
| 241 | 233 | ||
| @@ -280,7 +272,7 @@ static inline int irq_balancing_disabled(unsigned int irq) | |||
| 280 | } | 272 | } |
| 281 | 273 | ||
| 282 | /* Handle irq action chains: */ | 274 | /* Handle irq action chains: */ |
| 283 | extern int handle_IRQ_event(unsigned int irq, struct irqaction *action); | 275 | extern irqreturn_t handle_IRQ_event(unsigned int irq, struct irqaction *action); |
| 284 | 276 | ||
| 285 | /* | 277 | /* |
| 286 | * Built-in IRQ handlers for various IRQ types, | 278 | * Built-in IRQ handlers for various IRQ types, |
| @@ -325,7 +317,7 @@ static inline void generic_handle_irq(unsigned int irq) | |||
| 325 | 317 | ||
| 326 | /* Handling of unhandled and spurious interrupts: */ | 318 | /* Handling of unhandled and spurious interrupts: */ |
| 327 | extern void note_interrupt(unsigned int irq, struct irq_desc *desc, | 319 | extern void note_interrupt(unsigned int irq, struct irq_desc *desc, |
| 328 | int action_ret); | 320 | irqreturn_t action_ret); |
| 329 | 321 | ||
| 330 | /* Resending of interrupts :*/ | 322 | /* Resending of interrupts :*/ |
| 331 | void check_irq_resend(struct irq_desc *desc, unsigned int irq); | 323 | void check_irq_resend(struct irq_desc *desc, unsigned int irq); |
diff --git a/include/linux/irqnr.h b/include/linux/irqnr.h index 887477bc2ab..ec87b212ff7 100644 --- a/include/linux/irqnr.h +++ b/include/linux/irqnr.h | |||
| @@ -29,13 +29,17 @@ extern struct irq_desc *irq_to_desc(unsigned int irq); | |||
| 29 | # define for_each_irq_desc(irq, desc) \ | 29 | # define for_each_irq_desc(irq, desc) \ |
| 30 | for (irq = 0, desc = irq_to_desc(irq); irq < nr_irqs; \ | 30 | for (irq = 0, desc = irq_to_desc(irq); irq < nr_irqs; \ |
| 31 | irq++, desc = irq_to_desc(irq)) \ | 31 | irq++, desc = irq_to_desc(irq)) \ |
| 32 | if (desc) | 32 | if (!desc) \ |
| 33 | ; \ | ||
| 34 | else | ||
| 33 | 35 | ||
| 34 | 36 | ||
| 35 | # define for_each_irq_desc_reverse(irq, desc) \ | 37 | # define for_each_irq_desc_reverse(irq, desc) \ |
| 36 | for (irq = nr_irqs - 1, desc = irq_to_desc(irq); irq >= 0; \ | 38 | for (irq = nr_irqs - 1, desc = irq_to_desc(irq); irq >= 0; \ |
| 37 | irq--, desc = irq_to_desc(irq)) \ | 39 | irq--, desc = irq_to_desc(irq)) \ |
| 38 | if (desc) | 40 | if (!desc) \ |
| 41 | ; \ | ||
| 42 | else | ||
| 39 | 43 | ||
| 40 | #endif /* CONFIG_GENERIC_HARDIRQS */ | 44 | #endif /* CONFIG_GENERIC_HARDIRQS */ |
| 41 | 45 | ||
diff --git a/include/linux/irqreturn.h b/include/linux/irqreturn.h index 881883c2009..c5584ca5b8c 100644 --- a/include/linux/irqreturn.h +++ b/include/linux/irqreturn.h | |||
| @@ -1,25 +1,17 @@ | |||
| 1 | /* irqreturn.h */ | ||
| 2 | #ifndef _LINUX_IRQRETURN_H | 1 | #ifndef _LINUX_IRQRETURN_H |
| 3 | #define _LINUX_IRQRETURN_H | 2 | #define _LINUX_IRQRETURN_H |
| 4 | 3 | ||
| 5 | /* | 4 | /** |
| 6 | * For 2.4.x compatibility, 2.4.x can use | 5 | * enum irqreturn |
| 7 | * | 6 | * @IRQ_NONE interrupt was not from this device |
| 8 | * typedef void irqreturn_t; | 7 | * @IRQ_HANDLED interrupt was handled by this device |
| 9 | * #define IRQ_NONE | ||
| 10 | * #define IRQ_HANDLED | ||
| 11 | * #define IRQ_RETVAL(x) | ||
| 12 | * | ||
| 13 | * To mix old-style and new-style irq handler returns. | ||
| 14 | * | ||
| 15 | * IRQ_NONE means we didn't handle it. | ||
| 16 | * IRQ_HANDLED means that we did have a valid interrupt and handled it. | ||
| 17 | * IRQ_RETVAL(x) selects on the two depending on x being non-zero (for handled) | ||
| 18 | */ | 8 | */ |
| 19 | typedef int irqreturn_t; | 9 | enum irqreturn { |
| 10 | IRQ_NONE, | ||
| 11 | IRQ_HANDLED, | ||
| 12 | }; | ||
| 20 | 13 | ||
| 21 | #define IRQ_NONE (0) | 14 | typedef enum irqreturn irqreturn_t; |
| 22 | #define IRQ_HANDLED (1) | 15 | #define IRQ_RETVAL(x) ((x) != IRQ_NONE) |
| 23 | #define IRQ_RETVAL(x) ((x) != 0) | ||
| 24 | 16 | ||
| 25 | #endif | 17 | #endif |
diff --git a/include/linux/kernel_stat.h b/include/linux/kernel_stat.h index 570d2041311..0c8b89f28a9 100644 --- a/include/linux/kernel_stat.h +++ b/include/linux/kernel_stat.h | |||
| @@ -28,7 +28,7 @@ struct cpu_usage_stat { | |||
| 28 | 28 | ||
| 29 | struct kernel_stat { | 29 | struct kernel_stat { |
| 30 | struct cpu_usage_stat cpustat; | 30 | struct cpu_usage_stat cpustat; |
| 31 | #ifndef CONFIG_SPARSE_IRQ | 31 | #ifndef CONFIG_GENERIC_HARDIRQS |
| 32 | unsigned int irqs[NR_IRQS]; | 32 | unsigned int irqs[NR_IRQS]; |
| 33 | #endif | 33 | #endif |
| 34 | }; | 34 | }; |
| @@ -41,7 +41,7 @@ DECLARE_PER_CPU(struct kernel_stat, kstat); | |||
| 41 | 41 | ||
| 42 | extern unsigned long long nr_context_switches(void); | 42 | extern unsigned long long nr_context_switches(void); |
| 43 | 43 | ||
| 44 | #ifndef CONFIG_SPARSE_IRQ | 44 | #ifndef CONFIG_GENERIC_HARDIRQS |
| 45 | #define kstat_irqs_this_cpu(irq) \ | 45 | #define kstat_irqs_this_cpu(irq) \ |
| 46 | (kstat_this_cpu.irqs[irq]) | 46 | (kstat_this_cpu.irqs[irq]) |
| 47 | 47 | ||
| @@ -52,16 +52,19 @@ static inline void kstat_incr_irqs_this_cpu(unsigned int irq, | |||
| 52 | { | 52 | { |
| 53 | kstat_this_cpu.irqs[irq]++; | 53 | kstat_this_cpu.irqs[irq]++; |
| 54 | } | 54 | } |
| 55 | #endif | ||
| 56 | |||
| 57 | 55 | ||
| 58 | #ifndef CONFIG_SPARSE_IRQ | ||
| 59 | static inline unsigned int kstat_irqs_cpu(unsigned int irq, int cpu) | 56 | static inline unsigned int kstat_irqs_cpu(unsigned int irq, int cpu) |
| 60 | { | 57 | { |
| 61 | return kstat_cpu(cpu).irqs[irq]; | 58 | return kstat_cpu(cpu).irqs[irq]; |
| 62 | } | 59 | } |
| 63 | #else | 60 | #else |
| 61 | #include <linux/irq.h> | ||
| 64 | extern unsigned int kstat_irqs_cpu(unsigned int irq, int cpu); | 62 | extern unsigned int kstat_irqs_cpu(unsigned int irq, int cpu); |
| 63 | #define kstat_irqs_this_cpu(DESC) \ | ||
| 64 | ((DESC)->kstat_irqs[smp_processor_id()]) | ||
| 65 | #define kstat_incr_irqs_this_cpu(irqno, DESC) \ | ||
| 66 | ((DESC)->kstat_irqs[smp_processor_id()]++) | ||
| 67 | |||
| 65 | #endif | 68 | #endif |
| 66 | 69 | ||
| 67 | /* | 70 | /* |
diff --git a/include/linux/lockd/lockd.h b/include/linux/lockd/lockd.h index aa6fe7026de..51855dfd8ad 100644 --- a/include/linux/lockd/lockd.h +++ b/include/linux/lockd/lockd.h | |||
| @@ -346,6 +346,7 @@ static inline int __nlm_cmp_addr4(const struct sockaddr *sap1, | |||
| 346 | return sin1->sin_addr.s_addr == sin2->sin_addr.s_addr; | 346 | return sin1->sin_addr.s_addr == sin2->sin_addr.s_addr; |
| 347 | } | 347 | } |
| 348 | 348 | ||
| 349 | #if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) | ||
| 349 | static inline int __nlm_cmp_addr6(const struct sockaddr *sap1, | 350 | static inline int __nlm_cmp_addr6(const struct sockaddr *sap1, |
| 350 | const struct sockaddr *sap2) | 351 | const struct sockaddr *sap2) |
| 351 | { | 352 | { |
| @@ -353,6 +354,13 @@ static inline int __nlm_cmp_addr6(const struct sockaddr *sap1, | |||
| 353 | const struct sockaddr_in6 *sin2 = (const struct sockaddr_in6 *)sap2; | 354 | const struct sockaddr_in6 *sin2 = (const struct sockaddr_in6 *)sap2; |
| 354 | return ipv6_addr_equal(&sin1->sin6_addr, &sin2->sin6_addr); | 355 | return ipv6_addr_equal(&sin1->sin6_addr, &sin2->sin6_addr); |
| 355 | } | 356 | } |
| 357 | #else /* !(CONFIG_IPV6 || CONFIG_IPV6_MODULE) */ | ||
| 358 | static inline int __nlm_cmp_addr6(const struct sockaddr *sap1, | ||
| 359 | const struct sockaddr *sap2) | ||
| 360 | { | ||
| 361 | return 0; | ||
| 362 | } | ||
| 363 | #endif /* !(CONFIG_IPV6 || CONFIG_IPV6_MODULE) */ | ||
| 356 | 364 | ||
| 357 | /* | 365 | /* |
| 358 | * Compare two host addresses | 366 | * Compare two host addresses |
diff --git a/include/linux/nfs_xdr.h b/include/linux/nfs_xdr.h index a550b528319..2e5f00066af 100644 --- a/include/linux/nfs_xdr.h +++ b/include/linux/nfs_xdr.h | |||
| @@ -406,6 +406,8 @@ struct nfs3_setaclargs { | |||
| 406 | int mask; | 406 | int mask; |
| 407 | struct posix_acl * acl_access; | 407 | struct posix_acl * acl_access; |
| 408 | struct posix_acl * acl_default; | 408 | struct posix_acl * acl_default; |
| 409 | size_t len; | ||
| 410 | unsigned int npages; | ||
| 409 | struct page ** pages; | 411 | struct page ** pages; |
| 410 | }; | 412 | }; |
| 411 | 413 | ||
diff --git a/include/linux/nfsacl.h b/include/linux/nfsacl.h index 54487a99beb..43011b69297 100644 --- a/include/linux/nfsacl.h +++ b/include/linux/nfsacl.h | |||
| @@ -37,6 +37,9 @@ | |||
| 37 | #define NFSACL_MAXPAGES ((2*(8+12*NFS_ACL_MAX_ENTRIES) + PAGE_SIZE-1) \ | 37 | #define NFSACL_MAXPAGES ((2*(8+12*NFS_ACL_MAX_ENTRIES) + PAGE_SIZE-1) \ |
| 38 | >> PAGE_SHIFT) | 38 | >> PAGE_SHIFT) |
| 39 | 39 | ||
| 40 | #define NFS_ACL_MAX_ENTRIES_INLINE (5) | ||
| 41 | #define NFS_ACL_INLINE_BUFSIZE ((2*(2+3*NFS_ACL_MAX_ENTRIES_INLINE)) << 2) | ||
| 42 | |||
| 40 | static inline unsigned int | 43 | static inline unsigned int |
| 41 | nfsacl_size(struct posix_acl *acl_access, struct posix_acl *acl_default) | 44 | nfsacl_size(struct posix_acl *acl_access, struct posix_acl *acl_default) |
| 42 | { | 45 | { |
diff --git a/include/scsi/fc/fc_fcoe.h b/include/scsi/fc/fc_fcoe.h index 57aaa8f0d61..f271d9cc0fc 100644 --- a/include/scsi/fc/fc_fcoe.h +++ b/include/scsi/fc/fc_fcoe.h | |||
| @@ -31,10 +31,6 @@ | |||
| 31 | #define ETH_P_FCOE 0x8906 /* FCOE ether type */ | 31 | #define ETH_P_FCOE 0x8906 /* FCOE ether type */ |
| 32 | #endif | 32 | #endif |
| 33 | 33 | ||
| 34 | #ifndef ETH_P_8021Q | ||
| 35 | #define ETH_P_8021Q 0x8100 | ||
| 36 | #endif | ||
| 37 | |||
| 38 | /* | 34 | /* |
| 39 | * FC_FCOE_OUI hasn't been standardized yet. XXX TBD. | 35 | * FC_FCOE_OUI hasn't been standardized yet. XXX TBD. |
| 40 | */ | 36 | */ |
diff --git a/include/scsi/fc/fc_fs.h b/include/scsi/fc/fc_fs.h index 3e4801d2bdb..1b7af3a64c7 100644 --- a/include/scsi/fc/fc_fs.h +++ b/include/scsi/fc/fc_fs.h | |||
| @@ -337,4 +337,9 @@ enum fc_pf_rjt_reason { | |||
| 337 | FC_RJT_VENDOR = 0xff, /* vendor specific reject */ | 337 | FC_RJT_VENDOR = 0xff, /* vendor specific reject */ |
| 338 | }; | 338 | }; |
| 339 | 339 | ||
| 340 | /* default timeout values */ | ||
| 341 | |||
| 342 | #define FC_DEF_E_D_TOV 2000UL | ||
| 343 | #define FC_DEF_R_A_TOV 10000UL | ||
| 344 | |||
| 340 | #endif /* _FC_FS_H_ */ | 345 | #endif /* _FC_FS_H_ */ |
diff --git a/include/scsi/libfc.h b/include/scsi/libfc.h index 9f2876397dd..a2e126b86e3 100644 --- a/include/scsi/libfc.h +++ b/include/scsi/libfc.h | |||
| @@ -68,9 +68,6 @@ | |||
| 68 | /* | 68 | /* |
| 69 | * FC HBA status | 69 | * FC HBA status |
| 70 | */ | 70 | */ |
| 71 | #define FC_PAUSE (1 << 1) | ||
| 72 | #define FC_LINK_UP (1 << 0) | ||
| 73 | |||
| 74 | enum fc_lport_state { | 71 | enum fc_lport_state { |
| 75 | LPORT_ST_NONE = 0, | 72 | LPORT_ST_NONE = 0, |
| 76 | LPORT_ST_FLOGI, | 73 | LPORT_ST_FLOGI, |
| @@ -339,31 +336,17 @@ struct fc_exch { | |||
| 339 | 336 | ||
| 340 | struct libfc_function_template { | 337 | struct libfc_function_template { |
| 341 | 338 | ||
| 342 | /** | ||
| 343 | * Mandatory Fields | ||
| 344 | * | ||
| 345 | * These handlers must be implemented by the LLD. | ||
| 346 | */ | ||
| 347 | |||
| 348 | /* | 339 | /* |
| 349 | * Interface to send a FC frame | 340 | * Interface to send a FC frame |
| 350 | */ | ||
| 351 | int (*frame_send)(struct fc_lport *lp, struct fc_frame *fp); | ||
| 352 | |||
| 353 | /** | ||
| 354 | * Optional Fields | ||
| 355 | * | 341 | * |
| 356 | * The LLD may choose to implement any of the following handlers. | 342 | * STATUS: REQUIRED |
| 357 | * If LLD doesn't specify hander and leaves its pointer NULL then | ||
| 358 | * the default libfc function will be used for that handler. | ||
| 359 | */ | ||
| 360 | |||
| 361 | /** | ||
| 362 | * ELS/CT interfaces | ||
| 363 | */ | 343 | */ |
| 344 | int (*frame_send)(struct fc_lport *lp, struct fc_frame *fp); | ||
| 364 | 345 | ||
| 365 | /* | 346 | /* |
| 366 | * elsct_send - sends ELS/CT frame | 347 | * Interface to send ELS/CT frames |
| 348 | * | ||
| 349 | * STATUS: OPTIONAL | ||
| 367 | */ | 350 | */ |
| 368 | struct fc_seq *(*elsct_send)(struct fc_lport *lport, | 351 | struct fc_seq *(*elsct_send)(struct fc_lport *lport, |
| 369 | struct fc_rport *rport, | 352 | struct fc_rport *rport, |
| @@ -373,9 +356,6 @@ struct libfc_function_template { | |||
| 373 | struct fc_frame *fp, | 356 | struct fc_frame *fp, |
| 374 | void *arg), | 357 | void *arg), |
| 375 | void *arg, u32 timer_msec); | 358 | void *arg, u32 timer_msec); |
| 376 | /** | ||
| 377 | * Exhance Manager interfaces | ||
| 378 | */ | ||
| 379 | 359 | ||
| 380 | /* | 360 | /* |
| 381 | * Send the FC frame payload using a new exchange and sequence. | 361 | * Send the FC frame payload using a new exchange and sequence. |
| @@ -407,6 +387,8 @@ struct libfc_function_template { | |||
| 407 | * timer_msec argument is specified. The timer is canceled when | 387 | * timer_msec argument is specified. The timer is canceled when |
| 408 | * it fires or when the exchange is done. The exchange timeout handler | 388 | * it fires or when the exchange is done. The exchange timeout handler |
| 409 | * is registered by EM layer. | 389 | * is registered by EM layer. |
| 390 | * | ||
| 391 | * STATUS: OPTIONAL | ||
| 410 | */ | 392 | */ |
| 411 | struct fc_seq *(*exch_seq_send)(struct fc_lport *lp, | 393 | struct fc_seq *(*exch_seq_send)(struct fc_lport *lp, |
| 412 | struct fc_frame *fp, | 394 | struct fc_frame *fp, |
| @@ -418,14 +400,18 @@ struct libfc_function_template { | |||
| 418 | void *arg, unsigned int timer_msec); | 400 | void *arg, unsigned int timer_msec); |
| 419 | 401 | ||
| 420 | /* | 402 | /* |
| 421 | * send a frame using existing sequence and exchange. | 403 | * Send a frame using an existing sequence and exchange. |
| 404 | * | ||
| 405 | * STATUS: OPTIONAL | ||
| 422 | */ | 406 | */ |
| 423 | int (*seq_send)(struct fc_lport *lp, struct fc_seq *sp, | 407 | int (*seq_send)(struct fc_lport *lp, struct fc_seq *sp, |
| 424 | struct fc_frame *fp); | 408 | struct fc_frame *fp); |
| 425 | 409 | ||
| 426 | /* | 410 | /* |
| 427 | * Send ELS response using mainly infomation | 411 | * Send an ELS response using infomation from a previous |
| 428 | * in exchange and sequence in EM layer. | 412 | * exchange and sequence. |
| 413 | * | ||
| 414 | * STATUS: OPTIONAL | ||
| 429 | */ | 415 | */ |
| 430 | void (*seq_els_rsp_send)(struct fc_seq *sp, enum fc_els_cmd els_cmd, | 416 | void (*seq_els_rsp_send)(struct fc_seq *sp, enum fc_els_cmd els_cmd, |
| 431 | struct fc_seq_els_data *els_data); | 417 | struct fc_seq_els_data *els_data); |
| @@ -437,6 +423,8 @@ struct libfc_function_template { | |||
| 437 | * A timer_msec can be specified for abort timeout, if non-zero | 423 | * A timer_msec can be specified for abort timeout, if non-zero |
| 438 | * timer_msec value is specified then exchange resp handler | 424 | * timer_msec value is specified then exchange resp handler |
| 439 | * will be called with timeout error if no response to abort. | 425 | * will be called with timeout error if no response to abort. |
| 426 | * | ||
| 427 | * STATUS: OPTIONAL | ||
| 440 | */ | 428 | */ |
| 441 | int (*seq_exch_abort)(const struct fc_seq *req_sp, | 429 | int (*seq_exch_abort)(const struct fc_seq *req_sp, |
| 442 | unsigned int timer_msec); | 430 | unsigned int timer_msec); |
| @@ -444,6 +432,8 @@ struct libfc_function_template { | |||
| 444 | /* | 432 | /* |
| 445 | * Indicate that an exchange/sequence tuple is complete and the memory | 433 | * Indicate that an exchange/sequence tuple is complete and the memory |
| 446 | * allocated for the related objects may be freed. | 434 | * allocated for the related objects may be freed. |
| 435 | * | ||
| 436 | * STATUS: OPTIONAL | ||
| 447 | */ | 437 | */ |
| 448 | void (*exch_done)(struct fc_seq *sp); | 438 | void (*exch_done)(struct fc_seq *sp); |
| 449 | 439 | ||
| @@ -451,6 +441,8 @@ struct libfc_function_template { | |||
| 451 | * Assigns a EM and a free XID for an new exchange and then | 441 | * Assigns a EM and a free XID for an new exchange and then |
| 452 | * allocates a new exchange and sequence pair. | 442 | * allocates a new exchange and sequence pair. |
| 453 | * The fp can be used to determine free XID. | 443 | * The fp can be used to determine free XID. |
| 444 | * | ||
| 445 | * STATUS: OPTIONAL | ||
| 454 | */ | 446 | */ |
| 455 | struct fc_exch *(*exch_get)(struct fc_lport *lp, struct fc_frame *fp); | 447 | struct fc_exch *(*exch_get)(struct fc_lport *lp, struct fc_frame *fp); |
| 456 | 448 | ||
| @@ -458,12 +450,16 @@ struct libfc_function_template { | |||
| 458 | * Release previously assigned XID by exch_get API. | 450 | * Release previously assigned XID by exch_get API. |
| 459 | * The LLD may implement this if XID is assigned by LLD | 451 | * The LLD may implement this if XID is assigned by LLD |
| 460 | * in exch_get(). | 452 | * in exch_get(). |
| 453 | * | ||
| 454 | * STATUS: OPTIONAL | ||
| 461 | */ | 455 | */ |
| 462 | void (*exch_put)(struct fc_lport *lp, struct fc_exch_mgr *mp, | 456 | void (*exch_put)(struct fc_lport *lp, struct fc_exch_mgr *mp, |
| 463 | u16 ex_id); | 457 | u16 ex_id); |
| 464 | 458 | ||
| 465 | /* | 459 | /* |
| 466 | * Start a new sequence on the same exchange/sequence tuple. | 460 | * Start a new sequence on the same exchange/sequence tuple. |
| 461 | * | ||
| 462 | * STATUS: OPTIONAL | ||
| 467 | */ | 463 | */ |
| 468 | struct fc_seq *(*seq_start_next)(struct fc_seq *sp); | 464 | struct fc_seq *(*seq_start_next)(struct fc_seq *sp); |
| 469 | 465 | ||
| @@ -471,26 +467,38 @@ struct libfc_function_template { | |||
| 471 | * Reset an exchange manager, completing all sequences and exchanges. | 467 | * Reset an exchange manager, completing all sequences and exchanges. |
| 472 | * If s_id is non-zero, reset only exchanges originating from that FID. | 468 | * If s_id is non-zero, reset only exchanges originating from that FID. |
| 473 | * If d_id is non-zero, reset only exchanges sending to that FID. | 469 | * If d_id is non-zero, reset only exchanges sending to that FID. |
| 470 | * | ||
| 471 | * STATUS: OPTIONAL | ||
| 474 | */ | 472 | */ |
| 475 | void (*exch_mgr_reset)(struct fc_exch_mgr *, | 473 | void (*exch_mgr_reset)(struct fc_lport *, |
| 476 | u32 s_id, u32 d_id); | 474 | u32 s_id, u32 d_id); |
| 477 | 475 | ||
| 478 | void (*rport_flush_queue)(void); | 476 | /* |
| 479 | /** | 477 | * Flush the rport work queue. Generally used before shutdown. |
| 480 | * Local Port interfaces | 478 | * |
| 479 | * STATUS: OPTIONAL | ||
| 481 | */ | 480 | */ |
| 481 | void (*rport_flush_queue)(void); | ||
| 482 | 482 | ||
| 483 | /* | 483 | /* |
| 484 | * Receive a frame to a local port. | 484 | * Receive a frame for a local port. |
| 485 | * | ||
| 486 | * STATUS: OPTIONAL | ||
| 485 | */ | 487 | */ |
| 486 | void (*lport_recv)(struct fc_lport *lp, struct fc_seq *sp, | 488 | void (*lport_recv)(struct fc_lport *lp, struct fc_seq *sp, |
| 487 | struct fc_frame *fp); | 489 | struct fc_frame *fp); |
| 488 | 490 | ||
| 491 | /* | ||
| 492 | * Reset the local port. | ||
| 493 | * | ||
| 494 | * STATUS: OPTIONAL | ||
| 495 | */ | ||
| 489 | int (*lport_reset)(struct fc_lport *); | 496 | int (*lport_reset)(struct fc_lport *); |
| 490 | 497 | ||
| 491 | /** | 498 | /* |
| 492 | * Remote Port interfaces | 499 | * Create a remote port |
| 493 | */ | 500 | */ |
| 501 | struct fc_rport *(*rport_create)(struct fc_disc_port *); | ||
| 494 | 502 | ||
| 495 | /* | 503 | /* |
| 496 | * Initiates the RP state machine. It is called from the LP module. | 504 | * Initiates the RP state machine. It is called from the LP module. |
| @@ -500,26 +508,33 @@ struct libfc_function_template { | |||
| 500 | * - PLOGI | 508 | * - PLOGI |
| 501 | * - PRLI | 509 | * - PRLI |
| 502 | * - RTV | 510 | * - RTV |
| 511 | * | ||
| 512 | * STATUS: OPTIONAL | ||
| 503 | */ | 513 | */ |
| 504 | int (*rport_login)(struct fc_rport *rport); | 514 | int (*rport_login)(struct fc_rport *rport); |
| 505 | 515 | ||
| 506 | /* | 516 | /* |
| 507 | * Logoff, and remove the rport from the transport if | 517 | * Logoff, and remove the rport from the transport if |
| 508 | * it had been added. This will send a LOGO to the target. | 518 | * it had been added. This will send a LOGO to the target. |
| 519 | * | ||
| 520 | * STATUS: OPTIONAL | ||
| 509 | */ | 521 | */ |
| 510 | int (*rport_logoff)(struct fc_rport *rport); | 522 | int (*rport_logoff)(struct fc_rport *rport); |
| 511 | 523 | ||
| 512 | /* | 524 | /* |
| 513 | * Recieve a request from a remote port. | 525 | * Recieve a request from a remote port. |
| 526 | * | ||
| 527 | * STATUS: OPTIONAL | ||
| 514 | */ | 528 | */ |
| 515 | void (*rport_recv_req)(struct fc_seq *, struct fc_frame *, | 529 | void (*rport_recv_req)(struct fc_seq *, struct fc_frame *, |
| 516 | struct fc_rport *); | 530 | struct fc_rport *); |
| 517 | 531 | ||
| 518 | struct fc_rport *(*rport_lookup)(const struct fc_lport *, u32); | 532 | /* |
| 519 | 533 | * lookup an rport by it's port ID. | |
| 520 | /** | 534 | * |
| 521 | * FCP interfaces | 535 | * STATUS: OPTIONAL |
| 522 | */ | 536 | */ |
| 537 | struct fc_rport *(*rport_lookup)(const struct fc_lport *, u32); | ||
| 523 | 538 | ||
| 524 | /* | 539 | /* |
| 525 | * Send a fcp cmd from fsp pkt. | 540 | * Send a fcp cmd from fsp pkt. |
| @@ -527,30 +542,38 @@ struct libfc_function_template { | |||
| 527 | * | 542 | * |
| 528 | * The resp handler is called when FCP_RSP received. | 543 | * The resp handler is called when FCP_RSP received. |
| 529 | * | 544 | * |
| 545 | * STATUS: OPTIONAL | ||
| 530 | */ | 546 | */ |
| 531 | int (*fcp_cmd_send)(struct fc_lport *lp, struct fc_fcp_pkt *fsp, | 547 | int (*fcp_cmd_send)(struct fc_lport *lp, struct fc_fcp_pkt *fsp, |
| 532 | void (*resp)(struct fc_seq *, struct fc_frame *fp, | 548 | void (*resp)(struct fc_seq *, struct fc_frame *fp, |
| 533 | void *arg)); | 549 | void *arg)); |
| 534 | 550 | ||
| 535 | /* | 551 | /* |
| 536 | * Used at least durring linkdown and reset | 552 | * Cleanup the FCP layer, used durring link down and reset |
| 553 | * | ||
| 554 | * STATUS: OPTIONAL | ||
| 537 | */ | 555 | */ |
| 538 | void (*fcp_cleanup)(struct fc_lport *lp); | 556 | void (*fcp_cleanup)(struct fc_lport *lp); |
| 539 | 557 | ||
| 540 | /* | 558 | /* |
| 541 | * Abort all I/O on a local port | 559 | * Abort all I/O on a local port |
| 560 | * | ||
| 561 | * STATUS: OPTIONAL | ||
| 542 | */ | 562 | */ |
| 543 | void (*fcp_abort_io)(struct fc_lport *lp); | 563 | void (*fcp_abort_io)(struct fc_lport *lp); |
| 544 | 564 | ||
| 545 | /** | 565 | /* |
| 546 | * Discovery interfaces | 566 | * Receive a request for the discovery layer. |
| 567 | * | ||
| 568 | * STATUS: OPTIONAL | ||
| 547 | */ | 569 | */ |
| 548 | |||
| 549 | void (*disc_recv_req)(struct fc_seq *, | 570 | void (*disc_recv_req)(struct fc_seq *, |
| 550 | struct fc_frame *, struct fc_lport *); | 571 | struct fc_frame *, struct fc_lport *); |
| 551 | 572 | ||
| 552 | /* | 573 | /* |
| 553 | * Start discovery for a local port. | 574 | * Start discovery for a local port. |
| 575 | * | ||
| 576 | * STATUS: OPTIONAL | ||
| 554 | */ | 577 | */ |
| 555 | void (*disc_start)(void (*disc_callback)(struct fc_lport *, | 578 | void (*disc_start)(void (*disc_callback)(struct fc_lport *, |
| 556 | enum fc_disc_event), | 579 | enum fc_disc_event), |
| @@ -559,6 +582,8 @@ struct libfc_function_template { | |||
| 559 | /* | 582 | /* |
| 560 | * Stop discovery for a given lport. This will remove | 583 | * Stop discovery for a given lport. This will remove |
| 561 | * all discovered rports | 584 | * all discovered rports |
| 585 | * | ||
| 586 | * STATUS: OPTIONAL | ||
| 562 | */ | 587 | */ |
| 563 | void (*disc_stop) (struct fc_lport *); | 588 | void (*disc_stop) (struct fc_lport *); |
| 564 | 589 | ||
| @@ -566,6 +591,8 @@ struct libfc_function_template { | |||
| 566 | * Stop discovery for a given lport. This will block | 591 | * Stop discovery for a given lport. This will block |
| 567 | * until all discovered rports are deleted from the | 592 | * until all discovered rports are deleted from the |
| 568 | * FC transport class | 593 | * FC transport class |
| 594 | * | ||
| 595 | * STATUS: OPTIONAL | ||
| 569 | */ | 596 | */ |
| 570 | void (*disc_stop_final) (struct fc_lport *); | 597 | void (*disc_stop_final) (struct fc_lport *); |
| 571 | }; | 598 | }; |
| @@ -603,7 +630,8 @@ struct fc_lport { | |||
| 603 | 630 | ||
| 604 | /* Operational Information */ | 631 | /* Operational Information */ |
| 605 | struct libfc_function_template tt; | 632 | struct libfc_function_template tt; |
| 606 | u16 link_status; | 633 | u8 link_up; |
| 634 | u8 qfull; | ||
| 607 | enum fc_lport_state state; | 635 | enum fc_lport_state state; |
| 608 | unsigned long boot_time; | 636 | unsigned long boot_time; |
| 609 | 637 | ||
| @@ -637,7 +665,7 @@ struct fc_lport { | |||
| 637 | struct delayed_work disc_work; | 665 | struct delayed_work disc_work; |
| 638 | }; | 666 | }; |
| 639 | 667 | ||
| 640 | /** | 668 | /* |
| 641 | * FC_LPORT HELPER FUNCTIONS | 669 | * FC_LPORT HELPER FUNCTIONS |
| 642 | *****************************/ | 670 | *****************************/ |
| 643 | static inline void *lport_priv(const struct fc_lport *lp) | 671 | static inline void *lport_priv(const struct fc_lport *lp) |
| @@ -669,7 +697,7 @@ static inline void fc_lport_state_enter(struct fc_lport *lp, | |||
| 669 | } | 697 | } |
| 670 | 698 | ||
| 671 | 699 | ||
| 672 | /** | 700 | /* |
| 673 | * LOCAL PORT LAYER | 701 | * LOCAL PORT LAYER |
| 674 | *****************************/ | 702 | *****************************/ |
| 675 | int fc_lport_init(struct fc_lport *lp); | 703 | int fc_lport_init(struct fc_lport *lp); |
| @@ -704,12 +732,6 @@ void fc_linkup(struct fc_lport *); | |||
| 704 | void fc_linkdown(struct fc_lport *); | 732 | void fc_linkdown(struct fc_lport *); |
| 705 | 733 | ||
| 706 | /* | 734 | /* |
| 707 | * Pause and unpause traffic. | ||
| 708 | */ | ||
| 709 | void fc_pause(struct fc_lport *); | ||
| 710 | void fc_unpause(struct fc_lport *); | ||
| 711 | |||
| 712 | /* | ||
| 713 | * Configure the local port. | 735 | * Configure the local port. |
| 714 | */ | 736 | */ |
| 715 | int fc_lport_config(struct fc_lport *); | 737 | int fc_lport_config(struct fc_lport *); |
| @@ -725,19 +747,19 @@ int fc_lport_reset(struct fc_lport *); | |||
| 725 | int fc_set_mfs(struct fc_lport *lp, u32 mfs); | 747 | int fc_set_mfs(struct fc_lport *lp, u32 mfs); |
| 726 | 748 | ||
| 727 | 749 | ||
| 728 | /** | 750 | /* |
| 729 | * REMOTE PORT LAYER | 751 | * REMOTE PORT LAYER |
| 730 | *****************************/ | 752 | *****************************/ |
| 731 | int fc_rport_init(struct fc_lport *lp); | 753 | int fc_rport_init(struct fc_lport *lp); |
| 732 | void fc_rport_terminate_io(struct fc_rport *rp); | 754 | void fc_rport_terminate_io(struct fc_rport *rp); |
| 733 | 755 | ||
| 734 | /** | 756 | /* |
| 735 | * DISCOVERY LAYER | 757 | * DISCOVERY LAYER |
| 736 | *****************************/ | 758 | *****************************/ |
| 737 | int fc_disc_init(struct fc_lport *lp); | 759 | int fc_disc_init(struct fc_lport *lp); |
| 738 | 760 | ||
| 739 | 761 | ||
| 740 | /** | 762 | /* |
| 741 | * SCSI LAYER | 763 | * SCSI LAYER |
| 742 | *****************************/ | 764 | *****************************/ |
| 743 | /* | 765 | /* |
| @@ -798,7 +820,7 @@ int fc_change_queue_type(struct scsi_device *sdev, int tag_type); | |||
| 798 | */ | 820 | */ |
| 799 | void fc_fcp_destroy(struct fc_lport *); | 821 | void fc_fcp_destroy(struct fc_lport *); |
| 800 | 822 | ||
| 801 | /** | 823 | /* |
| 802 | * ELS/CT interface | 824 | * ELS/CT interface |
| 803 | *****************************/ | 825 | *****************************/ |
| 804 | /* | 826 | /* |
| @@ -807,7 +829,7 @@ void fc_fcp_destroy(struct fc_lport *); | |||
| 807 | int fc_elsct_init(struct fc_lport *lp); | 829 | int fc_elsct_init(struct fc_lport *lp); |
| 808 | 830 | ||
| 809 | 831 | ||
| 810 | /** | 832 | /* |
| 811 | * EXCHANGE MANAGER LAYER | 833 | * EXCHANGE MANAGER LAYER |
| 812 | *****************************/ | 834 | *****************************/ |
| 813 | /* | 835 | /* |
| @@ -916,7 +938,7 @@ struct fc_seq *fc_seq_start_next(struct fc_seq *sp); | |||
| 916 | * If s_id is non-zero, reset only exchanges originating from that FID. | 938 | * If s_id is non-zero, reset only exchanges originating from that FID. |
| 917 | * If d_id is non-zero, reset only exchanges sending to that FID. | 939 | * If d_id is non-zero, reset only exchanges sending to that FID. |
| 918 | */ | 940 | */ |
| 919 | void fc_exch_mgr_reset(struct fc_exch_mgr *, u32 s_id, u32 d_id); | 941 | void fc_exch_mgr_reset(struct fc_lport *, u32 s_id, u32 d_id); |
| 920 | 942 | ||
| 921 | /* | 943 | /* |
| 922 | * Functions for fc_functions_template | 944 | * Functions for fc_functions_template |
diff --git a/include/scsi/libfcoe.h b/include/scsi/libfcoe.h index 89fdbb9a6a1..941818f29f5 100644 --- a/include/scsi/libfcoe.h +++ b/include/scsi/libfcoe.h | |||
| @@ -46,6 +46,7 @@ struct fcoe_softc { | |||
| 46 | struct net_device *phys_dev; /* device with ethtool_ops */ | 46 | struct net_device *phys_dev; /* device with ethtool_ops */ |
| 47 | struct packet_type fcoe_packet_type; | 47 | struct packet_type fcoe_packet_type; |
| 48 | struct sk_buff_head fcoe_pending_queue; | 48 | struct sk_buff_head fcoe_pending_queue; |
| 49 | u8 fcoe_pending_queue_active; | ||
| 49 | 50 | ||
| 50 | u8 dest_addr[ETH_ALEN]; | 51 | u8 dest_addr[ETH_ALEN]; |
| 51 | u8 ctl_src_addr[ETH_ALEN]; | 52 | u8 ctl_src_addr[ETH_ALEN]; |
| @@ -58,16 +59,10 @@ struct fcoe_softc { | |||
| 58 | u8 address_mode; | 59 | u8 address_mode; |
| 59 | }; | 60 | }; |
| 60 | 61 | ||
| 61 | static inline struct fcoe_softc *fcoe_softc( | ||
| 62 | const struct fc_lport *lp) | ||
| 63 | { | ||
| 64 | return (struct fcoe_softc *)lport_priv(lp); | ||
| 65 | } | ||
| 66 | |||
| 67 | static inline struct net_device *fcoe_netdev( | 62 | static inline struct net_device *fcoe_netdev( |
| 68 | const struct fc_lport *lp) | 63 | const struct fc_lport *lp) |
| 69 | { | 64 | { |
| 70 | return fcoe_softc(lp)->real_dev; | 65 | return ((struct fcoe_softc *)lport_priv(lp))->real_dev; |
| 71 | } | 66 | } |
| 72 | 67 | ||
| 73 | static inline struct fcoe_hdr *skb_fcoe_header(const struct sk_buff *skb) | 68 | static inline struct fcoe_hdr *skb_fcoe_header(const struct sk_buff *skb) |
