FreeBSD Bugzilla – Attachment 119662 Details for
Bug 162276
[MAINTAINER] sysutils/smartmontools: Fix crash on FreeBSD9, fix LSI RAID bugs
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
smartmontools-5.42_1.patch
smartmontools-5.42_1.patch (text/plain), 3.17 KB, created by
Oleksii Samorukov
on 2011-11-03 21:00:22 UTC
(
hide
)
Description:
smartmontools-5.42_1.patch
Filename:
MIME Type:
Creator:
Oleksii Samorukov
Created:
2011-11-03 21:00:22 UTC
Size:
3.17 KB
patch
obsolete
>diff -ruN --exclude=CVS /usr/ports/sysutils/smartmontools/Makefile /root/smartmontools/Makefile >--- /usr/ports/sysutils/smartmontools/Makefile 2011-10-21 09:37:57.000000000 +0200 >+++ /root/smartmontools/Makefile 2011-11-03 21:45:51.000000000 +0100 >@@ -7,6 +7,7 @@ > > PORTNAME= smartmontools > PORTVERSION= 5.42 >+PORTREVISION= 1 > CATEGORIES= sysutils > MASTER_SITES= SF > >diff -ruN --exclude=CVS /usr/ports/sysutils/smartmontools/files/patch-freebsd9 /root/smartmontools/files/patch-freebsd9 >--- /usr/ports/sysutils/smartmontools/files/patch-freebsd9 1970-01-01 01:00:00.000000000 +0100 >+++ /root/smartmontools/files/patch-freebsd9 2011-11-03 21:41:25.000000000 +0100 >@@ -0,0 +1,13 @@ >+--- os_freebsd.cpp 2011/11/03 17:50:35 3466 >++++ os_freebsd.cpp 2011/11/03 20:06:19 3468 >+@@ -1058,8 +1058,8 @@ >+ } >+ >+ if (iop->sensep) { >+- memcpy(iop->sensep,&(ccb->csio.sense_data),sizeof(struct scsi_sense_data)); >+- iop->resp_sense_len = sizeof(struct scsi_sense_data); >++ iop->resp_sense_len = ccb->csio.sense_len - ccb->csio.sense_resid; >++ memcpy(iop->sensep,&(ccb->csio.sense_data),iop->resp_sense_len); >+ } >+ >+ iop->scsi_status = ccb->csio.scsi_status; >diff -ruN --exclude=CVS /usr/ports/sysutils/smartmontools/files/patch-lsibugs /root/smartmontools/files/patch-lsibugs >--- /usr/ports/sysutils/smartmontools/files/patch-lsibugs 1970-01-01 01:00:00.000000000 +0100 >+++ /root/smartmontools/files/patch-lsibugs 2011-11-03 21:44:38.000000000 +0100 >@@ -0,0 +1,44 @@ >+--- os_freebsd.cpp 2011/10/06 16:43:44 3423 >++++ os_freebsd.cpp 2011/11/03 17:50:35 3466 >+@@ -1013,6 +1013,20 @@ >+ warnx("error allocating ccb"); >+ return -ENOMEM; >+ } >++ // mfi SAT layer is known to be buggy >++ if(!strcmp("mfi",m_camdev->sim_name)) { >++ if (iop->cmnd[0] == SAT_ATA_PASSTHROUGH_12 || iop->cmnd[0] == SAT_ATA_PASSTHROUGH_16) { >++ // Controller does not return ATA output registers in SAT sense data >++ if (iop->cmnd[2] & (1 << 5)) // chk_cond >++ return set_err(ENOSYS, "ATA return descriptor not supported by controller firmware"); >++ } >++ // SMART WRITE LOG SECTOR causing media errors >++ if ((iop->cmnd[0] == SAT_ATA_PASSTHROUGH_16 && iop->cmnd[14] == ATA_SMART_CMD >++ && iop->cmnd[3]==0 && iop->cmnd[4] == ATA_SMART_WRITE_LOG_SECTOR) || >++ (iop->cmnd[0] == SAT_ATA_PASSTHROUGH_12 && iop->cmnd[9] == ATA_SMART_CMD && >++ iop->cmnd[3] == ATA_SMART_WRITE_LOG_SECTOR)) >++ return set_err(ENOSYS, "SMART WRITE LOG SECTOR command is not supported by controller firmware"); >++ } >+ >+ // clear out structure, except for header that was filled in for us >+ bzero(&(&ccb->ccb_h)[1], >+@@ -1590,12 +1604,18 @@ >+ return this; >+ } >+ >+- // SAT or USB ? >++ // SAT or USB, skip MFI controllers because of bugs >+ { >+ smart_device * newdev = smi()->autodetect_sat_device(this, req_buff, len); >+- if (newdev) >++ if (newdev) { >+ // NOTE: 'this' is now owned by '*newdev' >++ if(!strcmp("mfi",m_camdev->sim_name)) { >++ newdev->close(); >++ newdev->set_err(ENOSYS, "SATA device detected,\n" >++ "MegaRAID SAT layer is reportedly buggy, use '-d sat' to try anyhow"); >++ } >+ return newdev; >++ } >+ } >+ >+ // Nothing special found
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 162276
: 119662