diff options
| author | Arnd Bergmann <arnd@arndb.de> | 2012-03-15 17:07:57 -0400 |
|---|---|---|
| committer | Arnd Bergmann <arnd@arndb.de> | 2012-03-15 17:07:57 -0400 |
| commit | e7051e9dab77ddeaddbe12364939ae239d92ca73 (patch) | |
| tree | b1855cb663f64a374277df1a909cbac1ecf15fbf /include/linux | |
| parent | 38abdcd0d0689aaca94e740ac67a952c7918caef (diff) | |
| parent | 5da30bb6d902a36265e74f7141a904b19ec25bd4 (diff) | |
Merge branch 'samsung/exynos5' into next/soc2
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/compat.h | 4 | ||||
| -rw-r--r-- | include/linux/dcache.h | 21 | ||||
| -rw-r--r-- | include/linux/if_link.h | 1 | ||||
| -rw-r--r-- | include/linux/netfilter_bridge/ebtables.h | 4 | ||||
| -rw-r--r-- | include/linux/regset.h | 10 | ||||
| -rw-r--r-- | include/linux/rtnetlink.h | 3 | ||||
| -rw-r--r-- | include/linux/skbuff.h | 10 |
7 files changed, 35 insertions, 18 deletions
diff --git a/include/linux/compat.h b/include/linux/compat.h index 41c9f6515f46..7e05fcee75a1 100644 --- a/include/linux/compat.h +++ b/include/linux/compat.h | |||
| @@ -561,5 +561,9 @@ asmlinkage ssize_t compat_sys_process_vm_writev(compat_pid_t pid, | |||
| 561 | unsigned long liovcnt, const struct compat_iovec __user *rvec, | 561 | unsigned long liovcnt, const struct compat_iovec __user *rvec, |
| 562 | unsigned long riovcnt, unsigned long flags); | 562 | unsigned long riovcnt, unsigned long flags); |
| 563 | 563 | ||
| 564 | #else | ||
| 565 | |||
| 566 | #define is_compat_task() (0) | ||
| 567 | |||
| 564 | #endif /* CONFIG_COMPAT */ | 568 | #endif /* CONFIG_COMPAT */ |
| 565 | #endif /* _LINUX_COMPAT_H */ | 569 | #endif /* _LINUX_COMPAT_H */ |
diff --git a/include/linux/dcache.h b/include/linux/dcache.h index d64a55b23afd..4270bedd2308 100644 --- a/include/linux/dcache.h +++ b/include/linux/dcache.h | |||
| @@ -54,18 +54,17 @@ extern struct dentry_stat_t dentry_stat; | |||
| 54 | static inline int dentry_cmp(const unsigned char *cs, size_t scount, | 54 | static inline int dentry_cmp(const unsigned char *cs, size_t scount, |
| 55 | const unsigned char *ct, size_t tcount) | 55 | const unsigned char *ct, size_t tcount) |
| 56 | { | 56 | { |
| 57 | int ret; | ||
| 58 | if (scount != tcount) | 57 | if (scount != tcount) |
| 59 | return 1; | 58 | return 1; |
| 59 | |||
| 60 | do { | 60 | do { |
| 61 | ret = (*cs != *ct); | 61 | if (*cs != *ct) |
| 62 | if (ret) | 62 | return 1; |
| 63 | break; | ||
| 64 | cs++; | 63 | cs++; |
| 65 | ct++; | 64 | ct++; |
| 66 | tcount--; | 65 | tcount--; |
| 67 | } while (tcount); | 66 | } while (tcount); |
| 68 | return ret; | 67 | return 0; |
| 69 | } | 68 | } |
| 70 | 69 | ||
| 71 | /* Name hashing routines. Initial hash value */ | 70 | /* Name hashing routines. Initial hash value */ |
| @@ -89,14 +88,7 @@ static inline unsigned long end_name_hash(unsigned long hash) | |||
| 89 | } | 88 | } |
| 90 | 89 | ||
| 91 | /* Compute the hash for a name string. */ | 90 | /* Compute the hash for a name string. */ |
| 92 | static inline unsigned int | 91 | extern unsigned int full_name_hash(const unsigned char *, unsigned int); |
| 93 | full_name_hash(const unsigned char *name, unsigned int len) | ||
| 94 | { | ||
| 95 | unsigned long hash = init_name_hash(); | ||
| 96 | while (len--) | ||
| 97 | hash = partial_name_hash(*name++, hash); | ||
| 98 | return end_name_hash(hash); | ||
| 99 | } | ||
| 100 | 92 | ||
| 101 | /* | 93 | /* |
| 102 | * Try to keep struct dentry aligned on 64 byte cachelines (this will | 94 | * Try to keep struct dentry aligned on 64 byte cachelines (this will |
| @@ -309,7 +301,8 @@ extern struct dentry *d_ancestor(struct dentry *, struct dentry *); | |||
| 309 | extern struct dentry *d_lookup(struct dentry *, struct qstr *); | 301 | extern struct dentry *d_lookup(struct dentry *, struct qstr *); |
| 310 | extern struct dentry *d_hash_and_lookup(struct dentry *, struct qstr *); | 302 | extern struct dentry *d_hash_and_lookup(struct dentry *, struct qstr *); |
| 311 | extern struct dentry *__d_lookup(struct dentry *, struct qstr *); | 303 | extern struct dentry *__d_lookup(struct dentry *, struct qstr *); |
| 312 | extern struct dentry *__d_lookup_rcu(struct dentry *parent, struct qstr *name, | 304 | extern struct dentry *__d_lookup_rcu(const struct dentry *parent, |
| 305 | const struct qstr *name, | ||
| 313 | unsigned *seq, struct inode **inode); | 306 | unsigned *seq, struct inode **inode); |
| 314 | 307 | ||
| 315 | /** | 308 | /** |
diff --git a/include/linux/if_link.h b/include/linux/if_link.h index c52d4b5f872a..4b24ff453aee 100644 --- a/include/linux/if_link.h +++ b/include/linux/if_link.h | |||
| @@ -137,6 +137,7 @@ enum { | |||
| 137 | IFLA_AF_SPEC, | 137 | IFLA_AF_SPEC, |
| 138 | IFLA_GROUP, /* Group the device belongs to */ | 138 | IFLA_GROUP, /* Group the device belongs to */ |
| 139 | IFLA_NET_NS_FD, | 139 | IFLA_NET_NS_FD, |
| 140 | IFLA_EXT_MASK, /* Extended info mask, VFs, etc */ | ||
| 140 | __IFLA_MAX | 141 | __IFLA_MAX |
| 141 | }; | 142 | }; |
| 142 | 143 | ||
diff --git a/include/linux/netfilter_bridge/ebtables.h b/include/linux/netfilter_bridge/ebtables.h index 8797ed16feb2..4dd5bd6994a8 100644 --- a/include/linux/netfilter_bridge/ebtables.h +++ b/include/linux/netfilter_bridge/ebtables.h | |||
| @@ -285,8 +285,8 @@ struct ebt_table { | |||
| 285 | struct module *me; | 285 | struct module *me; |
| 286 | }; | 286 | }; |
| 287 | 287 | ||
| 288 | #define EBT_ALIGN(s) (((s) + (__alignof__(struct ebt_replace)-1)) & \ | 288 | #define EBT_ALIGN(s) (((s) + (__alignof__(struct _xt_align)-1)) & \ |
| 289 | ~(__alignof__(struct ebt_replace)-1)) | 289 | ~(__alignof__(struct _xt_align)-1)) |
| 290 | extern struct ebt_table *ebt_register_table(struct net *net, | 290 | extern struct ebt_table *ebt_register_table(struct net *net, |
| 291 | const struct ebt_table *table); | 291 | const struct ebt_table *table); |
| 292 | extern void ebt_unregister_table(struct net *net, struct ebt_table *table); | 292 | extern void ebt_unregister_table(struct net *net, struct ebt_table *table); |
diff --git a/include/linux/regset.h b/include/linux/regset.h index 8abee6556223..686f37327a49 100644 --- a/include/linux/regset.h +++ b/include/linux/regset.h | |||
| @@ -335,8 +335,11 @@ static inline int copy_regset_to_user(struct task_struct *target, | |||
| 335 | { | 335 | { |
| 336 | const struct user_regset *regset = &view->regsets[setno]; | 336 | const struct user_regset *regset = &view->regsets[setno]; |
| 337 | 337 | ||
| 338 | if (!regset->get) | ||
| 339 | return -EOPNOTSUPP; | ||
| 340 | |||
| 338 | if (!access_ok(VERIFY_WRITE, data, size)) | 341 | if (!access_ok(VERIFY_WRITE, data, size)) |
| 339 | return -EIO; | 342 | return -EFAULT; |
| 340 | 343 | ||
| 341 | return regset->get(target, regset, offset, size, NULL, data); | 344 | return regset->get(target, regset, offset, size, NULL, data); |
| 342 | } | 345 | } |
| @@ -358,8 +361,11 @@ static inline int copy_regset_from_user(struct task_struct *target, | |||
| 358 | { | 361 | { |
| 359 | const struct user_regset *regset = &view->regsets[setno]; | 362 | const struct user_regset *regset = &view->regsets[setno]; |
| 360 | 363 | ||
| 364 | if (!regset->set) | ||
| 365 | return -EOPNOTSUPP; | ||
| 366 | |||
| 361 | if (!access_ok(VERIFY_READ, data, size)) | 367 | if (!access_ok(VERIFY_READ, data, size)) |
| 362 | return -EIO; | 368 | return -EFAULT; |
| 363 | 369 | ||
| 364 | return regset->set(target, regset, offset, size, NULL, data); | 370 | return regset->set(target, regset, offset, size, NULL, data); |
| 365 | } | 371 | } |
diff --git a/include/linux/rtnetlink.h b/include/linux/rtnetlink.h index 8e872ead88b5..577592ea0ea0 100644 --- a/include/linux/rtnetlink.h +++ b/include/linux/rtnetlink.h | |||
| @@ -602,6 +602,9 @@ struct tcamsg { | |||
| 602 | #define TCA_ACT_TAB 1 /* attr type must be >=1 */ | 602 | #define TCA_ACT_TAB 1 /* attr type must be >=1 */ |
| 603 | #define TCAA_MAX 1 | 603 | #define TCAA_MAX 1 |
| 604 | 604 | ||
| 605 | /* New extended info filters for IFLA_EXT_MASK */ | ||
| 606 | #define RTEXT_FILTER_VF (1 << 0) | ||
| 607 | |||
| 605 | /* End of information exported to user level */ | 608 | /* End of information exported to user level */ |
| 606 | 609 | ||
| 607 | #ifdef __KERNEL__ | 610 | #ifdef __KERNEL__ |
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h index 50db9b04a552..ae86adee3746 100644 --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h | |||
| @@ -1465,6 +1465,16 @@ static inline void skb_set_mac_header(struct sk_buff *skb, const int offset) | |||
| 1465 | } | 1465 | } |
| 1466 | #endif /* NET_SKBUFF_DATA_USES_OFFSET */ | 1466 | #endif /* NET_SKBUFF_DATA_USES_OFFSET */ |
| 1467 | 1467 | ||
| 1468 | static inline void skb_mac_header_rebuild(struct sk_buff *skb) | ||
| 1469 | { | ||
| 1470 | if (skb_mac_header_was_set(skb)) { | ||
| 1471 | const unsigned char *old_mac = skb_mac_header(skb); | ||
| 1472 | |||
| 1473 | skb_set_mac_header(skb, -skb->mac_len); | ||
| 1474 | memmove(skb_mac_header(skb), old_mac, skb->mac_len); | ||
| 1475 | } | ||
| 1476 | } | ||
| 1477 | |||
| 1468 | static inline int skb_checksum_start_offset(const struct sk_buff *skb) | 1478 | static inline int skb_checksum_start_offset(const struct sk_buff *skb) |
| 1469 | { | 1479 | { |
| 1470 | return skb->csum_start - skb_headroom(skb); | 1480 | return skb->csum_start - skb_headroom(skb); |
