Re: SCSI bug

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 2016-02-21, at 7:53 PM, John David Anglin wrote:

> Backtrace:                                                                      
> [<000000004046f4b0>] scsi_init_sgtable+0x70/0xb8                               
> [<000000004046f564>] scsi_init_io+0x6c/0x220                                   
> [<000000000811c5c0>] sd_setup_read_write_cmnd+0x58/0x968 [sd_mod]              
> [<000000000811cf14>] sd_init_command+0x44/0x130 [sd_mod]                       
> [<000000004046f81c>] scsi_setup_cmnd+0x104/0x1b0                               
> [<000000004046fab8>] scsi_prep_fn+0x100/0x1a0                                  
> [<000000004035b9b0>] blk_peek_request+0x1b8/0x298                              
> [<0000000040471028>] scsi_request_fn+0xf8/0xa90                                
> [<0000000040357244>] __blk_run_queue+0x4c/0x70                                 
> [<00000000403802c4>] cfq_insert_request+0x2dc/0x580                            
> [<0000000040356404>] __elv_add_request+0x1b4/0x300                             
> 
> We have in blk-merge.c:
> 
>                else {
>                        /*
>                         * If the driver previously mapped a shorter
>                         * list, we could see a termination bit
>                         * prematurely unless it fully inits the sg
>                         * table on each mapping. We KNOW that there
>                         * must be more entries here or the driver
>                         * would be buggy, so force clear the
>                         * termination bit to avoid doing a full
>                         * sg_init_table() in drivers for each command.
>                         */
>                        if (sg_is_last (*sg))
>                          printk ("__blk_segment_map_sg: clearing termination bi
> t\n");
>                        sg_unmark_end(*sg);
>                        *sg = sg_next(*sg);
>                        BUG_ON (!*sg);
>                }
> 
> The comment suggests there must be more entries...

I'm thinking with the split the scsi driver needs to provide one or two extra entires in the sg list.

Dave
--
John David Anglin	dave.anglin@xxxxxxxx



--
To unsubscribe from this list: send the line "unsubscribe linux-parisc" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux SoC]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux