History

Merge tag 'kvm-s390-next-5.7-1' of git://git.kernel.org/pub/scm/linux/kernel/git/kvms390/linux into HEAD

KVM: s390: Features and Enhancements for 5.7 part1 1. Allow to disable gisa 2. protected virtual machines Protected VMs (PVM) are KVM VMs, where KVM can't access the VM's state like guest memory and guest registers anymore. Instead the PVMs are mostly managed by a new entity called Ultravisor (UV), which provides an API, so KVM and the PV can request management actions. PVMs are encrypted at rest and protected from hypervisor access while running. They switch from a normal operation into protected mode, so we can still use the standard boot process to load a encrypted blob and then move it into protected mode. Rebooting is only possible by passing through the unprotected/normal mode and switching to protected again. One mm related patch will go via Andrews mm tree ( mm/gup/writeback: add callbacks for inaccessible pages)

Paolo Bonzini committed 6 years ago

Commit 1c482452 parents 6d05a96 cc674ef362 files · +6431 −2586Browse files

Showing the changes to include/linux (9 of 362 files). Show all

Unified · Split

9 files
  1. include/linux/cpufreq.h +0 −3
  2. include/linux/dax.h +2 −12
  3. include/linux/icmpv6.h +6 −0
  4. include/linux/netdevice.h +15 −1
  5. include/linux/nfs_fs.h +6 −20
  6. include/linux/pipe_fs_i.h +2 −1
  7. include/linux/sched/nohz.h +2 −0
  8. include/linux/suspend.h +1 −1
  9. include/linux/trace_events.h +1 −1
include/linux/cpufreq.h+0−3
@@ -201,9 +201,6 @@ static inline bool policy_is_shared(struct cpufreq_policy *policy) · 200 unmodified lines
201 return cpumask_weight(policy->cpus) > 1;201 return cpumask_weight(policy->cpus) > 1;
202}202}
203 203
204/* /sys/devices/system/cpu/cpufreq: entry point for global variables */
205extern struct kobject *cpufreq_global_kobject;
206
207#ifdef CONFIG_CPU_FREQ204#ifdef CONFIG_CPU_FREQ
208unsigned int cpufreq_get(unsigned int cpu);205unsigned int cpufreq_get(unsigned int cpu);
209unsigned int cpufreq_quick_get(unsigned int cpu);206unsigned int cpufreq_quick_get(unsigned int cpu);
include/linux/dax.h+2−12
@@ -129,11 +129,6 @@ static inline bool generic_fsdax_supported(struct dax_device *dax_dev, · 128 unmodified lines
129 sectors);129 sectors);
130}130}
131 131
132static inline struct dax_device *fs_dax_get_by_host(const char *host)
133{
134 return dax_get_by_host(host);
135}
136
137static inline void fs_put_dax(struct dax_device *dax_dev)132static inline void fs_put_dax(struct dax_device *dax_dev)
138{133{
139 put_dax(dax_dev);134 put_dax(dax_dev);
@@ -141,7 +136,7 @@ static inline void fs_put_dax(struct dax_device *dax_dev) · 1 unmodified line
141 136
142struct dax_device *fs_dax_get_by_bdev(struct block_device *bdev);137struct dax_device *fs_dax_get_by_bdev(struct block_device *bdev);
143int dax_writeback_mapping_range(struct address_space *mapping,138int dax_writeback_mapping_range(struct address_space *mapping,
144 struct block_device *bdev, struct writeback_control *wbc);139 struct dax_device *dax_dev, struct writeback_control *wbc);
145 140
146struct page *dax_layout_busy_page(struct address_space *mapping);141struct page *dax_layout_busy_page(struct address_space *mapping);
147dax_entry_t dax_lock_page(struct page *page);142dax_entry_t dax_lock_page(struct page *page);
@@ -160,11 +155,6 @@ static inline bool generic_fsdax_supported(struct dax_device *dax_dev, · 12 unmodified lines
160 return false;155 return false;
161}156}
162 157
163static inline struct dax_device *fs_dax_get_by_host(const char *host)
164{
165 return NULL;
166}
167
168static inline void fs_put_dax(struct dax_device *dax_dev)158static inline void fs_put_dax(struct dax_device *dax_dev)
169{159{
170}160}
@@ -180,7 +170,7 @@ static inline struct page *dax_layout_busy_page(struct address_space *mapping) · 9 unmodified lines
180}170}
181 171
182static inline int dax_writeback_mapping_range(struct address_space *mapping,172static inline int dax_writeback_mapping_range(struct address_space *mapping,
183 struct block_device *bdev, struct writeback_control *wbc)173 struct dax_device *dax_dev, struct writeback_control *wbc)
184{174{
185 return -EOPNOTSUPP;175 return -EOPNOTSUPP;
186}176}
include/linux/icmpv6.h+6−0
@@ -31,6 +31,12 @@ static inline void icmpv6_send(struct sk_buff *skb, · 30 unmodified lines
31}31}
32#endif32#endif
33 33
34#if IS_ENABLED(CONFIG_NF_NAT)
35void icmpv6_ndo_send(struct sk_buff *skb_in, u8 type, u8 code, __u32 info);
36#else
37#define icmpv6_ndo_send icmpv6_send
38#endif
39
34extern int icmpv6_init(void);40extern int icmpv6_init(void);
35extern int icmpv6_err_convert(u8 type, u8 code,41extern int icmpv6_err_convert(u8 type, u8 code,
36 int *err);42 int *err);
include/linux/netdevice.h+15−1
@@ -1616,6 +1616,7 @@ enum netdev_priv_flags { · 1615 unmodified lines
1616 * and drivers will need to set them appropriately.1616 * and drivers will need to set them appropriately.
1617 *1617 *
1618 * @mpls_features: Mask of features inheritable by MPLS1618 * @mpls_features: Mask of features inheritable by MPLS
1619 * @gso_partial_features: value(s) from NETIF_F_GSO\*
1619 *1620 *
1620 * @ifindex: interface index1621 * @ifindex: interface index
1621 * @group: The group the device belongs to1622 * @group: The group the device belongs to
@@ -1640,8 +1641,11 @@ enum netdev_priv_flags { · 18 unmodified lines
1640 * @netdev_ops: Includes several pointers to callbacks,1641 * @netdev_ops: Includes several pointers to callbacks,
1641 * if one wants to override the ndo_*() functions1642 * if one wants to override the ndo_*() functions
1642 * @ethtool_ops: Management operations1643 * @ethtool_ops: Management operations
1644 * @l3mdev_ops: Layer 3 master device operations
1643 * @ndisc_ops: Includes callbacks for different IPv6 neighbour1645 * @ndisc_ops: Includes callbacks for different IPv6 neighbour
1644 * discovery handling. Necessary for e.g. 6LoWPAN.1646 * discovery handling. Necessary for e.g. 6LoWPAN.
1647 * @xfrmdev_ops: Transformation offload operations
1648 * @tlsdev_ops: Transport Layer Security offload operations
1645 * @header_ops: Includes callbacks for creating,parsing,caching,etc1649 * @header_ops: Includes callbacks for creating,parsing,caching,etc
1646 * of Layer 2 headers.1650 * of Layer 2 headers.
1647 *1651 *
@@ -1680,6 +1684,7 @@ enum netdev_priv_flags { · 32 unmodified lines
1680 * @dev_port: Used to differentiate devices that share1684 * @dev_port: Used to differentiate devices that share
1681 * the same function1685 * the same function
1682 * @addr_list_lock: XXX: need comments on this one1686 * @addr_list_lock: XXX: need comments on this one
1687 * @name_assign_type: network interface name assignment type
1683 * @uc_promisc: Counter that indicates promiscuous mode1688 * @uc_promisc: Counter that indicates promiscuous mode
1684 * has been enabled due to the need to listen to1689 * has been enabled due to the need to listen to
1685 * additional unicast addresses in a device that1690 * additional unicast addresses in a device that
@@ -1702,6 +1707,9 @@ enum netdev_priv_flags { · 16 unmodified lines
1702 * @ip6_ptr: IPv6 specific data1707 * @ip6_ptr: IPv6 specific data
1703 * @ax25_ptr: AX.25 specific data1708 * @ax25_ptr: AX.25 specific data
1704 * @ieee80211_ptr: IEEE 802.11 specific data, assign before registering1709 * @ieee80211_ptr: IEEE 802.11 specific data, assign before registering
1710 * @ieee802154_ptr: IEEE 802.15.4 low-rate Wireless Personal Area Network
1711 * device struct
1712 * @mpls_ptr: mpls_dev struct pointer
1705 *1713 *
1706 * @dev_addr: Hw address (before bcast,1714 * @dev_addr: Hw address (before bcast,
1707 * because most packets are unicast)1715 * because most packets are unicast)
@@ -1710,6 +1718,8 @@ enum netdev_priv_flags { · 2 unmodified lines
1710 * @num_rx_queues: Number of RX queues1718 * @num_rx_queues: Number of RX queues
1711 * allocated at register_netdev() time1719 * allocated at register_netdev() time
1712 * @real_num_rx_queues: Number of RX queues currently active in device1720 * @real_num_rx_queues: Number of RX queues currently active in device
1721 * @xdp_prog: XDP sockets filter program pointer
1722 * @gro_flush_timeout: timeout for GRO layer in NAPI
1713 *1723 *
1714 * @rx_handler: handler for received packets1724 * @rx_handler: handler for received packets
1715 * @rx_handler_data: XXX: need comments on this one1725 * @rx_handler_data: XXX: need comments on this one
@@ -1731,10 +1741,14 @@ enum netdev_priv_flags { · 15 unmodified lines
1731 * @qdisc: Root qdisc from userspace point of view1741 * @qdisc: Root qdisc from userspace point of view
1732 * @tx_queue_len: Max frames per queue allowed1742 * @tx_queue_len: Max frames per queue allowed
1733 * @tx_global_lock: XXX: need comments on this one1743 * @tx_global_lock: XXX: need comments on this one
1744 * @xdp_bulkq: XDP device bulk queue
1745 * @xps_cpus_map: all CPUs map for XPS device
1746 * @xps_rxqs_map: all RXQs map for XPS device
1734 *1747 *
1735 * @xps_maps: XXX: need comments on this one1748 * @xps_maps: XXX: need comments on this one
1736 * @miniq_egress: clsact qdisc specific data for1749 * @miniq_egress: clsact qdisc specific data for
1737 * egress processing1750 * egress processing
1751 * @qdisc_hash: qdisc hash table
1738 * @watchdog_timeo: Represents the timeout that is used by1752 * @watchdog_timeo: Represents the timeout that is used by
1739 * the watchdog (see dev_watchdog())1753 * the watchdog (see dev_watchdog())
1740 * @watchdog_timer: List of timers1754 * @watchdog_timer: List of timers
@@ -3548,7 +3562,7 @@ static inline unsigned int netif_attrmask_next(int n, const unsigned long *srcp, · 1807 unmodified lines
3548}3562}
3549 3563
3550/**3564/**
3551 * netif_attrmask_next_and - get the next CPU/Rx queue in *src1p & *src2p3565 * netif_attrmask_next_and - get the next CPU/Rx queue in \*src1p & \*src2p
3552 * @n: CPU/Rx queue index3566 * @n: CPU/Rx queue index
3553 * @src1p: the first CPUs/Rx queues mask pointer3567 * @src1p: the first CPUs/Rx queues mask pointer
3554 * @src2p: the second CPUs/Rx queues mask pointer3568 * @src2p: the second CPUs/Rx queues mask pointer
include/linux/nfs_fs.h+6−20
@@ -337,35 +337,17 @@ static inline int nfs_server_capable(struct inode *inode, int cap) · 336 unmodified lines
337 return NFS_SERVER(inode)->caps & cap;337 return NFS_SERVER(inode)->caps & cap;
338}338}
339 339
340static inline void nfs_set_verifier(struct dentry * dentry, unsigned long verf)
341{
342 dentry->d_time = verf;
343}
344
345/**340/**
346 * nfs_save_change_attribute - Returns the inode attribute change cookie341 * nfs_save_change_attribute - Returns the inode attribute change cookie
347 * @dir - pointer to parent directory inode342 * @dir - pointer to parent directory inode
348 * The "change attribute" is updated every time we finish an operation343 * The "cache change attribute" is updated when we need to revalidate
349 * that will result in a metadata change on the server.344 * our dentry cache after a directory was seen to change on the server.
350 */345 */
351static inline unsigned long nfs_save_change_attribute(struct inode *dir)346static inline unsigned long nfs_save_change_attribute(struct inode *dir)
352{347{
353 return NFS_I(dir)->cache_change_attribute;348 return NFS_I(dir)->cache_change_attribute;
354}349}
355 350
356/**
357 * nfs_verify_change_attribute - Detects NFS remote directory changes
358 * @dir - pointer to parent directory inode
359 * @chattr - previously saved change attribute
360 * Return "false" if the verifiers doesn't match the change attribute.
361 * This would usually indicate that the directory contents have changed on
362 * the server, and that any dentries need revalidating.
363 */
364static inline int nfs_verify_change_attribute(struct inode *dir, unsigned long chattr)
365{
366 return chattr == NFS_I(dir)->cache_change_attribute;
367}
368
369/*351/*
370 * linux/fs/nfs/inode.c352 * linux/fs/nfs/inode.c
371 */353 */
@@ -495,6 +477,10 @@ extern const struct file_operations nfs_dir_operations; · 123 unmodified lines
495extern const struct dentry_operations nfs_dentry_operations;477extern const struct dentry_operations nfs_dentry_operations;
496 478
497extern void nfs_force_lookup_revalidate(struct inode *dir);479extern void nfs_force_lookup_revalidate(struct inode *dir);
480extern void nfs_set_verifier(struct dentry * dentry, unsigned long verf);
481#if IS_ENABLED(CONFIG_NFS_V4)
482extern void nfs_clear_verifier_delegated(struct inode *inode);
483#endif /* IS_ENABLED(CONFIG_NFS_V4) */
498extern struct dentry *nfs_add_or_obtain(struct dentry *dentry,484extern struct dentry *nfs_add_or_obtain(struct dentry *dentry,
499 struct nfs_fh *fh, struct nfs_fattr *fattr,485 struct nfs_fh *fh, struct nfs_fattr *fattr,
500 struct nfs4_label *label);486 struct nfs4_label *label);
include/linux/pipe_fs_i.h+2−1
@@ -29,7 +29,8 @@ struct pipe_buffer { · 28 unmodified lines
29/**29/**
30 * struct pipe_inode_info - a linux kernel pipe30 * struct pipe_inode_info - a linux kernel pipe
31 * @mutex: mutex protecting the whole thing31 * @mutex: mutex protecting the whole thing
32 * @wait: reader/writer wait point in case of empty/full pipe32 * @rd_wait: reader wait point in case of empty pipe
33 * @wr_wait: writer wait point in case of full pipe
33 * @head: The point of buffer production34 * @head: The point of buffer production
34 * @tail: The point of buffer consumption35 * @tail: The point of buffer consumption
35 * @max_usage: The maximum number of slots that may be used in the ring36 * @max_usage: The maximum number of slots that may be used in the ring
include/linux/sched/nohz.h+2−0
@@ -15,9 +15,11 @@ static inline void nohz_balance_enter_idle(int cpu) { } · 14 unmodified lines
15 15
16#ifdef CONFIG_NO_HZ_COMMON16#ifdef CONFIG_NO_HZ_COMMON
17void calc_load_nohz_start(void);17void calc_load_nohz_start(void);
18void calc_load_nohz_remote(struct rq *rq);
18void calc_load_nohz_stop(void);19void calc_load_nohz_stop(void);
19#else20#else
20static inline void calc_load_nohz_start(void) { }21static inline void calc_load_nohz_start(void) { }
22static inline void calc_load_nohz_remote(struct rq *rq) { }
21static inline void calc_load_nohz_stop(void) { }23static inline void calc_load_nohz_stop(void) { }
22#endif /* CONFIG_NO_HZ_COMMON */24#endif /* CONFIG_NO_HZ_COMMON */
23 25
include/linux/suspend.h+1−1
@@ -191,7 +191,7 @@ struct platform_s2idle_ops { · 190 unmodified lines
191 int (*begin)(void);191 int (*begin)(void);
192 int (*prepare)(void);192 int (*prepare)(void);
193 int (*prepare_late)(void);193 int (*prepare_late)(void);
194 void (*wake)(void);194 bool (*wake)(void);
195 void (*restore_early)(void);195 void (*restore_early)(void);
196 void (*restore)(void);196 void (*restore)(void);
197 void (*end)(void);197 void (*end)(void);
include/linux/trace_events.h+1−1
@@ -440,7 +440,7 @@ struct synth_event_trace_state { · 439 unmodified lines
440 struct synth_event *event;440 struct synth_event *event;
441 unsigned int cur_field;441 unsigned int cur_field;
442 unsigned int n_u64;442 unsigned int n_u64;
443 bool enabled;443 bool disabled;
444 bool add_next;444 bool add_next;
445 bool add_name;445 bool add_name;
446};446};