From 9bed00f20dc9f2e86b1834a5a30648f5728a51f8 Mon Sep 17 00:00:00 2001 From: David Cross Date: Tue, 5 Oct 2010 18:50:26 -0700 Subject: [PATCH] staging: west bridge, block driver change for partition support This patch fixes an error in the block driver wherein multiple partitions in an mmc card were not detected correctly due to incorrect alloc_disk arguments. Signed-off-by: David Cross Signed-off-by: Greg Kroah-Hartman --- .../westbridge/astoria/block/cyasblkdev_block.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/drivers/staging/westbridge/astoria/block/cyasblkdev_block.c b/drivers/staging/westbridge/astoria/block/cyasblkdev_block.c index 99d3e7e..f428a7a 100644 --- a/drivers/staging/westbridge/astoria/block/cyasblkdev_block.c +++ b/drivers/staging/westbridge/astoria/block/cyasblkdev_block.c @@ -403,7 +403,7 @@ int cyasblkdev_media_changed(struct gendisk *gd) } /* return media change state "1" yes, 0 no */ - return 1; + return 0; } /* this one called by kernel to give us a chence @@ -1111,7 +1111,8 @@ static int cyasblkdev_add_disks(int bus_num, * public partition beginning */ if (vfat_search) { bd->user_disk_0_first_sector = - cyasblkdev_get_vfat_offset(0, + cyasblkdev_get_vfat_offset( + bd->user_disk_0_bus_num, bd->user_disk_0_unit_no); } else { bd->user_disk_0_first_sector = 0; @@ -1244,7 +1245,8 @@ static int cyasblkdev_add_disks(int bus_num, if (vfat_search) { bd->user_disk_1_first_sector = cyasblkdev_get_vfat_offset( - 1, bd->user_disk_1_unit_no); + bd->user_disk_1_bus_num, + bd->user_disk_1_unit_no); } else { bd->user_disk_1_first_sector = 0; @@ -1256,8 +1258,8 @@ static int cyasblkdev_add_disks(int bus_num, if (lcl_unit_no > 0) { if (bd->system_disk == NULL) { bd->system_disk = - alloc_disk(CYASBLKDEV_MINOR_2 - << CYASBLKDEV_SHIFT); + alloc_disk(8); + if (bd->system_disk == NULL) { kfree(bd); bd = ERR_PTR(-ENOMEM); @@ -1423,8 +1425,7 @@ static struct cyasblkdev_blk_data *cyasblkdev_blk_alloc(void) if (bd->user_disk_0 == NULL) { bd->user_disk_0 = - alloc_disk(CYASBLKDEV_MINOR_0 - << CYASBLKDEV_SHIFT); + alloc_disk(8); if (bd->user_disk_0 == NULL) { kfree(bd); bd = ERR_PTR(-ENOMEM); @@ -1443,8 +1444,7 @@ static struct cyasblkdev_blk_data *cyasblkdev_blk_alloc(void) if (total_media_count == 2) { if (bd->user_disk_1 == NULL) { bd->user_disk_1 = - alloc_disk(CYASBLKDEV_MINOR_1 - << CYASBLKDEV_SHIFT); + alloc_disk(8); if (bd->user_disk_1 == NULL) { kfree(bd); bd = ERR_PTR(-ENOMEM); -- 2.7.4