On Thu, Dec 05, 2013 at 02:52:34PM -0800, Kent Overstreet wrote:
> that's a null pointer deref; if Matthias could get the exact line number it
> happened on we could tell what variable was null. I _think_ it's *sg because
> it's running off the end of the scatterlist; if that's the case (and you 
> should
> verify that that is what's happening, then what's going on is bcache is 
> sending
> down a bio larger than what the device expects.

found the kernel config value CONFIG_DEBUG_BUGVERBOSE, tried again with
3.12.3 and 3.13-rc3. The backtrace now spells the line number:

    kernel BUG at drivers/scsi/scsi_lib.c:1048!

1028 static int scsi_init_sgtable(struct request *req, struct scsi_data_buffer 
*sdb,
1029                              gfp_t gfp_mask)
1030 {
1031         int count;
1032
1033         /*
1034          * If sg table allocation fails, requeue request later.
1035          */
1036         if (unlikely(scsi_alloc_sgtable(sdb, req->nr_phys_segments,
1037                                         gfp_mask))) {
1038                 return BLKPREP_DEFER;
1039         }
1040
1041         req->buffer = NULL;
1042
1043         /*
1044          * Next, walk the list, and fill in the addresses and sizes of
1045          * each segment.
1046          */
1047         count = blk_rq_map_sg(req->q, req, sdb->table.sgl);
1048         BUG_ON(count > sdb->table.nents);
1049         sdb->table.nents = count;
1050         sdb->length = blk_rq_bytes(req);
1051         return BLKPREP_OK;
1052 }

Regards
Matthias
--
To unsubscribe from this list: send the line "unsubscribe linux-bcache" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to