From: James Bottomley <James.Bottomley@suse.de>
To: "Penchala Narasimha Reddy Chilakala,
TLS-Chennai" <narasimhareddyc@hcl.in>
Cc: "'linux-scsi@vger.kernel.org'" <linux-scsi@vger.kernel.org>,
James Bottomley <jejb@kernel.org>,
ServeRAID Driver <ServeRAIDDriver@hcl.in>
Subject: Re: [PATCH ] scsi-misc-2.6: File System going into read-only mode
Date: Mon, 02 Nov 2009 11:46:44 -0600 [thread overview]
Message-ID: <1257184004.2472.157.camel@mulgrave.site> (raw)
In-Reply-To: <4F2B1A2459C7AD4D96A23CE911C352CB1E91345523@CHN-HCLT-EVS07.HCLT.CORP.HCL.IN>
On Tue, 2009-09-29 at 14:17 +0530, Penchala Narasimha Reddy Chilakala,
TLS-Chennai wrote:
> @@ -593,10 +593,10 @@ static int aac_send_raw_srb(struct aac_d
> u64 addr;
> void* p;
> if (upsg->sg[i].count >
> - (dev->adapter_info.options &
> + ((dev->adapter_info.options &
> AAC_OPT_NEW_COMM) ?
> (dev->scsi_host_ptr->max_sectors
> << 9) :
> - 65536) {
> + 65536)) {
> rcode = -EINVAL;
> goto cleanup;
> }
> @@ -645,10 +645,10 @@ static int aac_send_raw_srb(struct aac_d
> u64 addr;
> void* p;
> if (usg->sg[i].count >
> - (dev->adapter_info.options &
> + ((dev->adapter_info.options &
> AAC_OPT_NEW_COMM) ?
> (dev->scsi_host_ptr->max_sectors
> << 9) :
> - 65536) {
> + 65536)) {
> rcode = -EINVAL;
> goto cleanup;
> }
> @@ -695,10 +695,10 @@ static int aac_send_raw_srb(struct aac_d
> uintptr_t addr;
> void* p;
> if (usg->sg[i].count >
> - (dev->adapter_info.options &
> + ((dev->adapter_info.options &
> AAC_OPT_NEW_COMM) ?
> (dev->scsi_host_ptr->max_sectors
> << 9) :
> - 65536) {
> + 65536)) {
> rcode = -EINVAL;
> goto cleanup;
> }
> @@ -734,10 +734,10 @@ static int aac_send_raw_srb(struct aac_d
> dma_addr_t addr;
> void* p;
> if (upsg->sg[i].count >
> - (dev->adapter_info.options &
> + ((dev->adapter_info.options &
> AAC_OPT_NEW_COMM) ?
> (dev->scsi_host_ptr->max_sectors
> << 9) :
> - 65536) {
> + 65536)) {
> rcode = -EINVAL;
> goto cleanup;
> }
This is all spurious bracket addition; it doesn't really have any place
in a code fix.
> @@ -842,13 +842,22 @@ static int aac_get_pci_info(struct aac_d
> int aac_do_ioctl(struct aac_dev * dev, int cmd, void __user *arg)
> {
> int status;
> + unsigned long mflags;
>
> /*
> * HBA gets first crack
> */
>
> + spin_lock_irqsave(&dev->manage_lock, mflags);
> + if (dev->management_fib_count > AAC_NUM_MGT_FIB) {
> + printk(KERN_INFO "No management Fibs Available:%d\n",
> + dev->management_fib_count);
> + spin_unlock_irqrestore(&dev->manage_lock, mflags);
> + return -EBUSY;
> + }
> + spin_unlock_irqrestore(&dev->manage_lock, mflags);
> status = aac_dev_ioctl(dev, cmd, arg);
I can see what you're trying to do: limit the number of ioctl created
fibs to prevent starvation, but this mechanism is completely racy. The
check is too far away from the increment. It looks fixable just by
doing the increment within the lock here and decrementing if something
fails.
James
next prev parent reply other threads:[~2009-11-02 17:46 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-09-29 8:47 [PATCH ] scsi-misc-2.6: File System going into read-only mode Penchala Narasimha Reddy Chilakala, TLS-Chennai
2009-09-29 14:19 ` James Bottomley
2009-09-30 11:09 ` Penchala Narasimha Reddy Chilakala, TLS-Chennai
2009-09-30 11:33 ` Penchala Narasimha Reddy Chilakala, TLS-Chennai
2009-10-07 6:02 ` Penchala Narasimha Reddy Chilakala, TLS-Chennai
2009-11-02 17:46 ` James Bottomley [this message]
2009-11-03 10:17 ` Penchala Narasimha Reddy Chilakala, TLS-Chennai
2009-11-03 14:40 ` James Bottomley
2009-11-04 1:23 ` Stefan Richter
2009-11-04 1:33 ` Stefan Richter
2009-11-04 1:40 ` Stefan Richter
2009-11-04 6:44 ` Penchala Narasimha Reddy Chilakala, TLS-Chennai
2009-11-04 7:21 ` Penchala Narasimha Reddy Chilakala, TLS-Chennai
2009-11-04 15:30 ` James Bottomley
-- strict thread matches above, loose matches on Subject: below --
2009-10-09 9:23 Penchala Narasimha Reddy Chilakala, TLS-Chennai
2009-10-22 1:09 ` James Bottomley
2009-10-23 13:10 ` Penchala Narasimha Reddy Chilakala, TLS-Chennai
2009-11-02 7:35 Penchala Narasimha Reddy Chilakala, TLS-Chennai
2009-11-02 16:30 ` Stefan Richter
2009-11-03 9:54 ` Penchala Narasimha Reddy Chilakala, TLS-Chennai
2009-11-03 19:02 ` Stefan Richter
2009-11-04 7:00 ` Penchala Narasimha Reddy Chilakala, TLS-Chennai
2009-11-04 9:18 ` Penchala Narasimha Reddy Chilakala, TLS-Chennai
2009-11-04 14:48 ` Stefan Richter
2009-11-02 17:45 ` James Bottomley
2009-11-03 9:38 ` Penchala Narasimha Reddy Chilakala, TLS-Chennai
2009-11-03 15:08 ` James Bottomley
2009-11-04 7:07 ` Penchala Narasimha Reddy Chilakala, TLS-Chennai
2009-11-04 15:42 ` James Bottomley
2009-11-05 13:27 Penchala Narasimha Reddy Chilakala, TLS-Chennai
2009-11-11 19:26 ` James Bottomley
2009-11-12 8:28 ` Penchala Narasimha Reddy Chilakala, ERS-HCLTech
2009-11-13 20:55 ` James Bottomley
2009-11-16 3:25 ` Penchala Narasimha Reddy Chilakala, ERS-HCLTech
2009-11-16 15:51 ` James Bottomley
2009-11-17 5:22 ` Penchala Narasimha Reddy Chilakala, ERS-HCLTech
2009-11-17 5:27 ` Penchala Narasimha Reddy Chilakala, ERS-HCLTech
2009-12-18 12:25 Penchala Narasimha Reddy Chilakala, ERS-HCLTech
2009-12-21 13:09 Penchala Narasimha Reddy Chilakala, ERS-HCLTech
2009-12-24 6:29 Penchala Narasimha Reddy Chilakala, ERS-HCLTech
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1257184004.2472.157.camel@mulgrave.site \
--to=james.bottomley@suse.de \
--cc=ServeRAIDDriver@hcl.in \
--cc=jejb@kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=narasimhareddyc@hcl.in \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox