mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-30 03:27:44 -04:00
driver-core: constify data for class_find_device()
All in-kernel users of class_find_device() don't really need mutable data for match callback. In two places (kernel/power/suspend_test.c, drivers/scsi/osd/osd_uld.c) this patch changes match callbacks to use const search data. The const is propagated to rtc_class_open() and power_supply_get_by_name() parameters. Note that there's a dev reference leak in suspend_test.c that's not touched in this patch. Signed-off-by: Michał Mirosław <[email protected]> Acked-by: Grant Likely <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
This commit is contained in:
parent
807be03cae
commit
9f3b795a62
19 changed files with 53 additions and 64 deletions
|
|
@ -468,10 +468,10 @@ void scsi_unregister(struct Scsi_Host *shost)
|
|||
}
|
||||
EXPORT_SYMBOL(scsi_unregister);
|
||||
|
||||
static int __scsi_host_match(struct device *dev, void *data)
|
||||
static int __scsi_host_match(struct device *dev, const void *data)
|
||||
{
|
||||
struct Scsi_Host *p;
|
||||
unsigned short *hostnum = (unsigned short *)data;
|
||||
const unsigned short *hostnum = data;
|
||||
|
||||
p = class_to_shost(dev);
|
||||
return p->host_no == *hostnum;
|
||||
|
|
|
|||
|
|
@ -268,18 +268,11 @@ static inline bool _the_same_or_null(const u8 *a1, unsigned a1_len,
|
|||
return 0 == memcmp(a1, a2, a1_len);
|
||||
}
|
||||
|
||||
struct find_oud_t {
|
||||
const struct osd_dev_info *odi;
|
||||
struct device *dev;
|
||||
struct osd_uld_device *oud;
|
||||
} ;
|
||||
|
||||
int _mach_odi(struct device *dev, void *find_data)
|
||||
static int _match_odi(struct device *dev, const void *find_data)
|
||||
{
|
||||
struct osd_uld_device *oud = container_of(dev, struct osd_uld_device,
|
||||
class_dev);
|
||||
struct find_oud_t *fot = find_data;
|
||||
const struct osd_dev_info *odi = fot->odi;
|
||||
const struct osd_dev_info *odi = find_data;
|
||||
|
||||
if (_the_same_or_null(oud->odi.systemid, oud->odi.systemid_len,
|
||||
odi->systemid, odi->systemid_len) &&
|
||||
|
|
@ -287,7 +280,6 @@ int _mach_odi(struct device *dev, void *find_data)
|
|||
odi->osdname, odi->osdname_len)) {
|
||||
OSD_DEBUG("found device sysid_len=%d osdname=%d\n",
|
||||
odi->systemid_len, odi->osdname_len);
|
||||
fot->oud = oud;
|
||||
return 1;
|
||||
} else {
|
||||
return 0;
|
||||
|
|
@ -301,19 +293,19 @@ int _mach_odi(struct device *dev, void *find_data)
|
|||
*/
|
||||
struct osd_dev *osduld_info_lookup(const struct osd_dev_info *odi)
|
||||
{
|
||||
struct find_oud_t find = {.odi = odi};
|
||||
|
||||
find.dev = class_find_device(&osd_uld_class, NULL, &find, _mach_odi);
|
||||
if (likely(find.dev)) {
|
||||
struct device *dev = class_find_device(&osd_uld_class, NULL, odi, _match_odi);
|
||||
if (likely(dev)) {
|
||||
struct osd_dev_handle *odh = kzalloc(sizeof(*odh), GFP_KERNEL);
|
||||
struct osd_uld_device *oud = container_of(dev,
|
||||
struct osd_uld_device, class_dev);
|
||||
|
||||
if (unlikely(!odh)) {
|
||||
put_device(find.dev);
|
||||
put_device(dev);
|
||||
return ERR_PTR(-ENOMEM);
|
||||
}
|
||||
|
||||
odh->od = find.oud->od;
|
||||
odh->oud = find.oud;
|
||||
odh->od = oud->od;
|
||||
odh->oud = oud;
|
||||
|
||||
return &odh->od;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -183,10 +183,10 @@ static struct attribute_group iscsi_endpoint_group = {
|
|||
|
||||
#define ISCSI_MAX_EPID -1
|
||||
|
||||
static int iscsi_match_epid(struct device *dev, void *data)
|
||||
static int iscsi_match_epid(struct device *dev, const void *data)
|
||||
{
|
||||
struct iscsi_endpoint *ep = iscsi_dev_to_endpoint(dev);
|
||||
uint64_t *epid = (uint64_t *) data;
|
||||
const uint64_t *epid = data;
|
||||
|
||||
return *epid == ep->id;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue