CC: [email protected]
In-Reply-To: <[email protected]>
References: <[email protected]>
TO: Yufen Yu <[email protected]>
TO: [email protected]
CC: [email protected]
CC: [email protected]

Hi Yufen,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on song-md/md-next]
[also build test WARNING on cryptodev/master v5.9-rc1 next-20200820]
[cannot apply to crypto/master]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    
https://github.com/0day-ci/linux/commits/Yufen-Yu/Save-memory-for-stripe_head-buffer/20200820-213048
base:   git://git.kernel.org/pub/scm/linux/kernel/git/song/md.git md-next
:::::: branch date: 10 hours ago
:::::: commit date: 10 hours ago
config: i386-randconfig-m021-20200820 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>
Reported-by: Dan Carpenter <[email protected]>

smatch warnings:
crypto/async_tx/async_xor.c:210 async_xor_offs() error: we previously assumed 
'device' could be null (see line 194)
crypto/async_tx/async_xor.c:328 async_xor_val_offs() error: we previously 
assumed 'device' could be null (see line 325)
crypto/async_tx/async_xor.c:355 async_xor_val_offs() error: we previously 
assumed 'chan' could be null (see line 319)

# 
https://github.com/0day-ci/linux/commit/29e8c012520121ae9c4b2333fd7f182d816ed44f
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review 
Yufen-Yu/Save-memory-for-stripe_head-buffer/20200820-213048
git checkout 29e8c012520121ae9c4b2333fd7f182d816ed44f
vim +/device +210 crypto/async_tx/async_xor.c

29e8c012520121 Yufen Yu                  2020-08-20  158  
9bc89cd82d6f88 Dan Williams              2007-01-02  159  /**
29e8c012520121 Yufen Yu                  2020-08-20  160   * async_xor_offs - 
attempt to xor a set of blocks with a dma engine.
9bc89cd82d6f88 Dan Williams              2007-01-02  161   * @dest: destination 
page
29e8c012520121 Yufen Yu                  2020-08-20  162   * @offset: dst 
offset to start transaction
a08abd8ca890a3 Dan Williams              2009-06-03  163   * @src_list: array 
of source pages
29e8c012520121 Yufen Yu                  2020-08-20  164   * @src_offs: array 
of source pages offset, NULL means common src/dst offset
9bc89cd82d6f88 Dan Williams              2007-01-02  165   * @src_cnt: number 
of source pages
9bc89cd82d6f88 Dan Williams              2007-01-02  166   * @len: length in 
bytes
a08abd8ca890a3 Dan Williams              2009-06-03  167   * @submit: 
submission / completion modifiers
a08abd8ca890a3 Dan Williams              2009-06-03  168   *
a08abd8ca890a3 Dan Williams              2009-06-03  169   * honored flags: 
ASYNC_TX_ACK, ASYNC_TX_XOR_ZERO_DST, ASYNC_TX_XOR_DROP_DST
a08abd8ca890a3 Dan Williams              2009-06-03  170   *
a08abd8ca890a3 Dan Williams              2009-06-03  171   * xor_blocks always 
uses the dest as a source so the
a08abd8ca890a3 Dan Williams              2009-06-03  172   * 
ASYNC_TX_XOR_ZERO_DST flag must be set to not include dest data in
a08abd8ca890a3 Dan Williams              2009-06-03  173   * the calculation.  
The assumption with dma eninges is that they only
a08abd8ca890a3 Dan Williams              2009-06-03  174   * use the 
destination buffer as a source when it is explicity specified
a08abd8ca890a3 Dan Williams              2009-06-03  175   * in the source list.
a08abd8ca890a3 Dan Williams              2009-06-03  176   *
a08abd8ca890a3 Dan Williams              2009-06-03  177   * src_list note: if 
the dest is also a source it must be at index zero.
a08abd8ca890a3 Dan Williams              2009-06-03  178   * The contents of 
this array will be overwritten if a scribble region
a08abd8ca890a3 Dan Williams              2009-06-03  179   * is not specified.
9bc89cd82d6f88 Dan Williams              2007-01-02  180   */
9bc89cd82d6f88 Dan Williams              2007-01-02  181  struct 
dma_async_tx_descriptor *
29e8c012520121 Yufen Yu                  2020-08-20  182  async_xor_offs(struct 
page *dest, unsigned int offset,
29e8c012520121 Yufen Yu                  2020-08-20  183                struct 
page **src_list, unsigned int *src_offs,
a08abd8ca890a3 Dan Williams              2009-06-03  184                int 
src_cnt, size_t len, struct async_submit_ctl *submit)
9bc89cd82d6f88 Dan Williams              2007-01-02  185  {
a08abd8ca890a3 Dan Williams              2009-06-03  186        struct dma_chan 
*chan = async_tx_find_channel(submit, DMA_XOR,
47437b2c9a6431 Dan Williams              2008-02-02  187                        
                              &dest, 1, src_list,
47437b2c9a6431 Dan Williams              2008-02-02  188                        
                              src_cnt, len);
fb36ab142b2f1d Dan Williams              2013-10-18  189        struct 
dma_device *device = chan ? chan->device : NULL;
fb36ab142b2f1d Dan Williams              2013-10-18  190        struct 
dmaengine_unmap_data *unmap = NULL;
04ce9ab385dc97 Dan Williams              2009-06-03  191  
9bc89cd82d6f88 Dan Williams              2007-01-02  192        BUG_ON(src_cnt 
<= 1);
9bc89cd82d6f88 Dan Williams              2007-01-02  193  
fb36ab142b2f1d Dan Williams              2013-10-18 @194        if (device)
b02bab6b0f928d NeilBrown                 2016-01-07  195                unmap = 
dmaengine_get_unmap_data(device->dev, src_cnt+1, GFP_NOWAIT);
fb36ab142b2f1d Dan Williams              2013-10-18  196  
29e8c012520121 Yufen Yu                  2020-08-20  197        if (unmap && 
dma_xor_aligned_offsets(device, offset,
29e8c012520121 Yufen Yu                  2020-08-20  198                        
        src_offs, src_cnt, len)) {
fb36ab142b2f1d Dan Williams              2013-10-18  199                struct 
dma_async_tx_descriptor *tx;
fb36ab142b2f1d Dan Williams              2013-10-18  200                int i, 
j;
04ce9ab385dc97 Dan Williams              2009-06-03  201  
1e55db2d6bdef9 Dan Williams              2008-07-16  202                /* run 
the xor asynchronously */
1e55db2d6bdef9 Dan Williams              2008-07-16  203                
pr_debug("%s (async): len: %zu\n", __func__, len);
1e55db2d6bdef9 Dan Williams              2008-07-16  204  
fb36ab142b2f1d Dan Williams              2013-10-18  205                
unmap->len = len;
fb36ab142b2f1d Dan Williams              2013-10-18  206                for (i 
= 0, j = 0; i < src_cnt; i++) {
fb36ab142b2f1d Dan Williams              2013-10-18  207                        
if (!src_list[i])
fb36ab142b2f1d Dan Williams              2013-10-18  208                        
        continue;
fb36ab142b2f1d Dan Williams              2013-10-18  209                        
unmap->to_cnt++;
fb36ab142b2f1d Dan Williams              2013-10-18 @210                        
unmap->addr[j++] = dma_map_page(device->dev, src_list[i],
29e8c012520121 Yufen Yu                  2020-08-20  211                        
                src_offs ? src_offs[i] : offset,
29e8c012520121 Yufen Yu                  2020-08-20  212                        
                len, DMA_TO_DEVICE);
fb36ab142b2f1d Dan Williams              2013-10-18  213                }
fb36ab142b2f1d Dan Williams              2013-10-18  214  
fb36ab142b2f1d Dan Williams              2013-10-18  215                /* map 
it bidirectional as it may be re-used as a source */
fb36ab142b2f1d Dan Williams              2013-10-18  216                
unmap->addr[j] = dma_map_page(device->dev, dest, offset, len,
fb36ab142b2f1d Dan Williams              2013-10-18  217                        
                      DMA_BIDIRECTIONAL);
fb36ab142b2f1d Dan Williams              2013-10-18  218                
unmap->bidi_cnt = 1;
fb36ab142b2f1d Dan Williams              2013-10-18  219  
fb36ab142b2f1d Dan Williams              2013-10-18  220                tx = 
do_async_xor(chan, unmap, submit);
fb36ab142b2f1d Dan Williams              2013-10-18  221                
dmaengine_unmap_put(unmap);
fb36ab142b2f1d Dan Williams              2013-10-18  222                return 
tx;
9bc89cd82d6f88 Dan Williams              2007-01-02  223        } else {
fb36ab142b2f1d Dan Williams              2013-10-18  224                
dmaengine_unmap_put(unmap);
1e55db2d6bdef9 Dan Williams              2008-07-16  225                /* run 
the xor synchronously */
1e55db2d6bdef9 Dan Williams              2008-07-16  226                
pr_debug("%s (sync): len: %zu\n", __func__, len);
04ce9ab385dc97 Dan Williams              2009-06-03  227                
WARN_ONCE(chan, "%s: no space for dma address conversion\n",
04ce9ab385dc97 Dan Williams              2009-06-03  228                        
  __func__);
9bc89cd82d6f88 Dan Williams              2007-01-02  229  
9bc89cd82d6f88 Dan Williams              2007-01-02  230                /* in 
the sync case the dest is an implied source
1e55db2d6bdef9 Dan Williams              2008-07-16  231                 * 
(assumes the dest is the first source)
9bc89cd82d6f88 Dan Williams              2007-01-02  232                 */
a08abd8ca890a3 Dan Williams              2009-06-03  233                if 
(submit->flags & ASYNC_TX_XOR_DROP_DST) {
9bc89cd82d6f88 Dan Williams              2007-01-02  234                        
src_cnt--;
1e55db2d6bdef9 Dan Williams              2008-07-16  235                        
src_list++;
9bc89cd82d6f88 Dan Williams              2007-01-02  236                }
9bc89cd82d6f88 Dan Williams              2007-01-02  237  
9bc89cd82d6f88 Dan Williams              2007-01-02  238                /* wait 
for any prerequisite operations */
a08abd8ca890a3 Dan Williams              2009-06-03  239                
async_tx_quiesce(&submit->depend_tx);
9bc89cd82d6f88 Dan Williams              2007-01-02  240  
29e8c012520121 Yufen Yu                  2020-08-20  241                
do_sync_xor_offs(dest, offset, src_list, src_offs,
29e8c012520121 Yufen Yu                  2020-08-20  242                        
        src_cnt, len, submit);
9bc89cd82d6f88 Dan Williams              2007-01-02  243  
1e55db2d6bdef9 Dan Williams              2008-07-16  244                return 
NULL;
9bc89cd82d6f88 Dan Williams              2007-01-02  245        }
9bc89cd82d6f88 Dan Williams              2007-01-02  246  }
29e8c012520121 Yufen Yu                  2020-08-20  247  
EXPORT_SYMBOL_GPL(async_xor_offs);
29e8c012520121 Yufen Yu                  2020-08-20  248  
29e8c012520121 Yufen Yu                  2020-08-20  249  /**
29e8c012520121 Yufen Yu                  2020-08-20  250   * async_xor - 
attempt to xor a set of blocks with a dma engine.
29e8c012520121 Yufen Yu                  2020-08-20  251   * @dest: destination 
page
29e8c012520121 Yufen Yu                  2020-08-20  252   * @src_list: array 
of source pages
29e8c012520121 Yufen Yu                  2020-08-20  253   * @offset: common 
src/dst offset to start transaction
29e8c012520121 Yufen Yu                  2020-08-20  254   * @src_cnt: number 
of source pages
29e8c012520121 Yufen Yu                  2020-08-20  255   * @len: length in 
bytes
29e8c012520121 Yufen Yu                  2020-08-20  256   * @submit: 
submission / completion modifiers
29e8c012520121 Yufen Yu                  2020-08-20  257   *
29e8c012520121 Yufen Yu                  2020-08-20  258   * honored flags: 
ASYNC_TX_ACK, ASYNC_TX_XOR_ZERO_DST, ASYNC_TX_XOR_DROP_DST
29e8c012520121 Yufen Yu                  2020-08-20  259   *
29e8c012520121 Yufen Yu                  2020-08-20  260   * xor_blocks always 
uses the dest as a source so the
29e8c012520121 Yufen Yu                  2020-08-20  261   * 
ASYNC_TX_XOR_ZERO_DST flag must be set to not include dest data in
29e8c012520121 Yufen Yu                  2020-08-20  262   * the calculation.  
The assumption with dma eninges is that they only
29e8c012520121 Yufen Yu                  2020-08-20  263   * use the 
destination buffer as a source when it is explicity specified
29e8c012520121 Yufen Yu                  2020-08-20  264   * in the source list.
29e8c012520121 Yufen Yu                  2020-08-20  265   *
29e8c012520121 Yufen Yu                  2020-08-20  266   * src_list note: if 
the dest is also a source it must be at index zero.
29e8c012520121 Yufen Yu                  2020-08-20  267   * The contents of 
this array will be overwritten if a scribble region
29e8c012520121 Yufen Yu                  2020-08-20  268   * is not specified.
29e8c012520121 Yufen Yu                  2020-08-20  269   */
29e8c012520121 Yufen Yu                  2020-08-20  270  struct 
dma_async_tx_descriptor *
29e8c012520121 Yufen Yu                  2020-08-20  271  async_xor(struct page 
*dest, struct page **src_list, unsigned int offset,
29e8c012520121 Yufen Yu                  2020-08-20  272          int src_cnt, 
size_t len, struct async_submit_ctl *submit)
29e8c012520121 Yufen Yu                  2020-08-20  273  {
29e8c012520121 Yufen Yu                  2020-08-20  274        return 
async_xor_offs(dest, offset, src_list, NULL,
29e8c012520121 Yufen Yu                  2020-08-20  275                        
src_cnt, len, submit);
29e8c012520121 Yufen Yu                  2020-08-20  276  }
9bc89cd82d6f88 Dan Williams              2007-01-02  277  
EXPORT_SYMBOL_GPL(async_xor);
9bc89cd82d6f88 Dan Williams              2007-01-02  278  
9bc89cd82d6f88 Dan Williams              2007-01-02  279  static int 
page_is_zero(struct page *p, unsigned int offset, size_t len)
9bc89cd82d6f88 Dan Williams              2007-01-02  280  {
2c88ae90939c2e Akinobu Mita              2012-10-28  281        return 
!memchr_inv(page_address(p) + offset, 0, len);
9bc89cd82d6f88 Dan Williams              2007-01-02  282  }
9bc89cd82d6f88 Dan Williams              2007-01-02  283  
7b3cc2b1fc2066 Dan Williams              2009-11-19  284  static inline struct 
dma_chan *
7b3cc2b1fc2066 Dan Williams              2009-11-19  285  xor_val_chan(struct 
async_submit_ctl *submit, struct page *dest,
7b3cc2b1fc2066 Dan Williams              2009-11-19  286                 struct 
page **src_list, int src_cnt, size_t len)
7b3cc2b1fc2066 Dan Williams              2009-11-19  287  {
7b3cc2b1fc2066 Dan Williams              2009-11-19  288        #ifdef 
CONFIG_ASYNC_TX_DISABLE_XOR_VAL_DMA
7b3cc2b1fc2066 Dan Williams              2009-11-19  289        return NULL;
7b3cc2b1fc2066 Dan Williams              2009-11-19  290        #endif
7b3cc2b1fc2066 Dan Williams              2009-11-19  291        return 
async_tx_find_channel(submit, DMA_XOR_VAL, &dest, 1, src_list,
7b3cc2b1fc2066 Dan Williams              2009-11-19  292                        
             src_cnt, len);
7b3cc2b1fc2066 Dan Williams              2009-11-19  293  }
7b3cc2b1fc2066 Dan Williams              2009-11-19  294  
9bc89cd82d6f88 Dan Williams              2007-01-02  295  /**
29e8c012520121 Yufen Yu                  2020-08-20  296   * async_xor_val_offs 
- attempt a xor parity check with a dma engine.
9bc89cd82d6f88 Dan Williams              2007-01-02  297   * @dest: destination 
page used if the xor is performed synchronously
29e8c012520121 Yufen Yu                  2020-08-20  298   * @offset: des 
offset in pages to start transaction
a08abd8ca890a3 Dan Williams              2009-06-03  299   * @src_list: array 
of source pages
29e8c012520121 Yufen Yu                  2020-08-20  300   * @src_offs: array 
of source pages offset, NULL means common src/det offset
9bc89cd82d6f88 Dan Williams              2007-01-02  301   * @src_cnt: number 
of source pages
9bc89cd82d6f88 Dan Williams              2007-01-02  302   * @len: length in 
bytes
9bc89cd82d6f88 Dan Williams              2007-01-02  303   * @result: 0 if sum 
== 0 else non-zero
a08abd8ca890a3 Dan Williams              2009-06-03  304   * @submit: 
submission / completion modifiers
a08abd8ca890a3 Dan Williams              2009-06-03  305   *
a08abd8ca890a3 Dan Williams              2009-06-03  306   * honored flags: 
ASYNC_TX_ACK
a08abd8ca890a3 Dan Williams              2009-06-03  307   *
a08abd8ca890a3 Dan Williams              2009-06-03  308   * src_list note: if 
the dest is also a source it must be at index zero.
a08abd8ca890a3 Dan Williams              2009-06-03  309   * The contents of 
this array will be overwritten if a scribble region
a08abd8ca890a3 Dan Williams              2009-06-03  310   * is not specified.
9bc89cd82d6f88 Dan Williams              2007-01-02  311   */
9bc89cd82d6f88 Dan Williams              2007-01-02  312  struct 
dma_async_tx_descriptor *
29e8c012520121 Yufen Yu                  2020-08-20  313  
async_xor_val_offs(struct page *dest, unsigned int offset,
29e8c012520121 Yufen Yu                  2020-08-20  314                struct 
page **src_list, unsigned int *src_offs,
ad283ea4a3ce82 Dan Williams              2009-08-29  315                int 
src_cnt, size_t len, enum sum_check_flags *result,
a08abd8ca890a3 Dan Williams              2009-06-03  316                struct 
async_submit_ctl *submit)
9bc89cd82d6f88 Dan Williams              2007-01-02  317  {
7b3cc2b1fc2066 Dan Williams              2009-11-19  318        struct dma_chan 
*chan = xor_val_chan(submit, dest, src_list, src_cnt, len);
9bc89cd82d6f88 Dan Williams              2007-01-02 @319        struct 
dma_device *device = chan ? chan->device : NULL;
0036731c88fdb5 Dan Williams              2008-02-02  320        struct 
dma_async_tx_descriptor *tx = NULL;
173e86b2809234 Dan Williams              2013-10-18  321        struct 
dmaengine_unmap_data *unmap = NULL;
9bc89cd82d6f88 Dan Williams              2007-01-02  322  
9bc89cd82d6f88 Dan Williams              2007-01-02  323        BUG_ON(src_cnt 
<= 1);
9bc89cd82d6f88 Dan Williams              2007-01-02  324  
173e86b2809234 Dan Williams              2013-10-18 @325        if (device)
b02bab6b0f928d NeilBrown                 2016-01-07  326                unmap = 
dmaengine_get_unmap_data(device->dev, src_cnt, GFP_NOWAIT);
04ce9ab385dc97 Dan Williams              2009-06-03  327  
173e86b2809234 Dan Williams              2013-10-18 @328        if (unmap && 
src_cnt <= device->max_xor &&
29e8c012520121 Yufen Yu                  2020-08-20  329            
dma_xor_aligned_offsets(device, offset, src_offs, src_cnt, len)) {
0776ae7b897821 Bartlomiej Zolnierkiewicz 2013-10-18  330                
unsigned long dma_prep_flags = 0;
0036731c88fdb5 Dan Williams              2008-02-02  331                int i;
9bc89cd82d6f88 Dan Williams              2007-01-02  332  
3280ab3e8815d6 Dan Williams              2008-03-13  333                
pr_debug("%s: (async) len: %zu\n", __func__, len);
9bc89cd82d6f88 Dan Williams              2007-01-02  334  
0403e3827788d8 Dan Williams              2009-09-08  335                if 
(submit->cb_fn)
0403e3827788d8 Dan Williams              2009-09-08  336                        
dma_prep_flags |= DMA_PREP_INTERRUPT;
0403e3827788d8 Dan Williams              2009-09-08  337                if 
(submit->flags & ASYNC_TX_FENCE)
0403e3827788d8 Dan Williams              2009-09-08  338                        
dma_prep_flags |= DMA_PREP_FENCE;
173e86b2809234 Dan Williams              2013-10-18  339  
173e86b2809234 Dan Williams              2013-10-18  340                for (i 
= 0; i < src_cnt; i++) {
173e86b2809234 Dan Williams              2013-10-18  341                        
unmap->addr[i] = dma_map_page(device->dev, src_list[i],
29e8c012520121 Yufen Yu                  2020-08-20  342                        
                src_offs ? src_offs[i] : offset,
29e8c012520121 Yufen Yu                  2020-08-20  343                        
                len, DMA_TO_DEVICE);
173e86b2809234 Dan Williams              2013-10-18  344                        
unmap->to_cnt++;
173e86b2809234 Dan Williams              2013-10-18  345                }
173e86b2809234 Dan Williams              2013-10-18  346                
unmap->len = len;
0036731c88fdb5 Dan Williams              2008-02-02  347  
173e86b2809234 Dan Williams              2013-10-18  348                tx = 
device->device_prep_dma_xor_val(chan, unmap->addr, src_cnt,
0036731c88fdb5 Dan Williams              2008-02-02  349                        
                             len, result,
d4c56f97ff21df Dan Williams              2008-02-02  350                        
                             dma_prep_flags);
669ab0b210f9bd Dan Williams              2008-07-17  351                if 
(unlikely(!tx)) {
a08abd8ca890a3 Dan Williams              2009-06-03  352                        
async_tx_quiesce(&submit->depend_tx);
0036731c88fdb5 Dan Williams              2008-02-02  353  
e34a8ae79056e6 Dan Williams              2008-08-05  354                        
while (!tx) {
669ab0b210f9bd Dan Williams              2008-07-17 @355                        
        dma_async_issue_pending(chan);
099f53cb50e45e Dan Williams              2009-04-08  356                        
        tx = device->device_prep_dma_xor_val(chan,
173e86b2809234 Dan Williams              2013-10-18  357                        
                unmap->addr, src_cnt, len, result,
d4c56f97ff21df Dan Williams              2008-02-02  358                        
                dma_prep_flags);
9bc89cd82d6f88 Dan Williams              2007-01-02  359                        
}
e34a8ae79056e6 Dan Williams              2008-08-05  360                }
173e86b2809234 Dan Williams              2013-10-18  361                
dma_set_unmap(tx, unmap);
a08abd8ca890a3 Dan Williams              2009-06-03  362                
async_tx_submit(chan, tx, submit);
9bc89cd82d6f88 Dan Williams              2007-01-02  363        } else {
a08abd8ca890a3 Dan Williams              2009-06-03  364                enum 
async_tx_flags flags_orig = submit->flags;
9bc89cd82d6f88 Dan Williams              2007-01-02  365  
3280ab3e8815d6 Dan Williams              2008-03-13  366                
pr_debug("%s: (sync) len: %zu\n", __func__, len);
04ce9ab385dc97 Dan Williams              2009-06-03  367                
WARN_ONCE(device && src_cnt <= device->max_xor,
04ce9ab385dc97 Dan Williams              2009-06-03  368                        
  "%s: no space for dma address conversion\n",
04ce9ab385dc97 Dan Williams              2009-06-03  369                        
  __func__);
9bc89cd82d6f88 Dan Williams              2007-01-02  370  
a08abd8ca890a3 Dan Williams              2009-06-03  371                
submit->flags |= ASYNC_TX_XOR_DROP_DST;
a08abd8ca890a3 Dan Williams              2009-06-03  372                
submit->flags &= ~ASYNC_TX_ACK;
9bc89cd82d6f88 Dan Williams              2007-01-02  373  
29e8c012520121 Yufen Yu                  2020-08-20  374                tx = 
async_xor_offs(dest, offset, src_list, src_offs,
29e8c012520121 Yufen Yu                  2020-08-20  375                        
        src_cnt, len, submit);
9bc89cd82d6f88 Dan Williams              2007-01-02  376  
d2c52b7983b95b Dan Williams              2008-07-17  377                
async_tx_quiesce(&tx);
9bc89cd82d6f88 Dan Williams              2007-01-02  378  
ad283ea4a3ce82 Dan Williams              2009-08-29  379                *result 
= !page_is_zero(dest, offset, len) << SUM_CHECK_P;
9bc89cd82d6f88 Dan Williams              2007-01-02  380  
a08abd8ca890a3 Dan Williams              2009-06-03  381                
async_tx_sync_epilog(submit);
a08abd8ca890a3 Dan Williams              2009-06-03  382                
submit->flags = flags_orig;
9bc89cd82d6f88 Dan Williams              2007-01-02  383        }
173e86b2809234 Dan Williams              2013-10-18  384        
dmaengine_unmap_put(unmap);
9bc89cd82d6f88 Dan Williams              2007-01-02  385  
9bc89cd82d6f88 Dan Williams              2007-01-02  386        return tx;
9bc89cd82d6f88 Dan Williams              2007-01-02  387  }
29e8c012520121 Yufen Yu                  2020-08-20  388  
EXPORT_SYMBOL_GPL(async_xor_val_offs);
29e8c012520121 Yufen Yu                  2020-08-20  389  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]

Attachment: .config.gz
Description: application/gzip

_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to