Loading Documentation/arm64/pointer-authentication.rst +4 −5 Original line number Diff line number Diff line Loading @@ -53,11 +53,10 @@ The number of bits that the PAC occupies in a pointer is 55 minus the virtual address size configured by the kernel. For example, with a virtual address size of 48, the PAC is 7 bits wide. Recent versions of GCC can compile code with APIAKey-based return address protection when passed the -msign-return-address option. This uses instructions in the HINT space (unless -march=armv8.3-a or higher is also passed), and such code can run on systems without the pointer authentication extension. When ARM64_PTR_AUTH_KERNEL is selected, the kernel will be compiled with HINT space pointer authentication instructions protecting function returns. Kernels built with this option will work on hardware with or without pointer authentication support. In addition to exec(), keys can also be reinitialized to random values using the PR_PAC_RESET_KEYS prctl. A bitmask of PR_PAC_APIAKEY, Loading Documentation/cpu-freq/core.rst +3 −3 Original line number Diff line number Diff line Loading @@ -73,12 +73,12 @@ CPUFREQ_POSTCHANGE. The third argument is a struct cpufreq_freqs with the following values: ===== =========================== cpu number of the affected CPU ====== ====================================== policy a pointer to the struct cpufreq_policy old old frequency new new frequency flags flags of the cpufreq driver ===== =========================== ====== ====================================== 3. CPUFreq Table Generation with Operating Performance Point (OPP) ================================================================== Loading Documentation/filesystems/netfs_library.rst +56 −39 Original line number Diff line number Diff line .. SPDX-License-Identifier: GPL-2.0 ================================= NETWORK FILESYSTEM HELPER LIBRARY Network Filesystem Helper Library ================================= .. Contents: Loading Loading @@ -37,22 +37,22 @@ into a common call framework. The following services are provided: * Handles transparent huge pages (THPs). * Handle folios that span multiple pages. * Insulates the netfs from VM interface changes. * Insulate the netfs from VM interface changes. * Allows the netfs to arbitrarily split reads up into pieces, even ones that don't match page sizes or page alignments and that may cross pages. * Allow the netfs to arbitrarily split reads up into pieces, even ones that don't match folio sizes or folio alignments and that may cross folios. * Allows the netfs to expand a readahead request in both directions to meet its needs. * Allow the netfs to expand a readahead request in both directions to meet its needs. * Allows the netfs to partially fulfil a read, which will then be resubmitted. * Allow the netfs to partially fulfil a read, which will then be resubmitted. * Handles local caching, allowing cached data and server-read data to be * Handle local caching, allowing cached data and server-read data to be interleaved for a single request. * Handles clearing of bufferage that aren't on the server. * Handle clearing of bufferage that aren't on the server. * Handle retrying of reads that failed, switching reads from the cache to the server as necessary. Loading @@ -70,19 +70,19 @@ Read Helper Functions Three read helpers are provided:: * void netfs_readahead(struct readahead_control *ractl, void netfs_readahead(struct readahead_control *ractl, const struct netfs_read_request_ops *ops, void *netfs_priv);`` * int netfs_readpage(struct file *file, struct page *page, void *netfs_priv); int netfs_readpage(struct file *file, struct folio *folio, const struct netfs_read_request_ops *ops, void *netfs_priv); * int netfs_write_begin(struct file *file, int netfs_write_begin(struct file *file, struct address_space *mapping, loff_t pos, unsigned int len, unsigned int flags, struct page **_page, struct folio **_folio, void **_fsdata, const struct netfs_read_request_ops *ops, void *netfs_priv); Loading @@ -103,8 +103,8 @@ Both of these values will be stored into the read request structure. For ->readahead() and ->readpage(), the network filesystem should just jump into the corresponding read helper; whereas for ->write_begin(), it may be a little more complicated as the network filesystem might want to flush conflicting writes or track dirty data and needs to put the acquired page if an error occurs after calling the helper. conflicting writes or track dirty data and needs to put the acquired folio if an error occurs after calling the helper. The helpers manage the read request, calling back into the network filesystem through the suppplied table of operations. Waits will be performed as Loading Loading @@ -253,7 +253,7 @@ through which it can issue requests and negotiate:: void (*issue_op)(struct netfs_read_subrequest *subreq); bool (*is_still_valid)(struct netfs_read_request *rreq); int (*check_write_begin)(struct file *file, loff_t pos, unsigned len, struct page *page, void **_fsdata); struct folio *folio, void **_fsdata); void (*done)(struct netfs_read_request *rreq); void (*cleanup)(struct address_space *mapping, void *netfs_priv); }; Loading Loading @@ -313,13 +313,14 @@ The operations are as follows: There is no return value; the netfs_subreq_terminated() function should be called to indicate whether or not the operation succeeded and how much data it transferred. The filesystem also should not deal with setting pages it transferred. The filesystem also should not deal with setting folios uptodate, unlocking them or dropping their refs - the helpers need to deal with this as they have to coordinate with copying to the local cache. Note that the helpers have the pages locked, but not pinned. It is possible to use the ITER_XARRAY iov iterator to refer to the range of the inode that is being operated upon without the need to allocate large bvec tables. Note that the helpers have the folios locked, but not pinned. It is possible to use the ITER_XARRAY iov iterator to refer to the range of the inode that is being operated upon without the need to allocate large bvec tables. * ``is_still_valid()`` Loading @@ -330,15 +331,15 @@ The operations are as follows: * ``check_write_begin()`` [Optional] This is called from the netfs_write_begin() helper once it has allocated/grabbed the page to be modified to allow the filesystem to flush allocated/grabbed the folio to be modified to allow the filesystem to flush conflicting state before allowing it to be modified. It should return 0 if everything is now fine, -EAGAIN if the page should be It should return 0 if everything is now fine, -EAGAIN if the folio should be regrabbed and any other error code to abort the operation. * ``done`` [Optional] This is called after the pages in the request have all been [Optional] This is called after the folios in the request have all been unlocked (and marked uptodate if applicable). * ``cleanup`` Loading Loading @@ -390,7 +391,7 @@ The read helpers work by the following general procedure: * If NETFS_SREQ_CLEAR_TAIL was set, a short read will be cleared to the end of the slice instead of reissuing. * Once the data is read, the pages that have been fully read/cleared: * Once the data is read, the folios that have been fully read/cleared: * Will be marked uptodate. Loading @@ -398,11 +399,11 @@ The read helpers work by the following general procedure: * Unlocked * Any pages that need writing to the cache will then have DIO writes issued. * Any folios that need writing to the cache will then have DIO writes issued. * Synchronous operations will wait for reading to be complete. * Writes to the cache will proceed asynchronously and the pages will have the * Writes to the cache will proceed asynchronously and the folios will have the PG_fscache mark removed when that completes. * The request structures will be cleaned up when everything has completed. Loading Loading @@ -452,6 +453,9 @@ operation table looks like the following:: netfs_io_terminated_t term_func, void *term_func_priv); int (*prepare_write)(struct netfs_cache_resources *cres, loff_t *_start, size_t *_len, loff_t i_size); int (*write)(struct netfs_cache_resources *cres, loff_t start_pos, struct iov_iter *iter, Loading Loading @@ -509,6 +513,14 @@ The methods defined in the table are: indicating whether the termination is definitely happening in the caller's context. * ``prepare_write()`` [Required] Called to adjust a write to the cache and check that there is sufficient space in the cache. The start and length values indicate the size of the write that netfslib is proposing, and this can be adjusted by the cache to respect DIO boundaries. The file size is passed for information. * ``write()`` [Required] Called to write to the cache. The start file offset is given Loading @@ -525,4 +537,9 @@ not the read request structure as they could be used in other situations where there isn't a read request structure as well, such as writing dirty data to the cache. API Function Reference ====================== .. kernel-doc:: include/linux/netfs.h .. kernel-doc:: fs/netfs/read_helper.c MAINTAINERS +11 −2 Original line number Diff line number Diff line Loading @@ -15979,6 +15979,7 @@ F: arch/mips/generic/board-ranchu.c RANDOM NUMBER DRIVER M: "Theodore Ts'o" <tytso@mit.edu> M: Jason A. Donenfeld <Jason@zx2c4.com> S: Maintained F: drivers/char/random.c Loading Loading @@ -16501,6 +16502,12 @@ T: git git://linuxtv.org/media_tree.git F: Documentation/devicetree/bindings/media/allwinner,sun8i-a83t-de2-rotate.yaml F: drivers/media/platform/sunxi/sun8i-rotate/ RPMSG TTY DRIVER M: Arnaud Pouliquen <arnaud.pouliquen@foss.st.com> L: linux-remoteproc@vger.kernel.org S: Maintained F: drivers/tty/rpmsg_tty.c RTL2830 MEDIA DRIVER M: Antti Palosaari <crope@iki.fi> L: linux-media@vger.kernel.org Loading Loading @@ -16623,7 +16630,8 @@ F: drivers/iommu/s390-iommu.c S390 IUCV NETWORK LAYER M: Julian Wiedmann <jwi@linux.ibm.com> M: Karsten Graul <kgraul@linux.ibm.com> M: Alexandra Winter <wintera@linux.ibm.com> M: Wenjia Zhang <wenjia@linux.ibm.com> L: linux-s390@vger.kernel.org L: netdev@vger.kernel.org S: Supported Loading @@ -16634,7 +16642,8 @@ F: net/iucv/ S390 NETWORK DRIVERS M: Julian Wiedmann <jwi@linux.ibm.com> M: Karsten Graul <kgraul@linux.ibm.com> M: Alexandra Winter <wintera@linux.ibm.com> M: Wenjia Zhang <wenjia@linux.ibm.com> L: linux-s390@vger.kernel.org L: netdev@vger.kernel.org S: Supported Loading Makefile +1 −1 Original line number Diff line number Diff line Loading @@ -2,7 +2,7 @@ VERSION = 5 PATCHLEVEL = 16 SUBLEVEL = 0 EXTRAVERSION = -rc3 EXTRAVERSION = -rc4 NAME = Gobble Gobble # *DOCUMENTATION* Loading Loading
Documentation/arm64/pointer-authentication.rst +4 −5 Original line number Diff line number Diff line Loading @@ -53,11 +53,10 @@ The number of bits that the PAC occupies in a pointer is 55 minus the virtual address size configured by the kernel. For example, with a virtual address size of 48, the PAC is 7 bits wide. Recent versions of GCC can compile code with APIAKey-based return address protection when passed the -msign-return-address option. This uses instructions in the HINT space (unless -march=armv8.3-a or higher is also passed), and such code can run on systems without the pointer authentication extension. When ARM64_PTR_AUTH_KERNEL is selected, the kernel will be compiled with HINT space pointer authentication instructions protecting function returns. Kernels built with this option will work on hardware with or without pointer authentication support. In addition to exec(), keys can also be reinitialized to random values using the PR_PAC_RESET_KEYS prctl. A bitmask of PR_PAC_APIAKEY, Loading
Documentation/cpu-freq/core.rst +3 −3 Original line number Diff line number Diff line Loading @@ -73,12 +73,12 @@ CPUFREQ_POSTCHANGE. The third argument is a struct cpufreq_freqs with the following values: ===== =========================== cpu number of the affected CPU ====== ====================================== policy a pointer to the struct cpufreq_policy old old frequency new new frequency flags flags of the cpufreq driver ===== =========================== ====== ====================================== 3. CPUFreq Table Generation with Operating Performance Point (OPP) ================================================================== Loading
Documentation/filesystems/netfs_library.rst +56 −39 Original line number Diff line number Diff line .. SPDX-License-Identifier: GPL-2.0 ================================= NETWORK FILESYSTEM HELPER LIBRARY Network Filesystem Helper Library ================================= .. Contents: Loading Loading @@ -37,22 +37,22 @@ into a common call framework. The following services are provided: * Handles transparent huge pages (THPs). * Handle folios that span multiple pages. * Insulates the netfs from VM interface changes. * Insulate the netfs from VM interface changes. * Allows the netfs to arbitrarily split reads up into pieces, even ones that don't match page sizes or page alignments and that may cross pages. * Allow the netfs to arbitrarily split reads up into pieces, even ones that don't match folio sizes or folio alignments and that may cross folios. * Allows the netfs to expand a readahead request in both directions to meet its needs. * Allow the netfs to expand a readahead request in both directions to meet its needs. * Allows the netfs to partially fulfil a read, which will then be resubmitted. * Allow the netfs to partially fulfil a read, which will then be resubmitted. * Handles local caching, allowing cached data and server-read data to be * Handle local caching, allowing cached data and server-read data to be interleaved for a single request. * Handles clearing of bufferage that aren't on the server. * Handle clearing of bufferage that aren't on the server. * Handle retrying of reads that failed, switching reads from the cache to the server as necessary. Loading @@ -70,19 +70,19 @@ Read Helper Functions Three read helpers are provided:: * void netfs_readahead(struct readahead_control *ractl, void netfs_readahead(struct readahead_control *ractl, const struct netfs_read_request_ops *ops, void *netfs_priv);`` * int netfs_readpage(struct file *file, struct page *page, void *netfs_priv); int netfs_readpage(struct file *file, struct folio *folio, const struct netfs_read_request_ops *ops, void *netfs_priv); * int netfs_write_begin(struct file *file, int netfs_write_begin(struct file *file, struct address_space *mapping, loff_t pos, unsigned int len, unsigned int flags, struct page **_page, struct folio **_folio, void **_fsdata, const struct netfs_read_request_ops *ops, void *netfs_priv); Loading @@ -103,8 +103,8 @@ Both of these values will be stored into the read request structure. For ->readahead() and ->readpage(), the network filesystem should just jump into the corresponding read helper; whereas for ->write_begin(), it may be a little more complicated as the network filesystem might want to flush conflicting writes or track dirty data and needs to put the acquired page if an error occurs after calling the helper. conflicting writes or track dirty data and needs to put the acquired folio if an error occurs after calling the helper. The helpers manage the read request, calling back into the network filesystem through the suppplied table of operations. Waits will be performed as Loading Loading @@ -253,7 +253,7 @@ through which it can issue requests and negotiate:: void (*issue_op)(struct netfs_read_subrequest *subreq); bool (*is_still_valid)(struct netfs_read_request *rreq); int (*check_write_begin)(struct file *file, loff_t pos, unsigned len, struct page *page, void **_fsdata); struct folio *folio, void **_fsdata); void (*done)(struct netfs_read_request *rreq); void (*cleanup)(struct address_space *mapping, void *netfs_priv); }; Loading Loading @@ -313,13 +313,14 @@ The operations are as follows: There is no return value; the netfs_subreq_terminated() function should be called to indicate whether or not the operation succeeded and how much data it transferred. The filesystem also should not deal with setting pages it transferred. The filesystem also should not deal with setting folios uptodate, unlocking them or dropping their refs - the helpers need to deal with this as they have to coordinate with copying to the local cache. Note that the helpers have the pages locked, but not pinned. It is possible to use the ITER_XARRAY iov iterator to refer to the range of the inode that is being operated upon without the need to allocate large bvec tables. Note that the helpers have the folios locked, but not pinned. It is possible to use the ITER_XARRAY iov iterator to refer to the range of the inode that is being operated upon without the need to allocate large bvec tables. * ``is_still_valid()`` Loading @@ -330,15 +331,15 @@ The operations are as follows: * ``check_write_begin()`` [Optional] This is called from the netfs_write_begin() helper once it has allocated/grabbed the page to be modified to allow the filesystem to flush allocated/grabbed the folio to be modified to allow the filesystem to flush conflicting state before allowing it to be modified. It should return 0 if everything is now fine, -EAGAIN if the page should be It should return 0 if everything is now fine, -EAGAIN if the folio should be regrabbed and any other error code to abort the operation. * ``done`` [Optional] This is called after the pages in the request have all been [Optional] This is called after the folios in the request have all been unlocked (and marked uptodate if applicable). * ``cleanup`` Loading Loading @@ -390,7 +391,7 @@ The read helpers work by the following general procedure: * If NETFS_SREQ_CLEAR_TAIL was set, a short read will be cleared to the end of the slice instead of reissuing. * Once the data is read, the pages that have been fully read/cleared: * Once the data is read, the folios that have been fully read/cleared: * Will be marked uptodate. Loading @@ -398,11 +399,11 @@ The read helpers work by the following general procedure: * Unlocked * Any pages that need writing to the cache will then have DIO writes issued. * Any folios that need writing to the cache will then have DIO writes issued. * Synchronous operations will wait for reading to be complete. * Writes to the cache will proceed asynchronously and the pages will have the * Writes to the cache will proceed asynchronously and the folios will have the PG_fscache mark removed when that completes. * The request structures will be cleaned up when everything has completed. Loading Loading @@ -452,6 +453,9 @@ operation table looks like the following:: netfs_io_terminated_t term_func, void *term_func_priv); int (*prepare_write)(struct netfs_cache_resources *cres, loff_t *_start, size_t *_len, loff_t i_size); int (*write)(struct netfs_cache_resources *cres, loff_t start_pos, struct iov_iter *iter, Loading Loading @@ -509,6 +513,14 @@ The methods defined in the table are: indicating whether the termination is definitely happening in the caller's context. * ``prepare_write()`` [Required] Called to adjust a write to the cache and check that there is sufficient space in the cache. The start and length values indicate the size of the write that netfslib is proposing, and this can be adjusted by the cache to respect DIO boundaries. The file size is passed for information. * ``write()`` [Required] Called to write to the cache. The start file offset is given Loading @@ -525,4 +537,9 @@ not the read request structure as they could be used in other situations where there isn't a read request structure as well, such as writing dirty data to the cache. API Function Reference ====================== .. kernel-doc:: include/linux/netfs.h .. kernel-doc:: fs/netfs/read_helper.c
MAINTAINERS +11 −2 Original line number Diff line number Diff line Loading @@ -15979,6 +15979,7 @@ F: arch/mips/generic/board-ranchu.c RANDOM NUMBER DRIVER M: "Theodore Ts'o" <tytso@mit.edu> M: Jason A. Donenfeld <Jason@zx2c4.com> S: Maintained F: drivers/char/random.c Loading Loading @@ -16501,6 +16502,12 @@ T: git git://linuxtv.org/media_tree.git F: Documentation/devicetree/bindings/media/allwinner,sun8i-a83t-de2-rotate.yaml F: drivers/media/platform/sunxi/sun8i-rotate/ RPMSG TTY DRIVER M: Arnaud Pouliquen <arnaud.pouliquen@foss.st.com> L: linux-remoteproc@vger.kernel.org S: Maintained F: drivers/tty/rpmsg_tty.c RTL2830 MEDIA DRIVER M: Antti Palosaari <crope@iki.fi> L: linux-media@vger.kernel.org Loading Loading @@ -16623,7 +16630,8 @@ F: drivers/iommu/s390-iommu.c S390 IUCV NETWORK LAYER M: Julian Wiedmann <jwi@linux.ibm.com> M: Karsten Graul <kgraul@linux.ibm.com> M: Alexandra Winter <wintera@linux.ibm.com> M: Wenjia Zhang <wenjia@linux.ibm.com> L: linux-s390@vger.kernel.org L: netdev@vger.kernel.org S: Supported Loading @@ -16634,7 +16642,8 @@ F: net/iucv/ S390 NETWORK DRIVERS M: Julian Wiedmann <jwi@linux.ibm.com> M: Karsten Graul <kgraul@linux.ibm.com> M: Alexandra Winter <wintera@linux.ibm.com> M: Wenjia Zhang <wenjia@linux.ibm.com> L: linux-s390@vger.kernel.org L: netdev@vger.kernel.org S: Supported Loading
Makefile +1 −1 Original line number Diff line number Diff line Loading @@ -2,7 +2,7 @@ VERSION = 5 PATCHLEVEL = 16 SUBLEVEL = 0 EXTRAVERSION = -rc3 EXTRAVERSION = -rc4 NAME = Gobble Gobble # *DOCUMENTATION* Loading