Re: 2.5.40-mm2

Andrew Morton
2002-10-07T18:18:01Z

Badari Pulavarty wrote:
>
> ...
> drivers/built-in.o: In function `aic7xxx_biosparam':
> drivers/built-in.o(.text+0xcfc71): undefined reference to `__udivdi3'
> drivers/built-in.o(.text+0xcfca8): undefined reference to `__udivdi3'
> drivers/built-in.o: In function `qla1280_proc_info':
> drivers/built-in.o(.text+0xd0ca0): undefined reference to `get_free_page'
> drivers/built-in.o: In function `qla1280_biosparam':
> drivers/built-in.o(.text+0xd1daa): undefined reference to `__udivdi3'
> drivers/built-in.o(.text+0xd1dce): undefined reference to `__udivdi3'
> make: *** [.tmp_vmlinux] Error 1

For the __udivdi3 thing, the below patch should fix that up.

For the get_free_page thing I need a grep-for-dummies book. Please
just go into qla1280_proc_info() and replace get_free_page() with
get_zeroed_page(). I need to do a second round on that patch.

--- 2.5.40/drivers/scsi/aic7xxx_old.c~lbd-fixes-1 Mon Oct 7 11:18:28 2002
+++ 2.5.40-akpm/drivers/scsi/aic7xxx_old.c Mon Oct 7 11:19:18 2002
@@ -11735,13 +11735,13 @@ aic7xxx_biosparam(Disk *disk, struct blo

heads = 64;
sectors = 32;
- cylinders = disk->capacity / (heads * sectors);
+ cylinders = sector_div(disk->capacity, heads * sectors);

if ((p->flags & AHC_EXTEND_TRANS_A) && (cylinders > 1024))
{
heads = 255;
sectors = 63;
- cylinders = disk->capacity / (heads * sectors);
+ cylinders = sector_div(disk->capacity, heads * sectors);
}

geom[0] = heads;
--- 2.5.40/drivers/scsi/qla1280.c~lbd-fixes-1 Mon Oct 7 11:19:42 2002
+++ 2.5.40-akpm/drivers/scsi/qla1280.c Mon Oct 7 11:20:06 2002
@@ -1705,11 +1705,11 @@ qla1280_biosparam(Disk * disk, struct bl

heads = 64;
sectors = 32;
- cylinders = disk->capacity / (heads * sectors);
+ cylinders = sector_div(disk->capacity, heads * sectors);
if (cylinders > 1024) {
heads = 255;
sectors = 63;
- cylinders = disk->capacity / (heads * sectors);
+ cylinders = sector_div(disk->capacity, heads * sectors);
/* if (cylinders > 1023)
cylinders = 1023; */
}

.