}
page = ceph_msg_data_next(cursor, &page_offset, &length);
+
+#if defined(__x86_64__)
+ if ((long)page > 0) {
+ /* bogus page pointer! */
+ pr_err("%s: page=%px offset=%zu len=%zu resid=%zu total_resid=%zu\n",
+ __func__, page, page_offset, length,
+ cursor->resid, cursor->total_resid);
+ }
+#endif
+
if (length == cursor->total_resid)
more = MSG_MORE;
ret = ceph_tcp_sendpage(con->sock, page, page_offset, length,
bv.bv_len = min(iov_iter_count(it),
it->bvec->bv_len - it->iov_offset);
+#if defined(__x86_64__)
+ if ((long)bv.bv_page > 0) {
+ /* bogus page pointer! */
+ pr_err("%s: page=%px offset=%u len=%u count=%zu\n",
+ __func__, bv.bv_page, bv.bv_offset, bv.bv_len,
+ iov_iter_count(it));
+ }
+#endif
+
/*
* sendpage cannot properly handle pages with
* page_count == 0, we need to fall back to sendmsg if
osd_data->alignment = alignment;
osd_data->pages_from_pool = pages_from_pool;
osd_data->own_pages = own_pages;
+#if defined(__x86_64)
+ {
+ /* Vet the page array */
+ int i, alen = calc_pages_for(alignment, length);
+
+ for (i = 0; i < alen; ++i) {
+ if ((long)pages[i] > 0) {
+ pr_err("%s: [%d] page=%px len=0x%llx alignment=0x%x from_pool=%d owned=%d\n",
+ __func__, i, pages[i], length, alignment, pages_from_pool,
+ own_pages);
+ dump_stack();
+ break;
+ }
+ }
+ }
+#endif
}
/*