[PATCH] sbp2 slab corruption fix
This fixed a problem that showed up in the Fedora development tree a few weeks before the Fedora Core 4 release, initially as slab corruption, later as hard crashes on boot up, when slab debugging was disabled for the release. More details on the history at https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=158424 The problem is caused by sbp2's use of scsi_host->hostdata[0] to hold a scsi_id, without explicitly requesting space for it. Since hostdata is declared as a zero-sized array, we don't get any such space by default, so it must be explicitly requested. The patch below implements just that. Signed-off-by: Alexandre Oliva <aoliva@redhat.com> Cc: Jody McIntyre <scjody@modernduck.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
bcfff0b471
commit
a2ef79e184
1 changed files with 2 additions and 1 deletions
|
@ -745,7 +745,8 @@ static struct scsi_id_instance_data *sbp2_alloc_device(struct unit_directory *ud
|
||||||
list_add_tail(&scsi_id->scsi_list, &hi->scsi_ids);
|
list_add_tail(&scsi_id->scsi_list, &hi->scsi_ids);
|
||||||
|
|
||||||
/* Register our host with the SCSI stack. */
|
/* Register our host with the SCSI stack. */
|
||||||
scsi_host = scsi_host_alloc(&scsi_driver_template, 0);
|
scsi_host = scsi_host_alloc(&scsi_driver_template,
|
||||||
|
sizeof (unsigned long));
|
||||||
if (!scsi_host) {
|
if (!scsi_host) {
|
||||||
SBP2_ERR("failed to register scsi host");
|
SBP2_ERR("failed to register scsi host");
|
||||||
goto failed_alloc;
|
goto failed_alloc;
|
||||||
|
|
Loading…
Reference in a new issue