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_NO_INTR_EP 1
|
||||||
#define FSG_BUFFHD_STATIC_BUFFER 1
|
|
||||||
#define FSG_NO_DEVICE_STRINGS 1
|
#define FSG_NO_DEVICE_STRINGS 1
|
||||||
#define FSG_NO_OTG 1
|
#define FSG_NO_OTG 1
|
||||||
#define FSG_NO_INTR_EP 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 */
|
/* Data buffers cyclic list */
|
||||||
/* Buffers in buffhds are static -- no need for additional
|
|
||||||
* allocation. */
|
|
||||||
bh = common->buffhds;
|
bh = common->buffhds;
|
||||||
i = FSG_NUM_BUFFERS - 1;
|
i = FSG_NUM_BUFFERS;
|
||||||
|
goto buffhds_first_it;
|
||||||
do {
|
do {
|
||||||
bh->next = bh + 1;
|
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;
|
bh->next = common->buffhds;
|
||||||
|
|
||||||
|
|
||||||
@ -2909,6 +2914,7 @@ static void fsg_common_release(struct kref *ref)
|
|||||||
container_of(ref, struct fsg_common, ref);
|
container_of(ref, struct fsg_common, ref);
|
||||||
unsigned i = common->nluns;
|
unsigned i = common->nluns;
|
||||||
struct fsg_lun *lun = common->luns;
|
struct fsg_lun *lun = common->luns;
|
||||||
|
struct fsg_buffhd *bh;
|
||||||
|
|
||||||
/* If the thread isn't already dead, tell it to exit now */
|
/* If the thread isn't already dead, tell it to exit now */
|
||||||
if (common->state != FSG_STATE_TERMINATED) {
|
if (common->state != FSG_STATE_TERMINATED) {
|
||||||
@ -2930,6 +2936,13 @@ static void fsg_common_release(struct kref *ref)
|
|||||||
}
|
}
|
||||||
|
|
||||||
kfree(common->luns);
|
kfree(common->luns);
|
||||||
|
|
||||||
|
i = FSG_NUM_BUFFERS;
|
||||||
|
bh = common->buffhds;
|
||||||
|
do {
|
||||||
|
kfree(bh->buf);
|
||||||
|
} while (++bh, --i);
|
||||||
|
|
||||||
if (common->free_storage_on_release)
|
if (common->free_storage_on_release)
|
||||||
kfree(common);
|
kfree(common);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user