mirror of
https://github.com/AltraMayor/f3.git
synced 2025-09-08 06:38:10 -04:00
f3probe: fix allocation error of safe device
probe_device_max_blocks() was returning an int that once multiplied by block_size was out range. This patch just enforces probe_device_max_blocks() to return an uint64_t, and does the needed adjustments in the code.
This commit is contained in:
parent
591ad8a7bf
commit
e3fe7a006d
@ -1209,7 +1209,7 @@ static const char *sdev_get_filename(struct device *dev)
|
|||||||
return dev_get_filename(dev_sdev(dev)->shadow_dev);
|
return dev_get_filename(dev_sdev(dev)->shadow_dev);
|
||||||
}
|
}
|
||||||
|
|
||||||
struct device *create_safe_device(struct device *dev, int max_blocks,
|
struct device *create_safe_device(struct device *dev, uint64_t max_blocks,
|
||||||
int min_memory)
|
int min_memory)
|
||||||
{
|
{
|
||||||
struct safe_device *sdev;
|
struct safe_device *sdev;
|
||||||
|
@ -100,7 +100,7 @@ void perf_device_sample(struct device *dev,
|
|||||||
*/
|
*/
|
||||||
struct device *pdev_detach_and_free(struct device *dev);
|
struct device *pdev_detach_and_free(struct device *dev);
|
||||||
|
|
||||||
struct device *create_safe_device(struct device *dev, int max_blocks,
|
struct device *create_safe_device(struct device *dev, uint64_t max_blocks,
|
||||||
int min_memory);
|
int min_memory);
|
||||||
|
|
||||||
#endif /* HEADER_LIBDEVS_H */
|
#endif /* HEADER_LIBDEVS_H */
|
||||||
|
@ -666,7 +666,7 @@ static int find_wrap(struct device *dev,
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
int probe_device_max_blocks(struct device *dev)
|
uint64_t probe_device_max_blocks(struct device *dev)
|
||||||
{
|
{
|
||||||
const int block_order = dev_get_block_order(dev);
|
const int block_order = dev_get_block_order(dev);
|
||||||
uint64_t num_blocks = dev_get_size_byte(dev) >> block_order;
|
uint64_t num_blocks = dev_get_size_byte(dev) >> block_order;
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
#include "libdevs.h"
|
#include "libdevs.h"
|
||||||
|
|
||||||
int probe_device_max_blocks(struct device *dev);
|
uint64_t probe_device_max_blocks(struct device *dev);
|
||||||
|
|
||||||
int probe_device(struct device *dev, uint64_t *preal_size_byte,
|
int probe_device(struct device *dev, uint64_t *preal_size_byte,
|
||||||
uint64_t *pannounced_size_byte, int *pwrap,
|
uint64_t *pannounced_size_byte, int *pwrap,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user