isp driver not 64 bit?

David Gilbert dgilbert at
Mon Nov 29 19:03:53 PST 2004

>>>>> "Matt" == Matt Emmerton <matt at> writes:

Matt> You indicate that this probe is done properly.

>> From what I see, cam_calc_geometry() is called *before* the device
>> probe

Matt> prints out the device size, so I'm unsure of how what you are
Matt> describing can occur.

Well... cam_calc_geometry seems to get called quite a bit.  Almost
everytime you touch the disk, in fact.  fsck'ing a partition calls it,
for instance.

Console access is personally expensive (much driving, for instance),
but from memory the debugging I put in cam_calc_geometry() would print
before the correct output from dadone().  Your description reminds me
of this --- but it's no less vexing that the output from dadone() has
the correct sector and volume size and the ccg in cam_calc_geometry()
has bogus data.

I don't know if it's significant, but the correct numbers were:

279353684 sectors of 512 bytes

The ccg structure comes up with:

3737169375 sectors of 3737169374 bytes

Not entirely sensible.  Interesting that they're close values.
However, with different things on the stack, the values changed.

Matt> Have you built & run a kernel compiled with "options CAMDEBUG" ?
Matt> This may provide more insight into where things are going wrong.

I put CAMDEBUG in the kernel, but it didn't seem to change the output
that much.  It seemed to dump the control block showing when geom
tried to access the high block number --- and failed, but nothing else
particularly useful.


|David Gilbert, Independent Contractor.       | Two things can only be     |
|Mail:       dave at                    |  equal if and only if they |
|                              |   are precisely opposite.  |

More information about the freebsd-amd64 mailing list