| Summary: | (summary missing) | ||
|---|---|---|---|
| Product: | Base System | Reporter: | Andrew Bernard <andrewb> |
| Component: | kern | Assignee: | freebsd-bugs (Nobody) <bugs> |
| Status: | Closed FIXED | ||
| Severity: | Affects Only Me | CC: | pbelle |
| Priority: | Normal | ||
| Version: | 1.0-CURRENT | ||
| Hardware: | Any | ||
| OS: | Any | ||
Responsible Changed From-To: gnats-admin->freebsd-bugs You've managed to do a followup while supressing the Summary: line, which is what GNATS uses to assign new text as followup, so neither GNATS (nor I for that matter) have any idea what PR the text in this PR is supposed to be a followup to. Please reply with that information and I'll try to fix it up. Thanks. State Changed From-To: open->closed Feedback timeout. With the Synopsis (Subject:) line suppressed, GNATS is unable to figure out to which PR the followup is supposed to apply. I could not figure it out myself and the submitter did not respond to an emailed request. |
Hi, I've been having the same problem with FreeBSD 5.3 and my BT-958. It looks like the drive or the BT-958 is returning zero for its "period factor" for whatever reason. The kernel code in src/sys/cam/scsi/scsi_all.c doesn't check for this (probably invalid) case and proceeds to use zero as a divisor at line 2329. Applying the following patch at line 2302 heads off the divide by zero and assumes that a "period factor" of zero means 20 mbit/sec SCSI: 2302c2302,2303 < { 0x0c, 5000 } /* FAST-20 */ --- > { 0x0c, 5000 }, /* FAST-20 */ > { 0x00, 5000 } /* FAST-20 */ This enables the drive to come up normally. I've been using this patch on my home system for about a week now, with no apparent problems (but use at your own risk!). I don't know whether it's safe to assume FAST-20 when the BT-958 returns zero for its "period factor", but I think that the kernel should at least be checking for a zero divisor and reporting a device error instead of bringing the whole system down on a zero divide fault. Please let me know if any additional information would be helpful. Thanks, Andrew Bernard