Apply aae86e8adb
This commit is contained in:
parent
067f8727a6
commit
b46e18b807
@ -302,7 +302,6 @@ static const char fsg_string_interface[] = "Mass Storage";
|
||||
|
||||
|
||||
#define FSG_NO_INTR_EP 1
|
||||
#define FSG_BUFFHD_STATIC_BUFFER 1
|
||||
#define FSG_NO_DEVICE_STRINGS 1
|
||||
#define FSG_NO_OTG 1
|
||||
#define FSG_NO_INTR_EP 1
|
||||
@ -2795,13 +2794,19 @@ static struct fsg_common *fsg_common_init(struct fsg_common *common,
|
||||
|
||||
|
||||
/* Data buffers cyclic list */
|
||||
/* Buffers in buffhds are static -- no need for additional
|
||||
* allocation. */
|
||||
bh = common->buffhds;
|
||||
i = FSG_NUM_BUFFERS - 1;
|
||||
i = FSG_NUM_BUFFERS;
|
||||
goto buffhds_first_it;
|
||||
do {
|
||||
bh->next = bh + 1;
|
||||
} while (++bh, --i);
|
||||
++bh;
|
||||
buffhds_first_it:
|
||||
bh->buf = kmalloc(FSG_BUFLEN, GFP_KERNEL);
|
||||
if (unlikely(!bh->buf)) {
|
||||
rc = -ENOMEM;
|
||||
goto error_release;
|
||||
}
|
||||
} while (--i);
|
||||
bh->next = common->buffhds;
|
||||
|
||||
|
||||
@ -2909,6 +2914,7 @@ static void fsg_common_release(struct kref *ref)
|
||||
container_of(ref, struct fsg_common, ref);
|
||||
unsigned i = common->nluns;
|
||||
struct fsg_lun *lun = common->luns;
|
||||
struct fsg_buffhd *bh;
|
||||
|
||||
/* If the thread isn't already dead, tell it to exit now */
|
||||
if (common->state != FSG_STATE_TERMINATED) {
|
||||
@ -2930,6 +2936,13 @@ static void fsg_common_release(struct kref *ref)
|
||||
}
|
||||
|
||||
kfree(common->luns);
|
||||
|
||||
i = FSG_NUM_BUFFERS;
|
||||
bh = common->buffhds;
|
||||
do {
|
||||
kfree(bh->buf);
|
||||
} while (++bh, --i);
|
||||
|
||||
if (common->free_storage_on_release)
|
||||
kfree(common);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user