> +static int p_fill_from_dev_buffer(struct scsi_cmnd *scp, const void *arr, > + int arr_len, unsigned int off_dst) > +{ > + int act_len, n; > + struct scsi_data_buffer *sdb = scsi_in(scp); > + off_t skip = off_dst; Why off_t which is a signed value instead of the unsigned in passed in? > +#define RL_BUCKET_ELEMS 8 > + > /* Even though each pseudo target has a REPORT LUNS "well known logical unit" > * (W-LUN), the normal Linux scanning logic does not associate it with a > * device (e.g. /dev/sg7). The following magic will make that association: > @@ -3285,12 +3315,14 @@ static int resp_report_luns(struct scsi_cmnd *scp, > unsigned char select_report; > u64 lun; > struct scsi_lun *lun_p; > - u8 *arr; > + u8 arr[RL_BUCKET_ELEMS * sizeof(struct scsi_lun)]; just use an on-stack array of type struct scsi_lun here, e.g.: struct scsi_lun arr[RL_BUCKET_ELEMS]; Which you can then use directly instead of lun_p later, but which can also be passed p_fill_from_dev_buffer as that takes a void pointer. -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html