[SCSI] tgt: fix the user/kernel ring buffer interface
This patches fixes two bugs in the scsi target infrastructure's user/kernel interface. - It wrongly assumes that the ring buffer size of the interface (64KB) is larger than or equal to the system page size. This patch sets the ring buffer size to PAGE_SIZE if the system page size is larger. - It uses PAGE_SIZE in the header file exported to userspace. This patch removes it. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
This commit is contained in:
parent
8f3334edae
commit
930e99bd13
2 changed files with 8 additions and 3 deletions
|
@ -33,6 +33,14 @@
|
|||
|
||||
#include "scsi_tgt_priv.h"
|
||||
|
||||
#if TGT_RING_SIZE < PAGE_SIZE
|
||||
# define TGT_RING_SIZE PAGE_SIZE
|
||||
#endif
|
||||
|
||||
#define TGT_RING_PAGES (TGT_RING_SIZE >> PAGE_SHIFT)
|
||||
#define TGT_EVENT_PER_PAGE (PAGE_SIZE / sizeof(struct tgt_event))
|
||||
#define TGT_MAX_EVENTS (TGT_EVENT_PER_PAGE * TGT_RING_PAGES)
|
||||
|
||||
struct tgt_ring {
|
||||
u32 tr_idx;
|
||||
unsigned long tr_pages[TGT_RING_PAGES];
|
||||
|
|
|
@ -83,8 +83,5 @@ struct tgt_event {
|
|||
} __attribute__ ((aligned (sizeof(uint64_t))));
|
||||
|
||||
#define TGT_RING_SIZE (1UL << 16)
|
||||
#define TGT_RING_PAGES (TGT_RING_SIZE >> PAGE_SHIFT)
|
||||
#define TGT_EVENT_PER_PAGE (PAGE_SIZE / sizeof(struct tgt_event))
|
||||
#define TGT_MAX_EVENTS (TGT_EVENT_PER_PAGE * TGT_RING_PAGES)
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in a new issue